summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
Diffstat (limited to 'build')
-rw-r--r--build/BUILD_ID1
-rw-r--r--build/build-manifest.json36
-rw-r--r--build/cache/webpack/client-production/0.packbin0 -> 74206195 bytes
-rw-r--r--build/cache/webpack/client-production/index.packbin0 -> 1147990 bytes
-rw-r--r--build/cache/webpack/server-production/0.packbin0 -> 1456206 bytes
-rw-r--r--build/cache/webpack/server-production/index.packbin0 -> 274099 bytes
-rw-r--r--build/export-marker.json1
-rw-r--r--build/images-manifest.json1
-rw-r--r--build/prerender-manifest.json1
-rw-r--r--build/react-loadable-manifest.json8
-rw-r--r--build/required-server-files.json1
-rw-r--r--build/routes-manifest.json1
-rw-r--r--build/server/chunks/624.js2510
-rw-r--r--build/server/font-manifest.json1
-rw-r--r--build/server/pages-manifest.json7
-rw-r--r--build/server/pages/404.html1
-rw-r--r--build/server/pages/500.html1
-rw-r--r--build/server/pages/_app.js66
-rw-r--r--build/server/pages/_document.js1209
-rw-r--r--build/server/pages/_error.js151
-rw-r--r--build/server/pages/index.html1
-rw-r--r--build/server/webpack-runtime.js160
-rw-r--r--build/static/Ci3EcXz8ajkhs7MVidKTf/_buildManifest.js1
-rw-r--r--build/static/Ci3EcXz8ajkhs7MVidKTf/_ssgManifest.js1
-rw-r--r--build/static/chunks/283-1d245e6e2271fd76c328.js1
-rw-r--r--build/static/chunks/4.2dee5d830195ddd06029.js1
-rw-r--r--build/static/chunks/d25bd147-65fcc4c92edba8b370fb.js1
-rw-r--r--build/static/chunks/fb7d5399-a8c606efbc9e7c0edf90.js1
-rw-r--r--build/static/chunks/framework-0441fae7fd130f37dee1.js1
-rw-r--r--build/static/chunks/main-a3a79aff3ff232b41814.js1
-rw-r--r--build/static/chunks/pages/_app-5bb503dca4dae114eb0c.js1
-rw-r--r--build/static/chunks/pages/_error-a0e21b9b223f827fe1f2.js1
-rw-r--r--build/static/chunks/pages/index-b7e9a3c26de1eb7c41cc.js1
-rw-r--r--build/static/chunks/polyfills-a54b4f32bdc1ef890ddd.js1
-rw-r--r--build/static/chunks/webpack-f6b94a473b4a21f6bdce.js1
-rw-r--r--build/static/css/120f2e2270820d49a21f.css1
36 files changed, 4171 insertions, 0 deletions
diff --git a/build/BUILD_ID b/build/BUILD_ID
new file mode 100644
index 0000000..dca5eae
--- /dev/null
+++ b/build/BUILD_ID
@@ -0,0 +1 @@
+Ci3EcXz8ajkhs7MVidKTf \ No newline at end of file
diff --git a/build/build-manifest.json b/build/build-manifest.json
new file mode 100644
index 0000000..564372b
--- /dev/null
+++ b/build/build-manifest.json
@@ -0,0 +1,36 @@
+{
+ "polyfillFiles": [
+ "static/chunks/polyfills-a54b4f32bdc1ef890ddd.js"
+ ],
+ "devFiles": [],
+ "ampDevFiles": [],
+ "lowPriorityFiles": [
+ "static/Ci3EcXz8ajkhs7MVidKTf/_buildManifest.js",
+ "static/Ci3EcXz8ajkhs7MVidKTf/_ssgManifest.js"
+ ],
+ "pages": {
+ "/": [
+ "static/chunks/webpack-f6b94a473b4a21f6bdce.js",
+ "static/chunks/framework-0441fae7fd130f37dee1.js",
+ "static/chunks/main-a3a79aff3ff232b41814.js",
+ "static/chunks/fb7d5399-a8c606efbc9e7c0edf90.js",
+ "static/chunks/d25bd147-65fcc4c92edba8b370fb.js",
+ "static/chunks/283-1d245e6e2271fd76c328.js",
+ "static/chunks/pages/index-b7e9a3c26de1eb7c41cc.js"
+ ],
+ "/_app": [
+ "static/chunks/webpack-f6b94a473b4a21f6bdce.js",
+ "static/chunks/framework-0441fae7fd130f37dee1.js",
+ "static/chunks/main-a3a79aff3ff232b41814.js",
+ "static/css/120f2e2270820d49a21f.css",
+ "static/chunks/pages/_app-5bb503dca4dae114eb0c.js"
+ ],
+ "/_error": [
+ "static/chunks/webpack-f6b94a473b4a21f6bdce.js",
+ "static/chunks/framework-0441fae7fd130f37dee1.js",
+ "static/chunks/main-a3a79aff3ff232b41814.js",
+ "static/chunks/pages/_error-a0e21b9b223f827fe1f2.js"
+ ]
+ },
+ "ampFirstPages": []
+} \ No newline at end of file
diff --git a/build/cache/webpack/client-production/0.pack b/build/cache/webpack/client-production/0.pack
new file mode 100644
index 0000000..a38c90c
--- /dev/null
+++ b/build/cache/webpack/client-production/0.pack
Binary files differ
diff --git a/build/cache/webpack/client-production/index.pack b/build/cache/webpack/client-production/index.pack
new file mode 100644
index 0000000..734792d
--- /dev/null
+++ b/build/cache/webpack/client-production/index.pack
Binary files differ
diff --git a/build/cache/webpack/server-production/0.pack b/build/cache/webpack/server-production/0.pack
new file mode 100644
index 0000000..d203c7c
--- /dev/null
+++ b/build/cache/webpack/server-production/0.pack
Binary files differ
diff --git a/build/cache/webpack/server-production/index.pack b/build/cache/webpack/server-production/index.pack
new file mode 100644
index 0000000..d009da9
--- /dev/null
+++ b/build/cache/webpack/server-production/index.pack
Binary files differ
diff --git a/build/export-marker.json b/build/export-marker.json
new file mode 100644
index 0000000..07328d6
--- /dev/null
+++ b/build/export-marker.json
@@ -0,0 +1 @@
+{"version":1,"hasExportPathMap":false,"exportTrailingSlash":false,"isNextImageImported":false} \ No newline at end of file
diff --git a/build/images-manifest.json b/build/images-manifest.json
new file mode 100644
index 0000000..50d8e64
--- /dev/null
+++ b/build/images-manifest.json
@@ -0,0 +1 @@
+{"version":1,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[16,32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","domains":[],"disableStaticImages":false,"sizes":[640,750,828,1080,1200,1920,2048,3840,16,32,48,64,96,128,256,384]}} \ No newline at end of file
diff --git a/build/prerender-manifest.json b/build/prerender-manifest.json
new file mode 100644
index 0000000..aa2a2b7
--- /dev/null
+++ b/build/prerender-manifest.json
@@ -0,0 +1 @@
+{"version":3,"routes":{},"dynamicRoutes":{},"preview":{"previewModeId":"0d2b034e60f4c318a55d05249192e604","previewModeSigningKey":"992319bcb25e42ff5d30cdd5dee9f0d679f8f238e22d65acaffb6be0dee514f7","previewModeEncryptionKey":"1a3fa5a7c0a69dc5d63ee0bfd655a8c2d02566cdd789bfa8e2a5bb6fd3a7a342"},"notFoundRoutes":[]} \ No newline at end of file
diff --git a/build/react-loadable-manifest.json b/build/react-loadable-manifest.json
new file mode 100644
index 0000000..a090ffc
--- /dev/null
+++ b/build/react-loadable-manifest.json
@@ -0,0 +1,8 @@
+{
+ "index.tsx -> d3-force-3d": {
+ "id": 7004,
+ "files": [
+ "static/chunks/4.2dee5d830195ddd06029.js"
+ ]
+ }
+} \ No newline at end of file
diff --git a/build/required-server-files.json b/build/required-server-files.json
new file mode 100644
index 0000000..7b41e17
--- /dev/null
+++ b/build/required-server-files.json
@@ -0,0 +1 @@
+{"version":1,"config":{"env":[],"webpackDevMiddleware":null,"distDir":"build","cleanDistDir":true,"assetPrefix":"","configOrigin":"default","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"target":"server","poweredByHeader":true,"compress":false,"analyticsId":"","images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[16,32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","domains":[],"disableStaticImages":false},"devIndicators":{"buildActivity":true},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":2},"amp":{"canonicalBase":""},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"optimizeFonts":true,"experimental":{"cpus":7,"plugins":false,"profiling":false,"sprFlushToDisk":true,"workerThreads":false,"pageEnv":false,"optimizeImages":false,"optimizeCss":false,"scrollRestoration":false,"stats":false,"externalDir":false,"reactRoot":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false},"excludeDefaultMomentLocales":true,"future":{"strictPostcssConfiguration":false},"serverRuntimeConfig":{},"publicRuntimeConfig":{},"reactStrictMode":false},"appDir":"/Users/kirillrogovoy/p/org-roam-ui","files":["build/routes-manifest.json","build/server/pages-manifest.json","build/build-manifest.json","build/prerender-manifest.json","build/react-loadable-manifest.json","build/server/font-manifest.json","build/BUILD_ID"],"ignore":["node_modules/next/dist/compiled/@ampproject/toolbox-optimizer/**/*"]} \ No newline at end of file
diff --git a/build/routes-manifest.json b/build/routes-manifest.json
new file mode 100644
index 0000000..e36389c
--- /dev/null
+++ b/build/routes-manifest.json
@@ -0,0 +1 @@
+{"version":3,"pages404":true,"basePath":"","redirects":[{"source":"/:path+/","destination":"/:path+","internal":true,"statusCode":308,"regex":"^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$"}],"headers":[],"dynamicRoutes":[],"dataRoutes":[],"rewrites":[]} \ No newline at end of file
diff --git a/build/server/chunks/624.js b/build/server/chunks/624.js
new file mode 100644
index 0000000..8fd3f14
--- /dev/null
+++ b/build/server/chunks/624.js
@@ -0,0 +1,2510 @@
+exports.id = 624;
+exports.ids = [624];
+exports.modules = {
+
+/***/ 265:
+/***/ (function(__unused_webpack_module, exports) {
+
+// https://github.com/vasturiano/d3-binarytree v0.2.0 Copyright 2021 Vasco Asturiano
+(function (global, factory) {
+ true ? factory(exports) : 0;
+})(this, function (exports) {
+ 'use strict';
+
+ function tree_add(d) {
+ var x = +this._x.call(null, d);
+ return add(this.cover(x), x, d);
+ }
+
+ function add(tree, x, d) {
+ if (isNaN(x)) return tree; // ignore invalid points
+
+ var parent,
+ node = tree._root,
+ leaf = {
+ data: d
+ },
+ x0 = tree._x0,
+ x1 = tree._x1,
+ xm,
+ xp,
+ right,
+ i,
+ j; // If the tree is empty, initialize the root as a leaf.
+
+ if (!node) return tree._root = leaf, tree; // Find the existing leaf for the new point, or add it.
+
+ while (node.length) {
+ if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;
+ if (parent = node, !(node = node[i = +right])) return parent[i] = leaf, tree;
+ } // Is the new point is exactly coincident with the existing point?
+
+
+ xp = +tree._x.call(null, node.data);
+ if (x === xp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree; // Otherwise, split the leaf node until the old and new point are separated.
+
+ do {
+ parent = parent ? parent[i] = new Array(2) : tree._root = new Array(2);
+ if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;
+ } while ((i = +right) === (j = +(xp >= xm)));
+
+ return parent[j] = node, parent[i] = leaf, tree;
+ }
+
+ function addAll(data) {
+ var i,
+ n = data.length,
+ x,
+ xz = new Array(n),
+ x0 = Infinity,
+ x1 = -Infinity; // Compute the points and their extent.
+
+ for (i = 0; i < n; ++i) {
+ if (isNaN(x = +this._x.call(null, data[i]))) continue;
+ xz[i] = x;
+ if (x < x0) x0 = x;
+ if (x > x1) x1 = x;
+ } // If there were no (valid) points, abort.
+
+
+ if (x0 > x1) return this; // Expand the tree to cover the new points.
+
+ this.cover(x0).cover(x1); // Add the new points.
+
+ for (i = 0; i < n; ++i) {
+ add(this, xz[i], data[i]);
+ }
+
+ return this;
+ }
+
+ function tree_cover(x) {
+ if (isNaN(x = +x)) return this; // ignore invalid points
+
+ var x0 = this._x0,
+ x1 = this._x1; // If the binarytree has no extent, initialize them.
+ // Integer extent are necessary so that if we later double the extent,
+ // the existing half boundaries don’t change due to floating point error!
+
+ if (isNaN(x0)) {
+ x1 = (x0 = Math.floor(x)) + 1;
+ } // Otherwise, double repeatedly to cover.
+ else {
+ var z = x1 - x0 || 1,
+ node = this._root,
+ parent,
+ i;
+
+ while (x0 > x || x >= x1) {
+ i = +(x < x0);
+ parent = new Array(2), parent[i] = node, node = parent, z *= 2;
+
+ switch (i) {
+ case 0:
+ x1 = x0 + z;
+ break;
+
+ case 1:
+ x0 = x1 - z;
+ break;
+ }
+ }
+
+ if (this._root && this._root.length) this._root = node;
+ }
+
+ this._x0 = x0;
+ this._x1 = x1;
+ return this;
+ }
+
+ function tree_data() {
+ var data = [];
+ this.visit(function (node) {
+ if (!node.length) do data.push(node.data); while (node = node.next);
+ });
+ return data;
+ }
+
+ function tree_extent(_) {
+ return arguments.length ? this.cover(+_[0][0]).cover(+_[1][0]) : isNaN(this._x0) ? undefined : [[this._x0], [this._x1]];
+ }
+
+ function Half(node, x0, x1) {
+ this.node = node;
+ this.x0 = x0;
+ this.x1 = x1;
+ }
+
+ function tree_find(x, radius) {
+ var data,
+ x0 = this._x0,
+ x1,
+ x2,
+ x3 = this._x1,
+ halves = [],
+ node = this._root,
+ q,
+ i;
+ if (node) halves.push(new Half(node, x0, x3));
+ if (radius == null) radius = Infinity;else {
+ x0 = x - radius;
+ x3 = x + radius;
+ }
+
+ while (q = halves.pop()) {
+ // Stop searching if this half can’t contain a closer node.
+ if (!(node = q.node) || (x1 = q.x0) > x3 || (x2 = q.x1) < x0) continue; // Bisect the current half.
+
+ if (node.length) {
+ var xm = (x1 + x2) / 2;
+ halves.push(new Half(node[1], xm, x2), new Half(node[0], x1, xm)); // Visit the closest half first.
+
+ if (i = +(x >= xm)) {
+ q = halves[halves.length - 1];
+ halves[halves.length - 1] = halves[halves.length - 1 - i];
+ halves[halves.length - 1 - i] = q;
+ }
+ } // Visit this point. (Visiting coincident points isn’t necessary!)
+ else {
+ var d = Math.abs(x - +this._x.call(null, node.data));
+
+ if (d < radius) {
+ radius = d;
+ x0 = x - d;
+ x3 = x + d;
+ data = node.data;
+ }
+ }
+ }
+
+ return data;
+ }
+
+ function tree_remove(d) {
+ if (isNaN(x = +this._x.call(null, d))) return this; // ignore invalid points
+
+ var parent,
+ node = this._root,
+ retainer,
+ previous,
+ next,
+ x0 = this._x0,
+ x1 = this._x1,
+ x,
+ xm,
+ right,
+ i,
+ j; // If the tree is empty, initialize the root as a leaf.
+
+ if (!node) return this; // Find the leaf node for the point.
+ // While descending, also retain the deepest parent with a non-removed sibling.
+
+ if (node.length) while (true) {
+ if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;
+ if (!(parent = node, node = node[i = +right])) return this;
+ if (!node.length) break;
+ if (parent[i + 1 & 1]) retainer = parent, j = i;
+ } // Find the point to remove.
+
+ while (node.data !== d) if (!(previous = node, node = node.next)) return this;
+
+ if (next = node.next) delete node.next; // If there are multiple coincident points, remove just the point.
+
+ if (previous) return next ? previous.next = next : delete previous.next, this; // If this is the root point, remove it.
+
+ if (!parent) return this._root = next, this; // Remove this leaf.
+
+ next ? parent[i] = next : delete parent[i]; // If the parent now contains exactly one leaf, collapse superfluous parents.
+
+ if ((node = parent[0] || parent[1]) && node === (parent[1] || parent[0]) && !node.length) {
+ if (retainer) retainer[j] = node;else this._root = node;
+ }
+
+ return this;
+ }
+
+ function removeAll(data) {
+ for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);
+
+ return this;
+ }
+
+ function tree_root() {
+ return this._root;
+ }
+
+ function tree_size() {
+ var size = 0;
+ this.visit(function (node) {
+ if (!node.length) do ++size; while (node = node.next);
+ });
+ return size;
+ }
+
+ function tree_visit(callback) {
+ var halves = [],
+ q,
+ node = this._root,
+ child,
+ x0,
+ x1;
+ if (node) halves.push(new Half(node, this._x0, this._x1));
+
+ while (q = halves.pop()) {
+ if (!callback(node = q.node, x0 = q.x0, x1 = q.x1) && node.length) {
+ var xm = (x0 + x1) / 2;
+ if (child = node[1]) halves.push(new Half(child, xm, x1));
+ if (child = node[0]) halves.push(new Half(child, x0, xm));
+ }
+ }
+
+ return this;
+ }
+
+ function tree_visitAfter(callback) {
+ var halves = [],
+ next = [],
+ q;
+ if (this._root) halves.push(new Half(this._root, this._x0, this._x1));
+
+ while (q = halves.pop()) {
+ var node = q.node;
+
+ if (node.length) {
+ var child,
+ x0 = q.x0,
+ x1 = q.x1,
+ xm = (x0 + x1) / 2;
+ if (child = node[0]) halves.push(new Half(child, x0, xm));
+ if (child = node[1]) halves.push(new Half(child, xm, x1));
+ }
+
+ next.push(q);
+ }
+
+ while (q = next.pop()) {
+ callback(q.node, q.x0, q.x1);
+ }
+
+ return this;
+ }
+
+ function defaultX(d) {
+ return d[0];
+ }
+
+ function tree_x(_) {
+ return arguments.length ? (this._x = _, this) : this._x;
+ }
+
+ function binarytree(nodes, x) {
+ var tree = new Binarytree(x == null ? defaultX : x, NaN, NaN);
+ return nodes == null ? tree : tree.addAll(nodes);
+ }
+
+ function Binarytree(x, x0, x1) {
+ this._x = x;
+ this._x0 = x0;
+ this._x1 = x1;
+ this._root = undefined;
+ }
+
+ function leaf_copy(leaf) {
+ var copy = {
+ data: leaf.data
+ },
+ next = copy;
+
+ while (leaf = leaf.next) next = next.next = {
+ data: leaf.data
+ };
+
+ return copy;
+ }
+
+ var treeProto = binarytree.prototype = Binarytree.prototype;
+
+ treeProto.copy = function () {
+ var copy = new Binarytree(this._x, this._x0, this._x1),
+ node = this._root,
+ nodes,
+ child;
+ if (!node) return copy;
+ if (!node.length) return copy._root = leaf_copy(node), copy;
+ nodes = [{
+ source: node,
+ target: copy._root = new Array(2)
+ }];
+
+ while (node = nodes.pop()) {
+ for (var i = 0; i < 2; ++i) {
+ if (child = node.source[i]) {
+ if (child.length) nodes.push({
+ source: child,
+ target: node.target[i] = new Array(2)
+ });else node.target[i] = leaf_copy(child);
+ }
+ }
+ }
+
+ return copy;
+ };
+
+ treeProto.add = tree_add;
+ treeProto.addAll = addAll;
+ treeProto.cover = tree_cover;
+ treeProto.data = tree_data;
+ treeProto.extent = tree_extent;
+ treeProto.find = tree_find;
+ treeProto.remove = tree_remove;
+ treeProto.removeAll = removeAll;
+ treeProto.root = tree_root;
+ treeProto.size = tree_size;
+ treeProto.visit = tree_visit;
+ treeProto.visitAfter = tree_visitAfter;
+ treeProto.x = tree_x;
+ exports.binarytree = binarytree;
+ Object.defineProperty(exports, '__esModule', {
+ value: true
+ });
+});
+
+/***/ }),
+
+/***/ 624:
+/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, {
+ "forceCenter": function() { return /* reexport */ center; },
+ "forceCollide": function() { return /* reexport */ collide; },
+ "forceLink": function() { return /* reexport */ src_link; },
+ "forceManyBody": function() { return /* reexport */ manyBody; },
+ "forceRadial": function() { return /* reexport */ radial; },
+ "forceSimulation": function() { return /* reexport */ simulation; },
+ "forceX": function() { return /* reexport */ src_x; },
+ "forceY": function() { return /* reexport */ src_y; },
+ "forceZ": function() { return /* reexport */ src_z; }
+});
+
+;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/center.js
+/* harmony default export */ function center(x, y, z) {
+ var nodes,
+ strength = 1;
+ if (x == null) x = 0;
+ if (y == null) y = 0;
+ if (z == null) z = 0;
+
+ function force() {
+ var i,
+ n = nodes.length,
+ node,
+ sx = 0,
+ sy = 0,
+ sz = 0;
+
+ for (i = 0; i < n; ++i) {
+ node = nodes[i], sx += node.x || 0, sy += node.y || 0, sz += node.z || 0;
+ }
+
+ for (sx = (sx / n - x) * strength, sy = (sy / n - y) * strength, sz = (sz / n - z) * strength, i = 0; i < n; ++i) {
+ node = nodes[i];
+
+ if (sx) {
+ node.x -= sx;
+ }
+
+ if (sy) {
+ node.y -= sy;
+ }
+
+ if (sz) {
+ node.z -= sz;
+ }
+ }
+ }
+
+ force.initialize = function (_) {
+ nodes = _;
+ };
+
+ force.x = function (_) {
+ return arguments.length ? (x = +_, force) : x;
+ };
+
+ force.y = function (_) {
+ return arguments.length ? (y = +_, force) : y;
+ };
+
+ force.z = function (_) {
+ return arguments.length ? (z = +_, force) : z;
+ };
+
+ force.strength = function (_) {
+ return arguments.length ? (strength = +_, force) : strength;
+ };
+
+ return force;
+}
+// EXTERNAL MODULE: ./node_modules/d3-binarytree/dist/d3-binarytree.js
+var d3_binarytree = __webpack_require__(265);
+;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/add.js
+/* harmony default export */ function add(d) {
+ const x = +this._x.call(null, d),
+ y = +this._y.call(null, d);
+ return add_add(this.cover(x, y), x, y, d);
+}
+
+function add_add(tree, x, y, d) {
+ if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points
+
+ var parent,
+ node = tree._root,
+ leaf = {
+ data: d
+ },
+ x0 = tree._x0,
+ y0 = tree._y0,
+ x1 = tree._x1,
+ y1 = tree._y1,
+ xm,
+ ym,
+ xp,
+ yp,
+ right,
+ bottom,
+ i,
+ j; // If the tree is empty, initialize the root as a leaf.
+
+ if (!node) return tree._root = leaf, tree; // Find the existing leaf for the new point, or add it.
+
+ while (node.length) {
+ if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;
+ if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;else y1 = ym;
+ if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;
+ } // Is the new point is exactly coincident with the existing point?
+
+
+ xp = +tree._x.call(null, node.data);
+ yp = +tree._y.call(null, node.data);
+ if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree; // Otherwise, split the leaf node until the old and new point are separated.
+
+ do {
+ parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);
+ if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;
+ if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;else y1 = ym;
+ } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | xp >= xm));
+
+ return parent[j] = node, parent[i] = leaf, tree;
+}
+
+function addAll(data) {
+ var d,
+ i,
+ n = data.length,
+ x,
+ y,
+ xz = new Array(n),
+ yz = new Array(n),
+ x0 = Infinity,
+ y0 = Infinity,
+ x1 = -Infinity,
+ y1 = -Infinity; // Compute the points and their extent.
+
+ for (i = 0; i < n; ++i) {
+ if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;
+ xz[i] = x;
+ yz[i] = y;
+ if (x < x0) x0 = x;
+ if (x > x1) x1 = x;
+ if (y < y0) y0 = y;
+ if (y > y1) y1 = y;
+ } // If there were no (valid) points, abort.
+
+
+ if (x0 > x1 || y0 > y1) return this; // Expand the tree to cover the new points.
+
+ this.cover(x0, y0).cover(x1, y1); // Add the new points.
+
+ for (i = 0; i < n; ++i) {
+ add_add(this, xz[i], yz[i], data[i]);
+ }
+
+ return this;
+}
+;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/cover.js
+/* harmony default export */ function cover(x, y) {
+ if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points
+
+ var x0 = this._x0,
+ y0 = this._y0,
+ x1 = this._x1,
+ y1 = this._y1; // If the quadtree has no extent, initialize them.
+ // Integer extent are necessary so that if we later double the extent,
+ // the existing quadrant boundaries don’t change due to floating point error!
+
+ if (isNaN(x0)) {
+ x1 = (x0 = Math.floor(x)) + 1;
+ y1 = (y0 = Math.floor(y)) + 1;
+ } // Otherwise, double repeatedly to cover.
+ else {
+ var z = x1 - x0 || 1,
+ node = this._root,
+ parent,
+ i;
+
+ while (x0 > x || x >= x1 || y0 > y || y >= y1) {
+ i = (y < y0) << 1 | x < x0;
+ parent = new Array(4), parent[i] = node, node = parent, z *= 2;
+
+ switch (i) {
+ case 0:
+ x1 = x0 + z, y1 = y0 + z;
+ break;
+
+ case 1:
+ x0 = x1 - z, y1 = y0 + z;
+ break;
+
+ case 2:
+ x1 = x0 + z, y0 = y1 - z;
+ break;
+
+ case 3:
+ x0 = x1 - z, y0 = y1 - z;
+ break;
+ }
+ }
+
+ if (this._root && this._root.length) this._root = node;
+ }
+
+ this._x0 = x0;
+ this._y0 = y0;
+ this._x1 = x1;
+ this._y1 = y1;
+ return this;
+}
+;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/data.js
+/* harmony default export */ function data() {
+ var data = [];
+ this.visit(function (node) {
+ if (!node.length) do data.push(node.data); while (node = node.next);
+ });
+ return data;
+}
+;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/extent.js
+/* harmony default export */ function extent(_) {
+ return arguments.length ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1]) : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];
+}
+;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/quad.js
+/* harmony default export */ function quad(node, x0, y0, x1, y1) {
+ this.node = node;
+ this.x0 = x0;
+ this.y0 = y0;
+ this.x1 = x1;
+ this.y1 = y1;
+}
+;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/find.js
+
+/* harmony default export */ function find(x, y, radius) {
+ var data,
+ x0 = this._x0,
+ y0 = this._y0,
+ x1,
+ y1,
+ x2,
+ y2,
+ x3 = this._x1,
+ y3 = this._y1,
+ quads = [],
+ node = this._root,
+ q,
+ i;
+ if (node) quads.push(new quad(node, x0, y0, x3, y3));
+ if (radius == null) radius = Infinity;else {
+ x0 = x - radius, y0 = y - radius;
+ x3 = x + radius, y3 = y + radius;
+ radius *= radius;
+ }
+
+ while (q = quads.pop()) {
+ // Stop searching if this quadrant can’t contain a closer node.
+ if (!(node = q.node) || (x1 = q.x0) > x3 || (y1 = q.y0) > y3 || (x2 = q.x1) < x0 || (y2 = q.y1) < y0) continue; // Bisect the current quadrant.
+
+ if (node.length) {
+ var xm = (x1 + x2) / 2,
+ ym = (y1 + y2) / 2;
+ quads.push(new quad(node[3], xm, ym, x2, y2), new quad(node[2], x1, ym, xm, y2), new quad(node[1], xm, y1, x2, ym), new quad(node[0], x1, y1, xm, ym)); // Visit the closest quadrant first.
+
+ if (i = (y >= ym) << 1 | x >= xm) {
+ q = quads[quads.length - 1];
+ quads[quads.length - 1] = quads[quads.length - 1 - i];
+ quads[quads.length - 1 - i] = q;
+ }
+ } // Visit this point. (Visiting coincident points isn’t necessary!)
+ else {
+ var dx = x - +this._x.call(null, node.data),
+ dy = y - +this._y.call(null, node.data),
+ d2 = dx * dx + dy * dy;
+
+ if (d2 < radius) {
+ var d = Math.sqrt(radius = d2);
+ x0 = x - d, y0 = y - d;
+ x3 = x + d, y3 = y + d;
+ data = node.data;
+ }
+ }
+ }
+
+ return data;
+}
+;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/remove.js
+/* harmony default export */ function remove(d) {
+ if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points
+
+ var parent,
+ node = this._root,
+ retainer,
+ previous,
+ next,
+ x0 = this._x0,
+ y0 = this._y0,
+ x1 = this._x1,
+ y1 = this._y1,
+ x,
+ y,
+ xm,
+ ym,
+ right,
+ bottom,
+ i,
+ j; // If the tree is empty, initialize the root as a leaf.
+
+ if (!node) return this; // Find the leaf node for the point.
+ // While descending, also retain the deepest parent with a non-removed sibling.
+
+ if (node.length) while (true) {
+ if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;
+ if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;else y1 = ym;
+ if (!(parent = node, node = node[i = bottom << 1 | right])) return this;
+ if (!node.length) break;
+ if (parent[i + 1 & 3] || parent[i + 2 & 3] || parent[i + 3 & 3]) retainer = parent, j = i;
+ } // Find the point to remove.
+
+ while (node.data !== d) if (!(previous = node, node = node.next)) return this;
+
+ if (next = node.next) delete node.next; // If there are multiple coincident points, remove just the point.
+
+ if (previous) return next ? previous.next = next : delete previous.next, this; // If this is the root point, remove it.
+
+ if (!parent) return this._root = next, this; // Remove this leaf.
+
+ next ? parent[i] = next : delete parent[i]; // If the parent now contains exactly one leaf, collapse superfluous parents.
+
+ if ((node = parent[0] || parent[1] || parent[2] || parent[3]) && node === (parent[3] || parent[2] || parent[1] || parent[0]) && !node.length) {
+ if (retainer) retainer[j] = node;else this._root = node;
+ }
+
+ return this;
+}
+function removeAll(data) {
+ for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);
+
+ return this;
+}
+;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/root.js
+/* harmony default export */ function root() {
+ return this._root;
+}
+;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/size.js
+/* harmony default export */ function size() {
+ var size = 0;
+ this.visit(function (node) {
+ if (!node.length) do ++size; while (node = node.next);
+ });
+ return size;
+}
+;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/visit.js
+
+/* harmony default export */ function visit(callback) {
+ var quads = [],
+ q,
+ node = this._root,
+ child,
+ x0,
+ y0,
+ x1,
+ y1;
+ if (node) quads.push(new quad(node, this._x0, this._y0, this._x1, this._y1));
+
+ while (q = quads.pop()) {
+ if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {
+ var xm = (x0 + x1) / 2,
+ ym = (y0 + y1) / 2;
+ if (child = node[3]) quads.push(new quad(child, xm, ym, x1, y1));
+ if (child = node[2]) quads.push(new quad(child, x0, ym, xm, y1));
+ if (child = node[1]) quads.push(new quad(child, xm, y0, x1, ym));
+ if (child = node[0]) quads.push(new quad(child, x0, y0, xm, ym));
+ }
+ }
+
+ return this;
+}
+;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/visitAfter.js
+
+/* harmony default export */ function visitAfter(callback) {
+ var quads = [],
+ next = [],
+ q;
+ if (this._root) quads.push(new quad(this._root, this._x0, this._y0, this._x1, this._y1));
+
+ while (q = quads.pop()) {
+ var node = q.node;
+
+ if (node.length) {
+ var child,
+ x0 = q.x0,
+ y0 = q.y0,
+ x1 = q.x1,
+ y1 = q.y1,
+ xm = (x0 + x1) / 2,
+ ym = (y0 + y1) / 2;
+ if (child = node[0]) quads.push(new quad(child, x0, y0, xm, ym));
+ if (child = node[1]) quads.push(new quad(child, xm, y0, x1, ym));
+ if (child = node[2]) quads.push(new quad(child, x0, ym, xm, y1));
+ if (child = node[3]) quads.push(new quad(child, xm, ym, x1, y1));
+ }
+
+ next.push(q);
+ }
+
+ while (q = next.pop()) {
+ callback(q.node, q.x0, q.y0, q.x1, q.y1);
+ }
+
+ return this;
+}
+;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/x.js
+function defaultX(d) {
+ return d[0];
+}
+/* harmony default export */ function x(_) {
+ return arguments.length ? (this._x = _, this) : this._x;
+}
+;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/y.js
+function defaultY(d) {
+ return d[1];
+}
+/* harmony default export */ function y(_) {
+ return arguments.length ? (this._y = _, this) : this._y;
+}
+;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/quadtree.js
+
+
+
+
+
+
+
+
+
+
+
+
+function quadtree(nodes, x, y) {
+ var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);
+ return nodes == null ? tree : tree.addAll(nodes);
+}
+
+function Quadtree(x, y, x0, y0, x1, y1) {
+ this._x = x;
+ this._y = y;
+ this._x0 = x0;
+ this._y0 = y0;
+ this._x1 = x1;
+ this._y1 = y1;
+ this._root = undefined;
+}
+
+function leaf_copy(leaf) {
+ var copy = {
+ data: leaf.data
+ },
+ next = copy;
+
+ while (leaf = leaf.next) next = next.next = {
+ data: leaf.data
+ };
+
+ return copy;
+}
+
+var treeProto = quadtree.prototype = Quadtree.prototype;
+
+treeProto.copy = function () {
+ var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),
+ node = this._root,
+ nodes,
+ child;
+ if (!node) return copy;
+ if (!node.length) return copy._root = leaf_copy(node), copy;
+ nodes = [{
+ source: node,
+ target: copy._root = new Array(4)
+ }];
+
+ while (node = nodes.pop()) {
+ for (var i = 0; i < 4; ++i) {
+ if (child = node.source[i]) {
+ if (child.length) nodes.push({
+ source: child,
+ target: node.target[i] = new Array(4)
+ });else node.target[i] = leaf_copy(child);
+ }
+ }
+ }
+
+ return copy;
+};
+
+treeProto.add = add;
+treeProto.addAll = addAll;
+treeProto.cover = cover;
+treeProto.data = data;
+treeProto.extent = extent;
+treeProto.find = find;
+treeProto.remove = remove;
+treeProto.removeAll = removeAll;
+treeProto.root = root;
+treeProto.size = size;
+treeProto.visit = visit;
+treeProto.visitAfter = visitAfter;
+treeProto.x = x;
+treeProto.y = y;
+// EXTERNAL MODULE: ./node_modules/d3-octree/dist/d3-octree.js
+var d3_octree = __webpack_require__(681);
+;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/constant.js
+/* harmony default export */ function constant(x) {
+ return function () {
+ return x;
+ };
+}
+;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/jiggle.js
+/* harmony default export */ function jiggle(random) {
+ return (random() - 0.5) * 1e-6;
+}
+;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/collide.js
+
+
+
+
+
+
+function collide_x(d) {
+ return d.x + d.vx;
+}
+
+function collide_y(d) {
+ return d.y + d.vy;
+}
+
+function z(d) {
+ return d.z + d.vz;
+}
+
+/* harmony default export */ function collide(radius) {
+ var nodes,
+ nDim,
+ radii,
+ random,
+ strength = 1,
+ iterations = 1;
+ if (typeof radius !== "function") radius = constant(radius == null ? 1 : +radius);
+
+ function force() {
+ var i,
+ n = nodes.length,
+ tree,
+ node,
+ xi,
+ yi,
+ zi,
+ ri,
+ ri2;
+
+ for (var k = 0; k < iterations; ++k) {
+ tree = (nDim === 1 ? (0,d3_binarytree.binarytree)(nodes, collide_x) : nDim === 2 ? quadtree(nodes, collide_x, collide_y) : nDim === 3 ? (0,d3_octree.octree)(nodes, collide_x, collide_y, z) : null).visitAfter(prepare);
+
+ for (i = 0; i < n; ++i) {
+ node = nodes[i];
+ ri = radii[node.index], ri2 = ri * ri;
+ xi = node.x + node.vx;
+
+ if (nDim > 1) {
+ yi = node.y + node.vy;
+ }
+
+ if (nDim > 2) {
+ zi = node.z + node.vz;
+ }
+
+ tree.visit(apply);
+ }
+ }
+
+ function apply(treeNode, arg1, arg2, arg3, arg4, arg5, arg6) {
+ var args = [arg1, arg2, arg3, arg4, arg5, arg6];
+ var x0 = args[0],
+ y0 = args[1],
+ z0 = args[2],
+ x1 = args[nDim],
+ y1 = args[nDim + 1],
+ z1 = args[nDim + 2];
+ var data = treeNode.data,
+ rj = treeNode.r,
+ r = ri + rj;
+
+ if (data) {
+ if (data.index > node.index) {
+ var x = xi - data.x - data.vx,
+ y = nDim > 1 ? yi - data.y - data.vy : 0,
+ z = nDim > 2 ? zi - data.z - data.vz : 0,
+ l = x * x + y * y + z * z;
+
+ if (l < r * r) {
+ if (x === 0) x = jiggle(random), l += x * x;
+ if (nDim > 1 && y === 0) y = jiggle(random), l += y * y;
+ if (nDim > 2 && z === 0) z = jiggle(random), l += z * z;
+ l = (r - (l = Math.sqrt(l))) / l * strength;
+ node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));
+
+ if (nDim > 1) {
+ node.vy += (y *= l) * r;
+ }
+
+ if (nDim > 2) {
+ node.vz += (z *= l) * r;
+ }
+
+ data.vx -= x * (r = 1 - r);
+
+ if (nDim > 1) {
+ data.vy -= y * r;
+ }
+
+ if (nDim > 2) {
+ data.vz -= z * r;
+ }
+ }
+ }
+
+ return;
+ }
+
+ return x0 > xi + r || x1 < xi - r || nDim > 1 && (y0 > yi + r || y1 < yi - r) || nDim > 2 && (z0 > zi + r || z1 < zi - r);
+ }
+ }
+
+ function prepare(treeNode) {
+ if (treeNode.data) return treeNode.r = radii[treeNode.data.index];
+
+ for (var i = treeNode.r = 0; i < Math.pow(2, nDim); ++i) {
+ if (treeNode[i] && treeNode[i].r > treeNode.r) {
+ treeNode.r = treeNode[i].r;
+ }
+ }
+ }
+
+ function initialize() {
+ if (!nodes) return;
+ var i,
+ n = nodes.length,
+ node;
+ radii = new Array(n);
+
+ for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);
+ }
+
+ force.initialize = function (_nodes, ...args) {
+ nodes = _nodes;
+ random = args.find(arg => typeof arg === 'function') || Math.random;
+ nDim = args.find(arg => [1, 2, 3].includes(arg)) || 2;
+ initialize();
+ };
+
+ force.iterations = function (_) {
+ return arguments.length ? (iterations = +_, force) : iterations;
+ };
+
+ force.strength = function (_) {
+ return arguments.length ? (strength = +_, force) : strength;
+ };
+
+ force.radius = function (_) {
+ return arguments.length ? (radius = typeof _ === "function" ? _ : constant(+_), initialize(), force) : radius;
+ };
+
+ return force;
+}
+;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/link.js
+
+
+
+function index(d) {
+ return d.index;
+}
+
+function link_find(nodeById, nodeId) {
+ var node = nodeById.get(nodeId);
+ if (!node) throw new Error("node not found: " + nodeId);
+ return node;
+}
+
+/* harmony default export */ function src_link(links) {
+ var id = index,
+ strength = defaultStrength,
+ strengths,
+ distance = constant(30),
+ distances,
+ nodes,
+ nDim,
+ count,
+ bias,
+ random,
+ iterations = 1;
+ if (links == null) links = [];
+
+ function defaultStrength(link) {
+ return 1 / Math.min(count[link.source.index], count[link.target.index]);
+ }
+
+ function force(alpha) {
+ for (var k = 0, n = links.length; k < iterations; ++k) {
+ for (var i = 0, link, source, target, x = 0, y = 0, z = 0, l, b; i < n; ++i) {
+ link = links[i], source = link.source, target = link.target;
+ x = target.x + target.vx - source.x - source.vx || jiggle(random);
+
+ if (nDim > 1) {
+ y = target.y + target.vy - source.y - source.vy || jiggle(random);
+ }
+
+ if (nDim > 2) {
+ z = target.z + target.vz - source.z - source.vz || jiggle(random);
+ }
+
+ l = Math.sqrt(x * x + y * y + z * z);
+ l = (l - distances[i]) / l * alpha * strengths[i];
+ x *= l, y *= l, z *= l;
+ target.vx -= x * (b = bias[i]);
+
+ if (nDim > 1) {
+ target.vy -= y * b;
+ }
+
+ if (nDim > 2) {
+ target.vz -= z * b;
+ }
+
+ source.vx += x * (b = 1 - b);
+
+ if (nDim > 1) {
+ source.vy += y * b;
+ }
+
+ if (nDim > 2) {
+ source.vz += z * b;
+ }
+ }
+ }
+ }
+
+ function initialize() {
+ if (!nodes) return;
+ var i,
+ n = nodes.length,
+ m = links.length,
+ nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d])),
+ link;
+
+ for (i = 0, count = new Array(n); i < m; ++i) {
+ link = links[i], link.index = i;
+ if (typeof link.source !== "object") link.source = link_find(nodeById, link.source);
+ if (typeof link.target !== "object") link.target = link_find(nodeById, link.target);
+ count[link.source.index] = (count[link.source.index] || 0) + 1;
+ count[link.target.index] = (count[link.target.index] || 0) + 1;
+ }
+
+ for (i = 0, bias = new Array(m); i < m; ++i) {
+ link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);
+ }
+
+ strengths = new Array(m), initializeStrength();
+ distances = new Array(m), initializeDistance();
+ }
+
+ function initializeStrength() {
+ if (!nodes) return;
+
+ for (var i = 0, n = links.length; i < n; ++i) {
+ strengths[i] = +strength(links[i], i, links);
+ }
+ }
+
+ function initializeDistance() {
+ if (!nodes) return;
+
+ for (var i = 0, n = links.length; i < n; ++i) {
+ distances[i] = +distance(links[i], i, links);
+ }
+ }
+
+ force.initialize = function (_nodes, ...args) {
+ nodes = _nodes;
+ random = args.find(arg => typeof arg === 'function') || Math.random;
+ nDim = args.find(arg => [1, 2, 3].includes(arg)) || 2;
+ initialize();
+ };
+
+ force.links = function (_) {
+ return arguments.length ? (links = _, initialize(), force) : links;
+ };
+
+ force.id = function (_) {
+ return arguments.length ? (id = _, force) : id;
+ };
+
+ force.iterations = function (_) {
+ return arguments.length ? (iterations = +_, force) : iterations;
+ };
+
+ force.strength = function (_) {
+ return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initializeStrength(), force) : strength;
+ };
+
+ force.distance = function (_) {
+ return arguments.length ? (distance = typeof _ === "function" ? _ : constant(+_), initializeDistance(), force) : distance;
+ };
+
+ return force;
+}
+;// CONCATENATED MODULE: ./node_modules/d3-dispatch/src/dispatch.js
+var noop = {
+ value: () => {}
+};
+
+function dispatch() {
+ for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {
+ if (!(t = arguments[i] + "") || t in _ || /[\s.]/.test(t)) throw new Error("illegal type: " + t);
+ _[t] = [];
+ }
+
+ return new Dispatch(_);
+}
+
+function Dispatch(_) {
+ this._ = _;
+}
+
+function parseTypenames(typenames, types) {
+ return typenames.trim().split(/^|\s+/).map(function (t) {
+ var name = "",
+ i = t.indexOf(".");
+ if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
+ if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t);
+ return {
+ type: t,
+ name: name
+ };
+ });
+}
+
+Dispatch.prototype = dispatch.prototype = {
+ constructor: Dispatch,
+ on: function (typename, callback) {
+ var _ = this._,
+ T = parseTypenames(typename + "", _),
+ t,
+ i = -1,
+ n = T.length; // If no callback was specified, return the callback of the given type and name.
+
+ if (arguments.length < 2) {
+ while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;
+
+ return;
+ } // If a type was specified, set the callback for the given type and name.
+ // Otherwise, if a null callback was specified, remove callbacks of the given name.
+
+
+ if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback);
+
+ while (++i < n) {
+ if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);
+ }
+
+ return this;
+ },
+ copy: function () {
+ var copy = {},
+ _ = this._;
+
+ for (var t in _) copy[t] = _[t].slice();
+
+ return new Dispatch(copy);
+ },
+ call: function (type, that) {
+ if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];
+ if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
+
+ for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
+ },
+ apply: function (type, that, args) {
+ if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
+
+ for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
+ }
+};
+
+function get(type, name) {
+ for (var i = 0, n = type.length, c; i < n; ++i) {
+ if ((c = type[i]).name === name) {
+ return c.value;
+ }
+ }
+}
+
+function set(type, name, callback) {
+ for (var i = 0, n = type.length; i < n; ++i) {
+ if (type[i].name === name) {
+ type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));
+ break;
+ }
+ }
+
+ if (callback != null) type.push({
+ name: name,
+ value: callback
+ });
+ return type;
+}
+
+/* harmony default export */ var src_dispatch = (dispatch);
+;// CONCATENATED MODULE: ./node_modules/d3-timer/src/timer.js
+var timer_frame = 0,
+ // is an animation frame pending?
+timeout = 0,
+ // is a timeout pending?
+interval = 0,
+ // are any timers active?
+pokeDelay = 1000,
+ // how frequently we check for clock skew
+taskHead,
+ taskTail,
+ clockLast = 0,
+ clockNow = 0,
+ clockSkew = 0,
+ clock = typeof performance === "object" && performance.now ? performance : Date,
+ setFrame = false ? 0 : function (f) {
+ setTimeout(f, 17);
+};
+function now() {
+ return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);
+}
+
+function clearNow() {
+ clockNow = 0;
+}
+
+function Timer() {
+ this._call = this._time = this._next = null;
+}
+Timer.prototype = timer.prototype = {
+ constructor: Timer,
+ restart: function (callback, delay, time) {
+ if (typeof callback !== "function") throw new TypeError("callback is not a function");
+ time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);
+
+ if (!this._next && taskTail !== this) {
+ if (taskTail) taskTail._next = this;else taskHead = this;
+ taskTail = this;
+ }
+
+ this._call = callback;
+ this._time = time;
+ sleep();
+ },
+ stop: function () {
+ if (this._call) {
+ this._call = null;
+ this._time = Infinity;
+ sleep();
+ }
+ }
+};
+function timer(callback, delay, time) {
+ var t = new Timer();
+ t.restart(callback, delay, time);
+ return t;
+}
+function timerFlush() {
+ now(); // Get the current time, if not already set.
+
+ ++timer_frame; // Pretend we’ve set an alarm, if we haven’t already.
+
+ var t = taskHead,
+ e;
+
+ while (t) {
+ if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);
+ t = t._next;
+ }
+
+ --timer_frame;
+}
+
+function wake() {
+ clockNow = (clockLast = clock.now()) + clockSkew;
+ timer_frame = timeout = 0;
+
+ try {
+ timerFlush();
+ } finally {
+ timer_frame = 0;
+ nap();
+ clockNow = 0;
+ }
+}
+
+function poke() {
+ var now = clock.now(),
+ delay = now - clockLast;
+ if (delay > pokeDelay) clockSkew -= delay, clockLast = now;
+}
+
+function nap() {
+ var t0,
+ t1 = taskHead,
+ t2,
+ time = Infinity;
+
+ while (t1) {
+ if (t1._call) {
+ if (time > t1._time) time = t1._time;
+ t0 = t1, t1 = t1._next;
+ } else {
+ t2 = t1._next, t1._next = null;
+ t1 = t0 ? t0._next = t2 : taskHead = t2;
+ }
+ }
+
+ taskTail = t0;
+ sleep(time);
+}
+
+function sleep(time) {
+ if (timer_frame) return; // Soonest alarm already set, or will be.
+
+ if (timeout) timeout = clearTimeout(timeout);
+ var delay = time - clockNow; // Strictly less than if we recomputed clockNow.
+
+ if (delay > 24) {
+ if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);
+ if (interval) interval = clearInterval(interval);
+ } else {
+ if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);
+ timer_frame = 1, setFrame(wake);
+ }
+}
+;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/lcg.js
+// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use
+const a = 1664525;
+const c = 1013904223;
+const m = 4294967296; // 2^32
+
+/* harmony default export */ function lcg() {
+ let s = 1;
+ return () => (s = (a * s + c) % m) / m;
+}
+;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/simulation.js
+
+
+
+var MAX_DIMENSIONS = 3;
+function simulation_x(d) {
+ return d.x;
+}
+function simulation_y(d) {
+ return d.y;
+}
+function simulation_z(d) {
+ return d.z;
+}
+var initialRadius = 10,
+ initialAngleRoll = Math.PI * (3 - Math.sqrt(5)),
+ // Golden ratio angle
+initialAngleYaw = Math.PI * 20 / (9 + Math.sqrt(221)); // Markov irrational number
+
+/* harmony default export */ function simulation(nodes, numDimensions) {
+ numDimensions = numDimensions || 2;
+ var nDim = Math.min(MAX_DIMENSIONS, Math.max(1, Math.round(numDimensions))),
+ simulation,
+ alpha = 1,
+ alphaMin = 0.001,
+ alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),
+ alphaTarget = 0,
+ velocityDecay = 0.6,
+ forces = new Map(),
+ stepper = timer(step),
+ event = src_dispatch("tick", "end"),
+ random = lcg();
+ if (nodes == null) nodes = [];
+
+ function step() {
+ tick();
+ event.call("tick", simulation);
+
+ if (alpha < alphaMin) {
+ stepper.stop();
+ event.call("end", simulation);
+ }
+ }
+
+ function tick(iterations) {
+ var i,
+ n = nodes.length,
+ node;
+ if (iterations === undefined) iterations = 1;
+
+ for (var k = 0; k < iterations; ++k) {
+ alpha += (alphaTarget - alpha) * alphaDecay;
+ forces.forEach(function (force) {
+ force(alpha);
+ });
+
+ for (i = 0; i < n; ++i) {
+ node = nodes[i];
+ if (node.fx == null) node.x += node.vx *= velocityDecay;else node.x = node.fx, node.vx = 0;
+
+ if (nDim > 1) {
+ if (node.fy == null) node.y += node.vy *= velocityDecay;else node.y = node.fy, node.vy = 0;
+ }
+
+ if (nDim > 2) {
+ if (node.fz == null) node.z += node.vz *= velocityDecay;else node.z = node.fz, node.vz = 0;
+ }
+ }
+ }
+
+ return simulation;
+ }
+
+ function initializeNodes() {
+ for (var i = 0, n = nodes.length, node; i < n; ++i) {
+ node = nodes[i], node.index = i;
+ if (node.fx != null) node.x = node.fx;
+ if (node.fy != null) node.y = node.fy;
+ if (node.fz != null) node.z = node.fz;
+
+ if (isNaN(node.x) || nDim > 1 && isNaN(node.y) || nDim > 2 && isNaN(node.z)) {
+ var radius = initialRadius * (nDim > 2 ? Math.cbrt(0.5 + i) : nDim > 1 ? Math.sqrt(0.5 + i) : i),
+ rollAngle = i * initialAngleRoll,
+ yawAngle = i * initialAngleYaw;
+
+ if (nDim === 1) {
+ node.x = radius;
+ } else if (nDim === 2) {
+ node.x = radius * Math.cos(rollAngle);
+ node.y = radius * Math.sin(rollAngle);
+ } else {
+ // 3 dimensions: use spherical distribution along 2 irrational number angles
+ node.x = radius * Math.sin(rollAngle) * Math.cos(yawAngle);
+ node.y = radius * Math.cos(rollAngle);
+ node.z = radius * Math.sin(rollAngle) * Math.sin(yawAngle);
+ }
+ }
+
+ if (isNaN(node.vx) || nDim > 1 && isNaN(node.vy) || nDim > 2 && isNaN(node.vz)) {
+ node.vx = 0;
+
+ if (nDim > 1) {
+ node.vy = 0;
+ }
+
+ if (nDim > 2) {
+ node.vz = 0;
+ }
+ }
+ }
+ }
+
+ function initializeForce(force) {
+ if (force.initialize) force.initialize(nodes, random, nDim);
+ return force;
+ }
+
+ initializeNodes();
+ return simulation = {
+ tick: tick,
+ restart: function () {
+ return stepper.restart(step), simulation;
+ },
+ stop: function () {
+ return stepper.stop(), simulation;
+ },
+ numDimensions: function (_) {
+ return arguments.length ? (nDim = Math.min(MAX_DIMENSIONS, Math.max(1, Math.round(_))), forces.forEach(initializeForce), simulation) : nDim;
+ },
+ nodes: function (_) {
+ return arguments.length ? (nodes = _, initializeNodes(), forces.forEach(initializeForce), simulation) : nodes;
+ },
+ alpha: function (_) {
+ return arguments.length ? (alpha = +_, simulation) : alpha;
+ },
+ alphaMin: function (_) {
+ return arguments.length ? (alphaMin = +_, simulation) : alphaMin;
+ },
+ alphaDecay: function (_) {
+ return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;
+ },
+ alphaTarget: function (_) {
+ return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;
+ },
+ velocityDecay: function (_) {
+ return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;
+ },
+ randomSource: function (_) {
+ return arguments.length ? (random = _, forces.forEach(initializeForce), simulation) : random;
+ },
+ force: function (name, _) {
+ return arguments.length > 1 ? (_ == null ? forces.delete(name) : forces.set(name, initializeForce(_)), simulation) : forces.get(name);
+ },
+ find: function () {
+ var args = Array.prototype.slice.call(arguments);
+ var x = args.shift() || 0,
+ y = (nDim > 1 ? args.shift() : null) || 0,
+ z = (nDim > 2 ? args.shift() : null) || 0,
+ radius = args.shift() || Infinity;
+ var i = 0,
+ n = nodes.length,
+ dx,
+ dy,
+ dz,
+ d2,
+ node,
+ closest;
+ radius *= radius;
+
+ for (i = 0; i < n; ++i) {
+ node = nodes[i];
+ dx = x - node.x;
+ dy = y - (node.y || 0);
+ dz = z - (node.z || 0);
+ d2 = dx * dx + dy * dy + dz * dz;
+ if (d2 < radius) closest = node, radius = d2;
+ }
+
+ return closest;
+ },
+ on: function (name, _) {
+ return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);
+ }
+ };
+}
+;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/manyBody.js
+
+
+
+
+
+
+/* harmony default export */ function manyBody() {
+ var nodes,
+ nDim,
+ node,
+ random,
+ alpha,
+ strength = constant(-30),
+ strengths,
+ distanceMin2 = 1,
+ distanceMax2 = Infinity,
+ theta2 = 0.81;
+
+ function force(_) {
+ var i,
+ n = nodes.length,
+ tree = (nDim === 1 ? (0,d3_binarytree.binarytree)(nodes, simulation_x) : nDim === 2 ? quadtree(nodes, simulation_x, simulation_y) : nDim === 3 ? (0,d3_octree.octree)(nodes, simulation_x, simulation_y, simulation_z) : null).visitAfter(accumulate);
+
+ for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);
+ }
+
+ function initialize() {
+ if (!nodes) return;
+ var i,
+ n = nodes.length,
+ node;
+ strengths = new Array(n);
+
+ for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);
+ }
+
+ function accumulate(treeNode) {
+ var strength = 0,
+ q,
+ c,
+ weight = 0,
+ x,
+ y,
+ z,
+ i;
+ var numChildren = treeNode.length; // For internal nodes, accumulate forces from children.
+
+ if (numChildren) {
+ for (x = y = z = i = 0; i < numChildren; ++i) {
+ if ((q = treeNode[i]) && (c = Math.abs(q.value))) {
+ strength += q.value, weight += c, x += c * (q.x || 0), y += c * (q.y || 0), z += c * (q.z || 0);
+ }
+ }
+
+ strength *= Math.sqrt(4 / numChildren); // scale accumulated strength according to number of dimensions
+
+ treeNode.x = x / weight;
+
+ if (nDim > 1) {
+ treeNode.y = y / weight;
+ }
+
+ if (nDim > 2) {
+ treeNode.z = z / weight;
+ }
+ } // For leaf nodes, accumulate forces from coincident nodes.
+ else {
+ q = treeNode;
+ q.x = q.data.x;
+
+ if (nDim > 1) {
+ q.y = q.data.y;
+ }
+
+ if (nDim > 2) {
+ q.z = q.data.z;
+ }
+
+ do strength += strengths[q.data.index]; while (q = q.next);
+ }
+
+ treeNode.value = strength;
+ }
+
+ function apply(treeNode, x1, arg1, arg2, arg3) {
+ if (!treeNode.value) return true;
+ var x2 = [arg1, arg2, arg3][nDim - 1];
+ var x = treeNode.x - node.x,
+ y = nDim > 1 ? treeNode.y - node.y : 0,
+ z = nDim > 2 ? treeNode.z - node.z : 0,
+ w = x2 - x1,
+ l = x * x + y * y + z * z; // Apply the Barnes-Hut approximation if possible.
+ // Limit forces for very close nodes; randomize direction if coincident.
+
+ if (w * w / theta2 < l) {
+ if (l < distanceMax2) {
+ if (x === 0) x = jiggle(random), l += x * x;
+ if (nDim > 1 && y === 0) y = jiggle(random), l += y * y;
+ if (nDim > 2 && z === 0) z = jiggle(random), l += z * z;
+ if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
+ node.vx += x * treeNode.value * alpha / l;
+
+ if (nDim > 1) {
+ node.vy += y * treeNode.value * alpha / l;
+ }
+
+ if (nDim > 2) {
+ node.vz += z * treeNode.value * alpha / l;
+ }
+ }
+
+ return true;
+ } // Otherwise, process points directly.
+ else if (treeNode.length || l >= distanceMax2) return; // Limit forces for very close nodes; randomize direction if coincident.
+
+
+ if (treeNode.data !== node || treeNode.next) {
+ if (x === 0) x = jiggle(random), l += x * x;
+ if (nDim > 1 && y === 0) y = jiggle(random), l += y * y;
+ if (nDim > 2 && z === 0) z = jiggle(random), l += z * z;
+ if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
+ }
+
+ do if (treeNode.data !== node) {
+ w = strengths[treeNode.data.index] * alpha / l;
+ node.vx += x * w;
+
+ if (nDim > 1) {
+ node.vy += y * w;
+ }
+
+ if (nDim > 2) {
+ node.vz += z * w;
+ }
+ } while (treeNode = treeNode.next);
+ }
+
+ force.initialize = function (_nodes, ...args) {
+ nodes = _nodes;
+ random = args.find(arg => typeof arg === 'function') || Math.random;
+ nDim = args.find(arg => [1, 2, 3].includes(arg)) || 2;
+ initialize();
+ };
+
+ force.strength = function (_) {
+ return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength;
+ };
+
+ force.distanceMin = function (_) {
+ return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);
+ };
+
+ force.distanceMax = function (_) {
+ return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);
+ };
+
+ force.theta = function (_) {
+ return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);
+ };
+
+ return force;
+}
+;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/radial.js
+
+/* harmony default export */ function radial(radius, x, y, z) {
+ var nodes,
+ nDim,
+ strength = constant(0.1),
+ strengths,
+ radiuses;
+ if (typeof radius !== "function") radius = constant(+radius);
+ if (x == null) x = 0;
+ if (y == null) y = 0;
+ if (z == null) z = 0;
+
+ function force(alpha) {
+ for (var i = 0, n = nodes.length; i < n; ++i) {
+ var node = nodes[i],
+ dx = node.x - x || 1e-6,
+ dy = (node.y || 0) - y || 1e-6,
+ dz = (node.z || 0) - z || 1e-6,
+ r = Math.sqrt(dx * dx + dy * dy + dz * dz),
+ k = (radiuses[i] - r) * strengths[i] * alpha / r;
+ node.vx += dx * k;
+
+ if (nDim > 1) {
+ node.vy += dy * k;
+ }
+
+ if (nDim > 2) {
+ node.vz += dz * k;
+ }
+ }
+ }
+
+ function initialize() {
+ if (!nodes) return;
+ var i,
+ n = nodes.length;
+ strengths = new Array(n);
+ radiuses = new Array(n);
+
+ for (i = 0; i < n; ++i) {
+ radiuses[i] = +radius(nodes[i], i, nodes);
+ strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);
+ }
+ }
+
+ force.initialize = function (initNodes, ...args) {
+ nodes = initNodes;
+ nDim = args.find(arg => [1, 2, 3].includes(arg)) || 2;
+ initialize();
+ };
+
+ force.strength = function (_) {
+ return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength;
+ };
+
+ force.radius = function (_) {
+ return arguments.length ? (radius = typeof _ === "function" ? _ : constant(+_), initialize(), force) : radius;
+ };
+
+ force.x = function (_) {
+ return arguments.length ? (x = +_, force) : x;
+ };
+
+ force.y = function (_) {
+ return arguments.length ? (y = +_, force) : y;
+ };
+
+ force.z = function (_) {
+ return arguments.length ? (z = +_, force) : z;
+ };
+
+ return force;
+}
+;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/x.js
+
+/* harmony default export */ function src_x(x) {
+ var strength = constant(0.1),
+ nodes,
+ strengths,
+ xz;
+ if (typeof x !== "function") x = constant(x == null ? 0 : +x);
+
+ function force(alpha) {
+ for (var i = 0, n = nodes.length, node; i < n; ++i) {
+ node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;
+ }
+ }
+
+ function initialize() {
+ if (!nodes) return;
+ var i,
+ n = nodes.length;
+ strengths = new Array(n);
+ xz = new Array(n);
+
+ for (i = 0; i < n; ++i) {
+ strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
+ }
+ }
+
+ force.initialize = function (_) {
+ nodes = _;
+ initialize();
+ };
+
+ force.strength = function (_) {
+ return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength;
+ };
+
+ force.x = function (_) {
+ return arguments.length ? (x = typeof _ === "function" ? _ : constant(+_), initialize(), force) : x;
+ };
+
+ return force;
+}
+;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/y.js
+
+/* harmony default export */ function src_y(y) {
+ var strength = constant(0.1),
+ nodes,
+ strengths,
+ yz;
+ if (typeof y !== "function") y = constant(y == null ? 0 : +y);
+
+ function force(alpha) {
+ for (var i = 0, n = nodes.length, node; i < n; ++i) {
+ node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;
+ }
+ }
+
+ function initialize() {
+ if (!nodes) return;
+ var i,
+ n = nodes.length;
+ strengths = new Array(n);
+ yz = new Array(n);
+
+ for (i = 0; i < n; ++i) {
+ strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
+ }
+ }
+
+ force.initialize = function (_) {
+ nodes = _;
+ initialize();
+ };
+
+ force.strength = function (_) {
+ return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength;
+ };
+
+ force.y = function (_) {
+ return arguments.length ? (y = typeof _ === "function" ? _ : constant(+_), initialize(), force) : y;
+ };
+
+ return force;
+}
+;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/z.js
+
+/* harmony default export */ function src_z(z) {
+ var strength = constant(0.1),
+ nodes,
+ strengths,
+ zz;
+ if (typeof z !== "function") z = constant(z == null ? 0 : +z);
+
+ function force(alpha) {
+ for (var i = 0, n = nodes.length, node; i < n; ++i) {
+ node = nodes[i], node.vz += (zz[i] - node.z) * strengths[i] * alpha;
+ }
+ }
+
+ function initialize() {
+ if (!nodes) return;
+ var i,
+ n = nodes.length;
+ strengths = new Array(n);
+ zz = new Array(n);
+
+ for (i = 0; i < n; ++i) {
+ strengths[i] = isNaN(zz[i] = +z(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
+ }
+ }
+
+ force.initialize = function (_) {
+ nodes = _;
+ initialize();
+ };
+
+ force.strength = function (_) {
+ return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength;
+ };
+
+ force.z = function (_) {
+ return arguments.length ? (z = typeof _ === "function" ? _ : constant(+_), initialize(), force) : z;
+ };
+
+ return force;
+}
+;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/index.js
+
+
+
+
+
+
+
+
+
+
+/***/ }),
+
+/***/ 681:
+/***/ (function(__unused_webpack_module, exports) {
+
+// https://github.com/vasturiano/d3-octree v0.2.0 Copyright 2021 Vasco Asturiano
+(function (global, factory) {
+ true ? factory(exports) : 0;
+})(this, function (exports) {
+ 'use strict';
+
+ function tree_add(d) {
+ var x = +this._x.call(null, d),
+ y = +this._y.call(null, d),
+ z = +this._z.call(null, d);
+ return add(this.cover(x, y, z), x, y, z, d);
+ }
+
+ function add(tree, x, y, z, d) {
+ if (isNaN(x) || isNaN(y) || isNaN(z)) return tree; // ignore invalid points
+
+ var parent,
+ node = tree._root,
+ leaf = {
+ data: d
+ },
+ x0 = tree._x0,
+ y0 = tree._y0,
+ z0 = tree._z0,
+ x1 = tree._x1,
+ y1 = tree._y1,
+ z1 = tree._z1,
+ xm,
+ ym,
+ zm,
+ xp,
+ yp,
+ zp,
+ right,
+ bottom,
+ deep,
+ i,
+ j; // If the tree is empty, initialize the root as a leaf.
+
+ if (!node) return tree._root = leaf, tree; // Find the existing leaf for the new point, or add it.
+
+ while (node.length) {
+ if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;
+ if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;else y1 = ym;
+ if (deep = z >= (zm = (z0 + z1) / 2)) z0 = zm;else z1 = zm;
+ if (parent = node, !(node = node[i = deep << 2 | bottom << 1 | right])) return parent[i] = leaf, tree;
+ } // Is the new point is exactly coincident with the existing point?
+
+
+ xp = +tree._x.call(null, node.data);
+ yp = +tree._y.call(null, node.data);
+ zp = +tree._z.call(null, node.data);
+ if (x === xp && y === yp && z === zp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree; // Otherwise, split the leaf node until the old and new point are separated.
+
+ do {
+ parent = parent ? parent[i] = new Array(8) : tree._root = new Array(8);
+ if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;
+ if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;else y1 = ym;
+ if (deep = z >= (zm = (z0 + z1) / 2)) z0 = zm;else z1 = zm;
+ } while ((i = deep << 2 | bottom << 1 | right) === (j = (zp >= zm) << 2 | (yp >= ym) << 1 | xp >= xm));
+
+ return parent[j] = node, parent[i] = leaf, tree;
+ }
+
+ function addAll(data) {
+ var d,
+ i,
+ n = data.length,
+ x,
+ y,
+ z,
+ xz = new Array(n),
+ yz = new Array(n),
+ zz = new Array(n),
+ x0 = Infinity,
+ y0 = Infinity,
+ z0 = Infinity,
+ x1 = -Infinity,
+ y1 = -Infinity,
+ z1 = -Infinity; // Compute the points and their extent.
+
+ for (i = 0; i < n; ++i) {
+ if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d)) || isNaN(z = +this._z.call(null, d))) continue;
+ xz[i] = x;
+ yz[i] = y;
+ zz[i] = z;
+ if (x < x0) x0 = x;
+ if (x > x1) x1 = x;
+ if (y < y0) y0 = y;
+ if (y > y1) y1 = y;
+ if (z < z0) z0 = z;
+ if (z > z1) z1 = z;
+ } // If there were no (valid) points, abort.
+
+
+ if (x0 > x1 || y0 > y1 || z0 > z1) return this; // Expand the tree to cover the new points.
+
+ this.cover(x0, y0, z0).cover(x1, y1, z1); // Add the new points.
+
+ for (i = 0; i < n; ++i) {
+ add(this, xz[i], yz[i], zz[i], data[i]);
+ }
+
+ return this;
+ }
+
+ function tree_cover(x, y, z) {
+ if (isNaN(x = +x) || isNaN(y = +y) || isNaN(z = +z)) return this; // ignore invalid points
+
+ var x0 = this._x0,
+ y0 = this._y0,
+ z0 = this._z0,
+ x1 = this._x1,
+ y1 = this._y1,
+ z1 = this._z1; // If the octree has no extent, initialize them.
+ // Integer extent are necessary so that if we later double the extent,
+ // the existing octant boundaries don’t change due to floating point error!
+
+ if (isNaN(x0)) {
+ x1 = (x0 = Math.floor(x)) + 1;
+ y1 = (y0 = Math.floor(y)) + 1;
+ z1 = (z0 = Math.floor(z)) + 1;
+ } // Otherwise, double repeatedly to cover.
+ else {
+ var t = x1 - x0 || 1,
+ node = this._root,
+ parent,
+ i;
+
+ while (x0 > x || x >= x1 || y0 > y || y >= y1 || z0 > z || z >= z1) {
+ i = (z < z0) << 2 | (y < y0) << 1 | x < x0;
+ parent = new Array(8), parent[i] = node, node = parent, t *= 2;
+
+ switch (i) {
+ case 0:
+ x1 = x0 + t, y1 = y0 + t, z1 = z0 + t;
+ break;
+
+ case 1:
+ x0 = x1 - t, y1 = y0 + t, z1 = z0 + t;
+ break;
+
+ case 2:
+ x1 = x0 + t, y0 = y1 - t, z1 = z0 + t;
+ break;
+
+ case 3:
+ x0 = x1 - t, y0 = y1 - t, z1 = z0 + t;
+ break;
+
+ case 4:
+ x1 = x0 + t, y1 = y0 + t, z0 = z1 - t;
+ break;
+
+ case 5:
+ x0 = x1 - t, y1 = y0 + t, z0 = z1 - t;
+ break;
+
+ case 6:
+ x1 = x0 + t, y0 = y1 - t, z0 = z1 - t;
+ break;
+
+ case 7:
+ x0 = x1 - t, y0 = y1 - t, z0 = z1 - t;
+ break;
+ }
+ }
+
+ if (this._root && this._root.length) this._root = node;
+ }
+
+ this._x0 = x0;
+ this._y0 = y0;
+ this._z0 = z0;
+ this._x1 = x1;
+ this._y1 = y1;
+ this._z1 = z1;
+ return this;
+ }
+
+ function tree_data() {
+ var data = [];
+ this.visit(function (node) {
+ if (!node.length) do data.push(node.data); while (node = node.next);
+ });
+ return data;
+ }
+
+ function tree_extent(_) {
+ return arguments.length ? this.cover(+_[0][0], +_[0][1], +_[0][2]).cover(+_[1][0], +_[1][1], +_[1][2]) : isNaN(this._x0) ? undefined : [[this._x0, this._y0, this._z0], [this._x1, this._y1, this._z1]];
+ }
+
+ function Octant(node, x0, y0, z0, x1, y1, z1) {
+ this.node = node;
+ this.x0 = x0;
+ this.y0 = y0;
+ this.z0 = z0;
+ this.x1 = x1;
+ this.y1 = y1;
+ this.z1 = z1;
+ }
+
+ function tree_find(x, y, z, radius) {
+ var data,
+ x0 = this._x0,
+ y0 = this._y0,
+ z0 = this._z0,
+ x1,
+ y1,
+ z1,
+ x2,
+ y2,
+ z2,
+ x3 = this._x1,
+ y3 = this._y1,
+ z3 = this._z1,
+ octs = [],
+ node = this._root,
+ q,
+ i;
+ if (node) octs.push(new Octant(node, x0, y0, z0, x3, y3, z3));
+ if (radius == null) radius = Infinity;else {
+ x0 = x - radius, y0 = y - radius, z0 = z - radius;
+ x3 = x + radius, y3 = y + radius, z3 = z + radius;
+ radius *= radius;
+ }
+
+ while (q = octs.pop()) {
+ // Stop searching if this octant can’t contain a closer node.
+ if (!(node = q.node) || (x1 = q.x0) > x3 || (y1 = q.y0) > y3 || (z1 = q.z0) > z3 || (x2 = q.x1) < x0 || (y2 = q.y1) < y0 || (z2 = q.z1) < z0) continue; // Bisect the current octant.
+
+ if (node.length) {
+ var xm = (x1 + x2) / 2,
+ ym = (y1 + y2) / 2,
+ zm = (z1 + z2) / 2;
+ octs.push(new Octant(node[7], xm, ym, zm, x2, y2, z2), new Octant(node[6], x1, ym, zm, xm, y2, z2), new Octant(node[5], xm, y1, zm, x2, ym, z2), new Octant(node[4], x1, y1, zm, xm, ym, z2), new Octant(node[3], xm, ym, z1, x2, y2, zm), new Octant(node[2], x1, ym, z1, xm, y2, zm), new Octant(node[1], xm, y1, z1, x2, ym, zm), new Octant(node[0], x1, y1, z1, xm, ym, zm)); // Visit the closest octant first.
+
+ if (i = (z >= zm) << 2 | (y >= ym) << 1 | x >= xm) {
+ q = octs[octs.length - 1];
+ octs[octs.length - 1] = octs[octs.length - 1 - i];
+ octs[octs.length - 1 - i] = q;
+ }
+ } // Visit this point. (Visiting coincident points isn’t necessary!)
+ else {
+ var dx = x - +this._x.call(null, node.data),
+ dy = y - +this._y.call(null, node.data),
+ dz = z - +this._z.call(null, node.data),
+ d2 = dx * dx + dy * dy + dz * dz;
+
+ if (d2 < radius) {
+ var d = Math.sqrt(radius = d2);
+ x0 = x - d, y0 = y - d, z0 = z - d;
+ x3 = x + d, y3 = y + d, z3 = z + d;
+ data = node.data;
+ }
+ }
+ }
+
+ return data;
+ }
+
+ function tree_remove(d) {
+ if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d)) || isNaN(z = +this._z.call(null, d))) return this; // ignore invalid points
+
+ var parent,
+ node = this._root,
+ retainer,
+ previous,
+ next,
+ x0 = this._x0,
+ y0 = this._y0,
+ z0 = this._z0,
+ x1 = this._x1,
+ y1 = this._y1,
+ z1 = this._z1,
+ x,
+ y,
+ z,
+ xm,
+ ym,
+ zm,
+ right,
+ bottom,
+ deep,
+ i,
+ j; // If the tree is empty, initialize the root as a leaf.
+
+ if (!node) return this; // Find the leaf node for the point.
+ // While descending, also retain the deepest parent with a non-removed sibling.
+
+ if (node.length) while (true) {
+ if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;
+ if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;else y1 = ym;
+ if (deep = z >= (zm = (z0 + z1) / 2)) z0 = zm;else z1 = zm;
+ if (!(parent = node, node = node[i = deep << 2 | bottom << 1 | right])) return this;
+ if (!node.length) break;
+ if (parent[i + 1 & 7] || parent[i + 2 & 7] || parent[i + 3 & 7] || parent[i + 4 & 7] || parent[i + 5 & 7] || parent[i + 6 & 7] || parent[i + 7 & 7]) retainer = parent, j = i;
+ } // Find the point to remove.
+
+ while (node.data !== d) if (!(previous = node, node = node.next)) return this;
+
+ if (next = node.next) delete node.next; // If there are multiple coincident points, remove just the point.
+
+ if (previous) return next ? previous.next = next : delete previous.next, this; // If this is the root point, remove it.
+
+ if (!parent) return this._root = next, this; // Remove this leaf.
+
+ next ? parent[i] = next : delete parent[i]; // If the parent now contains exactly one leaf, collapse superfluous parents.
+
+ if ((node = parent[0] || parent[1] || parent[2] || parent[3] || parent[4] || parent[5] || parent[6] || parent[7]) && node === (parent[7] || parent[6] || parent[5] || parent[4] || parent[3] || parent[2] || parent[1] || parent[0]) && !node.length) {
+ if (retainer) retainer[j] = node;else this._root = node;
+ }
+
+ return this;
+ }
+
+ function removeAll(data) {
+ for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);
+
+ return this;
+ }
+
+ function tree_root() {
+ return this._root;
+ }
+
+ function tree_size() {
+ var size = 0;
+ this.visit(function (node) {
+ if (!node.length) do ++size; while (node = node.next);
+ });
+ return size;
+ }
+
+ function tree_visit(callback) {
+ var octs = [],
+ q,
+ node = this._root,
+ child,
+ x0,
+ y0,
+ z0,
+ x1,
+ y1,
+ z1;
+ if (node) octs.push(new Octant(node, this._x0, this._y0, this._z0, this._x1, this._y1, this._z1));
+
+ while (q = octs.pop()) {
+ if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, z0 = q.z0, x1 = q.x1, y1 = q.y1, z1 = q.z1) && node.length) {
+ var xm = (x0 + x1) / 2,
+ ym = (y0 + y1) / 2,
+ zm = (z0 + z1) / 2;
+ if (child = node[7]) octs.push(new Octant(child, xm, ym, zm, x1, y1, z1));
+ if (child = node[6]) octs.push(new Octant(child, x0, ym, zm, xm, y1, z1));
+ if (child = node[5]) octs.push(new Octant(child, xm, y0, zm, x1, ym, z1));
+ if (child = node[4]) octs.push(new Octant(child, x0, y0, zm, xm, ym, z1));
+ if (child = node[3]) octs.push(new Octant(child, xm, ym, z0, x1, y1, zm));
+ if (child = node[2]) octs.push(new Octant(child, x0, ym, z0, xm, y1, zm));
+ if (child = node[1]) octs.push(new Octant(child, xm, y0, z0, x1, ym, zm));
+ if (child = node[0]) octs.push(new Octant(child, x0, y0, z0, xm, ym, zm));
+ }
+ }
+
+ return this;
+ }
+
+ function tree_visitAfter(callback) {
+ var octs = [],
+ next = [],
+ q;
+ if (this._root) octs.push(new Octant(this._root, this._x0, this._y0, this._z0, this._x1, this._y1, this._z1));
+
+ while (q = octs.pop()) {
+ var node = q.node;
+
+ if (node.length) {
+ var child,
+ x0 = q.x0,
+ y0 = q.y0,
+ z0 = q.z0,
+ x1 = q.x1,
+ y1 = q.y1,
+ z1 = q.z1,
+ xm = (x0 + x1) / 2,
+ ym = (y0 + y1) / 2,
+ zm = (z0 + z1) / 2;
+ if (child = node[0]) octs.push(new Octant(child, x0, y0, z0, xm, ym, zm));
+ if (child = node[1]) octs.push(new Octant(child, xm, y0, z0, x1, ym, zm));
+ if (child = node[2]) octs.push(new Octant(child, x0, ym, z0, xm, y1, zm));
+ if (child = node[3]) octs.push(new Octant(child, xm, ym, z0, x1, y1, zm));
+ if (child = node[4]) octs.push(new Octant(child, x0, y0, zm, xm, ym, z1));
+ if (child = node[5]) octs.push(new Octant(child, xm, y0, zm, x1, ym, z1));
+ if (child = node[6]) octs.push(new Octant(child, x0, ym, zm, xm, y1, z1));
+ if (child = node[7]) octs.push(new Octant(child, xm, ym, zm, x1, y1, z1));
+ }
+
+ next.push(q);
+ }
+
+ while (q = next.pop()) {
+ callback(q.node, q.x0, q.y0, q.z0, q.x1, q.y1, q.z1);
+ }
+
+ return this;
+ }
+
+ function defaultX(d) {
+ return d[0];
+ }
+
+ function tree_x(_) {
+ return arguments.length ? (this._x = _, this) : this._x;
+ }
+
+ function defaultY(d) {
+ return d[1];
+ }
+
+ function tree_y(_) {
+ return arguments.length ? (this._y = _, this) : this._y;
+ }
+
+ function defaultZ(d) {
+ return d[2];
+ }
+
+ function tree_z(_) {
+ return arguments.length ? (this._z = _, this) : this._z;
+ }
+
+ function octree(nodes, x, y, z) {
+ var tree = new Octree(x == null ? defaultX : x, y == null ? defaultY : y, z == null ? defaultZ : z, NaN, NaN, NaN, NaN, NaN, NaN);
+ return nodes == null ? tree : tree.addAll(nodes);
+ }
+
+ function Octree(x, y, z, x0, y0, z0, x1, y1, z1) {
+ this._x = x;
+ this._y = y;
+ this._z = z;
+ this._x0 = x0;
+ this._y0 = y0;
+ this._z0 = z0;
+ this._x1 = x1;
+ this._y1 = y1;
+ this._z1 = z1;
+ this._root = undefined;
+ }
+
+ function leaf_copy(leaf) {
+ var copy = {
+ data: leaf.data
+ },
+ next = copy;
+
+ while (leaf = leaf.next) next = next.next = {
+ data: leaf.data
+ };
+
+ return copy;
+ }
+
+ var treeProto = octree.prototype = Octree.prototype;
+
+ treeProto.copy = function () {
+ var copy = new Octree(this._x, this._y, this._z, this._x0, this._y0, this._z0, this._x1, this._y1, this._z1),
+ node = this._root,
+ nodes,
+ child;
+ if (!node) return copy;
+ if (!node.length) return copy._root = leaf_copy(node), copy;
+ nodes = [{
+ source: node,
+ target: copy._root = new Array(8)
+ }];
+
+ while (node = nodes.pop()) {
+ for (var i = 0; i < 8; ++i) {
+ if (child = node.source[i]) {
+ if (child.length) nodes.push({
+ source: child,
+ target: node.target[i] = new Array(8)
+ });else node.target[i] = leaf_copy(child);
+ }
+ }
+ }
+
+ return copy;
+ };
+
+ treeProto.add = tree_add;
+ treeProto.addAll = addAll;
+ treeProto.cover = tree_cover;
+ treeProto.data = tree_data;
+ treeProto.extent = tree_extent;
+ treeProto.find = tree_find;
+ treeProto.remove = tree_remove;
+ treeProto.removeAll = removeAll;
+ treeProto.root = tree_root;
+ treeProto.size = tree_size;
+ treeProto.visit = tree_visit;
+ treeProto.visitAfter = tree_visitAfter;
+ treeProto.x = tree_x;
+ treeProto.y = tree_y;
+ treeProto.z = tree_z;
+ exports.octree = octree;
+ Object.defineProperty(exports, '__esModule', {
+ value: true
+ });
+});
+
+/***/ })
+
+};
+; \ No newline at end of file
diff --git a/build/server/font-manifest.json b/build/server/font-manifest.json
new file mode 100644
index 0000000..0637a08
--- /dev/null
+++ b/build/server/font-manifest.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/build/server/pages-manifest.json b/build/server/pages-manifest.json
new file mode 100644
index 0000000..bfb04b4
--- /dev/null
+++ b/build/server/pages-manifest.json
@@ -0,0 +1,7 @@
+{
+ "/_app": "pages/_app.js",
+ "/": "pages/index.html",
+ "/_error": "pages/_error.js",
+ "/_document": "pages/_document.js",
+ "/404": "pages/404.html"
+} \ No newline at end of file
diff --git a/build/server/pages/404.html b/build/server/pages/404.html
new file mode 100644
index 0000000..d3dfff6
--- /dev/null
+++ b/build/server/pages/404.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><link rel="preload" href="/_next/static/css/120f2e2270820d49a21f.css" as="style"/><link rel="stylesheet" href="/_next/static/css/120f2e2270820d49a21f.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-a54b4f32bdc1ef890ddd.js"></script><script src="/_next/static/chunks/webpack-f6b94a473b4a21f6bdce.js" defer=""></script><script src="/_next/static/chunks/framework-0441fae7fd130f37dee1.js" defer=""></script><script src="/_next/static/chunks/main-a3a79aff3ff232b41814.js" defer=""></script><script src="/_next/static/chunks/pages/_app-5bb503dca4dae114eb0c.js" defer=""></script><script src="/_next/static/chunks/pages/_error-a0e21b9b223f827fe1f2.js" defer=""></script><script src="/_next/static/Ci3EcXz8ajkhs7MVidKTf/_buildManifest.js" defer=""></script><script src="/_next/static/Ci3EcXz8ajkhs7MVidKTf/_ssgManifest.js" defer=""></script></head><body><div id="__next"><style data-emotion="css-global o7558t">:host,:root{--chakra-ring-inset:var(--chakra-empty,/*!*/ /*!*/);--chakra-ring-offset-width:0px;--chakra-ring-offset-color:#fff;--chakra-ring-color:rgba(66, 153, 225, 0.6);--chakra-ring-offset-shadow:0 0 #0000;--chakra-ring-shadow:0 0 #0000;--chakra-space-x-reverse:0;--chakra-space-y-reverse:0;--chakra-colors-transparent:transparent;--chakra-colors-current:currentColor;--chakra-colors-black:#000000;--chakra-colors-white:#FFFFFF;--chakra-colors-whiteAlpha-50:rgba(255, 255, 255, 0.04);--chakra-colors-whiteAlpha-100:rgba(255, 255, 255, 0.06);--chakra-colors-whiteAlpha-200:rgba(255, 255, 255, 0.08);--chakra-colors-whiteAlpha-300:rgba(255, 255, 255, 0.16);--chakra-colors-whiteAlpha-400:rgba(255, 255, 255, 0.24);--chakra-colors-whiteAlpha-500:rgba(255, 255, 255, 0.36);--chakra-colors-whiteAlpha-600:rgba(255, 255, 255, 0.48);--chakra-colors-whiteAlpha-700:rgba(255, 255, 255, 0.64);--chakra-colors-whiteAlpha-800:rgba(255, 255, 255, 0.80);--chakra-colors-whiteAlpha-900:rgba(255, 255, 255, 0.92);--chakra-colors-blackAlpha-50:rgba(0, 0, 0, 0.04);--chakra-colors-blackAlpha-100:rgba(0, 0, 0, 0.06);--chakra-colors-blackAlpha-200:rgba(0, 0, 0, 0.08);--chakra-colors-blackAlpha-300:rgba(0, 0, 0, 0.16);--chakra-colors-blackAlpha-400:rgba(0, 0, 0, 0.24);--chakra-colors-blackAlpha-500:rgba(0, 0, 0, 0.36);--chakra-colors-blackAlpha-600:rgba(0, 0, 0, 0.48);--chakra-colors-blackAlpha-700:rgba(0, 0, 0, 0.64);--chakra-colors-blackAlpha-800:rgba(0, 0, 0, 0.80);--chakra-colors-blackAlpha-900:rgba(0, 0, 0, 0.92);--chakra-colors-gray-50:#F7FAFC;--chakra-colors-gray-100:#EDF2F7;--chakra-colors-gray-200:#E2E8F0;--chakra-colors-gray-300:#CBD5E0;--chakra-colors-gray-400:#A0AEC0;--chakra-colors-gray-500:#718096;--chakra-colors-gray-600:#4A5568;--chakra-colors-gray-700:#2D3748;--chakra-colors-gray-800:#1A202C;--chakra-colors-gray-900:#171923;--chakra-colors-red-50:#FFF5F5;--chakra-colors-red-100:#FED7D7;--chakra-colors-red-200:#FEB2B2;--chakra-colors-red-300:#FC8181;--chakra-colors-red-400:#F56565;--chakra-colors-red-500:#E53E3E;--chakra-colors-red-600:#C53030;--chakra-colors-red-700:#9B2C2C;--chakra-colors-red-800:#822727;--chakra-colors-red-900:#63171B;--chakra-colors-orange-50:#FFFAF0;--chakra-colors-orange-100:#FEEBC8;--chakra-colors-orange-200:#FBD38D;--chakra-colors-orange-300:#F6AD55;--chakra-colors-orange-400:#ED8936;--chakra-colors-orange-500:#DD6B20;--chakra-colors-orange-600:#C05621;--chakra-colors-orange-700:#9C4221;--chakra-colors-orange-800:#7B341E;--chakra-colors-orange-900:#652B19;--chakra-colors-yellow-50:#FFFFF0;--chakra-colors-yellow-100:#FEFCBF;--chakra-colors-yellow-200:#FAF089;--chakra-colors-yellow-300:#F6E05E;--chakra-colors-yellow-400:#ECC94B;--chakra-colors-yellow-500:#D69E2E;--chakra-colors-yellow-600:#B7791F;--chakra-colors-yellow-700:#975A16;--chakra-colors-yellow-800:#744210;--chakra-colors-yellow-900:#5F370E;--chakra-colors-green-50:#F0FFF4;--chakra-colors-green-100:#C6F6D5;--chakra-colors-green-200:#9AE6B4;--chakra-colors-green-300:#68D391;--chakra-colors-green-400:#48BB78;--chakra-colors-green-500:#38A169;--chakra-colors-green-600:#2F855A;--chakra-colors-green-700:#276749;--chakra-colors-green-800:#22543D;--chakra-colors-green-900:#1C4532;--chakra-colors-teal-50:#E6FFFA;--chakra-colors-teal-100:#B2F5EA;--chakra-colors-teal-200:#81E6D9;--chakra-colors-teal-300:#4FD1C5;--chakra-colors-teal-400:#38B2AC;--chakra-colors-teal-500:#319795;--chakra-colors-teal-600:#2C7A7B;--chakra-colors-teal-700:#285E61;--chakra-colors-teal-800:#234E52;--chakra-colors-teal-900:#1D4044;--chakra-colors-blue-50:#ebf8ff;--chakra-colors-blue-100:#bee3f8;--chakra-colors-blue-200:#90cdf4;--chakra-colors-blue-300:#63b3ed;--chakra-colors-blue-400:#4299e1;--chakra-colors-blue-500:#3182ce;--chakra-colors-blue-600:#2b6cb0;--chakra-colors-blue-700:#2c5282;--chakra-colors-blue-800:#2a4365;--chakra-colors-blue-900:#1A365D;--chakra-colors-cyan-50:#EDFDFD;--chakra-colors-cyan-100:#C4F1F9;--chakra-colors-cyan-200:#9DECF9;--chakra-colors-cyan-300:#76E4F7;--chakra-colors-cyan-400:#0BC5EA;--chakra-colors-cyan-500:#00B5D8;--chakra-colors-cyan-600:#00A3C4;--chakra-colors-cyan-700:#0987A0;--chakra-colors-cyan-800:#086F83;--chakra-colors-cyan-900:#065666;--chakra-colors-purple-50:#FAF5FF;--chakra-colors-purple-100:#E9D8FD;--chakra-colors-purple-200:#D6BCFA;--chakra-colors-purple-300:#B794F4;--chakra-colors-purple-400:#9F7AEA;--chakra-colors-purple-500:#805AD5;--chakra-colors-purple-600:#6B46C1;--chakra-colors-purple-700:#553C9A;--chakra-colors-purple-800:#44337A;--chakra-colors-purple-900:#322659;--chakra-colors-pink-50:#FFF5F7;--chakra-colors-pink-100:#FED7E2;--chakra-colors-pink-200:#FBB6CE;--chakra-colors-pink-300:#F687B3;--chakra-colors-pink-400:#ED64A6;--chakra-colors-pink-500:#D53F8C;--chakra-colors-pink-600:#B83280;--chakra-colors-pink-700:#97266D;--chakra-colors-pink-800:#702459;--chakra-colors-pink-900:#521B41;--chakra-colors-linkedin-50:#E8F4F9;--chakra-colors-linkedin-100:#CFEDFB;--chakra-colors-linkedin-200:#9BDAF3;--chakra-colors-linkedin-300:#68C7EC;--chakra-colors-linkedin-400:#34B3E4;--chakra-colors-linkedin-500:#00A0DC;--chakra-colors-linkedin-600:#008CC9;--chakra-colors-linkedin-700:#0077B5;--chakra-colors-linkedin-800:#005E93;--chakra-colors-linkedin-900:#004471;--chakra-colors-facebook-50:#E8F4F9;--chakra-colors-facebook-100:#D9DEE9;--chakra-colors-facebook-200:#B7C2DA;--chakra-colors-facebook-300:#6482C0;--chakra-colors-facebook-400:#4267B2;--chakra-colors-facebook-500:#385898;--chakra-colors-facebook-600:#314E89;--chakra-colors-facebook-700:#29487D;--chakra-colors-facebook-800:#223B67;--chakra-colors-facebook-900:#1E355B;--chakra-colors-messenger-50:#D0E6FF;--chakra-colors-messenger-100:#B9DAFF;--chakra-colors-messenger-200:#A2CDFF;--chakra-colors-messenger-300:#7AB8FF;--chakra-colors-messenger-400:#2E90FF;--chakra-colors-messenger-500:#0078FF;--chakra-colors-messenger-600:#0063D1;--chakra-colors-messenger-700:#0052AC;--chakra-colors-messenger-800:#003C7E;--chakra-colors-messenger-900:#002C5C;--chakra-colors-whatsapp-50:#dffeec;--chakra-colors-whatsapp-100:#b9f5d0;--chakra-colors-whatsapp-200:#90edb3;--chakra-colors-whatsapp-300:#65e495;--chakra-colors-whatsapp-400:#3cdd78;--chakra-colors-whatsapp-500:#22c35e;--chakra-colors-whatsapp-600:#179848;--chakra-colors-whatsapp-700:#0c6c33;--chakra-colors-whatsapp-800:#01421c;--chakra-colors-whatsapp-900:#001803;--chakra-colors-twitter-50:#E5F4FD;--chakra-colors-twitter-100:#C8E9FB;--chakra-colors-twitter-200:#A8DCFA;--chakra-colors-twitter-300:#83CDF7;--chakra-colors-twitter-400:#57BBF5;--chakra-colors-twitter-500:#1DA1F2;--chakra-colors-twitter-600:#1A94DA;--chakra-colors-twitter-700:#1681BF;--chakra-colors-twitter-800:#136B9E;--chakra-colors-twitter-900:#0D4D71;--chakra-colors-telegram-50:#E3F2F9;--chakra-colors-telegram-100:#C5E4F3;--chakra-colors-telegram-200:#A2D4EC;--chakra-colors-telegram-300:#7AC1E4;--chakra-colors-telegram-400:#47A9DA;--chakra-colors-telegram-500:#0088CC;--chakra-colors-telegram-600:#007AB8;--chakra-colors-telegram-700:#006BA1;--chakra-colors-telegram-800:#005885;--chakra-colors-telegram-900:#003F5E;--chakra-borders-none:0;--chakra-borders-1px:1px solid;--chakra-borders-2px:2px solid;--chakra-borders-4px:4px solid;--chakra-borders-8px:8px solid;--chakra-fonts-heading:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--chakra-fonts-body:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--chakra-fonts-mono:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--chakra-fontSizes-xs:0.75rem;--chakra-fontSizes-sm:0.875rem;--chakra-fontSizes-md:1rem;--chakra-fontSizes-lg:1.125rem;--chakra-fontSizes-xl:1.25rem;--chakra-fontSizes-2xl:1.5rem;--chakra-fontSizes-3xl:1.875rem;--chakra-fontSizes-4xl:2.25rem;--chakra-fontSizes-5xl:3rem;--chakra-fontSizes-6xl:3.75rem;--chakra-fontSizes-7xl:4.5rem;--chakra-fontSizes-8xl:6rem;--chakra-fontSizes-9xl:8rem;--chakra-fontWeights-hairline:100;--chakra-fontWeights-thin:200;--chakra-fontWeights-light:300;--chakra-fontWeights-normal:400;--chakra-fontWeights-medium:500;--chakra-fontWeights-semibold:600;--chakra-fontWeights-bold:700;--chakra-fontWeights-extrabold:800;--chakra-fontWeights-black:900;--chakra-letterSpacings-tighter:-0.05em;--chakra-letterSpacings-tight:-0.025em;--chakra-letterSpacings-normal:0;--chakra-letterSpacings-wide:0.025em;--chakra-letterSpacings-wider:0.05em;--chakra-letterSpacings-widest:0.1em;--chakra-lineHeights-3:.75rem;--chakra-lineHeights-4:1rem;--chakra-lineHeights-5:1.25rem;--chakra-lineHeights-6:1.5rem;--chakra-lineHeights-7:1.75rem;--chakra-lineHeights-8:2rem;--chakra-lineHeights-9:2.25rem;--chakra-lineHeights-10:2.5rem;--chakra-lineHeights-normal:normal;--chakra-lineHeights-none:1;--chakra-lineHeights-shorter:1.25;--chakra-lineHeights-short:1.375;--chakra-lineHeights-base:1.5;--chakra-lineHeights-tall:1.625;--chakra-lineHeights-taller:2;--chakra-radii-none:0;--chakra-radii-sm:0.125rem;--chakra-radii-base:0.25rem;--chakra-radii-md:0.375rem;--chakra-radii-lg:0.5rem;--chakra-radii-xl:0.75rem;--chakra-radii-2xl:1rem;--chakra-radii-3xl:1.5rem;--chakra-radii-full:9999px;--chakra-space-1:0.25rem;--chakra-space-2:0.5rem;--chakra-space-3:0.75rem;--chakra-space-4:1rem;--chakra-space-5:1.25rem;--chakra-space-6:1.5rem;--chakra-space-7:1.75rem;--chakra-space-8:2rem;--chakra-space-9:2.25rem;--chakra-space-10:2.5rem;--chakra-space-12:3rem;--chakra-space-14:3.5rem;--chakra-space-16:4rem;--chakra-space-20:5rem;--chakra-space-24:6rem;--chakra-space-28:7rem;--chakra-space-32:8rem;--chakra-space-36:9rem;--chakra-space-40:10rem;--chakra-space-44:11rem;--chakra-space-48:12rem;--chakra-space-52:13rem;--chakra-space-56:14rem;--chakra-space-60:15rem;--chakra-space-64:16rem;--chakra-space-72:18rem;--chakra-space-80:20rem;--chakra-space-96:24rem;--chakra-space-px:1px;--chakra-space-0\.5:0.125rem;--chakra-space-1\.5:0.375rem;--chakra-space-2\.5:0.625rem;--chakra-space-3\.5:0.875rem;--chakra-shadows-xs:0 0 0 1px rgba(0, 0, 0, 0.05);--chakra-shadows-sm:0 1px 2px 0 rgba(0, 0, 0, 0.05);--chakra-shadows-base:0 1px 3px 0 rgba(0, 0, 0, 0.1),0 1px 2px 0 rgba(0, 0, 0, 0.06);--chakra-shadows-md:0 4px 6px -1px rgba(0, 0, 0, 0.1),0 2px 4px -1px rgba(0, 0, 0, 0.06);--chakra-shadows-lg:0 10px 15px -3px rgba(0, 0, 0, 0.1),0 4px 6px -2px rgba(0, 0, 0, 0.05);--chakra-shadows-xl:0 20px 25px -5px rgba(0, 0, 0, 0.1),0 10px 10px -5px rgba(0, 0, 0, 0.04);--chakra-shadows-2xl:0 25px 50px -12px rgba(0, 0, 0, 0.25);--chakra-shadows-outline:0 0 0 3px rgba(66, 153, 225, 0.6);--chakra-shadows-inner:inset 0 2px 4px 0 rgba(0,0,0,0.06);--chakra-shadows-none:none;--chakra-shadows-dark-lg:rgba(0, 0, 0, 0.1) 0px 0px 0px 1px,rgba(0, 0, 0, 0.2) 0px 5px 10px,rgba(0, 0, 0, 0.4) 0px 15px 40px;--chakra-sizes-1:0.25rem;--chakra-sizes-2:0.5rem;--chakra-sizes-3:0.75rem;--chakra-sizes-4:1rem;--chakra-sizes-5:1.25rem;--chakra-sizes-6:1.5rem;--chakra-sizes-7:1.75rem;--chakra-sizes-8:2rem;--chakra-sizes-9:2.25rem;--chakra-sizes-10:2.5rem;--chakra-sizes-12:3rem;--chakra-sizes-14:3.5rem;--chakra-sizes-16:4rem;--chakra-sizes-20:5rem;--chakra-sizes-24:6rem;--chakra-sizes-28:7rem;--chakra-sizes-32:8rem;--chakra-sizes-36:9rem;--chakra-sizes-40:10rem;--chakra-sizes-44:11rem;--chakra-sizes-48:12rem;--chakra-sizes-52:13rem;--chakra-sizes-56:14rem;--chakra-sizes-60:15rem;--chakra-sizes-64:16rem;--chakra-sizes-72:18rem;--chakra-sizes-80:20rem;--chakra-sizes-96:24rem;--chakra-sizes-px:1px;--chakra-sizes-0\.5:0.125rem;--chakra-sizes-1\.5:0.375rem;--chakra-sizes-2\.5:0.625rem;--chakra-sizes-3\.5:0.875rem;--chakra-sizes-max:max-content;--chakra-sizes-min:min-content;--chakra-sizes-full:100%;--chakra-sizes-3xs:14rem;--chakra-sizes-2xs:16rem;--chakra-sizes-xs:20rem;--chakra-sizes-sm:24rem;--chakra-sizes-md:28rem;--chakra-sizes-lg:32rem;--chakra-sizes-xl:36rem;--chakra-sizes-2xl:42rem;--chakra-sizes-3xl:48rem;--chakra-sizes-4xl:56rem;--chakra-sizes-5xl:64rem;--chakra-sizes-6xl:72rem;--chakra-sizes-7xl:80rem;--chakra-sizes-8xl:90rem;--chakra-sizes-container-sm:640px;--chakra-sizes-container-md:768px;--chakra-sizes-container-lg:1024px;--chakra-sizes-container-xl:1280px;--chakra-zIndices-hide:-1;--chakra-zIndices-auto:auto;--chakra-zIndices-base:0;--chakra-zIndices-docked:10;--chakra-zIndices-dropdown:1000;--chakra-zIndices-sticky:1100;--chakra-zIndices-banner:1200;--chakra-zIndices-overlay:1300;--chakra-zIndices-modal:1400;--chakra-zIndices-popover:1500;--chakra-zIndices-skipLink:1600;--chakra-zIndices-toast:1700;--chakra-zIndices-tooltip:1800;--chakra-transition-property-common:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;--chakra-transition-property-colors:background-color,border-color,color,fill,stroke;--chakra-transition-property-dimensions:width,height;--chakra-transition-property-position:left,right,top,bottom;--chakra-transition-property-background:background-color,background-image,background-position;--chakra-transition-easing-ease-in:cubic-bezier(0.4, 0, 1, 1);--chakra-transition-easing-ease-out:cubic-bezier(0, 0, 0.2, 1);--chakra-transition-easing-ease-in-out:cubic-bezier(0.4, 0, 0.2, 1);--chakra-transition-duration-ultra-fast:50ms;--chakra-transition-duration-faster:100ms;--chakra-transition-duration-fast:150ms;--chakra-transition-duration-normal:200ms;--chakra-transition-duration-slow:300ms;--chakra-transition-duration-slower:400ms;--chakra-transition-duration-ultra-slow:500ms;--chakra-blur-none:0;--chakra-blur-sm:4px;--chakra-blur-base:8px;--chakra-blur-md:12px;--chakra-blur-lg:16px;--chakra-blur-xl:24px;--chakra-blur-2xl:40px;--chakra-blur-3xl:64px;}</style><style data-emotion="css-global 1syi0wy">html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;}body{position:relative;min-height:100%;font-feature-settings:'kern';}*,*::before,*::after{border-width:0;border-style:solid;box-sizing:border-box;}main{display:block;}hr{border-top-width:1px;box-sizing:content-box;height:0;overflow:visible;}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1em;}a{background-color:transparent;color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;}abbr[title]{border-bottom:none;-webkit-text-decoration:underline;text-decoration:underline;-webkit-text-decoration:underline dotted;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bold;}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sub{bottom:-0.25em;}sup{top:-0.5em;}img{border-style:none;}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible;}button,select{text-transform:none;}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0;}fieldset{padding:0.35em 0.75em 0.625em;}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline;}textarea{overflow:auto;}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none!important;}input[type="number"]{-moz-appearance:textfield;}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none!important;}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block;}summary{display:-webkit-box;display:-webkit-list-item;display:-ms-list-itembox;display:list-item;}template{display:none;}[hidden]{display:none!important;}body,blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0;}button{background:transparent;padding:0;}fieldset{margin:0;padding:0;}ol,ul{margin:0;padding:0;}textarea{resize:vertical;}button,[role="button"]{cursor:pointer;}button::-moz-focus-inner{border:0!important;}table{border-collapse:collapse;}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit;}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle;}img,video{max-width:100%;height:auto;}[data-js-focus-visible] :focus:not([data-focus-visible-added]){outline:none;box-shadow:none;}select::-ms-expand{display:none;}</style><style data-emotion="css-global 1baqkrf">body{font-family:var(--chakra-fonts-body);color:var(--chakra-colors-gray-800);background:var(--chakra-colors-white);transition-property:background-color;transition-duration:var(--chakra-transition-duration-normal);line-height:var(--chakra-lineHeights-base);}*::-webkit-input-placeholder{color:var(--chakra-colors-gray-400);}*::-moz-placeholder{color:var(--chakra-colors-gray-400);}*:-ms-input-placeholder{color:var(--chakra-colors-gray-400);}*::placeholder{color:var(--chakra-colors-gray-400);}*,*::before,::after{border-color:var(--chakra-colors-gray-200);word-wrap:break-word;}</style><div style="color:#000;background:#fff;font-family:-apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Fira Sans&quot;, Avenir, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, sans-serif;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body { margin: 0 }</style><h1 style="display:inline-block;border-right:1px solid rgba(0, 0, 0,.3);margin:0;margin-right:20px;padding:10px 23px 10px 0;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block;text-align:left;line-height:49px;height:49px;vertical-align:middle"><h2 style="font-size:14px;font-weight:normal;line-height:inherit;margin:0;padding:0">This page could not be found<!-- -->.</h2></div></div></div><span></span></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"Ci3EcXz8ajkhs7MVidKTf","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/build/server/pages/500.html b/build/server/pages/500.html
new file mode 100644
index 0000000..2ec9c31
--- /dev/null
+++ b/build/server/pages/500.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>500: Internal Server Error</title><meta name="next-head-count" content="3"/><link rel="preload" href="/_next/static/css/120f2e2270820d49a21f.css" as="style"/><link rel="stylesheet" href="/_next/static/css/120f2e2270820d49a21f.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-a54b4f32bdc1ef890ddd.js"></script><script src="/_next/static/chunks/webpack-f6b94a473b4a21f6bdce.js" defer=""></script><script src="/_next/static/chunks/framework-0441fae7fd130f37dee1.js" defer=""></script><script src="/_next/static/chunks/main-a3a79aff3ff232b41814.js" defer=""></script><script src="/_next/static/chunks/pages/_app-5bb503dca4dae114eb0c.js" defer=""></script><script src="/_next/static/chunks/pages/_error-a0e21b9b223f827fe1f2.js" defer=""></script><script src="/_next/static/Ci3EcXz8ajkhs7MVidKTf/_buildManifest.js" defer=""></script><script src="/_next/static/Ci3EcXz8ajkhs7MVidKTf/_ssgManifest.js" defer=""></script></head><body><div id="__next"><style data-emotion="css-global o7558t">:host,:root{--chakra-ring-inset:var(--chakra-empty,/*!*/ /*!*/);--chakra-ring-offset-width:0px;--chakra-ring-offset-color:#fff;--chakra-ring-color:rgba(66, 153, 225, 0.6);--chakra-ring-offset-shadow:0 0 #0000;--chakra-ring-shadow:0 0 #0000;--chakra-space-x-reverse:0;--chakra-space-y-reverse:0;--chakra-colors-transparent:transparent;--chakra-colors-current:currentColor;--chakra-colors-black:#000000;--chakra-colors-white:#FFFFFF;--chakra-colors-whiteAlpha-50:rgba(255, 255, 255, 0.04);--chakra-colors-whiteAlpha-100:rgba(255, 255, 255, 0.06);--chakra-colors-whiteAlpha-200:rgba(255, 255, 255, 0.08);--chakra-colors-whiteAlpha-300:rgba(255, 255, 255, 0.16);--chakra-colors-whiteAlpha-400:rgba(255, 255, 255, 0.24);--chakra-colors-whiteAlpha-500:rgba(255, 255, 255, 0.36);--chakra-colors-whiteAlpha-600:rgba(255, 255, 255, 0.48);--chakra-colors-whiteAlpha-700:rgba(255, 255, 255, 0.64);--chakra-colors-whiteAlpha-800:rgba(255, 255, 255, 0.80);--chakra-colors-whiteAlpha-900:rgba(255, 255, 255, 0.92);--chakra-colors-blackAlpha-50:rgba(0, 0, 0, 0.04);--chakra-colors-blackAlpha-100:rgba(0, 0, 0, 0.06);--chakra-colors-blackAlpha-200:rgba(0, 0, 0, 0.08);--chakra-colors-blackAlpha-300:rgba(0, 0, 0, 0.16);--chakra-colors-blackAlpha-400:rgba(0, 0, 0, 0.24);--chakra-colors-blackAlpha-500:rgba(0, 0, 0, 0.36);--chakra-colors-blackAlpha-600:rgba(0, 0, 0, 0.48);--chakra-colors-blackAlpha-700:rgba(0, 0, 0, 0.64);--chakra-colors-blackAlpha-800:rgba(0, 0, 0, 0.80);--chakra-colors-blackAlpha-900:rgba(0, 0, 0, 0.92);--chakra-colors-gray-50:#F7FAFC;--chakra-colors-gray-100:#EDF2F7;--chakra-colors-gray-200:#E2E8F0;--chakra-colors-gray-300:#CBD5E0;--chakra-colors-gray-400:#A0AEC0;--chakra-colors-gray-500:#718096;--chakra-colors-gray-600:#4A5568;--chakra-colors-gray-700:#2D3748;--chakra-colors-gray-800:#1A202C;--chakra-colors-gray-900:#171923;--chakra-colors-red-50:#FFF5F5;--chakra-colors-red-100:#FED7D7;--chakra-colors-red-200:#FEB2B2;--chakra-colors-red-300:#FC8181;--chakra-colors-red-400:#F56565;--chakra-colors-red-500:#E53E3E;--chakra-colors-red-600:#C53030;--chakra-colors-red-700:#9B2C2C;--chakra-colors-red-800:#822727;--chakra-colors-red-900:#63171B;--chakra-colors-orange-50:#FFFAF0;--chakra-colors-orange-100:#FEEBC8;--chakra-colors-orange-200:#FBD38D;--chakra-colors-orange-300:#F6AD55;--chakra-colors-orange-400:#ED8936;--chakra-colors-orange-500:#DD6B20;--chakra-colors-orange-600:#C05621;--chakra-colors-orange-700:#9C4221;--chakra-colors-orange-800:#7B341E;--chakra-colors-orange-900:#652B19;--chakra-colors-yellow-50:#FFFFF0;--chakra-colors-yellow-100:#FEFCBF;--chakra-colors-yellow-200:#FAF089;--chakra-colors-yellow-300:#F6E05E;--chakra-colors-yellow-400:#ECC94B;--chakra-colors-yellow-500:#D69E2E;--chakra-colors-yellow-600:#B7791F;--chakra-colors-yellow-700:#975A16;--chakra-colors-yellow-800:#744210;--chakra-colors-yellow-900:#5F370E;--chakra-colors-green-50:#F0FFF4;--chakra-colors-green-100:#C6F6D5;--chakra-colors-green-200:#9AE6B4;--chakra-colors-green-300:#68D391;--chakra-colors-green-400:#48BB78;--chakra-colors-green-500:#38A169;--chakra-colors-green-600:#2F855A;--chakra-colors-green-700:#276749;--chakra-colors-green-800:#22543D;--chakra-colors-green-900:#1C4532;--chakra-colors-teal-50:#E6FFFA;--chakra-colors-teal-100:#B2F5EA;--chakra-colors-teal-200:#81E6D9;--chakra-colors-teal-300:#4FD1C5;--chakra-colors-teal-400:#38B2AC;--chakra-colors-teal-500:#319795;--chakra-colors-teal-600:#2C7A7B;--chakra-colors-teal-700:#285E61;--chakra-colors-teal-800:#234E52;--chakra-colors-teal-900:#1D4044;--chakra-colors-blue-50:#ebf8ff;--chakra-colors-blue-100:#bee3f8;--chakra-colors-blue-200:#90cdf4;--chakra-colors-blue-300:#63b3ed;--chakra-colors-blue-400:#4299e1;--chakra-colors-blue-500:#3182ce;--chakra-colors-blue-600:#2b6cb0;--chakra-colors-blue-700:#2c5282;--chakra-colors-blue-800:#2a4365;--chakra-colors-blue-900:#1A365D;--chakra-colors-cyan-50:#EDFDFD;--chakra-colors-cyan-100:#C4F1F9;--chakra-colors-cyan-200:#9DECF9;--chakra-colors-cyan-300:#76E4F7;--chakra-colors-cyan-400:#0BC5EA;--chakra-colors-cyan-500:#00B5D8;--chakra-colors-cyan-600:#00A3C4;--chakra-colors-cyan-700:#0987A0;--chakra-colors-cyan-800:#086F83;--chakra-colors-cyan-900:#065666;--chakra-colors-purple-50:#FAF5FF;--chakra-colors-purple-100:#E9D8FD;--chakra-colors-purple-200:#D6BCFA;--chakra-colors-purple-300:#B794F4;--chakra-colors-purple-400:#9F7AEA;--chakra-colors-purple-500:#805AD5;--chakra-colors-purple-600:#6B46C1;--chakra-colors-purple-700:#553C9A;--chakra-colors-purple-800:#44337A;--chakra-colors-purple-900:#322659;--chakra-colors-pink-50:#FFF5F7;--chakra-colors-pink-100:#FED7E2;--chakra-colors-pink-200:#FBB6CE;--chakra-colors-pink-300:#F687B3;--chakra-colors-pink-400:#ED64A6;--chakra-colors-pink-500:#D53F8C;--chakra-colors-pink-600:#B83280;--chakra-colors-pink-700:#97266D;--chakra-colors-pink-800:#702459;--chakra-colors-pink-900:#521B41;--chakra-colors-linkedin-50:#E8F4F9;--chakra-colors-linkedin-100:#CFEDFB;--chakra-colors-linkedin-200:#9BDAF3;--chakra-colors-linkedin-300:#68C7EC;--chakra-colors-linkedin-400:#34B3E4;--chakra-colors-linkedin-500:#00A0DC;--chakra-colors-linkedin-600:#008CC9;--chakra-colors-linkedin-700:#0077B5;--chakra-colors-linkedin-800:#005E93;--chakra-colors-linkedin-900:#004471;--chakra-colors-facebook-50:#E8F4F9;--chakra-colors-facebook-100:#D9DEE9;--chakra-colors-facebook-200:#B7C2DA;--chakra-colors-facebook-300:#6482C0;--chakra-colors-facebook-400:#4267B2;--chakra-colors-facebook-500:#385898;--chakra-colors-facebook-600:#314E89;--chakra-colors-facebook-700:#29487D;--chakra-colors-facebook-800:#223B67;--chakra-colors-facebook-900:#1E355B;--chakra-colors-messenger-50:#D0E6FF;--chakra-colors-messenger-100:#B9DAFF;--chakra-colors-messenger-200:#A2CDFF;--chakra-colors-messenger-300:#7AB8FF;--chakra-colors-messenger-400:#2E90FF;--chakra-colors-messenger-500:#0078FF;--chakra-colors-messenger-600:#0063D1;--chakra-colors-messenger-700:#0052AC;--chakra-colors-messenger-800:#003C7E;--chakra-colors-messenger-900:#002C5C;--chakra-colors-whatsapp-50:#dffeec;--chakra-colors-whatsapp-100:#b9f5d0;--chakra-colors-whatsapp-200:#90edb3;--chakra-colors-whatsapp-300:#65e495;--chakra-colors-whatsapp-400:#3cdd78;--chakra-colors-whatsapp-500:#22c35e;--chakra-colors-whatsapp-600:#179848;--chakra-colors-whatsapp-700:#0c6c33;--chakra-colors-whatsapp-800:#01421c;--chakra-colors-whatsapp-900:#001803;--chakra-colors-twitter-50:#E5F4FD;--chakra-colors-twitter-100:#C8E9FB;--chakra-colors-twitter-200:#A8DCFA;--chakra-colors-twitter-300:#83CDF7;--chakra-colors-twitter-400:#57BBF5;--chakra-colors-twitter-500:#1DA1F2;--chakra-colors-twitter-600:#1A94DA;--chakra-colors-twitter-700:#1681BF;--chakra-colors-twitter-800:#136B9E;--chakra-colors-twitter-900:#0D4D71;--chakra-colors-telegram-50:#E3F2F9;--chakra-colors-telegram-100:#C5E4F3;--chakra-colors-telegram-200:#A2D4EC;--chakra-colors-telegram-300:#7AC1E4;--chakra-colors-telegram-400:#47A9DA;--chakra-colors-telegram-500:#0088CC;--chakra-colors-telegram-600:#007AB8;--chakra-colors-telegram-700:#006BA1;--chakra-colors-telegram-800:#005885;--chakra-colors-telegram-900:#003F5E;--chakra-borders-none:0;--chakra-borders-1px:1px solid;--chakra-borders-2px:2px solid;--chakra-borders-4px:4px solid;--chakra-borders-8px:8px solid;--chakra-fonts-heading:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--chakra-fonts-body:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--chakra-fonts-mono:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--chakra-fontSizes-xs:0.75rem;--chakra-fontSizes-sm:0.875rem;--chakra-fontSizes-md:1rem;--chakra-fontSizes-lg:1.125rem;--chakra-fontSizes-xl:1.25rem;--chakra-fontSizes-2xl:1.5rem;--chakra-fontSizes-3xl:1.875rem;--chakra-fontSizes-4xl:2.25rem;--chakra-fontSizes-5xl:3rem;--chakra-fontSizes-6xl:3.75rem;--chakra-fontSizes-7xl:4.5rem;--chakra-fontSizes-8xl:6rem;--chakra-fontSizes-9xl:8rem;--chakra-fontWeights-hairline:100;--chakra-fontWeights-thin:200;--chakra-fontWeights-light:300;--chakra-fontWeights-normal:400;--chakra-fontWeights-medium:500;--chakra-fontWeights-semibold:600;--chakra-fontWeights-bold:700;--chakra-fontWeights-extrabold:800;--chakra-fontWeights-black:900;--chakra-letterSpacings-tighter:-0.05em;--chakra-letterSpacings-tight:-0.025em;--chakra-letterSpacings-normal:0;--chakra-letterSpacings-wide:0.025em;--chakra-letterSpacings-wider:0.05em;--chakra-letterSpacings-widest:0.1em;--chakra-lineHeights-3:.75rem;--chakra-lineHeights-4:1rem;--chakra-lineHeights-5:1.25rem;--chakra-lineHeights-6:1.5rem;--chakra-lineHeights-7:1.75rem;--chakra-lineHeights-8:2rem;--chakra-lineHeights-9:2.25rem;--chakra-lineHeights-10:2.5rem;--chakra-lineHeights-normal:normal;--chakra-lineHeights-none:1;--chakra-lineHeights-shorter:1.25;--chakra-lineHeights-short:1.375;--chakra-lineHeights-base:1.5;--chakra-lineHeights-tall:1.625;--chakra-lineHeights-taller:2;--chakra-radii-none:0;--chakra-radii-sm:0.125rem;--chakra-radii-base:0.25rem;--chakra-radii-md:0.375rem;--chakra-radii-lg:0.5rem;--chakra-radii-xl:0.75rem;--chakra-radii-2xl:1rem;--chakra-radii-3xl:1.5rem;--chakra-radii-full:9999px;--chakra-space-1:0.25rem;--chakra-space-2:0.5rem;--chakra-space-3:0.75rem;--chakra-space-4:1rem;--chakra-space-5:1.25rem;--chakra-space-6:1.5rem;--chakra-space-7:1.75rem;--chakra-space-8:2rem;--chakra-space-9:2.25rem;--chakra-space-10:2.5rem;--chakra-space-12:3rem;--chakra-space-14:3.5rem;--chakra-space-16:4rem;--chakra-space-20:5rem;--chakra-space-24:6rem;--chakra-space-28:7rem;--chakra-space-32:8rem;--chakra-space-36:9rem;--chakra-space-40:10rem;--chakra-space-44:11rem;--chakra-space-48:12rem;--chakra-space-52:13rem;--chakra-space-56:14rem;--chakra-space-60:15rem;--chakra-space-64:16rem;--chakra-space-72:18rem;--chakra-space-80:20rem;--chakra-space-96:24rem;--chakra-space-px:1px;--chakra-space-0\.5:0.125rem;--chakra-space-1\.5:0.375rem;--chakra-space-2\.5:0.625rem;--chakra-space-3\.5:0.875rem;--chakra-shadows-xs:0 0 0 1px rgba(0, 0, 0, 0.05);--chakra-shadows-sm:0 1px 2px 0 rgba(0, 0, 0, 0.05);--chakra-shadows-base:0 1px 3px 0 rgba(0, 0, 0, 0.1),0 1px 2px 0 rgba(0, 0, 0, 0.06);--chakra-shadows-md:0 4px 6px -1px rgba(0, 0, 0, 0.1),0 2px 4px -1px rgba(0, 0, 0, 0.06);--chakra-shadows-lg:0 10px 15px -3px rgba(0, 0, 0, 0.1),0 4px 6px -2px rgba(0, 0, 0, 0.05);--chakra-shadows-xl:0 20px 25px -5px rgba(0, 0, 0, 0.1),0 10px 10px -5px rgba(0, 0, 0, 0.04);--chakra-shadows-2xl:0 25px 50px -12px rgba(0, 0, 0, 0.25);--chakra-shadows-outline:0 0 0 3px rgba(66, 153, 225, 0.6);--chakra-shadows-inner:inset 0 2px 4px 0 rgba(0,0,0,0.06);--chakra-shadows-none:none;--chakra-shadows-dark-lg:rgba(0, 0, 0, 0.1) 0px 0px 0px 1px,rgba(0, 0, 0, 0.2) 0px 5px 10px,rgba(0, 0, 0, 0.4) 0px 15px 40px;--chakra-sizes-1:0.25rem;--chakra-sizes-2:0.5rem;--chakra-sizes-3:0.75rem;--chakra-sizes-4:1rem;--chakra-sizes-5:1.25rem;--chakra-sizes-6:1.5rem;--chakra-sizes-7:1.75rem;--chakra-sizes-8:2rem;--chakra-sizes-9:2.25rem;--chakra-sizes-10:2.5rem;--chakra-sizes-12:3rem;--chakra-sizes-14:3.5rem;--chakra-sizes-16:4rem;--chakra-sizes-20:5rem;--chakra-sizes-24:6rem;--chakra-sizes-28:7rem;--chakra-sizes-32:8rem;--chakra-sizes-36:9rem;--chakra-sizes-40:10rem;--chakra-sizes-44:11rem;--chakra-sizes-48:12rem;--chakra-sizes-52:13rem;--chakra-sizes-56:14rem;--chakra-sizes-60:15rem;--chakra-sizes-64:16rem;--chakra-sizes-72:18rem;--chakra-sizes-80:20rem;--chakra-sizes-96:24rem;--chakra-sizes-px:1px;--chakra-sizes-0\.5:0.125rem;--chakra-sizes-1\.5:0.375rem;--chakra-sizes-2\.5:0.625rem;--chakra-sizes-3\.5:0.875rem;--chakra-sizes-max:max-content;--chakra-sizes-min:min-content;--chakra-sizes-full:100%;--chakra-sizes-3xs:14rem;--chakra-sizes-2xs:16rem;--chakra-sizes-xs:20rem;--chakra-sizes-sm:24rem;--chakra-sizes-md:28rem;--chakra-sizes-lg:32rem;--chakra-sizes-xl:36rem;--chakra-sizes-2xl:42rem;--chakra-sizes-3xl:48rem;--chakra-sizes-4xl:56rem;--chakra-sizes-5xl:64rem;--chakra-sizes-6xl:72rem;--chakra-sizes-7xl:80rem;--chakra-sizes-8xl:90rem;--chakra-sizes-container-sm:640px;--chakra-sizes-container-md:768px;--chakra-sizes-container-lg:1024px;--chakra-sizes-container-xl:1280px;--chakra-zIndices-hide:-1;--chakra-zIndices-auto:auto;--chakra-zIndices-base:0;--chakra-zIndices-docked:10;--chakra-zIndices-dropdown:1000;--chakra-zIndices-sticky:1100;--chakra-zIndices-banner:1200;--chakra-zIndices-overlay:1300;--chakra-zIndices-modal:1400;--chakra-zIndices-popover:1500;--chakra-zIndices-skipLink:1600;--chakra-zIndices-toast:1700;--chakra-zIndices-tooltip:1800;--chakra-transition-property-common:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;--chakra-transition-property-colors:background-color,border-color,color,fill,stroke;--chakra-transition-property-dimensions:width,height;--chakra-transition-property-position:left,right,top,bottom;--chakra-transition-property-background:background-color,background-image,background-position;--chakra-transition-easing-ease-in:cubic-bezier(0.4, 0, 1, 1);--chakra-transition-easing-ease-out:cubic-bezier(0, 0, 0.2, 1);--chakra-transition-easing-ease-in-out:cubic-bezier(0.4, 0, 0.2, 1);--chakra-transition-duration-ultra-fast:50ms;--chakra-transition-duration-faster:100ms;--chakra-transition-duration-fast:150ms;--chakra-transition-duration-normal:200ms;--chakra-transition-duration-slow:300ms;--chakra-transition-duration-slower:400ms;--chakra-transition-duration-ultra-slow:500ms;--chakra-blur-none:0;--chakra-blur-sm:4px;--chakra-blur-base:8px;--chakra-blur-md:12px;--chakra-blur-lg:16px;--chakra-blur-xl:24px;--chakra-blur-2xl:40px;--chakra-blur-3xl:64px;}</style><style data-emotion="css-global 1syi0wy">html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;}body{position:relative;min-height:100%;font-feature-settings:'kern';}*,*::before,*::after{border-width:0;border-style:solid;box-sizing:border-box;}main{display:block;}hr{border-top-width:1px;box-sizing:content-box;height:0;overflow:visible;}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1em;}a{background-color:transparent;color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;}abbr[title]{border-bottom:none;-webkit-text-decoration:underline;text-decoration:underline;-webkit-text-decoration:underline dotted;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bold;}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sub{bottom:-0.25em;}sup{top:-0.5em;}img{border-style:none;}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible;}button,select{text-transform:none;}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0;}fieldset{padding:0.35em 0.75em 0.625em;}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline;}textarea{overflow:auto;}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none!important;}input[type="number"]{-moz-appearance:textfield;}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none!important;}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block;}summary{display:-webkit-box;display:-webkit-list-item;display:-ms-list-itembox;display:list-item;}template{display:none;}[hidden]{display:none!important;}body,blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0;}button{background:transparent;padding:0;}fieldset{margin:0;padding:0;}ol,ul{margin:0;padding:0;}textarea{resize:vertical;}button,[role="button"]{cursor:pointer;}button::-moz-focus-inner{border:0!important;}table{border-collapse:collapse;}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit;}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle;}img,video{max-width:100%;height:auto;}[data-js-focus-visible] :focus:not([data-focus-visible-added]){outline:none;box-shadow:none;}select::-ms-expand{display:none;}</style><style data-emotion="css-global 1baqkrf">body{font-family:var(--chakra-fonts-body);color:var(--chakra-colors-gray-800);background:var(--chakra-colors-white);transition-property:background-color;transition-duration:var(--chakra-transition-duration-normal);line-height:var(--chakra-lineHeights-base);}*::-webkit-input-placeholder{color:var(--chakra-colors-gray-400);}*::-moz-placeholder{color:var(--chakra-colors-gray-400);}*:-ms-input-placeholder{color:var(--chakra-colors-gray-400);}*::placeholder{color:var(--chakra-colors-gray-400);}*,*::before,::after{border-color:var(--chakra-colors-gray-200);word-wrap:break-word;}</style><div style="color:#000;background:#fff;font-family:-apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Fira Sans&quot;, Avenir, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, sans-serif;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body { margin: 0 }</style><h1 style="display:inline-block;border-right:1px solid rgba(0, 0, 0,.3);margin:0;margin-right:20px;padding:10px 23px 10px 0;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block;text-align:left;line-height:49px;height:49px;vertical-align:middle"><h2 style="font-size:14px;font-weight:normal;line-height:inherit;margin:0;padding:0">Internal Server Error<!-- -->.</h2></div></div></div><span></span></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"Ci3EcXz8ajkhs7MVidKTf","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/build/server/pages/_app.js b/build/server/pages/_app.js
new file mode 100644
index 0000000..75dc828
--- /dev/null
+++ b/build/server/pages/_app.js
@@ -0,0 +1,66 @@
+(function() {
+var exports = {};
+exports.id = 888;
+exports.ids = [888];
+exports.modules = {
+
+/***/ 476:
+/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(282);
+/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _chakra_ui_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(426);
+/* harmony import */ var _chakra_ui_react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_chakra_ui_react__WEBPACK_IMPORTED_MODULE_1__);
+
+
+function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
+
+function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+
+
+
+function MyApp({
+ Component,
+ pageProps
+}) {
+ return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_chakra_ui_react__WEBPACK_IMPORTED_MODULE_1__.ChakraProvider, {
+ children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(Component, _objectSpread({}, pageProps))
+ });
+}
+
+/* harmony default export */ __webpack_exports__["default"] = (MyApp);
+
+/***/ }),
+
+/***/ 426:
+/***/ (function(module) {
+
+"use strict";
+module.exports = require("@chakra-ui/react");;
+
+/***/ }),
+
+/***/ 282:
+/***/ (function(module) {
+
+"use strict";
+module.exports = require("react/jsx-runtime");;
+
+/***/ })
+
+};
+;
+
+// load runtime
+var __webpack_require__ = require("../webpack-runtime.js");
+__webpack_require__.C(exports);
+var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
+var __webpack_exports__ = (__webpack_exec__(476));
+module.exports = __webpack_exports__;
+
+})(); \ No newline at end of file
diff --git a/build/server/pages/_document.js b/build/server/pages/_document.js
new file mode 100644
index 0000000..f4167fc
--- /dev/null
+++ b/build/server/pages/_document.js
@@ -0,0 +1,1209 @@
+(function() {
+var exports = {};
+exports.id = 660;
+exports.ids = [660];
+exports.modules = {
+
+/***/ 154:
+/***/ (function(module) {
+
+function _extends() {
+ module.exports = _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return _extends.apply(this, arguments);
+}
+
+module.exports = _extends;
+
+/***/ }),
+
+/***/ 318:
+/***/ (function(module) {
+
+function _interopRequireDefault(obj) {
+ return obj && obj.__esModule ? obj : {
+ "default": obj
+ };
+}
+
+module.exports = _interopRequireDefault;
+
+/***/ }),
+
+/***/ 316:
+/***/ (function(module) {
+
+function _objectWithoutPropertiesLoose(source, excluded) {
+ if (source == null) return {};
+ var target = {};
+ var sourceKeys = Object.keys(source);
+ var key, i;
+
+ for (i = 0; i < sourceKeys.length; i++) {
+ key = sourceKeys[i];
+ if (excluded.indexOf(key) >= 0) continue;
+ target[key] = source[key];
+ }
+
+ return target;
+}
+
+module.exports = _objectWithoutPropertiesLoose;
+
+/***/ }),
+
+/***/ 792:
+/***/ (function(__unused_webpack_module, exports) {
+
+"use strict";
+
+
+exports.__esModule = true;
+exports.default = initHeadManager;
+exports.DOMAttributeNames = void 0;
+const DOMAttributeNames = {
+ acceptCharset: 'accept-charset',
+ className: 'class',
+ htmlFor: 'for',
+ httpEquiv: 'http-equiv',
+ noModule: 'noModule'
+};
+exports.DOMAttributeNames = DOMAttributeNames;
+
+function reactElementToDOM({
+ type,
+ props
+}) {
+ const el = document.createElement(type);
+
+ for (const p in props) {
+ if (!props.hasOwnProperty(p)) continue;
+ if (p === 'children' || p === 'dangerouslySetInnerHTML') continue; // we don't render undefined props to the DOM
+
+ if (props[p] === undefined) continue;
+ const attr = DOMAttributeNames[p] || p.toLowerCase();
+
+ if (type === 'script' && (attr === 'async' || attr === 'defer' || attr === 'noModule')) {
+ ;
+ el[attr] = !!props[p];
+ } else {
+ el.setAttribute(attr, props[p]);
+ }
+ }
+
+ const {
+ children,
+ dangerouslySetInnerHTML
+ } = props;
+
+ if (dangerouslySetInnerHTML) {
+ el.innerHTML = dangerouslySetInnerHTML.__html || '';
+ } else if (children) {
+ el.textContent = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';
+ }
+
+ return el;
+}
+
+function updateElements(type, components) {
+ const headEl = document.getElementsByTagName('head')[0];
+ const headCountEl = headEl.querySelector('meta[name=next-head-count]');
+
+ if (false) {}
+
+ const headCount = Number(headCountEl.content);
+ const oldTags = [];
+
+ for (let i = 0, j = headCountEl.previousElementSibling; i < headCount; i++, j = j.previousElementSibling) {
+ if (j.tagName.toLowerCase() === type) {
+ oldTags.push(j);
+ }
+ }
+
+ const newTags = components.map(reactElementToDOM).filter(newTag => {
+ for (let k = 0, len = oldTags.length; k < len; k++) {
+ const oldTag = oldTags[k];
+
+ if (oldTag.isEqualNode(newTag)) {
+ oldTags.splice(k, 1);
+ return false;
+ }
+ }
+
+ return true;
+ });
+ oldTags.forEach(t => t.parentNode.removeChild(t));
+ newTags.forEach(t => headEl.insertBefore(t, headCountEl));
+ headCountEl.content = (headCount - oldTags.length + newTags.length).toString();
+}
+
+function initHeadManager() {
+ let updatePromise = null;
+ return {
+ mountedInstances: new Set(),
+ updateHead: head => {
+ const promise = updatePromise = Promise.resolve().then(() => {
+ if (promise !== updatePromise) return;
+ updatePromise = null;
+ const tags = {};
+ head.forEach(h => {
+ if ( // If the font tag is loaded only on client navigation
+ // it won't be inlined. In this case revert to the original behavior
+ h.type === 'link' && h.props['data-optimized-fonts'] && !document.querySelector(`style[data-href="${h.props['data-href']}"]`)) {
+ h.props.href = h.props['data-href'];
+ h.props['data-href'] = undefined;
+ }
+
+ const components = tags[h.type] || [];
+ components.push(h);
+ tags[h.type] = components;
+ });
+ const titleComponent = tags.title ? tags.title[0] : null;
+ let title = '';
+
+ if (titleComponent) {
+ const {
+ children
+ } = titleComponent.props;
+ title = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';
+ }
+
+ if (title !== document.title) document.title = title;
+ ['meta', 'base', 'link', 'style', 'script'].forEach(type => {
+ updateElements(type, tags[type] || []);
+ });
+ });
+ }
+ };
+}
+
+/***/ }),
+
+/***/ 447:
+/***/ (function(__unused_webpack_module, exports) {
+
+"use strict";
+
+
+exports.__esModule = true;
+exports.cancelIdleCallback = exports.requestIdleCallback = void 0;
+
+const requestIdleCallback = typeof self !== 'undefined' && self.requestIdleCallback || function (cb) {
+ let start = Date.now();
+ return setTimeout(function () {
+ cb({
+ didTimeout: false,
+ timeRemaining: function () {
+ return Math.max(0, 50 - (Date.now() - start));
+ }
+ });
+ }, 1);
+};
+
+exports.requestIdleCallback = requestIdleCallback;
+
+const cancelIdleCallback = typeof self !== 'undefined' && self.cancelIdleCallback || function (id) {
+ return clearTimeout(id);
+};
+
+exports.cancelIdleCallback = cancelIdleCallback;
+
+/***/ }),
+
+/***/ 926:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var _interopRequireDefault = __webpack_require__(318);
+
+exports.__esModule = true;
+exports.initScriptLoader = initScriptLoader;
+exports.default = void 0;
+
+var _extends2 = _interopRequireDefault(__webpack_require__(154));
+
+var _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(316));
+
+var _react = __webpack_require__(297);
+
+var _headManagerContext = __webpack_require__(816);
+
+var _headManager = __webpack_require__(792);
+
+var _requestIdleCallback = __webpack_require__(447);
+
+const ScriptCache = new Map();
+const LoadCache = new Set();
+const ignoreProps = ['onLoad', 'dangerouslySetInnerHTML', 'children', 'onError', 'strategy'];
+
+const loadScript = props => {
+ const {
+ src,
+ id,
+ onLoad = () => {},
+ dangerouslySetInnerHTML,
+ children = '',
+ onError
+ } = props;
+ const cacheKey = id || src;
+
+ if (ScriptCache.has(src)) {
+ if (!LoadCache.has(cacheKey)) {
+ LoadCache.add(cacheKey); // Execute onLoad since the script loading has begun
+
+ ScriptCache.get(src).then(onLoad, onError);
+ }
+
+ return;
+ }
+
+ const el = document.createElement('script');
+ const loadPromise = new Promise((resolve, reject) => {
+ el.addEventListener('load', function () {
+ resolve();
+
+ if (onLoad) {
+ onLoad.call(this);
+ }
+ });
+ el.addEventListener('error', function () {
+ reject();
+
+ if (onError) {
+ onError();
+ }
+ });
+ });
+
+ if (src) {
+ ScriptCache.set(src, loadPromise);
+ LoadCache.add(cacheKey);
+ }
+
+ if (dangerouslySetInnerHTML) {
+ el.innerHTML = dangerouslySetInnerHTML.__html || '';
+ } else if (children) {
+ el.textContent = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';
+ } else if (src) {
+ el.src = src;
+ }
+
+ for (const [k, value] of Object.entries(props)) {
+ if (value === undefined || ignoreProps.includes(k)) {
+ continue;
+ }
+
+ const attr = _headManager.DOMAttributeNames[k] || k.toLowerCase();
+ el.setAttribute(attr, value);
+ }
+
+ document.body.appendChild(el);
+};
+
+function handleClientScriptLoad(props) {
+ const {
+ strategy = 'afterInteractive'
+ } = props;
+
+ if (strategy === 'afterInteractive') {
+ loadScript(props);
+ } else if (strategy === 'lazyOnload') {
+ window.addEventListener('load', () => {
+ (0, _requestIdleCallback.requestIdleCallback)(() => loadScript(props));
+ });
+ }
+}
+
+function loadLazyScript(props) {
+ if (document.readyState === 'complete') {
+ (0, _requestIdleCallback.requestIdleCallback)(() => loadScript(props));
+ } else {
+ window.addEventListener('load', () => {
+ (0, _requestIdleCallback.requestIdleCallback)(() => loadScript(props));
+ });
+ }
+}
+
+function initScriptLoader(scriptLoaderItems) {
+ scriptLoaderItems.forEach(handleClientScriptLoad);
+}
+
+function Script(props) {
+ const {
+ src = '',
+ onLoad = () => {},
+ strategy = 'afterInteractive',
+ onError
+ } = props,
+ restProps = (0, _objectWithoutPropertiesLoose2.default)(props, ["src", "onLoad", "dangerouslySetInnerHTML", "strategy", "onError"]); // Context is available only during SSR
+
+ const {
+ updateScripts,
+ scripts
+ } = (0, _react.useContext)(_headManagerContext.HeadManagerContext);
+ (0, _react.useEffect)(() => {
+ if (strategy === 'afterInteractive') {
+ loadScript(props);
+ } else if (strategy === 'lazyOnload') {
+ loadLazyScript(props);
+ }
+ }, [props, strategy]);
+
+ if (strategy === 'beforeInteractive') {
+ if (updateScripts) {
+ scripts.beforeInteractive = (scripts.beforeInteractive || []).concat([(0, _extends2.default)({
+ src,
+ onLoad,
+ onError
+ }, restProps)]);
+ updateScripts(scripts);
+ }
+ }
+
+ return null;
+}
+
+var _default = Script;
+exports.default = _default;
+
+/***/ }),
+
+/***/ 881:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
+
+function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
+
+function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
+
+exports.__esModule = true;
+exports.Html = Html;
+exports.Main = Main;
+exports.NextScript = exports.Head = exports.default = void 0;
+
+var _propTypes = _interopRequireDefault(__webpack_require__(229));
+
+var _react = _interopRequireWildcard(__webpack_require__(297));
+
+var _server = _interopRequireDefault(__webpack_require__(168));
+
+var _constants = __webpack_require__(227);
+
+var _documentContext = __webpack_require__(932);
+
+var _utils = __webpack_require__(579);
+
+exports.DocumentContext = _utils.DocumentContext;
+exports.DocumentInitialProps = _utils.DocumentInitialProps;
+exports.DocumentProps = _utils.DocumentProps;
+
+var _getPageFiles = __webpack_require__(171);
+
+var _utils2 = __webpack_require__(105);
+
+var _htmlescape = __webpack_require__(630);
+
+var _script = _interopRequireDefault(__webpack_require__(926));
+
+function _getRequireWildcardCache() {
+ if (typeof WeakMap !== "function") return null;
+ var cache = new WeakMap();
+
+ _getRequireWildcardCache = function () {
+ return cache;
+ };
+
+ return cache;
+}
+
+function _interopRequireWildcard(obj) {
+ if (obj && obj.__esModule) {
+ return obj;
+ }
+
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
+ return {
+ default: obj
+ };
+ }
+
+ var cache = _getRequireWildcardCache();
+
+ if (cache && cache.has(obj)) {
+ return cache.get(obj);
+ }
+
+ var newObj = {};
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
+
+ for (var key in obj) {
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
+
+ if (desc && (desc.get || desc.set)) {
+ Object.defineProperty(newObj, key, desc);
+ } else {
+ newObj[key] = obj[key];
+ }
+ }
+ }
+
+ newObj.default = obj;
+
+ if (cache) {
+ cache.set(obj, newObj);
+ }
+
+ return newObj;
+}
+
+function _interopRequireDefault(obj) {
+ return obj && obj.__esModule ? obj : {
+ default: obj
+ };
+}
+
+function getDocumentFiles(buildManifest, pathname, inAmpMode) {
+ const sharedFiles = (0, _getPageFiles.getPageFiles)(buildManifest, '/_app');
+ const pageFiles = inAmpMode ? [] : (0, _getPageFiles.getPageFiles)(buildManifest, pathname);
+ return {
+ sharedFiles,
+ pageFiles,
+ allFiles: [...new Set([...sharedFiles, ...pageFiles])]
+ };
+}
+
+function getPolyfillScripts(context, props) {
+ // polyfills.js has to be rendered as nomodule without async
+ // It also has to be the first script to load
+ const {
+ assetPrefix,
+ buildManifest,
+ devOnlyCacheBusterQueryString,
+ disableOptimizedLoading
+ } = context;
+ return buildManifest.polyfillFiles.filter(polyfill => polyfill.endsWith('.js') && !polyfill.endsWith('.module.js')).map(polyfill => /*#__PURE__*/_react.default.createElement("script", {
+ key: polyfill,
+ defer: !disableOptimizedLoading,
+ nonce: props.nonce,
+ crossOrigin: props.crossOrigin || undefined,
+ noModule: true,
+ src: `${assetPrefix}/_next/${polyfill}${devOnlyCacheBusterQueryString}`
+ }));
+}
+
+function getPreNextScripts(context, props) {
+ const {
+ scriptLoader,
+ disableOptimizedLoading
+ } = context;
+ return (scriptLoader.beforeInteractive || []).map(file => {
+ const {
+ strategy
+ } = file,
+ scriptProps = _objectWithoutProperties(file, ["strategy"]);
+
+ return /*#__PURE__*/_react.default.createElement("script", Object.assign({}, scriptProps, {
+ defer: !disableOptimizedLoading,
+ nonce: props.nonce,
+ crossOrigin: props.crossOrigin || undefined
+ }));
+ });
+}
+
+function getDynamicChunks(context, props, files) {
+ const {
+ dynamicImports,
+ assetPrefix,
+ isDevelopment,
+ devOnlyCacheBusterQueryString,
+ disableOptimizedLoading
+ } = context;
+ return dynamicImports.map(file => {
+ if (!file.endsWith('.js') || files.allFiles.includes(file)) return null;
+ return /*#__PURE__*/_react.default.createElement("script", {
+ async: !isDevelopment && disableOptimizedLoading,
+ defer: !disableOptimizedLoading,
+ key: file,
+ src: `${assetPrefix}/_next/${encodeURI(file)}${devOnlyCacheBusterQueryString}`,
+ nonce: props.nonce,
+ crossOrigin: props.crossOrigin || undefined
+ });
+ });
+}
+
+function getScripts(context, props, files) {
+ var _buildManifest$lowPri;
+
+ const {
+ assetPrefix,
+ buildManifest,
+ isDevelopment,
+ devOnlyCacheBusterQueryString,
+ disableOptimizedLoading
+ } = context;
+ const normalScripts = files.allFiles.filter(file => file.endsWith('.js'));
+ const lowPriorityScripts = (_buildManifest$lowPri = buildManifest.lowPriorityFiles) == null ? void 0 : _buildManifest$lowPri.filter(file => file.endsWith('.js'));
+ return [...normalScripts, ...lowPriorityScripts].map(file => {
+ return /*#__PURE__*/_react.default.createElement("script", {
+ key: file,
+ src: `${assetPrefix}/_next/${encodeURI(file)}${devOnlyCacheBusterQueryString}`,
+ nonce: props.nonce,
+ async: !isDevelopment && disableOptimizedLoading,
+ defer: !disableOptimizedLoading,
+ crossOrigin: props.crossOrigin || undefined
+ });
+ });
+}
+/**
+* `Document` component handles the initial `document` markup and renders only on the server side.
+* Commonly used for implementing server side rendering for `css-in-js` libraries.
+*/
+
+
+class Document extends _react.Component {
+ /**
+ * `getInitialProps` hook returns the context object with the addition of `renderPage`.
+ * `renderPage` callback executes `React` rendering logic synchronously to support server-rendering wrappers
+ */
+ static async getInitialProps(ctx) {
+ const enhanceApp = App => {
+ return props => /*#__PURE__*/_react.default.createElement(App, props);
+ };
+
+ const {
+ html,
+ head
+ } = await ctx.renderPage({
+ enhanceApp
+ });
+ const styles = [...(0, _server.default)()];
+ return {
+ html,
+ head,
+ styles
+ };
+ }
+
+ static renderDocument(DocumentComponent, props) {
+ return /*#__PURE__*/_react.default.createElement(_documentContext.DocumentContext.Provider, {
+ value: props
+ }, /*#__PURE__*/_react.default.createElement(DocumentComponent, props));
+ }
+
+ render() {
+ return /*#__PURE__*/_react.default.createElement(Html, null, /*#__PURE__*/_react.default.createElement(Head, null), /*#__PURE__*/_react.default.createElement("body", null, /*#__PURE__*/_react.default.createElement(Main, null), /*#__PURE__*/_react.default.createElement(NextScript, null)));
+ }
+
+}
+
+exports.default = Document;
+
+function Html(props) {
+ const {
+ inAmpMode,
+ docComponentsRendered,
+ locale
+ } = (0, _react.useContext)(_documentContext.DocumentContext);
+ docComponentsRendered.Html = true;
+ return /*#__PURE__*/_react.default.createElement("html", Object.assign({}, props, {
+ lang: props.lang || locale || undefined,
+ amp: inAmpMode ? '' : undefined,
+ "data-ampdevmode": inAmpMode && false ? '' : undefined
+ }));
+}
+
+class Head extends _react.Component {
+ constructor(...args) {
+ super(...args);
+ this.context = void 0;
+ }
+
+ getCssLinks(files) {
+ const {
+ assetPrefix,
+ devOnlyCacheBusterQueryString,
+ dynamicImports
+ } = this.context;
+ const cssFiles = files.allFiles.filter(f => f.endsWith('.css'));
+ const sharedFiles = new Set(files.sharedFiles); // Unmanaged files are CSS files that will be handled directly by the
+ // webpack runtime (`mini-css-extract-plugin`).
+
+ let unmangedFiles = new Set([]);
+ let dynamicCssFiles = Array.from(new Set(dynamicImports.filter(file => file.endsWith('.css'))));
+
+ if (dynamicCssFiles.length) {
+ const existing = new Set(cssFiles);
+ dynamicCssFiles = dynamicCssFiles.filter(f => !(existing.has(f) || sharedFiles.has(f)));
+ unmangedFiles = new Set(dynamicCssFiles);
+ cssFiles.push(...dynamicCssFiles);
+ }
+
+ let cssLinkElements = [];
+ cssFiles.forEach(file => {
+ const isSharedFile = sharedFiles.has(file);
+
+ if (true) {
+ cssLinkElements.push( /*#__PURE__*/_react.default.createElement("link", {
+ key: `${file}-preload`,
+ nonce: this.props.nonce,
+ rel: "preload",
+ href: `${assetPrefix}/_next/${encodeURI(file)}${devOnlyCacheBusterQueryString}`,
+ as: "style",
+ crossOrigin: this.props.crossOrigin || undefined
+ }));
+ }
+
+ const isUnmanagedFile = unmangedFiles.has(file);
+ cssLinkElements.push( /*#__PURE__*/_react.default.createElement("link", {
+ key: file,
+ nonce: this.props.nonce,
+ rel: "stylesheet",
+ href: `${assetPrefix}/_next/${encodeURI(file)}${devOnlyCacheBusterQueryString}`,
+ crossOrigin: this.props.crossOrigin || undefined,
+ "data-n-g": isUnmanagedFile ? undefined : isSharedFile ? '' : undefined,
+ "data-n-p": isUnmanagedFile ? undefined : isSharedFile ? undefined : ''
+ }));
+ });
+
+ if (true) {
+ cssLinkElements = this.makeStylesheetInert(cssLinkElements);
+ }
+
+ return cssLinkElements.length === 0 ? null : cssLinkElements;
+ }
+
+ getPreloadDynamicChunks() {
+ const {
+ dynamicImports,
+ assetPrefix,
+ devOnlyCacheBusterQueryString
+ } = this.context;
+ return dynamicImports.map(file => {
+ if (!file.endsWith('.js')) {
+ return null;
+ }
+
+ return /*#__PURE__*/_react.default.createElement("link", {
+ rel: "preload",
+ key: file,
+ href: `${assetPrefix}/_next/${encodeURI(file)}${devOnlyCacheBusterQueryString}`,
+ as: "script",
+ nonce: this.props.nonce,
+ crossOrigin: this.props.crossOrigin || undefined
+ });
+ }) // Filter out nulled scripts
+ .filter(Boolean);
+ }
+
+ getPreloadMainLinks(files) {
+ const {
+ assetPrefix,
+ devOnlyCacheBusterQueryString,
+ scriptLoader
+ } = this.context;
+ const preloadFiles = files.allFiles.filter(file => {
+ return file.endsWith('.js');
+ });
+ return [...(scriptLoader.beforeInteractive || []).map(file => /*#__PURE__*/_react.default.createElement("link", {
+ key: file.src,
+ nonce: this.props.nonce,
+ rel: "preload",
+ href: file.src,
+ as: "script",
+ crossOrigin: this.props.crossOrigin || undefined
+ })), ...preloadFiles.map(file => /*#__PURE__*/_react.default.createElement("link", {
+ key: file,
+ nonce: this.props.nonce,
+ rel: "preload",
+ href: `${assetPrefix}/_next/${encodeURI(file)}${devOnlyCacheBusterQueryString}`,
+ as: "script",
+ crossOrigin: this.props.crossOrigin || undefined
+ }))];
+ }
+
+ getDynamicChunks(files) {
+ return getDynamicChunks(this.context, this.props, files);
+ }
+
+ getPreNextScripts() {
+ return getPreNextScripts(this.context, this.props);
+ }
+
+ getScripts(files) {
+ return getScripts(this.context, this.props, files);
+ }
+
+ getPolyfillScripts() {
+ return getPolyfillScripts(this.context, this.props);
+ }
+
+ handleDocumentScriptLoaderItems(children) {
+ const {
+ scriptLoader
+ } = this.context;
+ const scriptLoaderItems = [];
+ const filteredChildren = [];
+
+ _react.default.Children.forEach(children, child => {
+ if (child.type === _script.default) {
+ if (child.props.strategy === 'beforeInteractive') {
+ scriptLoader.beforeInteractive = (scriptLoader.beforeInteractive || []).concat([_objectSpread({}, child.props)]);
+ return;
+ } else if (['lazyOnload', 'afterInteractive'].includes(child.props.strategy)) {
+ scriptLoaderItems.push(child.props);
+ return;
+ }
+ }
+
+ filteredChildren.push(child);
+ });
+
+ this.context.__NEXT_DATA__.scriptLoader = scriptLoaderItems;
+ return filteredChildren;
+ }
+
+ makeStylesheetInert(node) {
+ return _react.default.Children.map(node, c => {
+ if (c.type === 'link' && c.props['href'] && _constants.OPTIMIZED_FONT_PROVIDERS.some(({
+ url
+ }) => c.props['href'].startsWith(url))) {
+ const newProps = _objectSpread({}, c.props || {});
+
+ newProps['data-href'] = newProps['href'];
+ newProps['href'] = undefined;
+ return /*#__PURE__*/_react.default.cloneElement(c, newProps);
+ } else if (c.props && c.props['children']) {
+ c.props['children'] = this.makeStylesheetInert(c.props['children']);
+ }
+
+ return c;
+ });
+ }
+
+ render() {
+ var _this$props$nonce, _this$props$nonce2;
+
+ const {
+ styles,
+ ampPath,
+ inAmpMode,
+ hybridAmp,
+ canonicalBase,
+ __NEXT_DATA__,
+ dangerousAsPath,
+ headTags,
+ unstable_runtimeJS,
+ unstable_JsPreload,
+ disableOptimizedLoading
+ } = this.context;
+ const disableRuntimeJS = unstable_runtimeJS === false;
+ const disableJsPreload = unstable_JsPreload === false || !disableOptimizedLoading;
+ this.context.docComponentsRendered.Head = true;
+ let {
+ head
+ } = this.context;
+ let cssPreloads = [];
+ let otherHeadElements = [];
+
+ if (head) {
+ head.forEach(c => {
+ if (c && c.type === 'link' && c.props['rel'] === 'preload' && c.props['as'] === 'style') {
+ cssPreloads.push(c);
+ } else {
+ c && otherHeadElements.push(c);
+ }
+ });
+ head = cssPreloads.concat(otherHeadElements);
+ }
+
+ let children = _react.default.Children.toArray(this.props.children).filter(Boolean); // show a warning if Head contains <title> (only in development)
+
+
+ if (false) {}
+
+ if ( true && !inAmpMode) {
+ children = this.makeStylesheetInert(children);
+ }
+
+ children = this.handleDocumentScriptLoaderItems(children);
+ let hasAmphtmlRel = false;
+ let hasCanonicalRel = false; // show warning and remove conflicting amp head tags
+
+ head = _react.default.Children.map(head || [], child => {
+ if (!child) return child;
+ const {
+ type,
+ props
+ } = child;
+
+ if (inAmpMode) {
+ let badProp = '';
+
+ if (type === 'meta' && props.name === 'viewport') {
+ badProp = 'name="viewport"';
+ } else if (type === 'link' && props.rel === 'canonical') {
+ hasCanonicalRel = true;
+ } else if (type === 'script') {
+ // only block if
+ // 1. it has a src and isn't pointing to ampproject's CDN
+ // 2. it is using dangerouslySetInnerHTML without a type or
+ // a type of text/javascript
+ if (props.src && props.src.indexOf('ampproject') < -1 || props.dangerouslySetInnerHTML && (!props.type || props.type === 'text/javascript')) {
+ badProp = '<script';
+ Object.keys(props).forEach(prop => {
+ badProp += ` ${prop}="${props[prop]}"`;
+ });
+ badProp += '/>';
+ }
+ }
+
+ if (badProp) {
+ console.warn(`Found conflicting amp tag "${child.type}" with conflicting prop ${badProp} in ${__NEXT_DATA__.page}. https://nextjs.org/docs/messages/conflicting-amp-tag`);
+ return null;
+ }
+ } else {
+ // non-amp mode
+ if (type === 'link' && props.rel === 'amphtml') {
+ hasAmphtmlRel = true;
+ }
+ }
+
+ return child;
+ }); // try to parse styles from fragment for backwards compat
+
+ const curStyles = Array.isArray(styles) ? styles : [];
+
+ if (inAmpMode && styles && // @ts-ignore Property 'props' does not exist on type ReactElement
+ styles.props && // @ts-ignore Property 'props' does not exist on type ReactElement
+ Array.isArray(styles.props.children)) {
+ const hasStyles = el => {
+ var _el$props, _el$props$dangerously;
+
+ return el == null ? void 0 : (_el$props = el.props) == null ? void 0 : (_el$props$dangerously = _el$props.dangerouslySetInnerHTML) == null ? void 0 : _el$props$dangerously.__html;
+ }; // @ts-ignore Property 'props' does not exist on type ReactElement
+
+
+ styles.props.children.forEach(child => {
+ if (Array.isArray(child)) {
+ child.forEach(el => hasStyles(el) && curStyles.push(el));
+ } else if (hasStyles(child)) {
+ curStyles.push(child);
+ }
+ });
+ }
+
+ const files = getDocumentFiles(this.context.buildManifest, this.context.__NEXT_DATA__.page, inAmpMode);
+ return /*#__PURE__*/_react.default.createElement("head", this.props, this.context.isDevelopment && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("style", {
+ "data-next-hide-fouc": true,
+ "data-ampdevmode": inAmpMode ? 'true' : undefined,
+ dangerouslySetInnerHTML: {
+ __html: `body{display:none}`
+ }
+ }), /*#__PURE__*/_react.default.createElement("noscript", {
+ "data-next-hide-fouc": true,
+ "data-ampdevmode": inAmpMode ? 'true' : undefined
+ }, /*#__PURE__*/_react.default.createElement("style", {
+ dangerouslySetInnerHTML: {
+ __html: `body{display:block}`
+ }
+ }))), children, true && /*#__PURE__*/_react.default.createElement("meta", {
+ name: "next-font-preconnect"
+ }), head, /*#__PURE__*/_react.default.createElement("meta", {
+ name: "next-head-count",
+ content: _react.default.Children.count(head || []).toString()
+ }), inAmpMode && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("meta", {
+ name: "viewport",
+ content: "width=device-width,minimum-scale=1,initial-scale=1"
+ }), !hasCanonicalRel && /*#__PURE__*/_react.default.createElement("link", {
+ rel: "canonical",
+ href: canonicalBase + (0, _utils2.cleanAmpPath)(dangerousAsPath)
+ }), /*#__PURE__*/_react.default.createElement("link", {
+ rel: "preload",
+ as: "script",
+ href: "https://cdn.ampproject.org/v0.js"
+ }), styles && /*#__PURE__*/_react.default.createElement("style", {
+ "amp-custom": "",
+ dangerouslySetInnerHTML: {
+ __html: curStyles.map(style => style.props.dangerouslySetInnerHTML.__html).join('').replace(/\/\*# sourceMappingURL=.*\*\//g, '').replace(/\/\*@ sourceURL=.*?\*\//g, '')
+ }
+ }), /*#__PURE__*/_react.default.createElement("style", {
+ "amp-boilerplate": "",
+ dangerouslySetInnerHTML: {
+ __html: `body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}`
+ }
+ }), /*#__PURE__*/_react.default.createElement("noscript", null, /*#__PURE__*/_react.default.createElement("style", {
+ "amp-boilerplate": "",
+ dangerouslySetInnerHTML: {
+ __html: `body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}`
+ }
+ })), /*#__PURE__*/_react.default.createElement("script", {
+ async: true,
+ src: "https://cdn.ampproject.org/v0.js"
+ })), !inAmpMode && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !hasAmphtmlRel && hybridAmp && /*#__PURE__*/_react.default.createElement("link", {
+ rel: "amphtml",
+ href: canonicalBase + getAmpPath(ampPath, dangerousAsPath)
+ }), true && this.getCssLinks(files), true && /*#__PURE__*/_react.default.createElement("noscript", {
+ "data-n-css": (_this$props$nonce = this.props.nonce) != null ? _this$props$nonce : ''
+ }), false && /*#__PURE__*/0, !disableRuntimeJS && !disableJsPreload && this.getPreloadDynamicChunks(), !disableRuntimeJS && !disableJsPreload && this.getPreloadMainLinks(files), !disableOptimizedLoading && !disableRuntimeJS && this.getPolyfillScripts(), !disableOptimizedLoading && !disableRuntimeJS && this.getPreNextScripts(), !disableOptimizedLoading && !disableRuntimeJS && this.getDynamicChunks(files), !disableOptimizedLoading && !disableRuntimeJS && this.getScripts(files), false && 0, false && /*#__PURE__*/0, this.context.isDevelopment &&
+ /*#__PURE__*/
+ // this element is used to mount development styles so the
+ // ordering matches production
+ // (by default, style-loader injects at the bottom of <head />)
+ _react.default.createElement("noscript", {
+ id: "__next_css__DO_NOT_USE__"
+ }), styles || null), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {}, ...(headTags || [])));
+ }
+
+}
+
+exports.Head = Head;
+Head.contextType = _documentContext.DocumentContext;
+Head.propTypes = {
+ nonce: _propTypes.default.string,
+ crossOrigin: _propTypes.default.string
+};
+
+function Main() {
+ const {
+ inAmpMode,
+ html,
+ docComponentsRendered
+ } = (0, _react.useContext)(_documentContext.DocumentContext);
+ docComponentsRendered.Main = true;
+ if (inAmpMode) return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, _constants.AMP_RENDER_TARGET);
+ return /*#__PURE__*/_react.default.createElement("div", {
+ id: "__next",
+ dangerouslySetInnerHTML: {
+ __html: html
+ }
+ });
+}
+
+class NextScript extends _react.Component {
+ constructor(...args) {
+ super(...args);
+ this.context = void 0;
+ }
+
+ getDynamicChunks(files) {
+ return getDynamicChunks(this.context, this.props, files);
+ }
+
+ getPreNextScripts() {
+ return getPreNextScripts(this.context, this.props);
+ }
+
+ getScripts(files) {
+ return getScripts(this.context, this.props, files);
+ }
+
+ getPolyfillScripts() {
+ return getPolyfillScripts(this.context, this.props);
+ }
+
+ static getInlineScriptSource(documentProps) {
+ const {
+ __NEXT_DATA__
+ } = documentProps;
+
+ try {
+ const data = JSON.stringify(__NEXT_DATA__);
+ return (0, _htmlescape.htmlEscapeJsonString)(data);
+ } catch (err) {
+ if (err.message.indexOf('circular structure')) {
+ throw new Error(`Circular structure in "getInitialProps" result of page "${__NEXT_DATA__.page}". https://nextjs.org/docs/messages/circular-structure`);
+ }
+
+ throw err;
+ }
+ }
+
+ render() {
+ const {
+ assetPrefix,
+ inAmpMode,
+ buildManifest,
+ unstable_runtimeJS,
+ docComponentsRendered,
+ devOnlyCacheBusterQueryString,
+ disableOptimizedLoading
+ } = this.context;
+ const disableRuntimeJS = unstable_runtimeJS === false;
+ docComponentsRendered.NextScript = true;
+
+ if (inAmpMode) {
+ if (true) {
+ return null;
+ }
+
+ const ampDevFiles = [...buildManifest.devFiles, ...buildManifest.polyfillFiles, ...buildManifest.ampDevFiles];
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, disableRuntimeJS ? null : /*#__PURE__*/_react.default.createElement("script", {
+ id: "__NEXT_DATA__",
+ type: "application/json",
+ nonce: this.props.nonce,
+ crossOrigin: this.props.crossOrigin || undefined,
+ dangerouslySetInnerHTML: {
+ __html: NextScript.getInlineScriptSource(this.context)
+ },
+ "data-ampdevmode": true
+ }), ampDevFiles.map(file => /*#__PURE__*/_react.default.createElement("script", {
+ key: file,
+ src: `${assetPrefix}/_next/${file}${devOnlyCacheBusterQueryString}`,
+ nonce: this.props.nonce,
+ crossOrigin: this.props.crossOrigin || undefined,
+ "data-ampdevmode": true
+ })));
+ }
+
+ if (false) {}
+
+ const files = getDocumentFiles(this.context.buildManifest, this.context.__NEXT_DATA__.page, inAmpMode);
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !disableRuntimeJS && buildManifest.devFiles ? buildManifest.devFiles.map(file => /*#__PURE__*/_react.default.createElement("script", {
+ key: file,
+ src: `${assetPrefix}/_next/${encodeURI(file)}${devOnlyCacheBusterQueryString}`,
+ nonce: this.props.nonce,
+ crossOrigin: this.props.crossOrigin || undefined
+ })) : null, disableRuntimeJS ? null : /*#__PURE__*/_react.default.createElement("script", {
+ id: "__NEXT_DATA__",
+ type: "application/json",
+ nonce: this.props.nonce,
+ crossOrigin: this.props.crossOrigin || undefined,
+ dangerouslySetInnerHTML: {
+ __html: NextScript.getInlineScriptSource(this.context)
+ }
+ }), disableOptimizedLoading && !disableRuntimeJS && this.getPolyfillScripts(), disableOptimizedLoading && !disableRuntimeJS && this.getPreNextScripts(), disableOptimizedLoading && !disableRuntimeJS && this.getDynamicChunks(files), disableOptimizedLoading && !disableRuntimeJS && this.getScripts(files));
+ }
+
+}
+
+exports.NextScript = NextScript;
+NextScript.contextType = _documentContext.DocumentContext;
+NextScript.propTypes = {
+ nonce: _propTypes.default.string,
+ crossOrigin: _propTypes.default.string
+};
+NextScript.safariNomoduleFix = '!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();';
+
+function getAmpPath(ampPath, asPath) {
+ return ampPath || `${asPath}${asPath.includes('?') ? '&' : '?'}amp=1`;
+}
+
+/***/ }),
+
+/***/ 630:
+/***/ (function(__unused_webpack_module, exports) {
+
+"use strict";
+exports.__esModule=true;exports.htmlEscapeJsonString=htmlEscapeJsonString;// This utility is based on https://github.com/zertosh/htmlescape
+// License: https://github.com/zertosh/htmlescape/blob/0527ca7156a524d256101bb310a9f970f63078ad/LICENSE
+const ESCAPE_LOOKUP={'&':'\\u0026','>':'\\u003e','<':'\\u003c','\u2028':'\\u2028','\u2029':'\\u2029'};const ESCAPE_REGEX=/[&><\u2028\u2029]/g;function htmlEscapeJsonString(str){return str.replace(ESCAPE_REGEX,match=>ESCAPE_LOOKUP[match]);}
+//# sourceMappingURL=htmlescape.js.map
+
+/***/ }),
+
+/***/ 227:
+/***/ (function(module) {
+
+"use strict";
+module.exports = require("next/dist/next-server/lib/constants.js");;
+
+/***/ }),
+
+/***/ 932:
+/***/ (function(module) {
+
+"use strict";
+module.exports = require("next/dist/next-server/lib/document-context.js");;
+
+/***/ }),
+
+/***/ 816:
+/***/ (function(module) {
+
+"use strict";
+module.exports = require("next/dist/next-server/lib/head-manager-context.js");;
+
+/***/ }),
+
+/***/ 579:
+/***/ (function(module) {
+
+"use strict";
+module.exports = require("next/dist/next-server/lib/utils.js");;
+
+/***/ }),
+
+/***/ 171:
+/***/ (function(module) {
+
+"use strict";
+module.exports = require("next/dist/next-server/server/get-page-files.js");;
+
+/***/ }),
+
+/***/ 105:
+/***/ (function(module) {
+
+"use strict";
+module.exports = require("next/dist/next-server/server/utils.js");;
+
+/***/ }),
+
+/***/ 229:
+/***/ (function(module) {
+
+"use strict";
+module.exports = require("prop-types");;
+
+/***/ }),
+
+/***/ 297:
+/***/ (function(module) {
+
+"use strict";
+module.exports = require("react");;
+
+/***/ }),
+
+/***/ 168:
+/***/ (function(module) {
+
+"use strict";
+module.exports = require("styled-jsx/server");;
+
+/***/ })
+
+};
+;
+
+// load runtime
+var __webpack_require__ = require("../webpack-runtime.js");
+__webpack_require__.C(exports);
+var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
+var __webpack_exports__ = (__webpack_exec__(881));
+module.exports = __webpack_exports__;
+
+})(); \ No newline at end of file
diff --git a/build/server/pages/_error.js b/build/server/pages/_error.js
new file mode 100644
index 0000000..d9c78d4
--- /dev/null
+++ b/build/server/pages/_error.js
@@ -0,0 +1,151 @@
+(function() {
+var exports = {};
+exports.id = 820;
+exports.ids = [820];
+exports.modules = {
+
+/***/ 318:
+/***/ (function(module) {
+
+function _interopRequireDefault(obj) {
+ return obj && obj.__esModule ? obj : {
+ "default": obj
+ };
+}
+
+module.exports = _interopRequireDefault;
+
+/***/ }),
+
+/***/ 359:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var _interopRequireDefault = __webpack_require__(318);
+
+exports.__esModule = true;
+exports.default = void 0;
+
+var _react = _interopRequireDefault(__webpack_require__(297));
+
+var _head = _interopRequireDefault(__webpack_require__(273));
+
+const statusCodes = {
+ 400: 'Bad Request',
+ 404: 'This page could not be found',
+ 405: 'Method Not Allowed',
+ 500: 'Internal Server Error'
+};
+
+function _getInitialProps({
+ res,
+ err
+}) {
+ const statusCode = res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;
+ return {
+ statusCode
+ };
+}
+/**
+* `Error` component used for handling errors.
+*/
+
+
+class Error extends _react.default.Component {
+ render() {
+ const {
+ statusCode
+ } = this.props;
+ const title = this.props.title || statusCodes[statusCode] || 'An unexpected error has occurred';
+ return /*#__PURE__*/_react.default.createElement("div", {
+ style: styles.error
+ }, /*#__PURE__*/_react.default.createElement(_head.default, null, /*#__PURE__*/_react.default.createElement("title", null, statusCode ? `${statusCode}: ${title}` : 'Application error: a client-side exception has occurred')), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("style", {
+ dangerouslySetInnerHTML: {
+ __html: 'body { margin: 0 }'
+ }
+ }), statusCode ? /*#__PURE__*/_react.default.createElement("h1", {
+ style: styles.h1
+ }, statusCode) : null, /*#__PURE__*/_react.default.createElement("div", {
+ style: styles.desc
+ }, /*#__PURE__*/_react.default.createElement("h2", {
+ style: styles.h2
+ }, this.props.title || statusCode ? title : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Application error: a client-side exception has occurred (", /*#__PURE__*/_react.default.createElement("a", {
+ href: "https://nextjs.org/docs/messages/client-side-exception-occurred"
+ }, "developer guidance"), ")"), "."))));
+ }
+
+}
+
+exports.default = Error;
+Error.displayName = 'ErrorPage';
+Error.getInitialProps = _getInitialProps;
+Error.origGetInitialProps = _getInitialProps;
+const styles = {
+ error: {
+ color: '#000',
+ background: '#fff',
+ fontFamily: '-apple-system, BlinkMacSystemFont, Roboto, "Segoe UI", "Fira Sans", Avenir, "Helvetica Neue", "Lucida Grande", sans-serif',
+ height: '100vh',
+ textAlign: 'center',
+ display: 'flex',
+ flexDirection: 'column',
+ alignItems: 'center',
+ justifyContent: 'center'
+ },
+ desc: {
+ display: 'inline-block',
+ textAlign: 'left',
+ lineHeight: '49px',
+ height: '49px',
+ verticalAlign: 'middle'
+ },
+ h1: {
+ display: 'inline-block',
+ borderRight: '1px solid rgba(0, 0, 0,.3)',
+ margin: 0,
+ marginRight: '20px',
+ padding: '10px 23px 10px 0',
+ fontSize: '24px',
+ fontWeight: 500,
+ verticalAlign: 'top'
+ },
+ h2: {
+ fontSize: '14px',
+ fontWeight: 'normal',
+ lineHeight: 'inherit',
+ margin: 0,
+ padding: 0
+ }
+};
+
+/***/ }),
+
+/***/ 273:
+/***/ (function(module) {
+
+"use strict";
+module.exports = require("next/dist/next-server/lib/head.js");;
+
+/***/ }),
+
+/***/ 297:
+/***/ (function(module) {
+
+"use strict";
+module.exports = require("react");;
+
+/***/ })
+
+};
+;
+
+// load runtime
+var __webpack_require__ = require("../webpack-runtime.js");
+__webpack_require__.C(exports);
+var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
+var __webpack_exports__ = (__webpack_exec__(359));
+module.exports = __webpack_exports__;
+
+})(); \ No newline at end of file
diff --git a/build/server/pages/index.html b/build/server/pages/index.html
new file mode 100644
index 0000000..c733d59
--- /dev/null
+++ b/build/server/pages/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/120f2e2270820d49a21f.css" as="style"/><link rel="stylesheet" href="/_next/static/css/120f2e2270820d49a21f.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-a54b4f32bdc1ef890ddd.js"></script><script src="/_next/static/chunks/webpack-f6b94a473b4a21f6bdce.js" defer=""></script><script src="/_next/static/chunks/framework-0441fae7fd130f37dee1.js" defer=""></script><script src="/_next/static/chunks/main-a3a79aff3ff232b41814.js" defer=""></script><script src="/_next/static/chunks/pages/_app-5bb503dca4dae114eb0c.js" defer=""></script><script src="/_next/static/chunks/fb7d5399-a8c606efbc9e7c0edf90.js" defer=""></script><script src="/_next/static/chunks/d25bd147-65fcc4c92edba8b370fb.js" defer=""></script><script src="/_next/static/chunks/283-1d245e6e2271fd76c328.js" defer=""></script><script src="/_next/static/chunks/pages/index-b7e9a3c26de1eb7c41cc.js" defer=""></script><script src="/_next/static/Ci3EcXz8ajkhs7MVidKTf/_buildManifest.js" defer=""></script><script src="/_next/static/Ci3EcXz8ajkhs7MVidKTf/_ssgManifest.js" defer=""></script></head><body><div id="__next"><style data-emotion="css-global o7558t">:host,:root{--chakra-ring-inset:var(--chakra-empty,/*!*/ /*!*/);--chakra-ring-offset-width:0px;--chakra-ring-offset-color:#fff;--chakra-ring-color:rgba(66, 153, 225, 0.6);--chakra-ring-offset-shadow:0 0 #0000;--chakra-ring-shadow:0 0 #0000;--chakra-space-x-reverse:0;--chakra-space-y-reverse:0;--chakra-colors-transparent:transparent;--chakra-colors-current:currentColor;--chakra-colors-black:#000000;--chakra-colors-white:#FFFFFF;--chakra-colors-whiteAlpha-50:rgba(255, 255, 255, 0.04);--chakra-colors-whiteAlpha-100:rgba(255, 255, 255, 0.06);--chakra-colors-whiteAlpha-200:rgba(255, 255, 255, 0.08);--chakra-colors-whiteAlpha-300:rgba(255, 255, 255, 0.16);--chakra-colors-whiteAlpha-400:rgba(255, 255, 255, 0.24);--chakra-colors-whiteAlpha-500:rgba(255, 255, 255, 0.36);--chakra-colors-whiteAlpha-600:rgba(255, 255, 255, 0.48);--chakra-colors-whiteAlpha-700:rgba(255, 255, 255, 0.64);--chakra-colors-whiteAlpha-800:rgba(255, 255, 255, 0.80);--chakra-colors-whiteAlpha-900:rgba(255, 255, 255, 0.92);--chakra-colors-blackAlpha-50:rgba(0, 0, 0, 0.04);--chakra-colors-blackAlpha-100:rgba(0, 0, 0, 0.06);--chakra-colors-blackAlpha-200:rgba(0, 0, 0, 0.08);--chakra-colors-blackAlpha-300:rgba(0, 0, 0, 0.16);--chakra-colors-blackAlpha-400:rgba(0, 0, 0, 0.24);--chakra-colors-blackAlpha-500:rgba(0, 0, 0, 0.36);--chakra-colors-blackAlpha-600:rgba(0, 0, 0, 0.48);--chakra-colors-blackAlpha-700:rgba(0, 0, 0, 0.64);--chakra-colors-blackAlpha-800:rgba(0, 0, 0, 0.80);--chakra-colors-blackAlpha-900:rgba(0, 0, 0, 0.92);--chakra-colors-gray-50:#F7FAFC;--chakra-colors-gray-100:#EDF2F7;--chakra-colors-gray-200:#E2E8F0;--chakra-colors-gray-300:#CBD5E0;--chakra-colors-gray-400:#A0AEC0;--chakra-colors-gray-500:#718096;--chakra-colors-gray-600:#4A5568;--chakra-colors-gray-700:#2D3748;--chakra-colors-gray-800:#1A202C;--chakra-colors-gray-900:#171923;--chakra-colors-red-50:#FFF5F5;--chakra-colors-red-100:#FED7D7;--chakra-colors-red-200:#FEB2B2;--chakra-colors-red-300:#FC8181;--chakra-colors-red-400:#F56565;--chakra-colors-red-500:#E53E3E;--chakra-colors-red-600:#C53030;--chakra-colors-red-700:#9B2C2C;--chakra-colors-red-800:#822727;--chakra-colors-red-900:#63171B;--chakra-colors-orange-50:#FFFAF0;--chakra-colors-orange-100:#FEEBC8;--chakra-colors-orange-200:#FBD38D;--chakra-colors-orange-300:#F6AD55;--chakra-colors-orange-400:#ED8936;--chakra-colors-orange-500:#DD6B20;--chakra-colors-orange-600:#C05621;--chakra-colors-orange-700:#9C4221;--chakra-colors-orange-800:#7B341E;--chakra-colors-orange-900:#652B19;--chakra-colors-yellow-50:#FFFFF0;--chakra-colors-yellow-100:#FEFCBF;--chakra-colors-yellow-200:#FAF089;--chakra-colors-yellow-300:#F6E05E;--chakra-colors-yellow-400:#ECC94B;--chakra-colors-yellow-500:#D69E2E;--chakra-colors-yellow-600:#B7791F;--chakra-colors-yellow-700:#975A16;--chakra-colors-yellow-800:#744210;--chakra-colors-yellow-900:#5F370E;--chakra-colors-green-50:#F0FFF4;--chakra-colors-green-100:#C6F6D5;--chakra-colors-green-200:#9AE6B4;--chakra-colors-green-300:#68D391;--chakra-colors-green-400:#48BB78;--chakra-colors-green-500:#38A169;--chakra-colors-green-600:#2F855A;--chakra-colors-green-700:#276749;--chakra-colors-green-800:#22543D;--chakra-colors-green-900:#1C4532;--chakra-colors-teal-50:#E6FFFA;--chakra-colors-teal-100:#B2F5EA;--chakra-colors-teal-200:#81E6D9;--chakra-colors-teal-300:#4FD1C5;--chakra-colors-teal-400:#38B2AC;--chakra-colors-teal-500:#319795;--chakra-colors-teal-600:#2C7A7B;--chakra-colors-teal-700:#285E61;--chakra-colors-teal-800:#234E52;--chakra-colors-teal-900:#1D4044;--chakra-colors-blue-50:#ebf8ff;--chakra-colors-blue-100:#bee3f8;--chakra-colors-blue-200:#90cdf4;--chakra-colors-blue-300:#63b3ed;--chakra-colors-blue-400:#4299e1;--chakra-colors-blue-500:#3182ce;--chakra-colors-blue-600:#2b6cb0;--chakra-colors-blue-700:#2c5282;--chakra-colors-blue-800:#2a4365;--chakra-colors-blue-900:#1A365D;--chakra-colors-cyan-50:#EDFDFD;--chakra-colors-cyan-100:#C4F1F9;--chakra-colors-cyan-200:#9DECF9;--chakra-colors-cyan-300:#76E4F7;--chakra-colors-cyan-400:#0BC5EA;--chakra-colors-cyan-500:#00B5D8;--chakra-colors-cyan-600:#00A3C4;--chakra-colors-cyan-700:#0987A0;--chakra-colors-cyan-800:#086F83;--chakra-colors-cyan-900:#065666;--chakra-colors-purple-50:#FAF5FF;--chakra-colors-purple-100:#E9D8FD;--chakra-colors-purple-200:#D6BCFA;--chakra-colors-purple-300:#B794F4;--chakra-colors-purple-400:#9F7AEA;--chakra-colors-purple-500:#805AD5;--chakra-colors-purple-600:#6B46C1;--chakra-colors-purple-700:#553C9A;--chakra-colors-purple-800:#44337A;--chakra-colors-purple-900:#322659;--chakra-colors-pink-50:#FFF5F7;--chakra-colors-pink-100:#FED7E2;--chakra-colors-pink-200:#FBB6CE;--chakra-colors-pink-300:#F687B3;--chakra-colors-pink-400:#ED64A6;--chakra-colors-pink-500:#D53F8C;--chakra-colors-pink-600:#B83280;--chakra-colors-pink-700:#97266D;--chakra-colors-pink-800:#702459;--chakra-colors-pink-900:#521B41;--chakra-colors-linkedin-50:#E8F4F9;--chakra-colors-linkedin-100:#CFEDFB;--chakra-colors-linkedin-200:#9BDAF3;--chakra-colors-linkedin-300:#68C7EC;--chakra-colors-linkedin-400:#34B3E4;--chakra-colors-linkedin-500:#00A0DC;--chakra-colors-linkedin-600:#008CC9;--chakra-colors-linkedin-700:#0077B5;--chakra-colors-linkedin-800:#005E93;--chakra-colors-linkedin-900:#004471;--chakra-colors-facebook-50:#E8F4F9;--chakra-colors-facebook-100:#D9DEE9;--chakra-colors-facebook-200:#B7C2DA;--chakra-colors-facebook-300:#6482C0;--chakra-colors-facebook-400:#4267B2;--chakra-colors-facebook-500:#385898;--chakra-colors-facebook-600:#314E89;--chakra-colors-facebook-700:#29487D;--chakra-colors-facebook-800:#223B67;--chakra-colors-facebook-900:#1E355B;--chakra-colors-messenger-50:#D0E6FF;--chakra-colors-messenger-100:#B9DAFF;--chakra-colors-messenger-200:#A2CDFF;--chakra-colors-messenger-300:#7AB8FF;--chakra-colors-messenger-400:#2E90FF;--chakra-colors-messenger-500:#0078FF;--chakra-colors-messenger-600:#0063D1;--chakra-colors-messenger-700:#0052AC;--chakra-colors-messenger-800:#003C7E;--chakra-colors-messenger-900:#002C5C;--chakra-colors-whatsapp-50:#dffeec;--chakra-colors-whatsapp-100:#b9f5d0;--chakra-colors-whatsapp-200:#90edb3;--chakra-colors-whatsapp-300:#65e495;--chakra-colors-whatsapp-400:#3cdd78;--chakra-colors-whatsapp-500:#22c35e;--chakra-colors-whatsapp-600:#179848;--chakra-colors-whatsapp-700:#0c6c33;--chakra-colors-whatsapp-800:#01421c;--chakra-colors-whatsapp-900:#001803;--chakra-colors-twitter-50:#E5F4FD;--chakra-colors-twitter-100:#C8E9FB;--chakra-colors-twitter-200:#A8DCFA;--chakra-colors-twitter-300:#83CDF7;--chakra-colors-twitter-400:#57BBF5;--chakra-colors-twitter-500:#1DA1F2;--chakra-colors-twitter-600:#1A94DA;--chakra-colors-twitter-700:#1681BF;--chakra-colors-twitter-800:#136B9E;--chakra-colors-twitter-900:#0D4D71;--chakra-colors-telegram-50:#E3F2F9;--chakra-colors-telegram-100:#C5E4F3;--chakra-colors-telegram-200:#A2D4EC;--chakra-colors-telegram-300:#7AC1E4;--chakra-colors-telegram-400:#47A9DA;--chakra-colors-telegram-500:#0088CC;--chakra-colors-telegram-600:#007AB8;--chakra-colors-telegram-700:#006BA1;--chakra-colors-telegram-800:#005885;--chakra-colors-telegram-900:#003F5E;--chakra-borders-none:0;--chakra-borders-1px:1px solid;--chakra-borders-2px:2px solid;--chakra-borders-4px:4px solid;--chakra-borders-8px:8px solid;--chakra-fonts-heading:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--chakra-fonts-body:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--chakra-fonts-mono:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--chakra-fontSizes-xs:0.75rem;--chakra-fontSizes-sm:0.875rem;--chakra-fontSizes-md:1rem;--chakra-fontSizes-lg:1.125rem;--chakra-fontSizes-xl:1.25rem;--chakra-fontSizes-2xl:1.5rem;--chakra-fontSizes-3xl:1.875rem;--chakra-fontSizes-4xl:2.25rem;--chakra-fontSizes-5xl:3rem;--chakra-fontSizes-6xl:3.75rem;--chakra-fontSizes-7xl:4.5rem;--chakra-fontSizes-8xl:6rem;--chakra-fontSizes-9xl:8rem;--chakra-fontWeights-hairline:100;--chakra-fontWeights-thin:200;--chakra-fontWeights-light:300;--chakra-fontWeights-normal:400;--chakra-fontWeights-medium:500;--chakra-fontWeights-semibold:600;--chakra-fontWeights-bold:700;--chakra-fontWeights-extrabold:800;--chakra-fontWeights-black:900;--chakra-letterSpacings-tighter:-0.05em;--chakra-letterSpacings-tight:-0.025em;--chakra-letterSpacings-normal:0;--chakra-letterSpacings-wide:0.025em;--chakra-letterSpacings-wider:0.05em;--chakra-letterSpacings-widest:0.1em;--chakra-lineHeights-3:.75rem;--chakra-lineHeights-4:1rem;--chakra-lineHeights-5:1.25rem;--chakra-lineHeights-6:1.5rem;--chakra-lineHeights-7:1.75rem;--chakra-lineHeights-8:2rem;--chakra-lineHeights-9:2.25rem;--chakra-lineHeights-10:2.5rem;--chakra-lineHeights-normal:normal;--chakra-lineHeights-none:1;--chakra-lineHeights-shorter:1.25;--chakra-lineHeights-short:1.375;--chakra-lineHeights-base:1.5;--chakra-lineHeights-tall:1.625;--chakra-lineHeights-taller:2;--chakra-radii-none:0;--chakra-radii-sm:0.125rem;--chakra-radii-base:0.25rem;--chakra-radii-md:0.375rem;--chakra-radii-lg:0.5rem;--chakra-radii-xl:0.75rem;--chakra-radii-2xl:1rem;--chakra-radii-3xl:1.5rem;--chakra-radii-full:9999px;--chakra-space-1:0.25rem;--chakra-space-2:0.5rem;--chakra-space-3:0.75rem;--chakra-space-4:1rem;--chakra-space-5:1.25rem;--chakra-space-6:1.5rem;--chakra-space-7:1.75rem;--chakra-space-8:2rem;--chakra-space-9:2.25rem;--chakra-space-10:2.5rem;--chakra-space-12:3rem;--chakra-space-14:3.5rem;--chakra-space-16:4rem;--chakra-space-20:5rem;--chakra-space-24:6rem;--chakra-space-28:7rem;--chakra-space-32:8rem;--chakra-space-36:9rem;--chakra-space-40:10rem;--chakra-space-44:11rem;--chakra-space-48:12rem;--chakra-space-52:13rem;--chakra-space-56:14rem;--chakra-space-60:15rem;--chakra-space-64:16rem;--chakra-space-72:18rem;--chakra-space-80:20rem;--chakra-space-96:24rem;--chakra-space-px:1px;--chakra-space-0\.5:0.125rem;--chakra-space-1\.5:0.375rem;--chakra-space-2\.5:0.625rem;--chakra-space-3\.5:0.875rem;--chakra-shadows-xs:0 0 0 1px rgba(0, 0, 0, 0.05);--chakra-shadows-sm:0 1px 2px 0 rgba(0, 0, 0, 0.05);--chakra-shadows-base:0 1px 3px 0 rgba(0, 0, 0, 0.1),0 1px 2px 0 rgba(0, 0, 0, 0.06);--chakra-shadows-md:0 4px 6px -1px rgba(0, 0, 0, 0.1),0 2px 4px -1px rgba(0, 0, 0, 0.06);--chakra-shadows-lg:0 10px 15px -3px rgba(0, 0, 0, 0.1),0 4px 6px -2px rgba(0, 0, 0, 0.05);--chakra-shadows-xl:0 20px 25px -5px rgba(0, 0, 0, 0.1),0 10px 10px -5px rgba(0, 0, 0, 0.04);--chakra-shadows-2xl:0 25px 50px -12px rgba(0, 0, 0, 0.25);--chakra-shadows-outline:0 0 0 3px rgba(66, 153, 225, 0.6);--chakra-shadows-inner:inset 0 2px 4px 0 rgba(0,0,0,0.06);--chakra-shadows-none:none;--chakra-shadows-dark-lg:rgba(0, 0, 0, 0.1) 0px 0px 0px 1px,rgba(0, 0, 0, 0.2) 0px 5px 10px,rgba(0, 0, 0, 0.4) 0px 15px 40px;--chakra-sizes-1:0.25rem;--chakra-sizes-2:0.5rem;--chakra-sizes-3:0.75rem;--chakra-sizes-4:1rem;--chakra-sizes-5:1.25rem;--chakra-sizes-6:1.5rem;--chakra-sizes-7:1.75rem;--chakra-sizes-8:2rem;--chakra-sizes-9:2.25rem;--chakra-sizes-10:2.5rem;--chakra-sizes-12:3rem;--chakra-sizes-14:3.5rem;--chakra-sizes-16:4rem;--chakra-sizes-20:5rem;--chakra-sizes-24:6rem;--chakra-sizes-28:7rem;--chakra-sizes-32:8rem;--chakra-sizes-36:9rem;--chakra-sizes-40:10rem;--chakra-sizes-44:11rem;--chakra-sizes-48:12rem;--chakra-sizes-52:13rem;--chakra-sizes-56:14rem;--chakra-sizes-60:15rem;--chakra-sizes-64:16rem;--chakra-sizes-72:18rem;--chakra-sizes-80:20rem;--chakra-sizes-96:24rem;--chakra-sizes-px:1px;--chakra-sizes-0\.5:0.125rem;--chakra-sizes-1\.5:0.375rem;--chakra-sizes-2\.5:0.625rem;--chakra-sizes-3\.5:0.875rem;--chakra-sizes-max:max-content;--chakra-sizes-min:min-content;--chakra-sizes-full:100%;--chakra-sizes-3xs:14rem;--chakra-sizes-2xs:16rem;--chakra-sizes-xs:20rem;--chakra-sizes-sm:24rem;--chakra-sizes-md:28rem;--chakra-sizes-lg:32rem;--chakra-sizes-xl:36rem;--chakra-sizes-2xl:42rem;--chakra-sizes-3xl:48rem;--chakra-sizes-4xl:56rem;--chakra-sizes-5xl:64rem;--chakra-sizes-6xl:72rem;--chakra-sizes-7xl:80rem;--chakra-sizes-8xl:90rem;--chakra-sizes-container-sm:640px;--chakra-sizes-container-md:768px;--chakra-sizes-container-lg:1024px;--chakra-sizes-container-xl:1280px;--chakra-zIndices-hide:-1;--chakra-zIndices-auto:auto;--chakra-zIndices-base:0;--chakra-zIndices-docked:10;--chakra-zIndices-dropdown:1000;--chakra-zIndices-sticky:1100;--chakra-zIndices-banner:1200;--chakra-zIndices-overlay:1300;--chakra-zIndices-modal:1400;--chakra-zIndices-popover:1500;--chakra-zIndices-skipLink:1600;--chakra-zIndices-toast:1700;--chakra-zIndices-tooltip:1800;--chakra-transition-property-common:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;--chakra-transition-property-colors:background-color,border-color,color,fill,stroke;--chakra-transition-property-dimensions:width,height;--chakra-transition-property-position:left,right,top,bottom;--chakra-transition-property-background:background-color,background-image,background-position;--chakra-transition-easing-ease-in:cubic-bezier(0.4, 0, 1, 1);--chakra-transition-easing-ease-out:cubic-bezier(0, 0, 0.2, 1);--chakra-transition-easing-ease-in-out:cubic-bezier(0.4, 0, 0.2, 1);--chakra-transition-duration-ultra-fast:50ms;--chakra-transition-duration-faster:100ms;--chakra-transition-duration-fast:150ms;--chakra-transition-duration-normal:200ms;--chakra-transition-duration-slow:300ms;--chakra-transition-duration-slower:400ms;--chakra-transition-duration-ultra-slow:500ms;--chakra-blur-none:0;--chakra-blur-sm:4px;--chakra-blur-base:8px;--chakra-blur-md:12px;--chakra-blur-lg:16px;--chakra-blur-xl:24px;--chakra-blur-2xl:40px;--chakra-blur-3xl:64px;}</style><style data-emotion="css-global 1syi0wy">html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;}body{position:relative;min-height:100%;font-feature-settings:'kern';}*,*::before,*::after{border-width:0;border-style:solid;box-sizing:border-box;}main{display:block;}hr{border-top-width:1px;box-sizing:content-box;height:0;overflow:visible;}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1em;}a{background-color:transparent;color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;}abbr[title]{border-bottom:none;-webkit-text-decoration:underline;text-decoration:underline;-webkit-text-decoration:underline dotted;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bold;}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sub{bottom:-0.25em;}sup{top:-0.5em;}img{border-style:none;}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible;}button,select{text-transform:none;}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0;}fieldset{padding:0.35em 0.75em 0.625em;}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline;}textarea{overflow:auto;}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none!important;}input[type="number"]{-moz-appearance:textfield;}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none!important;}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block;}summary{display:-webkit-box;display:-webkit-list-item;display:-ms-list-itembox;display:list-item;}template{display:none;}[hidden]{display:none!important;}body,blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0;}button{background:transparent;padding:0;}fieldset{margin:0;padding:0;}ol,ul{margin:0;padding:0;}textarea{resize:vertical;}button,[role="button"]{cursor:pointer;}button::-moz-focus-inner{border:0!important;}table{border-collapse:collapse;}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit;}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle;}img,video{max-width:100%;height:auto;}[data-js-focus-visible] :focus:not([data-focus-visible-added]){outline:none;box-shadow:none;}select::-ms-expand{display:none;}</style><style data-emotion="css-global 1baqkrf">body{font-family:var(--chakra-fonts-body);color:var(--chakra-colors-gray-800);background:var(--chakra-colors-white);transition-property:background-color;transition-duration:var(--chakra-transition-duration-normal);line-height:var(--chakra-lineHeights-base);}*::-webkit-input-placeholder{color:var(--chakra-colors-gray-400);}*::-moz-placeholder{color:var(--chakra-colors-gray-400);}*:-ms-input-placeholder{color:var(--chakra-colors-gray-400);}*::placeholder{color:var(--chakra-colors-gray-400);}*,*::before,::after{border-color:var(--chakra-colors-gray-200);word-wrap:break-word;}</style><span></span></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"Ci3EcXz8ajkhs7MVidKTf","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/build/server/webpack-runtime.js b/build/server/webpack-runtime.js
new file mode 100644
index 0000000..ee76987
--- /dev/null
+++ b/build/server/webpack-runtime.js
@@ -0,0 +1,160 @@
+/******/ (function() { // webpackBootstrap
+/******/ "use strict";
+/******/ var __webpack_modules__ = ({});
+/************************************************************************/
+/******/ // The module cache
+/******/ var __webpack_module_cache__ = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/ // Check if module is in cache
+/******/ var cachedModule = __webpack_module_cache__[moduleId];
+/******/ if (cachedModule !== undefined) {
+/******/ return cachedModule.exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = __webpack_module_cache__[moduleId] = {
+/******/ // no module.id needed
+/******/ // no module.loaded needed
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ var threw = true;
+/******/ try {
+/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/ threw = false;
+/******/ } finally {
+/******/ if(threw) delete __webpack_module_cache__[moduleId];
+/******/ }
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = __webpack_modules__;
+/******/
+/************************************************************************/
+/******/ /* webpack/runtime/compat get default export */
+/******/ !function() {
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function() { return module['default']; } :
+/******/ function() { return module; };
+/******/ __webpack_require__.d(getter, { a: getter });
+/******/ return getter;
+/******/ };
+/******/ }();
+/******/
+/******/ /* webpack/runtime/define property getters */
+/******/ !function() {
+/******/ // define getter functions for harmony exports
+/******/ __webpack_require__.d = function(exports, definition) {
+/******/ for(var key in definition) {
+/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ }
+/******/ }
+/******/ };
+/******/ }();
+/******/
+/******/ /* webpack/runtime/ensure chunk */
+/******/ !function() {
+/******/ __webpack_require__.f = {};
+/******/ // This file contains only the entry chunk.
+/******/ // The chunk loading function for additional chunks
+/******/ __webpack_require__.e = function(chunkId) {
+/******/ return Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {
+/******/ __webpack_require__.f[key](chunkId, promises);
+/******/ return promises;
+/******/ }, []));
+/******/ };
+/******/ }();
+/******/
+/******/ /* webpack/runtime/get javascript chunk filename */
+/******/ !function() {
+/******/ // This function allow to reference async chunks and sibling chunks for the entrypoint
+/******/ __webpack_require__.u = function(chunkId) {
+/******/ // return url for filenames based on template
+/******/ return "" + chunkId + ".js";
+/******/ };
+/******/ }();
+/******/
+/******/ /* webpack/runtime/hasOwnProperty shorthand */
+/******/ !function() {
+/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
+/******/ }();
+/******/
+/******/ /* webpack/runtime/make namespace object */
+/******/ !function() {
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/ }();
+/******/
+/******/ /* webpack/runtime/startup entrypoint */
+/******/ !function() {
+/******/ __webpack_require__.X = function(result, chunkIds, fn) {
+/******/ // arguments: chunkIds, moduleId are deprecated
+/******/ var moduleId = chunkIds;
+/******/ if(!fn) chunkIds = result, fn = function() { return __webpack_require__(__webpack_require__.s = moduleId); };
+/******/ chunkIds.map(__webpack_require__.e, __webpack_require__)
+/******/ var r = fn();
+/******/ return r === undefined ? result : r;
+/******/ }
+/******/ }();
+/******/
+/******/ /* webpack/runtime/require chunk loading */
+/******/ !function() {
+/******/ // no baseURI
+/******/
+/******/ // object to store loaded chunks
+/******/ // "1" means "loaded", otherwise not loaded yet
+/******/ var installedChunks = {
+/******/ 658: 1
+/******/ };
+/******/
+/******/ // no on chunks loaded
+/******/
+/******/ var installChunk = function(chunk) {
+/******/ var moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime;
+/******/ for(var moduleId in moreModules) {
+/******/ if(__webpack_require__.o(moreModules, moduleId)) {
+/******/ __webpack_require__.m[moduleId] = moreModules[moduleId];
+/******/ }
+/******/ }
+/******/ if(runtime) runtime(__webpack_require__);
+/******/ for(var i = 0; i < chunkIds.length; i++)
+/******/ installedChunks[chunkIds[i]] = 1;
+/******/
+/******/ };
+/******/
+/******/ // require() chunk loading for javascript
+/******/ __webpack_require__.f.require = function(chunkId, promises) {
+/******/ // "1" is the signal for "already loaded"
+/******/ if(!installedChunks[chunkId]) {
+/******/ if(658 != chunkId) {
+/******/ installChunk(require("./chunks/" + __webpack_require__.u(chunkId)));
+/******/ } else installedChunks[chunkId] = 1;
+/******/ }
+/******/ };
+/******/
+/******/ module.exports = __webpack_require__;
+/******/ __webpack_require__.C = installChunk;
+/******/
+/******/ // no HMR
+/******/
+/******/ // no HMR manifest
+/******/ }();
+/******/
+/************************************************************************/
+/******/
+/******/
+/******/ })()
+; \ No newline at end of file
diff --git a/build/static/Ci3EcXz8ajkhs7MVidKTf/_buildManifest.js b/build/static/Ci3EcXz8ajkhs7MVidKTf/_buildManifest.js
new file mode 100644
index 0000000..2501b11
--- /dev/null
+++ b/build/static/Ci3EcXz8ajkhs7MVidKTf/_buildManifest.js
@@ -0,0 +1 @@
+self.__BUILD_MANIFEST={__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":["static/chunks/fb7d5399-a8c606efbc9e7c0edf90.js","static/chunks/d25bd147-65fcc4c92edba8b370fb.js","static/chunks/283-1d245e6e2271fd76c328.js","static/chunks/pages/index-b7e9a3c26de1eb7c41cc.js"],"/_error":["static/chunks/pages/_error-a0e21b9b223f827fe1f2.js"],sortedPages:["/","/_app","/_error"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file
diff --git a/build/static/Ci3EcXz8ajkhs7MVidKTf/_ssgManifest.js b/build/static/Ci3EcXz8ajkhs7MVidKTf/_ssgManifest.js
new file mode 100644
index 0000000..0511aa8
--- /dev/null
+++ b/build/static/Ci3EcXz8ajkhs7MVidKTf/_ssgManifest.js
@@ -0,0 +1 @@
+self.__SSG_MANIFEST=new Set,self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB(); \ No newline at end of file
diff --git a/build/static/chunks/283-1d245e6e2271fd76c328.js b/build/static/chunks/283-1d245e6e2271fd76c328.js
new file mode 100644
index 0000000..7c49f72
--- /dev/null
+++ b/build/static/chunks/283-1d245e6e2271fd76c328.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[283],{676:function(e,t,n){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{Z:function(){return r}})},2137:function(e,t,n){"use strict";function r(e,t,n,r,i,o,a){try{var s=e[o](a),u=s.value}catch(c){return void n(c)}s.done?t(u):Promise.resolve(u).then(r,i)}function i(e){return function(){var t=this,n=arguments;return new Promise((function(i,o){var a=e.apply(t,n);function s(e){r(a,i,o,s,u,"next",e)}function u(e){r(a,i,o,s,u,"throw",e)}s(void 0)}))}}n.d(t,{Z:function(){return i}})},7375:function(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}n.d(t,{Z:function(){return r}})},4699:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(2961);function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(u){i=!0,o=u}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}return n}}(e,t)||(0,r.Z)(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},7329:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(676);var i=n(2961);function o(e){return function(e){if(Array.isArray(e))return(0,r.Z)(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||(0,i.Z)(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},2961:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(676);function i(e,t){if(e){if("string"===typeof e)return(0,r.Z)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.Z)(e,t):void 0}}},6327:function(e,t,n){"use strict";n.d(t,{UQ:function(){return q},KF:function(){return $},XE:function(){return Y},Qd:function(){return Z},Hk:function(){return X}});var r=n(58),i=n(63),o=n(2326),a=n(5284),s=n(9676),u=n(5643),c=n(658),l=n(8554),d=n.n(l),f=n(4461),h=n(3808),p=n(3869),v=n(7554),m=n(7294);function g(){return(g=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var y={ease:[.25,.1,.25,1],easeIn:[.4,0,1,1],easeOut:[0,0,.2,1],easeInOut:[.4,0,.2,1]};var b=(e,t)=>g({},e,{delay:(0,h.hj)(t)?t:null==t?void 0:t.enter}),w=(e,t)=>g({},e,{delay:(0,h.hj)(t)?t:null==t?void 0:t.exit});function x(){return(x=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var E={exit:{height:{duration:.2,ease:y.ease},opacity:{duration:.3,ease:y.ease}},enter:{height:{duration:.3,ease:y.ease},opacity:{duration:.4,ease:y.ease}}},k={exit:e=>{var t,n,{animateOpacity:r,startingHeight:i,transition:o,transitionEnd:a,delay:s}=e;return x({},r&&{opacity:(n=i,null!=n&&parseInt(n.toString(),10)>0?1:0)},{overflow:"hidden",height:i,transitionEnd:null==a?void 0:a.exit,transition:null!=(t=null==o?void 0:o.exit)?t:w(E.exit,s)})},enter:e=>{var t,{animateOpacity:n,endingHeight:r,transition:i,transitionEnd:o,delay:a}=e;return x({},n&&{opacity:1},{height:r,transitionEnd:null==o?void 0:o.enter,transition:null!=(t=null==i?void 0:i.enter)?t:b(E.enter,a)})}},_=m.forwardRef(((e,t)=>{var{in:n,unmountOnExit:r,animateOpacity:i=!0,startingHeight:o=0,endingHeight:a="auto",style:s,className:u,transition:l,transitionEnd:h}=e,g=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,["in","unmountOnExit","animateOpacity","startingHeight","endingHeight","style","className","transition","transitionEnd"]),[y,b]=m.useState(!1);m.useEffect((()=>{var e=setTimeout((()=>{b(!0)}));return()=>clearTimeout(e)}),[]),(0,c.ZK)({condition:Boolean(o>0&&r),message:"startingHeight and unmountOnExit are mutually exclusive. You can't use them together"});var w=parseFloat(o.toString())>0,E={startingHeight:o,endingHeight:a,animateOpacity:i,transition:y?l:{enter:{duration:0}},transitionEnd:d()(h,{enter:{overflow:"initial"},exit:r?void 0:{display:w?"block":"none"}})},_=!r||n,T=n||r?"enter":"exit";return m.createElement(p.M,{initial:!1,custom:E},_&&m.createElement(v.E.div,x({ref:t},g,{className:(0,f.cx)("chakra-collapse",u),style:x({overflow:"hidden",display:"block"},s),custom:E,variants:k,initial:!!r&&"exit",animate:T,exit:"exit"})))}));h.Ts&&(_.displayName="Collapse");var T=n(8500),O=n(1888),C=n(7581),A=n(1034),P=n(4577),S=n(2947),M=n(7277),R=n(7248);function j(){return(j=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function D(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}var[N,L,I,z]=(0,O.n)();function B(e){var{onChange:t,defaultIndex:n,index:r,allowMultiple:i,allowToggle:o}=e,a=D(e,["onChange","defaultIndex","index","allowMultiple","allowToggle"]);!function(e){var t=e.index||e.defaultIndex,n=!(0,h.o8)(t)&&!(0,h.kJ)(t)&&e.allowMultiple;(0,c.ZK)({condition:!!n,message:"If 'allowMultiple' is passed, then 'index' or 'defaultIndex' must be an array. You passed: "+typeof t+","})}(e),function(e){(0,c.ZK)({condition:!(!e.allowMultiple||!e.allowToggle),message:"If 'allowMultiple' is passed, 'allowToggle' will be ignored. Either remove 'allowToggle' or 'allowMultiple' depending on whether you want multiple accordions visible or not"})}(e);var s=I(),[u,l]=(0,m.useState)(-1);(0,C.z)((()=>{l(-1)}));var[d,f]=(0,A.T)({value:r,defaultValue:()=>i?null!=n?n:[]:null!=n?n:-1,onChange:t});return{index:d,setIndex:f,htmlProps:a,getAccordionItemProps:e=>{var t=!1;null!==e&&(t=(0,h.kJ)(d)?d.includes(e):d===e);return{isOpen:t,onChange:t=>{if(null!==e)if(i&&(0,h.kJ)(d)){var n=t?(0,M.jX)(d,e):(0,M.cl)(d,e);f(n)}else t?f(e):o&&f(-1)}}},focusedIndex:u,setFocusedIndex:l,descendants:s}}var[F,H]=(0,T.k)({name:"AccordionContext",errorMessage:"useAccordionContext: `context` is undefined. Seems you forgot to wrap the accordion components in `<Accordion />`"});function V(e){var{isDisabled:t,isFocusable:n,id:r}=e,i=D(e,["isDisabled","isFocusable","id"]),{getAccordionItemProps:o,setFocusedIndex:a}=H(),s=(0,m.useRef)(null),[u,l]=(0,P.ZS)(r,"accordion-button","accordion-panel");!function(e){(0,c.ZK)({condition:!(!e.isFocusable||e.isDisabled),message:"Using only 'isFocusable', this prop is reserved for situations where you pass 'isDisabled' but you still want the element to receive focus (A11y). Either remove it or pass 'isDisabled' as well.\n "})}(e);var{register:d,index:h,descendants:p}=z({disabled:t&&!n}),{isOpen:v,onChange:g}=o(-1===h?null:h);!function(e){(0,c.ZK)({condition:e.isOpen&&!!e.isDisabled,message:"Cannot open a disabled accordion item"})}({isOpen:v,isDisabled:t});var y=(0,m.useCallback)((()=>{null==g||g(!v),a(h)}),[h,a,v,g]),b=(0,m.useCallback)((e=>{var t={ArrowDown:()=>{var e=p.nextEnabled(h);e&&(0,R.T)(e.node)},ArrowUp:()=>{var e=p.prevEnabled(h);e&&(0,R.T)(e.node)},Home:()=>{var e=p.firstEnabled();e&&(0,R.T)(e.node)},End:()=>{var e=p.lastEnabled();e&&(0,R.T)(e.node)}}[(0,f.uh)(e)];t&&(e.preventDefault(),t(e))}),[p,h]),w=(0,m.useCallback)((()=>{a(h)}),[a,h]),x=(0,m.useCallback)((function(e,n){return void 0===e&&(e={}),void 0===n&&(n=null),j({},e,{type:"button",ref:(0,S.l)(d,s,n),id:u,disabled:!!t,"aria-expanded":!!v,"aria-controls":l,onClick:(0,c.v0)(e.onClick,y),onFocus:(0,c.v0)(e.onFocus,w),onKeyDown:(0,c.v0)(e.onKeyDown,b)})}),[u,t,v,y,w,b,l,d]),E=(0,m.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),j({},e,{ref:t,role:"region",id:l,"aria-labelledby":u,hidden:!v})}),[u,v,l]);return{isOpen:v,isDisabled:t,isFocusable:n,onOpen:()=>{null==g||g(!0)},onClose:()=>{null==g||g(!1)},getButtonProps:x,getPanelProps:E,htmlProps:i}}function U(){return(U=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function G(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}var q=(0,i.G)(((e,t)=>{var{children:n,reduceMotion:r}=e,i=G(e,["children","reduceMotion"]),c=(0,o.j)("Accordion",i),l=B((0,a.Lr)(i)),{htmlProps:d,descendants:h}=l,p=G(l,["htmlProps","descendants"]),v=m.useMemo((()=>U({},p,{reduceMotion:!!r})),[p,r]);return m.createElement(N,{value:h},m.createElement(F,{value:v},m.createElement(s.Fo,{value:c},m.createElement(u.m$.div,U({ref:t},d,{className:(0,f.cx)("chakra-accordion",i.className)}),n))))}));h.Ts&&(q.displayName="Accordion");var[K,W]=(0,T.k)({name:"AccordionItemContext",errorMessage:"useAccordionItemContext: `context` is undefined. Seems you forgot to wrap the accordion item parts in `<AccordionItem />` "}),Z=(0,i.G)(((e,t)=>{var{children:n,className:r}=e,i=V(e),{htmlProps:o}=i,a=G(i,["htmlProps"]),l=U({},(0,s.yK)().container,{overflowAnchor:"none"}),d=m.useMemo((()=>a),[a]);return m.createElement(K,{value:d},m.createElement(u.m$.div,U({ref:t},o,{className:(0,f.cx)("chakra-accordion__item",r),__css:l}),(0,c.Pu)(n,{isExpanded:!!a.isOpen,isDisabled:!!a.isDisabled})))}));h.Ts&&(Z.displayName="AccordionItem");var $=(0,i.G)(((e,t)=>{var{getButtonProps:n}=W(),r=n(e,t),i=U({display:"flex",alignItems:"center",width:"100%",outline:0},(0,s.yK)().button);return m.createElement(u.m$.button,U({},r,{className:(0,f.cx)("chakra-accordion__button",e.className),__css:i}))}));h.Ts&&($.displayName="AccordionButton");var X=(0,i.G)(((e,t)=>{var{reduceMotion:n}=H(),{getPanelProps:r,isOpen:i}=W(),o=r(e,t),a=(0,f.cx)("chakra-accordion__panel",e.className),c=(0,s.yK)();n||delete o.hidden;var l=m.createElement(u.m$.div,U({},o,{__css:c.panel,className:a}));return n?l:m.createElement(_,{in:i},l)}));h.Ts&&(X.displayName="AccordionPanel");var Y=e=>{var{isOpen:t,isDisabled:n}=W(),{reduceMotion:i}=H(),o=(0,f.cx)("chakra-accordion__icon",e.className),a=U({opacity:n?.4:1,transform:t?"rotate(-180deg)":void 0,transition:i?void 0:"transform 0.2s",transformOrigin:"center"},(0,s.yK)().icon);return m.createElement(r.J,U({viewBox:"0 0 24 24","aria-hidden":!0,className:o,__css:a},e),m.createElement("path",{fill:"currentColor",d:"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"}))};h.Ts&&(Y.displayName="AccordionIcon")},155:function(e,t,n){"use strict";n.d(t,{z:function(){return T}});var r=n(2947),i=n(917),o=n(63),a=n(2326),s=n(5284),u=n(5643),c=n(4461),l=n(3808),d=n(5415),f=n(7294);function h(){return(h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var p=(0,i.F4)({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),v=(0,o.G)(((e,t)=>{var n=(0,a.m)("Spinner",e),r=(0,s.Lr)(e),{label:i="Loading...",thickness:o="2px",speed:l="0.45s",emptyColor:v="transparent",className:m}=r,g=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(r,["label","thickness","speed","emptyColor","className"]),y=(0,c.cx)("chakra-spinner",m),b=h({display:"inline-block",borderColor:"currentColor",borderStyle:"solid",borderRadius:"99999px",borderWidth:o,borderBottomColor:v,borderLeftColor:v,animation:p+" "+l+" linear infinite"},n);return f.createElement(u.m$.div,h({ref:t,__css:b,className:y},g),i&&f.createElement(d.TX,null,i))}));l.Ts&&(v.displayName="Spinner");var m=n(8554),g=n.n(m),y=n(8500);function b(){return(b=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var[w,x]=(0,y.k)({strict:!1,name:"ButtonGroupContext"}),E=(0,o.G)(((e,t)=>{var{size:n,colorScheme:r,variant:i,className:o,spacing:a="0.5rem",isAttached:s,isDisabled:l}=e,d=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,["size","colorScheme","variant","className","spacing","isAttached","isDisabled"]),h=(0,c.cx)("chakra-button__group",o),p=f.useMemo((()=>({size:n,colorScheme:r,variant:i,isDisabled:l})),[n,r,i,l]),v={display:"inline-flex"};return v=b({},v,s?{"> *:first-of-type:not(:last-of-type)":{borderEndRadius:0},"> *:not(:first-of-type):not(:last-of-type)":{borderRadius:0},"> *:not(:first-of-type):last-of-type":{borderStartRadius:0}}:{"& > *:not(style) ~ *:not(style)":{marginStart:a}}),f.createElement(w,{value:p},f.createElement(u.m$.div,b({ref:t,role:"group",__css:v,className:h},d)))}));function k(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}function _(){return(_=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}l.Ts&&(E.displayName="ButtonGroup");var T=(0,o.G)(((e,t)=>{var n,i=x(),o=(0,a.m)("Button",_({},i,e)),l=(0,s.Lr)(e),{isDisabled:d=(null==i?void 0:i.isDisabled),isLoading:h,isActive:p,isFullWidth:v,children:m,leftIcon:y,rightIcon:b,loadingText:w,iconSpacing:E="0.5rem",type:T,spinner:A,spinnerPlacement:P="start",className:S,as:M}=l,R=k(l,["isDisabled","isLoading","isActive","isFullWidth","children","leftIcon","rightIcon","loadingText","iconSpacing","type","spinner","spinnerPlacement","className","as"]),j=g()({},null!=(n=null==o?void 0:o._focus)?n:{},{zIndex:1}),D=_({display:"inline-flex",appearance:"none",alignItems:"center",justifyContent:"center",userSelect:"none",position:"relative",whiteSpace:"nowrap",verticalAlign:"middle",outline:"none",width:v?"100%":"auto"},o,!!i&&{_focus:j}),{ref:N,type:L}=function(e){var[t,n]=f.useState(!e),r=f.useCallback((e=>{e&&n("BUTTON"===e.tagName)}),[]),i=t?"button":void 0;return{ref:r,type:i}}(M);return f.createElement(u.m$.button,_({disabled:d||h,ref:(0,r.l)(t,N),as:M,type:null!=T?T:L,"data-active":(0,c.PB)(p),"data-loading":(0,c.PB)(h),__css:D,className:(0,c.cx)("chakra-button",S)},R),y&&!h&&f.createElement(O,{marginEnd:E},y),h&&"start"===P&&f.createElement(C,{className:"chakra-button__spinner--start",label:w,placement:"start"},A),h?w||f.createElement(u.m$.span,{opacity:0},m):m,h&&"end"===P&&f.createElement(C,{className:"chakra-button__spinner--end",label:w,placement:"end"},A),b&&!h&&f.createElement(O,{marginStart:E},b))}));l.Ts&&(T.displayName="Button");var O=e=>{var{children:t,className:n}=e,r=k(e,["children","className"]),i=f.isValidElement(t)?f.cloneElement(t,{"aria-hidden":!0,focusable:!1}):t,o=(0,c.cx)("chakra-button__icon",n);return f.createElement(u.m$.span,_({display:"inline-flex",alignSelf:"center",flexShrink:0},r,{className:o}),i)};l.Ts&&(O.displayName="ButtonIcon");var C=e=>{var{label:t,placement:n,children:r=f.createElement(v,{color:"currentColor",width:"1em",height:"1em"}),className:i,__css:o}=e,a=k(e,["label","placement","spacing","children","className","__css"]),s=(0,c.cx)("chakra-button__spinner",i),l=_({display:"flex",alignItems:"center",position:t?"relative":"absolute",["start"===n?"marginEnd":"marginStart"]:t?"0.5rem":0,fontSize:"1em",lineHeight:"normal"},o);return f.createElement(u.m$.div,_({className:s},a,{__css:l}),r)};l.Ts&&(C.displayName="ButtonSpinner")},8420:function(e,t,n){"use strict";n.d(t,{h:function(){return u}});var r=n(63),i=n(3808),o=n(7294),a=n(155);function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var u=(0,r.G)(((e,t)=>{var{icon:n,children:r,isRound:i,"aria-label":u}=e,c=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,["icon","children","isRound","aria-label"]),l=n||r,d=o.isValidElement(l)?o.cloneElement(l,{"aria-hidden":!0,focusable:!1}):null;return o.createElement(a.z,s({padding:"0",borderRadius:i?"full":void 0,ref:t,"aria-label":u},c),d)}));i.Ts&&(u.displayName="IconButton")},1033:function(e,t,n){"use strict";n.d(t,{P:function(){return f}});var r=n(58),i=n(63),o=n(2326),a=n(5284),s=n(5643),u=n(3808),c=n(7294);function l(){return(l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var d=e=>c.createElement(r.J,l({focusable:"false","aria-hidden":!0},e),c.createElement("path",{fill:"currentColor",d:"M.439,21.44a1.5,1.5,0,0,0,2.122,2.121L11.823,14.3a.25.25,0,0,1,.354,0l9.262,9.263a1.5,1.5,0,1,0,2.122-2.121L14.3,12.177a.25.25,0,0,1,0-.354l9.263-9.262A1.5,1.5,0,0,0,21.439.44L12.177,9.7a.25.25,0,0,1-.354,0L2.561.44A1.5,1.5,0,0,0,.439,2.561L9.7,11.823a.25.25,0,0,1,0,.354Z"})),f=(0,i.G)(((e,t)=>{var n=(0,o.m)("CloseButton",e),r=(0,a.Lr)(e),{children:i,isDisabled:u,__css:f}=r,h=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(r,["children","isDisabled","__css"]);return c.createElement(s.m$.button,l({type:"button","aria-label":"Close",ref:t,disabled:u,__css:l({},{outline:0,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},n,f)},h),i||c.createElement(d,{width:"1em",height:"1em"}))}));u.Ts&&(f.displayName="CloseButton")},1888:function(e,t,n){"use strict";n.d(t,{n:function(){return v}});var r=n(8500),i=n(2947),o=n(7294);function a(e){return e.sort(((e,t)=>{var n=e.compareDocumentPosition(t);if(n&Node.DOCUMENT_POSITION_FOLLOWING||n&Node.DOCUMENT_POSITION_CONTAINED_BY)return-1;if(n&Node.DOCUMENT_POSITION_PRECEDING||n&Node.DOCUMENT_POSITION_CONTAINS)return 1;if(n&Node.DOCUMENT_POSITION_DISCONNECTED||n&Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC)throw Error("Cannot sort the given nodes.");return 0}))}function s(e,t,n){var r=e+1;return n&&r>=t&&(r=0),r}function u(e,t,n){var r=e-1;return n&&r<0&&(r=t),r}var c="undefined"!==typeof window?o.useLayoutEffect:o.useEffect;function l(){return(l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class f{constructor(){var e=this;d(this,"descendants",new Map),d(this,"register",(e=>{var t;if(null!=e)return"object"==typeof(t=e)&&"nodeType"in t&&t.nodeType===Node.ELEMENT_NODE?this.registerNode(e):t=>{this.registerNode(t,e)}})),d(this,"unregister",(e=>{this.descendants.delete(e);var t=a(Array.from(this.descendants.keys()));this.assignIndex(t)})),d(this,"destroy",(()=>{this.descendants.clear()})),d(this,"assignIndex",(e=>{this.descendants.forEach((t=>{var n=e.indexOf(t.node);t.index=n,t.node.dataset.index=t.index.toString()}))})),d(this,"count",(()=>this.descendants.size)),d(this,"enabledCount",(()=>this.enabledValues().length)),d(this,"values",(()=>Array.from(this.descendants.values()).sort(((e,t)=>e.index-t.index)))),d(this,"enabledValues",(()=>this.values().filter((e=>!e.disabled)))),d(this,"item",(e=>{if(0!==this.count())return this.values()[e]})),d(this,"enabledItem",(e=>{if(0!==this.enabledCount())return this.enabledValues()[e]})),d(this,"first",(()=>this.item(0))),d(this,"firstEnabled",(()=>this.enabledItem(0))),d(this,"last",(()=>this.item(this.descendants.size-1))),d(this,"lastEnabled",(()=>{var e=this.enabledValues().length-1;return this.enabledItem(e)})),d(this,"indexOf",(e=>{var t,n;return e&&null!=(t=null==(n=this.descendants.get(e))?void 0:n.index)?t:-1})),d(this,"enabledIndexOf",(e=>null==e?-1:this.enabledValues().findIndex((t=>t.node.isSameNode(e))))),d(this,"next",(function(t,n){void 0===n&&(n=!0);var r=s(t,e.count(),n);return e.item(r)})),d(this,"nextEnabled",(function(t,n){void 0===n&&(n=!0);var r=e.item(t);if(r){var i=s(e.enabledIndexOf(r.node),e.enabledCount(),n);return e.enabledItem(i)}})),d(this,"prev",(function(t,n){void 0===n&&(n=!0);var r=u(t,e.count()-1,n);return e.item(r)})),d(this,"prevEnabled",(function(t,n){void 0===n&&(n=!0);var r=e.item(t);if(r){var i=u(e.enabledIndexOf(r.node),e.enabledCount()-1,n);return e.enabledItem(i)}})),d(this,"registerNode",((e,t)=>{if(e&&!this.descendants.has(e)){var n=a(Array.from(this.descendants.keys()).concat(e));null!=t&&t.disabled&&(t.disabled=!!t.disabled);var r=l({node:e,index:-1},t);this.descendants.set(e,r),this.assignIndex(n)}}))}}var[h,p]=(0,r.k)({name:"DescendantsProvider",errorMessage:"useDescendantsContext must be used within DescendantsProvider"});function v(){return[h,()=>p(),()=>function(){var[e]=(0,o.useState)((()=>new f));return c((()=>()=>e.destroy())),e}(),e=>function(e){var t=p(),[n,r]=(0,o.useState)(-1),a=(0,o.useRef)(null);c((()=>()=>{a.current&&t.unregister(a.current)}),[]),c((()=>{if(a.current){var e=Number(a.current.dataset.index);n==e||Number.isNaN(e)||r(e)}}));var s=e?t.register(e):t.register;return{descendants:t,index:n,enabledIndex:t.enabledIndexOf(a.current),register:(0,i.l)(s,a)}}(e)]}},639:function(e,t,n){"use strict";n.d(t,{k:function(){return i}});var r=n(7294);function i(e){void 0===e&&(e=!1);var[t,n]=(0,r.useState)(e);return[t,{on:(0,r.useCallback)((()=>{n(!0)}),[]),off:(0,r.useCallback)((()=>{n(!1)}),[]),toggle:(0,r.useCallback)((()=>{n((e=>!e))}),[])}]}},762:function(e,t,n){"use strict";n.d(t,{W:function(){return o}});var r=n(7294),i=n(8327);function o(e,t){void 0===t&&(t=[]);var n=r.useRef(e);return(0,i.G)((()=>{n.current=e})),r.useCallback((function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return null==n.current?void 0:n.current(...t)}),t)}},1034:function(e,t,n){"use strict";n.d(t,{p:function(){return a},T:function(){return s}});var r=n(658),i=n(7294),o=n(762);function a(e,t){var n=void 0!==e;return[n,n&&"undefined"!==typeof e?e:t]}function s(e){var{value:t,defaultValue:n,onChange:a,shouldUpdate:s=((e,t)=>e!==t)}=e,u=(0,o.W)(a),c=(0,o.W)(s),[l,d]=i.useState(n),f=void 0!==t,h=f?t:l,p=i.useCallback((e=>{var t=(0,r.Pu)(e,h);c(h,t)&&(f||d(t),u(t))}),[f,u,h,c]);return[h,p]}},4860:function(e,t,n){"use strict";n.d(t,{q:function(){return u}});var r=n(658),i=n(7294),o=n(1034),a=n(4577);function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function u(e){void 0===e&&(e={});var{onClose:t,onOpen:n,isOpen:u,id:c}=e,[l,d]=i.useState(e.defaultIsOpen||!1),[f,h]=(0,o.p)(u,l),p=(0,a.Me)(c,"disclosure"),v=i.useCallback((()=>{f||d(!1),null==t||t()}),[f,t]),m=i.useCallback((()=>{f||d(!0),null==n||n()}),[f,n]),g=i.useCallback((()=>{(h?v:m)()}),[h,m,v]);return{isOpen:!!h,onOpen:m,onClose:v,onToggle:g,isControlled:f,getButtonProps:function(e){return void 0===e&&(e={}),s({},e,{"aria-expanded":"true","aria-controls":p,onClick:(0,r.v0)(e.onClick,g)})},getDisclosureProps:function(e){return void 0===e&&(e={}),s({},e,{hidden:!h,id:p})}}}},4941:function(e,t,n){"use strict";n.d(t,{O:function(){return a}});var r=n(658),i=n(7294),o=n(762);function a(e,t,n,a){var s=(0,o.W)(t);return i.useEffect((()=>{var t,i=null!=(t=(0,r.Pu)(n))?t:document;return i.addEventListener(e,s,a),()=>{i.removeEventListener(e,s,a)}}),[e,n,a,s]),()=>{var t;(null!=(t=(0,r.Pu)(n))?t:document).removeEventListener(e,s,a)}}},8327:function(e,t,n){"use strict";n.d(t,{G:function(){return i}});var r=n(7294),i=n(4461).jU?r.useLayoutEffect:r.useEffect},7581:function(e,t,n){"use strict";n.d(t,{z:function(){return i}});var r=n(7294);function i(e,t){return void 0===t&&(t=[]),r.useEffect((()=>()=>e()),t)}},2653:function(e,t,n){"use strict";n.d(t,{r:function(){return i}});var r=n(7294),i=(e,t)=>{var n=r.useRef(!1);return r.useEffect((()=>{if(n.current)return e();n.current=!0}),t),n.current}},9867:function(e,t,n){"use strict";n.d(t,{I:function(){return u}});var r=n(63),i=n(3808),o=n(7294),a=n(58);function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function u(e){var{viewBox:t="0 0 24 24",d:n,path:u,displayName:c,defaultProps:l={}}=e,d=(0,r.G)(((e,r)=>o.createElement(a.J,s({ref:r,viewBox:t},l,e),null!=u?u:o.createElement("path",{fill:"currentColor",d:n}))));return i.Ts&&(d.displayName=c),d}},58:function(e,t,n){"use strict";n.d(t,{J:function(){return l}});var r=n(63),i=n(5643),o=n(4461),a=n(3808),s=n(7294);function u(){return(u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var c={path:s.createElement("g",{stroke:"currentColor",strokeWidth:"1.5"},s.createElement("path",{strokeLinecap:"round",fill:"none",d:"M9,9a3,3,0,1,1,4,2.829,1.5,1.5,0,0,0-1,1.415V14.25"}),s.createElement("path",{fill:"currentColor",strokeLinecap:"round",d:"M12,17.25a.375.375,0,1,0,.375.375A.375.375,0,0,0,12,17.25h0"}),s.createElement("circle",{fill:"none",strokeMiterlimit:"10",cx:"12",cy:"12",r:"11.25"})),viewBox:"0 0 24 24"},l=(0,r.G)(((e,t)=>{var{as:n,viewBox:r,color:a="currentColor",focusable:l=!1,children:d,className:f,__css:h}=e,p=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,["as","viewBox","color","focusable","children","className","__css"]),v={ref:t,focusable:l,className:(0,o.cx)("chakra-icon",f),__css:u({w:"1em",h:"1em",display:"inline-block",lineHeight:"1em",flexShrink:0,color:a},h)},m=null!=r?r:c.viewBox;if(n&&"string"!==typeof n)return s.createElement(i.m$.svg,u({as:n},v,p));var g=null!=d?d:c.path;return s.createElement(i.m$.svg,u({verticalAlign:"middle",viewBox:m},v,p),g)}));a.Ts&&(l.displayName="Icon")},6569:function(e,t,n){"use strict";n.d(t,{v:function(){return r}});var r=(0,n(9867).I)({displayName:"ChevronDownIcon",d:"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"})},4189:function(e,t,n){"use strict";n.d(t,{h:function(){return o}});var r=n(9867),i=n(7294),o=(0,r.I)({displayName:"InfoOutlineIcon",path:i.createElement("g",{fill:"currentColor",stroke:"currentColor",strokeLinecap:"square",strokeWidth:"2"},i.createElement("circle",{cx:"12",cy:"12",fill:"none",r:"11",stroke:"currentColor"}),i.createElement("line",{fill:"none",x1:"11.959",x2:"11.959",y1:"11",y2:"17"}),i.createElement("circle",{cx:"11.959",cy:"7",r:"1",stroke:"none"}))})},3986:function(e,t,n){"use strict";n.d(t,{A:function(){return o}});var r=n(9867),i=n(7294),o=(0,r.I)({displayName:"RepeatClockIcon",path:i.createElement("g",{fill:"currentColor"},i.createElement("path",{d:"M12.965,6a1,1,0,0,0-1,1v5.5a1,1,0,0,0,1,1h5a1,1,0,0,0,0-2h-3.75a.25.25,0,0,1-.25-.25V7A1,1,0,0,0,12.965,6Z"}),i.createElement("path",{d:"M12.567,1.258A10.822,10.822,0,0,0,2.818,8.4a.25.25,0,0,1-.271.163L.858,8.309a.514.514,0,0,0-.485.213.5.5,0,0,0-.021.53l2.679,4.7a.5.5,0,0,0,.786.107l3.77-3.746a.5.5,0,0,0-.279-.85L5.593,9.007a.25.25,0,0,1-.192-.35,8.259,8.259,0,1,1,7.866,11.59,1.25,1.25,0,0,0,.045,2.5h.047a10.751,10.751,0,1,0-.792-21.487Z"}))})},3924:function(e,t,n){"use strict";n.d(t,{e:function(){return r}});var r=(0,n(9867).I)({viewBox:"0 0 14 14",d:"M14,7.77 L14,6.17 L12.06,5.53 L11.61,4.44 L12.49,2.6 L11.36,1.47 L9.55,2.38 L8.46,1.93 L7.77,0.01 L6.17,0.01 L5.54,1.95 L4.43,2.4 L2.59,1.52 L1.46,2.65 L2.37,4.46 L1.92,5.55 L0,6.23 L0,7.82 L1.94,8.46 L2.39,9.55 L1.51,11.39 L2.64,12.52 L4.45,11.61 L5.54,12.06 L6.23,13.98 L7.82,13.98 L8.45,12.04 L9.56,11.59 L11.4,12.47 L12.53,11.34 L11.61,9.53 L12.08,8.44 L14,7.75 L14,7.77 Z M7,10 C5.34,10 4,8.66 4,7 C4,5.34 5.34,4 7,4 C8.66,4 10,5.34 10,7 C10,8.66 8.66,10 7,10 Z",displayName:"SettingsIcon"})},8017:function(e,t,n){"use strict";n.d(t,{xu:function(){return c}});var r=n(5643),i=n(63),o=n(3808),a=n(7294);function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function u(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}var c=(0,r.m$)("div");o.Ts&&(c.displayName="Box");var l=(0,i.G)(((e,t)=>{var{size:n,centerContent:r=!0}=e,i=u(e,["size","centerContent"]),o=r?{display:"flex",alignItems:"center",justifyContent:"center"}:{};return a.createElement(c,s({ref:t,boxSize:n,__css:s({},o,{flexShrink:0,flexGrow:0})},i))}));o.Ts&&(l.displayName="Square");var d=(0,i.G)(((e,t)=>{var{size:n}=e,r=u(e,["size"]);return a.createElement(l,s({size:n,ref:t,borderRadius:"9999px"},r))}));o.Ts&&(d.displayName="Circle")},4096:function(e,t,n){"use strict";n.d(t,{k:function(){return u}});var r=n(63),i=n(5643),o=n(3808),a=n(7294);function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var u=(0,r.G)(((e,t)=>{var{direction:n,align:r,justify:o,wrap:u,basis:c,grow:l,shrink:d}=e,f=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,["direction","align","justify","wrap","basis","grow","shrink"]),h={display:"flex",flexDirection:n,alignItems:r,justifyContent:o,flexWrap:u,flexBasis:c,flexGrow:l,flexShrink:d};return a.createElement(i.m$.div,s({ref:t,__css:h},f))}));o.Ts&&(u.displayName="Flex")},2026:function(e,t,n){"use strict";n.d(t,{cX:function(){return h},gC:function(){return g}});var r=n(5643),i=n(63),o=n(4461),a=n(3808),s=n(4255),u=n(7294),c=n(5505);Object.freeze(["base","sm","md","lg","xl","2xl"]);function l(e,t){return(0,a.kJ)(e)?e.map((e=>null===e?null:t(e))):(0,a.Kn)(e)?(0,c.Yd)(e).reduce(((n,r)=>(n[r]=t(e[r]),n)),{}):null!=e?t(e):null}var d="& > *:not(style) ~ *:not(style)";function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var h=e=>u.createElement(r.m$.div,f({className:"chakra-stack__divider"},e,{__css:f({},e.__css,{borderWidth:0,alignSelf:"stretch",borderColor:"inherit",width:"auto",height:"auto"})})),p=e=>u.createElement(r.m$.div,f({className:"chakra-stack__item"},e,{__css:f({display:"inline-block",flex:"0 0 auto",minWidth:0},e.__css)})),v=(0,i.G)(((e,t)=>{var{isInline:n,direction:i,align:a,justify:c,spacing:h="0.5rem",wrap:v,children:m,divider:g,className:y,shouldWrapChildren:b}=e,w=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,["isInline","direction","align","justify","spacing","wrap","children","divider","className","shouldWrapChildren"]),x=n?"row":null!=i?i:"column",E=u.useMemo((()=>function(e){var{spacing:t,direction:n}=e,r={column:{marginTop:t,marginEnd:0,marginBottom:0,marginStart:0},row:{marginTop:0,marginEnd:0,marginBottom:0,marginStart:t},"column-reverse":{marginTop:0,marginEnd:0,marginBottom:t,marginStart:0},"row-reverse":{marginTop:0,marginEnd:t,marginBottom:0,marginStart:0}};return{flexDirection:n,[d]:l(n,(e=>r[e]))}}({direction:x,spacing:h})),[x,h]),k=u.useMemo((()=>function(e){var{spacing:t,direction:n}=e,r={column:{my:t,mx:0,borderLeftWidth:0,borderBottomWidth:"1px"},"column-reverse":{my:t,mx:0,borderLeftWidth:0,borderBottomWidth:"1px"},row:{mx:t,my:0,borderLeftWidth:"1px",borderBottomWidth:0},"row-reverse":{mx:t,my:0,borderLeftWidth:"1px",borderBottomWidth:0}};return{"&":l(n,(e=>r[e]))}}({spacing:h,direction:x})),[h,x]),_=!!g,T=!b&&!_,O=(0,s.W)(m),C=T?O:O.map(((e,t)=>{var n=t+1===O.length,r=b?u.createElement(p,{key:t},e):e;if(!_)return r;var i=n?null:u.cloneElement(g,{__css:k});return u.createElement(u.Fragment,{key:t},r,i)})),A=(0,o.cx)("chakra-stack",y);return u.createElement(r.m$.div,f({ref:t,display:"flex",alignItems:a,justifyContent:c,flexDirection:E.flexDirection,flexWrap:v,className:A,__css:_?{}:{[d]:E[d]}},w),C)}));a.Ts&&(v.displayName="Stack");var m=(0,i.G)(((e,t)=>u.createElement(v,f({align:"center"},e,{direction:"row",ref:t}))));a.Ts&&(m.displayName="HStack");var g=(0,i.G)(((e,t)=>u.createElement(v,f({align:"center"},e,{direction:"column",ref:t}))));a.Ts&&(g.displayName="VStack")},4115:function(e,t,n){"use strict";n.d(t,{x:function(){return f}});var r=n(63),i=n(2326),o=n(5284),a=n(5643),s=n(5505),u=n(4461),c=n(3808),l=n(7294);function d(){return(d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var f=(0,r.G)(((e,t)=>{var n=(0,i.m)("Text",e),r=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}((0,o.Lr)(e),["className","align","decoration","casing"]),c=(0,s.YU)({textAlign:e.align,textDecoration:e.decoration,textTransform:e.casing});return l.createElement(a.m$.p,d({ref:t,className:(0,u.cx)("chakra-text",e.className)},c,r,{__css:n}))}));c.Ts&&(f.displayName="Text")},8235:function(e,t,n){"use strict";n.d(t,{v2:function(){return G},j2:function(){return K},sN:function(){return Y},qy:function(){return $}});var r=n(2326),i=n(5284),o=n(9676),a=n(63),s=n(5643),u=n(658),c=n(3808),l=n(4461),d=n(7554),f=n(7294),h=n(2947);function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function v(e){var t=e.target,{tagName:n,isContentEditable:r}=t;return"INPUT"!==n&&"TEXTAREA"!==n&&!0!==r}function m(e){void 0===e&&(e={});var{ref:t,isDisabled:n,isFocusable:r,clickOnEnter:i=!0,clickOnSpace:o=!0,onMouseDown:a,onMouseUp:s,onClick:u,onKeyDown:c,onKeyUp:d,tabIndex:m,onMouseOver:g,onMouseLeave:y}=e,b=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,["ref","isDisabled","isFocusable","clickOnEnter","clickOnSpace","onMouseDown","onMouseUp","onClick","onKeyDown","onKeyUp","tabIndex","onMouseOver","onMouseLeave"]),[w,x]=f.useState(!0),[E,k]=f.useState(!1),_=function(){var e=f.useRef(new Map),t=e.current,n=f.useCallback(((t,n,r,i)=>{e.current.set(r,{type:n,el:t,options:i}),t.addEventListener(n,r,i)}),[]),r=f.useCallback(((t,n,r,i)=>{t.removeEventListener(n,r,i),e.current.delete(r)}),[]);return f.useEffect((()=>()=>{t.forEach(((e,t)=>{r(e.el,e.type,t,e.options)}))}),[r,t]),{add:n,remove:r}}(),T=w?m:m||0,O=n&&!r,C=f.useCallback((e=>{if(n)return e.stopPropagation(),void e.preventDefault();e.currentTarget.focus(),null==u||u(e)}),[n,u]),A=f.useCallback((e=>{E&&v(e)&&(e.preventDefault(),e.stopPropagation(),k(!1),_.remove(document,"keyup",A,!1))}),[E,_]),P=f.useCallback((e=>{if(null==c||c(e),!(n||e.defaultPrevented||e.metaKey)&&v(e.nativeEvent)&&!w){var t=i&&"Enter"===e.key;if(o&&" "===e.key&&(e.preventDefault(),k(!0)),t)e.preventDefault(),e.currentTarget.click();_.add(document,"keyup",A,!1)}}),[n,w,c,i,o,_,A]),S=f.useCallback((e=>{(null==d||d(e),n||e.defaultPrevented||e.metaKey)||v(e.nativeEvent)&&!w&&o&&" "===e.key&&(e.preventDefault(),k(!1),e.currentTarget.click())}),[o,w,n,d]),M=f.useCallback((e=>{0===e.button&&(k(!1),_.remove(document,"mouseup",M,!1))}),[_]),R=f.useCallback((e=>{if(!(0,l.dO)(e)){if(n)return e.stopPropagation(),void e.preventDefault();w||k(!0),e.currentTarget.focus({preventScroll:!0}),_.add(document,"mouseup",M,!1),null==a||a(e)}}),[n,w,a,_,M]),j=f.useCallback((e=>{(0,l.dO)(e)||(w||k(!1),null==s||s(e))}),[s,w]),D=f.useCallback((e=>{n?e.preventDefault():null==g||g(e)}),[n,g]),N=f.useCallback((e=>{E&&(e.preventDefault(),k(!1)),null==y||y(e)}),[E,y]),L=(0,h.l)(t,(e=>{e&&"BUTTON"!==e.tagName&&x(!1)}));return p({},b,w?{ref:L,type:"button","aria-disabled":O?void 0:n,disabled:O,onClick:C,onMouseDown:a,onMouseUp:s,onKeyUp:d,onKeyDown:c,onMouseOver:g,onMouseLeave:y}:{ref:L,role:"button","data-active":(0,l.PB)(E),"aria-disabled":n?"true":void 0,tabIndex:O?void 0:T,onClick:C,onMouseDown:R,onMouseUp:j,onKeyUp:S,onKeyDown:P,onMouseOver:D,onMouseLeave:N})}var g=n(1888),y=n(4860),b=n(762);function w(e,t){var n,r=e.target;if(e.button>0)return!1;if(r&&!(0,l.lZ)(r).body.contains(r))return!1;return!(null!=(n=t.current)&&n.contains(r))}var x=n(2653),E=n(7768),k=n(7248);function _(e,t){var{shouldFocus:n,visible:r,focusRef:i}=t,o=n&&!r;(0,x.r)((()=>{if(o&&!function(e){var t=e.current;if(!t)return!1;var n=(0,l.vY)(t);return!!n&&!(0,l.r3)(t,n)&&!!(0,E.Wq)(n)}(e)){var t=(null==i?void 0:i.current)||e.current;t&&(0,k.T)(t,{nextTick:!0})}}),[o,e,i])}var T=n(4577),O=n(7581);function C(e){void 0===e&&(e={});var{timeout:t=300,preventDefault:n=(()=>!0)}=e,[r,i]=f.useState([]),o=f.useRef(),a=()=>{o.current&&(clearTimeout(o.current),o.current=null)};return f.useEffect((()=>a),[]),function(e){return s=>{if("Backspace"===s.key){var u=[...r];return u.pop(),void i(u)}if(function(e){var{key:t}=e;return 1===t.length||t.length>1&&/[^a-zA-Z0-9]/.test(t)}(s)){var c=r.concat(s.key);n(s)&&(s.preventDefault(),s.stopPropagation()),i(c),e(c.join("")),a(),o.current=setTimeout((()=>{i([]),o.current=null}),t)}}}}n(1034);var A=n(8931),P=n(8500),S=(n(4255),n(7277));function M(){return(M=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function R(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}var[j,D,N,L]=(0,g.n)(),[I,z]=(0,P.k)({strict:!1,name:"MenuContext"});function B(e){void 0===e&&(e={});var{id:t,closeOnSelect:n=!0,closeOnBlur:r=!0,autoSelect:i=!0,isLazy:o,isOpen:a,defaultIsOpen:s,onClose:u,onOpen:c,placement:d="bottom-start",lazyBehavior:h="unmount",computePositionOnMount:p}=e,v=R(e,["id","closeOnSelect","closeOnBlur","autoSelect","isLazy","isOpen","defaultIsOpen","onClose","onOpen","placement","lazyBehavior","computePositionOnMount"]),{isOpen:m,onOpen:g,onClose:E,onToggle:C}=(0,y.q)({isOpen:a,defaultIsOpen:s,onClose:u,onOpen:c}),P=f.useRef(null),S=f.useRef(null);!function(e){var{ref:t,handler:n}=e,r=(0,b.W)(n),i=(0,f.useRef)({isPointerDown:!1,ignoreEmulatedMouseEvents:!1}).current;(0,f.useEffect)((()=>{var e=e=>{w(e,t)&&(i.isPointerDown=!0)},o=e=>{i.ignoreEmulatedMouseEvents?i.ignoreEmulatedMouseEvents=!1:i.isPointerDown&&n&&w(e,t)&&(i.isPointerDown=!1,r(e))},a=e=>{i.ignoreEmulatedMouseEvents=!0,n&&i.isPointerDown&&w(e,t)&&(i.isPointerDown=!1,r(e))},s=(0,l.lZ)(t.current);return s.addEventListener("mousedown",e,!0),s.addEventListener("mouseup",o,!0),s.addEventListener("touchstart",e,!0),s.addEventListener("touchend",a,!0),()=>{s.removeEventListener("mousedown",e,!0),s.removeEventListener("mouseup",o,!0),s.removeEventListener("touchstart",e,!0),s.removeEventListener("touchend",a,!0)}}),[n,t,r,i])}({ref:P,handler:e=>{var t;!m||!r||null!=(t=S.current)&&t.contains(e.target)||E()}});var j=(0,A.D)(M({},v,{enabled:m||p,placement:d})),[D,L]=f.useState(-1),I=N();(0,x.r)((()=>{m||L(-1)}),[m]),_(P,{focusRef:S,visible:m,shouldFocus:!0});var[z,B]=(0,T.ZS)(t,"menu-button","menu-list"),F=f.useCallback((()=>{g(),(0,k.T)(P.current,{nextTick:!0,selectTextIfInput:!1})}),[g,P]),H=f.useRef(new Set([]));return(0,O.z)((()=>{H.current.forEach((e=>clearTimeout(e))),H.current.clear()})),{openAndFocusMenu:F,openAndFocusFirstItem:f.useCallback((()=>{g();var e=setTimeout((()=>{var e=I.firstEnabled();e&&L(e.index)}));H.current.add(e)}),[g,L,I]),openAndFocusLastItem:f.useCallback((()=>{g();var e=setTimeout((()=>{var e=I.lastEnabled();e&&L(e.index)}));H.current.add(e)}),[g,L,I]),onTransitionEnd:f.useCallback((()=>{var e,t,n=(0,l.lZ)(P.current),r=null==(e=P.current)?void 0:e.contains(n.activeElement);if(m&&!r){var i=null==(t=I.item(D))?void 0:t.node;i&&(0,k.T)(i,{selectTextIfInput:!1})}}),[m,D,I]),descendants:I,popper:j,buttonId:z,menuId:B,forceUpdate:j.forceUpdate,orientation:"vertical",isOpen:m,onToggle:C,onOpen:g,onClose:E,menuRef:P,buttonRef:S,focusedIndex:D,closeOnSelect:n,closeOnBlur:r,autoSelect:i,setFocusedIndex:L,isLazy:o,lazyBehavior:h}}function F(e){var t;return e instanceof HTMLElement&&!(null==(t=e.getAttribute("role"))||!t.startsWith("menuitem"))}function H(e,t){void 0===e&&(e={}),void 0===t&&(t=null);var{onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onClick:o,isDisabled:a,isFocusable:s,closeOnSelect:u}=e,c=R(e,["onMouseEnter","onMouseMove","onMouseLeave","onClick","isDisabled","isFocusable","closeOnSelect"]),l=z(),{setFocusedIndex:d,focusedIndex:p,closeOnSelect:v,onClose:g,menuRef:y,isOpen:b,menuId:w}=l,_=f.useRef(null),O=w+"-menuitem-"+(0,T.Me)(),{index:C,register:A}=L({disabled:a&&!s}),P=f.useCallback((e=>{null==n||n(e),a||d(C)}),[d,C,a,n]),S=f.useCallback((e=>{null==r||r(e),_.current&&!(0,E.H9)(_.current)&&P(e)}),[P,r]),j=f.useCallback((e=>{null==i||i(e),a||d(-1)}),[d,a,i]),D=f.useCallback((e=>{null==o||o(e),F(e.currentTarget)&&(null!=u?u:v)&&g()}),[g,o,v,u]),N=C===p,I=a&&!s;return(0,x.r)((()=>{b&&(N&&!I&&_.current?(0,k.T)(_.current,{nextTick:!0,selectTextIfInput:!1}):y.current&&!(0,E.H9)(y.current)&&(0,k.T)(y.current))}),[N,I,y,b]),M({},c,m({onClick:D,onMouseEnter:P,onMouseMove:S,onMouseLeave:j,ref:(0,h.l)(A,_,t),isDisabled:a,isFocusable:s}),{id:O,role:"menuitem",tabIndex:N?0:-1})}function V(){return(V=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function U(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}var G=e=>{var{children:t}=e,n=(0,r.j)("Menu",e),a=B((0,i.Lr)(e)),{descendants:s}=a,c=U(a,["descendants"]),l=f.useMemo((()=>c),[c]),{isOpen:d,onClose:h,forceUpdate:p}=l;return f.createElement(j,{value:s},f.createElement(I,{value:l},f.createElement(o.Fo,{value:n},(0,u.Pu)(t,{isOpen:d,onClose:h,forceUpdate:p}))))};c.Ts&&(G.displayName="Menu");var q=(0,a.G)(((e,t)=>{var n=(0,o.yK)();return f.createElement(s.m$.button,V({ref:t},e,{__css:V({display:"inline-flex",appearance:"none",alignItems:"center",outline:0},n.button)}))})),K=(0,a.G)(((e,t)=>{var{as:n}=e,r=function(e,t){void 0===e&&(e={}),void 0===t&&(t=null);var n=z(),{isOpen:r,onClose:i,autoSelect:o,popper:a,openAndFocusFirstItem:s,openAndFocusLastItem:c,openAndFocusMenu:d}=n,p=f.useCallback((()=>{r?i():(o?s:d)()}),[o,r,i,s,d]),v=f.useCallback((e=>{var t=(0,l.uh)(e),n={Enter:s,ArrowDown:s,ArrowUp:c}[t];n&&(e.preventDefault(),e.stopPropagation(),n(e))}),[s,c]);return M({},e,{ref:(0,h.l)(n.buttonRef,t,a.referenceRef),id:n.buttonId,"data-active":(0,l.PB)(n.isOpen),"aria-expanded":n.isOpen,"aria-haspopup":"menu","aria-controls":n.menuId,onClick:(0,u.v0)(e.onClick,p),onKeyDown:(0,u.v0)(e.onKeyDown,v)})}(U(e,["children","as"]),t),i=n||q;return f.createElement(i,V({},r,{className:(0,l.cx)("chakra-menu__menu-button",e.className)}),f.createElement(s.m$.span,{__css:{pointerEvents:"none",flex:"1 1 auto",minW:0}},e.children))}));c.Ts&&(K.displayName="MenuButton");var W={enter:{visibility:"visible",opacity:1,scale:1,transition:{duration:.2,ease:[.4,0,.2,1]}},exit:{transitionEnd:{visibility:"hidden"},opacity:0,scale:.8,transition:{duration:.1,easings:"easeOut"}}},Z="custom"in d.E?d.E.custom(s.m$.div):(0,d.E)(s.m$.div),$=(0,a.G)(((e,t)=>{var n,r,{rootProps:i}=e,a=U(e,["rootProps"]),{isOpen:c,onTransitionEnd:d}=z(),p=function(e,t){void 0===e&&(e={}),void 0===t&&(t=null);var n=z();if(!n)throw new Error("useMenuContext: context is undefined. Seems you forgot to wrap component within <Menu>");var{focusedIndex:r,setFocusedIndex:i,menuRef:o,isOpen:a,onClose:s,menuId:c,isLazy:d,lazyBehavior:p}=n,v=D(),m=C({preventDefault:e=>" "!==e.key&&F(e.target)}),g=f.useCallback((e=>{var t=(0,l.uh)(e),n={Tab:e=>e.preventDefault(),Escape:s,ArrowDown:()=>{var e=v.nextEnabled(r);e&&i(e.index)},ArrowUp:()=>{var e=v.prevEnabled(r);e&&i(e.index)}}[t];if(n)return e.preventDefault(),void n(e);var o=m((e=>{var t=(0,S.LP)(v.values(),e,(e=>{var t,n;return null!=(t=null==e||null==(n=e.node)?void 0:n.textContent)?t:""}),v.item(r));if(t){var n=v.indexOf(t.node);i(n)}}));F(e.target)&&o(e)}),[v,r,m,s,i]),y=f.useRef(!1);a&&(y.current=!0);var b=function(e){var{hasBeenSelected:t,isLazy:n,isSelected:r,lazyBehavior:i="unmount"}=e;return!n||!!r||!("keepMounted"!==i||!t)}({hasBeenSelected:y.current,isLazy:d,lazyBehavior:p,isSelected:a});return M({},e,{ref:(0,h.l)(o,t),children:b?e.children:null,tabIndex:-1,role:"menu",id:c,style:M({},e.style,{transformOrigin:"var(--popper-transform-origin)"}),"aria-orientation":"vertical",onKeyDown:(0,u.v0)(e.onKeyDown,g)})}(a,t),v=function(e){void 0===e&&(e={});var{popper:t,isOpen:n}=z();return t.getPopperProps(M({},e,{style:M({visibility:n?"visible":"hidden"},e.style)}))}(i),m=(0,o.yK)();return f.createElement(s.m$.div,V({},v,{__css:{zIndex:null!=(n=e.zIndex)?n:null==(r=m.list)?void 0:r.zIndex}}),f.createElement(Z,V({},p,{onUpdate:d,className:(0,l.cx)("chakra-menu__menu-list",p.className),variants:W,initial:!1,animate:c?"enter":"exit",__css:V({outline:0},m.list)})))}));c.Ts&&($.displayName="MenuList");var X=(0,a.G)(((e,t)=>{var{type:n}=e,r=U(e,["type"]),i=(0,o.yK)(),a=r.as?null!=n?n:void 0:"button",u=V({textDecoration:"none",color:"inherit",userSelect:"none",display:"flex",width:"100%",alignItems:"center",textAlign:"start",flex:"0 0 auto",outline:0},i.item);return f.createElement(s.m$.button,V({ref:t,type:a},r,{__css:u}))})),Y=(0,a.G)(((e,t)=>{var{icon:n,iconSpacing:r="0.75rem",command:i,commandSpacing:o="0.75rem",children:a}=e,s=H(U(e,["icon","iconSpacing","command","commandSpacing","children"]),t),u=n||i?f.createElement("span",{style:{pointerEvents:"none",flex:1}},a):a;return f.createElement(X,V({},s,{className:(0,l.cx)("chakra-menu__menuitem",s.className)}),n&&f.createElement(ne,{fontSize:"0.8em",marginEnd:r},n),u,i&&f.createElement(te,{marginStart:o},i))}));c.Ts&&(Y.displayName="MenuItem");var Q=e=>f.createElement("svg",V({viewBox:"0 0 14 14",width:"1em",height:"1em"},e),f.createElement("polygon",{fill:"currentColor",points:"5.5 11.9993304 14 3.49933039 12.5 2 5.5 8.99933039 1.5 4.9968652 0 6.49933039"})),J=(0,a.G)(((e,t)=>{var{icon:n,iconSpacing:r="0.75rem"}=e,i=U(e,["icon","iconSpacing"]),o=function(e,t){void 0===e&&(e={}),void 0===t&&(t=null);var{type:n="radio",isChecked:r}=e;return M({},H(R(e,["type","isChecked"]),t),{role:"menuitem"+n,"aria-checked":r})}(i,t);return f.createElement(X,V({},o,{className:(0,l.cx)("chakra-menu__menuitem-option",i.className)}),f.createElement(ne,{fontSize:"0.8em",marginEnd:r,opacity:e.isChecked?1:0},n||f.createElement(Q,null)),f.createElement("span",{style:{flex:1}},o.children))}));J.id="MenuItemOption",c.Ts&&(J.displayName="MenuItemOption");c.Ts;var ee=(0,a.G)(((e,t)=>{var{title:n,children:r,className:i}=e,a=U(e,["title","children","className"]),u=(0,l.cx)("chakra-menu__group__title",i),c=(0,o.yK)();return f.createElement("div",{ref:t,className:"chakra-menu__group",role:"group"},n&&f.createElement(s.m$.p,V({className:u},a,{__css:c.groupTitle}),n),r)}));c.Ts&&(ee.displayName="MenuGroup");var te=(0,a.G)(((e,t)=>{var n=(0,o.yK)();return f.createElement(s.m$.span,V({ref:t},e,{__css:n.command,className:"chakra-menu__command"}))}));c.Ts&&(te.displayName="MenuCommand");var ne=e=>{var{className:t,children:n}=e,r=U(e,["className","children"]),i=f.Children.only(n),o=f.isValidElement(i)?f.cloneElement(i,{focusable:"false","aria-hidden":!0,className:(0,l.cx)("chakra-menu__icon",i.props.className)}):null,a=(0,l.cx)("chakra-menu__icon-wrapper",t);return f.createElement(s.m$.span,V({className:a},r,{__css:{flexShrink:0}}),o)};c.Ts&&(ne.displayName="MenuIcon");c.Ts},8931:function(e,t,n){"use strict";n.d(t,{D:function(){return be}});var r=n(2947);function i(e){var t=e.getBoundingClientRect();return{width:t.width,height:t.height,top:t.top,right:t.right,bottom:t.bottom,left:t.left,x:t.left,y:t.top}}function o(e){if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t?t.defaultView:window}return e}function a(e){var t=o(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function s(e){return e instanceof o(e).Element||e instanceof Element}function u(e){return e instanceof o(e).HTMLElement||e instanceof HTMLElement}function c(e){return e?(e.nodeName||"").toLowerCase():null}function l(e){return(s(e)?e.ownerDocument:e.document).documentElement}function d(e){return i(l(e)).left+a(e).scrollLeft}function f(e){return o(e).getComputedStyle(e)}function h(e){var t=f(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function p(e,t,n){void 0===n&&(n=!1);var r=l(t),s=i(e),f=u(t),p={scrollLeft:0,scrollTop:0},v={x:0,y:0};return(f||!f&&!n)&&(("body"!==c(t)||h(r))&&(p=function(e){return e!==o(e)&&u(e)?{scrollLeft:(t=e).scrollLeft,scrollTop:t.scrollTop}:a(e);var t}(t)),u(t)?((v=i(t)).x+=t.clientLeft,v.y+=t.clientTop):r&&(v.x=d(r))),{x:s.left+p.scrollLeft-v.x,y:s.top+p.scrollTop-v.y,width:s.width,height:s.height}}function v(e){return{x:e.offsetLeft,y:e.offsetTop,width:e.offsetWidth,height:e.offsetHeight}}function m(e){return"html"===c(e)?e:e.assignedSlot||e.parentNode||e.host||l(e)}function g(e){return["html","body","#document"].indexOf(c(e))>=0?e.ownerDocument.body:u(e)&&h(e)?e:g(m(e))}function y(e,t){void 0===t&&(t=[]);var n=g(e),r="body"===c(n),i=o(n),a=r?[i].concat(i.visualViewport||[],h(n)?n:[]):n,s=t.concat(a);return r?s:s.concat(y(m(a)))}function b(e){return["table","td","th"].indexOf(c(e))>=0}function w(e){if(!u(e)||"fixed"===f(e).position)return null;var t=e.offsetParent;if(t){var n=l(t);if("body"===c(t)&&"static"===f(t).position&&"static"!==f(n).position)return n}return t}function x(e){for(var t=o(e),n=w(e);n&&b(n)&&"static"===f(n).position;)n=w(n);return n&&"body"===c(n)&&"static"===f(n).position?t:n||function(e){for(var t=m(e);u(t)&&["html","body"].indexOf(c(t))<0;){var n=f(t);if("none"!==n.transform||"none"!==n.perspective||n.willChange&&"auto"!==n.willChange)return t;t=t.parentNode}return null}(e)||t}var E="top",k="bottom",_="right",T="left",O="auto",C=[E,k,_,T],A="start",P="end",S="viewport",M="popper",R=C.reduce((function(e,t){return e.concat([t+"-"+A,t+"-"+P])}),[]),j=[].concat(C,[O]).reduce((function(e,t){return e.concat([t,t+"-"+A,t+"-"+P])}),[]),D=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function N(e){var t=new Map,n=new Set,r=[];function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&i(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||i(e)})),r}function L(e){var t;return function(){return t||(t=new Promise((function(n){Promise.resolve().then((function(){t=void 0,n(e())}))}))),t}}var I={placement:"bottom",modifiers:[],strategy:"absolute"};function z(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some((function(e){return!(e&&"function"===typeof e.getBoundingClientRect)}))}function B(e){void 0===e&&(e={});var t=e,n=t.defaultModifiers,r=void 0===n?[]:n,i=t.defaultOptions,o=void 0===i?I:i;return function(e,t,n){void 0===n&&(n=o);var i={placement:"bottom",orderedModifiers:[],options:Object.assign(Object.assign({},I),o),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},a=[],u=!1,c={state:i,setOptions:function(n){l(),i.options=Object.assign(Object.assign(Object.assign({},o),i.options),n),i.scrollParents={reference:s(e)?y(e):e.contextElement?y(e.contextElement):[],popper:y(t)};var u=function(e){var t=N(e);return D.reduce((function(e,n){return e.concat(t.filter((function(e){return e.phase===n})))}),[])}(function(e){var t=e.reduce((function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign(Object.assign(Object.assign({},n),t),{},{options:Object.assign(Object.assign({},n.options),t.options),data:Object.assign(Object.assign({},n.data),t.data)}):t,e}),{});return Object.keys(t).map((function(e){return t[e]}))}([].concat(r,i.options.modifiers)));return i.orderedModifiers=u.filter((function(e){return e.enabled})),i.orderedModifiers.forEach((function(e){var t=e.name,n=e.options,r=void 0===n?{}:n,o=e.effect;if("function"===typeof o){var s=o({state:i,name:t,instance:c,options:r}),u=function(){};a.push(s||u)}})),c.update()},forceUpdate:function(){if(!u){var e=i.elements,t=e.reference,n=e.popper;if(z(t,n)){i.rects={reference:p(t,x(n),"fixed"===i.options.strategy),popper:v(n)},i.reset=!1,i.placement=i.options.placement,i.orderedModifiers.forEach((function(e){return i.modifiersData[e.name]=Object.assign({},e.data)}));for(var r=0;r<i.orderedModifiers.length;r++)if(!0!==i.reset){var o=i.orderedModifiers[r],a=o.fn,s=o.options,l=void 0===s?{}:s,d=o.name;"function"===typeof a&&(i=a({state:i,options:l,name:d,instance:c})||i)}else i.reset=!1,r=-1}}},update:L((function(){return new Promise((function(e){c.forceUpdate(),e(i)}))})),destroy:function(){l(),u=!0}};if(!z(e,t))return c;function l(){a.forEach((function(e){return e()})),a=[]}return c.setOptions(n).then((function(e){!u&&n.onFirstUpdate&&n.onFirstUpdate(e)})),c}}var F={passive:!0};function H(e){return e.split("-")[0]}function V(e){return e.split("-")[1]}function U(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function G(e){var t,n=e.reference,r=e.element,i=e.placement,o=i?H(i):null,a=i?V(i):null,s=n.x+n.width/2-r.width/2,u=n.y+n.height/2-r.height/2;switch(o){case E:t={x:s,y:n.y-r.height};break;case k:t={x:s,y:n.y+n.height};break;case _:t={x:n.x+n.width,y:u};break;case T:t={x:n.x-r.width,y:u};break;default:t={x:n.x,y:n.y}}var c=o?U(o):null;if(null!=c){var l="y"===c?"height":"width";switch(a){case A:t[c]=Math.floor(t[c])-Math.floor(n[l]/2-r[l]/2);break;case P:t[c]=Math.floor(t[c])+Math.ceil(n[l]/2-r[l]/2)}}return t}var q={top:"auto",right:"auto",bottom:"auto",left:"auto"};function K(e){var t,n=e.popper,r=e.popperRect,i=e.placement,a=e.offsets,s=e.position,u=e.gpuAcceleration,c=e.adaptive,d=function(e){var t=e.x,n=e.y,r=window.devicePixelRatio||1;return{x:Math.round(t*r)/r||0,y:Math.round(n*r)/r||0}}(a),f=d.x,h=d.y,p=a.hasOwnProperty("x"),v=a.hasOwnProperty("y"),m=T,g=E,y=window;if(c){var b=x(n);b===o(n)&&(b=l(n)),i===E&&(g=k,h-=b.clientHeight-r.height,h*=u?1:-1),i===T&&(m=_,f-=b.clientWidth-r.width,f*=u?1:-1)}var w,O=Object.assign({position:s},c&&q);return u?Object.assign(Object.assign({},O),{},((w={})[g]=v?"0":"",w[m]=p?"0":"",w.transform=(y.devicePixelRatio||1)<2?"translate("+f+"px, "+h+"px)":"translate3d("+f+"px, "+h+"px, 0)",w)):Object.assign(Object.assign({},O),{},((t={})[g]=v?h+"px":"",t[m]=p?f+"px":"",t.transform="",t))}var W={left:"right",right:"left",bottom:"top",top:"bottom"};function Z(e){return e.replace(/left|right|bottom|top/g,(function(e){return W[e]}))}var $={start:"end",end:"start"};function X(e){return e.replace(/start|end/g,(function(e){return $[e]}))}function Y(e,t){var n=Boolean(t.getRootNode&&t.getRootNode().host);if(e.contains(t))return!0;if(n){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Q(e){return Object.assign(Object.assign({},e),{},{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function J(e,t){return t===S?Q(function(e){var t=o(e),n=l(e),r=t.visualViewport,i=n.clientWidth,a=n.clientHeight,s=0,u=0;return r&&(i=r.width,a=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=r.offsetLeft,u=r.offsetTop)),{width:i,height:a,x:s+d(e),y:u}}(e)):u(t)?function(e){var t=i(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):Q(function(e){var t=l(e),n=a(e),r=e.ownerDocument.body,i=Math.max(t.scrollWidth,t.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),o=Math.max(t.scrollHeight,t.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),s=-n.scrollLeft+d(e),u=-n.scrollTop;return"rtl"===f(r||t).direction&&(s+=Math.max(t.clientWidth,r?r.clientWidth:0)-i),{width:i,height:o,x:s,y:u}}(l(e)))}function ee(e,t,n){var r="clippingParents"===t?function(e){var t=y(m(e)),n=["absolute","fixed"].indexOf(f(e).position)>=0&&u(e)?x(e):e;return s(n)?t.filter((function(e){return s(e)&&Y(e,n)&&"body"!==c(e)})):[]}(e):[].concat(t),i=[].concat(r,[n]),o=i[0],a=i.reduce((function(t,n){var r=J(e,n);return t.top=Math.max(r.top,t.top),t.right=Math.min(r.right,t.right),t.bottom=Math.min(r.bottom,t.bottom),t.left=Math.max(r.left,t.left),t}),J(e,o));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function te(e){return Object.assign(Object.assign({},{top:0,right:0,bottom:0,left:0}),e)}function ne(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function re(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=void 0===r?e.placement:r,a=n.boundary,u=void 0===a?"clippingParents":a,c=n.rootBoundary,d=void 0===c?S:c,f=n.elementContext,h=void 0===f?M:f,p=n.altBoundary,v=void 0!==p&&p,m=n.padding,g=void 0===m?0:m,y=te("number"!==typeof g?g:ne(g,C)),b=h===M?"reference":M,w=e.elements.reference,x=e.rects.popper,T=e.elements[v?b:h],O=ee(s(T)?T:T.contextElement||l(e.elements.popper),u,d),A=i(w),P=G({reference:A,element:x,strategy:"absolute",placement:o}),R=Q(Object.assign(Object.assign({},x),P)),j=h===M?R:A,D={top:O.top-j.top+y.top,bottom:j.bottom-O.bottom+y.bottom,left:O.left-j.left+y.left,right:j.right-O.right+y.right},N=e.modifiersData.offset;if(h===M&&N){var L=N[o];Object.keys(D).forEach((function(e){var t=[_,k].indexOf(e)>=0?1:-1,n=[E,k].indexOf(e)>=0?"y":"x";D[e]+=L[n]*t}))}return D}function ie(e,t,n){return Math.max(e,Math.min(t,n))}function oe(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ae(e){return[E,_,k,T].some((function(t){return e[t]>=0}))}var se=B({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,a=void 0===i||i,s=r.resize,u=void 0===s||s,c=o(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach((function(e){e.addEventListener("scroll",n.update,F)})),u&&c.addEventListener("resize",n.update,F),function(){a&&l.forEach((function(e){e.removeEventListener("scroll",n.update,F)})),u&&c.removeEventListener("resize",n.update,F)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=G({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=void 0===r||r,o=n.adaptive,a=void 0===o||o,s={placement:H(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign(Object.assign({},t.styles.popper),K(Object.assign(Object.assign({},s),{},{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign(Object.assign({},t.styles.arrow),K(Object.assign(Object.assign({},s),{},{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1})))),t.attributes.popper=Object.assign(Object.assign({},t.attributes.popper),{},{"data-popper-placement":t.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},i=t.elements[e];u(i)&&c(i)&&(Object.assign(i.style,n),Object.keys(r).forEach((function(e){var t=r[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var r=t.elements[e],i=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});u(r)&&c(r)&&(Object.assign(r.style,o),Object.keys(i).forEach((function(e){r.removeAttribute(e)})))}))}},requires:["computeStyles"]},{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,i=n.offset,o=void 0===i?[0,0]:i,a=j.reduce((function(e,n){return e[n]=function(e,t,n){var r=H(e),i=[T,E].indexOf(r)>=0?-1:1,o="function"===typeof n?n(Object.assign(Object.assign({},t),{},{placement:e})):n,a=o[0],s=o[1];return a=a||0,s=(s||0)*i,[T,_].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,o),e}),{}),s=a[t.placement],u=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},{name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,o=void 0===i||i,a=n.altAxis,s=void 0===a||a,u=n.fallbackPlacements,c=n.padding,l=n.boundary,d=n.rootBoundary,f=n.altBoundary,h=n.flipVariations,p=void 0===h||h,v=n.allowedAutoPlacements,m=t.options.placement,g=H(m),y=u||(g===m||!p?[Z(m)]:function(e){if(H(e)===O)return[];var t=Z(e);return[X(e),t,X(t)]}(m)),b=[m].concat(y).reduce((function(e,n){return e.concat(H(n)===O?function(e,t){void 0===t&&(t={});var n=t,r=n.placement,i=n.boundary,o=n.rootBoundary,a=n.padding,s=n.flipVariations,u=n.allowedAutoPlacements,c=void 0===u?j:u,l=V(r),d=l?s?R:R.filter((function(e){return V(e)===l})):C,f=d.filter((function(e){return c.indexOf(e)>=0}));0===f.length&&(f=d);var h=f.reduce((function(t,n){return t[n]=re(e,{placement:n,boundary:i,rootBoundary:o,padding:a})[H(n)],t}),{});return Object.keys(h).sort((function(e,t){return h[e]-h[t]}))}(t,{placement:n,boundary:l,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:v}):n)}),[]),w=t.rects.reference,x=t.rects.popper,P=new Map,S=!0,M=b[0],D=0;D<b.length;D++){var N=b[D],L=H(N),I=V(N)===A,z=[E,k].indexOf(L)>=0,B=z?"width":"height",F=re(t,{placement:N,boundary:l,rootBoundary:d,altBoundary:f,padding:c}),U=z?I?_:T:I?k:E;w[B]>x[B]&&(U=Z(U));var G=Z(U),q=[];if(o&&q.push(F[L]<=0),s&&q.push(F[U]<=0,F[G]<=0),q.every((function(e){return e}))){M=N,S=!1;break}P.set(N,q)}if(S)for(var K=function(e){var t=b.find((function(t){var n=P.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return M=t,"break"},W=p?3:1;W>0;W--){if("break"===K(W))break}t.placement!==M&&(t.modifiersData[r]._skip=!0,t.placement=M,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},{name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,o=void 0===i||i,a=n.altAxis,s=void 0!==a&&a,u=n.boundary,c=n.rootBoundary,l=n.altBoundary,d=n.padding,f=n.tether,h=void 0===f||f,p=n.tetherOffset,m=void 0===p?0:p,g=re(t,{boundary:u,rootBoundary:c,padding:d,altBoundary:l}),y=H(t.placement),b=V(t.placement),w=!b,O=U(y),C="x"===O?"y":"x",P=t.modifiersData.popperOffsets,S=t.rects.reference,M=t.rects.popper,R="function"===typeof m?m(Object.assign(Object.assign({},t.rects),{},{placement:t.placement})):m,j={x:0,y:0};if(P){if(o){var D="y"===O?E:T,N="y"===O?k:_,L="y"===O?"height":"width",I=P[O],z=P[O]+g[D],B=P[O]-g[N],F=h?-M[L]/2:0,G=b===A?S[L]:M[L],q=b===A?-M[L]:-S[L],K=t.elements.arrow,W=h&&K?v(K):{width:0,height:0},Z=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},$=Z[D],X=Z[N],Y=ie(0,S[L],W[L]),Q=w?S[L]/2-F-Y-$-R:G-Y-$-R,J=w?-S[L]/2+F+Y+X+R:q+Y+X+R,ee=t.elements.arrow&&x(t.elements.arrow),te=ee?"y"===O?ee.clientTop||0:ee.clientLeft||0:0,ne=t.modifiersData.offset?t.modifiersData.offset[t.placement][O]:0,oe=P[O]+Q-ne-te,ae=P[O]+J-ne,se=ie(h?Math.min(z,oe):z,I,h?Math.max(B,ae):B);P[O]=se,j[O]=se-I}if(s){var ue="x"===O?E:T,ce="x"===O?k:_,le=P[C],de=ie(le+g[ue],le,le-g[ce]);P[C]=de,j[C]=de-le}t.modifiersData[r]=j}},requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,i=n.elements.arrow,o=n.modifiersData.popperOffsets,a=H(n.placement),s=U(a),u=[T,_].indexOf(a)>=0?"height":"width";if(i&&o){var c=n.modifiersData[r+"#persistent"].padding,l=v(i),d="y"===s?E:T,f="y"===s?k:_,h=n.rects.reference[u]+n.rects.reference[s]-o[s]-n.rects.popper[u],p=o[s]-n.rects.reference[s],m=x(i),g=m?"y"===s?m.clientHeight||0:m.clientWidth||0:0,y=h/2-p/2,b=c[d],w=g-l[u]-c[f],O=g/2-l[u]/2+y,C=ie(b,O,w),A=s;n.modifiersData[r]=((t={})[A]=C,t.centerOffset=C-O,t)}},effect:function(e){var t=e.state,n=e.options,r=e.name,i=n.element,o=void 0===i?"[data-popper-arrow]":i,a=n.padding,s=void 0===a?0:a;null!=o&&("string"!==typeof o||(o=t.elements.popper.querySelector(o)))&&Y(t.elements.popper,o)&&(t.elements.arrow=o,t.modifiersData[r+"#persistent"]={padding:te("number"!==typeof s?s:ne(s,C))})},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,o=t.modifiersData.preventOverflow,a=re(t,{elementContext:"reference"}),s=re(t,{altBoundary:!0}),u=oe(a,r),c=oe(s,i,o),l=ae(u),d=ae(c);t.modifiersData[n]={referenceClippingOffsets:u,popperEscapeOffsets:c,isReferenceHidden:l,hasPopperEscaped:d},t.attributes.popper=Object.assign(Object.assign({},t.attributes.popper),{},{"data-popper-reference-hidden":l,"data-popper-escaped":d})}}]}),ue=n(7294),ce=n(3459),le={name:"matchWidth",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:e=>{var{state:t}=e;t.styles.popper.width=t.rects.reference.width+"px"},effect:e=>{var{state:t}=e;return()=>{var e=t.elements.reference;t.elements.popper.style.width=e.offsetWidth+"px"}}},de={name:"transformOrigin",enabled:!0,phase:"write",fn:e=>{var{state:t}=e;fe(t)},effect:e=>{var{state:t}=e;return()=>{fe(t)}}},fe=e=>{e.elements.popper.style.setProperty(ce.Dq.transformOrigin.var,(0,ce.mv)(e.placement))},he={name:"positionArrow",enabled:!0,phase:"afterWrite",fn:e=>{var{state:t}=e;pe(t)}},pe=e=>{var t;if(e.placement){var n=ve(e.placement);if(null!=(t=e.elements)&&t.arrow&&n){Object.assign(e.elements.arrow.style,{[n.property]:n.value,width:ce.Dq.arrowSize.varRef,height:ce.Dq.arrowSize.varRef,zIndex:-1});var r={[ce.Dq.arrowSizeHalf.var]:"calc("+ce.Dq.arrowSize.varRef+" / 2)",[ce.Dq.arrowOffset.var]:"calc("+ce.Dq.arrowSizeHalf.varRef+" * -1)"};for(var i in r)e.elements.arrow.style.setProperty(i,r[i])}}},ve=e=>e.startsWith("top")?{property:"bottom",value:ce.Dq.arrowOffset.varRef}:e.startsWith("bottom")?{property:"top",value:ce.Dq.arrowOffset.varRef}:e.startsWith("left")?{property:"right",value:ce.Dq.arrowOffset.varRef}:e.startsWith("right")?{property:"left",value:ce.Dq.arrowOffset.varRef}:void 0,me={name:"innerArrow",enabled:!0,phase:"main",requires:["arrow"],fn:e=>{var{state:t}=e;ge(t)},effect:e=>{var{state:t}=e;return()=>{ge(t)}}},ge=e=>{if(e.elements.arrow){var t=e.elements.arrow.querySelector("[data-popper-arrow-inner]");t&&Object.assign(t.style,{transform:"rotate(45deg)",background:ce.Dq.arrowBg.varRef,top:0,left:0,width:"100%",height:"100%",position:"absolute",zIndex:"inherit",boxShadow:(0,ce.Ke)(e.placement)})}};function ye(){return(ye=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function be(e){void 0===e&&(e={});var{enabled:t=!0,modifiers:n=[],placement:i="bottom",strategy:o="absolute",arrowPadding:a=8,eventListeners:s=!0,offset:u,gutter:c=8,flip:l=!0,boundary:d="clippingParents",preventOverflow:f=!0,matchWidth:h}=e,p=(0,ue.useRef)(null),v=(0,ue.useRef)(null),m=(0,ue.useRef)(null),g=(0,ue.useRef)((()=>{})),y=(0,ue.useCallback)((()=>{t&&p.current&&v.current&&(null==g.current||g.current(),m.current=se(p.current,v.current,{placement:i,modifiers:[me,he,de,ye({},le,{enabled:!!h}),ye({name:"eventListeners"},(0,ce.$B)(s)),{name:"arrow",options:{padding:a}},{name:"offset",options:{offset:null!=u?u:[0,c]}},{name:"flip",enabled:!!l,options:{padding:8}},{name:"preventOverflow",enabled:!!f,options:{boundary:d}},...n],strategy:o}),m.current.forceUpdate(),g.current=m.current.destroy)}),[t,i,n,h,s,a,u,c,l,f,d,o]);(0,ue.useEffect)((()=>()=>{var e;p.current||v.current||(null==(e=m.current)||e.destroy(),m.current=null)}),[]);var b=(0,ue.useCallback)((e=>{p.current=e,y()}),[y]),w=(0,ue.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),ye({},e,{ref:(0,r.l)(b,t)})}),[b]),x=(0,ue.useCallback)((e=>{v.current=e,y()}),[y]),E=(0,ue.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),ye({},e,{ref:(0,r.l)(x,t),style:ye({},e.style,{position:o,minWidth:"max-content",inset:"0 auto auto 0"})})}),[o,x]),k=(0,ue.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),ye({},function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,["size","shadowColor","bg","style"]),{ref:t,"data-popper-arrow":"",style:we(e)})}),[]),_=(0,ue.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),ye({},e,{ref:t,"data-popper-arrow-inner":""})}),[]);return{update(){var e;null==(e=m.current)||e.update()},forceUpdate(){var e;null==(e=m.current)||e.forceUpdate()},transformOrigin:ce.Dq.transformOrigin.varRef,referenceRef:b,popperRef:x,getPopperProps:E,getArrowProps:k,getArrowInnerProps:_,getReferenceProps:w}}function we(e){var{size:t,shadowColor:n,bg:r,style:i}=e,o=ye({},i,{position:"absolute"});return t&&(o["--popper-arrow-size"]=t),n&&(o["--popper-arrow-shadow-color"]=n),r&&(o["--popper-arrow-bg"]=r),o}},3459:function(e,t,n){"use strict";function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}n.d(t,{Dq:function(){return o},Ke:function(){return a},mv:function(){return u},$B:function(){return l}});var i=(e,t)=>({var:e,varRef:t?"var("+e+", "+t+")":"var("+e+")"}),o={arrowShadowColor:i("--popper-arrow-shadow-color"),arrowSize:i("--popper-arrow-size","8px"),arrowSizeHalf:i("--popper-arrow-size-half"),arrowBg:i("--popper-arrow-bg"),transformOrigin:i("--popper-transform-origin"),arrowOffset:i("--popper-arrow-offset")};function a(e){return e.includes("top")?"1px 1px 1px 0 var(--popper-arrow-shadow-color)":e.includes("bottom")?"-1px -1px 1px 0 var(--popper-arrow-shadow-color)":e.includes("right")?"-1px 1px 1px 0 var(--popper-arrow-shadow-color)":e.includes("left")?"1px -1px 1px 0 var(--popper-arrow-shadow-color)":void 0}var s={top:"bottom center","top-start":"bottom left","top-end":"bottom right",bottom:"top center","bottom-start":"top left","bottom-end":"top right",left:"right center","left-start":"right top","left-end":"right bottom",right:"left center","right-start":"left top","right-end":"left bottom"},u=e=>s[e],c={scroll:!0,resize:!0};function l(e){return"object"===typeof e?{enabled:!0,options:r({},c,e)}:{enabled:e,options:c}}},4255:function(e,t,n){"use strict";n.d(t,{W:function(){return i}});var r=n(7294);function i(e){return r.Children.toArray(e).filter((e=>r.isValidElement(e)))}},2947:function(e,t,n){"use strict";n.d(t,{l:function(){return o}});var r=n(3808);function i(e,t){if(null!=e)if((0,r.mf)(e))e(t);else try{e.current=t}catch(n){throw new Error("Cannot assign value '"+t+"' to ref '"+e+"'")}}function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return e=>{t.forEach((t=>i(t,e)))}}},3014:function(e,t,n){"use strict";n.d(t,{iR:function(){return ce},Ms:function(){return fe},gs:function(){return le},Uj:function(){return de}});var r=n(63),i=n(2326),o=n(5284),a=n(9676),s=n(5643),u=n(3808),c=n(4461),l=n(8500),d=n(7294),f=n(762),h=n(1034),p=n(639);var v=n(4577),m="Invariant failed";var g=function(e,t){if(!e)throw new Error(m)},y=function(e){var t=e.top,n=e.right,r=e.bottom,i=e.left;return{top:t,right:n,bottom:r,left:i,width:n-i,height:r-t,x:i,y:t,center:{x:(n+i)/2,y:(r+t)/2}}},b=function(e,t){return{top:e.top+t.top,left:e.left+t.left,bottom:e.bottom-t.bottom,right:e.right-t.right}},w={top:0,right:0,bottom:0,left:0},x=function(e){var t,n,r=e.borderBox,i=e.margin,o=void 0===i?w:i,a=e.border,s=void 0===a?w:a,u=e.padding,c=void 0===u?w:u,l=y((n=o,{top:(t=r).top-n.top,left:t.left-n.left,bottom:t.bottom+n.bottom,right:t.right+n.right})),d=y(b(r,s)),f=y(b(d,c));return{marginBox:l,borderBox:y(r),paddingBox:d,contentBox:f,margin:o,border:s,padding:c}},E=function(e){var t=e.slice(0,-2);if("px"!==e.slice(-2))return 0;var n=Number(t);return isNaN(n)&&g(!1),n},k=function(e){return function(e,t){var n={top:E(t.marginTop),right:E(t.marginRight),bottom:E(t.marginBottom),left:E(t.marginLeft)},r={top:E(t.paddingTop),right:E(t.paddingRight),bottom:E(t.paddingBottom),left:E(t.paddingLeft)},i={top:E(t.borderTopWidth),right:E(t.borderRightWidth),bottom:E(t.borderBottomWidth),left:E(t.borderLeftWidth)};return x({borderBox:e,margin:n,padding:r,border:i})}(e.getBoundingClientRect(),window.getComputedStyle(e))},_=n(8327);var T=n(2653),O=n(9839);function C(e){return!!e.touches}var A={pageX:0,pageY:0};function P(e,t){void 0===t&&(t="page");var n=e.touches[0]||e.changedTouches[0]||A;return{x:n[t+"X"],y:n[t+"Y"]}}function S(e,t){return void 0===t&&(t="page"),{x:e[t+"X"],y:e[t+"Y"]}}function M(e,t){return void 0===t&&(t="page"),{point:C(e)?P(e,t):S(e,t)}}var R=function(e,t){void 0===t&&(t=!1);var n,r=t=>e(t,M(t));return t?(n=r,e=>{var t=e instanceof MouseEvent;(!t||t&&0===e.button)&&n(e)}):r},j={pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointercancel:"mousecancel",pointerover:"mouseover",pointerout:"mouseout",pointerenter:"mouseenter",pointerleave:"mouseleave"},D={pointerdown:"touchstart",pointermove:"touchmove",pointerup:"touchend",pointercancel:"touchcancel"};function N(e){return c.jU&&null===window.onpointerdown?e:c.jU&&null===window.ontouchstart?D[e]:c.jU&&null===window.onmousedown?j[e]:e}function L(e,t,n,r){return(0,c.EV)(e,N(t),R(n,"pointerdown"===t),r)}var I=n(658);function z(){return(z=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function B(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class F{constructor(e,t,n){if(B(this,"history",[]),B(this,"startEvent",null),B(this,"lastEvent",null),B(this,"lastEventInfo",null),B(this,"handlers",{}),B(this,"removeListeners",I.ZT),B(this,"threshold",3),B(this,"updatePoint",(()=>{if(this.lastEvent&&this.lastEventInfo){var e=G(this.lastEventInfo,this.history),t=null!==this.startEvent,n=(0,I.TE)(e.offset,{x:0,y:0})>=this.threshold;if(t||n){var{timestamp:r}=(0,O.$B)();this.history.push(z({},e.point,{timestamp:r}));var{onStart:i,onMove:o}=this.handlers;t||(null==i||i(this.lastEvent,e),this.startEvent=this.lastEvent),null==o||o(this.lastEvent,e)}}})),B(this,"onPointerMove",((e,t)=>{this.lastEvent=e,this.lastEventInfo=t,function(e){return"undefined"!==typeof PointerEvent&&e instanceof PointerEvent?!("mouse"!==e.pointerType):e instanceof MouseEvent}(e)&&0===e.buttons?this.onPointerUp(e,t):O.ZP.update(this.updatePoint,!0)})),B(this,"onPointerUp",((e,t)=>{var n=G(t,this.history),{onEnd:r,onSessionEnd:i}=this.handlers;null==i||i(e,n),this.end(),r&&this.startEvent&&(null==r||r(e,n))})),!(C(r=e)&&r.touches.length>1)){var r;this.handlers=t,n&&(this.threshold=n),e.stopPropagation(),e.preventDefault();var i=M(e),{timestamp:o}=(0,O.$B)();this.history=[z({},i.point,{timestamp:o})];var{onSessionStart:a}=t;null==a||a(e,G(i,this.history)),this.removeListeners=(0,I.zG)(L(window,"pointermove",this.onPointerMove),L(window,"pointerup",this.onPointerUp),L(window,"pointercancel",this.onPointerUp))}}updateHandlers(e){this.handlers=e}end(){var e;null==(e=this.removeListeners)||e.call(this),O.qY.update(this.updatePoint)}}function H(e,t){return{x:e.x-t.x,y:e.y-t.y}}function V(e){return e[0]}function U(e){return e[e.length-1]}function G(e,t){return{point:e.point,delta:H(e.point,U(t)),offset:H(e.point,V(t)),velocity:q(t,.1)}}function q(e,t){if(e.length<2)return{x:0,y:0};for(var n=e.length-1,r=null,i=function(e){return e[e.length-1]}(e);n>=0&&(r=e[n],!(i.timestamp-r.timestamp>1e3*t));)n--;if(!r)return{x:0,y:0};var o=(i.timestamp-r.timestamp)/1e3;if(0===o)return{x:0,y:0};var a={x:(i.x-r.x)/o,y:(i.y-r.y)/o};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}var K=n(4941);var W=n(7581);function Z(e,t){var n,r,i,o,{onPan:a,onPanStart:s,onPanEnd:u,onPanSessionStart:c,onPanSessionEnd:l}=t,f=Boolean(a||s||u||c||l),h=(0,d.useRef)(null),p={onSessionStart:c,onSessionEnd:l,onStart:s,onMove:a,onEnd(e,t){h.current=null,null==u||u(e,t)}};(0,d.useEffect)((()=>{var e;null==(e=h.current)||e.updateHandlers(p)})),n=()=>e.current,r="pointerdown",i=f?function(e){h.current=new F(e,p)}:I.ZT,(0,K.O)(N(r),R(i,"pointerdown"===r),n,o),(0,W.z)((()=>{var e;null==(e=h.current)||e.end(),h.current=null}))}var $=n(2947);Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER;function X(e,t){var n=function(e){var t=parseFloat(e);return(0,u.iy)(t)?0:t}(e),r=10**(null!=t?t:10);return n=Math.round(n*r)/r,t?n.toFixed(t):n.toString()}function Y(e,t,n){return 100*(e-t)/(n-t)}function Q(e,t,n){return X(Math.round((e-t)/n)*n+t,function(e){if(!Number.isFinite(e))return 0;for(var t=1,n=0;Math.round(e*t)/t!==e;)t*=10,n+=1;return n}(n))}function J(e,t,n){return null==e?e:((0,I.ZK)({condition:n<t,message:"clamp: max cannot be less than min"}),Math.min(Math.max(e,t),n))}var ee=n(7248);function te(){return(te=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function ne(e){var{orientation:t,vertical:n,horizontal:r}=e;return"vertical"===t?n:r}function re(){return(re=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function ie(e){var t,{min:n=0,max:r=100,onChange:i,value:o,defaultValue:a,isReversed:s,orientation:u="horizontal",id:l,isDisabled:m,isReadOnly:g,onChangeStart:y,onChangeEnd:b,step:w=1,getAriaValueText:x,"aria-valuetext":E,"aria-label":O,"aria-labelledby":C,name:A,focusThumbOnChange:P=!0}=e,S=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,["min","max","onChange","value","defaultValue","isReversed","orientation","id","isDisabled","isReadOnly","onChangeStart","onChangeEnd","step","getAriaValueText","aria-valuetext","aria-label","aria-labelledby","name","focusThumbOnChange"]),M=(0,f.W)(y),R=(0,f.W)(b),j=(0,f.W)(x),[D,N]=(0,h.T)({value:o,defaultValue:null!=a?a:oe(n,r),onChange:i}),[L,z]=(0,p.k)(),B=function(e){var t=(0,d.useRef)();return(0,d.useEffect)((()=>{t.current=e}),[e]),t.current}(L),[F,H]=(0,p.k)(),V=(0,d.useRef)(null),U=!(m||g),G=J(D,n,r),q=function(e){var t=d.useRef(null);return t.current=e,t}(G),K=(0,d.useRef)(q.current),W=Y(s?r-G+n:G,n,r),X="vertical"===u,ie=(0,d.useRef)(null),ae=(0,d.useRef)(null),se=(0,d.useRef)(null),[ue,ce]=(0,v.ZS)(l,"slider-thumb","slider-track"),le=(0,d.useCallback)((e=>{var t,i;if(ie.current){V.current="pointer";var o=k(ie.current).borderBox,{clientX:a,clientY:u}=null!=(t=null==(i=e.touches)?void 0:i[0])?t:e,c=(X?o.bottom-u:a-o.left)/(X?o.height:o.width);s&&(c=1-c);var l=function(e,t,n){return(n-t)*e+t}(c,n,r);return w&&(l=parseFloat(Q(l,n,w))),l=J(l,n,r)}}),[X,s,r,n,w]),de=(r-n)/10,fe=w||(r-n)/100,he=(0,d.useCallback)((e=>{U&&(e=J(e=parseFloat(Q(e,n,fe)),n,r),N(e))}),[fe,r,n,N,U]),pe=(0,d.useMemo)((()=>({stepUp:function(e){void 0===e&&(e=fe),he(s?G-e:G+e)},stepDown:function(e){void 0===e&&(e=fe),he(s?G+e:G-e)},reset:()=>he(a||0),stepTo:e=>he(e)})),[he,s,G,fe,a]),ve=(0,d.useCallback)((e=>{var t={ArrowRight:()=>pe.stepUp(),ArrowUp:()=>pe.stepUp(),ArrowLeft:()=>pe.stepDown(),ArrowDown:()=>pe.stepDown(),PageUp:()=>pe.stepUp(de),PageDown:()=>pe.stepDown(de),Home:()=>he(n),End:()=>he(r)}[(0,c.uh)(e)];t&&(e.preventDefault(),e.stopPropagation(),t(e),V.current="keyboard")}),[pe,he,r,n,de]),me=null!=(t=null==j?void 0:j(G))?t:E,ge=function(e,t){var[n,r]=d.useState(null),i=d.useRef();return(0,_.G)((()=>{if(e.current){var n=e.current;return o(),t&&(window.addEventListener("resize",o),window.addEventListener("scroll",o)),()=>{t&&(window.removeEventListener("resize",o),window.removeEventListener("scroll",o)),i.current&&cancelAnimationFrame(i.current)}}function o(){i.current=requestAnimationFrame((()=>{var e=k(n);r(e)}))}}),[t]),n}(ae),{thumbStyle:ye,rootStyle:be,trackStyle:we,innerTrackStyle:xe}=(0,d.useMemo)((()=>{var e,t=null!=(e=null==ge?void 0:ge.borderBox)?e:{width:0,height:0};return function(e){var{orientation:t,trackPercent:n,thumbRect:r,isReversed:i}=e,o=te({position:"absolute",userSelect:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",touchAction:"none"},ne({orientation:t,vertical:{bottom:"calc("+n+"% - "+r.height/2+"px)"},horizontal:{left:"calc("+n+"% - "+r.width/2+"px)"}})),a=te({position:"relative",touchAction:"none",WebkitTapHighlightColor:"rgba(0,0,0,0)",userSelect:"none",outline:0},ne({orientation:t,vertical:{paddingLeft:r.width/2,paddingRight:r.width/2},horizontal:{paddingTop:r.height/2,paddingBottom:r.height/2}})),s=te({position:"absolute"},ne({orientation:t,vertical:{left:"50%",transform:"translateX(-50%)",height:"100%"},horizontal:{top:"50%",transform:"translateY(-50%)",width:"100%"}}));return{trackStyle:s,innerTrackStyle:te({},s,ne({orientation:t,vertical:i?{height:100-n+"%",top:0}:{height:n+"%",bottom:0},horizontal:i?{width:100-n+"%",right:0}:{width:n+"%",left:0}})),rootStyle:a,thumbStyle:o}}({isReversed:s,orientation:u,thumbRect:t,trackPercent:W})}),[s,u,null==ge?void 0:ge.borderBox,W]),Ee=(0,d.useCallback)((()=>{ae.current&&P&&setTimeout((()=>(0,ee.T)(ae.current)))}),[P]);(0,T.r)((()=>{Ee(),"keyboard"===V.current&&(null==b||b(q.current))}),[G,b]);var ke=e=>{var t=le(e);null!=t&&t!==q.current&&N(t)};Z(se,{onPanSessionStart(e){U&&ke(e)},onPanSessionEnd(){U&&(B||K.current===q.current||(null==R||R(q.current),K.current=q.current))},onPanStart(){U&&(z.on(),null==M||M(q.current))},onPan(e){U&&ke(e)},onPanEnd(){U&&(z.off(),null==R||R(q.current))}});var _e=(0,d.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),re({},e,S,{ref:(0,$.l)(t,se),tabIndex:-1,"aria-disabled":(0,c.Qm)(m),"data-focused":(0,c.PB)(F),style:re({},e.style,be)})}),[S,m,F,be]),Te=(0,d.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),re({},e,{ref:(0,$.l)(t,ie),id:ce,"data-disabled":(0,c.PB)(m),style:re({},e.style,we)})}),[m,ce,we]),Oe=(0,d.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),re({},e,{ref:t,style:re({},e.style,xe)})}),[xe]),Ce=(0,d.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),re({},e,{ref:(0,$.l)(t,ae),role:"slider",tabIndex:U?0:void 0,id:ue,"data-active":(0,c.PB)(L),"aria-valuetext":me,"aria-valuemin":n,"aria-valuemax":r,"aria-valuenow":G,"aria-orientation":u,"aria-disabled":(0,c.Qm)(m),"aria-readonly":(0,c.Qm)(g),"aria-label":O,"aria-labelledby":O?void 0:C,style:re({},e.style,ye),onKeyDown:(0,I.v0)(e.onKeyDown,ve),onFocus:(0,I.v0)(e.onFocus,H.on),onBlur:(0,I.v0)(e.onBlur,H.off)})}),[O,C,m,L,g,U,r,n,ve,u,H.off,H.on,ue,ye,G,me]),Ae=(0,d.useCallback)((function(e,t){void 0===e&&(e={}),void 0===t&&(t=null);var i=!(e.value<n||e.value>r),o=G>=e.value,a=Y(e.value,n,r),l=re({position:"absolute",pointerEvents:"none"},function(e){var{orientation:t,vertical:n,horizontal:r}=e;return"vertical"===t?n:r}({orientation:u,vertical:{bottom:s?100-a+"%":a+"%"},horizontal:{left:s?100-a+"%":a+"%"}}));return re({},e,{ref:t,role:"presentation","aria-hidden":!0,"data-disabled":(0,c.PB)(m),"data-invalid":(0,c.PB)(!i),"data-highlighted":(0,c.PB)(o),style:re({},e.style,l)})}),[m,s,r,n,u,G]),Pe=(0,d.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),re({},e,{ref:t,type:"hidden",value:G,name:A})}),[A,G]);return{state:{value:G,isFocused:F,isDragging:L},actions:pe,getRootProps:_e,getTrackProps:Te,getInnerTrackProps:Oe,getThumbProps:Ce,getMarkerProps:Ae,getInputProps:Pe}}function oe(e,t){return t<e?e:e+(t-e)/2}function ae(){return(ae=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var[se,ue]=(0,l.k)({name:"SliderContext",errorMessage:"useSliderContext: `context` is undefined. Seems you forgot to wrap all slider components within <Slider />"}),ce=(0,r.G)(((e,t)=>{var n=(0,i.j)("Slider",e),r=ie((0,o.Lr)(e)),{getInputProps:u,getRootProps:c}=r,l=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(r,["getInputProps","getRootProps"]),f=c(),h=u({},t),p=ae({display:"inline-block",position:"relative",cursor:"pointer"},n.container);return d.createElement(se,{value:l},d.createElement(a.Fo,{value:n},d.createElement(s.m$.div,ae({},f,{className:"chakra-slider",__css:p}),e.children,d.createElement("input",h))))}));ce.defaultProps={orientation:"horizontal"},u.Ts&&(ce.displayName="Slider");var le=(0,r.G)(((e,t)=>{var{getThumbProps:n}=ue(),r=ae({display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",outline:0},(0,a.yK)().thumb),i=n(e,t);return d.createElement(s.m$.div,ae({},i,{className:(0,c.cx)("chakra-slider__thumb",e.className),__css:r}))}));u.Ts&&(le.displayName="SliderThumb");var de=(0,r.G)(((e,t)=>{var{getTrackProps:n}=ue(),r=ae({overflow:"hidden"},(0,a.yK)().track),i=n(e,t);return d.createElement(s.m$.div,ae({},i,{className:(0,c.cx)("chakra-slider__track",e.className),__css:r}))}));u.Ts&&(de.displayName="SliderTrack");var fe=(0,r.G)(((e,t)=>{var{getInnerTrackProps:n}=ue(),r=ae({width:"inherit",height:"inherit"},(0,a.yK)().filledTrack),i=n(e,t);return d.createElement(s.m$.div,ae({},i,{className:"chakra-slider__filled-track",__css:r}))}));u.Ts&&(fe.displayName="SliderFilledTrack");var he=(0,r.G)(((e,t)=>{var{getMarkerProps:n}=ue(),r=n(e,t);return d.createElement(s.m$.div,ae({},r,{className:(0,c.cx)("chakra-slider__marker",e.className)}))}));u.Ts&&(he.displayName="SliderMark")},8134:function(e,t,n){"use strict";n.d(t,{r:function(){return E}});var r=n(762),i=n(639),o=n(1034),a=n(8327),s=n(2947),u=n(658),c=n(4461),l=n(7248),d=n(5415),f=n(7294);function h(){return(h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function p(e){void 0===e&&(e={});var{defaultIsChecked:t,defaultChecked:n=t,isChecked:p,isFocusable:m,isDisabled:g,isReadOnly:y,isRequired:b,onChange:w,isIndeterminate:x,isInvalid:E,name:k,value:_,id:T,onBlur:O,onFocus:C,"aria-label":A,"aria-labelledby":P,"aria-invalid":S,"aria-describedby":M}=e,R=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,["defaultIsChecked","defaultChecked","isChecked","isFocusable","isDisabled","isReadOnly","isRequired","onChange","isIndeterminate","isInvalid","name","value","id","onBlur","onFocus","aria-label","aria-labelledby","aria-invalid","aria-describedby"]),j=(0,r.W)(w),D=(0,r.W)(O),N=(0,r.W)(C),[L,I]=(0,i.k)(),[z,B]=(0,i.k)(),[F,H]=(0,i.k)(),V=(0,f.useRef)(null),[U,G]=(0,f.useState)(!0),[q,K]=(0,f.useState)(!!n),[W,Z]=(0,o.p)(p,q);(0,u.ZK)({condition:!!t,message:'The "defaultIsChecked" prop has been deprecated and will be removed in a future version. Please use the "defaultChecked" prop instead, which mirrors default React checkbox behavior.'});var $=(0,f.useCallback)((e=>{y||g?e.preventDefault():(W||K(Z?e.target.checked:!!x||e.target.checked),null==j||j(e))}),[y,g,Z,W,x,j]);(0,a.G)((()=>{V.current&&(V.current.indeterminate=Boolean(x))}),[x]);var X=g&&!m,Y=(0,f.useCallback)((e=>{" "===e.key&&H.on()}),[H]),Q=(0,f.useCallback)((e=>{" "===e.key&&H.off()}),[H]);(0,a.G)((()=>{V.current&&(V.current.checked!==Z&&K(V.current.checked))}),[V.current]);var J=(0,f.useCallback)((function(e,t){void 0===e&&(e={}),void 0===t&&(t=null);return h({},e,{ref:t,"data-active":(0,c.PB)(F),"data-hover":(0,c.PB)(z),"data-checked":(0,c.PB)(Z),"data-focus":(0,c.PB)(L),"data-indeterminate":(0,c.PB)(x),"data-disabled":(0,c.PB)(g),"data-invalid":(0,c.PB)(E),"data-readonly":(0,c.PB)(y),"aria-hidden":!0,onMouseDown:(0,u.v0)(e.onMouseDown,(e=>{e.preventDefault(),H.on()})),onMouseUp:(0,u.v0)(e.onMouseUp,H.off),onMouseEnter:(0,u.v0)(e.onMouseEnter,B.on),onMouseLeave:(0,u.v0)(e.onMouseLeave,B.off)})}),[F,Z,g,L,z,x,E,y,H,B.off,B.on]),ee=(0,f.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),h({},R,e,{ref:(0,s.l)(t,(e=>{e&&G("LABEL"===e.tagName)})),onClick:(0,u.v0)(e.onClick,(()=>{var e;U||(null==(e=V.current)||e.click(),(0,l.T)(V.current,{nextTick:!0}))})),"data-disabled":(0,c.PB)(g)})}),[R,g,U]),te=(0,f.useCallback)((function(e,t){void 0===e&&(e={}),void 0===t&&(t=null);return h({},e,{ref:(0,s.l)(V,t),type:"checkbox",name:k,value:_,id:T,onChange:(0,u.v0)(e.onChange,$),onBlur:(0,u.v0)(e.onBlur,D,I.off),onFocus:(0,u.v0)(e.onFocus,N,(()=>{(0,u.A4)(I.on)})),onKeyDown:(0,u.v0)(e.onKeyDown,Y),onKeyUp:(0,u.v0)(e.onKeyUp,Q),required:b,checked:Z,disabled:X,readOnly:y,"aria-label":A,"aria-labelledby":P,"aria-invalid":S?Boolean(S):E,"aria-describedby":M,"aria-disabled":g,style:d.NL})}),[k,_,T,$,I.off,I.on,D,N,Y,Q,b,Z,X,y,A,P,S,E,M,g]),ne=(0,f.useCallback)((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),h({},e,{ref:t,onMouseDown:(0,u.v0)(e.onMouseDown,v),onTouchStart:(0,u.v0)(e.onTouchStart,v),"data-disabled":(0,c.PB)(g),"data-checked":(0,c.PB)(Z),"data-invalid":(0,c.PB)(E)})}),[Z,g,E]);return{state:{isInvalid:E,isFocused:L,isChecked:Z,isActive:F,isHovered:z,isIndeterminate:x,isDisabled:g,isReadOnly:y,isRequired:b},getRootProps:ee,getCheckboxProps:J,getInputProps:te,getLabelProps:ne,htmlProps:R}}function v(e){e.preventDefault(),e.stopPropagation()}var m=n(63),g=n(2326),y=n(5284),b=n(5643),w=n(3808);function x(){return(x=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var E=(0,m.G)(((e,t)=>{var n=(0,g.j)("Switch",e),r=(0,y.Lr)(e),{spacing:i="0.5rem",children:o}=r,a=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(r,["spacing","children"]),{state:s,getInputProps:u,getCheckboxProps:l,getRootProps:d,getLabelProps:h}=p(a),v=f.useMemo((()=>x({display:"inline-block",verticalAlign:"middle",lineHeight:"normal"},n.container)),[n.container]),m=f.useMemo((()=>x({display:"inline-flex",flexShrink:0,justifyContent:"flex-start",boxSizing:"content-box",cursor:"pointer"},n.track)),[n.track]),w=f.useMemo((()=>x({userSelect:"none",marginStart:i},n.label)),[i,n.label]);return f.createElement(b.m$.label,x({},d(),{className:(0,c.cx)("chakra-switch",e.className),__css:v}),f.createElement("input",x({className:"chakra-switch__input"},u({},t))),f.createElement(b.m$.span,x({},l(),{className:"chakra-switch__track",__css:m}),f.createElement(b.m$.span,{__css:n.thumb,className:"chakra-switch__thumb","data-checked":(0,c.PB)(s.isChecked),"data-hover":(0,c.PB)(s.isHovered)})),o&&f.createElement(b.m$.span,x({className:"chakra-switch__label"},h(),{__css:w}),o))}));w.Ts&&(E.displayName="Switch")},63:function(e,t,n){"use strict";n.d(t,{G:function(){return i}});var r=n(7294);function i(e){return r.forwardRef(e)}},5643:function(e,t,n){"use strict";n.d(t,{m$:function(){return T}});var r=n(2631),i=n(5505),o=n(658),a=n(7294);function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var u=n(7866),c=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,l=(0,u.Z)((function(e){return c.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91})),d=n(2544),f=n(444),h=n(4199),p=l,v=function(e){return"theme"!==e},m=function(e){return"string"===typeof e&&e.charCodeAt(0)>96?p:v},g=function(e,t,n){var r;if(t){var i=t.shouldForwardProp;r=e.__emotion_forwardProp&&i?function(t){return e.__emotion_forwardProp(t)&&i(t)}:i}return"function"!==typeof r&&n&&(r=e.__emotion_forwardProp),r},y=function e(t,n){var r,i,o=t.__emotion_real===t,u=o&&t.__emotion_base||t;void 0!==n&&(r=n.label,i=n.target);var c=g(t,n,o),l=c||m(u),p=!l("as");return function(){var v=arguments,y=o&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==r&&y.push("label:"+r+";"),null==v[0]||void 0===v[0].raw)y.push.apply(y,v);else{0,y.push(v[0][0]);for(var b=v.length,w=1;w<b;w++)y.push(v[w],v[0][w])}var x=(0,d.w)((function(e,t,n){var r=p&&e.as||u,o="",s=[],v=e;if(null==e.theme){for(var g in v={},e)v[g]=e[g];v.theme=(0,a.useContext)(d.T)}"string"===typeof e.className?o=(0,f.f)(t.registered,s,e.className):null!=e.className&&(o=e.className+" ");var b=(0,h.O)(y.concat(s),t.registered,v);(0,f.M)(t,b,"string"===typeof r);o+=t.key+"-"+b.name,void 0!==i&&(o+=" "+i);var w=p&&void 0===c?m(r):l,x={};for(var E in e)p&&"as"===E||w(E)&&(x[E]=e[E]);return x.className=o,x.ref=n,(0,a.createElement)(r,x)}));return x.displayName=void 0!==r?r:"Styled("+("string"===typeof u?u:u.displayName||u.name||"Component")+")",x.defaultProps=t.defaultProps,x.__emotion_real=x,x.__emotion_base=u,x.__emotion_styles=y,x.__emotion_forwardProp=c,Object.defineProperty(x,"toString",{value:function(){return"."+i}}),x.withComponent=function(t,r){return e(t,s({},n,r,{shouldForwardProp:g(x,r,!0)})).apply(void 0,y)},x}}.bind();["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){y[e]=y(e)}));var b=y,w=new Set([...r.propNames,"textStyle","layerStyle","apply","isTruncated","noOfLines","focusBorderColor","errorBorderColor","as","__css","css","sx"]),x=new Set(["htmlWidth","htmlHeight","htmlSize"]),E=e=>x.has(e)||!w.has(e),k=n(5284);function _(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}var T=function(e,t){var n=null!=t?t:{},{baseStyle:a}=n,s=_(n,["baseStyle"]);s.shouldForwardProp||(s.shouldForwardProp=E);var u=(e=>{var{baseStyle:t}=e;return e=>{var{css:n,__css:a,sx:s}=e,u=_(e,["theme","css","__css","sx"]),c=(0,i.lw)(u,((e,t)=>(0,r.isStyleProp)(t))),l=(0,o.Pu)(t,e),d=Object.assign({},a,l,(0,i.YU)(c),s),f=(0,r.css)(d)(e.theme);return n?[f,n]:f}})({baseStyle:a});return b(e,s)(u)};k.t6.forEach((e=>{T[e]=T(e)}))},5284:function(e,t,n){"use strict";n.d(t,{t6:function(){return i},Lr:function(){return o}});var r=n(5505),i=["a","b","article","aside","blockquote","button","caption","cite","circle","code","dd","div","dl","dt","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hr","img","input","kbd","label","li","main","mark","nav","ol","p","path","pre","q","rect","s","svg","section","select","strong","small","span","sub","sup","table","tbody","td","textarea","tfoot","th","thead","tr","ul"];function o(e){return(0,r.CE)(e,["styleConfig","size","variant","colorScheme"])}},2326:function(e,t,n){"use strict";n.d(t,{j:function(){return v},m:function(){return p}});var r=n(5505),i=n(8554),o=n.n(i),a=n(658),s=n(7294),u=n(9590),c=n.n(u),l=n(4738),d=n(9676);function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function h(){return f({},(0,l.If)(),{theme:(0,d.Fg)()})}function p(e,t,n){var i,u;void 0===t&&(t={}),void 0===n&&(n={});var{styleConfig:l}=t,d=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(t,["styleConfig"]),{theme:f,colorMode:p}=h(),v=(0,r.Wf)(f,"components."+e),m=l||v,g=o()({theme:f,colorMode:p},null!=(i=null==m?void 0:m.defaultProps)?i:{},(0,r.YU)((0,r.CE)(d,["children"]))),y=(0,s.useRef)({});return(0,s.useMemo)((()=>{if(m){var e,t,r,i,s,u,l=(0,a.Pu)(null!=(e=m.baseStyle)?e:{},g),d=(0,a.Pu)(null!=(t=null==(r=m.variants)?void 0:r[g.variant])?t:{},g),f=(0,a.Pu)(null!=(i=null==(s=m.sizes)?void 0:s[g.size])?i:{},g),h=o()({},l,f,d);null!=(u=n)&&u.isMultiPart&&m.parts&&m.parts.forEach((e=>{var t;h[e]=null!=(t=h[e])?t:{}})),c()(y.current,h)||(y.current=h)}return y.current}),[m,g,null==(u=n)?void 0:u.isMultiPart])}function v(e,t){return p(e,t,{isMultiPart:!0})}},5684:function(e,t,n){"use strict";n.d(t,{u:function(){return V}});var r=n(3459),i=n(7294),o=n(7581);function a(){var e=i.useRef(!1),[t,n]=i.useState(0);return(0,o.z)((()=>{e.current=!0})),i.useCallback((()=>{e.current||n(t+1)}),[t])}var s=n(8327),u=n(4461),c=n(3808),l=n(8500),d=n(3935),f=n(4288);function h(){return(h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var[p,v]=(0,l.k)({strict:!1,name:"PortalContext"}),m="chakra-portal",g=e=>i.createElement("div",{className:"chakra-portal-zIndex",style:{position:"absolute",zIndex:e.zIndex,top:0,left:0,right:0}},e.children),y=e=>{var{appendToParentPortal:t,children:n}=e,r=i.useRef(null),o=i.useRef(null),u=a(),c=v(),l=(0,f.L)();(0,s.G)((()=>{if(r.current){var e=r.current.ownerDocument,n=t&&null!=c?c:e.body;if(n){o.current=e.createElement("div"),o.current.className=m,n.appendChild(o.current),u();var i=o.current;return()=>{n.contains(i)&&n.removeChild(i)}}}}),[]);var h=null!=l&&l.zIndex?i.createElement(g,{zIndex:null==l?void 0:l.zIndex},n):n;return o.current?(0,d.createPortal)(i.createElement(p,{value:o.current},h),o.current):i.createElement("span",{ref:r})},b=e=>{var{children:t,containerRef:n,appendToParentPortal:r}=e,o=n.current,c=null!=o?o:u.jU?document.body:void 0,l=i.useMemo((()=>{var e=null==o?void 0:o.ownerDocument.createElement("div");return e&&(e.className=m),e}),[o]),f=a();return(0,s.G)((()=>{f()}),[]),(0,s.G)((()=>{if(l&&c)return c.appendChild(l),()=>{c.removeChild(l)}}),[l,c]),c&&l?(0,d.createPortal)(i.createElement(p,{value:r?l:null},t),l):null};function w(e){var{containerRef:t}=e,n=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,["containerRef"]);return t?i.createElement(b,h({containerRef:t},n)):i.createElement(y,n)}w.defaultProps={appendToParentPortal:!0},w.className=m,w.selector=".chakra-portal",c.Ts&&(w.displayName="Portal");var x=n(5643),E=n(63),k=n(2326),_=n(5284),T=n(9676),O=n(5505),C=n(5415),A=n(7554),P=n(3869),S={exit:{scale:.85,opacity:0,transition:{opacity:{duration:.15,easings:"easeInOut"},scale:{duration:.2,easings:"easeInOut"}}},enter:{scale:1,opacity:1,transition:{opacity:{easings:"easeOut",duration:.2},scale:{duration:.2,ease:[.175,.885,.4,1.1]}}}},M=n(4860),R=n(4577),j=n(4941),D=n(8931),N=n(658),L=n(8456),I=n(2947);function z(){return(z=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function B(e){void 0===e&&(e={});var{openDelay:t=0,closeDelay:n=0,closeOnClick:o=!0,closeOnMouseDown:a,onOpen:s,onClose:u,placement:c,id:l,isOpen:d,defaultIsOpen:f,arrowSize:h=10,arrowShadowColor:p,arrowPadding:v,modifiers:m,isDisabled:g,gutter:y,offset:b}=e,w=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,["openDelay","closeDelay","closeOnClick","closeOnMouseDown","onOpen","onClose","placement","id","isOpen","defaultIsOpen","arrowSize","arrowShadowColor","arrowPadding","modifiers","isDisabled","gutter","offset"]),{isOpen:x,onOpen:E,onClose:k}=(0,M.q)({isOpen:d,defaultIsOpen:f,onOpen:s,onClose:u}),{referenceRef:_,getPopperProps:T,getArrowInnerProps:O,getArrowProps:C}=(0,D.D)({enabled:x,placement:c,arrowPadding:v,modifiers:m,gutter:y,offset:b}),A=(0,R.Me)(l,"tooltip"),P=i.useRef(null),S=i.useRef(),B=i.useRef(),F=i.useCallback((()=>{g||(S.current=window.setTimeout(E,t))}),[g,E,t]),H=i.useCallback((()=>{S.current&&clearTimeout(S.current),B.current=window.setTimeout(k,n)}),[n,k]),V=i.useCallback((()=>{o&&H()}),[o,H]),U=i.useCallback((()=>{a&&H()}),[a,H]);(0,j.O)("keydown",(e=>{x&&"Escape"===e.key&&H()})),i.useEffect((()=>()=>{clearTimeout(S.current),clearTimeout(B.current)}),[]),(0,j.O)("mouseleave",H,P.current);var G=i.useCallback((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),z({},e,{ref:(0,I.l)(P,t,_),onMouseEnter:(0,N.v0)(e.onMouseEnter,F),onClick:(0,N.v0)(e.onClick,V),onMouseDown:(0,N.v0)(e.onMouseDown,U),onFocus:(0,N.v0)(e.onFocus,F),onBlur:(0,N.v0)(e.onBlur,H),"aria-describedby":x?A:void 0})}),[F,H,U,x,A,V,_]),q=i.useCallback((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),T(z({},e,{style:z({},e.style,{[r.Dq.arrowSize.var]:h?(0,L.px)(h):void 0,[r.Dq.arrowShadowColor.var]:p})}),t)}),[T,h,p]),K=i.useCallback((function(e,t){return void 0===e&&(e={}),void 0===t&&(t=null),z({ref:t},w,e,{id:A,role:"tooltip",style:z({},e.style,{position:"relative",transformOrigin:r.Dq.transformOrigin.varRef})})}),[w,A]);return{isOpen:x,show:F,hide:H,getTriggerProps:G,getTooltipProps:K,getTooltipPositionerProps:q,getArrowProps:C,getArrowInnerProps:O}}function F(){return(F=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var H=(0,x.m$)(A.E.div),V=(0,E.G)(((e,t)=>{var n=(0,k.m)("Tooltip",e),o=(0,_.Lr)(e),a=(0,T.Fg)(),{children:s,label:u,shouldWrapChildren:l,"aria-label":d,hasArrow:f,bg:h,portalProps:p}=o,v=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(o,["children","label","shouldWrapChildren","aria-label","hasArrow","bg","portalProps"]);h&&(n.bg=h,n[r.Dq.arrowBg.var]=(0,O.K1)(a,"colors",h));var m,g=B(v);if((0,c.HD)(s)||l)m=i.createElement(x.m$.span,F({tabIndex:0},g.getTriggerProps()),s);else{var y=i.Children.only(s);m=i.cloneElement(y,g.getTriggerProps(y.props,y.ref))}var b=!!d,E=g.getTooltipProps({},t),A=b?(0,O.CE)(E,["role","id"]):E,M=(0,O.ei)(E,["role","id"]);return u?i.createElement(i.Fragment,null,m,i.createElement(P.M,null,g.isOpen&&i.createElement(w,p,i.createElement(x.m$.div,F({},g.getTooltipPositionerProps(),{__css:{zIndex:n.zIndex,pointerEvents:"none"}}),i.createElement(H,F({variants:S},A,{initial:"exit",animate:"enter",exit:"exit",__css:n}),u,b&&i.createElement(C.TX,M,d),f&&i.createElement(x.m$.div,{"data-popper-arrow":!0,className:"chakra-tooltip__arrow-wrapper"},i.createElement(x.m$.div,{"data-popper-arrow-inner":!0,className:"chakra-tooltip__arrow",__css:{bg:n.bg}}))))))):i.createElement(i.Fragment,null,s)}));c.Ts&&(V.displayName="Tooltip")},7248:function(e,t,n){"use strict";n.d(t,{T:function(){return a}});var r=n(4461),i=n(658),o=n(7768);function a(e,t){void 0===t&&(t={});var{isActive:n=o.H9,nextTick:a,preventScroll:u=!0,selectTextIfInput:c=!0}=t;if(!e||n(e))return-1;function l(){if(e){if(function(){if(null==s){s=!1;try{document.createElement("div").focus({get preventScroll(){return s=!0,!0}})}catch(e){}}return s}())e.focus({preventScroll:u});else if(e.focus(),u)!function(e){for(var{element:t,scrollTop:n,scrollLeft:r}of e)t.scrollTop=n,t.scrollLeft=r}(function(e){var t=(0,r.lZ)(e),n=e.parentNode,i=[],o=t.scrollingElement||t.documentElement;for(;n instanceof HTMLElement&&n!==o;)(n.offsetHeight<n.scrollHeight||n.offsetWidth<n.scrollWidth)&&i.push({element:n,scrollTop:n.scrollTop,scrollLeft:n.scrollLeft}),n=n.parentNode;o instanceof HTMLElement&&i.push({element:o,scrollTop:o.scrollTop,scrollLeft:o.scrollLeft});return i}(e));(0,o.cK)(e)&&c&&e.select()}else(0,i.ZK)({condition:!0,message:"[chakra-ui]: can't call focus() on `null` or `undefined` element"})}return a?requestAnimationFrame(l):(l(),-1)}var s=null},7768:function(e,t,n){"use strict";n.d(t,{cK:function(){return o},H9:function(){return a},Wq:function(){return l}});var r=n(4461),i=e=>e.hasAttribute("tabindex");function o(e){return s(e)&&"input"===e.tagName.toLowerCase()&&"select"in e}function a(e){return(e instanceof HTMLElement?(0,r.lZ)(e):document).activeElement===e}function s(e){return e instanceof HTMLElement}function u(e){return!(!e.parentElement||!u(e.parentElement))||e.hidden}function c(e){if(!s(e)||u(e)||function(e){return!0===Boolean(e.getAttribute("disabled"))||!0===Boolean(e.getAttribute("aria-disabled"))}(e))return!1;var{localName:t}=e;if(["input","select","textarea","button"].indexOf(t)>=0)return!0;var n={a:()=>e.hasAttribute("href"),audio:()=>e.hasAttribute("controls"),video:()=>e.hasAttribute("controls")};return t in n?n[t]():!!function(e){var t=e.getAttribute("contenteditable");return"false"!==t&&null!=t}(e)||i(e)}function l(e){return!!e&&(s(e)&&c(e)&&!(e=>i(e)&&-1===e.tabIndex)(e))}},5415:function(e,t,n){"use strict";n.d(t,{NL:function(){return o},TX:function(){return a}});var r=n(5643),i=n(3808),o={border:"0px",clip:"rect(0px, 0px, 0px, 0px)",height:"1px",width:"1px",margin:"-1px",padding:"0px",overflow:"hidden",whiteSpace:"nowrap",position:"absolute"},a=(0,r.m$)("span",{baseStyle:o});i.Ts&&(a.displayName="VisuallyHidden");var s=(0,r.m$)("input",{baseStyle:o});i.Ts&&(s.displayName="VisuallyHiddenInput")},4309:function(e,t,n){"use strict";n.d(t,{iP:function(){return d}});var r=n(7294);var i=e=>{const t=r.useRef(e);return r.useEffect((()=>{t.current=e})),t};const o=(e,t=100,n=!1)=>{const o=i(e),a=r.useRef(),s=[t,n,o];function u(){a.current&&clearTimeout(a.current),a.current=void 0}function c(){a.current=void 0}return r.useEffect((()=>u),s),r.useCallback((function(){const e=arguments,{current:r}=a;if(void 0===r&&n)return a.current=setTimeout(c,t),o.current.apply(null,e);r&&clearTimeout(r),a.current=setTimeout((()=>{a.current=void 0,o.current.apply(null,e)}),t)}),s)};var a=r["undefined"!==typeof document&&void 0!==document.createElement?"useLayoutEffect":"useEffect"];var s=function(e,t,n,i){const o=r.useRef(n),s=r.useRef(i);a((()=>{o.current=n,s.current=i})),a((()=>{const n=e&&"current"in e?e.current:e;if(!n)return;let r=0;function i(...e){r||o.current.apply(this,e)}n.addEventListener(t,i);const a=s.current;return()=>{r=1,n.removeEventListener(t,i),a&&a()}}),[e,t])};const u={},c="undefined"===typeof window?null:window,l=()=>[document.documentElement.clientWidth,document.documentElement.clientHeight],d=(e=u)=>{const{wait:t,leading:n,initialWidth:i=0,initialHeight:a=0}=e,[d,f]=((e,t,n)=>{const i=r.useState(e);return[i[0],o(i[1],t,n)]})("undefined"===typeof document?[i,a]:l,t,n),h=()=>f(l);return s(c,"resize",h),s(c,"orientationchange",h),d}},2539:function(e,t,n){"use strict";n.r(t);t.default=function(e){return e instanceof Function?e:"string"===typeof e?function(t){return t[e]}:function(t){return e}}},401:function(e,t,n){n(2406),n(9874),n(9236),n(2578),n(6699)},203:function(e){e.exports=THREE.ColladaLoader=function(e){this.manager=void 0!==e?e:THREE.DefaultLoadingManager},THREE.ColladaLoader.prototype={constructor:THREE.ColladaLoader,crossOrigin:"anonymous",load:function(e,t,n,r){var i=this,o=void 0===i.path?THREE.LoaderUtils.extractUrlBase(e):i.path,a=new THREE.FileLoader(i.manager);a.setPath(i.path),a.load(e,(function(e){t(i.parse(e,o))}),n,r)},setPath:function(e){return this.path=e,this},setResourcePath:function(e){return this.resourcePath=e,this},options:{set convertUpAxis(e){console.warn("THREE.ColladaLoader: options.convertUpAxis() has been removed. Up axis is converted automatically.")}},setCrossOrigin:function(e){return this.crossOrigin=e,this},parse:function(e,t){function n(e,t){for(var n=[],r=e.childNodes,i=0,o=r.length;i<o;i++){var a=r[i];a.nodeName===t&&n.push(a)}return n}function r(e){if(0===e.length)return[];for(var t=e.trim().split(/\s+/),n=new Array(t.length),r=0,i=t.length;r<i;r++)n[r]=t[r];return n}function i(e){if(0===e.length)return[];for(var t=e.trim().split(/\s+/),n=new Array(t.length),r=0,i=t.length;r<i;r++)n[r]=parseFloat(t[r]);return n}function o(e){if(0===e.length)return[];for(var t=e.trim().split(/\s+/),n=new Array(t.length),r=0,i=t.length;r<i;r++)n[r]=parseInt(t[r]);return n}function a(e){return e.substring(1)}function s(e){return 0===Object.keys(e).length}function u(e){return void 0!==e&&!0===e.hasAttribute("meter")?parseFloat(e.getAttribute("meter")):1}function c(e){return void 0!==e?e.textContent:"Y_UP"}function l(e,t,r,i){var o=n(e,t)[0];if(void 0!==o)for(var a=n(o,r),s=0;s<a.length;s++)i(a[s])}function d(e,t){for(var n in e){e[n].build=t(e[n])}}function f(e,t){return void 0!==e.build||(e.build=t(e)),e.build}function h(e){for(var t={inputs:{}},n=0,r=e.childNodes.length;n<r;n++){var i=e.childNodes[n];if(1===i.nodeType)switch(i.nodeName){case"input":var o=a(i.getAttribute("source")),s=i.getAttribute("semantic");t.inputs[s]=o}}return t}function p(e){var t={},n=e.getAttribute("target").split("/"),r=n.shift(),i=n.shift(),o=-1!==i.indexOf("("),s=-1!==i.indexOf(".");if(s)n=i.split("."),i=n.shift(),t.member=n.shift();else if(o){var u=i.split("(");i=u.shift();for(var c=0;c<u.length;c++)u[c]=parseInt(u[c].replace(/\)/,""));t.indices=u}return t.id=r,t.sid=i,t.arraySyntax=o,t.memberSyntax=s,t.sampler=a(e.getAttribute("source")),t}function v(e){var t=[],n=e.channels,r=e.samplers,i=e.sources;for(var o in n)if(n.hasOwnProperty(o)){var a=n[o],s=r[a.sampler],u=s.inputs.INPUT,c=s.inputs.OUTPUT;x(g(a,i[u],i[c]),t)}return t}function m(e){return f(Ke.animations[e],v)}function g(e,t,n){var r,i,o,a,s,u,c=Ke.nodes[e.id],l=Ne(c.id),d=c.transforms[e.sid],f=c.matrix.clone().transpose(),h={};switch(d){case"matrix":for(o=0,a=t.array.length;o<a;o++)if(r=t.array[o],i=o*n.stride,void 0===h[r]&&(h[r]={}),!0===e.arraySyntax){var p=n.array[i],v=e.indices[0]+4*e.indices[1];h[r][v]=p}else for(s=0,u=n.stride;s<u;s++)h[r][s]=n.array[i+s];break;case"translate":case"rotate":case"scale":console.warn('THREE.ColladaLoader: Animation transform type "%s" not yet implemented.',d)}var m=function(e,t){var n=[];for(var r in e)n.push({time:parseFloat(r),value:e[r]});n.sort(o);for(var i=0;i<16;i++)E(n,i,t.elements[i]);return n;function o(e,t){return e.time-t.time}}(h,f);return{name:l.uuid,keyframes:m}}var y=new THREE.Vector3,b=new THREE.Vector3,w=new THREE.Quaternion;function x(e,t){for(var n=e.keyframes,r=e.name,i=[],o=[],a=[],s=[],u=0,c=n.length;u<c;u++){var l=n[u],d=l.time,f=l.value;_e.fromArray(f).transpose(),_e.decompose(y,w,b),i.push(d),o.push(y.x,y.y,y.z),a.push(w.x,w.y,w.z,w.w),s.push(b.x,b.y,b.z)}return o.length>0&&t.push(new THREE.VectorKeyframeTrack(r+".position",i,o)),a.length>0&&t.push(new THREE.QuaternionKeyframeTrack(r+".quaternion",i,a)),s.length>0&&t.push(new THREE.VectorKeyframeTrack(r+".scale",i,s)),t}function E(e,t,n){var r,i,o,a=!0;for(i=0,o=e.length;i<o;i++)void 0===(r=e[i]).value[t]?r.value[t]=null:a=!1;if(!0===a)for(i=0,o=e.length;i<o;i++)(r=e[i]).value[t]=n;else!function(e,t){for(var n,r,i=0,o=e.length;i<o;i++){var a=e[i];if(null===a.value[t]){if(n=k(e,i,t),r=_(e,i,t),null===n){a.value[t]=r.value[t];continue}if(null===r){a.value[t]=n.value[t];continue}T(a,n,r,t)}}}(e,t)}function k(e,t,n){for(;t>=0;){var r=e[t];if(null!==r.value[n])return r;t--}return null}function _(e,t,n){for(;t<e.length;){var r=e[t];if(null!==r.value[n])return r;t++}return null}function T(e,t,n,r){n.time-t.time!==0?e.value[r]=(e.time-t.time)*(n.value[r]-t.value[r])/(n.time-t.time)+t.value[r]:e.value[r]=t.value[r]}function O(e){for(var t=[],n=e.name,r=e.end-e.start||-1,i=e.animations,o=0,a=i.length;o<a;o++)for(var s=m(i[o]),u=0,c=s.length;u<c;u++)t.push(s[u]);return new THREE.AnimationClip(n,r,t)}function C(e){return f(Ke.clips[e],O)}function A(e){for(var t={sources:{}},n=0,r=e.childNodes.length;n<r;n++){var o=e.childNodes[n];if(1===o.nodeType)switch(o.nodeName){case"bind_shape_matrix":t.bindShapeMatrix=i(o.textContent);break;case"source":var a=o.getAttribute("id");t.sources[a]=ie(o);break;case"joints":t.joints=P(o);break;case"vertex_weights":t.vertexWeights=S(o)}}return t}function P(e){for(var t={inputs:{}},n=0,r=e.childNodes.length;n<r;n++){var i=e.childNodes[n];if(1===i.nodeType)switch(i.nodeName){case"input":var o=i.getAttribute("semantic"),s=a(i.getAttribute("source"));t.inputs[o]=s}}return t}function S(e){for(var t={inputs:{}},n=0,r=e.childNodes.length;n<r;n++){var i=e.childNodes[n];if(1===i.nodeType)switch(i.nodeName){case"input":var s=i.getAttribute("semantic"),u=a(i.getAttribute("source")),c=parseInt(i.getAttribute("offset"));t.inputs[s]={id:u,offset:c};break;case"vcount":t.vcount=o(i.textContent);break;case"v":t.v=o(i.textContent)}}return t}function M(e){var t={id:e.id},n=Ke.geometries[t.id];return void 0!==e.skin&&(t.skin=function(e){var t,n,r,i=4,o={joints:[],indices:{array:[],stride:i},weights:{array:[],stride:i}},a=e.sources,s=e.vertexWeights,u=s.vcount,c=s.v,l=s.inputs.JOINT.offset,d=s.inputs.WEIGHT.offset,f=e.sources[e.joints.inputs.JOINT],h=e.sources[e.joints.inputs.INV_BIND_MATRIX],p=a[s.inputs.WEIGHT.id].array,v=0;for(t=0,r=u.length;t<r;t++){var m=u[t],g=[];for(n=0;n<m;n++){var y=c[v+l],b=p[c[v+d]];g.push({index:y,weight:b}),v+=2}for(g.sort(k),n=0;n<i;n++){var w=g[n];void 0!==w?(o.indices.array.push(w.index),o.weights.array.push(w.weight)):(o.indices.array.push(0),o.weights.array.push(0))}}e.bindShapeMatrix?o.bindMatrix=(new THREE.Matrix4).fromArray(e.bindShapeMatrix).transpose():o.bindMatrix=(new THREE.Matrix4).identity();for(t=0,r=f.array.length;t<r;t++){var x=f.array[t],E=(new THREE.Matrix4).fromArray(h.array,t*h.stride).transpose();o.joints.push({name:x,boneInverse:E})}return o;function k(e,t){return t.weight-e.weight}}(e.skin),n.sources.skinIndices=t.skin.indices,n.sources.skinWeights=t.skin.weights),t}function R(e){return void 0!==e.build?e.build:e.init_from}function j(e){var t=Ke.images[e];return void 0!==t?f(t,R):(console.warn("THREE.ColladaLoader: Couldn't find image with ID:",e),null)}function D(e){for(var t={surfaces:{},samplers:{}},n=0,r=e.childNodes.length;n<r;n++){var i=e.childNodes[n];if(1===i.nodeType)switch(i.nodeName){case"newparam":N(i,t);break;case"technique":t.technique=z(i);break;case"extra":t.extra=G(i)}}return t}function N(e,t){for(var n=e.getAttribute("sid"),r=0,i=e.childNodes.length;r<i;r++){var o=e.childNodes[r];if(1===o.nodeType)switch(o.nodeName){case"surface":t.surfaces[n]=L(o);break;case"sampler2D":t.samplers[n]=I(o)}}}function L(e){for(var t={},n=0,r=e.childNodes.length;n<r;n++){var i=e.childNodes[n];if(1===i.nodeType)switch(i.nodeName){case"init_from":t.init_from=i.textContent}}return t}function I(e){for(var t={},n=0,r=e.childNodes.length;n<r;n++){var i=e.childNodes[n];if(1===i.nodeType)switch(i.nodeName){case"source":t.source=i.textContent}}return t}function z(e){for(var t={},n=0,r=e.childNodes.length;n<r;n++){var i=e.childNodes[n];if(1===i.nodeType)switch(i.nodeName){case"constant":case"lambert":case"blinn":case"phong":t.type=i.nodeName,t.parameters=B(i)}}return t}function B(e){for(var t={},n=0,r=e.childNodes.length;n<r;n++){var i=e.childNodes[n];if(1===i.nodeType)switch(i.nodeName){case"emission":case"diffuse":case"specular":case"bump":case"ambient":case"shininess":case"transparency":t[i.nodeName]=F(i);break;case"transparent":t[i.nodeName]={opaque:i.getAttribute("opaque"),data:F(i)}}}return t}function F(e){for(var t={},n=0,r=e.childNodes.length;n<r;n++){var o=e.childNodes[n];if(1===o.nodeType)switch(o.nodeName){case"color":t[o.nodeName]=i(o.textContent);break;case"float":t[o.nodeName]=parseFloat(o.textContent);break;case"texture":t[o.nodeName]={id:o.getAttribute("texture"),extra:H(o)}}}return t}function H(e){for(var t={technique:{}},n=0,r=e.childNodes.length;n<r;n++){var i=e.childNodes[n];if(1===i.nodeType)switch(i.nodeName){case"extra":V(i,t)}}return t}function V(e,t){for(var n=0,r=e.childNodes.length;n<r;n++){var i=e.childNodes[n];if(1===i.nodeType)switch(i.nodeName){case"technique":U(i,t)}}}function U(e,t){for(var n=0,r=e.childNodes.length;n<r;n++){var i=e.childNodes[n];if(1===i.nodeType)switch(i.nodeName){case"repeatU":case"repeatV":case"offsetU":case"offsetV":t.technique[i.nodeName]=parseFloat(i.textContent);break;case"wrapU":case"wrapV":"TRUE"===i.textContent.toUpperCase()?t.technique[i.nodeName]=1:"FALSE"===i.textContent.toUpperCase()?t.technique[i.nodeName]=0:t.technique[i.nodeName]=parseInt(i.textContent)}}}function G(e){for(var t={},n=0,r=e.childNodes.length;n<r;n++){var i=e.childNodes[n];if(1===i.nodeType)switch(i.nodeName){case"technique":t.technique=q(i)}}return t}function q(e){for(var t={},n=0,r=e.childNodes.length;n<r;n++){var i=e.childNodes[n];if(1===i.nodeType)switch(i.nodeName){case"double_sided":t[i.nodeName]=parseInt(i.textContent)}}return t}function K(e){return e}function W(e){var t,n,r=(t=e.url,f(Ke.effects[t],K)),i=r.profile.technique,o=r.profile.extra;switch(i.type){case"phong":case"blinn":n=new THREE.MeshPhongMaterial;break;case"lambert":n=new THREE.MeshLambertMaterial;break;default:n=new THREE.MeshBasicMaterial}function a(e){var t=r.profile.samplers[e.id],n=null;void 0!==t?n=j(r.profile.surfaces[t.source].init_from):(console.warn("THREE.ColladaLoader: Undefined sampler. Access image directly (see #12530)."),n=j(e.id));if(null!==n){var i=function(e){var t,n=e.slice(2+(e.lastIndexOf(".")-1>>>0));switch(n=n.toLowerCase()){case"tga":t=Fe;break;default:t=Ve}return t}(n);if(void 0!==i){var o=i.load(n),a=e.extra;if(void 0!==a&&void 0!==a.technique&&!1===s(a.technique)){var u=a.technique;o.wrapS=u.wrapU?THREE.RepeatWrapping:THREE.ClampToEdgeWrapping,o.wrapT=u.wrapV?THREE.RepeatWrapping:THREE.ClampToEdgeWrapping,o.offset.set(u.offsetU||0,u.offsetV||0),o.repeat.set(u.repeatU||1,u.repeatV||1)}else o.wrapS=THREE.RepeatWrapping,o.wrapT=THREE.RepeatWrapping;return o}return console.warn("THREE.ColladaLoader: Loader for texture %s not found.",n),null}return console.warn("THREE.ColladaLoader: Couldn't create texture with ID:",e.id),null}n.name=e.name;var u=i.parameters;for(var c in u){var l=u[c];switch(c){case"diffuse":l.color&&n.color.fromArray(l.color),l.texture&&(n.map=a(l.texture));break;case"specular":l.color&&n.specular&&n.specular.fromArray(l.color),l.texture&&(n.specularMap=a(l.texture));break;case"bump":l.texture&&(n.normalMap=a(l.texture));break;case"ambient":l.texture&&(n.lightMap=a(l.texture));break;case"shininess":l.float&&n.shininess&&(n.shininess=l.float);break;case"emission":l.color&&n.emissive&&n.emissive.fromArray(l.color),l.texture&&(n.emissiveMap=a(l.texture))}}var d=u.transparent,h=u.transparency;if(void 0===h&&d&&(h={float:1}),void 0===d&&h&&(d={opaque:"A_ONE",data:{color:[1,1,1,1]}}),d&&h)if(d.data.texture)n.transparent=!0;else{var p=d.data.color;switch(d.opaque){case"A_ONE":n.opacity=p[3]*h.float;break;case"RGB_ZERO":n.opacity=1-p[0]*h.float;break;case"A_ZERO":n.opacity=1-p[3]*h.float;break;case"RGB_ONE":n.opacity=p[0]*h.float;break;default:console.warn('THREE.ColladaLoader: Invalid opaque type "%s" of transparent tag.',d.opaque)}n.opacity<1&&(n.transparent=!0)}return void 0!==o&&void 0!==o.technique&&1===o.technique.double_sided&&(n.side=THREE.DoubleSide),n}function Z(e){return f(Ke.materials[e],W)}function $(e){for(var t=0;t<e.childNodes.length;t++){var n=e.childNodes[t];switch(n.nodeName){case"technique_common":return X(n)}}return{}}function X(e){for(var t={},n=0;n<e.childNodes.length;n++){var r=e.childNodes[n];switch(r.nodeName){case"perspective":case"orthographic":t.technique=r.nodeName,t.parameters=Y(r)}}return t}function Y(e){for(var t={},n=0;n<e.childNodes.length;n++){var r=e.childNodes[n];switch(r.nodeName){case"xfov":case"yfov":case"xmag":case"ymag":case"znear":case"zfar":case"aspect_ratio":t[r.nodeName]=parseFloat(r.textContent)}}return t}function Q(e){var t;switch(e.optics.technique){case"perspective":t=new THREE.PerspectiveCamera(e.optics.parameters.yfov,e.optics.parameters.aspect_ratio,e.optics.parameters.znear,e.optics.parameters.zfar);break;case"orthographic":var n=e.optics.parameters.ymag,r=e.optics.parameters.xmag,i=e.optics.parameters.aspect_ratio;r=void 0===r?n*i:r,n=void 0===n?r/i:n,r*=.5,n*=.5,t=new THREE.OrthographicCamera(-r,r,n,-n,e.optics.parameters.znear,e.optics.parameters.zfar);break;default:t=new THREE.PerspectiveCamera}return t.name=e.name,t}function J(e){var t=Ke.cameras[e];return void 0!==t?f(t,Q):(console.warn("THREE.ColladaLoader: Couldn't find camera with ID:",e),null)}function ee(e){for(var t={},n=0,r=e.childNodes.length;n<r;n++){var i=e.childNodes[n];if(1===i.nodeType)switch(i.nodeName){case"directional":case"point":case"spot":case"ambient":t.technique=i.nodeName,t.parameters=te(i)}}return t}function te(e){for(var t={},n=0,r=e.childNodes.length;n<r;n++){var o=e.childNodes[n];if(1===o.nodeType)switch(o.nodeName){case"color":var a=i(o.textContent);t.color=(new THREE.Color).fromArray(a);break;case"falloff_angle":t.falloffAngle=parseFloat(o.textContent);break;case"quadratic_attenuation":var s=parseFloat(o.textContent);t.distance=s?Math.sqrt(1/s):0}}return t}function ne(e){var t;switch(e.technique){case"directional":t=new THREE.DirectionalLight;break;case"point":t=new THREE.PointLight;break;case"spot":t=new THREE.SpotLight;break;case"ambient":t=new THREE.AmbientLight}return e.parameters.color&&t.color.copy(e.parameters.color),e.parameters.distance&&(t.distance=e.parameters.distance),t}function re(e){var t=Ke.lights[e];return void 0!==t?f(t,ne):(console.warn("THREE.ColladaLoader: Couldn't find light with ID:",e),null)}function ie(e){for(var t={array:[],stride:3},o=0;o<e.childNodes.length;o++){var a=e.childNodes[o];if(1===a.nodeType)switch(a.nodeName){case"float_array":t.array=i(a.textContent);break;case"Name_array":t.array=r(a.textContent);break;case"technique_common":var s=n(a,"accessor")[0];void 0!==s&&(t.stride=parseInt(s.getAttribute("stride")))}}return t}function oe(e){for(var t={},n=0;n<e.childNodes.length;n++){var r=e.childNodes[n];1===r.nodeType&&(t[r.getAttribute("semantic")]=a(r.getAttribute("source")))}return t}function ae(e){for(var t={type:e.nodeName,material:e.getAttribute("material"),count:parseInt(e.getAttribute("count")),inputs:{},stride:0,hasUV:!1},n=0,r=e.childNodes.length;n<r;n++){var i=e.childNodes[n];if(1===i.nodeType)switch(i.nodeName){case"input":var s=a(i.getAttribute("source")),u=i.getAttribute("semantic"),c=parseInt(i.getAttribute("offset")),l=parseInt(i.getAttribute("set")),d=l>0?u+l:u;t.inputs[d]={id:s,offset:c},t.stride=Math.max(t.stride,c+1),"TEXCOORD"===u&&(t.hasUV=!0);break;case"vcount":t.vcount=o(i.textContent);break;case"p":t.p=o(i.textContent)}}return t}function se(e){for(var t=0,n=0,r=e.length;n<r;n++){!0===e[n].hasUV&&t++}t>0&&t<e.length&&(e.uvsNeedsFix=!0)}function ue(e){var t={},n=e.sources,r=e.vertices,i=e.primitives;if(0===i.length)return{};var o=function(e){for(var t={},n=0;n<e.length;n++){var r=e[n];void 0===t[r.type]&&(t[r.type]=[]),t[r.type].push(r)}return t}(i);for(var a in o){var s=o[a];se(s),t[a]=ce(s,n,r)}return t}function ce(e,t,n){for(var r={},i={array:[],stride:0},o={array:[],stride:0},a={array:[],stride:0},s={array:[],stride:0},u={array:[],stride:0},c=[],l=4,d=[],f=4,h=new THREE.BufferGeometry,p=[],v=0,m=0;m<e.length;m++){var g=e[m],y=g.inputs,b=0;switch(g.type){case"lines":case"linestrips":b=2*g.count;break;case"triangles":b=3*g.count;break;case"polylist":for(var w=0;w<g.count;w++){var x=g.vcount[w];switch(x){case 3:b+=3;break;case 4:b+=6;break;default:b+=3*(x-2)}}break;default:console.warn("THREE.ColladaLoader: Unknow primitive type:",g.type)}for(var E in h.addGroup(v,b,m),v+=b,g.material&&p.push(g.material),y){var k=y[E];switch(E){case"VERTEX":for(var _ in n){var T=n[_];switch(_){case"POSITION":var O=i.array.length;if(le(g,t[T],k.offset,i.array),i.stride=t[T].stride,t.skinWeights&&t.skinIndices&&(le(g,t.skinIndices,k.offset,c),le(g,t.skinWeights,k.offset,d)),!1===g.hasUV&&!0===e.uvsNeedsFix){b=(i.array.length-O)/i.stride;for(var C=0;C<b;C++)a.array.push(0,0)}break;case"NORMAL":le(g,t[T],k.offset,o.array),o.stride=t[T].stride;break;case"COLOR":le(g,t[T],k.offset,u.array),u.stride=t[T].stride;break;case"TEXCOORD":le(g,t[T],k.offset,a.array),a.stride=t[T].stride;break;case"TEXCOORD1":le(g,t[T],k.offset,s.array),a.stride=t[T].stride;break;default:console.warn('THREE.ColladaLoader: Semantic "%s" not handled in geometry build process.',_)}}break;case"NORMAL":le(g,t[k.id],k.offset,o.array),o.stride=t[k.id].stride;break;case"COLOR":le(g,t[k.id],k.offset,u.array),u.stride=t[k.id].stride;break;case"TEXCOORD":le(g,t[k.id],k.offset,a.array),a.stride=t[k.id].stride;break;case"TEXCOORD1":le(g,t[k.id],k.offset,s.array),s.stride=t[k.id].stride}}}return i.array.length>0&&h.addAttribute("position",new THREE.Float32BufferAttribute(i.array,i.stride)),o.array.length>0&&h.addAttribute("normal",new THREE.Float32BufferAttribute(o.array,o.stride)),u.array.length>0&&h.addAttribute("color",new THREE.Float32BufferAttribute(u.array,u.stride)),a.array.length>0&&h.addAttribute("uv",new THREE.Float32BufferAttribute(a.array,a.stride)),s.array.length>0&&h.addAttribute("uv2",new THREE.Float32BufferAttribute(s.array,s.stride)),c.length>0&&h.addAttribute("skinIndex",new THREE.Float32BufferAttribute(c,l)),d.length>0&&h.addAttribute("skinWeight",new THREE.Float32BufferAttribute(d,f)),r.data=h,r.type=e[0].type,r.materialKeys=p,r}function le(e,t,n,r){var i=e.p,o=e.stride,a=e.vcount;function s(e){for(var t=i[e+n]*c,o=t+c;t<o;t++)r.push(u[t])}var u=t.array,c=t.stride;if(void 0!==e.vcount)for(var l=0,d=0,f=a.length;d<f;d++){var h=a[d];if(4===h){var p=l+1*o,v=l+2*o,m=l+3*o;s(l+0*o),s(p),s(m),s(p),s(v),s(m)}else if(3===h){p=l+1*o,v=l+2*o;s(l+0*o),s(p),s(v)}else if(h>4)for(var g=1,y=h-2;g<=y;g++){p=l+o*g,v=l+o*(g+1);s(l+0*o),s(p),s(v)}l+=o*h}else for(d=0,f=i.length;d<f;d+=o)s(d)}function de(e){return f(Ke.geometries[e],ue)}function fe(e){return void 0!==e.build?e.build:e}function he(e,t){for(var n=0;n<e.childNodes.length;n++){var r=e.childNodes[n];if(1===r.nodeType)switch(r.nodeName){case"joint":t.joints[r.getAttribute("sid")]=pe(r);break;case"link":t.links.push(me(r))}}}function pe(e){for(var t,n=0;n<e.childNodes.length;n++){var r=e.childNodes[n];if(1===r.nodeType)switch(r.nodeName){case"prismatic":case"revolute":t=ve(r)}}return t}function ve(e,t){t={sid:e.getAttribute("sid"),name:e.getAttribute("name")||"",axis:new THREE.Vector3,limits:{min:0,max:0},type:e.nodeName,static:!1,zeroPosition:0,middlePosition:0};for(var n=0;n<e.childNodes.length;n++){var r=e.childNodes[n];if(1===r.nodeType)switch(r.nodeName){case"axis":var o=i(r.textContent);t.axis.fromArray(o);break;case"limits":var a=r.getElementsByTagName("max")[0],s=r.getElementsByTagName("min")[0];t.limits.max=parseFloat(a.textContent),t.limits.min=parseFloat(s.textContent)}}return t.limits.min>=t.limits.max&&(t.static=!0),t.middlePosition=(t.limits.min+t.limits.max)/2,t}function me(e){for(var t={sid:e.getAttribute("sid"),name:e.getAttribute("name")||"",attachments:[],transforms:[]},n=0;n<e.childNodes.length;n++){var r=e.childNodes[n];if(1===r.nodeType)switch(r.nodeName){case"attachment_full":t.attachments.push(ge(r));break;case"matrix":case"translate":case"rotate":t.transforms.push(ye(r))}}return t}function ge(e){for(var t={joint:e.getAttribute("joint").split("/").pop(),transforms:[],links:[]},n=0;n<e.childNodes.length;n++){var r=e.childNodes[n];if(1===r.nodeType)switch(r.nodeName){case"link":t.links.push(me(r));break;case"matrix":case"translate":case"rotate":t.transforms.push(ye(r))}}return t}function ye(e){var t={type:e.nodeName},n=i(e.textContent);switch(t.type){case"matrix":t.obj=new THREE.Matrix4,t.obj.fromArray(n).transpose();break;case"translate":t.obj=new THREE.Vector3,t.obj.fromArray(n);break;case"rotate":t.obj=new THREE.Vector3,t.obj.fromArray(n),t.angle=THREE.Math.degToRad(n[3])}return t}function be(e,t){for(var n=0;n<e.childNodes.length;n++){var r=e.childNodes[n];if(1===r.nodeType)switch(r.nodeName){case"technique_common":we(r,t)}}}function we(e,t){for(var n=0;n<e.childNodes.length;n++){var r=e.childNodes[n];if(1===r.nodeType)switch(r.nodeName){case"inertia":t.inertia=i(r.textContent);break;case"mass":t.mass=i(r.textContent)[0]}}}function xe(e){for(var t={target:e.getAttribute("target").split("/").pop()},n=0;n<e.childNodes.length;n++){var r=e.childNodes[n];if(1===r.nodeType)switch(r.nodeName){case"axis":var i=r.getElementsByTagName("param")[0];t.axis=i.textContent;var o=t.axis.split("inst_").pop().split("axis")[0];t.jointIndex=o.substr(0,o.length-1)}}return t}function Ee(e){return void 0!==e.build?e.build:e}function ke(e){for(var t=[],n=ze.querySelector('[id="'+e.id+'"]'),r=0;r<n.childNodes.length;r++){var o=n.childNodes[r];if(1===o.nodeType)switch(o.nodeName){case"matrix":var a=i(o.textContent),s=(new THREE.Matrix4).fromArray(a).transpose();t.push({sid:o.getAttribute("sid"),type:o.nodeName,obj:s});break;case"translate":case"scale":a=i(o.textContent);var u=(new THREE.Vector3).fromArray(a);t.push({sid:o.getAttribute("sid"),type:o.nodeName,obj:u});break;case"rotate":a=i(o.textContent),u=(new THREE.Vector3).fromArray(a);var c=THREE.Math.degToRad(a[3]);t.push({sid:o.getAttribute("sid"),type:o.nodeName,obj:u,angle:c})}}return t}var _e=new THREE.Matrix4,Te=new THREE.Vector3;function Oe(e){for(var t={name:e.getAttribute("name")||"",type:e.getAttribute("type"),id:e.getAttribute("id"),sid:e.getAttribute("sid"),matrix:new THREE.Matrix4,nodes:[],instanceCameras:[],instanceControllers:[],instanceLights:[],instanceGeometries:[],instanceNodes:[],transforms:{}},n=0;n<e.childNodes.length;n++){var r=e.childNodes[n];if(1===r.nodeType)switch(r.nodeName){case"node":t.nodes.push(r.getAttribute("id")),Oe(r);break;case"instance_camera":t.instanceCameras.push(a(r.getAttribute("url")));break;case"instance_controller":t.instanceControllers.push(Ce(r));break;case"instance_light":t.instanceLights.push(a(r.getAttribute("url")));break;case"instance_geometry":t.instanceGeometries.push(Ce(r));break;case"instance_node":t.instanceNodes.push(a(r.getAttribute("url")));break;case"matrix":var o=i(r.textContent);t.matrix.multiply(_e.fromArray(o).transpose()),t.transforms[r.getAttribute("sid")]=r.nodeName;break;case"translate":o=i(r.textContent);Te.fromArray(o),t.matrix.multiply(_e.makeTranslation(Te.x,Te.y,Te.z)),t.transforms[r.getAttribute("sid")]=r.nodeName;break;case"rotate":o=i(r.textContent);var s=THREE.Math.degToRad(o[3]);t.matrix.multiply(_e.makeRotationAxis(Te.fromArray(o),s)),t.transforms[r.getAttribute("sid")]=r.nodeName;break;case"scale":o=i(r.textContent);t.matrix.scale(Te.fromArray(o)),t.transforms[r.getAttribute("sid")]=r.nodeName;break;case"extra":break;default:console.log(r)}}return De(t.id)?console.warn("THREE.ColladaLoader: There is already a node with ID %s. Exclude current node from further processing.",t.id):Ke.nodes[t.id]=t,t}function Ce(e){for(var t={id:a(e.getAttribute("url")),materials:{},skeletons:[]},n=0;n<e.childNodes.length;n++){var r=e.childNodes[n];switch(r.nodeName){case"bind_material":for(var i=r.getElementsByTagName("instance_material"),o=0;o<i.length;o++){var s=i[o],u=s.getAttribute("symbol"),c=s.getAttribute("target");t.materials[u]=a(c)}break;case"skeleton":t.skeletons.push(a(r.textContent))}}return t}function Ae(e,t){var n,r,i,o=[],a=[];for(n=0;n<e.length;n++){var s=e[n];if(De(s))Pe(Ne(s),t,o);else if(i=s,void 0!==Ke.visualScenes[i])for(var u=Ke.visualScenes[s].children,c=0;c<u.length;c++){var l=u[c];if("JOINT"===l.type)Pe(Ne(l.id),t,o)}else console.error("THREE.ColladaLoader: Unable to find root bone of skeleton with ID:",s)}for(n=0;n<t.length;n++)for(c=0;c<o.length;c++)if((r=o[c]).bone.name===t[n].name){a[n]=r,r.processed=!0;break}for(n=0;n<o.length;n++)!1===(r=o[n]).processed&&(a.push(r),r.processed=!0);var d=[],f=[];for(n=0;n<a.length;n++)r=a[n],d.push(r.bone),f.push(r.boneInverse);return new THREE.Skeleton(d,f)}function Pe(e,t,n){e.traverse((function(e){if(!0===e.isBone){for(var r,i=0;i<t.length;i++){var o=t[i];if(o.name===e.name){r=o.boneInverse;break}}void 0===r&&(r=new THREE.Matrix4),n.push({bone:e,boneInverse:r,processed:!1})}}))}function Se(e){for(var t,n=[],r=e.matrix,i=e.nodes,o=e.type,a=e.instanceCameras,s=e.instanceControllers,u=e.instanceLights,c=e.instanceGeometries,l=e.instanceNodes,d=0,h=i.length;d<h;d++)n.push(Ne(i[d]));for(d=0,h=a.length;d<h;d++){var p=J(a[d]);null!==p&&n.push(p.clone())}for(d=0,h=s.length;d<h;d++)for(var v=s[d],m=(t=v.id,f(Ke.controllers[t],M)),g=je(de(m.id),v.materials),y=Ae(v.skeletons,m.skin.joints),b=0,w=g.length;b<w;b++){var x;(x=g[b]).isSkinnedMesh&&(x.bind(y,m.skin.bindMatrix),x.normalizeSkinWeights()),n.push(x)}for(d=0,h=u.length;d<h;d++){var E=re(u[d]);null!==E&&n.push(E.clone())}for(d=0,h=c.length;d<h;d++)for(b=0,w=(g=je(de((v=c[d]).id),v.materials)).length;b<w;b++)n.push(g[b]);for(d=0,h=l.length;d<h;d++)n.push(Ne(l[d]).clone());if(0===i.length&&1===n.length)x=n[0];else{x="JOINT"===o?new THREE.Bone:new THREE.Group;for(d=0;d<n.length;d++)x.add(n[d])}return""===x.name&&(x.name="JOINT"===o?e.sid:e.name),x.matrix.copy(r),x.matrix.decompose(x.position,x.quaternion,x.scale),x}var Me=new THREE.MeshBasicMaterial({color:16711935});function Re(e,t){for(var n=[],r=0,i=e.length;r<i;r++){var o=t[e[r]];void 0===o?(console.warn("THREE.ColladaLoader: Material with key %s not found. Apply fallback material.",e[r]),n.push(Me)):n.push(Z(o))}return n}function je(e,t){var n=[];for(var r in e){var i=e[r],o=Re(i.materialKeys,t);0===o.length&&("lines"===r||"linestrips"===r?o.push(new THREE.LineBasicMaterial):o.push(new THREE.MeshPhongMaterial));var a=void 0!==i.data.attributes.skinIndex;if(a)for(var s=0,u=o.length;s<u;s++)o[s].skinning=!0;var c,l=1===o.length?o[0]:o;switch(r){case"lines":c=new THREE.LineSegments(i.data,l);break;case"linestrips":c=new THREE.Line(i.data,l);break;case"triangles":case"polylist":c=a?new THREE.SkinnedMesh(i.data,l):new THREE.Mesh(i.data,l)}n.push(c)}return n}function De(e){return void 0!==Ke.nodes[e]}function Ne(e){return f(Ke.nodes[e],Se)}function Le(e){var t=new THREE.Group;t.name=e.name;for(var n=e.children,r=0;r<n.length;r++){var i=n[r];t.add(Ne(i.id))}return t}function Ie(e){return f(Ke.visualScenes[e],Le)}if(0===e.length)return{scene:new THREE.Scene};var ze=n((new DOMParser).parseFromString(e,"application/xml"),"COLLADA")[0],Be=ze.getAttribute("version");console.log("THREE.ColladaLoader: File version",Be);var Fe,He=function(e){return{unit:u(n(e,"unit")[0]),upAxis:c(n(e,"up_axis")[0])}}(n(ze,"asset")[0]),Ve=new THREE.TextureLoader(this.manager);Ve.setPath(this.resourcePath||t).setCrossOrigin(this.crossOrigin),THREE.TGALoader&&(Fe=new THREE.TGALoader(this.manager)).setPath(this.resourcePath||t);var Ue=[],Ge={},qe=0,Ke={animations:{},clips:{},controllers:{},images:{},effects:{},materials:{},cameras:{},lights:{},geometries:{},nodes:{},visualScenes:{},kinematicsModels:{},physicsModels:{},kinematicsScenes:{}};l(ze,"library_animations","animation",(function(e){for(var t={sources:{},samplers:{},channels:{}},n=0,r=e.childNodes.length;n<r;n++){var i,o=e.childNodes[n];if(1===o.nodeType)switch(o.nodeName){case"source":i=o.getAttribute("id"),t.sources[i]=ie(o);break;case"sampler":i=o.getAttribute("id"),t.samplers[i]=h(o);break;case"channel":i=o.getAttribute("target"),t.channels[i]=p(o);break;default:console.log(o)}}Ke.animations[e.getAttribute("id")]=t})),l(ze,"library_animation_clips","animation_clip",(function(e){for(var t={name:e.getAttribute("id")||"default",start:parseFloat(e.getAttribute("start")||0),end:parseFloat(e.getAttribute("end")||0),animations:[]},n=0,r=e.childNodes.length;n<r;n++){var i=e.childNodes[n];if(1===i.nodeType)switch(i.nodeName){case"instance_animation":t.animations.push(a(i.getAttribute("url")))}}Ke.clips[e.getAttribute("id")]=t})),l(ze,"library_controllers","controller",(function(e){for(var t={},n=0,r=e.childNodes.length;n<r;n++){var i=e.childNodes[n];if(1===i.nodeType)switch(i.nodeName){case"skin":t.id=a(i.getAttribute("source")),t.skin=A(i);break;case"morph":t.id=a(i.getAttribute("source")),console.warn("THREE.ColladaLoader: Morph target animation not supported yet.")}}Ke.controllers[e.getAttribute("id")]=t})),l(ze,"library_images","image",(function(e){var t={init_from:n(e,"init_from")[0].textContent};Ke.images[e.getAttribute("id")]=t})),l(ze,"library_effects","effect",(function(e){for(var t={},n=0,r=e.childNodes.length;n<r;n++){var i=e.childNodes[n];if(1===i.nodeType)switch(i.nodeName){case"profile_COMMON":t.profile=D(i)}}Ke.effects[e.getAttribute("id")]=t})),l(ze,"library_materials","material",(function(e){for(var t={name:e.getAttribute("name")},n=0,r=e.childNodes.length;n<r;n++){var i=e.childNodes[n];if(1===i.nodeType)switch(i.nodeName){case"instance_effect":t.url=a(i.getAttribute("url"))}}Ke.materials[e.getAttribute("id")]=t})),l(ze,"library_cameras","camera",(function(e){for(var t={name:e.getAttribute("name")},n=0,r=e.childNodes.length;n<r;n++){var i=e.childNodes[n];if(1===i.nodeType)switch(i.nodeName){case"optics":t.optics=$(i)}}Ke.cameras[e.getAttribute("id")]=t})),l(ze,"library_lights","light",(function(e){for(var t={},n=0,r=e.childNodes.length;n<r;n++){var i=e.childNodes[n];if(1===i.nodeType)switch(i.nodeName){case"technique_common":t=ee(i)}}Ke.lights[e.getAttribute("id")]=t})),l(ze,"library_geometries","geometry",(function(e){var t={name:e.getAttribute("name"),sources:{},vertices:{},primitives:[]},r=n(e,"mesh")[0];if(void 0!==r){for(var i=0;i<r.childNodes.length;i++){var o=r.childNodes[i];if(1===o.nodeType){var a=o.getAttribute("id");switch(o.nodeName){case"source":t.sources[a]=ie(o);break;case"vertices":t.vertices=oe(o);break;case"polygons":console.warn("THREE.ColladaLoader: Unsupported primitive type: ",o.nodeName);break;case"lines":case"linestrips":case"polylist":case"triangles":t.primitives.push(ae(o));break;default:console.log(o)}}}Ke.geometries[e.getAttribute("id")]=t}})),l(ze,"library_nodes","node",Oe),l(ze,"library_visual_scenes","visual_scene",(function(e){var t={name:e.getAttribute("name"),children:[]};!function(e){for(var t=e.getElementsByTagName("node"),n=0;n<t.length;n++){var r=t[n];!1===r.hasAttribute("id")&&r.setAttribute("id","three_default_"+qe++)}}(e);for(var r=n(e,"node"),i=0;i<r.length;i++)t.children.push(Oe(r[i]));Ke.visualScenes[e.getAttribute("id")]=t})),l(ze,"library_kinematics_models","kinematics_model",(function(e){for(var t={name:e.getAttribute("name")||"",joints:{},links:[]},n=0;n<e.childNodes.length;n++){var r=e.childNodes[n];if(1===r.nodeType)switch(r.nodeName){case"technique_common":he(r,t)}}Ke.kinematicsModels[e.getAttribute("id")]=t})),l(ze,"library_physics_models","physics_model",(function(e){for(var t={name:e.getAttribute("name")||"",rigidBodies:{}},n=0;n<e.childNodes.length;n++){var r=e.childNodes[n];if(1===r.nodeType)switch(r.nodeName){case"rigid_body":t.rigidBodies[r.getAttribute("name")]={},be(r,t.rigidBodies[r.getAttribute("name")])}}Ke.physicsModels[e.getAttribute("id")]=t})),l(ze,"scene","instance_kinematics_scene",(function(e){for(var t={bindJointAxis:[]},n=0;n<e.childNodes.length;n++){var r=e.childNodes[n];if(1===r.nodeType)switch(r.nodeName){case"bind_joint_axis":t.bindJointAxis.push(xe(r))}}Ke.kinematicsScenes[a(e.getAttribute("url"))]=t})),d(Ke.animations,v),d(Ke.clips,O),d(Ke.controllers,M),d(Ke.images,R),d(Ke.effects,K),d(Ke.materials,W),d(Ke.cameras,Q),d(Ke.lights,ne),d(Ke.geometries,ue),d(Ke.visualScenes,Le),function(){var e=Ke.clips;if(!0===s(e)){if(!1===s(Ke.animations)){var t=[];for(var n in Ke.animations)for(var r=m(n),i=0,o=r.length;i<o;i++)t.push(r[i]);Ue.push(new THREE.AnimationClip("default",-1,t))}}else for(var n in e)Ue.push(C(n))}(),function(){var e=Object.keys(Ke.kinematicsModels)[0],t=Object.keys(Ke.kinematicsScenes)[0],n=Object.keys(Ke.visualScenes)[0];if(void 0!==e&&void 0!==t){for(var r,i=(r=e,f(Ke.kinematicsModels[r],fe)),o=function(e){return f(Ke.kinematicsScenes[e],Ee)}(t),a=Ie(n),s=o.bindJointAxis,u={},c=0,l=s.length;c<l;c++){var d=s[c],h=ze.querySelector('[sid="'+d.target+'"]');if(h){var p=h.parentElement;m(d.jointIndex,p)}}var v=new THREE.Matrix4;Ge={joints:i&&i.joints,getJointValue:function(e){var t=u[e];if(t)return t.position;console.warn("THREE.ColladaLoader: Joint "+e+" doesn't exist.")},setJointValue:function(e,t){var n=u[e];if(n){var r=n.joint;if(t>r.limits.max||t<r.limits.min)console.warn("THREE.ColladaLoader: Joint "+e+" value "+t+" outside of limits (min: "+r.limits.min+", max: "+r.limits.max+").");else if(r.static)console.warn("THREE.ColladaLoader: Joint "+e+" is static.");else{var i=n.object,o=r.axis,a=n.transforms;_e.identity();for(var s=0;s<a.length;s++){var c=a[s];if(c.sid&&-1!==c.sid.indexOf(e))switch(r.type){case"revolute":_e.multiply(v.makeRotationAxis(o,THREE.Math.degToRad(t)));break;case"prismatic":_e.multiply(v.makeTranslation(o.x*t,o.y*t,o.z*t));break;default:console.warn("THREE.ColladaLoader: Unknown joint type: "+r.type)}else switch(c.type){case"matrix":_e.multiply(c.obj);break;case"translate":_e.multiply(v.makeTranslation(c.obj.x,c.obj.y,c.obj.z));break;case"scale":_e.scale(c.obj);break;case"rotate":_e.multiply(v.makeRotationAxis(c.obj,c.angle))}}i.matrix.copy(_e),i.matrix.decompose(i.position,i.quaternion,i.scale),u[e].position=t}}else console.log("THREE.ColladaLoader: "+e+" does not exist.")}}}function m(e,t){var n=t.getAttribute("name"),r=i.joints[e];a.traverse((function(i){i.name===n&&(u[e]={object:i,transforms:ke(t),joint:r,position:r.zeroPosition})}))}}();var We=function(e){return Ie(a(n(e,"instance_visual_scene")[0].getAttribute("url")))}(n(ze,"scene")[0]);return"Z_UP"===He.upAxis&&We.quaternion.setFromEuler(new THREE.Euler(-Math.PI/2,0,0)),We.scale.multiplyScalar(He.unit),{animations:Ue,kinematics:Ge,library:Ke,scene:We}}}},9434:function(e){e.exports=THREE.FBXLoader=function(){var e,t,n;function r(e){this.manager=void 0!==e?e:THREE.DefaultLoadingManager}function i(e){this.textureLoader=e}function o(){}function a(){}function s(){}function u(){}function c(e,t){this.dv=new DataView(e),this.offset=0,this.littleEndian=void 0===t||t}function l(){}function d(e){var t=e.match(/FBXVersion: (\d+)/);if(t)return parseInt(t[1]);throw new Error("THREE.FBXLoader: Cannot find the version number for the file given.")}function f(e){return e/46186158e3}r.prototype={constructor:r,crossOrigin:"anonymous",load:function(e,t,n,r){var i=this,o=THREE.LoaderUtils.extractUrlBase(e),a=new THREE.FileLoader(this.manager);a.setResponseType("arraybuffer"),a.load(e,(function(n){try{var a=i.parse(n,o);t(a)}catch(s){setTimeout((function(){r&&r(s),i.manager.itemError(e)}),0)}}),n,r)},setCrossOrigin:function(e){return this.crossOrigin=e,this},parse:function(t,n){if(function(e){var t="Kaydara FBX Binary \0";return e.byteLength>=t.length&&t===k(e,0,t.length)}(t))e=(new u).parse(t);else{var r=k(t);if(!function(e){var t=["K","a","y","d","a","r","a","\\","F","B","X","\\","B","i","n","a","r","y","\\","\\"],n=0;function r(t){var r=e[t-1];return e=e.slice(n+t),n++,r}for(var i=0;i<t.length;++i){if(r(1)===t[i])return!1}return!0}(r))throw new Error("THREE.FBXLoader: Unknown format.");if(d(r)<7e3)throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: "+d(r));e=(new s).parse(r)}return new i(new THREE.TextureLoader(this.manager).setPath(n).setCrossOrigin(this.crossOrigin)).parse(e)}},i.prototype={constructor:i,parse:function(){t=this.parseConnections();var e=this.parseImages(),r=this.parseTextures(e),i=this.parseMaterials(r),a=this.parseDeformers(),s=(new o).parse(a);return this.parseScene(a,s,i),n},parseConnections:function(){var t=new Map;"Connections"in e&&e.Connections.connections.forEach((function(e){var n=e[0],r=e[1],i=e[2];t.has(n)||t.set(n,{parents:[],children:[]});var o={ID:r,relationship:i};t.get(n).parents.push(o),t.has(r)||t.set(r,{parents:[],children:[]});var a={ID:n,relationship:i};t.get(r).children.push(a)}));return t},parseImages:function(){var t={},n={};if("Video"in e.Objects){var r=e.Objects.Video;for(var i in r){var o=r[i];if(t[c=parseInt(i)]=o.RelativeFilename||o.Filename,"Content"in o){var a=o.Content instanceof ArrayBuffer&&o.Content.byteLength>0,s="string"===typeof o.Content&&""!==o.Content;if(a||s){var u=this.parseImage(r[i]);n[o.RelativeFilename||o.Filename]=u}}}}for(var c in t){var l=t[c];void 0!==n[l]?t[c]=n[l]:t[c]=t[c].split("\\").pop()}return t},parseImage:function(e){var t,n=e.Content,r=e.RelativeFilename||e.Filename,i=r.slice(r.lastIndexOf(".")+1).toLowerCase();switch(i){case"bmp":t="image/bmp";break;case"jpg":case"jpeg":t="image/jpeg";break;case"png":t="image/png";break;case"tif":t="image/tiff";break;case"tga":if("function"!==typeof THREE.TGALoader)return void console.warn("FBXLoader: THREE.TGALoader is required to load TGA textures");null===THREE.Loader.Handlers.get(".tga")&&THREE.Loader.Handlers.add(/\.tga$/i,new THREE.TGALoader),t="image/tga";break;default:return void console.warn('FBXLoader: Image type "'+i+'" is not supported.')}if("string"===typeof n)return"data:"+t+";base64,"+n;var o=new Uint8Array(n);return window.URL.createObjectURL(new Blob([o],{type:t}))},parseTextures:function(t){var n=new Map;if("Texture"in e.Objects){var r=e.Objects.Texture;for(var i in r){var o=this.parseTexture(r[i],t);n.set(parseInt(i),o)}}return n},parseTexture:function(e,t){var n=this.loadTexture(e,t);n.ID=e.id,n.name=e.attrName;var r=e.WrapModeU,i=e.WrapModeV,o=void 0!==r?r.value:0,a=void 0!==i?i.value:0;if(n.wrapS=0===o?THREE.RepeatWrapping:THREE.ClampToEdgeWrapping,n.wrapT=0===a?THREE.RepeatWrapping:THREE.ClampToEdgeWrapping,"Scaling"in e){var s=e.Scaling.value;n.repeat.x=s[0],n.repeat.y=s[1]}return n},loadTexture:function(e,n){var r,i,o=this.textureLoader.path,a=t.get(e.id).children;void 0!==a&&a.length>0&&void 0!==n[a[0].ID]&&(0!==(r=n[a[0].ID]).indexOf("blob:")&&0!==r.indexOf("data:")||this.textureLoader.setPath(void 0));var s=e.FileName.slice(-3).toLowerCase();if("tga"===s){var u=THREE.Loader.Handlers.get(".tga");null===u?(console.warn("FBXLoader: TGALoader not found, creating empty placeholder texture for",r),i=new THREE.Texture):i=u.load(r)}else"psd"===s?(console.warn("FBXLoader: PSD textures are not supported, creating empty placeholder texture for",r),i=new THREE.Texture):i=this.textureLoader.load(r);return this.textureLoader.setPath(o),i},parseMaterials:function(t){var n=new Map;if("Material"in e.Objects){var r=e.Objects.Material;for(var i in r){var o=this.parseMaterial(r[i],t);null!==o&&n.set(parseInt(i),o)}}return n},parseMaterial:function(e,n){var r=e.id,i=e.attrName,o=e.ShadingModel;if("object"===typeof o&&(o=o.value),!t.has(r))return null;var a,s=this.parseParameters(e,n,r);switch(o.toLowerCase()){case"phong":a=new THREE.MeshPhongMaterial;break;case"lambert":a=new THREE.MeshLambertMaterial;break;default:console.warn('THREE.FBXLoader: unknown material type "%s". Defaulting to MeshPhongMaterial.',o),a=new THREE.MeshPhongMaterial({color:3342591})}return a.setValues(s),a.name=i,a},parseParameters:function(e,n,r){var i={};e.BumpFactor&&(i.bumpScale=e.BumpFactor.value),e.Diffuse?i.color=(new THREE.Color).fromArray(e.Diffuse.value):e.DiffuseColor&&"Color"===e.DiffuseColor.type&&(i.color=(new THREE.Color).fromArray(e.DiffuseColor.value)),e.DisplacementFactor&&(i.displacementScale=e.DisplacementFactor.value),e.Emissive?i.emissive=(new THREE.Color).fromArray(e.Emissive.value):e.EmissiveColor&&"Color"===e.EmissiveColor.type&&(i.emissive=(new THREE.Color).fromArray(e.EmissiveColor.value)),e.EmissiveFactor&&(i.emissiveIntensity=parseFloat(e.EmissiveFactor.value)),e.Opacity&&(i.opacity=parseFloat(e.Opacity.value)),i.opacity<1&&(i.transparent=!0),e.ReflectionFactor&&(i.reflectivity=e.ReflectionFactor.value),e.Shininess&&(i.shininess=e.Shininess.value),e.Specular?i.specular=(new THREE.Color).fromArray(e.Specular.value):e.SpecularColor&&"Color"===e.SpecularColor.type&&(i.specular=(new THREE.Color).fromArray(e.SpecularColor.value));var o=this;return t.get(r).children.forEach((function(e){var t=e.relationship;switch(t){case"Bump":i.bumpMap=o.getTexture(n,e.ID);break;case"DiffuseColor":i.map=o.getTexture(n,e.ID);break;case"DisplacementColor":i.displacementMap=o.getTexture(n,e.ID);break;case"EmissiveColor":i.emissiveMap=o.getTexture(n,e.ID);break;case"NormalMap":i.normalMap=o.getTexture(n,e.ID);break;case"ReflectionColor":i.envMap=o.getTexture(n,e.ID),i.envMap.mapping=THREE.EquirectangularReflectionMapping;break;case"SpecularColor":i.specularMap=o.getTexture(n,e.ID);break;case"TransparentColor":i.alphaMap=o.getTexture(n,e.ID),i.transparent=!0;break;case"AmbientColor":case"ShininessExponent":case"SpecularFactor":case"VectorDisplacementColor":default:console.warn("THREE.FBXLoader: %s map is not supported in three.js, skipping texture.",t)}})),i},getTexture:function(n,r){return"LayeredTexture"in e.Objects&&r in e.Objects.LayeredTexture&&(console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."),r=t.get(r).children[0].ID),n.get(r)},parseDeformers:function(){var n={},r={};if("Deformer"in e.Objects){var i=e.Objects.Deformer;for(var o in i){var a=i[o],s=t.get(parseInt(o));if("Skin"===a.attrType){var u=this.parseSkeleton(s,i);u.ID=o,s.parents.length>1&&console.warn("THREE.FBXLoader: skeleton attached to more than one geometry is not supported."),u.geometryID=s.parents[0].ID,n[o]=u}else if("BlendShape"===a.attrType){var c={id:o};c.rawTargets=this.parseMorphTargets(s,i),c.id=o,s.parents.length>1&&console.warn("THREE.FBXLoader: morph target attached to more than one geometry is not supported."),r[o]=c}}}return{skeletons:n,morphTargets:r}},parseSkeleton:function(e,t){var n=[];return e.children.forEach((function(e){var r=t[e.ID];if("Cluster"===r.attrType){var i={ID:e.ID,indices:[],weights:[],transform:(new THREE.Matrix4).fromArray(r.Transform.a),transformLink:(new THREE.Matrix4).fromArray(r.TransformLink.a),linkMode:r.Mode};"Indexes"in r&&(i.indices=r.Indexes.a,i.weights=r.Weights.a),n.push(i)}})),{rawBones:n,bones:[]}},parseMorphTargets:function(e,n){for(var r=[],i=0;i<e.children.length;i++){if(8===i){console.warn("FBXLoader: maximum of 8 morph targets supported. Ignoring additional targets.");break}var o=e.children[i],a=n[o.ID],s={name:a.attrName,initialWeight:a.DeformPercent,id:a.id,fullWeights:a.FullWeights.a};if("BlendShapeChannel"!==a.attrType)return;t.get(parseInt(o.ID)).children.forEach((function(e){void 0===e.relationship&&(s.geoID=e.ID)})),r.push(s)}return r},parseScene:function(r,i,o){n=new THREE.Group;var s=this.parseModels(r.skeletons,i,o),u=e.Objects.Model,c=this;s.forEach((function(e){var r=u[e.ID];c.setLookAtProperties(e,r),t.get(e.ID).parents.forEach((function(t){var n=s.get(t.ID);void 0!==n&&n.add(e)})),null===e.parent&&n.add(e)})),this.bindSkeleton(r.skeletons,i,s),this.createAmbientLight(),this.setupMorphMaterials();var l=(new a).parse();1===n.children.length&&n.children[0].isGroup&&(n.children[0].animations=l,n=n.children[0]),n.animations=l},parseModels:function(n,r,i){var o=new Map,a=e.Objects.Model;for(var s in a){var u=parseInt(s),c=a[s],l=t.get(u),d=this.buildSkeleton(l,n,u,c.attrName);if(!d){switch(c.attrType){case"Camera":d=this.createCamera(l);break;case"Light":d=this.createLight(l);break;case"Mesh":d=this.createMesh(l,r,i);break;case"NurbsCurve":d=this.createCurve(l,r);break;case"LimbNode":case"Null":default:d=new THREE.Group}d.name=THREE.PropertyBinding.sanitizeNodeName(c.attrName),d.ID=u}this.setModelTransforms(d,c),o.set(u,d)}return o},buildSkeleton:function(e,t,n,r){var i=null;return e.parents.forEach((function(e){for(var o in t){var a=t[o];a.rawBones.forEach((function(t,o){if(t.ID===e.ID){var s=i;(i=new THREE.Bone).matrixWorld.copy(t.transformLink),i.name=THREE.PropertyBinding.sanitizeNodeName(r),i.ID=n,a.bones[o]=i,null!==s&&i.add(s)}}))}})),i},createCamera:function(t){var n,r;if(t.children.forEach((function(t){var n=e.Objects.NodeAttribute[t.ID];void 0!==n&&(r=n)})),void 0===r)n=new THREE.Object3D;else{var i=0;void 0!==r.CameraProjectionType&&1===r.CameraProjectionType.value&&(i=1);var o=1;void 0!==r.NearPlane&&(o=r.NearPlane.value/1e3);var a=1e3;void 0!==r.FarPlane&&(a=r.FarPlane.value/1e3);var s=window.innerWidth,u=window.innerHeight;void 0!==r.AspectWidth&&void 0!==r.AspectHeight&&(s=r.AspectWidth.value,u=r.AspectHeight.value);var c=s/u,l=45;void 0!==r.FieldOfView&&(l=r.FieldOfView.value);var d=r.FocalLength?r.FocalLength.value:null;switch(i){case 0:n=new THREE.PerspectiveCamera(l,c,o,a),null!==d&&n.setFocalLength(d);break;case 1:n=new THREE.OrthographicCamera(-s/2,s/2,u/2,-u/2,o,a);break;default:console.warn("THREE.FBXLoader: Unknown camera type "+i+"."),n=new THREE.Object3D}}return n},createLight:function(t){var n,r;if(t.children.forEach((function(t){var n=e.Objects.NodeAttribute[t.ID];void 0!==n&&(r=n)})),void 0===r)n=new THREE.Object3D;else{var i;i=void 0===r.LightType?0:r.LightType.value;var o=16777215;void 0!==r.Color&&(o=(new THREE.Color).fromArray(r.Color.value));var a=void 0===r.Intensity?1:r.Intensity.value/100;void 0!==r.CastLightOnObject&&0===r.CastLightOnObject.value&&(a=0);var s=0;void 0!==r.FarAttenuationEnd&&(s=void 0!==r.EnableFarAttenuation&&0===r.EnableFarAttenuation.value?0:r.FarAttenuationEnd.value);switch(i){case 0:n=new THREE.PointLight(o,a,s,1);break;case 1:n=new THREE.DirectionalLight(o,a);break;case 2:var u=Math.PI/3;void 0!==r.InnerAngle&&(u=THREE.Math.degToRad(r.InnerAngle.value));var c=0;void 0!==r.OuterAngle&&(c=THREE.Math.degToRad(r.OuterAngle.value),c=Math.max(c,1)),n=new THREE.SpotLight(o,a,s,u,c,1);break;default:console.warn("THREE.FBXLoader: Unknown light type "+r.LightType.value+", defaulting to a THREE.PointLight."),n=new THREE.PointLight(o,a)}void 0!==r.CastShadows&&1===r.CastShadows.value&&(n.castShadow=!0)}return n},createMesh:function(e,t,n){var r,i=null,o=null,a=[];return e.children.forEach((function(e){t.has(e.ID)&&(i=t.get(e.ID)),n.has(e.ID)&&a.push(n.get(e.ID))})),a.length>1?o=a:a.length>0?o=a[0]:(o=new THREE.MeshPhongMaterial({color:13421772}),a.push(o)),"color"in i.attributes&&a.forEach((function(e){e.vertexColors=THREE.VertexColors})),i.FBX_Deformer?(a.forEach((function(e){e.skinning=!0})),r=new THREE.SkinnedMesh(i,o)):r=new THREE.Mesh(i,o),r},createCurve:function(e,t){var n=e.children.reduce((function(e,n){return t.has(n.ID)&&(e=t.get(n.ID)),e}),null),r=new THREE.LineBasicMaterial({color:3342591,linewidth:1});return new THREE.Line(n,r)},setModelTransforms:function(e,t){var n={};"RotationOrder"in t&&(n.eulerOrder=parseInt(t.RotationOrder.value)),"Lcl_Translation"in t&&(n.translation=t.Lcl_Translation.value),"RotationOffset"in t&&(n.rotationOffset=t.RotationOffset.value),"Lcl_Rotation"in t&&(n.rotation=t.Lcl_Rotation.value),"PreRotation"in t&&(n.preRotation=t.PreRotation.value),"PostRotation"in t&&(n.postRotation=t.PostRotation.value),"Lcl_Scaling"in t&&(n.scale=t.Lcl_Scaling.value);var r=w(n);e.applyMatrix(r)},setLookAtProperties:function(r,i){"LookAtProperty"in i&&t.get(r.ID).children.forEach((function(t){if("LookAtProperty"===t.relationship){var i=e.Objects.Model[t.ID];if("Lcl_Translation"in i){var o=i.Lcl_Translation.value;void 0!==r.target?(r.target.position.fromArray(o),n.add(r.target)):r.lookAt((new THREE.Vector3).fromArray(o))}}}))},bindSkeleton:function(e,n,r){var i=this.parsePoseNodes();for(var o in e){var a=e[o];t.get(parseInt(a.ID)).parents.forEach((function(e){if(n.has(e.ID)){var o=e.ID;t.get(o).parents.forEach((function(e){r.has(e.ID)&&r.get(e.ID).bind(new THREE.Skeleton(a.bones),i[e.ID])}))}}))}},parsePoseNodes:function(){var t={};if("Pose"in e.Objects){var n=e.Objects.Pose;for(var r in n)if("BindPose"===n[r].attrType){var i=n[r].PoseNode;Array.isArray(i)?i.forEach((function(e){t[e.Node]=(new THREE.Matrix4).fromArray(e.Matrix.a)})):t[i.Node]=(new THREE.Matrix4).fromArray(i.Matrix.a)}}return t},createAmbientLight:function(){if("GlobalSettings"in e&&"AmbientColor"in e.GlobalSettings){var t=e.GlobalSettings.AmbientColor.value,r=t[0],i=t[1],o=t[2];if(0!==r||0!==i||0!==o){var a=new THREE.Color(r,i,o);n.add(new THREE.AmbientLight(a,1))}}},setupMorphMaterials:function(){n.traverse((function(e){if(e.isMesh&&(e.geometry.morphAttributes.position||e.geometry.morphAttributes.normal)){var t=e.uuid,r=e.material.uuid,i=!1;n.traverse((function(e){e.isMesh&&e.material.uuid===r&&e.uuid!==t&&(i=!0)})),!0===i&&(e.material=e.material.clone()),e.material.morphTargets=!0}}))}},o.prototype={constructor:o,parse:function(n){var r=new Map;if("Geometry"in e.Objects){var i=e.Objects.Geometry;for(var o in i){var a=t.get(parseInt(o)),s=this.parseGeometry(a,i[o],n);r.set(parseInt(o),s)}}return r},parseGeometry:function(e,t,n){switch(t.attrType){case"Mesh":return this.parseMeshGeometry(e,t,n);case"NurbsCurve":return this.parseNurbsGeometry(t)}},parseMeshGeometry:function(t,n,r){var i=r.skeletons,o=r.morphTargets,a=t.parents.map((function(t){return e.Objects.Model[t.ID]}));if(0!==a.length){var s=t.children.reduce((function(e,t){return void 0!==i[t.ID]&&(e=i[t.ID]),e}),null),u=t.children.reduce((function(e,t){return void 0!==o[t.ID]&&(e=o[t.ID]),e}),null),c=a[0],l={};"RotationOrder"in c&&(l.eulerOrder=c.RotationOrder.value),"GeometricTranslation"in c&&(l.translation=c.GeometricTranslation.value),"GeometricRotation"in c&&(l.rotation=c.GeometricRotation.value),"GeometricScaling"in c&&(l.scale=c.GeometricScaling.value);var d=w(l);return this.genGeometry(n,s,u,d)}},genGeometry:function(e,t,n,r){var i=new THREE.BufferGeometry;e.attrName&&(i.name=e.attrName);var o=this.parseGeoNode(e,t),a=this.genBuffers(o),s=new THREE.Float32BufferAttribute(a.vertex,3);if(r.applyToBufferAttribute(s),i.addAttribute("position",s),a.colors.length>0&&i.addAttribute("color",new THREE.Float32BufferAttribute(a.colors,3)),t&&(i.addAttribute("skinIndex",new THREE.Uint16BufferAttribute(a.weightsIndices,4)),i.addAttribute("skinWeight",new THREE.Float32BufferAttribute(a.vertexWeights,4)),i.FBX_Deformer=t),a.normal.length>0){var u=new THREE.Float32BufferAttribute(a.normal,3);(new THREE.Matrix3).getNormalMatrix(r).applyToBufferAttribute(u),i.addAttribute("normal",u)}if(a.uvs.forEach((function(e,t){var n="uv"+(t+1).toString();0===t&&(n="uv"),i.addAttribute(n,new THREE.Float32BufferAttribute(a.uvs[t],2))})),o.material&&"AllSame"!==o.material.mappingType){var c=a.materialIndex[0],l=0;if(a.materialIndex.forEach((function(e,t){e!==c&&(i.addGroup(l,t-l,c),c=e,l=t)})),i.groups.length>0){var d=i.groups[i.groups.length-1],f=d.start+d.count;f!==a.materialIndex.length&&i.addGroup(f,a.materialIndex.length-f,c)}0===i.groups.length&&i.addGroup(0,a.materialIndex.length,a.materialIndex[0])}return this.addMorphTargets(i,e,n,r),i},parseGeoNode:function(e,t){var n={};if(n.vertexPositions=void 0!==e.Vertices?e.Vertices.a:[],n.vertexIndices=void 0!==e.PolygonVertexIndex?e.PolygonVertexIndex.a:[],e.LayerElementColor&&(n.color=this.parseVertexColors(e.LayerElementColor[0])),e.LayerElementMaterial&&(n.material=this.parseMaterialIndices(e.LayerElementMaterial[0])),e.LayerElementNormal&&(n.normal=this.parseNormals(e.LayerElementNormal[0])),e.LayerElementUV){n.uv=[];for(var r=0;e.LayerElementUV[r];)n.uv.push(this.parseUVs(e.LayerElementUV[r])),r++}return n.weightTable={},null!==t&&(n.skeleton=t,t.rawBones.forEach((function(e,t){e.indices.forEach((function(r,i){void 0===n.weightTable[r]&&(n.weightTable[r]=[]),n.weightTable[r].push({id:t,weight:e.weights[i]})}))}))),n},genBuffers:function(e){var t={vertex:[],normal:[],colors:[],uvs:[],materialIndex:[],vertexWeights:[],weightsIndices:[]},n=0,r=0,i=!1,o=[],a=[],s=[],u=[],c=[],l=[],d=this;return e.vertexIndices.forEach((function(f,h){var v=!1;f<0&&(f^=-1,v=!0);var m=[],g=[];if(o.push(3*f,3*f+1,3*f+2),e.color){var y=p(h,n,f,e.color);s.push(y[0],y[1],y[2])}if(e.skeleton){if(void 0!==e.weightTable[f]&&e.weightTable[f].forEach((function(e){g.push(e.weight),m.push(e.id)})),g.length>4){i||(console.warn("THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."),i=!0);var b=[0,0,0,0],w=[0,0,0,0];g.forEach((function(e,t){var n=e,r=m[t];w.forEach((function(e,t,i){if(n>e){i[t]=n,n=e;var o=b[t];b[t]=r,r=o}}))})),m=b,g=w}for(;g.length<4;)g.push(0),m.push(0);for(var x=0;x<4;++x)c.push(g[x]),l.push(m[x])}if(e.normal){y=p(h,n,f,e.normal);a.push(y[0],y[1],y[2])}if(e.material&&"AllSame"!==e.material.mappingType)var E=p(h,n,f,e.material)[0];e.uv&&e.uv.forEach((function(e,t){var r=p(h,n,f,e);void 0===u[t]&&(u[t]=[]),u[t].push(r[0]),u[t].push(r[1])})),r++,v&&(d.genFace(t,e,o,E,a,s,u,c,l,r),n++,r=0,o=[],a=[],s=[],u=[],c=[],l=[])})),t},genFace:function(e,t,n,r,i,o,a,s,u,c){for(var l=2;l<c;l++)e.vertex.push(t.vertexPositions[n[0]]),e.vertex.push(t.vertexPositions[n[1]]),e.vertex.push(t.vertexPositions[n[2]]),e.vertex.push(t.vertexPositions[n[3*(l-1)]]),e.vertex.push(t.vertexPositions[n[3*(l-1)+1]]),e.vertex.push(t.vertexPositions[n[3*(l-1)+2]]),e.vertex.push(t.vertexPositions[n[3*l]]),e.vertex.push(t.vertexPositions[n[3*l+1]]),e.vertex.push(t.vertexPositions[n[3*l+2]]),t.skeleton&&(e.vertexWeights.push(s[0]),e.vertexWeights.push(s[1]),e.vertexWeights.push(s[2]),e.vertexWeights.push(s[3]),e.vertexWeights.push(s[4*(l-1)]),e.vertexWeights.push(s[4*(l-1)+1]),e.vertexWeights.push(s[4*(l-1)+2]),e.vertexWeights.push(s[4*(l-1)+3]),e.vertexWeights.push(s[4*l]),e.vertexWeights.push(s[4*l+1]),e.vertexWeights.push(s[4*l+2]),e.vertexWeights.push(s[4*l+3]),e.weightsIndices.push(u[0]),e.weightsIndices.push(u[1]),e.weightsIndices.push(u[2]),e.weightsIndices.push(u[3]),e.weightsIndices.push(u[4*(l-1)]),e.weightsIndices.push(u[4*(l-1)+1]),e.weightsIndices.push(u[4*(l-1)+2]),e.weightsIndices.push(u[4*(l-1)+3]),e.weightsIndices.push(u[4*l]),e.weightsIndices.push(u[4*l+1]),e.weightsIndices.push(u[4*l+2]),e.weightsIndices.push(u[4*l+3])),t.color&&(e.colors.push(o[0]),e.colors.push(o[1]),e.colors.push(o[2]),e.colors.push(o[3*(l-1)]),e.colors.push(o[3*(l-1)+1]),e.colors.push(o[3*(l-1)+2]),e.colors.push(o[3*l]),e.colors.push(o[3*l+1]),e.colors.push(o[3*l+2])),t.material&&"AllSame"!==t.material.mappingType&&(e.materialIndex.push(r),e.materialIndex.push(r),e.materialIndex.push(r)),t.normal&&(e.normal.push(i[0]),e.normal.push(i[1]),e.normal.push(i[2]),e.normal.push(i[3*(l-1)]),e.normal.push(i[3*(l-1)+1]),e.normal.push(i[3*(l-1)+2]),e.normal.push(i[3*l]),e.normal.push(i[3*l+1]),e.normal.push(i[3*l+2])),t.uv&&t.uv.forEach((function(t,n){void 0===e.uvs[n]&&(e.uvs[n]=[]),e.uvs[n].push(a[n][0]),e.uvs[n].push(a[n][1]),e.uvs[n].push(a[n][2*(l-1)]),e.uvs[n].push(a[n][2*(l-1)+1]),e.uvs[n].push(a[n][2*l]),e.uvs[n].push(a[n][2*l+1])}))},addMorphTargets:function(t,n,r,i){if(null!==r){t.morphAttributes.position=[],t.morphAttributes.normal=[];var o=this;r.rawTargets.forEach((function(r){var a=e.Objects.Geometry[r.geoID];void 0!==a&&o.genMorphGeometry(t,n,a,i)}))}},genMorphGeometry:function(e,t,n,r){var i=new THREE.BufferGeometry;n.attrName&&(i.name=n.attrName);for(var o=void 0!==t.PolygonVertexIndex?t.PolygonVertexIndex.a:[],a=void 0!==t.Vertices?t.Vertices.a.slice():[],s=void 0!==n.Vertices?n.Vertices.a:[],u=void 0!==n.Indexes?n.Indexes.a:[],c=0;c<u.length;c++){var l=3*u[c];a[l]+=s[3*c],a[l+1]+=s[3*c+1],a[l+2]+=s[3*c+2]}var d={vertexIndices:o,vertexPositions:a},f=this.genBuffers(d),h=new THREE.Float32BufferAttribute(f.vertex,3);h.name=n.attrName,r.applyToBufferAttribute(h),e.morphAttributes.position.push(h)},parseNormals:function(e){var t=e.MappingInformationType,n=e.ReferenceInformationType,r=e.Normals.a,i=[];return"IndexToDirect"===n&&("NormalIndex"in e?i=e.NormalIndex.a:"NormalsIndex"in e&&(i=e.NormalsIndex.a)),{dataSize:3,buffer:r,indices:i,mappingType:t,referenceType:n}},parseUVs:function(e){var t=e.MappingInformationType,n=e.ReferenceInformationType,r=e.UV.a,i=[];return"IndexToDirect"===n&&(i=e.UVIndex.a),{dataSize:2,buffer:r,indices:i,mappingType:t,referenceType:n}},parseVertexColors:function(e){var t=e.MappingInformationType,n=e.ReferenceInformationType,r=e.Colors.a,i=[];return"IndexToDirect"===n&&(i=e.ColorIndex.a),{dataSize:4,buffer:r,indices:i,mappingType:t,referenceType:n}},parseMaterialIndices:function(e){var t=e.MappingInformationType,n=e.ReferenceInformationType;if("NoMappingInformation"===t)return{dataSize:1,buffer:[0],indices:[0],mappingType:"AllSame",referenceType:n};for(var r=e.Materials.a,i=[],o=0;o<r.length;++o)i.push(o);return{dataSize:1,buffer:r,indices:i,mappingType:t,referenceType:n}},parseNurbsGeometry:function(e){if(void 0===THREE.NURBSCurve)return console.error("THREE.FBXLoader: The loader relies on THREE.NURBSCurve for any nurbs present in the model. Nurbs will show up as empty geometry."),new THREE.BufferGeometry;var t=parseInt(e.Order);if(isNaN(t))return console.error("THREE.FBXLoader: Invalid Order %s given for geometry ID: %s",e.Order,e.id),new THREE.BufferGeometry;for(var n,r,i=t-1,o=e.KnotVector.a,a=[],s=e.Points.a,u=0,c=s.length;u<c;u+=4)a.push((new THREE.Vector4).fromArray(s,u));if("Closed"===e.Form)a.push(a[0]);else if("Periodic"===e.Form){n=i,r=o.length-1-n;for(u=0;u<i;++u)a.push(a[u])}var l=new THREE.NURBSCurve(i,o,a,n,r).getPoints(7*a.length),d=new Float32Array(3*l.length);l.forEach((function(e,t){e.toArray(d,3*t)}));var f=new THREE.BufferGeometry;return f.addAttribute("position",new THREE.BufferAttribute(d,3)),f}},a.prototype={constructor:a,parse:function(){var e=[],t=this.parseClips();if(void 0===t)return e;for(var n in t){var r=t[n],i=this.addClip(r);e.push(i)}return e},parseClips:function(){if(void 0!==e.Objects.AnimationCurve){var t=this.parseAnimationCurveNodes();this.parseAnimationCurves(t);var n=this.parseAnimationLayers(t);return this.parseAnimStacks(n)}},parseAnimationCurveNodes:function(){var t=e.Objects.AnimationCurveNode,n=new Map;for(var r in t){var i=t[r];if(null!==i.attrName.match(/S|R|T|DeformPercent/)){var o={id:i.id,attr:i.attrName,curves:{}};n.set(o.id,o)}}return n},parseAnimationCurves:function(n){var r=e.Objects.AnimationCurve;for(var i in r){var o={id:r[i].id,times:r[i].KeyTime.a.map(f),values:r[i].KeyValueFloat.a},a=t.get(o.id);if(void 0!==a){var s=a.parents[0].ID,u=a.parents[0].relationship;u.match(/X/)?n.get(s).curves.x=o:u.match(/Y/)?n.get(s).curves.y=o:u.match(/Z/)?n.get(s).curves.z=o:u.match(/d|DeformPercent/)&&n.has(s)&&(n.get(s).curves.morph=o)}}},parseAnimationLayers:function(n){var r=e.Objects.AnimationLayer,i=new Map;for(var o in r){var a=[],s=t.get(parseInt(o));if(void 0!==s){var u=s.children,c=this;u.forEach((function(r,i){if(n.has(r.ID)){var o=n.get(r.ID);if(void 0!==o.curves.x||void 0!==o.curves.y||void 0!==o.curves.z){if(void 0===a[i]){t.get(r.ID).parents.forEach((function(e){void 0!==e.relationship&&(h=e.ID)}));var s=e.Objects.Model[h.toString()],u={modelName:THREE.PropertyBinding.sanitizeNodeName(s.attrName),initialPosition:[0,0,0],initialRotation:[0,0,0],initialScale:[1,1,1],transform:c.getModelAnimTransform(s)};"PreRotation"in s&&(u.preRotations=s.PreRotation.value),"PostRotation"in s&&(u.postRotations=s.PostRotation.value),a[i]=u}a[i][o.attr]=o}else if(void 0!==o.curves.morph){if(void 0===a[i]){var l;t.get(r.ID).parents.forEach((function(e){void 0!==e.relationship&&(l=e.ID)}));var d=t.get(l).parents[0].ID,f=t.get(d).parents[0].ID,h=t.get(f).parents[0].ID;s=e.Objects.Model[h],u={modelName:THREE.PropertyBinding.sanitizeNodeName(s.attrName),morphName:e.Objects.Deformer[l].attrName};a[i]=u}a[i][o.attr]=o}}})),i.set(parseInt(o),a)}}return i},getModelAnimTransform:function(e){var t={};return"RotationOrder"in e&&(t.eulerOrder=parseInt(e.RotationOrder.value)),"Lcl_Translation"in e&&(t.translation=e.Lcl_Translation.value),"RotationOffset"in e&&(t.rotationOffset=e.RotationOffset.value),"Lcl_Rotation"in e&&(t.rotation=e.Lcl_Rotation.value),"PreRotation"in e&&(t.preRotation=e.PreRotation.value),"PostRotation"in e&&(t.postRotation=e.PostRotation.value),"Lcl_Scaling"in e&&(t.scale=e.Lcl_Scaling.value),w(t)},parseAnimStacks:function(n){var r=e.Objects.AnimationStack,i={};for(var o in r){var a=t.get(parseInt(o)).children;a.length>1&&console.warn("THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.");var s=n.get(a[0].ID);i[o]={name:r[o].attrName,layer:s}}return i},addClip:function(e){var t=[],n=this;return e.layer.forEach((function(e){t=t.concat(n.generateTracks(e))})),new THREE.AnimationClip(e.name,-1,t)},generateTracks:function(e){var t=[],n=new THREE.Vector3,r=new THREE.Quaternion,i=new THREE.Vector3;if(e.transform&&e.transform.decompose(n,r,i),n=n.toArray(),r=(new THREE.Euler).setFromQuaternion(r).toArray(),i=i.toArray(),void 0!==e.T&&Object.keys(e.T.curves).length>0){var o=this.generateVectorTrack(e.modelName,e.T.curves,n,"position");void 0!==o&&t.push(o)}if(void 0!==e.R&&Object.keys(e.R.curves).length>0){var a=this.generateRotationTrack(e.modelName,e.R.curves,r,e.preRotations,e.postRotations);void 0!==a&&t.push(a)}if(void 0!==e.S&&Object.keys(e.S.curves).length>0){var s=this.generateVectorTrack(e.modelName,e.S.curves,i,"scale");void 0!==s&&t.push(s)}if(void 0!==e.DeformPercent){var u=this.generateMorphTrack(e);void 0!==u&&t.push(u)}return t},generateVectorTrack:function(e,t,n,r){var i=this.getTimesForAllAxes(t),o=this.getKeyframeTrackValues(i,t,n);return new THREE.VectorKeyframeTrack(e+"."+r,i,o)},generateRotationTrack:function(e,t,n,r,i){void 0!==t.x&&(this.interpolateRotations(t.x),t.x.values=t.x.values.map(THREE.Math.degToRad)),void 0!==t.y&&(this.interpolateRotations(t.y),t.y.values=t.y.values.map(THREE.Math.degToRad)),void 0!==t.z&&(this.interpolateRotations(t.z),t.z.values=t.z.values.map(THREE.Math.degToRad));var o=this.getTimesForAllAxes(t),a=this.getKeyframeTrackValues(o,t,n);void 0!==r&&((r=r.map(THREE.Math.degToRad)).push("ZYX"),r=(new THREE.Euler).fromArray(r),r=(new THREE.Quaternion).setFromEuler(r)),void 0!==i&&((i=i.map(THREE.Math.degToRad)).push("ZYX"),i=(new THREE.Euler).fromArray(i),i=(new THREE.Quaternion).setFromEuler(i).inverse());for(var s=new THREE.Quaternion,u=new THREE.Euler,c=[],l=0;l<a.length;l+=3)u.set(a[l],a[l+1],a[l+2],"ZYX"),s.setFromEuler(u),void 0!==r&&s.premultiply(r),void 0!==i&&s.multiply(i),s.toArray(c,l/3*4);return new THREE.QuaternionKeyframeTrack(e+".quaternion",o,c)},generateMorphTrack:function(e){var t=e.DeformPercent.curves.morph,r=t.values.map((function(e){return e/100})),i=n.getObjectByName(e.modelName).morphTargetDictionary[e.morphName];return new THREE.NumberKeyframeTrack(e.modelName+".morphTargetInfluences["+i+"]",t.times,r)},getTimesForAllAxes:function(e){var t=[];return void 0!==e.x&&(t=t.concat(e.x.times)),void 0!==e.y&&(t=t.concat(e.y.times)),void 0!==e.z&&(t=t.concat(e.z.times)),t=t.sort((function(e,t){return e-t})).filter((function(e,t,n){return n.indexOf(e)==t}))},getKeyframeTrackValues:function(e,t,n){var r=n,i=[],o=-1,a=-1,s=-1;return e.forEach((function(e){if(t.x&&(o=t.x.times.indexOf(e)),t.y&&(a=t.y.times.indexOf(e)),t.z&&(s=t.z.times.indexOf(e)),-1!==o){var n=t.x.values[o];i.push(n),r[0]=n}else i.push(r[0]);if(-1!==a){var u=t.y.values[a];i.push(u),r[1]=u}else i.push(r[1]);if(-1!==s){var c=t.z.values[s];i.push(c),r[2]=c}else i.push(r[2])})),i},interpolateRotations:function(e){for(var t=1;t<e.values.length;t++){var n=e.values[t-1],r=e.values[t]-n,i=Math.abs(r);if(i>=180){for(var o=i/180,a=r/o,s=n+a,u=e.times[t-1],c=(e.times[t]-u)/o,l=u+c,d=[],f=[];l<e.times[t];)d.push(l),l+=c,f.push(s),s+=a;e.times=_(e.times,t,d),e.values=_(e.values,t,f)}}}},s.prototype={constructor:s,getPrevNode:function(){return this.nodeStack[this.currentIndent-2]},getCurrentNode:function(){return this.nodeStack[this.currentIndent-1]},getCurrentProp:function(){return this.currentProp},pushStack:function(e){this.nodeStack.push(e),this.currentIndent+=1},popStack:function(){this.nodeStack.pop(),this.currentIndent-=1},setCurrentProp:function(e,t){this.currentProp=e,this.currentPropName=t},parse:function(e){this.currentIndent=0,console.log("FBXTree: ",l),this.allNodes=new l,this.nodeStack=[],this.currentProp=[],this.currentPropName="";var t=this,n=e.split(/[\r\n]+/);return n.forEach((function(e,r){var i=e.match(/^[\s\t]*;/),o=e.match(/^[\s\t]*$/);if(!i&&!o){var a=e.match("^\\t{"+t.currentIndent+"}(\\w+):(.*){",""),s=e.match("^\\t{"+t.currentIndent+"}(\\w+):[\\s\\t\\r\\n](.*)"),u=e.match("^\\t{"+(t.currentIndent-1)+"}}");a?t.parseNodeBegin(e,a):s?t.parseNodeProperty(e,s,n[++r]):u?t.popStack():e.match(/^[^\s\t}]/)&&t.parseNodePropertyContinued(e)}})),this.allNodes},parseNodeBegin:function(e,t){var n=t[1].trim().replace(/^"/,"").replace(/"$/,""),r=t[2].split(",").map((function(e){return e.trim().replace(/^"/,"").replace(/"$/,"")})),i={name:n},o=this.parseNodeAttr(r),a=this.getCurrentNode();0===this.currentIndent?this.allNodes.add(n,i):n in a?("PoseNode"===n?a.PoseNode.push(i):void 0!==a[n].id&&(a[n]={},a[n][a[n].id]=a[n]),""!==o.id&&(a[n][o.id]=i)):"number"===typeof o.id?(a[n]={},a[n][o.id]=i):"Properties70"!==n&&(a[n]="PoseNode"===n?[i]:i),"number"===typeof o.id&&(i.id=o.id),""!==o.name&&(i.attrName=o.name),""!==o.type&&(i.attrType=o.type),this.pushStack(i)},parseNodeAttr:function(e){var t=e[0];""!==e[0]&&(t=parseInt(e[0]),isNaN(t)&&(t=e[0]));var n="",r="";return e.length>1&&(n=e[1].replace(/^(\w+)::/,""),r=e[2]),{id:t,name:n,type:r}},parseNodeProperty:function(e,t,n){var r=t[1].replace(/^"/,"").replace(/"$/,"").trim(),i=t[2].replace(/^"/,"").replace(/"$/,"").trim();"Content"===r&&","===i&&(i=n.replace(/"/g,"").replace(/,$/,"").trim());var o=this.getCurrentNode();if("Properties70"!==o.name){if("C"===r){var a=i.split(",").slice(1),s=parseInt(a[0]),u=parseInt(a[1]),c=i.split(",").slice(3);r="connections",function(e,t){for(var n=0,r=e.length,i=t.length;n<i;n++,r++)e[r]=t[n]}(i=[s,u],c=c.map((function(e){return e.trim().replace(/^"/,"")}))),void 0===o[r]&&(o[r]=[])}"Node"===r&&(o.id=i),r in o&&Array.isArray(o[r])?o[r].push(i):"a"!==r?o[r]=i:o.a=i,this.setCurrentProp(o,r),"a"===r&&","!==i.slice(-1)&&(o.a=E(i))}else this.parseNodeSpecialProperty(e,r,i)},parseNodePropertyContinued:function(e){var t=this.getCurrentNode();t.a+=e,","!==e.slice(-1)&&(t.a=E(t.a))},parseNodeSpecialProperty:function(e,t,n){var r=n.split('",').map((function(e){return e.trim().replace(/^\"/,"").replace(/\s/,"_")})),i=r[0],o=r[1],a=r[2],s=r[3],u=r[4];switch(o){case"int":case"enum":case"bool":case"ULongLong":case"double":case"Number":case"FieldOfView":u=parseFloat(u);break;case"Color":case"ColorRGB":case"Vector3D":case"Lcl_Translation":case"Lcl_Rotation":case"Lcl_Scaling":u=E(u)}this.getPrevNode()[i]={type:o,type2:a,flag:s,value:u},this.setCurrentProp(this.getPrevNode(),i)}},u.prototype={constructor:u,parse:function(e){var t=new c(e);t.skip(23);var n=t.getUint32();console.log("THREE.FBXLoader: FBX binary version: "+n);for(var r=new l;!this.endOfContent(t);){var i=this.parseNode(t,n);null!==i&&r.add(i.name,i)}return r},endOfContent:function(e){return e.size()%16===0?(e.getOffset()+160+16&-16)>=e.size():e.getOffset()+160+16>=e.size()},parseNode:function(e,t){var n={},r=t>=7500?e.getUint64():e.getUint32(),i=t>=7500?e.getUint64():e.getUint32(),o=(t>=7500?e.getUint64():e.getUint32(),e.getUint8()),a=e.getString(o);if(0===r)return null;for(var s=[],u=0;u<i;u++)s.push(this.parseProperty(e));var c=s.length>0?s[0]:"",l=s.length>1?s[1]:"",d=s.length>2?s[2]:"";for(n.singleProperty=1===i&&e.getOffset()===r;r>e.getOffset();){var f=this.parseNode(e,t);null!==f&&this.parseSubNode(a,n,f)}return n.propertyList=s,"number"===typeof c&&(n.id=c),""!==l&&(n.attrName=l),""!==d&&(n.attrType=d),""!==a&&(n.name=a),n},parseSubNode:function(e,t,n){if(!0===n.singleProperty){var r=n.propertyList[0];Array.isArray(r)?(t[n.name]=n,n.a=r):t[n.name]=r}else if("Connections"===e&&"C"===n.name){var i=[];n.propertyList.forEach((function(e,t){0!==t&&i.push(e)})),void 0===t.connections&&(t.connections=[]),t.connections.push(i)}else if("Properties70"===n.name){Object.keys(n).forEach((function(e){t[e]=n[e]}))}else if("Properties70"===e&&"P"===n.name){var o,a=n.propertyList[0],s=n.propertyList[1],u=n.propertyList[2],c=n.propertyList[3];0===a.indexOf("Lcl ")&&(a=a.replace("Lcl ","Lcl_")),0===s.indexOf("Lcl ")&&(s=s.replace("Lcl ","Lcl_")),o="Color"===s||"ColorRGB"===s||"Vector"===s||"Vector3D"===s||0===s.indexOf("Lcl_")?[n.propertyList[4],n.propertyList[5],n.propertyList[6]]:n.propertyList[4],t[a]={type:s,type2:u,flag:c,value:o}}else void 0===t[n.name]?"number"===typeof n.id?(t[n.name]={},t[n.name][n.id]=n):t[n.name]=n:"PoseNode"===n.name?(Array.isArray(t[n.name])||(t[n.name]=[t[n.name]]),t[n.name].push(n)):void 0===t[n.name][n.id]&&(t[n.name][n.id]=n)},parseProperty:function(e){var t=e.getString(1);switch(t){case"C":return e.getBoolean();case"D":return e.getFloat64();case"F":return e.getFloat32();case"I":return e.getInt32();case"L":return e.getInt64();case"R":var n=e.getUint32();return e.getArrayBuffer(n);case"S":n=e.getUint32();return e.getString(n);case"Y":return e.getInt16();case"b":case"c":case"d":case"f":case"i":case"l":var r=e.getUint32(),i=e.getUint32(),o=e.getUint32();if(0===i)switch(t){case"b":case"c":return e.getBooleanArray(r);case"d":return e.getFloat64Array(r);case"f":return e.getFloat32Array(r);case"i":return e.getInt32Array(r);case"l":return e.getInt64Array(r)}"undefined"===typeof Zlib&&console.error("THREE.FBXLoader: External library Inflate.min.js required, obtain or import from https://github.com/imaya/zlib.js");var a=new c(new Zlib.Inflate(new Uint8Array(e.getArrayBuffer(o))).decompress().buffer);switch(t){case"b":case"c":return a.getBooleanArray(r);case"d":return a.getFloat64Array(r);case"f":return a.getFloat32Array(r);case"i":return a.getInt32Array(r);case"l":return a.getInt64Array(r)}default:throw new Error("THREE.FBXLoader: Unknown property type "+t)}}},c.prototype={constructor:c,getOffset:function(){return this.offset},size:function(){return this.dv.buffer.byteLength},skip:function(e){this.offset+=e},getBoolean:function(){return 1===(1&this.getUint8())},getBooleanArray:function(e){for(var t=[],n=0;n<e;n++)t.push(this.getBoolean());return t},getUint8:function(){var e=this.dv.getUint8(this.offset);return this.offset+=1,e},getInt16:function(){var e=this.dv.getInt16(this.offset,this.littleEndian);return this.offset+=2,e},getInt32:function(){var e=this.dv.getInt32(this.offset,this.littleEndian);return this.offset+=4,e},getInt32Array:function(e){for(var t=[],n=0;n<e;n++)t.push(this.getInt32());return t},getUint32:function(){var e=this.dv.getUint32(this.offset,this.littleEndian);return this.offset+=4,e},getInt64:function(){var e,t;return this.littleEndian?(e=this.getUint32(),t=this.getUint32()):(t=this.getUint32(),e=this.getUint32()),2147483648&t?(t=4294967295&~t,4294967295===(e=4294967295&~e)&&(t=t+1&4294967295),-(4294967296*t+(e=e+1&4294967295))):4294967296*t+e},getInt64Array:function(e){for(var t=[],n=0;n<e;n++)t.push(this.getInt64());return t},getUint64:function(){var e,t;return this.littleEndian?(e=this.getUint32(),t=this.getUint32()):(t=this.getUint32(),e=this.getUint32()),4294967296*t+e},getFloat32:function(){var e=this.dv.getFloat32(this.offset,this.littleEndian);return this.offset+=4,e},getFloat32Array:function(e){for(var t=[],n=0;n<e;n++)t.push(this.getFloat32());return t},getFloat64:function(){var e=this.dv.getFloat64(this.offset,this.littleEndian);return this.offset+=8,e},getFloat64Array:function(e){for(var t=[],n=0;n<e;n++)t.push(this.getFloat64());return t},getArrayBuffer:function(e){var t=this.dv.buffer.slice(this.offset,this.offset+e);return this.offset+=e,t},getString:function(e){for(var t=[],n=0;n<e;n++)t[n]=this.getUint8();var r=t.indexOf(0);return r>=0&&(t=t.slice(0,r)),THREE.LoaderUtils.decodeText(new Uint8Array(t))}},l.prototype={constructor:l,add:function(e,t){this[e]=t}};var h=[];function p(e,t,n,r){var i;switch(r.mappingType){case"ByPolygonVertex":i=e;break;case"ByPolygon":i=t;break;case"ByVertice":i=n;break;case"AllSame":i=r.indices[0];break;default:console.warn("THREE.FBXLoader: unknown attribute mapping type "+r.mappingType)}"IndexToDirect"===r.referenceType&&(i=r.indices[i]);var o=i*r.dataSize,a=o+r.dataSize;return function(e,t,n,r){for(var i=n,o=0;i<r;i++,o++)e[o]=t[i];return e}(h,r.buffer,o,a)}var v=new THREE.Matrix4,m=new THREE.Euler,g=new THREE.Vector3,y=new THREE.Vector3,b=new THREE.Matrix4;function w(e){var t=new THREE.Matrix4;y.set(0,0,0),b.identity();var n,r=e.eulerOrder?x(e.eulerOrder):x(0);(e.translation&&y.fromArray(e.translation),e.rotationOffset&&y.add(g.fromArray(e.rotationOffset)),e.rotation)&&((n=e.rotation.map(THREE.Math.degToRad)).push(r),b.makeRotationFromEuler(m.fromArray(n)));e.preRotation&&((n=e.preRotation.map(THREE.Math.degToRad)).push(r),v.makeRotationFromEuler(m.fromArray(n)),b.premultiply(v));e.postRotation&&((n=e.postRotation.map(THREE.Math.degToRad)).push(r),v.makeRotationFromEuler(m.fromArray(n)),v.getInverse(v),b.multiply(v));return e.scale&&t.scale(g.fromArray(e.scale)),t.setPosition(y),t.multiply(b),t}function x(e){var t=["ZYX","YZX","XZY","ZXY","YXZ","XYZ"];return 6===e?(console.warn("THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect."),t[0]):t[e]}function E(e){return e.split(",").map((function(e){return parseFloat(e)}))}function k(e,t,n){return void 0===t&&(t=0),void 0===n&&(n=e.byteLength),THREE.LoaderUtils.decodeText(new Uint8Array(e,t,n))}function _(e,t,n){return e.slice(0,t).concat(n).concat(e.slice(t))}return r}()},6453:function(e){e.exports=Object.assign((function(){}),{FACE_1:0,FACE_2:1,FACE_3:2,FACE_4:3,L_SHOULDER_1:4,R_SHOULDER_1:5,L_SHOULDER_2:6,R_SHOULDER_2:7,SELECT:8,START:9,DPAD_UP:12,DPAD_DOWN:13,DPAD_LEFT:14,DPAD_RIGHT:15,VENDOR:16})},4379:function(e){e.exports=function(e,t,n){this.type=e,this.index=t,this.pressed=n.pressed,this.value=n.value}},2667:function(e){e.exports={size:5,cellSize:10,extrudeSettings:{amount:1,bevelEnabled:!0,bevelSegments:1,steps:1,bevelSize:.5,bevelThickness:.5},autogenerated:!0,cells:[{q:-1,r:0,s:1,h:1,walkable:!0,userData:{}},{q:0,r:-1,s:1,h:1,walkable:!0,userData:{}},{q:0,r:0,s:0,h:1,walkable:!0,userData:{}},{q:1,r:-1,s:0,h:1,walkable:!0,userData:{}},{q:-1,r:1,s:0,h:0,walkable:!0,userData:{}},{q:0,r:1,s:-1,h:0,walkable:!0,userData:{}},{q:1,r:0,s:-1,h:0,walkable:!0,userData:{}}]}},4657:function(e){function t(e){const t=document.getElementById(e),n=t.parentNode;try{n&&n.removeChild(t)}catch(r){}}function n(e,n,r){return new r((function(r,i){const o=n.timeout||5e3,a="script_"+Date.now()+"_"+Math.ceil(1e5*Math.random()),s=function(e,t){var n=document.createElement("script");return n.type="text/javascript",n.async=!0,n.id=t,n.src=e,n}(e,a),u=setTimeout((function(){i(new Error("Script request to "+e+" timed out")),t(a)}),o),c=function(e){clearTimeout(e)};s.addEventListener("load",(function(e){r({ok:!0}),c(u),t(a)})),s.addEventListener("error",(function(n){i(new Error("Script request to "+e+" failed "+n)),c(u),t(a)})),function(e){const t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}(s)}))}e.exports=function(e){return e=e||{},function(t,r){return n(t,r=r||{},e.Promise||Promise)}}},3471:function(e){var n=e.exports={VERSION:"0.1.1",PI:Math.PI,TAU:2*Math.PI,DEG_TO_RAD:.0174532925,RAD_TO_DEG:57.2957795,SQRT3:Math.sqrt(3),TILE:"tile",ENT:"entity",STR:"structure",HEX:"hex",SQR:"square",ABS:"abstract"};n.Board=function(e,t){if(!e)throw new Error("You must pass in a grid system for the board to use.");this.tiles=[],this.tileGroup=null,this.group=new THREE.Object3D,this.grid=null,this.overlay=null,this.finder=new n.AStarFinder(t),n.Loader.init(),this.setGrid(e)},n.Board.prototype={setEntityOnTile:function(e,t){var n=this.grid.cellToPixel(t.cell);e.position.copy(n),e.position.y+=e.heightOffset||0,e.tile&&(e.tile.entity=null),e.tile=t,t.entity=e},addTile:function(e){-1===this.tiles.indexOf(e)&&(this.tiles.push(e),this.snapTileToGrid(e),e.position.y=0,this.tileGroup.add(e.mesh),this.grid.add(e.cell),e.cell.tile=e)},removeTile:function(e){if(e){var t=this.tiles.indexOf(e);this.grid.remove(e.cell),-1!==t&&this.tiles.splice(t,1),e.dispose()}},removeAllTiles:function(){if(this.tileGroup)for(var e=this.tileGroup.children,t=0;t<e.length;t++)this.tileGroup.remove(e[t])},getTileAtCell:function(e){var t=this.grid.cellToHash(e);return e.tile||("undefined"!=typeof this.grid.cells[t]?this.grid.cells[t].tile:null)},snapToGrid:function(e){var t=this.grid.pixelToCell(e);e.copy(this.grid.cellToPixel(t))},snapTileToGrid:function(e){if(e.cell)e.position.copy(this.grid.cellToPixel(e.cell));else{var t=this.grid.pixelToCell(e.position);e.position.copy(this.grid.cellToPixel(t))}return e},getRandomTile:function(){var e=n.Tools.randomInt(0,this.tiles.length-1);return this.tiles[e]},findPath:function(e,t,n){return this.finder.findPath(e.cell,t.cell,n,this.grid)},setGrid:function(e){this.group.remove(this.tileGroup),this.grid&&e!==this.grid&&(this.removeAllTiles(),this.tiles.forEach((function(e){this.grid.remove(e.cell),e.dispose()})),this.grid.dispose()),this.grid=e,this.tiles=[],this.tileGroup=new THREE.Object3D,this.group.add(this.tileGroup)},generateOverlay:function(e){var t=new THREE.LineBasicMaterial({color:0,opacity:.3});this.overlay&&this.group.remove(this.overlay),this.overlay=new THREE.Object3D,this.grid.generateOverlay(e,this.overlay,t),this.group.add(this.overlay)},generateTilemap:function(e){this.reset();var t=this.grid.generateTiles(e);this.tiles=t,this.tileGroup=new THREE.Object3D;for(var n=0;n<t.length;n++)this.tileGroup.add(t[n].mesh);this.group.add(this.tileGroup)},reset:function(){this.removeAllTiles(),this.tileGroup&&this.group.remove(this.tileGroup)}},n.Board.prototype.constructor=n.Board,n.Cell=function(e,t,r,i){this.q=e||0,this.r=t||0,this.s=r||0,this.h=i||1,this.tile=null,this.userData={},this.walkable=!0,this._calcCost=0,this._priority=0,this._visited=!1,this._parent=null,this.uniqueID=n.LinkedList.generateID()},n.Cell.prototype={set:function(e,t,n){return this.q=e,this.r=t,this.s=n,this},copy:function(e){return this.q=e.q,this.r=e.r,this.s=e.s,this.h=e.h,this.tile=e.tile||null,this.userData=e.userData||{},this.walkable=e.walkable,this},add:function(e){return this.q+=e.q,this.r+=e.r,this.s+=e.s,this},equals:function(e){return this.q===e.q&&this.r===e.r&&this.s===e.s}},n.Cell.prototype.constructor=n.Cell,n.HexGrid=function(e){e=e||{},this.type=n.HEX,this.size=5,this.cellSize="undefined"==typeof e.cellSize?10:e.cellSize,this.cells={},this.numCells=0,this.extrudeSettings=null,this.autogenerated=!1;var t,r=[];for(t=0;6>t;t++)r.push(this._createVertex(t));for(this.cellShape=new THREE.Shape,this.cellShape.moveTo(r[0].x,r[0].y),t=1;6>t;t++)this.cellShape.lineTo(r[t].x,r[t].y);this.cellShape.lineTo(r[0].x,r[0].y),this.cellShape.autoClose=!0,this.cellGeo=new THREE.Geometry,this.cellGeo.vertices=r,this.cellGeo.verticesNeedUpdate=!0,this.cellShapeGeo=new THREE.ShapeGeometry(this.cellShape),this._cellWidth=2*this.cellSize,this._cellLength=.5*n.SQRT3*this._cellWidth,this._hashDelimeter=".",this._directions=[new n.Cell(1,-1,0),new n.Cell(1,0,-1),new n.Cell(0,1,-1),new n.Cell(-1,1,0),new n.Cell(-1,0,1),new n.Cell(0,-1,1)],this._diagonals=[new n.Cell(2,-1,-1),new n.Cell(1,1,-2),new n.Cell(-1,2,-1),new n.Cell(-2,1,1),new n.Cell(-1,-1,2),new n.Cell(1,-2,1)],this._list=[],this._vec3=new THREE.Vector3,this._cel=new n.Cell,this._conversionVec=new THREE.Vector3,this._geoCache=[],this._matCache=[]},n.HexGrid.TWO_THIRDS=2/3,n.HexGrid.prototype={cellToPixel:function(e){return this._vec3.x=e.q*this._cellWidth*.75,this._vec3.y=e.h,this._vec3.z=-(e.s-e.r)*this._cellLength*.5,this._vec3},pixelToCell:function(e){var t=e.x*(n.HexGrid.TWO_THIRDS/this.cellSize),r=(-e.x/3+n.SQRT3/3*e.z)/this.cellSize;return this._cel.set(t,r,-t-r),this._cubeRound(this._cel)},getCellAt:function(e){var t=e.x*(n.HexGrid.TWO_THIRDS/this.cellSize),r=(-e.x/3+n.SQRT3/3*e.z)/this.cellSize;return this._cel.set(t,r,-t-r),this._cubeRound(this._cel),this.cells[this.cellToHash(this._cel)]},getNeighbors:function(e,t,n){var r,i,o=this._directions.length;for(this._list.length=0,r=0;o>r;r++)this._cel.copy(e),this._cel.add(this._directions[r]),!(i=this.cells[this.cellToHash(this._cel)])||n&&!n(e,i)||this._list.push(i);if(t)for(r=0;o>r;r++)this._cel.copy(e),this._cel.add(this._diagonals[r]),!(i=this.cells[this.cellToHash(this._cel)])||n&&!n(e,i)||this._list.push(i);return this._list},getRandomCell:function(){var e,t=0,r=n.Tools.randomInt(0,this.numCells);for(e in this.cells){if(t===r)return this.cells[e];t++}return this.cells[e]},cellToHash:function(e){return e.q+this._hashDelimeter+e.r+this._hashDelimeter+e.s},distance:function(e,t){return Math.max(Math.abs(e.q-t.q),Math.abs(e.r-t.r),Math.abs(e.s-t.s))+(t.h-e.h)},clearPath:function(){var e,t;for(e in this.cells)(t=this.cells[e])._calcCost=0,t._priority=0,t._parent=null,t._visited=!1},traverse:function(e){var t;for(t in this.cells)e(this.cells[t])},generateTile:function(e,t,r){var i=Math.abs(e.h);1>i&&(i=1);var o=this._geoCache[i];o||(this.extrudeSettings.amount=i,o=new THREE.ExtrudeGeometry(this.cellShape,this.extrudeSettings),this._geoCache[i]=o);var a=new n.Tile({size:this.cellSize,scale:t,cell:e,geometry:o,material:r});return e.tile=a,a},generateTiles:function(e){e=e||{};var t,r,i,o=[],a={tileScale:.95,cellSize:this.cellSize,material:null,extrudeSettings:{amount:1,bevelEnabled:!0,bevelSegments:1,steps:1,bevelSize:.5,bevelThickness:.5}};for(t in a=n.Tools.merge(a,e),this.cellSize=a.cellSize,this._cellWidth=2*this.cellSize,this._cellLength=.5*n.SQRT3*this._cellWidth,this.autogenerated=!0,this.extrudeSettings=a.extrudeSettings,this.cells)i=this.cells[t],(r=this.generateTile(i,a.tileScale,a.material)).position.copy(this.cellToPixel(i)),r.position.y=0,o.push(r);return o},generateTilePoly:function(e){e||(e=new THREE.MeshBasicMaterial({color:2405631}));var t=new THREE.Mesh(this.cellShapeGeo,e);return this._vec3.set(1,0,0),t.rotateOnAxis(this._vec3,n.PI/2),t},generate:function(e){var t,r,i,o;for(e=e||{},this.size="undefined"==typeof e.size?this.size:e.size,t=-this.size;t<this.size+1;t++)for(r=-this.size;r<this.size+1;r++)i=-t-r,Math.abs(t)<=this.size&&Math.abs(r)<=this.size&&Math.abs(i)<=this.size&&(o=new n.Cell(t,r,i),this.add(o))},generateOverlay:function(e,t,r){var i,o,a,s=this.cellShape.createPointsGeometry();for(i=-e;e+1>i;i++)for(o=-e;e+1>o;o++)if(a=-i-o,Math.abs(i)<=e&&Math.abs(o)<=e&&Math.abs(a)<=e){this._cel.set(i,o,a);var u=new THREE.Line(s,r);u.position.copy(this.cellToPixel(this._cel)),u.rotation.x=90*n.DEG_TO_RAD,t.add(u)}},add:function(e){var t=this.cellToHash(e);if(!this.cells[t])return this.cells[t]=e,this.numCells++,e},remove:function(e){var t=this.cellToHash(e);this.cells[t]&&(delete this.cells[t],this.numCells--)},dispose:function(){this.cells=null,this.numCells=0,this.cellShape=null,this.cellGeo.dispose(),this.cellGeo=null,this.cellShapeGeo.dispose(),this.cellShapeGeo=null,this._list=null,this._vec3=null,this._conversionVec=null,this._geoCache=null,this._matCache=null},load:function(e,t,r){var i=this;n.Tools.getJSON({url:e,callback:function(e){i.fromJSON(e),t.call(r||null,e)},cache:!1,scope:i})},fromJSON:function(e){var t,r,i=e.cells;for(this.cells={},this.numCells=0,this.size=e.size,this.cellSize=e.cellSize,this._cellWidth=2*this.cellSize,this._cellLength=.5*n.SQRT3*this._cellWidth,this.extrudeSettings=e.extrudeSettings,this.autogenerated=e.autogenerated,t=0;t<i.length;t++)(r=new n.Cell).copy(i[t]),this.add(r)},toJSON:function(){var e,t,n={size:this.size,cellSize:this.cellSize,extrudeSettings:this.extrudeSettings,autogenerated:this.autogenerated},r=[];for(t in this.cells)e=this.cells[t],r.push({q:e.q,r:e.r,s:e.s,h:e.h,walkable:e.walkable,userData:e.userData});return n.cells=r,n},_createVertex:function(e){var t=n.TAU/6*e;return new THREE.Vector3(this.cellSize*Math.cos(t),this.cellSize*Math.sin(t),0)},_cubeRound:function(e){var t=Math.round(e.q),n=Math.round(e.r),r=Math.round(e.s),i=Math.abs(t-e.q),o=Math.abs(n-e.r),a=Math.abs(r-e.s);return i>o&&i>a?t=-n-r:o>a?n=-t-r:r=-t-n,this._cel.set(t,n,r)}},n.HexGrid.prototype.constructor=n.HexGrid,n.SqrGrid=function(e){e=e||{},this.type=n.SQR,this.size=5,this.cellSize="undefined"==typeof e.cellSize?10:e.cellSize,this.cells={},this.numCells=0,this.extrudeSettings=null,this.autogenerated=!1;var t=[];t.push(new THREE.Vector3),t.push(new THREE.Vector3(-this.cellSize,this.cellSize)),t.push(new THREE.Vector3(this.cellSize,this.cellSize)),t.push(new THREE.Vector3(this.cellSize,-this.cellSize)),this.cellShape=new THREE.Shape,this.cellShape.moveTo(-this.cellSize,-this.cellSize),this.cellShape.lineTo(-this.cellSize,this.cellSize),this.cellShape.lineTo(this.cellSize,this.cellSize),this.cellShape.lineTo(this.cellSize,-this.cellSize),this.cellShape.lineTo(-this.cellSize,-this.cellSize),this.cellGeo=new THREE.Geometry,this.cellGeo.vertices=t,this.cellGeo.verticesNeedUpdate=!0,this.cellShapeGeo=new THREE.ShapeGeometry(this.cellShape),this._fullCellSize=2*this.cellSize,this._hashDelimeter=".",this._directions=[new n.Cell(1,0,0),new n.Cell(0,-1,0),new n.Cell(-1,0,0),new n.Cell(0,1,0)],this._diagonals=[new n.Cell(-1,-1,0),new n.Cell(-1,1,0),new n.Cell(1,1,0),new n.Cell(1,-1,0)],this._list=[],this._vec3=new THREE.Vector3,this._cel=new n.Cell,this._conversionVec=new THREE.Vector3,this._geoCache=[],this._matCache=[]},n.SqrGrid.prototype={cellToPixel:function(e){return this._vec3.x=e.q*this._fullCellSize,this._vec3.y=e.h,this._vec3.z=e.r*this._fullCellSize,this._vec3},pixelToCell:function(e){var t=Math.round(e.x/this._fullCellSize),n=Math.round(e.z/this._fullCellSize);return this._cel.set(t,n,0)},getCellAt:function(e){var t=Math.round(e.x/this._fullCellSize),n=Math.round(e.z/this._fullCellSize);return this._cel.set(t,n),this.cells[this.cellToHash(this._cel)]},getNeighbors:function(e,t,n){var r,i,o=this._directions.length;for(this._list.length=0,r=0;o>r;r++)this._cel.copy(e),this._cel.add(this._directions[r]),!(i=this.cells[this.cellToHash(this._cel)])||n&&!n(e,i)||this._list.push(i);if(t)for(r=0;o>r;r++)this._cel.copy(e),this._cel.add(this._diagonals[r]),!(i=this.cells[this.cellToHash(this._cel)])||n&&!n(e,i)||this._list.push(i);return this._list},getRandomCell:function(){var e,t=0,r=n.Tools.randomInt(0,this.numCells);for(e in this.cells){if(t===r)return this.cells[e];t++}return this.cells[e]},cellToHash:function(e){return e.q+this._hashDelimeter+e.r},distance:function(e,t){return Math.max(Math.abs(e.q-t.q),Math.abs(e.r-t.r))+(t.h-e.h)},clearPath:function(){var e,t;for(e in this.cells)(t=this.cells[e])._calcCost=0,t._priority=0,t._parent=null,t._visited=!1},traverse:function(e){var t;for(t in this.cells)e(this.cells[t])},generateTile:function(e,t,r){var i=Math.abs(e.h);1>i&&(i=1);var o=this._geoCache[i];o||(this.extrudeSettings.amount=i,o=new THREE.ExtrudeGeometry(this.cellShape,this.extrudeSettings),this._geoCache[i]=o);var a=new n.Tile({size:this.cellSize,scale:t,cell:e,geometry:o,material:r});return e.tile=a,a},generateTiles:function(e){e=e||{};var t,r,i,o=[],a={tileScale:.95,cellSize:this.cellSize,material:null,extrudeSettings:{amount:1,bevelEnabled:!0,bevelSegments:1,steps:1,bevelSize:.5,bevelThickness:.5}};for(t in a=n.Tools.merge(a,e),this.cellSize=a.cellSize,this._fullCellSize=2*this.cellSize,this.autogenerated=!0,this.extrudeSettings=a.extrudeSettings,this.cells)i=this.cells[t],(r=this.generateTile(i,a.tileScale,a.material)).position.copy(this.cellToPixel(i)),r.position.y=0,o.push(r);return o},generateTilePoly:function(e){e||(e=new THREE.MeshBasicMaterial({color:2405631}));var t=new THREE.Mesh(this.cellShapeGeo,e);return this._vec3.set(1,0,0),t.rotateOnAxis(this._vec3,n.PI/2),t},generate:function(e){e=e||{},this.size="undefined"==typeof e.size?this.size:e.size;var t,r,i,o=Math.ceil(this.size/2);for(t=-o;o>t;t++)for(r=-o;o>r;r++)i=new n.Cell(t,r+1),this.add(i)},generateOverlay:function(e,t,r){var i,o,a=Math.ceil(e/2);for(i=-a;a>i;i++)for(o=-a;a>o;o++){this._cel.set(i,o);var s=new THREE.Line(this.cellGeo,r);s.position.copy(this.cellToPixel(this._cel)),s.rotation.x=90*n.DEG_TO_RAD,t.add(s)}},add:function(e){var t=this.cellToHash(e);if(!this.cells[t])return this.cells[t]=e,this.numCells++,e},remove:function(e){var t=this.cellToHash(e);this.cells[t]&&(delete this.cells[t],this.numCells--)},dispose:function(){this.cells=null,this.numCells=0,this.cellShape=null,this.cellGeo.dispose(),this.cellGeo=null,this.cellShapeGeo.dispose(),this.cellShapeGeo=null,this._list=null,this._vec3=null,this._conversionVec=null,this._geoCache=null,this._matCache=null},load:function(e,t,r){n.Tools.getJSON({url:e,callback:function(e){this.fromJSON(e),t.call(r||null,e)},cache:!1,scope:this})},fromJSON:function(e){var t,r,i=e.cells;for(this.cells={},this.numCells=0,this.size=e.size,this.cellSize=e.cellSize,this._fullCellSize=2*this.cellSize,this.extrudeSettings=e.extrudeSettings,this.autogenerated=e.autogenerated,t=0;t<i.length;t++)(r=new n.Cell).copy(i[t]),this.add(r)},toJSON:function(){var e,t,n={size:this.size,cellSize:this.cellSize,extrudeSettings:this.extrudeSettings,autogenerated:this.autogenerated},r=[];for(t in this.cells)e=this.cells[t],r.push({q:e.q,r:e.r,s:e.s,h:e.h,walkable:e.walkable,userData:e.userData});return n.cells=r,n}},n.SqrGrid.prototype.constructor=n.SqrGrid,n.Tile=function(e){e=e||{};var t={cell:null,geometry:null,material:null};if(!(t=n.Tools.merge(t,e)).cell||!t.geometry)throw new Error("Missing vg.Tile configuration");this.cell=t.cell,this.cell.tile&&this.cell.tile!==this&&this.cell.tile.dispose(),this.cell.tile=this,this.uniqueID=n.Tools.generateID(),this.geometry=t.geometry,this.material=t.material,this.material||(this.material=new THREE.MeshPhongMaterial({color:n.Tools.randomizeRGB("30, 30, 30",13)})),this.objectType=n.TILE,this.entity=null,this.userData={},this.selected=!1,this.highlight="0x0084cc",this.mesh=new THREE.Mesh(this.geometry,this.material),this.mesh.userData.structure=this,this.position=this.mesh.position,this.rotation=this.mesh.rotation,this.rotation.x=-90*n.DEG_TO_RAD,this.mesh.scale.set(t.scale,t.scale,1),this.material.emissive?this._emissive=this.material.emissive.getHex():this._emissive=null},n.Tile.prototype={select:function(){return this.material.emissive&&this.material.emissive.setHex(this.highlight),this.selected=!0,this},deselect:function(){return null!==this._emissive&&this.material.emissive&&this.material.emissive.setHex(this._emissive),this.selected=!1,this},toggle:function(){return this.selected?this.deselect():this.select(),this},dispose:function(){this.cell&&this.cell.tile&&(this.cell.tile=null),this.cell=null,this.position=null,this.rotation=null,this.mesh.parent&&this.mesh.parent.remove(this.mesh),this.mesh.userData.structure=null,this.mesh=null,this.material=null,this.userData=null,this.entity=null,this.geometry=null,this._emissive=null}},n.Tile.prototype.constructor=n.Tile,function(){var e=function(){this.obj=null,this.next=null,this.prev=null,this.free=!0},t=function(){this.first=null,this.last=null,this.length=0,this.objToNodeMap={},this.uniqueID=Date.now()+""+Math.floor(1e3*Math.random()),this.sortArray=[]};t.generateID=function(){return Math.random().toString(36).slice(2)+Date.now()},(t.prototype={getNode:function(e){return this.objToNodeMap[e.uniqueID]},addNode:function(n){var r=new e;if(!n.uniqueID)try{n.uniqueID=t.generateID()}catch(i){return console.error("[LinkedList.addNode] obj passed is immutable: cannot attach necessary identifier"),null}return r.obj=n,r.free=!1,this.objToNodeMap[n.uniqueID]=r,r},swapObjects:function(e,t){this.objToNodeMap[e.obj.uniqueID]=null,this.objToNodeMap[t.uniqueID]=e,e.obj=t},add:function(e){var t=this.objToNodeMap[e.uniqueID];if(t){if(!1===t.free)return;t.obj=e,t.free=!1,t.next=null,t.prev=null}else t=this.addNode(e);if(this.first){if(!this.last)throw new Error("[LinkedList.add] No last in the list -- that shouldn't happen here");this.last.next=t,t.prev=this.last,this.last=t,t.next=null}else this.first=t,this.last=t,t.next=null,t.prev=null;this.length++,this.showDebug&&this.dump("after add")},has:function(e){return!!this.objToNodeMap[e.uniqueID]},moveUp:function(e){this.dump("before move up");var t=this.getNode(e);if(!t)throw"Oops, trying to move an object that isn't in the list";if(t.prev){var n=t.prev,r=n.prev;t==this.last&&(this.last=n);var i=t.next;r&&(r.next=t),t.next=n,t.prev=n.prev,n.next=i,n.prev=t,this.first==n&&(this.first=t)}},moveDown:function(e){var t=this.getNode(e);if(!t)throw"Oops, trying to move an object that isn't in the list";if(t.next){var n=t.next;this.moveUp(n.obj),this.last==n&&(this.last=t)}},sort:function(e){var t,n,r=this.sortArray,i=this.first;for(r.length=0;i;)r.push(i.obj),i=i.next;for(this.clear(),r.sort(e),n=r.length,t=0;n>t;t++)this.add(r[t])},remove:function(e){var t=this.getNode(e);return!(!t||t.free)&&(t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t.prev||(this.first=t.next),t.next||(this.last=t.prev),t.free=!0,t.prev=null,t.next=null,this.length--,!0)},shift:function(){var e=this.first;return 0===this.length?null:(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),this.first=e.next,e.next||(this.last=null),e.free=!0,e.prev=null,e.next=null,this.length--,e.obj)},pop:function(){var e=this.last;return 0===this.length?null:(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),this.last=e.prev,e.prev||(this.first=null),e.free=!0,e.prev=null,e.next=null,this.length--,e.obj)},concat:function(e){for(var t=e.first;t;)this.add(t.obj),t=t.next},clear:function(){for(var e=this.first;e;)e.free=!0,e=e.next;this.first=null,this.length=0},dispose:function(){for(var e=this.first;e;)e.obj=null,e=e.next;this.first=null,this.objToNodeMap=null},dump:function(e){console.log("===================="+e+"=====================");for(var t=this.first;t;)console.log("{"+t.obj.toString()+"} previous="+(t.prev?t.prev.obj:"NULL")),t=t.next();console.log("==================================="),console.log("Last: {"+(this.last?this.last.obj:"NULL")+"} First: {"+(this.first?this.first.obj:"NULL")+"}")}}).constructor=t,n.LinkedList=t}(),function(){var e=function(e,t,n,r,i){this._listener=t,this.isOnce=n,this.context=r,this.signal=e,this._priority=i||0};(e.prototype={active:!0,params:null,execute:function(e){var t,n;return this.active&&this._listener&&(n=this.params?this.params.concat(e):e,t=this._listener.apply(this.context,n),this.isOnce&&this.detach()),t},detach:function(){return this.isBound()?this.signal.remove(this._listener,this.context):null},isBound:function(){return!!this.signal&&!!this._listener},_destroy:function(){delete this.signal,delete this._listener,delete this.context},toString:function(){return"[SignalBinding isOnce:"+this.isOnce+", isBound:"+this.isBound()+", active:"+this.active+"]"}}).constructor=e;var t=function(){this._bindings=[],this._prevParams=null;var e=this;this.dispatch=function(){t.prototype.dispatch.apply(e,arguments)}};t.prototype={memorize:!1,_shouldPropagate:!0,active:!0,validateListener:function(e,t){if("function"!=typeof e)throw new Error("Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",t))},_registerListener:function(t,n,r,i){var o,a=this._indexOfListener(t,r);if(-1!==a){if((o=this._bindings[a]).isOnce!==n)throw new Error("You cannot add"+(n?"":"Once")+"() then add"+(n?"Once":"")+"() the same listener without removing the relationship first.")}else o=new e(this,t,n,r,i),this._addBinding(o);return this.memorize&&this._prevParams&&o.execute(this._prevParams),o},_addBinding:function(e){var t=this._bindings.length;do{t--}while(this._bindings[t]&&e._priority<=this._bindings[t]._priority);this._bindings.splice(t+1,0,e)},_indexOfListener:function(e,t){for(var n,r=this._bindings.length;r--;)if((n=this._bindings[r])._listener===e&&n.context===t)return r;return-1},has:function(e,t){return-1!==this._indexOfListener(e,t)},add:function(e,t,n){return this.validateListener(e,"add"),this._registerListener(e,!1,t,n)},addOnce:function(e,t,n){return this.validateListener(e,"addOnce"),this._registerListener(e,!0,t,n)},remove:function(e,t){this.validateListener(e,"remove");var n=this._indexOfListener(e,t);return-1!==n&&(this._bindings[n]._destroy(),this._bindings.splice(n,1)),e},removeAll:function(e){"undefined"==typeof e&&(e=null);for(var t=this._bindings.length;t--;)e?this._bindings[t].context===e&&(this._bindings[t]._destroy(),this._bindings.splice(t,1)):this._bindings[t]._destroy();e||(this._bindings.length=0)},getNumListeners:function(){return this._bindings.length},halt:function(){this._shouldPropagate=!1},dispatch:function(){if(this.active){var e,t=Array.prototype.slice.call(arguments),n=this._bindings.length;if(this.memorize&&(this._prevParams=t),n){e=this._bindings.slice(),this._shouldPropagate=!0;do{n--}while(e[n]&&this._shouldPropagate&&!1!==e[n].execute(t))}}},forget:function(){this._prevParams=null},dispose:function(){this.removeAll(),delete this._bindings,delete this._prevParams},toString:function(){return"[Signal active:"+this.active+" numListeners:"+this.getNumListeners()+"]"}},t.prototype.constructor=t,n.Signal=t}(),n.AStarFinder=function(e){e=e||{};var t={allowDiagonal:!1,heuristicFilter:null};t=n.Tools.merge(t,e),this.allowDiagonal=t.allowDiagonal,this.heuristicFilter=t.heuristicFilter,this.list=new n.LinkedList},n.AStarFinder.prototype={findPath:function(e,t,r,i){var o,a,s,u,c,l;for(r=r||this.heuristicFilter,i.clearPath(),this.list.clear(),this.list.add(e);this.list.length>0;){if(this.list.sort(this.compare),(o=this.list.shift())._visited=!0,o===t)return n.PathUtil.backtrace(t);for(c=0,l=(s=i.getNeighbors(o,this.allowDiagonal,r)).length;l>c;c++)if((u=s[c]).walkable&&(a=o._calcCost+i.distance(o,u),!u._visited||a<u._calcCost)){if(u._visited=!0,u._parent=o,u._calcCost=a,u._priority=a+i.distance(t,u),u===t)return n.PathUtil.backtrace(t);this.list.add(u)}}return null},compare:function(e,t){return e._priority-t._priority}},n.AStarFinder.prototype.constructor=n.AStarFinder,n.PathUtil={backtrace:function(e){for(var t=[e];e._parent;)e=e._parent,t.push(e);return t.reverse()},biBacktrace:function(e,t){var n=this.backtrace(e),r=this.backtrace(t);return n.concat(r.reverse())},pathLength:function(e){var t,n,r,i,o,a=0;for(t=1;t<e.length;++t)n=e[t-1],r=e[t],i=n[0]-r[0],o=n[1]-r[1],a+=Math.sqrt(i*i+o*o);return a},interpolate:function(e,t,n,r){var i,o,a,s,u,c,l=Math.abs,d=[];for(i=n>e?1:-1,o=r>t?1:-1,u=(a=l(n-e))-(s=l(r-t));e!==n||t!==r;)d.push([e,t]),(c=2*u)>-s&&(u-=s,e+=i),a>c&&(u+=a,t+=o);return d},expandPath:function(e){var t,n,r,i,o,a,s=[],u=e.length;if(2>u)return s;for(o=0;u-1>o;++o)for(t=e[o],n=e[o+1],i=(r=this.interpolate(t[0],t[1],n[0],n[1])).length,a=0;i-1>a;++a)s.push(r[a]);return s.push(e[u-1]),s},smoothenPath:function(e,t){var n,r,i,o,a,s,u,c,l,d,f,h,p=t.length,v=t[0][0],m=t[0][1],g=t[p-1][0],y=t[p-1][1];for(a=[[n=v,r=m]],u=2;p>u;++u){for(i=(l=t[u])[0],o=l[1],d=this.interpolate(n,r,i,o),h=!1,c=1;c<d.length;++c)if(f=d[c],!e.isWalkableAt(f[0],f[1])){h=!0;break}h&&(s=t[u-1],a.push(s),n=s[0],r=s[1])}return a.push([g,y]),a},compressPath:function(e){if(e.length<3)return e;var t,n,r,i,o,a,s=[],u=e[0][0],c=e[0][1],l=e[1][0],d=e[1][1],f=l-u,h=d-c;for(f/=o=Math.sqrt(f*f+h*h),h/=o,s.push([u,c]),a=2;a<e.length;a++)t=l,n=d,r=f,i=h,f=(l=e[a][0])-t,h=(d=e[a][1])-n,h/=o=Math.sqrt(f*f+h*h),((f/=o)!==r||h!==i)&&s.push([t,n]);return s.push([l,d]),s}},n.Loader={manager:null,imageLoader:null,crossOrigin:!1,init:function(e){this.crossOrigin=e||!1,this.manager=new THREE.LoadingManager((function(){}),(function(){}),(function(){console.warn("Error loading images")})),this.imageLoader=new THREE.ImageLoader(this.manager),this.imageLoader.crossOrigin=e},loadTexture:function(e,t,n,r){var i=new THREE.Texture(null,t);return this.imageLoader.load(e,(function(e){i.image=e,i.needsUpdate=!0,n&&n(i)}),null,(function(e){r&&r(e)})),i.sourceFile=e,i}},n.MouseCaster=function(e,t,r){this.down=!1,this.rightDown=!1,this.pickedObject=null,this.selectedObject=null,this.allHits=null,this.active=!0,this.shift=!1,this.ctrl=!1,this.wheel=0,this.position=new THREE.Vector3,this.screenPosition=new THREE.Vector2,this.signal=new n.Signal,this.group=e,this._camera=t,this._raycaster=new THREE.Raycaster,this._preventDefault=!1,(r=r||document).addEventListener("mousemove",this._onDocumentMouseMove.bind(this),!1),r.addEventListener("mousedown",this._onDocumentMouseDown.bind(this),!1),r.addEventListener("mouseup",this._onDocumentMouseUp.bind(this),!1),r.addEventListener("mousewheel",this._onMouseWheel.bind(this),!1),r.addEventListener("DOMMouseScroll",this._onMouseWheel.bind(this),!1)},n.MouseCaster.OVER="over",n.MouseCaster.OUT="out",n.MouseCaster.DOWN="down",n.MouseCaster.UP="up",n.MouseCaster.CLICK="click",n.MouseCaster.WHEEL="wheel",n.MouseCaster.prototype={update:function(){if(this.active){this._raycaster.setFromCamera(this.screenPosition,this._camera);var e,t,r=this._raycaster.intersectObject(this.group,!0);r.length>0?(t=(e=r[0]).object.userData.structure,this.pickedObject!=t&&(this.pickedObject&&this.signal.dispatch(n.MouseCaster.OUT,this.pickedObject),this.pickedObject=t,this.selectedObject=null,this.signal.dispatch(n.MouseCaster.OVER,this.pickedObject)),this.position.copy(e.point),this.screenPosition.z=e.distance):(this.pickedObject&&this.signal.dispatch(n.MouseCaster.OUT,this.pickedObject),this.pickedObject=null,this.selectedObject=null),this.allHits=r}},preventDefault:function(){this._preventDefault=!0},_onDocumentMouseDown:function(e){return(e=e||window.event).preventDefault(),this._preventDefault?(this._preventDefault=!1,!1):(this.pickedObject&&(this.selectedObject=this.pickedObject),this.shift=e.shiftKey,this.ctrl=e.ctrlKey,this.down=1===e.which,this.rightDown=3===e.which,void this.signal.dispatch(n.MouseCaster.DOWN,this.pickedObject))},_onDocumentMouseUp:function(e){return e.preventDefault(),this._preventDefault?(this._preventDefault=!1,!1):(this.shift=e.shiftKey,this.ctrl=e.ctrlKey,this.signal.dispatch(n.MouseCaster.UP,this.pickedObject),this.selectedObject&&this.pickedObject&&this.selectedObject.uniqueID===this.pickedObject.uniqueID&&this.signal.dispatch(n.MouseCaster.CLICK,this.pickedObject),this.down=1!==e.which&&this.down,void(this.rightDown=3!==e.which&&this.rightDown))},_onDocumentMouseMove:function(e){e.preventDefault(),this.screenPosition.x=e.clientX/window.innerWidth*2-1,this.screenPosition.y=-e.clientY/window.innerHeight*2+1},_onMouseWheel:function(e){if(this.active){e.preventDefault(),e.stopPropagation();var t=0;void 0!==e.wheelDelta?t=e.wheelDelta:void 0!==e.detail&&(t=-e.detail),t>0?this.wheel++:this.wheel--,this.signal.dispatch(n.MouseCaster.WHEEL,this.wheel)}}},n.MouseCaster.prototype.constructor=n.MouseCaster,n.Scene=function(e,t){var r={element:document.body,alpha:!0,antialias:!0,clearColor:"#fff",sortObjects:!1,fog:null,light:new THREE.DirectionalLight(16777215),lightPosition:null,cameraType:"PerspectiveCamera",cameraPosition:null,orthoZoom:4},i={minDistance:100,maxDistance:1e3,zoomSpeed:2,noZoom:!1};if(r=n.Tools.merge(r,e),"boolean"!=typeof t&&(i=n.Tools.merge(i,t)),this.renderer=new THREE.WebGLRenderer({alpha:r.alpha,antialias:r.antialias}),this.renderer.setClearColor(r.clearColor,0),this.renderer.sortObjects=r.sortObjects,this.width=window.innerWidth,this.height=window.innerHeight,this.orthoZoom=r.orthoZoom,this.container=new THREE.Scene,this.container.fog=r.fog,this.container.add(new THREE.AmbientLight(14540253)),r.lightPosition||r.light.position.set(-1,1,-1).normalize(),this.container.add(r.light),"OrthographicCamera"===r.cameraType){var o=window.innerWidth/this.orthoZoom,a=window.innerHeight/this.orthoZoom;this.camera=new THREE.OrthographicCamera(o/-2,o/2,a/2,a/-2,1,5e3)}else this.camera=new THREE.PerspectiveCamera(50,this.width/this.height,1,5e3);this.contolled=!!t,this.contolled&&(this.controls=new THREE.OrbitControls(this.camera,this.renderer.domElement),this.controls.minDistance=i.minDistance,this.controls.maxDistance=i.maxDistance,this.controls.zoomSpeed=i.zoomSpeed,this.controls.noZoom=i.noZoom),r.cameraPosition&&this.camera.position.copy(r.cameraPosition),window.addEventListener("resize",function(){if(this.width=window.innerWidth,this.height=window.innerHeight,"OrthographicCamera"===this.camera.type){var e=this.width/this.orthoZoom,t=this.height/this.orthoZoom;this.camera.left=e/-2,this.camera.right=e/2,this.camera.top=t/2,this.camera.bottom=t/-2}else this.camera.aspect=this.width/this.height;this.camera.updateProjectionMatrix(),this.renderer.setSize(this.width,this.height)}.bind(this),!1),this.attachTo(r.element)},n.Scene.prototype={attachTo:function(e){e.style.width=this.width+"px",e.style.height=this.height+"px",this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(this.width,this.height),e.appendChild(this.renderer.domElement)},add:function(e){this.container.add(e)},remove:function(e){this.container.remove(e)},render:function(){this.contolled&&this.controls.update(),this.renderer.render(this.container,this.camera)},updateOrthoZoom:function(){if(this.orthoZoom<=0)this.orthoZoom=0;else{var e=this.width/this.orthoZoom,t=this.height/this.orthoZoom;this.camera.left=e/-2,this.camera.right=e/2,this.camera.top=t/2,this.camera.bottom=t/-2,this.camera.updateProjectionMatrix()}},focusOn:function(e){this.camera.lookAt(e.position)}},n.Scene.prototype.constructor=n.Scene,n.SelectionManager=function(e){this.mouse=e,this.onSelect=new n.Signal,this.onDeselect=new n.Signal,this.selected=null,this.toggleSelection=!1,this.mouse.signal.add(this.onMouse,this)},n.SelectionManager.prototype={select:function(e,t){e&&(t=t||!0,this.selected!==e&&this.clearSelection(t),e.selected?this.toggleSelection&&(t&&this.onDeselect.dispatch(e),e.deselect()):e.select(),this.selected=e,t&&this.onSelect.dispatch(e))},clearSelection:function(e){e=e||!0,this.selected&&(e&&this.onDeselect.dispatch(this.selected),this.selected.deselect()),this.selected=null},onMouse:function(e,t){switch(e){case n.MouseCaster.DOWN:t||this.clearSelection();break;case n.MouseCaster.CLICK:this.select(t)}}},n.SelectionManager.prototype.constructor=n.SelectionManager,n.Tools={clamp:function(e,t,n){return Math.max(t,Math.min(n,e))},sign:function(e){return e&&e/Math.abs(e)},random:function(e,t){return 1===arguments.length?Math.random()*e-.5*e:Math.random()*(t-e)+e},randomInt:function(e,t){return 1===arguments.length?Math.random()*e-.5*e|0:Math.random()*(t-e+1)+e|0},normalize:function(e,t,n){return(e-t)/(n-t)},getShortRotation:function(e){return(e%=this.TAU)>this.PI?e-=this.TAU:e<-this.PI&&(e+=this.TAU),e},generateID:function(){return Math.random().toString(36).slice(2)+Date.now()},isPlainObject:function(e){if("object"!=typeof e||e.nodeType||e===e.window)return!1;try{if(e.constructor&&!Object.prototype.hasOwnProperty.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}return!0},merge:function(e,t){var n=this,r=Array.isArray(t),i=r&&[]||{};return r?(e=e||[],i=i.concat(e),t.forEach((function(t,r){"undefined"==typeof i[r]?i[r]=t:n.isPlainObject(t)?i[r]=n.merge(e[r],t):-1===e.indexOf(t)&&i.push(t)})),i):(e&&n.isPlainObject(e)&&Object.keys(e).forEach((function(t){i[t]=e[t]})),Object.keys(t).forEach((function(r){t[r]&&n.isPlainObject(t[r])&&e[r]?i[r]=n.merge(e[r],t[r]):i[r]=t[r]})),i)},now:function(){return window.nwf?window.nwf.system.Performance.elapsedTime:window.performance.now()},empty:function(e){for(;e.lastChild;)e.removeChild(e.lastChild)},radixSort:function(e,t,n,r){if(r=r||31,!((t=t||0)>=(n=n||e.length)-1||0>r)){for(var i=t,o=n,a=1<<r;o>i;)if(e[i]&a){--o;var s=e[i];e[i]=e[o],e[o]=s}else++i;this.radixSort(e,t,o,r-1),this.radixSort(e,o,n,r-1)}},randomizeRGB:function(e,t){var n,r,i=e.split(","),o="rgb(";for(t=this.randomInt(t),n=0;3>n;n++)0>(r=parseInt(i[n])+t)?r=0:r>255&&(r=255),o+=r+",";return(o=o.substring(0,o.length-1))+")"},getJSON:function(e){var t=new XMLHttpRequest,n="undefined"!=typeof e.cache&&e.cache?e.url:e.url+"?t="+Math.floor(1e4*Math.random())+Date.now();t.onreadystatechange=function(){if(200!==this.status)0!==this.status&&console.warn("[Tools.getJSON] Error: "+this.status+" ("+this.statusText+") :: "+e.url);else{var t=null;try{t=JSON.parse(this.responseText)}catch(n){return}e.callback.call(e.scope||null,t)}},t.open("GET",n,!0),t.setRequestHeader("Accept","application/json"),t.setRequestHeader("Content-Type","application/json"),t.send("")}}},7454:function(){!function(e){var t="KeyboardEvent"in e;t||(e.KeyboardEvent=function(){throw TypeError("Illegal constructor")}),"DOM_KEY_LOCATION_STANDARD"in e.KeyboardEvent||(e.KeyboardEvent.DOM_KEY_LOCATION_STANDARD=0),"DOM_KEY_LOCATION_LEFT"in e.KeyboardEvent||(e.KeyboardEvent.DOM_KEY_LOCATION_LEFT=1),"DOM_KEY_LOCATION_RIGHT"in e.KeyboardEvent||(e.KeyboardEvent.DOM_KEY_LOCATION_RIGHT=2),"DOM_KEY_LOCATION_NUMPAD"in e.KeyboardEvent||(e.KeyboardEvent.DOM_KEY_LOCATION_NUMPAD=3);var n=window.KeyboardEvent.DOM_KEY_LOCATION_STANDARD,r=window.KeyboardEvent.DOM_KEY_LOCATION_LEFT,i=window.KeyboardEvent.DOM_KEY_LOCATION_RIGHT,o=window.KeyboardEvent.DOM_KEY_LOCATION_NUMPAD;function a(e,t){return-1!==String(e).indexOf(t)}var s=a(navigator.platform,"Win")?"win":a(navigator.platform,"Mac")?"mac":a(navigator.platform,"CrOS")?"cros":a(navigator.platform,"Linux")?"linux":a(navigator.userAgent,"iPad")||a(navigator.platform,"iPod")||a(navigator.platform,"iPhone")?"ios":"",u=a(navigator.userAgent,"Chrome/")?"chrome":a(navigator.vendor,"Apple")?"safari":a(navigator.userAgent,"MSIE")?"ie":a(navigator.userAgent,"Gecko/")?"moz":a(navigator.userAgent,"Opera/")?"opera":"",c=u+"-"+s;function l(e,t,n){c!==t&&u!==t&&s!==t||Object.keys(n).forEach((function(t){e[t]=n[t]}))}var d={3:{code:"Cancel"},6:{code:"Help"},8:{code:"Backspace"},9:{code:"Tab"},12:{code:"Clear"},13:{code:"Enter"},16:{code:"Shift"},17:{code:"Control"},18:{code:"Alt"},19:{code:"Pause"},20:{code:"CapsLock"},21:{code:"KanaMode"},22:{code:"HangulMode"},23:{code:"JunjaMode"},24:{code:"FinalMode"},25:{code:"KanjiMode"},27:{code:"Escape"},28:{code:"Convert"},29:{code:"NonConvert"},30:{code:"Accept"},31:{code:"ModeChange"},32:{code:"Space"},33:{code:"PageUp"},34:{code:"PageDown"},35:{code:"End"},36:{code:"Home"},37:{code:"ArrowLeft"},38:{code:"ArrowUp"},39:{code:"ArrowRight"},40:{code:"ArrowDown"},41:{code:"Select"},42:{code:"Print"},43:{code:"Execute"},44:{code:"PrintScreen"},45:{code:"Insert"},46:{code:"Delete"},47:{code:"Help"},48:{code:"Digit0",keyCap:"0"},49:{code:"Digit1",keyCap:"1"},50:{code:"Digit2",keyCap:"2"},51:{code:"Digit3",keyCap:"3"},52:{code:"Digit4",keyCap:"4"},53:{code:"Digit5",keyCap:"5"},54:{code:"Digit6",keyCap:"6"},55:{code:"Digit7",keyCap:"7"},56:{code:"Digit8",keyCap:"8"},57:{code:"Digit9",keyCap:"9"},65:{code:"KeyA",keyCap:"a"},66:{code:"KeyB",keyCap:"b"},67:{code:"KeyC",keyCap:"c"},68:{code:"KeyD",keyCap:"d"},69:{code:"KeyE",keyCap:"e"},70:{code:"KeyF",keyCap:"f"},71:{code:"KeyG",keyCap:"g"},72:{code:"KeyH",keyCap:"h"},73:{code:"KeyI",keyCap:"i"},74:{code:"KeyJ",keyCap:"j"},75:{code:"KeyK",keyCap:"k"},76:{code:"KeyL",keyCap:"l"},77:{code:"KeyM",keyCap:"m"},78:{code:"KeyN",keyCap:"n"},79:{code:"KeyO",keyCap:"o"},80:{code:"KeyP",keyCap:"p"},81:{code:"KeyQ",keyCap:"q"},82:{code:"KeyR",keyCap:"r"},83:{code:"KeyS",keyCap:"s"},84:{code:"KeyT",keyCap:"t"},85:{code:"KeyU",keyCap:"u"},86:{code:"KeyV",keyCap:"v"},87:{code:"KeyW",keyCap:"w"},88:{code:"KeyX",keyCap:"x"},89:{code:"KeyY",keyCap:"y"},90:{code:"KeyZ",keyCap:"z"},91:{code:"OSLeft",location:r},92:{code:"OSRight",location:i},93:{code:"ContextMenu"},95:{code:"Standby"},96:{code:"Numpad0",keyCap:"0",location:o},97:{code:"Numpad1",keyCap:"1",location:o},98:{code:"Numpad2",keyCap:"2",location:o},99:{code:"Numpad3",keyCap:"3",location:o},100:{code:"Numpad4",keyCap:"4",location:o},101:{code:"Numpad5",keyCap:"5",location:o},102:{code:"Numpad6",keyCap:"6",location:o},103:{code:"Numpad7",keyCap:"7",location:o},104:{code:"Numpad8",keyCap:"8",location:o},105:{code:"Numpad9",keyCap:"9",location:o},106:{code:"NumpadMultiply",keyCap:"*",location:o},107:{code:"NumpadAdd",keyCap:"+",location:o},108:{code:"NumpadComma",keyCap:",",location:o},109:{code:"NumpadSubtract",keyCap:"-",location:o},110:{code:"NumpadDecimal",keyCap:".",location:o},111:{code:"NumpadDivide",keyCap:"/",location:o},112:{code:"F1"},113:{code:"F2"},114:{code:"F3"},115:{code:"F4"},116:{code:"F5"},117:{code:"F6"},118:{code:"F7"},119:{code:"F8"},120:{code:"F9"},121:{code:"F10"},122:{code:"F11"},123:{code:"F12"},124:{code:"F13"},125:{code:"F14"},126:{code:"F15"},127:{code:"F16"},128:{code:"F17"},129:{code:"F18"},130:{code:"F19"},131:{code:"F20"},132:{code:"F21"},133:{code:"F22"},134:{code:"F23"},135:{code:"F24"},144:{code:"NumLock",location:o},145:{code:"ScrollLock"},160:{code:"ShiftLeft",location:r},161:{code:"ShiftRight",location:i},162:{code:"ControlLeft",location:r},163:{code:"ControlRight",location:i},164:{code:"AltLeft",location:r},165:{code:"AltRight",location:i},166:{code:"BrowserBack"},167:{code:"BrowserForward"},168:{code:"BrowserRefresh"},169:{code:"BrowserStop"},170:{code:"BrowserSearch"},171:{code:"BrowserFavorites"},172:{code:"BrowserHome"},173:{code:"VolumeMute"},174:{code:"VolumeDown"},175:{code:"VolumeUp"},176:{code:"MediaTrackNext"},177:{code:"MediaTrackPrevious"},178:{code:"MediaStop"},179:{code:"MediaPlayPause"},180:{code:"LaunchMail"},181:{code:"MediaSelect"},182:{code:"LaunchApp1"},183:{code:"LaunchApp2"},186:{code:"Semicolon",keyCap:";"},187:{code:"Equal",keyCap:"="},188:{code:"Comma",keyCap:","},189:{code:"Minus",keyCap:"-"},190:{code:"Period",keyCap:"."},191:{code:"Slash",keyCap:"/"},192:{code:"Backquote",keyCap:"`"},219:{code:"BracketLeft",keyCap:"["},220:{code:"Backslash",keyCap:"\\"},221:{code:"BracketRight",keyCap:"]"},222:{code:"Quote",keyCap:"'"},226:{code:"IntlBackslash",keyCap:"\\"},229:{code:"Process"},246:{code:"Attn"},247:{code:"CrSel"},248:{code:"ExSel"},249:{code:"EraseEof"},250:{code:"Play"},251:{code:"ZoomToggle"},254:{code:"Clear"}};l(d,"moz",{59:{code:"Semicolon",keyCap:";"},61:{code:"Equal",keyCap:"="},107:{code:"Equal",keyCap:"="},109:{code:"Minus",keyCap:"-"},187:{code:"NumpadAdd",keyCap:"+",location:o},189:{code:"NumpadSubtract",keyCap:"-",location:o}}),l(d,"moz-mac",{12:{code:"NumLock",location:o},173:{code:"Minus",keyCap:"-"}}),l(d,"moz-win",{173:{code:"Minus",keyCap:"-"}}),l(d,"chrome-mac",{93:{code:"OSRight",location:i}}),l(d,"safari",{3:{code:"Enter"},25:{code:"Tab"}}),l(d,"ios",{10:{code:"Enter",location:n}}),l(d,"safari-mac",{91:{code:"OSLeft",location:r},93:{code:"OSRight",location:i},229:{code:"KeyQ",keyCap:"Q"}});var f={};"cros"===s&&(f["U+00A0"]={code:"ShiftLeft",location:r},f["U+00A1"]={code:"ShiftRight",location:i},f["U+00A2"]={code:"ControlLeft",location:r},f["U+00A3"]={code:"ControlRight",location:i},f["U+00A4"]={code:"AltLeft",location:r},f["U+00A5"]={code:"AltRight",location:i}),"chrome-mac"===c&&(f["U+0010"]={code:"ContextMenu"}),"safari-mac"===c&&(f["U+0010"]={code:"ContextMenu"}),"ios"===s&&(f["U+0010"]={code:"Function"},f["U+001C"]={code:"ArrowLeft"},f["U+001D"]={code:"ArrowRight"},f["U+001E"]={code:"ArrowUp"},f["U+001F"]={code:"ArrowDown"},f["U+0001"]={code:"Home"},f["U+0004"]={code:"End"},f["U+000B"]={code:"PageUp"},f["U+000C"]={code:"PageDown"});var h=[];h[r]={16:{code:"ShiftLeft",location:r},17:{code:"ControlLeft",location:r},18:{code:"AltLeft",location:r}},h[i]={16:{code:"ShiftRight",location:i},17:{code:"ControlRight",location:i},18:{code:"AltRight",location:i}},h[o]={13:{code:"NumpadEnter",location:o}},l(h[o],"moz",{109:{code:"NumpadSubtract",location:o},107:{code:"NumpadAdd",location:o}}),l(h[r],"moz-mac",{224:{code:"OSLeft",location:r}}),l(h[i],"moz-mac",{224:{code:"OSRight",location:i}}),l(h[i],"moz-win",{91:{code:"OSRight",location:i}}),l(h[i],"mac",{93:{code:"OSRight",location:i}}),l(h[o],"chrome-mac",{12:{code:"NumLock",location:o}}),l(h[o],"safari-mac",{12:{code:"NumLock",location:o},187:{code:"NumpadAdd",location:o},189:{code:"NumpadSubtract",location:o},190:{code:"NumpadDecimal",location:o},191:{code:"NumpadDivide",location:o}});var p={ShiftLeft:{key:"Shift"},ShiftRight:{key:"Shift"},ControlLeft:{key:"Control"},ControlRight:{key:"Control"},AltLeft:{key:"Alt"},AltRight:{key:"Alt"},OSLeft:{key:"OS"},OSRight:{key:"OS"},NumpadEnter:{key:"Enter"},Space:{key:" "},Digit0:{key:"0",shiftKey:")"},Digit1:{key:"1",shiftKey:"!"},Digit2:{key:"2",shiftKey:"@"},Digit3:{key:"3",shiftKey:"#"},Digit4:{key:"4",shiftKey:"$"},Digit5:{key:"5",shiftKey:"%"},Digit6:{key:"6",shiftKey:"^"},Digit7:{key:"7",shiftKey:"&"},Digit8:{key:"8",shiftKey:"*"},Digit9:{key:"9",shiftKey:"("},KeyA:{key:"a",shiftKey:"A"},KeyB:{key:"b",shiftKey:"B"},KeyC:{key:"c",shiftKey:"C"},KeyD:{key:"d",shiftKey:"D"},KeyE:{key:"e",shiftKey:"E"},KeyF:{key:"f",shiftKey:"F"},KeyG:{key:"g",shiftKey:"G"},KeyH:{key:"h",shiftKey:"H"},KeyI:{key:"i",shiftKey:"I"},KeyJ:{key:"j",shiftKey:"J"},KeyK:{key:"k",shiftKey:"K"},KeyL:{key:"l",shiftKey:"L"},KeyM:{key:"m",shiftKey:"M"},KeyN:{key:"n",shiftKey:"N"},KeyO:{key:"o",shiftKey:"O"},KeyP:{key:"p",shiftKey:"P"},KeyQ:{key:"q",shiftKey:"Q"},KeyR:{key:"r",shiftKey:"R"},KeyS:{key:"s",shiftKey:"S"},KeyT:{key:"t",shiftKey:"T"},KeyU:{key:"u",shiftKey:"U"},KeyV:{key:"v",shiftKey:"V"},KeyW:{key:"w",shiftKey:"W"},KeyX:{key:"x",shiftKey:"X"},KeyY:{key:"y",shiftKey:"Y"},KeyZ:{key:"z",shiftKey:"Z"},Numpad0:{key:"0"},Numpad1:{key:"1"},Numpad2:{key:"2"},Numpad3:{key:"3"},Numpad4:{key:"4"},Numpad5:{key:"5"},Numpad6:{key:"6"},Numpad7:{key:"7"},Numpad8:{key:"8"},Numpad9:{key:"9"},NumpadMultiply:{key:"*"},NumpadAdd:{key:"+"},NumpadComma:{key:","},NumpadSubtract:{key:"-"},NumpadDecimal:{key:"."},NumpadDivide:{key:"/"},Semicolon:{key:";",shiftKey:":"},Equal:{key:"=",shiftKey:"+"},Comma:{key:",",shiftKey:"<"},Minus:{key:"-",shiftKey:"_"},Period:{key:".",shiftKey:">"},Slash:{key:"/",shiftKey:"?"},Backquote:{key:"`",shiftKey:"~"},BracketLeft:{key:"[",shiftKey:"{"},Backslash:{key:"\\",shiftKey:"|"},BracketRight:{key:"]",shiftKey:"}"},Quote:{key:"'",shiftKey:'"'},IntlBackslash:{key:"\\",shiftKey:"|"}};l(p,"mac",{OSLeft:{key:"Meta"},OSRight:{key:"Meta"}});var v={Esc:"Escape",Nonconvert:"NonConvert",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Menu:"ContextMenu",MediaNextTrack:"MediaTrackNext",MediaPreviousTrack:"MediaTrackPrevious",SelectMedia:"MediaSelect",HalfWidth:"Hankaku",FullWidth:"Zenkaku",RomanCharacters:"Romaji",Crsel:"CrSel",Exsel:"ExSel",Zoom:"ZoomToggle"},m=function(e,t){var n={};return Object.keys(e).forEach((function(r){var i=e[r];t in i&&(n[i[t]]=i)})),n}(d,"code");try{var g=t&&"location"in new KeyboardEvent("")}catch(b){}function y(e){var t="keyCode"in e?e.keyCode:"which"in e?e.which:0,n=function(){if(g||"keyLocation"in e){var n=g?e.location:e.keyLocation;if(n&&t in h[n])return h[n][t]}return"keyIdentifier"in e&&e.keyIdentifier in f?f[e.keyIdentifier]:t in d?d[t]:null}();if(!n)return null;var r=function(){var t=p[n.code];return t?e.shiftKey&&"shiftKey"in t?t.shiftKey:t.key:n.code}();return{code:n.code,key:r,location:n.location,keyCap:n.keyCap}}"KeyboardEvent"in e&&"defineProperty"in Object&&function(){function e(e,t,n){t in e||Object.defineProperty(e,t,n)}if(e(KeyboardEvent.prototype,"code",{get:function(){var e=y(this);return e?e.code:""}}),"key"in KeyboardEvent.prototype){var t=Object.getOwnPropertyDescriptor(KeyboardEvent.prototype,"key");Object.defineProperty(KeyboardEvent.prototype,"key",{get:function(){var e=t.get.call(this);return v.hasOwnProperty(e)?v[e]:e}})}e(KeyboardEvent.prototype,"key",{get:function(){var e=y(this);return e&&"key"in e?e.key:"Unidentified"}}),e(KeyboardEvent.prototype,"location",{get:function(){var e=y(this);return e&&"location"in e?e.location:n}}),e(KeyboardEvent.prototype,"locale",{get:function(){return""}})}(),"queryKeyCap"in e.KeyboardEvent||(e.KeyboardEvent.queryKeyCap=function(e,t){if(e=String(e),!m.hasOwnProperty(e))return"Undefined";if(t&&"en-us"!==String(t).toLowerCase())throw Error("Unsupported locale");var n=m[e];return n.keyCap||n.code||"Undefined"}),e.identifyKey=function(e){if(!("code"in e)){var t=y(e);e.code=t?t.code:"",e.key=t&&"key"in t?t.key:"Unidentified",e.location="location"in e?e.location:"keyLocation"in e?e.keyLocation:t&&"location"in t?t.location:n,e.locale=""}}}(window)},3386:function(e){e.exports=AFRAME.registerComponent("checkpoint-controls",{schema:{enabled:{default:!0},mode:{default:"teleport",oneOf:["teleport","animate"]},animateSpeed:{default:3}},init:function(){this.active=!0,this.checkpoint=null,this.isNavMeshConstrained=!1,this.offset=new THREE.Vector3,this.position=new THREE.Vector3,this.targetPosition=new THREE.Vector3},play:function(){this.active=!0},pause:function(){this.active=!1},setCheckpoint:function(e){const t=this.el;this.active&&this.checkpoint!==e&&(this.checkpoint&&t.emit("navigation-end",{checkpoint:this.checkpoint}),this.checkpoint=e,this.sync(),this.position.distanceTo(this.targetPosition)<.1?this.checkpoint=null:(t.emit("navigation-start",{checkpoint:e}),"teleport"===this.data.mode&&(this.el.setAttribute("position",this.targetPosition),this.checkpoint=null,t.emit("navigation-end",{checkpoint:e}),t.components["movement-controls"].updateNavLocation())))},isVelocityActive:function(){return!(!this.active||!this.checkpoint)},getVelocity:function(){if(!this.active)return;const e=this.data,t=this.offset,n=this.position,r=this.targetPosition,i=this.checkpoint;return this.sync(),n.distanceTo(r)<.1?(this.checkpoint=null,this.el.emit("navigation-end",{checkpoint:i}),t.set(0,0,0)):(t.setLength(e.animateSpeed),t)},sync:function(){const e=this.offset,t=this.position,n=this.targetPosition;t.copy(this.el.getAttribute("position")),this.checkpoint.object3D.getWorldPosition(n),n.add(this.checkpoint.components.checkpoint.getOffset()),e.copy(n).sub(t)}})},5062:function(e,t,n){const r=n(6453),i=n(4379),o=.2,a="left",s="right",u=1,c=2;e.exports=AFRAME.registerComponent("gamepad-controls",{GamepadButton:r,schema:{enabled:{default:!0},camera:{default:"[camera]",type:"selector"},rotationSensitivity:{default:2}},init:function(){const e=this.el.sceneEl;this.system=e.systems["tracked-controls-webxr"]||{controllers:[]},this.prevTime=window.performance.now(),this.buttons={};const t=this.el.object3D.rotation;this.pitch=new THREE.Object3D,this.pitch.rotation.x=THREE.Math.degToRad(t.x),this.yaw=new THREE.Object3D,this.yaw.position.y=10,this.yaw.rotation.y=THREE.Math.degToRad(t.y),this.yaw.add(this.pitch),this._lookVector=new THREE.Vector2,this._moveVector=new THREE.Vector2,this._dpadVector=new THREE.Vector2,e.addBehavior(this)},update:function(){this.tick()},tick:function(e,t){this.updateButtonState(),this.updateRotation(t)},remove:function(){},isVelocityActive:function(){if(!this.data.enabled||!this.isConnected())return!1;const e=this._dpadVector,t=this._moveVector;this.getDpad(e),this.getJoystick(u,t);const n=e.x||t.x,r=e.y||t.y;return Math.abs(n)>o||Math.abs(r)>o},getVelocityDelta:function(){const e=this._dpadVector,t=this._moveVector;this.getDpad(e),this.getJoystick(u,t);const n=e.x||t.x,r=e.y||t.y,i=new THREE.Vector3;return Math.abs(n)>o&&(i.x+=n),Math.abs(r)>o&&(i.z+=r),i},isRotationActive:function(){if(!this.data.enabled||!this.isConnected())return!1;const e=this._lookVector;return this.getJoystick(c,e),Math.abs(e.x)>o||Math.abs(e.y)>o},updateRotation:function(e){if(!this.isRotationActive())return;const t=this.data,n=this.yaw,r=this.pitch,i=t.camera.components["look-controls"],a=i&&i.pitchObject&&i.yawObject;a&&(r.rotation.copy(i.pitchObject.rotation),n.rotation.copy(i.yawObject.rotation));const s=this._lookVector;this.getJoystick(c,s),Math.abs(s.x)<=o&&(s.x=0),Math.abs(s.y)<=o&&(s.y=0),s.multiplyScalar(t.rotationSensitivity*e/1e3),n.rotation.y-=s.x,r.rotation.x-=s.y,r.rotation.x=Math.max(-Math.PI/2,Math.min(Math.PI/2,r.rotation.x)),t.camera.object3D.rotation.set(r.rotation.x,n.rotation.y,0),a&&(i.pitchObject.rotation.copy(r.rotation),i.yawObject.rotation.copy(n.rotation))},updateButtonState:function(){const e=this.getGamepad(s);if(this.data.enabled&&e)for(var t=0;t<e.buttons.length;t++)e.buttons[t].pressed&&!this.buttons[t]?this.emit(new i("gamepadbuttondown",t,e.buttons[t])):!e.buttons[t].pressed&&this.buttons[t]&&this.emit(new i("gamepadbuttonup",t,e.buttons[t])),this.buttons[t]=e.buttons[t].pressed;else Object.keys(this.buttons)&&(this.buttons={})},emit:function(e){this.el.emit(e.type,e),this.el.emit(e.type+":"+e.index,new i(e.type,e.index,e))},getGamepad:function(){const e=[],t=[];return function(n){const r=this.el.sceneEl.components["proxy-controls"],i=r&&r.isConnected()&&r.getGamepad(0);if(i)return i;e.length=0;for(let t=0;t<this.system.controllers.length;t++){const r=this.system.controllers[t],i=r?r.gamepad:null;if(e.push(i),i&&i.handedness===n)return i}const o=navigator.getGamepads?navigator.getGamepads():t;for(let e=0;e<o.length;e++){const t=o[e];if(t&&t.hand===n)return t}return e[0]||o[0]}}(),getButton:function(e){return this.getGamepad(s).buttons[e]},getAxis:function(e){return this.getGamepad(e>1?s:a).axes[e]},getJoystick:function(e,t){const n=this.getGamepad(e===u?a:s);if("xr-standard"===n.mapping)switch(e){case u:return t.set(n.axes[2],n.axes[3]);case c:return t.set(n.axes[0],n.axes[1])}else switch(e){case u:return t.set(n.axes[0],n.axes[1]);case c:return t.set(n.axes[2],n.axes[3])}throw new Error('Unexpected joystick index "%d".',e)},getDpad:function(e){const t=this.getGamepad(a);return t.buttons[r.DPAD_RIGHT]?e.set((t.buttons[r.DPAD_RIGHT].pressed?1:0)+(t.buttons[r.DPAD_LEFT].pressed?-1:0),(t.buttons[r.DPAD_UP].pressed?-1:0)+(t.buttons[r.DPAD_DOWN].pressed?1:0)):e.set(0,0)},isConnected:function(){const e=this.getGamepad(a);return!(!e||!e.connected)},getID:function(){return this.getGamepad(a).id}})},2406:function(e,t,n){n(3386),n(5062),n(2250),n(9048),n(3819),n(9893)},2250:function(e,t,n){n(7454);const r=window.KeyboardEvent;e.exports=AFRAME.registerComponent("keyboard-controls",{schema:{enabled:{default:!0},debug:{default:!1}},init:function(){this.dVelocity=new THREE.Vector3,this.localKeys={},this.listeners={keydown:this.onKeyDown.bind(this),keyup:this.onKeyUp.bind(this),blur:this.onBlur.bind(this)},this.attachEventListeners()},isVelocityActive:function(){return this.data.enabled&&!!Object.keys(this.getKeys()).length},getVelocityDelta:function(){const e=this.data,t=this.getKeys();return this.dVelocity.set(0,0,0),e.enabled&&((t.KeyW||t.ArrowUp)&&(this.dVelocity.z-=1),(t.KeyA||t.ArrowLeft)&&(this.dVelocity.x-=1),(t.KeyS||t.ArrowDown)&&(this.dVelocity.z+=1),(t.KeyD||t.ArrowRight)&&(this.dVelocity.x+=1)),this.dVelocity.clone()},play:function(){this.attachEventListeners()},pause:function(){this.removeEventListeners()},remove:function(){this.pause()},attachEventListeners:function(){window.addEventListener("keydown",this.listeners.keydown,!1),window.addEventListener("keyup",this.listeners.keyup,!1),window.addEventListener("blur",this.listeners.blur,!1)},removeEventListeners:function(){window.removeEventListener("keydown",this.listeners.keydown),window.removeEventListener("keyup",this.listeners.keyup),window.removeEventListener("blur",this.listeners.blur)},onKeyDown:function(e){AFRAME.utils.shouldCaptureKeyEvent(e)&&(this.localKeys[e.code]=!0,this.emit(e))},onKeyUp:function(e){AFRAME.utils.shouldCaptureKeyEvent(e)&&(delete this.localKeys[e.code],this.emit(e))},onBlur:function(){for(let e in this.localKeys)this.localKeys.hasOwnProperty(e)&&delete this.localKeys[e]},emit:function(e){"__keyboard-controls-proxy"in e&&this.el.emit(e.type,e),this.el.emit(e.type+":"+e.code,new r(e.type,e)),this.data.debug&&console.log(e.type+":"+e.code)},isPressed:function(e){return e in this.getKeys()},getKeys:function(){return this.isProxied()?this.el.sceneEl.components["proxy-controls"].getKeyboard():this.localKeys},isProxied:function(){const e=this.el.sceneEl.components["proxy-controls"];return e&&e.isConnected()}})},3819:function(e){const t="-controls";e.exports=AFRAME.registerComponent("movement-controls",{dependencies:["rotation"],schema:{enabled:{default:!0},controls:{default:["gamepad","trackpad","keyboard","touch"]},speed:{default:.3,min:0},fly:{default:!1},constrainToNavMesh:{default:!1},camera:{default:"[movement-controls] [camera]",type:"selector"}},init:function(){const e=this.el;this.velocityCtrl=null,this.velocity=new THREE.Vector3,this.heading=new THREE.Quaternion,this.navGroup=null,this.navNode=null,e.sceneEl.hasLoaded?this.injectControls():e.sceneEl.addEventListener("loaded",this.injectControls.bind(this))},update:function(e){const t=this.el,n=this.data,r=t.sceneEl.systems.nav;t.sceneEl.hasLoaded&&this.injectControls(),r&&n.constrainToNavMesh!==e.constrainToNavMesh&&(n.constrainToNavMesh?r.addAgent(this):r.removeAgent(this))},injectControls:function(){const e=this.data;var n;for(let r=0;r<e.controls.length;r++)n=e.controls[r]+t,this.el.components[n]||this.el.setAttribute(n,"")},updateNavLocation:function(){this.navGroup=null,this.navNode=null},tick:function(){const e=new THREE.Vector3,t=new THREE.Vector3,n=new THREE.Vector3;return function(r,i){if(!i)return;const o=this.el,a=this.data;if(!a.enabled)return;this.updateVelocityCtrl();const s=this.velocityCtrl,u=this.velocity;if(s)if(i/1e3>.2?u.set(0,0,0):this.updateVelocity(i),a.constrainToNavMesh&&!1!==s.isNavMeshConstrained){if(u.lengthSq()<1e-5)return;e.copy(o.object3D.position),t.copy(u).multiplyScalar(i/1e3).add(e);const r=o.sceneEl.systems.nav;this.navGroup=null===this.navGroup?r.getGroup(e):this.navGroup,this.navNode=this.navNode||r.getNode(e,this.navGroup),this.navNode=r.clampStep(e,t,this.navGroup,this.navNode,n),o.object3D.position.copy(n)}else o.hasAttribute("velocity")?o.setAttribute("velocity",u):(o.object3D.position.x+=u.x*i/1e3,o.object3D.position.y+=u.y*i/1e3,o.object3D.position.z+=u.z*i/1e3)}}(),updateVelocityCtrl:function(){const e=this.data;if(e.enabled){for(let n=0,r=e.controls.length;n<r;n++){const r=this.el.components[e.controls[n]+t];if(r&&r.isVelocityActive())return void(this.velocityCtrl=r)}this.velocityCtrl=null}},updateVelocity:function(){const e=new THREE.Vector2,t=new THREE.Quaternion;return function(n){let r;const i=this.el,o=this.velocityCtrl,a=this.velocity,s=this.data;if(o){if(!o.getVelocityDelta){if(o.getVelocity)return void a.copy(o.getVelocity());if(o.getPositionDelta)return void a.copy(o.getPositionDelta(n).multiplyScalar(1e3/n));throw new Error("Incompatible movement controls: ",o)}r=o.getVelocityDelta(n)}if(i.hasAttribute("velocity")&&!s.constrainToNavMesh&&a.copy(this.el.getAttribute("velocity")),r&&s.enabled){const n=s.camera;t.copy(n.object3D.quaternion),t.premultiply(i.object3D.quaternion),r.applyQuaternion(t);const o=r.length();s.fly?(a.copy(r),a.multiplyScalar(16.66667*this.data.speed)):(e.set(r.x,r.z),e.setLength(o*this.data.speed*16.66667),a.x=e.x,a.z=e.y)}}}()})},9048:function(e){e.exports=AFRAME.registerComponent("touch-controls",{schema:{enabled:{default:!0},reverseEnabled:{default:!0}},init:function(){this.dVelocity=new THREE.Vector3,this.bindMethods(),this.direction=0},play:function(){this.addEventListeners()},pause:function(){this.removeEventListeners(),this.dVelocity.set(0,0,0)},remove:function(){this.pause()},addEventListeners:function(){const e=this.el.sceneEl,t=e.canvas;t?(t.addEventListener("touchstart",this.onTouchStart),t.addEventListener("touchend",this.onTouchEnd)):e.addEventListener("render-target-loaded",this.addEventListeners.bind(this))},removeEventListeners:function(){const e=this.el.sceneEl&&this.el.sceneEl.canvas;e&&(e.removeEventListener("touchstart",this.onTouchStart),e.removeEventListener("touchend",this.onTouchEnd))},isVelocityActive:function(){return this.data.enabled&&!!this.direction},getVelocityDelta:function(){return this.dVelocity.z=this.direction,this.dVelocity.clone()},bindMethods:function(){this.onTouchStart=this.onTouchStart.bind(this),this.onTouchEnd=this.onTouchEnd.bind(this)},onTouchStart:function(e){this.direction=-1,this.data.reverseEnabled&&2===e.touches.length&&(this.direction=1),e.preventDefault()},onTouchEnd:function(e){this.direction=0,e.preventDefault()}})},9893:function(e){e.exports=AFRAME.registerComponent("trackpad-controls",{schema:{enabled:{default:!0},enableNegX:{default:!0},enablePosX:{default:!0},enableNegZ:{default:!0},enablePosZ:{default:!0},mode:{default:"touch",oneOf:["swipe","touch","press"]}},init:function(){this.dVelocity=new THREE.Vector3,this.zVel=0,this.xVel=0,this.bindMethods()},play:function(){this.addEventListeners()},pause:function(){this.removeEventListeners(),this.dVelocity.set(0,0,0)},remove:function(){this.pause()},addEventListeners:function(){const e=this.data,t=this.el.sceneEl;switch(t.addEventListener("axismove",this.onAxisMove),e.mode){case"swipe":case"touch":t.addEventListener("trackpadtouchstart",this.onTouchStart),t.addEventListener("trackpadtouchend",this.onTouchEnd);break;case"press":t.addEventListener("trackpaddown",this.onTouchStart),t.addEventListener("trackpadup",this.onTouchEnd)}},removeEventListeners:function(){const e=this.el.sceneEl;e.removeEventListener("axismove",this.onAxisMove),e.removeEventListener("trackpadtouchstart",this.onTouchStart),e.removeEventListener("trackpadtouchend",this.onTouchEnd),e.removeEventListener("trackpaddown",this.onTouchStart),e.removeEventListener("trackpadup",this.onTouchEnd)},isVelocityActive:function(){return this.data.enabled&&this.isMoving},getVelocityDelta:function(){return this.dVelocity.z=this.isMoving?-this.zVel:1,this.dVelocity.x=this.isMoving?this.xVel:1,this.dVelocity.clone()},bindMethods:function(){this.onTouchStart=this.onTouchStart.bind(this),this.onTouchEnd=this.onTouchEnd.bind(this),this.onAxisMove=this.onAxisMove.bind(this)},onTouchStart:function(e){switch(this.data.mode){case"swipe":this.canRecordAxis=!0,this.startingAxisData=[];break;case"touch":case"press":this.isMoving=!0}e.preventDefault()},onTouchEnd:function(e){"swipe"==this.data.mode&&(this.startingAxisData=[]),this.isMoving=!1,e.preventDefault()},onAxisMove:function(e){switch(this.data.mode){case"swipe":return this.handleSwipeAxis(e);case"touch":case"press":return this.handleTouchAxis(e)}},handleSwipeAxis:function(e){const t=this.data,n=e.detail.axis;if(0===this.startingAxisData.length&&this.canRecordAxis&&(this.canRecordAxis=!1,this.startingAxisData[0]=n[0],this.startingAxisData[1]=n[1]),this.startingAxisData.length>0){let e=0,r=0;t.enableNegX&&n[0]<this.startingAxisData[0]&&(e=-1),t.enablePosX&&n[0]>this.startingAxisData[0]&&(e=1),t.enablePosZ&&n[1]>this.startingAxisData[1]&&(r=-1),t.enableNegZ&&n[1]<this.startingAxisData[1]&&(r=1);const i=Math.abs(this.startingAxisData[1]-n[1]);Math.abs(this.startingAxisData[0]-n[0])>i?(this.zVel=0,this.xVel=e,this.isMoving=!0):(this.xVel=0,this.zVel=r,this.isMoving=!0)}},handleTouchAxis:function(e){const t=this.data,n=e.detail.axis;let r=0,i=0;t.enableNegX&&n[0]<0&&(r=-1),t.enablePosX&&n[0]>0&&(r=1),t.enablePosZ&&n[1]>0&&(i=-1),t.enableNegZ&&n[1]<0&&(i=1),Math.abs(n[0])>Math.abs(n[1])?(this.zVel=0,this.xVel=r):(this.xVel=0,this.zVel=i)}})},6591:function(e){const t={once:THREE.LoopOnce,repeat:THREE.LoopRepeat,pingpong:THREE.LoopPingPong};function n(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")}e.exports=AFRAME.registerComponent("animation-mixer",{schema:{clip:{default:"*"},duration:{default:0},clampWhenFinished:{default:!1,type:"boolean"},crossFadeDuration:{default:0},loop:{default:"repeat",oneOf:Object.keys(t)},repetitions:{default:1/0,min:0},timeScale:{default:1}},init:function(){this.model=null,this.mixer=null,this.activeActions=[];const e=this.el.getObject3D("mesh");e?this.load(e):this.el.addEventListener("model-loaded",(e=>{this.load(e.detail.model)}))},load:function(e){const t=this.el;this.model=e,this.mixer=new THREE.AnimationMixer(e),this.mixer.addEventListener("loop",(e=>{t.emit("animation-loop",{action:e.action,loopDelta:e.loopDelta})})),this.mixer.addEventListener("finished",(e=>{t.emit("animation-finished",{action:e.action,direction:e.direction})})),this.data.clip&&this.update({})},remove:function(){this.mixer&&this.mixer.stopAllAction()},update:function(e){if(!e)return;const n=this.data,r=AFRAME.utils.diff(n,e);if("clip"in r)return this.stopAction(),void(n.clip&&this.playAction());this.activeActions.forEach((e=>{"duration"in r&&n.duration&&e.setDuration(n.duration),"clampWhenFinished"in r&&(e.clampWhenFinished=n.clampWhenFinished),("loop"in r||"repetitions"in r)&&e.setLoop(t[n.loop],n.repetitions),"timeScale"in r&&e.setEffectiveTimeScale(n.timeScale)}))},stopAction:function(){const e=this.data;for(let t=0;t<this.activeActions.length;t++)e.crossFadeDuration?this.activeActions[t].fadeOut(e.crossFadeDuration):this.activeActions[t].stop();this.activeActions.length=0},playAction:function(){if(!this.mixer)return;const e=this.model,r=this.data,i=e.animations||(e.geometry||{}).animations||[];if(!i.length)return;const o=(a=r.clip,new RegExp("^"+a.split(/\*+/).map(n).join(".*")+"$"));var a;for(let n,s=0;n=i[s];s++)if(n.name.match(o)){const i=this.mixer.clipAction(n,e);i.enabled=!0,i.clampWhenFinished=r.clampWhenFinished,r.duration&&i.setDuration(r.duration),1!==r.timeScale&&i.setEffectiveTimeScale(r.timeScale),i.setLoop(t[r.loop],r.repetitions).fadeIn(r.crossFadeDuration).play(),this.activeActions.push(i)}},tick:function(e,t){this.mixer&&!isNaN(t)&&this.mixer.update(t/1e3)}})},2290:function(e,t,n){THREE.ColladaLoader=n(203),e.exports.Component=AFRAME.registerComponent("collada-model-legacy",{schema:{type:"asset"},init:function(){this.model=null,this.loader=new THREE.ColladaLoader},update:function(){var e=this,t=this.el,n=this.data,r=this.el.sceneEl.systems.renderer;n&&(this.remove(),this.loader.load(n,(function(n){e.model=n.scene,e.model.traverse((function(e){if(e.isMesh){var t=e.material;t.color&&r.applyColorCorrection(t.color),t.map&&r.applyColorCorrection(t.map),t.emissive&&r.applyColorCorrection(t.emissive),t.emissiveMap&&r.applyColorCorrection(t.emissiveMap)}})),t.setObject3D("mesh",e.model),t.emit("model-loaded",{format:"collada",model:e.model})})))},remove:function(){this.model&&this.el.removeObject3D("mesh")}})},5310:function(e,t,n){THREE.FBXLoader=n(9434),e.exports=AFRAME.registerComponent("fbx-model",{schema:{src:{type:"asset"},crossorigin:{default:""}},init:function(){this.model=null},update:function(){const e=this.data;if(!e.src)return;this.remove();const t=new THREE.FBXLoader;e.crossorigin&&t.setCrossOrigin(e.crossorigin),t.load(e.src,this.load.bind(this))},load:function(e){this.model=e,this.el.setObject3D("mesh",e),this.el.emit("model-loaded",{format:"fbx",model:e})},remove:function(){this.model&&this.el.removeObject3D("mesh")}})},8837:function(e,t,n){const r=n(4657)(),i=function(){let e;return function(){return e=e||r("https://cdn.jsdelivr.net/gh/mrdoob/three.js@r86/examples/js/loaders/GLTFLoader.js"),e}}();e.exports=AFRAME.registerComponent("gltf-model-legacy",{schema:{type:"model"},init:function(){this.model=null,this.loader=null,this.loaderPromise=i().then((()=>{this.loader=new THREE.GLTFLoader,this.loader.setCrossOrigin("Anonymous")}))},update:function(){const e=this,t=this.el,n=this.data;n&&(this.remove(),this.loaderPromise.then((()=>{this.loader.load(n,(function(n){e.model=n.scene,e.model.animations=n.animations,t.setObject3D("mesh",e.model),t.emit("model-loaded",{format:"gltf",model:e.model})}))})))},remove:function(){this.model&&this.el.removeObject3D("mesh")}})},9874:function(e,t,n){n(6591),n(2290),n(5310),n(8837),n(171)},171:function(e){e.exports=AFRAME.registerComponent("object-model",{schema:{src:{type:"asset"},crossorigin:{default:""}},init:function(){this.model=null},update:function(){let e;const t=this.data;t.src&&(this.remove(),e=new THREE.ObjectLoader,t.crossorigin&&e.setCrossOrigin(t.crossorigin),e.load(t.src,(e=>{e.traverse((e=>{e instanceof THREE.SkinnedMesh&&e.material&&(e.material.skinning=!!(e.geometry&&e.geometry.bones||[]).length)})),this.load(e)})))},load:function(e){this.model=e,this.el.setObject3D("mesh",e),this.el.emit("model-loaded",{format:"json",model:e})},remove:function(){this.model&&this.el.removeObject3D("mesh")}})},7642:function(e){e.exports=AFRAME.registerComponent("checkpoint",{schema:{offset:{default:{x:0,y:0,z:0},type:"vec3"}},init:function(){this.active=!1,this.targetEl=null,this.fire=this.fire.bind(this),this.offset=new THREE.Vector3},update:function(){this.offset.copy(this.data.offset)},play:function(){this.el.addEventListener("click",this.fire)},pause:function(){this.el.removeEventListener("click",this.fire)},remove:function(){this.pause()},fire:function(){const e=this.el.sceneEl.querySelector("[checkpoint-controls]");if(!e)throw new Error("No `checkpoint-controls` component found.");e.components["checkpoint-controls"].setCheckpoint(this.el)},getOffset:function(){return this.offset.copy(this.data.offset)}})},4795:function(e){function t(e,t,n,r){e&&(t=t||[],e.traverse((e=>{if(!e.isMesh)return;var i;((i=e.material)?Array.isArray(i)?i:i.materials?i.materials:[i]:[]).forEach((e=>{e&&!("envMap"in e)||t.length&&-1===t.indexOf(e.name)||(e.envMap=n,e.reflectivity=r,e.needsUpdate=!0)}))})))}e.exports=AFRAME.registerComponent("cube-env-map",{multiple:!0,schema:{path:{default:""},extension:{default:"jpg",oneOf:["jpg","png"]},format:{default:"RGBFormat",oneOf:["RGBFormat","RGBAFormat"]},enableBackground:{default:!1},reflectivity:{default:1,min:0,max:1},materials:{default:[]}},init:function(){const e=this.data;this.texture=(new THREE.CubeTextureLoader).load([e.path+"posx."+e.extension,e.path+"negx."+e.extension,e.path+"posy."+e.extension,e.path+"negy."+e.extension,e.path+"posz."+e.extension,e.path+"negz."+e.extension]),this.texture.format=THREE[e.format],this.object3dsetHandler=()=>{const e=this.el.getObject3D("mesh"),n=this.data;t(e,n.materials,this.texture,n.reflectivity)},this.el.addEventListener("object3dset",this.object3dsetHandler)},update:function(e){const n=this.data,r=this.el.getObject3D("mesh");let i=[],o=[];if(n.materials.length&&(e.materials?(i=n.materials.filter((t=>!e.materials.includes(t))),o=e.materials.filter((e=>!n.materials.includes(e)))):i=n.materials),i.length&&t(r,i,this.texture,n.reflectivity),o.length&&t(r,o,null,1),e.materials&&n.reflectivity!==e.reflectivity){const i=n.materials.filter((t=>e.materials.includes(t)));i.length&&t(r,i,this.texture,n.reflectivity)}this.data.enableBackground&&!e.enableBackground?this.setBackground(this.texture):!this.data.enableBackground&&e.enableBackground&&this.setBackground(null)},remove:function(){this.el.removeEventListener("object3dset",this.object3dsetHandler);const e=this.el.getObject3D("mesh"),n=this.data;t(e,n.materials,null,1),n.enableBackground&&this.setBackground(null)},setBackground:function(e){this.el.sceneEl.object3D.background=e}})},9511:function(e){e.exports=AFRAME.registerComponent("grab",{init:function(){this.system=this.el.sceneEl.systems.physics,this.GRABBED_STATE="grabbed",this.grabbing=!1,this.hitEl=null,this.physics=this.el.sceneEl.systems.physics,this.constraint=null,this.onHit=this.onHit.bind(this),this.onGripOpen=this.onGripOpen.bind(this),this.onGripClose=this.onGripClose.bind(this)},play:function(){const e=this.el;e.addEventListener("hit",this.onHit),e.addEventListener("gripdown",this.onGripClose),e.addEventListener("gripup",this.onGripOpen),e.addEventListener("trackpaddown",this.onGripClose),e.addEventListener("trackpadup",this.onGripOpen),e.addEventListener("triggerdown",this.onGripClose),e.addEventListener("triggerup",this.onGripOpen)},pause:function(){const e=this.el;e.removeEventListener("hit",this.onHit),e.removeEventListener("gripdown",this.onGripClose),e.removeEventListener("gripup",this.onGripOpen),e.removeEventListener("trackpaddown",this.onGripClose),e.removeEventListener("trackpadup",this.onGripOpen),e.removeEventListener("triggerdown",this.onGripClose),e.removeEventListener("triggerup",this.onGripOpen)},onGripClose:function(){this.grabbing=!0},onGripOpen:function(){const e=this.hitEl;this.grabbing=!1,e&&(e.removeState(this.GRABBED_STATE),this.hitEl=void 0,this.system.removeConstraint(this.constraint),this.constraint=null)},onHit:function(e){const t=e.detail.el;t&&!t.is(this.GRABBED_STATE)&&this.grabbing&&!this.hitEl&&(t.addState(this.GRABBED_STATE),this.hitEl=t,this.constraint=new CANNON.LockConstraint(this.el.body,t.body),this.system.addConstraint(this.constraint))}})},9236:function(e,t,n){n(7642),n(4795),n(9511),n(765),n(837),n(8310),n(8240),n(1790)},765:function(e){e.exports=AFRAME.registerComponent("jump-ability",{dependencies:["velocity"],schema:{on:{default:"keydown:Space gamepadbuttondown:0"},playerHeight:{default:1.764},maxJumps:{default:1},distance:{default:5},debug:{default:!1}},init:function(){this.velocity=0,this.numJumps=0;const e=this.beginJump.bind(this),t=this.data.on.split(" ");this.bindings={};for(let n=0;n<t.length;n++)this.bindings[t[n]]=e,this.el.addEventListener(t[n],e);this.bindings.collide=this.onCollide.bind(this),this.el.addEventListener("collide",this.bindings.collide)},remove:function(){for(var e in this.bindings)this.bindings.hasOwnProperty(e)&&(this.el.removeEventListener(e,this.bindings[e]),delete this.bindings[e]);this.el.removeEventListener("collide",this.bindings.collide),delete this.bindings.collide},beginJump:function(){if(this.numJumps<this.data.maxJumps){const e=this.data,t=Math.sqrt(-2*e.distance*-24.8),n=this.el.getAttribute("velocity");this.el.setAttribute("velocity",{x:n.x,y:t,z:n.z}),this.numJumps++,this.el.emit("jumpstart")}},onCollide:function(){this.numJumps>0&&this.el.emit("jumpend"),this.numJumps=0}})},837:function(e){const t=1e-6;e.exports=AFRAME.registerComponent("kinematic-body",{dependencies:["velocity"],schema:{mass:{default:5},radius:{default:1.3},linearDamping:{default:.05},enableSlopes:{default:!0},enableJumps:{default:!1}},init:function(){this.system=this.el.sceneEl.systems.physics,this.system.addComponent(this);const e=this.el,t=this.data,n=(new CANNON.Vec3).copy(e.object3D.getWorldPosition(new THREE.Vector3));this.body=new CANNON.Body({material:this.system.getMaterial("staticMaterial"),position:n,mass:t.mass,linearDamping:t.linearDamping,fixedRotation:!0}),this.body.addShape(new CANNON.Sphere(t.radius),new CANNON.Vec3(0,t.radius,0)),this.body.el=this.el,this.el.body=this.body,this.system.addBody(this.body),e.hasAttribute("wasd-controls")&&console.warn("[kinematic-body] Not compatible with wasd-controls, use movement-controls.")},remove:function(){this.system.removeBody(this.body),this.system.removeComponent(this),delete this.el.body},beforeStep:function(e,t){if(!t)return;const n=this.el,r=this.data,i=this.body;r.enableJumps||i.velocity.set(0,0,0),i.position.copy(n.getAttribute("position"))},step:function(){const e=new THREE.Vector3,n=new THREE.Vector3,r=new THREE.Vector3,i=new THREE.Vector3;return function(o,a){if(!a)return;let s,u,c=this.body,l=this.data,d=!1,f=-1/0,h=this.system.getContacts();a=Math.min(a,1e3*this.system.data.maxInterval),i.set(0,0,0),e.copy(this.el.getAttribute("velocity")),c.velocity.copy(e);for(var p,v=0;p=h[v];v++)if(p.enabled){if(c.id===p.bi.id)p.ni.negate(r);else{if(c.id!==p.bj.id)continue;r.copy(p.ni)}d=c.velocity.dot(r)<-t,d&&r.y<=.5?e.projectOnPlane(r):r.y>.5&&(s=c.id===p.bi.id?Math.abs(p.rj.y+p.bj.position.y):Math.abs(p.ri.y+p.bi.position.y),s>f&&(f=s,i.copy(r),u=c.id===p.bi.id?p.bj:p.bi))}n.copy(e).normalize(),u&&(!l.enableJumps||n.y<.5)?(l.enableSlopes?i.y<1-t&&i.copy(this.raycastToGround(u,i)):i.set(0,1,0),e.projectOnPlane(i)):this.system.driver.world&&e.add(this.system.driver.world.gravity.scale(4*a/1e3)),c.velocity.copy(e),this.el.setAttribute("velocity",c.velocity),this.el.setAttribute("position",c.position)}}(),raycastToGround:function(e,t){let n,r,i=this.body.position,o=this.body.position.clone();return n=new CANNON.Ray(i,o),n._updateDirection(),n.intersectBody(e),n.hasHit?(r=n.result.hitNormalWorld,Math.abs(r.y)>Math.abs(t.y)?r:t):t}})},8310:function(e){e.exports=AFRAME.registerComponent("mesh-smooth",{init:function(){this.el.addEventListener("model-loaded",(e=>{e.detail.model.traverse((e=>{e.isMesh&&e.geometry.computeVertexNormals()}))}))}})},8240:function(e){e.exports=AFRAME.registerComponent("normal-material",{init:function(){this.material=new THREE.MeshNormalMaterial({flatShading:!0}),this.applyMaterial=this.applyMaterial.bind(this),this.el.addEventListener("object3dset",this.applyMaterial)},remove:function(){this.el.removeEventListener("object3dset",this.applyMaterial)},applyMaterial:function(){this.el.object3D.traverse((e=>{e.isMesh&&(e.material=this.material)}))}})},1790:function(e){e.exports=AFRAME.registerComponent("sphere-collider",{schema:{objects:{default:""},state:{default:"collided"},radius:{default:.05},watch:{default:!0}},init:function(){this.observer=null,this.els=[],this.collisions=[],this.handleHit=this.handleHit.bind(this),this.handleHitEnd=this.handleHitEnd.bind(this)},remove:function(){this.pause()},play:function(){const e=this.el.sceneEl;this.data.watch&&(this.observer=new MutationObserver(this.update.bind(this,null)),this.observer.observe(e,{childList:!0,subtree:!0}))},pause:function(){this.observer&&(this.observer.disconnect(),this.observer=null)},update:function(){const e=this.data;let t;t=e.objects?this.el.sceneEl.querySelectorAll(e.objects):this.el.sceneEl.children,this.els=Array.prototype.slice.call(t)},tick:function(){const e=new THREE.Vector3,t=new THREE.Vector3,n=new THREE.Vector3,r=new THREE.Vector3,i=new THREE.Box3,o=new Map;return function(){const a=this.el,s=this.data,u=a.getObject3D("mesh"),c=[];let l;var d;u&&(o.clear(),a.object3D.getWorldPosition(e),a.object3D.getWorldScale(n),l=s.radius*(d=n,Math.max.apply(null,d.toArray())),this.els.forEach((function(n){let a,s,u,d;if(!n.isEntity)return;if(s=n.getObject3D("mesh"),!s)return;if(i.setFromObject(s).getSize(r),d=Math.max(r.x,r.y,r.z)/2,a=Math.sqrt(2*d*d),i.getCenter(t),!a)return;u=e.distanceTo(t),u<a+l&&(c.push(n),o.set(n,u))})),c.sort(((e,t)=>o.get(e)>o.get(t)?1:-1)).forEach(this.handleHit),0===c.length&&a.emit("hit",{el:null}),this.collisions.filter((e=>!o.has(e))).forEach(this.handleHitEnd),this.collisions=c)}}(),handleHit:function(e){e.emit("hit"),e.addState(this.data.state),this.el.emit("hit",{el:e})},handleHitEnd:function(e){e.emit("hitend"),e.removeState(this.data.state),this.el.emit("hitend",{el:e})}})},2578:function(e,t,n){n(8453),n(1250),n(1465)},1250:function(e){e.exports=AFRAME.registerComponent("nav-agent",{schema:{destination:{type:"vec3"},active:{default:!1},speed:{default:2}},init:function(){this.system=this.el.sceneEl.systems.nav,this.system.addAgent(this),this.group=null,this.path=[],this.raycaster=new THREE.Raycaster},remove:function(){this.system.removeAgent(this)},update:function(){this.path.length=0},updateNavLocation:function(){this.group=null,this.path=[]},tick:function(){const e=new THREE.Vector3,t=new THREE.Vector3,n=new THREE.Vector3;return function(r,i){const o=this.el,a=this.data,s=this.raycaster,u=a.speed*i/1e3;if(!a.active)return;if(!this.path.length){const t=this.el.object3D.position;this.group=this.group||this.system.getGroup(t),this.path=this.system.getPath(t,e.copy(a.destination),this.group)||[],o.emit("navigation-start")}if(!this.path.length)return console.warn("[nav] Unable to find path to %o.",a.destination),this.el.setAttribute("nav-agent",{active:!1}),void o.emit("navigation-end");const c=o.object3D.position,l=this.path[0];t.subVectors(l,c);let d;if(t.length()<u){if(this.path.shift(),!this.path.length)return this.el.setAttribute("nav-agent",{active:!1}),void o.emit("navigation-end");n.copy(c),d=this.path[0]}else n.copy(t.setLength(u)).add(c),d=l;d.y=c.y,o.object3D.lookAt(d),s.ray.origin.copy(n),s.ray.origin.y+=1.5,s.ray.direction.y=-1;const f=s.intersectObject(this.system.getNavMesh());f.length?(t.subVectors(f[0].point,c),c.add(t.setLength(u))):c.copy(n)}}()})},8453:function(e){e.exports=AFRAME.registerComponent("nav-mesh",{init:function(){this.system=this.el.sceneEl.systems.nav,this.hasLoadedNavMesh=!1,this.el.addEventListener("object3dset",this.loadNavMesh.bind(this))},play:function(){this.hasLoadedNavMesh||this.loadNavMesh()},loadNavMesh:function(){const e=this.el.getObject3D("mesh"),t=this.el.sceneEl.object3D;if(!e)return;let n;if(e.traverse((e=>{e.isMesh&&(n=e)})),!n)return;const r=n.geometry.isBufferGeometry?(new THREE.Geometry).fromBufferGeometry(n.geometry):n.geometry.clone();t.updateMatrixWorld(),r.applyMatrix(n.matrixWorld),this.system.setNavMeshGeometry(r),this.hasLoadedNavMesh=!0}})},1465:function(e,t,n){const{Pathfinding:r}=n(6594),i=new r,o="level";e.exports=AFRAME.registerSystem("nav",{init:function(){this.navMesh=null,this.agents=new Set},setNavMeshGeometry:function(e){this.navMesh=new THREE.Mesh(e),i.setZoneData(o,r.createZone(e)),Array.from(this.agents).forEach((e=>e.updateNavLocation()))},getNavMesh:function(){return this.navMesh},addAgent:function(e){this.agents.add(e)},removeAgent:function(e){this.agents.delete(e)},getPath:function(e,t,n){return this.navMesh?i.findPath(e,t,o,n):null},getGroup:function(e){return this.navMesh?i.getGroup(o,e):null},getNode:function(e,t){return this.navMesh?i.getClosestNode(e,o,t,!0):null},clampStep:function(e,t,n,r,a){return this.navMesh?r?i.clampStep(e,t,r,o,n,a):(a.copy(t),this.getNode(t,n)):(a.copy(t),null)}})},386:function(e){e.exports=AFRAME.registerPrimitive("a-grid",{defaultComponents:{geometry:{primitive:"plane",width:75,height:75},rotation:{x:-90,y:0,z:0},material:{src:"url(https://cdn.jsdelivr.net/gh/donmccurdy/[email protected]/assets/grid.png)",repeat:"75 75"}},mappings:{width:"geometry.width",height:"geometry.height",src:"material.src"}})},3535:function(e,t,n){const r=n(3471),i=n(2667);e.exports.Primitive=AFRAME.registerPrimitive("a-hexgrid",{defaultComponents:{hexgrid:{}},mappings:{src:"hexgrid.src"}}),e.exports.Component=AFRAME.registerComponent("hexgrid",{dependencies:["material"],schema:{src:{type:"asset"}},init:function(){const e=this.data;e.src?fetch(e.src).then((e=>e.json())).then((e=>this.addMesh(e))):this.addMesh(i)},addMesh:function(e){const t=new r.HexGrid;t.fromJSON(e);const n=new r.Board(t);n.generateTilemap(),this.el.setObject3D("mesh",n.group),this.addMaterial()},addMaterial:function(){const e=(this.el.components.material||{}).material;e&&this.el.object3D.traverse((t=>{t.isMesh&&(t.material=e)}))},remove:function(){this.el.removeObject3D("mesh")}})},9307:function(e){e.exports.Primitive=AFRAME.registerPrimitive("a-ocean",{defaultComponents:{ocean:{},rotation:{x:-90,y:0,z:0}},mappings:{width:"ocean.width",depth:"ocean.depth",density:"ocean.density",amplitude:"ocean.amplitude",amplitudeVariance:"ocean.amplitudeVariance",speed:"ocean.speed",speedVariance:"ocean.speedVariance",color:"ocean.color",opacity:"ocean.opacity"}}),e.exports.Component=AFRAME.registerComponent("ocean",{schema:{width:{default:10,min:0},depth:{default:10,min:0},density:{default:10},amplitude:{default:.1},amplitudeVariance:{default:.3},speed:{default:1},speedVariance:{default:2},color:{default:"#7AD2F7",type:"color"},opacity:{default:.8}},play:function(){const e=this.el,t=this.data;let n=e.components.material;const r=new THREE.PlaneGeometry(t.width,t.depth,t.density,t.density);r.mergeVertices(),this.waves=[];for(let i,o=0,a=r.vertices.length;o<a;o++)i=r.vertices[o],this.waves.push({z:i.z,ang:Math.random()*Math.PI*2,amp:t.amplitude+Math.random()*t.amplitudeVariance,speed:(t.speed+Math.random()*t.speedVariance)/1e3});n||(n={},n.material=new THREE.MeshPhongMaterial({color:t.color,transparent:t.opacity<1,opacity:t.opacity,shading:THREE.FlatShading})),this.mesh=new THREE.Mesh(r,n.material),e.setObject3D("mesh",this.mesh)},remove:function(){this.el.removeObject3D("mesh")},tick:function(e,t){if(!t)return;const n=this.mesh.geometry.vertices;for(let r,i,o=0;r=n[o];o++)i=this.waves[o],r.z=i.z+Math.sin(i.ang)*i.amp,i.ang+=i.speed*t;this.mesh.geometry.verticesNeedUpdate=!0}})},699:function(e){e.exports.Primitive=AFRAME.registerPrimitive("a-tube",{defaultComponents:{tube:{}},mappings:{path:"tube.path",segments:"tube.segments",radius:"tube.radius","radial-segments":"tube.radialSegments",closed:"tube.closed"}}),e.exports.Component=AFRAME.registerComponent("tube",{schema:{path:{default:[]},segments:{default:64},radius:{default:1},radialSegments:{default:8},closed:{default:!1}},init:function(){const e=this.el,t=this.data;let n=e.components.material;if(!t.path.length)return void console.error("[a-tube] `path` property expected but not found.");const r=new THREE.CatmullRomCurve3(t.path.map((function(e){return e=e.split(" "),new THREE.Vector3(Number(e[0]),Number(e[1]),Number(e[2]))}))),i=new THREE.TubeGeometry(r,t.segments,t.radius,t.radialSegments,t.closed);n||(n={},n.material=new THREE.MeshPhongMaterial),this.mesh=new THREE.Mesh(i,n.material),this.el.setObject3D("mesh",this.mesh)},update:function(e){Object.keys(e).length&&(this.remove(),this.init())},remove:function(){this.mesh&&this.el.removeObject3D("mesh")}})},6699:function(e,t,n){n(386),n(3535),n(9307),n(699)},1359:function(e,t,n){if("undefined"===typeof AFRAME)throw new Error("Component attempted to register before AFRAME was available.");let r=n(2539);"default"in r&&(r=r.default);let i=n(1398);"default"in i&&(i=i.default);const o=function(e){return"string"===typeof e?JSON.parse(e):e},a=function(e){if("function"===typeof e)return e;const t=eval;try{return t("("+e+")")}catch(n){}return null},s=function(e){return isNaN(parseFloat(e))?a(e)?a(e):e:parseFloat(e)};AFRAME.registerComponent("forcegraph",{schema:{jsonUrl:{type:"string",default:""},nodes:{parse:o,default:[]},links:{parse:o,default:[]},numDimensions:{type:"number",default:3},dagMode:{type:"string",default:""},dagLevelDistance:{type:"number",default:0},dagNodeFilter:{parse:a,function:()=>!0},onDagError:{parse:a,default:void 0},nodeRelSize:{type:"number",default:4},nodeId:{type:"string",default:"id"},nodeVal:{parse:s,default:"val"},nodeResolution:{type:"number",default:8},nodeVisibility:{parse:s,default:!0},nodeColor:{parse:s,default:"color"},nodeAutoColorBy:{parse:s,default:""},nodeOpacity:{type:"number",default:.75},nodeThreeObject:{parse:s,default:null},nodeThreeObjectExtend:{parse:s,default:!1},linkSource:{type:"string",default:"source"},linkTarget:{type:"string",default:"target"},linkVisibility:{parse:s,default:!0},linkColor:{parse:s,default:"color"},linkAutoColorBy:{parse:s,default:""},linkOpacity:{type:"number",default:.2},linkWidth:{parse:s,default:0},linkResolution:{type:"number",default:6},linkCurvature:{parse:s,default:0},linkCurveRotation:{parse:s,default:0},linkMaterial:{parse:s,default:null},linkThreeObject:{parse:s,default:null},linkThreeObjectExtend:{parse:s,default:!1},linkPositionUpdate:{parse:a,default:null},linkDirectionalArrowLength:{parse:s,default:0},linkDirectionalArrowColor:{parse:s,default:null},linkDirectionalArrowRelPos:{parse:s,default:.5},linkDirectionalArrowResolution:{type:"number",default:8},linkDirectionalParticles:{parse:s,default:0},linkDirectionalParticleSpeed:{parse:s,default:.01},linkDirectionalParticleWidth:{parse:s,default:.5},linkDirectionalParticleColor:{parse:s,default:null},linkDirectionalParticleResolution:{type:"number",default:4},onNodeHover:{parse:a,default:()=>{}},onLinkHover:{parse:a,default:()=>{}},onNodeClick:{parse:a,default:()=>{}},onLinkClick:{parse:a,default:()=>{}},forceEngine:{type:"string",default:"d3"},d3AlphaMin:{type:"number",default:0},d3AlphaDecay:{type:"number",default:.0228},d3VelocityDecay:{type:"number",default:.4},ngraphPhysics:{parse:o,default:null},warmupTicks:{type:"int",default:0},cooldownTicks:{type:"int",default:1e18},cooldownTime:{type:"int",default:15e3},onEngineTick:{parse:a,default:function(){}},onEngineStop:{parse:a,default:function(){}}},getGraphBbox:function(){return this.forceGraph||(this.forceGraph=new i),this.forceGraph.getGraphBbox()},emitParticle:function(){this.forceGraph||(this.forceGraph=new i);const e=this.forceGraph,t=e.emitParticle.apply(e,arguments);return t===e?this:t},d3Force:function(){this.forceGraph||(this.forceGraph=new i);const e=this.forceGraph,t=e.d3Force.apply(e,arguments);return t===e?this:t},d3ReheatSimulation:function(){return this.forceGraph&&this.forceGraph.d3ReheatSimulation(),this},refresh:function(){return this.forceGraph&&this.forceGraph.refresh(),this},init:function(){const e=this.state={};e.infoEl=document.createElement("a-text"),e.infoEl.setAttribute("position","0 -0.1 -1"),e.infoEl.setAttribute("width",1),e.infoEl.setAttribute("align","center"),e.infoEl.setAttribute("color","lavender");const t=document.querySelector("a-entity[camera], a-camera");t.appendChild(e.infoEl),e.cameraObj=t.object3D.children.filter((function(e){return"PerspectiveCamera"===e.type}))[0],this.el.sceneEl.addEventListener("camera-set-active",(function(t){e.cameraObj=t.detail.cameraEl.components.camera.camera})),this.forceGraph||(this.forceGraph=new i),this.forceGraph.onFinishUpdate((()=>this.el.setObject3D("forcegraphGroup",this.forceGraph))).onLoading((()=>e.infoEl.setAttribute("value","Loading..."))).onFinishLoading((()=>e.infoEl.setAttribute("value",""))),this.el.addEventListener("raycaster-intersected",(t=>e.hoverDetail=t.detail)),this.el.addEventListener("raycaster-intersected-cleared",(t=>e.hoverDetail=t.detail)),this.el.addEventListener("click",(()=>e.hoverObj&&this.data["on"+("node"===e.hoverObj.__graphObjType?"Node":"Link")+"Click"](e.hoverObj.__data)))},remove:function(){this.state.infoEl.remove(),this.el.removeObject3D("forcegraphGroup")},update:function(e){const t=this,n=this.data,r=AFRAME.utils.diff(n,e);["jsonUrl","numDimensions","dagMode","dagLevelDistance","dagNodeFilter","onDagError","nodeRelSize","nodeId","nodeVal","nodeResolution","nodeVisibility","nodeColor","nodeAutoColorBy","nodeOpacity","nodeThreeObject","nodeThreeObjectExtend","linkSource","linkTarget","linkVisibility","linkColor","linkAutoColorBy","linkOpacity","linkWidth","linkResolution","linkCurvature","linkCurveRotation","linkMaterial","linkThreeObject","linkThreeObjectExtend","linkPositionUpdate","linkDirectionalArrowLength","linkDirectionalArrowColor","linkDirectionalArrowRelPos","linkDirectionalArrowResolution","linkDirectionalParticles","linkDirectionalParticleSpeed","linkDirectionalParticleWidth","linkDirectionalParticleColor","linkDirectionalParticleResolution","forceEngine","d3AlphaMin","d3AphaDecay","d3VelocityDecay","ngraphPhysics","warmupTicks","cooldownTicks","cooldownTime","onEngineTick","onEngineStop"].filter((function(e){return e in r})).forEach((function(e){t.forceGraph[e](""!==n[e]?n[e]:null)})),("nodes"in r||"links"in r)&&t.forceGraph.graphData({nodes:n.nodes,links:n.links})},tick:function(e,t){const n=this.state,r=this.data,i=n.hoverDetail?n.hoverDetail.getIntersection?n.hoverDetail.getIntersection(this.el):n.hoverDetail.intersection||void 0:void 0;let o=i?i.object:void 0;for(;o&&!o.hasOwnProperty("__graphObjType");)o=o.parent;if(o!==n.hoverObj){const e=n.hoverObj?n.hoverObj.__graphObjType:null,t=n.hoverObj?n.hoverObj.__data:null,i=o?o.__graphObjType:null,a=o?o.__data:null;e&&e!==i&&r["on"+("node"===e?"Node":"Link")+"Hover"](null,t),i&&r["on"+("node"===i?"Node":"Link")+"Hover"](a,e===i?t:null),n.hoverObj=o}this.forceGraph.tickFrame()}})},296:function(e){function t(e,t,n){var r,i,o,a,s;function u(){var c=Date.now()-a;c<t&&c>=0?r=setTimeout(u,t-c):(r=null,n||(s=e.apply(o,i),o=i=null))}null==t&&(t=100);var c=function(){o=this,i=arguments,a=Date.now();var c=n&&!r;return r||(r=setTimeout(u,t)),c&&(s=e.apply(o,i),o=i=null),s};return c.clear=function(){r&&(clearTimeout(r),r=null)},c.flush=function(){r&&(s=e.apply(o,i),o=i=null,clearTimeout(r),r=null)},c}t.debounce=t,e.exports=t},3869:function(e,t,n){"use strict";n.d(t,{M:function(){return p}});var r=n(1439),i=n(7294),o=n(6717);var a=n(8626),s=n(5930),u=0;function c(){var e=u;return u++,e}var l=function(e){var t=e.children,n=e.initial,r=e.isPresent,o=e.onExitComplete,u=e.custom,l=e.presenceAffectsLayout,f=(0,s.h)(d),h=(0,s.h)(c),p=(0,i.useMemo)((function(){return{id:h,initial:n,isPresent:r,custom:u,onExitComplete:function(e){f.set(e,!0);var t=!0;f.forEach((function(e){e||(t=!1)})),t&&(null===o||void 0===o||o())},register:function(e){return f.set(e,!1),function(){return f.delete(e)}}}}),l?void 0:[r]);return(0,i.useMemo)((function(){f.forEach((function(e,t){return f.set(t,!1)}))}),[r]),i.useEffect((function(){!r&&!f.size&&(null===o||void 0===o||o())}),[r]),i.createElement(a.O.Provider,{value:p},t)};function d(){return new Map}var f=n(9870);function h(e){return e.key||""}var p=function(e){var t=e.children,n=e.custom,a=e.initial,s=void 0===a||a,u=e.onExitComplete,c=e.exitBeforeEnter,d=e.presenceAffectsLayout,p=void 0===d||d,v=function(){var e=(0,i.useRef)(!1),t=(0,r.CR)((0,i.useState)(0),2),n=t[0],a=t[1];return(0,o.z)((function(){return e.current=!0})),(0,i.useCallback)((function(){!e.current&&a(n+1)}),[n])}(),m=(0,i.useContext)(f.WH);(0,f.Md)(m)&&(v=m.forceUpdate);var g=(0,i.useRef)(!0),y=function(e){var t=[];return i.Children.forEach(e,(function(e){(0,i.isValidElement)(e)&&t.push(e)})),t}(t),b=(0,i.useRef)(y),w=(0,i.useRef)(new Map).current,x=(0,i.useRef)(new Set).current;if(function(e,t){e.forEach((function(e){var n=h(e);t.set(n,e)}))}(y,w),g.current)return g.current=!1,i.createElement(i.Fragment,null,y.map((function(e){return i.createElement(l,{key:h(e),isPresent:!0,initial:!!s&&void 0,presenceAffectsLayout:p},e)})));for(var E=(0,r.ev)([],(0,r.CR)(y)),k=b.current.map(h),_=y.map(h),T=k.length,O=0;O<T;O++){var C=k[O];-1===_.indexOf(C)?x.add(C):x.delete(C)}return c&&x.size&&(E=[]),x.forEach((function(e){if(-1===_.indexOf(e)){var t=w.get(e);if(t){var r=k.indexOf(e);E.splice(r,0,i.createElement(l,{key:h(t),isPresent:!1,onExitComplete:function(){w.delete(e),x.delete(e);var t=b.current.findIndex((function(t){return t.key===e}));b.current.splice(t,1),x.size||(b.current=y,v(),u&&u())},custom:n,presenceAffectsLayout:p},t))}}})),E=E.map((function(e){var t=e.key;return x.has(t)?e:i.createElement(l,{key:h(e),isPresent:!0,presenceAffectsLayout:p},e)})),b.current=E,i.createElement(i.Fragment,null,x.size?E:E.map((function(e){return(0,i.cloneElement)(e)})))}},1053:function(e,t,n){"use strict";var r,i;n.d(t,{z:function(){return r},c:function(){return i}}),function(e){e[e.Entering=0]="Entering",e[e.Present=1]="Present",e[e.Exiting=2]="Exiting"}(r||(r={})),function(e){e[e.Hide=0]="Hide",e[e.Show=1]="Show"}(i||(i={}))},8626:function(e,t,n){"use strict";n.d(t,{O:function(){return r}});var r=(0,n(7294).createContext)(null)},9870:function(e,t,n){"use strict";n.d(t,{bg:function(){return p},WH:function(){return h},Md:function(){return v}});var r=n(7294),i=n(1439),o=n(9839),a=n(8839),s=n(7565),u=n(519),c=n(1053),l={layoutReady:function(e){return e.notifyLayoutReady()}};function d(){var e=new Set;return{add:function(t){return e.add(t)},flush:function(t){var n=void 0===t?l:t,r=n.layoutReady,d=n.parent;(0,s.U)((function(t,n){var s=Array.from(e).sort(u._),l=d?(0,a.kv)(d):[];n((function(){(0,i.ev)((0,i.ev)([],(0,i.CR)(l)),(0,i.CR)(s)).forEach((function(e){return e.resetTransform()}))})),t((function(){s.forEach(a.de)})),n((function(){l.forEach((function(e){return e.restoreTransform()})),s.forEach(r)})),t((function(){s.forEach((function(e){e.isPresent&&(e.presence=c.z.Present)}))})),n((function(){o.iW.preRender(),o.iW.render()})),t((function(){o.ZP.postRender((function(){return s.forEach(f)})),e.clear()}))})),(0,s.R)()}}}function f(e){e.prevViewportBox=e.projection.target}var h=(0,r.createContext)(d()),p=(0,r.createContext)(d());function v(e){return!!e.forceUpdate}},7554:function(e,t,n){"use strict";n.d(t,{E:function(){return Oo}});var r=n(1439),i=n(7294),o=function(e){return{isEnabled:function(t){return e.some((function(e){return!!t[e]}))}}},a={measureLayout:o(["layout","layoutId","drag","_layoutResetTransform"]),animation:o(["animate","exit","variants","whileHover","whileTap","whileFocus","whileDrag"]),exit:o(["exit"]),drag:o(["drag","dragControls"]),focus:o(["whileFocus"]),hover:o(["whileHover","onHoverStart","onHoverEnd"]),tap:o(["whileTap","onTap","onTapStart","onTapCancel"]),pan:o(["onPan","onPanStart","onPanSessionStart","onPanEnd"]),layoutAnimation:o(["layout","layoutId"])};var s=(0,i.createContext)({strict:!1}),u=Object.keys(a),c=u.length;var l=(0,i.createContext)({transformPagePoint:function(e){return e},isStatic:!1}),d=(0,i.createContext)({});var f=n(8626),h=n(5930);function p(){var e=(0,i.useContext)(f.O);if(null===e)return[!0,null];var t=e.isPresent,n=e.onExitComplete,r=e.register,o=y();(0,i.useEffect)((function(){return r(o)}),[]);return!t&&n?[!1,function(){return null===n||void 0===n?void 0:n(o)}]:[!0]}function v(e){return null===e||e.isPresent}var m=0,g=function(){return m++},y=function(){return(0,h.h)(g)},b=(0,i.createContext)(null),w="undefined"!==typeof window,x=w?i.useLayoutEffect:i.useEffect;function E(e,t,n,o){var a=(0,i.useContext)(l),u=(0,i.useContext)(s),c=(0,i.useContext)(d).visualElement,h=(0,i.useContext)(f.O),p=function(e){var t=e.layoutId,n=(0,i.useContext)(b);return n&&void 0!==t?n+"-"+t:t}(n),m=(0,i.useRef)(void 0);o||(o=u.renderer),!m.current&&o&&(m.current=o(e,{visualState:t,parent:c,props:(0,r.pi)((0,r.pi)({},n),{layoutId:p}),presenceId:null===h||void 0===h?void 0:h.id,blockInitialAnimation:!1===(null===h||void 0===h?void 0:h.initial)}));var g=m.current;return x((function(){g&&(g.setProps((0,r.pi)((0,r.pi)((0,r.pi)({},a),n),{layoutId:p})),g.isPresent=v(h),g.isPresenceRoot=!c||c.presenceId!==(null===h||void 0===h?void 0:h.id),g.syncRender())})),(0,i.useEffect)((function(){var e;g&&(null===(e=g.animationState)||void 0===e||e.animateChanges())})),x((function(){return function(){return null===g||void 0===g?void 0:g.notifyUnmount()}}),[]),g}function k(e){return"object"===typeof e&&Object.prototype.hasOwnProperty.call(e,"current")}function _(e){return Array.isArray(e)}function T(e){return"string"===typeof e||_(e)}function O(e,t,n,r,i){var o;return void 0===r&&(r={}),void 0===i&&(i={}),"string"===typeof t&&(t=null===(o=e.variants)||void 0===o?void 0:o[t]),"function"===typeof t?t(null!==n&&void 0!==n?n:e.custom,r,i):t}function C(e,t,n){var r=e.getProps();return O(r,t,null!==n&&void 0!==n?n:r.custom,function(e){var t={};return e.forEachValue((function(e,n){return t[n]=e.get()})),t}(e),function(e){var t={};return e.forEachValue((function(e,n){return t[n]=e.getVelocity()})),t}(e))}function A(e){var t;return"function"===typeof(null===(t=e.animate)||void 0===t?void 0:t.start)||T(e.initial)||T(e.animate)||T(e.whileHover)||T(e.whileDrag)||T(e.whileTap)||T(e.whileFocus)||T(e.exit)}function P(e){return Boolean(A(e)||e.variants)}function S(e,t){var n=function(e,t){if(A(e)){var n=e.initial,r=e.animate;return{initial:!1===n||T(n)?n:void 0,animate:T(r)?r:void 0}}return!1!==e.inherit?t:{}}(e,(0,i.useContext)(d)),r=n.initial,o=n.animate;return(0,i.useMemo)((function(){return{initial:r,animate:o}}),t?[M(r),M(o)]:[])}function M(e){return Array.isArray(e)?e.join(" "):e}function R(e){var t=e.preloadedFeatures,n=e.createVisualElement,o=e.useRender,f=e.useVisualState,h=e.Component;return t&&function(e){for(var t in e){var n=e[t];null!==n&&(a[t].Component=n)}}(t),(0,i.forwardRef)((function(e,t){var p=(0,i.useContext)(l).isStatic,v=null,m=S(e,p),g=f(e,p);return!p&&w&&(m.visualElement=E(h,g,e,n),v=function(e,t,n){var o=[];if((0,i.useContext)(s),!t)return null;for(var l=0;l<c;l++){var d=u[l],f=a[d],h=f.isEnabled,p=f.Component;h(e)&&p&&o.push(i.createElement(p,(0,r.pi)({key:d},e,{visualElement:t})))}return o}(e,m.visualElement)),i.createElement(i.Fragment,null,i.createElement(d.Provider,{value:m},o(h,e,function(e,t,n){return(0,i.useCallback)((function(r){var i;r&&(null===(i=e.mount)||void 0===i||i.call(e,r)),t&&(r?t.mount(r):t.unmount()),n&&("function"===typeof n?n(r):k(n)&&(n.current=r))}),[t])}(g,m.visualElement,t),g,p)),v)}))}function j(e){function t(t,n){return void 0===n&&(n={}),R(e(t,n))}var n=new Map;return new Proxy(t,{get:function(e,r){return n.has(r)||n.set(r,t(r)),n.get(r)}})}var D=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","svg","switch","symbol","text","tspan","use","view"];function N(e){return"string"===typeof e&&!e.includes("-")&&!!(D.indexOf(e)>-1||/[A-Z]/.test(e))}var L={};var I=["","X","Y","Z"],z=["transformPerspective","x","y","z"];function B(e,t){return z.indexOf(e)-z.indexOf(t)}["translate","scale","rotate","skew"].forEach((function(e){return I.forEach((function(t){return z.push(e+t)}))}));var F=new Set(z);function H(e){return F.has(e)}var V=new Set(["originX","originY","originZ"]);function U(e){return V.has(e)}function G(e,t){var n=t.layout,r=t.layoutId;return H(e)||U(e)||(n||void 0!==r)&&(!!L[e]||"opacity"===e)}var q=function(e){return null!==e&&"object"===typeof e&&e.getVelocity},K={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"};function W(e){return e.startsWith("--")}var Z=function(e,t){return t&&"number"===typeof e?t.transform(e):e};var $=function(){return($=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};Object.create;Object.create;var X=function(e,t){return function(n){return Math.max(Math.min(n,t),e)}},Y=function(e){return e%1?Number(e.toFixed(5)):e},Q=/(-)?([\d]*\.?[\d])+/g,J=/(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))/gi,ee=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i;function te(e){return"string"===typeof e}var ne=function(e){return{test:function(t){return te(t)&&t.endsWith(e)&&1===t.split(" ").length},parse:parseFloat,transform:function(t){return""+t+e}}},re=ne("deg"),ie=ne("%"),oe=ne("px"),ae=ne("vh"),se=ne("vw"),ue=$($({},ie),{parse:function(e){return ie.parse(e)/100},transform:function(e){return ie.transform(100*e)}}),ce={test:function(e){return"number"===typeof e},parse:parseFloat,transform:function(e){return e}},le=$($({},ce),{transform:X(0,1)}),de=$($({},ce),{default:1}),fe=(0,r.pi)((0,r.pi)({},ce),{transform:Math.round}),he={borderWidth:oe,borderTopWidth:oe,borderRightWidth:oe,borderBottomWidth:oe,borderLeftWidth:oe,borderRadius:oe,radius:oe,borderTopLeftRadius:oe,borderTopRightRadius:oe,borderBottomRightRadius:oe,borderBottomLeftRadius:oe,width:oe,maxWidth:oe,height:oe,maxHeight:oe,size:oe,top:oe,right:oe,bottom:oe,left:oe,padding:oe,paddingTop:oe,paddingRight:oe,paddingBottom:oe,paddingLeft:oe,margin:oe,marginTop:oe,marginRight:oe,marginBottom:oe,marginLeft:oe,rotate:re,rotateX:re,rotateY:re,rotateZ:re,scale:de,scaleX:de,scaleY:de,scaleZ:de,skew:re,skewX:re,skewY:re,distance:oe,translateX:oe,translateY:oe,translateZ:oe,x:oe,y:oe,z:oe,perspective:oe,transformPerspective:oe,opacity:le,originX:ue,originY:ue,originZ:oe,zIndex:fe,fillOpacity:le,strokeOpacity:le,numOctaves:fe};function pe(e,t,n,r,i,o,a,s){var u,c=e.style,l=e.vars,d=e.transform,f=e.transformKeys,h=e.transformOrigin;f.length=0;var p=!1,v=!1,m=!0;for(var g in t){var y=t[g];if(W(g))l[g]=y;else{var b=he[g],w=Z(y,b);if(H(g)){if(p=!0,d[g]=w,f.push(g),!m)continue;y!==(null!==(u=b.default)&&void 0!==u?u:0)&&(m=!1)}else if(U(g))h[g]=w,v=!0;else if((null===n||void 0===n?void 0:n.isHydrated)&&(null===r||void 0===r?void 0:r.isHydrated)&&L[g]){var x=L[g].process(y,r,n),E=L[g].applyTo;if(E)for(var k=E.length,_=0;_<k;_++)c[E[_]]=x;else c[g]=x}else c[g]=w}}r&&n&&a&&s?(c.transform=a(r.deltaFinal,r.treeScale,p?d:void 0),o&&(c.transform=o(d,c.transform)),c.transformOrigin=s(r)):(p&&(c.transform=function(e,t,n,r){var i=e.transform,o=e.transformKeys,a=t.enableHardwareAcceleration,s=void 0===a||a,u=t.allowTransformNone,c=void 0===u||u,l="";o.sort(B);for(var d=!1,f=o.length,h=0;h<f;h++){var p=o[h];l+=(K[p]||p)+"("+i[p]+") ","z"===p&&(d=!0)}return!d&&s?l+="translateZ(0)":l=l.trim(),r?l=r(i,n?"":l):c&&n&&(l="none"),l}(e,i,m,o)),v&&(c.transformOrigin=function(e){var t=e.originX,n=void 0===t?"50%":t,r=e.originY,i=void 0===r?"50%":r,o=e.originZ;return n+" "+i+" "+(void 0===o?0:o)}(h)))}var ve=function(){return{style:{},transform:{},transformKeys:[],transformOrigin:{},vars:{}}};function me(e,t,n){for(var r in t)q(t[r])||G(r,n)||(e[r]=t[r])}function ge(e,t,n){var o={};return me(o,e.style||{},e),Object.assign(o,function(e,t,n){var o=e.transformTemplate;return(0,i.useMemo)((function(){var e={style:{},transform:{},transformKeys:[],transformOrigin:{},vars:{}};pe(e,t,void 0,void 0,{enableHardwareAcceleration:!n},o);var i=e.vars,a=e.style;return(0,r.pi)((0,r.pi)({},i),a)}),[t])}(e,t,n)),e.transformValues&&(o=e.transformValues(o)),o}function ye(e,t,n){var r={},i=ge(e,t,n);return Boolean(e.drag)&&(r.draggable=!1,i.userSelect=i.WebkitUserSelect=i.WebkitTouchCallout="none",i.touchAction=!0===e.drag?"none":"pan-"+("x"===e.drag?"y":"x")),r.style=i,r}var be=new Set(["initial","animate","exit","style","variants","transition","transformTemplate","transformValues","custom","inherit","layout","layoutId","_layoutResetTransform","onLayoutAnimationComplete","onViewportBoxUpdate","onLayoutMeasure","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","drag","dragControls","dragListener","dragConstraints","dragDirectionLock","_dragX","_dragY","dragElastic","dragMomentum","dragPropagation","dragTransition","whileDrag","onPan","onPanStart","onPanEnd","onPanSessionStart","onTap","onTapStart","onTapCancel","onHoverStart","onHoverEnd","whileFocus","whileTap","whileHover"]);function we(e){return be.has(e)}var xe=function(e){return!we(e)};try{var Ee=n(4910).Z;xe=function(e){return e.startsWith("on")?!we(e):Ee(e)}}catch(Co){}function ke(e,t,n){return"string"===typeof e?e:oe.transform(t+n*e)}var _e=function(e,t){return oe.transform(e*t)},Te={offset:"stroke-dashoffset",array:"stroke-dasharray"},Oe={offset:"strokeDashoffset",array:"strokeDasharray"};function Ce(e,t,n,i,o,a,s,u){var c=t.attrX,l=t.attrY,d=t.originX,f=t.originY,h=t.pathLength,p=t.pathSpacing,v=void 0===p?1:p,m=t.pathOffset,g=void 0===m?0:m;pe(e,(0,r._T)(t,["attrX","attrY","originX","originY","pathLength","pathSpacing","pathOffset"]),n,i,o,a,s,u),e.attrs=e.style,e.style={};var y=e.attrs,b=e.style,w=e.dimensions,x=e.totalPathLength;y.transform&&(w&&(b.transform=y.transform),delete y.transform),w&&(void 0!==d||void 0!==f||b.transform)&&(b.transformOrigin=function(e,t,n){return ke(t,e.x,e.width)+" "+ke(n,e.y,e.height)}(w,void 0!==d?d:.5,void 0!==f?f:.5)),void 0!==c&&(y.x=c),void 0!==l&&(y.y=l),void 0!==x&&void 0!==h&&function(e,t,n,r,i,o){void 0===r&&(r=1),void 0===i&&(i=0),void 0===o&&(o=!0);var a=o?Te:Oe;e[a.offset]=_e(-i,t);var s=_e(n,t),u=_e(r,t);e[a.array]=s+" "+u}(y,x,h,v,g,!1)}var Ae=function(){return(0,r.pi)((0,r.pi)({},{style:{},transform:{},transformKeys:[],transformOrigin:{},vars:{}}),{attrs:{}})};function Pe(e,t){var n=(0,i.useMemo)((function(){var n=Ae();return Ce(n,t,void 0,void 0,{enableHardwareAcceleration:!1},e.transformTemplate),(0,r.pi)((0,r.pi)({},n.attrs),{style:(0,r.pi)({},n.style)})}),[t]);if(e.style){var o={};me(o,e.style,e),n.style=(0,r.pi)((0,r.pi)({},o),n.style)}return n}function Se(e){void 0===e&&(e=!1);return function(t,n,o,a,s){var u=a.latestValues,c=(N(t)?Pe:ye)(n,u,s),l=function(e,t,n){var r={};for(var i in e)(xe(i)||!0===n&&we(i)||!t&&!we(i))&&(r[i]=e[i]);return r}(n,"string"===typeof t,e),d=(0,r.pi)((0,r.pi)((0,r.pi)({},l),c),{ref:o});return(0,i.createElement)(t,d)}}var Me=/([a-z])([A-Z])/g,Re=function(e){return e.replace(Me,"$1-$2").toLowerCase()};function je(e,t){var n=t.style,r=t.vars;for(var i in Object.assign(e.style,n),r)e.style.setProperty(i,r[i])}var De=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform"]);function Ne(e,t){for(var n in je(e,t),t.attrs)e.setAttribute(De.has(n)?n:Re(n),t.attrs[n])}function Le(e){var t=e.style,n={};for(var r in t)(q(t[r])||G(r,e))&&(n[r]=t[r]);return n}function Ie(e){var t=Le(e);for(var n in e){if(q(e[n]))t["x"===n||"y"===n?"attr"+n.toUpperCase():n]=e[n]}return t}function ze(e){return"object"===typeof e&&"function"===typeof e.start}var Be=function(e){return Array.isArray(e)};function Fe(e){var t,n=q(e)?e.get():e;return t=n,Boolean(t&&"object"===typeof t&&t.mix&&t.toValue)?n.toValue():n}function He(e,t,n,r){var i=e.scrapeMotionValuesFromProps,o=e.createRenderState,a=e.onMount,s={latestValues:Ue(t,n,r,i),renderState:o()};return a&&(s.mount=function(e){return a(t,e,s)}),s}var Ve=function(e){return function(t,n){var r=(0,i.useContext)(d),o=(0,i.useContext)(f.O);return n?He(e,t,r,o):(0,h.h)((function(){return He(e,t,r,o)}))}};function Ue(e,t,n,i){var o={},a=!1===(null===n||void 0===n?void 0:n.initial),s=i(e);for(var u in s)o[u]=Fe(s[u]);var c=e.initial,l=e.animate,d=A(e),f=P(e);t&&f&&!d&&!1!==e.inherit&&(null!==c&&void 0!==c||(c=t.initial),null!==l&&void 0!==l||(l=t.animate));var h=a||!1===c?l:c;h&&"boolean"!==typeof h&&!ze(h)&&(Array.isArray(h)?h:[h]).forEach((function(t){var n=O(e,t);if(n){var i=n.transitionEnd;n.transition;var a=(0,r._T)(n,["transitionEnd","transition"]);for(var s in a)o[s]=a[s];for(var s in i)o[s]=i[s]}}));return o}var Ge={useVisualState:Ve({scrapeMotionValuesFromProps:Ie,createRenderState:Ae,onMount:function(e,t,n){var r=n.renderState,i=n.latestValues;try{r.dimensions="function"===typeof t.getBBox?t.getBBox():t.getBoundingClientRect()}catch(o){r.dimensions={x:0,y:0,width:0,height:0}}"path"===t.tagName&&(r.totalPathLength=t.getTotalLength()),Ce(r,i,void 0,void 0,{enableHardwareAcceleration:!1},e.transformTemplate),Ne(t,r)}})};var qe,Ke={useVisualState:Ve({scrapeMotionValuesFromProps:Le,createRenderState:ve})};function We(e,t,n,r){return e.addEventListener(t,n,r),function(){return e.removeEventListener(t,n,r)}}function Ze(e,t,n,r){(0,i.useEffect)((function(){var i=e.current;if(n&&i)return We(i,t,n,r)}),[e,t,n,r])}function $e(e){return"undefined"!==typeof PointerEvent&&e instanceof PointerEvent?!("mouse"!==e.pointerType):e instanceof MouseEvent}function Xe(e){return!!e.touches}!function(e){e.Animate="animate",e.Hover="whileHover",e.Tap="whileTap",e.Drag="whileDrag",e.Focus="whileFocus",e.Exit="exit"}(qe||(qe={}));var Ye={pageX:0,pageY:0};function Qe(e,t){void 0===t&&(t="page");var n=e.touches[0]||e.changedTouches[0]||Ye;return{x:n[t+"X"],y:n[t+"Y"]}}function Je(e,t){return void 0===t&&(t="page"),{x:e[t+"X"],y:e[t+"Y"]}}function et(e,t){return void 0===t&&(t="page"),{point:Xe(e)?Qe(e,t):Je(e,t)}}var tt=function(e,t){void 0===t&&(t=!1);var n,r=function(t){return e(t,et(t))};return t?(n=r,function(e){var t=e instanceof MouseEvent;(!t||t&&0===e.button)&&n(e)}):r},nt={pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointercancel:"mousecancel",pointerover:"mouseover",pointerout:"mouseout",pointerenter:"mouseenter",pointerleave:"mouseleave"},rt={pointerdown:"touchstart",pointermove:"touchmove",pointerup:"touchend",pointercancel:"touchcancel"};function it(e){return w&&null===window.onpointerdown?e:w&&null===window.ontouchstart?rt[e]:w&&null===window.onmousedown?nt[e]:e}function ot(e,t,n,r){return We(e,it(t),tt(n,"pointerdown"===t),r)}function at(e,t,n,r){return Ze(e,it(t),n&&tt(n,"pointerdown"===t),r)}function st(e){var t=null;return function(){return null===t&&(t=e,function(){t=null})}}var ut=st("dragHorizontal"),ct=st("dragVertical");function lt(e){var t=!1;if("y"===e)t=ct();else if("x"===e)t=ut();else{var n=ut(),r=ct();n&&r?t=function(){n(),r()}:(n&&n(),r&&r())}return t}function dt(){var e=lt(!0);return!e||(e(),!1)}function ft(e,t,n){return function(r,i){var o;$e(r)&&!dt()&&(null===n||void 0===n||n(r,i),null===(o=e.animationState)||void 0===o||o.setActive(qe.Hover,t))}}var ht=function(e,t){return!!t&&(e===t||ht(e,t.parentElement))},pt=n(6717),vt=function(e,t){return function(n){return t(e(n))}},mt=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e.reduce(vt)};var gt=function(e){return function(t){return e(t),null}},yt={tap:gt((function(e){var t=e.onTap,n=e.onTapStart,r=e.onTapCancel,o=e.whileTap,a=e.visualElement,s=t||n||r||o,u=(0,i.useRef)(!1),c=(0,i.useRef)(null);function l(){var e;null===(e=c.current)||void 0===e||e.call(c),c.current=null}function d(){var e;return l(),u.current=!1,null===(e=a.animationState)||void 0===e||e.setActive(qe.Tap,!1),!dt()}function f(e,n){d()&&(ht(a.getInstance(),e.target)?null===t||void 0===t||t(e,n):null===r||void 0===r||r(e,n))}function h(e,t){d()&&(null===r||void 0===r||r(e,t))}at(a,"pointerdown",s?function(e,t){var r;l(),u.current||(u.current=!0,c.current=mt(ot(window,"pointerup",f),ot(window,"pointercancel",h)),null===n||void 0===n||n(e,t),null===(r=a.animationState)||void 0===r||r.setActive(qe.Tap,!0))}:void 0),(0,pt.z)(l)})),focus:gt((function(e){var t=e.whileFocus,n=e.visualElement;Ze(n,"focus",t?function(){var e;null===(e=n.animationState)||void 0===e||e.setActive(qe.Focus,!0)}:void 0),Ze(n,"blur",t?function(){var e;null===(e=n.animationState)||void 0===e||e.setActive(qe.Focus,!1)}:void 0)})),hover:gt((function(e){var t=e.onHoverStart,n=e.onHoverEnd,r=e.whileHover,i=e.visualElement;at(i,"pointerenter",t||r?ft(i,!0,t):void 0),at(i,"pointerleave",n||r?ft(i,!1,n):void 0)}))};function bt(e,t){if(!Array.isArray(t))return!1;var n=t.length;if(n!==e.length)return!1;for(var r=0;r<n;r++)if(t[r]!==e[r])return!1;return!0}var wt=function(){return(wt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};function xt(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}Object.create;Object.create;var Et=function(e,t,n){return Math.min(Math.max(n,e),t)},kt=.001;function _t(e){var t,n,r=e.duration,i=void 0===r?800:r,o=e.bounce,a=void 0===o?.25:o,s=e.velocity,u=void 0===s?0:s,c=e.mass,l=void 0===c?1:c,d=1-a;d=Et(.05,1,d),i=Et(.01,10,i/1e3),d<1?(t=function(e){var t=e*d,n=t*i,r=t-u,o=Tt(e,d),a=Math.exp(-n);return kt-r/o*a},n=function(e){var n=e*d*i,r=n*u+u,o=Math.pow(d,2)*Math.pow(e,2)*i,a=Math.exp(-n),s=Tt(Math.pow(e,2),d);return(-t(e)+kt>0?-1:1)*((r-o)*a)/s}):(t=function(e){return Math.exp(-e*i)*((e-u)*i+1)-.001},n=function(e){return Math.exp(-e*i)*(i*i*(u-e))});var f=function(e,t,n){for(var r=n,i=1;i<12;i++)r-=e(r)/t(r);return r}(t,n,5/i);if(i*=1e3,isNaN(f))return{stiffness:100,damping:10,duration:i};var h=Math.pow(f,2)*l;return{stiffness:h,damping:2*d*Math.sqrt(l*h),duration:i}}function Tt(e,t){return e*Math.sqrt(1-t*t)}var Ot=["duration","bounce"],Ct=["stiffness","damping","mass"];function At(e,t){return t.some((function(t){return void 0!==e[t]}))}function Pt(e){var t=e.from,n=void 0===t?0:t,r=e.to,i=void 0===r?1:r,o=e.restSpeed,a=void 0===o?2:o,s=e.restDelta,u=xt(e,["from","to","restSpeed","restDelta"]),c={done:!1,value:n},l=function(e){var t=wt({velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1},e);if(!At(e,Ct)&&At(e,Ot)){var n=_t(e);(t=wt(wt(wt({},t),n),{velocity:0,mass:1})).isResolvedFromDuration=!0}return t}(u),d=l.stiffness,f=l.damping,h=l.mass,p=l.velocity,v=l.duration,m=l.isResolvedFromDuration,g=St,y=St;function b(){var e=p?-p/1e3:0,t=i-n,r=f/(2*Math.sqrt(d*h)),o=Math.sqrt(d/h)/1e3;if(null!==s&&void 0!==s||(s=Math.abs(i-n)<=1?.01:.4),r<1){var a=Tt(o,r);g=function(n){var s=Math.exp(-r*o*n);return i-s*((e+r*o*t)/a*Math.sin(a*n)+t*Math.cos(a*n))},y=function(n){var i=Math.exp(-r*o*n);return r*o*i*(Math.sin(a*n)*(e+r*o*t)/a+t*Math.cos(a*n))-i*(Math.cos(a*n)*(e+r*o*t)-a*t*Math.sin(a*n))}}else if(1===r)g=function(n){return i-Math.exp(-o*n)*(t+(e+o*t)*n)};else{var u=o*Math.sqrt(r*r-1);g=function(n){var a=Math.exp(-r*o*n),s=Math.min(u*n,300);return i-a*((e+r*o*t)*Math.sinh(s)+u*t*Math.cosh(s))/u}}}return b(),{next:function(e){var t=g(e);if(m)c.done=e>=v;else{var n=1e3*y(e),r=Math.abs(n)<=a,o=Math.abs(i-t)<=s;c.done=r&&o}return c.value=c.done?i:t,c},flipTarget:function(){var e;p=-p,n=(e=[i,n])[0],i=e[1],b()}}}Pt.needsInterpolation=function(e,t){return"string"===typeof e||"string"===typeof t};var St=function(e){return 0},Mt=function(e,t,n){var r=t-e;return 0===r?1:(n-e)/r},Rt=function(e,t,n){return-n*e+n*t+e},jt=function(e,t){return function(n){return Boolean(te(n)&&ee.test(n)&&n.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(n,t))}},Dt=function(e,t,n){return function(r){var i;if(!te(r))return r;var o=r.match(Q),a=o[0],s=o[1],u=o[2],c=o[3];return(i={})[e]=parseFloat(a),i[t]=parseFloat(s),i[n]=parseFloat(u),i.alpha=void 0!==c?parseFloat(c):1,i}},Nt=X(0,255),Lt=$($({},ce),{transform:function(e){return Math.round(Nt(e))}}),It={test:jt("rgb","red"),parse:Dt("red","green","blue"),transform:function(e){var t=e.red,n=e.green,r=e.blue,i=e.alpha,o=void 0===i?1:i;return"rgba("+Lt.transform(t)+", "+Lt.transform(n)+", "+Lt.transform(r)+", "+Y(le.transform(o))+")"}};var zt={test:jt("#"),parse:function(e){var t="",n="",r="",i="";return e.length>5?(t=e.substr(1,2),n=e.substr(3,2),r=e.substr(5,2),i=e.substr(7,2)):(t=e.substr(1,1),n=e.substr(2,1),r=e.substr(3,1),i=e.substr(4,1),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}},transform:It.transform},Bt={test:jt("hsl","hue"),parse:Dt("hue","saturation","lightness"),transform:function(e){var t=e.hue,n=e.saturation,r=e.lightness,i=e.alpha,o=void 0===i?1:i;return"hsla("+Math.round(t)+", "+ie.transform(Y(n))+", "+ie.transform(Y(r))+", "+Y(le.transform(o))+")"}},Ft=function(e,t,n){var r=e*e,i=t*t;return Math.sqrt(Math.max(0,n*(i-r)+r))},Ht=[zt,It,Bt],Vt=function(e){return Ht.find((function(t){return t.test(e)}))},Ut=function(e){return"'"+e+"' is not an animatable color. Use the equivalent color code instead."},Gt=function(e,t){var n=Vt(e),r=Vt(t);Ut(e),Ut(t),n.transform,r.transform;var i=n.parse(e),o=r.parse(t),a=wt({},i),s=n===Bt?Rt:Ft;return function(e){for(var t in a)"alpha"!==t&&(a[t]=s(i[t],o[t],e));return a.alpha=Rt(i.alpha,o.alpha,e),n.transform(a)}},qt={test:function(e){return It.test(e)||zt.test(e)||Bt.test(e)},parse:function(e){return It.test(e)?It.parse(e):Bt.test(e)?Bt.parse(e):zt.parse(e)},transform:function(e){return te(e)?e:e.hasOwnProperty("red")?It.transform(e):Bt.transform(e)}},Kt="${c}",Wt="${n}";function Zt(e){var t=[],n=0,r=e.match(J);r&&(n=r.length,e=e.replace(J,Kt),t.push.apply(t,r.map(qt.parse)));var i=e.match(Q);return i&&(e=e.replace(Q,Wt),t.push.apply(t,i.map(ce.parse))),{values:t,numColors:n,tokenised:e}}function $t(e){return Zt(e).values}function Xt(e){var t=Zt(e),n=t.values,r=t.numColors,i=t.tokenised,o=n.length;return function(e){for(var t=i,n=0;n<o;n++)t=t.replace(n<r?Kt:Wt,n<r?qt.transform(e[n]):Y(e[n]));return t}}var Yt=function(e){return"number"===typeof e?0:e};var Qt={test:function(e){var t,n,r,i;return isNaN(e)&&te(e)&&(null!==(n=null===(t=e.match(Q))||void 0===t?void 0:t.length)&&void 0!==n?n:0)+(null!==(i=null===(r=e.match(J))||void 0===r?void 0:r.length)&&void 0!==i?i:0)>0},parse:$t,createTransformer:Xt,getAnimatableNone:function(e){var t=$t(e);return Xt(e)(t.map(Yt))}},Jt=function(e){return"number"===typeof e};function en(e,t){return Jt(e)?function(n){return Rt(e,t,n)}:qt.test(e)?Gt(e,t):on(e,t)}var tn=function(e,t){var n=function(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i<o;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||t)}([],e),r=n.length,i=e.map((function(e,n){return en(e,t[n])}));return function(e){for(var t=0;t<r;t++)n[t]=i[t](e);return n}},nn=function(e,t){var n=wt(wt({},e),t),r={};for(var i in n)void 0!==e[i]&&void 0!==t[i]&&(r[i]=en(e[i],t[i]));return function(e){for(var t in r)n[t]=r[t](e);return n}};function rn(e){for(var t=Qt.parse(e),n=t.length,r=0,i=0,o=0,a=0;a<n;a++)r||"number"===typeof t[a]?r++:void 0!==t[a].hue?o++:i++;return{parsed:t,numNumbers:r,numRGB:i,numHSL:o}}var on=function(e,t){var n=Qt.createTransformer(t),r=rn(e),i=rn(t);return r.numHSL===i.numHSL&&r.numRGB===i.numRGB&&(r.numNumbers,i.numNumbers),mt(tn(r.parsed,i.parsed),n)},an=function(e,t){return function(n){return Rt(e,t,n)}};function sn(e,t,n){for(var r,i=[],o=n||("number"===typeof(r=e[0])?an:"string"===typeof r?qt.test(r)?Gt:on:Array.isArray(r)?tn:"object"===typeof r?nn:void 0),a=e.length-1,s=0;s<a;s++){var u=o(e[s],e[s+1]);if(t){var c=Array.isArray(t)?t[s]:t;u=mt(c,u)}i.push(u)}return i}function un(e,t,n){var r=void 0===n?{}:n,i=r.clamp,o=void 0===i||i,a=r.ease,s=r.mixer,u=e.length;t.length,!a||!Array.isArray(a)||a.length,e[0]>e[u-1]&&(e=[].concat(e),t=[].concat(t),e.reverse(),t.reverse());var c=sn(t,a,s),l=2===u?function(e,t){var n=e[0],r=e[1],i=t[0];return function(e){return i(Mt(n,r,e))}}(e,c):function(e,t){var n=e.length,r=n-1;return function(i){var o=0,a=!1;if(i<=e[0]?a=!0:i>=e[r]&&(o=r-1,a=!0),!a){for(var s=1;s<n&&!(e[s]>i||s===r);s++);o=s-1}var u=Mt(e[o],e[o+1],i);return t[o](u)}}(e,c);return o?function(t){return l(Et(e[0],e[u-1],t))}:l}var cn,ln=function(e){return function(t){return 1-e(1-t)}},dn=function(e){return function(t){return t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2}},fn=function(e){return function(t){return t*t*((e+1)*t-e)}},hn=function(e){return e},pn=(cn=2,function(e){return Math.pow(e,cn)}),vn=ln(pn),mn=dn(pn),gn=function(e){return 1-Math.sin(Math.acos(e))},yn=ln(gn),bn=dn(yn),wn=fn(1.525),xn=ln(wn),En=dn(wn),kn=function(e){var t=fn(e);return function(e){return(e*=2)<1?.5*t(e):.5*(2-Math.pow(2,-10*(e-1)))}}(1.525),_n=function(e){if(1===e||0===e)return e;var t=e*e;return e<.36363636363636365?7.5625*t:e<.7272727272727273?9.075*t-9.9*e+3.4:e<.9?12.066481994459833*t-19.63545706371191*e+8.898060941828255:10.8*e*e-20.52*e+10.72},Tn=ln(_n);function On(e,t){return e.map((function(){return t||mn})).splice(0,e.length-1)}function Cn(e){var t=e.from,n=void 0===t?0:t,r=e.to,i=void 0===r?1:r,o=e.ease,a=e.offset,s=e.duration,u=void 0===s?300:s,c={done:!1,value:n},l=Array.isArray(i)?i:[n,i],d=function(e,t){return e.map((function(e){return e*t}))}(a&&a.length===l.length?a:function(e){var t=e.length;return e.map((function(e,n){return 0!==n?n/(t-1):0}))}(l),u);function f(){return un(d,l,{ease:Array.isArray(o)?o:On(l,o)})}var h=f();return{next:function(e){return c.value=h(e),c.done=e>=u,c},flipTarget:function(){l.reverse(),h=f()}}}var An={keyframes:Cn,spring:Pt,decay:function(e){var t=e.velocity,n=void 0===t?0:t,r=e.from,i=void 0===r?0:r,o=e.power,a=void 0===o?.8:o,s=e.timeConstant,u=void 0===s?350:s,c=e.restDelta,l=void 0===c?.5:c,d=e.modifyTarget,f={done:!1,value:i},h=a*n,p=i+h,v=void 0===d?p:d(p);return v!==p&&(h=v-i),{next:function(e){var t=-h*Math.exp(-e/u);return f.done=!(t>l||t<-l),f.value=f.done?v:v+t,f},flipTarget:function(){}}}};var Pn=n(9839);function Sn(e,t,n){return void 0===n&&(n=0),e-t-n}var Mn=function(e){var t=function(t){var n=t.delta;return e(n)};return{start:function(){return Pn.ZP.update(t,!0)},stop:function(){return Pn.qY.update(t)}}};function Rn(e){var t,n,r,i,o,a=e.from,s=e.autoplay,u=void 0===s||s,c=e.driver,l=void 0===c?Mn:c,d=e.elapsed,f=void 0===d?0:d,h=e.repeat,p=void 0===h?0:h,v=e.repeatType,m=void 0===v?"loop":v,g=e.repeatDelay,y=void 0===g?0:g,b=e.onPlay,w=e.onStop,x=e.onComplete,E=e.onRepeat,k=e.onUpdate,_=xt(e,["from","autoplay","driver","elapsed","repeat","repeatType","repeatDelay","onPlay","onStop","onComplete","onRepeat","onUpdate"]),T=_.to,O=0,C=_.duration,A=!1,P=!0,S=function(e){if(Array.isArray(e.to))return Cn;if(An[e.type])return An[e.type];var t=new Set(Object.keys(e));return t.has("ease")||t.has("duration")&&!t.has("dampingRatio")?Cn:t.has("dampingRatio")||t.has("stiffness")||t.has("mass")||t.has("damping")||t.has("restSpeed")||t.has("restDelta")?Pt:Cn}(_);(null===(n=(t=S).needsInterpolation)||void 0===n?void 0:n.call(t,a,T))&&(o=un([0,100],[a,T],{clamp:!1}),a=0,T=100);var M=S(wt(wt({},_),{from:a,to:T}));function R(){O++,"reverse"===m?f=function(e,t,n,r){return void 0===n&&(n=0),void 0===r&&(r=!0),r?Sn(t+-e,t,n):t-(e-t)+n}(f,C,y,P=O%2===0):(f=Sn(f,C,y),"mirror"===m&&M.flipTarget()),A=!1,E&&E()}function j(e){if(P||(e=-e),f+=e,!A){var t=M.next(Math.max(0,f));i=t.value,o&&(i=o(i)),A=P?t.done:f<=0}null===k||void 0===k||k(i),A&&(0===O&&(null!==C&&void 0!==C||(C=f)),O<p?function(e,t,n,r){return r?e>=t+n:e<=-n}(f,C,y,P)&&R():(r.stop(),x&&x()))}return u&&(null===b||void 0===b||b(),(r=l(j)).start()),{stop:function(){null===w||void 0===w||w(),r.stop()}}}function jn(e,t){return t?e*(1e3/t):0}var Dn=function(e){return 1e3*e},Nn=function(e,t){return 1-3*t+3*e},Ln=function(e,t){return 3*t-6*e},In=function(e){return 3*e},zn=function(e,t,n){return((Nn(t,n)*e+Ln(t,n))*e+In(t))*e},Bn=function(e,t,n){return 3*Nn(t,n)*e*e+2*Ln(t,n)*e+In(t)};var Fn=.1;function Hn(e,t,n,r){if(e===t&&n===r)return hn;for(var i=new Float32Array(11),o=0;o<11;++o)i[o]=zn(o*Fn,e,n);function a(t){for(var r=0,o=1;10!==o&&i[o]<=t;++o)r+=Fn;--o;var a=r+(t-i[o])/(i[o+1]-i[o])*Fn,s=Bn(a,e,n);return s>=.001?function(e,t,n,r){for(var i=0;i<8;++i){var o=Bn(t,n,r);if(0===o)return t;t-=(zn(t,n,r)-e)/o}return t}(t,a,e,n):0===s?a:function(e,t,n,r,i){var o,a,s=0;do{(o=zn(a=t+(n-t)/2,r,i)-e)>0?n=a:t=a}while(Math.abs(o)>1e-7&&++s<10);return a}(t,r,r+Fn,e,n)}return function(e){return 0===e||1===e?e:zn(a(e),t,r)}}var Vn={linear:hn,easeIn:pn,easeInOut:mn,easeOut:vn,circIn:gn,circInOut:bn,circOut:yn,backIn:wn,backInOut:En,backOut:xn,anticipate:kn,bounceIn:Tn,bounceInOut:function(e){return e<.5?.5*(1-_n(1-2*e)):.5*_n(2*e-1)+.5},bounceOut:_n},Un=function(e){if(Array.isArray(e)){e.length;var t=(0,r.CR)(e,4);return Hn(t[0],t[1],t[2],t[3])}return"string"===typeof e?Vn[e]:e},Gn=function(e,t){return"zIndex"!==e&&(!("number"!==typeof t&&!Array.isArray(t))||!("string"!==typeof t||!Qt.test(t)||t.startsWith("url(")))},qn=function(){return{type:"spring",stiffness:500,damping:25,restDelta:.5,restSpeed:10}},Kn=function(e){return{type:"spring",stiffness:550,damping:0===e?2*Math.sqrt(550):30,restDelta:.01,restSpeed:10}},Wn=function(){return{type:"keyframes",ease:"linear",duration:.3}},Zn=function(e){return{type:"keyframes",duration:.8,values:e}},$n={x:qn,y:qn,z:qn,rotate:qn,rotateX:qn,rotateY:qn,rotateZ:qn,scaleX:Kn,scaleY:Kn,scale:Kn,opacity:Wn,backgroundColor:Wn,color:Wn,default:Kn},Xn=new Set(["brightness","contrast","saturate","opacity"]);function Yn(e){var t=e.slice(0,-1).split("("),n=t[0],r=t[1];if("drop-shadow"===n)return e;var i=(r.match(Q)||[])[0];if(!i)return e;var o=r.replace(i,""),a=Xn.has(n)?1:0;return i!==r&&(a*=100),n+"("+a+o+")"}var Qn=/([a-z-]*)\(.*?\)/g,Jn=$($({},Qt),{getAnimatableNone:function(e){var t=e.match(Qn);return t?t.map(Yn).join(" "):e}}),er=(0,r.pi)((0,r.pi)({},he),{color:qt,backgroundColor:qt,outlineColor:qt,fill:qt,stroke:qt,borderColor:qt,borderTopColor:qt,borderRightColor:qt,borderBottomColor:qt,borderLeftColor:qt,filter:Jn,WebkitFilter:Jn}),tr=function(e){return er[e]};function nr(e,t){var n,r=tr(e);return r!==Jn&&(r=Qt),null===(n=r.getAnimatableNone)||void 0===n?void 0:n.call(r,t)}function rr(e){var t=e.ease,n=e.times,i=e.yoyo,o=e.flip,a=e.loop,s=(0,r._T)(e,["ease","times","yoyo","flip","loop"]),u=(0,r.pi)({},s);return n&&(u.offset=n),s.duration&&(u.duration=Dn(s.duration)),s.repeatDelay&&(u.repeatDelay=Dn(s.repeatDelay)),t&&(u.ease=function(e){return Array.isArray(e)&&"number"!==typeof e[0]}(t)?t.map(Un):Un(t)),"tween"===s.type&&(u.type="keyframes"),(i||a||o)&&(!0,i?u.repeatType="reverse":a?u.repeatType="loop":o&&(u.repeatType="mirror"),u.repeat=a||i||o||s.repeat),"spring"!==s.type&&(u.type="keyframes"),u}function ir(e,t,n){var i;return Array.isArray(t.to)&&(null!==(i=e.duration)&&void 0!==i||(e.duration=.8)),function(e){Array.isArray(e.to)&&null===e.to[0]&&(e.to=(0,r.ev)([],(0,r.CR)(e.to)),e.to[0]=e.from)}(t),function(e){e.when,e.delay,e.delayChildren,e.staggerChildren,e.staggerDirection,e.repeat,e.repeatType,e.repeatDelay,e.from;var t=(0,r._T)(e,["when","delay","delayChildren","staggerChildren","staggerDirection","repeat","repeatType","repeatDelay","from"]);return!!Object.keys(t).length}(e)||(e=(0,r.pi)((0,r.pi)({},e),function(e,t){var n;return n=Be(t)?Zn:$n[e]||$n.default,(0,r.pi)({to:t},n(t))}(n,t.to))),(0,r.pi)((0,r.pi)({},t),rr(e))}function or(e,t,n,i,o){var a,s=ur(i,e),u=null!==(a=s.from)&&void 0!==a?a:t.get(),c=Gn(e,n);"none"===u&&c&&"string"===typeof n?u=nr(e,n):ar(u)&&"string"===typeof n?u=sr(n):!Array.isArray(n)&&ar(n)&&"string"===typeof u&&(n=sr(u));var l=Gn(e,u);return l&&c&&!1!==s.type?function(){var i={from:u,to:n,velocity:t.getVelocity(),onComplete:o,onUpdate:function(e){return t.set(e)}};return"inertia"===s.type||"decay"===s.type?function(e){var t,n=e.from,r=void 0===n?0:n,i=e.velocity,o=void 0===i?0:i,a=e.min,s=e.max,u=e.power,c=void 0===u?.8:u,l=e.timeConstant,d=void 0===l?750:l,f=e.bounceStiffness,h=void 0===f?500:f,p=e.bounceDamping,v=void 0===p?10:p,m=e.restDelta,g=void 0===m?1:m,y=e.modifyTarget,b=e.driver,w=e.onUpdate,x=e.onComplete;function E(e){return void 0!==a&&e<a||void 0!==s&&e>s}function k(e){return void 0===a?s:void 0===s||Math.abs(a-e)<Math.abs(s-e)?a:s}function _(e){null===t||void 0===t||t.stop(),t=Rn(wt(wt({},e),{driver:b,onUpdate:function(t){var n;null===w||void 0===w||w(t),null===(n=e.onUpdate)||void 0===n||n.call(e,t)},onComplete:x}))}function T(e){_(wt({type:"spring",stiffness:h,damping:v,restDelta:g},e))}if(E(r))T({from:r,velocity:o,to:k(r)});else{var O=c*o+r;"undefined"!==typeof y&&(O=y(O));var C,A,P=k(O),S=P===a?-1:1;_({type:"decay",from:r,velocity:o,timeConstant:d,power:c,restDelta:g,modifyTarget:y,onUpdate:E(O)?function(e){C=A,A=e,o=jn(e-C,(0,Pn.$B)().delta),(1===S&&e>P||-1===S&&e<P)&&T({from:e,to:P,velocity:o})}:void 0})}return{stop:function(){return null===t||void 0===t?void 0:t.stop()}}}((0,r.pi)((0,r.pi)({},i),s)):Rn((0,r.pi)((0,r.pi)({},ir(s,i,e)),{onUpdate:function(e){var t;i.onUpdate(e),null===(t=s.onUpdate)||void 0===t||t.call(s,e)},onComplete:function(){var e;i.onComplete(),null===(e=s.onComplete)||void 0===e||e.call(s)}}))}:function(){var e;return t.set(n),o(),null===(e=null===s||void 0===s?void 0:s.onComplete)||void 0===e||e.call(s),{stop:function(){}}}}function ar(e){return 0===e||"string"===typeof e&&0===parseFloat(e)&&-1===e.indexOf(" ")}function sr(e){return"number"===typeof e?0:nr("",e)}function ur(e,t){return e[t]||e.default||e}function cr(e,t,n,r){return void 0===r&&(r={}),t.start((function(i){var o,a,s=or(e,t,n,r,i),u=function(e,t){var n;return null!==(n=(ur(e,t)||{}).delay)&&void 0!==n?n:0}(r,e),c=function(){return a=s()};return u?o=setTimeout(c,Dn(u)):c(),function(){clearTimeout(o),null===a||void 0===a||a.stop()}}))}function lr(e,t){-1===e.indexOf(t)&&e.push(t)}function dr(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var fr=function(){function e(){this.subscriptions=[]}return e.prototype.add=function(e){var t=this;return lr(this.subscriptions,e),function(){return dr(t.subscriptions,e)}},e.prototype.notify=function(e,t,n){var r=this.subscriptions.length;if(r)if(1===r)this.subscriptions[0](e,t,n);else for(var i=0;i<r;i++){var o=this.subscriptions[i];o&&o(e,t,n)}},e.prototype.getSize=function(){return this.subscriptions.length},e.prototype.clear=function(){this.subscriptions.length=0},e}(),hr=function(){function e(e){var t,n=this;this.timeDelta=0,this.lastUpdated=0,this.updateSubscribers=new fr,this.velocityUpdateSubscribers=new fr,this.renderSubscribers=new fr,this.canTrackVelocity=!1,this.updateAndNotify=function(e,t){void 0===t&&(t=!0),n.prev=n.current,n.current=e;var r=(0,Pn.$B)(),i=r.delta,o=r.timestamp;n.lastUpdated!==o&&(n.timeDelta=i,n.lastUpdated=o,Pn.ZP.postRender(n.scheduleVelocityCheck)),n.prev!==n.current&&n.updateSubscribers.notify(n.current),n.velocityUpdateSubscribers.getSize()&&n.velocityUpdateSubscribers.notify(n.getVelocity()),t&&n.renderSubscribers.notify(n.current)},this.scheduleVelocityCheck=function(){return Pn.ZP.postRender(n.velocityCheck)},this.velocityCheck=function(e){e.timestamp!==n.lastUpdated&&(n.prev=n.current,n.velocityUpdateSubscribers.notify(n.getVelocity()))},this.hasAnimated=!1,this.prev=this.current=e,this.canTrackVelocity=(t=this.current,!isNaN(parseFloat(t)))}return e.prototype.onChange=function(e){return this.updateSubscribers.add(e)},e.prototype.clearListeners=function(){this.updateSubscribers.clear()},e.prototype.onRenderRequest=function(e){return e(this.get()),this.renderSubscribers.add(e)},e.prototype.attach=function(e){this.passiveEffect=e},e.prototype.set=function(e,t){void 0===t&&(t=!0),t&&this.passiveEffect?this.passiveEffect(e,this.updateAndNotify):this.updateAndNotify(e,t)},e.prototype.get=function(){return this.current},e.prototype.getPrevious=function(){return this.prev},e.prototype.getVelocity=function(){return this.canTrackVelocity?jn(parseFloat(this.current)-parseFloat(this.prev),this.timeDelta):0},e.prototype.start=function(e){var t=this;return this.stop(),new Promise((function(n){t.hasAnimated=!0,t.stopAnimation=e(n)})).then((function(){return t.clearAnimation()}))},e.prototype.stop=function(){this.stopAnimation&&this.stopAnimation(),this.clearAnimation()},e.prototype.isAnimating=function(){return!!this.stopAnimation},e.prototype.clearAnimation=function(){this.stopAnimation=null},e.prototype.destroy=function(){this.updateSubscribers.clear(),this.renderSubscribers.clear(),this.stop()},e}();function pr(e){return new hr(e)}var vr=function(e){return function(t){return t.test(e)}},mr=[ce,oe,ie,re,se,ae,{test:function(e){return"auto"===e},parse:function(e){return e}}],gr=function(e){return mr.find(vr(e))},yr=(0,r.ev)((0,r.ev)([],(0,r.CR)(mr)),[qt,Qt]),br=function(e){return yr.find(vr(e))};function wr(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,pr(n))}function xr(e,t){var n=C(e,t),i=n?e.makeTargetAnimatable(n,!1):{},o=i.transitionEnd,a=void 0===o?{}:o;i.transition;var s,u=(0,r._T)(i,["transitionEnd","transition"]);for(var c in u=(0,r.pi)((0,r.pi)({},u),a)){wr(e,c,(s=u[c],Be(s)?s[s.length-1]||0:s))}}function Er(e,t){if(t)return(t[e]||t.default||t).from}function kr(e,t,n){var i;void 0===n&&(n={});var o=C(e,t,n.custom),a=(o||{}).transition,s=void 0===a?e.getDefaultTransition()||{}:a;n.transitionOverride&&(s=n.transitionOverride);var u=o?function(){return _r(e,o,n)}:function(){return Promise.resolve()},c=(null===(i=e.variantChildren)||void 0===i?void 0:i.size)?function(i){void 0===i&&(i=0);var o=s.delayChildren,a=void 0===o?0:o,u=s.staggerChildren,c=s.staggerDirection;return function(e,t,n,i,o,a){void 0===n&&(n=0);void 0===i&&(i=0);void 0===o&&(o=1);var s=[],u=(e.variantChildren.size-1)*i,c=1===o?function(e){return void 0===e&&(e=0),e*i}:function(e){return void 0===e&&(e=0),u-e*i};return Array.from(e.variantChildren).sort(Tr).forEach((function(e,i){s.push(kr(e,t,(0,r.pi)((0,r.pi)({},a),{delay:n+c(i)})).then((function(){return e.notifyAnimationComplete(t)})))})),Promise.all(s)}(e,t,a+i,u,c,n)}:function(){return Promise.resolve()},l=s.when;if(l){var d=(0,r.CR)("beforeChildren"===l?[u,c]:[c,u],2),f=d[0],h=d[1];return f().then(h)}return Promise.all([u(),c(n.delay)])}function _r(e,t,n){var i,o=void 0===n?{}:n,a=o.delay,s=void 0===a?0:a,u=o.transitionOverride,c=o.type,l=e.makeTargetAnimatable(t),d=l.transition,f=void 0===d?e.getDefaultTransition():d,h=l.transitionEnd,p=(0,r._T)(l,["transition","transitionEnd"]);u&&(f=u);var v=[],m=c&&(null===(i=e.animationState)||void 0===i?void 0:i.getState()[c]);for(var g in p){var y=e.getValue(g),b=p[g];if(!(!y||void 0===b||m&&Or(m,g))){var w=cr(g,y,b,(0,r.pi)({delay:s},f));v.push(w)}}return Promise.all(v).then((function(){h&&xr(e,h)}))}function Tr(e,t){return e.sortNodePosition(t)}function Or(e,t){var n=e.protectedKeys,r=e.needsAnimating,i=n.hasOwnProperty(t)&&!0!==r[t];return r[t]=!1,i}var Cr=[qe.Animate,qe.Hover,qe.Tap,qe.Drag,qe.Focus,qe.Exit],Ar=(0,r.ev)([],(0,r.CR)(Cr)).reverse(),Pr=Cr.length;function Sr(e){return function(t){return Promise.all(t.map((function(t){var n=t.animation,r=t.options;return function(e,t,n){var r;if(void 0===n&&(n={}),e.notifyAnimationStart(),Array.isArray(t)){var i=t.map((function(t){return kr(e,t,n)}));r=Promise.all(i)}else if("string"===typeof t)r=kr(e,t,n);else{var o="function"===typeof t?C(e,t,n.custom):t;r=_r(e,o,n)}return r.then((function(){return e.notifyAnimationComplete(t)}))}(e,n,r)})))}}function Mr(e){var t=Sr(e),n=function(){var e;return(e={})[qe.Animate]=Rr(!0),e[qe.Hover]=Rr(),e[qe.Tap]=Rr(),e[qe.Drag]=Rr(),e[qe.Focus]=Rr(),e[qe.Exit]=Rr(),e}(),i={},o=!0,a=function(t,n){var i=C(e,n);if(i){i.transition;var o=i.transitionEnd,a=(0,r._T)(i,["transition","transitionEnd"]);t=(0,r.pi)((0,r.pi)((0,r.pi)({},t),a),o)}return t};function s(s,u){for(var c,l=e.getProps(),d=e.getVariantContext(!0)||{},f=[],h=new Set,p={},v=1/0,m=function(t){var i=Ar[t],m=n[i],g=null!==(c=l[i])&&void 0!==c?c:d[i],y=T(g),b=i===u?m.isActive:null;!1===b&&(v=t);var w=g===d[i]&&g!==l[i]&&y;if(w&&o&&e.manuallyAnimateOnMount&&(w=!1),m.protectedKeys=(0,r.pi)({},p),!m.isActive&&null===b||!g&&!m.prevProp||ze(g)||"boolean"===typeof g)return"continue";var x=function(e,t){if("string"===typeof t)return t!==e;if(_(t))return!bt(t,e);return!1}(m.prevProp,g)||i===u&&m.isActive&&!w&&y||t>v&&y,E=Array.isArray(g)?g:[g],k=E.reduce(a,{});!1===b&&(k={});var O=m.prevResolvedValues,C=void 0===O?{}:O,A=(0,r.pi)((0,r.pi)({},C),k),P=function(e){x=!0,h.delete(e),m.needsAnimating[e]=!0};for(var S in A){var M=k[S],R=C[S];p.hasOwnProperty(S)||(M!==R?Be(M)&&Be(R)?bt(M,R)?m.protectedKeys[S]=!0:P(S):void 0!==M?P(S):h.add(S):void 0!==M&&h.has(S)?P(S):m.protectedKeys[S]=!0)}m.prevProp=g,m.prevResolvedValues=k,m.isActive&&(p=(0,r.pi)((0,r.pi)({},p),k)),o&&e.blockInitialAnimation&&(x=!1),x&&!w&&f.push.apply(f,(0,r.ev)([],(0,r.CR)(E.map((function(e){return{animation:e,options:(0,r.pi)({type:i},s)}})))))},g=0;g<Pr;g++)m(g);if(i=(0,r.pi)({},p),h.size){var y={};h.forEach((function(t){var n=e.getBaseTarget(t);void 0!==n&&(y[t]=n)})),f.push({animation:y})}var b=Boolean(f.length);return o&&!1===l.initial&&!e.manuallyAnimateOnMount&&(b=!1),o=!1,b?t(f):Promise.resolve()}return{isAnimated:function(e){return void 0!==i[e]},animateChanges:s,setActive:function(t,r,i){var o;return n[t].isActive===r?Promise.resolve():(null===(o=e.variantChildren)||void 0===o||o.forEach((function(e){var n;return null===(n=e.animationState)||void 0===n?void 0:n.setActive(t,r)})),n[t].isActive=r,s(i,t))},setAnimateFunction:function(n){t=n(e)},getState:function(){return n}}}function Rr(e){return void 0===e&&(e=!1),{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}var jr={animation:gt((function(e){var t=e.visualElement,n=e.animate;t.animationState||(t.animationState=Mr(t)),ze(n)&&(0,i.useEffect)((function(){return n.subscribe(t)}),[n])})),exit:gt((function(e){var t=e.custom,n=e.visualElement,o=(0,r.CR)(p(),2),a=o[0],s=o[1],u=(0,i.useContext)(f.O);(0,i.useEffect)((function(){var e,r,i=null===(e=n.animationState)||void 0===e?void 0:e.setActive(qe.Exit,!a,{custom:null!==(r=null===u||void 0===u?void 0:u.custom)&&void 0!==r?r:t});!a&&(null===i||void 0===i||i.then(s))}),[a])}))},Dr=function(e){return e.hasOwnProperty("x")&&e.hasOwnProperty("y")},Nr=function(e){return Dr(e)&&e.hasOwnProperty("z")},Lr=function(e,t){return Math.abs(e-t)};function Ir(e,t){if(Jt(e)&&Jt(t))return Lr(e,t);if(Dr(e)&&Dr(t)){var n=Lr(e.x,t.x),r=Lr(e.y,t.y),i=Nr(e)&&Nr(t)?Lr(e.z,t.z):0;return Math.sqrt(Math.pow(n,2)+Math.pow(r,2)+Math.pow(i,2))}}var zr=function(){function e(e,t,n){var i=this,o=(void 0===n?{}:n).transformPagePoint;if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.updatePoint=function(){if(i.lastMoveEvent&&i.lastMoveEventInfo){var e=Hr(i.lastMoveEventInfo,i.history),t=null!==i.startEvent,n=Ir(e.offset,{x:0,y:0})>=3;if(t||n){var o=e.point,a=(0,Pn.$B)().timestamp;i.history.push((0,r.pi)((0,r.pi)({},o),{timestamp:a}));var s=i.handlers,u=s.onStart,c=s.onMove;t||(u&&u(i.lastMoveEvent,e),i.startEvent=i.lastMoveEvent),c&&c(i.lastMoveEvent,e)}}},this.handlePointerMove=function(e,t){i.lastMoveEvent=e,i.lastMoveEventInfo=Br(t,i.transformPagePoint),$e(e)&&0===e.buttons?i.handlePointerUp(e,t):Pn.ZP.update(i.updatePoint,!0)},this.handlePointerUp=function(e,t){i.end();var n=i.handlers,r=n.onEnd,o=n.onSessionEnd,a=Hr(Br(t,i.transformPagePoint),i.history);i.startEvent&&r&&r(e,a),o&&o(e,a)},!(Xe(e)&&e.touches.length>1)){this.handlers=t,this.transformPagePoint=o;var a=Br(et(e),this.transformPagePoint),s=a.point,u=(0,Pn.$B)().timestamp;this.history=[(0,r.pi)((0,r.pi)({},s),{timestamp:u})];var c=t.onSessionStart;c&&c(e,Hr(a,this.history)),this.removeListeners=mt(ot(window,"pointermove",this.handlePointerMove),ot(window,"pointerup",this.handlePointerUp),ot(window,"pointercancel",this.handlePointerUp))}}return e.prototype.updateHandlers=function(e){this.handlers=e},e.prototype.end=function(){this.removeListeners&&this.removeListeners(),Pn.qY.update(this.updatePoint)},e}();function Br(e,t){return t?{point:t(e.point)}:e}function Fr(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Hr(e,t){var n=e.point;return{point:n,delta:Fr(n,Ur(t)),offset:Fr(n,Vr(t)),velocity:Gr(t,.1)}}function Vr(e){return e[0]}function Ur(e){return e[e.length-1]}function Gr(e,t){if(e.length<2)return{x:0,y:0};for(var n=e.length-1,r=null,i=Ur(e);n>=0&&(r=e[n],!(i.timestamp-r.timestamp>Dn(t)));)n--;if(!r)return{x:0,y:0};var o=(i.timestamp-r.timestamp)/1e3;if(0===o)return{x:0,y:0};var a={x:(i.x-r.x)/o,y:(i.y-r.y)/o};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}var qr=n(3327);function Kr(e){return[e("x"),e("y")]}function Wr(e,t,n){var r=t.min,i=t.max;return void 0!==r&&e<r?e=n?Rt(r,e,n.min):Math.max(e,r):void 0!==i&&e>i&&(e=n?Rt(i,e,n.max):Math.min(e,i)),e}function Zr(e,t,n){return{min:void 0!==t?e.min+t:void 0,max:void 0!==n?e.max+n-(e.max-e.min):void 0}}function $r(e,t){var n,i=t.min-e.min,o=t.max-e.max;return t.max-t.min<e.max-e.min&&(i=(n=(0,r.CR)([o,i],2))[0],o=n[1]),{min:e.min+i,max:e.min+o}}function Xr(e,t,n){return{min:Yr(e,t),max:Yr(e,n)}}function Yr(e,t){var n;return"number"===typeof e?e:null!==(n=e[t])&&void 0!==n?n:0}function Qr(e,t){var n=e.getBoundingClientRect();return(0,qr.RX)((0,qr.dV)(n,t))}function Jr(e,t,n){return void 0===t&&(t=0),void 0===n&&(n=.01),Ir(e,t)<n}function ei(e){return e.max-e.min}function ti(e,t){var n=.5,r=ei(e),i=ei(t);return i>r?n=Mt(t.min,t.max-r,e.min):r>i&&(n=Mt(e.min,e.max-i,t.min)),Et(0,1,n)}function ni(e,t,n,r){void 0===r&&(r=.5),e.origin=r,e.originPoint=Rt(t.min,t.max,e.origin),e.scale=ei(n)/ei(t),Jr(e.scale,1,1e-4)&&(e.scale=1),e.translate=Rt(n.min,n.max,e.origin)-e.originPoint,Jr(e.translate)&&(e.translate=0)}function ri(e,t,n,r){ni(e.x,t.x,n.x,ii(r.originX)),ni(e.y,t.y,n.y,ii(r.originY))}function ii(e){return"number"===typeof e?e:.5}function oi(e,t,n){e.min=n.min+t.min,e.max=e.min+ei(t)}var ai=n(8839);function si(e,t){return{min:t.min-e.min,max:t.max-e.min}}function ui(e,t){return{x:si(e.x,t.x),y:si(e.y,t.y)}}function ci(e,t){var n=e.getLayoutId(),r=t.getLayoutId();return n!==r||void 0===r&&e!==t}function li(e){var t=e.getProps(),n=t.drag,r=t._dragX;return n&&!r}function di(e,t){e.min=t.min,e.max=t.max}function fi(e,t,n){return n+t*(e-n)}function hi(e,t,n,r,i){return void 0!==i&&(e=fi(e,i,r)),fi(e,n,r)+t}function pi(e,t,n,r,i){void 0===t&&(t=0),void 0===n&&(n=1),e.min=hi(e.min,t,n,r,i),e.max=hi(e.max,t,n,r,i)}function vi(e,t){var n=t.x,r=t.y;pi(e.x,n.translate,n.scale,n.originPoint),pi(e.y,r.translate,r.scale,r.originPoint)}function mi(e,t,n,i){var o=(0,r.CR)(i,3),a=o[0],s=o[1],u=o[2];e.min=t.min,e.max=t.max;var c=void 0!==n[u]?n[u]:.5,l=Rt(t.min,t.max,c);pi(e,n[a],n[s],l,n.scale)}var gi=["x","scaleX","originX"],yi=["y","scaleY","originY"];function bi(e,t,n){mi(e.x,t.x,n,gi),mi(e.y,t.y,n,yi)}function wi(e,t,n,r,i){return e=fi(e-=t,1/n,r),void 0!==i&&(e=fi(e,1/i,r)),e}function xi(e,t,n){var i=(0,r.CR)(n,3),o=i[0],a=i[1],s=i[2];!function(e,t,n,r,i){void 0===t&&(t=0),void 0===n&&(n=1),void 0===r&&(r=.5);var o=Rt(e.min,e.max,r)-t;e.min=wi(e.min,t,n,o,i),e.max=wi(e.max,t,n,o,i)}(e,t[o],t[a],t[s],t.scale)}function Ei(e,t){xi(e.x,t,gi),xi(e.y,t,yi)}var ki,_i=n(7565),Ti=new WeakMap,Oi=function(){function e(e){var t=e.visualElement;this.isDragging=!1,this.currentDirection=null,this.constraints=!1,this.elastic=(0,qr.VZ)(),this.props={},this.hasMutatedConstraints=!1,this.cursorProgress={x:.5,y:.5},this.originPoint={},this.openGlobalLock=null,this.panSession=null,this.visualElement=t,this.visualElement.enableLayoutProjection(),Ti.set(t,this)}return e.prototype.start=function(e,t){var n=this,i=void 0===t?{}:t,o=i.snapToCursor,a=void 0!==o&&o,s=i.cursorProgress,u=this.props.transformPagePoint;this.panSession=new zr(e,{onSessionStart:function(e){var t;n.stopMotion();var i=function(e){return et(e,"client")}(e).point;null===(t=n.cancelLayout)||void 0===t||t.call(n),n.cancelLayout=(0,_i.U)((function(e,t){var o=(0,ai.kv)(n.visualElement),u=(0,ai.e3)(n.visualElement),c=(0,r.ev)((0,r.ev)([],(0,r.CR)(o)),(0,r.CR)(u)),l=!1;n.isLayoutDrag()&&n.visualElement.lockProjectionTarget(),t((function(){c.forEach((function(e){return e.resetTransform()}))})),e((function(){(0,ai.de)(n.visualElement),u.forEach(ai.de)})),t((function(){c.forEach((function(e){return e.restoreTransform()})),a&&(l=n.snapToCursor(i))})),e((function(){Boolean(n.getAxisMotionValue("x")&&!n.isExternalDrag())||n.visualElement.rebaseProjectionTarget(!0,n.visualElement.measureViewportBox(!1)),n.visualElement.scheduleUpdateLayoutProjection();var e=n.visualElement.projection;Kr((function(t){if(!l){var r=e.target[t],o=r.min,a=r.max;n.cursorProgress[t]=s?s[t]:Mt(o,a,i[t])}var u=n.getAxisMotionValue(t);u&&(n.originPoint[t]=u.get())}))})),t((function(){Pn.iW.update(),Pn.iW.preRender(),Pn.iW.render(),Pn.iW.postRender()})),e((function(){return n.resolveDragConstraints()}))}))},onStart:function(e,t){var r,i,o,a=n.props,s=a.drag,u=a.dragPropagation;(!s||u||(n.openGlobalLock&&n.openGlobalLock(),n.openGlobalLock=lt(s),n.openGlobalLock))&&((0,_i.R)(),n.isDragging=!0,n.currentDirection=null,null===(i=(r=n.props).onDragStart)||void 0===i||i.call(r,e,t),null===(o=n.visualElement.animationState)||void 0===o||o.setActive(qe.Drag,!0))},onMove:function(e,t){var r,i,o,a,s=n.props,u=s.dragPropagation,c=s.dragDirectionLock;if(u||n.openGlobalLock){var l=t.offset;if(c&&null===n.currentDirection)return n.currentDirection=function(e,t){void 0===t&&(t=10);var n=null;Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x");return n}(l),void(null!==n.currentDirection&&(null===(i=(r=n.props).onDirectionLock)||void 0===i||i.call(r,n.currentDirection)));n.updateAxis("x",t.point,l),n.updateAxis("y",t.point,l),null===(a=(o=n.props).onDrag)||void 0===a||a.call(o,e,t),ki=e}},onSessionEnd:function(e,t){return n.stop(e,t)}},{transformPagePoint:u})},e.prototype.resolveDragConstraints=function(){var e=this,t=this.props,n=t.dragConstraints,r=t.dragElastic,i=this.visualElement.getLayoutState().layoutCorrected;this.constraints=!!n&&(k(n)?this.resolveRefConstraints(i,n):function(e,t){var n=t.top,r=t.left,i=t.bottom,o=t.right;return{x:Zr(e.x,r,o),y:Zr(e.y,n,i)}}(i,n)),this.elastic=function(e){return!1===e?e=0:!0===e&&(e=.35),{x:Xr(e,"left","right"),y:Xr(e,"top","bottom")}}(r),this.constraints&&!this.hasMutatedConstraints&&Kr((function(t){e.getAxisMotionValue(t)&&(e.constraints[t]=function(e,t){var n={};return void 0!==t.min&&(n.min=t.min-e.min),void 0!==t.max&&(n.max=t.max-e.min),n}(i[t],e.constraints[t]))}))},e.prototype.resolveRefConstraints=function(e,t){var n=this.props,r=n.onMeasureDragConstraints,i=n.transformPagePoint,o=t.current;this.constraintsBox=Qr(o,i);var a=function(e,t){return{x:$r(e.x,t.x),y:$r(e.y,t.y)}}(e,this.constraintsBox);if(r){var s=r((0,qr._6)(a));this.hasMutatedConstraints=!!s,s&&(a=(0,qr.RX)(s))}return a},e.prototype.cancelDrag=function(){var e,t;this.visualElement.unlockProjectionTarget(),null===(e=this.cancelLayout)||void 0===e||e.call(this),this.isDragging=!1,this.panSession&&this.panSession.end(),this.panSession=null,!this.props.dragPropagation&&this.openGlobalLock&&(this.openGlobalLock(),this.openGlobalLock=null),null===(t=this.visualElement.animationState)||void 0===t||t.setActive(qe.Drag,!1)},e.prototype.stop=function(e,t){var n,r,i;null===(n=this.panSession)||void 0===n||n.end(),this.panSession=null;var o=this.isDragging;if(this.cancelDrag(),o){var a=t.velocity;this.animateDragEnd(a),null===(i=(r=this.props).onDragEnd)||void 0===i||i.call(r,e,t)}},e.prototype.snapToCursor=function(e){var t=this;return Kr((function(n){if(Ci(n,t.props.drag,t.currentDirection)){var r=t.getAxisMotionValue(n);if(!r)return t.cursorProgress[n]=.5,!0;var i=t.visualElement.getLayoutState().layout,o=i[n].max-i[n].min,a=i[n].min+o/2,s=e[n]-a;t.originPoint[n]=e[n],r.set(s)}})).includes(!0)},e.prototype.updateAxis=function(e,t,n){if(Ci(e,this.props.drag,this.currentDirection))return this.getAxisMotionValue(e)?this.updateAxisMotionValue(e,n):this.updateVisualElementAxis(e,t)},e.prototype.updateAxisMotionValue=function(e,t){var n=this.getAxisMotionValue(e);if(t&&n){var r=this.originPoint[e]+t[e],i=this.constraints?Wr(r,this.constraints[e],this.elastic[e]):r;n.set(i)}},e.prototype.updateVisualElementAxis=function(e,t){var n,r=this.visualElement.getLayoutState().layout[e],i=r.max-r.min,o=this.cursorProgress[e],a=function(e,t,n,r,i){var o=e-t*n;return r?Wr(o,r,i):o}(t[e],i,o,null===(n=this.constraints)||void 0===n?void 0:n[e],this.elastic[e]);this.visualElement.setProjectionTargetAxis(e,a,a+i)},e.prototype.setProps=function(e){var t=e.drag,n=void 0!==t&&t,i=e.dragDirectionLock,o=void 0!==i&&i,a=e.dragPropagation,s=void 0!==a&&a,u=e.dragConstraints,c=void 0!==u&&u,l=e.dragElastic,d=void 0===l?.35:l,f=e.dragMomentum,h=void 0===f||f,p=(0,r._T)(e,["drag","dragDirectionLock","dragPropagation","dragConstraints","dragElastic","dragMomentum"]);this.props=(0,r.pi)({drag:n,dragDirectionLock:o,dragPropagation:s,dragConstraints:c,dragElastic:d,dragMomentum:h},p)},e.prototype.getAxisMotionValue=function(e){var t=this.props,n=t.layout,r=t.layoutId,i="_drag"+e.toUpperCase();return this.props[i]?this.props[i]:n||void 0!==r?void 0:this.visualElement.getValue(e,0)},e.prototype.isLayoutDrag=function(){return!this.getAxisMotionValue("x")},e.prototype.isExternalDrag=function(){var e=this.props,t=e._dragX,n=e._dragY;return t||n},e.prototype.animateDragEnd=function(e){var t=this,n=this.props,i=n.drag,o=n.dragMomentum,a=n.dragElastic,s=n.dragTransition,u=function(e,t){void 0===t&&(t=!0);var n,r=e.getProjectionParent();return!!r&&(t?Ei(n=ui(r.projection.target,e.projection.target),r.getLatestValues()):n=ui(r.getLayoutState().layout,e.getLayoutState().layout),Kr((function(t){return e.setProjectionTargetAxis(t,n[t].min,n[t].max,!0)})),!0)}(this.visualElement,this.isLayoutDrag()&&!this.isExternalDrag()),c=this.constraints||{};if(u&&Object.keys(c).length&&this.isLayoutDrag()){var l=this.visualElement.getProjectionParent();if(l){var d=ui(l.projection.targetFinal,c);Kr((function(e){var t=d[e],n=t.min,r=t.max;c[e]={min:isNaN(n)?void 0:n,max:isNaN(r)?void 0:r}}))}}var f=Kr((function(n){var l;if(Ci(n,i,t.currentDirection)){var d=null!==(l=null===c||void 0===c?void 0:c[n])&&void 0!==l?l:{},f=a?200:1e6,h=a?40:1e7,p=(0,r.pi)((0,r.pi)({type:"inertia",velocity:o?e[n]:0,bounceStiffness:f,bounceDamping:h,timeConstant:750,restDelta:1,restSpeed:10},s),d);return t.getAxisMotionValue(n)?t.startAxisValueAnimation(n,p):t.visualElement.startLayoutAnimation(n,p,u)}}));return Promise.all(f).then((function(){var e,n;null===(n=(e=t.props).onDragTransitionEnd)||void 0===n||n.call(e)}))},e.prototype.stopMotion=function(){var e=this;Kr((function(t){var n=e.getAxisMotionValue(t);n?n.stop():e.visualElement.stopLayoutAnimation()}))},e.prototype.startAxisValueAnimation=function(e,t){var n=this.getAxisMotionValue(e);if(n){var r=n.get();return n.set(r),n.set(r),cr(e,n,0,t)}},e.prototype.scalePoint=function(){var e=this,t=this.props,n=t.drag;if(k(t.dragConstraints)&&this.constraintsBox){this.stopMotion();var r={x:0,y:0};Kr((function(t){r[t]=ti(e.visualElement.projection.target[t],e.constraintsBox[t])})),this.updateConstraints((function(){Kr((function(t){if(Ci(t,n,null)){var i=function(e,t,n){var r=e.max-e.min,i=Rt(t.min,t.max-r,n);return{min:i,max:i+r}}(e.visualElement.projection.target[t],e.constraintsBox[t],r[t]),o=i.min,a=i.max;e.visualElement.setProjectionTargetAxis(t,o,a)}}))})),setTimeout(_i.R,1)}},e.prototype.updateConstraints=function(e){var t=this;this.cancelLayout=(0,_i.U)((function(n,r){var i=(0,ai.kv)(t.visualElement);r((function(){return i.forEach((function(e){return e.resetTransform()}))})),n((function(){return(0,ai.de)(t.visualElement)})),r((function(){return i.forEach((function(e){return e.restoreTransform()}))})),n((function(){t.resolveDragConstraints()})),e&&r(e)}))},e.prototype.mount=function(e){var t=this,n=ot(e.getInstance(),"pointerdown",(function(e){var n=t.props,r=n.drag,i=n.dragListener;r&&(void 0===i||i)&&t.start(e)})),r=We(window,"resize",(function(){t.scalePoint()})),i=e.onLayoutUpdate((function(){t.isDragging&&t.resolveDragConstraints()})),o=e.prevDragCursor;return o&&this.start(ki,{cursorProgress:o}),function(){null===n||void 0===n||n(),null===r||void 0===r||r(),null===i||void 0===i||i(),t.cancelDrag()}},e}();function Ci(e,t,n){return(!0===t||t===e)&&(null===n||n===e)}var Ai={pan:gt((function(e){var t=e.onPan,n=e.onPanStart,r=e.onPanEnd,o=e.onPanSessionStart,a=e.visualElement,s=t||n||r||o,u=(0,i.useRef)(null),c=(0,i.useContext)(l).transformPagePoint,d={onSessionStart:o,onStart:n,onMove:t,onEnd:function(e,t){u.current=null,r&&r(e,t)}};(0,i.useEffect)((function(){null!==u.current&&u.current.updateHandlers(d)})),at(a,"pointerdown",s&&function(e){u.current=new zr(e,d,{transformPagePoint:c})}),(0,pt.z)((function(){return u.current&&u.current.end()}))})),drag:gt((function(e){var t=e.dragControls,n=e.visualElement,o=(0,i.useContext)(l).transformPagePoint,a=(0,h.h)((function(){return new Oi({visualElement:n})}));a.setProps((0,r.pi)((0,r.pi)({},e),{transformPagePoint:o})),(0,i.useEffect)((function(){return t&&t.subscribe(a)}),[a]),(0,i.useEffect)((function(){return a.mount(n)}),[])}))},Pi=n(1053);function Si(e){return"string"===typeof e&&e.startsWith("var(--")}var Mi=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/;function Ri(e,t,n){void 0===n&&(n=1);var i=(0,r.CR)(function(e){var t=Mi.exec(e);if(!t)return[,];var n=(0,r.CR)(t,3);return[n[1],n[2]]}(e),2),o=i[0],a=i[1];if(o){var s=window.getComputedStyle(t).getPropertyValue(o);return s?s.trim():Si(a)?Ri(a,t,n+1):a}}function ji(e,t){return e/(t.max-t.min)*100}var Di="_$css";var Ni={process:function(e,t,n){var r=n.target;if("string"===typeof e){if(!oe.test(e))return e;e=parseFloat(e)}return ji(e,r.x)+"% "+ji(e,r.y)+"%"}},Li={borderRadius:(0,r.pi)((0,r.pi)({},Ni),{applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]}),borderTopLeftRadius:Ni,borderTopRightRadius:Ni,borderBottomLeftRadius:Ni,borderBottomRightRadius:Ni,boxShadow:{process:function(e,t){var n=t.delta,r=t.treeScale,i=e,o=e.includes("var("),a=[];o&&(e=e.replace(Mi,(function(e){return a.push(e),Di})));var s=Qt.parse(e);if(s.length>5)return i;var u=Qt.createTransformer(e),c="number"!==typeof s[0]?1:0,l=n.x.scale*r.x,d=n.y.scale*r.y;s[0+c]/=l,s[1+c]/=d;var f=Rt(l,d,.5);"number"===typeof s[2+c]&&(s[2+c]/=f),"number"===typeof s[3+c]&&(s[3+c]/=f);var h=u(s);if(o){var p=0;h=h.replace(Di,(function(){var e=a[p];return p++,e}))}return h}}},Ii=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.frameTarget=(0,qr.VZ)(),t.currentAnimationTarget=(0,qr.VZ)(),t.isAnimating={x:!1,y:!1},t.stopAxisAnimation={x:void 0,y:void 0},t.isAnimatingTree=!1,t.animate=function(e,n,i){void 0===i&&(i={});var o=i.originBox,a=i.targetBox,s=i.visibilityAction,u=i.shouldStackAnimate,c=i.onComplete,l=i.prevParent,d=(0,r._T)(i,["originBox","targetBox","visibilityAction","shouldStackAnimate","onComplete","prevParent"]),f=t.props,h=f.visualElement,p=f.layout;if(!1===u)return t.isAnimatingTree=!1,t.safeToRemove();if(!t.isAnimatingTree||!0===u){u&&(t.isAnimatingTree=!0),n=o||n,e=a||e;var v=!1,m=h.getProjectionParent();if(m){var g=m.prevViewportBox,y=m.getLayoutState().layout;l&&(a&&(y=l.getLayoutState().layout),o&&!ci(l,m)&&l.prevViewportBox&&(g=l.prevViewportBox)),g&&Ui(l,o,a)&&(v=!0,n=ui(g,n),e=ui(y,e))}var b=zi(n,e),w=Kr((function(i){var o,a;if("position"===p){var u=e[i].max-e[i].min;n[i].max=n[i].min+u}if(!h.projection.isTargetLocked)return void 0===s?b?t.animateAxis(i,e[i],n[i],(0,r.pi)((0,r.pi)({},d),{isRelative:v})):(null===(a=(o=t.stopAxisAnimation)[i])||void 0===a||a.call(o),h.setProjectionTargetAxis(i,e[i].min,e[i].max,v)):void h.setVisibility(s===Pi.c.Show)}));return h.syncRender(),Promise.all(w).then((function(){t.isAnimatingTree=!1,c&&c(),h.notifyLayoutAnimationComplete()}))}},t}return(0,r.ZT)(t,e),t.prototype.componentDidMount=function(){var e=this,t=this.props.visualElement;t.animateMotionValue=cr,t.enableLayoutProjection(),this.unsubLayoutReady=t.onLayoutUpdate(this.animate),t.layoutSafeToRemove=function(){return e.safeToRemove()},function(e){for(var t in e)L[t]=e[t]}(Li)},t.prototype.componentWillUnmount=function(){var e=this;this.unsubLayoutReady(),Kr((function(t){var n,r;return null===(r=(n=e.stopAxisAnimation)[t])||void 0===r?void 0:r.call(n)}))},t.prototype.animateAxis=function(e,t,n,r){var i,o,a=this,s=void 0===r?{}:r,u=s.transition,c=s.isRelative;if(!this.isAnimating[e]||!Hi(t,this.currentAnimationTarget[e])){null===(o=(i=this.stopAxisAnimation)[e])||void 0===o||o.call(i),this.isAnimating[e]=!0;var l=this.props.visualElement,d=this.frameTarget[e],f=l.getProjectionAnimationProgress()[e];f.clearListeners(),f.set(0),f.set(0);var h=function(){var r=f.get()/1e3;!function(e,t,n,r){e.min=Rt(t.min,n.min,r),e.max=Rt(t.max,n.max,r)}(d,n,t,r),l.setProjectionTargetAxis(e,d.min,d.max,c)};h();var p=f.onChange(h);this.stopAxisAnimation[e]=function(){a.isAnimating[e]=!1,f.stop(),p()},this.currentAnimationTarget[e]=t;var v=u||l.getDefaultTransition()||Vi;return cr("x"===e?"layoutX":"layoutY",f,1e3,v&&ur(v,"layout")).then(this.stopAxisAnimation[e])}},t.prototype.safeToRemove=function(){var e,t;null===(t=(e=this.props).safeToRemove)||void 0===t||t.call(e)},t.prototype.render=function(){return null},t}(i.Component);function zi(e,t){return!Fi(e)&&!Fi(t)&&(!Hi(e.x,t.x)||!Hi(e.y,t.y))}var Bi={min:0,max:0};function Fi(e){return Hi(e.x,Bi)&&Hi(e.y,Bi)}function Hi(e,t){return e.min===t.min&&e.max===t.max}var Vi={duration:.45,ease:[.4,0,.1,1]};function Ui(e,t,n){return e||!e&&!(t||n)}var Gi=n(9870),qi=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return(0,r.ZT)(t,e),t.prototype.componentDidMount=function(){var e=this.props,t=e.syncLayout,n=e.framerSyncLayout,r=e.visualElement;(0,Gi.Md)(t)&&t.register(r),(0,Gi.Md)(n)&&n.register(r),r.onUnmount((function(){(0,Gi.Md)(t)&&t.remove(r),(0,Gi.Md)(n)&&n.remove(r)}))},t.prototype.getSnapshotBeforeUpdate=function(){var e=this.props,t=e.syncLayout,n=e.visualElement;return(0,Gi.Md)(t)?t.syncUpdate():((0,ai.x7)(n),t.add(n)),null},t.prototype.componentDidUpdate=function(){var e=this.props.syncLayout;(0,Gi.Md)(e)||e.flush()},t.prototype.render=function(){return null},t}(i.Component);var Ki={measureLayout:function(e){var t=(0,i.useContext)(Gi.WH),n=(0,i.useContext)(Gi.bg);return i.createElement(qi,(0,r.pi)({},e,{syncLayout:t,framerSyncLayout:n}))},layoutAnimation:function(e){var t=(0,r.CR)(p(),2)[1];return i.createElement(Ii,(0,r.pi)({},e,{safeToRemove:t}))}};function Wi(){return{isHydrated:!1,layout:(0,qr.VZ)(),layoutCorrected:(0,qr.VZ)(),treeScale:{x:1,y:1},delta:(0,qr.pY)(),deltaFinal:(0,qr.pY)(),deltaTransform:""}}var Zi=Wi();function $i(e,t,n){var r=e.x,i=e.y,o="translate3d("+r.translate/t.x+"px, "+i.translate/t.y+"px, 0) ";if(n){var a=n.rotate,s=n.rotateX,u=n.rotateY;a&&(o+="rotate("+a+") "),s&&(o+="rotateX("+s+") "),u&&(o+="rotateY("+u+") ")}return o+="scale("+r.scale+", "+i.scale+")",n||o!==Yi?o:""}function Xi(e){var t=e.deltaFinal;return 100*t.x.origin+"% "+100*t.y.origin+"% 0"}var Yi=$i(Zi.delta,Zi.treeScale,{x:1,y:1}),Qi=["LayoutMeasure","BeforeLayoutMeasure","LayoutUpdate","ViewportBoxUpdate","Update","Render","AnimationComplete","LayoutAnimationComplete","AnimationStart","SetAxisTarget","Unmount"];function Ji(e,t,n,r){var i,o,a=e.delta,s=e.layout,u=e.layoutCorrected,c=e.treeScale,l=t.target;o=s,di((i=u).x,o.x),di(i.y,o.y),function(e,t,n){var r=n.length;if(r){var i,o;t.x=t.y=1;for(var a=0;a<r;a++)o=(i=n[a]).getLayoutState().delta,t.x*=o.x.scale,t.y*=o.y.scale,vi(e,o),li(i)&&bi(e,e,i.getLatestValues())}}(u,c,n),ri(a,u,l,r)}var eo=n(519),to=function(){function e(){this.children=[],this.isDirty=!1}return e.prototype.add=function(e){lr(this.children,e),this.isDirty=!0},e.prototype.remove=function(e){dr(this.children,e),this.isDirty=!0},e.prototype.forEach=function(e){this.isDirty&&this.children.sort(eo._),this.isDirty=!1,this.children.forEach(e)},e}();var no=function(e){var t=e.treeType,n=void 0===t?"":t,i=e.build,o=e.getBaseTarget,a=e.makeTargetAnimatable,s=e.measureViewportBox,u=e.render,c=e.readValueFromInstance,l=e.resetTransform,d=e.restoreTransform,f=e.removeValueFromRenderState,h=e.sortNodePosition,p=e.scrapeMotionValuesFromProps;return function(e,t){var v=e.parent,m=e.props,g=e.presenceId,y=e.blockInitialAnimation,b=e.visualState;void 0===t&&(t={});var w,x,E,k,_,O,C=b.latestValues,S=b.renderState,M=function(){var e=Qi.map((function(){return new fr})),t={},n={clearAllListeners:function(){return e.forEach((function(e){return e.clear()}))},updatePropListeners:function(e){return Qi.forEach((function(r){var i;null===(i=t[r])||void 0===i||i.call(t);var o="on"+r,a=e[o];a&&(t[r]=n[o](a))}))}};return e.forEach((function(e,t){n["on"+Qi[t]]=function(t){return e.add(t)},n["notify"+Qi[t]]=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return e.notify.apply(e,(0,r.ev)([],(0,r.CR)(t)))}})),n}(),R={isEnabled:!1,isHydrated:!1,isTargetLocked:!1,target:(0,qr.VZ)(),targetFinal:(0,qr.VZ)()},j=R,D=C,N=Wi(),L=!1,I=new Map,z=new Map,B={},F=(0,r.pi)({},C);function H(){w&&(Y.isProjectionReady()&&(bi(j.targetFinal,j.target,D),ri(N.deltaFinal,N.layoutCorrected,j.targetFinal,C)),V(),u(w,S))}function V(){var e=C;if(k&&k.isActive()){var n=k.getCrossfadeState(Y);n&&(e=n)}i(Y,S,e,j,N,t,m)}function U(){M.notifyUpdate(C)}function G(){Y.layoutTree.forEach(io)}var K=p(m);for(var W in K){var Z=K[W];void 0!==C[W]&&q(Z)&&Z.set(C[W],!1)}var $=A(m),X=P(m),Y=(0,r.pi)((0,r.pi)({treeType:n,current:null,depth:v?v.depth+1:0,parent:v,children:new Set,path:v?(0,r.ev)((0,r.ev)([],(0,r.CR)(v.path)),[v]):[],layoutTree:v?v.layoutTree:new to,presenceId:g,projection:R,variantChildren:X?new Set:void 0,isVisible:void 0,manuallyAnimateOnMount:Boolean(null===v||void 0===v?void 0:v.isMounted()),blockInitialAnimation:y,isMounted:function(){return Boolean(w)},mount:function(e){w=Y.current=e,Y.pointTo(Y),X&&v&&!$&&(O=null===v||void 0===v?void 0:v.addVariantChild(Y)),null===v||void 0===v||v.children.add(Y)},unmount:function(){Pn.qY.update(U),Pn.qY.render(H),Pn.qY.preRender(Y.updateLayoutProjection),z.forEach((function(e){return e()})),Y.stopLayoutAnimation(),Y.layoutTree.remove(Y),null===O||void 0===O||O(),null===v||void 0===v||v.children.delete(Y),null===E||void 0===E||E(),M.clearAllListeners()},addVariantChild:function(e){var t,n=Y.getClosestVariantNode();if(n)return null===(t=n.variantChildren)||void 0===t||t.add(e),function(){return n.variantChildren.delete(e)}},sortNodePosition:function(e){return h&&n===e.treeType?h(Y.getInstance(),e.getInstance()):0},getClosestVariantNode:function(){return X?Y:null===v||void 0===v?void 0:v.getClosestVariantNode()},scheduleUpdateLayoutProjection:v?v.scheduleUpdateLayoutProjection:function(){return Pn.ZP.preRender(Y.updateTreeLayoutProjection,!1,!0)},getLayoutId:function(){return m.layoutId},getInstance:function(){return w},getStaticValue:function(e){return C[e]},setStaticValue:function(e,t){return C[e]=t},getLatestValues:function(){return C},setVisibility:function(e){Y.isVisible!==e&&(Y.isVisible=e,Y.scheduleRender())},makeTargetAnimatable:function(e,t){return void 0===t&&(t=!0),a(Y,e,m,t)},addValue:function(e,t){Y.hasValue(e)&&Y.removeValue(e),I.set(e,t),C[e]=t.get(),function(e,t){var n=t.onChange((function(t){C[e]=t,m.onUpdate&&Pn.ZP.update(U,!1,!0)})),r=t.onRenderRequest(Y.scheduleRender);z.set(e,(function(){n(),r()}))}(e,t)},removeValue:function(e){var t;I.delete(e),null===(t=z.get(e))||void 0===t||t(),z.delete(e),delete C[e],f(e,S)},hasValue:function(e){return I.has(e)},getValue:function(e,t){var n=I.get(e);return void 0===n&&void 0!==t&&(n=pr(t),Y.addValue(e,n)),n},forEachValue:function(e){return I.forEach(e)},readValue:function(e){var n;return null!==(n=C[e])&&void 0!==n?n:c(w,e,t)},setBaseTarget:function(e,t){F[e]=t},getBaseTarget:function(e){if(o){var t=o(m,e);if(void 0!==t&&!q(t))return t}return F[e]}},M),{build:function(){return V(),S},scheduleRender:function(){Pn.ZP.render(H,!1,!0)},syncRender:H,setProps:function(e){m=e,M.updatePropListeners(e),B=function(e,t,n){var r;for(var i in t){var o=t[i],a=n[i];if(q(o))e.addValue(i,o);else if(q(a))e.addValue(i,pr(o));else if(a!==o)if(e.hasValue(i)){var s=e.getValue(i);!s.hasAnimated&&s.set(o)}else e.addValue(i,pr(null!==(r=e.getStaticValue(i))&&void 0!==r?r:o))}for(var i in n)void 0===t[i]&&e.removeValue(i);return t}(Y,p(m),B)},getProps:function(){return m},getVariant:function(e){var t;return null===(t=m.variants)||void 0===t?void 0:t[e]},getDefaultTransition:function(){return m.transition},getVariantContext:function(e){if(void 0===e&&(e=!1),e)return null===v||void 0===v?void 0:v.getVariantContext();if(!$){var t=(null===v||void 0===v?void 0:v.getVariantContext())||{};return void 0!==m.initial&&(t.initial=m.initial),t}for(var n={},r=0;r<so;r++){var i=ao[r],o=m[i];(T(o)||!1===o)&&(n[i]=o)}return n},enableLayoutProjection:function(){R.isEnabled=!0,Y.layoutTree.add(Y)},lockProjectionTarget:function(){R.isTargetLocked=!0},unlockProjectionTarget:function(){Y.stopLayoutAnimation(),R.isTargetLocked=!1},getLayoutState:function(){return N},setCrossfader:function(e){k=e},isProjectionReady:function(){return R.isEnabled&&R.isHydrated&&N.isHydrated},startLayoutAnimation:function(e,t,n){void 0===n&&(n=!1);var r=Y.getProjectionAnimationProgress()[e],i=n?R.relativeTarget[e]:R.target[e],o=i.min,a=i.max-o;return r.clearListeners(),r.set(o),r.set(o),r.onChange((function(t){Y.setProjectionTargetAxis(e,t,t+a,n)})),Y.animateMotionValue(e,r,0,t)},stopLayoutAnimation:function(){Kr((function(e){return Y.getProjectionAnimationProgress()[e].stop()}))},measureViewportBox:function(e){void 0===e&&(e=!0);var n=s(w,t);return e||Ei(n,C),n},getProjectionAnimationProgress:function(){return _||(_={x:pr(0),y:pr(0)}),_},setProjectionTargetAxis:function(e,t,n,r){var i;void 0===r&&(r=!1),r?(R.relativeTarget||(R.relativeTarget=(0,qr.VZ)()),i=R.relativeTarget[e]):(R.relativeTarget=void 0,i=R.target[e]),R.isHydrated=!0,i.min=t,i.max=n,L=!0,M.notifySetAxisTarget()},rebaseProjectionTarget:function(e,t){void 0===t&&(t=N.layout);var n=Y.getProjectionAnimationProgress(),r=n.x,i=n.y,o=!R.relativeTarget&&!R.isTargetLocked&&!r.isAnimating()&&!i.isAnimating();(e||o)&&Kr((function(e){var n=t[e],r=n.min,i=n.max;Y.setProjectionTargetAxis(e,r,i)}))},notifyLayoutReady:function(e){!function(e){var t=e.getProjectionParent();if(t){var n=ui(t.getLayoutState().layout,e.getLayoutState().layout);Kr((function(t){e.setProjectionTargetAxis(t,n[t].min,n[t].max,!0)}))}else e.rebaseProjectionTarget()}(Y),Y.notifyLayoutUpdate(N.layout,Y.prevViewportBox||N.layout,e)},resetTransform:function(){return l(Y,w,m)},restoreTransform:function(){return d(w,S)},updateLayoutProjection:function(){if(Y.isProjectionReady()){var e=N.delta,t=N.treeScale,n=t.x,r=t.y,i=N.deltaTransform;Ji(N,j,Y.path,C),L&&Y.notifyViewportBoxUpdate(j.target,e),L=!1;var o=$i(e,t);o===i&&n===t.x&&r===t.y||Y.scheduleRender(),N.deltaTransform=o}},updateTreeLayoutProjection:function(){Y.layoutTree.forEach(ro),Pn.ZP.preRender(G,!1,!0)},getProjectionParent:function(){if(void 0===x){for(var e=!1,t=Y.path.length-1;t>=0;t--){var n=Y.path[t];if(n.projection.isEnabled){e=n;break}}x=e}return x},resolveRelativeTargetBox:function(){var e=Y.getProjectionParent();if(R.relativeTarget&&e&&(function(e,t){oi(e.target.x,e.relativeTarget.x,t.target.x),oi(e.target.y,e.relativeTarget.y,t.target.y)}(R,e.projection),li(e))){var t=R.target;bi(t,t,e.getLatestValues())}},shouldResetTransform:function(){return Boolean(m._layoutResetTransform)},pointTo:function(e){j=e.projection,D=e.getLatestValues(),null===E||void 0===E||E(),E=mt(e.onSetAxisTarget(Y.scheduleUpdateLayoutProjection),e.onLayoutAnimationComplete((function(){var e;Y.isPresent?Y.presence=Pi.z.Present:null===(e=Y.layoutSafeToRemove)||void 0===e||e.call(Y)})))},isPresent:!0,presence:Pi.z.Entering});return Y}};function ro(e){e.resolveRelativeTargetBox()}function io(e){e.updateLayoutProjection()}var oo,ao=(0,r.ev)(["initial"],(0,r.CR)(Cr)),so=ao.length,uo=new Set(["width","height","top","left","right","bottom","x","y"]),co=function(e){return uo.has(e)},lo=function(e,t){e.set(t,!1),e.set(t)},fo=function(e){return e===ce||e===oe};!function(e){e.width="width",e.height="height",e.left="left",e.right="right",e.top="top",e.bottom="bottom"}(oo||(oo={}));var ho=function(e,t){return parseFloat(e.split(", ")[t])},po=function(e,t){return function(n,r){var i=r.transform;if("none"===i||!i)return 0;var o=i.match(/^matrix3d\((.+)\)$/);if(o)return ho(o[1],t);var a=i.match(/^matrix\((.+)\)$/);return a?ho(a[1],e):0}},vo=new Set(["x","y","z"]),mo=z.filter((function(e){return!vo.has(e)}));var go={width:function(e){var t=e.x;return t.max-t.min},height:function(e){var t=e.y;return t.max-t.min},top:function(e,t){var n=t.top;return parseFloat(n)},left:function(e,t){var n=t.left;return parseFloat(n)},bottom:function(e,t){var n=e.y,r=t.top;return parseFloat(r)+(n.max-n.min)},right:function(e,t){var n=e.x,r=t.left;return parseFloat(r)+(n.max-n.min)},x:po(4,13),y:po(5,14)},yo=function(e,t,n,i){void 0===n&&(n={}),void 0===i&&(i={}),t=(0,r.pi)({},t),i=(0,r.pi)({},i);var o=Object.keys(t).filter(co),a=[],s=!1,u=[];if(o.forEach((function(r){var o=e.getValue(r);if(e.hasValue(r)){var c,l=n[r],d=t[r],f=gr(l);if(Be(d))for(var h=d.length,p=null===d[0]?1:0;p<h;p++)c?gr(d[p]):(c=gr(d[p]))===f||fo(f)&&fo(c);else c=gr(d);if(f!==c)if(fo(f)&&fo(c)){var v=o.get();"string"===typeof v&&o.set(parseFloat(v)),"string"===typeof d?t[r]=parseFloat(d):Array.isArray(d)&&c===oe&&(t[r]=d.map(parseFloat))}else(null===f||void 0===f?void 0:f.transform)&&(null===c||void 0===c?void 0:c.transform)&&(0===l||0===d)?0===l?o.set(c.transform(l)):t[r]=f.transform(d):(s||(a=function(e){var t=[];return mo.forEach((function(n){var r=e.getValue(n);void 0!==r&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))})),t.length&&e.syncRender(),t}(e),s=!0),u.push(r),i[r]=void 0!==i[r]?i[r]:t[r],lo(o,d))}})),u.length){var c=function(e,t,n){var r=t.measureViewportBox(),i=t.getInstance(),o=getComputedStyle(i),a=o.display,s={top:o.top,left:o.left,bottom:o.bottom,right:o.right,transform:o.transform};"none"===a&&t.setStaticValue("display",e.display||"block"),t.syncRender();var u=t.measureViewportBox();return n.forEach((function(n){var i=t.getValue(n);lo(i,go[n](r,s)),e[n]=go[n](u,o)})),e}(t,e,u);return a.length&&a.forEach((function(t){var n=(0,r.CR)(t,2),i=n[0],o=n[1];e.getValue(i).set(o)})),e.syncRender(),{target:c,transitionEnd:i}}return{target:t,transitionEnd:i}};function bo(e,t,n,r){return function(e){return Object.keys(e).some(co)}(t)?yo(e,t,n,r):{target:t,transitionEnd:r}}var wo=function(e,t,n,i){var o=function(e,t,n){var i,o=(0,r._T)(t,[]),a=e.getInstance();if(!(a instanceof HTMLElement))return{target:o,transitionEnd:n};for(var s in n&&(n=(0,r.pi)({},n)),e.forEachValue((function(e){var t=e.get();if(Si(t)){var n=Ri(t,a);n&&e.set(n)}})),o){var u=o[s];if(Si(u)){var c=Ri(u,a);c&&(o[s]=c,n&&(null!==(i=n[s])&&void 0!==i||(n[s]=u)))}}return{target:o,transitionEnd:n}}(e,t,i);return bo(e,t=o.target,n,i=o.transitionEnd)};var xo={treeType:"dom",readValueFromInstance:function(e,t){if(H(t)){var n=tr(t);return n&&n.default||0}var r,i=(r=e,window.getComputedStyle(r));return(W(t)?i.getPropertyValue(t):i[t])||0},sortNodePosition:function(e,t){return 2&e.compareDocumentPosition(t)?1:-1},getBaseTarget:function(e,t){var n;return null===(n=e.style)||void 0===n?void 0:n[t]},measureViewportBox:function(e,t){return Qr(e,t.transformPagePoint)},resetTransform:function(e,t,n){var r=n.transformTemplate;t.style.transform=r?r({},""):"none",e.scheduleRender()},restoreTransform:function(e,t){e.style.transform=t.style.transform},removeValueFromRenderState:function(e,t){var n=t.vars,r=t.style;delete n[e],delete r[e]},makeTargetAnimatable:function(e,t,n,i){var o=n.transformValues;void 0===i&&(i=!0);var a=t.transition,s=t.transitionEnd,u=(0,r._T)(t,["transition","transitionEnd"]),c=function(e,t,n){var r,i,o={};for(var a in e)o[a]=null!==(r=Er(a,t))&&void 0!==r?r:null===(i=n.getValue(a))||void 0===i?void 0:i.get();return o}(u,a||{},e);if(o&&(s&&(s=o(s)),u&&(u=o(u)),c&&(c=o(c))),i){!function(e,t,n){var r,i,o,a,s=Object.keys(t).filter((function(t){return!e.hasValue(t)})),u=s.length;if(u)for(var c=0;c<u;c++){var l=s[c],d=t[l],f=null;Array.isArray(d)&&(f=d[0]),null===f&&(f=null!==(i=null!==(r=n[l])&&void 0!==r?r:e.readValue(l))&&void 0!==i?i:t[l]),void 0!==f&&null!==f&&("string"===typeof f&&/^\-?\d*\.?\d+$/.test(f)?f=parseFloat(f):!br(f)&&Qt.test(d)&&(f=nr(l,d)),e.addValue(l,pr(f)),null!==(o=(a=n)[l])&&void 0!==o||(a[l]=f),e.setBaseTarget(l,f))}}(e,u,c);var l=wo(e,u,c,s);s=l.transitionEnd,u=l.target}return(0,r.pi)({transition:a,transitionEnd:s},u)},scrapeMotionValuesFromProps:Le,build:function(e,t,n,r,i,o,a){void 0!==e.isVisible&&(t.style.visibility=e.isVisible?"visible":"hidden");var s=r.isEnabled&&i.isHydrated;pe(t,n,r,i,o,a.transformTemplate,s?$i:void 0,s?Xi:void 0)},render:je},Eo=no(xo),ko=no((0,r.pi)((0,r.pi)({},xo),{getBaseTarget:function(e,t){return e[t]},readValueFromInstance:function(e,t){var n;return H(t)?(null===(n=tr(t))||void 0===n?void 0:n.default)||0:(t=De.has(t)?t:Re(t),e.getAttribute(t))},scrapeMotionValuesFromProps:Ie,build:function(e,t,n,r,i,o,a){var s=r.isEnabled&&i.isHydrated;Ce(t,n,r,i,o,a.transformTemplate,s?$i:void 0,s?Xi:void 0)},render:Ne})),_o=function(e,t){return N(e)?ko(t,{enableHardwareAcceleration:!1}):Eo(t,{enableHardwareAcceleration:!0})},To=(0,r.pi)((0,r.pi)((0,r.pi)((0,r.pi)({},jr),yt),Ai),Ki),Oo=j((function(e,t){return function(e,t,n,i){var o=t.forwardMotionProps,a=void 0!==o&&o,s=N(e)?Ge:Ke;return(0,r.pi)((0,r.pi)({},s),{preloadedFeatures:n,useRender:Se(a),createVisualElement:i,Component:e})}(e,t,To,_o)}))},8839:function(e,t,n){"use strict";n.d(t,{kv:function(){return s},e3:function(){return u},x7:function(){return l},de:function(){return c}});var r=n(9839),i=n(3327),o=n(519);function a(e){return e.projection.isEnabled||e.shouldResetTransform()}function s(e,t){void 0===t&&(t=[]);var n=e.parent;return n&&s(n,t),a(e)&&t.push(e),t}function u(e){var t=[],n=function(e){a(e)&&t.push(e),e.children.forEach(n)};return e.children.forEach(n),t.sort(o._)}function c(e){if(!e.shouldResetTransform()){var t=e.getLayoutState();e.notifyBeforeLayoutMeasure(t.layout),t.isHydrated=!0,t.layout=e.measureViewportBox(),t.layoutCorrected=(0,i.nP)(t.layout),e.notifyLayoutMeasure(t.layout,e.prevViewportBox||t.layout),r.ZP.update((function(){return e.rebaseProjectionTarget()}))}}function l(e){e.shouldResetTransform()||(e.prevViewportBox=e.measureViewportBox(!1),e.rebaseProjectionTarget(!1,e.prevViewportBox))}},7565:function(e,t,n){"use strict";n.d(t,{U:function(){return o},R:function(){return a}});var r=new Set;function i(e,t,n){e[n]||(e[n]=[]),e[n].push(t)}function o(e){return r.add(e),function(){return r.delete(e)}}function a(){if(r.size){var e=0,t=[[]],n=[],o=function(n){return i(t,n,e)},a=function(t){i(n,t,e),e++};r.forEach((function(t){t(o,a),e=0})),r.clear();for(var u=n.length,c=0;c<=u;c++)t[c]&&t[c].forEach(s),n[c]&&n[c].forEach(s)}}var s=function(e){return e()}},519:function(e,t,n){"use strict";n.d(t,{_:function(){return r}});var r=function(e,t){return e.depth-t.depth}},3327:function(e,t,n){"use strict";n.d(t,{VZ:function(){return u},_6:function(){return a},RX:function(){return o},nP:function(){return c},pY:function(){return d},dV:function(){return s}});var r=n(1439);function i(e){return e}function o(e){var t=e.top;return{x:{min:e.left,max:e.right},y:{min:t,max:e.bottom}}}function a(e){var t=e.x,n=e.y;return{top:n.min,bottom:n.max,left:t.min,right:t.max}}function s(e,t){var n=e.top,r=e.left,o=e.bottom,a=e.right;void 0===t&&(t=i);var s=t({x:r,y:n}),u=t({x:a,y:o});return{top:s.y,left:s.x,bottom:u.y,right:u.x}}function u(){return{x:{min:0,max:1},y:{min:0,max:1}}}function c(e){return{x:(0,r.pi)({},e.x),y:(0,r.pi)({},e.y)}}var l={translate:0,scale:1,origin:0,originPoint:0};function d(){return{x:(0,r.pi)({},l),y:(0,r.pi)({},l)}}},5930:function(e,t,n){"use strict";n.d(t,{h:function(){return i}});var r=n(7294);function i(e){var t=(0,r.useRef)(null);return null===t.current&&(t.current=e()),t.current}},6717:function(e,t,n){"use strict";n.d(t,{z:function(){return i}});var r=n(7294);function i(e){return(0,r.useEffect)((function(){return function(){return e()}}),[])}},4910:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,i=function(e){var t={};return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}((function(e){return r.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91}))},1439:function(e,t,n){"use strict";n.d(t,{ZT:function(){return i},pi:function(){return o},_T:function(){return a},CR:function(){return s},ev:function(){return u}});var r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function i(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};function a(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}Object.create;function s(e,t){var n="function"===typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(s){i={error:s}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}function u(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i<o;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||t)}Object.create},9839:function(e,t,n){"use strict";n.d(t,{qY:function(){return h},ZP:function(){return b},iW:function(){return p},$B:function(){return y}});var r=1/60*1e3,i="undefined"!==typeof performance?function(){return performance.now()}:function(){return Date.now()},o="undefined"!==typeof window?function(e){return window.requestAnimationFrame(e)}:function(e){return setTimeout((function(){return e(i())}),r)};var a=!0,s=!1,u=!1,c={delta:0,timestamp:0},l=["read","update","preRender","render","postRender"],d=l.reduce((function(e,t){return e[t]=function(e){var t=[],n=[],r=0,i=!1,o=new WeakSet,a={schedule:function(e,a,s){void 0===a&&(a=!1),void 0===s&&(s=!1);var u=s&&i,c=u?t:n;return a&&o.add(e),-1===c.indexOf(e)&&(c.push(e),u&&i&&(r=t.length)),e},cancel:function(e){var t=n.indexOf(e);-1!==t&&n.splice(t,1),o.delete(e)},process:function(s){var u;if(i=!0,t=(u=[n,t])[0],(n=u[1]).length=0,r=t.length)for(var c=0;c<r;c++){var l=t[c];l(s),o.has(l)&&(a.schedule(l),e())}i=!1}};return a}((function(){return s=!0})),e}),{}),f=l.reduce((function(e,t){var n=d[t];return e[t]=function(e,t,r){return void 0===t&&(t=!1),void 0===r&&(r=!1),s||g(),n.schedule(e,t,r)},e}),{}),h=l.reduce((function(e,t){return e[t]=d[t].cancel,e}),{}),p=l.reduce((function(e,t){return e[t]=function(){return d[t].process(c)},e}),{}),v=function(e){return d[e].process(c)},m=function(e){s=!1,c.delta=a?r:Math.max(Math.min(e-c.timestamp,40),1),c.timestamp=e,u=!0,l.forEach(v),u=!1,s&&(a=!1,o(m))},g=function(){s=!0,a=!0,u||o(m)},y=function(){return c},b=f},3405:function(e){e.exports=function(e){return[...e].reduce(((e,[t,n])=>(e[t]=n,e)),{})}},1527:function(e,t){"use strict";function n(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function r(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=e&&("undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);a=!0);}catch(u){s=!0,i=u}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(e,t)||o(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||o(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){if(e){if("string"===typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function s(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}t.Z=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=arguments.length>3&&void 0!==arguments[3]&&arguments[3],u=(t instanceof Array?t.length?t:[void 0]:[t]).map((function(e){return{keyAccessor:e,isProp:!(e instanceof Function)}})),c=e.reduce((function(e,t){var r=e,i=t;return u.forEach((function(e,t){var a,c=e.keyAccessor;if(e.isProp){var l=i,d=l[c],f=n(l,[c].map(s));a=d,i=f}else a=c(i,t);t+1<u.length?(r.hasOwnProperty(a)||(r[a]={}),r=r[a]):o?(r.hasOwnProperty(a)||(r[a]=[]),r[a].push(i)):r[a]=i})),e}),{});o instanceof Function&&function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;n===u.length?Object.keys(t).forEach((function(e){return t[e]=o(t[e])})):Object.values(t).forEach((function(t){return e(t,n+1)}))}(c);var l=c;return a&&(l=[],function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];n.length===u.length?l.push({keys:n,vals:t}):Object.entries(t).forEach((function(t){var o=r(t,2),a=o[0],s=o[1];return e(s,[].concat(i(n),[a]))}))}(c),t instanceof Array&&0===t.length&&1===l.length&&(l[0].keys=[])),l}},4858:function(e,t,n){"use strict";var r=n(296),i=n.n(r);function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=e&&("undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);a=!0);}catch(u){s=!0,i=u}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var s=function e(t,n){var r=n.default,i=void 0===r?null:r,o=n.triggerUpdate,a=void 0===o||o,s=n.onChange,u=void 0===s?function(e,t){}:s;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.name=t,this.defaultVal=i,this.triggerUpdate=a,this.onChange=u};t.Z=function(e){var t=e.stateInit,n=void 0===t?function(){return{}}:t,r=e.props,a=void 0===r?{}:r,u=e.methods,c=void 0===u?{}:u,l=e.aliases,d=void 0===l?{}:l,f=e.init,h=void 0===f?function(){}:f,p=e.update,v=void 0===p?function(){}:p,m=Object.keys(a).map((function(e){return new s(e,a[e])}));return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign({},n instanceof Function?n(e):n,{initialised:!1}),r={};function a(t){return s(t,e),u(),a}var s=function(e,n){h.call(a,e,t,n),t.initialised=!0},u=i()((function(){t.initialised&&(v.call(a,t,r),r={})}),1);return m.forEach((function(e){a[e.name]=function(e){var n=e.name,i=e.triggerUpdate,o=void 0!==i&&i,s=e.onChange,c=void 0===s?function(e,t){}:s,l=e.defaultVal,d=void 0===l?null:l;return function(e){var i=t[n];if(!arguments.length)return i;var s=void 0===e?d:e;return t[n]=s,c.call(a,s,t,i),!r.hasOwnProperty(n)&&(r[n]=i),o&&u(),a}}(e)})),Object.keys(c).forEach((function(e){a[e]=function(){for(var n,r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return(n=c[e]).call.apply(n,[a,t].concat(i))}})),Object.entries(d).forEach((function(e){var t=o(e,2),n=t[0],r=t[1];return a[n]=a[r]})),a.resetProps=function(){return m.forEach((function(e){a[e.name](e.defaultVal)})),a},a.resetProps(),t._rerender=u,a}}},3096:function(e,t,n){var r="Expected a function",i=/^\s+|\s+$/g,o=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,s=/^0o[0-7]+$/i,u=parseInt,c="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,l="object"==typeof self&&self&&self.Object===Object&&self,d=c||l||Function("return this")(),f=Object.prototype.toString,h=Math.max,p=Math.min,v=function(){return d.Date.now()};function m(e,t,n){var i,o,a,s,u,c,l=0,d=!1,f=!1,m=!0;if("function"!=typeof e)throw new TypeError(r);function b(t){var n=i,r=o;return i=o=void 0,l=t,s=e.apply(r,n)}function w(e){return l=e,u=setTimeout(E,t),d?b(e):s}function x(e){var n=e-c;return void 0===c||n>=t||n<0||f&&e-l>=a}function E(){var e=v();if(x(e))return k(e);u=setTimeout(E,function(e){var n=t-(e-c);return f?p(n,a-(e-l)):n}(e))}function k(e){return u=void 0,m&&i?b(e):(i=o=void 0,s)}function _(){var e=v(),n=x(e);if(i=arguments,o=this,c=e,n){if(void 0===u)return w(c);if(f)return u=setTimeout(E,t),b(c)}return void 0===u&&(u=setTimeout(E,t)),s}return t=y(t)||0,g(n)&&(d=!!n.leading,a=(f="maxWait"in n)?h(y(n.maxWait)||0,t):a,m="trailing"in n?!!n.trailing:m),_.cancel=function(){void 0!==u&&clearTimeout(u),l=0,i=c=o=u=void 0},_.flush=function(){return void 0===u?s:k(v())},_}function g(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function y(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==f.call(e)}(e))return NaN;if(g(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=g(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(i,"");var n=a.test(e);return n||s.test(e)?u(e.slice(2),n?2:8):o.test(e)?NaN:+e}e.exports=function(e,t,n){var i=!0,o=!0;if("function"!=typeof e)throw new TypeError(r);return g(n)&&(i="leading"in n?!!n.leading:i,o="trailing"in n?!!n.trailing:o),m(e,t,{leading:i,maxWait:t,trailing:o})}},3752:function(e,t,n){"use strict";function r(e,t){var n;if("undefined"===typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"===typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(e,t)}(e))||t&&e&&"number"===typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return s=e.done,e},e:function(e){u=!0,a=e},f:function(){try{s||null==n.return||n.return()}finally{if(u)throw a}}}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function o(e,t){var n;if(void 0===t){var i,o=r(e);try{for(o.s();!(i=o.n()).done;){var a=i.value;null!=a&&(n<a||void 0===n&&a>=a)&&(n=a)}}catch(d){o.e(d)}finally{o.f()}}else{var s,u=-1,c=r(e);try{for(c.s();!(s=c.n()).done;){var l=s.value;null!=(l=t(l,++u,e))&&(n<l||void 0===n&&l>=l)&&(n=l)}}catch(d){c.e(d)}finally{c.f()}}return n}n.d(t,{Z:function(){return o}})},6701:function(e,t,n){"use strict";function r(e,t){var n;if("undefined"===typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"===typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(e,t)}(e))||t&&e&&"number"===typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return s=e.done,e},e:function(e){u=!0,a=e},f:function(){try{s||null==n.return||n.return()}finally{if(u)throw a}}}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function o(e,t){var n;if(void 0===t){var i,o=r(e);try{for(o.s();!(i=o.n()).done;){var a=i.value;null!=a&&(n>a||void 0===n&&a>=a)&&(n=a)}}catch(d){o.e(d)}finally{o.f()}}else{var s,u=-1,c=r(e);try{for(c.s();!(s=c.n()).done;){var l=s.value;null!=(l=t(l,++u,e))&&(n>l||void 0===n&&l>=l)&&(n=l)}}catch(d){c.e(d)}finally{c.f()}}return n}n.d(t,{Z:function(){return o}})},4275:function(e,t,n){"use strict";function r(e,t,n){if(isNaN(t))return e;var r,i,o,a,s,u,c=e._root,l={data:n},d=e._x0,f=e._x1;if(!c)return e._root=l,e;for(;c.length;)if((a=t>=(i=(d+f)/2))?d=i:f=i,r=c,!(c=c[s=+a]))return r[s]=l,e;if(t===(o=+e._x.call(null,c.data)))return l.next=c,r?r[s]=l:e._root=l,e;do{r=r?r[s]=new Array(2):e._root=new Array(2),(a=t>=(i=(d+f)/2))?d=i:f=i}while((s=+a)===(u=+(o>=i)));return r[u]=c,r[s]=l,e}function i(e,t,n){this.node=e,this.x0=t,this.x1=n}function o(e){return e[0]}function a(e,t){var n=new s(null==t?o:t,NaN,NaN);return null==e?n:n.addAll(e)}function s(e,t,n){this._x=e,this._x0=t,this._x1=n,this._root=void 0}function u(e){for(var t={data:e.data},n=t;e=e.next;)n=n.next={data:e.data};return t}n.d(t,{Z:function(){return a}});var c=a.prototype=s.prototype;c.copy=function(){var e,t,n=new s(this._x,this._x0,this._x1),r=this._root;if(!r)return n;if(!r.length)return n._root=u(r),n;for(e=[{source:r,target:n._root=new Array(2)}];r=e.pop();)for(var i=0;i<2;++i)(t=r.source[i])&&(t.length?e.push({source:t,target:r.target[i]=new Array(2)}):r.target[i]=u(t));return n},c.add=function(e){var t=+this._x.call(null,e);return r(this.cover(t),t,e)},c.addAll=function(e){var t,n,i=e.length,o=new Array(i),a=1/0,s=-1/0;for(t=0;t<i;++t)isNaN(n=+this._x.call(null,e[t]))||(o[t]=n,n<a&&(a=n),n>s&&(s=n));if(a>s)return this;for(this.cover(a).cover(s),t=0;t<i;++t)r(this,o[t],e[t]);return this},c.cover=function(e){if(isNaN(e=+e))return this;var t=this._x0,n=this._x1;if(isNaN(t))n=(t=Math.floor(e))+1;else{for(var r,i,o=n-t||1,a=this._root;t>e||e>=n;)switch(i=+(e<t),(r=new Array(2))[i]=a,a=r,o*=2,i){case 0:n=t+o;break;case 1:t=n-o}this._root&&this._root.length&&(this._root=a)}return this._x0=t,this._x1=n,this},c.data=function(){var e=[];return this.visit((function(t){if(!t.length)do{e.push(t.data)}while(t=t.next)})),e},c.extent=function(e){return arguments.length?this.cover(+e[0][0]).cover(+e[1][0]):isNaN(this._x0)?void 0:[[this._x0],[this._x1]]},c.find=function(e,t){var n,r,o,a,s,u=this._x0,c=this._x1,l=[],d=this._root;for(d&&l.push(new i(d,u,c)),null==t?t=1/0:(u=e-t,c=e+t);a=l.pop();)if(!(!(d=a.node)||(r=a.x0)>c||(o=a.x1)<u))if(d.length){var f=(r+o)/2;l.push(new i(d[1],f,o),new i(d[0],r,f)),(s=+(e>=f))&&(a=l[l.length-1],l[l.length-1]=l[l.length-1-s],l[l.length-1-s]=a)}else{var h=Math.abs(e-+this._x.call(null,d.data));h<t&&(t=h,u=e-h,c=e+h,n=d.data)}return n},c.remove=function(e){if(isNaN(o=+this._x.call(null,e)))return this;var t,n,r,i,o,a,s,u,c,l=this._root,d=this._x0,f=this._x1;if(!l)return this;if(l.length)for(;;){if((s=o>=(a=(d+f)/2))?d=a:f=a,t=l,!(l=l[u=+s]))return this;if(!l.length)break;t[u+1&1]&&(n=t,c=u)}for(;l.data!==e;)if(r=l,!(l=l.next))return this;return(i=l.next)&&delete l.next,r?(i?r.next=i:delete r.next,this):t?(i?t[u]=i:delete t[u],(l=t[0]||t[1])&&l===(t[1]||t[0])&&!l.length&&(n?n[c]=l:this._root=l),this):(this._root=i,this)},c.removeAll=function(e){for(var t=0,n=e.length;t<n;++t)this.remove(e[t]);return this},c.root=function(){return this._root},c.size=function(){var e=0;return this.visit((function(t){if(!t.length)do{++e}while(t=t.next)})),e},c.visit=function(e){var t,n,r,o,a=[],s=this._root;for(s&&a.push(new i(s,this._x0,this._x1));t=a.pop();)if(!e(s=t.node,r=t.x0,o=t.x1)&&s.length){var u=(r+o)/2;(n=s[1])&&a.push(new i(n,u,o)),(n=s[0])&&a.push(new i(n,r,u))}return this},c.visitAfter=function(e){var t,n=[],r=[];for(this._root&&n.push(new i(this._root,this._x0,this._x1));t=n.pop();){var o=t.node;if(o.length){var a,s=t.x0,u=t.x1,c=(s+u)/2;(a=o[0])&&n.push(new i(a,s,c)),(a=o[1])&&n.push(new i(a,c,u))}r.push(t)}for(;t=r.pop();)e(t.node,t.x0,t.x1);return this},c.x=function(e){return arguments.length?(this._x=e,this):this._x}},7137:function(e,t){"use strict";var n={value:function(){}};function r(){for(var e,t=0,n=arguments.length,r={};t<n;++t){if(!(e=arguments[t]+"")||e in r||/[\s.]/.test(e))throw new Error("illegal type: "+e);r[e]=[]}return new i(r)}function i(e){this._=e}function o(e,t){return e.trim().split(/^|\s+/).map((function(e){var n="",r=e.indexOf(".");if(r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:n}}))}function a(e,t){for(var n,r=0,i=e.length;r<i;++r)if((n=e[r]).name===t)return n.value}function s(e,t,r){for(var i=0,o=e.length;i<o;++i)if(e[i].name===t){e[i]=n,e=e.slice(0,i).concat(e.slice(i+1));break}return null!=r&&e.push({name:t,value:r}),e}i.prototype=r.prototype={constructor:i,on:function(e,t){var n,r=this._,i=o(e+"",r),u=-1,c=i.length;if(!(arguments.length<2)){if(null!=t&&"function"!==typeof t)throw new Error("invalid callback: "+t);for(;++u<c;)if(n=(e=i[u]).type)r[n]=s(r[n],e.name,t);else if(null==t)for(n in r)r[n]=s(r[n],e.name,null);return this}for(;++u<c;)if((n=(e=i[u]).type)&&(n=a(r[n],e.name)))return n},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new i(e)},call:function(e,t){if((n=arguments.length-2)>0)for(var n,r,i=new Array(n),o=0;o<n;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(o=0,n=(r=this._[e]).length;o<n;++o)r[o].value.apply(t,i)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],i=0,o=r.length;i<o;++i)r[i].value.apply(t,n)}},t.Z=r},216:function(e,t,n){"use strict";function r(e,t,n){var r,i=1;function o(){var o,a,s=r.length,u=0,c=0,l=0;for(o=0;o<s;++o)u+=(a=r[o]).x||0,c+=a.y||0,l+=a.z||0;for(u=(u/s-e)*i,c=(c/s-t)*i,l=(l/s-n)*i,o=0;o<s;++o)a=r[o],u&&(a.x-=u),c&&(a.y-=c),l&&(a.z-=l)}return null==e&&(e=0),null==t&&(t=0),null==n&&(n=0),o.initialize=function(e){r=e},o.x=function(t){return arguments.length?(e=+t,o):e},o.y=function(e){return arguments.length?(t=+e,o):t},o.z=function(e){return arguments.length?(n=+e,o):n},o.strength=function(e){return arguments.length?(i=+e,o):i},o}n.d(t,{Z:function(){return r}})},9437:function(e,t,n){"use strict";function r(e){return function(){return e}}n.d(t,{Z:function(){return r}})},8246:function(e,t,n){"use strict";function r(e){return 1e-6*(e()-.5)}n.d(t,{Z:function(){return r}})},5560:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(9437),i=n(8246);function o(e){return e.index}function a(e,t){var n=e.get(t);if(!n)throw new Error("node not found: "+t);return n}function s(e){var t,n,s,u,c,l,d,f=o,h=function(e){return 1/Math.min(c[e.source.index],c[e.target.index])},p=(0,r.Z)(30),v=1;function m(r){for(var o=0,a=e.length;o<v;++o)for(var s,c,f,h,p,m=0,g=0,y=0,b=0;m<a;++m)c=(s=e[m]).source,g=(f=s.target).x+f.vx-c.x-c.vx||(0,i.Z)(d),u>1&&(y=f.y+f.vy-c.y-c.vy||(0,i.Z)(d)),u>2&&(b=f.z+f.vz-c.z-c.vz||(0,i.Z)(d)),g*=h=((h=Math.sqrt(g*g+y*y+b*b))-n[m])/h*r*t[m],y*=h,b*=h,f.vx-=g*(p=l[m]),u>1&&(f.vy-=y*p),u>2&&(f.vz-=b*p),c.vx+=g*(p=1-p),u>1&&(c.vy+=y*p),u>2&&(c.vz+=b*p)}function g(){if(s){var r,i,o=s.length,u=e.length,d=new Map(s.map((function(e,t){return[f(e,t,s),e]})));for(r=0,c=new Array(o);r<u;++r)(i=e[r]).index=r,"object"!==typeof i.source&&(i.source=a(d,i.source)),"object"!==typeof i.target&&(i.target=a(d,i.target)),c[i.source.index]=(c[i.source.index]||0)+1,c[i.target.index]=(c[i.target.index]||0)+1;for(r=0,l=new Array(u);r<u;++r)i=e[r],l[r]=c[i.source.index]/(c[i.source.index]+c[i.target.index]);t=new Array(u),y(),n=new Array(u),b()}}function y(){if(s)for(var n=0,r=e.length;n<r;++n)t[n]=+h(e[n],n,e)}function b(){if(s)for(var t=0,r=e.length;t<r;++t)n[t]=+p(e[t],t,e)}return null==e&&(e=[]),m.initialize=function(e){s=e;for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];d=n.find((function(e){return"function"===typeof e}))||Math.random,u=n.find((function(e){return[1,2,3].includes(e)}))||2,g()},m.links=function(t){return arguments.length?(e=t,g(),m):e},m.id=function(e){return arguments.length?(f=e,m):f},m.iterations=function(e){return arguments.length?(v=+e,m):v},m.strength=function(e){return arguments.length?(h="function"===typeof e?e:(0,r.Z)(+e),y(),m):h},m.distance=function(e){return arguments.length?(p="function"===typeof e?e:(0,r.Z)(+e),b(),m):p},m}},2405:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(4275),i=n(54),o=n(8357),a=n(9437),s=n(8246),u=n(4505);function c(){var e,t,n,c,l,d,f=(0,a.Z)(-30),h=1,p=1/0,v=.81;function m(a){var s,c=e.length,d=(1===t?(0,r.Z)(e,u.x):2===t?(0,i.Z)(e,u.x,u.y):3===t?(0,o.Z)(e,u.x,u.y,u.z):null).visitAfter(y);for(l=a,s=0;s<c;++s)n=e[s],d.visit(b)}function g(){if(e){var t,n,r=e.length;for(d=new Array(r),t=0;t<r;++t)n=e[t],d[n.index]=+f(n,t,e)}}function y(e){var n,r,i,o,a,s,u=0,c=0,l=e.length;if(l){for(i=o=a=s=0;s<l;++s)(n=e[s])&&(r=Math.abs(n.value))&&(u+=n.value,c+=r,i+=r*(n.x||0),o+=r*(n.y||0),a+=r*(n.z||0));u*=Math.sqrt(4/l),e.x=i/c,t>1&&(e.y=o/c),t>2&&(e.z=a/c)}else{(n=e).x=n.data.x,t>1&&(n.y=n.data.y),t>2&&(n.z=n.data.z);do{u+=d[n.data.index]}while(n=n.next)}e.value=u}function b(e,r,i,o,a){if(!e.value)return!0;var u=[i,o,a][t-1],f=e.x-n.x,m=t>1?e.y-n.y:0,g=t>2?e.z-n.z:0,y=u-r,b=f*f+m*m+g*g;if(y*y/v<b)return b<p&&(0===f&&(b+=(f=(0,s.Z)(c))*f),t>1&&0===m&&(b+=(m=(0,s.Z)(c))*m),t>2&&0===g&&(b+=(g=(0,s.Z)(c))*g),b<h&&(b=Math.sqrt(h*b)),n.vx+=f*e.value*l/b,t>1&&(n.vy+=m*e.value*l/b),t>2&&(n.vz+=g*e.value*l/b)),!0;if(!(e.length||b>=p)){(e.data!==n||e.next)&&(0===f&&(b+=(f=(0,s.Z)(c))*f),t>1&&0===m&&(b+=(m=(0,s.Z)(c))*m),t>2&&0===g&&(b+=(g=(0,s.Z)(c))*g),b<h&&(b=Math.sqrt(h*b)));do{e.data!==n&&(y=d[e.data.index]*l/b,n.vx+=f*y,t>1&&(n.vy+=m*y),t>2&&(n.vz+=g*y))}while(e=e.next)}}return m.initialize=function(n){e=n;for(var r=arguments.length,i=new Array(r>1?r-1:0),o=1;o<r;o++)i[o-1]=arguments[o];c=i.find((function(e){return"function"===typeof e}))||Math.random,t=i.find((function(e){return[1,2,3].includes(e)}))||2,g()},m.strength=function(e){return arguments.length?(f="function"===typeof e?e:(0,a.Z)(+e),g(),m):f},m.distanceMin=function(e){return arguments.length?(h=e*e,m):Math.sqrt(h)},m.distanceMax=function(e){return arguments.length?(p=e*e,m):Math.sqrt(p)},m.theta=function(e){return arguments.length?(v=e*e,m):Math.sqrt(v)},m}},6917:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(9437);function i(e,t,n,i){var o,a,s,u,c=(0,r.Z)(.1);function l(e){for(var r=0,c=o.length;r<c;++r){var l=o[r],d=l.x-t||1e-6,f=(l.y||0)-n||1e-6,h=(l.z||0)-i||1e-6,p=Math.sqrt(d*d+f*f+h*h),v=(u[r]-p)*s[r]*e/p;l.vx+=d*v,a>1&&(l.vy+=f*v),a>2&&(l.vz+=h*v)}}function d(){if(o){var t,n=o.length;for(s=new Array(n),u=new Array(n),t=0;t<n;++t)u[t]=+e(o[t],t,o),s[t]=isNaN(u[t])?0:+c(o[t],t,o)}}return"function"!==typeof e&&(e=(0,r.Z)(+e)),null==t&&(t=0),null==n&&(n=0),null==i&&(i=0),l.initialize=function(e){o=e;for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];a=n.find((function(e){return[1,2,3].includes(e)}))||2,d()},l.strength=function(e){return arguments.length?(c="function"===typeof e?e:(0,r.Z)(+e),d(),l):c},l.radius=function(t){return arguments.length?(e="function"===typeof t?t:(0,r.Z)(+t),d(),l):e},l.x=function(e){return arguments.length?(t=+e,l):t},l.y=function(e){return arguments.length?(n=+e,l):n},l.z=function(e){return arguments.length?(i=+e,l):i},l}},4505:function(e,t,n){"use strict";n.d(t,{Z:function(){return d},x:function(){return a},y:function(){return s},z:function(){return u}});var r=n(7137),i=n(513),o=4294967296;function a(e){return e.x}function s(e){return e.y}function u(e){return e.z}var c=Math.PI*(3-Math.sqrt(5)),l=20*Math.PI/(9+Math.sqrt(221));function d(e,t){t=t||2;var n,a=Math.min(3,Math.max(1,Math.round(t))),s=1,u=.001,d=1-Math.pow(u,1/300),f=0,h=.6,p=new Map,v=(0,i.HT)(y),m=(0,r.Z)("tick","end"),g=function(){var e=1;return function(){return(e=(1664525*e+1013904223)%o)/o}}();function y(){b(),m.call("tick",n),s<u&&(v.stop(),m.call("end",n))}function b(t){var r,i,o=e.length;void 0===t&&(t=1);for(var u=0;u<t;++u)for(s+=(f-s)*d,p.forEach((function(e){e(s)})),r=0;r<o;++r)null==(i=e[r]).fx?i.x+=i.vx*=h:(i.x=i.fx,i.vx=0),a>1&&(null==i.fy?i.y+=i.vy*=h:(i.y=i.fy,i.vy=0)),a>2&&(null==i.fz?i.z+=i.vz*=h:(i.z=i.fz,i.vz=0));return n}function w(){for(var t,n=0,r=e.length;n<r;++n){if((t=e[n]).index=n,null!=t.fx&&(t.x=t.fx),null!=t.fy&&(t.y=t.fy),null!=t.fz&&(t.z=t.fz),isNaN(t.x)||a>1&&isNaN(t.y)||a>2&&isNaN(t.z)){var i=10*(a>2?Math.cbrt(.5+n):a>1?Math.sqrt(.5+n):n),o=n*c,s=n*l;1===a?t.x=i:2===a?(t.x=i*Math.cos(o),t.y=i*Math.sin(o)):(t.x=i*Math.sin(o)*Math.cos(s),t.y=i*Math.cos(o),t.z=i*Math.sin(o)*Math.sin(s))}(isNaN(t.vx)||a>1&&isNaN(t.vy)||a>2&&isNaN(t.vz))&&(t.vx=0,a>1&&(t.vy=0),a>2&&(t.vz=0))}}function x(t){return t.initialize&&t.initialize(e,g,a),t}return null==e&&(e=[]),w(),n={tick:b,restart:function(){return v.restart(y),n},stop:function(){return v.stop(),n},numDimensions:function(e){return arguments.length?(a=Math.min(3,Math.max(1,Math.round(e))),p.forEach(x),n):a},nodes:function(t){return arguments.length?(e=t,w(),p.forEach(x),n):e},alpha:function(e){return arguments.length?(s=+e,n):s},alphaMin:function(e){return arguments.length?(u=+e,n):u},alphaDecay:function(e){return arguments.length?(d=+e,n):+d},alphaTarget:function(e){return arguments.length?(f=+e,n):f},velocityDecay:function(e){return arguments.length?(h=1-e,n):1-h},randomSource:function(e){return arguments.length?(g=e,p.forEach(x),n):g},force:function(e,t){return arguments.length>1?(null==t?p.delete(e):p.set(e,x(t)),n):p.get(e)},find:function(){var t,n,r,i,o,s,u=Array.prototype.slice.call(arguments),c=u.shift()||0,l=(a>1?u.shift():null)||0,d=(a>2?u.shift():null)||0,f=u.shift()||1/0,h=0,p=e.length;for(f*=f,h=0;h<p;++h)(i=(t=c-(o=e[h]).x)*t+(n=l-(o.y||0))*n+(r=d-(o.z||0))*r)<f&&(s=o,f=i);return s},on:function(e,t){return arguments.length>1?(m.on(e,t),n):m.on(e)}}}},8357:function(e,t,n){"use strict";function r(e,t,n,r,i){if(isNaN(t)||isNaN(n)||isNaN(r))return e;var o,a,s,u,c,l,d,f,h,p,v,m,g=e._root,y={data:i},b=e._x0,w=e._y0,x=e._z0,E=e._x1,k=e._y1,_=e._z1;if(!g)return e._root=y,e;for(;g.length;)if((f=t>=(a=(b+E)/2))?b=a:E=a,(h=n>=(s=(w+k)/2))?w=s:k=s,(p=r>=(u=(x+_)/2))?x=u:_=u,o=g,!(g=g[v=p<<2|h<<1|f]))return o[v]=y,e;if(c=+e._x.call(null,g.data),l=+e._y.call(null,g.data),d=+e._z.call(null,g.data),t===c&&n===l&&r===d)return y.next=g,o?o[v]=y:e._root=y,e;do{o=o?o[v]=new Array(8):e._root=new Array(8),(f=t>=(a=(b+E)/2))?b=a:E=a,(h=n>=(s=(w+k)/2))?w=s:k=s,(p=r>=(u=(x+_)/2))?x=u:_=u}while((v=p<<2|h<<1|f)===(m=(d>=u)<<2|(l>=s)<<1|c>=a));return o[m]=g,o[v]=y,e}function i(e,t,n,r,i,o,a){this.node=e,this.x0=t,this.y0=n,this.z0=r,this.x1=i,this.y1=o,this.z1=a}function o(e){return e[0]}function a(e){return e[1]}function s(e){return e[2]}function u(e,t,n,r){var i=new c(null==t?o:t,null==n?a:n,null==r?s:r,NaN,NaN,NaN,NaN,NaN,NaN);return null==e?i:i.addAll(e)}function c(e,t,n,r,i,o,a,s,u){this._x=e,this._y=t,this._z=n,this._x0=r,this._y0=i,this._z0=o,this._x1=a,this._y1=s,this._z1=u,this._root=void 0}function l(e){for(var t={data:e.data},n=t;e=e.next;)n=n.next={data:e.data};return t}n.d(t,{Z:function(){return u}});var d=u.prototype=c.prototype;d.copy=function(){var e,t,n=new c(this._x,this._y,this._z,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1),r=this._root;if(!r)return n;if(!r.length)return n._root=l(r),n;for(e=[{source:r,target:n._root=new Array(8)}];r=e.pop();)for(var i=0;i<8;++i)(t=r.source[i])&&(t.length?e.push({source:t,target:r.target[i]=new Array(8)}):r.target[i]=l(t));return n},d.add=function(e){var t=+this._x.call(null,e),n=+this._y.call(null,e),i=+this._z.call(null,e);return r(this.cover(t,n,i),t,n,i,e)},d.addAll=function(e){var t,n,i,o,a,s=e.length,u=new Array(s),c=new Array(s),l=new Array(s),d=1/0,f=1/0,h=1/0,p=-1/0,v=-1/0,m=-1/0;for(n=0;n<s;++n)isNaN(i=+this._x.call(null,t=e[n]))||isNaN(o=+this._y.call(null,t))||isNaN(a=+this._z.call(null,t))||(u[n]=i,c[n]=o,l[n]=a,i<d&&(d=i),i>p&&(p=i),o<f&&(f=o),o>v&&(v=o),a<h&&(h=a),a>m&&(m=a));if(d>p||f>v||h>m)return this;for(this.cover(d,f,h).cover(p,v,m),n=0;n<s;++n)r(this,u[n],c[n],l[n],e[n]);return this},d.cover=function(e,t,n){if(isNaN(e=+e)||isNaN(t=+t)||isNaN(n=+n))return this;var r=this._x0,i=this._y0,o=this._z0,a=this._x1,s=this._y1,u=this._z1;if(isNaN(r))a=(r=Math.floor(e))+1,s=(i=Math.floor(t))+1,u=(o=Math.floor(n))+1;else{for(var c,l,d=a-r||1,f=this._root;r>e||e>=a||i>t||t>=s||o>n||n>=u;)switch(l=(n<o)<<2|(t<i)<<1|e<r,(c=new Array(8))[l]=f,f=c,d*=2,l){case 0:a=r+d,s=i+d,u=o+d;break;case 1:r=a-d,s=i+d,u=o+d;break;case 2:a=r+d,i=s-d,u=o+d;break;case 3:r=a-d,i=s-d,u=o+d;break;case 4:a=r+d,s=i+d,o=u-d;break;case 5:r=a-d,s=i+d,o=u-d;break;case 6:a=r+d,i=s-d,o=u-d;break;case 7:r=a-d,i=s-d,o=u-d}this._root&&this._root.length&&(this._root=f)}return this._x0=r,this._y0=i,this._z0=o,this._x1=a,this._y1=s,this._z1=u,this},d.data=function(){var e=[];return this.visit((function(t){if(!t.length)do{e.push(t.data)}while(t=t.next)})),e},d.extent=function(e){return arguments.length?this.cover(+e[0][0],+e[0][1],+e[0][2]).cover(+e[1][0],+e[1][1],+e[1][2]):isNaN(this._x0)?void 0:[[this._x0,this._y0,this._z0],[this._x1,this._y1,this._z1]]},d.find=function(e,t,n,r){var o,a,s,u,c,l,d,f,h,p=this._x0,v=this._y0,m=this._z0,g=this._x1,y=this._y1,b=this._z1,w=[],x=this._root;for(x&&w.push(new i(x,p,v,m,g,y,b)),null==r?r=1/0:(p=e-r,v=t-r,m=n-r,g=e+r,y=t+r,b=n+r,r*=r);f=w.pop();)if(!(!(x=f.node)||(a=f.x0)>g||(s=f.y0)>y||(u=f.z0)>b||(c=f.x1)<p||(l=f.y1)<v||(d=f.z1)<m))if(x.length){var E=(a+c)/2,k=(s+l)/2,_=(u+d)/2;w.push(new i(x[7],E,k,_,c,l,d),new i(x[6],a,k,_,E,l,d),new i(x[5],E,s,_,c,k,d),new i(x[4],a,s,_,E,k,d),new i(x[3],E,k,u,c,l,_),new i(x[2],a,k,u,E,l,_),new i(x[1],E,s,u,c,k,_),new i(x[0],a,s,u,E,k,_)),(h=(n>=_)<<2|(t>=k)<<1|e>=E)&&(f=w[w.length-1],w[w.length-1]=w[w.length-1-h],w[w.length-1-h]=f)}else{var T=e-+this._x.call(null,x.data),O=t-+this._y.call(null,x.data),C=n-+this._z.call(null,x.data),A=T*T+O*O+C*C;if(A<r){var P=Math.sqrt(r=A);p=e-P,v=t-P,m=n-P,g=e+P,y=t+P,b=n+P,o=x.data}}return o},d.remove=function(e){if(isNaN(o=+this._x.call(null,e))||isNaN(a=+this._y.call(null,e))||isNaN(s=+this._z.call(null,e)))return this;var t,n,r,i,o,a,s,u,c,l,d,f,h,p,v,m=this._root,g=this._x0,y=this._y0,b=this._z0,w=this._x1,x=this._y1,E=this._z1;if(!m)return this;if(m.length)for(;;){if((d=o>=(u=(g+w)/2))?g=u:w=u,(f=a>=(c=(y+x)/2))?y=c:x=c,(h=s>=(l=(b+E)/2))?b=l:E=l,t=m,!(m=m[p=h<<2|f<<1|d]))return this;if(!m.length)break;(t[p+1&7]||t[p+2&7]||t[p+3&7]||t[p+4&7]||t[p+5&7]||t[p+6&7]||t[p+7&7])&&(n=t,v=p)}for(;m.data!==e;)if(r=m,!(m=m.next))return this;return(i=m.next)&&delete m.next,r?(i?r.next=i:delete r.next,this):t?(i?t[p]=i:delete t[p],(m=t[0]||t[1]||t[2]||t[3]||t[4]||t[5]||t[6]||t[7])&&m===(t[7]||t[6]||t[5]||t[4]||t[3]||t[2]||t[1]||t[0])&&!m.length&&(n?n[v]=m:this._root=m),this):(this._root=i,this)},d.removeAll=function(e){for(var t=0,n=e.length;t<n;++t)this.remove(e[t]);return this},d.root=function(){return this._root},d.size=function(){var e=0;return this.visit((function(t){if(!t.length)do{++e}while(t=t.next)})),e},d.visit=function(e){var t,n,r,o,a,s,u,c,l=[],d=this._root;for(d&&l.push(new i(d,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));t=l.pop();)if(!e(d=t.node,r=t.x0,o=t.y0,a=t.z0,s=t.x1,u=t.y1,c=t.z1)&&d.length){var f=(r+s)/2,h=(o+u)/2,p=(a+c)/2;(n=d[7])&&l.push(new i(n,f,h,p,s,u,c)),(n=d[6])&&l.push(new i(n,r,h,p,f,u,c)),(n=d[5])&&l.push(new i(n,f,o,p,s,h,c)),(n=d[4])&&l.push(new i(n,r,o,p,f,h,c)),(n=d[3])&&l.push(new i(n,f,h,a,s,u,p)),(n=d[2])&&l.push(new i(n,r,h,a,f,u,p)),(n=d[1])&&l.push(new i(n,f,o,a,s,h,p)),(n=d[0])&&l.push(new i(n,r,o,a,f,h,p))}return this},d.visitAfter=function(e){var t,n=[],r=[];for(this._root&&n.push(new i(this._root,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));t=n.pop();){var o=t.node;if(o.length){var a,s=t.x0,u=t.y0,c=t.z0,l=t.x1,d=t.y1,f=t.z1,h=(s+l)/2,p=(u+d)/2,v=(c+f)/2;(a=o[0])&&n.push(new i(a,s,u,c,h,p,v)),(a=o[1])&&n.push(new i(a,h,u,c,l,p,v)),(a=o[2])&&n.push(new i(a,s,p,c,h,d,v)),(a=o[3])&&n.push(new i(a,h,p,c,l,d,v)),(a=o[4])&&n.push(new i(a,s,u,v,h,p,f)),(a=o[5])&&n.push(new i(a,h,u,v,l,p,f)),(a=o[6])&&n.push(new i(a,s,p,v,h,d,f)),(a=o[7])&&n.push(new i(a,h,p,v,l,d,f))}r.push(t)}for(;t=r.pop();)e(t.node,t.x0,t.y0,t.z0,t.x1,t.y1,t.z1);return this},d.x=function(e){return arguments.length?(this._x=e,this):this._x},d.y=function(e){return arguments.length?(this._y=e,this):this._y},d.z=function(e){return arguments.length?(this._z=e,this):this._z}},54:function(e,t,n){"use strict";function r(e,t,n,r){if(isNaN(t)||isNaN(n))return e;var i,o,a,s,u,c,l,d,f,h=e._root,p={data:r},v=e._x0,m=e._y0,g=e._x1,y=e._y1;if(!h)return e._root=p,e;for(;h.length;)if((c=t>=(o=(v+g)/2))?v=o:g=o,(l=n>=(a=(m+y)/2))?m=a:y=a,i=h,!(h=h[d=l<<1|c]))return i[d]=p,e;if(s=+e._x.call(null,h.data),u=+e._y.call(null,h.data),t===s&&n===u)return p.next=h,i?i[d]=p:e._root=p,e;do{i=i?i[d]=new Array(4):e._root=new Array(4),(c=t>=(o=(v+g)/2))?v=o:g=o,(l=n>=(a=(m+y)/2))?m=a:y=a}while((d=l<<1|c)===(f=(u>=a)<<1|s>=o));return i[f]=h,i[d]=p,e}function i(e,t,n,r,i){this.node=e,this.x0=t,this.y0=n,this.x1=r,this.y1=i}function o(e){return e[0]}function a(e){return e[1]}function s(e,t,n){var r=new u(null==t?o:t,null==n?a:n,NaN,NaN,NaN,NaN);return null==e?r:r.addAll(e)}function u(e,t,n,r,i,o){this._x=e,this._y=t,this._x0=n,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function c(e){for(var t={data:e.data},n=t;e=e.next;)n=n.next={data:e.data};return t}n.d(t,{Z:function(){return s}});var l=s.prototype=u.prototype;l.copy=function(){var e,t,n=new u(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return n;if(!r.length)return n._root=c(r),n;for(e=[{source:r,target:n._root=new Array(4)}];r=e.pop();)for(var i=0;i<4;++i)(t=r.source[i])&&(t.length?e.push({source:t,target:r.target[i]=new Array(4)}):r.target[i]=c(t));return n},l.add=function(e){var t=+this._x.call(null,e),n=+this._y.call(null,e);return r(this.cover(t,n),t,n,e)},l.addAll=function(e){var t,n,i,o,a=e.length,s=new Array(a),u=new Array(a),c=1/0,l=1/0,d=-1/0,f=-1/0;for(n=0;n<a;++n)isNaN(i=+this._x.call(null,t=e[n]))||isNaN(o=+this._y.call(null,t))||(s[n]=i,u[n]=o,i<c&&(c=i),i>d&&(d=i),o<l&&(l=o),o>f&&(f=o));if(c>d||l>f)return this;for(this.cover(c,l).cover(d,f),n=0;n<a;++n)r(this,s[n],u[n],e[n]);return this},l.cover=function(e,t){if(isNaN(e=+e)||isNaN(t=+t))return this;var n=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(n))i=(n=Math.floor(e))+1,o=(r=Math.floor(t))+1;else{for(var a,s,u=i-n||1,c=this._root;n>e||e>=i||r>t||t>=o;)switch(s=(t<r)<<1|e<n,(a=new Array(4))[s]=c,c=a,u*=2,s){case 0:i=n+u,o=r+u;break;case 1:n=i-u,o=r+u;break;case 2:i=n+u,r=o-u;break;case 3:n=i-u,r=o-u}this._root&&this._root.length&&(this._root=c)}return this._x0=n,this._y0=r,this._x1=i,this._y1=o,this},l.data=function(){var e=[];return this.visit((function(t){if(!t.length)do{e.push(t.data)}while(t=t.next)})),e},l.extent=function(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},l.find=function(e,t,n){var r,o,a,s,u,c,l,d=this._x0,f=this._y0,h=this._x1,p=this._y1,v=[],m=this._root;for(m&&v.push(new i(m,d,f,h,p)),null==n?n=1/0:(d=e-n,f=t-n,h=e+n,p=t+n,n*=n);c=v.pop();)if(!(!(m=c.node)||(o=c.x0)>h||(a=c.y0)>p||(s=c.x1)<d||(u=c.y1)<f))if(m.length){var g=(o+s)/2,y=(a+u)/2;v.push(new i(m[3],g,y,s,u),new i(m[2],o,y,g,u),new i(m[1],g,a,s,y),new i(m[0],o,a,g,y)),(l=(t>=y)<<1|e>=g)&&(c=v[v.length-1],v[v.length-1]=v[v.length-1-l],v[v.length-1-l]=c)}else{var b=e-+this._x.call(null,m.data),w=t-+this._y.call(null,m.data),x=b*b+w*w;if(x<n){var E=Math.sqrt(n=x);d=e-E,f=t-E,h=e+E,p=t+E,r=m.data}}return r},l.remove=function(e){if(isNaN(o=+this._x.call(null,e))||isNaN(a=+this._y.call(null,e)))return this;var t,n,r,i,o,a,s,u,c,l,d,f,h=this._root,p=this._x0,v=this._y0,m=this._x1,g=this._y1;if(!h)return this;if(h.length)for(;;){if((c=o>=(s=(p+m)/2))?p=s:m=s,(l=a>=(u=(v+g)/2))?v=u:g=u,t=h,!(h=h[d=l<<1|c]))return this;if(!h.length)break;(t[d+1&3]||t[d+2&3]||t[d+3&3])&&(n=t,f=d)}for(;h.data!==e;)if(r=h,!(h=h.next))return this;return(i=h.next)&&delete h.next,r?(i?r.next=i:delete r.next,this):t?(i?t[d]=i:delete t[d],(h=t[0]||t[1]||t[2]||t[3])&&h===(t[3]||t[2]||t[1]||t[0])&&!h.length&&(n?n[f]=h:this._root=h),this):(this._root=i,this)},l.removeAll=function(e){for(var t=0,n=e.length;t<n;++t)this.remove(e[t]);return this},l.root=function(){return this._root},l.size=function(){var e=0;return this.visit((function(t){if(!t.length)do{++e}while(t=t.next)})),e},l.visit=function(e){var t,n,r,o,a,s,u=[],c=this._root;for(c&&u.push(new i(c,this._x0,this._y0,this._x1,this._y1));t=u.pop();)if(!e(c=t.node,r=t.x0,o=t.y0,a=t.x1,s=t.y1)&&c.length){var l=(r+a)/2,d=(o+s)/2;(n=c[3])&&u.push(new i(n,l,d,a,s)),(n=c[2])&&u.push(new i(n,r,d,l,s)),(n=c[1])&&u.push(new i(n,l,o,a,d)),(n=c[0])&&u.push(new i(n,r,o,l,d))}return this},l.visitAfter=function(e){var t,n=[],r=[];for(this._root&&n.push(new i(this._root,this._x0,this._y0,this._x1,this._y1));t=n.pop();){var o=t.node;if(o.length){var a,s=t.x0,u=t.y0,c=t.x1,l=t.y1,d=(s+c)/2,f=(u+l)/2;(a=o[0])&&n.push(new i(a,s,u,d,f)),(a=o[1])&&n.push(new i(a,d,u,c,f)),(a=o[2])&&n.push(new i(a,s,f,d,l)),(a=o[3])&&n.push(new i(a,d,f,c,l))}r.push(t)}for(;t=r.pop();)e(t.node,t.x0,t.y0,t.x1,t.y1);return this},l.x=function(e){return arguments.length?(this._x=e,this):this._x},l.y=function(e){return arguments.length?(this._y=e,this):this._y}},7646:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var r=function(e){for(var t=e.length/6|0,n=new Array(t),r=0;r<t;)n[r]="#"+e.slice(6*r,6*++r);return n}("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928")},2462:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});class r extends Map{constructor(e,t=s){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=e)for(const[n,r]of e)this.set(n,r)}get(e){return super.get(i(this,e))}has(e){return super.has(i(this,e))}set(e,t){return super.set(o(this,e),t)}delete(e){return super.delete(a(this,e))}}Set;function i({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function o({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function a({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(n),e.delete(r)),n}function s(e){return null!==e&&"object"===typeof e?e.valueOf():e}function u(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function c(e,t){var n;if("undefined"===typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"===typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,t)}(e))||t&&e&&"number"===typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var d=Symbol("implicit");function f(){var e=new r,t=[],n=[],i=d;function o(r){var o=e.get(r);if(void 0===o){if(i!==d)return i;e.set(r,o=t.push(r)-1)}return n[o%n.length]}return o.domain=function(n){if(!arguments.length)return t.slice();t=[],e=new r;var i,a=c(n);try{for(a.s();!(i=a.n()).done;){var s=i.value;e.has(s)||e.set(s,t.push(s)-1)}}catch(u){a.e(u)}finally{a.f()}return o},o.range=function(e){return arguments.length?(n=Array.from(e),o):n.slice()},o.unknown=function(e){return arguments.length?(i=e,o):i},o.copy=function(){return f(t,n).unknown(i)},u.apply(o,arguments),o}},513:function(e,t,n){"use strict";n.d(t,{zO:function(){return h},B7:function(){return v},HT:function(){return m}});var r,i,o=0,a=0,s=0,u=0,c=0,l=0,d="object"===typeof performance&&performance.now?performance:Date,f=window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function h(){return c||(f(p),c=d.now()+l)}function p(){c=0}function v(){this._call=this._time=this._next=null}function m(e,t,n){var r=new v;return r.restart(e,t,n),r}function g(){c=(u=d.now())+l,o=a=0;try{!function(){h(),++o;for(var e,t=r;t;)(e=c-t._time)>=0&&t._call.call(void 0,e),t=t._next;--o}()}finally{o=0,function(){var e,t,n=r,o=1/0;for(;n;)n._call?(o>n._time&&(o=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:r=t);i=e,b(o)}(),c=0}}function y(){var e=d.now(),t=e-u;t>1e3&&(l-=t,u=e)}function b(e){o||(a&&(a=clearTimeout(a)),e-c>24?(e<1/0&&(a=setTimeout(g,e-d.now()-l)),s&&(s=clearInterval(s))):(s||(u=d.now(),s=setInterval(y,1e3)),o=1,f(g)))}v.prototype=m.prototype={constructor:v,restart:function(e,t,n){if("function"!==typeof e)throw new TypeError("callback is not a function");n=(null==n?h():+n)+(null==t?0:+t),this._next||i===this||(i?i._next=this:r=this,i=this),this._call=e,this._time=n,b()},stop:function(){this._call&&(this._call=null,this._time=1/0,b())}}},4245:function(e){e.exports=function(e){!function(e){if(!e)throw new Error("Eventify cannot use falsy object as events subject");for(var t=["on","fire","off"],n=0;n<t.length;++n)if(e.hasOwnProperty(t[n]))throw new Error("Subject cannot be eventified, since it already has property '"+t[n]+"'")}(e);var t=function(e){var t=Object.create(null);return{on:function(n,r,i){if("function"!==typeof r)throw new Error("callback is expected to be a function");var o=t[n];return o||(o=t[n]=[]),o.push({callback:r,ctx:i}),e},off:function(n,r){if("undefined"===typeof n)return t=Object.create(null),e;if(t[n])if("function"!==typeof r)delete t[n];else for(var i=t[n],o=0;o<i.length;++o)i[o].callback===r&&i.splice(o,1);return e},fire:function(n){var r,i=t[n];if(!i)return e;arguments.length>1&&(r=Array.prototype.splice.call(arguments,1));for(var o=0;o<i.length;++o){var a=i[o];a.callback.apply(a.ctx,r)}return e}}}(e);return e.on=t.on,e.off=t.off,e.fire=t.fire,e}},6505:function(e,t,n){e.exports=function(e,t){if(!e)throw new Error("Graph structure cannot be undefined");var o=(t&&t.createSimulator||n(5818))(t);if(Array.isArray(t))throw new Error("Physics settings is expected to be an object");var a=function(t){var n=e.getLinks(t);return n?1+n.length/3:1};t&&"function"===typeof t.nodeMass&&(a=t.nodeMass);var s=new Map,u={},c=0,l=o.settings.springTransform||i;c=0,e.forEachNode((function(e){m(e.id),c+=1})),e.forEachLink(y),e.on("changed",v);var d=!1,f={step:function(){if(0===c)return h(!0),!0;var e=o.step();f.lastMove=e,f.fire("step");var t=e/c<=.01;return h(t),t},getNodePosition:function(e){return x(e).pos},setNodePosition:function(e){var t=x(e);t.setPosition.apply(t,Array.prototype.slice.call(arguments,1))},getLinkPosition:function(e){var t=u[e];if(t)return{from:t.from.pos,to:t.to.pos}},getGraphRect:function(){return o.getBBox()},forEachBody:p,pinNode:function(e,t){x(e.id).isPinned=!!t},isNodePinned:function(e){return x(e.id).isPinned},dispose:function(){e.off("changed",v),f.fire("disposed")},getBody:function(e){return s.get(e)},getSpring:function(t,n){var r;if(void 0===n)r="object"!==typeof t?t:t.id;else{var i=e.hasLink(t,n);if(!i)return;r=i.id}return u[r]},getForceVectorLength:function(){var e=0,t=0;return p((function(n){e+=Math.abs(n.force.x),t+=Math.abs(n.force.y)})),Math.sqrt(e*e+t*t)},simulator:o,graph:e,lastMove:0};return r(f),f;function h(e){var t;d!==e&&(d=e,t=e,f.fire("stable",t))}function p(e){s.forEach(e)}function v(t){for(var n=0;n<t.length;++n){var r=t[n];"add"===r.changeType?(r.node&&m(r.node.id),r.link&&y(r.link)):"remove"===r.changeType&&(r.node&&g(r.node),r.link&&b(r.link))}c=e.getNodesCount()}function m(t){var n=s.get(t);if(!n){var r=e.getNode(t);if(!r)throw new Error("initBody() was called with unknown node id");var i=r.position;if(!i){var a=function(e){var t=[];if(!e.links)return t;for(var n=Math.min(e.links.length,2),r=0;r<n;++r){var i=e.links[r],o=i.fromId!==e.id?s.get(i.fromId):s.get(i.toId);o&&o.pos&&t.push(o)}return t}(r);i=o.getBestNewBodyPosition(a)}(n=o.addBodyAt(i)).id=t,s.set(t,n),w(t),function(e){return e&&(e.isPinned||e.data&&e.data.isPinned)}(r)&&(n.isPinned=!0)}}function g(e){var t=e.id,n=s.get(t);n&&(s.delete(t),o.removeBody(n))}function y(e){w(e.fromId),w(e.toId);var t=s.get(e.fromId),n=s.get(e.toId),r=o.addSpring(t,n,e.length);l(e,r),u[e.id]=r}function b(t){var n=u[t.id];if(n){var r=e.getNode(t.fromId),i=e.getNode(t.toId);r&&w(r.id),i&&w(i.id),delete u[t.id],o.removeSpring(n)}}function w(e){var t=s.get(e);if(t.mass=a(e),Number.isNaN(t.mass))throw new Error("Node mass should be a number")}function x(e){var t=s.get(e);return t||(m(e),t=s.get(e)),t}},e.exports.simulator=n(5818);var r=n(4245);function i(){}},5189:function(e,t,n){const r=n(6422);e.exports=function(e){return function(t,n){let i=n&&n.indent||0,o=n&&void 0!==n.join?n.join:"\n",a=Array(i+1).join(" "),s=[];for(let u=0;u<e;++u){let e=r(u),n=0===u?"":a;s.push(n+t.replace(/{var}/g,e))}return s.join(o)}}},891:function(e,t,n){e.exports=function(e){let t=i(e);return new Function("bodies","settings","random",t)},e.exports.generateFunctionBody=i;const r=n(5189);function i(e){let t=r(e);return`\n var boundingBox = {\n ${t("min_{var}: 0, max_{var}: 0,",{indent:4})}\n };\n\n return {\n box: boundingBox,\n\n update: updateBoundingBox,\n\n reset: resetBoundingBox,\n\n getBestNewPosition: function (neighbors) {\n var ${t("base_{var} = 0",{join:", "})};\n\n if (neighbors.length) {\n for (var i = 0; i < neighbors.length; ++i) {\n let neighborPos = neighbors[i].pos;\n ${t("base_{var} += neighborPos.{var};",{indent:10})}\n }\n\n ${t("base_{var} /= neighbors.length;",{indent:8})}\n } else {\n ${t("base_{var} = (boundingBox.min_{var} + boundingBox.max_{var}) / 2;",{indent:8})}\n }\n\n var springLength = settings.springLength;\n return {\n ${t("{var}: base_{var} + (random.nextDouble() - 0.5) * springLength,",{indent:8})}\n };\n }\n };\n\n function updateBoundingBox() {\n var i = bodies.length;\n if (i === 0) return; // No bodies - no borders.\n\n ${t("var max_{var} = -Infinity;",{indent:4})}\n ${t("var min_{var} = Infinity;",{indent:4})}\n\n while(i--) {\n // this is O(n), it could be done faster with quadtree, if we check the root node bounds\n var bodyPos = bodies[i].pos;\n ${t("if (bodyPos.{var} < min_{var}) min_{var} = bodyPos.{var};",{indent:6})}\n ${t("if (bodyPos.{var} > max_{var}) max_{var} = bodyPos.{var};",{indent:6})}\n }\n\n ${t("boundingBox.min_{var} = min_{var};",{indent:4})}\n ${t("boundingBox.max_{var} = max_{var};",{indent:4})}\n }\n\n function resetBoundingBox() {\n ${t("boundingBox.min_{var} = boundingBox.max_{var} = 0;",{indent:4})}\n }\n`}},6410:function(e,t,n){const r=n(5189);function i(e,t){return`\n${a(e,t)}\n${o(e)}\nreturn {Body: Body, Vector: Vector};\n`}function o(e){let t=r(e),n=t("{var}",{join:", "});return`\nfunction Body(${n}) {\n this.isPinned = false;\n this.pos = new Vector(${n});\n this.force = new Vector();\n this.velocity = new Vector();\n this.mass = 1;\n\n this.springCount = 0;\n this.springLength = 0;\n}\n\nBody.prototype.reset = function() {\n this.force.reset();\n this.springCount = 0;\n this.springLength = 0;\n}\n\nBody.prototype.setPosition = function (${n}) {\n ${t("this.pos.{var} = {var} || 0;",{indent:2})}\n};`}function a(e,t){let n=r(e),i="";return t&&(i=`${n("\n var v{var};\nObject.defineProperty(this, '{var}', {\n set: function(v) { \n if (!Number.isFinite(v)) throw new Error('Cannot set non-numbers to {var}');\n v{var} = v; \n },\n get: function() { return v{var}; }\n});")}`),`function Vector(${n("{var}",{join:", "})}) {\n ${i}\n if (typeof arguments[0] === 'object') {\n // could be another vector\n let v = arguments[0];\n ${n('if (!Number.isFinite(v.{var})) throw new Error("Expected value is not a finite number at Vector constructor ({var})");',{indent:4})}\n ${n("this.{var} = v.{var};",{indent:4})}\n } else {\n ${n('this.{var} = typeof {var} === "number" ? {var} : 0;',{indent:4})}\n }\n }\n \n Vector.prototype.reset = function () {\n ${n("this.{var} = ",{join:""})}0;\n };`}e.exports=function(e,t){let n=i(e,t),{Body:r}=new Function(n)();return r},e.exports.generateCreateBodyFunctionBody=i,e.exports.getVectorCode=a,e.exports.getBodyCode=o},6647:function(e,t,n){const r=n(5189);function i(e){return`\n if (!Number.isFinite(options.dragCoefficient)) throw new Error('dragCoefficient is not a finite number');\n\n return {\n update: function(body) {\n ${r(e)("body.force.{var} -= options.dragCoefficient * body.velocity.{var};",{indent:6})}\n }\n };\n`}e.exports=function(e){let t=i(e);return new Function("options",t)},e.exports.generateCreateDragForceFunctionBody=i},4079:function(e,t,n){const r=n(5189);function i(e){let t=r(e);return`\n if (!Number.isFinite(options.springCoefficient)) throw new Error('Spring coefficient is not a number');\n if (!Number.isFinite(options.springLength)) throw new Error('Spring length is not a number');\n\n return {\n /**\n * Updates forces acting on a spring\n */\n update: function (spring) {\n var body1 = spring.from;\n var body2 = spring.to;\n var length = spring.length < 0 ? options.springLength : spring.length;\n ${t("var d{var} = body2.pos.{var} - body1.pos.{var};",{indent:6})}\n var r = Math.sqrt(${t("d{var} * d{var}",{join:" + "})});\n\n if (r === 0) {\n ${t("d{var} = (random.nextDouble() - 0.5) / 50;",{indent:8})}\n r = Math.sqrt(${t("d{var} * d{var}",{join:" + "})});\n }\n\n var d = r - length;\n var coefficient = ((spring.coefficient > 0) ? spring.coefficient : options.springCoefficient) * d / r;\n\n ${t("body1.force.{var} += coefficient * d{var}",{indent:6})};\n body1.springCount += 1;\n body1.springLength += r;\n\n ${t("body2.force.{var} -= coefficient * d{var}",{indent:6})};\n body2.springCount += 1;\n body2.springLength += r;\n }\n };\n`}e.exports=function(e){let t=i(e);return new Function("options","random",t)},e.exports.generateCreateSpringForceFunctionBody=i},1763:function(e,t,n){const r=n(5189);function i(e){let t=r(e);return`\n var length = bodies.length;\n if (length === 0) return 0;\n\n ${t("var d{var} = 0, t{var} = 0;",{indent:2})}\n\n for (var i = 0; i < length; ++i) {\n var body = bodies[i];\n if (body.isPinned) continue;\n\n if (adaptiveTimeStepWeight && body.springCount) {\n timeStep = (adaptiveTimeStepWeight * body.springLength/body.springCount);\n }\n\n var coeff = timeStep / body.mass;\n\n ${t("body.velocity.{var} += coeff * body.force.{var};",{indent:4})}\n ${t("var v{var} = body.velocity.{var};",{indent:4})}\n var v = Math.sqrt(${t("v{var} * v{var}",{join:" + "})});\n\n if (v > 1) {\n // We normalize it so that we move within timeStep range. \n // for the case when v <= 1 - we let velocity to fade out.\n ${t("body.velocity.{var} = v{var} / v;",{indent:6})}\n }\n\n ${t("d{var} = timeStep * body.velocity.{var};",{indent:4})}\n\n ${t("body.pos.{var} += d{var};",{indent:4})}\n\n ${t("t{var} += Math.abs(d{var});",{indent:4})}\n }\n\n return (${t("t{var} * t{var}",{join:" + "})})/length;\n`}e.exports=function(e){let t=i(e);return new Function("bodies","timeStep","adaptiveTimeStepWeight",t)},e.exports.generateIntegratorFunctionBody=i},1584:function(e,t,n){const r=n(5189),i=n(6422);function o(e){let t=r(e),n=Math.pow(2,e);return`\n${l()}\n${c(e)}\n${a(e)}\n${u(e)}\n${s(e)}\n\nfunction createQuadTree(options, random) {\n options = options || {};\n options.gravity = typeof options.gravity === 'number' ? options.gravity : -1;\n options.theta = typeof options.theta === 'number' ? options.theta : 0.8;\n\n var gravity = options.gravity;\n var updateQueue = [];\n var insertStack = new InsertStack();\n var theta = options.theta;\n\n var nodesCache = [];\n var currentInCache = 0;\n var root = newNode();\n\n return {\n insertBodies: insertBodies,\n\n /**\n * Gets root node if it is present\n */\n getRoot: function() {\n return root;\n },\n\n updateBodyForce: update,\n\n options: function(newOptions) {\n if (newOptions) {\n if (typeof newOptions.gravity === 'number') {\n gravity = newOptions.gravity;\n }\n if (typeof newOptions.theta === 'number') {\n theta = newOptions.theta;\n }\n\n return this;\n }\n\n return {\n gravity: gravity,\n theta: theta\n };\n }\n };\n\n function newNode() {\n // To avoid pressure on GC we reuse nodes.\n var node = nodesCache[currentInCache];\n if (node) {\n${function(e){let t=[];for(let r=0;r<n;++r)t.push(`${e}quad${r} = null;`);return t.join("\n")}(" node.")}\n node.body = null;\n node.mass = ${t("node.mass_{var} = ",{join:""})}0;\n ${t("node.min_{var} = node.max_{var} = ",{join:""})}0;\n } else {\n node = new QuadNode();\n nodesCache[currentInCache] = node;\n }\n\n ++currentInCache;\n return node;\n }\n\n function update(sourceBody) {\n var queue = updateQueue;\n var v;\n ${t("var d{var};",{indent:4})}\n var r; \n ${t("var f{var} = 0;",{indent:4})}\n var queueLength = 1;\n var shiftIdx = 0;\n var pushIdx = 1;\n\n queue[0] = root;\n\n while (queueLength) {\n var node = queue[shiftIdx];\n var body = node.body;\n\n queueLength -= 1;\n shiftIdx += 1;\n var differentBody = (body !== sourceBody);\n if (body && differentBody) {\n // If the current node is a leaf node (and it is not source body),\n // calculate the force exerted by the current node on body, and add this\n // amount to body's net force.\n ${t("d{var} = body.pos.{var} - sourceBody.pos.{var};",{indent:8})}\n r = Math.sqrt(${t("d{var} * d{var}",{join:" + "})});\n\n if (r === 0) {\n // Poor man's protection against zero distance.\n ${t("d{var} = (random.nextDouble() - 0.5) / 50;",{indent:10})}\n r = Math.sqrt(${t("d{var} * d{var}",{join:" + "})});\n }\n\n // This is standard gravitation force calculation but we divide\n // by r^3 to save two operations when normalizing force vector.\n v = gravity * body.mass * sourceBody.mass / (r * r * r);\n ${t("f{var} += v * d{var};",{indent:8})}\n } else if (differentBody) {\n // Otherwise, calculate the ratio s / r, where s is the width of the region\n // represented by the internal node, and r is the distance between the body\n // and the node's center-of-mass\n ${t("d{var} = node.mass_{var} / node.mass - sourceBody.pos.{var};",{indent:8})}\n r = Math.sqrt(${t("d{var} * d{var}",{join:" + "})});\n\n if (r === 0) {\n // Sorry about code duplication. I don't want to create many functions\n // right away. Just want to see performance first.\n ${t("d{var} = (random.nextDouble() - 0.5) / 50;",{indent:10})}\n r = Math.sqrt(${t("d{var} * d{var}",{join:" + "})});\n }\n // If s / r < \u03b8, treat this internal node as a single body, and calculate the\n // force it exerts on sourceBody, and add this amount to sourceBody's net force.\n if ((node.max_${i(0)} - node.min_${i(0)}) / r < theta) {\n // in the if statement above we consider node's width only\n // because the region was made into square during tree creation.\n // Thus there is no difference between using width or height.\n v = gravity * node.mass * sourceBody.mass / (r * r * r);\n ${t("f{var} += v * d{var};",{indent:10})}\n } else {\n // Otherwise, run the procedure recursively on each of the current node's children.\n\n // I intentionally unfolded this loop, to save several CPU cycles.\n${function(){let e=Array(11).join(" "),t=[];for(let r=0;r<n;++r)t.push(e+`if (node.quad${r}) {`),t.push(e+` queue[pushIdx] = node.quad${r};`),t.push(e+" queueLength += 1;"),t.push(e+" pushIdx += 1;"),t.push(e+"}");return t.join("\n")}()}\n }\n }\n }\n\n ${t("sourceBody.force.{var} += f{var};",{indent:4})}\n }\n\n function insertBodies(bodies) {\n ${t("var {var}min = Number.MAX_VALUE;",{indent:4})}\n ${t("var {var}max = Number.MIN_VALUE;",{indent:4})}\n var i = bodies.length;\n\n // To reduce quad tree depth we are looking for exact bounding box of all particles.\n while (i--) {\n var pos = bodies[i].pos;\n ${t("if (pos.{var} < {var}min) {var}min = pos.{var};",{indent:6})}\n ${t("if (pos.{var} > {var}max) {var}max = pos.{var};",{indent:6})}\n }\n\n // Makes the bounds square.\n var maxSideLength = -Infinity;\n ${t("if ({var}max - {var}min > maxSideLength) maxSideLength = {var}max - {var}min ;",{indent:4})}\n\n currentInCache = 0;\n root = newNode();\n ${t("root.min_{var} = {var}min;",{indent:4})}\n ${t("root.max_{var} = {var}min + maxSideLength;",{indent:4})}\n\n i = bodies.length - 1;\n if (i >= 0) {\n root.body = bodies[i];\n }\n while (i--) {\n insert(bodies[i], root);\n }\n }\n\n function insert(newBody) {\n insertStack.reset();\n insertStack.push(root, newBody);\n\n while (!insertStack.isEmpty()) {\n var stackItem = insertStack.pop();\n var node = stackItem.node;\n var body = stackItem.body;\n\n if (!node.body) {\n // This is internal node. Update the total mass of the node and center-of-mass.\n ${t("var {var} = body.pos.{var};",{indent:8})}\n node.mass += body.mass;\n ${t("node.mass_{var} += body.mass * {var};",{indent:8})}\n\n // Recursively insert the body in the appropriate quadrant.\n // But first find the appropriate quadrant.\n var quadIdx = 0; // Assume we are in the 0's quad.\n ${t("var min_{var} = node.min_{var};",{indent:8})}\n ${t("var max_{var} = (min_{var} + node.max_{var}) / 2;",{indent:8})}\n\n${function(t){let n=[],r=Array(t+1).join(" ");for(let o=0;o<e;++o)n.push(r+`if (${i(o)} > max_${i(o)}) {`),n.push(r+` quadIdx = quadIdx + ${Math.pow(2,o)};`),n.push(r+` min_${i(o)} = max_${i(o)};`),n.push(r+` max_${i(o)} = node.max_${i(o)};`),n.push(r+"}");return n.join("\n")}(8)}\n\n var child = getChild(node, quadIdx);\n\n if (!child) {\n // The node is internal but this quadrant is not taken. Add\n // subnode to it.\n child = newNode();\n ${t("child.min_{var} = min_{var};",{indent:10})}\n ${t("child.max_{var} = max_{var};",{indent:10})}\n child.body = body;\n\n setChild(node, quadIdx, child);\n } else {\n // continue searching in this quadrant.\n insertStack.push(child, body);\n }\n } else {\n // We are trying to add to the leaf node.\n // We have to convert current leaf into internal node\n // and continue adding two nodes.\n var oldBody = node.body;\n node.body = null; // internal nodes do not cary bodies\n\n if (isSamePosition(oldBody.pos, body.pos)) {\n // Prevent infinite subdivision by bumping one node\n // anywhere in this quadrant\n var retriesCount = 3;\n do {\n var offset = random.nextDouble();\n ${t("var d{var} = (node.max_{var} - node.min_{var}) * offset;",{indent:12})}\n\n ${t("oldBody.pos.{var} = node.min_{var} + d{var};",{indent:12})}\n retriesCount -= 1;\n // Make sure we don't bump it out of the box. If we do, next iteration should fix it\n } while (retriesCount > 0 && isSamePosition(oldBody.pos, body.pos));\n\n if (retriesCount === 0 && isSamePosition(oldBody.pos, body.pos)) {\n // This is very bad, we ran out of precision.\n // if we do not return from the method we'll get into\n // infinite loop here. So we sacrifice correctness of layout, and keep the app running\n // Next layout iteration should get larger bounding box in the first step and fix this\n return;\n }\n }\n // Next iteration should subdivide node further.\n insertStack.push(node, oldBody);\n insertStack.push(node, body);\n }\n }\n }\n}\nreturn createQuadTree;\n\n`}function a(e){let t=r(e);return`\n function isSamePosition(point1, point2) {\n ${t("var d{var} = Math.abs(point1.{var} - point2.{var});",{indent:2})}\n \n return ${t("d{var} < 1e-8",{join:" && "})};\n } \n`}function s(e){var t=Math.pow(2,e);return`\nfunction setChild(node, idx, child) {\n ${function(){let e=[];for(let n=0;n<t;++n){let t=0===n?" ":" else ";e.push(`${t}if (idx === ${n}) node.quad${n} = child;`)}return e.join("\n")}()}\n}`}function u(e){return`function getChild(node, idx) {\n${function(){let t=[],n=Math.pow(2,e);for(let e=0;e<n;++e)t.push(` if (idx === ${e}) return node.quad${e};`);return t.join("\n")}()}\n return null;\n}`}function c(e){let t=r(e),n=Math.pow(2,e);return`\nfunction QuadNode() {\n // body stored inside this node. In quad tree only leaf nodes (by construction)\n // contain bodies:\n this.body = null;\n\n // Child nodes are stored in quads. Each quad is presented by number:\n // 0 | 1\n // -----\n // 2 | 3\n${function(e){let t=[];for(let r=0;r<n;++r)t.push(`${e}quad${r} = null;`);return t.join("\n")}(" this.")}\n\n // Total mass of current node\n this.mass = 0;\n\n // Center of mass coordinates\n ${t("this.mass_{var} = 0;",{indent:2})}\n\n // bounding box coordinates\n ${t("this.min_{var} = 0;",{indent:2})}\n ${t("this.max_{var} = 0;",{indent:2})}\n}\n`}function l(){return"\n/**\n * Our implementation of QuadTree is non-recursive to avoid GC hit\n * This data structure represent stack of elements\n * which we are trying to insert into quad tree.\n */\nfunction InsertStack () {\n this.stack = [];\n this.popIdx = 0;\n}\n\nInsertStack.prototype = {\n isEmpty: function() {\n return this.popIdx === 0;\n },\n push: function (node, body) {\n var item = this.stack[this.popIdx];\n if (!item) {\n // we are trying to avoid memory pressure: create new element\n // only when absolutely necessary\n this.stack[this.popIdx] = new InsertStackElement(node, body);\n } else {\n item.node = node;\n item.body = body;\n }\n ++this.popIdx;\n },\n pop: function () {\n if (this.popIdx > 0) {\n return this.stack[--this.popIdx];\n }\n },\n reset: function () {\n this.popIdx = 0;\n }\n};\n\nfunction InsertStackElement(node, body) {\n this.node = node; // QuadTree node\n this.body = body; // physical body which needs to be inserted to node\n}\n"}e.exports=function(e){let t=o(e);return new Function(t)()},e.exports.generateQuadTreeFunctionBody=o,e.exports.getInsertStackCode=l,e.exports.getQuadNodeCode=c,e.exports.isSamePosition=a,e.exports.getChildBodyCode=u,e.exports.setChildBodyCode=s},6422:function(e){e.exports=function(e){return 0===e?"x":1===e?"y":2===e?"z":"c"+(e+1)}},5818:function(e,t,n){e.exports=function(e){var t=n(8403),d=n(5510),f=n(4245);if(e){if(void 0!==e.springCoeff)throw new Error("springCoeff was renamed to springCoefficient");if(void 0!==e.dragCoeff)throw new Error("dragCoeff was renamed to dragCoefficient")}e=d(e,{springLength:10,springCoefficient:.8,gravity:-12,theta:.8,dragCoefficient:.9,timeStep:.5,adaptiveTimeStepWeight:0,dimensions:2,debug:!1});var h=c[e.dimensions];if(!h){var p=e.dimensions;h={Body:r(p,e.debug),createQuadTree:i(p),createBounds:o(p),createDragForce:a(p),createSpringForce:s(p),integrate:u(p)},c[p]=h}var v=h.Body,m=h.createQuadTree,g=h.createBounds,y=h.createDragForce,b=h.createSpringForce,w=h.integrate,x=n(8712).random(42),E=[],k=[],_=m(e,x),T=g(E,e,x),O=b(e,x),C=y(e),A=[],P=new Map,S=0;j("nbody",(function(){if(0===E.length)return;_.insertBodies(E);var e=E.length;for(;e--;){var t=E[e];t.isPinned||(t.reset(),_.updateBodyForce(t),C.update(t))}})),j("spring",(function(){var e=k.length;for(;e--;)O.update(k[e])}));var M={bodies:E,quadTree:_,springs:k,settings:e,addForce:j,removeForce:function(e){var t=A.indexOf(P.get(e));if(t<0)return;A.splice(t,1),P.delete(e)},getForces:function(){return P},step:function(){for(var t=0;t<A.length;++t)A[t](S);var n=w(E,e.timeStep,e.adaptiveTimeStepWeight);return S+=1,n},addBody:function(e){if(!e)throw new Error("Body is required");return E.push(e),e},addBodyAt:function(e){if(!e)throw new Error("Body position is required");var t=(e=>new v(e))(e);return E.push(t),t},removeBody:function(e){if(e){var t=E.indexOf(e);if(!(t<0))return E.splice(t,1),0===E.length&&T.reset(),!0}},addSpring:function(e,n,r,i){if(!e||!n)throw new Error("Cannot add null spring to force simulator");"number"!==typeof r&&(r=-1);var o=new t(e,n,r,i>=0?i:-1);return k.push(o),o},getTotalMovement:function(){return 0},removeSpring:function(e){if(e){var t=k.indexOf(e);return t>-1?(k.splice(t,1),!0):void 0}},getBestNewBodyPosition:function(e){return T.getBestNewPosition(e)},getBBox:R,getBoundingBox:R,invalidateBBox:function(){console.warn("invalidateBBox() is deprecated, bounds always recomputed on `getBBox()` call")},gravity:function(t){return void 0!==t?(e.gravity=t,_.options({gravity:t}),this):e.gravity},theta:function(t){return void 0!==t?(e.theta=t,_.options({theta:t}),this):e.theta},random:x};return function(e,t){for(var n in e)l(e,t,n)}(e,M),f(M),M;function R(){return T.update(),T.box}function j(e,t){if(P.has(e))throw new Error("Force "+e+" is already added");P.set(e,t),A.push(t)}};var r=n(6410),i=n(1584),o=n(891),a=n(6647),s=n(4079),u=n(1763),c={};function l(e,t,n){if(e.hasOwnProperty(n)&&"function"!==typeof t[n]){var r=Number.isFinite(e[n]);t[n]=r?function(r){if(void 0!==r){if(!Number.isFinite(r))throw new Error("Value of "+n+" should be a valid number.");return e[n]=r,t}return e[n]}:function(r){return void 0!==r?(e[n]=r,t):e[n]}}}},8403:function(e){e.exports=function(e,t,n,r){this.from=e,this.to=t,this.length=n,this.coefficient=r}},4736:function(e,t,n){e.exports=function(e){"uniqueLinkId"in(e=e||{})&&(console.warn("ngraph.graph: Starting from version 0.14 `uniqueLinkId` is deprecated.\nUse `multigraph` option instead\n","\n","Note: there is also change in default behavior: From now on each graph\nis considered to be not a multigraph by default (each edge is unique)."),e.multigraph=e.uniqueLinkId);void 0===e.multigraph&&(e.multigraph=!1);if("function"!==typeof Map)throw new Error("ngraph.graph requires `Map` to be defined. Please polyfill it before using ngraph");var t=new Map,n=[],c={},l=0,d=e.multigraph?function(e,t,n){var r=u(e,t),i=c.hasOwnProperty(r);if(i||O(e,t)){i||(c[r]=0);var o="@"+ ++c[r];r=u(e+o,t+o)}return new s(e,t,n,r)}:function(e,t,n){var r=u(e,t);return new s(e,t,n,r)},f=[],h=C,p=C,v=C,m=C,g={addNode:w,addLink:function(e,t,r){v();var i=x(e)||w(e),o=x(t)||w(t),s=d(e,t,r);n.push(s),a(i,s),e!==t&&a(o,s);return h(s,"add"),m(),s},removeLink:T,removeNode:E,getNode:x,getNodeCount:k,getLinkCount:_,getLinksCount:_,getNodesCount:k,getLinks:function(e){var t=x(e);return t?t.links:null},forEachNode:S,forEachLinkedNode:function(e,n,r){var i=x(e);if(i&&i.links&&"function"===typeof n)return r?function(e,n,r){for(var i=0;i<e.length;++i){var o=e[i];if(o.fromId===n&&r(t.get(o.toId),o))return!0}}(i.links,e,n):function(e,n,r){for(var i=0;i<e.length;++i){var o=e[i],a=o.fromId===n?o.toId:o.fromId;if(r(t.get(a),o))return!0}}(i.links,e,n)},forEachLink:function(e){var t,r;if("function"===typeof e)for(t=0,r=n.length;t<r;++t)e(n[t])},beginUpdate:v,endUpdate:m,clear:function(){v(),S((function(e){E(e.id)})),m()},hasLink:O,hasNode:x,getLink:O};return r(g),function(){var e=g.on;function t(){return g.beginUpdate=v=A,g.endUpdate=m=P,h=y,p=b,g.on=e,e.apply(g,arguments)}g.on=t}(),g;function y(e,t){f.push({link:e,changeType:t})}function b(e,t){f.push({node:e,changeType:t})}function w(e,n){if(void 0===e)throw new Error("Invalid node identifier");v();var r=x(e);return r?(r.data=n,p(r,"update")):(r=new o(e,n),p(r,"add")),t.set(e,r),m(),r}function x(e){return t.get(e)}function E(e){var n=x(e);if(!n)return!1;v();var r=n.links;if(r){n.links=null;for(var i=0;i<r.length;++i)T(r[i])}return t.delete(e),p(n,"remove"),m(),!0}function k(){return t.size}function _(){return n.length}function T(e){if(!e)return!1;var t=i(e,n);if(t<0)return!1;v(),n.splice(t,1);var r=x(e.fromId),o=x(e.toId);return r&&(t=i(e,r.links))>=0&&r.links.splice(t,1),o&&(t=i(e,o.links))>=0&&o.links.splice(t,1),h(e,"remove"),m(),!0}function O(e,t){var n,r=x(e);if(!r||!r.links)return null;for(n=0;n<r.links.length;++n){var i=r.links[n];if(i.fromId===e&&i.toId===t)return i}return null}function C(){}function A(){l+=1}function P(){0===(l-=1)&&f.length>0&&(g.fire("changed",f),f.length=0)}function S(e){if("function"!==typeof e)throw new Error("Function is expected to iterate over graph nodes. You passed "+e);for(var n=t.values(),r=n.next();!r.done;){if(e(r.value))return!0;r=n.next()}}};var r=n(4245);function i(e,t){if(!t)return-1;if(t.indexOf)return t.indexOf(e);var n,r=t.length;for(n=0;n<r;n+=1)if(t[n]===e)return n;return-1}function o(e,t){this.id=e,this.links=null,this.data=t}function a(e,t){e.links?e.links.push(t):e.links=[t]}function s(e,t,n,r){this.fromId=e,this.toId=t,this.data=n,this.id=r}function u(e,t){return e.toString()+"\ud83d\udc49 "+t.toString()}},5510:function(e){e.exports=function e(t,n){var r;t||(t={});if(n)for(r in n)if(n.hasOwnProperty(r)){var i=t.hasOwnProperty(r),o=typeof n[r];!i||typeof t[r]!==o?t[r]=n[r]:"object"===o&&(t[r]=e(t[r],n[r]))}return t}},8712:function(e){function t(e){return new n("number"===typeof e?e:+new Date)}function n(e){this.seed=e}function r(e){return Math.sqrt(2*Math.PI/e)*Math.pow(1/Math.E*(e+1/(12*e-1/(10*e))),e)}function i(){var e=this.seed;return e=4294967295&(3042594569^(e=(e=4294967295&((e=(e=4294967295&(3345072700^(e=e+2127912214+(e<<12)&4294967295)^e>>>19))+374761393+(e<<5)&4294967295)+3550635116^e<<9))+4251993797+(e<<3)&4294967295)^e>>>16),this.seed=e,(268435455&e)/268435456}e.exports=t,e.exports.random=t,e.exports.randomIterator=function(e,n){var r=n||t();if("function"!==typeof r.next)throw new Error("customRandom does not match expected API: next() function is missing");return{forEach:function(t){var n,i,o;for(n=e.length-1;n>0;--n)i=r.next(n+1),o=e[i],e[i]=e[n],e[n]=o,t(o);e.length&&t(e[0])},shuffle:function(){var t,n,i;for(t=e.length-1;t>0;--t)n=r.next(t+1),i=e[n],e[n]=e[t],e[t]=i;return e}}},n.prototype.next=function(e){return Math.floor(this.nextDouble()*e)},n.prototype.nextDouble=i,n.prototype.uniform=i,n.prototype.gaussian=function(){var e,t,n;do{t=2*this.nextDouble()-1,n=2*this.nextDouble()-1,e=t*t+n*n}while(e>=1||0===e);return t*Math.sqrt(-2*Math.log(e)/e)},n.prototype.levy=function(){var e=1.5,t=Math.pow(r(2.5)*Math.sin(Math.PI*e/2)/(r(1.25)*e*Math.pow(2,.25)),1/e);return this.gaussian()*t/Math.pow(Math.abs(this.gaussian()),1/e)}},4155:function(e){var t,n,r=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function a(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}!function(){try{t="function"===typeof setTimeout?setTimeout:i}catch(e){t=i}try{n="function"===typeof clearTimeout?clearTimeout:o}catch(e){n=o}}();var s,u=[],c=!1,l=-1;function d(){c&&s&&(c=!1,s.length?u=s.concat(u):l=-1,u.length&&f())}function f(){if(!c){var e=a(d);c=!0;for(var t=u.length;t;){for(s=u,u=[];++l<t;)s&&s[l].run();l=-1,t=u.length}s=null,c=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===o||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function p(){}r.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];u.push(new h(e,t)),1!==u.length||c||a(f)},h.prototype.run=function(){this.fun.apply(null,this.array)},r.title="browser",r.browser=!0,r.env={},r.argv=[],r.version="",r.versions={},r.on=p,r.addListener=p,r.once=p,r.off=p,r.removeListener=p,r.removeAllListeners=p,r.emit=p,r.prependListener=p,r.prependOnceListener=p,r.listeners=function(e){return[]},r.binding=function(e){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(e){throw new Error("process.chdir is not supported")},r.umask=function(){return 0}},9590:function(e){var t="undefined"!==typeof Element,n="function"===typeof Map,r="function"===typeof Set,i="function"===typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,a){if(e===a)return!0;if(e&&a&&"object"==typeof e&&"object"==typeof a){if(e.constructor!==a.constructor)return!1;var s,u,c,l;if(Array.isArray(e)){if((s=e.length)!=a.length)return!1;for(u=s;0!==u--;)if(!o(e[u],a[u]))return!1;return!0}if(n&&e instanceof Map&&a instanceof Map){if(e.size!==a.size)return!1;for(l=e.entries();!(u=l.next()).done;)if(!a.has(u.value[0]))return!1;for(l=e.entries();!(u=l.next()).done;)if(!o(u.value[1],a.get(u.value[0])))return!1;return!0}if(r&&e instanceof Set&&a instanceof Set){if(e.size!==a.size)return!1;for(l=e.entries();!(u=l.next()).done;)if(!a.has(u.value[0]))return!1;return!0}if(i&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(a)){if((s=e.length)!=a.length)return!1;for(u=s;0!==u--;)if(e[u]!==a[u])return!1;return!0}if(e.constructor===RegExp)return e.source===a.source&&e.flags===a.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===a.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===a.toString();if((s=(c=Object.keys(e)).length)!==Object.keys(a).length)return!1;for(u=s;0!==u--;)if(!Object.prototype.hasOwnProperty.call(a,c[u]))return!1;if(t&&e instanceof Element)return!1;for(u=s;0!==u--;)if(("_owner"!==c[u]&&"__v"!==c[u]&&"__o"!==c[u]||!e.$$typeof)&&!o(e[c[u]],a[c[u]]))return!1;return!0}return e!==e&&a!==a}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},6923:function(e,n,r){"use strict";r.d(n,{f$:function(){return Ba},s6:function(){return za}});var i=r(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=e&&("undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);a=!0);}catch(u){s=!0,i=u}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(e,t)||u(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||u(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){if(e){if("string"===typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var l=function(e,t){var n=new Set(t);return Object.assign.apply(Object,[{}].concat(s(Object.entries(e).filter((function(e){var t=a(e,1)[0];return!n.has(t)})).map((function(e){var t=a(e,2);return o({},t[0],t[1])})))))},d=r(3405),f=r.n(d);function h(e){return(h="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=e&&("undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);a=!0);}catch(u){s=!0,i=u}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(e,t)||m(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e){return function(e){if(Array.isArray(e))return g(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||m(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){if(e){if("string"===typeof e)return g(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?g(e,t):void 0}}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var y=function(e,t){var n="object"===h(t)?t:{wrapperElementType:t,methodNames:(arguments.length<=2?void 0:arguments[2])||void 0,initPropNames:(arguments.length<=3?void 0:arguments[3])||void 0},r=n.wrapperElementType,o=void 0===r?"div":r,a=n.nodeMapper,s=void 0===a?function(e){return e}:a,u=n.methodNames,c=void 0===u?[]:u,d=n.initPropNames,m=void 0===d?[]:d;return(0,i.forwardRef)((function(t,n){var r=(0,i.useRef)(),a=p((0,i.useState)({}),2),u=a[0],d=a[1];(0,i.useEffect)((function(){return d(t)}));var h=(0,i.useMemo)((function(){var n=f()(m.filter((function(e){return t.hasOwnProperty(e)})).map((function(e){return[e,t[e]]})));return e(n)}),[]);(0,i.useLayoutEffect)((function(){h(s(r.current))}),[]),(0,i.useEffect)((function(){return h._destructor instanceof Function?h._destructor:void 0}),[]);var g=(0,i.useCallback)((function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return h[e]instanceof Function?h[e].apply(h,n):void 0}),[h]),y=l(t,[].concat(v(c),v(m)));return Object.keys(y).filter((function(e){return u[e]!==t[e]})).forEach((function(e){return g(e,t[e])})),(0,i.useImperativeHandle)(n,(function(){return f()(c.map((function(e){return[e,function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return g.apply(void 0,[e].concat(n))}]})))})),i.createElement(o,{ref:r})}))},b=(r(5569),r(401),r(1359),r(4858)),w=r(2539);function x(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function E(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?x(Object(n),!0).forEach((function(t){k(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function k(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);a=!0);}catch(u){s=!0,i=u}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(e,t)||O(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function T(e){return function(e){if(Array.isArray(e))return C(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||O(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function O(e,t){if(e){if("string"===typeof e)return C(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?C(e,t):void 0}}function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!==typeof document){var r=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===n&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}(".graph-nav-info {\n position: absolute;\n bottom: 5px;\n width: 100%;\n text-align: center;\n color: slategrey;\n opacity: 0.7;\n font-size: 10px;\n font-family: Sans-serif;\n z-index: 1000;\n}");var A=(0,b.Z)({props:{width:{default:window.innerWidth,triggerUpdate:!1,onChange:function(e,t){t.container&&(t.container.style.width=e)}},height:{default:window.innerHeight,triggerUpdate:!1,onChange:function(e,t){t.container&&(t.container.style.height=e)}},jsonUrl:{},graphData:{default:{nodes:[],links:[]}},numDimensions:{default:3},dagMode:{},dagLevelDistance:{},dagNodeFilter:{default:function(){return!0}},onDagError:{default:void 0},backgroundColor:{default:"#002"},showNavInfo:{default:!0},nodeRelSize:{default:4},nodeId:{default:"id"},nodeLabel:{default:"name"},nodeDesc:{default:"desc"},onNodeHover:{},onNodeClick:{},nodeVal:{default:"val"},nodeResolution:{default:8},nodeVisibility:{default:!0},nodeColor:{default:"color"},nodeAutoColorBy:{},nodeOpacity:{default:.75},nodeThreeObject:{},nodeThreeObjectExtend:{default:!1},linkSource:{default:"source"},linkTarget:{default:"target"},linkLabel:{default:"name"},linkDesc:{default:"desc"},onLinkHover:{},onLinkClick:{},linkVisibility:{default:!0},linkColor:{default:"color"},linkAutoColorBy:{},linkOpacity:{default:.2},linkWidth:{default:0},linkResolution:{default:6},linkCurvature:{default:0},linkCurveRotation:{default:0},linkMaterial:{},linkThreeObject:{},linkThreeObjectExtend:{default:!1},linkPositionUpdate:{},linkDirectionalArrowLength:{default:0},linkDirectionalArrowColor:{},linkDirectionalArrowRelPos:{default:.5},linkDirectionalArrowResolution:{default:8},linkDirectionalParticles:{default:0},linkDirectionalParticleSpeed:{default:.01},linkDirectionalParticleWidth:{default:.5},linkDirectionalParticleColor:{},linkDirectionalParticleResolution:{default:4},forceEngine:{default:"d3"},d3AlphaMin:{default:0},d3AlphaDecay:{default:.0228},d3VelocityDecay:{default:.4},ngraphPhysics:{},warmupTicks:{default:0},cooldownTicks:{},cooldownTime:{default:15e3},onEngineTick:{},onEngineStop:{}},methods:E(E({},Object.assign.apply(Object,[{}].concat(T(["getGraphBbox","emitParticle","d3Force","d3ReheatSimulation","refresh"].map((function(e){return k({},e,(function(t){for(var n=t.forcegraph.components.forcegraph,r=arguments.length,i=new Array(r>1?r-1:0),o=1;o<r;o++)i[o-1]=arguments[o];var a=n[e].apply(n,i);return a===n?this:a}))})))))),{},{_destructor:function(){this.graphData({nodes:[],links:[]})}}),init:function(e,t){e.innerHTML="",t.container=document.createElement("div"),e.appendChild(t.container),t.container.style.position="relative",t.container.style.width=t.width,t.container.style.height=t.height,t.container.appendChild(t.navInfo=document.createElement("div")),t.navInfo.className="graph-nav-info",t.navInfo.textContent="Mouse drag: look, gamepad/arrow/wasd keys: move";var n,r,i,o,a,s=document.createElement("a-scene");s.setAttribute("embedded",""),s.appendChild(t.sky=document.createElement("a-sky")),t.sky.setAttribute("radius",3e3),s.appendChild(n=document.createElement("a-entity")),n.setAttribute("position","0 0 300"),n.setAttribute("movement-controls","fly: true; speed: 7"),n.appendChild(r=document.createElement("a-entity")),r.setAttribute("camera",""),r.setAttribute("position","0 0 0"),r.setAttribute("look-controls","reverseMouseDrag: false; pointerLockEnabled: false"),r.appendChild(i=document.createElement("a-text")),i.setAttribute("position","0 -0.3 -1"),i.setAttribute("width",2),i.setAttribute("align","center"),i.setAttribute("color","lavender"),i.setAttribute("value",""),r.appendChild(o=document.createElement("a-text")),o.setAttribute("position","0 -0.4 -1"),o.setAttribute("width",1.3),o.setAttribute("align","center"),o.setAttribute("color","lavender"),o.setAttribute("value",""),s.appendChild(a=document.createElement("a-entity")),a.setAttribute("cursor","rayOrigin: mouse; mouseCursorStylesEnabled: true"),a.setAttribute("raycaster","objects: [forcegraph]; interval: 100"),["left","right"].forEach((function(e){var t;n.appendChild(t=document.createElement("a-entity")),t.setAttribute("laser-controls","hand: ".concat(e)),t.setAttribute("raycaster","objects: [forcegraph]; interval: 100; lineColor: steelblue; lineOpacity: 0.85")})),s.appendChild(t.forcegraph=document.createElement("a-entity")),t.forcegraph.setAttribute("forcegraph",null),t.container.appendChild(s),t.forcegraph.setAttribute("forcegraph",Object.assign.apply(Object,T(["node","link"].map((function(e){var n={node:"Node",link:"Link"}[e];return k({},"on".concat(n,"Hover"),(function(r,a){var s=r&&(0,w.default)(t["".concat(e,"Label")])(r)||"",u=r&&(0,w.default)(t["".concat(e,"Desc")])(r)||"";i.setAttribute("value",s),o.setAttribute("value",u),t["on".concat(n,"Hover")]&&t["on".concat(n,"Hover")](r,a)}))})))))},update:function(e,t){t.hasOwnProperty("backgroundColor")&&e.sky.setAttribute("color",e.backgroundColor),t.hasOwnProperty("showNavInfo")&&(e.navInfo.style.display=e.showNavInfo?null:"none");var n=["jsonUrl","numDimensions","dagMode","dagLevelDistance","dagNodeFilter","onDagError","nodeRelSize","nodeId","onNodeClick","nodeVal","nodeResolution","nodeVisibility","nodeColor","nodeAutoColorBy","nodeOpacity","nodeThreeObject","nodeThreeObjectExtend","linkSource","linkTarget","onLinkClick","linkVisibility","linkColor","linkAutoColorBy","linkOpacity","linkWidth","linkResolution","linkCurvature","linkCurveRotation","linkMaterial","linkThreeObject","linkThreeObjectExtend","linkPositionUpdate","linkDirectionalArrowLength","linkDirectionalArrowColor","linkDirectionalArrowRelPos","linkDirectionalArrowResolution","linkDirectionalParticles","linkDirectionalParticleSpeed","linkDirectionalParticleWidth","linkDirectionalParticleColor","linkDirectionalParticleResolution","forceEngine","d3AlphaMin","d3AlphaDecay","d3VelocityDecay","ngraphPhysics","warmupTicks","cooldownTicks","cooldownTime","onEngineTick","onEngineStop"],r=Object.assign.apply(Object,[{}].concat(T(Object.entries(e).filter((function(e){var r=_(e,2),i=r[0],o=r[1];return t.hasOwnProperty(i)&&-1!==n.indexOf(i)&&void 0!==o&&null!==o})).map((function(e){var t=_(e,2);return k({},t[0],t[1])}))),T(Object.entries(e.graphData).map((function(e){var t=_(e,2);return k({},t[0],t[1])})))));e.forcegraph.setAttribute("forcegraph",r)}}),P=r(5697),S=r.n(P);function M(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function R(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?M(Object(n),!0).forEach((function(t){j(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):M(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function j(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function D(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);a=!0);}catch(u){s=!0,i=u}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(e,t)||L(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function N(e){return function(e){if(Array.isArray(e))return I(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||L(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function L(e,t){if(e){if("string"===typeof e)return I(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?I(e,t):void 0}}function I(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var z=(0,b.Z)({props:{width:{},height:{},yOffset:{default:1.5},glScale:{default:200},jsonUrl:{},graphData:{default:{nodes:[],links:[]}},numDimensions:{default:3},dagMode:{},dagLevelDistance:{},dagNodeFilter:{default:function(){return!0}},onDagError:{default:void 0},nodeRelSize:{default:4},nodeId:{default:"id"},nodeVal:{default:"val"},nodeResolution:{default:8},nodeVisibility:{default:!0},nodeColor:{default:"color"},nodeAutoColorBy:{},nodeOpacity:{default:.75},nodeThreeObject:{},nodeThreeObjectExtend:{default:!1},linkSource:{default:"source"},linkTarget:{default:"target"},linkVisibility:{default:!0},linkColor:{default:"color"},linkAutoColorBy:{},linkOpacity:{default:.2},linkWidth:{default:0},linkResolution:{default:6},linkCurvature:{default:0},linkCurveRotation:{default:0},linkMaterial:{},linkThreeObject:{},linkThreeObjectExtend:{default:!1},linkPositionUpdate:{},linkDirectionalArrowLength:{default:0},linkDirectionalArrowColor:{},linkDirectionalArrowRelPos:{default:.5},linkDirectionalArrowResolution:{default:8},linkDirectionalParticles:{default:0},linkDirectionalParticleSpeed:{default:.01},linkDirectionalParticleWidth:{default:.5},linkDirectionalParticleColor:{},linkDirectionalParticleResolution:{default:4},onNodeHover:{},onNodeClick:{},onLinkHover:{},onLinkClick:{},forceEngine:{default:"d3"},d3AlphaMin:{default:0},d3AlphaDecay:{default:.0228},d3VelocityDecay:{default:.4},ngraphPhysics:{},warmupTicks:{default:0},cooldownTicks:{},cooldownTime:{default:15e3},onEngineTick:{},onEngineStop:{}},methods:R(R({},Object.assign.apply(Object,[{}].concat(N(["getGraphBbox","emitParticle","d3Force","d3ReheatSimulation","refresh"].map((function(e){return j({},e,(function(t){for(var n=t.forcegraph.components.forcegraph,r=arguments.length,i=new Array(r>1?r-1:0),o=1;o<r;o++)i[o-1]=arguments[o];var a=n[e].apply(n,i);return a===n?this:a}))})))))),{},{_destructor:function(){this.graphData({nodes:[],links:[]})}}),init:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.markerAttrs,i=void 0===r?{preset:"hiro"}:r;e.innerHTML="",t.container=document.createElement("div"),e.appendChild(t.container);var o=document.createElement("a-scene");o.setAttribute("embedded",""),o.setAttribute("arjs","debugUIEnabled: false;");var a,s=document.createElement("a-marker");Object.entries(i).forEach((function(e){var t=D(e,2),n=t[0],r=t[1];return s.setAttribute(n,r)})),o.appendChild(s),o.appendChild(a=document.createElement("a-entity")),a.setAttribute("cursor"),a.setAttribute("raycaster","objects: [forcegraph]"),t.forcegraph=document.createElement("a-entity"),t.forcegraph.setAttribute("forcegraph",null),s.appendChild(t.forcegraph);var u=document.createElement("a-entity");u.setAttribute("camera",""),o.appendChild(u),t.container.appendChild(o)},update:function(e,t){t.hasOwnProperty("width")&&e.width&&(e.container.style.width=e.width),t.hasOwnProperty("height")&&e.height&&(e.container.style.height=e.height),t.hasOwnProperty("glScale")&&e.forcegraph.setAttribute("scale",N(new Array(3)).map((function(){return 1/e.glScale})).join(" ")),t.hasOwnProperty("yOffset")&&e.forcegraph.setAttribute("position","0 ".concat(e.yOffset," 0"));var n=["jsonUrl","numDimensions","dagMode","dagLevelDistance","dagNodeFilter","onDagError","nodeRelSize","nodeId","nodeVal","nodeResolution","nodeVisibility","nodeColor","nodeAutoColorBy","nodeOpacity","nodeThreeObject","nodeThreeObjectExtend","linkSource","linkTarget","linkVisibility","linkColor","linkAutoColorBy","linkOpacity","linkWidth","linkResolution","linkCurvature","linkCurveRotation","linkMaterial","linkThreeObject","linkThreeObjectExtend","linkPositionUpdate","linkDirectionalArrowLength","linkDirectionalArrowColor","linkDirectionalArrowRelPos","linkDirectionalArrowResolution","linkDirectionalParticles","linkDirectionalParticleSpeed","linkDirectionalParticleWidth","linkDirectionalParticleColor","linkDirectionalParticleResolution","onNodeHover","onNodeClick","onLinkHover","onLinkClick","forceEngine","d3AlphaMin","d3AlphaDecay","d3VelocityDecay","ngraphPhysics","warmupTicks","cooldownTicks","cooldownTime","onEngineTick","onEngineStop"],r=Object.assign.apply(Object,[{}].concat(N(Object.entries(e).filter((function(e){var r=D(e,2),i=r[0],o=r[1];return t.hasOwnProperty(i)&&-1!==n.indexOf(i)&&void 0!==o&&null!==o})).map((function(e){var t=D(e,2);return j({},t[0],t[1])}))),N(Object.entries(e.graphData).map((function(e){var t=D(e,2);return j({},t[0],t[1])})))));e.forcegraph.setAttribute("forcegraph",r)}}),B=r(2212);const F=new B.JOQ,H=new B.iMs,V=new B.FM8,U=new B.Pa4,G=new B.Pa4,q=new B.Pa4,K=new B.yGw;class W extends B.pBf{constructor(e,t,n){super(),n.style.touchAction="none";let r=null,i=null;const o=[],a=this;function s(){n.addEventListener("pointermove",c),n.addEventListener("pointerdown",l),n.addEventListener("pointerup",d),n.addEventListener("pointerleave",d)}function u(){n.removeEventListener("pointermove",c),n.removeEventListener("pointerdown",l),n.removeEventListener("pointerup",d),n.removeEventListener("pointerleave",d),n.style.cursor=""}function c(s){if(!1!==a.enabled){if(f(s),H.setFromCamera(V,t),r)return H.ray.intersectPlane(F,G)&&r.position.copy(G.sub(U).applyMatrix4(K)),void a.dispatchEvent({type:"drag",object:r});if("mouse"===s.pointerType||"pen"===s.pointerType)if(o.length=0,H.setFromCamera(V,t),H.intersectObjects(e,!0,o),o.length>0){const e=o[0].object;F.setFromNormalAndCoplanarPoint(t.getWorldDirection(F.normal),q.setFromMatrixPosition(e.matrixWorld)),i!==e&&null!==i&&(a.dispatchEvent({type:"hoveroff",object:i}),n.style.cursor="auto",i=null),i!==e&&(a.dispatchEvent({type:"hoveron",object:e}),n.style.cursor="pointer",i=e)}else null!==i&&(a.dispatchEvent({type:"hoveroff",object:i}),n.style.cursor="auto",i=null)}}function l(i){!1!==a.enabled&&(f(i),o.length=0,H.setFromCamera(V,t),H.intersectObjects(e,!0,o),o.length>0&&(r=!0===a.transformGroup?e[0]:o[0].object,F.setFromNormalAndCoplanarPoint(t.getWorldDirection(F.normal),q.setFromMatrixPosition(r.matrixWorld)),H.ray.intersectPlane(F,G)&&(K.copy(r.parent.matrixWorld).invert(),U.copy(G).sub(q.setFromMatrixPosition(r.matrixWorld))),n.style.cursor="move",a.dispatchEvent({type:"dragstart",object:r})))}function d(){!1!==a.enabled&&(r&&(a.dispatchEvent({type:"dragend",object:r}),r=null),n.style.cursor=i?"pointer":"auto")}function f(e){const t=n.getBoundingClientRect();V.x=(e.clientX-t.left)/t.width*2-1,V.y=-(e.clientY-t.top)/t.height*2+1}s(),this.enabled=!0,this.transformGroup=!1,this.activate=s,this.deactivate=u,this.dispose=function(){u()},this.getObjects=function(){return e}}}var Z=r(1398);const $={type:"change"},X={type:"start"},Y={type:"end"};class Q extends B.pBf{constructor(e,t){super(),void 0===t&&console.warn('THREE.TrackballControls: The second parameter "domElement" is now mandatory.'),t===document&&console.error('THREE.TrackballControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.');const n=this,r=-1,i=0,o=1,a=2,s=3,u=4;this.object=e,this.domElement=t,this.domElement.style.touchAction="none",this.enabled=!0,this.screen={left:0,top:0,width:0,height:0},this.rotateSpeed=1,this.zoomSpeed=1.2,this.panSpeed=.3,this.noRotate=!1,this.noZoom=!1,this.noPan=!1,this.staticMoving=!1,this.dynamicDampingFactor=.2,this.minDistance=0,this.maxDistance=1/0,this.keys=["KeyA","KeyS","KeyD"],this.mouseButtons={LEFT:B.RsA.ROTATE,MIDDLE:B.RsA.DOLLY,RIGHT:B.RsA.PAN},this.target=new B.Pa4;const c=1e-6,l=new B.Pa4;let d=1,f=r,h=r,p=0,v=0,m=0;const g=new B.Pa4,y=new B.FM8,b=new B.FM8,w=new B.Pa4,x=new B.FM8,E=new B.FM8,k=new B.FM8,_=new B.FM8,T=[],O={};this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.up0=this.object.up.clone(),this.zoom0=this.object.zoom,this.handleResize=function(){const e=n.domElement.getBoundingClientRect(),t=n.domElement.ownerDocument.documentElement;n.screen.left=e.left+window.pageXOffset-t.clientLeft,n.screen.top=e.top+window.pageYOffset-t.clientTop,n.screen.width=e.width,n.screen.height=e.height};const C=function(){const e=new B.FM8;return function(t,r){return e.set((t-n.screen.left)/n.screen.width,(r-n.screen.top)/n.screen.height),e}}(),A=function(){const e=new B.FM8;return function(t,r){return e.set((t-.5*n.screen.width-n.screen.left)/(.5*n.screen.width),(n.screen.height+2*(n.screen.top-r))/n.screen.width),e}}();function P(e){!1!==n.enabled&&(0===T.length&&(n.domElement.ownerDocument.addEventListener("pointermove",S),n.domElement.ownerDocument.addEventListener("pointerup",M)),function(e){T.push(e)}(e),"touch"===e.pointerType?function(e){switch(z(e),T.length){case 1:f=s,b.copy(A(T[0].pageX,T[0].pageY)),y.copy(b);break;default:f=u;const e=T[0].pageX-T[1].pageX,t=T[0].pageY-T[1].pageY;v=p=Math.sqrt(e*e+t*t);const n=(T[0].pageX+T[1].pageX)/2,r=(T[0].pageY+T[1].pageY)/2;k.copy(C(n,r)),_.copy(k)}n.dispatchEvent(X)}(e):function(e){if(f===r)switch(e.button){case n.mouseButtons.LEFT:f=i;break;case n.mouseButtons.MIDDLE:f=o;break;case n.mouseButtons.RIGHT:f=a;break;default:f=r}const t=h!==r?h:f;t!==i||n.noRotate?t!==o||n.noZoom?t!==a||n.noPan||(k.copy(C(e.pageX,e.pageY)),_.copy(k)):(x.copy(C(e.pageX,e.pageY)),E.copy(x)):(b.copy(A(e.pageX,e.pageY)),y.copy(b));n.domElement.ownerDocument.addEventListener("pointermove",S),n.domElement.ownerDocument.addEventListener("pointerup",M),n.dispatchEvent(X)}(e))}function S(e){!1!==n.enabled&&("touch"===e.pointerType?function(e){switch(z(e),T.length){case 1:y.copy(b),b.copy(A(e.pageX,e.pageY));break;default:const t=function(e){const t=e.pointerId===T[0].pointerId?T[1]:T[0];return O[t.pointerId]}(e),n=e.pageX-t.x,r=e.pageY-t.y;v=Math.sqrt(n*n+r*r);const i=(e.pageX+t.x)/2,o=(e.pageY+t.y)/2;_.copy(C(i,o))}}(e):function(e){const t=h!==r?h:f;t!==i||n.noRotate?t!==o||n.noZoom?t!==a||n.noPan||_.copy(C(e.pageX,e.pageY)):E.copy(C(e.pageX,e.pageY)):(y.copy(b),b.copy(A(e.pageX,e.pageY)))}(e))}function M(e){!1!==n.enabled&&("touch"===e.pointerType?function(e){switch(T.length){case 0:f=r;break;case 1:f=s,b.copy(A(e.pageX,e.pageY)),y.copy(b)}n.dispatchEvent(Y)}(e):(f=r,n.domElement.ownerDocument.removeEventListener("pointermove",S),n.domElement.ownerDocument.removeEventListener("pointerup",M),n.dispatchEvent(Y)),I(e),0===T.length&&(n.domElement.ownerDocument.removeEventListener("pointermove",S),n.domElement.ownerDocument.removeEventListener("pointerup",M)))}function R(e){I(e)}function j(e){!1!==n.enabled&&(window.removeEventListener("keydown",j),h===r&&(e.code!==n.keys[i]||n.noRotate?e.code!==n.keys[o]||n.noZoom?e.code!==n.keys[a]||n.noPan||(h=a):h=o:h=i))}function D(){!1!==n.enabled&&(h=r,window.addEventListener("keydown",j))}function N(e){if(!1!==n.enabled&&!0!==n.noZoom){switch(e.preventDefault(),e.deltaMode){case 2:x.y-=.025*e.deltaY;break;case 1:x.y-=.01*e.deltaY;break;default:x.y-=25e-5*e.deltaY}n.dispatchEvent(X),n.dispatchEvent(Y)}}function L(e){!1!==n.enabled&&e.preventDefault()}function I(e){delete O[e.pointerId];for(let t=0;t<T.length;t++)if(T[t].pointerId==e.pointerId)return void T.splice(t,1)}function z(e){let t=O[e.pointerId];void 0===t&&(t=new B.FM8,O[e.pointerId]=t),t.set(e.pageX,e.pageY)}this.rotateCamera=function(){const e=new B.Pa4,t=new B._fP,r=new B.Pa4,i=new B.Pa4,o=new B.Pa4,a=new B.Pa4;return function(){a.set(b.x-y.x,b.y-y.y,0);let s=a.length();s?(g.copy(n.object.position).sub(n.target),r.copy(g).normalize(),i.copy(n.object.up).normalize(),o.crossVectors(i,r).normalize(),i.setLength(b.y-y.y),o.setLength(b.x-y.x),a.copy(i.add(o)),e.crossVectors(a,g).normalize(),s*=n.rotateSpeed,t.setFromAxisAngle(e,s),g.applyQuaternion(t),n.object.up.applyQuaternion(t),w.copy(e),m=s):!n.staticMoving&&m&&(m*=Math.sqrt(1-n.dynamicDampingFactor),g.copy(n.object.position).sub(n.target),t.setFromAxisAngle(w,m),g.applyQuaternion(t),n.object.up.applyQuaternion(t)),y.copy(b)}}(),this.zoomCamera=function(){let e;f===u?(e=p/v,p=v,n.object.isPerspectiveCamera?g.multiplyScalar(e):n.object.isOrthographicCamera?(n.object.zoom*=e,n.object.updateProjectionMatrix()):console.warn("THREE.TrackballControls: Unsupported camera type")):(e=1+(E.y-x.y)*n.zoomSpeed,1!==e&&e>0&&(n.object.isPerspectiveCamera?g.multiplyScalar(e):n.object.isOrthographicCamera?(n.object.zoom/=e,n.object.updateProjectionMatrix()):console.warn("THREE.TrackballControls: Unsupported camera type")),n.staticMoving?x.copy(E):x.y+=(E.y-x.y)*this.dynamicDampingFactor)},this.panCamera=function(){const e=new B.FM8,t=new B.Pa4,r=new B.Pa4;return function(){if(e.copy(_).sub(k),e.lengthSq()){if(n.object.isOrthographicCamera){const t=(n.object.right-n.object.left)/n.object.zoom/n.domElement.clientWidth,r=(n.object.top-n.object.bottom)/n.object.zoom/n.domElement.clientWidth;e.x*=t,e.y*=r}e.multiplyScalar(g.length()*n.panSpeed),r.copy(g).cross(n.object.up).setLength(e.x),r.add(t.copy(n.object.up).setLength(e.y)),n.object.position.add(r),n.target.add(r),n.staticMoving?k.copy(_):k.add(e.subVectors(_,k).multiplyScalar(n.dynamicDampingFactor))}}}(),this.checkDistances=function(){n.noZoom&&n.noPan||(g.lengthSq()>n.maxDistance*n.maxDistance&&(n.object.position.addVectors(n.target,g.setLength(n.maxDistance)),x.copy(E)),g.lengthSq()<n.minDistance*n.minDistance&&(n.object.position.addVectors(n.target,g.setLength(n.minDistance)),x.copy(E)))},this.update=function(){g.subVectors(n.object.position,n.target),n.noRotate||n.rotateCamera(),n.noZoom||n.zoomCamera(),n.noPan||n.panCamera(),n.object.position.addVectors(n.target,g),n.object.isPerspectiveCamera?(n.checkDistances(),n.object.lookAt(n.target),l.distanceToSquared(n.object.position)>c&&(n.dispatchEvent($),l.copy(n.object.position))):n.object.isOrthographicCamera?(n.object.lookAt(n.target),(l.distanceToSquared(n.object.position)>c||d!==n.object.zoom)&&(n.dispatchEvent($),l.copy(n.object.position),d=n.object.zoom)):console.warn("THREE.TrackballControls: Unsupported camera type")},this.reset=function(){f=r,h=r,n.target.copy(n.target0),n.object.position.copy(n.position0),n.object.up.copy(n.up0),n.object.zoom=n.zoom0,n.object.updateProjectionMatrix(),g.subVectors(n.object.position,n.target),n.object.lookAt(n.target),n.dispatchEvent($),l.copy(n.object.position),d=n.object.zoom},this.dispose=function(){n.domElement.removeEventListener("contextmenu",L),n.domElement.removeEventListener("pointerdown",P),n.domElement.removeEventListener("pointercancel",R),n.domElement.removeEventListener("wheel",N),window.removeEventListener("keydown",j),window.removeEventListener("keyup",D)},this.domElement.addEventListener("contextmenu",L),this.domElement.addEventListener("pointerdown",P),this.domElement.addEventListener("pointercancel",R),this.domElement.addEventListener("wheel",N,{passive:!1}),window.addEventListener("keydown",j),window.addEventListener("keyup",D),this.handleResize(),this.update()}}const J={type:"change"},ee={type:"start"},te={type:"end"};class ne extends B.pBf{constructor(e,t){super(),void 0===t&&console.warn('THREE.OrbitControls: The second parameter "domElement" is now mandatory.'),t===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.object=e,this.domElement=t,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new B.Pa4,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:B.RsA.ROTATE,MIDDLE:B.RsA.DOLLY,RIGHT:B.RsA.PAN},this.touches={ONE:B.QmN.ROTATE,TWO:B.QmN.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return a.phi},this.getAzimuthalAngle=function(){return a.theta},this.listenToKeyEvents=function(e){e.addEventListener("keydown",G),this._domElementKeyEvents=e},this.saveState=function(){n.target0.copy(n.target),n.position0.copy(n.object.position),n.zoom0=n.object.zoom},this.reset=function(){n.target.copy(n.target0),n.object.position.copy(n.position0),n.object.zoom=n.zoom0,n.object.updateProjectionMatrix(),n.dispatchEvent(J),n.update(),i=r.NONE},this.update=function(){const t=new B.Pa4,d=(new B._fP).setFromUnitVectors(e.up,new B.Pa4(0,1,0)),f=d.clone().invert(),h=new B.Pa4,p=new B._fP,v=2*Math.PI;return function(){const e=n.object.position;t.copy(e).sub(n.target),t.applyQuaternion(d),a.setFromVector3(t),n.autoRotate&&i===r.NONE&&k(2*Math.PI/60/60*n.autoRotateSpeed),n.enableDamping?(a.theta+=s.theta*n.dampingFactor,a.phi+=s.phi*n.dampingFactor):(a.theta+=s.theta,a.phi+=s.phi);let m=n.minAzimuthAngle,g=n.maxAzimuthAngle;return isFinite(m)&&isFinite(g)&&(m<-Math.PI?m+=v:m>Math.PI&&(m-=v),g<-Math.PI?g+=v:g>Math.PI&&(g-=v),a.theta=m<=g?Math.max(m,Math.min(g,a.theta)):a.theta>(m+g)/2?Math.max(m,a.theta):Math.min(g,a.theta)),a.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,a.phi)),a.makeSafe(),a.radius*=u,a.radius=Math.max(n.minDistance,Math.min(n.maxDistance,a.radius)),!0===n.enableDamping?n.target.addScaledVector(c,n.dampingFactor):n.target.add(c),t.setFromSpherical(a),t.applyQuaternion(f),e.copy(n.target).add(t),n.object.lookAt(n.target),!0===n.enableDamping?(s.theta*=1-n.dampingFactor,s.phi*=1-n.dampingFactor,c.multiplyScalar(1-n.dampingFactor)):(s.set(0,0,0),c.set(0,0,0)),u=1,!!(l||h.distanceToSquared(n.object.position)>o||8*(1-p.dot(n.object.quaternion))>o)&&(n.dispatchEvent(J),h.copy(n.object.position),p.copy(n.object.quaternion),l=!1,!0)}}(),this.dispose=function(){n.domElement.removeEventListener("contextmenu",q),n.domElement.removeEventListener("pointerdown",z),n.domElement.removeEventListener("pointercancel",V),n.domElement.removeEventListener("wheel",U),n.domElement.ownerDocument.removeEventListener("pointermove",F),n.domElement.ownerDocument.removeEventListener("pointerup",H),null!==n._domElementKeyEvents&&n._domElementKeyEvents.removeEventListener("keydown",G)};const n=this,r={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let i=r.NONE;const o=1e-6,a=new B.$V,s=new B.$V;let u=1;const c=new B.Pa4;let l=!1;const d=new B.FM8,f=new B.FM8,h=new B.FM8,p=new B.FM8,v=new B.FM8,m=new B.FM8,g=new B.FM8,y=new B.FM8,b=new B.FM8,w=[],x={};function E(){return Math.pow(.95,n.zoomSpeed)}function k(e){s.theta-=e}function _(e){s.phi-=e}const T=function(){const e=new B.Pa4;return function(t,n){e.setFromMatrixColumn(n,0),e.multiplyScalar(-t),c.add(e)}}(),O=function(){const e=new B.Pa4;return function(t,r){!0===n.screenSpacePanning?e.setFromMatrixColumn(r,1):(e.setFromMatrixColumn(r,0),e.crossVectors(n.object.up,e)),e.multiplyScalar(t),c.add(e)}}(),C=function(){const e=new B.Pa4;return function(t,r){const i=n.domElement;if(n.object.isPerspectiveCamera){const o=n.object.position;e.copy(o).sub(n.target);let a=e.length();a*=Math.tan(n.object.fov/2*Math.PI/180),T(2*t*a/i.clientHeight,n.object.matrix),O(2*r*a/i.clientHeight,n.object.matrix)}else n.object.isOrthographicCamera?(T(t*(n.object.right-n.object.left)/n.object.zoom/i.clientWidth,n.object.matrix),O(r*(n.object.top-n.object.bottom)/n.object.zoom/i.clientHeight,n.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),n.enablePan=!1)}}();function A(e){n.object.isPerspectiveCamera?u/=e:n.object.isOrthographicCamera?(n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom*e)),n.object.updateProjectionMatrix(),l=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function P(e){n.object.isPerspectiveCamera?u*=e:n.object.isOrthographicCamera?(n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/e)),n.object.updateProjectionMatrix(),l=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function S(e){d.set(e.clientX,e.clientY)}function M(e){p.set(e.clientX,e.clientY)}function R(){if(1===w.length)d.set(w[0].pageX,w[0].pageY);else{const e=.5*(w[0].pageX+w[1].pageX),t=.5*(w[0].pageY+w[1].pageY);d.set(e,t)}}function j(){if(1===w.length)p.set(w[0].pageX,w[0].pageY);else{const e=.5*(w[0].pageX+w[1].pageX),t=.5*(w[0].pageY+w[1].pageY);p.set(e,t)}}function D(){const e=w[0].pageX-w[1].pageX,t=w[0].pageY-w[1].pageY,n=Math.sqrt(e*e+t*t);g.set(0,n)}function N(e){if(1==w.length)f.set(e.pageX,e.pageY);else{const t=Z(e),n=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);f.set(n,r)}h.subVectors(f,d).multiplyScalar(n.rotateSpeed);const t=n.domElement;k(2*Math.PI*h.x/t.clientHeight),_(2*Math.PI*h.y/t.clientHeight),d.copy(f)}function L(e){if(1===w.length)v.set(e.pageX,e.pageY);else{const t=Z(e),n=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);v.set(n,r)}m.subVectors(v,p).multiplyScalar(n.panSpeed),C(m.x,m.y),p.copy(v)}function I(e){const t=Z(e),r=e.pageX-t.x,i=e.pageY-t.y,o=Math.sqrt(r*r+i*i);y.set(0,o),b.set(0,Math.pow(y.y/g.y,n.zoomSpeed)),A(b.y),g.copy(y)}function z(e){!1!==n.enabled&&(0===w.length&&(n.domElement.ownerDocument.addEventListener("pointermove",F),n.domElement.ownerDocument.addEventListener("pointerup",H)),function(e){w.push(e)}(e),"touch"===e.pointerType?function(e){switch(W(e),w.length){case 1:switch(n.touches.ONE){case B.QmN.ROTATE:if(!1===n.enableRotate)return;R(),i=r.TOUCH_ROTATE;break;case B.QmN.PAN:if(!1===n.enablePan)return;j(),i=r.TOUCH_PAN;break;default:i=r.NONE}break;case 2:switch(n.touches.TWO){case B.QmN.DOLLY_PAN:if(!1===n.enableZoom&&!1===n.enablePan)return;n.enableZoom&&D(),n.enablePan&&j(),i=r.TOUCH_DOLLY_PAN;break;case B.QmN.DOLLY_ROTATE:if(!1===n.enableZoom&&!1===n.enableRotate)return;n.enableZoom&&D(),n.enableRotate&&R(),i=r.TOUCH_DOLLY_ROTATE;break;default:i=r.NONE}break;default:i=r.NONE}i!==r.NONE&&n.dispatchEvent(ee)}(e):function(e){let t;switch(e.button){case 0:t=n.mouseButtons.LEFT;break;case 1:t=n.mouseButtons.MIDDLE;break;case 2:t=n.mouseButtons.RIGHT;break;default:t=-1}switch(t){case B.RsA.DOLLY:if(!1===n.enableZoom)return;!function(e){g.set(e.clientX,e.clientY)}(e),i=r.DOLLY;break;case B.RsA.ROTATE:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===n.enablePan)return;M(e),i=r.PAN}else{if(!1===n.enableRotate)return;S(e),i=r.ROTATE}break;case B.RsA.PAN:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===n.enableRotate)return;S(e),i=r.ROTATE}else{if(!1===n.enablePan)return;M(e),i=r.PAN}break;default:i=r.NONE}i!==r.NONE&&n.dispatchEvent(ee)}(e))}function F(e){!1!==n.enabled&&("touch"===e.pointerType?function(e){switch(W(e),i){case r.TOUCH_ROTATE:if(!1===n.enableRotate)return;N(e),n.update();break;case r.TOUCH_PAN:if(!1===n.enablePan)return;L(e),n.update();break;case r.TOUCH_DOLLY_PAN:if(!1===n.enableZoom&&!1===n.enablePan)return;!function(e){n.enableZoom&&I(e),n.enablePan&&L(e)}(e),n.update();break;case r.TOUCH_DOLLY_ROTATE:if(!1===n.enableZoom&&!1===n.enableRotate)return;!function(e){n.enableZoom&&I(e),n.enableRotate&&N(e)}(e),n.update();break;default:i=r.NONE}}(e):function(e){if(!1===n.enabled)return;switch(i){case r.ROTATE:if(!1===n.enableRotate)return;!function(e){f.set(e.clientX,e.clientY),h.subVectors(f,d).multiplyScalar(n.rotateSpeed);const t=n.domElement;k(2*Math.PI*h.x/t.clientHeight),_(2*Math.PI*h.y/t.clientHeight),d.copy(f),n.update()}(e);break;case r.DOLLY:if(!1===n.enableZoom)return;!function(e){y.set(e.clientX,e.clientY),b.subVectors(y,g),b.y>0?A(E()):b.y<0&&P(E()),g.copy(y),n.update()}(e);break;case r.PAN:if(!1===n.enablePan)return;!function(e){v.set(e.clientX,e.clientY),m.subVectors(v,p).multiplyScalar(n.panSpeed),C(m.x,m.y),p.copy(v),n.update()}(e)}}(e))}function H(e){!1!==n.enabled&&(e.pointerType,n.dispatchEvent(te),i=r.NONE,K(e),0===w.length&&(n.domElement.ownerDocument.removeEventListener("pointermove",F),n.domElement.ownerDocument.removeEventListener("pointerup",H)))}function V(e){K(e)}function U(e){!1===n.enabled||!1===n.enableZoom||i!==r.NONE&&i!==r.ROTATE||(e.preventDefault(),n.dispatchEvent(ee),function(e){e.deltaY<0?P(E()):e.deltaY>0&&A(E()),n.update()}(e),n.dispatchEvent(te))}function G(e){!1!==n.enabled&&!1!==n.enablePan&&function(e){let t=!1;switch(e.code){case n.keys.UP:C(0,n.keyPanSpeed),t=!0;break;case n.keys.BOTTOM:C(0,-n.keyPanSpeed),t=!0;break;case n.keys.LEFT:C(n.keyPanSpeed,0),t=!0;break;case n.keys.RIGHT:C(-n.keyPanSpeed,0),t=!0}t&&(e.preventDefault(),n.update())}(e)}function q(e){!1!==n.enabled&&e.preventDefault()}function K(e){delete x[e.pointerId];for(let t=0;t<w.length;t++)if(w[t].pointerId==e.pointerId)return void w.splice(t,1)}function W(e){let t=x[e.pointerId];void 0===t&&(t=new B.FM8,x[e.pointerId]=t),t.set(e.pageX,e.pageY)}function Z(e){const t=e.pointerId===w[0].pointerId?w[1]:w[0];return x[t.pointerId]}n.domElement.addEventListener("contextmenu",q),n.domElement.addEventListener("pointerdown",z),n.domElement.addEventListener("pointercancel",V),n.domElement.addEventListener("wheel",U,{passive:!1}),this.update()}}const re={type:"change"};class ie extends B.pBf{constructor(e,t){super(),void 0===t&&(console.warn('THREE.FlyControls: The second parameter "domElement" is now mandatory.'),t=document),this.object=e,this.domElement=t,this.movementSpeed=1,this.rollSpeed=.005,this.dragToLook=!1,this.autoForward=!1;const n=this,r=1e-6,i=new B._fP,o=new B.Pa4;this.tmpQuaternion=new B._fP,this.mouseStatus=0,this.moveState={up:0,down:0,left:0,right:0,forward:0,back:0,pitchUp:0,pitchDown:0,yawLeft:0,yawRight:0,rollLeft:0,rollRight:0},this.moveVector=new B.Pa4(0,0,0),this.rotationVector=new B.Pa4(0,0,0),this.keydown=function(e){if(!e.altKey){switch(e.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=.1;break;case"KeyW":this.moveState.forward=1;break;case"KeyS":this.moveState.back=1;break;case"KeyA":this.moveState.left=1;break;case"KeyD":this.moveState.right=1;break;case"KeyR":this.moveState.up=1;break;case"KeyF":this.moveState.down=1;break;case"ArrowUp":this.moveState.pitchUp=1;break;case"ArrowDown":this.moveState.pitchDown=1;break;case"ArrowLeft":this.moveState.yawLeft=1;break;case"ArrowRight":this.moveState.yawRight=1;break;case"KeyQ":this.moveState.rollLeft=1;break;case"KeyE":this.moveState.rollRight=1}this.updateMovementVector(),this.updateRotationVector()}},this.keyup=function(e){switch(e.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=1;break;case"KeyW":this.moveState.forward=0;break;case"KeyS":this.moveState.back=0;break;case"KeyA":this.moveState.left=0;break;case"KeyD":this.moveState.right=0;break;case"KeyR":this.moveState.up=0;break;case"KeyF":this.moveState.down=0;break;case"ArrowUp":this.moveState.pitchUp=0;break;case"ArrowDown":this.moveState.pitchDown=0;break;case"ArrowLeft":this.moveState.yawLeft=0;break;case"ArrowRight":this.moveState.yawRight=0;break;case"KeyQ":this.moveState.rollLeft=0;break;case"KeyE":this.moveState.rollRight=0}this.updateMovementVector(),this.updateRotationVector()},this.mousedown=function(e){if(this.dragToLook)this.mouseStatus++;else{switch(e.button){case 0:this.moveState.forward=1;break;case 2:this.moveState.back=1}this.updateMovementVector()}},this.mousemove=function(e){if(!this.dragToLook||this.mouseStatus>0){const t=this.getContainerDimensions(),n=t.size[0]/2,r=t.size[1]/2;this.moveState.yawLeft=-(e.pageX-t.offset[0]-n)/n,this.moveState.pitchDown=(e.pageY-t.offset[1]-r)/r,this.updateRotationVector()}},this.mouseup=function(e){if(this.dragToLook)this.mouseStatus--,this.moveState.yawLeft=this.moveState.pitchDown=0;else{switch(e.button){case 0:this.moveState.forward=0;break;case 2:this.moveState.back=0}this.updateMovementVector()}this.updateRotationVector()},this.update=function(e){const t=e*n.movementSpeed,a=e*n.rollSpeed;n.object.translateX(n.moveVector.x*t),n.object.translateY(n.moveVector.y*t),n.object.translateZ(n.moveVector.z*t),n.tmpQuaternion.set(n.rotationVector.x*a,n.rotationVector.y*a,n.rotationVector.z*a,1).normalize(),n.object.quaternion.multiply(n.tmpQuaternion),(o.distanceToSquared(n.object.position)>r||8*(1-i.dot(n.object.quaternion))>r)&&(n.dispatchEvent(re),i.copy(n.object.quaternion),o.copy(n.object.position))},this.updateMovementVector=function(){const e=this.moveState.forward||this.autoForward&&!this.moveState.back?1:0;this.moveVector.x=-this.moveState.left+this.moveState.right,this.moveVector.y=-this.moveState.down+this.moveState.up,this.moveVector.z=-e+this.moveState.back},this.updateRotationVector=function(){this.rotationVector.x=-this.moveState.pitchDown+this.moveState.pitchUp,this.rotationVector.y=-this.moveState.yawRight+this.moveState.yawLeft,this.rotationVector.z=-this.moveState.rollRight+this.moveState.rollLeft},this.getContainerDimensions=function(){return this.domElement!=document?{size:[this.domElement.offsetWidth,this.domElement.offsetHeight],offset:[this.domElement.offsetLeft,this.domElement.offsetTop]}:{size:[window.innerWidth,window.innerHeight],offset:[0,0]}},this.dispose=function(){this.domElement.removeEventListener("contextmenu",oe),this.domElement.removeEventListener("mousedown",s),this.domElement.removeEventListener("mousemove",a),this.domElement.removeEventListener("mouseup",u),window.removeEventListener("keydown",c),window.removeEventListener("keyup",l)};const a=this.mousemove.bind(this),s=this.mousedown.bind(this),u=this.mouseup.bind(this),c=this.keydown.bind(this),l=this.keyup.bind(this);this.domElement.addEventListener("contextmenu",oe),this.domElement.addEventListener("mousemove",a),this.domElement.addEventListener("mousedown",s),this.domElement.addEventListener("mouseup",u),window.addEventListener("keydown",c),window.addEventListener("keyup",l),this.updateMovementVector(),this.updateRotationVector()}}function oe(e){e.preventDefault()}var ae={uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor = opacity * texel;\n\n\t\t}"};class se{constructor(){this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}}const ue=new B.iKG(-1,1,1,-1,0,1),ce=new B.u9r;ce.setAttribute("position",new B.a$l([-1,3,0,-1,-1,0,3,-1,0],3)),ce.setAttribute("uv",new B.a$l([0,2,0,0,2,0],2));class le{constructor(e){this._mesh=new B.Kj0(ce,e)}dispose(){this._mesh.geometry.dispose()}render(e){e.render(this._mesh,ue)}get material(){return this._mesh.material}set material(e){this._mesh.material=e}}class de extends se{constructor(e,t){super(),this.textureID=void 0!==t?t:"tDiffuse",e instanceof B.jyz?(this.uniforms=e.uniforms,this.material=e):e&&(this.uniforms=B.rDY.clone(e.uniforms),this.material=new B.jyz({defines:Object.assign({},e.defines),uniforms:this.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader})),this.fsQuad=new le(this.material)}render(e,t,n){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=n.texture),this.fsQuad.material=this.material,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this.fsQuad.render(e))}}class fe extends se{constructor(e,t){super(),this.scene=e,this.camera=t,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(e,t,n){const r=e.getContext(),i=e.state;let o,a;i.buffers.color.setMask(!1),i.buffers.depth.setMask(!1),i.buffers.color.setLocked(!0),i.buffers.depth.setLocked(!0),this.inverse?(o=0,a=1):(o=1,a=0),i.buffers.stencil.setTest(!0),i.buffers.stencil.setOp(r.REPLACE,r.REPLACE,r.REPLACE),i.buffers.stencil.setFunc(r.ALWAYS,o,4294967295),i.buffers.stencil.setClear(a),i.buffers.stencil.setLocked(!0),e.setRenderTarget(n),this.clear&&e.clear(),e.render(this.scene,this.camera),e.setRenderTarget(t),this.clear&&e.clear(),e.render(this.scene,this.camera),i.buffers.color.setLocked(!1),i.buffers.depth.setLocked(!1),i.buffers.stencil.setLocked(!1),i.buffers.stencil.setFunc(r.EQUAL,1,4294967295),i.buffers.stencil.setOp(r.KEEP,r.KEEP,r.KEEP),i.buffers.stencil.setLocked(!0)}}class he extends se{constructor(){super(),this.needsSwap=!1}render(e){e.state.buffers.stencil.setLocked(!1),e.state.buffers.stencil.setTest(!1)}}class pe{constructor(e,t){if(this.renderer=e,void 0===t){const n={minFilter:B.wem,magFilter:B.wem,format:B.wk1},r=e.getSize(new B.FM8);this._pixelRatio=e.getPixelRatio(),this._width=r.width,this._height=r.height,(t=new B.dd2(this._width*this._pixelRatio,this._height*this._pixelRatio,n)).texture.name="EffectComposer.rt1"}else this._pixelRatio=1,this._width=t.width,this._height=t.height;this.renderTarget1=t,this.renderTarget2=t.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],void 0===ae&&console.error("THREE.EffectComposer relies on CopyShader"),void 0===de&&console.error("THREE.EffectComposer relies on ShaderPass"),this.copyPass=new de(ae),this.clock=new B.SUY}swapBuffers(){const e=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=e}addPass(e){this.passes.push(e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(e,t){this.passes.splice(t,0,e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(e){const t=this.passes.indexOf(e);-1!==t&&this.passes.splice(t,1)}isLastEnabledPass(e){for(let t=e+1;t<this.passes.length;t++)if(this.passes[t].enabled)return!1;return!0}render(e){void 0===e&&(e=this.clock.getDelta());const t=this.renderer.getRenderTarget();let n=!1;for(let r=0,i=this.passes.length;r<i;r++){const t=this.passes[r];if(!1!==t.enabled){if(t.renderToScreen=this.renderToScreen&&this.isLastEnabledPass(r),t.render(this.renderer,this.writeBuffer,this.readBuffer,e,n),t.needsSwap){if(n){const t=this.renderer.getContext(),n=this.renderer.state.buffers.stencil;n.setFunc(t.NOTEQUAL,1,4294967295),this.copyPass.render(this.renderer,this.writeBuffer,this.readBuffer,e),n.setFunc(t.EQUAL,1,4294967295)}this.swapBuffers()}void 0!==fe&&(t instanceof fe?n=!0:t instanceof he&&(n=!1))}}this.renderer.setRenderTarget(t)}reset(e){if(void 0===e){const t=this.renderer.getSize(new B.FM8);this._pixelRatio=this.renderer.getPixelRatio(),this._width=t.width,this._height=t.height,(e=this.renderTarget1.clone()).setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.renderTarget1=e,this.renderTarget2=e.clone(),this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2}setSize(e,t){this._width=e,this._height=t;const n=this._width*this._pixelRatio,r=this._height*this._pixelRatio;this.renderTarget1.setSize(n,r),this.renderTarget2.setSize(n,r);for(let i=0;i<this.passes.length;i++)this.passes[i].setSize(n,r)}setPixelRatio(e){this._pixelRatio=e,this.setSize(this._width,this._height)}}new B.iKG(-1,1,1,-1,0,1);const ve=new B.u9r;ve.setAttribute("position",new B.a$l([-1,3,0,-1,-1,0,3,-1,0],3)),ve.setAttribute("uv",new B.a$l([0,2,0,0,2,0],2));class me extends se{constructor(e,t,n,r,i){super(),this.scene=e,this.camera=t,this.overrideMaterial=n,this.clearColor=r,this.clearAlpha=void 0!==i?i:0,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new B.Ilk}render(e,t,n){const r=e.autoClear;let i,o;e.autoClear=!1,void 0!==this.overrideMaterial&&(o=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),this.clearColor&&(e.getClearColor(this._oldClearColor),i=e.getClearAlpha(),e.setClearColor(this.clearColor,this.clearAlpha)),this.clearDepth&&e.clearDepth(),e.setRenderTarget(this.renderToScreen?null:n),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),e.render(this.scene,this.camera),this.clearColor&&e.setClearColor(this._oldClearColor,i),void 0!==this.overrideMaterial&&(this.scene.overrideMaterial=o),e.autoClear=r}}function ge(){return(ge=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function ye(e,t){return(ye=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function be(e){return(be=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function we(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function xe(e,t,n){return(xe=we()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&ye(i,n.prototype),i}).apply(null,arguments)}function Ee(e){var t="function"===typeof Map?new Map:void 0;return(Ee=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!==typeof e)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return xe(e,arguments,be(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),ye(r,e)})(e)}var ke=function(e){var t,n;function r(t){return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e.call(this,"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#"+t+" for more information.")||this)}return n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,ye(t,n),r}(Ee(Error));function _e(e){return Math.round(255*e)}function Te(e,t,n){return _e(e)+","+_e(t)+","+_e(n)}function Oe(e,t,n,r){if(void 0===r&&(r=Te),0===t)return r(n,n,n);var i=(e%360+360)%360/60,o=(1-Math.abs(2*n-1))*t,a=o*(1-Math.abs(i%2-1)),s=0,u=0,c=0;i>=0&&i<1?(s=o,u=a):i>=1&&i<2?(s=a,u=o):i>=2&&i<3?(u=o,c=a):i>=3&&i<4?(u=a,c=o):i>=4&&i<5?(s=a,c=o):i>=5&&i<6&&(s=o,c=a);var l=n-o/2;return r(s+l,u+l,c+l)}var Ce={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"639",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};var Ae=/^#[a-fA-F0-9]{6}$/,Pe=/^#[a-fA-F0-9]{8}$/,Se=/^#[a-fA-F0-9]{3}$/,Me=/^#[a-fA-F0-9]{4}$/,Re=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i,je=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([-+]?[0-9]*[.]?[0-9]+)\s*\)$/i,De=/^hsl\(\s*(\d{0,3}[.]?[0-9]+)\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*\)$/i,Ne=/^hsla\(\s*(\d{0,3}[.]?[0-9]+)\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*([-+]?[0-9]*[.]?[0-9]+)\s*\)$/i;function Le(e){if("string"!==typeof e)throw new ke(3);var t=function(e){if("string"!==typeof e)return e;var t=e.toLowerCase();return Ce[t]?"#"+Ce[t]:e}(e);if(t.match(Ae))return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16)};if(t.match(Pe)){var n=parseFloat((parseInt(""+t[7]+t[8],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16),alpha:n}}if(t.match(Se))return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16)};if(t.match(Me)){var r=parseFloat((parseInt(""+t[4]+t[4],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16),alpha:r}}var i=Re.exec(t);if(i)return{red:parseInt(""+i[1],10),green:parseInt(""+i[2],10),blue:parseInt(""+i[3],10)};var o=je.exec(t.substring(0,50));if(o)return{red:parseInt(""+o[1],10),green:parseInt(""+o[2],10),blue:parseInt(""+o[3],10),alpha:parseFloat(""+o[4])};var a=De.exec(t);if(a){var s="rgb("+Oe(parseInt(""+a[1],10),parseInt(""+a[2],10)/100,parseInt(""+a[3],10)/100)+")",u=Re.exec(s);if(!u)throw new ke(4,t,s);return{red:parseInt(""+u[1],10),green:parseInt(""+u[2],10),blue:parseInt(""+u[3],10)}}var c=Ne.exec(t.substring(0,50));if(c){var l="rgb("+Oe(parseInt(""+c[1],10),parseInt(""+c[2],10)/100,parseInt(""+c[3],10)/100)+")",d=Re.exec(l);if(!d)throw new ke(4,t,l);return{red:parseInt(""+d[1],10),green:parseInt(""+d[2],10),blue:parseInt(""+d[3],10),alpha:parseFloat(""+c[4])}}throw new ke(5)}var Ie=function(e){return 7===e.length&&e[1]===e[2]&&e[3]===e[4]&&e[5]===e[6]?"#"+e[1]+e[3]+e[5]:e};function ze(e){var t=e.toString(16);return 1===t.length?"0"+t:t}function Be(e,t,n){if("number"===typeof e&&"number"===typeof t&&"number"===typeof n)return Ie("#"+ze(e)+ze(t)+ze(n));if("object"===typeof e&&void 0===t&&void 0===n)return Ie("#"+ze(e.red)+ze(e.green)+ze(e.blue));throw new ke(6)}function Fe(e,t,n,r){if("string"===typeof e&&"number"===typeof t){var i=Le(e);return"rgba("+i.red+","+i.green+","+i.blue+","+t+")"}if("number"===typeof e&&"number"===typeof t&&"number"===typeof n&&"number"===typeof r)return r>=1?Be(e,t,n):"rgba("+e+","+t+","+n+","+r+")";if("object"===typeof e&&void 0===t&&void 0===n&&void 0===r)return e.alpha>=1?Be(e.red,e.green,e.blue):"rgba("+e.red+","+e.green+","+e.blue+","+e.alpha+")";throw new ke(7)}function He(e,t,n){return function(){var r=n.concat(Array.prototype.slice.call(arguments));return r.length>=t?e.apply(this,r):He(e,t,r)}}function Ve(e){return He(e,e.length,[])}function Ue(e,t,n){return Math.max(e,Math.min(t,n))}function Ge(e,t){if("transparent"===t)return t;var n=Le(t);return Fe(ge({},n,{alpha:Ue(0,1,(100*("number"===typeof n.alpha?n.alpha:1)+100*parseFloat(e))/100)}))}var qe=Ve(Ge);var Ke=r(4155),We={Linear:{None:function(e){return e}},Quadratic:{In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}},Cubic:{In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}},Quartic:{In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}},Quintic:{In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}},Sinusoidal:{In:function(e){return 1-Math.cos(e*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return.5*(1-Math.cos(Math.PI*e))}},Exponential:{In:function(e){return 0===e?0:Math.pow(1024,e-1)},Out:function(e){return 1===e?1:1-Math.pow(2,-10*e)},InOut:function(e){return 0===e?0:1===e?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(2-Math.pow(2,-10*(e-1)))}},Circular:{In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}},Elastic:{In:function(e){return 0===e?0:1===e?1:-Math.pow(2,10*(e-1))*Math.sin(5*(e-1.1)*Math.PI)},Out:function(e){return 0===e?0:1===e?1:Math.pow(2,-10*e)*Math.sin(5*(e-.1)*Math.PI)+1},InOut:function(e){return 0===e?0:1===e?1:(e*=2)<1?-.5*Math.pow(2,10*(e-1))*Math.sin(5*(e-1.1)*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin(5*(e-1.1)*Math.PI)+1}},Back:{In:function(e){var t=1.70158;return e*e*((t+1)*e-t)},Out:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},InOut:function(e){var t=2.5949095;return(e*=2)<1?e*e*((t+1)*e-t)*.5:.5*((e-=2)*e*((t+1)*e+t)+2)}},Bounce:{In:function(e){return 1-We.Bounce.Out(1-e)},Out:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},InOut:function(e){return e<.5?.5*We.Bounce.In(2*e):.5*We.Bounce.Out(2*e-1)+.5}}},Ze="undefined"===typeof self&&"undefined"!==typeof Ke&&Ke.hrtime?function(){var e=Ke.hrtime();return 1e3*e[0]+e[1]/1e6}:"undefined"!==typeof self&&void 0!==self.performance&&void 0!==self.performance.now?self.performance.now.bind(self.performance):void 0!==Date.now?Date.now:function(){return(new Date).getTime()},$e=function(){function e(){this._tweens={},this._tweensAddedDuringUpdate={}}return e.prototype.getAll=function(){var e=this;return Object.keys(this._tweens).map((function(t){return e._tweens[t]}))},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(e){this._tweens[e.getId()]=e,this._tweensAddedDuringUpdate[e.getId()]=e},e.prototype.remove=function(e){delete this._tweens[e.getId()],delete this._tweensAddedDuringUpdate[e.getId()]},e.prototype.update=function(e,t){void 0===e&&(e=Ze()),void 0===t&&(t=!1);var n=Object.keys(this._tweens);if(0===n.length)return!1;for(;n.length>0;){this._tweensAddedDuringUpdate={};for(var r=0;r<n.length;r++){var i=this._tweens[n[r]],o=!t;i&&!1===i.update(e,o)&&!t&&delete this._tweens[n[r]]}n=Object.keys(this._tweensAddedDuringUpdate)}return!0},e}(),Xe={Linear:function(e,t){var n=e.length-1,r=n*t,i=Math.floor(r),o=Xe.Utils.Linear;return t<0?o(e[0],e[1],r):t>1?o(e[n],e[n-1],n-r):o(e[i],e[i+1>n?n:i+1],r-i)},Bezier:function(e,t){for(var n=0,r=e.length-1,i=Math.pow,o=Xe.Utils.Bernstein,a=0;a<=r;a++)n+=i(1-t,r-a)*i(t,a)*e[a]*o(r,a);return n},CatmullRom:function(e,t){var n=e.length-1,r=n*t,i=Math.floor(r),o=Xe.Utils.CatmullRom;return e[0]===e[n]?(t<0&&(i=Math.floor(r=n*(1+t))),o(e[(i-1+n)%n],e[i],e[(i+1)%n],e[(i+2)%n],r-i)):t<0?e[0]-(o(e[0],e[0],e[1],e[1],-r)-e[0]):t>1?e[n]-(o(e[n],e[n],e[n-1],e[n-1],r-n)-e[n]):o(e[i?i-1:0],e[i],e[n<i+1?n:i+1],e[n<i+2?n:i+2],r-i)},Utils:{Linear:function(e,t,n){return(t-e)*n+e},Bernstein:function(e,t){var n=Xe.Utils.Factorial;return n(e)/n(t)/n(e-t)},Factorial:function(){var e=[1];return function(t){var n=1;if(e[t])return e[t];for(var r=t;r>1;r--)n*=r;return e[t]=n,n}}(),CatmullRom:function(e,t,n,r,i){var o=.5*(n-e),a=.5*(r-t),s=i*i;return(2*t-2*n+o+a)*(i*s)+(-3*t+3*n-2*o-a)*s+o*i+t}}},Ye=function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e}(),Qe=new $e,Je=function(){function e(e,t){void 0===t&&(t=Qe),this._object=e,this._group=t,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=We.Linear.None,this._interpolationFunction=Xe.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._id=Ye.nextId(),this._isChainStopped=!1,this._goToEnd=!1}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.to=function(e,t){return this._valuesEnd=Object.create(e),void 0!==t&&(this._duration=t),this},e.prototype.duration=function(e){return this._duration=e,this},e.prototype.start=function(e){if(this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed)for(var t in this._reversed=!1,this._valuesStartRepeat)this._swapEndStartRepeatValues(t),this._valuesStart[t]=this._valuesStartRepeat[t];return this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=void 0!==e?"string"===typeof e?Ze()+parseFloat(e):e:Ze(),this._startTime+=this._delayTime,this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat),this},e.prototype._setupProperties=function(e,t,n,r){for(var i in n){var o=e[i],a=Array.isArray(o),s=a?"array":typeof o,u=!a&&Array.isArray(n[i]);if("undefined"!==s&&"function"!==s){if(u){var c=n[i];if(0===c.length)continue;c=c.map(this._handleRelativeValue.bind(this,o)),n[i]=[o].concat(c)}if("object"!==s&&!a||!o||u)"undefined"===typeof t[i]&&(t[i]=o),a||(t[i]*=1),r[i]=u?n[i].slice().reverse():t[i]||0;else{for(var l in t[i]=a?[]:{},o)t[i][l]=o[l];r[i]=a?[]:{},this._setupProperties(o,t[i],n[i],r[i])}}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},e.prototype.pause=function(e){return void 0===e&&(e=Ze()),this._isPaused||!this._isPlaying||(this._isPaused=!0,this._pauseStart=e,this._group&&this._group.remove(this)),this},e.prototype.resume=function(e){return void 0===e&&(e=Ze()),this._isPaused&&this._isPlaying?(this._isPaused=!1,this._startTime+=e-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this):this},e.prototype.stopChainedTweens=function(){for(var e=0,t=this._chainedTweens.length;e<t;e++)this._chainedTweens[e].stop();return this},e.prototype.group=function(e){return this._group=e,this},e.prototype.delay=function(e){return this._delayTime=e,this},e.prototype.repeat=function(e){return this._initialRepeat=e,this._repeat=e,this},e.prototype.repeatDelay=function(e){return this._repeatDelayTime=e,this},e.prototype.yoyo=function(e){return this._yoyo=e,this},e.prototype.easing=function(e){return this._easingFunction=e,this},e.prototype.interpolation=function(e){return this._interpolationFunction=e,this},e.prototype.chain=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return this._chainedTweens=e,this},e.prototype.onStart=function(e){return this._onStartCallback=e,this},e.prototype.onUpdate=function(e){return this._onUpdateCallback=e,this},e.prototype.onRepeat=function(e){return this._onRepeatCallback=e,this},e.prototype.onComplete=function(e){return this._onCompleteCallback=e,this},e.prototype.onStop=function(e){return this._onStopCallback=e,this},e.prototype.update=function(e,t){if(void 0===e&&(e=Ze()),void 0===t&&(t=!0),this._isPaused)return!0;var n,r,i=this._startTime+this._duration;if(!this._goToEnd&&!this._isPlaying){if(e>i)return!1;t&&this.start(e)}if(this._goToEnd=!1,e<this._startTime)return!0;!1===this._onStartCallbackFired&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),r=(e-this._startTime)/this._duration,r=0===this._duration||r>1?1:r;var o=this._easingFunction(r);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,o),this._onUpdateCallback&&this._onUpdateCallback(this._object,r),1===r){if(this._repeat>0){for(n in isFinite(this._repeat)&&this._repeat--,this._valuesStartRepeat)this._yoyo||"string"!==typeof this._valuesEnd[n]||(this._valuesStartRepeat[n]=this._valuesStartRepeat[n]+parseFloat(this._valuesEnd[n])),this._yoyo&&this._swapEndStartRepeatValues(n),this._valuesStart[n]=this._valuesStartRepeat[n];return this._yoyo&&(this._reversed=!this._reversed),void 0!==this._repeatDelayTime?this._startTime=e+this._repeatDelayTime:this._startTime=e+this._delayTime,this._onRepeatCallback&&this._onRepeatCallback(this._object),!0}this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var a=0,s=this._chainedTweens.length;a<s;a++)this._chainedTweens[a].start(this._startTime+this._duration);return this._isPlaying=!1,!1}return!0},e.prototype._updateProperties=function(e,t,n,r){for(var i in n)if(void 0!==t[i]){var o=t[i]||0,a=n[i],s=Array.isArray(e[i]),u=Array.isArray(a);!s&&u?e[i]=this._interpolationFunction(a,r):"object"===typeof a&&a?this._updateProperties(e[i],o,a,r):"number"===typeof(a=this._handleRelativeValue(o,a))&&(e[i]=o+(a-o)*r)}},e.prototype._handleRelativeValue=function(e,t){return"string"!==typeof t?t:"+"===t.charAt(0)||"-"===t.charAt(0)?e+parseFloat(t):parseFloat(t)},e.prototype._swapEndStartRepeatValues=function(e){var t=this._valuesStartRepeat[e],n=this._valuesEnd[e];this._valuesStartRepeat[e]="string"===typeof n?this._valuesStartRepeat[e]+parseFloat(n):this._valuesEnd[e],this._valuesEnd[e]=t},e}(),et=Ye.nextId,tt=Qe,nt=tt.getAll.bind(tt),rt=tt.removeAll.bind(tt),it=tt.add.bind(tt),ot=tt.remove.bind(tt),at=tt.update.bind(tt),st={Easing:We,Group:$e,Interpolation:Xe,now:Ze,Sequence:Ye,nextId:et,Tween:Je,VERSION:"18.6.4",getAll:nt,removeAll:rt,add:it,remove:ot,update:at};function ut(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ct(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);a=!0);}catch(u){s=!0,i=u}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(e,t)||dt(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function lt(e){return function(e){if(Array.isArray(e))return ft(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||dt(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function dt(e,t){if(e){if("string"===typeof e)return ft(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ft(e,t):void 0}}function ft(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!==typeof document){var r=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===n&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}(".scene-nav-info {\n bottom: 5px;\n width: 100%;\n text-align: center;\n color: slategrey;\n opacity: 0.7;\n font-size: 10px;\n}\n\n.scene-tooltip {\n color: lavender;\n font-size: 15px;\n}\n\n.scene-nav-info, .scene-tooltip {\n position: absolute;\n font-family: sans-serif;\n pointer-events: none;\n}\n\n.scene-container canvas:focus {\n outline: none;\n}");var ht=window.THREE?window.THREE:{WebGLRenderer:B.CP7,Scene:B.xsS,PerspectiveCamera:B.cPb,Raycaster:B.iMs,TextureLoader:B.dpR,Vector2:B.FM8,Vector3:B.Pa4,Box3:B.ZzF,Color:B.Ilk,Mesh:B.Kj0,SphereGeometry:B.xo$,MeshBasicMaterial:B.vBJ,BackSide:B._Li,EventDispatcher:B.pBf,MOUSE:B.RsA,Quaternion:B._fP,Spherical:B.$V,Clock:B.SUY},pt=(0,b.Z)({props:{width:{default:window.innerWidth,onChange:function(e,t,n){isNaN(e)&&(t.width=n)}},height:{default:window.innerHeight,onChange:function(e,t,n){isNaN(e)&&(t.height=n)}},backgroundColor:{default:"#000011"},backgroundImageUrl:{},onBackgroundImageLoaded:{},showNavInfo:{default:!0},skyRadius:{default:5e4},objects:{default:[]},enablePointerInteraction:{default:!0,onChange:function(e,t){t.hoverObj=null,t.toolTipElem&&(t.toolTipElem.innerHTML="")},triggerUpdate:!1},lineHoverPrecision:{default:1,triggerUpdate:!1},hoverOrderComparator:{default:function(){return-1},triggerUpdate:!1},hoverFilter:{default:function(){return!0},triggerUpdate:!1},tooltipContent:{triggerUpdate:!1},hoverDuringDrag:{default:!1,triggerUpdate:!1},clickAfterDrag:{default:!1,triggerUpdate:!1},onHover:{default:function(){},triggerUpdate:!1},onClick:{default:function(){},triggerUpdate:!1},onRightClick:{triggerUpdate:!1}},methods:{tick:function(e){if(e.initialised){if(e.controls.update&&e.controls.update(e.clock.getDelta()),e.postProcessingComposer?e.postProcessingComposer.render():e.renderer.render(e.scene,e.camera),e.extraRenderers.forEach((function(t){return t.render(e.scene,e.camera)})),e.enablePointerInteraction){var t=null;if(e.hoverDuringDrag||!e.isPointerDragging){var n=this.intersectingObjects(e.pointerPos.x,e.pointerPos.y).filter((function(t){return e.hoverFilter(t.object)})).sort((function(t,n){return e.hoverOrderComparator(t.object,n.object)})),r=n.length?n[0]:null;t=r?r.object:null,e.intersectionPoint=r?r.point:null}t!==e.hoverObj&&(e.onHover(t,e.hoverObj),e.toolTipElem.innerHTML=t&&(0,w.default)(e.tooltipContent)(t)||"",e.hoverObj=t)}st.update()}return this},getPointerPos:function(e){var t=e.pointerPos;return{x:t.x,y:t.y}},cameraPosition:function(e,t,n,r){var i=e.camera;if(t&&e.initialised){var o=t,a=n||{x:0,y:0,z:0};if(r){var s=Object.assign({},i.position),u=d();new st.Tween(s).to(o,r).easing(st.Easing.Quadratic.Out).onUpdate(c).start(),new st.Tween(u).to(a,r/3).easing(st.Easing.Quadratic.Out).onUpdate(l).start()}else c(o),l(a);return this}return Object.assign({},i.position,{lookAt:d()});function c(e){var t=e.x,n=e.y,r=e.z;void 0!==t&&(i.position.x=t),void 0!==n&&(i.position.y=n),void 0!==r&&(i.position.z=r)}function l(t){e.controls.target=new ht.Vector3(t.x,t.y,t.z)}function d(){return Object.assign(new ht.Vector3(0,0,-1e3).applyQuaternion(i.quaternion).add(i.position))}},zoomToFit:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,r=arguments.length,i=new Array(r>3?r-3:0),o=3;o<r;o++)i[o-3]=arguments[o];return this.fitToBbox(this.getBbox.apply(this,i),t,n)},fitToBbox:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10,i=e.camera;if(t){var o=new ht.Vector3(0,0,0),a=2*Math.max.apply(Math,lt(Object.entries(t).map((function(e){var t=ct(e,2),n=t[0],r=t[1];return Math.max.apply(Math,lt(r.map((function(e){return Math.abs(o[n]-e)}))))})))),s=(1-2*r/e.height)*i.fov,u=a/Math.atan(s*Math.PI/180),c=u/i.aspect,l=Math.max(u,c);if(l>0){var d=o.clone().sub(i.position).normalize().multiplyScalar(-l);this.cameraPosition(d,o,n)}}return this},getBbox:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return!0},n=new ht.Box3(new ht.Vector3(0,0,0),new ht.Vector3(0,0,0)),r=e.objects.filter(t);return r.length?(r.forEach((function(e){return n.expandByObject(e)})),Object.assign.apply(Object,lt(["x","y","z"].map((function(e){return ut({},e,[n.min[e],n.max[e]])}))))):null},getScreenCoords:function(e,t,n,r){var i=new ht.Vector3(t,n,r);return i.project(this.camera()),{x:(i.x+1)*e.width/2,y:-(i.y-1)*e.height/2}},getSceneCoords:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=new ht.Vector2(t/e.width*2-1,-n/e.height*2+1),o=new ht.Raycaster;return o.setFromCamera(i,e.camera),Object.assign({},o.ray.at(r,new ht.Vector3))},intersectingObjects:function(e,t,n){var r=new ht.Vector2(t/e.width*2-1,-n/e.height*2+1),i=new ht.Raycaster;return i.params.Line.threshold=e.lineHoverPrecision,i.setFromCamera(r,e.camera),i.intersectObjects(e.objects,!0)},renderer:function(e){return e.renderer},scene:function(e){return e.scene},camera:function(e){return e.camera},postProcessingComposer:function(e){return e.postProcessingComposer},controls:function(e){return e.controls},tbControls:function(e){return e.controls}},stateInit:function(){return{scene:new ht.Scene,camera:new ht.PerspectiveCamera,clock:new ht.Clock}},init:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.controlType,i=void 0===r?"trackball":r,o=n.rendererConfig,a=void 0===o?{}:o,s=n.extraRenderers,u=void 0===s?[]:s,c=n.waitForLoadComplete,l=void 0===c||c;e.innerHTML="",e.appendChild(t.container=document.createElement("div")),t.container.className="scene-container",t.container.style.position="relative",t.container.appendChild(t.navInfo=document.createElement("div")),t.navInfo.className="scene-nav-info",t.navInfo.textContent={orbit:"Left-click: rotate, Mouse-wheel/middle-click: zoom, Right-click: pan",trackball:"Left-click: rotate, Mouse-wheel/middle-click: zoom, Right-click: pan",fly:"WASD: move, R|F: up | down, Q|E: roll, up|down: pitch, left|right: yaw"}[i]||"",t.navInfo.style.display=t.showNavInfo?null:"none",t.toolTipElem=document.createElement("div"),t.toolTipElem.classList.add("scene-tooltip"),t.container.appendChild(t.toolTipElem),t.pointerPos=new ht.Vector2,t.pointerPos.x=-2,t.pointerPos.y=-2,["pointermove","pointerdown"].forEach((function(e){return t.container.addEventListener(e,(function(n){if("pointerdown"===e&&(t.isPointerPressed=!0),!t.isPointerDragging&&"pointermove"===n.type&&(n.pressure>0||t.isPointerPressed)&&("touch"!==n.pointerType||void 0===n.movementX||[n.movementX,n.movementY].some((function(e){return Math.abs(e)>1})))&&(t.isPointerDragging=!0),t.enablePointerInteraction){var r=function(e){var t=e.getBoundingClientRect(),n=window.pageXOffset||document.documentElement.scrollLeft,r=window.pageYOffset||document.documentElement.scrollTop;return{top:t.top+r,left:t.left+n}}(t.container);t.pointerPos.x=n.pageX-r.left,t.pointerPos.y=n.pageY-r.top,t.toolTipElem.style.top="".concat(t.pointerPos.y,"px"),t.toolTipElem.style.left="".concat(t.pointerPos.x,"px"),t.toolTipElem.style.transform="translate(-".concat(t.pointerPos.x/t.width*100,"%, 21px)")}}),{passive:!0})})),t.container.addEventListener("pointerup",(function(e){t.isPointerPressed=!1,t.isPointerDragging&&(t.isPointerDragging=!1,!t.clickAfterDrag)||requestAnimationFrame((function(){0===e.button&&t.onClick(t.hoverObj||null,e,t.intersectionPoint),2===e.button&&t.onRightClick&&t.onRightClick(t.hoverObj||null,e,t.intersectionPoint)}))}),{passive:!0,capture:!0}),t.container.addEventListener("contextmenu",(function(e){t.onRightClick&&e.preventDefault()})),t.renderer=new ht.WebGLRenderer(Object.assign({antialias:!0,alpha:!0},a)),t.renderer.setPixelRatio(Math.min(2,window.devicePixelRatio)),t.container.appendChild(t.renderer.domElement),t.extraRenderers=u,t.extraRenderers.forEach((function(e){e.domElement.style.position="absolute",e.domElement.style.top="0px",e.domElement.style.pointerEvents="none",t.container.appendChild(e.domElement)})),t.postProcessingComposer=new pe(t.renderer),t.postProcessingComposer.addPass(new me(t.scene,t.camera)),t.controls=new{trackball:Q,orbit:ne,fly:ie}[i](t.camera,t.renderer.domElement),"fly"===i&&(t.controls.movementSpeed=300,t.controls.rollSpeed=Math.PI/6,t.controls.dragToLook=!0),"trackball"!==i&&"orbit"!==i||(t.controls.minDistance=.1,t.controls.maxDistance=t.skyRadius,t.controls.addEventListener("start",(function(){t.controlsEngaged=!0})),t.controls.addEventListener("change",(function(){t.controlsEngaged&&(t.controlsDragging=!0)})),t.controls.addEventListener("end",(function(){t.controlsEngaged=!1,t.controlsDragging=!1}))),[t.renderer,t.postProcessingComposer].concat(lt(t.extraRenderers)).forEach((function(e){return e.setSize(t.width,t.height)})),t.camera.aspect=t.width/t.height,t.camera.updateProjectionMatrix(),t.camera.position.z=1e3,t.scene.add(t.skysphere=new ht.Mesh),t.skysphere.visible=!1,t.loadComplete=t.scene.visible=!l,window.scene=t.scene},update:function(e,t){if(e.width&&e.height&&(t.hasOwnProperty("width")||t.hasOwnProperty("height"))&&(e.container.style.width=e.width,e.container.style.height=e.height,[e.renderer,e.postProcessingComposer].concat(lt(e.extraRenderers)).forEach((function(t){return t.setSize(e.width,e.height)})),e.camera.aspect=e.width/e.height,e.camera.updateProjectionMatrix()),t.hasOwnProperty("skyRadius")&&e.skyRadius&&(e.controls.hasOwnProperty("maxDistance")&&t.skyRadius&&(e.controls.maxDistance=e.skyRadius),e.camera.far=2.5*e.skyRadius,e.camera.updateProjectionMatrix(),e.skysphere.geometry=new ht.SphereGeometry(e.skyRadius)),t.hasOwnProperty("backgroundColor")){var n=Le(e.backgroundColor).alpha;void 0===n&&(n=1),e.renderer.setClearColor(new ht.Color(qe(1,e.backgroundColor)),n)}function r(){e.loadComplete=e.scene.visible=!0}t.hasOwnProperty("backgroundImageUrl")&&(e.backgroundImageUrl?(new ht.TextureLoader).load(e.backgroundImageUrl,(function(t){e.skysphere.material=new ht.MeshBasicMaterial({map:t,side:ht.BackSide}),e.skysphere.visible=!0,e.onBackgroundImageLoaded&&setTimeout(e.onBackgroundImageLoaded),!e.loadComplete&&r()})):(e.skysphere.visible=!1,e.skysphere.material.map=null,!e.loadComplete&&r())),t.hasOwnProperty("showNavInfo")&&(e.navInfo.style.display=e.showNavInfo?null:"none"),t.hasOwnProperty("objects")&&((t.objects||[]).forEach((function(t){return e.scene.remove(t)})),e.objects.forEach((function(t){return e.scene.add(t)})))}});function vt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function mt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?vt(Object(n),!0).forEach((function(t){gt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):vt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function gt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yt(e){return function(e){if(Array.isArray(e))return bt(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return bt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return bt(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function bt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function wt(e,t){var n=new t;return{linkProp:function(t){return{default:n[t](),onChange:function(n,r){r[e][t](n)},triggerUpdate:!1}},linkMethod:function(t){return function(n){for(var r=n[e],i=arguments.length,o=new Array(i>1?i-1:0),a=1;a<i;a++)o[a-1]=arguments[a];var s=r[t].apply(r,o);return s===r?this:s}}}}!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!==typeof document){var r=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===n&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}(".graph-info-msg {\n top: 50%;\n width: 100%;\n text-align: center;\n color: lavender;\n opacity: 0.7;\n font-size: 22px;\n position: absolute;\n font-family: Sans-serif;\n}\n\n.scene-container .clickable {\n cursor: pointer;\n}\n\n.scene-container .grabbable {\n cursor: move;\n cursor: grab;\n cursor: -moz-grab;\n cursor: -webkit-grab;\n}\n\n.scene-container .grabbable:active {\n cursor: grabbing;\n cursor: -moz-grabbing;\n cursor: -webkit-grabbing;\n}");var xt=window.THREE?window.THREE:{AmbientLight:B.Mig,DirectionalLight:B.Ox3,Vector3:B.Pa4},Et=wt("forceGraph",Z.default),kt=Object.assign.apply(Object,yt(["jsonUrl","graphData","numDimensions","dagMode","dagLevelDistance","dagNodeFilter","onDagError","nodeRelSize","nodeId","nodeVal","nodeResolution","nodeColor","nodeAutoColorBy","nodeOpacity","nodeVisibility","nodeThreeObject","nodeThreeObjectExtend","linkSource","linkTarget","linkVisibility","linkColor","linkAutoColorBy","linkOpacity","linkWidth","linkResolution","linkCurvature","linkCurveRotation","linkMaterial","linkThreeObject","linkThreeObjectExtend","linkPositionUpdate","linkDirectionalArrowLength","linkDirectionalArrowColor","linkDirectionalArrowRelPos","linkDirectionalArrowResolution","linkDirectionalParticles","linkDirectionalParticleSpeed","linkDirectionalParticleWidth","linkDirectionalParticleColor","linkDirectionalParticleResolution","forceEngine","d3AlphaDecay","d3VelocityDecay","d3AlphaMin","ngraphPhysics","warmupTicks","cooldownTicks","cooldownTime","onEngineTick","onEngineStop"].map((function(e){return gt({},e,Et.linkProp(e))})))),_t=Object.assign.apply(Object,yt(["refresh","getGraphBbox","d3Force","d3ReheatSimulation","emitParticle"].map((function(e){return gt({},e,Et.linkMethod(e))})))),Tt=wt("renderObjs",pt),Ot=Object.assign.apply(Object,yt(["width","height","backgroundColor","showNavInfo","enablePointerInteraction"].map((function(e){return gt({},e,Tt.linkProp(e))})))),Ct=Object.assign.apply(Object,yt(["cameraPosition","postProcessingComposer"].map((function(e){return gt({},e,Tt.linkMethod(e))}))).concat([{graph2ScreenCoords:Tt.linkMethod("getScreenCoords"),screen2GraphCoords:Tt.linkMethod("getSceneCoords")}]));function At(e){for(var t=e;t&&!t.hasOwnProperty("__graphObjType");)t=t.parent;return t}var Pt=(0,b.Z)({props:mt(mt({nodeLabel:{default:"name",triggerUpdate:!1},linkLabel:{default:"name",triggerUpdate:!1},linkHoverPrecision:{default:1,onChange:function(e,t){return t.renderObjs.lineHoverPrecision(e)},triggerUpdate:!1},enableNavigationControls:{default:!0,onChange:function(e,t){var n=t.renderObjs.controls();n&&(n.enabled=e)},triggerUpdate:!1},enableNodeDrag:{default:!0,triggerUpdate:!1},onNodeDrag:{default:function(){},triggerUpdate:!1},onNodeDragEnd:{default:function(){},triggerUpdate:!1},onNodeClick:{triggerUpdate:!1},onNodeRightClick:{triggerUpdate:!1},onNodeHover:{triggerUpdate:!1},onLinkClick:{triggerUpdate:!1},onLinkRightClick:{triggerUpdate:!1},onLinkHover:{triggerUpdate:!1},onBackgroundClick:{triggerUpdate:!1},onBackgroundRightClick:{triggerUpdate:!1}},kt),Ot),methods:mt(mt({zoomToFit:function(e,t,n){for(var r,i=arguments.length,o=new Array(i>3?i-3:0),a=3;a<i;a++)o[a-3]=arguments[a];return e.renderObjs.fitToBbox((r=e.forceGraph).getGraphBbox.apply(r,o),t,n),this},pauseAnimation:function(e){return null!==e.animationFrameRequestId&&(cancelAnimationFrame(e.animationFrameRequestId),e.animationFrameRequestId=null),this},resumeAnimation:function(e){return null===e.animationFrameRequestId&&this._animationCycle(),this},_animationCycle:function(e){e.enablePointerInteraction&&(this.renderer().domElement.style.cursor=null),e.forceGraph.tickFrame(),e.renderObjs.tick(),e.animationFrameRequestId=requestAnimationFrame(this._animationCycle)},scene:function(e){return e.renderObjs.scene()},camera:function(e){return e.renderObjs.camera()},renderer:function(e){return e.renderObjs.renderer()},controls:function(e){return e.renderObjs.controls()},tbControls:function(e){return e.renderObjs.tbControls()},_destructor:function(){this.pauseAnimation(),this.graphData({nodes:[],links:[]})}},_t),Ct),stateInit:function(e){var t=e.controlType,n=e.rendererConfig,r=e.extraRenderers;return{forceGraph:new Z.default,renderObjs:pt({controlType:t,rendererConfig:n,extraRenderers:r})}},init:function(e,t){e.innerHTML="",e.appendChild(t.container=document.createElement("div")),t.container.style.position="relative";var n=document.createElement("div");t.container.appendChild(n),t.renderObjs(n);var r,i=t.renderObjs.camera(),o=t.renderObjs.renderer(),a=t.renderObjs.controls();a.enabled=!!t.enableNavigationControls,t.lastSetCameraZ=i.position.z,t.container.appendChild(r=document.createElement("div")),r.className="graph-info-msg",r.textContent="",t.forceGraph.onLoading((function(){r.textContent="Loading..."})).onFinishLoading((function(){r.textContent=""})).onUpdate((function(){t.graphData=t.forceGraph.graphData(),0===i.position.x&&0===i.position.y&&i.position.z===t.lastSetCameraZ&&t.graphData.nodes.length&&(i.lookAt(t.forceGraph.position),t.lastSetCameraZ=i.position.z=170*Math.cbrt(t.graphData.nodes.length))})).onFinishUpdate((function(){if(t._dragControls){var e=t.graphData.nodes.find((function(e){return e.__initialFixedPos&&!e.__disposeControlsAfterDrag}));e?e.__disposeControlsAfterDrag=!0:t._dragControls.dispose(),t._dragControls=void 0}if(t.enableNodeDrag&&t.enablePointerInteraction&&"d3"===t.forceEngine){var n=t._dragControls=new W(t.graphData.nodes.map((function(e){return e.__threeObj})).filter((function(e){return e})),i,o.domElement);n.addEventListener("dragstart",(function(e){a.enabled=!1,e.object.__initialPos=e.object.position.clone(),e.object.__prevPos=e.object.position.clone();var t=At(e.object).__data;!t.__initialFixedPos&&(t.__initialFixedPos={fx:t.fx,fy:t.fy,fz:t.fz}),!t.__initialPos&&(t.__initialPos={x:t.x,y:t.y,z:t.z}),["x","y","z"].forEach((function(e){return t["f".concat(e)]=t[e]})),o.domElement.classList.add("grabbable")})),n.addEventListener("drag",(function(e){var n=At(e.object);if(!e.object.hasOwnProperty("__graphObjType")){var r=e.object.__initialPos,i=e.object.__prevPos,o=e.object.position;n.position.add(o.clone().sub(i)),i.copy(o),o.copy(r)}var a=n.__data,s=n.position,u={x:s.x-a.x,y:s.y-a.y,z:s.z-a.z};["x","y","z"].forEach((function(e){return a["f".concat(e)]=a[e]=s[e]})),t.forceGraph.d3AlphaTarget(.3).resetCountdown(),a.__dragged=!0,t.onNodeDrag(a,u)})),n.addEventListener("dragend",(function(e){delete e.object.__initialPos,delete e.object.__prevPos;var r=At(e.object).__data;r.__disposeControlsAfterDrag&&(n.dispose(),delete r.__disposeControlsAfterDrag);var i=r.__initialFixedPos,s=r.__initialPos,u={x:s.x-r.x,y:s.y-r.y,z:s.z-r.z};i&&(["x","y","z"].forEach((function(e){var t="f".concat(e);void 0===i[t]&&delete r[t]})),delete r.__initialFixedPos,delete r.__initialPos,r.__dragged&&(delete r.__dragged,t.onNodeDragEnd(r,u))),t.forceGraph.d3AlphaTarget(0).resetCountdown(),t.enableNavigationControls&&(a.enabled=!0,a.domElement&&a.domElement.ownerDocument&&a.domElement.ownerDocument.dispatchEvent(new PointerEvent("pointerup",{pointerType:"touch"}))),o.domElement.classList.remove("grabbable")}))}})),t.renderObjs.objects([new xt.AmbientLight(12303291),new xt.DirectionalLight(16777215,.6),t.forceGraph]).hoverOrderComparator((function(e,t){var n=At(e);if(!n)return 1;var r=At(t);if(!r)return-1;var i=function(e){return"node"===e.__graphObjType};return i(r)-i(n)})).tooltipContent((function(e){var n=At(e);return n&&(0,w.default)(t["".concat(n.__graphObjType,"Label")])(n.__data)||""})).hoverDuringDrag(!1).onHover((function(e){var n=At(e);if(n!==t.hoverObj){var r=t.hoverObj?t.hoverObj.__graphObjType:null,i=t.hoverObj?t.hoverObj.__data:null,a=n?n.__graphObjType:null,s=n?n.__data:null;if(r&&r!==a){var u=t["on".concat("node"===r?"Node":"Link","Hover")];u&&u(null,i)}if(a){var c=t["on".concat("node"===a?"Node":"Link","Hover")];c&&c(s,r===a?i:null)}o.domElement.classList[n&&t["on".concat("node"===a?"Node":"Link","Click")]||!n&&t.onBackgroundClick?"add":"remove"]("clickable"),t.hoverObj=n}})).clickAfterDrag(!1).onClick((function(e,n){var r=At(e);if(r){var i=t["on".concat("node"===r.__graphObjType?"Node":"Link","Click")];i&&i(r.__data,n)}else t.onBackgroundClick&&t.onBackgroundClick(n)})).onRightClick((function(e,n){var r=At(e);if(r){var i=t["on".concat("node"===r.__graphObjType?"Node":"Link","RightClick")];i&&i(r.__data,n)}else t.onBackgroundRightClick&&t.onBackgroundRightClick(n)})),this._animationCycle()}}),St=r(6156);function Mt(){}function Rt(e){return null==e?Mt:function(){return this.querySelector(e)}}function jt(e){return null==e?[]:Array.isArray(e)?e:Array.from(e)}function Dt(){return[]}function Nt(e){return null==e?Dt:function(){return this.querySelectorAll(e)}}function Lt(e){return function(){return this.matches(e)}}function It(e){return function(t){return t.matches(e)}}var zt=Array.prototype.find;function Bt(){return this.firstElementChild}var Ft=Array.prototype.filter;function Ht(){return Array.from(this.children)}function Vt(e){return new Array(e.length)}function Ut(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function Gt(e){return function(){return e}}function qt(e,t,n,r,i,o){for(var a,s=0,u=t.length,c=o.length;s<c;++s)(a=t[s])?(a.__data__=o[s],r[s]=a):n[s]=new Ut(e,o[s]);for(;s<u;++s)(a=t[s])&&(i[s]=a)}function Kt(e,t,n,r,i,o,a){var s,u,c,l=new Map,d=t.length,f=o.length,h=new Array(d);for(s=0;s<d;++s)(u=t[s])&&(h[s]=c=a.call(u,u.__data__,s,t)+"",l.has(c)?i[s]=u:l.set(c,u));for(s=0;s<f;++s)c=a.call(e,o[s],s,o)+"",(u=l.get(c))?(r[s]=u,u.__data__=o[s],l.delete(c)):n[s]=new Ut(e,o[s]);for(s=0;s<d;++s)(u=t[s])&&l.get(h[s])===u&&(i[s]=u)}function Wt(e){return e.__data__}function Zt(e){return"object"===typeof e&&"length"in e?e:Array.from(e)}function $t(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function Xt(e,t){var n;if("undefined"===typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"===typeof e)return Yt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Yt(e,t)}(e))||t&&e&&"number"===typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function Yt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}Ut.prototype={constructor:Ut,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};var Qt="http://www.w3.org/1999/xhtml",Jt={svg:"http://www.w3.org/2000/svg",xhtml:Qt,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function en(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),Jt.hasOwnProperty(t)?{space:Jt[t],local:e}:e}function tn(e){return function(){this.removeAttribute(e)}}function nn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function rn(e,t){return function(){this.setAttribute(e,t)}}function on(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function an(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function sn(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function un(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function cn(e){return function(){this.style.removeProperty(e)}}function ln(e,t,n){return function(){this.style.setProperty(e,t,n)}}function dn(e,t,n){return function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function fn(e,t){return e.style.getPropertyValue(t)||un(e).getComputedStyle(e,null).getPropertyValue(t)}function hn(e){return function(){delete this[e]}}function pn(e,t){return function(){this[e]=t}}function vn(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function mn(e){return e.trim().split(/^|\s+/)}function gn(e){return e.classList||new yn(e)}function yn(e){this._node=e,this._names=mn(e.getAttribute("class")||"")}function bn(e,t){for(var n=gn(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function wn(e,t){for(var n=gn(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function xn(e){return function(){bn(this,e)}}function En(e){return function(){wn(this,e)}}function kn(e,t){return function(){(t.apply(this,arguments)?bn:wn)(this,e)}}function _n(){this.textContent=""}function Tn(e){return function(){this.textContent=e}}function On(e){return function(){var t=e.apply(this,arguments);this.textContent=null==t?"":t}}function Cn(){this.innerHTML=""}function An(e){return function(){this.innerHTML=e}}function Pn(e){return function(){var t=e.apply(this,arguments);this.innerHTML=null==t?"":t}}function Sn(){this.nextSibling&&this.parentNode.appendChild(this)}function Mn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Rn(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Qt&&t.documentElement.namespaceURI===Qt?t.createElement(e):t.createElementNS(n,e)}}function jn(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Dn(e){var t=en(e);return(t.local?jn:Rn)(t)}function Nn(){return null}function Ln(){var e=this.parentNode;e&&e.removeChild(this)}function In(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function zn(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Bn(e){return e.trim().split(/^|\s+/).map((function(e){var t="",n=e.indexOf(".");return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}}))}function Fn(e){return function(){var t=this.__on;if(t){for(var n,r=0,i=-1,o=t.length;r<o;++r)n=t[r],e.type&&n.type!==e.type||n.name!==e.name?t[++i]=n:this.removeEventListener(n.type,n.listener,n.options);++i?t.length=i:delete this.__on}}}function Hn(e,t,n){return function(){var r,i=this.__on,o=function(e){return function(t){e.call(this,t,this.__data__)}}(t);if(i)for(var a=0,s=i.length;a<s;++a)if((r=i[a]).type===e.type&&r.name===e.name)return this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=o,r.options=n),void(r.value=t);this.addEventListener(e.type,o,n),r={type:e.type,name:e.name,value:t,listener:o,options:n},i?i.push(r):this.__on=[r]}}function Vn(e,t,n){var r=un(e),i=r.CustomEvent;"function"===typeof i?i=new i(t,n):(i=r.document.createEvent("Event"),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function Un(e,t){return function(){return Vn(this,e,t)}}function Gn(e,t){return function(){return Vn(this,e,t.apply(this,arguments))}}yn.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var qn=r(7757),Kn=r.n(qn),Wn=Kn().mark(Zn);function Zn(){var e,t,n,r,i,o,a;return Kn().wrap((function(s){for(;;)switch(s.prev=s.next){case 0:e=this._groups,t=0,n=e.length;case 1:if(!(t<n)){s.next=13;break}r=e[t],i=0,o=r.length;case 3:if(!(i<o)){s.next=10;break}if(!(a=r[i])){s.next=7;break}return s.next=7,a;case 7:++i,s.next=3;break;case 10:++t,s.next=1;break;case 13:case"end":return s.stop()}}),Wn,this)}var $n=[null];function Xn(e,t){this._groups=e,this._parents=t}function Yn(){return new Xn([[document.documentElement]],$n)}Xn.prototype=Yn.prototype=(0,St.Z)({constructor:Xn,select:function(e){"function"!==typeof e&&(e=Rt(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i<n;++i)for(var o,a,s=t[i],u=s.length,c=r[i]=new Array(u),l=0;l<u;++l)(o=s[l])&&(a=e.call(o,o.__data__,l,s))&&("__data__"in o&&(a.__data__=o.__data__),c[l]=a);return new Xn(r,this._parents)},selectAll:function(e){e="function"===typeof e?function(e){return function(){return jt(e.apply(this,arguments))}}(e):Nt(e);for(var t=this._groups,n=t.length,r=[],i=[],o=0;o<n;++o)for(var a,s=t[o],u=s.length,c=0;c<u;++c)(a=s[c])&&(r.push(e.call(a,a.__data__,c,s)),i.push(a));return new Xn(r,i)},selectChild:function(e){return this.select(null==e?Bt:function(e){return function(){return zt.call(this.children,e)}}("function"===typeof e?e:It(e)))},selectChildren:function(e){return this.selectAll(null==e?Ht:function(e){return function(){return Ft.call(this.children,e)}}("function"===typeof e?e:It(e)))},filter:function(e){"function"!==typeof e&&(e=Lt(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i<n;++i)for(var o,a=t[i],s=a.length,u=r[i]=[],c=0;c<s;++c)(o=a[c])&&e.call(o,o.__data__,c,a)&&u.push(o);return new Xn(r,this._parents)},data:function(e,t){if(!arguments.length)return Array.from(this,Wt);var n=t?Kt:qt,r=this._parents,i=this._groups;"function"!==typeof e&&(e=Gt(e));for(var o=i.length,a=new Array(o),s=new Array(o),u=new Array(o),c=0;c<o;++c){var l=r[c],d=i[c],f=d.length,h=Zt(e.call(l,l&&l.__data__,c,r)),p=h.length,v=s[c]=new Array(p),m=a[c]=new Array(p),g=u[c]=new Array(f);n(l,d,v,m,g,h,t);for(var y,b,w=0,x=0;w<p;++w)if(y=v[w]){for(w>=x&&(x=w+1);!(b=m[x])&&++x<p;);y._next=b||null}}return(a=new Xn(a,r))._enter=s,a._exit=u,a},enter:function(){return new Xn(this._enter||this._groups.map(Vt),this._parents)},exit:function(){return new Xn(this._exit||this._groups.map(Vt),this._parents)},join:function(e,t,n){var r=this.enter(),i=this,o=this.exit();return"function"===typeof e?(r=e(r))&&(r=r.selection()):r=r.append(e+""),null!=t&&(i=t(i))&&(i=i.selection()),null==n?o.remove():n(o),r&&i?r.merge(i).order():i},merge:function(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,i=n.length,o=r.length,a=Math.min(i,o),s=new Array(i),u=0;u<a;++u)for(var c,l=n[u],d=r[u],f=l.length,h=s[u]=new Array(f),p=0;p<f;++p)(c=l[p]||d[p])&&(h[p]=c);for(;u<i;++u)s[u]=n[u];return new Xn(s,this._parents)},selection:function(){return this},order:function(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r,i=e[t],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=$t);for(var n=this._groups,r=n.length,i=new Array(r),o=0;o<r;++o){for(var a,s=n[o],u=s.length,c=i[o]=new Array(u),l=0;l<u;++l)(a=s[l])&&(c[l]=a);c.sort(t)}return new Xn(i,this._parents).order()},call:function(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null},size:function(){var e,t=0,n=Xt(this);try{for(n.s();!(e=n.n()).done;){e.value;++t}}catch(r){n.e(r)}finally{n.f()}return t},empty:function(){return!this.node()},each:function(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i,o=t[n],a=0,s=o.length;a<s;++a)(i=o[a])&&e.call(i,i.__data__,a,o);return this},attr:function(e,t){var n=en(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((null==t?n.local?nn:tn:"function"===typeof t?n.local?sn:an:n.local?on:rn)(n,t))},style:function(e,t,n){return arguments.length>1?this.each((null==t?cn:"function"===typeof t?dn:ln)(e,t,null==n?"":n)):fn(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?hn:"function"===typeof t?vn:pn)(e,t)):this.node()[e]},classed:function(e,t){var n=mn(e+"");if(arguments.length<2){for(var r=gn(this.node()),i=-1,o=n.length;++i<o;)if(!r.contains(n[i]))return!1;return!0}return this.each(("function"===typeof t?kn:t?xn:En)(n,t))},text:function(e){return arguments.length?this.each(null==e?_n:("function"===typeof e?On:Tn)(e)):this.node().textContent},html:function(e){return arguments.length?this.each(null==e?Cn:("function"===typeof e?Pn:An)(e)):this.node().innerHTML},raise:function(){return this.each(Sn)},lower:function(){return this.each(Mn)},append:function(e){var t="function"===typeof e?e:Dn(e);return this.select((function(){return this.appendChild(t.apply(this,arguments))}))},insert:function(e,t){var n="function"===typeof e?e:Dn(e),r=null==t?Nn:"function"===typeof t?t:Rt(t);return this.select((function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(Ln)},clone:function(e){return this.select(e?zn:In)},datum:function(e){return arguments.length?this.property("__data__",e):this.node().__data__},on:function(e,t,n){var r,i,o=Bn(e+""),a=o.length;if(!(arguments.length<2)){for(s=t?Hn:Fn,r=0;r<a;++r)this.each(s(o[r],t,n));return this}var s=this.node().__on;if(s)for(var u,c=0,l=s.length;c<l;++c)for(r=0,u=s[c];r<a;++r)if((i=o[r]).type===u.type&&i.name===u.name)return u.value},dispatch:function(e,t){return this.each(("function"===typeof t?Gn:Un)(e,t))}},Symbol.iterator,Zn);var Qn=Yn;function Jn(e){return"string"===typeof e?new Xn([[document.querySelector(e)]],[document.documentElement]):new Xn([[e]],$n)}var er=r(7137),tr={passive:!1},nr={capture:!0,passive:!1};function rr(e){e.stopImmediatePropagation()}function ir(e){e.preventDefault(),e.stopImmediatePropagation()}function or(e){var t=e.document.documentElement,n=Jn(e).on("dragstart.drag",ir,nr);"onselectstart"in t?n.on("selectstart.drag",ir,nr):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function ar(e,t){var n=e.document.documentElement,r=Jn(e).on("dragstart.drag",null);t&&(r.on("click.drag",ir,nr),setTimeout((function(){r.on("click.drag",null)}),0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}function sr(e){return((e=Math.exp(e))+1/e)/2}var ur=function e(t,n,r){function i(e,i){var o,a,s=e[0],u=e[1],c=e[2],l=i[0],d=i[1],f=i[2],h=l-s,p=d-u,v=h*h+p*p;if(v<1e-12)a=Math.log(f/c)/t,o=function(e){return[s+e*h,u+e*p,c*Math.exp(t*e*a)]};else{var m=Math.sqrt(v),g=(f*f-c*c+r*v)/(2*c*n*m),y=(f*f-c*c-r*v)/(2*f*n*m),b=Math.log(Math.sqrt(g*g+1)-g),w=Math.log(Math.sqrt(y*y+1)-y);a=(w-b)/t,o=function(e){var r,i=e*a,o=sr(b),l=c/(n*m)*(o*(r=t*i+b,((r=Math.exp(2*r))-1)/(r+1))-function(e){return((e=Math.exp(e))-1/e)/2}(b));return[s+l*h,u+l*p,c*o/sr(t*i+b)]}}return o.duration=1e3*a*t/Math.SQRT2,o}return i.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},i}(Math.SQRT2,2,4);function cr(e,t){if(e=function(e){for(var t;t=e.sourceEvent;)e=t;return e}(e),void 0===t&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,[(r=r.matrixTransform(t.getScreenCTM().inverse())).x,r.y]}if(t.getBoundingClientRect){var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}var lr=r(513);function dr(e,t,n){var r=new lr.B7;return t=null==t?0:+t,r.restart((function(n){r.stop(),e(n+t)}),t,n),r}var fr=(0,er.Z)("start","end","cancel","interrupt"),hr=[];function pr(e,t,n,r,i,o){var a=e.__transition;if(a){if(n in a)return}else e.__transition={};!function(e,t,n){var r,i=e.__transition;function o(e){n.state=1,n.timer.restart(a,n.delay,n.time),n.delay<=e&&a(e-n.delay)}function a(o){var c,l,d,f;if(1!==n.state)return u();for(c in i)if((f=i[c]).name===n.name){if(3===f.state)return dr(a);4===f.state?(f.state=6,f.timer.stop(),f.on.call("interrupt",e,e.__data__,f.index,f.group),delete i[c]):+c<t&&(f.state=6,f.timer.stop(),f.on.call("cancel",e,e.__data__,f.index,f.group),delete i[c])}if(dr((function(){3===n.state&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(o))})),n.state=2,n.on.call("start",e,e.__data__,n.index,n.group),2===n.state){for(n.state=3,r=new Array(d=n.tween.length),c=0,l=-1;c<d;++c)(f=n.tween[c].value.call(e,e.__data__,n.index,n.group))&&(r[++l]=f);r.length=l+1}}function s(t){for(var i=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(u),n.state=5,1),o=-1,a=r.length;++o<a;)r[o].call(e,i);5===n.state&&(n.on.call("end",e,e.__data__,n.index,n.group),u())}function u(){for(var r in n.state=6,n.timer.stop(),delete i[t],i)return;delete e.__transition}i[t]=n,n.timer=(0,lr.HT)(o,0,n.time)}(e,n,{name:t,index:r,group:i,on:fr,tween:hr,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:0})}function vr(e,t){var n=gr(e,t);if(n.state>0)throw new Error("too late; already scheduled");return n}function mr(e,t){var n=gr(e,t);if(n.state>3)throw new Error("too late; already running");return n}function gr(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function yr(e,t){var n,r,i,o=e.__transition,a=!0;if(o){for(i in t=null==t?null:t+"",o)(n=o[i]).name===t?(r=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(r?"interrupt":"cancel",e,e.__data__,n.index,n.group),delete o[i]):a=!1;a&&delete e.__transition}}function br(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var wr,xr=180/Math.PI,Er={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function kr(e,t,n,r,i,o){var a,s,u;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(u=e*n+t*r)&&(n-=e*u,r-=t*u),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,u/=s),e*r<t*n&&(e=-e,t=-t,u=-u,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(t,e)*xr,skewX:Math.atan(u)*xr,scaleX:a,scaleY:s}}function _r(e,t,n,r){function i(e){return e.length?e.pop()+" ":""}return function(o,a){var s=[],u=[];return o=e(o),a=e(a),function(e,r,i,o,a,s){if(e!==i||r!==o){var u=a.push("translate(",null,t,null,n);s.push({i:u-4,x:br(e,i)},{i:u-2,x:br(r,o)})}else(i||o)&&a.push("translate("+i+t+o+n)}(o.translateX,o.translateY,a.translateX,a.translateY,s,u),function(e,t,n,o){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),o.push({i:n.push(i(n)+"rotate(",null,r)-2,x:br(e,t)})):t&&n.push(i(n)+"rotate("+t+r)}(o.rotate,a.rotate,s,u),function(e,t,n,o){e!==t?o.push({i:n.push(i(n)+"skewX(",null,r)-2,x:br(e,t)}):t&&n.push(i(n)+"skewX("+t+r)}(o.skewX,a.skewX,s,u),function(e,t,n,r,o,a){if(e!==n||t!==r){var s=o.push(i(o)+"scale(",null,",",null,")");a.push({i:s-4,x:br(e,n)},{i:s-2,x:br(t,r)})}else 1===n&&1===r||o.push(i(o)+"scale("+n+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,s,u),o=a=null,function(e){for(var t,n=-1,r=u.length;++n<r;)s[(t=u[n]).i]=t.x(e);return s.join("")}}}var Tr=_r((function(e){var t=new("function"===typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Er:kr(t.a,t.b,t.c,t.d,t.e,t.f)}),"px, ","px)","deg)"),Or=_r((function(e){return null==e?Er:(wr||(wr=document.createElementNS("http://www.w3.org/2000/svg","g")),wr.setAttribute("transform",e),(e=wr.transform.baseVal.consolidate())?kr((e=e.matrix).a,e.b,e.c,e.d,e.e,e.f):Er)}),", ",")",")");function Cr(e,t){var n,r;return function(){var i=mr(this,e),o=i.tween;if(o!==n)for(var a=0,s=(r=n=o).length;a<s;++a)if(r[a].name===t){(r=r.slice()).splice(a,1);break}i.tween=r}}function Ar(e,t,n){var r,i;if("function"!==typeof n)throw new Error;return function(){var o=mr(this,e),a=o.tween;if(a!==r){i=(r=a).slice();for(var s={name:t,value:n},u=0,c=i.length;u<c;++u)if(i[u].name===t){i[u]=s;break}u===c&&i.push(s)}o.tween=i}}function Pr(e,t,n){var r=e._id;return e.each((function(){var e=mr(this,r);(e.value||(e.value={}))[t]=n.apply(this,arguments)})),function(e){return gr(e,r).value[t]}}function Sr(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Mr(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Rr(){}var jr=.7,Dr=1/jr,Nr="\\s*([+-]?\\d+)\\s*",Lr="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ir="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",zr=/^#([0-9a-f]{3,8})$/,Br=new RegExp("^rgb\\("+[Nr,Nr,Nr]+"\\)$"),Fr=new RegExp("^rgb\\("+[Ir,Ir,Ir]+"\\)$"),Hr=new RegExp("^rgba\\("+[Nr,Nr,Nr,Lr]+"\\)$"),Vr=new RegExp("^rgba\\("+[Ir,Ir,Ir,Lr]+"\\)$"),Ur=new RegExp("^hsl\\("+[Lr,Ir,Ir]+"\\)$"),Gr=new RegExp("^hsla\\("+[Lr,Ir,Ir,Lr]+"\\)$"),qr={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Kr(){return this.rgb().formatHex()}function Wr(){return this.rgb().formatRgb()}function Zr(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=zr.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?$r(t):3===n?new Jr(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?Xr(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?Xr(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=Br.exec(e))?new Jr(t[1],t[2],t[3],1):(t=Fr.exec(e))?new Jr(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=Hr.exec(e))?Xr(t[1],t[2],t[3],t[4]):(t=Vr.exec(e))?Xr(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=Ur.exec(e))?ri(t[1],t[2]/100,t[3]/100,1):(t=Gr.exec(e))?ri(t[1],t[2]/100,t[3]/100,t[4]):qr.hasOwnProperty(e)?$r(qr[e]):"transparent"===e?new Jr(NaN,NaN,NaN,0):null}function $r(e){return new Jr(e>>16&255,e>>8&255,255&e,1)}function Xr(e,t,n,r){return r<=0&&(e=t=n=NaN),new Jr(e,t,n,r)}function Yr(e){return e instanceof Rr||(e=Zr(e)),e?new Jr((e=e.rgb()).r,e.g,e.b,e.opacity):new Jr}function Qr(e,t,n,r){return 1===arguments.length?Yr(e):new Jr(e,t,n,null==r?1:r)}function Jr(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function ei(){return"#"+ni(this.r)+ni(this.g)+ni(this.b)}function ti(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===e?")":", "+e+")")}function ni(e){return((e=Math.max(0,Math.min(255,Math.round(e)||0)))<16?"0":"")+e.toString(16)}function ri(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new oi(e,t,n,r)}function ii(e){if(e instanceof oi)return new oi(e.h,e.s,e.l,e.opacity);if(e instanceof Rr||(e=Zr(e)),!e)return new oi;if(e instanceof oi)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),a=NaN,s=o-i,u=(o+i)/2;return s?(a=t===o?(n-r)/s+6*(n<r):n===o?(r-t)/s+2:(t-n)/s+4,s/=u<.5?o+i:2-o-i,a*=60):s=u>0&&u<1?0:a,new oi(a,s,u,e.opacity)}function oi(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function ai(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}function si(e,t,n,r,i){var o=e*e,a=o*e;return((1-3*e+3*o-a)*t+(4-6*o+3*a)*n+(1+3*e+3*o-3*a)*r+a*i)/6}Sr(Rr,Zr,{copy:function(e){return Object.assign(new this.constructor,this,e)},displayable:function(){return this.rgb().displayable()},hex:Kr,formatHex:Kr,formatHsl:function(){return ii(this).formatHsl()},formatRgb:Wr,toString:Wr}),Sr(Jr,Qr,Mr(Rr,{brighter:function(e){return e=null==e?Dr:Math.pow(Dr,e),new Jr(this.r*e,this.g*e,this.b*e,this.opacity)},darker:function(e){return e=null==e?jr:Math.pow(jr,e),new Jr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:ei,formatHex:ei,formatRgb:ti,toString:ti})),Sr(oi,(function(e,t,n,r){return 1===arguments.length?ii(e):new oi(e,t,n,null==r?1:r)}),Mr(Rr,{brighter:function(e){return e=null==e?Dr:Math.pow(Dr,e),new oi(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=null==e?jr:Math.pow(jr,e),new oi(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Jr(ai(e>=240?e-240:e+120,i,r),ai(e,i,r),ai(e<120?e+240:e-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===e?")":", "+e+")")}}));var ui=function(e){return function(){return e}};function ci(e,t){return function(n){return e+n*t}}function li(e){return 1===(e=+e)?di:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):ui(isNaN(t)?n:t)}}function di(e,t){var n=t-e;return n?ci(e,n):ui(isNaN(e)?t:e)}var fi=function e(t){var n=li(t);function r(e,t){var r=n((e=Qr(e)).r,(t=Qr(t)).r),i=n(e.g,t.g),o=n(e.b,t.b),a=di(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=o(t),e.opacity=a(t),e+""}}return r.gamma=e,r}(1);function hi(e){return function(t){var n,r,i=t.length,o=new Array(i),a=new Array(i),s=new Array(i);for(n=0;n<i;++n)r=Qr(t[n]),o[n]=r.r||0,a[n]=r.g||0,s[n]=r.b||0;return o=e(o),a=e(a),s=e(s),r.opacity=1,function(e){return r.r=o(e),r.g=a(e),r.b=s(e),r+""}}}hi((function(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],o=e[r+1],a=r>0?e[r-1]:2*i-o,s=r<t-1?e[r+2]:2*o-i;return si((n-r/t)*t,a,i,o,s)}})),hi((function(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),i=e[(r+t-1)%t],o=e[r%t],a=e[(r+1)%t],s=e[(r+2)%t];return si((n-r/t)*t,i,o,a,s)}}));var pi=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,vi=new RegExp(pi.source,"g");function mi(e,t){var n,r,i,o=pi.lastIndex=vi.lastIndex=0,a=-1,s=[],u=[];for(e+="",t+="";(n=pi.exec(e))&&(r=vi.exec(t));)(i=r.index)>o&&(i=t.slice(o,i),s[a]?s[a]+=i:s[++a]=i),(n=n[0])===(r=r[0])?s[a]?s[a]+=r:s[++a]=r:(s[++a]=null,u.push({i:a,x:br(n,r)})),o=vi.lastIndex;return o<t.length&&(i=t.slice(o),s[a]?s[a]+=i:s[++a]=i),s.length<2?u[0]?function(e){return function(t){return e(t)+""}}(u[0].x):function(e){return function(){return e}}(t):(t=u.length,function(e){for(var n,r=0;r<t;++r)s[(n=u[r]).i]=n.x(e);return s.join("")})}function gi(e,t){var n;return("number"===typeof t?br:t instanceof Zr?fi:(n=Zr(t))?(t=n,fi):mi)(e,t)}function yi(e){return function(){this.removeAttribute(e)}}function bi(e){return function(){this.removeAttributeNS(e.space,e.local)}}function wi(e,t,n){var r,i,o=n+"";return function(){var a=this.getAttribute(e);return a===o?null:a===r?i:i=t(r=a,n)}}function xi(e,t,n){var r,i,o=n+"";return function(){var a=this.getAttributeNS(e.space,e.local);return a===o?null:a===r?i:i=t(r=a,n)}}function Ei(e,t,n){var r,i,o;return function(){var a,s,u=n(this);if(null!=u)return(a=this.getAttribute(e))===(s=u+"")?null:a===r&&s===i?o:(i=s,o=t(r=a,u));this.removeAttribute(e)}}function ki(e,t,n){var r,i,o;return function(){var a,s,u=n(this);if(null!=u)return(a=this.getAttributeNS(e.space,e.local))===(s=u+"")?null:a===r&&s===i?o:(i=s,o=t(r=a,u));this.removeAttributeNS(e.space,e.local)}}function _i(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function Ti(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Oi(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Ti(e,i)),n}return i._value=t,i}function Ci(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&_i(e,i)),n}return i._value=t,i}function Ai(e,t){return function(){vr(this,e).delay=+t.apply(this,arguments)}}function Pi(e,t){return t=+t,function(){vr(this,e).delay=t}}function Si(e,t){return function(){mr(this,e).duration=+t.apply(this,arguments)}}function Mi(e,t){return t=+t,function(){mr(this,e).duration=t}}function Ri(e,t){if("function"!==typeof t)throw new Error;return function(){mr(this,e).ease=t}}function ji(e,t,n){var r,i,o=function(e){return(e+"").trim().split(/^|\s+/).every((function(e){var t=e.indexOf(".");return t>=0&&(e=e.slice(0,t)),!e||"start"===e}))}(t)?vr:mr;return function(){var a=o(this,e),s=a.on;s!==r&&(i=(r=s).copy()).on(t,n),a.on=i}}var Di=Qn.prototype.constructor;function Ni(e){return function(){this.style.removeProperty(e)}}function Li(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Ii(e,t,n){var r,i;function o(){var o=t.apply(this,arguments);return o!==i&&(r=(i=o)&&Li(e,o,n)),r}return o._value=t,o}function zi(e){return function(t){this.textContent=e.call(this,t)}}function Bi(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&zi(r)),t}return r._value=e,r}var Fi=0;function Hi(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Vi(){return++Fi}var Ui=Qn.prototype;Hi.prototype=function(e){return Qn().transition(e)}.prototype=(0,St.Z)({constructor:Hi,select:function(e){var t=this._name,n=this._id;"function"!==typeof e&&(e=Rt(e));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a<i;++a)for(var s,u,c=r[a],l=c.length,d=o[a]=new Array(l),f=0;f<l;++f)(s=c[f])&&(u=e.call(s,s.__data__,f,c))&&("__data__"in s&&(u.__data__=s.__data__),d[f]=u,pr(d[f],t,n,f,d,gr(s,n)));return new Hi(o,this._parents,t,n)},selectAll:function(e){var t=this._name,n=this._id;"function"!==typeof e&&(e=Nt(e));for(var r=this._groups,i=r.length,o=[],a=[],s=0;s<i;++s)for(var u,c=r[s],l=c.length,d=0;d<l;++d)if(u=c[d]){for(var f,h=e.call(u,u.__data__,d,c),p=gr(u,n),v=0,m=h.length;v<m;++v)(f=h[v])&&pr(f,t,n,v,h,p);o.push(h),a.push(u)}return new Hi(o,a,t,n)},selectChild:Ui.selectChild,selectChildren:Ui.selectChildren,filter:function(e){"function"!==typeof e&&(e=Lt(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i<n;++i)for(var o,a=t[i],s=a.length,u=r[i]=[],c=0;c<s;++c)(o=a[c])&&e.call(o,o.__data__,c,a)&&u.push(o);return new Hi(r,this._parents,this._name,this._id)},merge:function(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,i=n.length,o=Math.min(r,i),a=new Array(r),s=0;s<o;++s)for(var u,c=t[s],l=n[s],d=c.length,f=a[s]=new Array(d),h=0;h<d;++h)(u=c[h]||l[h])&&(f[h]=u);for(;s<r;++s)a[s]=t[s];return new Hi(a,this._parents,this._name,this._id)},selection:function(){return new Di(this._groups,this._parents)},transition:function(){for(var e=this._name,t=this._id,n=Vi(),r=this._groups,i=r.length,o=0;o<i;++o)for(var a,s=r[o],u=s.length,c=0;c<u;++c)if(a=s[c]){var l=gr(a,t);pr(a,e,n,c,s,{time:l.time+l.delay+l.duration,delay:0,duration:l.duration,ease:l.ease})}return new Hi(r,this._parents,e,n)},call:Ui.call,nodes:Ui.nodes,node:Ui.node,size:Ui.size,empty:Ui.empty,each:Ui.each,on:function(e,t){var n=this._id;return arguments.length<2?gr(this.node(),n).on.on(e):this.each(ji(n,e,t))},attr:function(e,t){var n=en(e),r="transform"===n?Or:gi;return this.attrTween(e,"function"===typeof t?(n.local?ki:Ei)(n,r,Pr(this,"attr."+e,t)):null==t?(n.local?bi:yi)(n):(n.local?xi:wi)(n,r,t))},attrTween:function(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!==typeof t)throw new Error;var r=en(e);return this.tween(n,(r.local?Oi:Ci)(r,t))},style:function(e,t,n){var r="transform"===(e+="")?Tr:gi;return null==t?this.styleTween(e,function(e,t){var n,r,i;return function(){var o=fn(this,e),a=(this.style.removeProperty(e),fn(this,e));return o===a?null:o===n&&a===r?i:i=t(n=o,r=a)}}(e,r)).on("end.style."+e,Ni(e)):"function"===typeof t?this.styleTween(e,function(e,t,n){var r,i,o;return function(){var a=fn(this,e),s=n(this),u=s+"";return null==s&&(this.style.removeProperty(e),u=s=fn(this,e)),a===u?null:a===r&&u===i?o:(i=u,o=t(r=a,s))}}(e,r,Pr(this,"style."+e,t))).each(function(e,t){var n,r,i,o,a="style."+t,s="end."+a;return function(){var u=mr(this,e),c=u.on,l=null==u.value[a]?o||(o=Ni(t)):void 0;c===n&&i===l||(r=(n=c).copy()).on(s,i=l),u.on=r}}(this._id,e)):this.styleTween(e,function(e,t,n){var r,i,o=n+"";return function(){var a=fn(this,e);return a===o?null:a===r?i:i=t(r=a,n)}}(e,r,t),n).on("end.style."+e,null)},styleTween:function(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==t)return this.tween(r,null);if("function"!==typeof t)throw new Error;return this.tween(r,Ii(e,t,null==n?"":n))},text:function(e){return this.tween("text","function"===typeof e?function(e){return function(){var t=e(this);this.textContent=null==t?"":t}}(Pr(this,"text",e)):function(e){return function(){this.textContent=e}}(null==e?"":e+""))},textTween:function(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==e)return this.tween(t,null);if("function"!==typeof e)throw new Error;return this.tween(t,Bi(e))},remove:function(){return this.on("end.remove",function(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}(this._id))},tween:function(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r,i=gr(this.node(),n).tween,o=0,a=i.length;o<a;++o)if((r=i[o]).name===e)return r.value;return null}return this.each((null==t?Cr:Ar)(n,e,t))},delay:function(e){var t=this._id;return arguments.length?this.each(("function"===typeof e?Ai:Pi)(t,e)):gr(this.node(),t).delay},duration:function(e){var t=this._id;return arguments.length?this.each(("function"===typeof e?Si:Mi)(t,e)):gr(this.node(),t).duration},ease:function(e){var t=this._id;return arguments.length?this.each(Ri(t,e)):gr(this.node(),t).ease},easeVarying:function(e){if("function"!==typeof e)throw new Error;return this.each(function(e,t){return function(){var n=t.apply(this,arguments);if("function"!==typeof n)throw new Error;mr(this,e).ease=n}}(this._id,e))},end:function(){var e,t,n=this,r=n._id,i=n.size();return new Promise((function(o,a){var s={value:a},u={value:function(){0===--i&&o()}};n.each((function(){var n=mr(this,r),i=n.on;i!==e&&((t=(e=i).copy())._.cancel.push(s),t._.interrupt.push(s),t._.end.push(u)),n.on=t})),0===i&&o()}))}},Symbol.iterator,Ui[Symbol.iterator]);var Gi={time:null,delay:0,duration:250,ease:function(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}};function qi(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error("transition ".concat(t," not found"));return n}Qn.prototype.interrupt=function(e){return this.each((function(){yr(this,e)}))},Qn.prototype.transition=function(e){var t,n;e instanceof Hi?(t=e._id,e=e._name):(t=Vi(),(n=Gi).time=(0,lr.zO)(),e=null==e?null:e+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a,s=r[o],u=s.length,c=0;c<u;++c)(a=s[c])&&pr(a,e,t,c,s,n||qi(a,t));return new Hi(r,this._parents,e,t)};var Ki=function(e){return function(){return e}};function Wi(e,t){var n=t.sourceEvent,r=t.target,i=t.transform,o=t.dispatch;Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},transform:{value:i,enumerable:!0,configurable:!0},_:{value:o}})}function Zi(e,t,n){this.k=e,this.x=t,this.y=n}Zi.prototype={constructor:Zi,scale:function(e){return 1===e?this:new Zi(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new Zi(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var $i=new Zi(1,0,0);function Xi(e){for(;!e.__zoom;)if(!(e=e.parentNode))return $i;return e.__zoom}function Yi(e){e.stopImmediatePropagation()}function Qi(e){e.preventDefault(),e.stopImmediatePropagation()}function Ji(e){return(!e.ctrlKey||"wheel"===e.type)&&!e.button}function eo(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e).hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).x,e.y],[e.x+e.width,e.y+e.height]]:[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]:[[0,0],[e.clientWidth,e.clientHeight]]}function to(){return this.__zoom||$i}function no(e){return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function ro(){return navigator.maxTouchPoints||"ontouchstart"in this}function io(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],o=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}function oo(){var e,t,n,r=Ji,i=eo,o=io,a=no,s=ro,u=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],l=250,d=ur,f=(0,er.Z)("start","zoom","end"),h=500,p=0,v=10;function m(e){e.property("__zoom",to).on("wheel.zoom",k,{passive:!1}).on("mousedown.zoom",_).on("dblclick.zoom",T).filter(s).on("touchstart.zoom",O).on("touchmove.zoom",C).on("touchend.zoom touchcancel.zoom",A).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function g(e,t){return(t=Math.max(u[0],Math.min(u[1],t)))===e.k?e:new Zi(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new Zi(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function w(e,t,n,r){e.on("start.zoom",(function(){x(this,arguments).event(r).start()})).on("interrupt.zoom end.zoom",(function(){x(this,arguments).event(r).end()})).tween("zoom",(function(){var e=this,o=arguments,a=x(e,o).event(r),s=i.apply(e,o),u=null==n?b(s):"function"===typeof n?n.apply(e,o):n,c=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),l=e.__zoom,f="function"===typeof t?t.apply(e,o):t,h=d(l.invert(u).concat(c/l.k),f.invert(u).concat(c/f.k));return function(e){if(1===e)e=f;else{var t=h(e),n=c/t[2];e=new Zi(n,u[0]-t[0]*n,u[1]-t[1]*n)}a.zoom(null,e)}}))}function x(e,t,n){return!n&&e.__zooming||new E(e,t)}function E(e,t){this.that=e,this.args=t,this.active=0,this.sourceEvent=null,this.extent=i.apply(e,t),this.taps=0}function k(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];if(r.apply(this,arguments)){var s=x(this,n).event(e),l=this.__zoom,d=Math.max(u[0],Math.min(u[1],l.k*Math.pow(2,a.apply(this,arguments)))),f=cr(e);if(s.wheel)s.mouse[0][0]===f[0]&&s.mouse[0][1]===f[1]||(s.mouse[1]=l.invert(s.mouse[0]=f)),clearTimeout(s.wheel);else{if(l.k===d)return;s.mouse=[f,l.invert(f)],yr(this),s.start()}Qi(e),s.wheel=setTimeout(h,150),s.zoom("mouse",o(y(g(l,d),s.mouse[0],s.mouse[1]),s.extent,c))}function h(){s.wheel=null,s.end()}}function _(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),a=1;a<t;a++)i[a-1]=arguments[a];if(!n&&r.apply(this,arguments)){var s=e.currentTarget,u=x(this,i,!0).event(e),l=Jn(e.view).on("mousemove.zoom",v,!0).on("mouseup.zoom",m,!0),d=cr(e,s),f=e.clientX,h=e.clientY;or(e.view),Yi(e),u.mouse=[d,this.__zoom.invert(d)],yr(this),u.start()}function v(e){if(Qi(e),!u.moved){var t=e.clientX-f,n=e.clientY-h;u.moved=t*t+n*n>p}u.event(e).zoom("mouse",o(y(u.that.__zoom,u.mouse[0]=cr(e,s),u.mouse[1]),u.extent,c))}function m(e){l.on("mousemove.zoom mouseup.zoom",null),ar(e.view,u.moved),Qi(e),u.event(e).end()}}function T(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a<t;a++)n[a-1]=arguments[a];if(r.apply(this,arguments)){var s=this.__zoom,u=cr(e.changedTouches?e.changedTouches[0]:e,this),d=s.invert(u),f=s.k*(e.shiftKey?.5:2),h=o(y(g(s,f),u,d),i.apply(this,n),c);Qi(e),l>0?Jn(this).transition().duration(l).call(w,h,u,e):Jn(this).call(m.transform,h,u,e)}}function O(n){for(var i=arguments.length,o=new Array(i>1?i-1:0),a=1;a<i;a++)o[a-1]=arguments[a];if(r.apply(this,arguments)){var s,u,c,l,d=n.touches,f=d.length,p=x(this,o,n.changedTouches.length===f).event(n);for(Yi(n),u=0;u<f;++u)l=[l=cr(c=d[u],this),this.__zoom.invert(l),c.identifier],p.touch0?p.touch1||p.touch0[2]===l[2]||(p.touch1=l,p.taps=0):(p.touch0=l,s=!0,p.taps=1+!!e);e&&(e=clearTimeout(e)),s&&(p.taps<2&&(t=l[0],e=setTimeout((function(){e=null}),h)),yr(this),p.start())}}function C(e){if(this.__zooming){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i,a,s,u,l=x(this,n).event(e),d=e.changedTouches,f=d.length;for(Qi(e),i=0;i<f;++i)s=cr(a=d[i],this),l.touch0&&l.touch0[2]===a.identifier?l.touch0[0]=s:l.touch1&&l.touch1[2]===a.identifier&&(l.touch1[0]=s);if(a=l.that.__zoom,l.touch1){var h=l.touch0[0],p=l.touch0[1],v=l.touch1[0],m=l.touch1[1],b=(b=v[0]-h[0])*b+(b=v[1]-h[1])*b,w=(w=m[0]-p[0])*w+(w=m[1]-p[1])*w;a=g(a,Math.sqrt(b/w)),s=[(h[0]+v[0])/2,(h[1]+v[1])/2],u=[(p[0]+m[0])/2,(p[1]+m[1])/2]}else{if(!l.touch0)return;s=l.touch0[0],u=l.touch0[1]}l.zoom("touch",o(y(a,s,u),l.extent,c))}}function A(e){for(var r=arguments.length,i=new Array(r>1?r-1:0),o=1;o<r;o++)i[o-1]=arguments[o];if(this.__zooming){var a,s,u=x(this,i).event(e),c=e.changedTouches,l=c.length;for(Yi(e),n&&clearTimeout(n),n=setTimeout((function(){n=null}),h),a=0;a<l;++a)s=c[a],u.touch0&&u.touch0[2]===s.identifier?delete u.touch0:u.touch1&&u.touch1[2]===s.identifier&&delete u.touch1;if(u.touch1&&!u.touch0&&(u.touch0=u.touch1,delete u.touch1),u.touch0)u.touch0[1]=this.__zoom.invert(u.touch0[0]);else if(u.end(),2===u.taps&&(s=cr(s,this),Math.hypot(t[0]-s[0],t[1]-s[1])<v)){var d=Jn(this).on("dblclick.zoom");d&&d.apply(this,arguments)}}}return m.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property("__zoom",to),e!==i?w(e,t,n,r):i.interrupt().each((function(){x(this,arguments).event(r).start().zoom(null,"function"===typeof t?t.apply(this,arguments):t).end()}))},m.scaleBy=function(e,t,n,r){m.scaleTo(e,(function(){var e=this.__zoom.k,n="function"===typeof t?t.apply(this,arguments):t;return e*n}),n,r)},m.scaleTo=function(e,t,n,r){m.transform(e,(function(){var e=i.apply(this,arguments),r=this.__zoom,a=null==n?b(e):"function"===typeof n?n.apply(this,arguments):n,s=r.invert(a),u="function"===typeof t?t.apply(this,arguments):t;return o(y(g(r,u),a,s),e,c)}),n,r)},m.translateBy=function(e,t,n,r){m.transform(e,(function(){return o(this.__zoom.translate("function"===typeof t?t.apply(this,arguments):t,"function"===typeof n?n.apply(this,arguments):n),i.apply(this,arguments),c)}),null,r)},m.translateTo=function(e,t,n,r,a){m.transform(e,(function(){var e=i.apply(this,arguments),a=this.__zoom,s=null==r?b(e):"function"===typeof r?r.apply(this,arguments):r;return o($i.translate(s[0],s[1]).scale(a.k).translate("function"===typeof t?-t.apply(this,arguments):-t,"function"===typeof n?-n.apply(this,arguments):-n),e,c)}),r,a)},E.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return 1===++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(e,t){return this.mouse&&"mouse"!==e&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&"touch"!==e&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&"touch"!==e&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit("zoom"),this},end:function(){return 0===--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(e){var t=Jn(this.that).datum();f.call(e,this.that,new Wi(e,{sourceEvent:this.sourceEvent,target:m,type:e,transform:this.that.__zoom,dispatch:f}),t)}},m.wheelDelta=function(e){return arguments.length?(a="function"===typeof e?e:Ki(+e),m):a},m.filter=function(e){return arguments.length?(r="function"===typeof e?e:Ki(!!e),m):r},m.touchable=function(e){return arguments.length?(s="function"===typeof e?e:Ki(!!e),m):s},m.extent=function(e){return arguments.length?(i="function"===typeof e?e:Ki([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),m):i},m.scaleExtent=function(e){return arguments.length?(u[0]=+e[0],u[1]=+e[1],m):[u[0],u[1]]},m.translateExtent=function(e){return arguments.length?(c[0][0]=+e[0][0],c[1][0]=+e[1][0],c[0][1]=+e[0][1],c[1][1]=+e[1][1],m):[[c[0][0],c[0][1]],[c[1][0],c[1][1]]]},m.constrain=function(e){return arguments.length?(o=e,m):o},m.duration=function(e){return arguments.length?(l=+e,m):l},m.interpolate=function(e){return arguments.length?(d=e,m):d},m.on=function(){var e=f.on.apply(f,arguments);return e===f?m:e},m.clickDistance=function(e){return arguments.length?(p=(e=+e)*e,m):Math.sqrt(p)},m.tapDistance=function(e){return arguments.length?(v=+e,m):v},m}Xi.prototype=Zi.prototype;var ao=function(e){return function(){return e}};function so(e,t){var n=t.sourceEvent,r=t.subject,i=t.target,o=t.identifier,a=t.active,s=t.x,u=t.y,c=t.dx,l=t.dy,d=t.dispatch;Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:r,enumerable:!0,configurable:!0},target:{value:i,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:s,enumerable:!0,configurable:!0},y:{value:u,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:d}})}function uo(e){return!e.ctrlKey&&!e.button}function co(){return this.parentNode}function lo(e,t){return null==t?{x:e.x,y:e.y}:t}function fo(){return navigator.maxTouchPoints||"ontouchstart"in this}so.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};var ho=r(6701),po=r(3752),vo=r(3096),mo=r.n(vo),go=r(7621),yo=r.n(go);function bo(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function wo(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function xo(e){return function(e){if(Array.isArray(e))return Eo(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return Eo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Eo(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Eo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var ko=function(e,t,n){return(e<<16)+(t<<8)+n},_o=function(e,t){return 123*e%Math.pow(2,t)},To=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:6;bo(this,e),this.csBits=t,this.registry=["__reserved for background__"]}var t,n,r;return t=e,(n=[{key:"register",value:function(e){if(this.registry.length>=Math.pow(2,24-this.csBits))return null;var t,n=this.registry.length,r=_o(n,this.csBits),i=(t=n+(r<<24-this.csBits),"#".concat(Math.min(t,Math.pow(2,24)).toString(16).padStart(6,"0")));return this.registry.push(e),i}},{key:"lookup",value:function(e){var t="string"===typeof e?function(e){var t=yo()(e).toRgb(),n=t.r,r=t.g,i=t.b;return ko(n,r,i)}(e):ko.apply(void 0,xo(e));if(!t)return null;var n=t&Math.pow(2,24-this.csBits)-1,r=t>>24-this.csBits&Math.pow(2,this.csBits)-1;return _o(n,this.csBits)!==r||n>=this.registry.length?null:this.registry[n]}}])&&wo(t.prototype,n),r&&wo(t,r),e}(),Oo=r(4505),Co=r(5560),Ao=r(2405),Po=r(216),So=r(6917);const{abs:Mo,cos:Ro,sin:jo,acos:Do,atan2:No,sqrt:Lo,pow:Io}=Math;function zo(e){return e<0?-Io(-e,1/3):Io(e,1/3)}const Bo=Math.PI,Fo=2*Bo,Ho=Bo/2,Vo=Number.MAX_SAFE_INTEGER||9007199254740991,Uo=Number.MIN_SAFE_INTEGER||-9007199254740991,Go={x:0,y:0,z:0},qo={Tvalues:[-.06405689286260563,.06405689286260563,-.1911188674736163,.1911188674736163,-.3150426796961634,.3150426796961634,-.4337935076260451,.4337935076260451,-.5454214713888396,.5454214713888396,-.6480936519369755,.6480936519369755,-.7401241915785544,.7401241915785544,-.820001985973903,.820001985973903,-.8864155270044011,.8864155270044011,-.9382745520027328,.9382745520027328,-.9747285559713095,.9747285559713095,-.9951872199970213,.9951872199970213],Cvalues:[.12793819534675216,.12793819534675216,.1258374563468283,.1258374563468283,.12167047292780339,.12167047292780339,.1155056680537256,.1155056680537256,.10744427011596563,.10744427011596563,.09761865210411388,.09761865210411388,.08619016153195327,.08619016153195327,.0733464814110803,.0733464814110803,.05929858491543678,.05929858491543678,.04427743881741981,.04427743881741981,.028531388628933663,.028531388628933663,.0123412297999872,.0123412297999872],arcfn:function(e,t){const n=t(e);let r=n.x*n.x+n.y*n.y;return"undefined"!==typeof n.z&&(r+=n.z*n.z),Lo(r)},compute:function(e,t,n){if(0===e)return t[0].t=0,t[0];const r=t.length-1;if(1===e)return t[r].t=1,t[r];const i=1-e;let o=t;if(0===r)return t[0].t=e,t[0];if(1===r){const t={x:i*o[0].x+e*o[1].x,y:i*o[0].y+e*o[1].y,t:e};return n&&(t.z=i*o[0].z+e*o[1].z),t}if(r<4){let t,a,s,u=i*i,c=e*e,l=0;2===r?(o=[o[0],o[1],o[2],Go],t=u,a=i*e*2,s=c):3===r&&(t=u*i,a=u*e*3,s=i*c*3,l=e*c);const d={x:t*o[0].x+a*o[1].x+s*o[2].x+l*o[3].x,y:t*o[0].y+a*o[1].y+s*o[2].y+l*o[3].y,t:e};return n&&(d.z=t*o[0].z+a*o[1].z+s*o[2].z+l*o[3].z),d}const a=JSON.parse(JSON.stringify(t));for(;a.length>1;){for(let t=0;t<a.length-1;t++)a[t]={x:a[t].x+(a[t+1].x-a[t].x)*e,y:a[t].y+(a[t+1].y-a[t].y)*e},"undefined"!==typeof a[t].z&&(a[t]=a[t].z+(a[t+1].z-a[t].z)*e);a.splice(a.length-1,1)}return a[0].t=e,a[0]},computeWithRatios:function(e,t,n,r){const i=1-e,o=n,a=t;let s,u=o[0],c=o[1],l=o[2],d=o[3];return u*=i,c*=e,2===a.length?(s=u+c,{x:(u*a[0].x+c*a[1].x)/s,y:(u*a[0].y+c*a[1].y)/s,z:!!r&&(u*a[0].z+c*a[1].z)/s,t:e}):(u*=i,c*=2*i,l*=e*e,3===a.length?(s=u+c+l,{x:(u*a[0].x+c*a[1].x+l*a[2].x)/s,y:(u*a[0].y+c*a[1].y+l*a[2].y)/s,z:!!r&&(u*a[0].z+c*a[1].z+l*a[2].z)/s,t:e}):(u*=i,c*=1.5*i,l*=3*i,d*=e*e*e,4===a.length?(s=u+c+l+d,{x:(u*a[0].x+c*a[1].x+l*a[2].x+d*a[3].x)/s,y:(u*a[0].y+c*a[1].y+l*a[2].y+d*a[3].y)/s,z:!!r&&(u*a[0].z+c*a[1].z+l*a[2].z+d*a[3].z)/s,t:e}):void 0))},derive:function(e,t){const n=[];for(let r=e,i=r.length,o=i-1;i>1;i--,o--){const e=[];for(let n,i=0;i<o;i++)n={x:o*(r[i+1].x-r[i].x),y:o*(r[i+1].y-r[i].y)},t&&(n.z=o*(r[i+1].z-r[i].z)),e.push(n);n.push(e),r=e}return n},between:function(e,t,n){return t<=e&&e<=n||qo.approximately(e,t)||qo.approximately(e,n)},approximately:function(e,t,n){return Mo(e-t)<=(n||1e-6)},length:function(e){const t=qo.Tvalues.length;let n=0;for(let r,i=0;i<t;i++)r=.5*qo.Tvalues[i]+.5,n+=qo.Cvalues[i]*qo.arcfn(r,e);return.5*n},map:function(e,t,n,r,i){return r+(i-r)*((e-t)/(n-t))},lerp:function(e,t,n){const r={x:t.x+e*(n.x-t.x),y:t.y+e*(n.y-t.y)};return void 0!==t.z&&void 0!==n.z&&(r.z=t.z+e*(n.z-t.z)),r},pointToString:function(e){let t=e.x+"/"+e.y;return"undefined"!==typeof e.z&&(t+="/"+e.z),t},pointsToString:function(e){return"["+e.map(qo.pointToString).join(", ")+"]"},copy:function(e){return JSON.parse(JSON.stringify(e))},angle:function(e,t,n){const r=t.x-e.x,i=t.y-e.y,o=n.x-e.x,a=n.y-e.y;return No(r*a-i*o,r*o+i*a)},round:function(e,t){const n=""+e,r=n.indexOf(".");return parseFloat(n.substring(0,r+1+t))},dist:function(e,t){const n=e.x-t.x,r=e.y-t.y;return Lo(n*n+r*r)},closest:function(e,t){let n,r,i=Io(2,63);return e.forEach((function(e,o){r=qo.dist(t,e),r<i&&(i=r,n=o)})),{mdist:i,mpos:n}},abcratio:function(e,t){if(2!==t&&3!==t)return!1;if("undefined"===typeof e)e=.5;else if(0===e||1===e)return e;const n=Io(e,t)+Io(1-e,t);return Mo((n-1)/n)},projectionratio:function(e,t){if(2!==t&&3!==t)return!1;if("undefined"===typeof e)e=.5;else if(0===e||1===e)return e;const n=Io(1-e,t);return n/(Io(e,t)+n)},lli8:function(e,t,n,r,i,o,a,s){const u=(e-n)*(o-s)-(t-r)*(i-a);return 0!=u&&{x:((e*r-t*n)*(i-a)-(e-n)*(i*s-o*a))/u,y:((e*r-t*n)*(o-s)-(t-r)*(i*s-o*a))/u}},lli4:function(e,t,n,r){const i=e.x,o=e.y,a=t.x,s=t.y,u=n.x,c=n.y,l=r.x,d=r.y;return qo.lli8(i,o,a,s,u,c,l,d)},lli:function(e,t){return qo.lli4(e,e.c,t,t.c)},makeline:function(e,t){const n=e.x,r=e.y,i=t.x,o=t.y,a=(i-n)/3,s=(o-r)/3;return new ta(n,r,n+a,r+s,n+2*a,r+2*s,i,o)},findbbox:function(e){let t=Vo,n=Vo,r=Uo,i=Uo;return e.forEach((function(e){const o=e.bbox();t>o.x.min&&(t=o.x.min),n>o.y.min&&(n=o.y.min),r<o.x.max&&(r=o.x.max),i<o.y.max&&(i=o.y.max)})),{x:{min:t,mid:(t+r)/2,max:r,size:r-t},y:{min:n,mid:(n+i)/2,max:i,size:i-n}}},shapeintersections:function(e,t,n,r,i){if(!qo.bboxoverlap(t,r))return[];const o=[],a=[e.startcap,e.forward,e.back,e.endcap],s=[n.startcap,n.forward,n.back,n.endcap];return a.forEach((function(t){t.virtual||s.forEach((function(r){if(r.virtual)return;const a=t.intersects(r,i);a.length>0&&(a.c1=t,a.c2=r,a.s1=e,a.s2=n,o.push(a))}))})),o},makeshape:function(e,t,n){const r=t.points.length,i=e.points.length,o=qo.makeline(t.points[r-1],e.points[0]),a=qo.makeline(e.points[i-1],t.points[0]),s={startcap:o,forward:e,back:t,endcap:a,bbox:qo.findbbox([o,e,t,a]),intersections:function(e){return qo.shapeintersections(s,s.bbox,e,e.bbox,n)}};return s},getminmax:function(e,t,n){if(!n)return{min:0,max:0};let r,i,o=Vo,a=Uo;-1===n.indexOf(0)&&(n=[0].concat(n)),-1===n.indexOf(1)&&n.push(1);for(let s=0,u=n.length;s<u;s++)r=n[s],i=e.get(r),i[t]<o&&(o=i[t]),i[t]>a&&(a=i[t]);return{min:o,mid:(o+a)/2,max:a,size:a-o}},align:function(e,t){const n=t.p1.x,r=t.p1.y,i=-No(t.p2.y-r,t.p2.x-n);return e.map((function(e){return{x:(e.x-n)*Ro(i)-(e.y-r)*jo(i),y:(e.x-n)*jo(i)+(e.y-r)*Ro(i)}}))},roots:function(e,t){t=t||{p1:{x:0,y:0},p2:{x:1,y:0}};const n=e.length-1,r=qo.align(e,t),i=function(e){return 0<=e&&e<=1};if(2===n){const e=r[0].y,t=r[1].y,n=r[2].y,o=e-2*t+n;if(0!==o){const r=-Lo(t*t-e*n),a=-e+t;return[-(r+a)/o,-(-r+a)/o].filter(i)}return t!==n&&0===o?[(2*t-n)/(2*t-2*n)].filter(i):[]}const o=r[0].y,a=r[1].y,s=r[2].y;let u=3*a-o-3*s+r[3].y,c=3*o-6*a+3*s,l=-3*o+3*a,d=o;if(qo.approximately(u,0)){if(qo.approximately(c,0))return qo.approximately(l,0)?[]:[-d/l].filter(i);const e=Lo(l*l-4*c*d),t=2*c;return[(e-l)/t,(-l-e)/t].filter(i)}c/=u,l/=u,d/=u;const f=(3*l-c*c)/3,h=f/3,p=(2*c*c*c-9*c*l+27*d)/27,v=p/2,m=v*v+h*h*h;let g,y,b,w,x;if(m<0){const e=-f/3,t=Lo(e*e*e),n=-p/(2*t),r=Do(n<-1?-1:n>1?1:n),o=2*zo(t);return b=o*Ro(r/3)-c/3,w=o*Ro((r+Fo)/3)-c/3,x=o*Ro((r+2*Fo)/3)-c/3,[b,w,x].filter(i)}if(0===m)return g=v<0?zo(-v):-zo(v),b=2*g-c/3,w=-g-c/3,[b,w].filter(i);{const e=Lo(m);return g=zo(-v+e),y=zo(v+e),[g-y-c/3].filter(i)}},droots:function(e){if(3===e.length){const t=e[0],n=e[1],r=e[2],i=t-2*n+r;if(0!==i){const e=-Lo(n*n-t*r),o=-t+n;return[-(e+o)/i,-(-e+o)/i]}return n!==r&&0===i?[(2*n-r)/(2*(n-r))]:[]}if(2===e.length){const t=e[0],n=e[1];return t!==n?[t/(t-n)]:[]}return[]},curvature:function(e,t,n,r,i){let o,a,s,u,c=0,l=0;const d=qo.compute(e,t),f=qo.compute(e,n),h=d.x*d.x+d.y*d.y;if(r?(o=Lo(Io(d.y*f.z-f.y*d.z,2)+Io(d.z*f.x-f.z*d.x,2)+Io(d.x*f.y-f.x*d.y,2)),a=Io(h+d.z*d.z,1.5)):(o=d.x*f.y-d.y*f.x,a=Io(h,1.5)),0===o||0===a)return{k:0,r:0};if(c=o/a,l=a/o,!i){const i=qo.curvature(e-.001,t,n,r,!0).k,o=qo.curvature(e+.001,t,n,r,!0).k;u=(o-c+(c-i))/2,s=(Mo(o-c)+Mo(c-i))/2}return{k:c,r:l,dk:u,adk:s}},inflections:function(e){if(e.length<4)return[];const t=qo.align(e,{p1:e[0],p2:e.slice(-1)[0]}),n=t[2].x*t[1].y,r=t[3].x*t[1].y,i=t[1].x*t[2].y,o=18*(-3*n+2*r+3*i-t[3].x*t[2].y),a=18*(3*n-r-3*i),s=18*(i-n);if(qo.approximately(o,0)){if(!qo.approximately(a,0)){let e=-s/a;if(0<=e&&e<=1)return[e]}return[]}const u=a*a-4*o*s,c=Math.sqrt(u),l=2*o;return qo.approximately(l,0)?[]:[(c-a)/l,-(a+c)/l].filter((function(e){return 0<=e&&e<=1}))},bboxoverlap:function(e,t){const n=["x","y"],r=n.length;for(let i,o,a,s,u=0;u<r;u++)if(i=n[u],o=e[i].mid,a=t[i].mid,s=(e[i].size+t[i].size)/2,Mo(o-a)>=s)return!1;return!0},expandbox:function(e,t){t.x.min<e.x.min&&(e.x.min=t.x.min),t.y.min<e.y.min&&(e.y.min=t.y.min),t.z&&t.z.min<e.z.min&&(e.z.min=t.z.min),t.x.max>e.x.max&&(e.x.max=t.x.max),t.y.max>e.y.max&&(e.y.max=t.y.max),t.z&&t.z.max>e.z.max&&(e.z.max=t.z.max),e.x.mid=(e.x.min+e.x.max)/2,e.y.mid=(e.y.min+e.y.max)/2,e.z&&(e.z.mid=(e.z.min+e.z.max)/2),e.x.size=e.x.max-e.x.min,e.y.size=e.y.max-e.y.min,e.z&&(e.z.size=e.z.max-e.z.min)},pairiteration:function(e,t,n){const r=e.bbox(),i=t.bbox(),o=1e5,a=n||.5;if(r.x.size+r.y.size<a&&i.x.size+i.y.size<a)return[(o*(e._t1+e._t2)/2|0)/o+"/"+(o*(t._t1+t._t2)/2|0)/o];let s=e.split(.5),u=t.split(.5),c=[{left:s.left,right:u.left},{left:s.left,right:u.right},{left:s.right,right:u.right},{left:s.right,right:u.left}];c=c.filter((function(e){return qo.bboxoverlap(e.left.bbox(),e.right.bbox())}));let l=[];return 0===c.length||(c.forEach((function(e){l=l.concat(qo.pairiteration(e.left,e.right,a))})),l=l.filter((function(e,t){return l.indexOf(e)===t}))),l},getccenter:function(e,t,n){const r=t.x-e.x,i=t.y-e.y,o=n.x-t.x,a=n.y-t.y,s=r*Ro(Ho)-i*jo(Ho),u=r*jo(Ho)+i*Ro(Ho),c=o*Ro(Ho)-a*jo(Ho),l=o*jo(Ho)+a*Ro(Ho),d=(e.x+t.x)/2,f=(e.y+t.y)/2,h=(t.x+n.x)/2,p=(t.y+n.y)/2,v=d+s,m=f+u,g=h+c,y=p+l,b=qo.lli8(d,f,v,m,h,p,g,y),w=qo.dist(b,e);let x,E=No(e.y-b.y,e.x-b.x),k=No(t.y-b.y,t.x-b.x),_=No(n.y-b.y,n.x-b.x);return E<_?((E>k||k>_)&&(E+=Fo),E>_&&(x=_,_=E,E=x)):_<k&&k<E?(x=_,_=E,E=x):_+=Fo,b.s=E,b.e=_,b.r=w,b},numberSort:function(e,t){return e-t}};class Ko{constructor(e){this.curves=[],this._3d=!1,e&&(this.curves=e,this._3d=this.curves[0]._3d)}valueOf(){return this.toString()}toString(){return"["+this.curves.map((function(e){return qo.pointsToString(e.points)})).join(", ")+"]"}addCurve(e){this.curves.push(e),this._3d=this._3d||e._3d}length(){return this.curves.map((function(e){return e.length()})).reduce((function(e,t){return e+t}))}curve(e){return this.curves[e]}bbox(){const e=this.curves;for(var t=e[0].bbox(),n=1;n<e.length;n++)qo.expandbox(t,e[n].bbox());return t}offset(e){const t=[];return this.curves.forEach((function(n){t.push(...n.offset(e))})),new Ko(t)}}const{abs:Wo,min:Zo,max:$o,cos:Xo,sin:Yo,acos:Qo,sqrt:Jo}=Math,ea=Math.PI;class ta{constructor(e){let t=e&&e.forEach?e:Array.from(arguments).slice(),n=!1;if("object"===typeof t[0]){n=t.length;const e=[];t.forEach((function(t){["x","y","z"].forEach((function(n){"undefined"!==typeof t[n]&&e.push(t[n])}))})),t=e}let r=!1;const i=t.length;if(n){if(n>4){if(1!==arguments.length)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");r=!0}}else if(6!==i&&8!==i&&9!==i&&12!==i&&1!==arguments.length)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");const o=this._3d=!r&&(9===i||12===i)||e&&e[0]&&"undefined"!==typeof e[0].z,a=this.points=[];for(let d=0,f=o?3:2;d<i;d+=f){var s={x:t[d],y:t[d+1]};o&&(s.z=t[d+2]),a.push(s)}const u=this.order=a.length-1,c=this.dims=["x","y"];o&&c.push("z"),this.dimlen=c.length;const l=qo.align(a,{p1:a[0],p2:a[u]});this._linear=!l.some((e=>Wo(e.y)>1e-4)),this._lut=[],this._t1=0,this._t2=1,this.update()}static quadraticFromPoints(e,t,n,r){if("undefined"===typeof r&&(r=.5),0===r)return new ta(t,t,n);if(1===r)return new ta(e,t,t);const i=ta.getABC(2,e,t,n,r);return new ta(e,i.A,n)}static cubicFromPoints(e,t,n,r,i){"undefined"===typeof r&&(r=.5);const o=ta.getABC(3,e,t,n,r);"undefined"===typeof i&&(i=qo.dist(t,o.C));const a=i*(1-r)/r,s=qo.dist(e,n),u=(n.x-e.x)/s,c=(n.y-e.y)/s,l=i*u,d=i*c,f=a*u,h=a*c,p=t.x-l,v=t.y-d,m=t.x+f,g=t.y+h,y=o.A,b=y.x+(p-y.x)/(1-r),w=y.y+(v-y.y)/(1-r),x=y.x+(m-y.x)/r,E=y.y+(g-y.y)/r,k={x:e.x+(b-e.x)/r,y:e.y+(w-e.y)/r},_={x:n.x+(x-n.x)/(1-r),y:n.y+(E-n.y)/(1-r)};return new ta(e,k,_,n)}static getUtils(){return qo}getUtils(){return ta.getUtils()}static get PolyBezier(){return Ko}valueOf(){return this.toString()}toString(){return qo.pointsToString(this.points)}toSVG(){if(this._3d)return!1;const e=this.points,t=["M",e[0].x,e[0].y,2===this.order?"Q":"C"];for(let n=1,r=e.length;n<r;n++)t.push(e[n].x),t.push(e[n].y);return t.join(" ")}setRatios(e){if(e.length!==this.points.length)throw new Error("incorrect number of ratio values");this.ratios=e,this._lut=[]}verify(){const e=this.coordDigest();e!==this._print&&(this._print=e,this.update())}coordDigest(){return this.points.map((function(e,t){return""+t+e.x+e.y+(e.z?e.z:0)})).join("")}update(){this._lut=[],this.dpoints=qo.derive(this.points,this._3d),this.computedirection()}computedirection(){const e=this.points,t=qo.angle(e[0],e[this.order],e[1]);this.clockwise=t>0}length(){return qo.length(this.derivative.bind(this))}static getABC(e=2,t,n,r,i=.5){const o=qo.projectionratio(i,e),a=1-o,s={x:o*t.x+a*r.x,y:o*t.y+a*r.y},u=qo.abcratio(i,e);return{A:{x:n.x+(n.x-s.x)/u,y:n.y+(n.y-s.y)/u},B:n,C:s,S:t,E:r}}getABC(e,t){t=t||this.get(e);let n=this.points[0],r=this.points[this.order];return ta.getABC(this.order,n,t,r,e)}getLUT(e){if(this.verify(),e=e||100,this._lut.length===e)return this._lut;this._lut=[],e--;for(let t,n,r=0;r<e;r++)n=r/(e-1),t=this.compute(n),t.t=n,this._lut.push(t);return this._lut}on(e,n){n=n||5;const r=this.getLUT(),i=[];for(let t,o=0,a=0;o<r.length;o++)t=r[o],qo.dist(t,e)<n&&(i.push(t),a+=o/r.length);return!!i.length&&(t/=i.length)}project(e){const t=this.getLUT(),n=t.length-1,r=qo.closest(t,e),i=r.mpos,o=(i-1)/n,a=(i+1)/n,s=.1/n;let u,c,l=r.mdist,d=o,f=d;for(l+=1;d<a+s;d+=s)u=this.compute(d),c=qo.dist(e,u),c<l&&(l=c,f=d);return f=f<0?0:f>1?1:f,u=this.compute(f),u.t=f,u.d=l,u}get(e){return this.compute(e)}point(e){return this.points[e]}compute(e){return this.ratios?qo.computeWithRatios(e,this.points,this.ratios,this._3d):qo.compute(e,this.points,this._3d,this.ratios)}raise(){const e=this.points,t=[e[0]],n=e.length;for(let r,i,o=1;o<n;o++)r=e[o],i=e[o-1],t[o]={x:(n-o)/n*r.x+o/n*i.x,y:(n-o)/n*r.y+o/n*i.y};return t[n]=e[n-1],new ta(t)}derivative(e){return qo.compute(e,this.dpoints[0],this._3d)}dderivative(e){return qo.compute(e,this.dpoints[1],this._3d)}align(){let e=this.points;return new ta(qo.align(e,{p1:e[0],p2:e[e.length-1]}))}curvature(e){return qo.curvature(e,this.dpoints[0],this.dpoints[1],this._3d)}inflections(){return qo.inflections(this.points)}normal(e){return this._3d?this.__normal3(e):this.__normal2(e)}__normal2(e){const t=this.derivative(e),n=Jo(t.x*t.x+t.y*t.y);return{x:-t.y/n,y:t.x/n}}__normal3(e){const t=this.derivative(e),n=this.derivative(e+.01),r=Jo(t.x*t.x+t.y*t.y+t.z*t.z),i=Jo(n.x*n.x+n.y*n.y+n.z*n.z);t.x/=r,t.y/=r,t.z/=r,n.x/=i,n.y/=i,n.z/=i;const o={x:n.y*t.z-n.z*t.y,y:n.z*t.x-n.x*t.z,z:n.x*t.y-n.y*t.x},a=Jo(o.x*o.x+o.y*o.y+o.z*o.z);o.x/=a,o.y/=a,o.z/=a;const s=[o.x*o.x,o.x*o.y-o.z,o.x*o.z+o.y,o.x*o.y+o.z,o.y*o.y,o.y*o.z-o.x,o.x*o.z-o.y,o.y*o.z+o.x,o.z*o.z];return{x:s[0]*t.x+s[1]*t.y+s[2]*t.z,y:s[3]*t.x+s[4]*t.y+s[5]*t.z,z:s[6]*t.x+s[7]*t.y+s[8]*t.z}}hull(e){let t=this.points,n=[],r=[],i=0;for(r[i++]=t[0],r[i++]=t[1],r[i++]=t[2],3===this.order&&(r[i++]=t[3]);t.length>1;){n=[];for(let o,a=0,s=t.length-1;a<s;a++)o=qo.lerp(e,t[a],t[a+1]),r[i++]=o,n.push(o);t=n}return r}split(e,t){if(0===e&&t)return this.split(t).left;if(1===t)return this.split(e).right;const n=this.hull(e),r={left:2===this.order?new ta([n[0],n[3],n[5]]):new ta([n[0],n[4],n[7],n[9]]),right:2===this.order?new ta([n[5],n[4],n[2]]):new ta([n[9],n[8],n[6],n[3]]),span:n};return r.left._t1=qo.map(0,0,1,this._t1,this._t2),r.left._t2=qo.map(e,0,1,this._t1,this._t2),r.right._t1=qo.map(e,0,1,this._t1,this._t2),r.right._t2=qo.map(1,0,1,this._t1,this._t2),t?(t=qo.map(t,e,1,0,1),r.right.split(t).left):r}extrema(){const e={};let t=[];return this.dims.forEach(function(n){let r=function(e){return e[n]},i=this.dpoints[0].map(r);e[n]=qo.droots(i),3===this.order&&(i=this.dpoints[1].map(r),e[n]=e[n].concat(qo.droots(i))),e[n]=e[n].filter((function(e){return e>=0&&e<=1})),t=t.concat(e[n].sort(qo.numberSort))}.bind(this)),e.values=t.sort(qo.numberSort).filter((function(e,n){return t.indexOf(e)===n})),e}bbox(){const e=this.extrema(),t={};return this.dims.forEach(function(n){t[n]=qo.getminmax(this,n,e[n])}.bind(this)),t}overlaps(e){const t=this.bbox(),n=e.bbox();return qo.bboxoverlap(t,n)}offset(e,t){if("undefined"!==typeof t){const n=this.get(e),r=this.normal(e),i={c:n,n:r,x:n.x+r.x*t,y:n.y+r.y*t};return this._3d&&(i.z=n.z+r.z*t),i}if(this._linear){const t=this.normal(0),n=this.points.map((function(n){const r={x:n.x+e*t.x,y:n.y+e*t.y};return n.z&&t.z&&(r.z=n.z+e*t.z),r}));return[new ta(n)]}return this.reduce().map((function(t){return t._linear?t.offset(e)[0]:t.scale(e)}))}simple(){if(3===this.order){const e=qo.angle(this.points[0],this.points[3],this.points[1]),t=qo.angle(this.points[0],this.points[3],this.points[2]);if(e>0&&t<0||e<0&&t>0)return!1}const e=this.normal(0),t=this.normal(1);let n=e.x*t.x+e.y*t.y;return this._3d&&(n+=e.z*t.z),Wo(Qo(n))<ea/3}reduce(){let e,t,n=0,r=0,i=.01,o=[],a=[],s=this.extrema().values;for(-1===s.indexOf(0)&&(s=[0].concat(s)),-1===s.indexOf(1)&&s.push(1),n=s[0],e=1;e<s.length;e++)r=s[e],t=this.split(n,r),t._t1=n,t._t2=r,o.push(t),n=r;return o.forEach((function(e){for(n=0,r=0;r<=1;)for(r=n+i;r<=1.01;r+=i)if(t=e.split(n,r),!t.simple()){if(r-=i,Wo(n-r)<i)return[];t=e.split(n,r),t._t1=qo.map(n,0,1,e._t1,e._t2),t._t2=qo.map(r,0,1,e._t1,e._t2),a.push(t),n=r;break}n<1&&(t=e.split(n,1),t._t1=qo.map(n,0,1,e._t1,e._t2),t._t2=e._t2,a.push(t))})),a}scale(e){const t=this.order;let n=!1;if("function"===typeof e&&(n=e),n&&2===t)return this.raise().scale(n);const r=this.clockwise,i=n?n(0):e,o=n?n(1):e,a=[this.offset(0,10),this.offset(1,10)],s=this.points,u=[],c=qo.lli4(a[0],a[0].c,a[1],a[1].c);if(!c)throw new Error("cannot scale this curve. Try reducing it first.");return[0,1].forEach((function(e){const n=u[e*t]=qo.copy(s[e*t]);n.x+=(e?o:i)*a[e].n.x,n.y+=(e?o:i)*a[e].n.y})),n?([0,1].forEach((function(i){if(2!==t||!i){var o=s[i+1],a={x:o.x-c.x,y:o.y-c.y},l=n?n((i+1)/t):e;n&&!r&&(l=-l);var d=Jo(a.x*a.x+a.y*a.y);a.x/=d,a.y/=d,u[i+1]={x:o.x+l*a.x,y:o.y+l*a.y}}})),new ta(u)):([0,1].forEach((e=>{if(2===t&&e)return;const n=u[e*t],r=this.derivative(e),i={x:n.x+r.x,y:n.y+r.y};u[e+1]=qo.lli4(n,i,c,s[e+1])})),new ta(u))}outline(e,t,n,r){t="undefined"===typeof t?e:t;const i=this.reduce(),o=i.length,a=[];let s,u=[],c=0,l=this.length();const d="undefined"!==typeof n&&"undefined"!==typeof r;function f(e,t,n,r,i){return function(o){const a=r/n,s=(r+i)/n,u=t-e;return qo.map(o,0,1,e+a*u,e+s*u)}}i.forEach((function(i){const o=i.length();d?(a.push(i.scale(f(e,n,l,c,o))),u.push(i.scale(f(-t,-r,l,c,o)))):(a.push(i.scale(e)),u.push(i.scale(-t))),c+=o})),u=u.map((function(e){return s=e.points,s[3]?e.points=[s[3],s[2],s[1],s[0]]:e.points=[s[2],s[1],s[0]],e})).reverse();const h=a[0].points[0],p=a[o-1].points[a[o-1].points.length-1],v=u[o-1].points[u[o-1].points.length-1],m=u[0].points[0],g=qo.makeline(v,h),y=qo.makeline(p,m),b=[g].concat(a).concat([y]).concat(u);b.length;return new Ko(b)}outlineshapes(e,t,n){t=t||e;const r=this.outline(e,t).curves,i=[];for(let o=1,a=r.length;o<a/2;o++){const e=qo.makeshape(r[o],r[a-o],n);e.startcap.virtual=o>1,e.endcap.virtual=o<a/2-1,i.push(e)}return i}intersects(e,t){return e?e.p1&&e.p2?this.lineIntersects(e):(e instanceof ta&&(e=e.reduce()),this.curveintersects(this.reduce(),e,t)):this.selfintersects(t)}lineIntersects(e){const t=Zo(e.p1.x,e.p2.x),n=Zo(e.p1.y,e.p2.y),r=$o(e.p1.x,e.p2.x),i=$o(e.p1.y,e.p2.y);return qo.roots(this.points,e).filter((e=>{var o=this.get(e);return qo.between(o.x,t,r)&&qo.between(o.y,n,i)}))}selfintersects(e){const t=this.reduce(),n=t.length-2,r=[];for(let i,o,a,s=0;s<n;s++)o=t.slice(s,s+1),a=t.slice(s+2),i=this.curveintersects(o,a,e),r.push(...i);return r}curveintersects(e,t,n){const r=[];e.forEach((function(e){t.forEach((function(t){e.overlaps(t)&&r.push({left:e,right:t})}))}));let i=[];return r.forEach((function(e){const t=qo.pairiteration(e.left,e.right,n);t.length>0&&(i=i.concat(t))})),i}arcs(e){return e=e||.5,this._iterate(e,[])}_error(e,t,n,r){const i=(r-n)/4,o=this.get(n+i),a=this.get(r-i),s=qo.dist(e,t),u=qo.dist(e,o),c=qo.dist(e,a);return Wo(u-s)+Wo(c-s)}_iterate(e,t){let n,r=0,i=1;do{n=0,i=1;let o,a,s,u,c,l=this.get(r),d=!1,f=!1,h=i,p=1,v=0;do{if(f=d,u=s,h=(r+i)/2,v++,o=this.get(h),a=this.get(i),s=qo.getccenter(l,o,a),s.interval={start:r,end:i},d=this._error(s,l,r,i)<=e,c=f&&!d,c||(p=i),d){if(i>=1){if(s.interval.end=p=1,u=s,i>1){let e={x:s.x+s.r*Xo(s.e),y:s.y+s.r*Yo(s.e)};s.e+=qo.angle({x:s.x,y:s.y},e,this.get(1))}break}i+=(i-r)/2}else i=h}while(!c&&n++<100);if(n>=100)break;u=u||s,t.push(u),r=p}while(i<1);return t}}var na=r(1527),ra=r(2462),ia=r(7646);function oa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function aa(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?oa(Object(n),!0).forEach((function(t){ua(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):oa(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function sa(e){return(sa="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ua(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ca(e,t){return(ca=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function la(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function da(e,t,n){return(da=la()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&ca(i,n.prototype),i}).apply(null,arguments)}function fa(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);a=!0);}catch(u){s=!0,i=u}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(e,t)||pa(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ha(e){return function(e){if(Array.isArray(e))return va(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||pa(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function pa(e,t){if(e){if("string"===typeof e)return va(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?va(e,t):void 0}}function va(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!==typeof document){var r=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===n&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}(".force-graph-container canvas {\n display: block;\n user-select: none;\n outline: none;\n -webkit-tap-highlight-color: transparent;\n}\n\n.force-graph-container .graph-tooltip {\n position: absolute;\n transform: translate(-50%, 25px);\n font-family: sans-serif;\n font-size: 16px;\n padding: 4px;\n border-radius: 3px;\n color: #eee;\n background: rgba(0,0,0,0.65);\n visibility: hidden; /* by default */\n}\n\n.force-graph-container .clickable {\n cursor: pointer;\n}\n\n.force-graph-container .grabbable {\n cursor: move;\n cursor: grab;\n cursor: -moz-grab;\n cursor: -webkit-grab;\n}\n\n.force-graph-container .grabbable:active {\n cursor: grabbing;\n cursor: -moz-grabbing;\n cursor: -webkit-grabbing;\n}\n");var ma=(0,ra.Z)(ia.Z);function ga(e,t,n){t&&"string"===typeof n&&e.filter((function(e){return!e[n]})).forEach((function(e){e[n]=ma(t(e))}))}var ya=function(e,t){return t.onNeedsRedraw&&t.onNeedsRedraw()},ba=(0,b.Z)({props:{graphData:{default:{nodes:[],links:[]},onChange:function(e,t){t.engineRunning=!1}},dagMode:{onChange:function(e,t){!e&&(t.graphData.nodes||[]).forEach((function(e){return e.fx=e.fy=void 0}))}},dagLevelDistance:{},dagNodeFilter:{default:function(e){return!0}},onDagError:{triggerUpdate:!1},nodeRelSize:{default:4,triggerUpdate:!1,onChange:ya},nodeId:{default:"id"},nodeVal:{default:"val",triggerUpdate:!1,onChange:ya},nodeColor:{default:"color",triggerUpdate:!1,onChange:ya},nodeAutoColorBy:{},nodeCanvasObject:{triggerUpdate:!1,onChange:ya},nodeCanvasObjectMode:{default:function(){return"replace"},triggerUpdate:!1,onChange:ya},nodeVisibility:{default:!0,triggerUpdate:!1,onChange:ya},linkSource:{default:"source"},linkTarget:{default:"target"},linkVisibility:{default:!0,triggerUpdate:!1,onChange:ya},linkColor:{default:"color",triggerUpdate:!1,onChange:ya},linkAutoColorBy:{},linkLineDash:{triggerUpdate:!1,onChange:ya},linkWidth:{default:1,triggerUpdate:!1,onChange:ya},linkCurvature:{default:0,triggerUpdate:!1,onChange:ya},linkCanvasObject:{triggerUpdate:!1,onChange:ya},linkCanvasObjectMode:{default:function(){return"replace"},triggerUpdate:!1,onChange:ya},linkDirectionalArrowLength:{default:0,triggerUpdate:!1,onChange:ya},linkDirectionalArrowColor:{triggerUpdate:!1,onChange:ya},linkDirectionalArrowRelPos:{default:.5,triggerUpdate:!1,onChange:ya},linkDirectionalParticles:{default:0},linkDirectionalParticleSpeed:{default:.01,triggerUpdate:!1},linkDirectionalParticleWidth:{default:4,triggerUpdate:!1},linkDirectionalParticleColor:{triggerUpdate:!1},globalScale:{default:1,triggerUpdate:!1},d3AlphaMin:{default:0,triggerUpdate:!1},d3AlphaDecay:{default:.0228,triggerUpdate:!1,onChange:function(e,t){t.forceLayout.alphaDecay(e)}},d3AlphaTarget:{default:0,triggerUpdate:!1,onChange:function(e,t){t.forceLayout.alphaTarget(e)}},d3VelocityDecay:{default:.4,triggerUpdate:!1,onChange:function(e,t){t.forceLayout.velocityDecay(e)}},warmupTicks:{default:0,triggerUpdate:!1},cooldownTicks:{default:1/0,triggerUpdate:!1},cooldownTime:{default:15e3,triggerUpdate:!1},onUpdate:{default:function(){},triggerUpdate:!1},onFinishUpdate:{default:function(){},triggerUpdate:!1},onEngineTick:{default:function(){},triggerUpdate:!1},onEngineStop:{default:function(){},triggerUpdate:!1},onNeedsRedraw:{triggerUpdate:!1},isShadow:{default:!1,triggerUpdate:!1}},methods:{d3Force:function(e,t,n){return void 0===n?e.forceLayout.force(t):(e.forceLayout.force(t,n),this)},d3ReheatSimulation:function(e){return e.forceLayout.alpha(1),this.resetCountdown(),this},resetCountdown:function(e){return e.cntTicks=0,e.startTickTime=new Date,e.engineRunning=!0,this},isEngineRunning:function(e){return!!e.engineRunning},tickFrame:function(e){return!e.isShadow&&e.engineRunning&&(++e.cntTicks>e.cooldownTicks||new Date-e.startTickTime>e.cooldownTime||e.d3AlphaMin>0&&e.forceLayout.alpha()<e.d3AlphaMin?(e.engineRunning=!1,e.onEngineStop()):(e.forceLayout.tick(),e.onEngineTick())),function(){var t=(0,w.default)(e.linkVisibility),n=(0,w.default)(e.linkColor),r=(0,w.default)(e.linkWidth),i=(0,w.default)(e.linkLineDash),o=(0,w.default)(e.linkCurvature),a=(0,w.default)(e.linkCanvasObjectMode),s=e.ctx,u=2*e.isShadow,c=e.graphData.links.filter(t);c.forEach((function(e){var t=o(e);if(!t)return void(e.__controlPoints=null);var n=e.source,r=e.target;if(!n||!r||!n.hasOwnProperty("x")||!r.hasOwnProperty("x"))return;var i=Math.sqrt(Math.pow(r.x-n.x,2)+Math.pow(r.y-n.y,2));if(i>0){var a=Math.atan2(r.y-n.y,r.x-n.x),s=i*t,u={x:(n.x+r.x)/2+s*Math.cos(a-Math.PI/2),y:(n.y+r.y)/2+s*Math.sin(a-Math.PI/2)};e.__controlPoints=[u.x,u.y]}else{var c=70*t;e.__controlPoints=[r.x,r.y-c,r.x+c,r.y]}}));var l=[],d=[],f=c;if(e.linkCanvasObject){var h=[],p=[];c.forEach((function(e){return({before:l,after:d,replace:h}[a(e)]||p).push(e)})),f=[].concat(ha(l),d,p),l=l.concat(h)}s.save(),l.forEach((function(t){return e.linkCanvasObject(t,s,e.globalScale)})),s.restore();var v=(0,na.Z)(f,[n,r,i]);s.save(),Object.entries(v).forEach((function(t){var n=fa(t,2),r=n[0],o=n[1],a=r&&"undefined"!==r?r:"rgba(0,0,0,0.15)";Object.entries(o).forEach((function(t){var n=fa(t,2),r=n[0],o=n[1],c=(r||1)/e.globalScale+u;Object.entries(o).forEach((function(e){var t=fa(e,2);t[0];var n=t[1],r=i(n[0]);s.beginPath(),n.forEach((function(e){var t=e.source,n=e.target;if(t&&n&&t.hasOwnProperty("x")&&n.hasOwnProperty("x")){s.moveTo(t.x,t.y);var r=e.__controlPoints;r?s[2===r.length?"quadraticCurveTo":"bezierCurveTo"].apply(s,ha(r).concat([n.x,n.y])):s.lineTo(n.x,n.y)}})),s.strokeStyle=a,s.lineWidth=c,s.setLineDash(r||[]),s.stroke()}))}))})),s.restore(),s.save(),d.forEach((function(t){return e.linkCanvasObject(t,s,e.globalScale)})),s.restore()}(),!e.isShadow&&function(){var t=(0,w.default)(e.linkDirectionalArrowLength),n=(0,w.default)(e.linkDirectionalArrowRelPos),r=(0,w.default)(e.linkVisibility),i=(0,w.default)(e.linkDirectionalArrowColor||e.linkColor),o=(0,w.default)(e.nodeVal),a=e.ctx;a.save(),e.graphData.links.filter(r).forEach((function(r){var s=t(r);if(s&&!(s<0)){var u=r.source,c=r.target;if(u&&c&&u.hasOwnProperty("x")&&c.hasOwnProperty("x")){var l=Math.sqrt(Math.max(0,o(u)||1))*e.nodeRelSize,d=Math.sqrt(Math.max(0,o(c)||1))*e.nodeRelSize,f=Math.min(1,Math.max(0,n(r))),h=i(r)||"rgba(0,0,0,0.28)",p=s/1.6/2,v=r.__controlPoints&&da(ta,[u.x,u.y].concat(ha(r.__controlPoints),[c.x,c.y])),m=v?function(e){return v.get(e)}:function(e){return{x:u.x+(c.x-u.x)*e||0,y:u.y+(c.y-u.y)*e||0}},g=v?v.length():Math.sqrt(Math.pow(c.x-u.x,2)+Math.pow(c.y-u.y,2)),y=l+s+(g-l-d-s)*f,b=m(y/g),w=m((y-s)/g),x=m((y-.8*s)/g),E=Math.atan2(b.y-w.y,b.x-w.x)-Math.PI/2;a.beginPath(),a.moveTo(b.x,b.y),a.lineTo(w.x+p*Math.cos(E),w.y+p*Math.sin(E)),a.lineTo(x.x,x.y),a.lineTo(w.x-p*Math.cos(E),w.y-p*Math.sin(E)),a.fillStyle=h,a.fill()}}})),a.restore()}(),!e.isShadow&&function(){var t=(0,w.default)(e.linkDirectionalParticles),n=(0,w.default)(e.linkDirectionalParticleSpeed),r=(0,w.default)(e.linkDirectionalParticleWidth),i=(0,w.default)(e.linkVisibility),o=(0,w.default)(e.linkDirectionalParticleColor||e.linkColor),a=e.ctx;a.save(),e.graphData.links.filter(i).forEach((function(i){var s=t(i);if(i.hasOwnProperty("__photons")&&i.__photons.length){var u=i.source,c=i.target;if(u&&c&&u.hasOwnProperty("x")&&c.hasOwnProperty("x")){var l=n(i),d=i.__photons||[],f=Math.max(0,r(i)/2)/Math.sqrt(e.globalScale),h=o(i)||"rgba(0,0,0,0.28)";a.fillStyle=h;var p=i.__controlPoints?da(ta,[u.x,u.y].concat(ha(i.__controlPoints),[c.x,c.y])):null,v=0,m=!1;d.forEach((function(e){var t=!!e.__singleHop;if(e.hasOwnProperty("__progressRatio")||(e.__progressRatio=t?0:v/s),!t&&v++,e.__progressRatio+=l,e.__progressRatio>=1){if(t)return void(m=!0);e.__progressRatio=e.__progressRatio%1}var n=e.__progressRatio,r=p?p.get(n):{x:u.x+(c.x-u.x)*n||0,y:u.y+(c.y-u.y)*n||0};a.beginPath(),a.arc(r.x,r.y,f,0,2*Math.PI,!1),a.fill()})),m&&(i.__photons=i.__photons.filter((function(e){return!e.__singleHop||e.__progressRatio<=1})))}}})),a.restore()}(),function(){var t=(0,w.default)(e.nodeVisibility),n=(0,w.default)(e.nodeVal),r=(0,w.default)(e.nodeColor),i=(0,w.default)(e.nodeCanvasObjectMode),o=e.ctx,a=e.isShadow/e.globalScale,s=e.graphData.nodes.filter(t);o.save(),s.forEach((function(t){var s=i(t);if(!e.nodeCanvasObject||"before"!==s&&"replace"!==s||(e.nodeCanvasObject(t,o,e.globalScale),"replace"!==s)){var u=Math.sqrt(Math.max(0,n(t)||1))*e.nodeRelSize+a;o.beginPath(),o.arc(t.x,t.y,u,0,2*Math.PI,!1),o.fillStyle=r(t)||"rgba(31, 120, 180, 0.92)",o.fill(),e.nodeCanvasObject&&"after"===s&&e.nodeCanvasObject(t,e.ctx,e.globalScale)}else o.restore()})),o.restore()}(),this},emitParticle:function(e,t){return t&&(!t.__photons&&(t.__photons=[]),t.__photons.push({__singleHop:!0})),this}},stateInit:function(){return{forceLayout:(0,Oo.Z)().force("link",(0,Co.Z)()).force("charge",(0,Ao.Z)()).force("center",(0,Po.Z)()).force("dagRadial",null).stop(),engineRunning:!1}},init:function(e,t){t.ctx=e},update:function(e){if(e.engineRunning=!1,e.onUpdate(),null!==e.nodeAutoColorBy&&ga(e.graphData.nodes,(0,w.default)(e.nodeAutoColorBy),e.nodeColor),null!==e.linkAutoColorBy&&ga(e.graphData.links,(0,w.default)(e.linkAutoColorBy),e.linkColor),e.graphData.links.forEach((function(t){t.source=t[e.linkSource],t.target=t[e.linkTarget]})),!e.isShadow){var t=(0,w.default)(e.linkDirectionalParticles);e.graphData.links.forEach((function(e){var n=Math.round(Math.abs(t(e)));n?e.__photons=ha(Array(n)).map((function(){return{}})):delete e.__photons}))}e.forceLayout.stop().alpha(1).nodes(e.graphData.nodes);var n=e.forceLayout.force("link");n&&n.id((function(t){return t[e.nodeId]})).links(e.graphData.links);var r=e.dagMode&&function(e,t){var n=e.nodes,r=e.links,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i.nodeFilter,a=void 0===o?function(){return!0}:o,s=i.onLoopError,u=void 0===s?function(e){throw"Invalid DAG structure! Found cycle in node path: ".concat(e.join(" -> "),".")}:s,c={};n.forEach((function(e){return c[t(e)]={data:e,out:[],depth:-1,skip:!a(e)}})),r.forEach((function(e){var n=e.source,r=e.target,i=u(n),o=u(r);if(!c.hasOwnProperty(i))throw"Missing source node with id: ".concat(i);if(!c.hasOwnProperty(o))throw"Missing target node with id: ".concat(o);var a=c[i],s=c[o];function u(e){return"object"===sa(e)?t(e):e}a.out.push(s)}));var l=[];return d(Object.values(c)),Object.assign.apply(Object,[{}].concat(ha(Object.entries(c).filter((function(e){return!fa(e,2)[1].skip})).map((function(e){var t=fa(e,2);return ua({},t[0],t[1].depth)})))));function d(e){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=0,o=e.length;i<o;i++){var a=e[i];if(-1!==n.indexOf(a))if("continue"===function(){var e=[].concat(ha(n.slice(n.indexOf(a))),[a]).map((function(e){return t(e.data)}));return l.some((function(t){return t.length===e.length&&t.every((function(t,n){return t===e[n]}))}))||(l.push(e),u(e)),"continue"}())continue;r>a.depth&&(a.depth=r,d(a.out,[].concat(ha(n),[a]),r+(a.skip?0:1)))}}}(e.graphData,(function(t){return t[e.nodeId]}),{nodeFilter:e.dagNodeFilter,onLoopError:e.onDagError||void 0}),i=Math.max.apply(Math,ha(Object.values(r||[]))),o=e.dagLevelDistance||e.graphData.nodes.length/(i||1)*2*(-1!==["radialin","radialout"].indexOf(e.dagMode)?.7:1);if(e.dagMode){var a=function(t,n){return function(a){return t?(r[a[e.nodeId]]-i/2)*o*(n?-1:1):void 0}},s=a(-1!==["lr","rl"].indexOf(e.dagMode),"rl"===e.dagMode),u=a(-1!==["td","bu"].indexOf(e.dagMode),"bu"===e.dagMode);e.graphData.nodes.filter(e.dagNodeFilter).forEach((function(e){e.fx=s(e),e.fy=u(e)}))}e.forceLayout.force("dagRadial",-1!==["radialin","radialout"].indexOf(e.dagMode)?(0,So.Z)((function(t){var n=r[t[e.nodeId]]||-1;return("radialin"===e.dagMode?i-n:n)*o})).strength((function(t){return e.dagNodeFilter(t)?1:0})):null);for(var c=0;c<e.warmupTicks&&!(e.d3AlphaMin>0&&e.forceLayout.alpha()<e.d3AlphaMin);c++)e.forceLayout.tick();this.resetCountdown(),e.onFinishUpdate()}});function wa(e,t){var n=e instanceof Array?e:[e],r=new t;return{linkProp:function(e){return{default:r[e](),onChange:function(t,r){n.forEach((function(n){return r[n][e](t)}))},triggerUpdate:!1}},linkMethod:function(e){return function(t){for(var r=arguments.length,i=new Array(r>1?r-1:0),o=1;o<r;o++)i[o-1]=arguments[o];var a=[];return n.forEach((function(n){var r=t[n],o=r[e].apply(r,i);o!==r&&a.push(o)})),a.length?a[0]:this}}}}var xa=wa("forceGraph",ba),Ea=wa(["forceGraph","shadowGraph"],ba),ka=Object.assign.apply(Object,ha(["nodeColor","nodeAutoColorBy","nodeCanvasObject","nodeCanvasObjectMode","linkColor","linkAutoColorBy","linkLineDash","linkWidth","linkCanvasObject","linkCanvasObjectMode","linkDirectionalArrowLength","linkDirectionalArrowColor","linkDirectionalArrowRelPos","linkDirectionalParticles","linkDirectionalParticleSpeed","linkDirectionalParticleWidth","linkDirectionalParticleColor","dagMode","dagLevelDistance","dagNodeFilter","onDagError","d3AlphaMin","d3AlphaDecay","d3VelocityDecay","warmupTicks","cooldownTicks","cooldownTime","onEngineTick","onEngineStop"].map((function(e){return ua({},e,xa.linkProp(e))}))).concat(ha(["nodeRelSize","nodeId","nodeVal","nodeVisibility","linkSource","linkTarget","linkVisibility","linkCurvature"].map((function(e){return ua({},e,Ea.linkProp(e))}))))),_a=Object.assign.apply(Object,ha(["d3Force","d3ReheatSimulation","emitParticle"].map((function(e){return ua({},e,xa.linkMethod(e))}))));function Ta(e){if(e.canvas){var t=e.canvas.width,n=e.canvas.height;300===t&&150===n&&(t=n=0);var r=window.devicePixelRatio;t/=r,n/=r,[e.canvas,e.shadowCanvas].forEach((function(i){i.style.width="".concat(e.width,"px"),i.style.height="".concat(e.height,"px"),i.width=e.width*r,i.height=e.height*r,t||n||i.getContext("2d").scale(r,r)}));var i=Xi(e.canvas).k;e.zoom.translateBy(e.zoom.__baseElem,(e.width-t)/2/i,(e.height-n)/2/i),e.needsRedraw=!0}}function Oa(e){var t=window.devicePixelRatio;e.setTransform(t,0,0,t,0,0)}function Ca(e,t,n){e.save(),Oa(e),e.clearRect(0,0,t,n),e.restore()}var Aa=(0,b.Z)({props:aa({width:{default:window.innerWidth,onChange:function(e,t){return Ta(t)},triggerUpdate:!1},height:{default:window.innerHeight,onChange:function(e,t){return Ta(t)},triggerUpdate:!1},graphData:{default:{nodes:[],links:[]},onChange:function(e,t){[{type:"Node",objs:e.nodes},{type:"Link",objs:e.links}].forEach((function(e){var n=e.type;e.objs.filter((function(e){if(!e.hasOwnProperty("__indexColor"))return!0;var n=t.colorTracker.lookup(e.__indexColor);return!n||!n.hasOwnProperty("d")||n.d!==e})).forEach((function(e){e.__indexColor=t.colorTracker.register({type:n,d:e})}))})),t.forceGraph.graphData(e),t.shadowGraph.graphData(e)},triggerUpdate:!1},backgroundColor:{onChange:function(e,t){t.canvas&&e&&(t.canvas.style.background=e)},triggerUpdate:!1},nodeLabel:{default:"name",triggerUpdate:!1},nodePointerAreaPaint:{onChange:function(e,t){t.shadowGraph.nodeCanvasObject(e?function(t,n,r){return e(t,t.__indexColor,n,r)}:null)},triggerUpdate:!1},linkPointerAreaPaint:{onChange:function(e,t){t.shadowGraph.linkCanvasObject(e?function(t,n,r){return e(t,t.__indexColor,n,r)}:null)},triggerUpdate:!1},linkLabel:{default:"name",triggerUpdate:!1},linkHoverPrecision:{default:4,triggerUpdate:!1},minZoom:{default:.01,onChange:function(e,t){t.zoom.scaleExtent([e,t.zoom.scaleExtent()[1]])},triggerUpdate:!1},maxZoom:{default:1e3,onChange:function(e,t){t.zoom.scaleExtent([t.zoom.scaleExtent()[0],e])},triggerUpdate:!1},enableNodeDrag:{default:!0,triggerUpdate:!1},enableZoomInteraction:{default:!0,triggerUpdate:!1},enablePanInteraction:{default:!0,triggerUpdate:!1},enableZoomPanInteraction:{default:!0,triggerUpdate:!1},enablePointerInteraction:{default:!0,onChange:function(e,t){t.hoverObj=null},triggerUpdate:!1},autoPauseRedraw:{default:!0,triggerUpdate:!1},onNodeDrag:{default:function(){},triggerUpdate:!1},onNodeDragEnd:{default:function(){},triggerUpdate:!1},onNodeClick:{triggerUpdate:!1},onNodeRightClick:{triggerUpdate:!1},onNodeHover:{triggerUpdate:!1},onLinkClick:{triggerUpdate:!1},onLinkRightClick:{triggerUpdate:!1},onLinkHover:{triggerUpdate:!1},onBackgroundClick:{triggerUpdate:!1},onBackgroundRightClick:{triggerUpdate:!1},onZoom:{default:function(){},triggerUpdate:!1},onZoomEnd:{default:function(){},triggerUpdate:!1},onRenderFramePre:{triggerUpdate:!1},onRenderFramePost:{triggerUpdate:!1}},ka),aliases:{stopAnimation:"pauseAnimation"},methods:aa({graph2ScreenCoords:function(e,t,n){var r=Xi(e.canvas);return{x:t*r.k+r.x,y:n*r.k+r.y}},screen2GraphCoords:function(e,t,n){var r=Xi(e.canvas);return{x:(t-r.x)/r.k,y:(n-r.y)/r.k}},centerAt:function(e,t,n,r){if(!e.canvas)return null;if(void 0!==t||void 0!==n){var i=Object.assign({},void 0!==t?{x:t}:{},void 0!==n?{y:n}:{});return r?new st.Tween(o()).to(i,r).easing(st.Easing.Quadratic.Out).onUpdate(a).start():a(i),this}return o();function o(){var t=Xi(e.canvas);return{x:(e.width/2-t.x)/t.k,y:(e.height/2-t.y)/t.k}}function a(t){var n=t.x,r=t.y;e.zoom.translateTo(e.zoom.__baseElem,void 0===n?o().x:n,void 0===r?o().y:r),e.needsRedraw=!0}},zoom:function(e,t,n){return e.canvas?void 0!==t?(n?new st.Tween({k:r()}).to({k:t},n).easing(st.Easing.Quadratic.Out).onUpdate((function(e){return i(e.k)})).start():i(t),this):r():null;function r(){return Xi(e.canvas).k}function i(t){e.zoom.scaleTo(e.zoom.__baseElem,t),e.needsRedraw=!0}},zoomToFit:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,r=arguments.length,i=new Array(r>3?r-3:0),o=3;o<r;o++)i[o-3]=arguments[o];var a=this.getGraphBbox.apply(this,i);if(a){var s={x:(a.x[0]+a.x[1])/2,y:(a.y[0]+a.y[1])/2},u=Math.max(1e-12,Math.min(1e12,(e.width-2*n)/(a.x[1]-a.x[0]),(e.height-2*n)/(a.y[1]-a.y[0])));this.centerAt(s.x,s.y,t),this.zoom(u,t)}return this},getGraphBbox:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return!0},n=(0,w.default)(e.nodeVal),r=function(t){return Math.sqrt(Math.max(0,n(t)||1))*e.nodeRelSize},i=e.graphData.nodes.filter(t).map((function(e){return{x:e.x,y:e.y,r:r(e)}}));return i.length?{x:[(0,ho.Z)(i,(function(e){return e.x-e.r})),(0,po.Z)(i,(function(e){return e.x+e.r}))],y:[(0,ho.Z)(i,(function(e){return e.y-e.r})),(0,po.Z)(i,(function(e){return e.y+e.r}))]}:null},pauseAnimation:function(e){return e.animationFrameRequestId&&(cancelAnimationFrame(e.animationFrameRequestId),e.animationFrameRequestId=null),this},resumeAnimation:function(e){return e.animationFrameRequestId||this._animationCycle(),this},_destructor:function(){this.pauseAnimation(),this.graphData({nodes:[],links:[]})}},_a),stateInit:function(){return{lastSetZoom:1,zoom:oo(),forceGraph:new ba,shadowGraph:(new ba).cooldownTicks(0).nodeColor("__indexColor").linkColor("__indexColor").isShadow(!0),colorTracker:new To}},init:function(e,t){e.innerHTML="";var n=document.createElement("div");n.classList.add("force-graph-container"),n.style.position="relative",e.appendChild(n),t.canvas=document.createElement("canvas"),t.backgroundColor&&(t.canvas.style.background=t.backgroundColor),n.appendChild(t.canvas),t.shadowCanvas=document.createElement("canvas");var r=t.canvas.getContext("2d"),i=t.shadowCanvas.getContext("2d"),o={x:-1e12,y:-1e12},a=function(){var e=null,n=window.devicePixelRatio,r=o.x>0&&o.y>0?i.getImageData(o.x*n,o.y*n,1,1):null;return r&&(e=t.colorTracker.lookup(r.data)),e};Jn(t.canvas).call(function(){var e,t,n,r,i=uo,o=co,a=lo,s=fo,u={},c=(0,er.Z)("start","drag","end"),l=0,d=0;function f(e){e.on("mousedown.drag",h).filter(s).on("touchstart.drag",m).on("touchmove.drag",g,tr).on("touchend.drag touchcancel.drag",y).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(a,s){if(!r&&i.call(this,a,s)){var u=b(this,o.call(this,a,s),a,s,"mouse");u&&(Jn(a.view).on("mousemove.drag",p,nr).on("mouseup.drag",v,nr),or(a.view),rr(a),n=!1,e=a.clientX,t=a.clientY,u("start",a))}}function p(r){if(ir(r),!n){var i=r.clientX-e,o=r.clientY-t;n=i*i+o*o>d}u.mouse("drag",r)}function v(e){Jn(e.view).on("mousemove.drag mouseup.drag",null),ar(e.view,n),ir(e),u.mouse("end",e)}function m(e,t){if(i.call(this,e,t)){var n,r,a=e.changedTouches,s=o.call(this,e,t),u=a.length;for(n=0;n<u;++n)(r=b(this,s,e,t,a[n].identifier,a[n]))&&(rr(e),r("start",e,a[n]))}}function g(e){var t,n,r=e.changedTouches,i=r.length;for(t=0;t<i;++t)(n=u[r[t].identifier])&&(ir(e),n("drag",e,r[t]))}function y(e){var t,n,i=e.changedTouches,o=i.length;for(r&&clearTimeout(r),r=setTimeout((function(){r=null}),500),t=0;t<o;++t)(n=u[i[t].identifier])&&(rr(e),n("end",e,i[t]))}function b(e,t,n,r,i,o){var s,d,h,p=c.copy(),v=cr(o||n,t);if(null!=(h=a.call(e,new so("beforestart",{sourceEvent:n,target:f,identifier:i,active:l,x:v[0],y:v[1],dx:0,dy:0,dispatch:p}),r)))return s=h.x-v[0]||0,d=h.y-v[1]||0,function n(o,a,c){var m,g=v;switch(o){case"start":u[i]=n,m=l++;break;case"end":delete u[i],--l;case"drag":v=cr(c||a,t),m=l}p.call(o,e,new so(o,{sourceEvent:a,subject:h,target:f,identifier:i,active:m,x:v[0]+s,y:v[1]+d,dx:v[0]-g[0],dy:v[1]-g[1],dispatch:p}),r)}}return f.filter=function(e){return arguments.length?(i="function"===typeof e?e:ao(!!e),f):i},f.container=function(e){return arguments.length?(o="function"===typeof e?e:ao(e),f):o},f.subject=function(e){return arguments.length?(a="function"===typeof e?e:ao(e),f):a},f.touchable=function(e){return arguments.length?(s="function"===typeof e?e:ao(!!e),f):s},f.on=function(){var e=c.on.apply(c,arguments);return e===c?f:e},f.clickDistance=function(e){return arguments.length?(d=(e=+e)*e,f):Math.sqrt(d)},f}().subject((function(){if(!t.enableNodeDrag)return null;var e=a();return e&&"Node"===e.type?e.d:null})).on("start",(function(e){var n=e.subject;n.__initialDragPos={x:n.x,y:n.y,fx:n.fx,fy:n.fy},e.active||(n.fx=n.x,n.fy=n.y),t.canvas.classList.add("grabbable")})).on("drag",(function(e){var n=e.subject,r=n.__initialDragPos,i=e,o=Xi(t.canvas).k,a={x:r.x+(i.x-r.x)/o-n.x,y:r.y+(i.y-r.y)/o-n.y};["x","y"].forEach((function(e){return n["f".concat(e)]=n[e]=r[e]+(i[e]-r[e])/o})),t.forceGraph.d3AlphaTarget(.3).resetCountdown(),t.isPointerDragging=!0,n.__dragged=!0,t.onNodeDrag(n,a)})).on("end",(function(e){var n=e.subject,r=n.__initialDragPos,i={x:n.x-r.x,y:n.y-r.y};void 0===r.fx&&(n.fx=void 0),void 0===r.fy&&(n.fy=void 0),delete n.__initialDragPos,t.forceGraph.d3AlphaTarget(0).resetCountdown(),t.canvas.classList.remove("grabbable"),t.isPointerDragging=!1,n.__dragged&&(delete n.__dragged,t.onNodeDragEnd(n,i))}))),t.zoom(t.zoom.__baseElem=Jn(t.canvas)),t.zoom.__baseElem.on("dblclick.zoom",null),t.zoom.filter((function(e){return!e.button&&t.enableZoomPanInteraction&&(t.enableZoomInteraction||"wheel"!==e.type)&&(t.enablePanInteraction||"wheel"===e.type)})).on("zoom",(function(e){var n=e.transform;[r,i].forEach((function(e){Oa(e),e.translate(n.x,n.y),e.scale(n.k,n.k)})),t.onZoom(aa({},n)),t.needsRedraw=!0})).on("end",(function(e){return t.onZoomEnd(aa({},e.transform))})),Ta(t),t.forceGraph.onNeedsRedraw((function(){return t.needsRedraw=!0})).onFinishUpdate((function(){Xi(t.canvas).k===t.lastSetZoom&&t.graphData.nodes.length&&(t.zoom.scaleTo(t.zoom.__baseElem,t.lastSetZoom=4/Math.cbrt(t.graphData.nodes.length)),t.needsRedraw=!0)}));var s=document.createElement("div");s.classList.add("graph-tooltip"),n.appendChild(s),["pointermove","pointerdown"].forEach((function(e){return n.addEventListener(e,(function(r){"pointerdown"===e&&(t.isPointerPressed=!0,t.pointerDownEvent=r),!t.isPointerDragging&&"pointermove"===r.type&&t.onBackgroundClick&&(r.pressure>0||t.isPointerPressed)&&("touch"!==r.pointerType||void 0===r.movementX||[r.movementX,r.movementY].some((function(e){return Math.abs(e)>1})))&&(t.isPointerDragging=!0);var i=function(e){var t=e.getBoundingClientRect(),n=window.pageXOffset||document.documentElement.scrollLeft,r=window.pageYOffset||document.documentElement.scrollTop;return{top:t.top+r,left:t.left+n}}(n);o.x=r.pageX-i.left,o.y=r.pageY-i.top,s.style.top="".concat(o.y,"px"),s.style.left="".concat(o.x,"px")}),{passive:!0})})),n.addEventListener("pointerup",(function(e){if(t.isPointerPressed=!1,t.isPointerDragging)t.isPointerDragging=!1;else{var n=[e,t.pointerDownEvent];requestAnimationFrame((function(){if(0===e.button)if(t.hoverObj){var r=t["on".concat(t.hoverObj.type,"Click")];r&&r.apply(void 0,[t.hoverObj.d].concat(n))}else t.onBackgroundClick&&t.onBackgroundClick.apply(t,n);if(2===e.button)if(t.hoverObj){var i=t["on".concat(t.hoverObj.type,"RightClick")];i&&i.apply(void 0,[t.hoverObj.d].concat(n))}else t.onBackgroundRightClick&&t.onBackgroundRightClick.apply(t,n)}))}}),{passive:!0}),n.addEventListener("contextmenu",(function(e){return!(t.onBackgroundRightClick||t.onNodeRightClick||t.onLinkRightClick)||(e.preventDefault(),!1)})),t.forceGraph(r),t.shadowGraph(i);var u=mo()((function(){Ca(i,t.width,t.height),t.shadowGraph.linkWidth((function(e){return(0,w.default)(t.linkWidth)(e)+t.linkHoverPrecision}));var e=Xi(t.canvas);t.shadowGraph.globalScale(e.k).tickFrame()}),800);(this._animationCycle=function e(){var n=!t.autoPauseRedraw||!!t.needsRedraw||t.forceGraph.isEngineRunning()||t.graphData.links.some((function(e){return e.__photons&&e.__photons.length}));if(t.needsRedraw=!1,t.enablePointerInteraction){var i=t.isPointerDragging?null:a();if(i!==t.hoverObj){var o=t.hoverObj,c=o?o.type:null,l=i?i.type:null;if(c&&c!==l){var d=t["on".concat(c,"Hover")];d&&d(null,o.d)}if(l){var f=t["on".concat(l,"Hover")];f&&f(i.d,c===l?o.d:null)}var h=i&&(0,w.default)(t["".concat(i.type.toLowerCase(),"Label")])(i.d)||"";s.style.visibility=h?"visible":"hidden",s.innerHTML=h,t.canvas.classList[i&&t["on".concat(l,"Click")]||!i&&t.onBackgroundClick?"add":"remove"]("clickable"),t.hoverObj=i}n&&u()}if(n){Ca(r,t.width,t.height);var p=Xi(t.canvas).k;t.onRenderFramePre&&t.onRenderFramePre(r,p),t.forceGraph.globalScale(p).tickFrame(),t.onRenderFramePost&&t.onRenderFramePost(r,p)}st.update(),t.animationFrameRequestId=requestAnimationFrame(e)})()},update:function(e){}}),Pa={width:S().number,height:S().number,graphData:S().shape({nodes:S().arrayOf(S().object).isRequired,links:S().arrayOf(S().object).isRequired}),backgroundColor:S().string,nodeRelSize:S().number,nodeId:S().string,nodeLabel:S().oneOfType([S().string,S().func]),nodeVal:S().oneOfType([S().number,S().string,S().func]),nodeVisibility:S().oneOfType([S().bool,S().string,S().func]),nodeColor:S().oneOfType([S().string,S().func]),nodeAutoColorBy:S().oneOfType([S().string,S().func]),onNodeHover:S().func,onNodeClick:S().func,linkSource:S().string,linkTarget:S().string,linkLabel:S().oneOfType([S().string,S().func]),linkVisibility:S().oneOfType([S().bool,S().string,S().func]),linkColor:S().oneOfType([S().string,S().func]),linkAutoColorBy:S().oneOfType([S().string,S().func]),linkWidth:S().oneOfType([S().number,S().string,S().func]),linkCurvature:S().oneOfType([S().number,S().string,S().func]),linkDirectionalArrowLength:S().oneOfType([S().number,S().string,S().func]),linkDirectionalArrowColor:S().oneOfType([S().string,S().func]),linkDirectionalArrowRelPos:S().oneOfType([S().number,S().string,S().func]),linkDirectionalParticles:S().oneOfType([S().number,S().string,S().func]),linkDirectionalParticleSpeed:S().oneOfType([S().number,S().string,S().func]),linkDirectionalParticleWidth:S().oneOfType([S().number,S().string,S().func]),linkDirectionalParticleColor:S().oneOfType([S().string,S().func]),onLinkHover:S().func,onLinkClick:S().func,dagMode:S().oneOf(["td","bu","lr","rl","zin","zout","radialin","radialout"]),dagLevelDistance:S().number,dagNodeFilter:S().func,onDagError:S().func,d3AlphaMin:S().number,d3AlphaDecay:S().number,d3VelocityDecay:S().number,warmupTicks:S().number,cooldownTicks:S().number,cooldownTime:S().number,onEngineTick:S().func,onEngineStop:S().func,getGraphBbox:S().func},Sa={zoomToFit:S().func,onNodeRightClick:S().func,onNodeDrag:S().func,onNodeDragEnd:S().func,onLinkRightClick:S().func,linkHoverPrecision:S().number,onBackgroundClick:S().func,onBackgroundRightClick:S().func,enablePointerInteraction:S().bool,enableNodeDrag:S().bool},Ma={showNavInfo:S().bool,nodeOpacity:S().number,nodeResolution:S().number,nodeThreeObject:S().oneOfType([S().object,S().string,S().func]),nodeThreeObjectExtend:S().oneOfType([S().bool,S().string,S().func]),linkOpacity:S().number,linkResolution:S().number,linkCurveRotation:S().oneOfType([S().number,S().string,S().func]),linkMaterial:S().oneOfType([S().object,S().string,S().func]),linkThreeObject:S().oneOfType([S().object,S().string,S().func]),linkThreeObjectExtend:S().oneOfType([S().bool,S().string,S().func]),linkPositionUpdate:S().func,linkDirectionalArrowResolution:S().number,linkDirectionalParticleResolution:S().number,forceEngine:S().oneOf(["d3","ngraph"]),ngraphPhysics:S().object,numDimensions:S().oneOf([1,2,3])},Ra=Object.assign({},Pa,Sa,{linkLineDash:S().oneOfType([S().arrayOf(S().number),S().string,S().func]),nodeCanvasObjectMode:S().oneOfType([S().string,S().func]),nodeCanvasObject:S().func,nodePointerAreaPaint:S().func,linkCanvasObjectMode:S().oneOfType([S().string,S().func]),linkCanvasObject:S().func,linkPointerAreaPaint:S().func,autoPauseRedraw:S().bool,minZoom:S().number,maxZoom:S().number,enableZoomInteraction:S().bool,enablePanInteraction:S().bool,onZoom:S().func,onZoomEnd:S().func,onRenderFramePre:S().func,onRenderFramePost:S().func}),ja=Object.assign({},Pa,Sa,Ma,{enableNavigationControls:S().bool,controlType:S().oneOf(["trackball","orbit","fly"]),rendererConfig:S().object,extraRenderers:S().arrayOf(S().shape({render:S().func.isRequired}))}),Da=Object.assign({},Pa,Ma,{nodeDesc:S().oneOfType([S().string,S().func]),linkDesc:S().oneOfType([S().string,S().func])}),Na=Object.assign({},Pa,Ma,{markerAttrs:S().object,yOffset:S().number,glScale:S().number});const La=y(A,{methodNames:["getGraphBbox","emitParticle","d3Force","d3ReheatSimulation","refresh"]});La.displayName="ForceGraphVR",La.propTypes=Da;const Ia=y(z,{methodNames:["getGraphBbox","emitParticle","d3Force","d3ReheatSimulation","refresh"],initPropNames:["markerAttrs"]});Ia.displayName="ForceGraphAR",Ia.propTypes=Na;const za=y(Pt,{methodNames:["emitParticle","d3Force","d3ReheatSimulation","stopAnimation","pauseAnimation","resumeAnimation","cameraPosition","zoomToFit","getGraphBbox","screen2GraphCoords","graph2ScreenCoords","postProcessingComposer","scene","camera","renderer","controls","refresh"],initPropNames:["controlType","rendererConfig","extraRenderers"]});za.displayName="ForceGraph3D",za.propTypes=ja;const Ba=y(Aa,{methodNames:["emitParticle","d3Force","d3ReheatSimulation","stopAnimation","pauseAnimation","resumeAnimation","centerAt","zoom","zoomToFit","getGraphBbox","screen2GraphCoords","graph2ScreenCoords"]});Ba.displayName="ForceGraph2D",Ba.propTypes=Ra},1398:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return ue}});var r=n(2212),i=n(4505),o=n(5560),a=n(2405),s=n(216),u=n(6917),c=n(4736),l=n.n(c),d=n(6505),f=n.n(d),h=n(4858),p=n(2539),v=n(6701),m=n(3752),g=n(1527);function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function b(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function w(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function x(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=e&&("undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);a=!0);}catch(u){s=!0,i=u}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(e,t)||k(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function E(e){return function(e){if(Array.isArray(e))return _(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||k(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function k(e,t){if(e){if("string"===typeof e)return _(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_(e,t):void 0}}function _(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function T(e,t,n){var r=n.objBindAttr,i=void 0===r?"__obj":r,o=n.dataBindAttr,a=void 0===o?"__data":o,s=n.idAccessor,u=n.purge,c=void 0!==u&&u,l=function(e){return e.hasOwnProperty(a)},d=t.filter((function(e){return!l(e)})),f=t.filter(l).map((function(e){return e[a]})),h=c?{enter:e,exit:f,update:[]}:function(e,t,n){var r={enter:[],update:[],exit:[]};if(n){var i=(0,g.Z)(e,n,!1),o=(0,g.Z)(t,n,!1),a=Object.assign({},i,o);Object.entries(a).forEach((function(e){var t=x(e,2),n=t[0],a=t[1],s=i.hasOwnProperty(n)?o.hasOwnProperty(n)?"update":"exit":"enter";r[s].push("update"===s?[i[n],o[n]]:a)}))}else{var s=new Set(e),u=new Set(t);new Set([].concat(E(s),E(u))).forEach((function(e){var t=s.has(e)?u.has(e)?"update":"exit":"enter";r[t].push("update"===t?[e,e]:e)}))}return r}(f,e,s);return h.update=h.update.map((function(e){var t=x(e,2),n=t[0],r=t[1];return n!==r&&(r[i]=n[i],r[i][a]=r),r})),h.exit=h.exit.concat(d.map((function(e){return b({},i,e)}))),h}var O=function(e,t,n,r,i){var o=i.createObj,a=void 0===o?function(e){return{}}:o,s=i.updateObj,u=void 0===s?function(e,t){}:s,c=i.exitObj,l=void 0===c?function(e){}:c,d=i.objBindAttr,f=void 0===d?"__obj":d,h=i.dataBindAttr,p=void 0===h?"__data":h,v=w(i,["createObj","updateObj","exitObj","objBindAttr","dataBindAttr"]),m=T(e,t,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({objBindAttr:f,dataBindAttr:p},v)),g=m.enter,x=m.update;m.exit.forEach((function(e){var t=e[f];delete e[f],l(t),r(t)}));var k=function(e){var t=[];return e.forEach((function(e){var n=a(e);n&&(n[p]=e,e[f]=n,t.push(n))})),t}(g);!function(e){e.forEach((function(e){var t=e[f];t&&(t[p]=e,u(t,e))}))}([].concat(E(g),E(x))),k.forEach(n)},C=n(2462),A=n(7646),P=n(7621),S=n.n(P);function M(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function R(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?M(Object(n),!0).forEach((function(t){N(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):M(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function j(e){return(j="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function D(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function N(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function L(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&z(e,t)}function I(e){return(I=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function z(e,t){return(z=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function B(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function F(e,t,n){return(F=B()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&z(i,n.prototype),i}).apply(null,arguments)}function H(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function V(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function U(e,t){return!t||"object"!==typeof t&&"function"!==typeof t?V(e):t}function G(e){var t=B();return function(){var n,r=I(e);if(t){var i=I(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return U(this,n)}}function q(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);a=!0);}catch(u){s=!0,i=u}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(e,t)||W(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function K(e){return function(e){if(Array.isArray(e))return Z(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||W(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function W(e,t){if(e){if("string"===typeof e)return Z(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Z(e,t):void 0}}function Z(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var $=function e(t){t instanceof Array?t.forEach(e):(t.map&&t.map.dispose(),t.dispose())},X=function e(t){t.geometry&&t.geometry.dispose(),t.material&&$(t.material),t.texture&&t.texture.dispose(),t.children&&t.children.forEach(e)},Y=function(e){for(;e.children.length;){var t=e.children[0];e.remove(t),X(t)}},Q=["objFilter"];function J(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.objFilter,i=void 0===r?function(){return!0}:r,o=H(n,Q);return O(e,t.children.filter(i),(function(e){return t.add(e)}),(function(e){t.remove(e),Y(e)}),R({objBindAttr:"__threeObj"},o))}var ee=function(e){return isNaN(e)?parseInt(S()(e).toHex(),16):e},te=function(e){return isNaN(e)?S()(e).getAlpha():1},ne=(0,C.Z)(A.Z);function re(e,t,n){t&&"string"===typeof n&&e.filter((function(e){return!e[n]})).forEach((function(e){e[n]=ne(t(e))}))}var ie=window.THREE?window.THREE:{Group:r.ZAu,Mesh:r.Kj0,MeshLambertMaterial:r.YBo,Color:r.Ilk,BufferGeometry:r.u9r,BufferAttribute:r.TlE,Matrix4:r.yGw,Vector3:r.Pa4,SphereBufferGeometry:r.Aip,CylinderBufferGeometry:r.m_w,TubeBufferGeometry:r.Lcc,ConeBufferGeometry:r._3,Line:r.x12,LineBasicMaterial:r.nls,QuadraticBezierCurve3:r.mXe,CubicBezierCurve3:r.yj7,Box3:r.ZzF},oe={graph:l(),forcelayout:f()},ae=(new ie.BufferGeometry).setAttribute?"setAttribute":"addAttribute",se=(new ie.BufferGeometry).applyMatrix4?"applyMatrix4":"applyMatrix";var ue=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Object,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=function(t){L(i,t);var r=G(i);function i(){var t;D(this,i);for(var o=arguments.length,a=new Array(o),s=0;s<o;s++)a[s]=arguments[s];return(t=r.call.apply(r,[this].concat(a))).__kapsuleInstance=e().apply(void 0,[].concat(K(n?[V(t)]:[]),a)),t}return i}(t);return Object.keys(e()).forEach((function(e){return r.prototype[e]=function(){var t,n=(t=this.__kapsuleInstance)[e].apply(t,arguments);return n===this.__kapsuleInstance?this:n}})),r}((0,h.Z)({props:{jsonUrl:{onChange:function(e,t){var n=this;e&&!t.fetchingJson&&(t.fetchingJson=!0,t.onLoading(),fetch(e).then((function(e){return e.json()})).then((function(e){t.fetchingJson=!1,t.onFinishLoading(e),n.graphData(e)})))},triggerUpdate:!1},graphData:{default:{nodes:[],links:[]},onChange:function(e,t){t.engineRunning=!1}},numDimensions:{default:3,onChange:function(e,t){var n=t.d3ForceLayout.force("charge");function r(e,t){e.forEach((function(e){delete e[t],delete e["v".concat(t)]}))}n&&n.strength(e>2?-60:-30),e<3&&r(t.graphData.nodes,"z"),e<2&&r(t.graphData.nodes,"y")}},dagMode:{onChange:function(e,t){!e&&"d3"===t.forceEngine&&(t.graphData.nodes||[]).forEach((function(e){return e.fx=e.fy=e.fz=void 0}))}},dagLevelDistance:{},dagNodeFilter:{default:function(e){return!0}},onDagError:{triggerUpdate:!1},nodeRelSize:{default:4},nodeId:{default:"id"},nodeVal:{default:"val"},nodeResolution:{default:8},nodeColor:{default:"color"},nodeAutoColorBy:{},nodeOpacity:{default:.75},nodeVisibility:{default:!0},nodeThreeObject:{},nodeThreeObjectExtend:{default:!1},linkSource:{default:"source"},linkTarget:{default:"target"},linkVisibility:{default:!0},linkColor:{default:"color"},linkAutoColorBy:{},linkOpacity:{default:.2},linkWidth:{},linkResolution:{default:6},linkCurvature:{default:0,triggerUpdate:!1},linkCurveRotation:{default:0,triggerUpdate:!1},linkMaterial:{},linkThreeObject:{},linkThreeObjectExtend:{default:!1},linkPositionUpdate:{triggerUpdate:!1},linkDirectionalArrowLength:{default:0},linkDirectionalArrowColor:{},linkDirectionalArrowRelPos:{default:.5,triggerUpdate:!1},linkDirectionalArrowResolution:{default:8},linkDirectionalParticles:{default:0},linkDirectionalParticleSpeed:{default:.01,triggerUpdate:!1},linkDirectionalParticleWidth:{default:.5},linkDirectionalParticleColor:{},linkDirectionalParticleResolution:{default:4},forceEngine:{default:"d3"},d3AlphaMin:{default:0},d3AlphaDecay:{default:.0228,triggerUpdate:!1,onChange:function(e,t){t.d3ForceLayout.alphaDecay(e)}},d3AlphaTarget:{default:0,triggerUpdate:!1,onChange:function(e,t){t.d3ForceLayout.alphaTarget(e)}},d3VelocityDecay:{default:.4,triggerUpdate:!1,onChange:function(e,t){t.d3ForceLayout.velocityDecay(e)}},ngraphPhysics:{default:{timeStep:20,gravity:-1.2,theta:.8,springLength:30,springCoefficient:8e-4,dragCoefficient:.02}},warmupTicks:{default:0,triggerUpdate:!1},cooldownTicks:{default:1/0,triggerUpdate:!1},cooldownTime:{default:15e3,triggerUpdate:!1},onLoading:{default:function(){},triggerUpdate:!1},onFinishLoading:{default:function(){},triggerUpdate:!1},onUpdate:{default:function(){},triggerUpdate:!1},onFinishUpdate:{default:function(){},triggerUpdate:!1},onEngineTick:{default:function(){},triggerUpdate:!1},onEngineStop:{default:function(){},triggerUpdate:!1}},methods:{refresh:function(e){return e._flushObjects=!0,e._rerender(),this},d3Force:function(e,t,n){return void 0===n?e.d3ForceLayout.force(t):(e.d3ForceLayout.force(t,n),this)},d3ReheatSimulation:function(e){return e.d3ForceLayout.alpha(1),this.resetCountdown(),this},resetCountdown:function(e){return e.cntTicks=0,e.startTickTime=new Date,e.engineRunning=!0,this},tickFrame:function(e){var t="ngraph"!==e.forceEngine;return e.engineRunning&&function(){++e.cntTicks>e.cooldownTicks||new Date-e.startTickTime>e.cooldownTime||t&&e.d3AlphaMin>0&&e.d3ForceLayout.alpha()<e.d3AlphaMin?(e.engineRunning=!1,e.onEngineStop()):(e.layout[t?"tick":"step"](),e.onEngineTick());e.graphData.nodes.forEach((function(n){var r=n.__threeObj;if(r){var i=t?n:e.layout.getNodePosition(n[e.nodeId]);r.position.x=i.x,r.position.y=i.y||0,r.position.z=i.z||0}}));var n=(0,p.default)(e.linkWidth),r=(0,p.default)(e.linkCurvature),i=(0,p.default)(e.linkCurveRotation),o=(0,p.default)(e.linkThreeObjectExtend);function a(n){var o=t?n:e.layout.getLinkPosition(e.layout.graph.getLink(n.source,n.target).id),a=o[t?"source":"from"],s=o[t?"target":"to"];if(a&&s&&a.hasOwnProperty("x")&&s.hasOwnProperty("x")){var u=r(n);if(u){var c,l=new ie.Vector3(a.x,a.y||0,a.z||0),d=new ie.Vector3(s.x,s.y||0,s.z||0),f=l.distanceTo(d),h=i(n);if(f>0){var p=s.x-a.x,v=s.y-a.y||0,m=(new ie.Vector3).subVectors(d,l),g=m.clone().multiplyScalar(u).cross(0!==p||0!==v?new ie.Vector3(0,0,1):new ie.Vector3(0,1,0)).applyAxisAngle(m.normalize(),h).add((new ie.Vector3).addVectors(l,d).divideScalar(2));c=new ie.QuadraticBezierCurve3(l,g,d)}else{var y=70*u,b=-h,w=b+Math.PI/2;c=new ie.CubicBezierCurve3(l,new ie.Vector3(y*Math.cos(w),y*Math.sin(w),0).add(l),new ie.Vector3(y*Math.cos(b),y*Math.sin(b),0).add(l),d)}n.__curve=c}else n.__curve=null}}e.graphData.links.forEach((function(r){var i=r.__lineObj;if(i){var s=t?r:e.layout.getLinkPosition(e.layout.graph.getLink(r.source,r.target).id),u=s[t?"source":"from"],c=s[t?"target":"to"];if(u&&c&&u.hasOwnProperty("x")&&c.hasOwnProperty("x")){a(r);var l=o(r);if(!e.linkPositionUpdate||!e.linkPositionUpdate(l?i.children[1]:i,{start:{x:u.x,y:u.y,z:u.z},end:{x:c.x,y:c.y,z:c.z}},r)||l){var d=30,f=r.__curve,h=i.children.length?i.children[0]:i;if("Line"===h.type){if(f)h.geometry.setFromPoints(f.getPoints(d));else{var p=h.geometry.getAttribute("position");p&&p.array&&6===p.array.length||h.geometry[ae]("position",p=new ie.BufferAttribute(new Float32Array(6),3)),p.array[0]=u.x,p.array[1]=u.y||0,p.array[2]=u.z||0,p.array[3]=c.x,p.array[4]=c.y||0,p.array[5]=c.z||0,p.needsUpdate=!0}h.geometry.computeBoundingSphere()}else if("Mesh"===h.type)if(f){h.geometry.type.match(/^Tube(Buffer)?Geometry$/)||(h.position.set(0,0,0),h.rotation.set(0,0,0),h.scale.set(1,1,1));var v=Math.ceil(10*n(r))/10/2,m=new ie.TubeBufferGeometry(f,d,v,e.linkResolution,!1);h.geometry.dispose(),h.geometry=m}else{if(!h.geometry.type.match(/^Cylinder(Buffer)?Geometry$/)){var g=Math.ceil(10*n(r))/10/2,y=new ie.CylinderBufferGeometry(g,g,1,e.linkResolution,1,!1);y[se]((new ie.Matrix4).makeTranslation(0,.5,0)),y[se]((new ie.Matrix4).makeRotationX(Math.PI/2)),h.geometry.dispose(),h.geometry=y}var b=new ie.Vector3(u.x,u.y||0,u.z||0),w=new ie.Vector3(c.x,c.y||0,c.z||0),x=b.distanceTo(w);h.position.x=b.x,h.position.y=b.y,h.position.z=b.z,h.scale.z=x,h.parent.localToWorld(w),h.lookAt(w)}}}}}))}(),function(){var n=(0,p.default)(e.linkDirectionalArrowRelPos),r=(0,p.default)(e.linkDirectionalArrowLength),i=(0,p.default)(e.nodeVal);e.graphData.links.forEach((function(o){var a=o.__arrowObj;if(a){var s=t?o:e.layout.getLinkPosition(e.layout.graph.getLink(o.source,o.target).id),u=s[t?"source":"from"],c=s[t?"target":"to"];if(u&&c&&u.hasOwnProperty("x")&&c.hasOwnProperty("x")){var l=Math.sqrt(Math.max(0,i(u)||1))*e.nodeRelSize,d=Math.sqrt(Math.max(0,i(c)||1))*e.nodeRelSize,f=r(o),h=n(o),p=o.__curve?function(e){return o.__curve.getPoint(e)}:function(e){var t=function(e,t,n,r){return t[e]+(n[e]-t[e])*r||0};return{x:t("x",u,c,e),y:t("y",u,c,e),z:t("z",u,c,e)}},v=o.__curve?o.__curve.getLength():Math.sqrt(["x","y","z"].map((function(e){return Math.pow((c[e]||0)-(u[e]||0),2)})).reduce((function(e,t){return e+t}),0)),m=l+f+(v-l-d-f)*h,g=p(m/v),y=p((m-f)/v);["x","y","z"].forEach((function(e){return a.position[e]=y[e]}));var b=F(ie.Vector3,K(["x","y","z"].map((function(e){return g[e]}))));a.parent.localToWorld(b),a.lookAt(b)}}}))}(),function(){var n=(0,p.default)(e.linkDirectionalParticleSpeed);e.graphData.links.forEach((function(r){var i=r.__photonsObj&&r.__photonsObj.children,o=r.__singleHopPhotonsObj&&r.__singleHopPhotonsObj.children;if(o&&o.length||i&&i.length){var a=t?r:e.layout.getLinkPosition(e.layout.graph.getLink(r.source,r.target).id),s=a[t?"source":"from"],u=a[t?"target":"to"];if(s&&u&&s.hasOwnProperty("x")&&u.hasOwnProperty("x")){var c=n(r),l=r.__curve?function(e){return r.__curve.getPoint(e)}:function(e){var t=function(e,t,n,r){return t[e]+(n[e]-t[e])*r||0};return{x:t("x",s,u,e),y:t("y",s,u,e),z:t("z",s,u,e)}};[].concat(K(i||[]),K(o||[])).forEach((function(e,t){var n="singleHopPhotons"===e.parent.__linkThreeObjType;if(e.hasOwnProperty("__progressRatio")||(e.__progressRatio=n?0:t/i.length),e.__progressRatio+=c,e.__progressRatio>=1){if(n)return e.parent.remove(e),void Y(e);e.__progressRatio=e.__progressRatio%1}var r=e.__progressRatio,o=l(r);["x","y","z"].forEach((function(t){return e.position[t]=o[t]}))}))}}}))}(),this},emitParticle:function(e,t){if(t){if(!t.__singleHopPhotonsObj){var n=new ie.Group;n.__linkThreeObjType="singleHopPhotons",t.__singleHopPhotonsObj=n,e.graphScene.add(n)}var r=(0,p.default)(e.linkDirectionalParticleWidth),i=Math.ceil(10*r(t))/10/2,o=e.linkDirectionalParticleResolution,a=new ie.SphereBufferGeometry(i,o,o),s=(0,p.default)(e.linkColor),u=(0,p.default)(e.linkDirectionalParticleColor)(t)||s(t)||"#f0f0f0",c=new ie.Color(ee(u)),l=3*e.linkOpacity,d=new ie.MeshLambertMaterial({color:c,transparent:!0,opacity:l});t.__singleHopPhotonsObj.add(new ie.Mesh(a,d))}return this},getGraphBbox:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return!0};if(!e.initialised)return null;var n=function e(n){var r=[];if(n.geometry){n.geometry.computeBoundingBox();var i=new ie.Box3;i.copy(n.geometry.boundingBox).applyMatrix4(n.matrixWorld),r.push(i)}return r.concat.apply(r,K((n.children||[]).filter((function(e){return!e.hasOwnProperty("__graphObjType")||"node"===e.__graphObjType&&t(e.__data)})).map(e)))}(e.graphScene);return n.length?Object.assign.apply(Object,K(["x","y","z"].map((function(e){return N({},e,[(0,v.Z)(n,(function(t){return t.min[e]})),(0,m.Z)(n,(function(t){return t.max[e]}))])})))):null}},stateInit:function(){return{d3ForceLayout:(0,i.Z)().force("link",(0,o.Z)()).force("charge",(0,a.Z)()).force("center",(0,s.Z)()).force("dagRadial",null).stop(),engineRunning:!1}},init:function(e,t){t.graphScene=e},update:function(e,t){var n=function(e){return e.some((function(e){return t.hasOwnProperty(e)}))};if(e.engineRunning=!1,e.onUpdate(),null!==e.nodeAutoColorBy&&n(["nodeAutoColorBy","graphData","nodeColor"])&&re(e.graphData.nodes,(0,p.default)(e.nodeAutoColorBy),e.nodeColor),null!==e.linkAutoColorBy&&n(["linkAutoColorBy","graphData","linkColor"])&&re(e.graphData.links,(0,p.default)(e.linkAutoColorBy),e.linkColor),e._flushObjects||n(["graphData","nodeThreeObject","nodeThreeObjectExtend","nodeVal","nodeColor","nodeVisibility","nodeRelSize","nodeResolution","nodeOpacity"])){var r=(0,p.default)(e.nodeThreeObject),i=(0,p.default)(e.nodeThreeObjectExtend),o=(0,p.default)(e.nodeVal),a=(0,p.default)(e.nodeColor),s=(0,p.default)(e.nodeVisibility),c={},l={};J(e.graphData.nodes.filter(s),e.graphScene,{purge:e._flushObjects||n(["nodeThreeObject","nodeThreeObjectExtend"]),objFilter:function(e){return"node"===e.__graphObjType},createObj:function(t){var n,o=r(t),a=i(t);return o&&e.nodeThreeObject===o&&(o=o.clone()),o&&!a?n=o:((n=new ie.Mesh).__graphDefaultObj=!0,o&&a&&n.add(o)),n.__graphObjType="node",n},updateObj:function(t,n){if(t.__graphDefaultObj){var r=o(n)||1,i=Math.cbrt(r)*e.nodeRelSize,s=e.nodeResolution;t.geometry.type.match(/^Sphere(Buffer)?Geometry$/)&&t.geometry.parameters.radius===i&&t.geometry.parameters.widthSegments===s||(c.hasOwnProperty(r)||(c[r]=new ie.SphereBufferGeometry(i,s,s)),t.geometry.dispose(),t.geometry=c[r]);var u=a(n),d=new ie.Color(ee(u||"#ffffaa")),f=e.nodeOpacity*te(u);"MeshLambertMaterial"===t.material.type&&t.material.color.equals(d)&&t.material.opacity===f||(l.hasOwnProperty(u)||(l[u]=new ie.MeshLambertMaterial({color:d,transparent:!0,opacity:f})),t.material.dispose(),t.material=l[u])}}})}if(e._flushObjects||n(["graphData","linkThreeObject","linkThreeObjectExtend","linkMaterial","linkColor","linkWidth","linkVisibility","linkResolution","linkOpacity","linkDirectionalArrowLength","linkDirectionalArrowColor","linkDirectionalArrowResolution","linkDirectionalParticles","linkDirectionalParticleWidth","linkDirectionalParticleColor","linkDirectionalParticleResolution"])){var d=(0,p.default)(e.linkThreeObject),f=(0,p.default)(e.linkThreeObjectExtend),h=(0,p.default)(e.linkMaterial),v=(0,p.default)(e.linkVisibility),m=(0,p.default)(e.linkColor),g=(0,p.default)(e.linkWidth),y={},b={},w={},x=e.graphData.links.filter(v);if(J(x,e.graphScene,{objBindAttr:"__lineObj",purge:e._flushObjects||n(["linkThreeObject","linkThreeObjectExtend","linkWidth"]),objFilter:function(e){return"link"===e.__graphObjType},createObj:function(t){var n,r,i=d(t),o=f(t);if(i&&e.linkThreeObject===i&&(i=i.clone()),!i||o)if(!!g(t))n=new ie.Mesh;else{var a=new ie.BufferGeometry;a[ae]("position",new ie.BufferAttribute(new Float32Array(6),3)),n=new ie.Line(a)}return i?o?((r=new ie.Group).__graphDefaultObj=!0,r.add(n),r.add(i)):r=i:(r=n).__graphDefaultObj=!0,r.renderOrder=10,r.__graphObjType="link",r},updateObj:function(t,n){if(t.__graphDefaultObj){var r=t.children.length?t.children[0]:t,i=Math.ceil(10*g(n))/10,o=!!i;if(o){var a=i/2,s=e.linkResolution;if(!r.geometry.type.match(/^Cylinder(Buffer)?Geometry$/)||r.geometry.parameters.radiusTop!==a||r.geometry.parameters.radialSegments!==s){if(!y.hasOwnProperty(i)){var u=new ie.CylinderBufferGeometry(a,a,1,s,1,!1);u[se]((new ie.Matrix4).makeTranslation(0,.5,0)),u[se]((new ie.Matrix4).makeRotationX(Math.PI/2)),y[i]=u}r.geometry.dispose(),r.geometry=y[i]}}var c=h(n);if(c)r.material=c;else{var l=m(n),d=new ie.Color(ee(l||"#f0f0f0")),f=e.linkOpacity*te(l),p=o?"MeshLambertMaterial":"LineBasicMaterial";if(r.material.type!==p||!r.material.color.equals(d)||r.material.opacity!==f){var v=o?b:w;v.hasOwnProperty(l)||(v[l]=new ie[p]({color:d,transparent:f<1,opacity:f,depthWrite:f>=1})),r.material.dispose(),r.material=v[l]}}}}}),e.linkDirectionalArrowLength||t.hasOwnProperty("linkDirectionalArrowLength")){var E=(0,p.default)(e.linkDirectionalArrowLength),k=(0,p.default)(e.linkDirectionalArrowColor);J(x.filter(E),e.graphScene,{objBindAttr:"__arrowObj",objFilter:function(e){return"arrow"===e.__linkThreeObjType},createObj:function(){var e=new ie.Mesh(void 0,new ie.MeshLambertMaterial({transparent:!0}));return e.__linkThreeObjType="arrow",e},updateObj:function(t,n){var r=E(n),i=e.linkDirectionalArrowResolution;if(!t.geometry.type.match(/^Cone(Buffer)?Geometry$/)||t.geometry.parameters.height!==r||t.geometry.parameters.radialSegments!==i){var o=new ie.ConeBufferGeometry(.25*r,r,i);o.translate(0,r/2,0),o.rotateX(Math.PI/2),t.geometry.dispose(),t.geometry=o}t.material.color=new ie.Color(k(n)||m(n)||"#f0f0f0"),t.material.opacity=3*e.linkOpacity}})}if(e.linkDirectionalParticles||t.hasOwnProperty("linkDirectionalParticles")){var _=(0,p.default)(e.linkDirectionalParticles),T=(0,p.default)(e.linkDirectionalParticleWidth),O=(0,p.default)(e.linkDirectionalParticleColor),C={},A={};J(x.filter(_),e.graphScene,{objBindAttr:"__photonsObj",objFilter:function(e){return"photons"===e.__linkThreeObjType},createObj:function(){var e=new ie.Group;return e.__linkThreeObjType="photons",e},updateObj:function(t,n){var r,i=Math.round(Math.abs(_(n))),o=!!t.children.length&&t.children[0],a=Math.ceil(10*T(n))/10/2,s=e.linkDirectionalParticleResolution;o&&o.geometry.parameters.radius===a&&o.geometry.parameters.widthSegments===s?r=o.geometry:(A.hasOwnProperty(a)||(A[a]=new ie.SphereBufferGeometry(a,s,s)),r=A[a],o&&o.geometry.dispose());var u,c=O(n)||m(n)||"#f0f0f0",l=new ie.Color(ee(c)),d=3*e.linkOpacity;o&&o.material.color.equals(l)&&o.material.opacity===d?u=o.material:(C.hasOwnProperty(c)||(C[c]=new ie.MeshLambertMaterial({color:l,transparent:!0,opacity:d})),u=C[c],o&&o.material.dispose()),J(K(new Array(i)).map((function(e,t){return{idx:t}})),t,{idAccessor:function(e){return e.idx},createObj:function(){return new ie.Mesh(r,u)},updateObj:function(e){e.geometry=r,e.material=u}})}})}}if(e._flushObjects=!1,n(["graphData","nodeId","linkSource","linkTarget","numDimensions","forceEngine","dagMode","dagNodeFilter","dagLevelDistance"])){e.engineRunning=!1,e.graphData.links.forEach((function(t){t.source=t[e.linkSource],t.target=t[e.linkTarget]}));var P,S="ngraph"!==e.forceEngine;if(S){(P=e.d3ForceLayout).stop().alpha(1).numDimensions(e.numDimensions).nodes(e.graphData.nodes);var M=e.d3ForceLayout.force("link");M&&M.id((function(t){return t[e.nodeId]})).links(e.graphData.links);var D=e.dagMode&&function(e,t){var n=e.nodes,r=e.links,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i.nodeFilter,a=void 0===o?function(){return!0}:o,s=i.onLoopError,u=void 0===s?function(e){throw"Invalid DAG structure! Found cycle in node path: ".concat(e.join(" -> "),".")}:s,c={};n.forEach((function(e){return c[t(e)]={data:e,out:[],depth:-1,skip:!a(e)}})),r.forEach((function(e){var n=e.source,r=e.target,i=u(n),o=u(r);if(!c.hasOwnProperty(i))throw"Missing source node with id: ".concat(i);if(!c.hasOwnProperty(o))throw"Missing target node with id: ".concat(o);var a=c[i],s=c[o];function u(e){return"object"===j(e)?t(e):e}a.out.push(s)}));var l=[];return d(Object.values(c)),Object.assign.apply(Object,[{}].concat(K(Object.entries(c).filter((function(e){return!q(e,2)[1].skip})).map((function(e){var t=q(e,2);return N({},t[0],t[1].depth)})))));function d(e){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=0,o=e.length;i<o;i++){var a=e[i];if(-1!==n.indexOf(a))if("continue"===function(){var e=[].concat(K(n.slice(n.indexOf(a))),[a]).map((function(e){return t(e.data)}));return l.some((function(t){return t.length===e.length&&t.every((function(t,n){return t===e[n]}))}))||(l.push(e),u(e)),"continue"}())continue;r>a.depth&&(a.depth=r,d(a.out,[].concat(K(n),[a]),r+(a.skip?0:1)))}}}(e.graphData,(function(t){return t[e.nodeId]}),{nodeFilter:e.dagNodeFilter,onLoopError:e.onDagError||void 0}),L=Math.max.apply(Math,K(Object.values(D||[]))),I=e.dagLevelDistance||e.graphData.nodes.length/(L||1)*2*(-1!==["radialin","radialout"].indexOf(e.dagMode)?.7:1);if(e.dagMode){var z=function(t,n){return function(r){return t?(D[r[e.nodeId]]-L/2)*I*(n?-1:1):void 0}},B=z(-1!==["lr","rl"].indexOf(e.dagMode),"rl"===e.dagMode),F=z(-1!==["td","bu"].indexOf(e.dagMode),"td"===e.dagMode),H=z(-1!==["zin","zout"].indexOf(e.dagMode),"zout"===e.dagMode);e.graphData.nodes.filter(e.dagNodeFilter).forEach((function(e){e.fx=B(e),e.fy=F(e),e.fz=H(e)}))}e.d3ForceLayout.force("dagRadial",-1!==["radialin","radialout"].indexOf(e.dagMode)?(0,u.Z)((function(t){var n=D[t[e.nodeId]]||-1;return("radialin"===e.dagMode?L-n:n)*I})).strength((function(t){return e.dagNodeFilter(t)?1:0})):null)}else{var V=oe.graph();e.graphData.nodes.forEach((function(t){V.addNode(t[e.nodeId])})),e.graphData.links.forEach((function(e){V.addLink(e.source,e.target)})),(P=oe.forcelayout(V,R({dimensions:e.numDimensions},e.ngraphPhysics))).graph=V}for(var U=0;U<e.warmupTicks&&!(S&&e.d3AlphaMin>0&&e.d3ForceLayout.alpha()<e.d3AlphaMin);U++)P[S?"tick":"step"]();e.layout=P,this.resetCountdown()}e.engineRunning=!0,e.onFinishUpdate()}}),(window.THREE?window.THREE:{Group:r.ZAu}).Group,!0)},6594:function(e,t,n){"use strict";n.r(t),n.d(t,{Pathfinding:function(){return v}});var r=function(){};r.computeCentroids=function(e){var t,n,r;for(t=0,n=e.faces.length;t<n;t++)(r=e.faces[t]).centroid=new THREE.Vector3(0,0,0),r.centroid.add(e.vertices[r.a]),r.centroid.add(e.vertices[r.b]),r.centroid.add(e.vertices[r.c]),r.centroid.divideScalar(3)},r.roundNumber=function(e,t){return Number(e.toFixed(t))},r.sample=function(e){return e[Math.floor(Math.random()*e.length)]},r.mergeVertexIds=function(e,t){var n=[];if(e.forEach((function(e){t.indexOf(e)>=0&&n.push(e)})),n.length<2)return[];n.includes(e[0])&&n.includes(e[e.length-1])&&e.push(e.shift()),n.includes(t[0])&&n.includes(t[t.length-1])&&t.push(t.shift()),n=[],e.forEach((function(e){t.includes(e)&&n.push(e)}));for(var r=n[1],i=n[0],o=e.slice();o[0]!==r;)o.push(o.shift());for(var a=0,s=t.slice();s[0]!==i;)if(s.push(s.shift()),a++>10)throw new Error("Unexpected state");return s.shift(),s.pop(),o.concat(s)},r.setPolygonCentroid=function(e,t){var n=new THREE.Vector3,r=t.vertices;e.vertexIds.forEach((function(e){n.add(r[e])})),n.divideScalar(e.vertexIds.length),e.centroid.copy(n)},r.cleanPolygon=function(e,t){for(var n=[],r=t.vertices,i=0;i<e.vertexIds.length;i++){var o,a,s,u=r[e.vertexIds[i]];0===i?(o=e.vertexIds[1],a=e.vertexIds[e.vertexIds.length-1]):i===e.vertexIds.length-1?(o=e.vertexIds[0],a=e.vertexIds[e.vertexIds.length-2]):(o=e.vertexIds[i+1],a=e.vertexIds[i-1]),s=r[a];var c=r[o].clone().sub(u),l=s.clone().sub(u),d=c.angleTo(l);if(d>Math.PI-.01&&d<Math.PI+.01){var f=[];e.neighbours.forEach((function(t){t.vertexIds.includes(e.vertexIds[i])||f.push(t)})),e.neighbours=f}else n.push(e.vertexIds[i])}e.vertexIds=n,this.setPolygonCentroid(e,t)},r.isConvex=function(e,t){var n=t.vertices;if(e.vertexIds.length<3)return!1;for(var r=!0,i=[],o=0;o<e.vertexIds.length;o++){var a,s,u=n[e.vertexIds[o]];0===o?(a=n[e.vertexIds[1]],s=n[e.vertexIds[e.vertexIds.length-1]]):o===e.vertexIds.length-1?(a=n[e.vertexIds[0]],s=n[e.vertexIds[e.vertexIds.length-2]]):(a=n[e.vertexIds[o+1]],s=n[e.vertexIds[o-1]]);var c=a.clone().sub(u),l=s.clone().sub(u),d=c.angleTo(l);if(d===Math.PI||0===d)return!1;var f=c.cross(l).y;i.push(f)}return i.forEach((function(e){0===e&&(r=!1)})),i.forEach(i[0]>0?function(e){e<0&&(r=!1)}:function(e){e>0&&(r=!1)}),r},r.distanceToSquared=function(e,t){var n=e.x-t.x,r=e.y-t.y,i=e.z-t.z;return n*n+r*r+i*i},r.isPointInPoly=function(e,t){for(var n=!1,r=-1,i=e.length,o=i-1;++r<i;o=r)(e[r].z<=t.z&&t.z<e[o].z||e[o].z<=t.z&&t.z<e[r].z)&&t.x<(e[o].x-e[r].x)*(t.z-e[r].z)/(e[o].z-e[r].z)+e[r].x&&(n=!n);return n},r.isVectorInPolygon=function(e,t,n){var r=1e5,i=-1e5,o=[];return t.vertexIds.forEach((function(e){r=Math.min(n[e].y,r),i=Math.max(n[e].y,i),o.push(n[e])})),!!(e.y<i+.5&&e.y>r-.5&&this.isPointInPoly(o,e))},r.triarea2=function(e,t,n){return(n.x-e.x)*(t.z-e.z)-(t.x-e.x)*(n.z-e.z)},r.vequal=function(e,t){return this.distanceToSquared(e,t)<1e-5};var i=function(e){this.content=[],this.scoreFunction=e};i.prototype.push=function(e){this.content.push(e),this.sinkDown(this.content.length-1)},i.prototype.pop=function(){var e=this.content[0],t=this.content.pop();return this.content.length>0&&(this.content[0]=t,this.bubbleUp(0)),e},i.prototype.remove=function(e){var t=this.content.indexOf(e),n=this.content.pop();t!==this.content.length-1&&(this.content[t]=n,this.scoreFunction(n)<this.scoreFunction(e)?this.sinkDown(t):this.bubbleUp(t))},i.prototype.size=function(){return this.content.length},i.prototype.rescoreElement=function(e){this.sinkDown(this.content.indexOf(e))},i.prototype.sinkDown=function(e){for(var t=this.content[e];e>0;){var n=(e+1>>1)-1,r=this.content[n];if(!(this.scoreFunction(t)<this.scoreFunction(r)))break;this.content[n]=t,this.content[e]=r,e=n}},i.prototype.bubbleUp=function(e){for(var t=this.content.length,n=this.content[e],r=this.scoreFunction(n);;){var i=e+1<<1,o=i-1,a=null,s=void 0;if(o<t&&(s=this.scoreFunction(this.content[o]))<r&&(a=o),i<t&&this.scoreFunction(this.content[i])<(null===a?r:s)&&(a=i),null===a)break;this.content[e]=this.content[a],this.content[a]=n,e=a}};var o=function(){};o.init=function(e){for(var t=0;t<e.length;t++){var n=e[t];n.f=0,n.g=0,n.h=0,n.cost=1,n.visited=!1,n.closed=!1,n.parent=null}},o.cleanUp=function(e){for(var t=0;t<e.length;t++){var n=e[t];delete n.f,delete n.g,delete n.h,delete n.cost,delete n.visited,delete n.closed,delete n.parent}},o.heap=function(){return new i((function(e){return e.f}))},o.search=function(e,t,n){this.init(e);var r=this.heap();for(r.push(t);r.size()>0;){var i=r.pop();if(i===n){for(var o=i,a=[];o.parent;)a.push(o),o=o.parent;return this.cleanUp(a),a.reverse()}i.closed=!0;for(var s=this.neighbours(e,i),u=0,c=s.length;u<c;u++){var l=s[u];if(!l.closed){var d=i.g+l.cost,f=l.visited;if(!f||d<l.g){if(l.visited=!0,l.parent=i,!l.centroid||!n.centroid)throw new Error("Unexpected state");l.h=l.h||this.heuristic(l.centroid,n.centroid),l.g=d,l.f=l.g+l.h,f?r.rescoreElement(l):r.push(l)}}}}return[]},o.heuristic=function(e,t){return r.distanceToSquared(e,t)},o.neighbours=function(e,t){for(var n=[],r=0;r<t.neighbours.length;r++)n.push(e[t.neighbours[r]]);return n};var a=1,s=function(){};s.buildZone=function(e){var t=this,n=this._buildNavigationMesh(e),i={};n.vertices.forEach((function(e){e.x=r.roundNumber(e.x,2),e.y=r.roundNumber(e.y,2),e.z=r.roundNumber(e.z,2)})),i.vertices=n.vertices;var o=this._buildPolygonGroups(n);i.groups=[];var a=function(e,t){for(var n=0;n<e.length;n++)if(t===e[n])return n};return o.forEach((function(e){var n=[];e.forEach((function(i){var o=i.neighbours.map((function(t){return a(e,t)})),s=i.neighbours.map((function(e){return t._getSharedVerticesInOrder(i,e)}));i.centroid.x=r.roundNumber(i.centroid.x,2),i.centroid.y=r.roundNumber(i.centroid.y,2),i.centroid.z=r.roundNumber(i.centroid.z,2),n.push({id:a(e,i),neighbours:o,vertexIds:i.vertexIds,centroid:i.centroid,portals:s})})),i.groups.push(n)})),i},s._buildNavigationMesh=function(e){return r.computeCentroids(e),e.mergeVertices(),this._buildPolygonsFromGeometry(e)},s._buildPolygonGroups=function(e){var t=[],n=0,r=function(e){e.neighbours.forEach((function(t){void 0===t.group&&(t.group=e.group,r(t))}))};return e.polygons.forEach((function(e){void 0===e.group&&(e.group=n++,r(e)),t[e.group]||(t[e.group]=[]),t[e.group].push(e)})),t},s._buildPolygonNeighbours=function(e,t,n){var r=new Set,i=n.get(e.vertexIds[0]),o=n.get(e.vertexIds[1]),a=n.get(e.vertexIds[2]);i.forEach((function(e){(o.has(e)||a.has(e))&&r.add(t.polygons[e])})),o.forEach((function(e){a.has(e)&&r.add(t.polygons[e])})),e.neighbours=Array.from(r)},s._buildPolygonsFromGeometry=function(e){for(var t=this,n=[],r=e.vertices,i=e.faceVertexUvs,o=new Map,s=0;s<r.length;s++)o.set(s,new Set);e.faces.forEach((function(e){n.push({id:a++,vertexIds:[e.a,e.b,e.c],centroid:e.centroid,normal:e.normal,neighbours:[]}),o.get(e.a).add(n.length-1),o.get(e.b).add(n.length-1),o.get(e.c).add(n.length-1)}));var u={polygons:n,vertices:r,faceVertexUvs:i};return n.forEach((function(e){t._buildPolygonNeighbours(e,u,o)})),u},s._getSharedVerticesInOrder=function(e,t){var n=e.vertexIds,r=t.vertexIds,i=new Set;if(n.forEach((function(e){r.includes(e)&&i.add(e)})),i.size<2)return[];i.has(n[0])&&i.has(n[n.length-1])&&n.push(n.shift()),i.has(r[0])&&i.has(r[r.length-1])&&r.push(r.shift());var o=[];return n.forEach((function(e){r.includes(e)&&o.push(e)})),o};var u=function(){this.portals=[]};u.prototype.push=function(e,t){void 0===t&&(t=e),this.portals.push({left:e,right:t})},u.prototype.stringPull=function(){var e,t,n,i=this.portals,o=[],a=0,s=0,u=0;t=i[0].left,n=i[0].right,o.push(e=i[0].left);for(var c=1;c<i.length;c++){var l=i[c].left,d=i[c].right;if(r.triarea2(e,n,d)<=0){if(!(r.vequal(e,n)||r.triarea2(e,t,d)>0)){o.push(t),t=e=t,n=e,s=a=s,u=a,c=a;continue}n=d,u=c}if(r.triarea2(e,t,l)>=0){if(!(r.vequal(e,t)||r.triarea2(e,n,l)<0)){o.push(n),t=e=n,n=e,s=a=u,u=a,c=a;continue}t=l,s=c}}return 0!==o.length&&r.vequal(o[o.length-1],i[i.length-1].left)||o.push(i[i.length-1].left),this.path=o,o};var c,l,d,f,h,p,v=function(){this.zones={}};v.createZone=function(e){return s.buildZone(e)},v.prototype.setZoneData=function(e,t){this.zones[e]=t},v.prototype.getGroup=function(e,t){if(!this.zones[e])return null;var n=null,i=Math.pow(50,2);return this.zones[e].groups.forEach((function(e,o){e.forEach((function(e){var a=r.distanceToSquared(e.centroid,t);a<i&&(n=o,i=a)}))})),n},v.prototype.getRandomNode=function(e,t,n,i){if(!this.zones[e])return new THREE.Vector3;n=n||null,i=i||0;var o=[];return this.zones[e].groups[t].forEach((function(e){n&&i?r.distanceToSquared(n,e.centroid)<i*i&&o.push(e.centroid):o.push(e.centroid)})),r.sample(o)||new THREE.Vector3},v.prototype.getClosestNode=function(e,t,n,i){void 0===i&&(i=!1);var o=this.zones[t].vertices,a=null,s=1/0;return this.zones[t].groups[n].forEach((function(t){var n=r.distanceToSquared(t.centroid,e);n<s&&(!i||r.isVectorInPolygon(e,t,o))&&(a=t,s=n)})),a},v.prototype.findPath=function(e,t,n,r){var i=this.zones[n].groups[r],a=this.zones[n].vertices,s=this.getClosestNode(e,n,r),c=this.getClosestNode(t,n,r,!0);if(!s||!c)return null;var l=o.search(i,s,c),d=function(e,t){for(var n=0;n<e.neighbours.length;n++)if(e.neighbours[n]===t.id)return e.portals[n]},f=new u;f.push(e);for(var h=0;h<l.length;h++){var p=l[h+1];if(p){var v=d(l[h],p);f.push(a[v[0]],a[v[1]])}}f.push(t),f.stringPull();var m=f.path.map((function(e){return new THREE.Vector3(e.x,e.y,e.z)}));return m.shift(),m},v.prototype.clampStep=(d=new THREE.Vector3,f=new THREE.Plane,h=new THREE.Triangle,p=new THREE.Vector3,function(e,t,n,r,i,o){var a=this.zones[r].vertices,s=this.zones[r].groups[i],u=[n],v={};v[n.id]=0,c=void 0,p.set(0,0,0),l=1/0,f.setFromCoplanarPoints(a[n.vertexIds[0]],a[n.vertexIds[1]],a[n.vertexIds[2]]),f.projectPoint(t,d),t.copy(d);for(var m=u.pop();m;m=u.pop()){h.set(a[m.vertexIds[0]],a[m.vertexIds[1]],a[m.vertexIds[2]]),h.closestPointToPoint(t,d),d.distanceToSquared(t)<l&&(c=m,p.copy(d),l=d.distanceToSquared(t));var g=v[m];if(!(g>2))for(var y=0;y<m.neighbours.length;y++){var b=s[m.neighbours[y]];b.id in v||(u.push(b),v[b.id]=g+1)}}return o.copy(p),c})}}]); \ No newline at end of file
diff --git a/build/static/chunks/4.2dee5d830195ddd06029.js b/build/static/chunks/4.2dee5d830195ddd06029.js
new file mode 100644
index 0000000..a9a9977
--- /dev/null
+++ b/build/static/chunks/4.2dee5d830195ddd06029.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4],{7004:function(n,t,r){"use strict";r.r(t),r.d(t,{forceCenter:function(){return i.Z},forceCollide:function(){return y},forceLink:function(){return h.Z},forceManyBody:function(){return Z.Z},forceRadial:function(){return g.Z},forceSimulation:function(){return s.Z},forceX:function(){return d},forceY:function(){return p},forceZ:function(){return x}});var i=r(216),e=r(4275),f=r(54),u=r(8357),o=r(9437),c=r(8246);function a(n){return n.x+n.vx}function l(n){return n.y+n.vy}function v(n){return n.z+n.vz}function y(n){var t,r,i,y,h=1,Z=1;function g(){for(var n,o,g,d,p,x,z,w,A=t.length,N=0;N<Z;++N)for(o=(1===r?(0,e.Z)(t,a):2===r?(0,f.Z)(t,a,l):3===r?(0,u.Z)(t,a,l,v):null).visitAfter(s),n=0;n<A;++n)g=t[n],z=i[g.index],w=z*z,d=g.x+g.vx,r>1&&(p=g.y+g.vy),r>2&&(x=g.z+g.vz),o.visit(k);function k(n,t,i,e,f,u,o){var a=[t,i,e,f,u,o],l=a[0],v=a[1],Z=a[2],s=a[r],A=a[r+1],N=a[r+2],k=n.data,C=n.r,M=z+C;if(!k)return l>d+M||s<d-M||r>1&&(v>p+M||A<p-M)||r>2&&(Z>x+M||N<x-M);if(k.index>g.index){var _=d-k.x-k.vx,b=r>1?p-k.y-k.vy:0,m=r>2?x-k.z-k.vz:0,E=_*_+b*b+m*m;E<M*M&&(0===_&&(E+=(_=(0,c.Z)(y))*_),r>1&&0===b&&(E+=(b=(0,c.Z)(y))*b),r>2&&0===m&&(E+=(m=(0,c.Z)(y))*m),E=(M-(E=Math.sqrt(E)))/E*h,g.vx+=(_*=E)*(M=(C*=C)/(w+C)),r>1&&(g.vy+=(b*=E)*M),r>2&&(g.vz+=(m*=E)*M),k.vx-=_*(M=1-M),r>1&&(k.vy-=b*M),r>2&&(k.vz-=m*M))}}}function s(n){if(n.data)return n.r=i[n.data.index];for(var t=n.r=0;t<Math.pow(2,r);++t)n[t]&&n[t].r>n.r&&(n.r=n[t].r)}function d(){if(t){var r,e,f=t.length;for(i=new Array(f),r=0;r<f;++r)e=t[r],i[e.index]=+n(e,r,t)}}return"function"!==typeof n&&(n=(0,o.Z)(null==n?1:+n)),g.initialize=function(n){t=n;for(var i=arguments.length,e=new Array(i>1?i-1:0),f=1;f<i;f++)e[f-1]=arguments[f];y=e.find((function(n){return"function"===typeof n}))||Math.random,r=e.find((function(n){return[1,2,3].includes(n)}))||2,d()},g.iterations=function(n){return arguments.length?(Z=+n,g):Z},g.strength=function(n){return arguments.length?(h=+n,g):h},g.radius=function(t){return arguments.length?(n="function"===typeof t?t:(0,o.Z)(+t),d(),g):n},g}var h=r(5560),Z=r(2405),g=r(6917),s=r(4505);function d(n){var t,r,i,e=(0,o.Z)(.1);function f(n){for(var e,f=0,u=t.length;f<u;++f)(e=t[f]).vx+=(i[f]-e.x)*r[f]*n}function u(){if(t){var f,u=t.length;for(r=new Array(u),i=new Array(u),f=0;f<u;++f)r[f]=isNaN(i[f]=+n(t[f],f,t))?0:+e(t[f],f,t)}}return"function"!==typeof n&&(n=(0,o.Z)(null==n?0:+n)),f.initialize=function(n){t=n,u()},f.strength=function(n){return arguments.length?(e="function"===typeof n?n:(0,o.Z)(+n),u(),f):e},f.x=function(t){return arguments.length?(n="function"===typeof t?t:(0,o.Z)(+t),u(),f):n},f}function p(n){var t,r,i,e=(0,o.Z)(.1);function f(n){for(var e,f=0,u=t.length;f<u;++f)(e=t[f]).vy+=(i[f]-e.y)*r[f]*n}function u(){if(t){var f,u=t.length;for(r=new Array(u),i=new Array(u),f=0;f<u;++f)r[f]=isNaN(i[f]=+n(t[f],f,t))?0:+e(t[f],f,t)}}return"function"!==typeof n&&(n=(0,o.Z)(null==n?0:+n)),f.initialize=function(n){t=n,u()},f.strength=function(n){return arguments.length?(e="function"===typeof n?n:(0,o.Z)(+n),u(),f):e},f.y=function(t){return arguments.length?(n="function"===typeof t?t:(0,o.Z)(+t),u(),f):n},f}function x(n){var t,r,i,e=(0,o.Z)(.1);function f(n){for(var e,f=0,u=t.length;f<u;++f)(e=t[f]).vz+=(i[f]-e.z)*r[f]*n}function u(){if(t){var f,u=t.length;for(r=new Array(u),i=new Array(u),f=0;f<u;++f)r[f]=isNaN(i[f]=+n(t[f],f,t))?0:+e(t[f],f,t)}}return"function"!==typeof n&&(n=(0,o.Z)(null==n?0:+n)),f.initialize=function(n){t=n,u()},f.strength=function(n){return arguments.length?(e="function"===typeof n?n:(0,o.Z)(+n),u(),f):e},f.z=function(t){return arguments.length?(n="function"===typeof t?t:(0,o.Z)(+t),u(),f):n},f}}}]); \ No newline at end of file
diff --git a/build/static/chunks/d25bd147-65fcc4c92edba8b370fb.js b/build/static/chunks/d25bd147-65fcc4c92edba8b370fb.js
new file mode 100644
index 0000000..bf07e57
--- /dev/null
+++ b/build/static/chunks/d25bd147-65fcc4c92edba8b370fb.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[446],{5569:function(t,n,r){t.exports=function(){var t;return function(){function e(t,n,r){function i(a,s){if(!n[a]){if(!t[a]){if(o)return o(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[a]={exports:{}};t[a][0].call(c.exports,(function(e){return i(t[a][1][e]||e)}),c,c.exports,e,t,n,r)}return n[a].exports}for(var o=void 0,a=0;a<r.length;a++)i(r[a]);return i}return e}()({1:[function(e,t,n){var r=Object.prototype.toString;function i(e){return e.BYTES_PER_ELEMENT&&"[object ArrayBuffer]"===r.call(e.buffer)||Array.isArray(e)}t.exports=i},{}],2:[function(e,t,n){t.exports=function(e,t){return"number"===typeof e?e:"number"===typeof t?t:0}},{}],3:[function(e,t,n){"use strict";n.byteLength=u,n.toByteArray=d,n.fromByteArray=m;for(var r=[],i=[],o="undefined"!==typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,l=a.length;s<l;++s)r[s]=a[s],i[a.charCodeAt(s)]=s;function c(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function u(e){var t=c(e),n=t[0],r=t[1];return 3*(n+r)/4-r}function h(e,t,n){return 3*(t+n)/4-n}function d(e){for(var t,n=c(e),r=n[0],a=n[1],s=new o(h(e,r,a)),l=0,u=a>0?r-4:r,d=0;d<u;d+=4)t=i[e.charCodeAt(d)]<<18|i[e.charCodeAt(d+1)]<<12|i[e.charCodeAt(d+2)]<<6|i[e.charCodeAt(d+3)],s[l++]=t>>16&255,s[l++]=t>>8&255,s[l++]=255&t;return 2===a&&(t=i[e.charCodeAt(d)]<<2|i[e.charCodeAt(d+1)]>>4,s[l++]=255&t),1===a&&(t=i[e.charCodeAt(d)]<<10|i[e.charCodeAt(d+1)]<<4|i[e.charCodeAt(d+2)]>>2,s[l++]=t>>8&255,s[l++]=255&t),s}function p(e){return r[e>>18&63]+r[e>>12&63]+r[e>>6&63]+r[63&e]}function f(e,t,n){for(var r,i=[],o=t;o<n;o+=3)r=(e[o]<<16&16711680)+(e[o+1]<<8&65280)+(255&e[o+2]),i.push(p(r));return i.join("")}function m(e){for(var t,n=e.length,i=n%3,o=[],a=16383,s=0,l=n-i;s<l;s+=a)o.push(f(e,s,s+a>l?l:s+a));return 1===i?(t=e[n-1],o.push(r[t>>2]+r[t<<4&63]+"==")):2===i&&(t=(e[n-2]<<8)+e[n-1],o.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},{}],4:[function(e,t,n){"use strict";t.exports={createLink:function(e,t){var n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("link");for(var i in r.href=e,r.rel="stylesheet",t)if(t.hasOwnProperty(i)){var o=t[i];r.setAttribute("data-"+i,o)}n.appendChild(r)},createStyle:function(e,t){var n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");for(var i in r.type="text/css",t)if(t.hasOwnProperty(i)){var o=t[i];r.setAttribute("data-"+i,o)}r.sheet?(r.innerHTML=e,r.sheet.cssText=e,n.appendChild(r)):r.styleSheet?(n.appendChild(r),r.styleSheet.cssText=e):(r.appendChild(document.createTextNode(e)),n.appendChild(r))}}},{}],5:[function(e,t,n){var r=e("buffer").Buffer;t.exports=function(e,t){if(r.isBuffer(e)&&r.isBuffer(t)){if("function"===typeof e.equals)return e.equals(t);if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}}},{buffer:6}],6:[function(t,n,i){(function(n,r){"use strict";var o=t("base64-js"),a=t("ieee754"),s=t("isarray");function l(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()&&"function"===typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(e){return!1}}function c(){return r.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function u(e,t){if(c()<t)throw new RangeError("Invalid typed array length");return r.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=r.prototype:(null===e&&(e=new r(t)),e.length=t),e}function r(e,t,n){if(!r.TYPED_ARRAY_SUPPORT&&!(this instanceof r))return new r(e,t,n);if("number"===typeof e){if("string"===typeof t)throw new Error("If encoding is specified then the first argument must be a string");return f(this,e)}return h(this,e,t,n)}function h(e,t,n,r){if("number"===typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!==typeof ArrayBuffer&&t instanceof ArrayBuffer?g(e,t,n,r):"string"===typeof t?m(e,t,n):y(e,t)}function d(e){if("number"!==typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function p(e,t,n,r){return d(t),t<=0?u(e,t):void 0!==n?"string"===typeof r?u(e,t).fill(n,r):u(e,t).fill(n):u(e,t)}function f(e,t){if(d(t),e=u(e,t<0?0:0|b(t)),!r.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function m(e,t,n){if("string"===typeof n&&""!==n||(n="utf8"),!r.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var i=0|w(t,n),o=(e=u(e,i)).write(t,n);return o!==i&&(e=e.slice(0,o)),e}function v(e,t){var n=t.length<0?0:0|b(t.length);e=u(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function g(e,t,n,i){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(i||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===i?new Uint8Array(t):void 0===i?new Uint8Array(t,n):new Uint8Array(t,n,i),r.TYPED_ARRAY_SUPPORT?(e=t).__proto__=r.prototype:e=v(e,t),e}function y(e,t){if(r.isBuffer(t)){var n=0|b(t.length);return 0===(e=u(e,n)).length||t.copy(e,0,0,n),e}if(t){if("undefined"!==typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!==typeof t.length||ne(t.length)?u(e,0):v(e,t);if("Buffer"===t.type&&s(t.data))return v(e,t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function b(e){if(e>=c())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+c().toString(16)+" bytes");return 0|e}function A(e){return+e!=e&&(e=0),r.alloc(+e)}function w(e,t){if(r.isBuffer(e))return e.length;if("undefined"!==typeof ArrayBuffer&&"function"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!==typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var i=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return K(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return ee(e).length;default:if(i)return K(e).length;t=(""+t).toLowerCase(),i=!0}}function x(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return N(this,t,n);case"utf8":case"utf-8":return O(this,t,n);case"ascii":return F(this,t,n);case"latin1":case"binary":return k(this,t,n);case"base64":return D(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return U(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function E(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function M(e,t,n,i,o){if(0===e.length)return-1;if("string"===typeof n?(i=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"===typeof t&&(t=r.from(t,i)),r.isBuffer(t))return 0===t.length?-1:_(e,t,n,i,o);if("number"===typeof t)return t&=255,r.TYPED_ARRAY_SUPPORT&&"function"===typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):_(e,[t],n,i,o);throw new TypeError("val must be string, number or Buffer")}function _(e,t,n,r,i){var o,a=1,s=e.length,l=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,l/=2,n/=2}function c(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){var u=-1;for(o=n;o<s;o++)if(c(e,o)===c(t,-1===u?0:o-u)){if(-1===u&&(u=o),o-u+1===l)return u*a}else-1!==u&&(o-=o-u),u=-1}else for(n+l>s&&(n=s-l),o=n;o>=0;o--){for(var h=!0,d=0;d<l;d++)if(c(e,o+d)!==c(t,d)){h=!1;break}if(h)return o}return-1}function T(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r))>i&&(r=i):r=i;var o=t.length;if(o%2!==0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var a=0;a<r;++a){var s=parseInt(t.substr(2*a,2),16);if(isNaN(s))return a;e[n+a]=s}return a}function S(e,t,n,r){return te(K(t,e.length-n),e,n,r)}function C(e,t,n,r){return te(J(t),e,n,r)}function L(e,t,n,r){return C(e,t,n,r)}function R(e,t,n,r){return te(ee(t),e,n,r)}function P(e,t,n,r){return te($(t,e.length-n),e,n,r)}function D(e,t,n){return 0===t&&n===e.length?o.fromByteArray(e):o.fromByteArray(e.slice(t,n))}function O(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i<n;){var o,a,s,l,c=e[i],u=null,h=c>239?4:c>223?3:c>191?2:1;if(i+h<=n)switch(h){case 1:c<128&&(u=c);break;case 2:128===(192&(o=e[i+1]))&&(l=(31&c)<<6|63&o)>127&&(u=l);break;case 3:o=e[i+1],a=e[i+2],128===(192&o)&&128===(192&a)&&(l=(15&c)<<12|(63&o)<<6|63&a)>2047&&(l<55296||l>57343)&&(u=l);break;case 4:o=e[i+1],a=e[i+2],s=e[i+3],128===(192&o)&&128===(192&a)&&128===(192&s)&&(l=(15&c)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&l<1114112&&(u=l)}null===u?(u=65533,h=1):u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u),i+=h}return B(r)}i.Buffer=r,i.SlowBuffer=A,i.INSPECT_MAX_BYTES=50,r.TYPED_ARRAY_SUPPORT=void 0!==n.TYPED_ARRAY_SUPPORT?n.TYPED_ARRAY_SUPPORT:l(),i.kMaxLength=c(),r.poolSize=8192,r._augment=function(e){return e.__proto__=r.prototype,e},r.from=function(e,t,n){return h(null,e,t,n)},r.TYPED_ARRAY_SUPPORT&&(r.prototype.__proto__=Uint8Array.prototype,r.__proto__=Uint8Array,"undefined"!==typeof Symbol&&Symbol.species&&r[Symbol.species]===r&&Object.defineProperty(r,Symbol.species,{value:null,configurable:!0})),r.alloc=function(e,t,n){return p(null,e,t,n)},r.allocUnsafe=function(e){return f(null,e)},r.allocUnsafeSlow=function(e){return f(null,e)},r.isBuffer=function(e){return!(null==e||!e._isBuffer)},r.compare=function(e,t){if(!r.isBuffer(e)||!r.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,i=t.length,o=0,a=Math.min(n,i);o<a;++o)if(e[o]!==t[o]){n=e[o],i=t[o];break}return n<i?-1:i<n?1:0},r.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},r.concat=function(e,t){if(!s(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return r.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var i=r.allocUnsafe(t),o=0;for(n=0;n<e.length;++n){var a=e[n];if(!r.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(i,o),o+=a.length}return i},r.byteLength=w,r.prototype._isBuffer=!0,r.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)E(this,t,t+1);return this},r.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)E(this,t,t+3),E(this,t+1,t+2);return this},r.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)E(this,t,t+7),E(this,t+1,t+6),E(this,t+2,t+5),E(this,t+3,t+4);return this},r.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?O(this,0,e):x.apply(this,arguments)},r.prototype.equals=function(e){if(!r.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===r.compare(this,e)},r.prototype.inspect=function(){var e="",t=i.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+e+">"},r.prototype.compare=function(e,t,n,i,o){if(!r.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===i&&(i=0),void 0===o&&(o=this.length),t<0||n>e.length||i<0||o>this.length)throw new RangeError("out of range index");if(i>=o&&t>=n)return 0;if(i>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var a=(o>>>=0)-(i>>>=0),s=(n>>>=0)-(t>>>=0),l=Math.min(a,s),c=this.slice(i,o),u=e.slice(t,n),h=0;h<l;++h)if(c[h]!==u[h]){a=c[h],s=u[h];break}return a<s?-1:s<a?1:0},r.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},r.prototype.indexOf=function(e,t,n){return M(this,e,t,n,!0)},r.prototype.lastIndexOf=function(e,t,n){return M(this,e,t,n,!1)},r.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"===typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return T(this,e,t,n);case"utf8":case"utf-8":return S(this,e,t,n);case"ascii":return C(this,e,t,n);case"latin1":case"binary":return L(this,e,t,n);case"base64":return R(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},r.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var I=4096;function B(e){var t=e.length;if(t<=I)return String.fromCharCode.apply(String,e);for(var n="",r=0;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=I));return n}function F(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function k(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function N(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var i="",o=t;o<n;++o)i+=Z(e[o]);return i}function U(e,t,n){for(var r=e.slice(t,n),i="",o=0;o<r.length;o+=2)i+=String.fromCharCode(r[o]+256*r[o+1]);return i}function H(e,t,n){if(e%1!==0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function G(e,t,n,i,o,a){if(!r.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<a)throw new RangeError('"value" argument is out of bounds');if(n+i>e.length)throw new RangeError("Index out of range")}function z(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-n,2);i<o;++i)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function j(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-n,4);i<o;++i)e[n+i]=t>>>8*(r?i:3-i)&255}function V(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function W(e,t,n,r,i){return i||V(e,t,n,4,34028234663852886e22,-34028234663852886e22),a.write(e,t,n,r,23,4),n+4}function q(e,t,n,r,i){return i||V(e,t,n,8,17976931348623157e292,-17976931348623157e292),a.write(e,t,n,r,52,8),n+8}r.prototype.slice=function(e,t){var n,i=this.length;if((e=~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),(t=void 0===t?i:~~t)<0?(t+=i)<0&&(t=0):t>i&&(t=i),t<e&&(t=e),r.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=r.prototype;else{var o=t-e;n=new r(o,void 0);for(var a=0;a<o;++a)n[a]=this[a+e]}return n},r.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||H(e,t,this.length);for(var r=this[e],i=1,o=0;++o<t&&(i*=256);)r+=this[e+o]*i;return r},r.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||H(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},r.prototype.readUInt8=function(e,t){return t||H(e,1,this.length),this[e]},r.prototype.readUInt16LE=function(e,t){return t||H(e,2,this.length),this[e]|this[e+1]<<8},r.prototype.readUInt16BE=function(e,t){return t||H(e,2,this.length),this[e]<<8|this[e+1]},r.prototype.readUInt32LE=function(e,t){return t||H(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},r.prototype.readUInt32BE=function(e,t){return t||H(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},r.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||H(e,t,this.length);for(var r=this[e],i=1,o=0;++o<t&&(i*=256);)r+=this[e+o]*i;return r>=(i*=128)&&(r-=Math.pow(2,8*t)),r},r.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||H(e,t,this.length);for(var r=t,i=1,o=this[e+--r];r>0&&(i*=256);)o+=this[e+--r]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},r.prototype.readInt8=function(e,t){return t||H(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},r.prototype.readInt16LE=function(e,t){t||H(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},r.prototype.readInt16BE=function(e,t){t||H(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},r.prototype.readInt32LE=function(e,t){return t||H(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},r.prototype.readInt32BE=function(e,t){return t||H(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},r.prototype.readFloatLE=function(e,t){return t||H(e,4,this.length),a.read(this,e,!0,23,4)},r.prototype.readFloatBE=function(e,t){return t||H(e,4,this.length),a.read(this,e,!1,23,4)},r.prototype.readDoubleLE=function(e,t){return t||H(e,8,this.length),a.read(this,e,!0,52,8)},r.prototype.readDoubleBE=function(e,t){return t||H(e,8,this.length),a.read(this,e,!1,52,8)},r.prototype.writeUIntLE=function(e,t,n,r){e=+e,t|=0,n|=0,r||G(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,o=0;for(this[t]=255&e;++o<n&&(i*=256);)this[t+o]=e/i&255;return t+n},r.prototype.writeUIntBE=function(e,t,n,r){e=+e,t|=0,n|=0,r||G(this,e,t,n,Math.pow(2,8*n)-1,0);var i=n-1,o=1;for(this[t+i]=255&e;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+n},r.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||G(this,e,t,1,255,0),r.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},r.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||G(this,e,t,2,65535,0),r.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):z(this,e,t,!0),t+2},r.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||G(this,e,t,2,65535,0),r.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):z(this,e,t,!1),t+2},r.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||G(this,e,t,4,4294967295,0),r.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):j(this,e,t,!0),t+4},r.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||G(this,e,t,4,4294967295,0),r.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):j(this,e,t,!1),t+4},r.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);G(this,e,t,n,i-1,-i)}var o=0,a=1,s=0;for(this[t]=255&e;++o<n&&(a*=256);)e<0&&0===s&&0!==this[t+o-1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+n},r.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);G(this,e,t,n,i-1,-i)}var o=n-1,a=1,s=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+n},r.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||G(this,e,t,1,127,-128),r.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},r.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||G(this,e,t,2,32767,-32768),r.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):z(this,e,t,!0),t+2},r.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||G(this,e,t,2,32767,-32768),r.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):z(this,e,t,!1),t+2},r.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||G(this,e,t,4,2147483647,-2147483648),r.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):j(this,e,t,!0),t+4},r.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||G(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),r.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):j(this,e,t,!1),t+4},r.prototype.writeFloatLE=function(e,t,n){return W(this,e,t,!0,n)},r.prototype.writeFloatBE=function(e,t,n){return W(this,e,t,!1,n)},r.prototype.writeDoubleLE=function(e,t,n){return q(this,e,t,!0,n)},r.prototype.writeDoubleBE=function(e,t,n){return q(this,e,t,!1,n)},r.prototype.copy=function(e,t,n,i){if(n||(n=0),i||0===i||(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i<n&&(i=n),i===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t<i-n&&(i=e.length-t+n);var o,a=i-n;if(this===e&&n<t&&t<i)for(o=a-1;o>=0;--o)e[o+t]=this[o+n];else if(a<1e3||!r.TYPED_ARRAY_SUPPORT)for(o=0;o<a;++o)e[o+t]=this[o+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+a),t);return a},r.prototype.fill=function(e,t,n,i){if("string"===typeof e){if("string"===typeof t?(i=t,t=0,n=this.length):"string"===typeof n&&(i=n,n=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==i&&"string"!==typeof i)throw new TypeError("encoding must be a string");if("string"===typeof i&&!r.isEncoding(i))throw new TypeError("Unknown encoding: "+i)}else"number"===typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var a;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"===typeof e)for(a=t;a<n;++a)this[a]=e;else{var s=r.isBuffer(e)?e:K(new r(e,i).toString()),l=s.length;for(a=0;a<n-t;++a)this[a+t]=s[a%l]}return this};var X=/[^+\/0-9A-Za-z-_]/g;function Y(e){if((e=Q(e).replace(X,"")).length<2)return"";for(;e.length%4!==0;)e+="=";return e}function Q(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function Z(e){return e<16?"0"+e.toString(16):e.toString(16)}function K(e,t){var n;t=t||1/0;for(var r=e.length,i=null,o=[],a=0;a<r;++a){if((n=e.charCodeAt(a))>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function J(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}function $(e,t){for(var n,r,i,o=[],a=0;a<e.length&&!((t-=2)<0);++a)r=(n=e.charCodeAt(a))>>8,i=n%256,o.push(i),o.push(r);return o}function ee(e){return o.toByteArray(Y(e))}function te(e,t,n,r){for(var i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function ne(e){return e!==e}}).call(this,"undefined"!==typeof r.g?r.g:"undefined"!==typeof self?self:"undefined"!==typeof window?window:{},t("buffer").Buffer)},{"base64-js":3,buffer:6,ieee754:29,isarray:35}],7:[function(t,n,r){!function(){if("undefined"!==typeof window)try{var t=new window.CustomEvent("test",{cancelable:!0});if(t.preventDefault(),!0!==t.defaultPrevented)throw new Error("Could not prevent default")}catch(e){var n=function(e,n){var r,i;return(n=n||{}).bubbles=!!n.bubbles,n.cancelable=!!n.cancelable,(r=document.createEvent("CustomEvent")).initCustomEvent(e,n.bubbles,n.cancelable,n.detail),i=r.preventDefault,r.preventDefault=function(){i.call(this);try{Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}})}catch(t){this.defaultPrevented=!0}},r};n.prototype=window.Event.prototype,window.CustomEvent=n}}()},{}],8:[function(t,n,r){function i(){return"WebkitAppearance"in document.documentElement.style||window.console&&(console.firebug||console.exception&&console.table)||navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31}function o(){var e=arguments,t=this.useColors;if(e[0]=(t?"%c":"")+this.namespace+(t?" %c":" ")+e[0]+(t?"%c ":" "),!t)return e;var n="color: "+this.color;e=[e[0],n,"color: inherit"].concat(Array.prototype.slice.call(e,1));var r=0,i=0;return e[0].replace(/%[a-z%]/g,(function(e){"%%"!==e&&(r++,"%c"===e&&(i=r))})),e.splice(i,0,n),e}function a(){return"object"===typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function s(t){try{null==t?r.storage.removeItem("debug"):r.storage.debug=t}catch(e){}}function l(){var t;try{t=r.storage.debug}catch(e){}return t}function c(){try{return window.localStorage}catch(e){}}(r=n.exports=t("./debug")).log=a,r.formatArgs=o,r.save=s,r.load=l,r.useColors=i,r.storage="undefined"!=typeof chrome&&"undefined"!=typeof chrome.storage?chrome.storage.local:c(),r.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],r.formatters.j=function(e){return JSON.stringify(e)},r.enable(l())},{"./debug":9}],9:[function(e,t,n){(n=t.exports=o).coerce=c,n.disable=s,n.enable=a,n.enabled=l,n.names=[],n.skips=[],n.formatters={};var r=0;function i(){return n.colors[r++%n.colors.length]}function o(e){function t(){}function r(){var e=r;null==e.useColors&&(e.useColors=n.useColors()),null==e.color&&e.useColors&&(e.color=i());var t=Array.prototype.slice.call(arguments);t[0]=n.coerce(t[0]),"string"!==typeof t[0]&&(t=["%o"].concat(t));var o=0;t[0]=t[0].replace(/%([a-z%])/g,(function(r,i){if("%%"===r)return r;o++;var a=n.formatters[i];if("function"===typeof a){var s=t[o];r=a.call(e,s),t.splice(o,1),o--}return r})),"function"===typeof n.formatArgs&&(t=n.formatArgs.apply(e,t)),(r.log||n.log||console.log.bind(console)).apply(e,t)}t.enabled=!1,r.enabled=!0;var o=n.enabled(e)?r:t;return o.namespace=e,o}function a(e){n.save(e);for(var t=(e||"").split(/[\s,]+/),r=t.length,i=0;i<r;i++)t[i]&&("-"===(e=t[i].replace(/\*/g,".*?"))[0]?n.skips.push(new RegExp("^"+e.substr(1)+"$")):n.names.push(new RegExp("^"+e+"$")))}function s(){n.enable("")}function l(e){var t,r;for(t=0,r=n.skips.length;t<r;t++)if(n.skips[t].test(e))return!1;for(t=0,r=n.names.length;t<r;t++)if(n.names[t].test(e))return!0;return!1}function c(e){return e instanceof Error?e.stack||e.message:e}},{}],10:[function(e,t,n){"use strict";var r=e("is-obj"),i=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;function a(e){if(null===e||void 0===e)throw new TypeError("Sources cannot be null or undefined");return Object(e)}function s(e,t,n){var o=t[n];if(void 0!==o&&null!==o){if(i.call(e,n)&&(void 0===e[n]||null===e[n]))throw new TypeError("Cannot convert undefined or null to object ("+n+")");i.call(e,n)&&r(o)?e[n]=l(Object(e[n]),t[n]):e[n]=o}}function l(e,t){if(e===t)return e;for(var n in t=Object(t))i.call(t,n)&&s(e,t,n);if(Object.getOwnPropertySymbols)for(var r=Object.getOwnPropertySymbols(t),a=0;a<r.length;a++)o.call(t,r[a])&&s(e,t,r[a]);return e}t.exports=function(e){e=a(e);for(var t=1;t<arguments.length;t++)l(e,arguments[t]);return e}},{"is-obj":34}],11:[function(t,n,r){"use strict";var i=t("object-keys"),o="function"===typeof Symbol&&"symbol"===typeof Symbol("foo"),a=Object.prototype.toString,s=Array.prototype.concat,l=Object.defineProperty,c=function(e){return"function"===typeof e&&"[object Function]"===a.call(e)},u=function(){var t={};try{for(var n in l(t,"x",{enumerable:!1,value:t}),t)return!1;return t.x===t}catch(e){return!1}},h=l&&u(),d=function(e,t,n,r){(!(t in e)||c(r)&&r())&&(h?l(e,t,{configurable:!0,enumerable:!1,value:n,writable:!0}):e[t]=n)},p=function(e,t){var n=arguments.length>2?arguments[2]:{},r=i(t);o&&(r=s.call(r,Object.getOwnPropertySymbols(t)));for(var a=0;a<r.length;a+=1)d(e,r[a],t[r[a]],n[r[a]])};p.supportsDescriptors=!!h,n.exports=p},{"object-keys":41}],12:[function(t,n,r){!function(t,n,r,i){"use strict";function o(e,t){for(var n=0,r=e.length;n<r;n++)g(e[n],t)}function a(e){for(var t,n=0,r=e.length;n<r;n++)t=e[n],M(t,H[l(t)])}function s(e){return function(t){ie(t)&&(g(t,e),o(t.querySelectorAll(G),e))}}function l(e){var t=se.call(e,"is"),n=e.nodeName.toUpperCase(),r=j.call(U,t?F+t.toUpperCase():B+n);return t&&-1<r&&!c(n,t)?-1:r}function c(e,t){return-1<G.indexOf(e+'[is="'+t+'"]')}function u(e){var t=e.currentTarget,n=e.attrChange,r=e.attrName,i=e.target;ge&&(!i||i===t)&&t.attributeChangedCallback&&"style"!==r&&e.prevValue!==e.newValue&&t.attributeChangedCallback(r,n===e[L]?null:e.prevValue,n===e[P]?null:e.newValue)}function h(e){var t=s(e);return function(e){y.push(t,e.target)}}function d(e){ve&&(ve=!1,e.currentTarget.removeEventListener(O,d)),o((e.target||n).querySelectorAll(G),e.detail===S?S:T),re&&m()}function p(e,t){var n=this;le.call(n,e,t),b.call(n,{target:n})}function f(e,t){ee(e,t),x?x.observe(e,he):(me&&(e.setAttribute=p,e[_]=w(e),e.addEventListener(I,b)),e.addEventListener(D,u)),e.createdCallback&&ge&&(e.created=!0,e.createdCallback(),e.created=!1)}function m(){for(var e,t=0,n=oe.length;t<n;t++)e=oe[t],z.contains(e)||(n--,oe.splice(t--,1),g(e,S))}function v(e){throw new Error("A "+e+" type is already registered")}function g(e,t){var n,r=l(e);-1<r&&(E(e,H[r]),r=0,t!==T||e[T]?t===S&&!e[S]&&(e[T]=!1,e[S]=!0,r=1):(e[S]=!1,e[T]=!0,r=1,re&&j.call(oe,e)<0&&oe.push(e)),r&&(n=e[t+"Callback"])&&n.call(e))}if(!(i in n)){var y,b,A,w,x,E,M,_="__"+i+(1e5*Math.random()>>0),T="attached",S="detached",C="extends",L="ADDITION",R="MODIFICATION",P="REMOVAL",D="DOMAttrModified",O="DOMContentLoaded",I="DOMSubtreeModified",B="<",F="=",k=/^[A-Z][A-Z0-9]*(?:-[A-Z0-9]+)+$/,N=["ANNOTATION-XML","COLOR-PROFILE","FONT-FACE","FONT-FACE-SRC","FONT-FACE-URI","FONT-FACE-FORMAT","FONT-FACE-NAME","MISSING-GLYPH"],U=[],H=[],G="",z=n.documentElement,j=U.indexOf||function(e){for(var t=this.length;t--&&this[t]!==e;);return t},V=r.prototype,W=V.hasOwnProperty,q=V.isPrototypeOf,X=r.defineProperty,Y=r.getOwnPropertyDescriptor,Q=r.getOwnPropertyNames,Z=r.getPrototypeOf,K=r.setPrototypeOf,J=!!r.__proto__,$=r.create||function e(t){return t?(e.prototype=t,new e):this},ee=K||(J?function(e,t){return e.__proto__=t,e}:Q&&Y?function(){function e(e,t){for(var n,r=Q(t),i=0,o=r.length;i<o;i++)n=r[i],W.call(e,n)||X(e,n,Y(t,n))}return function(t,n){do{e(t,n)}while((n=Z(n))&&!q.call(n,t));return t}}():function(e,t){for(var n in t)e[n]=t[n];return e}),te=t.MutationObserver||t.WebKitMutationObserver,ne=(t.HTMLElement||t.Element||t.Node).prototype,re=!q.call(ne,z),ie=re?function(e){return 1===e.nodeType}:function(e){return q.call(ne,e)},oe=re&&[],ae=ne.cloneNode,se=ne.getAttribute,le=ne.setAttribute,ce=ne.removeAttribute,ue=n.createElement,he=te&&{attributes:!0,characterData:!0,attributeOldValue:!0},de=te||function(e){me=!1,z.removeEventListener(D,de)},pe=t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.msRequestAnimationFrame||function(e){setTimeout(e,10)},fe=!1,me=!0,ve=!0,ge=!0;K||J?(E=function(e,t){q.call(t,e)||f(e,t)},M=f):M=E=function(e,t){e[_]||(e[_]=r(!0),f(e,t))},re?(me=!1,function(){var t=Y(ne,"addEventListener"),n=t.value,r=function(e){var t=new CustomEvent(D,{bubbles:!0});t.attrName=e,t.prevValue=se.call(this,e),t.newValue=null,t[P]=t.attrChange=2,ce.call(this,e),this.dispatchEvent(t)},i=function(t,n){var r=this.hasAttribute(t),i=r&&se.call(this,t);e=new CustomEvent(D,{bubbles:!0}),le.call(this,t,n),e.attrName=t,e.prevValue=r?i:null,e.newValue=n,r?e[R]=e.attrChange=1:e[L]=e.attrChange=0,this.dispatchEvent(e)},o=function(e){var t,n=e.currentTarget,r=n[_],i=e.propertyName;r.hasOwnProperty(i)&&(r=r[i],(t=new CustomEvent(D,{bubbles:!0})).attrName=r.name,t.prevValue=r.value||null,t.newValue=r.value=n[i]||null,null==t.prevValue?t[L]=t.attrChange=0:t[R]=t.attrChange=1,n.dispatchEvent(t))};t.value=function(e,t,a){e===D&&this.attributeChangedCallback&&this.setAttribute!==i&&(this[_]={className:{name:"class",value:this.className}},this.setAttribute=i,this.removeAttribute=r,n.call(this,"propertychange",o)),n.call(this,e,t,a)},X(ne,"addEventListener",t)}()):te||(z.addEventListener(D,de),z.setAttribute(_,1),z.removeAttribute(_),me&&(b=function(e){var t,n,r,i=this;if(i===e.target){for(r in t=i[_],i[_]=n=w(i),n){if(!(r in t))return A(0,i,r,t[r],n[r],L);if(n[r]!==t[r])return A(1,i,r,t[r],n[r],R)}for(r in t)if(!(r in n))return A(2,i,r,t[r],n[r],P)}},A=function(e,t,n,r,i,o){var a={attrChange:e,currentTarget:t,attrName:n,prevValue:r,newValue:i};a[o]=e,u(a)},w=function(e){for(var t,n,r={},i=e.attributes,o=0,a=i.length;o<a;o++)"setAttribute"!==(n=(t=i[o]).name)&&(r[n]=t.value);return r})),n[i]=function(e,t){if(r=e.toUpperCase(),fe||(fe=!0,te?(x=function(e,t){function n(e,t){for(var n=0,r=e.length;n<r;t(e[n++]));}return new te((function(r){for(var i,o,a,s=0,l=r.length;s<l;s++)"childList"===(i=r[s]).type?(n(i.addedNodes,e),n(i.removedNodes,t)):(o=i.target,ge&&o.attributeChangedCallback&&"style"!==i.attributeName&&(a=se.call(o,i.attributeName))!==i.oldValue&&o.attributeChangedCallback(i.attributeName,i.oldValue,a))}))}(s(T),s(S))).observe(n,{childList:!0,subtree:!0}):(y=[],pe((function e(){for(;y.length;)y.shift().call(null,y.shift());pe(e)})),n.addEventListener("DOMNodeInserted",h(T)),n.addEventListener("DOMNodeRemoved",h(S))),n.addEventListener(O,d),n.addEventListener("readystatechange",d),n.createElement=function(e,t){var r=ue.apply(n,arguments),i=""+e,o=j.call(U,(t?F:B)+(t||i).toUpperCase()),a=-1<o;return t&&(r.setAttribute("is",t=t.toLowerCase()),a&&(a=c(i.toUpperCase(),t))),ge=!n.createElement.innerHTMLHelper,a&&M(r,H[o]),r},ne.cloneNode=function(e){var t=ae.call(this,!!e),n=l(t);return-1<n&&M(t,H[n]),e&&a(t.querySelectorAll(G)),t}),-2<j.call(U,F+r)+j.call(U,B+r)&&v(e),!k.test(r)||-1<j.call(N,r))throw new Error("The type "+e+" is invalid");var r,i,u=function(){return f?n.createElement(m,r):n.createElement(m)},p=t||V,f=W.call(p,C),m=f?t[C].toUpperCase():r;return f&&-1<j.call(U,B+m)&&v(m),i=U.push((f?F:B)+r)-1,G=G.concat(G.length?",":"",f?m+'[is="'+e.toLowerCase()+'"]':m),u.prototype=H[i]=W.call(p,"prototype")?p.prototype:$(ne),o(n.querySelectorAll(G),T),u}}}(window,document,Object,"registerElement")},{}],13:[function(e,t,n){t.exports=function(e){switch(e){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],14:[function(e,t,n){"use strict";var r,i,o,a,s=Object.getOwnPropertyDescriptor?function(){return Object.getOwnPropertyDescriptor(arguments,"callee").get}():function(){throw new TypeError},l="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator,c=Object.getPrototypeOf||function(e){return e.__proto__},u=i?c(i):r,h=o?o.constructor:r,d=a?c(a):r,p=a?a():r,f="undefined"===typeof Uint8Array?r:c(Uint8Array),m={"$ %Array%":Array,"$ %ArrayBuffer%":"undefined"===typeof ArrayBuffer?r:ArrayBuffer,"$ %ArrayBufferPrototype%":"undefined"===typeof ArrayBuffer?r:ArrayBuffer.prototype,"$ %ArrayIteratorPrototype%":l?c([][Symbol.iterator]()):r,"$ %ArrayPrototype%":Array.prototype,"$ %ArrayProto_entries%":Array.prototype.entries,"$ %ArrayProto_forEach%":Array.prototype.forEach,"$ %ArrayProto_keys%":Array.prototype.keys,"$ %ArrayProto_values%":Array.prototype.values,"$ %AsyncFromSyncIteratorPrototype%":r,"$ %AsyncFunction%":h,"$ %AsyncFunctionPrototype%":h?h.prototype:r,"$ %AsyncGenerator%":a?c(p):r,"$ %AsyncGeneratorFunction%":d,"$ %AsyncGeneratorPrototype%":d?d.prototype:r,"$ %AsyncIteratorPrototype%":p&&l&&Symbol.asyncIterator?p[Symbol.asyncIterator]():r,"$ %Atomics%":"undefined"===typeof Atomics?r:Atomics,"$ %Boolean%":Boolean,"$ %BooleanPrototype%":Boolean.prototype,"$ %DataView%":"undefined"===typeof DataView?r:DataView,"$ %DataViewPrototype%":"undefined"===typeof DataView?r:DataView.prototype,"$ %Date%":Date,"$ %DatePrototype%":Date.prototype,"$ %decodeURI%":decodeURI,"$ %decodeURIComponent%":decodeURIComponent,"$ %encodeURI%":encodeURI,"$ %encodeURIComponent%":encodeURIComponent,"$ %Error%":Error,"$ %ErrorPrototype%":Error.prototype,"$ %eval%":eval,"$ %EvalError%":EvalError,"$ %EvalErrorPrototype%":EvalError.prototype,"$ %Float32Array%":"undefined"===typeof Float32Array?r:Float32Array,"$ %Float32ArrayPrototype%":"undefined"===typeof Float32Array?r:Float32Array.prototype,"$ %Float64Array%":"undefined"===typeof Float64Array?r:Float64Array,"$ %Float64ArrayPrototype%":"undefined"===typeof Float64Array?r:Float64Array.prototype,"$ %Function%":Function,"$ %FunctionPrototype%":Function.prototype,"$ %Generator%":i?c(i()):r,"$ %GeneratorFunction%":u,"$ %GeneratorPrototype%":u?u.prototype:r,"$ %Int8Array%":"undefined"===typeof Int8Array?r:Int8Array,"$ %Int8ArrayPrototype%":"undefined"===typeof Int8Array?r:Int8Array.prototype,"$ %Int16Array%":"undefined"===typeof Int16Array?r:Int16Array,"$ %Int16ArrayPrototype%":"undefined"===typeof Int16Array?r:Int8Array.prototype,"$ %Int32Array%":"undefined"===typeof Int32Array?r:Int32Array,"$ %Int32ArrayPrototype%":"undefined"===typeof Int32Array?r:Int32Array.prototype,"$ %isFinite%":isFinite,"$ %isNaN%":isNaN,"$ %IteratorPrototype%":l?c(c([][Symbol.iterator]())):r,"$ %JSON%":JSON,"$ %JSONParse%":JSON.parse,"$ %Map%":"undefined"===typeof Map?r:Map,"$ %MapIteratorPrototype%":"undefined"!==typeof Map&&l?c((new Map)[Symbol.iterator]()):r,"$ %MapPrototype%":"undefined"===typeof Map?r:Map.prototype,"$ %Math%":Math,"$ %Number%":Number,"$ %NumberPrototype%":Number.prototype,"$ %Object%":Object,"$ %ObjectPrototype%":Object.prototype,"$ %ObjProto_toString%":Object.prototype.toString,"$ %ObjProto_valueOf%":Object.prototype.valueOf,"$ %parseFloat%":parseFloat,"$ %parseInt%":parseInt,"$ %Promise%":"undefined"===typeof Promise?r:Promise,"$ %PromisePrototype%":"undefined"===typeof Promise?r:Promise.prototype,"$ %PromiseProto_then%":"undefined"===typeof Promise?r:Promise.prototype.then,"$ %Promise_all%":"undefined"===typeof Promise?r:Promise.all,"$ %Promise_reject%":"undefined"===typeof Promise?r:Promise.reject,"$ %Promise_resolve%":"undefined"===typeof Promise?r:Promise.resolve,"$ %Proxy%":"undefined"===typeof Proxy?r:Proxy,"$ %RangeError%":RangeError,"$ %RangeErrorPrototype%":RangeError.prototype,"$ %ReferenceError%":ReferenceError,"$ %ReferenceErrorPrototype%":ReferenceError.prototype,"$ %Reflect%":"undefined"===typeof Reflect?r:Reflect,"$ %RegExp%":RegExp,"$ %RegExpPrototype%":RegExp.prototype,"$ %Set%":"undefined"===typeof Set?r:Set,"$ %SetIteratorPrototype%":"undefined"!==typeof Set&&l?c((new Set)[Symbol.iterator]()):r,"$ %SetPrototype%":"undefined"===typeof Set?r:Set.prototype,"$ %SharedArrayBuffer%":"undefined"===typeof SharedArrayBuffer?r:SharedArrayBuffer,"$ %SharedArrayBufferPrototype%":"undefined"===typeof SharedArrayBuffer?r:SharedArrayBuffer.prototype,"$ %String%":String,"$ %StringIteratorPrototype%":l?c(""[Symbol.iterator]()):r,"$ %StringPrototype%":String.prototype,"$ %Symbol%":l?Symbol:r,"$ %SymbolPrototype%":l?Symbol.prototype:r,"$ %SyntaxError%":SyntaxError,"$ %SyntaxErrorPrototype%":SyntaxError.prototype,"$ %ThrowTypeError%":s,"$ %TypedArray%":f,"$ %TypedArrayPrototype%":f?f.prototype:r,"$ %TypeError%":TypeError,"$ %TypeErrorPrototype%":TypeError.prototype,"$ %Uint8Array%":"undefined"===typeof Uint8Array?r:Uint8Array,"$ %Uint8ArrayPrototype%":"undefined"===typeof Uint8Array?r:Uint8Array.prototype,"$ %Uint8ClampedArray%":"undefined"===typeof Uint8ClampedArray?r:Uint8ClampedArray,"$ %Uint8ClampedArrayPrototype%":"undefined"===typeof Uint8ClampedArray?r:Uint8ClampedArray.prototype,"$ %Uint16Array%":"undefined"===typeof Uint16Array?r:Uint16Array,"$ %Uint16ArrayPrototype%":"undefined"===typeof Uint16Array?r:Uint16Array.prototype,"$ %Uint32Array%":"undefined"===typeof Uint32Array?r:Uint32Array,"$ %Uint32ArrayPrototype%":"undefined"===typeof Uint32Array?r:Uint32Array.prototype,"$ %URIError%":URIError,"$ %URIErrorPrototype%":URIError.prototype,"$ %WeakMap%":"undefined"===typeof WeakMap?r:WeakMap,"$ %WeakMapPrototype%":"undefined"===typeof WeakMap?r:WeakMap.prototype,"$ %WeakSet%":"undefined"===typeof WeakSet?r:WeakSet,"$ %WeakSetPrototype%":"undefined"===typeof WeakSet?r:WeakSet.prototype};t.exports=function(e,t){if(arguments.length>1&&"boolean"!==typeof t)throw new TypeError('"allowMissing" argument must be a boolean');var n="$ "+e;if(!(n in m))throw new SyntaxError("intrinsic "+e+" does not exist!");if("undefined"===typeof m[n]&&!t)throw new TypeError("intrinsic "+e+" exists, but is not available. Please file an issue!");return m[n]}},{}],15:[function(e,t,n){"use strict";var r=e("./GetIntrinsic"),i=r("%Object%"),o=r("%TypeError%"),a=r("%String%"),s=e("./helpers/assertRecord"),l=e("./helpers/isNaN"),c=e("./helpers/isFinite"),u=e("./helpers/sign"),h=e("./helpers/mod"),d=e("is-callable"),p=e("es-to-primitive/es5"),f=e("has"),m={ToPrimitive:p,ToBoolean:function(e){return!!e},ToNumber:function(e){return+e},ToInteger:function(e){var t=this.ToNumber(e);return l(t)?0:0!==t&&c(t)?u(t)*Math.floor(Math.abs(t)):t},ToInt32:function(e){return this.ToNumber(e)>>0},ToUint32:function(e){return this.ToNumber(e)>>>0},ToUint16:function(e){var t=this.ToNumber(e);if(l(t)||0===t||!c(t))return 0;var n=u(t)*Math.floor(Math.abs(t));return h(n,65536)},ToString:function(e){return a(e)},ToObject:function(e){return this.CheckObjectCoercible(e),i(e)},CheckObjectCoercible:function(e,t){if(null==e)throw new o(t||"Cannot call method on "+e);return e},IsCallable:d,SameValue:function(e,t){return e===t?0!==e||1/e===1/t:l(e)&&l(t)},Type:function(e){return null===e?"Null":"undefined"===typeof e?"Undefined":"function"===typeof e||"object"===typeof e?"Object":"number"===typeof e?"Number":"boolean"===typeof e?"Boolean":"string"===typeof e?"String":void 0},IsPropertyDescriptor:function(e){if("Object"!==this.Type(e))return!1;var t={"[[Configurable]]":!0,"[[Enumerable]]":!0,"[[Get]]":!0,"[[Set]]":!0,"[[Value]]":!0,"[[Writable]]":!0};for(var n in e)if(f(e,n)&&!t[n])return!1;var r=f(e,"[[Value]]"),i=f(e,"[[Get]]")||f(e,"[[Set]]");if(r&&i)throw new o("Property Descriptors may not be both accessor and data descriptors");return!0},IsAccessorDescriptor:function(e){return"undefined"!==typeof e&&(s(this,"Property Descriptor","Desc",e),!(!f(e,"[[Get]]")&&!f(e,"[[Set]]")))},IsDataDescriptor:function(e){return"undefined"!==typeof e&&(s(this,"Property Descriptor","Desc",e),!(!f(e,"[[Value]]")&&!f(e,"[[Writable]]")))},IsGenericDescriptor:function(e){return"undefined"!==typeof e&&(s(this,"Property Descriptor","Desc",e),!this.IsAccessorDescriptor(e)&&!this.IsDataDescriptor(e))},FromPropertyDescriptor:function(e){if("undefined"===typeof e)return e;if(s(this,"Property Descriptor","Desc",e),this.IsDataDescriptor(e))return{value:e["[[Value]]"],writable:!!e["[[Writable]]"],enumerable:!!e["[[Enumerable]]"],configurable:!!e["[[Configurable]]"]};if(this.IsAccessorDescriptor(e))return{get:e["[[Get]]"],set:e["[[Set]]"],enumerable:!!e["[[Enumerable]]"],configurable:!!e["[[Configurable]]"]};throw new o("FromPropertyDescriptor must be called with a fully populated Property Descriptor")},ToPropertyDescriptor:function(e){if("Object"!==this.Type(e))throw new o("ToPropertyDescriptor requires an object");var t={};if(f(e,"enumerable")&&(t["[[Enumerable]]"]=this.ToBoolean(e.enumerable)),f(e,"configurable")&&(t["[[Configurable]]"]=this.ToBoolean(e.configurable)),f(e,"value")&&(t["[[Value]]"]=e.value),f(e,"writable")&&(t["[[Writable]]"]=this.ToBoolean(e.writable)),f(e,"get")){var n=e.get;if("undefined"!==typeof n&&!this.IsCallable(n))throw new TypeError("getter must be a function");t["[[Get]]"]=n}if(f(e,"set")){var r=e.set;if("undefined"!==typeof r&&!this.IsCallable(r))throw new o("setter must be a function");t["[[Set]]"]=r}if((f(t,"[[Get]]")||f(t,"[[Set]]"))&&(f(t,"[[Value]]")||f(t,"[[Writable]]")))throw new o("Invalid property descriptor. Cannot both specify accessors and a value or writable attribute");return t}};t.exports=m},{"./GetIntrinsic":14,"./helpers/assertRecord":16,"./helpers/isFinite":17,"./helpers/isNaN":18,"./helpers/mod":19,"./helpers/sign":20,"es-to-primitive/es5":21,has:28,"is-callable":32}],16:[function(e,t,n){"use strict";var r=e("../GetIntrinsic"),i=r("%TypeError%"),o=r("%SyntaxError%"),a=e("has"),s={"Property Descriptor":function(e,t){if("Object"!==e.Type(t))return!1;var n={"[[Configurable]]":!0,"[[Enumerable]]":!0,"[[Get]]":!0,"[[Set]]":!0,"[[Value]]":!0,"[[Writable]]":!0};for(var r in t)if(a(t,r)&&!n[r])return!1;var o=a(t,"[[Value]]"),s=a(t,"[[Get]]")||a(t,"[[Set]]");if(o&&s)throw new i("Property Descriptors may not be both accessor and data descriptors");return!0}};t.exports=function(e,t,n,r){var a=s[t];if("function"!==typeof a)throw new o("unknown record type: "+t);if(!a(e,r))throw new i(n+" must be a "+t);console.log(a(e,r),r)}},{"../GetIntrinsic":14,has:28}],17:[function(e,t,n){var r=Number.isNaN||function(e){return e!==e};t.exports=Number.isFinite||function(e){return"number"===typeof e&&!r(e)&&e!==1/0&&e!==-1/0}},{}],18:[function(e,t,n){t.exports=Number.isNaN||function(e){return e!==e}},{}],19:[function(e,t,n){t.exports=function(e,t){var n=e%t;return Math.floor(n>=0?n:n+t)}},{}],20:[function(e,t,n){t.exports=function(e){return e>=0?1:-1}},{}],21:[function(e,t,n){"use strict";var r=Object.prototype.toString,i=e("./helpers/isPrimitive"),o=e("is-callable"),a={"[[DefaultValue]]":function(e){var t;if((t=arguments.length>1?arguments[1]:"[object Date]"===r.call(e)?String:Number)===String||t===Number){var n,a,s=t===String?["toString","valueOf"]:["valueOf","toString"];for(a=0;a<s.length;++a)if(o(e[s[a]])&&(n=e[s[a]](),i(n)))return n;throw new TypeError("No default value")}throw new TypeError("invalid [[DefaultValue]] hint supplied")}};t.exports=function(e){return i(e)?e:arguments.length>1?a["[[DefaultValue]]"](e,arguments[1]):a["[[DefaultValue]]"](e)}},{"./helpers/isPrimitive":22,"is-callable":32}],22:[function(e,t,n){t.exports=function(e){return null===e||"function"!==typeof e&&"object"!==typeof e}},{}],23:[function(e,t,n){var r=e("dtype");function i(e,t,n){if(!e)throw new TypeError("must specify data as first parameter");if(n=0|+(n||0),Array.isArray(e)&&e[0]&&"number"===typeof e[0][0]){var i,o,a,s,l=e[0].length,c=e.length*l;t&&"string"!==typeof t||(t=new(r(t||"float32"))(c+n));var u=t.length-n;if(c!==u)throw new Error("source length "+c+" ("+l+"x"+e.length+") does not match destination length "+u);for(i=0,a=n;i<e.length;i++)for(o=0;o<l;o++)t[a++]=null===e[i][o]?NaN:e[i][o]}else if(t&&"string"!==typeof t)t.set(e,n);else{var h=r(t||"float32");if(Array.isArray(e)||"array"===t)for(i=0,a=n,s=(t=new h(e.length+n)).length;a<s;a++,i++)t[a]=null===e[i]?NaN:e[i];else 0===n?t=new h(e):(t=new h(e.length+n)).set(e,n)}return t}t.exports=i},{dtype:13}],24:[function(e,t,n){"use strict";var r=e("is-callable"),i=Object.prototype.toString,o=Object.prototype.hasOwnProperty,a=function(e,t,n){for(var r=0,i=e.length;r<i;r++)o.call(e,r)&&(null==n?t(e[r],r,e):t.call(n,e[r],r,e))},s=function(e,t,n){for(var r=0,i=e.length;r<i;r++)null==n?t(e.charAt(r),r,e):t.call(n,e.charAt(r),r,e)},l=function(e,t,n){for(var r in e)o.call(e,r)&&(null==n?t(e[r],r,e):t.call(n,e[r],r,e))},c=function(e,t,n){if(!r(t))throw new TypeError("iterator must be a function");var o;arguments.length>=3&&(o=n),"[object Array]"===i.call(e)?a(e,t,o):"string"===typeof e?s(e,t,o):l(e,t,o)};t.exports=c},{"is-callable":32}],25:[function(e,t,n){"use strict";var r="Function.prototype.bind called on incompatible ",i=Array.prototype.slice,o=Object.prototype.toString,a="[object Function]";t.exports=function(e){var t=this;if("function"!==typeof t||o.call(t)!==a)throw new TypeError(r+t);for(var n,s=i.call(arguments,1),l=function(){if(this instanceof n){var r=t.apply(this,s.concat(i.call(arguments)));return Object(r)===r?r:this}return t.apply(e,s.concat(i.call(arguments)))},c=Math.max(0,t.length-s.length),u=[],h=0;h<c;h++)u.push("$"+h);if(n=Function("binder","return function ("+u.join(",")+"){ return binder.apply(this,arguments); }")(l),t.prototype){var d=function(){};d.prototype=t.prototype,n.prototype=new d,d.prototype=null}return n}},{}],26:[function(e,t,n){"use strict";var r=e("./implementation");t.exports=Function.prototype.bind||r},{"./implementation":25}],27:[function(e,t,n){(function(e){var n;n="undefined"!==typeof window?window:"undefined"!==typeof e?e:"undefined"!==typeof self?self:{},t.exports=n}).call(this,"undefined"!==typeof r.g?r.g:"undefined"!==typeof self?self:"undefined"!==typeof window?window:{})},{}],28:[function(e,t,n){"use strict";var r=e("function-bind");t.exports=r.call(Function.call,Object.prototype.hasOwnProperty)},{"function-bind":26}],29:[function(e,t,n){n.read=function(e,t,n,r,i){var o,a,s=8*i-r-1,l=(1<<s)-1,c=l>>1,u=-7,h=n?i-1:0,d=n?-1:1,p=e[t+h];for(h+=d,o=p&(1<<-u)-1,p>>=-u,u+=s;u>0;o=256*o+e[t+h],h+=d,u-=8);for(a=o&(1<<-u)-1,o>>=-u,u+=r;u>0;a=256*a+e[t+h],h+=d,u-=8);if(0===o)o=1-c;else{if(o===l)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),o-=c}return(p?-1:1)*a*Math.pow(2,o-r)},n.write=function(e,t,n,r,i,o){var a,s,l,c=8*o-i-1,u=(1<<c)-1,h=u>>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:o-1,f=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-a))<1&&(a--,l*=2),(t+=a+h>=1?d/l:d*Math.pow(2,1-h))*l>=2&&(a++,l/=2),a+h>=u?(s=0,a=u):a+h>=1?(s=(t*l-1)*Math.pow(2,i),a+=h):(s=t*Math.pow(2,h-1)*Math.pow(2,i),a=0));i>=8;e[n+p]=255&s,p+=f,s/=256,i-=8);for(a=a<<i|s,c+=i;c>0;e[n+p]=255&a,p+=f,a/=256,c-=8);e[n+p-f]|=128*m}},{}],30:[function(e,t,n){"function"===typeof Object.create?t.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},{}],31:[function(e,t,n){function r(e){return!!e.constructor&&"function"===typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function i(e){return"function"===typeof e.readFloatLE&&"function"===typeof e.slice&&r(e.slice(0,0))}t.exports=function(e){return null!=e&&(r(e)||i(e)||!!e._isBuffer)}},{}],32:[function(t,n,r){"use strict";var i=Function.prototype.toString,o=/^\s*class\b/,a=function(t){try{var n=i.call(t);return o.test(n)}catch(e){return!1}},s=function(t){try{return!a(t)&&(i.call(t),!0)}catch(e){return!1}},l=Object.prototype.toString,c="[object Function]",u="[object GeneratorFunction]",h="function"===typeof Symbol&&"symbol"===typeof Symbol.toStringTag;n.exports=function(e){if(!e)return!1;if("function"!==typeof e&&"object"!==typeof e)return!1;if("function"===typeof e&&!e.prototype)return!0;if(h)return s(e);if(a(e))return!1;var t=l.call(e);return t===c||t===u}},{}],33:[function(e,t,n){t.exports=i;var r=Object.prototype.toString;function i(e){var t=r.call(e);return"[object Function]"===t||"function"===typeof e&&"[object RegExp]"!==t||"undefined"!==typeof window&&(e===window.setTimeout||e===window.alert||e===window.confirm||e===window.prompt)}},{}],34:[function(e,t,n){"use strict";t.exports=function(e){var t=typeof e;return null!==e&&("object"===t||"function"===t)}},{}],35:[function(e,t,n){var r={}.toString;t.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},{}],36:[function(e,t,n){var r=e("word-wrapper"),i=e("xtend"),o=e("as-number"),a=["x","e","a","o","n","s","r","c","u","m","v","w","z"],s=["m","w"],l=["H","I","N","E","F","K","L","T","U","V","W","X","Y","Z"],c="\t".charCodeAt(0),u=" ".charCodeAt(0),h=0,d=1,p=2;function f(e){this.glyphs=[],this._measure=this.computeMetrics.bind(this),this.update(e)}function m(e){Object.defineProperty(f.prototype,e,{get:v(e),configurable:!0})}function v(e){return new Function(["return function "+e+"() {"," return this._"+e,"}"].join("\n"))()}function g(e,t){if(!e.chars||0===e.chars.length)return null;var n=E(e.chars,t);return n>=0?e.chars[n]:null}function y(e){for(var t=0;t<a.length;t++){var n=a[t].charCodeAt(0),r=E(e.chars,n);if(r>=0)return e.chars[r].height}return 0}function b(e){for(var t=0;t<s.length;t++){var n=s[t].charCodeAt(0),r=E(e.chars,n);if(r>=0)return e.chars[r]}return 0}function A(e){for(var t=0;t<l.length;t++){var n=l[t].charCodeAt(0),r=E(e.chars,n);if(r>=0)return e.chars[r].height}return 0}function w(e,t,n){if(!e.kernings||0===e.kernings.length)return 0;for(var r=e.kernings,i=0;i<r.length;i++){var o=r[i];if(o.first===t&&o.second===n)return o.amount}return 0}function x(e){return"center"===e?d:"right"===e?p:h}function E(e,t,n){for(var r=n=n||0;r<e.length;r++)if(e[r].id===t)return r;return-1}t.exports=function(e){return new f(e)},f.prototype.update=function(e){if(e=i({measure:this._measure},e),this._opt=e,this._opt.tabSize=o(this._opt.tabSize,4),!e.font)throw new Error("must provide a valid bitmap font");var t=this.glyphs,n=e.text||"",a=e.font;this._setupSpaceGlyphs(a);var s=r.lines(n,e),l=e.width||0;t.length=0;var c=s.reduce((function(e,t){return Math.max(e,t.width,l)}),0),u=0,h=0,f=o(e.lineHeight,a.common.lineHeight),m=a.common.base,v=f-m,g=e.letterSpacing||0,b=f*s.length-v,E=x(this._opt.align);h-=b,this._width=c,this._height=b,this._descender=f-m,this._baseline=m,this._xHeight=y(a),this._capHeight=A(a),this._lineHeight=f,this._ascender=f-v-this._xHeight;var M=this;s.forEach((function(e,r){for(var i,o=e.start,s=e.end,l=e.width,m=o;m<s;m++){var v=n.charCodeAt(m),y=M.getGlyph(a,v);if(y){i&&(u+=w(a,i.id,y.id));var b=u;E===d?b+=(c-l)/2:E===p&&(b+=c-l),t.push({position:[b,h],data:y,index:m,line:r}),u+=y.xadvance+g,i=y}}h+=f,u=0})),this._linesTotal=s.length},f.prototype._setupSpaceGlyphs=function(e){if(this._fallbackSpaceGlyph=null,this._fallbackTabGlyph=null,e.chars&&0!==e.chars.length){var t=g(e,u)||b(e)||e.chars[0],n=this._opt.tabSize*t.xadvance;this._fallbackSpaceGlyph=t,this._fallbackTabGlyph=i(t,{x:0,y:0,xadvance:n,id:c,xoffset:0,yoffset:0,width:0,height:0})}},f.prototype.getGlyph=function(e,t){var n=g(e,t);return n||(t===c?this._fallbackTabGlyph:t===u?this._fallbackSpaceGlyph:null)},f.prototype.computeMetrics=function(e,t,n,r){var i,o=this._opt.letterSpacing||0,a=this._opt.font,s=0,l=0,c=0;if(!a.chars||0===a.chars.length)return{start:t,end:t,width:0};n=Math.min(e.length,n);for(var u=t;u<n;u++){var h,d=e.charCodeAt(u);if(h=this.getGlyph(a,d)){h.xoffset;var p=(s+=i?w(a,i.id,h.id):0)+h.xadvance+o,f=s+h.width;if(f>=r||p>=r)break;s=p,l=f,i=h}c++}return i&&(l+=i.xoffset),{start:t,end:t+c,width:l}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(m)},{"as-number":2,"word-wrapper":69,xtend:72}],37:[function(t,n,r){(function(r){var i=t("xhr"),o=function(){},a=t("parse-bmfont-ascii"),s=t("parse-bmfont-xml"),l=t("parse-bmfont-binary"),c=t("./lib/is-binary"),u=t("xtend"),h=self.XMLHttpRequest&&"withCredentials"in new XMLHttpRequest;function d(e){return"[object ArrayBuffer]"===Object.prototype.toString.call(e)}function p(e){if(h)return u(e,{responseType:"arraybuffer"});if("undefined"===typeof self.XMLHttpRequest)throw new Error("your browser does not support XHR loading");var t=new self.XMLHttpRequest;return t.overrideMimeType("text/plain; charset=x-user-defined"),u({xhr:t},e)}n.exports=function(t,n){n="function"===typeof n?n:o,"string"===typeof t?t={uri:t}:t||(t={}),t.binary&&(t=p(t)),i(t,(function(i,u,h){if(i)return n(i);if(!/^2/.test(u.statusCode))return n(new Error("http status code: "+u.statusCode));if(!h)return n(new Error("no body result"));var p,f=!1;if(d(h)){var m=new Uint8Array(h);h=new r(m,"binary")}c(h)&&(f=!0,"string"===typeof h&&(h=new r(h,"binary"))),f||(r.isBuffer(h)&&(h=h.toString(t.encoding)),h=h.trim());try{var v=u.headers["content-type"];p=f?l(h):/json/.test(v)||"{"===h.charAt(0)?JSON.parse(h):/xml/.test(v)||"<"===h.charAt(0)?s(h):a(h)}catch(e){n(new Error("error parsing font "+e.message)),n=o}n(null,p)}))}}).call(this,t("buffer").Buffer)},{"./lib/is-binary":38,buffer:6,"parse-bmfont-ascii":43,"parse-bmfont-binary":44,"parse-bmfont-xml":45,xhr:70,xtend:72}],38:[function(e,t,n){(function(n){var r=e("buffer-equal"),i=new n([66,77,70,3]);t.exports=function(e){return"string"===typeof e?"BMF"===e.substring(0,3):e.length>4&&r(e.slice(0,4),i)}}).call(this,e("buffer").Buffer)},{buffer:6,"buffer-equal":5}],39:[function(e,t,n){"use strict";var r=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;function a(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function s(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(i){return!1}}t.exports=s()?Object.assign:function(e,t){for(var n,s,l=a(e),c=1;c<arguments.length;c++){for(var u in n=Object(arguments[c]))i.call(n,u)&&(l[u]=n[u]);if(r){s=r(n);for(var h=0;h<s.length;h++)o.call(n,s[h])&&(l[s[h]]=n[s[h]])}}return l}},{}],40:[function(t,n,r){"use strict";var i;if(!Object.keys){var o=Object.prototype.hasOwnProperty,a=Object.prototype.toString,s=t("./isArguments"),l=Object.prototype.propertyIsEnumerable,c=!l.call({toString:null},"toString"),u=l.call((function(){}),"prototype"),h=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],d=function(e){var t=e.constructor;return t&&t.prototype===e},p={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},f=function(){if("undefined"===typeof window)return!1;for(var t in window)try{if(!p["$"+t]&&o.call(window,t)&&null!==window[t]&&"object"===typeof window[t])try{d(window[t])}catch(e){return!0}}catch(e){return!0}return!1}(),m=function(t){if("undefined"===typeof window||!f)return d(t);try{return d(t)}catch(e){return!1}};i=function(e){var t=null!==e&&"object"===typeof e,n="[object Function]"===a.call(e),r=s(e),i=t&&"[object String]"===a.call(e),l=[];if(!t&&!n&&!r)throw new TypeError("Object.keys called on a non-object");var d=u&&n;if(i&&e.length>0&&!o.call(e,0))for(var p=0;p<e.length;++p)l.push(String(p));if(r&&e.length>0)for(var f=0;f<e.length;++f)l.push(String(f));else for(var v in e)d&&"prototype"===v||!o.call(e,v)||l.push(String(v));if(c)for(var g=m(e),y=0;y<h.length;++y)g&&"constructor"===h[y]||!o.call(e,h[y])||l.push(h[y]);return l}}n.exports=i},{"./isArguments":42}],41:[function(e,t,n){"use strict";var r=Array.prototype.slice,i=e("./isArguments"),o=Object.keys,a=o?function(e){return o(e)}:e("./implementation"),s=Object.keys;a.shim=function(){return Object.keys?function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2)||(Object.keys=function(e){return i(e)?s(r.call(e)):s(e)}):Object.keys=a,Object.keys||a},t.exports=a},{"./implementation":40,"./isArguments":42}],42:[function(e,t,n){"use strict";var r=Object.prototype.toString;t.exports=function(e){var t=r.call(e),n="[object Arguments]"===t;return n||(n="[object Array]"!==t&&null!==e&&"object"===typeof e&&"number"===typeof e.length&&e.length>=0&&"[object Function]"===r.call(e.callee)),n}},{}],43:[function(e,t,n){function r(e,t){if(!(e=e.replace(/\t+/g," ").trim()))return null;var n=e.indexOf(" ");if(-1===n)throw new Error("no named row at line "+t);var r=e.substring(0,n);e=(e=(e=(e=e.substring(n+1)).replace(/letter=[\'\"]\S+[\'\"]/gi,"")).split("=")).map((function(e){return e.trim().match(/(".*?"|[^"\s]+)+(?=\s*|\s*$)/g)}));for(var o=[],a=0;a<e.length;a++){var s=e[a];0===a?o.push({key:s[0],data:""}):a===e.length-1?o[o.length-1].data=i(s[0]):(o[o.length-1].data=i(s[0]),o.push({key:s[1],data:""}))}var l={key:r,data:{}};return o.forEach((function(e){l.data[e.key]=e.data})),l}function i(e){return e&&0!==e.length?0===e.indexOf('"')||0===e.indexOf("'")?e.substring(1,e.length-1):-1!==e.indexOf(",")?o(e):parseInt(e,10):""}function o(e){return e.split(",").map((function(e){return parseInt(e,10)}))}t.exports=function(e){if(!e)throw new Error("no data provided");var t={pages:[],chars:[],kernings:[]},n=(e=e.toString().trim()).split(/\r\n?|\n/g);if(0===n.length)throw new Error("no data in BMFont file");for(var i=0;i<n.length;i++){var o=r(n[i],i);if(o)if("page"===o.key){if("number"!==typeof o.data.id)throw new Error("malformed file at line "+i+" -- needs page id=N");if("string"!==typeof o.data.file)throw new Error("malformed file at line "+i+' -- needs page file="path"');t.pages[o.data.id]=o.data.file}else"chars"===o.key||"kernings"===o.key||("char"===o.key?t.chars.push(o.data):"kerning"===o.key?t.kernings.push(o.data):t[o.key]=o.data)}return t}},{}],44:[function(e,t,n){var r=[66,77,70];function i(e,t,n){if(n>t.length-1)return 0;var r=t.readUInt8(n++),i=t.readInt32LE(n);switch(n+=4,r){case 1:e.info=o(t,n);break;case 2:e.common=a(t,n);break;case 3:e.pages=s(t,n,i);break;case 4:e.chars=l(t,n,i);break;case 5:e.kernings=c(t,n,i)}return 5+i}function o(e,t){var n={};n.size=e.readInt16LE(t);var r=e.readUInt8(t+2);return n.smooth=r>>7&1,n.unicode=r>>6&1,n.italic=r>>5&1,n.bold=r>>4&1,r>>3&1&&(n.fixedHeight=1),n.charset=e.readUInt8(t+3)||"",n.stretchH=e.readUInt16LE(t+4),n.aa=e.readUInt8(t+6),n.padding=[e.readInt8(t+7),e.readInt8(t+8),e.readInt8(t+9),e.readInt8(t+10)],n.spacing=[e.readInt8(t+11),e.readInt8(t+12)],n.outline=e.readUInt8(t+13),n.face=h(e,t+14),n}function a(e,t){var n={};return n.lineHeight=e.readUInt16LE(t),n.base=e.readUInt16LE(t+2),n.scaleW=e.readUInt16LE(t+4),n.scaleH=e.readUInt16LE(t+6),n.pages=e.readUInt16LE(t+8),e.readUInt8(t+10),n.packed=0,n.alphaChnl=e.readUInt8(t+11),n.redChnl=e.readUInt8(t+12),n.greenChnl=e.readUInt8(t+13),n.blueChnl=e.readUInt8(t+14),n}function s(e,t,n){for(var r=[],i=u(e,t),o=i.length+1,a=n/o,s=0;s<a;s++)r[s]=e.slice(t,t+i.length).toString("utf8"),t+=o;return r}function l(e,t,n){for(var r=[],i=n/20,o=0;o<i;o++){var a={},s=20*o;a.id=e.readUInt32LE(t+0+s),a.x=e.readUInt16LE(t+4+s),a.y=e.readUInt16LE(t+6+s),a.width=e.readUInt16LE(t+8+s),a.height=e.readUInt16LE(t+10+s),a.xoffset=e.readInt16LE(t+12+s),a.yoffset=e.readInt16LE(t+14+s),a.xadvance=e.readInt16LE(t+16+s),a.page=e.readUInt8(t+18+s),a.chnl=e.readUInt8(t+19+s),r[o]=a}return r}function c(e,t,n){for(var r=[],i=n/10,o=0;o<i;o++){var a={},s=10*o;a.first=e.readUInt32LE(t+0+s),a.second=e.readUInt32LE(t+4+s),a.amount=e.readInt16LE(t+8+s),r[o]=a}return r}function u(e,t){for(var n=t;n<e.length&&0!==e[n];n++);return e.slice(t,n)}function h(e,t){return u(e,t).toString("utf8")}t.exports=function(e){if(e.length<6)throw new Error("invalid buffer length for BMFont");if(!r.every((function(t,n){return e.readUInt8(n)===t})))throw new Error("BMFont missing BMF byte header");var t=3;if(e.readUInt8(t++)>3)throw new Error("Only supports BMFont Binary v3 (BMFont App v1.10)");for(var n={kernings:[],chars:[]},o=0;o<5;o++)t+=i(n,e,t);return n}},{}],45:[function(e,t,n){var r=e("./parse-attribs"),i=e("xml-parse-from-string"),o={scaleh:"scaleH",scalew:"scaleW",stretchh:"stretchH",lineheight:"lineHeight",alphachnl:"alphaChnl",redchnl:"redChnl",greenchnl:"greenChnl",bluechnl:"blueChnl"};function a(e){return s(e).reduce((function(e,t){return e[l(t.nodeName)]=t.nodeValue,e}),{})}function s(e){for(var t=[],n=0;n<e.attributes.length;n++)t.push(e.attributes[n]);return t}function l(e){return o[e.toLowerCase()]||e}t.exports=function(e){e=e.toString();var t=i(e),n={pages:[],chars:[],kernings:[]};["info","common"].forEach((function(e){var i=t.getElementsByTagName(e)[0];i&&(n[e]=r(a(i)))}));var o=t.getElementsByTagName("pages")[0];if(!o)throw new Error("malformed file -- no <pages> element");for(var s=o.getElementsByTagName("page"),l=0;l<s.length;l++){var c=s[l],u=parseInt(c.getAttribute("id"),10),h=c.getAttribute("file");if(isNaN(u))throw new Error('malformed file -- page "id" attribute is NaN');if(!h)throw new Error('malformed file -- needs page "file" attribute');n.pages[parseInt(u,10)]=h}return["chars","kernings"].forEach((function(e){var i=t.getElementsByTagName(e)[0];if(i)for(var o=e.substring(0,e.length-1),s=i.getElementsByTagName(o),l=0;l<s.length;l++){var c=s[l];n[e].push(r(a(c)))}})),n}},{"./parse-attribs":46,"xml-parse-from-string":71}],46:[function(e,t,n){var r="chasrset";function i(e){return e.split(",").map((function(e){return parseInt(e,10)}))}t.exports=function(e){for(var t in r in e&&(e.charset=e[r],delete e[r]),e)"face"!==t&&"charset"!==t&&(e[t]="padding"===t||"spacing"===t?i(e[t]):parseInt(e[t],10));return e}},{}],47:[function(e,t,n){var r=e("string.prototype.trim"),i=e("for-each"),o=function(e){return"[object Array]"===Object.prototype.toString.call(e)};t.exports=function(e){if(!e)return{};var t={};return i(r(e).split("\n"),(function(e){var n=e.indexOf(":"),i=r(e.slice(0,n)).toLowerCase(),a=r(e.slice(n+1));"undefined"===typeof t[i]?t[i]=a:o(t[i])?t[i].push(a):t[i]=[t[i],a]})),t}},{"for-each":24,"string.prototype.trim":53}],48:[function(e,t,n){(function(e){var n=e.performance||{},r=function(){for(var e=["now","webkitNow","msNow","mozNow","oNow"];e.length;){var t=e.shift();if(t in n)return n[t].bind(n)}var r=Date.now||function(){return(new Date).getTime()},i=(n.timing||{}).navigationStart||r();return function(){return r()-i}}();r.performanceNow=n.now,r.noConflict=function(){n.now=r.performanceNow},r.conflict=function(){n.now=r},r.conflict(),t.exports=r}).call(this,"undefined"!==typeof r.g?r.g:"undefined"!==typeof self?self:"undefined"!==typeof window?window:{})},{}],49:[function(t,n,r){var i,o,a=n.exports={};function s(){throw new Error("setTimeout has not been defined")}function l(){throw new Error("clearTimeout has not been defined")}function c(t){if(i===setTimeout)return setTimeout(t,0);if((i===s||!i)&&setTimeout)return i=setTimeout,setTimeout(t,0);try{return i(t,0)}catch(e){try{return i.call(null,t,0)}catch(e){return i.call(this,t,0)}}}function u(t){if(o===clearTimeout)return clearTimeout(t);if((o===l||!o)&&clearTimeout)return o=clearTimeout,clearTimeout(t);try{return o(t)}catch(e){try{return o.call(null,t)}catch(e){return o.call(this,t)}}}!function(){try{i="function"===typeof setTimeout?setTimeout:s}catch(e){i=s}try{o="function"===typeof clearTimeout?clearTimeout:l}catch(e){o=l}}();var h,d=[],p=!1,f=-1;function m(){p&&h&&(p=!1,h.length?d=h.concat(d):f=-1,d.length&&v())}function v(){if(!p){var e=c(m);p=!0;for(var t=d.length;t;){for(h=d,d=[];++f<t;)h&&h[f].run();f=-1,t=d.length}h=null,p=!1,u(e)}}function g(e,t){this.fun=e,this.array=t}function y(){}a.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];d.push(new g(e,t)),1!==d.length||p||c(v)},g.prototype.run=function(){this.fun.apply(null,this.array)},a.title="browser",a.browser=!0,a.env={},a.argv=[],a.version="",a.versions={},a.on=y,a.addListener=y,a.once=y,a.off=y,a.removeListener=y,a.removeAllListeners=y,a.emit=y,a.prependListener=y,a.prependOnceListener=y,a.listeners=function(e){return[]},a.binding=function(e){throw new Error("process.binding is not supported")},a.cwd=function(){return"/"},a.chdir=function(e){throw new Error("process.chdir is not supported")},a.umask=function(){return 0}},{}],50:[function(t,n,r){(function(t){!function(r){var i=setTimeout,o="function"===typeof t&&t||function(e){i(e,1)};function a(e,t){return function(){e.apply(t,arguments)}}var s=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function l(e){if("object"!==typeof this)throw new TypeError("Promises must be constructed via new");if("function"!==typeof e)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],f(e,a(u,this),a(h,this))}function c(t){var n=this;null!==this._state?o((function(){var r=n._state?t.onFulfilled:t.onRejected;if(null!==r){var i;try{i=r(n._value)}catch(e){return void t.reject(e)}t.resolve(i)}else(n._state?t.resolve:t.reject)(n._value)})):this._deferreds.push(t)}function u(t){try{if(t===this)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"===typeof t||"function"===typeof t)){var n=t.then;if("function"===typeof n)return void f(a(n,t),a(u,this),a(h,this))}this._state=!0,this._value=t,d.call(this)}catch(e){h.call(this,e)}}function h(e){this._state=!1,this._value=e,d.call(this)}function d(){for(var e=0,t=this._deferreds.length;e<t;e++)c.call(this,this._deferreds[e]);this._deferreds=null}function p(e,t,n,r){this.onFulfilled="function"===typeof e?e:null,this.onRejected="function"===typeof t?t:null,this.resolve=n,this.reject=r}function f(e,t,n){var r=!1;try{e((function(e){r||(r=!0,t(e))}),(function(e){r||(r=!0,n(e))}))}catch(i){if(r)return;r=!0,n(i)}}l.prototype.catch=function(e){return this.then(null,e)},l.prototype.then=function(e,t){var n=this;return new l((function(r,i){c.call(n,new p(e,t,r,i))}))},l.all=function(){var e=Array.prototype.slice.call(1===arguments.length&&s(arguments[0])?arguments[0]:arguments);return new l((function(t,n){if(0===e.length)return t([]);var r=e.length;function i(o,a){try{if(a&&("object"===typeof a||"function"===typeof a)){var s=a.then;if("function"===typeof s)return void s.call(a,(function(e){i(o,e)}),n)}e[o]=a,0===--r&&t(e)}catch(l){n(l)}}for(var o=0;o<e.length;o++)i(o,e[o])}))},l.resolve=function(e){return e&&"object"===typeof e&&e.constructor===l?e:new l((function(t){t(e)}))},l.reject=function(e){return new l((function(t,n){n(e)}))},l.race=function(e){return new l((function(t,n){for(var r=0,i=e.length;r<i;r++)e[r].then(t,n)}))},l._setImmediateFn=function(e){o=e},"undefined"!==typeof n&&n.exports?n.exports=l:r.Promise||(r.Promise=l)}(this)}).call(this,t("timers").setImmediate)},{timers:67}],51:[function(e,t,n){var r=e("dtype"),i=e("an-array"),o=e("is-buffer"),a=[0,2,3],s=[2,1,3];t.exports=function(e,t){e&&(i(e)||o(e))||(t=e||{},e=null);for(var n="string"===typeof(t="number"===typeof t?{count:t}:t||{}).type?t.type:"uint16",l="number"===typeof t.count?t.count:1,c=t.start||0,u=!1!==t.clockwise?a:s,h=u[0],d=u[1],p=u[2],f=6*l,m=e||new(r(n))(f),v=0,g=0;v<f;v+=6,g+=4){var y=v+c;m[y+0]=g+0,m[y+1]=g+1,m[y+2]=g+2,m[y+3]=g+h,m[y+4]=g+d,m[y+5]=g+p}return m}},{"an-array":1,dtype:13,"is-buffer":31}],52:[function(e,t,n){"use strict";var r=e("function-bind"),i=e("es-abstract/es5"),o=r.call(Function.call,String.prototype.replace),a=/^[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]+/,s=/[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]+$/;t.exports=function(){var e=i.ToString(i.CheckObjectCoercible(this));return o(o(e,a,""),s,"")}},{"es-abstract/es5":15,"function-bind":26}],53:[function(e,t,n){"use strict";var r=e("function-bind"),i=e("define-properties"),o=e("./implementation"),a=e("./polyfill"),s=e("./shim"),l=r.call(Function.call,a());i(l,{getPolyfill:a,implementation:o,shim:s}),t.exports=l},{"./implementation":52,"./polyfill":54,"./shim":55,"define-properties":11,"function-bind":26}],54:[function(e,t,n){"use strict";var r=e("./implementation"),i="\u200b";t.exports=function(){return String.prototype.trim&&i.trim()===i?String.prototype.trim:r}},{"./implementation":52}],55:[function(e,t,n){"use strict";var r=e("define-properties"),i=e("./polyfill");t.exports=function(){var e=i();return r(String.prototype,{trim:e},{trim:function(){return String.prototype.trim!==e}}),e}},{"./polyfill":54,"define-properties":11}],56:[function(t,n,r){"use strict";var i={update:null,begin:null,loopBegin:null,changeBegin:null,change:null,changeComplete:null,loopComplete:null,complete:null,loop:1,direction:"normal",autoplay:!0,timelineOffset:0},o={duration:1e3,delay:0,endDelay:0,easing:"easeOutElastic(1, .5)",round:0},a=["translateX","translateY","translateZ","rotate","rotateX","rotateY","rotateZ","scale","scaleX","scaleY","scaleZ","skew","skewX","skewY","perspective"],s={CSS:{},springs:{}};function l(e,t,n){return Math.min(Math.max(e,t),n)}function c(e,t){return e.indexOf(t)>-1}function u(e,t){return e.apply(null,t)}var h=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i,d=/^rgb/,p=/^hsl/,f={arr:function(e){return Array.isArray(e)},obj:function(e){return c(Object.prototype.toString.call(e),"Object")},pth:function(e){return f.obj(e)&&e.hasOwnProperty("totalLength")},svg:function(e){return e instanceof SVGElement},inp:function(e){return e instanceof HTMLInputElement},dom:function(e){return e.nodeType||f.svg(e)},str:function(e){return"string"===typeof e},fnc:function(e){return"function"===typeof e},und:function(e){return"undefined"===typeof e},hex:function(e){return h.test(e)},rgb:function(e){return d.test(e)},hsl:function(e){return p.test(e)},col:function(e){return f.hex(e)||f.rgb(e)||f.hsl(e)},key:function(e){return!i.hasOwnProperty(e)&&!o.hasOwnProperty(e)&&"targets"!==e&&"keyframes"!==e}},m=/\(([^)]+)\)/;function v(e){var t=m.exec(e);return t?t[1].split(",").map((function(e){return parseFloat(e)})):[]}function g(e,t){var n=v(e),r=l(f.und(n[0])?1:n[0],.1,100),i=l(f.und(n[1])?100:n[1],.1,100),o=l(f.und(n[2])?10:n[2],.1,100),a=l(f.und(n[3])?0:n[3],.1,100),c=Math.sqrt(i/r),u=o/(2*Math.sqrt(i*r)),h=u<1?c*Math.sqrt(1-u*u):0,d=1,p=u<1?(u*c-a)/h:-a+c;function m(e){var n=t?t*e/1e3:e;return n=u<1?Math.exp(-n*u*c)*(d*Math.cos(h*n)+p*Math.sin(h*n)):(d+p*n)*Math.exp(-n*c),0===e||1===e?e:1-n}function g(){var t=s.springs[e];if(t)return t;for(var n=1/6,r=0,i=0;;)if(1===m(r+=n)){if(++i>=16)break}else i=0;var o=r*n*1e3;return s.springs[e]=o,o}return t?m:g}function y(e,t){void 0===e&&(e=1),void 0===t&&(t=.5);var n=l(e,1,10),r=l(t,.1,2);return function(e){return 0===e||1===e?e:-n*Math.pow(2,10*(e-1))*Math.sin((e-1-r/(2*Math.PI)*Math.asin(1/n))*(2*Math.PI)/r)}}function b(e){return void 0===e&&(e=10),function(t){return Math.round(t*e)*(1/e)}}var A=function(){var e=11,t=1/(e-1);function n(e,t){return 1-3*t+3*e}function r(e,t){return 3*t-6*e}function i(e){return 3*e}function o(e,t,o){return((n(t,o)*e+r(t,o))*e+i(t))*e}function a(e,t,o){return 3*n(t,o)*e*e+2*r(t,o)*e+i(t)}function s(e,t,n,r,i){var a,s,l=0;do{(a=o(s=t+(n-t)/2,r,i)-e)>0?n=s:t=s}while(Math.abs(a)>1e-7&&++l<10);return s}function l(e,t,n,r){for(var i=0;i<4;++i){var s=a(t,n,r);if(0===s)return t;t-=(o(t,n,r)-e)/s}return t}function c(n,r,i,c){if(0<=n&&n<=1&&0<=i&&i<=1){var u=new Float32Array(e);if(n!==r||i!==c)for(var h=0;h<e;++h)u[h]=o(h*t,n,i);return function(e){return n===r&&i===c||0===e||1===e?e:o(d(e),r,c)}}function d(r){for(var o=0,c=1,h=e-1;c!==h&&u[c]<=r;++c)o+=t;--c;var d=o+(r-u[c])/(u[c+1]-u[c])*t,p=a(d,n,i);return p>=.001?l(r,d,n,i):0===p?d:s(r,o,o+t,n,i)}}return c}(),w=function(){var e=["Quad","Cubic","Quart","Quint","Sine","Expo","Circ","Back","Elastic"],t={In:[[.55,.085,.68,.53],[.55,.055,.675,.19],[.895,.03,.685,.22],[.755,.05,.855,.06],[.47,0,.745,.715],[.95,.05,.795,.035],[.6,.04,.98,.335],[.6,-.28,.735,.045],y],Out:[[.25,.46,.45,.94],[.215,.61,.355,1],[.165,.84,.44,1],[.23,1,.32,1],[.39,.575,.565,1],[.19,1,.22,1],[.075,.82,.165,1],[.175,.885,.32,1.275],function(e,t){return function(n){return 1-y(e,t)(1-n)}}],InOut:[[.455,.03,.515,.955],[.645,.045,.355,1],[.77,0,.175,1],[.86,0,.07,1],[.445,.05,.55,.95],[1,0,0,1],[.785,.135,.15,.86],[.68,-.55,.265,1.55],function(e,t){return function(n){return n<.5?y(e,t)(2*n)/2:1-y(e,t)(-2*n+2)/2}}]},n={linear:[.25,.25,.75,.75]};for(var r in t)for(var i=0,o=t[r].length;i<o;i++)n["ease"+r+e[i]]=t[r][i];return n}();function x(e,t){if(f.fnc(e))return e;var n=e.split("(")[0],r=w[n],i=v(e);switch(n){case"spring":return g(e,t);case"cubicBezier":return u(A,i);case"steps":return u(b,i);default:return f.fnc(r)?u(r,i):u(A,r)}}function E(t){try{return document.querySelectorAll(t)}catch(e){return}}var M=[];function _(e,t){for(var n=M,r=e.length,i=arguments.length>=2?arguments[1]:void 0,o=0;o<r;o++)if(o in e){var a=e[o];t.call(i,a,o,e)&&n.push(a)}return(M=e).length=0,n}function T(e,t){t||(t=[]);for(var n=0,r=e.length;n<r;n++){var i=e[n];Array.isArray(i)?T(i,t):t.push(i)}return t}function S(e){return f.arr(e)?e:(f.str(e)&&(e=E(e)||e),e instanceof NodeList||e instanceof HTMLCollection?[].slice.call(e):[e])}function C(e,t){return e.some((function(e){return e===t}))}function L(e){var t={};for(var n in e)t[n]=e[n];return t}function R(e,t){var n=L(e);for(var r in e)n[r]=t.hasOwnProperty(r)?t[r]:e[r];return n}function P(e,t){var n=L(e);for(var r in t)n[r]=f.und(e[r])?t[r]:e[r];return n}var D=/rgb\((\d+,\s*[\d]+,\s*[\d]+)\)/g;function O(e){var t=D.exec(e);return t?"rgba("+t[1]+",1)":e}var I=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,B=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;function F(e){var t=e.replace(I,(function(e,t,n,r){return t+t+n+n+r+r})),n=B.exec(t);return"rgba("+parseInt(n[1],16)+","+parseInt(n[2],16)+","+parseInt(n[3],16)+",1)"}var k=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g,N=/hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g;function U(e){var t,n,r,i=k.exec(e)||N.exec(e),o=parseInt(i[1],10)/360,a=parseInt(i[2],10)/100,s=parseInt(i[3],10)/100,l=i[4]||1;function c(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}if(0==a)t=n=r=s;else{var u=s<.5?s*(1+a):s+a-s*a,h=2*s-u;t=c(h,u,o+1/3),n=c(h,u,o),r=c(h,u,o-1/3)}return"rgba("+255*t+","+255*n+","+255*r+","+l+")"}function H(e){return f.rgb(e)?O(e):f.hex(e)?F(e):f.hsl(e)?U(e):void 0}var G=/([\+\-]?[0-9#\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/;function z(e){var t=G.exec(e);if(t)return t[2]}function j(e){return c(e,"translate")||"perspective"===e?"px":c(e,"rotate")||c(e,"skew")?"deg":void 0}function V(e,t){return f.fnc(e)?e(t.target,t.id,t.total):e}function W(e,t){return e.getAttribute(t)}function q(e,t,n){if(C([n,"deg","rad","turn"],z(t)))return t;var r=s.CSS[t+n];if(!f.und(r))return r;var i=100,o=document.createElement(e.tagName),a=e.parentNode&&e.parentNode!==document?e.parentNode:document.body;a.appendChild(o),o.style.position="absolute",o.style.width=i+n;var l=i/o.offsetWidth;a.removeChild(o);var c=l*parseFloat(t);return s.CSS[t+n]=c,c}function X(e,t,n){if(t in e.style){var r=t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),i=e.style[t]||getComputedStyle(e).getPropertyValue(r)||"0";return n?q(e,i,n):i}}function Y(e,t){return f.dom(e)&&!f.inp(e)&&(W(e,t)||f.svg(e)&&e[t])?"attribute":f.dom(e)&&C(a,t)?"transform":f.dom(e)&&"transform"!==t&&X(e,t)?"css":null!=e[t]?"object":void 0}var Q=/(\w+)\(([^)]*)\)/g;function Z(e){if(f.dom(e)){for(var t,n=e.style.transform||"",r=new Map;t=Q.exec(n);)r.set(t[1],t[2]);return r}}function K(e,t,n,r){var i=c(t,"scale")?1:0+j(t),o=Z(e).get(t)||i;return n&&(n.transforms.list.set(t,o),n.transforms.last=t),r?q(e,o,r):o}function J(e,t,n,r){switch(Y(e,t)){case"transform":return K(e,t,r,n);case"css":return X(e,t,n);case"attribute":return W(e,t);default:return e[t]||0}}var $=/^(\*=|\+=|-=)/;function ee(e,t){var n=$.exec(e);if(!n)return e;var r=z(e)||0,i=parseFloat(t),o=parseFloat(e.replace(n[0],""));switch(n[0][0]){case"+":return i+o+r;case"-":return i-o+r;case"*":return i*o+r}}var te=/\s/g;function ne(e,t){if(f.col(e))return H(e);var n=z(e),r=n?e.substr(0,e.length-n.length):e;return t&&!te.test(e)?r+t:r}function re(e,t){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))}function ie(e){return 2*Math.PI*W(e,"r")}function oe(e){return 2*W(e,"width")+2*W(e,"height")}function ae(e){return re({x:W(e,"x1"),y:W(e,"y1")},{x:W(e,"x2"),y:W(e,"y2")})}function se(e){for(var t,n=e.points,r=0,i=0;i<n.numberOfItems;i++){var o=n.getItem(i);i>0&&(r+=re(t,o)),t=o}return r}function le(e){var t=e.points;return se(e)+re(t.getItem(t.numberOfItems-1),t.getItem(0))}function ce(e){if(e.getTotalLength)return e.getTotalLength();switch(e.tagName.toLowerCase()){case"circle":return ie(e);case"rect":return oe(e);case"line":return ae(e);case"polyline":return se(e);case"polygon":return le(e)}}function ue(e){var t=ce(e);return e.setAttribute("stroke-dasharray",t),t}function he(e){for(var t=e.parentNode;f.svg(t)&&(t=t.parentNode,f.svg(t.parentNode)););return t}function de(e,t){var n=t||{},r=n.el||he(e),i=r.getBoundingClientRect(),o=W(r,"viewBox"),a=i.width,s=i.height,l=n.viewBox||(o?o.split(" "):[0,0,a,s]);return{el:r,viewBox:l,x:l[0]/1,y:l[1]/1,w:a/l[2],h:s/l[3]}}function pe(e,t){var n=f.str(e)?E(e)[0]:e,r=t||100;return function(e){return{property:e,el:n,svg:de(n),totalLength:ce(n)*(r/100)}}}function fe(e,t){function n(n){void 0===n&&(n=0);var r=t+n>=1?t+n:0;return e.el.getPointAtLength(r)}var r=de(e.el,e.svg),i=n(),o=n(-1),a=n(1);switch(e.property){case"x":return(i.x-r.x)*r.w;case"y":return(i.y-r.y)*r.h;case"angle":return 180*Math.atan2(a.y-o.y,a.x-o.x)/Math.PI}}var me=/-?\d*\.?\d+/g;function ve(e,t){var n=ne(f.pth(e)?e.totalLength:e,t)+"";return{original:n,numbers:n.match(me)?n.match(me).map(Number):[0],strings:f.str(e)||t?n.split(me):[]}}function ge(e){return _(e?T(f.arr(e)?e.map(S):S(e)):[],(function(e,t,n){return n.indexOf(e)===t}))}function ye(e){var t=ge(e);return t.map((function(e,n){return{target:e,id:n,total:t.length,transforms:{list:Z(e)}}}))}var be=/^spring/;function Ae(e,t){var n=L(t);if(be.test(n.easing)&&(n.duration=g(n.easing)),f.arr(e)){var r=e.length;2!==r||f.obj(e[0])?f.fnc(t.duration)||(n.duration=t.duration/r):e={value:e}}var i=f.arr(e)?e:[e];return i.map((function(e,n){var r=f.obj(e)&&!f.pth(e)?e:{value:e};return f.und(r.delay)&&(r.delay=n?0:t.delay),f.und(r.endDelay)&&(r.endDelay=n===i.length-1?t.endDelay:0),r})).map((function(e){return P(e,n)}))}function we(e){for(var t=_(T(e.map((function(e){return Object.keys(e)}))),(function(e){return f.key(e)})).reduce((function(e,t){return e.indexOf(t)<0&&e.push(t),e}),[]),n={},r=function(r){var i=t[r];n[i]=e.map((function(e){var t={};for(var n in e)f.key(n)?n==i&&(t.value=e[n]):t[n]=e[n];return t}))},i=0;i<t.length;i++)r(i);return n}function xe(e,t){var n=[],r=t.keyframes;for(var i in r&&(t=P(we(r),t)),t)f.key(i)&&n.push({name:i,tweens:Ae(t[i],e)});return n}function Ee(e,t){var n={};for(var r in e){var i=V(e[r],t);f.arr(i)&&1===(i=i.map((function(e){return V(e,t)}))).length&&(i=i[0]),n[r]=i}return n.duration=parseFloat(n.duration),n.delay=parseFloat(n.delay),n}function Me(e,t){var n;return e.tweens.map((function(r){var i=Ee(r,t),o=i.value,a=f.arr(o)?o[1]:o,s=z(a),l=J(t.target,e.name,s,t),c=n?n.to.original:l,u=f.arr(o)?o[0]:c,h=z(u)||z(l),d=s||h;return f.und(a)&&(a=c),i.from=ve(u,d),i.to=ve(ee(a,u),d),i.start=n?n.end:0,i.end=i.start+i.delay+i.duration+i.endDelay,i.easing=x(i.easing,i.duration),i.isPath=f.pth(o),i.isColor=f.col(i.from.original),i.isColor&&(i.round=1),n=i,i}))}var _e={css:function(e,t,n){return e.style[t]=n},attribute:function(e,t,n){return e.setAttribute(t,n)},object:function(e,t,n){return e[t]=n},transform:function(e,t,n,r,i){if(r.list.set(t,n),t===r.last||i){var o="";r.list.forEach((function(e,t){o+=t+"("+e+") "})),e.style.transform=o}}};function Te(e,t){for(var n=ye(e),r=0,i=n.length;r<i;r++){var o=n[r];for(var a in t){var s=V(t[a],o),l=o.target,c=z(s),u=J(l,a,c,o),h=ee(ne(s,c||z(u)),u),d=Y(l,a);_e[d](l,a,h,o.transforms,!0)}}}function Se(e,t){var n=Y(e.target,t.name);if(n){var r=Me(t,e),i=r[r.length-1];return{type:n,property:t.name,animatable:e,tweens:r,duration:i.end,delay:r[0].delay,endDelay:i.endDelay}}}function Ce(e,t){return _(T(e.map((function(e){return t.map((function(t){return Se(e,t)}))}))),(function(e){return!f.und(e)}))}function Le(e,t){var n=e.length,r=function(e){return e.timelineOffset?e.timelineOffset:0},i={};return i.duration=n?Math.max.apply(Math,e.map((function(e){return r(e)+e.duration}))):t.duration,i.delay=n?Math.min.apply(Math,e.map((function(e){return r(e)+e.delay}))):t.delay,i.endDelay=n?i.duration-Math.max.apply(Math,e.map((function(e){return r(e)+e.duration-e.endDelay}))):t.endDelay,i}var Re=0;function Pe(e){var t=R(i,e),n=R(o,e),r=xe(n,e),a=ye(e.targets),s=Ce(a,r),l=Le(s,n),c=Re;return Re++,P(t,{id:c,children:[],animatables:a,animations:s,duration:l.duration,delay:l.delay,endDelay:l.endDelay})}var De,Oe=[],Ie=[],Be=function(){function e(){De=requestAnimationFrame(t)}function t(t){var n=Oe.length;if(n){for(var r=0;r<n;){var i=Oe[r];if(i.paused){var o=Oe.indexOf(i);o>-1&&(Oe.splice(o,1),n=Oe.length)}else i.tick(t);r++}e()}else De=cancelAnimationFrame(De)}return e}();function Fe(){if(document.hidden){for(var e=0,t=Oe.length;e<t;e++)activeInstance[e].pause();Ie=Oe.slice(0),Oe=[]}else for(var n=0,r=Ie.length;n<r;n++)Ie[n].play()}function ke(e){void 0===e&&(e={});var t,n=0,r=0,i=0,o=0,a=null;function s(){return window.Promise&&new Promise((function(e){return a=e}))}var c=s(),u=Pe(e);function h(){u.reversed=!u.reversed;for(var e=0,n=t.length;e<n;e++)t[e].reversed=u.reversed}function d(e){return u.reversed?u.duration-e:e}function p(){n=0,r=d(u.currentTime)*(1/ke.speed)}function f(e,t){t&&t.seek(e-t.timelineOffset)}function m(e){if(u.reversePlayback)for(var n=o;n--;)f(e,t[n]);else for(var r=0;r<o;r++)f(e,t[r])}function v(e){for(var t=0,n=u.animations,r=n.length;t<r;){var i=n[t],o=i.animatable,a=i.tweens,s=a.length-1,c=a[s];s&&(c=_(a,(function(t){return e<t.end}))[0]||c);for(var h=l(e-c.start-c.delay,0,c.duration)/c.duration,d=isNaN(h)?1:c.easing(h),p=c.to.strings,f=c.round,m=[],v=c.to.numbers.length,g=void 0,y=0;y<v;y++){var b=void 0,A=c.to.numbers[y],w=c.from.numbers[y]||0;b=c.isPath?fe(c.value,d*A):w+d*(A-w),f&&(c.isColor&&y>2||(b=Math.round(b*f)/f)),m.push(b)}var x=p.length;if(x){g=p[0];for(var E=0;E<x;E++){p[E];var M=p[E+1],T=m[E];isNaN(T)||(g+=M?T+M:T+" ")}}else g=m[0];_e[i.type](o.target,i.property,g,o.transforms),i.currentValue=g,t++}}function g(e){u[e]&&!u.passThrough&&u[e](u)}function y(){u.remaining&&!0!==u.remaining&&u.remaining--}function b(e){var o=u.duration,p=u.delay,f=o-u.endDelay,b=d(e);u.progress=l(b/o*100,0,100),u.reversePlayback=b<u.currentTime,t&&m(b),!u.began&&u.currentTime>0&&(u.began=!0,g("begin"),g("loopBegin")),b<=p&&0!==u.currentTime&&v(0),(b>=f&&u.currentTime!==o||!o)&&v(o),b>p&&b<f?(u.changeBegan||(u.changeBegan=!0,u.changeCompleted=!1,g("changeBegin")),g("change"),v(b)):u.changeBegan&&(u.changeCompleted=!0,u.changeBegan=!1,g("changeComplete")),u.currentTime=l(b,0,o),u.began&&g("update"),e>=o&&(r=0,y(),u.remaining?(n=i,g("loopComplete"),g("loopBegin"),"alternate"===u.direction&&h()):(u.paused=!0,u.completed||(u.completed=!0,g("loopComplete"),g("complete"),"Promise"in window&&(a(),c=s()))))}return u.reset=function(){var e=u.direction;u.passThrough=!1,u.currentTime=0,u.progress=0,u.paused=!0,u.began=!1,u.changeBegan=!1,u.completed=!1,u.changeCompleted=!1,u.reversePlayback=!1,u.reversed="reverse"===e,u.remaining=u.loop,t=u.children;for(var n=o=t.length;n--;)u.children[n].reset();(u.reversed&&!0!==u.loop||"alternate"===e&&1===u.loop)&&u.remaining++,v(0)},u.set=function(e,t){return Te(e,t),u},u.tick=function(e){i=e,n||(n=i),b((i+(r-n))*ke.speed)},u.seek=function(e){b(d(e))},u.pause=function(){u.paused=!0,p()},u.play=function(){u.paused&&(u.paused=!1,Oe.push(u),p(),De||Be())},u.reverse=function(){h(),p()},u.restart=function(){u.reset(),u.play()},u.finished=c,u.reset(),u.autoplay&&u.play(),u}function Ne(e,t){for(var n=t.length;n--;)C(e,t[n].animatable.target)&&t.splice(n,1)}function Ue(e){for(var t=ge(e),n=Oe.length;n--;){var r=Oe[n],i=r.animations,o=r.children;Ne(t,i);for(var a=o.length;a--;){var s=o[a],l=s.animations;Ne(t,l),l.length||s.children.length||o.splice(a,1)}i.length||o.length||r.pause()}}function He(e,t){void 0===t&&(t={});var n=t.direction||"normal",r=t.easing?x(t.easing):null,i=t.grid,o=t.axis,a=t.from||0,s="first"===a,l="center"===a,c="last"===a,u=f.arr(e),h=u?parseFloat(e[0]):parseFloat(e),d=u?parseFloat(e[1]):0,p=z(u?e[1]:e)||0,m=t.start||0+(u?h:0),v=[],g=0;return function(e,t,f){if(s&&(a=0),l&&(a=(f-1)/2),c&&(a=f-1),!v.length){for(var y=0;y<f;y++){if(i){var b=l?(i[0]-1)/2:a%i[0],A=l?(i[1]-1)/2:Math.floor(a/i[0]),w=b-y%i[0],x=A-Math.floor(y/i[0]),E=Math.sqrt(w*w+x*x);"x"===o&&(E=-w),"y"===o&&(E=-x),v.push(E)}else v.push(Math.abs(a-y));g=Math.max.apply(Math,v)}r&&(v=v.map((function(e){return r(e/g)*g}))),"reverse"===n&&(v=v.map((function(e){return o?e<0?-1*e:-e:Math.abs(g-e)})))}return m+(u?(d-h)/g:h)*(Math.round(100*v[t])/100)+p}}function Ge(e){void 0===e&&(e={});var t=ke(e);return t.duration=0,t.add=function(n,r){var i=Oe.indexOf(t),a=t.children;function s(e){e.passThrough=!0}i>-1&&Oe.splice(i,1);for(var l=0;l<a.length;l++)s(a[l]);var c=P(n,R(o,e));c.targets=c.targets||e.targets;var u=t.duration;c.autoplay=!1,c.direction=t.direction,c.timelineOffset=f.und(r)?u:ee(r,u),s(t),t.seek(c.timelineOffset);var h=ke(c);s(h),a.push(h);var d=Le(a,e);return t.delay=d.delay,t.endDelay=d.endDelay,t.duration=d.duration,t.seek(0),t.reset(),t.autoplay&&t.play(),t},t}document.addEventListener("visibilitychange",Fe),ke.version="3.0.0",ke.speed=1,ke.running=Oe,ke.remove=Ue,ke.get=J,ke.set=Te,ke.convertPx=q,ke.path=pe,ke.setDashoffset=ue,ke.stagger=He,ke.timeline=Ge,ke.easing=x,ke.penner=w,ke.random=function(e,t){return Math.floor(Math.random()*(t-e+1))+e},n.exports=ke},{}],57:[function(n,r,i){var o,a;o=this,a=function(t){"use strict";void 0===Number.EPSILON&&(Number.EPSILON=Math.pow(2,-52)),void 0===Number.isInteger&&(Number.isInteger=function(e){return"number"===typeof e&&isFinite(e)&&Math.floor(e)===e}),void 0===Math.sign&&(Math.sign=function(e){return e<0?-1:e>0?1:+e}),"name"in Function.prototype===!1&&Object.defineProperty(Function.prototype,"name",{get:function(){return this.toString().match(/^\s*function\s*([^\(\s]*)/)[1]}}),void 0===Object.assign&&(Object.assign=function(e){if(void 0===e||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n<arguments.length;n++){var r=arguments[n];if(void 0!==r&&null!==r)for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(t[i]=r[i])}return t});var n=function(e){var t,n=Object.prototype,r=n.hasOwnProperty,i="function"===typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(D){l=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var i=t&&t.prototype instanceof v?t:v,o=Object.create(i.prototype),a=new L(r||[]);return o._invoke=_(e,n,a),o}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(D){return{type:"throw",arg:D}}}e.wrap=c;var h="suspendedStart",d="suspendedYield",p="executing",f="completed",m={};function v(){}function g(){}function y(){}var b={};b[o]=function(){return this};var A=Object.getPrototypeOf,w=A&&A(A(R([])));w&&w!==n&&r.call(w,o)&&(b=w);var x=y.prototype=v.prototype=Object.create(b);function E(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function M(e,t){function n(i,o,a,s){var l=u(e[i],e,o);if("throw"!==l.type){var c=l.arg,h=c.value;return h&&"object"===typeof h&&r.call(h,"__await")?t.resolve(h.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(h).then((function(e){c.value=e,a(c)}),(function(e){return n("throw",e,a,s)}))}s(l.arg)}var i;function o(e,r){function o(){return new t((function(t,i){n(e,r,t,i)}))}return i=i?i.then(o,o):o()}this._invoke=o}function _(e,t,n){var r=h;return function(i,o){if(r===p)throw new Error("Generator is already running");if(r===f){if("throw"===i)throw o;return P()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=T(a,n);if(s){if(s===m)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===h)throw r=f,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=p;var l=u(e,t,n);if("normal"===l.type){if(r=n.done?f:d,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r=f,n.method="throw",n.arg=l.arg)}}}function T(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,T(e,n),"throw"===n.method))return m;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var i=u(r,e.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,m;var o=i.arg;return o?o.done?(n[e.resultName]=o.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,m):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function R(e){if(e){var n=e[o];if(n)return n.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function n(){for(;++i<e.length;)if(r.call(e,i))return n.value=e[i],n.done=!1,n;return n.value=t,n.done=!0,n};return a.next=a}}return{next:P}}function P(){return{value:t,done:!0}}return g.prototype=x.constructor=y,y.constructor=g,g.displayName=l(y,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"===typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,y):(e.__proto__=y,l(e,s,"GeneratorFunction")),e.prototype=Object.create(x),e},e.awrap=function(e){return{__await:e}},E(M.prototype),M.prototype[a]=function(){return this},e.AsyncIterator=M,e.async=function(t,n,r,i,o){void 0===o&&(o=Promise);var a=new M(c(t,n,r,i),o);return e.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},E(x),l(x,s,"Generator"),x[o]=function(){return this},x.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=R,L.prototype={constructor:L,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(C),!e)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function i(r,i){return s.type="throw",s.arg=e,n.next=r,i&&(n.method="next",n.arg=t),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var l=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(l&&c){if(this.prev<a.catchLoc)return i(a.catchLoc,!0);if(this.prev<a.finallyLoc)return i(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return i(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return i(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,m):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),C(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;C(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:R(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),m}},e}("object"===typeof r?r.exports:{});try{regeneratorRuntime=n}catch(ym){Function("r","regeneratorRuntime = r")(n)}var i="125",o={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},a={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},s=0,l=1,c=2,u=3,h=0,d=1,p=2,f=3,m=0,v=1,g=2,y=1,b=2,A=0,w=1,x=2,E=3,M=4,_=5,T=100,S=101,C=102,L=103,R=104,P=200,D=201,O=202,I=203,B=204,F=205,k=206,N=207,U=208,H=209,G=210,z=0,j=1,V=2,W=3,q=4,X=5,Y=6,Q=7,Z=0,K=1,J=2,$=0,ee=1,te=2,ne=3,re=4,ie=5,oe=300,ae=301,se=302,le=303,ce=304,ue=306,he=307,de=1e3,pe=1001,fe=1002,me=1003,ve=1004,ge=1004,ye=1005,be=1005,Ae=1006,we=1007,xe=1007,Ee=1008,Me=1008,_e=1009,Te=1010,Se=1011,Ce=1012,Le=1013,Re=1014,Pe=1015,De=1016,Oe=1017,Ie=1018,Be=1019,Fe=1020,ke=1021,Ne=1022,Ue=1023,He=1024,Ge=1025,ze=Ue,je=1026,Ve=1027,We=1028,qe=1029,Xe=1030,Ye=1031,Qe=1032,Ze=1033,Ke=33776,Je=33777,$e=33778,et=33779,tt=35840,nt=35841,rt=35842,it=35843,ot=36196,at=37492,st=37496,lt=37808,ct=37809,ut=37810,ht=37811,dt=37812,pt=37813,ft=37814,mt=37815,vt=37816,gt=37817,yt=37818,bt=37819,At=37820,wt=37821,xt=36492,Et=37840,Mt=37841,_t=37842,Tt=37843,St=37844,Ct=37845,Lt=37846,Rt=37847,Pt=37848,Dt=37849,Ot=37850,It=37851,Bt=37852,Ft=37853,kt=2200,Nt=2201,Ut=2202,Ht=2300,Gt=2301,zt=2302,jt=2400,Vt=2401,Wt=2402,qt=2500,Xt=2501,Yt=0,Qt=1,Zt=2,Kt=3e3,Jt=3001,$t=3007,en=3002,tn=3003,nn=3004,rn=3005,on=3006,an=3200,sn=3201,ln=0,cn=1,un=0,hn=7680,dn=7681,pn=7682,fn=7683,mn=34055,vn=34056,gn=5386,yn=512,bn=513,An=514,wn=515,xn=516,En=517,Mn=518,_n=519,Tn=35044,Sn=35048,Cn=35040,Ln=35045,Rn=35049,Pn=35041,Dn=35046,On=35050,In=35042,Bn="100",Fn="300 es";function kn(e,t,n,r,i,o,a){try{var s=e[o](a),l=s.value}catch(c){return void n(c)}s.done?t(l):Promise.resolve(l).then(r,i)}function Nn(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){kn(o,r,i,a,s,"next",e)}function s(e){kn(o,r,i,a,s,"throw",e)}a(void 0)}))}}function Un(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Hn(e,t,n){return t&&Un(e.prototype,t),n&&Un(e,n),e}function Gn(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function zn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function jn(e,t){if(e){if("string"===typeof e)return Vn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Vn(e,t):void 0}}function Vn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Wn(e,t){var n;if("undefined"===typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=jn(e))||t&&e&&"number"===typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function qn(){}Object.assign(qn.prototype,{addEventListener:function(e,t){void 0===this._listeners&&(this._listeners={});var n=this._listeners;void 0===n[e]&&(n[e]=[]),-1===n[e].indexOf(t)&&n[e].push(t)},hasEventListener:function(e,t){if(void 0===this._listeners)return!1;var n=this._listeners;return void 0!==n[e]&&-1!==n[e].indexOf(t)},removeEventListener:function(e,t){if(void 0!==this._listeners){var n=this._listeners[e];if(void 0!==n){var r=n.indexOf(t);-1!==r&&n.splice(r,1)}}},dispatchEvent:function(e){if(void 0!==this._listeners){var t=this._listeners[e.type];if(void 0!==t){e.target=this;for(var n=t.slice(0),r=0,i=n.length;r<i;r++)n[r].call(this,e)}}}});for(var Xn=[],Yn=0;Yn<256;Yn++)Xn[Yn]=(Yn<16?"0":"")+Yn.toString(16);var Qn,Zn=1234567,Kn={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:function(){var e=4294967295*Math.random()|0,t=4294967295*Math.random()|0,n=4294967295*Math.random()|0,r=4294967295*Math.random()|0;return(Xn[255&e]+Xn[e>>8&255]+Xn[e>>16&255]+Xn[e>>24&255]+"-"+Xn[255&t]+Xn[t>>8&255]+"-"+Xn[t>>16&15|64]+Xn[t>>24&255]+"-"+Xn[63&n|128]+Xn[n>>8&255]+"-"+Xn[n>>16&255]+Xn[n>>24&255]+Xn[255&r]+Xn[r>>8&255]+Xn[r>>16&255]+Xn[r>>24&255]).toUpperCase()},clamp:function(e,t,n){return Math.max(t,Math.min(n,e))},euclideanModulo:function(e,t){return(e%t+t)%t},mapLinear:function(e,t,n,r,i){return r+(e-t)*(i-r)/(n-t)},lerp:function(e,t,n){return(1-n)*e+n*t},damp:function(e,t,n,r){return Kn.lerp(e,t,1-Math.exp(-n*r))},pingpong:function(e,t){return void 0===t&&(t=1),t-Math.abs(Kn.euclideanModulo(e,2*t)-t)},smoothstep:function(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t))*e*(3-2*e)},smootherstep:function(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t))*e*e*(e*(6*e-15)+10)},randInt:function(e,t){return e+Math.floor(Math.random()*(t-e+1))},randFloat:function(e,t){return e+Math.random()*(t-e)},randFloatSpread:function(e){return e*(.5-Math.random())},seededRandom:function(e){return void 0!==e&&(Zn=e%2147483647),((Zn=16807*Zn%2147483647)-1)/2147483646},degToRad:function(e){return e*Kn.DEG2RAD},radToDeg:function(e){return e*Kn.RAD2DEG},isPowerOfTwo:function(e){return 0===(e&e-1)&&0!==e},ceilPowerOfTwo:function(e){return Math.pow(2,Math.ceil(Math.log(e)/Math.LN2))},floorPowerOfTwo:function(e){return Math.pow(2,Math.floor(Math.log(e)/Math.LN2))},setQuaternionFromProperEuler:function(e,t,n,r,i){var o=Math.cos,a=Math.sin,s=o(n/2),l=a(n/2),c=o((t+r)/2),u=a((t+r)/2),h=o((t-r)/2),d=a((t-r)/2),p=o((r-t)/2),f=a((r-t)/2);switch(i){case"XYX":e.set(s*u,l*h,l*d,s*c);break;case"YZY":e.set(l*d,s*u,l*h,s*c);break;case"ZXZ":e.set(l*h,l*d,s*u,s*c);break;case"XZX":e.set(s*u,l*f,l*p,s*c);break;case"YXY":e.set(l*p,s*u,l*f,s*c);break;case"ZYZ":e.set(l*f,l*p,s*u,s*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+i)}}},Jn=function(){function e(e,t){void 0===e&&(e=0),void 0===t&&(t=0),Object.defineProperty(this,"isVector2",{value:!0}),this.x=e,this.y=t}var t=e.prototype;return t.set=function(e,t){return this.x=e,this.y=t,this},t.setScalar=function(e){return this.x=e,this.y=e,this},t.setX=function(e){return this.x=e,this},t.setY=function(e){return this.y=e,this},t.setComponent=function(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this},t.getComponent=function(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}},t.clone=function(){return new this.constructor(this.x,this.y)},t.copy=function(e){return this.x=e.x,this.y=e.y,this},t.add=function(e,t){return void 0!==t?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this)},t.addScalar=function(e){return this.x+=e,this.y+=e,this},t.addVectors=function(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this},t.addScaledVector=function(e,t){return this.x+=e.x*t,this.y+=e.y*t,this},t.sub=function(e,t){return void 0!==t?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this)},t.subScalar=function(e){return this.x-=e,this.y-=e,this},t.subVectors=function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this},t.multiply=function(e){return this.x*=e.x,this.y*=e.y,this},t.multiplyScalar=function(e){return this.x*=e,this.y*=e,this},t.divide=function(e){return this.x/=e.x,this.y/=e.y,this},t.divideScalar=function(e){return this.multiplyScalar(1/e)},t.applyMatrix3=function(e){var t=this.x,n=this.y,r=e.elements;return this.x=r[0]*t+r[3]*n+r[6],this.y=r[1]*t+r[4]*n+r[7],this},t.min=function(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this},t.max=function(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this},t.clamp=function(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this},t.clampScalar=function(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this},t.clampLength=function(e,t){var n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))},t.floor=function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},t.ceil=function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},t.round=function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},t.roundToZero=function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this},t.negate=function(){return this.x=-this.x,this.y=-this.y,this},t.dot=function(e){return this.x*e.x+this.y*e.y},t.cross=function(e){return this.x*e.y-this.y*e.x},t.lengthSq=function(){return this.x*this.x+this.y*this.y},t.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},t.manhattanLength=function(){return Math.abs(this.x)+Math.abs(this.y)},t.normalize=function(){return this.divideScalar(this.length()||1)},t.angle=function(){var e=Math.atan2(-this.y,-this.x)+Math.PI;return e},t.distanceTo=function(e){return Math.sqrt(this.distanceToSquared(e))},t.distanceToSquared=function(e){var t=this.x-e.x,n=this.y-e.y;return t*t+n*n},t.manhattanDistanceTo=function(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)},t.setLength=function(e){return this.normalize().multiplyScalar(e)},t.lerp=function(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this},t.lerpVectors=function(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this},t.equals=function(e){return e.x===this.x&&e.y===this.y},t.fromArray=function(e,t){return void 0===t&&(t=0),this.x=e[t],this.y=e[t+1],this},t.toArray=function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this.x,e[t+1]=this.y,e},t.fromBufferAttribute=function(e,t,n){return void 0!==n&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this},t.rotateAround=function(e,t){var n=Math.cos(t),r=Math.sin(t),i=this.x-e.x,o=this.y-e.y;return this.x=i*n-o*r+e.x,this.y=i*r+o*n+e.y,this},t.random=function(){return this.x=Math.random(),this.y=Math.random(),this},Hn(e,[{key:"width",get:function(){return this.x},set:function(e){this.x=e}},{key:"height",get:function(){return this.y},set:function(e){this.y=e}}]),e}(),$n=function(){function e(){Object.defineProperty(this,"isMatrix3",{value:!0}),this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}var t=e.prototype;return t.set=function(e,t,n,r,i,o,a,s,l){var c=this.elements;return c[0]=e,c[1]=r,c[2]=a,c[3]=t,c[4]=i,c[5]=s,c[6]=n,c[7]=o,c[8]=l,this},t.identity=function(){return this.set(1,0,0,0,1,0,0,0,1),this},t.clone=function(){return(new this.constructor).fromArray(this.elements)},t.copy=function(e){var t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],this},t.extractBasis=function(e,t,n){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this},t.setFromMatrix4=function(e){var t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this},t.multiply=function(e){return this.multiplyMatrices(this,e)},t.premultiply=function(e){return this.multiplyMatrices(e,this)},t.multiplyMatrices=function(e,t){var n=e.elements,r=t.elements,i=this.elements,o=n[0],a=n[3],s=n[6],l=n[1],c=n[4],u=n[7],h=n[2],d=n[5],p=n[8],f=r[0],m=r[3],v=r[6],g=r[1],y=r[4],b=r[7],A=r[2],w=r[5],x=r[8];return i[0]=o*f+a*g+s*A,i[3]=o*m+a*y+s*w,i[6]=o*v+a*b+s*x,i[1]=l*f+c*g+u*A,i[4]=l*m+c*y+u*w,i[7]=l*v+c*b+u*x,i[2]=h*f+d*g+p*A,i[5]=h*m+d*y+p*w,i[8]=h*v+d*b+p*x,this},t.multiplyScalar=function(e){var t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this},t.determinant=function(){var e=this.elements,t=e[0],n=e[1],r=e[2],i=e[3],o=e[4],a=e[5],s=e[6],l=e[7],c=e[8];return t*o*c-t*a*l-n*i*c+n*a*s+r*i*l-r*o*s},t.invert=function(){var e=this.elements,t=e[0],n=e[1],r=e[2],i=e[3],o=e[4],a=e[5],s=e[6],l=e[7],c=e[8],u=c*o-a*l,h=a*s-c*i,d=l*i-o*s,p=t*u+n*h+r*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);var f=1/p;return e[0]=u*f,e[1]=(r*l-c*n)*f,e[2]=(a*n-r*o)*f,e[3]=h*f,e[4]=(c*t-r*s)*f,e[5]=(r*i-a*t)*f,e[6]=d*f,e[7]=(n*s-l*t)*f,e[8]=(o*t-n*i)*f,this},t.transpose=function(){var e,t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this},t.getNormalMatrix=function(e){return this.setFromMatrix4(e).copy(this).invert().transpose()},t.transposeIntoArray=function(e){var t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this},t.setUvTransform=function(e,t,n,r,i,o,a){var s=Math.cos(i),l=Math.sin(i);return this.set(n*s,n*l,-n*(s*o+l*a)+o+e,-r*l,r*s,-r*(-l*o+s*a)+a+t,0,0,1),this},t.scale=function(e,t){var n=this.elements;return n[0]*=e,n[3]*=e,n[6]*=e,n[1]*=t,n[4]*=t,n[7]*=t,this},t.rotate=function(e){var t=Math.cos(e),n=Math.sin(e),r=this.elements,i=r[0],o=r[3],a=r[6],s=r[1],l=r[4],c=r[7];return r[0]=t*i+n*s,r[3]=t*o+n*l,r[6]=t*a+n*c,r[1]=-n*i+t*s,r[4]=-n*o+t*l,r[7]=-n*a+t*c,this},t.translate=function(e,t){var n=this.elements;return n[0]+=e*n[2],n[3]+=e*n[5],n[6]+=e*n[8],n[1]+=t*n[2],n[4]+=t*n[5],n[7]+=t*n[8],this},t.equals=function(e){for(var t=this.elements,n=e.elements,r=0;r<9;r++)if(t[r]!==n[r])return!1;return!0},t.fromArray=function(e,t){void 0===t&&(t=0);for(var n=0;n<9;n++)this.elements[n]=e[n+t];return this},t.toArray=function(e,t){void 0===e&&(e=[]),void 0===t&&(t=0);var n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e},e}(),er={getDataURL:function(e){if(/^data:/i.test(e.src))return e.src;if("undefined"==typeof HTMLCanvasElement)return e.src;var t;if(e instanceof HTMLCanvasElement)t=e;else{void 0===Qn&&(Qn=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")),Qn.width=e.width,Qn.height=e.height;var n=Qn.getContext("2d");e instanceof ImageData?n.putImageData(e,0,0):n.drawImage(e,0,0,e.width,e.height),t=Qn}return t.width>2048||t.height>2048?t.toDataURL("image/jpeg",.6):t.toDataURL("image/png")}},tr=0;function nr(e,t,n,r,i,o,a,s,l,c){void 0===e&&(e=nr.DEFAULT_IMAGE),void 0===t&&(t=nr.DEFAULT_MAPPING),void 0===n&&(n=pe),void 0===r&&(r=pe),void 0===i&&(i=Ae),void 0===o&&(o=Ee),void 0===a&&(a=Ue),void 0===s&&(s=_e),void 0===l&&(l=1),void 0===c&&(c=Kt),Object.defineProperty(this,"id",{value:tr++}),this.uuid=Kn.generateUUID(),this.name="",this.image=e,this.mipmaps=[],this.mapping=t,this.wrapS=n,this.wrapT=r,this.magFilter=i,this.minFilter=o,this.anisotropy=l,this.format=a,this.internalFormat=null,this.type=s,this.offset=new Jn(0,0),this.repeat=new Jn(1,1),this.center=new Jn(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new $n,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=c,this.version=0,this.onUpdate=null}function rr(e){return"undefined"!==typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!==typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!==typeof ImageBitmap&&e instanceof ImageBitmap?er.getDataURL(e):e.data?{data:Array.prototype.slice.call(e.data),width:e.width,height:e.height,type:e.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}nr.DEFAULT_IMAGE=void 0,nr.DEFAULT_MAPPING=oe,nr.prototype=Object.assign(Object.create(qn.prototype),{constructor:nr,isTexture:!0,updateMatrix:function(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.name=e.name,this.image=e.image,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.encoding=e.encoding,this},toJSON:function(e){var t=void 0===e||"string"===typeof e;if(!t&&void 0!==e.textures[this.uuid])return e.textures[this.uuid];var n={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(void 0!==this.image){var r=this.image;if(void 0===r.uuid&&(r.uuid=Kn.generateUUID()),!t&&void 0===e.images[r.uuid]){var i;if(Array.isArray(r)){i=[];for(var o=0,a=r.length;o<a;o++)r[o].isDataTexture?i.push(rr(r[o].image)):i.push(rr(r[o]))}else i=rr(r);e.images[r.uuid]={uuid:r.uuid,url:i}}n.image=r.uuid}return t||(e.textures[this.uuid]=n),n},dispose:function(){this.dispatchEvent({type:"dispose"})},transformUv:function(e){if(this.mapping!==oe)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case de:e.x=e.x-Math.floor(e.x);break;case pe:e.x=e.x<0?0:1;break;case fe:1===Math.abs(Math.floor(e.x)%2)?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x)}if(e.y<0||e.y>1)switch(this.wrapT){case de:e.y=e.y-Math.floor(e.y);break;case pe:e.y=e.y<0?0:1;break;case fe:1===Math.abs(Math.floor(e.y)%2)?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y)}return this.flipY&&(e.y=1-e.y),e}}),Object.defineProperty(nr.prototype,"needsUpdate",{set:function(e){!0===e&&this.version++}});var ir=function(){function e(e,t,n,r){void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=0),void 0===r&&(r=1),Object.defineProperty(this,"isVector4",{value:!0}),this.x=e,this.y=t,this.z=n,this.w=r}var t=e.prototype;return t.set=function(e,t,n,r){return this.x=e,this.y=t,this.z=n,this.w=r,this},t.setScalar=function(e){return this.x=e,this.y=e,this.z=e,this.w=e,this},t.setX=function(e){return this.x=e,this},t.setY=function(e){return this.y=e,this},t.setZ=function(e){return this.z=e,this},t.setW=function(e){return this.w=e,this},t.setComponent=function(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this},t.getComponent=function(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}},t.clone=function(){return new this.constructor(this.x,this.y,this.z,this.w)},t.copy=function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=void 0!==e.w?e.w:1,this},t.add=function(e,t){return void 0!==t?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this)},t.addScalar=function(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this},t.addVectors=function(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this},t.addScaledVector=function(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this},t.sub=function(e,t){return void 0!==t?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this)},t.subScalar=function(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this},t.subVectors=function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this},t.multiply=function(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this},t.multiplyScalar=function(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this},t.applyMatrix4=function(e){var t=this.x,n=this.y,r=this.z,i=this.w,o=e.elements;return this.x=o[0]*t+o[4]*n+o[8]*r+o[12]*i,this.y=o[1]*t+o[5]*n+o[9]*r+o[13]*i,this.z=o[2]*t+o[6]*n+o[10]*r+o[14]*i,this.w=o[3]*t+o[7]*n+o[11]*r+o[15]*i,this},t.divideScalar=function(e){return this.multiplyScalar(1/e)},t.setAxisAngleFromQuaternion=function(e){this.w=2*Math.acos(e.w);var t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this},t.setAxisAngleFromRotationMatrix=function(e){var t,n,r,i,o=.01,a=.1,s=e.elements,l=s[0],c=s[4],u=s[8],h=s[1],d=s[5],p=s[9],f=s[2],m=s[6],v=s[10];if(Math.abs(c-h)<o&&Math.abs(u-f)<o&&Math.abs(p-m)<o){if(Math.abs(c+h)<a&&Math.abs(u+f)<a&&Math.abs(p+m)<a&&Math.abs(l+d+v-3)<a)return this.set(1,0,0,0),this;t=Math.PI;var g=(l+1)/2,y=(d+1)/2,b=(v+1)/2,A=(c+h)/4,w=(u+f)/4,x=(p+m)/4;return g>y&&g>b?g<o?(n=0,r=.707106781,i=.707106781):(r=A/(n=Math.sqrt(g)),i=w/n):y>b?y<o?(n=.707106781,r=0,i=.707106781):(n=A/(r=Math.sqrt(y)),i=x/r):b<o?(n=.707106781,r=.707106781,i=0):(n=w/(i=Math.sqrt(b)),r=x/i),this.set(n,r,i,t),this}var E=Math.sqrt((m-p)*(m-p)+(u-f)*(u-f)+(h-c)*(h-c));return Math.abs(E)<.001&&(E=1),this.x=(m-p)/E,this.y=(u-f)/E,this.z=(h-c)/E,this.w=Math.acos((l+d+v-1)/2),this},t.min=function(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this},t.max=function(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this},t.clamp=function(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this},t.clampScalar=function(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this},t.clampLength=function(e,t){var n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))},t.floor=function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this},t.ceil=function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this},t.round=function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this},t.roundToZero=function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this},t.negate=function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this},t.dot=function(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w},t.lengthSq=function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},t.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},t.manhattanLength=function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},t.normalize=function(){return this.divideScalar(this.length()||1)},t.setLength=function(e){return this.normalize().multiplyScalar(e)},t.lerp=function(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this},t.lerpVectors=function(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this.w=e.w+(t.w-e.w)*n,this},t.equals=function(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w},t.fromArray=function(e,t){return void 0===t&&(t=0),this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this},t.toArray=function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e},t.fromBufferAttribute=function(e,t,n){return void 0!==n&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this},t.random=function(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this},Hn(e,[{key:"width",get:function(){return this.z},set:function(e){this.z=e}},{key:"height",get:function(){return this.w},set:function(e){this.w=e}}]),e}(),or=function(e){function t(t,n,r){var i;return i=e.call(this)||this,Object.defineProperty(zn(i),"isWebGLRenderTarget",{value:!0}),i.width=t,i.height=n,i.scissor=new ir(0,0,t,n),i.scissorTest=!1,i.viewport=new ir(0,0,t,n),r=r||{},i.texture=new nr(void 0,r.mapping,r.wrapS,r.wrapT,r.magFilter,r.minFilter,r.format,r.type,r.anisotropy,r.encoding),i.texture.image={},i.texture.image.width=t,i.texture.image.height=n,i.texture.generateMipmaps=void 0!==r.generateMipmaps&&r.generateMipmaps,i.texture.minFilter=void 0!==r.minFilter?r.minFilter:Ae,i.depthBuffer=void 0===r.depthBuffer||r.depthBuffer,i.stencilBuffer=void 0!==r.stencilBuffer&&r.stencilBuffer,i.depthTexture=void 0!==r.depthTexture?r.depthTexture:null,i}Gn(t,e);var n=t.prototype;return n.setSize=function(e,t){this.width===e&&this.height===t||(this.width=e,this.height=t,this.texture.image.width=e,this.texture.image.height=t,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)},n.clone=function(){return(new this.constructor).copy(this)},n.copy=function(e){return this.width=e.width,this.height=e.height,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,this.depthTexture=e.depthTexture,this},n.dispose=function(){this.dispatchEvent({type:"dispose"})},t}(qn),ar=function(e){function t(t,n,r){var i;return i=e.call(this,t,n,r)||this,Object.defineProperty(zn(i),"isWebGLMultisampleRenderTarget",{value:!0}),i.samples=4,i}return Gn(t,e),t.prototype.copy=function(t){return e.prototype.copy.call(this,t),this.samples=t.samples,this},t}(or),sr=function(){function e(e,t,n,r){void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=0),void 0===r&&(r=1),Object.defineProperty(this,"isQuaternion",{value:!0}),this._x=e,this._y=t,this._z=n,this._w=r}e.slerp=function(e,t,n,r){return n.copy(e).slerp(t,r)},e.slerpFlat=function(e,t,n,r,i,o,a){var s=n[r+0],l=n[r+1],c=n[r+2],u=n[r+3],h=i[o+0],d=i[o+1],p=i[o+2],f=i[o+3];if(u!==f||s!==h||l!==d||c!==p){var m=1-a,v=s*h+l*d+c*p+u*f,g=v>=0?1:-1,y=1-v*v;if(y>Number.EPSILON){var b=Math.sqrt(y),A=Math.atan2(b,v*g);m=Math.sin(m*A)/b,a=Math.sin(a*A)/b}var w=a*g;if(s=s*m+h*w,l=l*m+d*w,c=c*m+p*w,u=u*m+f*w,m===1-a){var x=1/Math.sqrt(s*s+l*l+c*c+u*u);s*=x,l*=x,c*=x,u*=x}}e[t]=s,e[t+1]=l,e[t+2]=c,e[t+3]=u},e.multiplyQuaternionsFlat=function(e,t,n,r,i,o){var a=n[r],s=n[r+1],l=n[r+2],c=n[r+3],u=i[o],h=i[o+1],d=i[o+2],p=i[o+3];return e[t]=a*p+c*u+s*d-l*h,e[t+1]=s*p+c*h+l*u-a*d,e[t+2]=l*p+c*d+a*h-s*u,e[t+3]=c*p-a*u-s*h-l*d,e};var t=e.prototype;return t.set=function(e,t,n,r){return this._x=e,this._y=t,this._z=n,this._w=r,this._onChangeCallback(),this},t.clone=function(){return new this.constructor(this._x,this._y,this._z,this._w)},t.copy=function(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this},t.setFromEuler=function(e,t){if(!e||!e.isEuler)throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");var n=e._x,r=e._y,i=e._z,o=e._order,a=Math.cos,s=Math.sin,l=a(n/2),c=a(r/2),u=a(i/2),h=s(n/2),d=s(r/2),p=s(i/2);switch(o){case"XYZ":this._x=h*c*u+l*d*p,this._y=l*d*u-h*c*p,this._z=l*c*p+h*d*u,this._w=l*c*u-h*d*p;break;case"YXZ":this._x=h*c*u+l*d*p,this._y=l*d*u-h*c*p,this._z=l*c*p-h*d*u,this._w=l*c*u+h*d*p;break;case"ZXY":this._x=h*c*u-l*d*p,this._y=l*d*u+h*c*p,this._z=l*c*p+h*d*u,this._w=l*c*u-h*d*p;break;case"ZYX":this._x=h*c*u-l*d*p,this._y=l*d*u+h*c*p,this._z=l*c*p-h*d*u,this._w=l*c*u+h*d*p;break;case"YZX":this._x=h*c*u+l*d*p,this._y=l*d*u+h*c*p,this._z=l*c*p-h*d*u,this._w=l*c*u-h*d*p;break;case"XZY":this._x=h*c*u-l*d*p,this._y=l*d*u-h*c*p,this._z=l*c*p+h*d*u,this._w=l*c*u+h*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return!1!==t&&this._onChangeCallback(),this},t.setFromAxisAngle=function(e,t){var n=t/2,r=Math.sin(n);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(n),this._onChangeCallback(),this},t.setFromRotationMatrix=function(e){var t=e.elements,n=t[0],r=t[4],i=t[8],o=t[1],a=t[5],s=t[9],l=t[2],c=t[6],u=t[10],h=n+a+u;if(h>0){var d=.5/Math.sqrt(h+1);this._w=.25/d,this._x=(c-s)*d,this._y=(i-l)*d,this._z=(o-r)*d}else if(n>a&&n>u){var p=2*Math.sqrt(1+n-a-u);this._w=(c-s)/p,this._x=.25*p,this._y=(r+o)/p,this._z=(i+l)/p}else if(a>u){var f=2*Math.sqrt(1+a-n-u);this._w=(i-l)/f,this._x=(r+o)/f,this._y=.25*f,this._z=(s+c)/f}else{var m=2*Math.sqrt(1+u-n-a);this._w=(o-r)/m,this._x=(i+l)/m,this._y=(s+c)/m,this._z=.25*m}return this._onChangeCallback(),this},t.setFromUnitVectors=function(e,t){var n=1e-6,r=e.dot(t)+1;return r<n?(r=0,Math.abs(e.x)>Math.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=r):(this._x=0,this._y=-e.z,this._z=e.y,this._w=r)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=r),this.normalize()},t.angleTo=function(e){return 2*Math.acos(Math.abs(Kn.clamp(this.dot(e),-1,1)))},t.rotateTowards=function(e,t){var n=this.angleTo(e);if(0===n)return this;var r=Math.min(1,t/n);return this.slerp(e,r),this},t.identity=function(){return this.set(0,0,0,1)},t.invert=function(){return this.conjugate()},t.conjugate=function(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this},t.dot=function(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w},t.lengthSq=function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},t.length=function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},t.normalize=function(){var e=this.length();return 0===e?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this},t.multiply=function(e,t){return void 0!==t?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(e,t)):this.multiplyQuaternions(this,e)},t.premultiply=function(e){return this.multiplyQuaternions(e,this)},t.multiplyQuaternions=function(e,t){var n=e._x,r=e._y,i=e._z,o=e._w,a=t._x,s=t._y,l=t._z,c=t._w;return this._x=n*c+o*a+r*l-i*s,this._y=r*c+o*s+i*a-n*l,this._z=i*c+o*l+n*s-r*a,this._w=o*c-n*a-r*s-i*l,this._onChangeCallback(),this},t.slerp=function(e,t){if(0===t)return this;if(1===t)return this.copy(e);var n=this._x,r=this._y,i=this._z,o=this._w,a=o*e._w+n*e._x+r*e._y+i*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),a>=1)return this._w=o,this._x=n,this._y=r,this._z=i,this;var s=1-a*a;if(s<=Number.EPSILON){var l=1-t;return this._w=l*o+t*this._w,this._x=l*n+t*this._x,this._y=l*r+t*this._y,this._z=l*i+t*this._z,this.normalize(),this._onChangeCallback(),this}var c=Math.sqrt(s),u=Math.atan2(c,a),h=Math.sin((1-t)*u)/c,d=Math.sin(t*u)/c;return this._w=o*h+this._w*d,this._x=n*h+this._x*d,this._y=r*h+this._y*d,this._z=i*h+this._z*d,this._onChangeCallback(),this},t.equals=function(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w},t.fromArray=function(e,t){return void 0===t&&(t=0),this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this},t.toArray=function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e},t.fromBufferAttribute=function(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this},t._onChange=function(e){return this._onChangeCallback=e,this},t._onChangeCallback=function(){},Hn(e,[{key:"x",get:function(){return this._x},set:function(e){this._x=e,this._onChangeCallback()}},{key:"y",get:function(){return this._y},set:function(e){this._y=e,this._onChangeCallback()}},{key:"z",get:function(){return this._z},set:function(e){this._z=e,this._onChangeCallback()}},{key:"w",get:function(){return this._w},set:function(e){this._w=e,this._onChangeCallback()}}]),e}(),lr=function(){function e(e,t,n){void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=0),Object.defineProperty(this,"isVector3",{value:!0}),this.x=e,this.y=t,this.z=n}var t=e.prototype;return t.set=function(e,t,n){return void 0===n&&(n=this.z),this.x=e,this.y=t,this.z=n,this},t.setScalar=function(e){return this.x=e,this.y=e,this.z=e,this},t.setX=function(e){return this.x=e,this},t.setY=function(e){return this.y=e,this},t.setZ=function(e){return this.z=e,this},t.setComponent=function(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this},t.getComponent=function(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}},t.clone=function(){return new this.constructor(this.x,this.y,this.z)},t.copy=function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},t.add=function(e,t){return void 0!==t?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this.z+=e.z,this)},t.addScalar=function(e){return this.x+=e,this.y+=e,this.z+=e,this},t.addVectors=function(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this},t.addScaledVector=function(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this},t.sub=function(e,t){return void 0!==t?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this.z-=e.z,this)},t.subScalar=function(e){return this.x-=e,this.y-=e,this.z-=e,this},t.subVectors=function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this},t.multiply=function(e,t){return void 0!==t?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(e,t)):(this.x*=e.x,this.y*=e.y,this.z*=e.z,this)},t.multiplyScalar=function(e){return this.x*=e,this.y*=e,this.z*=e,this},t.multiplyVectors=function(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this},t.applyEuler=function(e){return e&&e.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(ur.setFromEuler(e))},t.applyAxisAngle=function(e,t){return this.applyQuaternion(ur.setFromAxisAngle(e,t))},t.applyMatrix3=function(e){var t=this.x,n=this.y,r=this.z,i=e.elements;return this.x=i[0]*t+i[3]*n+i[6]*r,this.y=i[1]*t+i[4]*n+i[7]*r,this.z=i[2]*t+i[5]*n+i[8]*r,this},t.applyNormalMatrix=function(e){return this.applyMatrix3(e).normalize()},t.applyMatrix4=function(e){var t=this.x,n=this.y,r=this.z,i=e.elements,o=1/(i[3]*t+i[7]*n+i[11]*r+i[15]);return this.x=(i[0]*t+i[4]*n+i[8]*r+i[12])*o,this.y=(i[1]*t+i[5]*n+i[9]*r+i[13])*o,this.z=(i[2]*t+i[6]*n+i[10]*r+i[14])*o,this},t.applyQuaternion=function(e){var t=this.x,n=this.y,r=this.z,i=e.x,o=e.y,a=e.z,s=e.w,l=s*t+o*r-a*n,c=s*n+a*t-i*r,u=s*r+i*n-o*t,h=-i*t-o*n-a*r;return this.x=l*s+h*-i+c*-a-u*-o,this.y=c*s+h*-o+u*-i-l*-a,this.z=u*s+h*-a+l*-o-c*-i,this},t.project=function(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)},t.unproject=function(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)},t.transformDirection=function(e){var t=this.x,n=this.y,r=this.z,i=e.elements;return this.x=i[0]*t+i[4]*n+i[8]*r,this.y=i[1]*t+i[5]*n+i[9]*r,this.z=i[2]*t+i[6]*n+i[10]*r,this.normalize()},t.divide=function(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this},t.divideScalar=function(e){return this.multiplyScalar(1/e)},t.min=function(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this},t.max=function(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this},t.clamp=function(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this},t.clampScalar=function(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this},t.clampLength=function(e,t){var n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))},t.floor=function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},t.ceil=function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},t.round=function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},t.roundToZero=function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this},t.negate=function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},t.dot=function(e){return this.x*e.x+this.y*e.y+this.z*e.z},t.lengthSq=function(){return this.x*this.x+this.y*this.y+this.z*this.z},t.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},t.manhattanLength=function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},t.normalize=function(){return this.divideScalar(this.length()||1)},t.setLength=function(e){return this.normalize().multiplyScalar(e)},t.lerp=function(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this},t.lerpVectors=function(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this},t.cross=function(e,t){return void 0!==t?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(e,t)):this.crossVectors(this,e)},t.crossVectors=function(e,t){var n=e.x,r=e.y,i=e.z,o=t.x,a=t.y,s=t.z;return this.x=r*s-i*a,this.y=i*o-n*s,this.z=n*a-r*o,this},t.projectOnVector=function(e){var t=e.lengthSq();if(0===t)return this.set(0,0,0);var n=e.dot(this)/t;return this.copy(e).multiplyScalar(n)},t.projectOnPlane=function(e){return cr.copy(this).projectOnVector(e),this.sub(cr)},t.reflect=function(e){return this.sub(cr.copy(e).multiplyScalar(2*this.dot(e)))},t.angleTo=function(e){var t=Math.sqrt(this.lengthSq()*e.lengthSq());if(0===t)return Math.PI/2;var n=this.dot(e)/t;return Math.acos(Kn.clamp(n,-1,1))},t.distanceTo=function(e){return Math.sqrt(this.distanceToSquared(e))},t.distanceToSquared=function(e){var t=this.x-e.x,n=this.y-e.y,r=this.z-e.z;return t*t+n*n+r*r},t.manhattanDistanceTo=function(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)},t.setFromSpherical=function(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)},t.setFromSphericalCoords=function(e,t,n){var r=Math.sin(t)*e;return this.x=r*Math.sin(n),this.y=Math.cos(t)*e,this.z=r*Math.cos(n),this},t.setFromCylindrical=function(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)},t.setFromCylindricalCoords=function(e,t,n){return this.x=e*Math.sin(t),this.y=n,this.z=e*Math.cos(t),this},t.setFromMatrixPosition=function(e){var t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this},t.setFromMatrixScale=function(e){var t=this.setFromMatrixColumn(e,0).length(),n=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=n,this.z=r,this},t.setFromMatrixColumn=function(e,t){return this.fromArray(e.elements,4*t)},t.setFromMatrix3Column=function(e,t){return this.fromArray(e.elements,3*t)},t.equals=function(e){return e.x===this.x&&e.y===this.y&&e.z===this.z},t.fromArray=function(e,t){return void 0===t&&(t=0),this.x=e[t],this.y=e[t+1],this.z=e[t+2],this},t.toArray=function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e},t.fromBufferAttribute=function(e,t,n){return void 0!==n&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this},t.random=function(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this},e}(),cr=new lr,ur=new sr,hr=function(){function e(e,t){Object.defineProperty(this,"isBox3",{value:!0}),this.min=void 0!==e?e:new lr(1/0,1/0,1/0),this.max=void 0!==t?t:new lr(-1/0,-1/0,-1/0)}var t=e.prototype;return t.set=function(e,t){return this.min.copy(e),this.max.copy(t),this},t.setFromArray=function(e){for(var t=1/0,n=1/0,r=1/0,i=-1/0,o=-1/0,a=-1/0,s=0,l=e.length;s<l;s+=3){var c=e[s],u=e[s+1],h=e[s+2];c<t&&(t=c),u<n&&(n=u),h<r&&(r=h),c>i&&(i=c),u>o&&(o=u),h>a&&(a=h)}return this.min.set(t,n,r),this.max.set(i,o,a),this},t.setFromBufferAttribute=function(e){for(var t=1/0,n=1/0,r=1/0,i=-1/0,o=-1/0,a=-1/0,s=0,l=e.count;s<l;s++){var c=e.getX(s),u=e.getY(s),h=e.getZ(s);c<t&&(t=c),u<n&&(n=u),h<r&&(r=h),c>i&&(i=c),u>o&&(o=u),h>a&&(a=h)}return this.min.set(t,n,r),this.max.set(i,o,a),this},t.setFromPoints=function(e){this.makeEmpty();for(var t=0,n=e.length;t<n;t++)this.expandByPoint(e[t]);return this},t.setFromCenterAndSize=function(e,t){var n=fr.copy(t).multiplyScalar(.5);return this.min.copy(e).sub(n),this.max.copy(e).add(n),this},t.setFromObject=function(e){return this.makeEmpty(),this.expandByObject(e)},t.clone=function(){return(new this.constructor).copy(this)},t.copy=function(e){return this.min.copy(e.min),this.max.copy(e.max),this},t.makeEmpty=function(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this},t.isEmpty=function(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z},t.getCenter=function(e){return void 0===e&&(console.warn("THREE.Box3: .getCenter() target is now required"),e=new lr),this.isEmpty()?e.set(0,0,0):e.addVectors(this.min,this.max).multiplyScalar(.5)},t.getSize=function(e){return void 0===e&&(console.warn("THREE.Box3: .getSize() target is now required"),e=new lr),this.isEmpty()?e.set(0,0,0):e.subVectors(this.max,this.min)},t.expandByPoint=function(e){return this.min.min(e),this.max.max(e),this},t.expandByVector=function(e){return this.min.sub(e),this.max.add(e),this},t.expandByScalar=function(e){return this.min.addScalar(-e),this.max.addScalar(e),this},t.expandByObject=function(e){e.updateWorldMatrix(!1,!1);var t=e.geometry;void 0!==t&&(null===t.boundingBox&&t.computeBoundingBox(),mr.copy(t.boundingBox),mr.applyMatrix4(e.matrixWorld),this.union(mr));for(var n=e.children,r=0,i=n.length;r<i;r++)this.expandByObject(n[r]);return this},t.containsPoint=function(e){return!(e.x<this.min.x||e.x>this.max.x||e.y<this.min.y||e.y>this.max.y||e.z<this.min.z||e.z>this.max.z)},t.containsBox=function(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z},t.getParameter=function(e,t){return void 0===t&&(console.warn("THREE.Box3: .getParameter() target is now required"),t=new lr),t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))},t.intersectsBox=function(e){return!(e.max.x<this.min.x||e.min.x>this.max.x||e.max.y<this.min.y||e.min.y>this.max.y||e.max.z<this.min.z||e.min.z>this.max.z)},t.intersectsSphere=function(e){return this.clampPoint(e.center,fr),fr.distanceToSquared(e.center)<=e.radius*e.radius},t.intersectsPlane=function(e){var t,n;return e.normal.x>0?(t=e.normal.x*this.min.x,n=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,n=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,n+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,n+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,n+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,n+=e.normal.z*this.min.z),t<=-e.constant&&n>=-e.constant},t.intersectsTriangle=function(e){if(this.isEmpty())return!1;this.getCenter(xr),Er.subVectors(this.max,xr),vr.subVectors(e.a,xr),gr.subVectors(e.b,xr),yr.subVectors(e.c,xr),br.subVectors(gr,vr),Ar.subVectors(yr,gr),wr.subVectors(vr,yr);var t=[0,-br.z,br.y,0,-Ar.z,Ar.y,0,-wr.z,wr.y,br.z,0,-br.x,Ar.z,0,-Ar.x,wr.z,0,-wr.x,-br.y,br.x,0,-Ar.y,Ar.x,0,-wr.y,wr.x,0];return!!dr(t,vr,gr,yr,Er)&&!!dr(t=[1,0,0,0,1,0,0,0,1],vr,gr,yr,Er)&&(Mr.crossVectors(br,Ar),dr(t=[Mr.x,Mr.y,Mr.z],vr,gr,yr,Er))},t.clampPoint=function(e,t){return void 0===t&&(console.warn("THREE.Box3: .clampPoint() target is now required"),t=new lr),t.copy(e).clamp(this.min,this.max)},t.distanceToPoint=function(e){return fr.copy(e).clamp(this.min,this.max).sub(e).length()},t.getBoundingSphere=function(e){return void 0===e&&console.error("THREE.Box3: .getBoundingSphere() target is now required"),this.getCenter(e.center),e.radius=.5*this.getSize(fr).length(),e},t.intersect=function(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this},t.union=function(e){return this.min.min(e.min),this.max.max(e.max),this},t.applyMatrix4=function(e){return this.isEmpty()||(pr[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),pr[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),pr[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),pr[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),pr[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),pr[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),pr[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),pr[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(pr)),this},t.translate=function(e){return this.min.add(e),this.max.add(e),this},t.equals=function(e){return e.min.equals(this.min)&&e.max.equals(this.max)},e}();function dr(e,t,n,r,i){for(var o=0,a=e.length-3;o<=a;o+=3){_r.fromArray(e,o);var s=i.x*Math.abs(_r.x)+i.y*Math.abs(_r.y)+i.z*Math.abs(_r.z),l=t.dot(_r),c=n.dot(_r),u=r.dot(_r);if(Math.max(-Math.max(l,c,u),Math.min(l,c,u))>s)return!1}return!0}var pr=[new lr,new lr,new lr,new lr,new lr,new lr,new lr,new lr],fr=new lr,mr=new hr,vr=new lr,gr=new lr,yr=new lr,br=new lr,Ar=new lr,wr=new lr,xr=new lr,Er=new lr,Mr=new lr,_r=new lr,Tr=new hr,Sr=function(){function e(e,t){this.center=void 0!==e?e:new lr,this.radius=void 0!==t?t:-1}var t=e.prototype;return t.set=function(e,t){return this.center.copy(e),this.radius=t,this},t.setFromPoints=function(e,t){var n=this.center;void 0!==t?n.copy(t):Tr.setFromPoints(e).getCenter(n);for(var r=0,i=0,o=e.length;i<o;i++)r=Math.max(r,n.distanceToSquared(e[i]));return this.radius=Math.sqrt(r),this},t.clone=function(){return(new this.constructor).copy(this)},t.copy=function(e){return this.center.copy(e.center),this.radius=e.radius,this},t.isEmpty=function(){return this.radius<0},t.makeEmpty=function(){return this.center.set(0,0,0),this.radius=-1,this},t.containsPoint=function(e){return e.distanceToSquared(this.center)<=this.radius*this.radius},t.distanceToPoint=function(e){return e.distanceTo(this.center)-this.radius},t.intersectsSphere=function(e){var t=this.radius+e.radius;return e.center.distanceToSquared(this.center)<=t*t},t.intersectsBox=function(e){return e.intersectsSphere(this)},t.intersectsPlane=function(e){return Math.abs(e.distanceToPoint(this.center))<=this.radius},t.clampPoint=function(e,t){var n=this.center.distanceToSquared(e);return void 0===t&&(console.warn("THREE.Sphere: .clampPoint() target is now required"),t=new lr),t.copy(e),n>this.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t},t.getBoundingBox=function(e){return void 0===e&&(console.warn("THREE.Sphere: .getBoundingBox() target is now required"),e=new hr),this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)},t.applyMatrix4=function(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this},t.translate=function(e){return this.center.add(e),this},t.equals=function(e){return e.center.equals(this.center)&&e.radius===this.radius},e}(),Cr=new lr,Lr=new lr,Rr=new lr,Pr=new lr,Dr=new lr,Or=new lr,Ir=new lr,Br=function(){function e(e,t){this.origin=void 0!==e?e:new lr,this.direction=void 0!==t?t:new lr(0,0,-1)}var t=e.prototype;return t.set=function(e,t){return this.origin.copy(e),this.direction.copy(t),this},t.clone=function(){return(new this.constructor).copy(this)},t.copy=function(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this},t.at=function(e,t){return void 0===t&&(console.warn("THREE.Ray: .at() target is now required"),t=new lr),t.copy(this.direction).multiplyScalar(e).add(this.origin)},t.lookAt=function(e){return this.direction.copy(e).sub(this.origin).normalize(),this},t.recast=function(e){return this.origin.copy(this.at(e,Cr)),this},t.closestPointToPoint=function(e,t){void 0===t&&(console.warn("THREE.Ray: .closestPointToPoint() target is now required"),t=new lr),t.subVectors(e,this.origin);var n=t.dot(this.direction);return n<0?t.copy(this.origin):t.copy(this.direction).multiplyScalar(n).add(this.origin)},t.distanceToPoint=function(e){return Math.sqrt(this.distanceSqToPoint(e))},t.distanceSqToPoint=function(e){var t=Cr.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Cr.copy(this.direction).multiplyScalar(t).add(this.origin),Cr.distanceToSquared(e))},t.distanceSqToSegment=function(e,t,n,r){Lr.copy(e).add(t).multiplyScalar(.5),Rr.copy(t).sub(e).normalize(),Pr.copy(this.origin).sub(Lr);var i,o,a,s,l=.5*e.distanceTo(t),c=-this.direction.dot(Rr),u=Pr.dot(this.direction),h=-Pr.dot(Rr),d=Pr.lengthSq(),p=Math.abs(1-c*c);if(p>0)if(o=c*u-h,s=l*p,(i=c*h-u)>=0)if(o>=-s)if(o<=s){var f=1/p;a=(i*=f)*(i+c*(o*=f)+2*u)+o*(c*i+o+2*h)+d}else o=l,a=-(i=Math.max(0,-(c*o+u)))*i+o*(o+2*h)+d;else o=-l,a=-(i=Math.max(0,-(c*o+u)))*i+o*(o+2*h)+d;else o<=-s?a=-(i=Math.max(0,-(-c*l+u)))*i+(o=i>0?-l:Math.min(Math.max(-l,-h),l))*(o+2*h)+d:o<=s?(i=0,a=(o=Math.min(Math.max(-l,-h),l))*(o+2*h)+d):a=-(i=Math.max(0,-(c*l+u)))*i+(o=i>0?l:Math.min(Math.max(-l,-h),l))*(o+2*h)+d;else o=c>0?-l:l,a=-(i=Math.max(0,-(c*o+u)))*i+o*(o+2*h)+d;return n&&n.copy(this.direction).multiplyScalar(i).add(this.origin),r&&r.copy(Rr).multiplyScalar(o).add(Lr),a},t.intersectSphere=function(e,t){Cr.subVectors(e.center,this.origin);var n=Cr.dot(this.direction),r=Cr.dot(Cr)-n*n,i=e.radius*e.radius;if(r>i)return null;var o=Math.sqrt(i-r),a=n-o,s=n+o;return a<0&&s<0?null:a<0?this.at(s,t):this.at(a,t)},t.intersectsSphere=function(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius},t.distanceToPlane=function(e){var t=e.normal.dot(this.direction);if(0===t)return 0===e.distanceToPoint(this.origin)?0:null;var n=-(this.origin.dot(e.normal)+e.constant)/t;return n>=0?n:null},t.intersectPlane=function(e,t){var n=this.distanceToPlane(e);return null===n?null:this.at(n,t)},t.intersectsPlane=function(e){var t=e.distanceToPoint(this.origin);return 0===t||e.normal.dot(this.direction)*t<0},t.intersectBox=function(e,t){var n,r,i,o,a,s,l=1/this.direction.x,c=1/this.direction.y,u=1/this.direction.z,h=this.origin;return l>=0?(n=(e.min.x-h.x)*l,r=(e.max.x-h.x)*l):(n=(e.max.x-h.x)*l,r=(e.min.x-h.x)*l),c>=0?(i=(e.min.y-h.y)*c,o=(e.max.y-h.y)*c):(i=(e.max.y-h.y)*c,o=(e.min.y-h.y)*c),n>o||i>r?null:((i>n||n!==n)&&(n=i),(o<r||r!==r)&&(r=o),u>=0?(a=(e.min.z-h.z)*u,s=(e.max.z-h.z)*u):(a=(e.max.z-h.z)*u,s=(e.min.z-h.z)*u),n>s||a>r?null:((a>n||n!==n)&&(n=a),(s<r||r!==r)&&(r=s),r<0?null:this.at(n>=0?n:r,t)))},t.intersectsBox=function(e){return null!==this.intersectBox(e,Cr)},t.intersectTriangle=function(e,t,n,r,i){Dr.subVectors(t,e),Or.subVectors(n,e),Ir.crossVectors(Dr,Or);var o,a=this.direction.dot(Ir);if(a>0){if(r)return null;o=1}else{if(!(a<0))return null;o=-1,a=-a}Pr.subVectors(this.origin,e);var s=o*this.direction.dot(Or.crossVectors(Pr,Or));if(s<0)return null;var l=o*this.direction.dot(Dr.cross(Pr));if(l<0)return null;if(s+l>a)return null;var c=-o*Pr.dot(Ir);return c<0?null:this.at(c/a,i)},t.applyMatrix4=function(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this},t.equals=function(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)},e}(),Fr=function(){function e(){Object.defineProperty(this,"isMatrix4",{value:!0}),this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}var t=e.prototype;return t.set=function(e,t,n,r,i,o,a,s,l,c,u,h,d,p,f,m){var v=this.elements;return v[0]=e,v[4]=t,v[8]=n,v[12]=r,v[1]=i,v[5]=o,v[9]=a,v[13]=s,v[2]=l,v[6]=c,v[10]=u,v[14]=h,v[3]=d,v[7]=p,v[11]=f,v[15]=m,this},t.identity=function(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this},t.clone=function(){return(new e).fromArray(this.elements)},t.copy=function(e){var t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],this},t.copyPosition=function(e){var t=this.elements,n=e.elements;return t[12]=n[12],t[13]=n[13],t[14]=n[14],this},t.setFromMatrix3=function(e){var t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this},t.extractBasis=function(e,t,n){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this},t.makeBasis=function(e,t,n){return this.set(e.x,t.x,n.x,0,e.y,t.y,n.y,0,e.z,t.z,n.z,0,0,0,0,1),this},t.extractRotation=function(e){var t=this.elements,n=e.elements,r=1/kr.setFromMatrixColumn(e,0).length(),i=1/kr.setFromMatrixColumn(e,1).length(),o=1/kr.setFromMatrixColumn(e,2).length();return t[0]=n[0]*r,t[1]=n[1]*r,t[2]=n[2]*r,t[3]=0,t[4]=n[4]*i,t[5]=n[5]*i,t[6]=n[6]*i,t[7]=0,t[8]=n[8]*o,t[9]=n[9]*o,t[10]=n[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this},t.makeRotationFromEuler=function(e){e&&e.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");var t=this.elements,n=e.x,r=e.y,i=e.z,o=Math.cos(n),a=Math.sin(n),s=Math.cos(r),l=Math.sin(r),c=Math.cos(i),u=Math.sin(i);if("XYZ"===e.order){var h=o*c,d=o*u,p=a*c,f=a*u;t[0]=s*c,t[4]=-s*u,t[8]=l,t[1]=d+p*l,t[5]=h-f*l,t[9]=-a*s,t[2]=f-h*l,t[6]=p+d*l,t[10]=o*s}else if("YXZ"===e.order){var m=s*c,v=s*u,g=l*c,y=l*u;t[0]=m+y*a,t[4]=g*a-v,t[8]=o*l,t[1]=o*u,t[5]=o*c,t[9]=-a,t[2]=v*a-g,t[6]=y+m*a,t[10]=o*s}else if("ZXY"===e.order){var b=s*c,A=s*u,w=l*c,x=l*u;t[0]=b-x*a,t[4]=-o*u,t[8]=w+A*a,t[1]=A+w*a,t[5]=o*c,t[9]=x-b*a,t[2]=-o*l,t[6]=a,t[10]=o*s}else if("ZYX"===e.order){var E=o*c,M=o*u,_=a*c,T=a*u;t[0]=s*c,t[4]=_*l-M,t[8]=E*l+T,t[1]=s*u,t[5]=T*l+E,t[9]=M*l-_,t[2]=-l,t[6]=a*s,t[10]=o*s}else if("YZX"===e.order){var S=o*s,C=o*l,L=a*s,R=a*l;t[0]=s*c,t[4]=R-S*u,t[8]=L*u+C,t[1]=u,t[5]=o*c,t[9]=-a*c,t[2]=-l*c,t[6]=C*u+L,t[10]=S-R*u}else if("XZY"===e.order){var P=o*s,D=o*l,O=a*s,I=a*l;t[0]=s*c,t[4]=-u,t[8]=l*c,t[1]=P*u+I,t[5]=o*c,t[9]=D*u-O,t[2]=O*u-D,t[6]=a*c,t[10]=I*u+P}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this},t.makeRotationFromQuaternion=function(e){return this.compose(Ur,e,Hr)},t.lookAt=function(e,t,n){var r=this.elements;return jr.subVectors(e,t),0===jr.lengthSq()&&(jr.z=1),jr.normalize(),Gr.crossVectors(n,jr),0===Gr.lengthSq()&&(1===Math.abs(n.z)?jr.x+=1e-4:jr.z+=1e-4,jr.normalize(),Gr.crossVectors(n,jr)),Gr.normalize(),zr.crossVectors(jr,Gr),r[0]=Gr.x,r[4]=zr.x,r[8]=jr.x,r[1]=Gr.y,r[5]=zr.y,r[9]=jr.y,r[2]=Gr.z,r[6]=zr.z,r[10]=jr.z,this},t.multiply=function(e,t){return void 0!==t?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(e,t)):this.multiplyMatrices(this,e)},t.premultiply=function(e){return this.multiplyMatrices(e,this)},t.multiplyMatrices=function(e,t){var n=e.elements,r=t.elements,i=this.elements,o=n[0],a=n[4],s=n[8],l=n[12],c=n[1],u=n[5],h=n[9],d=n[13],p=n[2],f=n[6],m=n[10],v=n[14],g=n[3],y=n[7],b=n[11],A=n[15],w=r[0],x=r[4],E=r[8],M=r[12],_=r[1],T=r[5],S=r[9],C=r[13],L=r[2],R=r[6],P=r[10],D=r[14],O=r[3],I=r[7],B=r[11],F=r[15];return i[0]=o*w+a*_+s*L+l*O,i[4]=o*x+a*T+s*R+l*I,i[8]=o*E+a*S+s*P+l*B,i[12]=o*M+a*C+s*D+l*F,i[1]=c*w+u*_+h*L+d*O,i[5]=c*x+u*T+h*R+d*I,i[9]=c*E+u*S+h*P+d*B,i[13]=c*M+u*C+h*D+d*F,i[2]=p*w+f*_+m*L+v*O,i[6]=p*x+f*T+m*R+v*I,i[10]=p*E+f*S+m*P+v*B,i[14]=p*M+f*C+m*D+v*F,i[3]=g*w+y*_+b*L+A*O,i[7]=g*x+y*T+b*R+A*I,i[11]=g*E+y*S+b*P+A*B,i[15]=g*M+y*C+b*D+A*F,this},t.multiplyScalar=function(e){var t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this},t.determinant=function(){var e=this.elements,t=e[0],n=e[4],r=e[8],i=e[12],o=e[1],a=e[5],s=e[9],l=e[13],c=e[2],u=e[6],h=e[10],d=e[14];return e[3]*(+i*s*u-r*l*u-i*a*h+n*l*h+r*a*d-n*s*d)+e[7]*(+t*s*d-t*l*h+i*o*h-r*o*d+r*l*c-i*s*c)+e[11]*(+t*l*u-t*a*d-i*o*u+n*o*d+i*a*c-n*l*c)+e[15]*(-r*a*c-t*s*u+t*a*h+r*o*u-n*o*h+n*s*c)},t.transpose=function(){var e,t=this.elements;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this},t.setPosition=function(e,t,n){var r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=t,r[14]=n),this},t.invert=function(){var e=this.elements,t=e[0],n=e[1],r=e[2],i=e[3],o=e[4],a=e[5],s=e[6],l=e[7],c=e[8],u=e[9],h=e[10],d=e[11],p=e[12],f=e[13],m=e[14],v=e[15],g=u*m*l-f*h*l+f*s*d-a*m*d-u*s*v+a*h*v,y=p*h*l-c*m*l-p*s*d+o*m*d+c*s*v-o*h*v,b=c*f*l-p*u*l+p*a*d-o*f*d-c*a*v+o*u*v,A=p*u*s-c*f*s-p*a*h+o*f*h+c*a*m-o*u*m,w=t*g+n*y+r*b+i*A;if(0===w)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);var x=1/w;return e[0]=g*x,e[1]=(f*h*i-u*m*i-f*r*d+n*m*d+u*r*v-n*h*v)*x,e[2]=(a*m*i-f*s*i+f*r*l-n*m*l-a*r*v+n*s*v)*x,e[3]=(u*s*i-a*h*i-u*r*l+n*h*l+a*r*d-n*s*d)*x,e[4]=y*x,e[5]=(c*m*i-p*h*i+p*r*d-t*m*d-c*r*v+t*h*v)*x,e[6]=(p*s*i-o*m*i-p*r*l+t*m*l+o*r*v-t*s*v)*x,e[7]=(o*h*i-c*s*i+c*r*l-t*h*l-o*r*d+t*s*d)*x,e[8]=b*x,e[9]=(p*u*i-c*f*i-p*n*d+t*f*d+c*n*v-t*u*v)*x,e[10]=(o*f*i-p*a*i+p*n*l-t*f*l-o*n*v+t*a*v)*x,e[11]=(c*a*i-o*u*i-c*n*l+t*u*l+o*n*d-t*a*d)*x,e[12]=A*x,e[13]=(c*f*r-p*u*r+p*n*h-t*f*h-c*n*m+t*u*m)*x,e[14]=(p*a*r-o*f*r-p*n*s+t*f*s+o*n*m-t*a*m)*x,e[15]=(o*u*r-c*a*r+c*n*s-t*u*s-o*n*h+t*a*h)*x,this},t.scale=function(e){var t=this.elements,n=e.x,r=e.y,i=e.z;return t[0]*=n,t[4]*=r,t[8]*=i,t[1]*=n,t[5]*=r,t[9]*=i,t[2]*=n,t[6]*=r,t[10]*=i,t[3]*=n,t[7]*=r,t[11]*=i,this},t.getMaxScaleOnAxis=function(){var e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],n=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,n,r))},t.makeTranslation=function(e,t,n){return this.set(1,0,0,e,0,1,0,t,0,0,1,n,0,0,0,1),this},t.makeRotationX=function(e){var t=Math.cos(e),n=Math.sin(e);return this.set(1,0,0,0,0,t,-n,0,0,n,t,0,0,0,0,1),this},t.makeRotationY=function(e){var t=Math.cos(e),n=Math.sin(e);return this.set(t,0,n,0,0,1,0,0,-n,0,t,0,0,0,0,1),this},t.makeRotationZ=function(e){var t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,0,n,t,0,0,0,0,1,0,0,0,0,1),this},t.makeRotationAxis=function(e,t){var n=Math.cos(t),r=Math.sin(t),i=1-n,o=e.x,a=e.y,s=e.z,l=i*o,c=i*a;return this.set(l*o+n,l*a-r*s,l*s+r*a,0,l*a+r*s,c*a+n,c*s-r*o,0,l*s-r*a,c*s+r*o,i*s*s+n,0,0,0,0,1),this},t.makeScale=function(e,t,n){return this.set(e,0,0,0,0,t,0,0,0,0,n,0,0,0,0,1),this},t.makeShear=function(e,t,n){return this.set(1,t,n,0,e,1,n,0,e,t,1,0,0,0,0,1),this},t.compose=function(e,t,n){var r=this.elements,i=t._x,o=t._y,a=t._z,s=t._w,l=i+i,c=o+o,u=a+a,h=i*l,d=i*c,p=i*u,f=o*c,m=o*u,v=a*u,g=s*l,y=s*c,b=s*u,A=n.x,w=n.y,x=n.z;return r[0]=(1-(f+v))*A,r[1]=(d+b)*A,r[2]=(p-y)*A,r[3]=0,r[4]=(d-b)*w,r[5]=(1-(h+v))*w,r[6]=(m+g)*w,r[7]=0,r[8]=(p+y)*x,r[9]=(m-g)*x,r[10]=(1-(h+f))*x,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this},t.decompose=function(e,t,n){var r=this.elements,i=kr.set(r[0],r[1],r[2]).length(),o=kr.set(r[4],r[5],r[6]).length(),a=kr.set(r[8],r[9],r[10]).length();this.determinant()<0&&(i=-i),e.x=r[12],e.y=r[13],e.z=r[14],Nr.copy(this);var s=1/i,l=1/o,c=1/a;return Nr.elements[0]*=s,Nr.elements[1]*=s,Nr.elements[2]*=s,Nr.elements[4]*=l,Nr.elements[5]*=l,Nr.elements[6]*=l,Nr.elements[8]*=c,Nr.elements[9]*=c,Nr.elements[10]*=c,t.setFromRotationMatrix(Nr),n.x=i,n.y=o,n.z=a,this},t.makePerspective=function(e,t,n,r,i,o){void 0===o&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");var a=this.elements,s=2*i/(t-e),l=2*i/(n-r),c=(t+e)/(t-e),u=(n+r)/(n-r),h=-(o+i)/(o-i),d=-2*o*i/(o-i);return a[0]=s,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=u,a[13]=0,a[2]=0,a[6]=0,a[10]=h,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this},t.makeOrthographic=function(e,t,n,r,i,o){var a=this.elements,s=1/(t-e),l=1/(n-r),c=1/(o-i),u=(t+e)*s,h=(n+r)*l,d=(o+i)*c;return a[0]=2*s,a[4]=0,a[8]=0,a[12]=-u,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-h,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this},t.equals=function(e){for(var t=this.elements,n=e.elements,r=0;r<16;r++)if(t[r]!==n[r])return!1;return!0},t.fromArray=function(e,t){void 0===t&&(t=0);for(var n=0;n<16;n++)this.elements[n]=e[n+t];return this},t.toArray=function(e,t){void 0===e&&(e=[]),void 0===t&&(t=0);var n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e[t+9]=n[9],e[t+10]=n[10],e[t+11]=n[11],e[t+12]=n[12],e[t+13]=n[13],e[t+14]=n[14],e[t+15]=n[15],e},e}(),kr=new lr,Nr=new Fr,Ur=new lr(0,0,0),Hr=new lr(1,1,1),Gr=new lr,zr=new lr,jr=new lr,Vr=function(){function e(t,n,r,i){void 0===t&&(t=0),void 0===n&&(n=0),void 0===r&&(r=0),void 0===i&&(i=e.DefaultOrder),Object.defineProperty(this,"isEuler",{value:!0}),this._x=t,this._y=n,this._z=r,this._order=i}var t=e.prototype;return t.set=function(e,t,n,r){return this._x=e,this._y=t,this._z=n,this._order=r||this._order,this._onChangeCallback(),this},t.clone=function(){return new this.constructor(this._x,this._y,this._z,this._order)},t.copy=function(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this},t.setFromRotationMatrix=function(e,t,n){var r=Kn.clamp,i=e.elements,o=i[0],a=i[4],s=i[8],l=i[1],c=i[5],u=i[9],h=i[2],d=i[6],p=i[10];switch(t=t||this._order){case"XYZ":this._y=Math.asin(r(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(-u,p),this._z=Math.atan2(-a,o)):(this._x=Math.atan2(d,c),this._z=0);break;case"YXZ":this._x=Math.asin(-r(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(s,p),this._z=Math.atan2(l,c)):(this._y=Math.atan2(-h,o),this._z=0);break;case"ZXY":this._x=Math.asin(r(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(-h,p),this._z=Math.atan2(-a,c)):(this._y=0,this._z=Math.atan2(l,o));break;case"ZYX":this._y=Math.asin(-r(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(d,p),this._z=Math.atan2(l,o)):(this._x=0,this._z=Math.atan2(-a,c));break;case"YZX":this._z=Math.asin(r(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-u,c),this._y=Math.atan2(-h,o)):(this._x=0,this._y=Math.atan2(s,p));break;case"XZY":this._z=Math.asin(-r(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(d,c),this._y=Math.atan2(s,o)):(this._x=Math.atan2(-u,p),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,!1!==n&&this._onChangeCallback(),this},t.setFromQuaternion=function(e,t,n){return Wr.makeRotationFromQuaternion(e),this.setFromRotationMatrix(Wr,t,n)},t.setFromVector3=function(e,t){return this.set(e.x,e.y,e.z,t||this._order)},t.reorder=function(e){return qr.setFromEuler(this),this.setFromQuaternion(qr,e)},t.equals=function(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order},t.fromArray=function(e){return this._x=e[0],this._y=e[1],this._z=e[2],void 0!==e[3]&&(this._order=e[3]),this._onChangeCallback(),this},t.toArray=function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e},t.toVector3=function(e){return e?e.set(this._x,this._y,this._z):new lr(this._x,this._y,this._z)},t._onChange=function(e){return this._onChangeCallback=e,this},t._onChangeCallback=function(){},Hn(e,[{key:"x",get:function(){return this._x},set:function(e){this._x=e,this._onChangeCallback()}},{key:"y",get:function(){return this._y},set:function(e){this._y=e,this._onChangeCallback()}},{key:"z",get:function(){return this._z},set:function(e){this._z=e,this._onChangeCallback()}},{key:"order",get:function(){return this._order},set:function(e){this._order=e,this._onChangeCallback()}}]),e}();Vr.DefaultOrder="XYZ",Vr.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"];var Wr=new Fr,qr=new sr,Xr=function(){function e(){this.mask=1}var t=e.prototype;return t.set=function(e){this.mask=1<<e|0},t.enable=function(e){this.mask|=1<<e|0},t.enableAll=function(){this.mask=-1},t.toggle=function(e){this.mask^=1<<e|0},t.disable=function(e){this.mask&=~(1<<e|0)},t.disableAll=function(){this.mask=0},t.test=function(e){return 0!==(this.mask&e.mask)},e}(),Yr=0,Qr=new lr,Zr=new sr,Kr=new Fr,Jr=new lr,$r=new lr,ei=new lr,ti=new sr,ni=new lr(1,0,0),ri=new lr(0,1,0),ii=new lr(0,0,1),oi={type:"added"},ai={type:"removed"};function si(){Object.defineProperty(this,"id",{value:Yr++}),this.uuid=Kn.generateUUID(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=si.DefaultUp.clone();var e=new lr,t=new Vr,n=new sr,r=new lr(1,1,1);function i(){n.setFromEuler(t,!1)}function o(){t.setFromQuaternion(n,void 0,!1)}t._onChange(i),n._onChange(o),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:e},rotation:{configurable:!0,enumerable:!0,value:t},quaternion:{configurable:!0,enumerable:!0,value:n},scale:{configurable:!0,enumerable:!0,value:r},modelViewMatrix:{value:new Fr},normalMatrix:{value:new $n}}),this.matrix=new Fr,this.matrixWorld=new Fr,this.matrixAutoUpdate=si.DefaultMatrixAutoUpdate,this.matrixWorldNeedsUpdate=!1,this.layers=new Xr,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}si.DefaultUp=new lr(0,1,0),si.DefaultMatrixAutoUpdate=!0,si.prototype=Object.assign(Object.create(qn.prototype),{constructor:si,isObject3D:!0,onBeforeRender:function(){},onAfterRender:function(){},applyMatrix4:function(e){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(e),this.matrix.decompose(this.position,this.quaternion,this.scale)},applyQuaternion:function(e){return this.quaternion.premultiply(e),this},setRotationFromAxisAngle:function(e,t){this.quaternion.setFromAxisAngle(e,t)},setRotationFromEuler:function(e){this.quaternion.setFromEuler(e,!0)},setRotationFromMatrix:function(e){this.quaternion.setFromRotationMatrix(e)},setRotationFromQuaternion:function(e){this.quaternion.copy(e)},rotateOnAxis:function(e,t){return Zr.setFromAxisAngle(e,t),this.quaternion.multiply(Zr),this},rotateOnWorldAxis:function(e,t){return Zr.setFromAxisAngle(e,t),this.quaternion.premultiply(Zr),this},rotateX:function(e){return this.rotateOnAxis(ni,e)},rotateY:function(e){return this.rotateOnAxis(ri,e)},rotateZ:function(e){return this.rotateOnAxis(ii,e)},translateOnAxis:function(e,t){return Qr.copy(e).applyQuaternion(this.quaternion),this.position.add(Qr.multiplyScalar(t)),this},translateX:function(e){return this.translateOnAxis(ni,e)},translateY:function(e){return this.translateOnAxis(ri,e)},translateZ:function(e){return this.translateOnAxis(ii,e)},localToWorld:function(e){return e.applyMatrix4(this.matrixWorld)},worldToLocal:function(e){return e.applyMatrix4(Kr.copy(this.matrixWorld).invert())},lookAt:function(e,t,n){e.isVector3?Jr.copy(e):Jr.set(e,t,n);var r=this.parent;this.updateWorldMatrix(!0,!1),$r.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?Kr.lookAt($r,Jr,this.up):Kr.lookAt(Jr,$r,this.up),this.quaternion.setFromRotationMatrix(Kr),r&&(Kr.extractRotation(r.matrixWorld),Zr.setFromRotationMatrix(Kr),this.quaternion.premultiply(Zr.invert()))},add:function(e){if(arguments.length>1){for(var t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return e===this?(console.error("THREE.Object3D.add: object can't be added as a child of itself.",e),this):(e&&e.isObject3D?(null!==e.parent&&e.parent.remove(e),e.parent=this,this.children.push(e),e.dispatchEvent(oi)):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",e),this)},remove:function(e){if(arguments.length>1){for(var t=0;t<arguments.length;t++)this.remove(arguments[t]);return this}var n=this.children.indexOf(e);return-1!==n&&(e.parent=null,this.children.splice(n,1),e.dispatchEvent(ai)),this},clear:function(){for(var e=0;e<this.children.length;e++){var t=this.children[e];t.parent=null,t.dispatchEvent(ai)}return this.children.length=0,this},attach:function(e){return this.updateWorldMatrix(!0,!1),Kr.copy(this.matrixWorld).invert(),null!==e.parent&&(e.parent.updateWorldMatrix(!0,!1),Kr.multiply(e.parent.matrixWorld)),e.applyMatrix4(Kr),e.updateWorldMatrix(!1,!1),this.add(e),this},getObjectById:function(e){return this.getObjectByProperty("id",e)},getObjectByName:function(e){return this.getObjectByProperty("name",e)},getObjectByProperty:function(e,t){if(this[e]===t)return this;for(var n=0,r=this.children.length;n<r;n++){var i=this.children[n].getObjectByProperty(e,t);if(void 0!==i)return i}},getWorldPosition:function(e){return void 0===e&&(console.warn("THREE.Object3D: .getWorldPosition() target is now required"),e=new lr),this.updateWorldMatrix(!0,!1),e.setFromMatrixPosition(this.matrixWorld)},getWorldQuaternion:function(e){return void 0===e&&(console.warn("THREE.Object3D: .getWorldQuaternion() target is now required"),e=new sr),this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose($r,e,ei),e},getWorldScale:function(e){return void 0===e&&(console.warn("THREE.Object3D: .getWorldScale() target is now required"),e=new lr),this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose($r,ti,e),e},getWorldDirection:function(e){void 0===e&&(console.warn("THREE.Object3D: .getWorldDirection() target is now required"),e=new lr),this.updateWorldMatrix(!0,!1);var t=this.matrixWorld.elements;return e.set(t[8],t[9],t[10]).normalize()},raycast:function(){},traverse:function(e){e(this);for(var t=this.children,n=0,r=t.length;n<r;n++)t[n].traverse(e)},traverseVisible:function(e){if(!1!==this.visible){e(this);for(var t=this.children,n=0,r=t.length;n<r;n++)t[n].traverseVisible(e)}},traverseAncestors:function(e){var t=this.parent;null!==t&&(e(t),t.traverseAncestors(e))},updateMatrix:function(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0},updateMatrixWorld:function(e){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||e)&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,e=!0);for(var t=this.children,n=0,r=t.length;n<r;n++)t[n].updateMatrixWorld(e)},updateWorldMatrix:function(e,t){var n=this.parent;if(!0===e&&null!==n&&n.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),!0===t)for(var r=this.children,i=0,o=r.length;i<o;i++)r[i].updateWorldMatrix(!1,!0)},toJSON:function(e){var t=void 0===e||"string"===typeof e,n={};t&&(e={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{}},n.metadata={version:4.5,type:"Object",generator:"Object3D.toJSON"});var r={};function i(t,n){return void 0===t[n.uuid]&&(t[n.uuid]=n.toJSON(e)),n.uuid}if(r.uuid=this.uuid,r.type=this.type,""!==this.name&&(r.name=this.name),!0===this.castShadow&&(r.castShadow=!0),!0===this.receiveShadow&&(r.receiveShadow=!0),!1===this.visible&&(r.visible=!1),!1===this.frustumCulled&&(r.frustumCulled=!1),0!==this.renderOrder&&(r.renderOrder=this.renderOrder),"{}"!==JSON.stringify(this.userData)&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),!1===this.matrixAutoUpdate&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON()),this.isMesh||this.isLine||this.isPoints){r.geometry=i(e.geometries,this.geometry);var o=this.geometry.parameters;if(void 0!==o&&void 0!==o.shapes){var a=o.shapes;if(Array.isArray(a))for(var s=0,l=a.length;s<l;s++){var c=a[s];i(e.shapes,c)}else i(e.shapes,a)}}if(this.isSkinnedMesh&&(r.bindMode=this.bindMode,r.bindMatrix=this.bindMatrix.toArray(),void 0!==this.skeleton&&(i(e.skeletons,this.skeleton),r.skeleton=this.skeleton.uuid)),void 0!==this.material)if(Array.isArray(this.material)){for(var u=[],h=0,d=this.material.length;h<d;h++)u.push(i(e.materials,this.material[h]));r.material=u}else r.material=i(e.materials,this.material);if(this.children.length>0){r.children=[];for(var p=0;p<this.children.length;p++)r.children.push(this.children[p].toJSON(e).object)}if(this.animations.length>0){r.animations=[];for(var f=0;f<this.animations.length;f++){var m=this.animations[f];r.animations.push(i(e.animations,m))}}if(t){var v=E(e.geometries),g=E(e.materials),y=E(e.textures),b=E(e.images),A=E(e.shapes),w=E(e.skeletons),x=E(e.animations);v.length>0&&(n.geometries=v),g.length>0&&(n.materials=g),y.length>0&&(n.textures=y),b.length>0&&(n.images=b),A.length>0&&(n.shapes=A),w.length>0&&(n.skeletons=w),x.length>0&&(n.animations=x)}return n.object=r,n;function E(e){var t=[];for(var n in e){var r=e[n];delete r.metadata,t.push(r)}return t}},clone:function(e){return(new this.constructor).copy(this,e)},copy:function(e,t){if(void 0===t&&(t=!0),this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),!0===t)for(var n=0;n<e.children.length;n++){var r=e.children[n];this.add(r.clone())}return this}});var li=new lr,ci=new lr,ui=new $n,hi=function(){function e(e,t){Object.defineProperty(this,"isPlane",{value:!0}),this.normal=void 0!==e?e:new lr(1,0,0),this.constant=void 0!==t?t:0}var t=e.prototype;return t.set=function(e,t){return this.normal.copy(e),this.constant=t,this},t.setComponents=function(e,t,n,r){return this.normal.set(e,t,n),this.constant=r,this},t.setFromNormalAndCoplanarPoint=function(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this},t.setFromCoplanarPoints=function(e,t,n){var r=li.subVectors(n,t).cross(ci.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(r,e),this},t.clone=function(){return(new this.constructor).copy(this)},t.copy=function(e){return this.normal.copy(e.normal),this.constant=e.constant,this},t.normalize=function(){var e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this},t.negate=function(){return this.constant*=-1,this.normal.negate(),this},t.distanceToPoint=function(e){return this.normal.dot(e)+this.constant},t.distanceToSphere=function(e){return this.distanceToPoint(e.center)-e.radius},t.projectPoint=function(e,t){return void 0===t&&(console.warn("THREE.Plane: .projectPoint() target is now required"),t=new lr),t.copy(this.normal).multiplyScalar(-this.distanceToPoint(e)).add(e)},t.intersectLine=function(e,t){void 0===t&&(console.warn("THREE.Plane: .intersectLine() target is now required"),t=new lr);var n=e.delta(li),r=this.normal.dot(n);if(0===r)return 0===this.distanceToPoint(e.start)?t.copy(e.start):void 0;var i=-(e.start.dot(this.normal)+this.constant)/r;return i<0||i>1?void 0:t.copy(n).multiplyScalar(i).add(e.start)},t.intersectsLine=function(e){var t=this.distanceToPoint(e.start),n=this.distanceToPoint(e.end);return t<0&&n>0||n<0&&t>0},t.intersectsBox=function(e){return e.intersectsPlane(this)},t.intersectsSphere=function(e){return e.intersectsPlane(this)},t.coplanarPoint=function(e){return void 0===e&&(console.warn("THREE.Plane: .coplanarPoint() target is now required"),e=new lr),e.copy(this.normal).multiplyScalar(-this.constant)},t.applyMatrix4=function(e,t){var n=t||ui.getNormalMatrix(e),r=this.coplanarPoint(li).applyMatrix4(e),i=this.normal.applyMatrix3(n).normalize();return this.constant=-r.dot(i),this},t.translate=function(e){return this.constant-=e.dot(this.normal),this},t.equals=function(e){return e.normal.equals(this.normal)&&e.constant===this.constant},e}(),di=new lr,pi=new lr,fi=new lr,mi=new lr,vi=new lr,gi=new lr,yi=new lr,bi=new lr,Ai=new lr,wi=new lr,xi=function(){function e(e,t,n){this.a=void 0!==e?e:new lr,this.b=void 0!==t?t:new lr,this.c=void 0!==n?n:new lr}e.getNormal=function(e,t,n,r){void 0===r&&(console.warn("THREE.Triangle: .getNormal() target is now required"),r=new lr),r.subVectors(n,t),di.subVectors(e,t),r.cross(di);var i=r.lengthSq();return i>0?r.multiplyScalar(1/Math.sqrt(i)):r.set(0,0,0)},e.getBarycoord=function(e,t,n,r,i){di.subVectors(r,t),pi.subVectors(n,t),fi.subVectors(e,t);var o=di.dot(di),a=di.dot(pi),s=di.dot(fi),l=pi.dot(pi),c=pi.dot(fi),u=o*l-a*a;if(void 0===i&&(console.warn("THREE.Triangle: .getBarycoord() target is now required"),i=new lr),0===u)return i.set(-2,-1,-1);var h=1/u,d=(l*s-a*c)*h,p=(o*c-a*s)*h;return i.set(1-d-p,p,d)},e.containsPoint=function(e,t,n,r){return this.getBarycoord(e,t,n,r,mi),mi.x>=0&&mi.y>=0&&mi.x+mi.y<=1},e.getUV=function(e,t,n,r,i,o,a,s){return this.getBarycoord(e,t,n,r,mi),s.set(0,0),s.addScaledVector(i,mi.x),s.addScaledVector(o,mi.y),s.addScaledVector(a,mi.z),s},e.isFrontFacing=function(e,t,n,r){return di.subVectors(n,t),pi.subVectors(e,t),di.cross(pi).dot(r)<0};var t=e.prototype;return t.set=function(e,t,n){return this.a.copy(e),this.b.copy(t),this.c.copy(n),this},t.setFromPointsAndIndices=function(e,t,n,r){return this.a.copy(e[t]),this.b.copy(e[n]),this.c.copy(e[r]),this},t.clone=function(){return(new this.constructor).copy(this)},t.copy=function(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this},t.getArea=function(){return di.subVectors(this.c,this.b),pi.subVectors(this.a,this.b),.5*di.cross(pi).length()},t.getMidpoint=function(e){return void 0===e&&(console.warn("THREE.Triangle: .getMidpoint() target is now required"),e=new lr),e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},t.getNormal=function(t){return e.getNormal(this.a,this.b,this.c,t)},t.getPlane=function(e){return void 0===e&&(console.warn("THREE.Triangle: .getPlane() target is now required"),e=new hi),e.setFromCoplanarPoints(this.a,this.b,this.c)},t.getBarycoord=function(t,n){return e.getBarycoord(t,this.a,this.b,this.c,n)},t.getUV=function(t,n,r,i,o){return e.getUV(t,this.a,this.b,this.c,n,r,i,o)},t.containsPoint=function(t){return e.containsPoint(t,this.a,this.b,this.c)},t.isFrontFacing=function(t){return e.isFrontFacing(this.a,this.b,this.c,t)},t.intersectsBox=function(e){return e.intersectsTriangle(this)},t.closestPointToPoint=function(e,t){void 0===t&&(console.warn("THREE.Triangle: .closestPointToPoint() target is now required"),t=new lr);var n,r,i=this.a,o=this.b,a=this.c;vi.subVectors(o,i),gi.subVectors(a,i),bi.subVectors(e,i);var s=vi.dot(bi),l=gi.dot(bi);if(s<=0&&l<=0)return t.copy(i);Ai.subVectors(e,o);var c=vi.dot(Ai),u=gi.dot(Ai);if(c>=0&&u<=c)return t.copy(o);var h=s*u-c*l;if(h<=0&&s>=0&&c<=0)return n=s/(s-c),t.copy(i).addScaledVector(vi,n);wi.subVectors(e,a);var d=vi.dot(wi),p=gi.dot(wi);if(p>=0&&d<=p)return t.copy(a);var f=d*l-s*p;if(f<=0&&l>=0&&p<=0)return r=l/(l-p),t.copy(i).addScaledVector(gi,r);var m=c*p-d*u;if(m<=0&&u-c>=0&&d-p>=0)return yi.subVectors(a,o),r=(u-c)/(u-c+(d-p)),t.copy(o).addScaledVector(yi,r);var v=1/(m+f+h);return n=f*v,r=h*v,t.copy(i).addScaledVector(vi,n).addScaledVector(gi,r)},t.equals=function(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)},e}(),Ei={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Mi={h:0,s:0,l:0},_i={h:0,s:0,l:0};function Ti(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+6*(t-e)*(2/3-n):e}function Si(e){return e<.04045?.0773993808*e:Math.pow(.9478672986*e+.0521327014,2.4)}function Ci(e){return e<.0031308?12.92*e:1.055*Math.pow(e,.41666)-.055}var Li=function(){function e(e,t,n){return Object.defineProperty(this,"isColor",{value:!0}),void 0===t&&void 0===n?this.set(e):this.setRGB(e,t,n)}var t=e.prototype;return t.set=function(e){return e&&e.isColor?this.copy(e):"number"===typeof e?this.setHex(e):"string"===typeof e&&this.setStyle(e),this},t.setScalar=function(e){return this.r=e,this.g=e,this.b=e,this},t.setHex=function(e){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(255&e)/255,this},t.setRGB=function(e,t,n){return this.r=e,this.g=t,this.b=n,this},t.setHSL=function(e,t,n){if(e=Kn.euclideanModulo(e,1),t=Kn.clamp(t,0,1),n=Kn.clamp(n,0,1),0===t)this.r=this.g=this.b=n;else{var r=n<=.5?n*(1+t):n+t-n*t,i=2*n-r;this.r=Ti(i,r,e+1/3),this.g=Ti(i,r,e),this.b=Ti(i,r,e-1/3)}return this},t.setStyle=function(e){function t(t){void 0!==t&&parseFloat(t)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}var n;if(n=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(e)){var r,i=n[1],o=n[2];switch(i){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return this.r=Math.min(255,parseInt(r[1],10))/255,this.g=Math.min(255,parseInt(r[2],10))/255,this.b=Math.min(255,parseInt(r[3],10))/255,t(r[4]),this;if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return this.r=Math.min(100,parseInt(r[1],10))/100,this.g=Math.min(100,parseInt(r[2],10))/100,this.b=Math.min(100,parseInt(r[3],10))/100,t(r[4]),this;break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o)){var a=parseFloat(r[1])/360,s=parseInt(r[2],10)/100,l=parseInt(r[3],10)/100;return t(r[4]),this.setHSL(a,s,l)}}}else if(n=/^\#([A-Fa-f\d]+)$/.exec(e)){var c=n[1],u=c.length;if(3===u)return this.r=parseInt(c.charAt(0)+c.charAt(0),16)/255,this.g=parseInt(c.charAt(1)+c.charAt(1),16)/255,this.b=parseInt(c.charAt(2)+c.charAt(2),16)/255,this;if(6===u)return this.r=parseInt(c.charAt(0)+c.charAt(1),16)/255,this.g=parseInt(c.charAt(2)+c.charAt(3),16)/255,this.b=parseInt(c.charAt(4)+c.charAt(5),16)/255,this}return e&&e.length>0?this.setColorName(e):this},t.setColorName=function(e){var t=Ei[e];return void 0!==t?this.setHex(t):console.warn("THREE.Color: Unknown color "+e),this},t.clone=function(){return new this.constructor(this.r,this.g,this.b)},t.copy=function(e){return this.r=e.r,this.g=e.g,this.b=e.b,this},t.copyGammaToLinear=function(e,t){return void 0===t&&(t=2),this.r=Math.pow(e.r,t),this.g=Math.pow(e.g,t),this.b=Math.pow(e.b,t),this},t.copyLinearToGamma=function(e,t){void 0===t&&(t=2);var n=t>0?1/t:1;return this.r=Math.pow(e.r,n),this.g=Math.pow(e.g,n),this.b=Math.pow(e.b,n),this},t.convertGammaToLinear=function(e){return this.copyGammaToLinear(this,e),this},t.convertLinearToGamma=function(e){return this.copyLinearToGamma(this,e),this},t.copySRGBToLinear=function(e){return this.r=Si(e.r),this.g=Si(e.g),this.b=Si(e.b),this},t.copyLinearToSRGB=function(e){return this.r=Ci(e.r),this.g=Ci(e.g),this.b=Ci(e.b),this},t.convertSRGBToLinear=function(){return this.copySRGBToLinear(this),this},t.convertLinearToSRGB=function(){return this.copyLinearToSRGB(this),this},t.getHex=function(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0},t.getHexString=function(){return("000000"+this.getHex().toString(16)).slice(-6)},t.getHSL=function(e){void 0===e&&(console.warn("THREE.Color: .getHSL() target is now required"),e={h:0,s:0,l:0});var t,n,r=this.r,i=this.g,o=this.b,a=Math.max(r,i,o),s=Math.min(r,i,o),l=(s+a)/2;if(s===a)t=0,n=0;else{var c=a-s;switch(n=l<=.5?c/(a+s):c/(2-a-s),a){case r:t=(i-o)/c+(i<o?6:0);break;case i:t=(o-r)/c+2;break;case o:t=(r-i)/c+4}t/=6}return e.h=t,e.s=n,e.l=l,e},t.getStyle=function(){return"rgb("+(255*this.r|0)+","+(255*this.g|0)+","+(255*this.b|0)+")"},t.offsetHSL=function(e,t,n){return this.getHSL(Mi),Mi.h+=e,Mi.s+=t,Mi.l+=n,this.setHSL(Mi.h,Mi.s,Mi.l),this},t.add=function(e){return this.r+=e.r,this.g+=e.g,this.b+=e.b,this},t.addColors=function(e,t){return this.r=e.r+t.r,this.g=e.g+t.g,this.b=e.b+t.b,this},t.addScalar=function(e){return this.r+=e,this.g+=e,this.b+=e,this},t.sub=function(e){return this.r=Math.max(0,this.r-e.r),this.g=Math.max(0,this.g-e.g),this.b=Math.max(0,this.b-e.b),this},t.multiply=function(e){return this.r*=e.r,this.g*=e.g,this.b*=e.b,this},t.multiplyScalar=function(e){return this.r*=e,this.g*=e,this.b*=e,this},t.lerp=function(e,t){return this.r+=(e.r-this.r)*t,this.g+=(e.g-this.g)*t,this.b+=(e.b-this.b)*t,this},t.lerpColors=function(e,t,n){return this.r=e.r+(t.r-e.r)*n,this.g=e.g+(t.g-e.g)*n,this.b=e.b+(t.b-e.b)*n,this},t.lerpHSL=function(e,t){this.getHSL(Mi),e.getHSL(_i);var n=Kn.lerp(Mi.h,_i.h,t),r=Kn.lerp(Mi.s,_i.s,t),i=Kn.lerp(Mi.l,_i.l,t);return this.setHSL(n,r,i),this},t.equals=function(e){return e.r===this.r&&e.g===this.g&&e.b===this.b},t.fromArray=function(e,t){return void 0===t&&(t=0),this.r=e[t],this.g=e[t+1],this.b=e[t+2],this},t.toArray=function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this.r,e[t+1]=this.g,e[t+2]=this.b,e},t.fromBufferAttribute=function(e,t){return this.r=e.getX(t),this.g=e.getY(t),this.b=e.getZ(t),!0===e.normalized&&(this.r/=255,this.g/=255,this.b/=255),this},t.toJSON=function(){return this.getHex()},e}();Li.NAMES=Ei,Li.prototype.r=1,Li.prototype.g=1,Li.prototype.b=1;var Ri=function(){function e(e,t,n,r,i,o){void 0===o&&(o=0),this.a=e,this.b=t,this.c=n,this.normal=r&&r.isVector3?r:new lr,this.vertexNormals=Array.isArray(r)?r:[],this.color=i&&i.isColor?i:new Li,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=o}var t=e.prototype;return t.clone=function(){return(new this.constructor).copy(this)},t.copy=function(e){this.a=e.a,this.b=e.b,this.c=e.c,this.normal.copy(e.normal),this.color.copy(e.color),this.materialIndex=e.materialIndex;for(var t=0,n=e.vertexNormals.length;t<n;t++)this.vertexNormals[t]=e.vertexNormals[t].clone();for(var r=0,i=e.vertexColors.length;r<i;r++)this.vertexColors[r]=e.vertexColors[r].clone();return this},e}(),Pi=0;function Di(){Object.defineProperty(this,"id",{value:Pi++}),this.uuid=Kn.generateUUID(),this.name="",this.type="Material",this.fog=!0,this.blending=w,this.side=m,this.flatShading=!1,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=B,this.blendDst=F,this.blendEquation=T,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=W,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=_n,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=hn,this.stencilZFail=hn,this.stencilZPass=hn,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaTest=0,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0}function Oi(e){Di.call(this),this.type="MeshBasicMaterial",this.color=new Li(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Z,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.setValues(e)}Di.prototype=Object.assign(Object.create(qn.prototype),{constructor:Di,isMaterial:!0,onBeforeCompile:function(){},customProgramCacheKey:function(){return this.onBeforeCompile.toString()},setValues:function(e){if(void 0!==e)for(var t in e){var n=e[t];if(void 0!==n)if("shading"!==t){var r=this[t];void 0!==r?r&&r.isColor?r.set(n):r&&r.isVector3&&n&&n.isVector3?r.copy(n):this[t]=n:console.warn("THREE."+this.type+": '"+t+"' is not a property of this material.")}else console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=n===y;else console.warn("THREE.Material: '"+t+"' parameter is undefined.")}},toJSON:function(e){var t=void 0===e||"string"===typeof e;t&&(e={textures:{},images:{}});var n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function r(e){var t=[];for(var n in e){var r=e[n];delete r.metadata,t.push(r)}return t}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),this.sheen&&this.sheen.isColor&&(n.sheen=this.sheen.getHex()),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(e).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,n.reflectivity=this.reflectivity,n.refractionRatio=this.refractionRatio,void 0!==this.combine&&(n.combine=this.combine),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity)),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),void 0!==this.size&&(n.size=this.size),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==w&&(n.blending=this.blending),!0===this.flatShading&&(n.flatShading=this.flatShading),this.side!==m&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.morphTargets&&(n.morphTargets=!0),!0===this.morphNormals&&(n.morphNormals=!0),!0===this.skinning&&(n.skinning=!0),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),"{}"!==JSON.stringify(this.userData)&&(n.userData=this.userData),t){var i=r(e.textures),o=r(e.images);i.length>0&&(n.textures=i),o.length>0&&(n.images=o)}return n},clone:function(){return(new this.constructor).copy(this)},copy:function(e){this.name=e.name,this.fog=e.fog,this.blending=e.blending,this.side=e.side,this.flatShading=e.flatShading,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;var t=e.clippingPlanes,n=null;if(null!==t){var r=t.length;n=new Array(r);for(var i=0;i!==r;++i)n[i]=t[i].clone()}return this.clippingPlanes=n,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.premultipliedAlpha=e.premultipliedAlpha,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),Object.defineProperty(Di.prototype,"needsUpdate",{set:function(e){!0===e&&this.version++}}),Oi.prototype=Object.create(Di.prototype),Oi.prototype.constructor=Oi,Oi.prototype.isMeshBasicMaterial=!0,Oi.prototype.copy=function(e){return Di.prototype.copy.call(this,e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this};var Ii=new lr,Bi=new Jn;function Fi(e,t,n){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.name="",this.array=e,this.itemSize=t,this.count=void 0!==e?e.length/t:0,this.normalized=!0===n,this.usage=Tn,this.updateRange={offset:0,count:-1},this.version=0}function ki(e,t,n){Fi.call(this,new Int8Array(e),t,n)}function Ni(e,t,n){Fi.call(this,new Uint8Array(e),t,n)}function Ui(e,t,n){Fi.call(this,new Uint8ClampedArray(e),t,n)}function Hi(e,t,n){Fi.call(this,new Int16Array(e),t,n)}function Gi(e,t,n){Fi.call(this,new Uint16Array(e),t,n)}function zi(e,t,n){Fi.call(this,new Int32Array(e),t,n)}function ji(e,t,n){Fi.call(this,new Uint32Array(e),t,n)}function Vi(e,t,n){Fi.call(this,new Uint16Array(e),t,n)}function Wi(e,t,n){Fi.call(this,new Float32Array(e),t,n)}function qi(e,t,n){Fi.call(this,new Float64Array(e),t,n)}function Xi(e){if(0===e.length)return-1/0;for(var t=e[0],n=1,r=e.length;n<r;++n)e[n]>t&&(t=e[n]);return t}Object.defineProperty(Fi.prototype,"needsUpdate",{set:function(e){!0===e&&this.version++}}),Object.assign(Fi.prototype,{isBufferAttribute:!0,onUploadCallback:function(){},setUsage:function(e){return this.usage=e,this},copy:function(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this},copyAt:function(e,t,n){e*=this.itemSize,n*=t.itemSize;for(var r=0,i=this.itemSize;r<i;r++)this.array[e+r]=t.array[n+r];return this},copyArray:function(e){return this.array.set(e),this},copyColorsArray:function(e){for(var t=this.array,n=0,r=0,i=e.length;r<i;r++){var o=e[r];void 0===o&&(console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined",r),o=new Li),t[n++]=o.r,t[n++]=o.g,t[n++]=o.b}return this},copyVector2sArray:function(e){for(var t=this.array,n=0,r=0,i=e.length;r<i;r++){var o=e[r];void 0===o&&(console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined",r),o=new Jn),t[n++]=o.x,t[n++]=o.y}return this},copyVector3sArray:function(e){for(var t=this.array,n=0,r=0,i=e.length;r<i;r++){var o=e[r];void 0===o&&(console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined",r),o=new lr),t[n++]=o.x,t[n++]=o.y,t[n++]=o.z}return this},copyVector4sArray:function(e){for(var t=this.array,n=0,r=0,i=e.length;r<i;r++){var o=e[r];void 0===o&&(console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined",r),o=new ir),t[n++]=o.x,t[n++]=o.y,t[n++]=o.z,t[n++]=o.w}return this},applyMatrix3:function(e){if(2===this.itemSize)for(var t=0,n=this.count;t<n;t++)Bi.fromBufferAttribute(this,t),Bi.applyMatrix3(e),this.setXY(t,Bi.x,Bi.y);else if(3===this.itemSize)for(var r=0,i=this.count;r<i;r++)Ii.fromBufferAttribute(this,r),Ii.applyMatrix3(e),this.setXYZ(r,Ii.x,Ii.y,Ii.z);return this},applyMatrix4:function(e){for(var t=0,n=this.count;t<n;t++)Ii.x=this.getX(t),Ii.y=this.getY(t),Ii.z=this.getZ(t),Ii.applyMatrix4(e),this.setXYZ(t,Ii.x,Ii.y,Ii.z);return this},applyNormalMatrix:function(e){for(var t=0,n=this.count;t<n;t++)Ii.x=this.getX(t),Ii.y=this.getY(t),Ii.z=this.getZ(t),Ii.applyNormalMatrix(e),this.setXYZ(t,Ii.x,Ii.y,Ii.z);return this},transformDirection:function(e){for(var t=0,n=this.count;t<n;t++)Ii.x=this.getX(t),Ii.y=this.getY(t),Ii.z=this.getZ(t),Ii.transformDirection(e),this.setXYZ(t,Ii.x,Ii.y,Ii.z);return this},set:function(e,t){return void 0===t&&(t=0),this.array.set(e,t),this},getX:function(e){return this.array[e*this.itemSize]},setX:function(e,t){return this.array[e*this.itemSize]=t,this},getY:function(e){return this.array[e*this.itemSize+1]},setY:function(e,t){return this.array[e*this.itemSize+1]=t,this},getZ:function(e){return this.array[e*this.itemSize+2]},setZ:function(e,t){return this.array[e*this.itemSize+2]=t,this},getW:function(e){return this.array[e*this.itemSize+3]},setW:function(e,t){return this.array[e*this.itemSize+3]=t,this},setXY:function(e,t,n){return e*=this.itemSize,this.array[e+0]=t,this.array[e+1]=n,this},setXYZ:function(e,t,n,r){return e*=this.itemSize,this.array[e+0]=t,this.array[e+1]=n,this.array[e+2]=r,this},setXYZW:function(e,t,n,r,i){return e*=this.itemSize,this.array[e+0]=t,this.array[e+1]=n,this.array[e+2]=r,this.array[e+3]=i,this},onUpload:function(e){return this.onUploadCallback=e,this},clone:function(){return new this.constructor(this.array,this.itemSize).copy(this)},toJSON:function(){return{itemSize:this.itemSize,type:this.array.constructor.name,array:Array.prototype.slice.call(this.array),normalized:this.normalized}}}),ki.prototype=Object.create(Fi.prototype),ki.prototype.constructor=ki,Ni.prototype=Object.create(Fi.prototype),Ni.prototype.constructor=Ni,Ui.prototype=Object.create(Fi.prototype),Ui.prototype.constructor=Ui,Hi.prototype=Object.create(Fi.prototype),Hi.prototype.constructor=Hi,Gi.prototype=Object.create(Fi.prototype),Gi.prototype.constructor=Gi,zi.prototype=Object.create(Fi.prototype),zi.prototype.constructor=zi,ji.prototype=Object.create(Fi.prototype),ji.prototype.constructor=ji,Vi.prototype=Object.create(Fi.prototype),Vi.prototype.constructor=Vi,Vi.prototype.isFloat16BufferAttribute=!0,Wi.prototype=Object.create(Fi.prototype),Wi.prototype.constructor=Wi,qi.prototype=Object.create(Fi.prototype),qi.prototype.constructor=qi;var Yi={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:"undefined"!==typeof Uint8ClampedArray?Uint8ClampedArray:Uint8Array,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function Qi(e,t){return new Yi[e](t)}var Zi=0,Ki=new Fr,Ji=new si,$i=new lr,eo=new hr,to=new hr,no=new lr;function ro(){Object.defineProperty(this,"id",{value:Zi++}),this.uuid=Kn.generateUUID(),this.name="",this.type="BufferGeometry",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}ro.prototype=Object.assign(Object.create(qn.prototype),{constructor:ro,isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(e){return Array.isArray(e)?this.index=new(Xi(e)>65535?ji:Gi)(e,1):this.index=e,this},getAttribute:function(e){return this.attributes[e]},setAttribute:function(e,t){return this.attributes[e]=t,this},deleteAttribute:function(e){return delete this.attributes[e],this},hasAttribute:function(e){return void 0!==this.attributes[e]},addGroup:function(e,t,n){void 0===n&&(n=0),this.groups.push({start:e,count:t,materialIndex:n})},clearGroups:function(){this.groups=[]},setDrawRange:function(e,t){this.drawRange.start=e,this.drawRange.count=t},applyMatrix4:function(e){var t=this.attributes.position;void 0!==t&&(t.applyMatrix4(e),t.needsUpdate=!0);var n=this.attributes.normal;if(void 0!==n){var r=(new $n).getNormalMatrix(e);n.applyNormalMatrix(r),n.needsUpdate=!0}var i=this.attributes.tangent;return void 0!==i&&(i.transformDirection(e),i.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this},rotateX:function(e){return Ki.makeRotationX(e),this.applyMatrix4(Ki),this},rotateY:function(e){return Ki.makeRotationY(e),this.applyMatrix4(Ki),this},rotateZ:function(e){return Ki.makeRotationZ(e),this.applyMatrix4(Ki),this},translate:function(e,t,n){return Ki.makeTranslation(e,t,n),this.applyMatrix4(Ki),this},scale:function(e,t,n){return Ki.makeScale(e,t,n),this.applyMatrix4(Ki),this},lookAt:function(e){return Ji.lookAt(e),Ji.updateMatrix(),this.applyMatrix4(Ji.matrix),this},center:function(){return this.computeBoundingBox(),this.boundingBox.getCenter($i).negate(),this.translate($i.x,$i.y,$i.z),this},setFromPoints:function(e){for(var t=[],n=0,r=e.length;n<r;n++){var i=e[n];t.push(i.x,i.y,i.z||0)}return this.setAttribute("position",new Wi(t,3)),this},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new hr);var e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set "mesh.frustumCulled" to "false".',this),void this.boundingBox.set(new lr(-1/0,-1/0,-1/0),new lr(1/0,1/0,1/0));if(void 0!==e){if(this.boundingBox.setFromBufferAttribute(e),t)for(var n=0,r=t.length;n<r;n++){var i=t[n];eo.setFromBufferAttribute(i),this.morphTargetsRelative?(no.addVectors(this.boundingBox.min,eo.min),this.boundingBox.expandByPoint(no),no.addVectors(this.boundingBox.max,eo.max),this.boundingBox.expandByPoint(no)):(this.boundingBox.expandByPoint(eo.min),this.boundingBox.expandByPoint(eo.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new Sr);var e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set "mesh.frustumCulled" to "false".',this),void this.boundingSphere.set(new lr,1/0);if(e){var n=this.boundingSphere.center;if(eo.setFromBufferAttribute(e),t)for(var r=0,i=t.length;r<i;r++){var o=t[r];to.setFromBufferAttribute(o),this.morphTargetsRelative?(no.addVectors(eo.min,to.min),eo.expandByPoint(no),no.addVectors(eo.max,to.max),eo.expandByPoint(no)):(eo.expandByPoint(to.min),eo.expandByPoint(to.max))}eo.getCenter(n);for(var a=0,s=0,l=e.count;s<l;s++)no.fromBufferAttribute(e,s),a=Math.max(a,n.distanceToSquared(no));if(t)for(var c=0,u=t.length;c<u;c++)for(var h=t[c],d=this.morphTargetsRelative,p=0,f=h.count;p<f;p++)no.fromBufferAttribute(h,p),d&&($i.fromBufferAttribute(e,p),no.add($i)),a=Math.max(a,n.distanceToSquared(no));this.boundingSphere.radius=Math.sqrt(a),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}},computeFaceNormals:function(){},computeTangents:function(){var e=this.index,t=this.attributes;if(null!==e&&void 0!==t.position&&void 0!==t.normal&&void 0!==t.uv){var n=e.array,r=t.position.array,i=t.normal.array,o=t.uv.array,a=r.length/3;void 0===t.tangent&&this.setAttribute("tangent",new Fi(new Float32Array(4*a),4));for(var s=t.tangent.array,l=[],c=[],u=0;u<a;u++)l[u]=new lr,c[u]=new lr;var h=new lr,d=new lr,p=new lr,f=new Jn,m=new Jn,v=new Jn,g=new lr,y=new lr,b=this.groups;0===b.length&&(b=[{start:0,count:n.length}]);for(var A=0,w=b.length;A<w;++A)for(var x=b[A],E=x.start,M=E,_=E+x.count;M<_;M+=3)F(n[M+0],n[M+1],n[M+2]);for(var T=new lr,S=new lr,C=new lr,L=new lr,R=0,P=b.length;R<P;++R)for(var D=b[R],O=D.start,I=O,B=O+D.count;I<B;I+=3)k(n[I+0]),k(n[I+1]),k(n[I+2])}else console.error("THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");function F(e,t,n){h.fromArray(r,3*e),d.fromArray(r,3*t),p.fromArray(r,3*n),f.fromArray(o,2*e),m.fromArray(o,2*t),v.fromArray(o,2*n),d.sub(h),p.sub(h),m.sub(f),v.sub(f);var i=1/(m.x*v.y-v.x*m.y);isFinite(i)&&(g.copy(d).multiplyScalar(v.y).addScaledVector(p,-m.y).multiplyScalar(i),y.copy(p).multiplyScalar(m.x).addScaledVector(d,-v.x).multiplyScalar(i),l[e].add(g),l[t].add(g),l[n].add(g),c[e].add(y),c[t].add(y),c[n].add(y))}function k(e){C.fromArray(i,3*e),L.copy(C);var t=l[e];T.copy(t),T.sub(C.multiplyScalar(C.dot(t))).normalize(),S.crossVectors(L,t);var n=S.dot(c[e])<0?-1:1;s[4*e]=T.x,s[4*e+1]=T.y,s[4*e+2]=T.z,s[4*e+3]=n}},computeVertexNormals:function(){var e=this.index,t=this.getAttribute("position");if(void 0!==t){var n=this.getAttribute("normal");if(void 0===n)n=new Fi(new Float32Array(3*t.count),3),this.setAttribute("normal",n);else for(var r=0,i=n.count;r<i;r++)n.setXYZ(r,0,0,0);var o=new lr,a=new lr,s=new lr,l=new lr,c=new lr,u=new lr,h=new lr,d=new lr;if(e)for(var p=0,f=e.count;p<f;p+=3){var m=e.getX(p+0),v=e.getX(p+1),g=e.getX(p+2);o.fromBufferAttribute(t,m),a.fromBufferAttribute(t,v),s.fromBufferAttribute(t,g),h.subVectors(s,a),d.subVectors(o,a),h.cross(d),l.fromBufferAttribute(n,m),c.fromBufferAttribute(n,v),u.fromBufferAttribute(n,g),l.add(h),c.add(h),u.add(h),n.setXYZ(m,l.x,l.y,l.z),n.setXYZ(v,c.x,c.y,c.z),n.setXYZ(g,u.x,u.y,u.z)}else for(var y=0,b=t.count;y<b;y+=3)o.fromBufferAttribute(t,y+0),a.fromBufferAttribute(t,y+1),s.fromBufferAttribute(t,y+2),h.subVectors(s,a),d.subVectors(o,a),h.cross(d),n.setXYZ(y+0,h.x,h.y,h.z),n.setXYZ(y+1,h.x,h.y,h.z),n.setXYZ(y+2,h.x,h.y,h.z);this.normalizeNormals(),n.needsUpdate=!0}},merge:function(e,t){if(e&&e.isBufferGeometry){void 0===t&&(t=0,console.warn("THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge."));var n=this.attributes;for(var r in n)if(void 0!==e.attributes[r])for(var i=n[r].array,o=e.attributes[r],a=o.array,s=o.itemSize*t,l=Math.min(a.length,i.length-s),c=0,u=s;c<l;c++,u++)i[u]=a[c];return this}console.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.",e)},normalizeNormals:function(){for(var e=this.attributes.normal,t=0,n=e.count;t<n;t++)no.fromBufferAttribute(e,t),no.normalize(),e.setXYZ(t,no.x,no.y,no.z)},toNonIndexed:function(){function e(e,t){for(var n=e.array,r=e.itemSize,i=e.normalized,o=new n.constructor(t.length*r),a=0,s=0,l=0,c=t.length;l<c;l++){a=t[l]*r;for(var u=0;u<r;u++)o[s++]=n[a++]}return new Fi(o,r,i)}if(null===this.index)return console.warn("THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."),this;var t=new ro,n=this.index.array,r=this.attributes;for(var i in r){var o=e(r[i],n);t.setAttribute(i,o)}var a=this.morphAttributes;for(var s in a){for(var l=[],c=a[s],u=0,h=c.length;u<h;u++){var d=e(c[u],n);l.push(d)}t.morphAttributes[s]=l}t.morphTargetsRelative=this.morphTargetsRelative;for(var p=this.groups,f=0,m=p.length;f<m;f++){var v=p[f];t.addGroup(v.start,v.count,v.materialIndex)}return t},toJSON:function(){var e={metadata:{version:4.5,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(e.uuid=this.uuid,e.type=this.type,""!==this.name&&(e.name=this.name),Object.keys(this.userData).length>0&&(e.userData=this.userData),void 0!==this.parameters){var t=this.parameters;for(var n in t)void 0!==t[n]&&(e[n]=t[n]);return e}e.data={attributes:{}};var r=this.index;null!==r&&(e.data.index={type:r.array.constructor.name,array:Array.prototype.slice.call(r.array)});var i=this.attributes;for(var o in i){var a=i[o],s=a.toJSON(e.data);""!==a.name&&(s.name=a.name),e.data.attributes[o]=s}var l={},c=!1;for(var u in this.morphAttributes){for(var h=this.morphAttributes[u],d=[],p=0,f=h.length;p<f;p++){var m=h[p],v=m.toJSON(e.data);""!==m.name&&(v.name=m.name),d.push(v)}d.length>0&&(l[u]=d,c=!0)}c&&(e.data.morphAttributes=l,e.data.morphTargetsRelative=this.morphTargetsRelative);var g=this.groups;g.length>0&&(e.data.groups=JSON.parse(JSON.stringify(g)));var y=this.boundingSphere;return null!==y&&(e.data.boundingSphere={center:y.center.toArray(),radius:y.radius}),e},clone:function(){return(new ro).copy(this)},copy:function(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;var t={};this.name=e.name;var n=e.index;null!==n&&this.setIndex(n.clone(t));var r=e.attributes;for(var i in r){var o=r[i];this.setAttribute(i,o.clone(t))}var a=e.morphAttributes;for(var s in a){for(var l=[],c=a[s],u=0,h=c.length;u<h;u++)l.push(c[u].clone(t));this.morphAttributes[s]=l}this.morphTargetsRelative=e.morphTargetsRelative;for(var d=e.groups,p=0,f=d.length;p<f;p++){var m=d[p];this.addGroup(m.start,m.count,m.materialIndex)}var v=e.boundingBox;null!==v&&(this.boundingBox=v.clone());var g=e.boundingSphere;return null!==g&&(this.boundingSphere=g.clone()),this.drawRange.start=e.drawRange.start,this.drawRange.count=e.drawRange.count,this.userData=e.userData,this},dispose:function(){this.dispatchEvent({type:"dispose"})}});var io=new Fr,oo=new Br,ao=new Sr,so=new lr,lo=new lr,co=new lr,uo=new lr,ho=new lr,po=new lr,fo=new lr,mo=new lr,vo=new lr,go=new Jn,yo=new Jn,bo=new Jn,Ao=new lr,wo=new lr;function xo(e,t){void 0===e&&(e=new ro),void 0===t&&(t=new Oi),si.call(this),this.type="Mesh",this.geometry=e,this.material=t,this.updateMorphTargets()}function Eo(e,t,n,r,i,o,a,s){if(null===(t.side===v?r.intersectTriangle(a,o,i,!0,s):r.intersectTriangle(i,o,a,t.side!==g,s)))return null;wo.copy(s),wo.applyMatrix4(e.matrixWorld);var l=n.ray.origin.distanceTo(wo);return l<n.near||l>n.far?null:{distance:l,point:wo.clone(),object:e}}function Mo(e,t,n,r,i,o,a,s,l,c,u,h){so.fromBufferAttribute(i,c),lo.fromBufferAttribute(i,u),co.fromBufferAttribute(i,h);var d=e.morphTargetInfluences;if(t.morphTargets&&o&&d){fo.set(0,0,0),mo.set(0,0,0),vo.set(0,0,0);for(var p=0,f=o.length;p<f;p++){var m=d[p],v=o[p];0!==m&&(uo.fromBufferAttribute(v,c),ho.fromBufferAttribute(v,u),po.fromBufferAttribute(v,h),a?(fo.addScaledVector(uo,m),mo.addScaledVector(ho,m),vo.addScaledVector(po,m)):(fo.addScaledVector(uo.sub(so),m),mo.addScaledVector(ho.sub(lo),m),vo.addScaledVector(po.sub(co),m)))}so.add(fo),lo.add(mo),co.add(vo)}e.isSkinnedMesh&&(e.boneTransform(c,so),e.boneTransform(u,lo),e.boneTransform(h,co));var g=Eo(e,t,n,r,so,lo,co,Ao);if(g){s&&(go.fromBufferAttribute(s,c),yo.fromBufferAttribute(s,u),bo.fromBufferAttribute(s,h),g.uv=xi.getUV(Ao,so,lo,co,go,yo,bo,new Jn)),l&&(go.fromBufferAttribute(l,c),yo.fromBufferAttribute(l,u),bo.fromBufferAttribute(l,h),g.uv2=xi.getUV(Ao,so,lo,co,go,yo,bo,new Jn));var y=new Ri(c,u,h);xi.getNormal(so,lo,co,y.normal),g.face=y}return g}xo.prototype=Object.assign(Object.create(si.prototype),{constructor:xo,isMesh:!0,copy:function(e){return si.prototype.copy.call(this,e),void 0!==e.morphTargetInfluences&&(this.morphTargetInfluences=e.morphTargetInfluences.slice()),void 0!==e.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),this.material=e.material,this.geometry=e.geometry,this},updateMorphTargets:function(){var e=this.geometry;if(e.isBufferGeometry){var t=e.morphAttributes,n=Object.keys(t);if(n.length>0){var r=t[n[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(var i=0,o=r.length;i<o;i++){var a=r[i].name||String(i);this.morphTargetInfluences.push(0),this.morphTargetDictionary[a]=i}}}}else{var s=e.morphTargets;void 0!==s&&s.length>0&&console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}},raycast:function(e,t){var n,r=this.geometry,i=this.material,o=this.matrixWorld;if(void 0!==i&&(null===r.boundingSphere&&r.computeBoundingSphere(),ao.copy(r.boundingSphere),ao.applyMatrix4(o),!1!==e.ray.intersectsSphere(ao)&&(io.copy(o).invert(),oo.copy(e.ray).applyMatrix4(io),null===r.boundingBox||!1!==oo.intersectsBox(r.boundingBox))))if(r.isBufferGeometry){var a=r.index,s=r.attributes.position,l=r.morphAttributes.position,c=r.morphTargetsRelative,u=r.attributes.uv,h=r.attributes.uv2,d=r.groups,p=r.drawRange;if(null!==a)if(Array.isArray(i))for(var f=0,m=d.length;f<m;f++)for(var v=d[f],g=i[v.materialIndex],y=Math.max(v.start,p.start),b=Math.min(v.start+v.count,p.start+p.count);y<b;y+=3){var A=a.getX(y),w=a.getX(y+1),x=a.getX(y+2);(n=Mo(this,g,e,oo,s,l,c,u,h,A,w,x))&&(n.faceIndex=Math.floor(y/3),n.face.materialIndex=v.materialIndex,t.push(n))}else for(var E=Math.max(0,p.start),M=Math.min(a.count,p.start+p.count);E<M;E+=3){var _=a.getX(E),T=a.getX(E+1),S=a.getX(E+2);(n=Mo(this,i,e,oo,s,l,c,u,h,_,T,S))&&(n.faceIndex=Math.floor(E/3),t.push(n))}else if(void 0!==s)if(Array.isArray(i))for(var C=0,L=d.length;C<L;C++)for(var R=d[C],P=i[R.materialIndex],D=Math.max(R.start,p.start),O=Math.min(R.start+R.count,p.start+p.count);D<O;D+=3)(n=Mo(this,P,e,oo,s,l,c,u,h,D,D+1,D+2))&&(n.faceIndex=Math.floor(D/3),n.face.materialIndex=R.materialIndex,t.push(n));else for(var I=Math.max(0,p.start),B=Math.min(s.count,p.start+p.count);I<B;I+=3)(n=Mo(this,i,e,oo,s,l,c,u,h,I,I+1,I+2))&&(n.faceIndex=Math.floor(I/3),t.push(n))}else r.isGeometry&&console.error("THREE.Mesh.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}});var _o=function(e){function t(t,n,r,i,o,a){var s;void 0===t&&(t=1),void 0===n&&(n=1),void 0===r&&(r=1),void 0===i&&(i=1),void 0===o&&(o=1),void 0===a&&(a=1),(s=e.call(this)||this).type="BoxGeometry",s.parameters={width:t,height:n,depth:r,widthSegments:i,heightSegments:o,depthSegments:a};var l=zn(s);i=Math.floor(i),o=Math.floor(o),a=Math.floor(a);var c=[],u=[],h=[],d=[],p=0,f=0;function m(e,t,n,r,i,o,a,s,m,v,g){for(var y=o/m,b=a/v,A=o/2,w=a/2,x=s/2,E=m+1,M=v+1,_=0,T=0,S=new lr,C=0;C<M;C++)for(var L=C*b-w,R=0;R<E;R++){var P=R*y-A;S[e]=P*r,S[t]=L*i,S[n]=x,u.push(S.x,S.y,S.z),S[e]=0,S[t]=0,S[n]=s>0?1:-1,h.push(S.x,S.y,S.z),d.push(R/m),d.push(1-C/v),_+=1}for(var D=0;D<v;D++)for(var O=0;O<m;O++){var I=p+O+E*D,B=p+O+E*(D+1),F=p+(O+1)+E*(D+1),k=p+(O+1)+E*D;c.push(I,B,k),c.push(B,F,k),T+=6}l.addGroup(f,T,g),f+=T,p+=_}return m("z","y","x",-1,-1,r,n,t,a,o,0),m("z","y","x",1,-1,r,n,-t,a,o,1),m("x","z","y",1,1,t,r,n,i,a,2),m("x","z","y",1,-1,t,r,-n,i,a,3),m("x","y","z",1,-1,t,n,r,i,o,4),m("x","y","z",-1,-1,t,n,-r,i,o,5),s.setIndex(c),s.setAttribute("position",new Wi(u,3)),s.setAttribute("normal",new Wi(h,3)),s.setAttribute("uv",new Wi(d,2)),s}return Gn(t,e),t}(ro);function To(e){var t={};for(var n in e)for(var r in t[n]={},e[n]){var i=e[n][r];i&&(i.isColor||i.isMatrix3||i.isMatrix4||i.isVector2||i.isVector3||i.isVector4||i.isTexture)?t[n][r]=i.clone():Array.isArray(i)?t[n][r]=i.slice():t[n][r]=i}return t}function So(e){for(var t={},n=0;n<e.length;n++){var r=To(e[n]);for(var i in r)t[i]=r[i]}return t}var Co={clone:To,merge:So},Lo="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",Ro="void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}";function Po(e){Di.call(this),this.type="ShaderMaterial",this.defines={},this.uniforms={},this.vertexShader=Lo,this.fragmentShader=Ro,this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,void 0!==e&&(void 0!==e.attributes&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),this.setValues(e))}function Do(){si.call(this),this.type="Camera",this.matrixWorldInverse=new Fr,this.projectionMatrix=new Fr,this.projectionMatrixInverse=new Fr}function Oo(e,t,n,r){void 0===e&&(e=50),void 0===t&&(t=1),void 0===n&&(n=.1),void 0===r&&(r=2e3),Do.call(this),this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=n,this.far=r,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}Po.prototype=Object.create(Di.prototype),Po.prototype.constructor=Po,Po.prototype.isShaderMaterial=!0,Po.prototype.copy=function(e){return Di.prototype.copy.call(this,e),this.fragmentShader=e.fragmentShader,this.vertexShader=e.vertexShader,this.uniforms=To(e.uniforms),this.defines=Object.assign({},e.defines),this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.lights=e.lights,this.clipping=e.clipping,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.morphNormals=e.morphNormals,this.extensions=Object.assign({},e.extensions),this.glslVersion=e.glslVersion,this},Po.prototype.toJSON=function(e){var t=Di.prototype.toJSON.call(this,e);for(var n in t.glslVersion=this.glslVersion,t.uniforms={},this.uniforms){var r=this.uniforms[n].value;r&&r.isTexture?t.uniforms[n]={type:"t",value:r.toJSON(e).uuid}:r&&r.isColor?t.uniforms[n]={type:"c",value:r.getHex()}:r&&r.isVector2?t.uniforms[n]={type:"v2",value:r.toArray()}:r&&r.isVector3?t.uniforms[n]={type:"v3",value:r.toArray()}:r&&r.isVector4?t.uniforms[n]={type:"v4",value:r.toArray()}:r&&r.isMatrix3?t.uniforms[n]={type:"m3",value:r.toArray()}:r&&r.isMatrix4?t.uniforms[n]={type:"m4",value:r.toArray()}:t.uniforms[n]={value:r}}Object.keys(this.defines).length>0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader;var i={};for(var o in this.extensions)!0===this.extensions[o]&&(i[o]=!0);return Object.keys(i).length>0&&(t.extensions=i),t},Do.prototype=Object.assign(Object.create(si.prototype),{constructor:Do,isCamera:!0,copy:function(e,t){return si.prototype.copy.call(this,e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this},getWorldDirection:function(e){void 0===e&&(console.warn("THREE.Camera: .getWorldDirection() target is now required"),e=new lr),this.updateWorldMatrix(!0,!1);var t=this.matrixWorld.elements;return e.set(-t[8],-t[9],-t[10]).normalize()},updateMatrixWorld:function(e){si.prototype.updateMatrixWorld.call(this,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()},updateWorldMatrix:function(e,t){si.prototype.updateWorldMatrix.call(this,e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()},clone:function(){return(new this.constructor).copy(this)}}),Oo.prototype=Object.assign(Object.create(Do.prototype),{constructor:Oo,isPerspectiveCamera:!0,copy:function(e,t){return Do.prototype.copy.call(this,e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=null===e.view?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this},setFocalLength:function(e){var t=.5*this.getFilmHeight()/e;this.fov=2*Kn.RAD2DEG*Math.atan(t),this.updateProjectionMatrix()},getFocalLength:function(){var e=Math.tan(.5*Kn.DEG2RAD*this.fov);return.5*this.getFilmHeight()/e},getEffectiveFOV:function(){return 2*Kn.RAD2DEG*Math.atan(Math.tan(.5*Kn.DEG2RAD*this.fov)/this.zoom)},getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,1)},setViewOffset:function(e,t,n,r,i,o){this.aspect=e/t,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=r,this.view.width=i,this.view.height=o,this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()},updateProjectionMatrix:function(){var e=this.near,t=e*Math.tan(.5*Kn.DEG2RAD*this.fov)/this.zoom,n=2*t,r=this.aspect*n,i=-.5*r,o=this.view;if(null!==this.view&&this.view.enabled){var a=o.fullWidth,s=o.fullHeight;i+=o.offsetX*r/a,t-=o.offsetY*n/s,r*=o.width/a,n*=o.height/s}var l=this.filmOffset;0!==l&&(i+=e*l/this.getFilmWidth()),this.projectionMatrix.makePerspective(i,i+r,t,t-n,e,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()},toJSON:function(e){var t=si.prototype.toJSON.call(this,e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,null!==this.view&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}});var Io=90,Bo=1;function Fo(e,t,n){if(si.call(this),this.type="CubeCamera",!0===n.isWebGLCubeRenderTarget){this.renderTarget=n;var r=new Oo(Io,Bo,e,t);r.layers=this.layers,r.up.set(0,-1,0),r.lookAt(new lr(1,0,0)),this.add(r);var i=new Oo(Io,Bo,e,t);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new lr(-1,0,0)),this.add(i);var o=new Oo(Io,Bo,e,t);o.layers=this.layers,o.up.set(0,0,1),o.lookAt(new lr(0,1,0)),this.add(o);var a=new Oo(Io,Bo,e,t);a.layers=this.layers,a.up.set(0,0,-1),a.lookAt(new lr(0,-1,0)),this.add(a);var s=new Oo(Io,Bo,e,t);s.layers=this.layers,s.up.set(0,-1,0),s.lookAt(new lr(0,0,1)),this.add(s);var l=new Oo(Io,Bo,e,t);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new lr(0,0,-1)),this.add(l),this.update=function(e,t){null===this.parent&&this.updateMatrixWorld();var c=e.xr.enabled,u=e.getRenderTarget();e.xr.enabled=!1;var h=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,e.setRenderTarget(n,0),e.render(t,r),e.setRenderTarget(n,1),e.render(t,i),e.setRenderTarget(n,2),e.render(t,o),e.setRenderTarget(n,3),e.render(t,a),e.setRenderTarget(n,4),e.render(t,s),n.texture.generateMipmaps=h,e.setRenderTarget(n,5),e.render(t,l),e.setRenderTarget(u),e.xr.enabled=c}}else console.error("THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.")}function ko(e,t,n,r,i,o,a,s,l,c){e=void 0!==e?e:[],t=void 0!==t?t:ae,a=void 0!==a?a:Ne,nr.call(this,e,t,n,r,i,o,a,s,l,c),this.flipY=!1,this._needsFlipEnvMap=!0}Fo.prototype=Object.create(si.prototype),Fo.prototype.constructor=Fo,ko.prototype=Object.create(nr.prototype),ko.prototype.constructor=ko,ko.prototype.isCubeTexture=!0,Object.defineProperty(ko.prototype,"images",{get:function(){return this.image},set:function(e){this.image=e}});var No=function(e){function t(t,n,r){var i;return Number.isInteger(n)&&(console.warn("THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )"),n=r),i=e.call(this,t,t,n)||this,Object.defineProperty(zn(i),"isWebGLCubeRenderTarget",{value:!0}),n=n||{},i.texture=new ko(void 0,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),i.texture._needsFlipEnvMap=!1,i}Gn(t,e);var n=t.prototype;return n.fromEquirectangularTexture=function(e,t){this.texture.type=t.type,this.texture.format=Ue,this.texture.encoding=t.encoding,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;var n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include <begin_vertex>\n\t\t\t\t\t#include <project_vertex>\n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include <common>\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},r=new _o(5,5,5),i=new Po({name:"CubemapFromEquirect",uniforms:To(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:v,blending:A});i.uniforms.tEquirect.value=t;var o=new xo(r,i),a=t.minFilter;return t.minFilter===Ee&&(t.minFilter=Ae),new Fo(1,10,this).update(e,o),t.minFilter=a,o.geometry.dispose(),o.material.dispose(),this},n.clear=function(e,t,n,r){for(var i=e.getRenderTarget(),o=0;o<6;o++)e.setRenderTarget(this,o),e.clear(t,n,r);e.setRenderTarget(i)},t}(or);function Uo(e,t,n,r,i,o,a,s,l,c,u,h){nr.call(this,null,o,a,s,l,c,r,i,u,h),this.image={data:e||null,width:t||1,height:n||1},this.magFilter=void 0!==l?l:me,this.minFilter=void 0!==c?c:me,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}Uo.prototype=Object.create(nr.prototype),Uo.prototype.constructor=Uo,Uo.prototype.isDataTexture=!0;var Ho=new Sr,Go=new lr,zo=function(){function e(e,t,n,r,i,o){this.planes=[void 0!==e?e:new hi,void 0!==t?t:new hi,void 0!==n?n:new hi,void 0!==r?r:new hi,void 0!==i?i:new hi,void 0!==o?o:new hi]}var t=e.prototype;return t.set=function(e,t,n,r,i,o){var a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(n),a[3].copy(r),a[4].copy(i),a[5].copy(o),this},t.clone=function(){return(new this.constructor).copy(this)},t.copy=function(e){for(var t=this.planes,n=0;n<6;n++)t[n].copy(e.planes[n]);return this},t.setFromProjectionMatrix=function(e){var t=this.planes,n=e.elements,r=n[0],i=n[1],o=n[2],a=n[3],s=n[4],l=n[5],c=n[6],u=n[7],h=n[8],d=n[9],p=n[10],f=n[11],m=n[12],v=n[13],g=n[14],y=n[15];return t[0].setComponents(a-r,u-s,f-h,y-m).normalize(),t[1].setComponents(a+r,u+s,f+h,y+m).normalize(),t[2].setComponents(a+i,u+l,f+d,y+v).normalize(),t[3].setComponents(a-i,u-l,f-d,y-v).normalize(),t[4].setComponents(a-o,u-c,f-p,y-g).normalize(),t[5].setComponents(a+o,u+c,f+p,y+g).normalize(),this},t.intersectsObject=function(e){var t=e.geometry;return null===t.boundingSphere&&t.computeBoundingSphere(),Ho.copy(t.boundingSphere).applyMatrix4(e.matrixWorld),this.intersectsSphere(Ho)},t.intersectsSprite=function(e){return Ho.center.set(0,0,0),Ho.radius=.7071067811865476,Ho.applyMatrix4(e.matrixWorld),this.intersectsSphere(Ho)},t.intersectsSphere=function(e){for(var t=this.planes,n=e.center,r=-e.radius,i=0;i<6;i++)if(t[i].distanceToPoint(n)<r)return!1;return!0},t.intersectsBox=function(e){for(var t=this.planes,n=0;n<6;n++){var r=t[n];if(Go.x=r.normal.x>0?e.max.x:e.min.x,Go.y=r.normal.y>0?e.max.y:e.min.y,Go.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(Go)<0)return!1}return!0},t.containsPoint=function(e){for(var t=this.planes,n=0;n<6;n++)if(t[n].distanceToPoint(e)<0)return!1;return!0},e}();function jo(){var e=null,t=!1,n=null,r=null;function i(t,o){n(t,o),r=e.requestAnimationFrame(i)}return{start:function(){!0!==t&&null!==n&&(r=e.requestAnimationFrame(i),t=!0)},stop:function(){e.cancelAnimationFrame(r),t=!1},setAnimationLoop:function(e){n=e},setContext:function(t){e=t}}}function Vo(e,t){var n=t.isWebGL2,r=new WeakMap;function i(t,r){var i=t.array,o=t.usage,a=e.createBuffer();e.bindBuffer(r,a),e.bufferData(r,i,o),t.onUploadCallback();var s=5126;return i instanceof Float32Array?s=5126:i instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):i instanceof Uint16Array?t.isFloat16BufferAttribute?n?s=5131:console.warn("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2."):s=5123:i instanceof Int16Array?s=5122:i instanceof Uint32Array?s=5125:i instanceof Int32Array?s=5124:i instanceof Int8Array?s=5120:i instanceof Uint8Array&&(s=5121),{buffer:a,type:s,bytesPerElement:i.BYTES_PER_ELEMENT,version:t.version}}function o(t,r,i){var o=r.array,a=r.updateRange;e.bindBuffer(i,t),-1===a.count?e.bufferSubData(i,0,o):(n?e.bufferSubData(i,a.offset*o.BYTES_PER_ELEMENT,o,a.offset,a.count):e.bufferSubData(i,a.offset*o.BYTES_PER_ELEMENT,o.subarray(a.offset,a.offset+a.count)),a.count=-1)}function a(e){return e.isInterleavedBufferAttribute&&(e=e.data),r.get(e)}function s(t){t.isInterleavedBufferAttribute&&(t=t.data);var n=r.get(t);n&&(e.deleteBuffer(n.buffer),r.delete(t))}function l(e,t){if(e.isGLBufferAttribute){var n=r.get(e);(!n||n.version<e.version)&&r.set(e,{buffer:e.buffer,type:e.type,bytesPerElement:e.elementSize,version:e.version})}else{e.isInterleavedBufferAttribute&&(e=e.data);var a=r.get(e);void 0===a?r.set(e,i(e,t)):a.version<e.version&&(o(a.buffer,e,t),a.version=e.version)}}return{get:a,remove:s,update:l}}var Wo=function(e){function t(t,n,r,i){var o;void 0===t&&(t=1),void 0===n&&(n=1),void 0===r&&(r=1),void 0===i&&(i=1),(o=e.call(this)||this).type="PlaneGeometry",o.parameters={width:t,height:n,widthSegments:r,heightSegments:i};for(var a=t/2,s=n/2,l=Math.floor(r),c=Math.floor(i),u=l+1,h=c+1,d=t/l,p=n/c,f=[],m=[],v=[],g=[],y=0;y<h;y++)for(var b=y*p-s,A=0;A<u;A++){var w=A*d-a;m.push(w,-b,0),v.push(0,0,1),g.push(A/l),g.push(1-y/c)}for(var x=0;x<c;x++)for(var E=0;E<l;E++){var M=E+u*x,_=E+u*(x+1),T=E+1+u*(x+1),S=E+1+u*x;f.push(M,_,S),f.push(_,T,S)}return o.setIndex(f),o.setAttribute("position",new Wi(m,3)),o.setAttribute("normal",new Wi(v,3)),o.setAttribute("uv",new Wi(g,2)),o}return Gn(t,e),t}(ro),qo={alphamap_fragment:"#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n#endif",alphamap_pars_fragment:"#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",alphatest_fragment:"#ifdef ALPHATEST\n\tif ( diffuseColor.a < ALPHATEST ) discard;\n#endif",aomap_fragment:"#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\n\t#endif\n#endif",aomap_pars_fragment:"#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif",begin_vertex:"vec3 transformed = vec3( position );",beginnormal_vertex:"vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif",bsdfs:"vec2 integrateSpecularBRDF( const in float dotNV, const in float roughness ) {\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\treturn vec2( -1.04, 1.04 ) * a004 + r.zw;\n}\nfloat punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\tif( cutoffDistance > 0.0 ) {\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t}\n\treturn distanceFalloff;\n#else\n\tif( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t}\n\treturn 1.0;\n#endif\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\n}\nvec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );\n\tvec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;\n\treturn Fr * fresnel + F0;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( incidentLight.direction + viewDir );\n\tfloat dotNL = saturate( dot( normal, incidentLight.direction ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( G * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nvec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\treturn specularColor * brdf.x + brdf.y;\n}\nvoid BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tvec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\tvec3 FssEss = F * brdf.x + brdf.y;\n\tfloat Ess = brdf.x + brdf.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie(float roughness, float NoH) {\n\tfloat invAlpha = 1.0 / roughness;\n\tfloat cos2h = NoH * NoH;\n\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\treturn (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);\n}\nfloat V_Neubelt(float NoV, float NoL) {\n\treturn saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));\n}\nvec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {\n\tvec3 N = geometry.normal;\n\tvec3 V = geometry.viewDir;\n\tvec3 H = normalize( V + L );\n\tfloat dotNH = saturate( dot( N, H ) );\n\treturn specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );\n}\n#endif",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\n\t\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 );\n\t\tfDet *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif",clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#ifdef USE_COLOR\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor.xyz *= color.xyz;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement(a) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract(sin(sn) * c);\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance = dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_maxMipLevel 8.0\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_maxTileSize 256.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\tfloat texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize );\n\t\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 );\n\t\tvec2 f = fract( uv );\n\t\tuv += 0.5 - f;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tif ( mipInt < cubeUV_maxMipLevel ) {\n\t\t\tuv.y += 2.0 * cubeUV_maxTileSize;\n\t\t}\n\t\tuv.y += filterInt * 2.0 * cubeUV_minTileSize;\n\t\tuv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize );\n\t\tuv *= texelSize;\n\t\tvec3 tl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.x += texelSize;\n\t\tvec3 tr = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.y += texelSize;\n\t\tvec3 br = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.x -= texelSize;\n\t\tvec3 bl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tvec3 tm = mix( tl, tr, f.x );\n\t\tvec3 bm = mix( bl, br, f.x );\n\t\treturn mix( tm, bm, f.y );\n\t}\n\t#define r0 1.0\n\t#define v0 0.339\n\t#define m0 - 2.0\n\t#define r1 0.8\n\t#define v1 0.276\n\t#define m1 - 1.0\n\t#define r4 0.4\n\t#define v4 0.046\n\t#define m4 2.0\n\t#define r5 0.305\n\t#define v5 0.016\n\t#define m5 3.0\n\t#define r6 0.21\n\t#define v6 0.0038\n\t#define m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= r1 ) {\n\t\t\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\n\t\t} else if ( roughness >= r4 ) {\n\t\t\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\n\t\t} else if ( roughness >= r5 ) {\n\t\t\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\n\t\t} else if ( roughness >= r6 ) {\n\t\t\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 RGBEToLinear( in vec4 value ) {\n\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n\tfloat maxComponent = max( max( value.r, value.g ), value.b );\n\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM = ceil( M * 255.0 ) / 255.0;\n\treturn vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat D = max( maxRange / maxRGB, 1.0 );\n\tD = clamp( floor( D ) / 255.0, 0.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value ) {\n\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\n\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\n\tvec4 vResult;\n\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w = fract( Le );\n\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n\tfloat Le = value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\n\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\n\treturn vec4( max( vRGB, 0.0 ), 1.0 );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifndef ENVMAP_TYPE_CUBE_UV\n\t\tenvColor = envMapTexelToLinear( envColor );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform int maxMipLevel;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\t#ifdef ENVMAP_MODE_REFRACTION\n\t\tuniform float refractionRatio;\n\t#endif\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor = vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}\n\tfloat getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar = float( maxMIPLevel );\n\t\tfloat sigma = PI * roughness * roughness / ( 1.0 + roughness );\n\t\tfloat desiredMIPLevel = maxMIPLevelScalar + log2( sigma );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( -viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( -viewDir, normal, refractionRatio );\n\t\t#endif\n\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\n\t}\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tfogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float fogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float fogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn texture2D( gradientMap, coord ).rgb;\n\t#else\n\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\treflectedLight.indirectDiffuse += PI * lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_vertex:"vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\nvIndirectFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n\tvIndirectBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry );\n#ifdef DOUBLE_SIDED\n\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\n\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry );\n#endif\n#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in GeometricContext geometry ) {\n\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treturn irradiance;\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color = directionalLight.color;\n\t\tdirectLight.direction = directionalLight.direction;\n\t\tdirectLight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tdirectLight.color = pointLight.color;\n\t\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tfloat angleCos = dot( directLight.direction, spotLight.direction );\n\t\tif ( angleCos > spotLight.coneCos ) {\n\t\t\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color = spotLight.color;\n\t\t\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible = true;\n\t\t} else {\n\t\t\tdirectLight.color = vec3( 0.0 );\n\t\t\tdirectLight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\n\t\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance *= PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon\n#define Material_LightProbeLOD( material )\t(0)",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.specularRoughness = max( roughnessFactor, 0.0525 );material.specularRoughness += geometryRoughness;\nmaterial.specularRoughness = min( material.specularRoughness, 1.0 );\n#ifdef REFLECTIVITY\n\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#endif\n#ifdef CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheen;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat specularRoughness;\n\tvec3 specularColor;\n#ifdef CLEARCOAT\n\tfloat clearcoat;\n\tfloat clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tvec3 sheenColor;\n#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearcoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.specularRoughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3(\t\t0, 1,\t\t0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = ccDotNL * directLight.color;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tccIrradiance *= PI;\n\t\t#endif\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t\treflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(\n\t\t\tmaterial.specularRoughness,\n\t\t\tdirectLight.direction,\n\t\t\tgeometry,\n\t\t\tmaterial.sheenColor\n\t\t);\n\t#else\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);\n\t#endif\n\treflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t\tfloat ccDotNL = ccDotNV;\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\tfloat clearcoatInv = 1.0 - clearcoatDHR;\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\tBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\n\treflectedLight.indirectSpecular += clearcoatInv * radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );\n\t#ifdef CLEARCOAT\n\t\tclearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n#endif\n#ifdef USE_MAP\n\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tuniform mat3 uvTransform;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifndef USE_MORPHNORMALS\n\t\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\t\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t#endif\n#endif",normal_fragment_begin:"#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n\t#ifdef USE_TANGENT\n\t\tvec3 tangent = normalize( vTangent );\n\t\tvec3 bitangent = normalize( vBitangent );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\ttangent = tangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t\tbitangent = bitangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t#endif\n\t\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\t\t#endif\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef OBJECTSPACE_NORMALMAP\n\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( TANGENTSPACE_NORMALMAP )\n\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\t#ifdef USE_TANGENT\n\t\tnormal = normalize( vTBN * mapN );\n\t#else\n\t\tnormal = perturbNormal2Arb( -vViewPosition, normal, mapN );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN ) {\n\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tfloat scale = sign( st1.t * st0.s - st0.t * st1.s );\n\t\tvec3 S = normalize( ( q0 * st1.t - q1 * st0.t ) * scale );\n\t\tvec3 T = normalize( ( - q0 * st1.s + q1 * st0.s ) * scale );\n\t\tvec3 N = normalize( surf_norm );\n\t\tmat3 tsn = mat3( S, T, N );\n\t\tmapN.xy *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\treturn normalize( tsn * mapN );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\t#ifdef USE_TANGENT\n\t\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\n\t#else\n\t\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN );\n\t#endif\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ));\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w);\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t\tf.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \n\t\t\t\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t\tf.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\n\t\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\tvec4 shadowWorldPosition;\n\t#endif\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform highp sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3(\t1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108,\t1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605,\t1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmissionmap_fragment:"#ifdef USE_TRANSMISSIONMAP\n\ttotalTransmission *= texture2D( transmissionMap, vUv ).r;\n#endif",transmissionmap_pars_fragment:"#ifdef USE_TRANSMISSIONMAP\n\tuniform sampler2D transmissionMap;\n#endif",uv_pars_fragment:"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\n\tvarying vec2 vUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\t#ifdef UVS_VERTEX_ONLY\n\t\tvec2 vUv;\n\t#else\n\t\tvarying vec2 vUv;\n\t#endif\n\tuniform mat3 uvTransform;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif",uv2_pars_fragment:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif",uv2_pars_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n\tuniform mat3 uv2Transform;\n#endif",uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_frag:"uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",cube_frag:"#include <envmap_common_pars_fragment>\nuniform float opacity;\nvarying vec3 vWorldDirection;\n#include <cube_uv_reflection_fragment>\nvoid main() {\n\tvec3 vReflect = vWorldDirection;\n\t#include <envmap_fragment>\n\tgl_FragColor = envColor;\n\tgl_FragColor.a *= opacity;\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",cube_vert:"varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <logdepthbuf_fragment>\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",depth_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvHighPrecisionZW = gl_Position.zw;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main () {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\tvWorldPosition = worldPosition.xyz;\n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tvec4 texColor = texture2D( tEquirect, sampleUV );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <color_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include <color_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshbasic_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_ENVMAP\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}",meshlambert_frag:"uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <fog_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <emissivemap_fragment>\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\n\t#else\n\t\treflectedLight.indirectDiffuse += vIndirectFront;\n\t#endif\n\t#include <lightmap_fragment>\n\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <lights_lambert_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t\tmatcapColor = matcapTexelToLinear( matcapColor );\n\t#else\n\t\tvec4 matcapColor = vec4( 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <color_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#ifndef FLAT_SHADED\n\t\tvNormal = normalize( transformedNormal );\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n\tvViewPosition = - mvPosition.xyz;\n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <gradientmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <lights_toon_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_toon_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <lights_phong_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_phong_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define REFLECTIVITY\n\t#define CLEARCOAT\n\t#define TRANSMISSION\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef TRANSMISSION\n\tuniform float transmission;\n#endif\n#ifdef REFLECTIVITY\n\tuniform float reflectivity;\n#endif\n#ifdef CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheen;\n#endif\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <transmissionmap_pars_fragment>\n#include <bsdfs>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <lights_physical_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#ifdef TRANSMISSION\n\t\tfloat totalTransmission = transmission;\n\t#endif\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <roughnessmap_fragment>\n\t#include <metalnessmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <transmissionmap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#ifdef TRANSMISSION\n\t\tdiffuseColor.a *= mix( saturate( 1. - totalTransmission + linearToRelativeLuminance( reflectedLight.directSpecular + reflectedLight.indirectSpecular ) ), 1.0, metalness );\n\t#endif\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",normal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n}",normal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",points_vert:"uniform float size;\nuniform float scale;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <color_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <fog_vertex>\n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}",shadow_vert:"#include <common>\n#include <fog_pars_vertex>\n#include <shadowmap_pars_vertex>\nvoid main() {\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include <common>\n#include <uv_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}"},Xo={common:{diffuse:{value:new Li(15658734)},opacity:{value:1},map:{value:null},uvTransform:{value:new $n},uv2Transform:{value:new $n},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new Jn(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Li(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Li(15658734)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},uvTransform:{value:new $n}},sprite:{diffuse:{value:new Li(15658734)},opacity:{value:1},center:{value:new Jn(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},uvTransform:{value:new $n}}},Yo={basic:{uniforms:So([Xo.common,Xo.specularmap,Xo.envmap,Xo.aomap,Xo.lightmap,Xo.fog]),vertexShader:qo.meshbasic_vert,fragmentShader:qo.meshbasic_frag},lambert:{uniforms:So([Xo.common,Xo.specularmap,Xo.envmap,Xo.aomap,Xo.lightmap,Xo.emissivemap,Xo.fog,Xo.lights,{emissive:{value:new Li(0)}}]),vertexShader:qo.meshlambert_vert,fragmentShader:qo.meshlambert_frag},phong:{uniforms:So([Xo.common,Xo.specularmap,Xo.envmap,Xo.aomap,Xo.lightmap,Xo.emissivemap,Xo.bumpmap,Xo.normalmap,Xo.displacementmap,Xo.fog,Xo.lights,{emissive:{value:new Li(0)},specular:{value:new Li(1118481)},shininess:{value:30}}]),vertexShader:qo.meshphong_vert,fragmentShader:qo.meshphong_frag},standard:{uniforms:So([Xo.common,Xo.envmap,Xo.aomap,Xo.lightmap,Xo.emissivemap,Xo.bumpmap,Xo.normalmap,Xo.displacementmap,Xo.roughnessmap,Xo.metalnessmap,Xo.fog,Xo.lights,{emissive:{value:new Li(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:qo.meshphysical_vert,fragmentShader:qo.meshphysical_frag},toon:{uniforms:So([Xo.common,Xo.aomap,Xo.lightmap,Xo.emissivemap,Xo.bumpmap,Xo.normalmap,Xo.displacementmap,Xo.gradientmap,Xo.fog,Xo.lights,{emissive:{value:new Li(0)}}]),vertexShader:qo.meshtoon_vert,fragmentShader:qo.meshtoon_frag},matcap:{uniforms:So([Xo.common,Xo.bumpmap,Xo.normalmap,Xo.displacementmap,Xo.fog,{matcap:{value:null}}]),vertexShader:qo.meshmatcap_vert,fragmentShader:qo.meshmatcap_frag},points:{uniforms:So([Xo.points,Xo.fog]),vertexShader:qo.points_vert,fragmentShader:qo.points_frag},dashed:{uniforms:So([Xo.common,Xo.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:qo.linedashed_vert,fragmentShader:qo.linedashed_frag},depth:{uniforms:So([Xo.common,Xo.displacementmap]),vertexShader:qo.depth_vert,fragmentShader:qo.depth_frag},normal:{uniforms:So([Xo.common,Xo.bumpmap,Xo.normalmap,Xo.displacementmap,{opacity:{value:1}}]),vertexShader:qo.normal_vert,fragmentShader:qo.normal_frag},sprite:{uniforms:So([Xo.sprite,Xo.fog]),vertexShader:qo.sprite_vert,fragmentShader:qo.sprite_frag},background:{uniforms:{uvTransform:{value:new $n},t2D:{value:null}},vertexShader:qo.background_vert,fragmentShader:qo.background_frag},cube:{uniforms:So([Xo.envmap,{opacity:{value:1}}]),vertexShader:qo.cube_vert,fragmentShader:qo.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:qo.equirect_vert,fragmentShader:qo.equirect_frag},distanceRGBA:{uniforms:So([Xo.common,Xo.displacementmap,{referencePosition:{value:new lr},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:qo.distanceRGBA_vert,fragmentShader:qo.distanceRGBA_frag},shadow:{uniforms:So([Xo.lights,Xo.fog,{color:{value:new Li(0)},opacity:{value:1}}]),vertexShader:qo.shadow_vert,fragmentShader:qo.shadow_frag}};function Qo(e,t,n,r,i){var o,a,s=new Li(0),l=0,c=null,u=0,h=null;function d(n,i,d,f){var g=!0===i.isScene?i.background:null;g&&g.isTexture&&(g=t.get(g));var y=e.xr,b=y.getSession&&y.getSession();b&&"additive"===b.environmentBlendMode&&(g=null),null===g?p(s,l):g&&g.isColor&&(p(g,1),f=!0),(e.autoClear||f)&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),g&&(g.isCubeTexture||g.isWebGLCubeRenderTarget||g.mapping===ue)?(void 0===a&&((a=new xo(new _o(1,1,1),new Po({name:"BackgroundCubeMaterial",uniforms:To(Yo.cube.uniforms),vertexShader:Yo.cube.vertexShader,fragmentShader:Yo.cube.fragmentShader,side:v,depthTest:!1,depthWrite:!1,fog:!1}))).geometry.deleteAttribute("normal"),a.geometry.deleteAttribute("uv"),a.onBeforeRender=function(e,t,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(a.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(a)),g.isWebGLCubeRenderTarget&&(g=g.texture),a.material.uniforms.envMap.value=g,a.material.uniforms.flipEnvMap.value=g.isCubeTexture&&g._needsFlipEnvMap?-1:1,c===g&&u===g.version&&h===e.toneMapping||(a.material.needsUpdate=!0,c=g,u=g.version,h=e.toneMapping),n.unshift(a,a.geometry,a.material,0,0,null)):g&&g.isTexture&&(void 0===o&&((o=new xo(new Wo(2,2),new Po({name:"BackgroundMaterial",uniforms:To(Yo.background.uniforms),vertexShader:Yo.background.vertexShader,fragmentShader:Yo.background.fragmentShader,side:m,depthTest:!1,depthWrite:!1,fog:!1}))).geometry.deleteAttribute("normal"),Object.defineProperty(o.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(o)),o.material.uniforms.t2D.value=g,!0===g.matrixAutoUpdate&&g.updateMatrix(),o.material.uniforms.uvTransform.value.copy(g.matrix),c===g&&u===g.version&&h===e.toneMapping||(o.material.needsUpdate=!0,c=g,u=g.version,h=e.toneMapping),n.unshift(o,o.geometry,o.material,0,0,null))}function p(e,t){n.buffers.color.setClear(e.r,e.g,e.b,t,i)}return{getClearColor:function(){return s},setClearColor:function(e,t){void 0===t&&(t=1),s.set(e),p(s,l=t)},getClearAlpha:function(){return l},setClearAlpha:function(e){p(s,l=e)},render:d}}function Zo(e,t,n,r){var i=e.getParameter(34921),o=r.isWebGL2?null:t.get("OES_vertex_array_object"),a=r.isWebGL2||null!==o,s={},l=m(null),c=l;function u(t,r,i,o,s){var l=!1;if(a){var u=f(o,i,r);c!==u&&d((c=u).object),(l=v(o,s))&&g(o,s)}else{var h=!0===r.wireframe;c.geometry===o.id&&c.program===i.id&&c.wireframe===h||(c.geometry=o.id,c.program=i.id,c.wireframe=h,l=!0)}!0===t.isInstancedMesh&&(l=!0),null!==s&&n.update(s,34963),l&&(E(t,r,i,o),null!==s&&e.bindBuffer(34963,n.get(s).buffer))}function h(){return r.isWebGL2?e.createVertexArray():o.createVertexArrayOES()}function d(t){return r.isWebGL2?e.bindVertexArray(t):o.bindVertexArrayOES(t)}function p(t){return r.isWebGL2?e.deleteVertexArray(t):o.deleteVertexArrayOES(t)}function f(e,t,n){var r=!0===n.wireframe,i=s[e.id];void 0===i&&(i={},s[e.id]=i);var o=i[t.id];void 0===o&&(o={},i[t.id]=o);var a=o[r];return void 0===a&&(a=m(h()),o[r]=a),a}function m(e){for(var t=[],n=[],r=[],o=0;o<i;o++)t[o]=0,n[o]=0,r[o]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:t,enabledAttributes:n,attributeDivisors:r,object:e,attributes:{},index:null}}function v(e,t){var n=c.attributes,r=e.attributes,i=0;for(var o in r){var a=n[o],s=r[o];if(void 0===a)return!0;if(a.attribute!==s)return!0;if(a.data!==s.data)return!0;i++}return c.attributesNum!==i||c.index!==t}function g(e,t){var n={},r=e.attributes,i=0;for(var o in r){var a=r[o],s={};s.attribute=a,a.data&&(s.data=a.data),n[o]=s,i++}c.attributes=n,c.attributesNum=i,c.index=t}function y(){for(var e=c.newAttributes,t=0,n=e.length;t<n;t++)e[t]=0}function b(e){A(e,0)}function A(n,i){var o=c.newAttributes,a=c.enabledAttributes,s=c.attributeDivisors;o[n]=1,0===a[n]&&(e.enableVertexAttribArray(n),a[n]=1),s[n]!==i&&((r.isWebGL2?e:t.get("ANGLE_instanced_arrays"))[r.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](n,i),s[n]=i)}function w(){for(var t=c.newAttributes,n=c.enabledAttributes,r=0,i=n.length;r<i;r++)n[r]!==t[r]&&(e.disableVertexAttribArray(r),n[r]=0)}function x(t,n,i,o,a,s){!0!==r.isWebGL2||5124!==i&&5125!==i?e.vertexAttribPointer(t,n,i,o,a,s):e.vertexAttribIPointer(t,n,i,a,s)}function E(i,o,a,s){if(!1!==r.isWebGL2||!i.isInstancedMesh&&!s.isInstancedBufferGeometry||null!==t.get("ANGLE_instanced_arrays")){y();var l=s.attributes,c=a.getAttributes(),u=o.defaultAttributeValues;for(var h in c){var d=c[h];if(d>=0){var p=l[h];if(void 0!==p){var f=p.normalized,m=p.itemSize,v=n.get(p);if(void 0===v)continue;var g=v.buffer,E=v.type,M=v.bytesPerElement;if(p.isInterleavedBufferAttribute){var _=p.data,T=_.stride,S=p.offset;_&&_.isInstancedInterleavedBuffer?(A(d,_.meshPerAttribute),void 0===s._maxInstanceCount&&(s._maxInstanceCount=_.meshPerAttribute*_.count)):b(d),e.bindBuffer(34962,g),x(d,m,E,f,T*M,S*M)}else p.isInstancedBufferAttribute?(A(d,p.meshPerAttribute),void 0===s._maxInstanceCount&&(s._maxInstanceCount=p.meshPerAttribute*p.count)):b(d),e.bindBuffer(34962,g),x(d,m,E,f,0,0)}else if("instanceMatrix"===h){var C=n.get(i.instanceMatrix);if(void 0===C)continue;var L=C.buffer,R=C.type;A(d+0,1),A(d+1,1),A(d+2,1),A(d+3,1),e.bindBuffer(34962,L),e.vertexAttribPointer(d+0,4,R,!1,64,0),e.vertexAttribPointer(d+1,4,R,!1,64,16),e.vertexAttribPointer(d+2,4,R,!1,64,32),e.vertexAttribPointer(d+3,4,R,!1,64,48)}else if("instanceColor"===h){var P=n.get(i.instanceColor);if(void 0===P)continue;var D=P.buffer,O=P.type;A(d,1),e.bindBuffer(34962,D),e.vertexAttribPointer(d,3,O,!1,12,0)}else if(void 0!==u){var I=u[h];if(void 0!==I)switch(I.length){case 2:e.vertexAttrib2fv(d,I);break;case 3:e.vertexAttrib3fv(d,I);break;case 4:e.vertexAttrib4fv(d,I);break;default:e.vertexAttrib1fv(d,I)}}}}w()}}function M(){for(var e in S(),s){var t=s[e];for(var n in t){var r=t[n];for(var i in r)p(r[i].object),delete r[i];delete t[n]}delete s[e]}}function _(e){if(void 0!==s[e.id]){var t=s[e.id];for(var n in t){var r=t[n];for(var i in r)p(r[i].object),delete r[i];delete t[n]}delete s[e.id]}}function T(e){for(var t in s){var n=s[t];if(void 0!==n[e.id]){var r=n[e.id];for(var i in r)p(r[i].object),delete r[i];delete n[e.id]}}}function S(){C(),c!==l&&d((c=l).object)}function C(){l.geometry=null,l.program=null,l.wireframe=!1}return{setup:u,reset:S,resetDefaultState:C,dispose:M,releaseStatesOfGeometry:_,releaseStatesOfProgram:T,initAttributes:y,enableAttribute:b,disableUnusedAttributes:w}}function Ko(e,t,n,r){var i,o=r.isWebGL2;function a(e){i=e}function s(t,r){e.drawArrays(i,t,r),n.update(r,i,1)}function l(r,a,s){if(0!==s){var l,c;if(o)l=e,c="drawArraysInstanced";else if(c="drawArraysInstancedANGLE",null===(l=t.get("ANGLE_instanced_arrays")))return void console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");l[c](i,r,a,s),n.update(a,i,s)}}this.setMode=a,this.render=s,this.renderInstances=l}function Jo(e,t,n){var r;function i(){if(void 0!==r)return r;var n=t.get("EXT_texture_filter_anisotropic");return r=null!==n?e.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0}function o(t){if("highp"===t){if(e.getShaderPrecisionFormat(35633,36338).precision>0&&e.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";t="mediump"}return"mediump"===t&&e.getShaderPrecisionFormat(35633,36337).precision>0&&e.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}var a="undefined"!==typeof WebGL2RenderingContext&&e instanceof WebGL2RenderingContext||"undefined"!==typeof WebGL2ComputeRenderingContext&&e instanceof WebGL2ComputeRenderingContext,s=void 0!==n.precision?n.precision:"highp",l=o(s);l!==s&&(console.warn("THREE.WebGLRenderer:",s,"not supported, using",l,"instead."),s=l);var c=!0===n.logarithmicDepthBuffer,u=e.getParameter(34930),h=e.getParameter(35660),d=e.getParameter(3379),p=e.getParameter(34076),f=e.getParameter(34921),m=e.getParameter(36347),v=e.getParameter(36348),g=e.getParameter(36349),y=h>0,b=a||!!t.get("OES_texture_float");return{isWebGL2:a,getMaxAnisotropy:i,getMaxPrecision:o,precision:s,logarithmicDepthBuffer:c,maxTextures:u,maxVertexTextures:h,maxTextureSize:d,maxCubemapSize:p,maxAttributes:f,maxVertexUniforms:m,maxVaryings:v,maxFragmentUniforms:g,vertexTextures:y,floatFragmentTextures:b,floatVertexTextures:y&&b,maxSamples:a?e.getParameter(36183):0}}function $o(e){var t=this,n=null,r=0,i=!1,o=!1,a=new hi,s=new $n,l={value:null,needsUpdate:!1};function c(){l.value!==n&&(l.value=n,l.needsUpdate=r>0),t.numPlanes=r,t.numIntersection=0}function u(e,n,r,i){var o=null!==e?e.length:0,c=null;if(0!==o){if(c=l.value,!0!==i||null===c){var u=r+4*o,h=n.matrixWorldInverse;s.getNormalMatrix(h),(null===c||c.length<u)&&(c=new Float32Array(u));for(var d=0,p=r;d!==o;++d,p+=4)a.copy(e[d]).applyMatrix4(h,s),a.normal.toArray(c,p),c[p+3]=a.constant}l.value=c,l.needsUpdate=!0}return t.numPlanes=o,t.numIntersection=0,c}this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(e,t,o){var a=0!==e.length||t||0!==r||i;return i=t,n=u(e,o,0),r=e.length,a},this.beginShadows=function(){o=!0,u(null)},this.endShadows=function(){o=!1,c()},this.setState=function(t,a,s){var h=t.clippingPlanes,d=t.clipIntersection,p=t.clipShadows,f=e.get(t);if(!i||null===h||0===h.length||o&&!p)o?u(null):c();else{var m=o?0:r,v=4*m,g=f.clippingState||null;l.value=g,g=u(h,a,v,s);for(var y=0;y!==v;++y)g[y]=n[y];f.clippingState=g,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=m}}}function ea(e){var t=new WeakMap;function n(e,t){return t===le?e.mapping=ae:t===ce&&(e.mapping=se),e}function r(r){if(r&&r.isTexture){var o=r.mapping;if(o===le||o===ce){if(t.has(r))return n(t.get(r).texture,r.mapping);var a=r.image;if(a&&a.height>0){var s=e.getRenderList(),l=e.getRenderTarget(),c=new No(a.height/2);return c.fromEquirectangularTexture(e,r),t.set(r,c),e.setRenderTarget(l),e.setRenderList(s),r.addEventListener("dispose",i),n(c.texture,r.mapping)}return null}}return r}function i(e){var n=e.target;n.removeEventListener("dispose",i);var r=t.get(n);void 0!==r&&(t.delete(n),r.dispose())}function o(){t=new WeakMap}return{get:r,dispose:o}}function ta(e){var t={};function n(n){if(void 0!==t[n])return t[n];var r;switch(n){case"WEBGL_depth_texture":r=e.getExtension("WEBGL_depth_texture")||e.getExtension("MOZ_WEBGL_depth_texture")||e.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":r=e.getExtension("EXT_texture_filter_anisotropic")||e.getExtension("MOZ_EXT_texture_filter_anisotropic")||e.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":r=e.getExtension("WEBGL_compressed_texture_s3tc")||e.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":r=e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:r=e.getExtension(n)}return t[n]=r,r}return{has:function(e){return null!==n(e)},init:function(e){e.isWebGL2?n("EXT_color_buffer_float"):(n("WEBGL_depth_texture"),n("OES_texture_float"),n("OES_texture_half_float"),n("OES_texture_half_float_linear"),n("OES_standard_derivatives"),n("OES_element_index_uint"),n("OES_vertex_array_object"),n("ANGLE_instanced_arrays")),n("OES_texture_float_linear"),n("EXT_color_buffer_half_float")},get:function(e){var t=n(e);return null===t&&console.warn("THREE.WebGLRenderer: "+e+" extension not supported."),t}}}function na(e,t,n,r){var i={},o=new WeakMap;function a(e){var s=e.target;for(var l in null!==s.index&&t.remove(s.index),s.attributes)t.remove(s.attributes[l]);s.removeEventListener("dispose",a),delete i[s.id];var c=o.get(s);c&&(t.remove(c),o.delete(s)),r.releaseStatesOfGeometry(s),!0===s.isInstancedBufferGeometry&&delete s._maxInstanceCount,n.memory.geometries--}function s(e,t){return!0===i[t.id]||(t.addEventListener("dispose",a),i[t.id]=!0,n.memory.geometries++),t}function l(e){var n=e.attributes;for(var r in n)t.update(n[r],34962);var i=e.morphAttributes;for(var o in i)for(var a=i[o],s=0,l=a.length;s<l;s++)t.update(a[s],34962)}function c(e){var n=[],r=e.index,i=e.attributes.position,a=0;if(null!==r){var s=r.array;a=r.version;for(var l=0,c=s.length;l<c;l+=3){var u=s[l+0],h=s[l+1],d=s[l+2];n.push(u,h,h,d,d,u)}}else{var p=i.array;a=i.version;for(var f=0,m=p.length/3-1;f<m;f+=3){var v=f+0,g=f+1,y=f+2;n.push(v,g,g,y,y,v)}}var b=new(Xi(n)>65535?ji:Gi)(n,1);b.version=a;var A=o.get(e);A&&t.remove(A),o.set(e,b)}function u(e){var t=o.get(e);if(t){var n=e.index;null!==n&&t.version<n.version&&c(e)}else c(e);return o.get(e)}return{get:s,update:l,getWireframeAttribute:u}}function ra(e,t,n,r){var i,o,a,s=r.isWebGL2;function l(e){i=e}function c(e){o=e.type,a=e.bytesPerElement}function u(t,r){e.drawElements(i,r,o,t*a),n.update(r,i,1)}function h(r,l,c){if(0!==c){var u,h;if(s)u=e,h="drawElementsInstanced";else if(h="drawElementsInstancedANGLE",null===(u=t.get("ANGLE_instanced_arrays")))return void console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");u[h](i,l,o,r*a,c),n.update(l,i,c)}}this.setMode=l,this.setIndex=c,this.render=u,this.renderInstances=h}function ia(e){var t={frame:0,calls:0,triangles:0,points:0,lines:0};function n(e,n,r){switch(t.calls++,n){case 4:t.triangles+=r*(e/3);break;case 1:t.lines+=r*(e/2);break;case 3:t.lines+=r*(e-1);break;case 2:t.lines+=r*e;break;case 0:t.points+=r*e;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",n)}}function r(){t.frame++,t.calls=0,t.triangles=0,t.points=0,t.lines=0}return{memory:{geometries:0,textures:0},render:t,programs:null,autoReset:!0,reset:r,update:n}}function oa(e,t){return e[0]-t[0]}function aa(e,t){return Math.abs(t[1])-Math.abs(e[1])}function sa(e){for(var t={},n=new Float32Array(8),r=[],i=0;i<8;i++)r[i]=[i,0];function o(i,o,a,s){var l=i.morphTargetInfluences,c=void 0===l?0:l.length,u=t[o.id];if(void 0===u){u=[];for(var h=0;h<c;h++)u[h]=[h,0];t[o.id]=u}for(var d=0;d<c;d++){var p=u[d];p[0]=d,p[1]=l[d]}u.sort(aa);for(var f=0;f<8;f++)f<c&&u[f][1]?(r[f][0]=u[f][0],r[f][1]=u[f][1]):(r[f][0]=Number.MAX_SAFE_INTEGER,r[f][1]=0);r.sort(oa);for(var m=a.morphTargets&&o.morphAttributes.position,v=a.morphNormals&&o.morphAttributes.normal,g=0,y=0;y<8;y++){var b=r[y],A=b[0],w=b[1];A!==Number.MAX_SAFE_INTEGER&&w?(m&&o.getAttribute("morphTarget"+y)!==m[A]&&o.setAttribute("morphTarget"+y,m[A]),v&&o.getAttribute("morphNormal"+y)!==v[A]&&o.setAttribute("morphNormal"+y,v[A]),n[y]=w,g+=w):(m&&!0===o.hasAttribute("morphTarget"+y)&&o.deleteAttribute("morphTarget"+y),v&&!0===o.hasAttribute("morphNormal"+y)&&o.deleteAttribute("morphNormal"+y),n[y]=0)}var x=o.morphTargetsRelative?1:1-g;s.getUniforms().setValue(e,"morphTargetBaseInfluence",x),s.getUniforms().setValue(e,"morphTargetInfluences",n)}return{update:o}}function la(e,t,n,r){var i=new WeakMap;function o(e){var o=r.render.frame,a=e.geometry,l=t.get(e,a);return i.get(l)!==o&&(t.update(l),i.set(l,o)),e.isInstancedMesh&&(!1===e.hasEventListener("dispose",s)&&e.addEventListener("dispose",s),n.update(e.instanceMatrix,34962),null!==e.instanceColor&&n.update(e.instanceColor,34962)),l}function a(){i=new WeakMap}function s(e){var t=e.target;t.removeEventListener("dispose",s),n.remove(t.instanceMatrix),null!==t.instanceColor&&n.remove(t.instanceColor)}return{update:o,dispose:a}}function ca(e,t,n,r){void 0===e&&(e=null),void 0===t&&(t=1),void 0===n&&(n=1),void 0===r&&(r=1),nr.call(this,null),this.image={data:e,width:t,height:n,depth:r},this.magFilter=me,this.minFilter=me,this.wrapR=pe,this.generateMipmaps=!1,this.flipY=!1,this.needsUpdate=!0}function ua(e,t,n,r){void 0===e&&(e=null),void 0===t&&(t=1),void 0===n&&(n=1),void 0===r&&(r=1),nr.call(this,null),this.image={data:e,width:t,height:n,depth:r},this.magFilter=me,this.minFilter=me,this.wrapR=pe,this.generateMipmaps=!1,this.flipY=!1,this.needsUpdate=!0}Yo.physical={uniforms:So([Yo.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new Jn(1,1)},clearcoatNormalMap:{value:null},sheen:{value:new Li(0)},transmission:{value:0},transmissionMap:{value:null}}]),vertexShader:qo.meshphysical_vert,fragmentShader:qo.meshphysical_frag},ca.prototype=Object.create(nr.prototype),ca.prototype.constructor=ca,ca.prototype.isDataTexture2DArray=!0,ua.prototype=Object.create(nr.prototype),ua.prototype.constructor=ua,ua.prototype.isDataTexture3D=!0;var ha=new nr,da=new ca,pa=new ua,fa=new ko,ma=[],va=[],ga=new Float32Array(16),ya=new Float32Array(9),ba=new Float32Array(4);function Aa(e,t,n){var r=e[0];if(r<=0||r>0)return e;var i=t*n,o=ma[i];if(void 0===o&&(o=new Float32Array(i),ma[i]=o),0!==t){r.toArray(o,0);for(var a=1,s=0;a!==t;++a)s+=n,e[a].toArray(o,s)}return o}function wa(e,t){if(e.length!==t.length)return!1;for(var n=0,r=e.length;n<r;n++)if(e[n]!==t[n])return!1;return!0}function xa(e,t){for(var n=0,r=t.length;n<r;n++)e[n]=t[n]}function Ea(e,t){var n=va[t];void 0===n&&(n=new Int32Array(t),va[t]=n);for(var r=0;r!==t;++r)n[r]=e.allocateTextureUnit();return n}function Ma(e,t){var n=this.cache;n[0]!==t&&(e.uniform1f(this.addr,t),n[0]=t)}function _a(e,t){var n=this.cache;if(void 0!==t.x)n[0]===t.x&&n[1]===t.y||(e.uniform2f(this.addr,t.x,t.y),n[0]=t.x,n[1]=t.y);else{if(wa(n,t))return;e.uniform2fv(this.addr,t),xa(n,t)}}function Ta(e,t){var n=this.cache;if(void 0!==t.x)n[0]===t.x&&n[1]===t.y&&n[2]===t.z||(e.uniform3f(this.addr,t.x,t.y,t.z),n[0]=t.x,n[1]=t.y,n[2]=t.z);else if(void 0!==t.r)n[0]===t.r&&n[1]===t.g&&n[2]===t.b||(e.uniform3f(this.addr,t.r,t.g,t.b),n[0]=t.r,n[1]=t.g,n[2]=t.b);else{if(wa(n,t))return;e.uniform3fv(this.addr,t),xa(n,t)}}function Sa(e,t){var n=this.cache;if(void 0!==t.x)n[0]===t.x&&n[1]===t.y&&n[2]===t.z&&n[3]===t.w||(e.uniform4f(this.addr,t.x,t.y,t.z,t.w),n[0]=t.x,n[1]=t.y,n[2]=t.z,n[3]=t.w);else{if(wa(n,t))return;e.uniform4fv(this.addr,t),xa(n,t)}}function Ca(e,t){var n=this.cache,r=t.elements;if(void 0===r){if(wa(n,t))return;e.uniformMatrix2fv(this.addr,!1,t),xa(n,t)}else{if(wa(n,r))return;ba.set(r),e.uniformMatrix2fv(this.addr,!1,ba),xa(n,r)}}function La(e,t){var n=this.cache,r=t.elements;if(void 0===r){if(wa(n,t))return;e.uniformMatrix3fv(this.addr,!1,t),xa(n,t)}else{if(wa(n,r))return;ya.set(r),e.uniformMatrix3fv(this.addr,!1,ya),xa(n,r)}}function Ra(e,t){var n=this.cache,r=t.elements;if(void 0===r){if(wa(n,t))return;e.uniformMatrix4fv(this.addr,!1,t),xa(n,t)}else{if(wa(n,r))return;ga.set(r),e.uniformMatrix4fv(this.addr,!1,ga),xa(n,r)}}function Pa(e,t,n){var r=this.cache,i=n.allocateTextureUnit();r[0]!==i&&(e.uniform1i(this.addr,i),r[0]=i),n.safeSetTexture2D(t||ha,i)}function Da(e,t,n){var r=this.cache,i=n.allocateTextureUnit();r[0]!==i&&(e.uniform1i(this.addr,i),r[0]=i),n.setTexture2DArray(t||da,i)}function Oa(e,t,n){var r=this.cache,i=n.allocateTextureUnit();r[0]!==i&&(e.uniform1i(this.addr,i),r[0]=i),n.setTexture3D(t||pa,i)}function Ia(e,t,n){var r=this.cache,i=n.allocateTextureUnit();r[0]!==i&&(e.uniform1i(this.addr,i),r[0]=i),n.safeSetTextureCube(t||fa,i)}function Ba(e,t){var n=this.cache;n[0]!==t&&(e.uniform1i(this.addr,t),n[0]=t)}function Fa(e,t){var n=this.cache;wa(n,t)||(e.uniform2iv(this.addr,t),xa(n,t))}function ka(e,t){var n=this.cache;wa(n,t)||(e.uniform3iv(this.addr,t),xa(n,t))}function Na(e,t){var n=this.cache;wa(n,t)||(e.uniform4iv(this.addr,t),xa(n,t))}function Ua(e,t){var n=this.cache;n[0]!==t&&(e.uniform1ui(this.addr,t),n[0]=t)}function Ha(e){switch(e){case 5126:return Ma;case 35664:return _a;case 35665:return Ta;case 35666:return Sa;case 35674:return Ca;case 35675:return La;case 35676:return Ra;case 5124:case 35670:return Ba;case 35667:case 35671:return Fa;case 35668:case 35672:return ka;case 35669:case 35673:return Na;case 5125:return Ua;case 35678:case 36198:case 36298:case 36306:case 35682:return Pa;case 35679:case 36299:case 36307:return Oa;case 35680:case 36300:case 36308:case 36293:return Ia;case 36289:case 36303:case 36311:case 36292:return Da}}function Ga(e,t){e.uniform1fv(this.addr,t)}function za(e,t){e.uniform1iv(this.addr,t)}function ja(e,t){e.uniform2iv(this.addr,t)}function Va(e,t){e.uniform3iv(this.addr,t)}function Wa(e,t){e.uniform4iv(this.addr,t)}function qa(e,t){var n=Aa(t,this.size,2);e.uniform2fv(this.addr,n)}function Xa(e,t){var n=Aa(t,this.size,3);e.uniform3fv(this.addr,n)}function Ya(e,t){var n=Aa(t,this.size,4);e.uniform4fv(this.addr,n)}function Qa(e,t){var n=Aa(t,this.size,4);e.uniformMatrix2fv(this.addr,!1,n)}function Za(e,t){var n=Aa(t,this.size,9);e.uniformMatrix3fv(this.addr,!1,n)}function Ka(e,t){var n=Aa(t,this.size,16);e.uniformMatrix4fv(this.addr,!1,n)}function Ja(e,t,n){var r=t.length,i=Ea(n,r);e.uniform1iv(this.addr,i);for(var o=0;o!==r;++o)n.safeSetTexture2D(t[o]||ha,i[o])}function $a(e,t,n){var r=t.length,i=Ea(n,r);e.uniform1iv(this.addr,i);for(var o=0;o!==r;++o)n.safeSetTextureCube(t[o]||fa,i[o])}function es(e){switch(e){case 5126:return Ga;case 35664:return qa;case 35665:return Xa;case 35666:return Ya;case 35674:return Qa;case 35675:return Za;case 35676:return Ka;case 5124:case 35670:return za;case 35667:case 35671:return ja;case 35668:case 35672:return Va;case 35669:case 35673:return Wa;case 35678:case 36198:case 36298:case 36306:case 35682:return Ja;case 35680:case 36300:case 36308:case 36293:return $a}}function ts(e,t,n){this.id=e,this.addr=n,this.cache=[],this.setValue=Ha(t.type)}function ns(e,t,n){this.id=e,this.addr=n,this.cache=[],this.size=t.size,this.setValue=es(t.type)}function rs(e){this.id=e,this.seq=[],this.map={}}ns.prototype.updateCache=function(e){var t=this.cache;e instanceof Float32Array&&t.length!==e.length&&(this.cache=new Float32Array(e.length)),xa(t,e)},rs.prototype.setValue=function(e,t,n){for(var r=this.seq,i=0,o=r.length;i!==o;++i){var a=r[i];a.setValue(e,t[a.id],n)}};var is=/(\w+)(\])?(\[|\.)?/g;function os(e,t){e.seq.push(t),e.map[t.id]=t}function as(e,t,n){var r=e.name,i=r.length;for(is.lastIndex=0;;){var o=is.exec(r),a=is.lastIndex,s=o[1],l="]"===o[2],c=o[3];if(l&&(s|=0),void 0===c||"["===c&&a+2===i){os(n,void 0===c?new ts(s,e,t):new ns(s,e,t));break}var u=n.map[s];void 0===u&&os(n,u=new rs(s)),n=u}}function ss(e,t){this.seq=[],this.map={};for(var n=e.getProgramParameter(t,35718),r=0;r<n;++r){var i=e.getActiveUniform(t,r);as(i,e.getUniformLocation(t,i.name),this)}}function ls(e,t,n){var r=e.createShader(t);return e.shaderSource(r,n),e.compileShader(r),r}ss.prototype.setValue=function(e,t,n,r){var i=this.map[t];void 0!==i&&i.setValue(e,n,r)},ss.prototype.setOptional=function(e,t,n){var r=t[n];void 0!==r&&this.setValue(e,n,r)},ss.upload=function(e,t,n,r){for(var i=0,o=t.length;i!==o;++i){var a=t[i],s=n[a.id];!1!==s.needsUpdate&&a.setValue(e,s.value,r)}},ss.seqWithValue=function(e,t){for(var n=[],r=0,i=e.length;r!==i;++r){var o=e[r];o.id in t&&n.push(o)}return n};var cs=0;function us(e){for(var t=e.split("\n"),n=0;n<t.length;n++)t[n]=n+1+": "+t[n];return t.join("\n")}function hs(e){switch(e){case Kt:return["Linear","( value )"];case Jt:return["sRGB","( value )"];case en:return["RGBE","( value )"];case nn:return["RGBM","( value, 7.0 )"];case rn:return["RGBM","( value, 16.0 )"];case on:return["RGBD","( value, 256.0 )"];case $t:return["Gamma","( value, float( GAMMA_FACTOR ) )"];case tn:return["LogLuv","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",e),["Linear","( value )"]}}function ds(e,t,n){var r=e.getShaderParameter(t,35713),i=e.getShaderInfoLog(t).trim();return r&&""===i?"":"THREE.WebGLShader: gl.getShaderInfoLog() "+n+"\n"+i+us(e.getShaderSource(t))}function ps(e,t){var n=hs(t);return"vec4 "+e+"( vec4 value ) { return "+n[0]+"ToLinear"+n[1]+"; }"}function fs(e,t){var n=hs(t);return"vec4 "+e+"( vec4 value ) { return LinearTo"+n[0]+n[1]+"; }"}function ms(e,t){var n;switch(t){case ee:n="Linear";break;case te:n="Reinhard";break;case ne:n="OptimizedCineon";break;case re:n="ACESFilmic";break;case ie:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),n="Linear"}return"vec3 "+e+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function vs(e){return[e.extensionDerivatives||e.envMapCubeUV||e.bumpMap||e.tangentSpaceNormalMap||e.clearcoatNormalMap||e.flatShading||"physical"===e.shaderID?"#extension GL_OES_standard_derivatives : enable":"",(e.extensionFragDepth||e.logarithmicDepthBuffer)&&e.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",e.extensionDrawBuffers&&e.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(e.extensionShaderTextureLOD||e.envMap)&&e.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(bs).join("\n")}function gs(e){var t=[];for(var n in e){var r=e[n];!1!==r&&t.push("#define "+n+" "+r)}return t.join("\n")}function ys(e,t){for(var n={},r=e.getProgramParameter(t,35721),i=0;i<r;i++){var o=e.getActiveAttrib(t,i).name;n[o]=e.getAttribLocation(t,o)}return n}function bs(e){return""!==e}function As(e,t){return e.replace(/NUM_DIR_LIGHTS/g,t.numDirLights).replace(/NUM_SPOT_LIGHTS/g,t.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,t.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,t.numPointLights).replace(/NUM_HEMI_LIGHTS/g,t.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,t.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g,t.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,t.numPointLightShadows)}function ws(e,t){return e.replace(/NUM_CLIPPING_PLANES/g,t.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,t.numClippingPlanes-t.numClipIntersection)}var xs=/^[ \t]*#include +<([\w\d./]+)>/gm;function Es(e){return e.replace(xs,Ms)}function Ms(e,t){var n=qo[t];if(void 0===n)throw new Error("Can not resolve #include <"+t+">");return Es(n)}var _s=/#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,Ts=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function Ss(e){return e.replace(Ts,Ls).replace(_s,Cs)}function Cs(e,t,n,r){return console.warn("WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead."),Ls(e,t,n,r)}function Ls(e,t,n,r){for(var i="",o=parseInt(t);o<parseInt(n);o++)i+=r.replace(/\[\s*i\s*\]/g,"[ "+o+" ]").replace(/UNROLLED_LOOP_INDEX/g,o);return i}function Rs(e){var t="precision "+e.precision+" float;\nprecision "+e.precision+" int;";return"highp"===e.precision?t+="\n#define HIGH_PRECISION":"mediump"===e.precision?t+="\n#define MEDIUM_PRECISION":"lowp"===e.precision&&(t+="\n#define LOW_PRECISION"),t}function Ps(e){var t="SHADOWMAP_TYPE_BASIC";return e.shadowMapType===d?t="SHADOWMAP_TYPE_PCF":e.shadowMapType===p?t="SHADOWMAP_TYPE_PCF_SOFT":e.shadowMapType===f&&(t="SHADOWMAP_TYPE_VSM"),t}function Ds(e){var t="ENVMAP_TYPE_CUBE";if(e.envMap)switch(e.envMapMode){case ae:case se:t="ENVMAP_TYPE_CUBE";break;case ue:case he:t="ENVMAP_TYPE_CUBE_UV"}return t}function Os(e){var t="ENVMAP_MODE_REFLECTION";if(e.envMap)switch(e.envMapMode){case se:case he:t="ENVMAP_MODE_REFRACTION"}return t}function Is(e){var t="ENVMAP_BLENDING_NONE";if(e.envMap)switch(e.combine){case Z:t="ENVMAP_BLENDING_MULTIPLY";break;case K:t="ENVMAP_BLENDING_MIX";break;case J:t="ENVMAP_BLENDING_ADD"}return t}function Bs(e,t,n,r){var i,o,a=e.getContext(),s=n.defines,l=n.vertexShader,c=n.fragmentShader,u=Ps(n),h=Ds(n),d=Os(n),p=Is(n),f=e.gammaFactor>0?e.gammaFactor:1,m=n.isWebGL2?"":vs(n),v=gs(s),g=a.createProgram(),y=n.glslVersion?"#version "+n.glslVersion+"\n":"";n.isRawShaderMaterial?((i=[v].filter(bs).join("\n")).length>0&&(i+="\n"),(o=[m,v].filter(bs).join("\n")).length>0&&(o+="\n")):(i=[Rs(n),"#define SHADER_NAME "+n.shaderName,v,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define GAMMA_FACTOR "+f,"#define MAX_BONES "+n.maxBones,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+d:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.displacementMap&&n.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.useVertexTexture?"#define BONE_TEXTURE":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+u:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#ifdef USE_COLOR","\tattribute vec3 color;","#endif","#ifdef USE_MORPHTARGETS","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(bs).join("\n"),o=[m,Rs(n),"#define SHADER_NAME "+n.shaderName,v,n.alphaTest?"#define ALPHATEST "+n.alphaTest+(n.alphaTest%1?"":".0"):"","#define GAMMA_FACTOR "+f,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+h:"",n.envMap?"#define "+d:"",n.envMap?"#define "+p:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.sheen?"#define USE_SHEEN":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+u:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"",(n.extensionShaderTextureLOD||n.envMap)&&n.rendererExtensionShaderTextureLod?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==$?"#define TONE_MAPPING":"",n.toneMapping!==$?qo.tonemapping_pars_fragment:"",n.toneMapping!==$?ms("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",qo.encodings_pars_fragment,n.map?ps("mapTexelToLinear",n.mapEncoding):"",n.matcap?ps("matcapTexelToLinear",n.matcapEncoding):"",n.envMap?ps("envMapTexelToLinear",n.envMapEncoding):"",n.emissiveMap?ps("emissiveMapTexelToLinear",n.emissiveMapEncoding):"",n.lightMap?ps("lightMapTexelToLinear",n.lightMapEncoding):"",fs("linearToOutputTexel",n.outputEncoding),n.depthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(bs).join("\n")),l=ws(l=As(l=Es(l),n),n),c=ws(c=As(c=Es(c),n),n),l=Ss(l),c=Ss(c),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(y="#version 300 es\n",i=["#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+i,o=["#define varying in",n.glslVersion===Fn?"":"out highp vec4 pc_fragColor;",n.glslVersion===Fn?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+o);var b,A,w=y+o+c,x=ls(a,35633,y+i+l),E=ls(a,35632,w);if(a.attachShader(g,x),a.attachShader(g,E),void 0!==n.index0AttributeName?a.bindAttribLocation(g,0,n.index0AttributeName):!0===n.morphTargets&&a.bindAttribLocation(g,0,"position"),a.linkProgram(g),e.debug.checkShaderErrors){var M=a.getProgramInfoLog(g).trim(),_=a.getShaderInfoLog(x).trim(),T=a.getShaderInfoLog(E).trim(),S=!0,C=!0;if(!1===a.getProgramParameter(g,35714)){S=!1;var L=ds(a,x,"vertex"),R=ds(a,E,"fragment");console.error("THREE.WebGLProgram: shader error: ",a.getError(),"35715",a.getProgramParameter(g,35715),"gl.getProgramInfoLog",M,L,R)}else""!==M?console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()",M):""!==_&&""!==T||(C=!1);C&&(this.diagnostics={runnable:S,programLog:M,vertexShader:{log:_,prefix:i},fragmentShader:{log:T,prefix:o}})}return a.deleteShader(x),a.deleteShader(E),this.getUniforms=function(){return void 0===b&&(b=new ss(a,g)),b},this.getAttributes=function(){return void 0===A&&(A=ys(a,g)),A},this.destroy=function(){r.releaseStatesOfProgram(this),a.deleteProgram(g),this.program=void 0},this.name=n.shaderName,this.id=cs++,this.cacheKey=t,this.usedTimes=1,this.program=g,this.vertexShader=x,this.fragmentShader=E,this}function Fs(e,t,n,r,i,o){var a=[],s=r.isWebGL2,l=r.logarithmicDepthBuffer,c=r.floatVertexTextures,u=r.maxVertexUniforms,h=r.vertexTextures,d=r.precision,p={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"},f=["precision","isWebGL2","supportsVertexTextures","outputEncoding","instancing","instancingColor","map","mapEncoding","matcap","matcapEncoding","envMap","envMapMode","envMapEncoding","envMapCubeUV","lightMap","lightMapEncoding","aoMap","emissiveMap","emissiveMapEncoding","bumpMap","normalMap","objectSpaceNormalMap","tangentSpaceNormalMap","clearcoatMap","clearcoatRoughnessMap","clearcoatNormalMap","displacementMap","specularMap","roughnessMap","metalnessMap","gradientMap","alphaMap","combine","vertexColors","vertexTangents","vertexUvs","uvsVertexOnly","fog","useFog","fogExp2","flatShading","sizeAttenuation","logarithmicDepthBuffer","skinning","maxBones","useVertexTexture","morphTargets","morphNormals","maxMorphTargets","maxMorphNormals","premultipliedAlpha","numDirLights","numPointLights","numSpotLights","numHemiLights","numRectAreaLights","numDirLightShadows","numPointLightShadows","numSpotLightShadows","shadowMapEnabled","shadowMapType","toneMapping","physicallyCorrectLights","alphaTest","doubleSided","flipSided","numClippingPlanes","numClipIntersection","depthPacking","dithering","sheen","transmissionMap"];function m(e){var t=e.skeleton.bones;if(c)return 1024;var n=u,r=Math.floor((n-20)/4),i=Math.min(r,t.length);return i<t.length?(console.warn("THREE.WebGLRenderer: Skeleton has "+t.length+" bones. This GPU supports "+i+"."),0):i}function y(e){var t;return e&&e.isTexture?t=e.encoding:e&&e.isWebGLRenderTarget?(console.warn("THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead."),t=e.texture.encoding):t=Kt,t}function b(i,a,u,f,b){var A,w,x=f.fog,E=i.isMeshStandardMaterial?f.environment:null,M=t.get(i.envMap||E),_=p[i.type],T=b.isSkinnedMesh?m(b):0;if(null!==i.precision&&(d=r.getMaxPrecision(i.precision))!==i.precision&&console.warn("THREE.WebGLProgram.getParameters:",i.precision,"not supported, using",d,"instead."),_){var S=Yo[_];A=S.vertexShader,w=S.fragmentShader}else A=i.vertexShader,w=i.fragmentShader;var C=e.getRenderTarget();return{isWebGL2:s,shaderID:_,shaderName:i.type,vertexShader:A,fragmentShader:w,defines:i.defines,isRawShaderMaterial:!0===i.isRawShaderMaterial,glslVersion:i.glslVersion,precision:d,instancing:!0===b.isInstancedMesh,instancingColor:!0===b.isInstancedMesh&&null!==b.instanceColor,supportsVertexTextures:h,outputEncoding:null!==C?y(C.texture):e.outputEncoding,map:!!i.map,mapEncoding:y(i.map),matcap:!!i.matcap,matcapEncoding:y(i.matcap),envMap:!!M,envMapMode:M&&M.mapping,envMapEncoding:y(M),envMapCubeUV:!!M&&(M.mapping===ue||M.mapping===he),lightMap:!!i.lightMap,lightMapEncoding:y(i.lightMap),aoMap:!!i.aoMap,emissiveMap:!!i.emissiveMap,emissiveMapEncoding:y(i.emissiveMap),bumpMap:!!i.bumpMap,normalMap:!!i.normalMap,objectSpaceNormalMap:i.normalMapType===cn,tangentSpaceNormalMap:i.normalMapType===ln,clearcoatMap:!!i.clearcoatMap,clearcoatRoughnessMap:!!i.clearcoatRoughnessMap,clearcoatNormalMap:!!i.clearcoatNormalMap,displacementMap:!!i.displacementMap,roughnessMap:!!i.roughnessMap,metalnessMap:!!i.metalnessMap,specularMap:!!i.specularMap,alphaMap:!!i.alphaMap,gradientMap:!!i.gradientMap,sheen:!!i.sheen,transmissionMap:!!i.transmissionMap,combine:i.combine,vertexTangents:i.normalMap&&i.vertexTangents,vertexColors:i.vertexColors,vertexUvs:!!i.map||!!i.bumpMap||!!i.normalMap||!!i.specularMap||!!i.alphaMap||!!i.emissiveMap||!!i.roughnessMap||!!i.metalnessMap||!!i.clearcoatMap||!!i.clearcoatRoughnessMap||!!i.clearcoatNormalMap||!!i.displacementMap||!!i.transmissionMap,uvsVertexOnly:!(i.map||i.bumpMap||i.normalMap||i.specularMap||i.alphaMap||i.emissiveMap||i.roughnessMap||i.metalnessMap||i.clearcoatNormalMap||i.transmissionMap)&&!!i.displacementMap,fog:!!x,useFog:i.fog,fogExp2:x&&x.isFogExp2,flatShading:i.flatShading,sizeAttenuation:i.sizeAttenuation,logarithmicDepthBuffer:l,skinning:i.skinning&&T>0,maxBones:T,useVertexTexture:c,morphTargets:i.morphTargets,morphNormals:i.morphNormals,maxMorphTargets:e.maxMorphTargets,maxMorphNormals:e.maxMorphNormals,numDirLights:a.directional.length,numPointLights:a.point.length,numSpotLights:a.spot.length,numRectAreaLights:a.rectArea.length,numHemiLights:a.hemi.length,numDirLightShadows:a.directionalShadowMap.length,numPointLightShadows:a.pointShadowMap.length,numSpotLightShadows:a.spotShadowMap.length,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:i.dithering,shadowMapEnabled:e.shadowMap.enabled&&u.length>0,shadowMapType:e.shadowMap.type,toneMapping:i.toneMapped?e.toneMapping:$,physicallyCorrectLights:e.physicallyCorrectLights,premultipliedAlpha:i.premultipliedAlpha,alphaTest:i.alphaTest,doubleSided:i.side===g,flipSided:i.side===v,depthPacking:void 0!==i.depthPacking&&i.depthPacking,index0AttributeName:i.index0AttributeName,extensionDerivatives:i.extensions&&i.extensions.derivatives,extensionFragDepth:i.extensions&&i.extensions.fragDepth,extensionDrawBuffers:i.extensions&&i.extensions.drawBuffers,extensionShaderTextureLOD:i.extensions&&i.extensions.shaderTextureLOD,rendererExtensionFragDepth:s||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:s||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:s||n.has("EXT_shader_texture_lod"),customProgramCacheKey:i.customProgramCacheKey()}}function A(t){var n=[];if(t.shaderID?n.push(t.shaderID):(n.push(t.fragmentShader),n.push(t.vertexShader)),void 0!==t.defines)for(var r in t.defines)n.push(r),n.push(t.defines[r]);if(!1===t.isRawShaderMaterial){for(var i=0;i<f.length;i++)n.push(t[f[i]]);n.push(e.outputEncoding),n.push(e.gammaFactor)}return n.push(t.customProgramCacheKey),n.join()}function w(e){var t,n=p[e.type];if(n){var r=Yo[n];t=Co.clone(r.uniforms)}else t=e.uniforms;return t}function x(t,n){for(var r,o=0,s=a.length;o<s;o++){var l=a[o];if(l.cacheKey===n){++(r=l).usedTimes;break}}return void 0===r&&(r=new Bs(e,n,t,i),a.push(r)),r}function E(e){if(0===--e.usedTimes){var t=a.indexOf(e);a[t]=a[a.length-1],a.pop(),e.destroy()}}return{getParameters:b,getProgramCacheKey:A,getUniforms:w,acquireProgram:x,releaseProgram:E,programs:a}}function ks(){var e=new WeakMap;function t(t){var n=e.get(t);return void 0===n&&(n={},e.set(t,n)),n}function n(t){e.delete(t)}function r(t,n,r){e.get(t)[n]=r}function i(){e=new WeakMap}return{get:t,remove:n,update:r,dispose:i}}function Ns(e,t){return e.groupOrder!==t.groupOrder?e.groupOrder-t.groupOrder:e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.program!==t.program?e.program.id-t.program.id:e.material.id!==t.material.id?e.material.id-t.material.id:e.z!==t.z?e.z-t.z:e.id-t.id}function Us(e,t){return e.groupOrder!==t.groupOrder?e.groupOrder-t.groupOrder:e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.z!==t.z?t.z-e.z:e.id-t.id}function Hs(e){var t=[],n=0,r=[],i=[],o={id:-1};function a(){n=0,r.length=0,i.length=0}function s(r,i,a,s,l,c){var u=t[n],h=e.get(a);return void 0===u?(u={id:r.id,object:r,geometry:i,material:a,program:h.program||o,groupOrder:s,renderOrder:r.renderOrder,z:l,group:c},t[n]=u):(u.id=r.id,u.object=r,u.geometry=i,u.material=a,u.program=h.program||o,u.groupOrder=s,u.renderOrder=r.renderOrder,u.z=l,u.group=c),n++,u}function l(e,t,n,o,a,l){var c=s(e,t,n,o,a,l);(!0===n.transparent?i:r).push(c)}function c(e,t,n,o,a,l){var c=s(e,t,n,o,a,l);(!0===n.transparent?i:r).unshift(c)}function u(e,t){r.length>1&&r.sort(e||Ns),i.length>1&&i.sort(t||Us)}function h(){for(var e=n,r=t.length;e<r;e++){var i=t[e];if(null===i.id)break;i.id=null,i.object=null,i.geometry=null,i.material=null,i.program=null,i.group=null}}return{opaque:r,transparent:i,init:a,push:l,unshift:c,finish:h,sort:u}}function Gs(e){var t=new WeakMap;function n(n,r){var i,o=t.get(n);return void 0===o?(i=new Hs(e),t.set(n,new WeakMap),t.get(n).set(r,i)):void 0===(i=o.get(r))&&(i=new Hs(e),o.set(r,i)),i}function r(){t=new WeakMap}return{get:n,dispose:r}}function zs(){var e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];var n;switch(t.type){case"DirectionalLight":n={direction:new lr,color:new Li};break;case"SpotLight":n={position:new lr,direction:new lr,color:new Li,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new lr,color:new Li,distance:0,decay:0};break;case"HemisphereLight":n={direction:new lr,skyColor:new Li,groundColor:new Li};break;case"RectAreaLight":n={color:new Li,position:new lr,halfWidth:new lr,halfHeight:new lr}}return e[t.id]=n,n}}}function js(){var e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];var n;switch(t.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Jn};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Jn,shadowCameraNear:1,shadowCameraFar:1e3}}return e[t.id]=n,n}}}var Vs=0;function Ws(e,t){return(t.castShadow?1:0)-(e.castShadow?1:0)}function qs(e,t){for(var n=new zs,r=js(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]},o=0;o<9;o++)i.probe.push(new lr);var a=new lr,s=new Fr,l=new Fr;function c(o){for(var a=0,s=0,l=0,c=0;c<9;c++)i.probe[c].set(0,0,0);var u=0,h=0,d=0,p=0,f=0,m=0,v=0,g=0;o.sort(Ws);for(var y=0,b=o.length;y<b;y++){var A=o[y],w=A.color,x=A.intensity,E=A.distance,M=A.shadow&&A.shadow.map?A.shadow.map.texture:null;if(A.isAmbientLight)a+=w.r*x,s+=w.g*x,l+=w.b*x;else if(A.isLightProbe)for(var _=0;_<9;_++)i.probe[_].addScaledVector(A.sh.coefficients[_],x);else if(A.isDirectionalLight){var T=n.get(A);if(T.color.copy(A.color).multiplyScalar(A.intensity),A.castShadow){var S=A.shadow,C=r.get(A);C.shadowBias=S.bias,C.shadowNormalBias=S.normalBias,C.shadowRadius=S.radius,C.shadowMapSize=S.mapSize,i.directionalShadow[u]=C,i.directionalShadowMap[u]=M,i.directionalShadowMatrix[u]=A.shadow.matrix,m++}i.directional[u]=T,u++}else if(A.isSpotLight){var L=n.get(A);if(L.position.setFromMatrixPosition(A.matrixWorld),L.color.copy(w).multiplyScalar(x),L.distance=E,L.coneCos=Math.cos(A.angle),L.penumbraCos=Math.cos(A.angle*(1-A.penumbra)),L.decay=A.decay,A.castShadow){var R=A.shadow,P=r.get(A);P.shadowBias=R.bias,P.shadowNormalBias=R.normalBias,P.shadowRadius=R.radius,P.shadowMapSize=R.mapSize,i.spotShadow[d]=P,i.spotShadowMap[d]=M,i.spotShadowMatrix[d]=A.shadow.matrix,g++}i.spot[d]=L,d++}else if(A.isRectAreaLight){var D=n.get(A);D.color.copy(w).multiplyScalar(x),D.halfWidth.set(.5*A.width,0,0),D.halfHeight.set(0,.5*A.height,0),i.rectArea[p]=D,p++}else if(A.isPointLight){var O=n.get(A);if(O.color.copy(A.color).multiplyScalar(A.intensity),O.distance=A.distance,O.decay=A.decay,A.castShadow){var I=A.shadow,B=r.get(A);B.shadowBias=I.bias,B.shadowNormalBias=I.normalBias,B.shadowRadius=I.radius,B.shadowMapSize=I.mapSize,B.shadowCameraNear=I.camera.near,B.shadowCameraFar=I.camera.far,i.pointShadow[h]=B,i.pointShadowMap[h]=M,i.pointShadowMatrix[h]=A.shadow.matrix,v++}i.point[h]=O,h++}else if(A.isHemisphereLight){var F=n.get(A);F.skyColor.copy(A.color).multiplyScalar(x),F.groundColor.copy(A.groundColor).multiplyScalar(x),i.hemi[f]=F,f++}}p>0&&(t.isWebGL2||!0===e.has("OES_texture_float_linear")?(i.rectAreaLTC1=Xo.LTC_FLOAT_1,i.rectAreaLTC2=Xo.LTC_FLOAT_2):!0===e.has("OES_texture_half_float_linear")?(i.rectAreaLTC1=Xo.LTC_HALF_1,i.rectAreaLTC2=Xo.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),i.ambient[0]=a,i.ambient[1]=s,i.ambient[2]=l;var k=i.hash;k.directionalLength===u&&k.pointLength===h&&k.spotLength===d&&k.rectAreaLength===p&&k.hemiLength===f&&k.numDirectionalShadows===m&&k.numPointShadows===v&&k.numSpotShadows===g||(i.directional.length=u,i.spot.length=d,i.rectArea.length=p,i.point.length=h,i.hemi.length=f,i.directionalShadow.length=m,i.directionalShadowMap.length=m,i.pointShadow.length=v,i.pointShadowMap.length=v,i.spotShadow.length=g,i.spotShadowMap.length=g,i.directionalShadowMatrix.length=m,i.pointShadowMatrix.length=v,i.spotShadowMatrix.length=g,k.directionalLength=u,k.pointLength=h,k.spotLength=d,k.rectAreaLength=p,k.hemiLength=f,k.numDirectionalShadows=m,k.numPointShadows=v,k.numSpotShadows=g,i.version=Vs++)}function u(e,t){for(var n=0,r=0,o=0,c=0,u=0,h=t.matrixWorldInverse,d=0,p=e.length;d<p;d++){var f=e[d];if(f.isDirectionalLight){var m=i.directional[n];m.direction.setFromMatrixPosition(f.matrixWorld),a.setFromMatrixPosition(f.target.matrixWorld),m.direction.sub(a),m.direction.transformDirection(h),n++}else if(f.isSpotLight){var v=i.spot[o];v.position.setFromMatrixPosition(f.matrixWorld),v.position.applyMatrix4(h),v.direction.setFromMatrixPosition(f.matrixWorld),a.setFromMatrixPosition(f.target.matrixWorld),v.direction.sub(a),v.direction.transformDirection(h),o++}else if(f.isRectAreaLight){var g=i.rectArea[c];g.position.setFromMatrixPosition(f.matrixWorld),g.position.applyMatrix4(h),l.identity(),s.copy(f.matrixWorld),s.premultiply(h),l.extractRotation(s),g.halfWidth.set(.5*f.width,0,0),g.halfHeight.set(0,.5*f.height,0),g.halfWidth.applyMatrix4(l),g.halfHeight.applyMatrix4(l),c++}else if(f.isPointLight){var y=i.point[r];y.position.setFromMatrixPosition(f.matrixWorld),y.position.applyMatrix4(h),r++}else if(f.isHemisphereLight){var b=i.hemi[u];b.direction.setFromMatrixPosition(f.matrixWorld),b.direction.transformDirection(h),b.direction.normalize(),u++}}}return{setup:c,setupView:u,state:i}}function Xs(e,t){var n=new qs(e,t),r=[],i=[];function o(){r.length=0,i.length=0}function a(e){r.push(e)}function s(e){i.push(e)}function l(){n.setup(r)}function c(e){n.setupView(r,e)}return{init:o,state:{lightsArray:r,shadowsArray:i,lights:n},setupLights:l,setupLightsView:c,pushLight:a,pushShadow:s}}function Ys(e,t){var n=new WeakMap;function r(r,i){var o;return void 0===i&&(i=0),!1===n.has(r)?(o=new Xs(e,t),n.set(r,[]),n.get(r).push(o)):i>=n.get(r).length?(o=new Xs(e,t),n.get(r).push(o)):o=n.get(r)[i],o}function i(){n=new WeakMap}return{get:r,dispose:i}}function Qs(e){Di.call(this),this.type="MeshDepthMaterial",this.depthPacking=an,this.skinning=!1,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.setValues(e)}function Zs(e){Di.call(this),this.type="MeshDistanceMaterial",this.referencePosition=new lr,this.nearDistance=1,this.farDistance=1e3,this.skinning=!1,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.setValues(e)}Qs.prototype=Object.create(Di.prototype),Qs.prototype.constructor=Qs,Qs.prototype.isMeshDepthMaterial=!0,Qs.prototype.copy=function(e){return Di.prototype.copy.call(this,e),this.depthPacking=e.depthPacking,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this},Zs.prototype=Object.create(Di.prototype),Zs.prototype.constructor=Zs,Zs.prototype.isMeshDistanceMaterial=!0,Zs.prototype.copy=function(e){return Di.prototype.copy.call(this,e),this.referencePosition.copy(e.referencePosition),this.nearDistance=e.nearDistance,this.farDistance=e.farDistance,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this};var Ks="uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include <packing>\nvoid main() {\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) );\n\tfor ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, i ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean * HALF_SAMPLE_RATE;\n\tsquared_mean = squared_mean * HALF_SAMPLE_RATE;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}",Js="void main() {\n\tgl_Position = vec4( position, 1.0 );\n}";function $s(e,t,n){var r=new zo,i=new Jn,o=new Jn,a=new ir,s=[],l=[],c={},u={0:v,1:m,2:g},h=new Po({defines:{SAMPLE_RATE:2/8,HALF_SAMPLE_RATE:1/8},uniforms:{shadow_pass:{value:null},resolution:{value:new Jn},radius:{value:4}},vertexShader:Js,fragmentShader:Ks}),p=h.clone();p.defines.HORIZONTAL_PASS=1;var y=new ro;y.setAttribute("position",new Fi(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));var b=new xo(y,h),w=this;function x(n,r){var i=t.update(b);h.uniforms.shadow_pass.value=n.map.texture,h.uniforms.resolution.value=n.mapSize,h.uniforms.radius.value=n.radius,e.setRenderTarget(n.mapPass),e.clear(),e.renderBufferDirect(r,null,i,h,b,null),p.uniforms.shadow_pass.value=n.mapPass.texture,p.uniforms.resolution.value=n.mapSize,p.uniforms.radius.value=n.radius,e.setRenderTarget(n.map),e.clear(),e.renderBufferDirect(r,null,i,p,b,null)}function E(e,t,n){var r=e<<0|t<<1|n<<2,i=s[r];return void 0===i&&(i=new Qs({depthPacking:sn,morphTargets:e,skinning:t}),s[r]=i),i}function M(e,t,n){var r=e<<0|t<<1|n<<2,i=l[r];return void 0===i&&(i=new Zs({morphTargets:e,skinning:t}),l[r]=i),i}function _(t,n,r,i,o,a,s){var l=null,h=E,d=t.customDepthMaterial;if(!0===i.isPointLight&&(h=M,d=t.customDistanceMaterial),void 0===d){var p=!1;!0===r.morphTargets&&(p=n.morphAttributes&&n.morphAttributes.position&&n.morphAttributes.position.length>0);var m=!1;!0===t.isSkinnedMesh&&(!0===r.skinning?m=!0:console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",t)),l=h(p,m,!0===t.isInstancedMesh)}else l=d;if(e.localClippingEnabled&&!0===r.clipShadows&&0!==r.clippingPlanes.length){var v=l.uuid,g=r.uuid,y=c[v];void 0===y&&(y={},c[v]=y);var b=y[g];void 0===b&&(b=l.clone(),y[g]=b),l=b}return l.visible=r.visible,l.wireframe=r.wireframe,l.side=s===f?null!==r.shadowSide?r.shadowSide:r.side:null!==r.shadowSide?r.shadowSide:u[r.side],l.clipShadows=r.clipShadows,l.clippingPlanes=r.clippingPlanes,l.clipIntersection=r.clipIntersection,l.wireframeLinewidth=r.wireframeLinewidth,l.linewidth=r.linewidth,!0===i.isPointLight&&!0===l.isMeshDistanceMaterial&&(l.referencePosition.setFromMatrixPosition(i.matrixWorld),l.nearDistance=o,l.farDistance=a),l}function T(n,i,o,a,s){if(!1!==n.visible){if(n.layers.test(i.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&s===f)&&(!n.frustumCulled||r.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(o.matrixWorldInverse,n.matrixWorld);var l=t.update(n),c=n.material;if(Array.isArray(c))for(var u=l.groups,h=0,d=u.length;h<d;h++){var p=u[h],m=c[p.materialIndex];if(m&&m.visible){var v=_(n,l,m,a,o.near,o.far,s);e.renderBufferDirect(o,null,l,v,n,p)}}else if(c.visible){var g=_(n,l,c,a,o.near,o.far,s);e.renderBufferDirect(o,null,l,g,n,null)}}for(var y=n.children,b=0,A=y.length;b<A;b++)T(y[b],i,o,a,s)}}this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=d,this.render=function(t,s,l){if(!1!==w.enabled&&(!1!==w.autoUpdate||!1!==w.needsUpdate)&&0!==t.length){var c=e.getRenderTarget(),u=e.getActiveCubeFace(),h=e.getActiveMipmapLevel(),d=e.state;d.setBlending(A),d.buffers.color.setClear(1,1,1,1),d.buffers.depth.setTest(!0),d.setScissorTest(!1);for(var p=0,m=t.length;p<m;p++){var v=t[p],g=v.shadow;if(void 0!==g){if(!1!==g.autoUpdate||!1!==g.needsUpdate){i.copy(g.mapSize);var y=g.getFrameExtents();if(i.multiply(y),o.copy(g.mapSize),(i.x>n||i.y>n)&&(i.x>n&&(o.x=Math.floor(n/y.x),i.x=o.x*y.x,g.mapSize.x=o.x),i.y>n&&(o.y=Math.floor(n/y.y),i.y=o.y*y.y,g.mapSize.y=o.y)),null===g.map&&!g.isPointLightShadow&&this.type===f){var b={minFilter:Ae,magFilter:Ae,format:Ue};g.map=new or(i.x,i.y,b),g.map.texture.name=v.name+".shadowMap",g.mapPass=new or(i.x,i.y,b),g.camera.updateProjectionMatrix()}if(null===g.map){var E={minFilter:me,magFilter:me,format:Ue};g.map=new or(i.x,i.y,E),g.map.texture.name=v.name+".shadowMap",g.camera.updateProjectionMatrix()}e.setRenderTarget(g.map),e.clear();for(var M=g.getViewportCount(),_=0;_<M;_++){var S=g.getViewport(_);a.set(o.x*S.x,o.y*S.y,o.x*S.z,o.y*S.w),d.viewport(a),g.updateMatrices(v,_),r=g.getFrustum(),T(s,l,g.camera,v,this.type)}g.isPointLightShadow||this.type!==f||x(g,l),g.needsUpdate=!1}}else console.warn("THREE.WebGLShadowMap:",v,"has no shadow.")}w.needsUpdate=!1,e.setRenderTarget(c,u,h)}}}function el(e,t,n){var r,i,o=n.isWebGL2;function a(){var t=!1,n=new ir,r=null,i=new ir(0,0,0,0);return{setMask:function(n){r===n||t||(e.colorMask(n,n,n,n),r=n)},setLocked:function(e){t=e},setClear:function(t,r,o,a,s){!0===s&&(t*=a,r*=a,o*=a),n.set(t,r,o,a),!1===i.equals(n)&&(e.clearColor(t,r,o,a),i.copy(n))},reset:function(){t=!1,r=null,i.set(-1,0,0,0)}}}function u(){var t=!1,n=null,r=null,i=null;return{setTest:function(e){e?be(2929):Ae(2929)},setMask:function(r){n===r||t||(e.depthMask(r),n=r)},setFunc:function(t){if(r!==t){if(t)switch(t){case z:e.depthFunc(512);break;case j:e.depthFunc(519);break;case V:e.depthFunc(513);break;case W:e.depthFunc(515);break;case q:e.depthFunc(514);break;case X:e.depthFunc(518);break;case Y:e.depthFunc(516);break;case Q:e.depthFunc(517);break;default:e.depthFunc(515)}else e.depthFunc(515);r=t}},setLocked:function(e){t=e},setClear:function(t){i!==t&&(e.clearDepth(t),i=t)},reset:function(){t=!1,n=null,r=null,i=null}}}function h(){var t=!1,n=null,r=null,i=null,o=null,a=null,s=null,l=null,c=null;return{setTest:function(e){t||(e?be(2960):Ae(2960))},setMask:function(r){n===r||t||(e.stencilMask(r),n=r)},setFunc:function(t,n,a){r===t&&i===n&&o===a||(e.stencilFunc(t,n,a),r=t,i=n,o=a)},setOp:function(t,n,r){a===t&&s===n&&l===r||(e.stencilOp(t,n,r),a=t,s=n,l=r)},setLocked:function(e){t=e},setClear:function(t){c!==t&&(e.clearStencil(t),c=t)},reset:function(){t=!1,n=null,r=null,i=null,o=null,a=null,s=null,l=null,c=null}}}var d=new a,p=new u,f=new h,m={},y=null,b=null,Z=null,K=null,J=null,$=null,ee=null,te=null,ne=null,re=!1,ie=null,oe=null,ae=null,se=null,le=null,ce=e.getParameter(35661),ue=!1,he=0,de=e.getParameter(7938);-1!==de.indexOf("WebGL")?(he=parseFloat(/^WebGL (\d)/.exec(de)[1]),ue=he>=1):-1!==de.indexOf("OpenGL ES")&&(he=parseFloat(/^OpenGL ES (\d)/.exec(de)[1]),ue=he>=2);var pe=null,fe={},me=new ir,ve=new ir;function ge(t,n,r){var i=new Uint8Array(4),o=e.createTexture();e.bindTexture(t,o),e.texParameteri(t,10241,9728),e.texParameteri(t,10240,9728);for(var a=0;a<r;a++)e.texImage2D(n+a,0,6408,1,1,0,6408,5121,i);return o}var ye={};function be(t){!0!==m[t]&&(e.enable(t),m[t]=!0)}function Ae(t){!1!==m[t]&&(e.disable(t),m[t]=!1)}function we(t){return y!==t&&(e.useProgram(t),y=t,!0)}ye[3553]=ge(3553,3553,1),ye[34067]=ge(34067,34069,6),d.setClear(0,0,0,1),p.setClear(1),f.setClear(0),be(2929),p.setFunc(W),Se(!1),Ce(l),be(2884),_e(A);var xe=((r={})[T]=32774,r[S]=32778,r[C]=32779,r);if(o)xe[L]=32775,xe[R]=32776;else{var Ee=t.get("EXT_blend_minmax");null!==Ee&&(xe[L]=Ee.MIN_EXT,xe[R]=Ee.MAX_EXT)}var Me=((i={})[P]=0,i[D]=1,i[O]=768,i[B]=770,i[G]=776,i[U]=774,i[k]=772,i[I]=769,i[F]=771,i[H]=775,i[N]=773,i);function _e(t,n,r,i,o,a,s,l){if(t!==A){if(b||(be(3042),b=!0),t===_)o=o||n,a=a||r,s=s||i,n===K&&o===ee||(e.blendEquationSeparate(xe[n],xe[o]),K=n,ee=o),r===J&&i===$&&a===te&&s===ne||(e.blendFuncSeparate(Me[r],Me[i],Me[a],Me[s]),J=r,$=i,te=a,ne=s),Z=t,re=null;else if(t!==Z||l!==re){if(K===T&&ee===T||(e.blendEquation(32774),K=T,ee=T),l)switch(t){case w:e.blendFuncSeparate(1,771,1,771);break;case x:e.blendFunc(1,1);break;case E:e.blendFuncSeparate(0,0,769,771);break;case M:e.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",t)}else switch(t){case w:e.blendFuncSeparate(770,771,1,771);break;case x:e.blendFunc(770,1);break;case E:e.blendFunc(0,769);break;case M:e.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",t)}J=null,$=null,te=null,ne=null,Z=t,re=l}}else b&&(Ae(3042),b=!1)}function Te(e,t){e.side===g?Ae(2884):be(2884);var n=e.side===v;t&&(n=!n),Se(n),e.blending===w&&!1===e.transparent?_e(A):_e(e.blending,e.blendEquation,e.blendSrc,e.blendDst,e.blendEquationAlpha,e.blendSrcAlpha,e.blendDstAlpha,e.premultipliedAlpha),p.setFunc(e.depthFunc),p.setTest(e.depthTest),p.setMask(e.depthWrite),d.setMask(e.colorWrite);var r=e.stencilWrite;f.setTest(r),r&&(f.setMask(e.stencilWriteMask),f.setFunc(e.stencilFunc,e.stencilRef,e.stencilFuncMask),f.setOp(e.stencilFail,e.stencilZFail,e.stencilZPass)),Re(e.polygonOffset,e.polygonOffsetFactor,e.polygonOffsetUnits)}function Se(t){ie!==t&&(t?e.frontFace(2304):e.frontFace(2305),ie=t)}function Ce(t){t!==s?(be(2884),t!==oe&&(t===l?e.cullFace(1029):t===c?e.cullFace(1028):e.cullFace(1032))):Ae(2884),oe=t}function Le(t){t!==ae&&(ue&&e.lineWidth(t),ae=t)}function Re(t,n,r){t?(be(32823),se===n&&le===r||(e.polygonOffset(n,r),se=n,le=r)):Ae(32823)}function Pe(e){e?be(3089):Ae(3089)}function De(t){void 0===t&&(t=33984+ce-1),pe!==t&&(e.activeTexture(t),pe=t)}function Oe(t,n){null===pe&&De();var r=fe[pe];void 0===r&&(r={type:void 0,texture:void 0},fe[pe]=r),r.type===t&&r.texture===n||(e.bindTexture(t,n||ye[t]),r.type=t,r.texture=n)}function Ie(){var t=fe[pe];void 0!==t&&void 0!==t.type&&(e.bindTexture(t.type,null),t.type=void 0,t.texture=void 0)}function Be(){try{e.compressedTexImage2D.apply(e,arguments)}catch(t){console.error("THREE.WebGLState:",t)}}function Fe(){try{e.texImage2D.apply(e,arguments)}catch(t){console.error("THREE.WebGLState:",t)}}function ke(){try{e.texImage3D.apply(e,arguments)}catch(t){console.error("THREE.WebGLState:",t)}}function Ne(t){!1===me.equals(t)&&(e.scissor(t.x,t.y,t.z,t.w),me.copy(t))}function Ue(t){!1===ve.equals(t)&&(e.viewport(t.x,t.y,t.z,t.w),ve.copy(t))}function He(){m={},pe=null,fe={},y=null,b=null,Z=null,K=null,J=null,$=null,ee=null,te=null,ne=null,re=!1,ie=null,oe=null,ae=null,se=null,le=null,d.reset(),p.reset(),f.reset()}return{buffers:{color:d,depth:p,stencil:f},enable:be,disable:Ae,useProgram:we,setBlending:_e,setMaterial:Te,setFlipSided:Se,setCullFace:Ce,setLineWidth:Le,setPolygonOffset:Re,setScissorTest:Pe,activeTexture:De,bindTexture:Oe,unbindTexture:Ie,compressedTexImage2D:Be,texImage2D:Fe,texImage3D:ke,scissor:Ne,viewport:Ue,reset:He}}function tl(e,t,n,r,i,o,a){var s,l,c,u=i.isWebGL2,h=i.maxTextures,d=i.maxCubemapSize,p=i.maxTextureSize,f=i.maxSamples,m=new WeakMap,v=!1;try{v="undefined"!==typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch(te){}function g(e,t){return v?new OffscreenCanvas(e,t):document.createElementNS("http://www.w3.org/1999/xhtml","canvas")}function y(e,t,n,r){var i=1;if((e.width>r||e.height>r)&&(i=r/Math.max(e.width,e.height)),i<1||!0===t){if("undefined"!==typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!==typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!==typeof ImageBitmap&&e instanceof ImageBitmap){var o=t?Kn.floorPowerOfTwo:Math.floor,a=o(i*e.width),s=o(i*e.height);void 0===c&&(c=g(a,s));var l=n?g(a,s):c;return l.width=a,l.height=s,l.getContext("2d").drawImage(e,0,0,a,s),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+e.width+"x"+e.height+") to ("+a+"x"+s+")."),l}return"data"in e&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+e.width+"x"+e.height+")."),e}return e}function b(e){return Kn.isPowerOfTwo(e.width)&&Kn.isPowerOfTwo(e.height)}function A(e){return!u&&(e.wrapS!==pe||e.wrapT!==pe||e.minFilter!==me&&e.minFilter!==Ae)}function w(e,t){return e.generateMipmaps&&t&&e.minFilter!==me&&e.minFilter!==Ae}function x(t,n,i,o){e.generateMipmap(t),r.get(n).__maxMipLevel=Math.log(Math.max(i,o))*Math.LOG2E}function E(n,r,i){if(!1===u)return r;if(null!==n){if(void 0!==e[n])return e[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}var o=r;return 6403===r&&(5126===i&&(o=33326),5131===i&&(o=33325),5121===i&&(o=33321)),6407===r&&(5126===i&&(o=34837),5131===i&&(o=34843),5121===i&&(o=32849)),6408===r&&(5126===i&&(o=34836),5131===i&&(o=34842),5121===i&&(o=32856)),33325!==o&&33326!==o&&34842!==o&&34836!==o||t.get("EXT_color_buffer_float"),o}function M(e){return e===me||e===ve||e===ye?9728:9729}function _(e){var t=e.target;t.removeEventListener("dispose",_),S(t),t.isVideoTexture&&m.delete(t),a.memory.textures--}function T(e){var t=e.target;t.removeEventListener("dispose",T),C(t),a.memory.textures--}function S(t){var n=r.get(t);void 0!==n.__webglInit&&(e.deleteTexture(n.__webglTexture),r.remove(t))}function C(t){var n=r.get(t),i=r.get(t.texture);if(t){if(void 0!==i.__webglTexture&&e.deleteTexture(i.__webglTexture),t.depthTexture&&t.depthTexture.dispose(),t.isWebGLCubeRenderTarget)for(var o=0;o<6;o++)e.deleteFramebuffer(n.__webglFramebuffer[o]),n.__webglDepthbuffer&&e.deleteRenderbuffer(n.__webglDepthbuffer[o]);else e.deleteFramebuffer(n.__webglFramebuffer),n.__webglDepthbuffer&&e.deleteRenderbuffer(n.__webglDepthbuffer),n.__webglMultisampledFramebuffer&&e.deleteFramebuffer(n.__webglMultisampledFramebuffer),n.__webglColorRenderbuffer&&e.deleteRenderbuffer(n.__webglColorRenderbuffer),n.__webglDepthRenderbuffer&&e.deleteRenderbuffer(n.__webglDepthRenderbuffer);r.remove(t.texture),r.remove(t)}}var L=0;function R(){L=0}function P(){var e=L;return e>=h&&console.warn("THREE.WebGLTextures: Trying to use "+e+" texture units while this GPU supports only "+h),L+=1,e}function D(e,t){var i=r.get(e);if(e.isVideoTexture&&Z(e),e.version>0&&i.__version!==e.version){var o=e.image;if(void 0===o)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");else{if(!1!==o.complete)return void H(i,e,t);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.activeTexture(33984+t),n.bindTexture(3553,i.__webglTexture)}function O(e,t){var i=r.get(e);e.version>0&&i.__version!==e.version?H(i,e,t):(n.activeTexture(33984+t),n.bindTexture(35866,i.__webglTexture))}function I(e,t){var i=r.get(e);e.version>0&&i.__version!==e.version?H(i,e,t):(n.activeTexture(33984+t),n.bindTexture(32879,i.__webglTexture))}function B(e,t){var i=r.get(e);e.version>0&&i.__version!==e.version?G(i,e,t):(n.activeTexture(33984+t),n.bindTexture(34067,i.__webglTexture))}var F=((s={})[de]=10497,s[pe]=33071,s[fe]=33648,s),k=((l={})[me]=9728,l[ve]=9984,l[ye]=9986,l[Ae]=9729,l[we]=9985,l[Ee]=9987,l);function N(n,o,a){a?(e.texParameteri(n,10242,F[o.wrapS]),e.texParameteri(n,10243,F[o.wrapT]),32879!==n&&35866!==n||e.texParameteri(n,32882,F[o.wrapR]),e.texParameteri(n,10240,k[o.magFilter]),e.texParameteri(n,10241,k[o.minFilter])):(e.texParameteri(n,10242,33071),e.texParameteri(n,10243,33071),32879!==n&&35866!==n||e.texParameteri(n,32882,33071),o.wrapS===pe&&o.wrapT===pe||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),e.texParameteri(n,10240,M(o.magFilter)),e.texParameteri(n,10241,M(o.minFilter)),o.minFilter!==me&&o.minFilter!==Ae&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter."));var s=t.get("EXT_texture_filter_anisotropic");if(s){if(o.type===Pe&&null===t.get("OES_texture_float_linear"))return;if(o.type===De&&null===(u||t.get("OES_texture_half_float_linear")))return;(o.anisotropy>1||r.get(o).__currentAnisotropy)&&(e.texParameterf(n,s.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(o.anisotropy,i.getMaxAnisotropy())),r.get(o).__currentAnisotropy=o.anisotropy)}}function U(t,n){void 0===t.__webglInit&&(t.__webglInit=!0,n.addEventListener("dispose",_),t.__webglTexture=e.createTexture(),a.memory.textures++)}function H(t,r,i){var a=3553;r.isDataTexture2DArray&&(a=35866),r.isDataTexture3D&&(a=32879),U(t,r),n.activeTexture(33984+i),n.bindTexture(a,t.__webglTexture),e.pixelStorei(37440,r.flipY),e.pixelStorei(37441,r.premultiplyAlpha),e.pixelStorei(3317,r.unpackAlignment);var s,l=A(r)&&!1===b(r.image),c=y(r.image,l,!1,p),h=b(c)||u,d=o.convert(r.format),f=o.convert(r.type),m=E(r.internalFormat,d,f);N(a,r,h);var v=r.mipmaps;if(r.isDepthTexture)m=6402,u?m=r.type===Pe?36012:r.type===Re?33190:r.type===Fe?35056:33189:r.type===Pe&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),r.format===je&&6402===m&&r.type!==Ce&&r.type!==Re&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),r.type=Ce,f=o.convert(r.type)),r.format===Ve&&6402===m&&(m=34041,r.type!==Fe&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),r.type=Fe,f=o.convert(r.type))),n.texImage2D(3553,0,m,c.width,c.height,0,d,f,null);else if(r.isDataTexture)if(v.length>0&&h){for(var g=0,M=v.length;g<M;g++)s=v[g],n.texImage2D(3553,g,m,s.width,s.height,0,d,f,s.data);r.generateMipmaps=!1,t.__maxMipLevel=v.length-1}else n.texImage2D(3553,0,m,c.width,c.height,0,d,f,c.data),t.__maxMipLevel=0;else if(r.isCompressedTexture){for(var _=0,T=v.length;_<T;_++)s=v[_],r.format!==Ue&&r.format!==Ne?null!==d?n.compressedTexImage2D(3553,_,m,s.width,s.height,0,s.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):n.texImage2D(3553,_,m,s.width,s.height,0,d,f,s.data);t.__maxMipLevel=v.length-1}else if(r.isDataTexture2DArray)n.texImage3D(35866,0,m,c.width,c.height,c.depth,0,d,f,c.data),t.__maxMipLevel=0;else if(r.isDataTexture3D)n.texImage3D(32879,0,m,c.width,c.height,c.depth,0,d,f,c.data),t.__maxMipLevel=0;else if(v.length>0&&h){for(var S=0,C=v.length;S<C;S++)s=v[S],n.texImage2D(3553,S,m,d,f,s);r.generateMipmaps=!1,t.__maxMipLevel=v.length-1}else n.texImage2D(3553,0,m,d,f,c),t.__maxMipLevel=0;w(r,h)&&x(a,r,c.width,c.height),t.__version=r.version,r.onUpdate&&r.onUpdate(r)}function G(t,r,i){if(6===r.image.length){U(t,r),n.activeTexture(33984+i),n.bindTexture(34067,t.__webglTexture),e.pixelStorei(37440,r.flipY),e.pixelStorei(37441,r.premultiplyAlpha),e.pixelStorei(3317,r.unpackAlignment);for(var a=r&&(r.isCompressedTexture||r.image[0].isCompressedTexture),s=r.image[0]&&r.image[0].isDataTexture,l=[],c=0;c<6;c++)l[c]=a||s?s?r.image[c].image:r.image[c]:y(r.image[c],!1,!0,d);var h,p=l[0],f=b(p)||u,m=o.convert(r.format),v=o.convert(r.type),g=E(r.internalFormat,m,v);if(N(34067,r,f),a){for(var A=0;A<6;A++){h=l[A].mipmaps;for(var M=0;M<h.length;M++){var _=h[M];r.format!==Ue&&r.format!==Ne?null!==m?n.compressedTexImage2D(34069+A,M,g,_.width,_.height,0,_.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):n.texImage2D(34069+A,M,g,_.width,_.height,0,m,v,_.data)}}t.__maxMipLevel=h.length-1}else{h=r.mipmaps;for(var T=0;T<6;T++)if(s){n.texImage2D(34069+T,0,g,l[T].width,l[T].height,0,m,v,l[T].data);for(var S=0;S<h.length;S++){var C=h[S].image[T].image;n.texImage2D(34069+T,S+1,g,C.width,C.height,0,m,v,C.data)}}else{n.texImage2D(34069+T,0,g,m,v,l[T]);for(var L=0;L<h.length;L++){var R=h[L];n.texImage2D(34069+T,L+1,g,m,v,R.image[T])}}t.__maxMipLevel=h.length}w(r,f)&&x(34067,r,p.width,p.height),t.__version=r.version,r.onUpdate&&r.onUpdate(r)}}function z(t,i,a,s){var l=o.convert(i.texture.format),c=o.convert(i.texture.type),u=E(i.texture.internalFormat,l,c);n.texImage2D(s,0,u,i.width,i.height,0,l,c,null),e.bindFramebuffer(36160,t),e.framebufferTexture2D(36160,a,s,r.get(i.texture).__webglTexture,0),e.bindFramebuffer(36160,null)}function j(t,n,r){if(e.bindRenderbuffer(36161,t),n.depthBuffer&&!n.stencilBuffer){var i=33189;if(r){var a=n.depthTexture;a&&a.isDepthTexture&&(a.type===Pe?i=36012:a.type===Re&&(i=33190));var s=Q(n);e.renderbufferStorageMultisample(36161,s,i,n.width,n.height)}else e.renderbufferStorage(36161,i,n.width,n.height);e.framebufferRenderbuffer(36160,36096,36161,t)}else if(n.depthBuffer&&n.stencilBuffer){if(r){var l=Q(n);e.renderbufferStorageMultisample(36161,l,35056,n.width,n.height)}else e.renderbufferStorage(36161,34041,n.width,n.height);e.framebufferRenderbuffer(36160,33306,36161,t)}else{var c=o.convert(n.texture.format),u=o.convert(n.texture.type),h=E(n.texture.internalFormat,c,u);if(r){var d=Q(n);e.renderbufferStorageMultisample(36161,d,h,n.width,n.height)}else e.renderbufferStorage(36161,h,n.width,n.height)}e.bindRenderbuffer(36161,null)}function V(t,n){if(n&&n.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(e.bindFramebuffer(36160,t),!n.depthTexture||!n.depthTexture.isDepthTexture)throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");r.get(n.depthTexture).__webglTexture&&n.depthTexture.image.width===n.width&&n.depthTexture.image.height===n.height||(n.depthTexture.image.width=n.width,n.depthTexture.image.height=n.height,n.depthTexture.needsUpdate=!0),D(n.depthTexture,0);var i=r.get(n.depthTexture).__webglTexture;if(n.depthTexture.format===je)e.framebufferTexture2D(36160,36096,3553,i,0);else{if(n.depthTexture.format!==Ve)throw new Error("Unknown depthTexture format");e.framebufferTexture2D(36160,33306,3553,i,0)}}function W(t){var n=r.get(t),i=!0===t.isWebGLCubeRenderTarget;if(t.depthTexture){if(i)throw new Error("target.depthTexture not supported in Cube render targets");V(n.__webglFramebuffer,t)}else if(i){n.__webglDepthbuffer=[];for(var o=0;o<6;o++)e.bindFramebuffer(36160,n.__webglFramebuffer[o]),n.__webglDepthbuffer[o]=e.createRenderbuffer(),j(n.__webglDepthbuffer[o],t,!1)}else e.bindFramebuffer(36160,n.__webglFramebuffer),n.__webglDepthbuffer=e.createRenderbuffer(),j(n.__webglDepthbuffer,t,!1);e.bindFramebuffer(36160,null)}function q(t){var i=r.get(t),s=r.get(t.texture);t.addEventListener("dispose",T),s.__webglTexture=e.createTexture(),a.memory.textures++;var l=!0===t.isWebGLCubeRenderTarget,c=!0===t.isWebGLMultisampleRenderTarget,h=b(t)||u;if(!u||t.texture.format!==Ne||t.texture.type!==Pe&&t.texture.type!==De||(t.texture.format=Ue,console.warn("THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead.")),l){i.__webglFramebuffer=[];for(var d=0;d<6;d++)i.__webglFramebuffer[d]=e.createFramebuffer()}else if(i.__webglFramebuffer=e.createFramebuffer(),c)if(u){i.__webglMultisampledFramebuffer=e.createFramebuffer(),i.__webglColorRenderbuffer=e.createRenderbuffer(),e.bindRenderbuffer(36161,i.__webglColorRenderbuffer);var p=o.convert(t.texture.format),f=o.convert(t.texture.type),m=E(t.texture.internalFormat,p,f),v=Q(t);e.renderbufferStorageMultisample(36161,v,m,t.width,t.height),e.bindFramebuffer(36160,i.__webglMultisampledFramebuffer),e.framebufferRenderbuffer(36160,36064,36161,i.__webglColorRenderbuffer),e.bindRenderbuffer(36161,null),t.depthBuffer&&(i.__webglDepthRenderbuffer=e.createRenderbuffer(),j(i.__webglDepthRenderbuffer,t,!0)),e.bindFramebuffer(36160,null)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.");if(l){n.bindTexture(34067,s.__webglTexture),N(34067,t.texture,h);for(var g=0;g<6;g++)z(i.__webglFramebuffer[g],t,36064,34069+g);w(t.texture,h)&&x(34067,t.texture,t.width,t.height),n.bindTexture(34067,null)}else n.bindTexture(3553,s.__webglTexture),N(3553,t.texture,h),z(i.__webglFramebuffer,t,36064,3553),w(t.texture,h)&&x(3553,t.texture,t.width,t.height),n.bindTexture(3553,null);t.depthBuffer&&W(t)}function X(e){var t=e.texture;if(w(t,b(e)||u)){var i=e.isWebGLCubeRenderTarget?34067:3553,o=r.get(t).__webglTexture;n.bindTexture(i,o),x(i,t,e.width,e.height),n.bindTexture(i,null)}}function Y(t){if(t.isWebGLMultisampleRenderTarget)if(u){var n=r.get(t);e.bindFramebuffer(36008,n.__webglMultisampledFramebuffer),e.bindFramebuffer(36009,n.__webglFramebuffer);var i=t.width,o=t.height,a=16384;t.depthBuffer&&(a|=256),t.stencilBuffer&&(a|=1024),e.blitFramebuffer(0,0,i,o,0,0,i,o,a,9728),e.bindFramebuffer(36160,n.__webglMultisampledFramebuffer)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.")}function Q(e){return u&&e.isWebGLMultisampleRenderTarget?Math.min(f,e.samples):0}function Z(e){var t=a.render.frame;m.get(e)!==t&&(m.set(e,t),e.update())}var K=!1,J=!1;function $(e,t){e&&e.isWebGLRenderTarget&&(!1===K&&(console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."),K=!0),e=e.texture),D(e,t)}function ee(e,t){e&&e.isWebGLCubeRenderTarget&&(!1===J&&(console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."),J=!0),e=e.texture),B(e,t)}this.allocateTextureUnit=P,this.resetTextureUnits=R,this.setTexture2D=D,this.setTexture2DArray=O,this.setTexture3D=I,this.setTextureCube=B,this.setupRenderTarget=q,this.updateRenderTargetMipmap=X,this.updateMultisampleRenderTarget=Y,this.safeSetTexture2D=$,this.safeSetTextureCube=ee}function nl(e,t,n){var r=n.isWebGL2;function i(e){var n;if(e===_e)return 5121;if(e===Oe)return 32819;if(e===Ie)return 32820;if(e===Be)return 33635;if(e===Te)return 5120;if(e===Se)return 5122;if(e===Ce)return 5123;if(e===Le)return 5124;if(e===Re)return 5125;if(e===Pe)return 5126;if(e===De)return r?5131:null!==(n=t.get("OES_texture_half_float"))?n.HALF_FLOAT_OES:null;if(e===ke)return 6406;if(e===Ne)return 6407;if(e===Ue)return 6408;if(e===He)return 6409;if(e===Ge)return 6410;if(e===je)return 6402;if(e===Ve)return 34041;if(e===We)return 6403;if(e===qe)return 36244;if(e===Xe)return 33319;if(e===Ye)return 33320;if(e===Qe)return 36248;if(e===Ze)return 36249;if(e===Ke||e===Je||e===$e||e===et){if(null===(n=t.get("WEBGL_compressed_texture_s3tc")))return null;if(e===Ke)return n.COMPRESSED_RGB_S3TC_DXT1_EXT;if(e===Je)return n.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(e===$e)return n.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(e===et)return n.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(e===tt||e===nt||e===rt||e===it){if(null===(n=t.get("WEBGL_compressed_texture_pvrtc")))return null;if(e===tt)return n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(e===nt)return n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(e===rt)return n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(e===it)return n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(e===ot)return null!==(n=t.get("WEBGL_compressed_texture_etc1"))?n.COMPRESSED_RGB_ETC1_WEBGL:null;if((e===at||e===st)&&null!==(n=t.get("WEBGL_compressed_texture_etc"))){if(e===at)return n.COMPRESSED_RGB8_ETC2;if(e===st)return n.COMPRESSED_RGBA8_ETC2_EAC}return e===lt||e===ct||e===ut||e===ht||e===dt||e===pt||e===ft||e===mt||e===vt||e===gt||e===yt||e===bt||e===At||e===wt||e===Et||e===Mt||e===_t||e===Tt||e===St||e===Ct||e===Lt||e===Rt||e===Pt||e===Dt||e===Ot||e===It||e===Bt||e===Ft?null!==(n=t.get("WEBGL_compressed_texture_astc"))?e:null:e===xt?null!==(n=t.get("EXT_texture_compression_bptc"))?e:null:e===Fe?r?34042:null!==(n=t.get("WEBGL_depth_texture"))?n.UNSIGNED_INT_24_8_WEBGL:null:void 0}return{convert:i}}function rl(){si.call(this),this.type="Group"}function il(e){void 0===e&&(e=[]),Oo.call(this),this.cameras=e}rl.prototype=Object.assign(Object.create(si.prototype),{constructor:rl,isGroup:!0}),il.prototype=Object.assign(Object.create(Oo.prototype),{constructor:il,isArrayCamera:!0});var ol=new lr,al=new lr;function sl(e,t,n){ol.setFromMatrixPosition(t.matrixWorld),al.setFromMatrixPosition(n.matrixWorld);var r=ol.distanceTo(al),i=t.projectionMatrix.elements,o=n.projectionMatrix.elements,a=i[14]/(i[10]-1),s=i[14]/(i[10]+1),l=(i[9]+1)/i[5],c=(i[9]-1)/i[5],u=(i[8]-1)/i[0],h=(o[8]+1)/o[0],d=a*u,p=a*h,f=r/(-u+h),m=f*-u;t.matrixWorld.decompose(e.position,e.quaternion,e.scale),e.translateX(m),e.translateZ(f),e.matrixWorld.compose(e.position,e.quaternion,e.scale),e.matrixWorldInverse.getInverse(e.matrixWorld);var v=a+f,g=s+f,y=d-m,b=p+(r-m),A=l*s/g*v,w=c*s/g*v;e.projectionMatrix.makePerspective(y,b,A,w,v,g)}function ll(e){var t,n,r=this,i=null,o=null,a=null,s=[],l=new Fr,c=new Fr,u=1,h="local-floor";"undefined"!==typeof window&&"VRFrameData"in window&&(o=new window.VRFrameData,window.addEventListener("vrdisplaypresentchange",A,!1));var d=new Fr,p=new sr,f=new lr,m=new Oo;m.viewport=new ir,m.layers.enable(1);var v=new Oo;v.viewport=new ir,v.layers.enable(2);var g=new il([m,v]);g.layers.enable(1),g.layers.enable(2);var y,b=new Jn;function A(){if(r.isPresenting=null!==i&&!0===i.isPresenting){var o=i.getEyeParameters("left");t=2*o.renderWidth*u,n=o.renderHeight*u,y=e.getPixelRatio(),e.getSize(b),e.setDrawingBufferSize(t,n,1),m.viewport.set(0,0,t/2,n),v.viewport.set(t/2,0,t/2,n),T.start(),r.dispatchEvent({type:"sessionstart"})}else r.enabled&&e.setDrawingBufferSize(b.width,b.height,y),T.stop(),r.dispatchEvent({type:"sessionend"})}var w=[],x=[];function E(e){for(var t=navigator.getGamepads&&navigator.getGamepads(),n=0,r=t.length;n<r;n++){var i=t[n];if(i&&("Daydream Controller"===i.id||"Gear VR Controller"===i.id||"Oculus Go Controller"===i.id||"OpenVR Gamepad"===i.id||i.id.startsWith("Oculus Touch")||i.id.startsWith("HTC Vive Focus")||i.id.startsWith("Spatial Controller"))){var o=i.hand;if(0===e&&(""===o||"right"===o))return i;if(1===e&&"left"===o)return i}}}function M(){for(var e=0;e<s.length;e++){var t=s[e],n=E(e);if(void 0!==n&&void 0!==n.pose){if(null===n.pose)return;var r=n.pose;!1===r.hasPosition&&t.position.set(.2,-.6,-.05),null!==r.position&&t.position.fromArray(r.position),null!==r.orientation&&t.quaternion.fromArray(r.orientation),t.matrix.compose(t.position,t.quaternion,t.scale),t.matrix.premultiply(l),t.matrix.decompose(t.position,t.quaternion,t.scale),t.matrixWorldNeedsUpdate=!0,t.visible=!0;var i="Daydream Controller"===n.id?0:1;void 0===w[e]&&(w[e]=!1),w[e]!==n.buttons[i].pressed&&(w[e]=n.buttons[i].pressed,!0===w[e]?t.dispatchEvent({type:"selectstart"}):(t.dispatchEvent({type:"selectend"}),t.dispatchEvent({type:"select"}))),i=2,void 0===x[e]&&(x[e]=!1),void 0!==n.buttons[i]&&x[e]!==n.buttons[i].pressed&&(x[e]=n.buttons[i].pressed,!0===x[e]?t.dispatchEvent({type:"squeezestart"}):(t.dispatchEvent({type:"squeezeend"}),t.dispatchEvent({type:"squeeze"})))}else t.visible=!1}}function _(e,r){null!==r&&4===r.length&&e.set(r[0]*t,r[1]*n,r[2]*t,r[3]*n)}this.enabled=!1,this.getController=function(e){var t=s[e];return void 0===t&&((t=new rl).matrixAutoUpdate=!1,t.visible=!1,s[e]=t),t},this.getDevice=function(){return i},this.setDevice=function(e){void 0!==e&&(i=e),T.setContext(e)},this.setFramebufferScaleFactor=function(e){u=e},this.setReferenceSpaceType=function(e){h=e},this.setPoseTarget=function(e){void 0!==e&&(a=e)},this.getCamera=function(e){var t="local-floor"===h?1.6:0;if(i.depthNear=e.near,i.depthFar=e.far,i.getFrameData(o),"local-floor"===h){var n=i.stageParameters;n?l.fromArray(n.sittingToStandingTransform):l.makeTranslation(0,t,0)}var r=o.pose,s=null!==a?a:e;s.matrix.copy(l),s.matrix.decompose(s.position,s.quaternion,s.scale),null!==r.orientation&&(p.fromArray(r.orientation),s.quaternion.multiply(p)),null!==r.position&&(p.setFromRotationMatrix(l),f.fromArray(r.position),f.applyQuaternion(p),s.position.add(f)),s.updateMatrixWorld();for(var u=s.children,y=0,b=u.length;y<b;y++)u[y].updateMatrixWorld(!0);m.near=e.near,v.near=e.near,m.far=e.far,v.far=e.far,m.matrixWorldInverse.fromArray(o.leftViewMatrix),v.matrixWorldInverse.fromArray(o.rightViewMatrix),c.getInverse(l),"local-floor"===h&&(m.matrixWorldInverse.multiply(c),v.matrixWorldInverse.multiply(c));var A=s.parent;null!==A&&(d.getInverse(A.matrixWorld),m.matrixWorldInverse.multiply(d),v.matrixWorldInverse.multiply(d)),m.matrixWorld.getInverse(m.matrixWorldInverse),v.matrixWorld.getInverse(v.matrixWorldInverse),m.projectionMatrix.fromArray(o.leftProjectionMatrix),v.projectionMatrix.fromArray(o.rightProjectionMatrix),sl(g,m,v);var w=i.getLayers();if(w.length){var x=w[0];_(m.viewport,x.leftBounds),_(v.viewport,x.rightBounds)}return M(),g},this.getStandingMatrix=function(){return l},this.isPresenting=!1;var T=new jo;this.setAnimationLoop=function(e){T.setAnimationLoop(e),this.isPresenting&&T.start()},this.submitFrame=function(){this.isPresenting&&i.submitFrame()},this.dispose=function(){"undefined"!==typeof window&&window.removeEventListener("vrdisplaypresentchange",A)},this.setFrameOfReferenceType=function(){console.warn("THREE.WebVRManager: setFrameOfReferenceType() has been deprecated.")}}function cl(){this._targetRay=null,this._grip=null,this._hand=null}function ul(e,t){var n,r=this,i=null,o=1,a=null,s="local-floor",l=null,c=null,u=[],h=new Map,d=[],p=new Oo;p.layers.enable(1),p.viewport=new ir;var f=new Oo;f.layers.enable(2),f.viewport=new ir;var m=[p,f],v=new il;v.layers.enable(1),v.layers.enable(2);var g=null,y=null;function b(e){var t=h.get(e.inputSource);t&&t.dispatchEvent({type:e.type,data:e.inputSource})}function A(){h.forEach((function(e,t){e.disconnect(t)})),h.clear(),g=null,y=null,e.setFramebuffer(null),e.setRenderTarget(e.getRenderTarget()),C.stop(),r.isPresenting=!1,r.dispatchEvent({type:"sessionend"})}function w(e){for(var t=i.inputSources,n=0;n<u.length;n++)h.set(t[n],u[n]);for(var r=0;r<e.removed.length;r++){var o=e.removed[r],a=h.get(o);a&&(a.dispatchEvent({type:"disconnected",data:o}),h.delete(o))}for(var s=0;s<e.added.length;s++){var l=e.added[s],c=h.get(l);c&&c.dispatchEvent({type:"connected",data:l})}}this.layersEnabled=!1,this.enabled=!1,this.isPresenting=!1,this.getCameraPose=function(){return l},this.getController=function(e){var t=u[e];return void 0===t&&(t=new cl,u[e]=t),t.getTargetRaySpace()},this.getControllerGrip=function(e){var t=u[e];return void 0===t&&(t=new cl,u[e]=t),t.getGripSpace()},this.getHand=function(e){var t=u[e];return void 0===t&&(t=new cl,u[e]=t),t.getHandSpace()},this.setFramebufferScaleFactor=function(e){o=e,!0===r.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(e){s=e,!0===r.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return a},this.getSession=function(){return i},this.setSession=function(){var e=Nn(regeneratorRuntime.mark((function e(l){var c,u;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null===(i=l)){e.next=24;break}if(i.addEventListener("select",b),i.addEventListener("selectstart",b),i.addEventListener("selectend",b),i.addEventListener("squeeze",b),i.addEventListener("squeezestart",b),i.addEventListener("squeezeend",b),i.addEventListener("end",A),i.addEventListener("inputsourceschange",w),!0===(c=t.getContextAttributes()).xrCompatible){e.next=14;break}return e.next=14,t.makeXRCompatible();case 14:return u={antialias:c.antialias,alpha:c.alpha,depth:c.depth,stencil:c.stencil,framebufferScaleFactor:o},n=new XRWebGLLayer(i,t,u),window.XRWebGLBinding&&this.layersEnabled?this.addLayer(n):i.updateRenderState({baseLayer:n}),e.next=19,i.requestReferenceSpace(s);case 19:a=e.sent,C.setContext(i),C.start(),r.isPresenting=!0,r.dispatchEvent({type:"sessionstart"});case 24:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),this.addLayer=function(e){window.XRWebGLBinding&&this.layersEnabled&&i&&(d.push(e),i.updateRenderState({layers:d}))},this.removeLayer=function(e){window.XRWebGLBinding&&this.layersEnabled&&i&&(d.splice(d.indexOf(e),1),i.updateRenderState({layers:d}))};var x=new lr,E=new lr;function M(e,t,n){x.setFromMatrixPosition(t.matrixWorld),E.setFromMatrixPosition(n.matrixWorld);var r=x.distanceTo(E),i=t.projectionMatrix.elements,o=n.projectionMatrix.elements,a=i[14]/(i[10]-1),s=i[14]/(i[10]+1),l=(i[9]+1)/i[5],c=(i[9]-1)/i[5],u=(i[8]-1)/i[0],h=(o[8]+1)/o[0],d=a*u,p=a*h,f=r/(-u+h),m=f*-u;t.matrixWorld.decompose(e.position,e.quaternion,e.scale),e.translateX(m),e.translateZ(f),e.matrixWorld.compose(e.position,e.quaternion,e.scale),e.matrixWorldInverse.copy(e.matrixWorld).invert();var v=a+f,g=s+f,y=d-m,b=p+(r-m),A=l*s/g*v,w=c*s/g*v;e.projectionMatrix.makePerspective(y,b,A,w,v,g)}function _(e,t){null===t?e.matrixWorld.copy(e.matrix):e.matrixWorld.multiplyMatrices(t.matrixWorld,e.matrix),e.matrixWorldInverse.copy(e.matrixWorld).invert()}this.setPoseTarget=function(e){void 0!==e&&(c=e)},this.getCamera=function(e){v.near=f.near=p.near=e.near,v.far=f.far=p.far=e.far,g===v.near&&y===v.far||(i.updateRenderState({depthNear:v.near,depthFar:v.far}),g=v.near,y=v.far);var t=e.parent,n=v.cameras,r=c||e;_(v,t);for(var o=0;o<n.length;o++)_(n[o],t);r.matrixWorld.copy(v.matrixWorld);for(var a=r.children,s=0,l=a.length;s<l;s++)a[s].updateMatrixWorld(!0);return 2===n.length?M(v,p,f):v.projectionMatrix.copy(p.projectionMatrix),v};var T=null;function S(t,r){if(null!==(l=r.getViewerPose(a))){var o=l.views;e.setFramebuffer(n.framebuffer);var s=!1;o.length!==v.cameras.length&&(v.cameras.length=0,s=!0);for(var c=0;c<o.length;c++){var h=o[c],d=n.getViewport(h),p=m[c];p.matrix.fromArray(h.transform.matrix),p.projectionMatrix.fromArray(h.projectionMatrix),p.viewport.set(d.x,d.y,d.width,d.height),0===c&&v.matrix.copy(p.matrix),!0===s&&v.cameras.push(p)}}for(var f=i.inputSources,g=0;g<u.length;g++){var y=u[g],b=f[g];y.update(b,r,a)}T&&T(t,r)}var C=new jo;C.setAnimationLoop(S),this.setAnimationLoop=function(e){T=e},this.dispose=function(){}}function hl(e){function t(e,t){e.fogColor.value.copy(t.color),t.isFog?(e.fogNear.value=t.near,e.fogFar.value=t.far):t.isFogExp2&&(e.fogDensity.value=t.density)}function n(e,t,n,v){t.isMeshBasicMaterial?r(e,t):t.isMeshLambertMaterial?(r(e,t),l(e,t)):t.isMeshToonMaterial?(r(e,t),u(e,t)):t.isMeshPhongMaterial?(r(e,t),c(e,t)):t.isMeshStandardMaterial?(r(e,t),t.isMeshPhysicalMaterial?d(e,t):h(e,t)):t.isMeshMatcapMaterial?(r(e,t),p(e,t)):t.isMeshDepthMaterial?(r(e,t),f(e,t)):t.isMeshDistanceMaterial?(r(e,t),m(e,t)):t.isMeshNormalMaterial?(r(e,t),g(e,t)):t.isLineBasicMaterial?(i(e,t),t.isLineDashedMaterial&&o(e,t)):t.isPointsMaterial?a(e,t,n,v):t.isSpriteMaterial?s(e,t):t.isShadowMaterial?(e.color.value.copy(t.color),e.opacity.value=t.opacity):t.isShaderMaterial&&(t.uniformsNeedUpdate=!1)}function r(t,n){t.opacity.value=n.opacity,n.color&&t.diffuse.value.copy(n.color),n.emissive&&t.emissive.value.copy(n.emissive).multiplyScalar(n.emissiveIntensity),n.map&&(t.map.value=n.map),n.alphaMap&&(t.alphaMap.value=n.alphaMap),n.specularMap&&(t.specularMap.value=n.specularMap);var r,i,o=e.get(n).envMap;if(o){t.envMap.value=o,t.flipEnvMap.value=o.isCubeTexture&&o._needsFlipEnvMap?-1:1,t.reflectivity.value=n.reflectivity,t.refractionRatio.value=n.refractionRatio;var a=e.get(o).__maxMipLevel;void 0!==a&&(t.maxMipLevel.value=a)}n.lightMap&&(t.lightMap.value=n.lightMap,t.lightMapIntensity.value=n.lightMapIntensity),n.aoMap&&(t.aoMap.value=n.aoMap,t.aoMapIntensity.value=n.aoMapIntensity),n.map?r=n.map:n.specularMap?r=n.specularMap:n.displacementMap?r=n.displacementMap:n.normalMap?r=n.normalMap:n.bumpMap?r=n.bumpMap:n.roughnessMap?r=n.roughnessMap:n.metalnessMap?r=n.metalnessMap:n.alphaMap?r=n.alphaMap:n.emissiveMap?r=n.emissiveMap:n.clearcoatMap?r=n.clearcoatMap:n.clearcoatNormalMap?r=n.clearcoatNormalMap:n.clearcoatRoughnessMap&&(r=n.clearcoatRoughnessMap),void 0!==r&&(r.isWebGLRenderTarget&&(r=r.texture),!0===r.matrixAutoUpdate&&r.updateMatrix(),t.uvTransform.value.copy(r.matrix)),n.aoMap?i=n.aoMap:n.lightMap&&(i=n.lightMap),void 0!==i&&(i.isWebGLRenderTarget&&(i=i.texture),!0===i.matrixAutoUpdate&&i.updateMatrix(),t.uv2Transform.value.copy(i.matrix))}function i(e,t){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity}function o(e,t){e.dashSize.value=t.dashSize,e.totalSize.value=t.dashSize+t.gapSize,e.scale.value=t.scale}function a(e,t,n,r){var i;e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,e.size.value=t.size*n,e.scale.value=.5*r,t.map&&(e.map.value=t.map),t.alphaMap&&(e.alphaMap.value=t.alphaMap),t.map?i=t.map:t.alphaMap&&(i=t.alphaMap),void 0!==i&&(!0===i.matrixAutoUpdate&&i.updateMatrix(),e.uvTransform.value.copy(i.matrix))}function s(e,t){var n;e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,e.rotation.value=t.rotation,t.map&&(e.map.value=t.map),t.alphaMap&&(e.alphaMap.value=t.alphaMap),t.map?n=t.map:t.alphaMap&&(n=t.alphaMap),void 0!==n&&(!0===n.matrixAutoUpdate&&n.updateMatrix(),e.uvTransform.value.copy(n.matrix))}function l(e,t){t.emissiveMap&&(e.emissiveMap.value=t.emissiveMap)}function c(e,t){e.specular.value.copy(t.specular),e.shininess.value=Math.max(t.shininess,1e-4),t.emissiveMap&&(e.emissiveMap.value=t.emissiveMap),t.bumpMap&&(e.bumpMap.value=t.bumpMap,e.bumpScale.value=t.bumpScale,t.side===v&&(e.bumpScale.value*=-1)),t.normalMap&&(e.normalMap.value=t.normalMap,e.normalScale.value.copy(t.normalScale),t.side===v&&e.normalScale.value.negate()),t.displacementMap&&(e.displacementMap.value=t.displacementMap,e.displacementScale.value=t.displacementScale,e.displacementBias.value=t.displacementBias)}function u(e,t){t.gradientMap&&(e.gradientMap.value=t.gradientMap),t.emissiveMap&&(e.emissiveMap.value=t.emissiveMap),t.bumpMap&&(e.bumpMap.value=t.bumpMap,e.bumpScale.value=t.bumpScale,t.side===v&&(e.bumpScale.value*=-1)),t.normalMap&&(e.normalMap.value=t.normalMap,e.normalScale.value.copy(t.normalScale),t.side===v&&e.normalScale.value.negate()),t.displacementMap&&(e.displacementMap.value=t.displacementMap,e.displacementScale.value=t.displacementScale,e.displacementBias.value=t.displacementBias)}function h(t,n){t.roughness.value=n.roughness,t.metalness.value=n.metalness,n.roughnessMap&&(t.roughnessMap.value=n.roughnessMap),n.metalnessMap&&(t.metalnessMap.value=n.metalnessMap),n.emissiveMap&&(t.emissiveMap.value=n.emissiveMap),n.bumpMap&&(t.bumpMap.value=n.bumpMap,t.bumpScale.value=n.bumpScale,n.side===v&&(t.bumpScale.value*=-1)),n.normalMap&&(t.normalMap.value=n.normalMap,t.normalScale.value.copy(n.normalScale),n.side===v&&t.normalScale.value.negate()),n.displacementMap&&(t.displacementMap.value=n.displacementMap,t.displacementScale.value=n.displacementScale,t.displacementBias.value=n.displacementBias),e.get(n).envMap&&(t.envMapIntensity.value=n.envMapIntensity)}function d(e,t){h(e,t),e.reflectivity.value=t.reflectivity,e.clearcoat.value=t.clearcoat,e.clearcoatRoughness.value=t.clearcoatRoughness,t.sheen&&e.sheen.value.copy(t.sheen),t.clearcoatMap&&(e.clearcoatMap.value=t.clearcoatMap),t.clearcoatRoughnessMap&&(e.clearcoatRoughnessMap.value=t.clearcoatRoughnessMap),t.clearcoatNormalMap&&(e.clearcoatNormalScale.value.copy(t.clearcoatNormalScale),e.clearcoatNormalMap.value=t.clearcoatNormalMap,t.side===v&&e.clearcoatNormalScale.value.negate()),e.transmission.value=t.transmission,t.transmissionMap&&(e.transmissionMap.value=t.transmissionMap)}function p(e,t){t.matcap&&(e.matcap.value=t.matcap),t.bumpMap&&(e.bumpMap.value=t.bumpMap,e.bumpScale.value=t.bumpScale,t.side===v&&(e.bumpScale.value*=-1)),t.normalMap&&(e.normalMap.value=t.normalMap,e.normalScale.value.copy(t.normalScale),t.side===v&&e.normalScale.value.negate()),t.displacementMap&&(e.displacementMap.value=t.displacementMap,e.displacementScale.value=t.displacementScale,e.displacementBias.value=t.displacementBias)}function f(e,t){t.displacementMap&&(e.displacementMap.value=t.displacementMap,e.displacementScale.value=t.displacementScale,e.displacementBias.value=t.displacementBias)}function m(e,t){t.displacementMap&&(e.displacementMap.value=t.displacementMap,e.displacementScale.value=t.displacementScale,e.displacementBias.value=t.displacementBias),e.referencePosition.value.copy(t.referencePosition),e.nearDistance.value=t.nearDistance,e.farDistance.value=t.farDistance}function g(e,t){t.bumpMap&&(e.bumpMap.value=t.bumpMap,e.bumpScale.value=t.bumpScale,t.side===v&&(e.bumpScale.value*=-1)),t.normalMap&&(e.normalMap.value=t.normalMap,e.normalScale.value.copy(t.normalScale),t.side===v&&e.normalScale.value.negate()),t.displacementMap&&(e.displacementMap.value=t.displacementMap,e.displacementScale.value=t.displacementScale,e.displacementBias.value=t.displacementBias)}return{refreshFogUniforms:t,refreshMaterialUniforms:n}}function dl(){var e=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");return e.style.display="block",e}function pl(e){var t=void 0!==(e=e||{}).canvas?e.canvas:dl(),n=void 0!==e.context?e.context:null,r=void 0!==e.alpha&&e.alpha,i=void 0===e.depth||e.depth,o=void 0===e.stencil||e.stencil,a=void 0!==e.antialias&&e.antialias,s=void 0===e.premultipliedAlpha||e.premultipliedAlpha,l=void 0!==e.preserveDrawingBuffer&&e.preserveDrawingBuffer,c=void 0!==e.powerPreference?e.powerPreference:"default",u=void 0!==e.failIfMajorPerformanceCaveat&&e.failIfMajorPerformanceCaveat,h=null,d=null,p=[];this.domElement=t,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.gammaFactor=2,this.outputEncoding=Kt,this.physicallyCorrectLights=!1,this.toneMapping=$,this.toneMappingExposure=1,this.maxMorphTargets=8,this.maxMorphNormals=4;var f=this,m=!1,v=null,g=0,y=0,b=null,A=null,w=-1,x=null,E=new ir,M=new ir,_=null,T=t.width,S=t.height,C=1,L=null,R=null,P=new ir(0,0,T,S),D=new ir(0,0,T,S),O=!1,I=new zo,B=!1,F=!1,k=new Fr,N=new lr,U={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function H(){return null===b?C:1}var G,z,j,V,W,q,X,Y,Q,Z,K,J,ee,te,ne,re,ie,oe,ae,se,le,ce=n;function ue(e,n){for(var r=0;r<e.length;r++){var i=e[r],o=t.getContext(i,n);if(null!==o)return o}return null}try{var he={alpha:r,depth:i,stencil:o,antialias:a,premultipliedAlpha:s,preserveDrawingBuffer:l,powerPreference:c,failIfMajorPerformanceCaveat:u};if(t.addEventListener("webglcontextlost",ve,!1),t.addEventListener("webglcontextrestored",ge,!1),null===ce){var de=["webgl2","webgl","experimental-webgl"];if(!0===f.isWebGL1Renderer&&de.shift(),null===(ce=ue(de,he)))throw ue(de)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}void 0===ce.getShaderPrecisionFormat&&(ce.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(Be){throw console.error("THREE.WebGLRenderer: "+Be.message),Be}function pe(){G=new ta(ce),z=new Jo(ce,G,e),G.init(z),se=new nl(ce,G,z),(j=new el(ce,G,z)).scissor(M.copy(D).multiplyScalar(C).floor()),j.viewport(E.copy(P).multiplyScalar(C).floor()),V=new ia(ce),W=new ks,q=new tl(ce,G,j,W,z,se,V),X=new ea(f),Y=new Vo(ce,z),le=new Zo(ce,G,Y,z),Q=new na(ce,Y,V,le),Z=new la(ce,Q,Y,V),ie=new sa(ce),ne=new $o(W),K=new Fs(f,X,G,z,le,ne),J=new hl(W),ee=new Gs(W),te=new Ys(G,z),re=new Qo(f,X,j,Z,s),oe=new Ko(ce,G,V,z),ae=new ra(ce,G,V,z),V.programs=K.programs,f.capabilities=z,f.extensions=G,f.properties=W,f.renderLists=ee,f.state=j,f.info=V}pe();var fe="undefined"!==typeof navigator&&"xr"in navigator?new ul(f,ce):new ll(f);this.xr=fe;var me=new $s(f,Z,z.maxTextureSize);function ve(e){e.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),m=!0}function ge(){console.log("THREE.WebGLRenderer: Context Restored."),m=!1,pe()}function ye(e){var t=e.target;t.removeEventListener("dispose",ye),be(t)}function be(e){Ae(e),W.remove(e)}function Ae(e){var t=W.get(e).program;void 0!==t&&K.releaseProgram(t)}function we(e,t){e.render((function(e){f.renderBufferImmediate(e,t)}))}this.shadowMap=me,this.getContext=function(){return ce},this.getContextAttributes=function(){return ce.getContextAttributes()},this.forceContextLoss=function(){var e=G.get("WEBGL_lose_context");e&&e.loseContext()},this.forceContextRestore=function(){var e=G.get("WEBGL_lose_context");e&&e.restoreContext()},this.getPixelRatio=function(){return C},this.setPixelRatio=function(e){void 0!==e&&(C=e,this.setSize(T,S,!1))},this.getSize=function(e){return void 0===e&&(console.warn("WebGLRenderer: .getsize() now requires a Vector2 as an argument"),e=new Jn),e.set(T,S)},this.setSize=function(e,n,r){fe.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(T=e,S=n,t.width=Math.floor(e*C),t.height=Math.floor(n*C),!1!==r&&(t.style.width=e+"px",t.style.height=n+"px"),this.setViewport(0,0,e,n))},this.getDrawingBufferSize=function(e){return void 0===e&&(console.warn("WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument"),e=new Jn),e.set(T*C,S*C).floor()},this.setDrawingBufferSize=function(e,n,r){T=e,S=n,C=r,t.width=Math.floor(e*r),t.height=Math.floor(n*r),this.setViewport(0,0,e,n)},this.getCurrentViewport=function(e){return void 0===e&&(console.warn("WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument"),e=new ir),e.copy(E)},this.getViewport=function(e){return e.copy(P)},this.setViewport=function(e,t,n,r){e.isVector4?P.set(e.x,e.y,e.z,e.w):P.set(e,t,n,r),j.viewport(E.copy(P).multiplyScalar(C).floor())},this.getScissor=function(e){return e.copy(D)},this.setScissor=function(e,t,n,r){e.isVector4?D.set(e.x,e.y,e.z,e.w):D.set(e,t,n,r),j.scissor(M.copy(D).multiplyScalar(C).floor())},this.getScissorTest=function(){return O},this.setScissorTest=function(e){j.setScissorTest(O=e)},this.setOpaqueSort=function(e){L=e},this.setTransparentSort=function(e){R=e},this.getClearColor=function(e){return void 0===e&&(console.warn("WebGLRenderer: .getClearColor() now requires a Color as an argument"),e=new Li),e.copy(re.getClearColor())},this.setClearColor=function(){re.setClearColor.apply(re,arguments)},this.getClearAlpha=function(){return re.getClearAlpha()},this.setClearAlpha=function(){re.setClearAlpha.apply(re,arguments)},this.clear=function(e,t,n){var r=0;(void 0===e||e)&&(r|=16384),(void 0===t||t)&&(r|=256),(void 0===n||n)&&(r|=1024),ce.clear(r)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){t.removeEventListener("webglcontextlost",ve,!1),t.removeEventListener("webglcontextrestored",ge,!1),ee.dispose(),te.dispose(),W.dispose(),X.dispose(),Z.dispose(),le.dispose(),fe.dispose(),Me.stop()},this.renderBufferImmediate=function(e,t){le.initAttributes();var n=W.get(e);e.hasPositions&&!n.position&&(n.position=ce.createBuffer()),e.hasNormals&&!n.normal&&(n.normal=ce.createBuffer()),e.hasUvs&&!n.uv&&(n.uv=ce.createBuffer()),e.hasColors&&!n.color&&(n.color=ce.createBuffer());var r=t.getAttributes();e.hasPositions&&(ce.bindBuffer(34962,n.position),ce.bufferData(34962,e.positionArray,35048),le.enableAttribute(r.position),ce.vertexAttribPointer(r.position,3,5126,!1,0,0)),e.hasNormals&&(ce.bindBuffer(34962,n.normal),ce.bufferData(34962,e.normalArray,35048),le.enableAttribute(r.normal),ce.vertexAttribPointer(r.normal,3,5126,!1,0,0)),e.hasUvs&&(ce.bindBuffer(34962,n.uv),ce.bufferData(34962,e.uvArray,35048),le.enableAttribute(r.uv),ce.vertexAttribPointer(r.uv,2,5126,!1,0,0)),e.hasColors&&(ce.bindBuffer(34962,n.color),ce.bufferData(34962,e.colorArray,35048),le.enableAttribute(r.color),ce.vertexAttribPointer(r.color,3,5126,!1,0,0)),le.disableUnusedAttributes(),ce.drawArrays(4,0,e.count),e.count=0},this.renderBufferDirect=function(e,t,n,r,i,o){null===t&&(t=U);var a=i.isMesh&&i.matrixWorld.determinant()<0,s=Re(e,t,r,i);j.setMaterial(r,a);var l=n.index,c=n.attributes.position;if(null===l){if(void 0===c||0===c.count)return}else if(0===l.count)return;var u,h=1;!0===r.wireframe&&(l=Q.getWireframeAttribute(n),h=2),(r.morphTargets||r.morphNormals)&&ie.update(i,n,r,s),le.setup(i,r,s,n,l);var d=oe;null!==l&&(u=Y.get(l),(d=ae).setIndex(u));var p=null!==l?l.count:c.count,f=n.drawRange.start*h,m=n.drawRange.count*h,v=null!==o?o.start*h:0,g=null!==o?o.count*h:1/0,y=Math.max(f,v),b=Math.min(p,f+m,v+g)-1,A=Math.max(0,b-y+1);if(0!==A){if(i.isMesh)!0===r.wireframe?(j.setLineWidth(r.wireframeLinewidth*H()),d.setMode(1)):d.setMode(4);else if(i.isLine){var w=r.linewidth;void 0===w&&(w=1),j.setLineWidth(w*H()),i.isLineSegments?d.setMode(1):i.isLineLoop?d.setMode(2):d.setMode(3)}else i.isPoints?d.setMode(0):i.isSprite&&d.setMode(4);if(i.isInstancedMesh)d.renderInstances(y,A,i.count);else if(n.isInstancedBufferGeometry){var x=Math.min(n.instanceCount,n._maxInstanceCount);d.renderInstances(y,A,x)}else d.render(y,A)}},this.compile=function(e,t){(d=te.get(e)).init(),e.traverseVisible((function(e){e.isLight&&e.layers.test(t.layers)&&(d.pushLight(e),e.castShadow&&d.pushShadow(e))})),d.setupLights();var n=new WeakMap;e.traverse((function(t){var r=t.material;if(r)if(Array.isArray(r))for(var i=0;i<r.length;i++){var o=r[i];!1===n.has(o)&&(Le(o,e,t),n.set(o))}else!1===n.has(r)&&(Le(r,e,t),n.set(r))}))};var xe=null;function Ee(e){fe.isPresenting||xe&&xe(e)}var Me=new jo;function Te(e,t,n,r){if(!1!==e.visible){if(e.layers.test(t.layers))if(e.isGroup)n=e.renderOrder;else if(e.isLOD)!0===e.autoUpdate&&e.update(t);else if(e.isLight)d.pushLight(e),e.castShadow&&d.pushShadow(e);else if(e.isSprite){if(!e.frustumCulled||I.intersectsSprite(e)){r&&N.setFromMatrixPosition(e.matrixWorld).applyMatrix4(k);var i=Z.update(e),o=e.material;o.visible&&h.push(e,i,o,n,N.z,null)}}else if(e.isImmediateRenderObject)r&&N.setFromMatrixPosition(e.matrixWorld).applyMatrix4(k),h.push(e,null,e.material,n,N.z,null);else if((e.isMesh||e.isLine||e.isPoints)&&(e.isSkinnedMesh&&e.skeleton.frame!==V.render.frame&&(e.skeleton.update(),e.skeleton.frame=V.render.frame),!e.frustumCulled||I.intersectsObject(e))){r&&N.setFromMatrixPosition(e.matrixWorld).applyMatrix4(k);var a=Z.update(e),s=e.material;if(Array.isArray(s))for(var l=a.groups,c=0,u=l.length;c<u;c++){var p=l[c],f=s[p.materialIndex];f&&f.visible&&h.push(e,a,f,n,N.z,p)}else s.visible&&h.push(e,a,s,n,N.z,null)}for(var m=e.children,v=0,g=m.length;v<g;v++)Te(m[v],t,n,r)}}function Se(e,t,n){for(var r=!0===t.isScene?t.overrideMaterial:null,i=0,o=e.length;i<o;i++){var a=e[i],s=a.object,l=a.geometry,c=null===r?a.material:r,u=a.group;if(n.isArrayCamera)for(var h=n.cameras,p=0,f=h.length;p<f;p++){var m=h[p];s.layers.test(m.layers)&&(j.viewport(E.copy(m.viewport)),d.setupLightsView(m),Ce(s,t,m,l,c,u))}else Ce(s,t,n,l,c,u)}}function Ce(e,t,n,r,i,o){if(e.onBeforeRender(f,t,n,r,i,o),e.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse,e.matrixWorld),e.normalMatrix.getNormalMatrix(e.modelViewMatrix),e.isImmediateRenderObject){var a=Re(n,t,i,e);j.setMaterial(i),le.reset(),we(e,a)}else f.renderBufferDirect(n,t,r,i,e,o);e.onAfterRender(f,t,n,r,i,o)}function Le(e,t,n){!0!==t.isScene&&(t=U);var r=W.get(e),i=d.state.lights,o=d.state.shadowsArray,a=i.state.version,s=K.getParameters(e,i.state,o,t,n),l=K.getProgramCacheKey(s),c=r.program,u=!0;if(r.environment=e.isMeshStandardMaterial?t.environment:null,r.fog=t.fog,r.envMap=X.get(e.envMap||r.environment),void 0===c)e.addEventListener("dispose",ye);else if(c.cacheKey!==l)Ae(e);else if(r.lightsStateVersion!==a)u=!1;else{if(void 0!==s.shaderID)return;u=!1}u&&(s.uniforms=K.getUniforms(e),e.onBeforeCompile(s,f),c=K.acquireProgram(s,l),r.program=c,r.uniforms=s.uniforms,r.outputEncoding=s.outputEncoding);var h=r.uniforms;(e.isShaderMaterial||e.isRawShaderMaterial)&&!0!==e.clipping||(r.numClippingPlanes=ne.numPlanes,r.numIntersection=ne.numIntersection,h.clippingPlanes=ne.uniform),r.needsLights=Ie(e),r.lightsStateVersion=a,r.needsLights&&(h.ambientLightColor.value=i.state.ambient,h.lightProbe.value=i.state.probe,h.directionalLights.value=i.state.directional,h.directionalLightShadows.value=i.state.directionalShadow,h.spotLights.value=i.state.spot,h.spotLightShadows.value=i.state.spotShadow,h.rectAreaLights.value=i.state.rectArea,h.ltc_1.value=i.state.rectAreaLTC1,h.ltc_2.value=i.state.rectAreaLTC2,h.pointLights.value=i.state.point,h.pointLightShadows.value=i.state.pointShadow,h.hemisphereLights.value=i.state.hemi,h.directionalShadowMap.value=i.state.directionalShadowMap,h.directionalShadowMatrix.value=i.state.directionalShadowMatrix,h.spotShadowMap.value=i.state.spotShadowMap,h.spotShadowMatrix.value=i.state.spotShadowMatrix,h.pointShadowMap.value=i.state.pointShadowMap,h.pointShadowMatrix.value=i.state.pointShadowMatrix);var p=r.program.getUniforms(),m=ss.seqWithValue(p.seq,h);r.uniformsList=m}function Re(e,t,n,r){!0!==t.isScene&&(t=U),q.resetTextureUnits();var i=t.fog,o=n.isMeshStandardMaterial?t.environment:null,a=null===b?f.outputEncoding:b.texture.encoding,s=X.get(n.envMap||o),l=W.get(n),c=d.state.lights;if(!0===B&&(!0===F||e!==x)){var u=e===x&&n.id===w;ne.setState(n,e,u)}n.version===l.__version?n.fog&&l.fog!==i||l.environment!==o||l.needsLights&&l.lightsStateVersion!==c.state.version?Le(n,t,r):void 0===l.numClippingPlanes||l.numClippingPlanes===ne.numPlanes&&l.numIntersection===ne.numIntersection?(l.outputEncoding!==a||l.envMap!==s)&&Le(n,t,r):Le(n,t,r):(Le(n,t,r),l.__version=n.version);var h=!1,p=!1,m=!1,v=l.program,g=v.getUniforms(),y=l.uniforms;if(j.useProgram(v.program)&&(h=!0,p=!0,m=!0),n.id!==w&&(w=n.id,p=!0),h||x!==e){if(g.setValue(ce,"projectionMatrix",e.projectionMatrix),z.logarithmicDepthBuffer&&g.setValue(ce,"logDepthBufFC",2/(Math.log(e.far+1)/Math.LN2)),x!==e&&(x=e,p=!0,m=!0),n.isShaderMaterial||n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshStandardMaterial||n.envMap){var A=g.map.cameraPosition;void 0!==A&&A.setValue(ce,N.setFromMatrixPosition(e.matrixWorld))}(n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshLambertMaterial||n.isMeshBasicMaterial||n.isMeshStandardMaterial||n.isShaderMaterial)&&g.setValue(ce,"isOrthographic",!0===e.isOrthographicCamera),(n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshLambertMaterial||n.isMeshBasicMaterial||n.isMeshStandardMaterial||n.isShaderMaterial||n.isShadowMaterial||n.skinning)&&g.setValue(ce,"viewMatrix",e.matrixWorldInverse)}if(n.skinning){g.setOptional(ce,r,"bindMatrix"),g.setOptional(ce,r,"bindMatrixInverse");var E=r.skeleton;if(E){var M=E.bones;if(z.floatVertexTextures){if(null===E.boneTexture){var _=Math.sqrt(4*M.length);_=Kn.ceilPowerOfTwo(_),_=Math.max(_,4);var T=new Float32Array(_*_*4);T.set(E.boneMatrices);var L=new Uo(T,_,_,Ue,Pe);E.boneMatrices=T,E.boneTexture=L,E.boneTextureSize=_}g.setValue(ce,"boneTexture",E.boneTexture,q),g.setValue(ce,"boneTextureSize",E.boneTextureSize)}else g.setOptional(ce,E,"boneMatrices")}}return(p||l.receiveShadow!==r.receiveShadow)&&(l.receiveShadow=r.receiveShadow,g.setValue(ce,"receiveShadow",r.receiveShadow)),p&&(g.setValue(ce,"toneMappingExposure",f.toneMappingExposure),l.needsLights&&Oe(y,m),i&&n.fog&&J.refreshFogUniforms(y,i),J.refreshMaterialUniforms(y,n,C,S),ss.upload(ce,l.uniformsList,y,q)),n.isShaderMaterial&&!0===n.uniformsNeedUpdate&&(ss.upload(ce,l.uniformsList,y,q),n.uniformsNeedUpdate=!1),n.isSpriteMaterial&&g.setValue(ce,"center",r.center),g.setValue(ce,"modelViewMatrix",r.modelViewMatrix),g.setValue(ce,"normalMatrix",r.normalMatrix),g.setValue(ce,"modelMatrix",r.matrixWorld),v}function Oe(e,t){e.ambientLightColor.needsUpdate=t,e.lightProbe.needsUpdate=t,e.directionalLights.needsUpdate=t,e.directionalLightShadows.needsUpdate=t,e.pointLights.needsUpdate=t,e.pointLightShadows.needsUpdate=t,e.spotLights.needsUpdate=t,e.spotLightShadows.needsUpdate=t,e.rectAreaLights.needsUpdate=t,e.hemisphereLights.needsUpdate=t}function Ie(e){return e.isMeshLambertMaterial||e.isMeshToonMaterial||e.isMeshPhongMaterial||e.isMeshStandardMaterial||e.isShadowMaterial||e.isShaderMaterial&&!0===e.lights}Me.setAnimationLoop(Ee),"undefined"!==typeof window&&Me.setContext(window),this.setAnimationLoop=function(e){xe=e,fe.setAnimationLoop(e),null===e?Me.stop():Me.start()},this.render=function(e,t){var n,r;if(void 0!==arguments[2]&&(console.warn("THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead."),n=arguments[2]),void 0!==arguments[3]&&(console.warn("THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead."),r=arguments[3]),void 0===t||!0===t.isCamera){if(!0!==m){le.resetDefaultState(),w=-1,x=null,!0===e.autoUpdate&&e.updateMatrixWorld(),null===t.parent&&t.updateMatrixWorld(),!0===fe.enabled&&!0===fe.isPresenting&&(t=fe.getCamera(t)),!0===e.isScene&&e.onBeforeRender(f,e,t,n||b),(d=te.get(e,p.length)).init(),p.push(d),k.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),I.setFromProjectionMatrix(k),F=this.localClippingEnabled,B=ne.init(this.clippingPlanes,F,t),(h=ee.get(e,t)).init(),Te(e,t,0,f.sortObjects),h.finish(),!0===f.sortObjects&&h.sort(L,R),!0===B&&ne.beginShadows();var i=d.state.shadowsArray;me.render(i,e,t),d.setupLights(),d.setupLightsView(t),!0===B&&ne.endShadows(),!0===this.info.autoReset&&this.info.reset(),void 0!==n&&this.setRenderTarget(n),re.render(h,e,t,r);var o=h.opaque,a=h.transparent;o.length>0&&Se(o,e,t),a.length>0&&Se(a,e,t),!0===e.isScene&&e.onAfterRender(f,e,t),null!==b&&(q.updateRenderTargetMipmap(b),q.updateMultisampleRenderTarget(b)),j.buffers.depth.setTest(!0),j.buffers.depth.setMask(!0),j.buffers.color.setMask(!0),j.setPolygonOffset(!1),fe.enabled&&fe.submitFrame&&fe.submitFrame(),p.pop(),d=p.length>0?p[p.length-1]:null,h=null}}else console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.")},this.setTexture2D=function(){var e=!1;return function(t,n){t&&t.isWebGLRenderTarget&&(e||(console.warn("THREE.WebGLRenderer.setTexture2D: don't use render targets as textures. Use their .texture property instead."),e=!0),t=t.texture),q.setTexture2D(t,n)}}(),this.setFramebuffer=function(e){v!==e&&null===b&&ce.bindFramebuffer(36160,e),v=e},this.getActiveCubeFace=function(){return g},this.getActiveMipmapLevel=function(){return y},this.getRenderList=function(){return h},this.setRenderList=function(e){h=e},this.getRenderTarget=function(){return b},this.setRenderTarget=function(e,t,n){void 0===t&&(t=0),void 0===n&&(n=0),b=e,g=t,y=n,e&&void 0===W.get(e).__webglFramebuffer&&q.setupRenderTarget(e);var r=v,i=!1;if(e){var o=W.get(e).__webglFramebuffer;e.isWebGLCubeRenderTarget?(r=o[t],i=!0):r=e.isWebGLMultisampleRenderTarget?W.get(e).__webglMultisampledFramebuffer:o,E.copy(e.viewport),M.copy(e.scissor),_=e.scissorTest}else E.copy(P).multiplyScalar(C).floor(),M.copy(D).multiplyScalar(C).floor(),_=O;if(A!==r&&(ce.bindFramebuffer(36160,r),A=r),j.viewport(E),j.scissor(M),j.setScissorTest(_),i){var a=W.get(e.texture);ce.framebufferTexture2D(36160,36064,34069+t,a.__webglTexture,n)}},this.readRenderTargetPixels=function(e,t,n,r,i,o,a){if(e&&e.isWebGLRenderTarget){var s=W.get(e).__webglFramebuffer;if(e.isWebGLCubeRenderTarget&&void 0!==a&&(s=s[a]),s){var l=!1;s!==A&&(ce.bindFramebuffer(36160,s),l=!0);try{var c=e.texture,u=c.format,h=c.type;if(u!==Ue&&se.convert(u)!==ce.getParameter(35739))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");var d=h===De&&(G.has("EXT_color_buffer_half_float")||z.isWebGL2&&G.has("EXT_color_buffer_float"));if(h!==_e&&se.convert(h)!==ce.getParameter(35738)&&(h!==Pe||!(z.isWebGL2||G.has("OES_texture_float")||G.has("WEBGL_color_buffer_float")))&&!d)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");36053===ce.checkFramebufferStatus(36160)?t>=0&&t<=e.width-r&&n>=0&&n<=e.height-i&&ce.readPixels(t,n,r,i,se.convert(u),se.convert(h),o):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.")}finally{l&&ce.bindFramebuffer(36160,A)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")},this.copyFramebufferToTexture=function(e,t,n){void 0===n&&(n=0);var r=Math.pow(2,-n),i=Math.floor(t.image.width*r),o=Math.floor(t.image.height*r),a=se.convert(t.format);q.setTexture2D(t,0),ce.copyTexImage2D(3553,n,a,e.x,e.y,i,o,0),j.unbindTexture()},this.copyTextureToTexture=function(e,t,n,r){void 0===r&&(r=0);var i=t.image.width,o=t.image.height,a=se.convert(n.format),s=se.convert(n.type);q.setTexture2D(n,0),ce.pixelStorei(37440,n.flipY),ce.pixelStorei(37441,n.premultiplyAlpha),ce.pixelStorei(3317,n.unpackAlignment),t.isDataTexture?ce.texSubImage2D(3553,r,e.x,e.y,i,o,a,s,t.image.data):t.isCompressedTexture?ce.compressedTexSubImage2D(3553,r,e.x,e.y,t.mipmaps[0].width,t.mipmaps[0].height,a,t.mipmaps[0].data):ce.texSubImage2D(3553,r,e.x,e.y,a,s,t.image),0===r&&n.generateMipmaps&&ce.generateMipmap(3553),j.unbindTexture()},this.initTexture=function(e){q.setTexture2D(e,0),j.unbindTexture()},this.resetState=function(){j.reset(),le.reset()},"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}function fl(e){pl.call(this,e)}Object.assign(ll.prototype,qn.prototype),Object.assign(cl.prototype,{constructor:cl,getHandSpace:function(){return null===this._hand&&(this._hand=new rl,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand},getTargetRaySpace:function(){return null===this._targetRay&&(this._targetRay=new rl,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1),this._targetRay},getGripSpace:function(){return null===this._grip&&(this._grip=new rl,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1),this._grip},dispatchEvent:function(e){return null!==this._targetRay&&this._targetRay.dispatchEvent(e),null!==this._grip&&this._grip.dispatchEvent(e),null!==this._hand&&this._hand.dispatchEvent(e),this},disconnect:function(e){return this.dispatchEvent({type:"disconnected",data:e}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this},update:function(e,t,n){var r=null,i=null,o=null,a=this._targetRay,s=this._grip,l=this._hand;if(e&&"visible-blurred"!==t.session.visibilityState)if(l&&e.hand){o=!0;for(var c,u=Wn(e.hand.values());!(c=u()).done;){var h=c.value,d=t.getJointPose(h,n);if(void 0===l.joints[h.jointName]){var p=new rl;p.matrixAutoUpdate=!1,p.visible=!1,l.joints[h.jointName]=p,l.add(p)}var f=l.joints[h.jointName];null!==d&&(f.matrix.fromArray(d.transform.matrix),f.matrix.decompose(f.position,f.rotation,f.scale),f.jointRadius=d.radius),f.visible=null!==d}var m=l.joints["index-finger-tip"],v=l.joints["thumb-tip"],g=m.position.distanceTo(v.position),y=.02,b=.005;l.inputState.pinching&&g>y+b?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!l.inputState.pinching&&g<=y-b&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else null!==a&&null!==(r=t.getPose(e.targetRaySpace,n))&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale)),null!==s&&e.gripSpace&&null!==(i=t.getPose(e.gripSpace,n))&&(s.matrix.fromArray(i.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale));return null!==a&&(a.visible=null!==r),null!==s&&(s.visible=null!==i),null!==l&&(l.visible=null!==o),this}}),Object.assign(ul.prototype,qn.prototype),fl.prototype=Object.assign(Object.create(pl.prototype),{constructor:fl,isWebGL1Renderer:!0});var ml=function(){function e(e,t){Object.defineProperty(this,"isFogExp2",{value:!0}),this.name="",this.color=new Li(e),this.density=void 0!==t?t:25e-5}var t=e.prototype;return t.clone=function(){return new e(this.color,this.density)},t.toJSON=function(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}},e}(),vl=function(){function e(e,t,n){Object.defineProperty(this,"isFog",{value:!0}),this.name="",this.color=new Li(e),this.near=void 0!==t?t:1,this.far=void 0!==n?n:1e3}var t=e.prototype;return t.clone=function(){return new e(this.color,this.near,this.far)},t.toJSON=function(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}},e}(),gl=function(e){function t(){var t;return t=e.call(this)||this,Object.defineProperty(zn(t),"isScene",{value:!0}),t.type="Scene",t.background=null,t.environment=null,t.fog=null,t.overrideMaterial=null,t.autoUpdate=!0,"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:zn(t)})),t}Gn(t,e);var n=t.prototype;return n.copy=function(t,n){return e.prototype.copy.call(this,t,n),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.autoUpdate=t.autoUpdate,this.matrixAutoUpdate=t.matrixAutoUpdate,this},n.toJSON=function(t){var n=e.prototype.toJSON.call(this,t);return null!==this.background&&(n.object.background=this.background.toJSON(t)),null!==this.environment&&(n.object.environment=this.environment.toJSON(t)),null!==this.fog&&(n.object.fog=this.fog.toJSON()),n},t}(si);function yl(e,t){this.array=e,this.stride=t,this.count=void 0!==e?e.length/t:0,this.usage=Tn,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Kn.generateUUID()}Object.defineProperty(yl.prototype,"needsUpdate",{set:function(e){!0===e&&this.version++}}),Object.assign(yl.prototype,{isInterleavedBuffer:!0,onUploadCallback:function(){},setUsage:function(e){return this.usage=e,this},copy:function(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this},copyAt:function(e,t,n){e*=this.stride,n*=t.stride;for(var r=0,i=this.stride;r<i;r++)this.array[e+r]=t.array[n+r];return this},set:function(e,t){return void 0===t&&(t=0),this.array.set(e,t),this},clone:function(e){void 0===e.arrayBuffers&&(e.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=Kn.generateUUID()),void 0===e.arrayBuffers[this.array.buffer._uuid]&&(e.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);var t=new yl(new this.array.constructor(e.arrayBuffers[this.array.buffer._uuid]),this.stride);return t.setUsage(this.usage),t},onUpload:function(e){return this.onUploadCallback=e,this},toJSON:function(e){return void 0===e.arrayBuffers&&(e.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=Kn.generateUUID()),void 0===e.arrayBuffers[this.array.buffer._uuid]&&(e.arrayBuffers[this.array.buffer._uuid]=Array.prototype.slice.call(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}});var bl,Al=new lr;function wl(e,t,n,r){this.name="",this.data=e,this.itemSize=t,this.offset=n,this.normalized=!0===r}function xl(e){Di.call(this),this.type="SpriteMaterial",this.color=new Li(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.setValues(e)}Object.defineProperties(wl.prototype,{count:{get:function(){return this.data.count}},array:{get:function(){return this.data.array}},needsUpdate:{set:function(e){this.data.needsUpdate=e}}}),Object.assign(wl.prototype,{isInterleavedBufferAttribute:!0,applyMatrix4:function(e){for(var t=0,n=this.data.count;t<n;t++)Al.x=this.getX(t),Al.y=this.getY(t),Al.z=this.getZ(t),Al.applyMatrix4(e),this.setXYZ(t,Al.x,Al.y,Al.z);return this},setX:function(e,t){return this.data.array[e*this.data.stride+this.offset]=t,this},setY:function(e,t){return this.data.array[e*this.data.stride+this.offset+1]=t,this},setZ:function(e,t){return this.data.array[e*this.data.stride+this.offset+2]=t,this},setW:function(e,t){return this.data.array[e*this.data.stride+this.offset+3]=t,this},getX:function(e){return this.data.array[e*this.data.stride+this.offset]},getY:function(e){return this.data.array[e*this.data.stride+this.offset+1]},getZ:function(e){return this.data.array[e*this.data.stride+this.offset+2]},getW:function(e){return this.data.array[e*this.data.stride+this.offset+3]},setXY:function(e,t,n){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=n,this},setXYZ:function(e,t,n,r){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=n,this.data.array[e+2]=r,this},setXYZW:function(e,t,n,r,i){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=n,this.data.array[e+2]=r,this.data.array[e+3]=i,this},clone:function(e){if(void 0===e){console.log("THREE.InterleavedBufferAttribute.clone(): Cloning an interlaved buffer attribute will deinterleave buffer data.");for(var t=[],n=0;n<this.count;n++)for(var r=n*this.data.stride+this.offset,i=0;i<this.itemSize;i++)t.push(this.data.array[r+i]);return new Fi(new this.array.constructor(t),this.itemSize,this.normalized)}return void 0===e.interleavedBuffers&&(e.interleavedBuffers={}),void 0===e.interleavedBuffers[this.data.uuid]&&(e.interleavedBuffers[this.data.uuid]=this.data.clone(e)),new wl(e.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)},toJSON:function(e){if(void 0===e){console.log("THREE.InterleavedBufferAttribute.toJSON(): Serializing an interlaved buffer attribute will deinterleave buffer data.");for(var t=[],n=0;n<this.count;n++)for(var r=n*this.data.stride+this.offset,i=0;i<this.itemSize;i++)t.push(this.data.array[r+i]);return{itemSize:this.itemSize,type:this.array.constructor.name,array:t,normalized:this.normalized}}return void 0===e.interleavedBuffers&&(e.interleavedBuffers={}),void 0===e.interleavedBuffers[this.data.uuid]&&(e.interleavedBuffers[this.data.uuid]=this.data.toJSON(e)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}),xl.prototype=Object.create(Di.prototype),xl.prototype.constructor=xl,xl.prototype.isSpriteMaterial=!0,xl.prototype.copy=function(e){return Di.prototype.copy.call(this,e),this.color.copy(e.color),this.map=e.map,this.alphaMap=e.alphaMap,this.rotation=e.rotation,this.sizeAttenuation=e.sizeAttenuation,this};var El=new lr,Ml=new lr,_l=new lr,Tl=new Jn,Sl=new Jn,Cl=new Fr,Ll=new lr,Rl=new lr,Pl=new lr,Dl=new Jn,Ol=new Jn,Il=new Jn;function Bl(e){if(si.call(this),this.type="Sprite",void 0===bl){bl=new ro;var t=new yl(new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),5);bl.setIndex([0,1,2,0,2,3]),bl.setAttribute("position",new wl(t,3,0,!1)),bl.setAttribute("uv",new wl(t,2,3,!1))}this.geometry=bl,this.material=void 0!==e?e:new xl,this.center=new Jn(.5,.5)}function Fl(e,t,n,r,i,o){Tl.subVectors(e,n).addScalar(.5).multiply(r),void 0!==i?(Sl.x=o*Tl.x-i*Tl.y,Sl.y=i*Tl.x+o*Tl.y):Sl.copy(Tl),e.copy(t),e.x+=Sl.x,e.y+=Sl.y,e.applyMatrix4(Cl)}Bl.prototype=Object.assign(Object.create(si.prototype),{constructor:Bl,isSprite:!0,raycast:function(e,t){null===e.camera&&console.error('THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.'),Ml.setFromMatrixScale(this.matrixWorld),Cl.copy(e.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(e.camera.matrixWorldInverse,this.matrixWorld),_l.setFromMatrixPosition(this.modelViewMatrix),e.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&Ml.multiplyScalar(-_l.z);var n,r,i=this.material.rotation;0!==i&&(r=Math.cos(i),n=Math.sin(i));var o=this.center;Fl(Ll.set(-.5,-.5,0),_l,o,Ml,n,r),Fl(Rl.set(.5,-.5,0),_l,o,Ml,n,r),Fl(Pl.set(.5,.5,0),_l,o,Ml,n,r),Dl.set(0,0),Ol.set(1,0),Il.set(1,1);var a=e.ray.intersectTriangle(Ll,Rl,Pl,!1,El);if(null!==a||(Fl(Rl.set(-.5,.5,0),_l,o,Ml,n,r),Ol.set(0,1),null!==(a=e.ray.intersectTriangle(Ll,Pl,Rl,!1,El)))){var s=e.ray.origin.distanceTo(El);s<e.near||s>e.far||t.push({distance:s,point:El.clone(),uv:xi.getUV(El,Ll,Rl,Pl,Dl,Ol,Il,new Jn),face:null,object:this})}},copy:function(e){return si.prototype.copy.call(this,e),void 0!==e.center&&this.center.copy(e.center),this.material=e.material,this}});var kl=new lr,Nl=new lr;function Ul(){si.call(this),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}}),this.autoUpdate=!0}Ul.prototype=Object.assign(Object.create(si.prototype),{constructor:Ul,isLOD:!0,copy:function(e){si.prototype.copy.call(this,e,!1);for(var t=e.levels,n=0,r=t.length;n<r;n++){var i=t[n];this.addLevel(i.object.clone(),i.distance)}return this.autoUpdate=e.autoUpdate,this},addLevel:function(e,t){void 0===t&&(t=0),t=Math.abs(t);var n,r=this.levels;for(n=0;n<r.length&&!(t<r[n].distance);n++);return r.splice(n,0,{distance:t,object:e}),this.add(e),this},getCurrentLevel:function(){return this._currentLevel},getObjectForDistance:function(e){var t=this.levels;if(t.length>0){var n,r;for(n=1,r=t.length;n<r&&!(e<t[n].distance);n++);return t[n-1].object}return null},raycast:function(e,t){if(this.levels.length>0){kl.setFromMatrixPosition(this.matrixWorld);var n=e.ray.origin.distanceTo(kl);this.getObjectForDistance(n).raycast(e,t)}},update:function(e){var t=this.levels;if(t.length>1){kl.setFromMatrixPosition(e.matrixWorld),Nl.setFromMatrixPosition(this.matrixWorld);var n,r,i=kl.distanceTo(Nl)/e.zoom;for(t[0].object.visible=!0,n=1,r=t.length;n<r&&i>=t[n].distance;n++)t[n-1].object.visible=!1,t[n].object.visible=!0;for(this._currentLevel=n-1;n<r;n++)t[n].object.visible=!1}},toJSON:function(e){var t=si.prototype.toJSON.call(this,e);!1===this.autoUpdate&&(t.object.autoUpdate=!1),t.object.levels=[];for(var n=this.levels,r=0,i=n.length;r<i;r++){var o=n[r];t.object.levels.push({object:o.object.uuid,distance:o.distance})}return t}});var Hl=new lr,Gl=new ir,zl=new ir,jl=new lr,Vl=new Fr;function Wl(e,t){e&&e.isGeometry&&console.error("THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead."),xo.call(this,e,t),this.type="SkinnedMesh",this.bindMode="attached",this.bindMatrix=new Fr,this.bindMatrixInverse=new Fr}function ql(){si.call(this),this.type="Bone"}Wl.prototype=Object.assign(Object.create(xo.prototype),{constructor:Wl,isSkinnedMesh:!0,copy:function(e){return xo.prototype.copy.call(this,e),this.bindMode=e.bindMode,this.bindMatrix.copy(e.bindMatrix),this.bindMatrixInverse.copy(e.bindMatrixInverse),this.skeleton=e.skeleton,this},bind:function(e,t){this.skeleton=e,void 0===t&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),t=this.matrixWorld),this.bindMatrix.copy(t),this.bindMatrixInverse.copy(t).invert()},pose:function(){this.skeleton.pose()},normalizeSkinWeights:function(){for(var e=new ir,t=this.geometry.attributes.skinWeight,n=0,r=t.count;n<r;n++){e.x=t.getX(n),e.y=t.getY(n),e.z=t.getZ(n),e.w=t.getW(n);var i=1/e.manhattanLength();i!==1/0?e.multiplyScalar(i):e.set(1,0,0,0),t.setXYZW(n,e.x,e.y,e.z,e.w)}},updateMatrixWorld:function(e){xo.prototype.updateMatrixWorld.call(this,e),"attached"===this.bindMode?this.bindMatrixInverse.copy(this.matrixWorld).invert():"detached"===this.bindMode?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)},boneTransform:function(e,t){var n=this.skeleton,r=this.geometry;Gl.fromBufferAttribute(r.attributes.skinIndex,e),zl.fromBufferAttribute(r.attributes.skinWeight,e),Hl.fromBufferAttribute(r.attributes.position,e).applyMatrix4(this.bindMatrix),t.set(0,0,0);for(var i=0;i<4;i++){var o=zl.getComponent(i);if(0!==o){var a=Gl.getComponent(i);Vl.multiplyMatrices(n.bones[a].matrixWorld,n.boneInverses[a]),t.addScaledVector(jl.copy(Hl).applyMatrix4(Vl),o)}}return t.applyMatrix4(this.bindMatrixInverse)}}),ql.prototype=Object.assign(Object.create(si.prototype),{constructor:ql,isBone:!0});var Xl=new Fr,Yl=new Fr;function Ql(e,t){void 0===e&&(e=[]),void 0===t&&(t=[]),this.uuid=Kn.generateUUID(),this.bones=e.slice(0),this.boneInverses=t,this.boneMatrices=null,this.boneTexture=null,this.boneTextureSize=0,this.frame=-1,this.init()}Object.assign(Ql.prototype,{init:function(){var e=this.bones,t=this.boneInverses;if(this.boneMatrices=new Float32Array(16*e.length),0===t.length)this.calculateInverses();else if(e.length!==t.length){console.warn("THREE.Skeleton: Number of inverse bone matrices does not match amount of bones."),this.boneInverses=[];for(var n=0,r=this.bones.length;n<r;n++)this.boneInverses.push(new Fr)}},calculateInverses:function(){this.boneInverses.length=0;for(var e=0,t=this.bones.length;e<t;e++){var n=new Fr;this.bones[e]&&n.copy(this.bones[e].matrixWorld).invert(),this.boneInverses.push(n)}},pose:function(){for(var e=0,t=this.bones.length;e<t;e++){var n=this.bones[e];n&&n.matrixWorld.copy(this.boneInverses[e]).invert()}for(var r=0,i=this.bones.length;r<i;r++){var o=this.bones[r];o&&(o.parent&&o.parent.isBone?(o.matrix.copy(o.parent.matrixWorld).invert(),o.matrix.multiply(o.matrixWorld)):o.matrix.copy(o.matrixWorld),o.matrix.decompose(o.position,o.quaternion,o.scale))}},update:function(){for(var e=this.bones,t=this.boneInverses,n=this.boneMatrices,r=this.boneTexture,i=0,o=e.length;i<o;i++){var a=e[i]?e[i].matrixWorld:Yl;Xl.multiplyMatrices(a,t[i]),Xl.toArray(n,16*i)}null!==r&&(r.needsUpdate=!0)},clone:function(){return new Ql(this.bones,this.boneInverses)},getBoneByName:function(e){for(var t=0,n=this.bones.length;t<n;t++){var r=this.bones[t];if(r.name===e)return r}},dispose:function(){null!==this.boneTexture&&(this.boneTexture.dispose(),this.boneTexture=null)},fromJSON:function(e,t){this.uuid=e.uuid;for(var n=0,r=e.bones.length;n<r;n++){var i=e.bones[n],o=t[i];void 0===o&&(console.warn("THREE.Skeleton: No bone found with UUID:",i),o=new ql),this.bones.push(o),this.boneInverses.push((new Fr).fromArray(e.boneInverses[n]))}return this.init(),this},toJSON:function(){var e={metadata:{version:4.5,type:"Skeleton",generator:"Skeleton.toJSON"},bones:[],boneInverses:[]};e.uuid=this.uuid;for(var t=this.bones,n=this.boneInverses,r=0,i=t.length;r<i;r++){var o=t[r];e.bones.push(o.uuid);var a=n[r];e.boneInverses.push(a.toArray())}return e}});var Zl=new Fr,Kl=new Fr,Jl=[],$l=new xo;function ec(e,t,n){xo.call(this,e,t),this.instanceMatrix=new Fi(new Float32Array(16*n),16),this.instanceColor=null,this.count=n,this.frustumCulled=!1}function tc(e){Di.call(this),this.type="LineBasicMaterial",this.color=new Li(16777215),this.linewidth=1,this.linecap="round",this.linejoin="round",this.morphTargets=!1,this.setValues(e)}ec.prototype=Object.assign(Object.create(xo.prototype),{constructor:ec,isInstancedMesh:!0,copy:function(e){return xo.prototype.copy.call(this,e),this.instanceMatrix.copy(e.instanceMatrix),null!==e.instanceColor&&(this.instanceColor=e.instanceColor.clone()),this.count=e.count,this},getColorAt:function(e,t){t.fromArray(this.instanceColor.array,3*e)},getMatrixAt:function(e,t){t.fromArray(this.instanceMatrix.array,16*e)},raycast:function(e,t){var n=this.matrixWorld,r=this.count;if($l.geometry=this.geometry,$l.material=this.material,void 0!==$l.material)for(var i=0;i<r;i++){this.getMatrixAt(i,Zl),Kl.multiplyMatrices(n,Zl),$l.matrixWorld=Kl,$l.raycast(e,Jl);for(var o=0,a=Jl.length;o<a;o++){var s=Jl[o];s.instanceId=i,s.object=this,t.push(s)}Jl.length=0}},setColorAt:function(e,t){null===this.instanceColor&&(this.instanceColor=new Fi(new Float32Array(3*this.count),3)),t.toArray(this.instanceColor.array,3*e)},setMatrixAt:function(e,t){t.toArray(this.instanceMatrix.array,16*e)},updateMorphTargets:function(){},dispose:function(){this.dispatchEvent({type:"dispose"})}}),tc.prototype=Object.create(Di.prototype),tc.prototype.constructor=tc,tc.prototype.isLineBasicMaterial=!0,tc.prototype.copy=function(e){return Di.prototype.copy.call(this,e),this.color.copy(e.color),this.linewidth=e.linewidth,this.linecap=e.linecap,this.linejoin=e.linejoin,this.morphTargets=e.morphTargets,this};var nc=new lr,rc=new lr,ic=new Fr,oc=new Br,ac=new Sr;function sc(e,t){void 0===e&&(e=new ro),void 0===t&&(t=new tc),si.call(this),this.type="Line",this.geometry=e,this.material=t,this.updateMorphTargets()}sc.prototype=Object.assign(Object.create(si.prototype),{constructor:sc,isLine:!0,copy:function(e){return si.prototype.copy.call(this,e),this.material=e.material,this.geometry=e.geometry,this},computeLineDistances:function(){var e=this.geometry;if(e.isBufferGeometry)if(null===e.index){for(var t=e.attributes.position,n=[0],r=1,i=t.count;r<i;r++)nc.fromBufferAttribute(t,r-1),rc.fromBufferAttribute(t,r),n[r]=n[r-1],n[r]+=nc.distanceTo(rc);e.setAttribute("lineDistance",new Wi(n,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else e.isGeometry&&console.error("THREE.Line.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");return this},raycast:function(e,t){var n=this.geometry,r=this.matrixWorld,i=e.params.Line.threshold;if(null===n.boundingSphere&&n.computeBoundingSphere(),ac.copy(n.boundingSphere),ac.applyMatrix4(r),ac.radius+=i,!1!==e.ray.intersectsSphere(ac)){ic.copy(r).invert(),oc.copy(e.ray).applyMatrix4(ic);var o=i/((this.scale.x+this.scale.y+this.scale.z)/3),a=o*o,s=new lr,l=new lr,c=new lr,u=new lr,h=this.isLineSegments?2:1;if(n.isBufferGeometry){var d=n.index,p=n.attributes.position;if(null!==d)for(var f=d.array,m=0,v=f.length-1;m<v;m+=h){var g=f[m],y=f[m+1];if(s.fromBufferAttribute(p,g),l.fromBufferAttribute(p,y),!(oc.distanceSqToSegment(s,l,u,c)>a)){u.applyMatrix4(this.matrixWorld);var b=e.ray.origin.distanceTo(u);b<e.near||b>e.far||t.push({distance:b,point:c.clone().applyMatrix4(this.matrixWorld),index:m,face:null,faceIndex:null,object:this})}}else for(var A=0,w=p.count-1;A<w;A+=h)if(s.fromBufferAttribute(p,A),l.fromBufferAttribute(p,A+1),!(oc.distanceSqToSegment(s,l,u,c)>a)){u.applyMatrix4(this.matrixWorld);var x=e.ray.origin.distanceTo(u);x<e.near||x>e.far||t.push({distance:x,point:c.clone().applyMatrix4(this.matrixWorld),index:A,face:null,faceIndex:null,object:this})}}else n.isGeometry&&console.error("THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}},updateMorphTargets:function(){var e=this.geometry;if(e.isBufferGeometry){var t=e.morphAttributes,n=Object.keys(t);if(n.length>0){var r=t[n[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(var i=0,o=r.length;i<o;i++){var a=r[i].name||String(i);this.morphTargetInfluences.push(0),this.morphTargetDictionary[a]=i}}}}else{var s=e.morphTargets;void 0!==s&&s.length>0&&console.error("THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}});var lc=new lr,cc=new lr;function uc(e,t){sc.call(this,e,t),this.type="LineSegments"}function hc(e,t){sc.call(this,e,t),this.type="LineLoop"}function dc(e){Di.call(this),this.type="PointsMaterial",this.color=new Li(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.morphTargets=!1,this.setValues(e)}uc.prototype=Object.assign(Object.create(sc.prototype),{constructor:uc,isLineSegments:!0,computeLineDistances:function(){var e=this.geometry;if(e.isBufferGeometry)if(null===e.index){for(var t=e.attributes.position,n=[],r=0,i=t.count;r<i;r+=2)lc.fromBufferAttribute(t,r),cc.fromBufferAttribute(t,r+1),n[r]=0===r?0:n[r-1],n[r+1]=n[r]+lc.distanceTo(cc);e.setAttribute("lineDistance",new Wi(n,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else e.isGeometry&&console.error("THREE.LineSegments.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");return this}}),hc.prototype=Object.assign(Object.create(sc.prototype),{constructor:hc,isLineLoop:!0}),dc.prototype=Object.create(Di.prototype),dc.prototype.constructor=dc,dc.prototype.isPointsMaterial=!0,dc.prototype.copy=function(e){return Di.prototype.copy.call(this,e),this.color.copy(e.color),this.map=e.map,this.alphaMap=e.alphaMap,this.size=e.size,this.sizeAttenuation=e.sizeAttenuation,this.morphTargets=e.morphTargets,this};var pc=new Fr,fc=new Br,mc=new Sr,vc=new lr;function gc(e,t){void 0===e&&(e=new ro),void 0===t&&(t=new dc),si.call(this),this.type="Points",this.geometry=e,this.material=t,this.updateMorphTargets()}function yc(e,t,n,r,i,o,a){var s=fc.distanceSqToPoint(e);if(s<n){var l=new lr;fc.closestPointToPoint(e,l),l.applyMatrix4(r);var c=i.ray.origin.distanceTo(l);if(c<i.near||c>i.far)return;o.push({distance:c,distanceToRay:Math.sqrt(s),point:l,index:t,face:null,object:a})}}function bc(e,t,n,r,i,o,a,s,l){nr.call(this,e,t,n,r,i,o,a,s,l),this.format=void 0!==a?a:Ne,this.minFilter=void 0!==o?o:Ae,this.magFilter=void 0!==i?i:Ae,this.generateMipmaps=!1;var c=this;function u(){c.needsUpdate=!0,e.requestVideoFrameCallback(u)}"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(u)}function Ac(e,t,n,r,i,o,a,s,l,c,u,h){nr.call(this,null,o,a,s,l,c,r,i,u,h),this.image={width:t,height:n},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}function wc(e,t,n,r,i,o,a,s,l){nr.call(this,e,t,n,r,i,o,a,s,l),this.needsUpdate=!0}function xc(e,t,n,r,i,o,a,s,l,c){if((c=void 0!==c?c:je)!==je&&c!==Ve)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&c===je&&(n=Ce),void 0===n&&c===Ve&&(n=Fe),nr.call(this,null,r,i,o,a,s,c,n,l),this.image={width:e,height:t},this.magFilter=void 0!==a?a:me,this.minFilter=void 0!==s?s:me,this.flipY=!1,this.generateMipmaps=!1}gc.prototype=Object.assign(Object.create(si.prototype),{constructor:gc,isPoints:!0,copy:function(e){return si.prototype.copy.call(this,e),this.material=e.material,this.geometry=e.geometry,this},raycast:function(e,t){var n=this.geometry,r=this.matrixWorld,i=e.params.Points.threshold;if(null===n.boundingSphere&&n.computeBoundingSphere(),mc.copy(n.boundingSphere),mc.applyMatrix4(r),mc.radius+=i,!1!==e.ray.intersectsSphere(mc)){pc.copy(r).invert(),fc.copy(e.ray).applyMatrix4(pc);var o=i/((this.scale.x+this.scale.y+this.scale.z)/3),a=o*o;if(n.isBufferGeometry){var s=n.index,l=n.attributes.position;if(null!==s)for(var c=s.array,u=0,h=c.length;u<h;u++){var d=c[u];vc.fromBufferAttribute(l,d),yc(vc,d,a,r,e,t,this)}else for(var p=0,f=l.count;p<f;p++)vc.fromBufferAttribute(l,p),yc(vc,p,a,r,e,t,this)}else console.error("THREE.Points.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}},updateMorphTargets:function(){var e=this.geometry;if(e.isBufferGeometry){var t=e.morphAttributes,n=Object.keys(t);if(n.length>0){var r=t[n[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(var i=0,o=r.length;i<o;i++){var a=r[i].name||String(i);this.morphTargetInfluences.push(0),this.morphTargetDictionary[a]=i}}}}else{var s=e.morphTargets;void 0!==s&&s.length>0&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}),bc.prototype=Object.assign(Object.create(nr.prototype),{constructor:bc,clone:function(){return new this.constructor(this.image).copy(this)},isVideoTexture:!0,update:function(){var e=this.image;!1==="requestVideoFrameCallback"in e&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}),Ac.prototype=Object.create(nr.prototype),Ac.prototype.constructor=Ac,Ac.prototype.isCompressedTexture=!0,wc.prototype=Object.create(nr.prototype),wc.prototype.constructor=wc,wc.prototype.isCanvasTexture=!0,xc.prototype=Object.create(nr.prototype),xc.prototype.constructor=xc,xc.prototype.isDepthTexture=!0;var Ec=function(e){function t(t,n,r,i){var o;void 0===t&&(t=1),void 0===n&&(n=8),void 0===r&&(r=0),void 0===i&&(i=2*Math.PI),(o=e.call(this)||this).type="CircleGeometry",o.parameters={radius:t,segments:n,thetaStart:r,thetaLength:i},n=Math.max(3,n);var a=[],s=[],l=[],c=[],u=new lr,h=new Jn;s.push(0,0,0),l.push(0,0,1),c.push(.5,.5);for(var d=0,p=3;d<=n;d++,p+=3){var f=r+d/n*i;u.x=t*Math.cos(f),u.y=t*Math.sin(f),s.push(u.x,u.y,u.z),l.push(0,0,1),h.x=(s[p]/t+1)/2,h.y=(s[p+1]/t+1)/2,c.push(h.x,h.y)}for(var m=1;m<=n;m++)a.push(m,m+1,0);return o.setIndex(a),o.setAttribute("position",new Wi(s,3)),o.setAttribute("normal",new Wi(l,3)),o.setAttribute("uv",new Wi(c,2)),o}return Gn(t,e),t}(ro),Mc=function(e){function t(t,n,r,i,o,a,s,l){var c;void 0===t&&(t=1),void 0===n&&(n=1),void 0===r&&(r=1),void 0===i&&(i=8),void 0===o&&(o=1),void 0===a&&(a=!1),void 0===s&&(s=0),void 0===l&&(l=2*Math.PI),(c=e.call(this)||this).type="CylinderGeometry",c.parameters={radiusTop:t,radiusBottom:n,height:r,radialSegments:i,heightSegments:o,openEnded:a,thetaStart:s,thetaLength:l};var u=zn(c);i=Math.floor(i),o=Math.floor(o);var h=[],d=[],p=[],f=[],m=0,v=[],g=r/2,y=0;function b(){for(var e=new lr,a=new lr,c=0,b=(n-t)/r,A=0;A<=o;A++){for(var w=[],x=A/o,E=x*(n-t)+t,M=0;M<=i;M++){var _=M/i,T=_*l+s,S=Math.sin(T),C=Math.cos(T);a.x=E*S,a.y=-x*r+g,a.z=E*C,d.push(a.x,a.y,a.z),e.set(S,b,C).normalize(),p.push(e.x,e.y,e.z),f.push(_,1-x),w.push(m++)}v.push(w)}for(var L=0;L<i;L++)for(var R=0;R<o;R++){var P=v[R][L],D=v[R+1][L],O=v[R+1][L+1],I=v[R][L+1];h.push(P,D,I),h.push(D,O,I),c+=6}u.addGroup(y,c,0),y+=c}function A(e){for(var r=m,o=new Jn,a=new lr,c=0,v=!0===e?t:n,b=!0===e?1:-1,A=1;A<=i;A++)d.push(0,g*b,0),p.push(0,b,0),f.push(.5,.5),m++;for(var w=m,x=0;x<=i;x++){var E=x/i*l+s,M=Math.cos(E),_=Math.sin(E);a.x=v*_,a.y=g*b,a.z=v*M,d.push(a.x,a.y,a.z),p.push(0,b,0),o.x=.5*M+.5,o.y=.5*_*b+.5,f.push(o.x,o.y),m++}for(var T=0;T<i;T++){var S=r+T,C=w+T;!0===e?h.push(C,C+1,S):h.push(C+1,C,S),c+=3}u.addGroup(y,c,!0===e?1:2),y+=c}return b(),!1===a&&(t>0&&A(!0),n>0&&A(!1)),c.setIndex(h),c.setAttribute("position",new Wi(d,3)),c.setAttribute("normal",new Wi(p,3)),c.setAttribute("uv",new Wi(f,2)),c}return Gn(t,e),t}(ro),_c=function(e){function t(t,n,r,i,o,a,s){var l;return void 0===t&&(t=1),void 0===n&&(n=1),void 0===r&&(r=8),void 0===i&&(i=1),void 0===o&&(o=!1),void 0===a&&(a=0),void 0===s&&(s=2*Math.PI),(l=e.call(this,0,t,n,r,i,o,a,s)||this).type="ConeGeometry",l.parameters={radius:t,height:n,radialSegments:r,heightSegments:i,openEnded:o,thetaStart:a,thetaLength:s},l}return Gn(t,e),t}(Mc),Tc=function(e){function t(t,n,r,i){var o;void 0===r&&(r=1),void 0===i&&(i=0),(o=e.call(this)||this).type="PolyhedronGeometry",o.parameters={vertices:t,indices:n,radius:r,detail:i};var a=[],s=[];function l(e){for(var t=new lr,r=new lr,i=new lr,o=0;o<n.length;o+=3)f(n[o+0],t),f(n[o+1],r),f(n[o+2],i),c(t,r,i,e)}function c(e,t,n,r){for(var i=r+1,o=[],a=0;a<=i;a++){o[a]=[];for(var s=e.clone().lerp(n,a/i),l=t.clone().lerp(n,a/i),c=i-a,u=0;u<=c;u++)o[a][u]=0===u&&a===i?s:s.clone().lerp(l,u/c)}for(var h=0;h<i;h++)for(var d=0;d<2*(i-h)-1;d++){var f=Math.floor(d/2);d%2===0?(p(o[h][f+1]),p(o[h+1][f]),p(o[h][f])):(p(o[h][f+1]),p(o[h+1][f+1]),p(o[h+1][f]))}}function u(e){for(var t=new lr,n=0;n<a.length;n+=3)t.x=a[n+0],t.y=a[n+1],t.z=a[n+2],t.normalize().multiplyScalar(e),a[n+0]=t.x,a[n+1]=t.y,a[n+2]=t.z}function h(){for(var e=new lr,t=0;t<a.length;t+=3){e.x=a[t+0],e.y=a[t+1],e.z=a[t+2];var n=g(e)/2/Math.PI+.5,r=y(e)/Math.PI+.5;s.push(n,1-r)}m(),d()}function d(){for(var e=0;e<s.length;e+=6){var t=s[e+0],n=s[e+2],r=s[e+4],i=Math.max(t,n,r),o=Math.min(t,n,r);i>.9&&o<.1&&(t<.2&&(s[e+0]+=1),n<.2&&(s[e+2]+=1),r<.2&&(s[e+4]+=1))}}function p(e){a.push(e.x,e.y,e.z)}function f(e,n){var r=3*e;n.x=t[r+0],n.y=t[r+1],n.z=t[r+2]}function m(){for(var e=new lr,t=new lr,n=new lr,r=new lr,i=new Jn,o=new Jn,l=new Jn,c=0,u=0;c<a.length;c+=9,u+=6){e.set(a[c+0],a[c+1],a[c+2]),t.set(a[c+3],a[c+4],a[c+5]),n.set(a[c+6],a[c+7],a[c+8]),i.set(s[u+0],s[u+1]),o.set(s[u+2],s[u+3]),l.set(s[u+4],s[u+5]),r.copy(e).add(t).add(n).divideScalar(3);var h=g(r);v(i,u+0,e,h),v(o,u+2,t,h),v(l,u+4,n,h)}}function v(e,t,n,r){r<0&&1===e.x&&(s[t]=e.x-1),0===n.x&&0===n.z&&(s[t]=r/2/Math.PI+.5)}function g(e){return Math.atan2(e.z,-e.x)}function y(e){return Math.atan2(-e.y,Math.sqrt(e.x*e.x+e.z*e.z))}return l(i),u(r),h(),o.setAttribute("position",new Wi(a,3)),o.setAttribute("normal",new Wi(a.slice(),3)),o.setAttribute("uv",new Wi(s,2)),0===i?o.computeVertexNormals():o.normalizeNormals(),o}return Gn(t,e),t}(ro),Sc=function(e){function t(t,n){var r;void 0===t&&(t=1),void 0===n&&(n=0);var i=(1+Math.sqrt(5))/2,o=1/i,a=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-o,-i,0,-o,i,0,o,-i,0,o,i,-o,-i,0,-o,i,0,o,-i,0,o,i,0,-i,0,-o,i,0,-o,-i,0,o,i,0,o],s=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9];return(r=e.call(this,a,s,t,n)||this).type="DodecahedronGeometry",r.parameters={radius:t,detail:n},r}return Gn(t,e),t}(Tc),Cc=new lr,Lc=new lr,Rc=new lr,Pc=new xi,Dc=function(e){function t(t,n){var r;if((r=e.call(this)||this).type="EdgesGeometry",r.parameters={thresholdAngle:n},n=void 0!==n?n:1,!0===t.isGeometry)return console.error("THREE.EdgesGeometry no longer supports THREE.Geometry. Use THREE.BufferGeometry instead."),zn(r);for(var i=4,o=Math.pow(10,i),a=Math.cos(Kn.DEG2RAD*n),s=t.getIndex(),l=t.getAttribute("position"),c=s?s.count:l.count,u=[0,0,0],h=["a","b","c"],d=new Array(3),p={},f=[],m=0;m<c;m+=3){s?(u[0]=s.getX(m),u[1]=s.getX(m+1),u[2]=s.getX(m+2)):(u[0]=m,u[1]=m+1,u[2]=m+2);var v=Pc.a,g=Pc.b,y=Pc.c;if(v.fromBufferAttribute(l,u[0]),g.fromBufferAttribute(l,u[1]),y.fromBufferAttribute(l,u[2]),Pc.getNormal(Rc),d[0]=Math.round(v.x*o)+","+Math.round(v.y*o)+","+Math.round(v.z*o),d[1]=Math.round(g.x*o)+","+Math.round(g.y*o)+","+Math.round(g.z*o),d[2]=Math.round(y.x*o)+","+Math.round(y.y*o)+","+Math.round(y.z*o),d[0]!==d[1]&&d[1]!==d[2]&&d[2]!==d[0])for(var b=0;b<3;b++){var A=(b+1)%3,w=d[b],x=d[A],E=Pc[h[b]],M=Pc[h[A]],_=w+"_"+x,T=x+"_"+w;T in p&&p[T]?(Rc.dot(p[T].normal)<=a&&(f.push(E.x,E.y,E.z),f.push(M.x,M.y,M.z)),p[T]=null):_ in p||(p[_]={index0:u[b],index1:u[A],normal:Rc.clone()})}}for(var S in p)if(p[S]){var C=p[S],L=C.index0,R=C.index1;Cc.fromBufferAttribute(l,L),Lc.fromBufferAttribute(l,R),f.push(Cc.x,Cc.y,Cc.z),f.push(Lc.x,Lc.y,Lc.z)}return r.setAttribute("position",new Wi(f,3)),r}return Gn(t,e),t}(ro),Oc={triangulate:function(e,t,n){n=n||2;var r,i,o,a,s,l,c,u=t&&t.length,h=u?t[0]*n:e.length,d=Ic(e,0,h,n,!0),p=[];if(!d||d.next===d.prev)return p;if(u&&(d=Gc(e,t,d,n)),e.length>80*n){r=o=e[0],i=a=e[1];for(var f=n;f<h;f+=n)(s=e[f])<r&&(r=s),(l=e[f+1])<i&&(i=l),s>o&&(o=s),l>a&&(a=l);c=0!==(c=Math.max(o-r,a-i))?1/c:0}return Fc(d,p,n,r,i,c),p}};function Ic(e,t,n,r,i){var o,a;if(i===uu(e,t,n,r)>0)for(o=t;o<n;o+=r)a=su(o,e[o],e[o+1],a);else for(o=n-r;o>=t;o-=r)a=su(o,e[o],e[o+1],a);return a&&$c(a,a.next)&&(lu(a),a=a.next),a}function Bc(e,t){if(!e)return e;t||(t=e);var n,r=e;do{if(n=!1,r.steiner||!$c(r,r.next)&&0!==Jc(r.prev,r,r.next))r=r.next;else{if(lu(r),(r=t=r.prev)===r.next)break;n=!0}}while(n||r!==t);return t}function Fc(e,t,n,r,i,o,a){if(e){!a&&o&&qc(e,r,i,o);for(var s,l,c=e;e.prev!==e.next;)if(s=e.prev,l=e.next,o?Nc(e,r,i,o):kc(e))t.push(s.i/n),t.push(e.i/n),t.push(l.i/n),lu(e),e=l.next,c=l.next;else if((e=l)===c){a?1===a?Fc(e=Uc(Bc(e),t,n),t,n,r,i,o,2):2===a&&Hc(e,t,n,r,i,o):Fc(Bc(e),t,n,r,i,o,1);break}}}function kc(e){var t=e.prev,n=e,r=e.next;if(Jc(t,n,r)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(Zc(t.x,t.y,n.x,n.y,r.x,r.y,i.x,i.y)&&Jc(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function Nc(e,t,n,r){var i=e.prev,o=e,a=e.next;if(Jc(i,o,a)>=0)return!1;for(var s=i.x<o.x?i.x<a.x?i.x:a.x:o.x<a.x?o.x:a.x,l=i.y<o.y?i.y<a.y?i.y:a.y:o.y<a.y?o.y:a.y,c=i.x>o.x?i.x>a.x?i.x:a.x:o.x>a.x?o.x:a.x,u=i.y>o.y?i.y>a.y?i.y:a.y:o.y>a.y?o.y:a.y,h=Yc(s,l,t,n,r),d=Yc(c,u,t,n,r),p=e.prevZ,f=e.nextZ;p&&p.z>=h&&f&&f.z<=d;){if(p!==e.prev&&p!==e.next&&Zc(i.x,i.y,o.x,o.y,a.x,a.y,p.x,p.y)&&Jc(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,f!==e.prev&&f!==e.next&&Zc(i.x,i.y,o.x,o.y,a.x,a.y,f.x,f.y)&&Jc(f.prev,f,f.next)>=0)return!1;f=f.nextZ}for(;p&&p.z>=h;){if(p!==e.prev&&p!==e.next&&Zc(i.x,i.y,o.x,o.y,a.x,a.y,p.x,p.y)&&Jc(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;f&&f.z<=d;){if(f!==e.prev&&f!==e.next&&Zc(i.x,i.y,o.x,o.y,a.x,a.y,f.x,f.y)&&Jc(f.prev,f,f.next)>=0)return!1;f=f.nextZ}return!0}function Uc(e,t,n){var r=e;do{var i=r.prev,o=r.next.next;!$c(i,o)&&eu(i,r,r.next,o)&&iu(i,o)&&iu(o,i)&&(t.push(i.i/n),t.push(r.i/n),t.push(o.i/n),lu(r),lu(r.next),r=e=o),r=r.next}while(r!==e);return Bc(r)}function Hc(e,t,n,r,i,o){var a=e;do{for(var s=a.next.next;s!==a.prev;){if(a.i!==s.i&&Kc(a,s)){var l=au(a,s);return a=Bc(a,a.next),l=Bc(l,l.next),Fc(a,t,n,r,i,o),void Fc(l,t,n,r,i,o)}s=s.next}a=a.next}while(a!==e)}function Gc(e,t,n,r){var i,o,a,s=[];for(i=0,o=t.length;i<o;i++)(a=Ic(e,t[i]*r,i<o-1?t[i+1]*r:e.length,r,!1))===a.next&&(a.steiner=!0),s.push(Qc(a));for(s.sort(zc),i=0;i<s.length;i++)jc(s[i],n),n=Bc(n,n.next);return n}function zc(e,t){return e.x-t.x}function jc(e,t){if(t=Vc(e,t)){var n=au(t,e);Bc(t,t.next),Bc(n,n.next)}}function Vc(e,t){var n,r=t,i=e.x,o=e.y,a=-1/0;do{if(o<=r.y&&o>=r.next.y&&r.next.y!==r.y){var s=r.x+(o-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(s<=i&&s>a){if(a=s,s===i){if(o===r.y)return r;if(o===r.next.y)return r.next}n=r.x<r.next.x?r:r.next}}r=r.next}while(r!==t);if(!n)return null;if(i===a)return n;var l,c=n,u=n.x,h=n.y,d=1/0;r=n;do{i>=r.x&&r.x>=u&&i!==r.x&&Zc(o<h?i:a,o,u,h,o<h?a:i,o,r.x,r.y)&&(l=Math.abs(o-r.y)/(i-r.x),iu(r,e)&&(l<d||l===d&&(r.x>n.x||r.x===n.x&&Wc(n,r)))&&(n=r,d=l)),r=r.next}while(r!==c);return n}function Wc(e,t){return Jc(e.prev,e,t.prev)<0&&Jc(t.next,e,e.next)<0}function qc(e,t,n,r){var i=e;do{null===i.z&&(i.z=Yc(i.x,i.y,t,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,Xc(i)}function Xc(e){var t,n,r,i,o,a,s,l,c=1;do{for(n=e,e=null,o=null,a=0;n;){for(a++,r=n,s=0,t=0;t<c&&(s++,r=r.nextZ);t++);for(l=c;s>0||l>0&&r;)0!==s&&(0===l||!r||n.z<=r.z)?(i=n,n=n.nextZ,s--):(i=r,r=r.nextZ,l--),o?o.nextZ=i:e=i,i.prevZ=o,o=i;n=r}o.nextZ=null,c*=2}while(a>1);return e}function Yc(e,t,n,r,i){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function Qc(e){var t=e,n=e;do{(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t),t=t.next}while(t!==e);return n}function Zc(e,t,n,r,i,o,a,s){return(i-a)*(t-s)-(e-a)*(o-s)>=0&&(e-a)*(r-s)-(n-a)*(t-s)>=0&&(n-a)*(o-s)-(i-a)*(r-s)>=0}function Kc(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!ru(e,t)&&(iu(e,t)&&iu(t,e)&&ou(e,t)&&(Jc(e.prev,e,t.prev)||Jc(e,t.prev,t))||$c(e,t)&&Jc(e.prev,e,e.next)>0&&Jc(t.prev,t,t.next)>0)}function Jc(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function $c(e,t){return e.x===t.x&&e.y===t.y}function eu(e,t,n,r){var i=nu(Jc(e,t,n)),o=nu(Jc(e,t,r)),a=nu(Jc(n,r,e)),s=nu(Jc(n,r,t));return i!==o&&a!==s||!(0!==i||!tu(e,n,t))||!(0!==o||!tu(e,r,t))||!(0!==a||!tu(n,e,r))||!(0!==s||!tu(n,t,r))}function tu(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function nu(e){return e>0?1:e<0?-1:0}function ru(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&eu(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function iu(e,t){return Jc(e.prev,e,e.next)<0?Jc(e,t,e.next)>=0&&Jc(e,e.prev,t)>=0:Jc(e,t,e.prev)<0||Jc(e,e.next,t)<0}function ou(e,t){var n=e,r=!1,i=(e.x+t.x)/2,o=(e.y+t.y)/2;do{n.y>o!==n.next.y>o&&n.next.y!==n.y&&i<(n.next.x-n.x)*(o-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==e);return r}function au(e,t){var n=new cu(e.i,e.x,e.y),r=new cu(t.i,t.x,t.y),i=e.next,o=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,o.next=r,r.prev=o,r}function su(e,t,n,r){var i=new cu(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function lu(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function cu(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function uu(e,t,n,r){for(var i=0,o=t,a=n-r;o<n;o+=r)i+=(e[a]-e[o])*(e[o+1]+e[a+1]),a=o;return i}var hu={area:function(e){for(var t=e.length,n=0,r=t-1,i=0;i<t;r=i++)n+=e[r].x*e[i].y-e[i].x*e[r].y;return.5*n},isClockWise:function(e){return hu.area(e)<0},triangulateShape:function(e,t){var n=[],r=[],i=[];du(e),pu(n,e);var o=e.length;t.forEach(du);for(var a=0;a<t.length;a++)r.push(o),o+=t[a].length,pu(n,t[a]);for(var s=Oc.triangulate(n,r),l=0;l<s.length;l+=3)i.push(s.slice(l,l+3));return i}};function du(e){var t=e.length;t>2&&e[t-1].equals(e[0])&&e.pop()}function pu(e,t){for(var n=0;n<t.length;n++)e.push(t[n].x),e.push(t[n].y)}var fu=function(e){function t(t,n){var r;(r=e.call(this)||this).type="ExtrudeGeometry",r.parameters={shapes:t,options:n},t=Array.isArray(t)?t:[t];for(var i=zn(r),o=[],a=[],s=0,l=t.length;s<l;s++)c(t[s]);function c(e){var t=[],r=void 0!==n.curveSegments?n.curveSegments:12,s=void 0!==n.steps?n.steps:1,l=void 0!==n.depth?n.depth:100,c=void 0===n.bevelEnabled||n.bevelEnabled,u=void 0!==n.bevelThickness?n.bevelThickness:6,h=void 0!==n.bevelSize?n.bevelSize:u-2,d=void 0!==n.bevelOffset?n.bevelOffset:0,p=void 0!==n.bevelSegments?n.bevelSegments:3,f=n.extrudePath,m=void 0!==n.UVGenerator?n.UVGenerator:mu;void 0!==n.amount&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),l=n.amount);var v,g,y,b,A,w=!1;f&&(v=f.getSpacedPoints(s),w=!0,c=!1,g=f.computeFrenetFrames(s,!1),y=new lr,b=new lr,A=new lr),c||(p=0,u=0,h=0,d=0);var x=e.extractPoints(r),E=x.shape,M=x.holes;if(!hu.isClockWise(E)){E=E.reverse();for(var _=0,T=M.length;_<T;_++){var S=M[_];hu.isClockWise(S)&&(M[_]=S.reverse())}}for(var C=hu.triangulateShape(E,M),L=E,R=0,P=M.length;R<P;R++){var D=M[R];E=E.concat(D)}function O(e,t,n){return t||console.error("THREE.ExtrudeGeometry: vec does not exist"),t.clone().multiplyScalar(n).add(e)}var I=E.length,B=C.length;function F(e,t,n){var r,i,o,a=e.x-t.x,s=e.y-t.y,l=n.x-e.x,c=n.y-e.y,u=a*a+s*s,h=a*c-s*l;if(Math.abs(h)>Number.EPSILON){var d=Math.sqrt(u),p=Math.sqrt(l*l+c*c),f=t.x-s/d,m=t.y+a/d,v=((n.x-c/p-f)*c-(n.y+l/p-m)*l)/(a*c-s*l),g=(r=f+a*v-e.x)*r+(i=m+s*v-e.y)*i;if(g<=2)return new Jn(r,i);o=Math.sqrt(g/2)}else{var y=!1;a>Number.EPSILON?l>Number.EPSILON&&(y=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(y=!0):Math.sign(s)===Math.sign(c)&&(y=!0),y?(r=-s,i=a,o=Math.sqrt(u)):(r=a,i=s,o=Math.sqrt(u/2))}return new Jn(r/o,i/o)}for(var k=[],N=0,U=L.length,H=U-1,G=N+1;N<U;N++,H++,G++)H===U&&(H=0),G===U&&(G=0),k[N]=F(L[N],L[H],L[G]);for(var z,j=[],V=k.concat(),W=0,q=M.length;W<q;W++){var X=M[W];z=[];for(var Y=0,Q=X.length,Z=Q-1,K=Y+1;Y<Q;Y++,Z++,K++)Z===Q&&(Z=0),K===Q&&(K=0),z[Y]=F(X[Y],X[Z],X[K]);j.push(z),V=V.concat(z)}for(var J=0;J<p;J++){for(var $=J/p,ee=u*Math.cos($*Math.PI/2),te=h*Math.sin($*Math.PI/2)+d,ne=0,re=L.length;ne<re;ne++){var ie=O(L[ne],k[ne],te);Oe(ie.x,ie.y,-ee)}for(var oe=0,ae=M.length;oe<ae;oe++){var se=M[oe];z=j[oe];for(var le=0,ce=se.length;le<ce;le++){var ue=O(se[le],z[le],te);Oe(ue.x,ue.y,-ee)}}}for(var he=h+d,de=0;de<I;de++){var pe=c?O(E[de],V[de],he):E[de];w?(b.copy(g.normals[0]).multiplyScalar(pe.x),y.copy(g.binormals[0]).multiplyScalar(pe.y),A.copy(v[0]).add(b).add(y),Oe(A.x,A.y,A.z)):Oe(pe.x,pe.y,0)}for(var fe=1;fe<=s;fe++)for(var me=0;me<I;me++){var ve=c?O(E[me],V[me],he):E[me];w?(b.copy(g.normals[fe]).multiplyScalar(ve.x),y.copy(g.binormals[fe]).multiplyScalar(ve.y),A.copy(v[fe]).add(b).add(y),Oe(A.x,A.y,A.z)):Oe(ve.x,ve.y,l/s*fe)}for(var ge=p-1;ge>=0;ge--){for(var ye=ge/p,be=u*Math.cos(ye*Math.PI/2),Ae=h*Math.sin(ye*Math.PI/2)+d,we=0,xe=L.length;we<xe;we++){var Ee=O(L[we],k[we],Ae);Oe(Ee.x,Ee.y,l+be)}for(var Me=0,_e=M.length;Me<_e;Me++){var Te=M[Me];z=j[Me];for(var Se=0,Ce=Te.length;Se<Ce;Se++){var Le=O(Te[Se],z[Se],Ae);w?Oe(Le.x,Le.y+v[s-1].y,v[s-1].x+be):Oe(Le.x,Le.y,l+be)}}}function Re(){var e=o.length/3;if(c){for(var t=0,n=I*t,r=0;r<B;r++){var a=C[r];Ie(a[2]+n,a[1]+n,a[0]+n)}n=I*(t=s+2*p);for(var l=0;l<B;l++){var u=C[l];Ie(u[0]+n,u[1]+n,u[2]+n)}}else{for(var h=0;h<B;h++){var d=C[h];Ie(d[2],d[1],d[0])}for(var f=0;f<B;f++){var m=C[f];Ie(m[0]+I*s,m[1]+I*s,m[2]+I*s)}}i.addGroup(e,o.length/3-e,0)}function Pe(){var e=o.length/3,t=0;De(L,t),t+=L.length;for(var n=0,r=M.length;n<r;n++){var a=M[n];De(a,t),t+=a.length}i.addGroup(e,o.length/3-e,1)}function De(e,t){for(var n=e.length;--n>=0;){var r=n,i=n-1;i<0&&(i=e.length-1);for(var o=0,a=s+2*p;o<a;o++){var l=I*o,c=I*(o+1);Be(t+r+l,t+i+l,t+i+c,t+r+c)}}}function Oe(e,n,r){t.push(e),t.push(n),t.push(r)}function Ie(e,t,n){Fe(e),Fe(t),Fe(n);var r=o.length/3,a=m.generateTopUV(i,o,r-3,r-2,r-1);ke(a[0]),ke(a[1]),ke(a[2])}function Be(e,t,n,r){Fe(e),Fe(t),Fe(r),Fe(t),Fe(n),Fe(r);var a=o.length/3,s=m.generateSideWallUV(i,o,a-6,a-3,a-2,a-1);ke(s[0]),ke(s[1]),ke(s[3]),ke(s[1]),ke(s[2]),ke(s[3])}function Fe(e){o.push(t[3*e+0]),o.push(t[3*e+1]),o.push(t[3*e+2])}function ke(e){a.push(e.x),a.push(e.y)}Re(),Pe()}return r.setAttribute("position",new Wi(o,3)),r.setAttribute("uv",new Wi(a,2)),r.computeVertexNormals(),r}return Gn(t,e),t.prototype.toJSON=function(){var e=ro.prototype.toJSON.call(this);return vu(this.parameters.shapes,this.parameters.options,e)},t}(ro),mu={generateTopUV:function(e,t,n,r,i){var o=t[3*n],a=t[3*n+1],s=t[3*r],l=t[3*r+1],c=t[3*i],u=t[3*i+1];return[new Jn(o,a),new Jn(s,l),new Jn(c,u)]},generateSideWallUV:function(e,t,n,r,i,o){var a=t[3*n],s=t[3*n+1],l=t[3*n+2],c=t[3*r],u=t[3*r+1],h=t[3*r+2],d=t[3*i],p=t[3*i+1],f=t[3*i+2],m=t[3*o],v=t[3*o+1],g=t[3*o+2];return Math.abs(s-u)<.01?[new Jn(a,1-l),new Jn(c,1-h),new Jn(d,1-f),new Jn(m,1-g)]:[new Jn(s,1-l),new Jn(u,1-h),new Jn(p,1-f),new Jn(v,1-g)]}};function vu(e,t,n){if(n.shapes=[],Array.isArray(e))for(var r=0,i=e.length;r<i;r++){var o=e[r];n.shapes.push(o.uuid)}else n.shapes.push(e.uuid);return void 0!==t.extrudePath&&(n.options.extrudePath=t.extrudePath.toJSON()),n}var gu=function(e){function t(t,n){var r;void 0===t&&(t=1),void 0===n&&(n=0);var i=(1+Math.sqrt(5))/2,o=[-1,i,0,1,i,0,-1,-i,0,1,-i,0,0,-1,i,0,1,i,0,-1,-i,0,1,-i,i,0,-1,i,0,1,-i,0,-1,-i,0,1],a=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1];return(r=e.call(this,o,a,t,n)||this).type="IcosahedronGeometry",r.parameters={radius:t,detail:n},r}return Gn(t,e),t}(Tc),yu=function(e){function t(t,n,r,i){var o;void 0===n&&(n=12),void 0===r&&(r=0),void 0===i&&(i=2*Math.PI),(o=e.call(this)||this).type="LatheGeometry",o.parameters={points:t,segments:n,phiStart:r,phiLength:i},n=Math.floor(n),i=Kn.clamp(i,0,2*Math.PI);for(var a=[],s=[],l=[],c=1/n,u=new lr,h=new Jn,d=0;d<=n;d++)for(var p=r+d*c*i,f=Math.sin(p),m=Math.cos(p),v=0;v<=t.length-1;v++)u.x=t[v].x*f,u.y=t[v].y,u.z=t[v].x*m,s.push(u.x,u.y,u.z),h.x=d/n,h.y=v/(t.length-1),l.push(h.x,h.y);for(var g=0;g<n;g++)for(var y=0;y<t.length-1;y++){var b=y+g*t.length,A=b,w=b+t.length,x=b+t.length+1,E=b+1;a.push(A,w,E),a.push(w,x,E)}if(o.setIndex(a),o.setAttribute("position",new Wi(s,3)),o.setAttribute("uv",new Wi(l,2)),o.computeVertexNormals(),i===2*Math.PI)for(var M=o.attributes.normal.array,_=new lr,T=new lr,S=new lr,C=n*t.length*3,L=0,R=0;L<t.length;L++,R+=3)_.x=M[R+0],_.y=M[R+1],_.z=M[R+2],T.x=M[C+R+0],T.y=M[C+R+1],T.z=M[C+R+2],S.addVectors(_,T).normalize(),M[R+0]=M[C+R+0]=S.x,M[R+1]=M[C+R+1]=S.y,M[R+2]=M[C+R+2]=S.z;return o}return Gn(t,e),t}(ro),bu=function(e){function t(t,n){var r;void 0===t&&(t=1),void 0===n&&(n=0);var i=[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],o=[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2];return(r=e.call(this,i,o,t,n)||this).type="OctahedronGeometry",r.parameters={radius:t,detail:n},r}return Gn(t,e),t}(Tc);function Au(e,t,n){ro.call(this),this.type="ParametricGeometry",this.parameters={func:e,slices:t,stacks:n};var r=[],i=[],o=[],a=[],s=1e-5,l=new lr,c=new lr,u=new lr,h=new lr,d=new lr;e.length<3&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");for(var p=t+1,f=0;f<=n;f++)for(var m=f/n,v=0;v<=t;v++){var g=v/t;e(g,m,c),i.push(c.x,c.y,c.z),g-s>=0?(e(g-s,m,u),h.subVectors(c,u)):(e(g+s,m,u),h.subVectors(u,c)),m-s>=0?(e(g,m-s,u),d.subVectors(c,u)):(e(g,m+s,u),d.subVectors(u,c)),l.crossVectors(h,d).normalize(),o.push(l.x,l.y,l.z),a.push(g,m)}for(var y=0;y<n;y++)for(var b=0;b<t;b++){var A=y*p+b,w=y*p+b+1,x=(y+1)*p+b+1,E=(y+1)*p+b;r.push(A,w,E),r.push(w,x,E)}this.setIndex(r),this.setAttribute("position",new Wi(i,3)),this.setAttribute("normal",new Wi(o,3)),this.setAttribute("uv",new Wi(a,2))}Au.prototype=Object.create(ro.prototype),Au.prototype.constructor=Au;var wu=function(e){function t(t,n,r,i,o,a){var s;void 0===t&&(t=.5),void 0===n&&(n=1),void 0===r&&(r=8),void 0===i&&(i=1),void 0===o&&(o=0),void 0===a&&(a=2*Math.PI),(s=e.call(this)||this).type="RingGeometry",s.parameters={innerRadius:t,outerRadius:n,thetaSegments:r,phiSegments:i,thetaStart:o,thetaLength:a},r=Math.max(3,r);for(var l=[],c=[],u=[],h=[],d=t,p=(n-t)/(i=Math.max(1,i)),f=new lr,m=new Jn,v=0;v<=i;v++){for(var g=0;g<=r;g++){var y=o+g/r*a;f.x=d*Math.cos(y),f.y=d*Math.sin(y),c.push(f.x,f.y,f.z),u.push(0,0,1),m.x=(f.x/n+1)/2,m.y=(f.y/n+1)/2,h.push(m.x,m.y)}d+=p}for(var b=0;b<i;b++)for(var A=b*(r+1),w=0;w<r;w++){var x=w+A,E=x,M=x+r+1,_=x+r+2,T=x+1;l.push(E,M,T),l.push(M,_,T)}return s.setIndex(l),s.setAttribute("position",new Wi(c,3)),s.setAttribute("normal",new Wi(u,3)),s.setAttribute("uv",new Wi(h,2)),s}return Gn(t,e),t}(ro),xu=function(e){function t(t,n){var r;void 0===n&&(n=12),(r=e.call(this)||this).type="ShapeGeometry",r.parameters={shapes:t,curveSegments:n};var i=[],o=[],a=[],s=[],l=0,c=0;if(!1===Array.isArray(t))h(t);else for(var u=0;u<t.length;u++)h(t[u]),r.addGroup(l,c,u),l+=c,c=0;function h(e){var t=o.length/3,r=e.extractPoints(n),l=r.shape,u=r.holes;!1===hu.isClockWise(l)&&(l=l.reverse());for(var h=0,d=u.length;h<d;h++){var p=u[h];!0===hu.isClockWise(p)&&(u[h]=p.reverse())}for(var f=hu.triangulateShape(l,u),m=0,v=u.length;m<v;m++){var g=u[m];l=l.concat(g)}for(var y=0,b=l.length;y<b;y++){var A=l[y];o.push(A.x,A.y,0),a.push(0,0,1),s.push(A.x,A.y)}for(var w=0,x=f.length;w<x;w++){var E=f[w],M=E[0]+t,_=E[1]+t,T=E[2]+t;i.push(M,_,T),c+=3}}return r.setIndex(i),r.setAttribute("position",new Wi(o,3)),r.setAttribute("normal",new Wi(a,3)),r.setAttribute("uv",new Wi(s,2)),r}return Gn(t,e),t.prototype.toJSON=function(){var e=ro.prototype.toJSON.call(this);return Eu(this.parameters.shapes,e)},t}(ro);function Eu(e,t){if(t.shapes=[],Array.isArray(e))for(var n=0,r=e.length;n<r;n++){var i=e[n];t.shapes.push(i.uuid)}else t.shapes.push(e.uuid);return t}var Mu=function(e){function t(t,n,r,i,o,a,s){var l;void 0===t&&(t=1),void 0===n&&(n=8),void 0===r&&(r=6),void 0===i&&(i=0),void 0===o&&(o=2*Math.PI),void 0===a&&(a=0),void 0===s&&(s=Math.PI),(l=e.call(this)||this).type="SphereGeometry",l.parameters={radius:t,widthSegments:n,heightSegments:r,phiStart:i,phiLength:o,thetaStart:a,thetaLength:s},n=Math.max(3,Math.floor(n)),r=Math.max(2,Math.floor(r));for(var c=Math.min(a+s,Math.PI),u=0,h=[],d=new lr,p=new lr,f=[],m=[],v=[],g=[],y=0;y<=r;y++){var b=[],A=y/r,w=0;0==y&&0==a?w=.5/n:y==r&&c==Math.PI&&(w=-.5/n);for(var x=0;x<=n;x++){var E=x/n;d.x=-t*Math.cos(i+E*o)*Math.sin(a+A*s),d.y=t*Math.cos(a+A*s),d.z=t*Math.sin(i+E*o)*Math.sin(a+A*s),m.push(d.x,d.y,d.z),p.copy(d).normalize(),v.push(p.x,p.y,p.z),g.push(E+w,1-A),b.push(u++)}h.push(b)}for(var M=0;M<r;M++)for(var _=0;_<n;_++){var T=h[M][_+1],S=h[M][_],C=h[M+1][_],L=h[M+1][_+1];(0!==M||a>0)&&f.push(T,S,L),(M!==r-1||c<Math.PI)&&f.push(S,C,L)}return l.setIndex(f),l.setAttribute("position",new Wi(m,3)),l.setAttribute("normal",new Wi(v,3)),l.setAttribute("uv",new Wi(g,2)),l}return Gn(t,e),t}(ro),_u=function(e){function t(t,n){var r;void 0===t&&(t=1),void 0===n&&(n=0);var i=[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],o=[2,1,0,0,3,2,1,3,0,2,3,1];return(r=e.call(this,i,o,t,n)||this).type="TetrahedronGeometry",r.parameters={radius:t,detail:n},r}return Gn(t,e),t}(Tc),Tu=function(e){function t(t,n){var r;void 0===n&&(n={});var i=n.font;if(!i||!i.isFont)return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."),new ro||zn(r);var o=i.generateShapes(t,n.size);return n.depth=void 0!==n.height?n.height:50,void 0===n.bevelThickness&&(n.bevelThickness=10),void 0===n.bevelSize&&(n.bevelSize=8),void 0===n.bevelEnabled&&(n.bevelEnabled=!1),(r=e.call(this,o,n)||this).type="TextGeometry",r}return Gn(t,e),t}(fu),Su=function(e){function t(t,n,r,i,o){var a;void 0===t&&(t=1),void 0===n&&(n=.4),void 0===r&&(r=8),void 0===i&&(i=6),void 0===o&&(o=2*Math.PI),(a=e.call(this)||this).type="TorusGeometry",a.parameters={radius:t,tube:n,radialSegments:r,tubularSegments:i,arc:o},r=Math.floor(r),i=Math.floor(i);for(var s=[],l=[],c=[],u=[],h=new lr,d=new lr,p=new lr,f=0;f<=r;f++)for(var m=0;m<=i;m++){var v=m/i*o,g=f/r*Math.PI*2;d.x=(t+n*Math.cos(g))*Math.cos(v),d.y=(t+n*Math.cos(g))*Math.sin(v),d.z=n*Math.sin(g),l.push(d.x,d.y,d.z),h.x=t*Math.cos(v),h.y=t*Math.sin(v),p.subVectors(d,h).normalize(),c.push(p.x,p.y,p.z),u.push(m/i),u.push(f/r)}for(var y=1;y<=r;y++)for(var b=1;b<=i;b++){var A=(i+1)*y+b-1,w=(i+1)*(y-1)+b-1,x=(i+1)*(y-1)+b,E=(i+1)*y+b;s.push(A,w,E),s.push(w,x,E)}return a.setIndex(s),a.setAttribute("position",new Wi(l,3)),a.setAttribute("normal",new Wi(c,3)),a.setAttribute("uv",new Wi(u,2)),a}return Gn(t,e),t}(ro),Cu=function(e){function t(t,n,r,i,o,a){var s;void 0===t&&(t=1),void 0===n&&(n=.4),void 0===r&&(r=64),void 0===i&&(i=8),void 0===o&&(o=2),void 0===a&&(a=3),(s=e.call(this)||this).type="TorusKnotGeometry",s.parameters={radius:t,tube:n,tubularSegments:r,radialSegments:i,p:o,q:a},r=Math.floor(r),i=Math.floor(i);for(var l=[],c=[],u=[],h=[],d=new lr,p=new lr,f=new lr,m=new lr,v=new lr,g=new lr,y=new lr,b=0;b<=r;++b){var A=b/r*o*Math.PI*2;P(A,o,a,t,f),P(A+.01,o,a,t,m),g.subVectors(m,f),y.addVectors(m,f),v.crossVectors(g,y),y.crossVectors(v,g),v.normalize(),y.normalize();for(var w=0;w<=i;++w){var x=w/i*Math.PI*2,E=-n*Math.cos(x),M=n*Math.sin(x);d.x=f.x+(E*y.x+M*v.x),d.y=f.y+(E*y.y+M*v.y),d.z=f.z+(E*y.z+M*v.z),c.push(d.x,d.y,d.z),p.subVectors(d,f).normalize(),u.push(p.x,p.y,p.z),h.push(b/r),h.push(w/i)}}for(var _=1;_<=r;_++)for(var T=1;T<=i;T++){var S=(i+1)*(_-1)+(T-1),C=(i+1)*_+(T-1),L=(i+1)*_+T,R=(i+1)*(_-1)+T;l.push(S,C,R),l.push(C,L,R)}function P(e,t,n,r,i){var o=Math.cos(e),a=Math.sin(e),s=n/t*e,l=Math.cos(s);i.x=r*(2+l)*.5*o,i.y=r*(2+l)*a*.5,i.z=r*Math.sin(s)*.5}return s.setIndex(l),s.setAttribute("position",new Wi(c,3)),s.setAttribute("normal",new Wi(u,3)),s.setAttribute("uv",new Wi(h,2)),s}return Gn(t,e),t}(ro),Lu=function(e){function t(t,n,r,i,o){var a;void 0===n&&(n=64),void 0===r&&(r=1),void 0===i&&(i=8),void 0===o&&(o=!1),(a=e.call(this)||this).type="TubeGeometry",a.parameters={path:t,tubularSegments:n,radius:r,radialSegments:i,closed:o};var s=t.computeFrenetFrames(n,o);a.tangents=s.tangents,a.normals=s.normals,a.binormals=s.binormals;var l=new lr,c=new lr,u=new Jn,h=new lr,d=[],p=[],f=[],m=[];function v(){for(var e=0;e<n;e++)g(e);g(!1===o?n:0),b(),y()}function g(e){h=t.getPointAt(e/n,h);for(var o=s.normals[e],a=s.binormals[e],u=0;u<=i;u++){var f=u/i*Math.PI*2,m=Math.sin(f),v=-Math.cos(f);c.x=v*o.x+m*a.x,c.y=v*o.y+m*a.y,c.z=v*o.z+m*a.z,c.normalize(),p.push(c.x,c.y,c.z),l.x=h.x+r*c.x,l.y=h.y+r*c.y,l.z=h.z+r*c.z,d.push(l.x,l.y,l.z)}}function y(){for(var e=1;e<=n;e++)for(var t=1;t<=i;t++){var r=(i+1)*(e-1)+(t-1),o=(i+1)*e+(t-1),a=(i+1)*e+t,s=(i+1)*(e-1)+t;m.push(r,o,s),m.push(o,a,s)}}function b(){for(var e=0;e<=n;e++)for(var t=0;t<=i;t++)u.x=e/n,u.y=t/i,f.push(u.x,u.y)}return v(),a.setIndex(m),a.setAttribute("position",new Wi(d,3)),a.setAttribute("normal",new Wi(p,3)),a.setAttribute("uv",new Wi(f,2)),a}return Gn(t,e),t.prototype.toJSON=function(){var e=ro.prototype.toJSON.call(this);return e.path=this.parameters.path.toJSON(),e},t}(ro),Ru=function(e){function t(t){var n;if((n=e.call(this)||this).type="WireframeGeometry",!0===t.isGeometry)return console.error("THREE.WireframeGeometry no longer supports THREE.Geometry. Use THREE.BufferGeometry instead."),zn(n);var r=[],i=[0,0],o={},a=new lr;if(null!==t.index){var s=t.attributes.position,l=t.index,c=t.groups;0===c.length&&(c=[{start:0,count:l.count,materialIndex:0}]);for(var u=0,h=c.length;u<h;++u)for(var d=c[u],p=d.start,f=p,m=p+d.count;f<m;f+=3)for(var v=0;v<3;v++){var g=l.getX(f+v),y=l.getX(f+(v+1)%3);i[0]=Math.min(g,y),i[1]=Math.max(g,y);var b=i[0]+","+i[1];void 0===o[b]&&(o[b]={index1:i[0],index2:i[1]})}for(var A in o){var w=o[A];a.fromBufferAttribute(s,w.index1),r.push(a.x,a.y,a.z),a.fromBufferAttribute(s,w.index2),r.push(a.x,a.y,a.z)}}else for(var x=t.attributes.position,E=0,M=x.count/3;E<M;E++)for(var _=0;_<3;_++){var T=3*E+_;a.fromBufferAttribute(x,T),r.push(a.x,a.y,a.z);var S=3*E+(_+1)%3;a.fromBufferAttribute(x,S),r.push(a.x,a.y,a.z)}return n.setAttribute("position",new Wi(r,3)),n}return Gn(t,e),t}(ro),Pu=Object.freeze({__proto__:null,BoxGeometry:_o,BoxBufferGeometry:_o,CircleGeometry:Ec,CircleBufferGeometry:Ec,ConeGeometry:_c,ConeBufferGeometry:_c,CylinderGeometry:Mc,CylinderBufferGeometry:Mc,DodecahedronGeometry:Sc,DodecahedronBufferGeometry:Sc,EdgesGeometry:Dc,ExtrudeGeometry:fu,ExtrudeBufferGeometry:fu,IcosahedronGeometry:gu,IcosahedronBufferGeometry:gu,LatheGeometry:yu,LatheBufferGeometry:yu,OctahedronGeometry:bu,OctahedronBufferGeometry:bu,ParametricGeometry:Au,ParametricBufferGeometry:Au,PlaneGeometry:Wo,PlaneBufferGeometry:Wo,PolyhedronGeometry:Tc,PolyhedronBufferGeometry:Tc,RingGeometry:wu,RingBufferGeometry:wu,ShapeGeometry:xu,ShapeBufferGeometry:xu,SphereGeometry:Mu,SphereBufferGeometry:Mu,TetrahedronGeometry:_u,TetrahedronBufferGeometry:_u,TextGeometry:Tu,TextBufferGeometry:Tu,TorusGeometry:Su,TorusBufferGeometry:Su,TorusKnotGeometry:Cu,TorusKnotBufferGeometry:Cu,TubeGeometry:Lu,TubeBufferGeometry:Lu,WireframeGeometry:Ru});function Du(e){Di.call(this),this.type="ShadowMaterial",this.color=new Li(0),this.transparent=!0,this.setValues(e)}function Ou(e){Po.call(this,e),this.type="RawShaderMaterial"}function Iu(e){Di.call(this),this.defines={STANDARD:""},this.type="MeshStandardMaterial",this.color=new Li(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Li(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=ln,this.normalScale=new Jn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.vertexTangents=!1,this.setValues(e)}function Bu(e){Iu.call(this),this.defines={STANDARD:"",PHYSICAL:""},this.type="MeshPhysicalMaterial",this.clearcoat=0,this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new Jn(1,1),this.clearcoatNormalMap=null,this.reflectivity=.5,Object.defineProperty(this,"ior",{get:function(){return(1+.4*this.reflectivity)/(1-.4*this.reflectivity)},set:function(e){this.reflectivity=Kn.clamp(2.5*(e-1)/(e+1),0,1)}}),this.sheen=null,this.transmission=0,this.transmissionMap=null,this.setValues(e)}function Fu(e){Di.call(this),this.type="MeshPhongMaterial",this.color=new Li(16777215),this.specular=new Li(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Li(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=ln,this.normalScale=new Jn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Z,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(e)}function ku(e){Di.call(this),this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Li(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Li(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=ln,this.normalScale=new Jn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(e)}function Nu(e){Di.call(this),this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=ln,this.normalScale=new Jn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(e)}function Uu(e){Di.call(this),this.type="MeshLambertMaterial",this.color=new Li(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Li(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Z,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(e)}function Hu(e){Di.call(this),this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Li(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=ln,this.normalScale=new Jn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(e)}function Gu(e){tc.call(this),this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}Du.prototype=Object.create(Di.prototype),Du.prototype.constructor=Du,Du.prototype.isShadowMaterial=!0,Du.prototype.copy=function(e){return Di.prototype.copy.call(this,e),this.color.copy(e.color),this},Ou.prototype=Object.create(Po.prototype),Ou.prototype.constructor=Ou,Ou.prototype.isRawShaderMaterial=!0,Iu.prototype=Object.create(Di.prototype),Iu.prototype.constructor=Iu,Iu.prototype.isMeshStandardMaterial=!0,Iu.prototype.copy=function(e){return Di.prototype.copy.call(this,e),this.defines={STANDARD:""},this.color.copy(e.color),this.roughness=e.roughness,this.metalness=e.metalness,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.roughnessMap=e.roughnessMap,this.metalnessMap=e.metalnessMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapIntensity=e.envMapIntensity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.morphNormals=e.morphNormals,this.vertexTangents=e.vertexTangents,this},Bu.prototype=Object.create(Iu.prototype),Bu.prototype.constructor=Bu,Bu.prototype.isMeshPhysicalMaterial=!0,Bu.prototype.copy=function(e){return Iu.prototype.copy.call(this,e),this.defines={STANDARD:"",PHYSICAL:""},this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.reflectivity=e.reflectivity,e.sheen?this.sheen=(this.sheen||new Li).copy(e.sheen):this.sheen=null,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this},Fu.prototype=Object.create(Di.prototype),Fu.prototype.constructor=Fu,Fu.prototype.isMeshPhongMaterial=!0,Fu.prototype.copy=function(e){return Di.prototype.copy.call(this,e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.morphNormals=e.morphNormals,this},ku.prototype=Object.create(Di.prototype),ku.prototype.constructor=ku,ku.prototype.isMeshToonMaterial=!0,ku.prototype.copy=function(e){return Di.prototype.copy.call(this,e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.morphNormals=e.morphNormals,this},Nu.prototype=Object.create(Di.prototype),Nu.prototype.constructor=Nu,Nu.prototype.isMeshNormalMaterial=!0,Nu.prototype.copy=function(e){return Di.prototype.copy.call(this,e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.morphNormals=e.morphNormals,this},Uu.prototype=Object.create(Di.prototype),Uu.prototype.constructor=Uu,Uu.prototype.isMeshLambertMaterial=!0,Uu.prototype.copy=function(e){return Di.prototype.copy.call(this,e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.morphNormals=e.morphNormals,this},Hu.prototype=Object.create(Di.prototype),Hu.prototype.constructor=Hu,Hu.prototype.isMeshMatcapMaterial=!0,Hu.prototype.copy=function(e){return Di.prototype.copy.call(this,e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.morphNormals=e.morphNormals,this},Gu.prototype=Object.create(tc.prototype),Gu.prototype.constructor=Gu,Gu.prototype.isLineDashedMaterial=!0,Gu.prototype.copy=function(e){return tc.prototype.copy.call(this,e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this};var zu=Object.freeze({__proto__:null,ShadowMaterial:Du,SpriteMaterial:xl,RawShaderMaterial:Ou,ShaderMaterial:Po,PointsMaterial:dc,MeshPhysicalMaterial:Bu,MeshStandardMaterial:Iu,MeshPhongMaterial:Fu,MeshToonMaterial:ku,MeshNormalMaterial:Nu,MeshLambertMaterial:Uu,MeshDepthMaterial:Qs,MeshDistanceMaterial:Zs,MeshBasicMaterial:Oi,MeshMatcapMaterial:Hu,LineDashedMaterial:Gu,LineBasicMaterial:tc,Material:Di}),ju={arraySlice:function(e,t,n){return ju.isTypedArray(e)?new e.constructor(e.subarray(t,void 0!==n?n:e.length)):e.slice(t,n)},convertArray:function(e,t,n){return!e||!n&&e.constructor===t?e:"number"===typeof t.BYTES_PER_ELEMENT?new t(e):Array.prototype.slice.call(e)},isTypedArray:function(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)},getKeyframeOrder:function(e){function t(t,n){return e[t]-e[n]}for(var n=e.length,r=new Array(n),i=0;i!==n;++i)r[i]=i;return r.sort(t),r},sortedArray:function(e,t,n){for(var r=e.length,i=new e.constructor(r),o=0,a=0;a!==r;++o)for(var s=n[o]*t,l=0;l!==t;++l)i[a++]=e[s+l];return i},flattenJSON:function(e,t,n,r){for(var i=1,o=e[0];void 0!==o&&void 0===o[r];)o=e[i++];if(void 0!==o){var a=o[r];if(void 0!==a)if(Array.isArray(a))do{void 0!==(a=o[r])&&(t.push(o.time),n.push.apply(n,a)),o=e[i++]}while(void 0!==o);else if(void 0!==a.toArray)do{void 0!==(a=o[r])&&(t.push(o.time),a.toArray(n,n.length)),o=e[i++]}while(void 0!==o);else do{void 0!==(a=o[r])&&(t.push(o.time),n.push(a)),o=e[i++]}while(void 0!==o)}},subclip:function(e,t,n,r,i){void 0===i&&(i=30);var o=e.clone();o.name=t;for(var a=[],s=0;s<o.tracks.length;++s){for(var l=o.tracks[s],c=l.getValueSize(),u=[],h=[],d=0;d<l.times.length;++d){var p=l.times[d]*i;if(!(p<n||p>=r)){u.push(l.times[d]);for(var f=0;f<c;++f)h.push(l.values[d*c+f])}}0!==u.length&&(l.times=ju.convertArray(u,l.times.constructor),l.values=ju.convertArray(h,l.values.constructor),a.push(l))}o.tracks=a;for(var m=1/0,v=0;v<o.tracks.length;++v)m>o.tracks[v].times[0]&&(m=o.tracks[v].times[0]);for(var g=0;g<o.tracks.length;++g)o.tracks[g].shift(-1*m);return o.resetDuration(),o},makeClipAdditive:function(e,t,n,r){void 0===t&&(t=0),void 0===n&&(n=e),void 0===r&&(r=30),r<=0&&(r=30);for(var i=n.tracks.length,o=t/r,a=function(t){var r=n.tracks[t],i=r.ValueTypeName;if("bool"===i||"string"===i)return"continue";var a=e.tracks.find((function(e){return e.name===r.name&&e.ValueTypeName===i}));if(void 0===a)return"continue";var s=0,l=r.getValueSize();r.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(s=l/3);var c=0,u=a.getValueSize();a.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(c=u/3);var h=r.times.length-1,d=void 0;if(o<=r.times[0]){var p=s,f=l-s;d=ju.arraySlice(r.values,p,f)}else if(o>=r.times[h]){var m=h*l+s,v=m+l-s;d=ju.arraySlice(r.values,m,v)}else{var g=r.createInterpolant(),y=s,b=l-s;g.evaluate(o),d=ju.arraySlice(g.resultBuffer,y,b)}"quaternion"===i&&(new sr).fromArray(d).normalize().conjugate().toArray(d);for(var A=a.times.length,w=0;w<A;++w){var x=w*u+c;if("quaternion"===i)sr.multiplyQuaternionsFlat(a.values,x,d,0,a.values,x);else for(var E=u-2*c,M=0;M<E;++M)a.values[x+M]-=d[M]}},s=0;s<i;++s)a(s);return e.blendMode=Xt,e}};function Vu(e,t,n,r){this.parameterPositions=e,this._cachedIndex=0,this.resultBuffer=void 0!==r?r:new t.constructor(n),this.sampleValues=t,this.valueSize=n}function Wu(e,t,n,r){Vu.call(this,e,t,n,r),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0}function qu(e,t,n,r){Vu.call(this,e,t,n,r)}function Xu(e,t,n,r){Vu.call(this,e,t,n,r)}function Yu(e,t,n,r){if(void 0===e)throw new Error("THREE.KeyframeTrack: track name is undefined");if(void 0===t||0===t.length)throw new Error("THREE.KeyframeTrack: no keyframes in track named "+e);this.name=e,this.times=ju.convertArray(t,this.TimeBufferType),this.values=ju.convertArray(n,this.ValueBufferType),this.setInterpolation(r||this.DefaultInterpolation)}function Qu(e,t,n){Yu.call(this,e,t,n)}function Zu(e,t,n,r){Yu.call(this,e,t,n,r)}function Ku(e,t,n,r){Yu.call(this,e,t,n,r)}function Ju(e,t,n,r){Vu.call(this,e,t,n,r)}function $u(e,t,n,r){Yu.call(this,e,t,n,r)}function eh(e,t,n,r){Yu.call(this,e,t,n,r)}function th(e,t,n,r){Yu.call(this,e,t,n,r)}function nh(e,t,n,r){void 0===t&&(t=-1),void 0===r&&(r=qt),this.name=e,this.tracks=n,this.duration=t,this.blendMode=r,this.uuid=Kn.generateUUID(),this.duration<0&&this.resetDuration()}function rh(e){switch(e.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return Ku;case"vector":case"vector2":case"vector3":case"vector4":return th;case"color":return Zu;case"quaternion":return $u;case"bool":case"boolean":return Qu;case"string":return eh}throw new Error("THREE.KeyframeTrack: Unsupported typeName: "+e)}function ih(e){if(void 0===e.type)throw new Error("THREE.KeyframeTrack: track type undefined, can not parse");var t=rh(e.type);if(void 0===e.times){var n=[],r=[];ju.flattenJSON(e.keys,n,r,"value"),e.times=n,e.values=r}return void 0!==t.parse?t.parse(e):new t(e.name,e.times,e.values,e.interpolation)}Object.assign(Vu.prototype,{evaluate:function(e){var t=this.parameterPositions,n=this._cachedIndex,r=t[n],i=t[n-1];e:{t:{var o;n:{r:if(!(e<r)){for(var a=n+2;;){if(void 0===r){if(e<i)break r;return n=t.length,this._cachedIndex=n,this.afterEnd_(n-1,e,i)}if(n===a)break;if(i=r,e<(r=t[++n]))break t}o=t.length;break n}if(e>=i)break e;var s=t[1];e<s&&(n=2,i=s);for(var l=n-2;;){if(void 0===i)return this._cachedIndex=0,this.beforeStart_(0,e,r);if(n===l)break;if(r=i,e>=(i=t[--n-1]))break t}o=n,n=0}for(;n<o;){var c=n+o>>>1;e<t[c]?o=c:n=c+1}if(r=t[n],void 0===(i=t[n-1]))return this._cachedIndex=0,this.beforeStart_(0,e,r);if(void 0===r)return n=t.length,this._cachedIndex=n,this.afterEnd_(n-1,i,e)}this._cachedIndex=n,this.intervalChanged_(n,i,r)}return this.interpolate_(n,i,e,r)},settings:null,DefaultSettings_:{},getSettings_:function(){return this.settings||this.DefaultSettings_},copySampleValue_:function(e){for(var t=this.resultBuffer,n=this.sampleValues,r=this.valueSize,i=e*r,o=0;o!==r;++o)t[o]=n[i+o];return t},interpolate_:function(){throw new Error("call to abstract method")},intervalChanged_:function(){}}),Object.assign(Vu.prototype,{beforeStart_:Vu.prototype.copySampleValue_,afterEnd_:Vu.prototype.copySampleValue_}),Wu.prototype=Object.assign(Object.create(Vu.prototype),{constructor:Wu,DefaultSettings_:{endingStart:jt,endingEnd:jt},intervalChanged_:function(e,t,n){var r=this.parameterPositions,i=e-2,o=e+1,a=r[i],s=r[o];if(void 0===a)switch(this.getSettings_().endingStart){case Vt:i=e,a=2*t-n;break;case Wt:a=t+r[i=r.length-2]-r[i+1];break;default:i=e,a=n}if(void 0===s)switch(this.getSettings_().endingEnd){case Vt:o=e,s=2*n-t;break;case Wt:o=1,s=n+r[1]-r[0];break;default:o=e-1,s=t}var l=.5*(n-t),c=this.valueSize;this._weightPrev=l/(t-a),this._weightNext=l/(s-n),this._offsetPrev=i*c,this._offsetNext=o*c},interpolate_:function(e,t,n,r){for(var i=this.resultBuffer,o=this.sampleValues,a=this.valueSize,s=e*a,l=s-a,c=this._offsetPrev,u=this._offsetNext,h=this._weightPrev,d=this._weightNext,p=(n-t)/(r-t),f=p*p,m=f*p,v=-h*m+2*h*f-h*p,g=(1+h)*m+(-1.5-2*h)*f+(-.5+h)*p+1,y=(-1-d)*m+(1.5+d)*f+.5*p,b=d*m-d*f,A=0;A!==a;++A)i[A]=v*o[c+A]+g*o[l+A]+y*o[s+A]+b*o[u+A];return i}}),qu.prototype=Object.assign(Object.create(Vu.prototype),{constructor:qu,interpolate_:function(e,t,n,r){for(var i=this.resultBuffer,o=this.sampleValues,a=this.valueSize,s=e*a,l=s-a,c=(n-t)/(r-t),u=1-c,h=0;h!==a;++h)i[h]=o[l+h]*u+o[s+h]*c;return i}}),Xu.prototype=Object.assign(Object.create(Vu.prototype),{constructor:Xu,interpolate_:function(e){return this.copySampleValue_(e-1)}}),Object.assign(Yu,{toJSON:function(e){var t,n=e.constructor;if(void 0!==n.toJSON)t=n.toJSON(e);else{t={name:e.name,times:ju.convertArray(e.times,Array),values:ju.convertArray(e.values,Array)};var r=e.getInterpolation();r!==e.DefaultInterpolation&&(t.interpolation=r)}return t.type=e.ValueTypeName,t}}),Object.assign(Yu.prototype,{constructor:Yu,TimeBufferType:Float32Array,ValueBufferType:Float32Array,DefaultInterpolation:Gt,InterpolantFactoryMethodDiscrete:function(e){return new Xu(this.times,this.values,this.getValueSize(),e)},InterpolantFactoryMethodLinear:function(e){return new qu(this.times,this.values,this.getValueSize(),e)},InterpolantFactoryMethodSmooth:function(e){return new Wu(this.times,this.values,this.getValueSize(),e)},setInterpolation:function(e){var t;switch(e){case Ht:t=this.InterpolantFactoryMethodDiscrete;break;case Gt:t=this.InterpolantFactoryMethodLinear;break;case zt:t=this.InterpolantFactoryMethodSmooth}if(void 0===t){var n="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(void 0===this.createInterpolant){if(e===this.DefaultInterpolation)throw new Error(n);this.setInterpolation(this.DefaultInterpolation)}return console.warn("THREE.KeyframeTrack:",n),this}return this.createInterpolant=t,this},getInterpolation:function(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return Ht;case this.InterpolantFactoryMethodLinear:return Gt;case this.InterpolantFactoryMethodSmooth:return zt}},getValueSize:function(){return this.values.length/this.times.length},shift:function(e){if(0!==e)for(var t=this.times,n=0,r=t.length;n!==r;++n)t[n]+=e;return this},scale:function(e){if(1!==e)for(var t=this.times,n=0,r=t.length;n!==r;++n)t[n]*=e;return this},trim:function(e,t){for(var n=this.times,r=n.length,i=0,o=r-1;i!==r&&n[i]<e;)++i;for(;-1!==o&&n[o]>t;)--o;if(++o,0!==i||o!==r){i>=o&&(i=(o=Math.max(o,1))-1);var a=this.getValueSize();this.times=ju.arraySlice(n,i,o),this.values=ju.arraySlice(this.values,i*a,o*a)}return this},validate:function(){var e=!0,t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);var n=this.times,r=this.values,i=n.length;0===i&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);for(var o=null,a=0;a!==i;a++){var s=n[a];if("number"===typeof s&&isNaN(s)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,s),e=!1;break}if(null!==o&&o>s){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,s,o),e=!1;break}o=s}if(void 0!==r&&ju.isTypedArray(r))for(var l=0,c=r.length;l!==c;++l){var u=r[l];if(isNaN(u)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,l,u),e=!1;break}}return e},optimize:function(){for(var e=ju.arraySlice(this.times),t=ju.arraySlice(this.values),n=this.getValueSize(),r=this.getInterpolation()===zt,i=e.length-1,o=1,a=1;a<i;++a){var s=!1,l=e[a];if(l!==e[a+1]&&(1!==a||l!==e[0]))if(r)s=!0;else for(var c=a*n,u=c-n,h=c+n,d=0;d!==n;++d){var p=t[c+d];if(p!==t[u+d]||p!==t[h+d]){s=!0;break}}if(s){if(a!==o){e[o]=e[a];for(var f=a*n,m=o*n,v=0;v!==n;++v)t[m+v]=t[f+v]}++o}}if(i>0){e[o]=e[i];for(var g=i*n,y=o*n,b=0;b!==n;++b)t[y+b]=t[g+b];++o}return o!==e.length?(this.times=ju.arraySlice(e,0,o),this.values=ju.arraySlice(t,0,o*n)):(this.times=e,this.values=t),this},clone:function(){var e=ju.arraySlice(this.times,0),t=ju.arraySlice(this.values,0),n=new(0,this.constructor)(this.name,e,t);return n.createInterpolant=this.createInterpolant,n}}),Qu.prototype=Object.assign(Object.create(Yu.prototype),{constructor:Qu,ValueTypeName:"bool",ValueBufferType:Array,DefaultInterpolation:Ht,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),Zu.prototype=Object.assign(Object.create(Yu.prototype),{constructor:Zu,ValueTypeName:"color"}),Ku.prototype=Object.assign(Object.create(Yu.prototype),{constructor:Ku,ValueTypeName:"number"}),Ju.prototype=Object.assign(Object.create(Vu.prototype),{constructor:Ju,interpolate_:function(e,t,n,r){for(var i=this.resultBuffer,o=this.sampleValues,a=this.valueSize,s=(n-t)/(r-t),l=e*a,c=l+a;l!==c;l+=4)sr.slerpFlat(i,0,o,l-a,o,l,s);return i}}),$u.prototype=Object.assign(Object.create(Yu.prototype),{constructor:$u,ValueTypeName:"quaternion",DefaultInterpolation:Gt,InterpolantFactoryMethodLinear:function(e){return new Ju(this.times,this.values,this.getValueSize(),e)},InterpolantFactoryMethodSmooth:void 0}),eh.prototype=Object.assign(Object.create(Yu.prototype),{constructor:eh,ValueTypeName:"string",ValueBufferType:Array,DefaultInterpolation:Ht,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),th.prototype=Object.assign(Object.create(Yu.prototype),{constructor:th,ValueTypeName:"vector"}),Object.assign(nh,{parse:function(e){for(var t=[],n=e.tracks,r=1/(e.fps||1),i=0,o=n.length;i!==o;++i)t.push(ih(n[i]).scale(r));var a=new nh(e.name,e.duration,t,e.blendMode);return a.uuid=e.uuid,a},toJSON:function(e){for(var t=[],n=e.tracks,r={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode},i=0,o=n.length;i!==o;++i)t.push(Yu.toJSON(n[i]));return r},CreateFromMorphTargetSequence:function(e,t,n,r){for(var i=t.length,o=[],a=0;a<i;a++){var s=[],l=[];s.push((a+i-1)%i,a,(a+1)%i),l.push(0,1,0);var c=ju.getKeyframeOrder(s);s=ju.sortedArray(s,1,c),l=ju.sortedArray(l,1,c),r||0!==s[0]||(s.push(i),l.push(l[0])),o.push(new Ku(".morphTargetInfluences["+t[a].name+"]",s,l).scale(1/n))}return new nh(e,-1,o)},findByName:function(e,t){var n=e;if(!Array.isArray(e)){var r=e;n=r.geometry&&r.geometry.animations||r.animations}for(var i=0;i<n.length;i++)if(n[i].name===t)return n[i];return null},CreateClipsFromMorphTargetSequences:function(e,t,n){for(var r={},i=/^([\w-]*?)([\d]+)$/,o=0,a=e.length;o<a;o++){var s=e[o],l=s.name.match(i);if(l&&l.length>1){var c=l[1],u=r[c];u||(r[c]=u=[]),u.push(s)}}var h=[];for(var d in r)h.push(nh.CreateFromMorphTargetSequence(d,r[d],t,n));return h},parseAnimation:function(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;for(var n=function(e,t,n,r,i){if(0!==n.length){var o=[],a=[];ju.flattenJSON(n,o,a,r),0!==o.length&&i.push(new e(t,o,a))}},r=[],i=e.name||"default",o=e.fps||30,a=e.blendMode,s=e.length||-1,l=e.hierarchy||[],c=0;c<l.length;c++){var u=l[c].keys;if(u&&0!==u.length)if(u[0].morphTargets){var h={},d=void 0;for(d=0;d<u.length;d++)if(u[d].morphTargets)for(var p=0;p<u[d].morphTargets.length;p++)h[u[d].morphTargets[p]]=-1;for(var f in h){for(var m=[],v=[],g=0;g!==u[d].morphTargets.length;++g){var y=u[d];m.push(y.time),v.push(y.morphTarget===f?1:0)}r.push(new Ku(".morphTargetInfluence["+f+"]",m,v))}s=h.length*(o||1)}else{var b=".bones["+t[c].name+"]";n(th,b+".position",u,"pos",r),n($u,b+".quaternion",u,"rot",r),n(th,b+".scale",u,"scl",r)}}return 0===r.length?null:new nh(i,s,r,a)}}),Object.assign(nh.prototype,{resetDuration:function(){for(var e=0,t=0,n=this.tracks.length;t!==n;++t){var r=this.tracks[t];e=Math.max(e,r.times[r.times.length-1])}return this.duration=e,this},trim:function(){for(var e=0;e<this.tracks.length;e++)this.tracks[e].trim(0,this.duration);return this},validate:function(){for(var e=!0,t=0;t<this.tracks.length;t++)e=e&&this.tracks[t].validate();return e},optimize:function(){for(var e=0;e<this.tracks.length;e++)this.tracks[e].optimize();return this},clone:function(){for(var e=[],t=0;t<this.tracks.length;t++)e.push(this.tracks[t].clone());return new nh(this.name,this.duration,e,this.blendMode)},toJSON:function(){return nh.toJSON(this)}});var oh={enabled:!1,files:{},add:function(e,t){!1!==this.enabled&&(this.files[e]=t)},get:function(e){if(!1!==this.enabled)return this.files[e]},remove:function(e){delete this.files[e]},clear:function(){this.files={}}};function ah(e,t,n){var r=this,i=!1,o=0,a=0,s=void 0,l=[];this.onStart=void 0,this.onLoad=e,this.onProgress=t,this.onError=n,this.itemStart=function(e){a++,!1===i&&void 0!==r.onStart&&r.onStart(e,o,a),i=!0},this.itemEnd=function(e){o++,void 0!==r.onProgress&&r.onProgress(e,o,a),o===a&&(i=!1,void 0!==r.onLoad&&r.onLoad())},this.itemError=function(e){void 0!==r.onError&&r.onError(e)},this.resolveURL=function(e){return s?s(e):e},this.setURLModifier=function(e){return s=e,this},this.addHandler=function(e,t){return l.push(e,t),this},this.removeHandler=function(e){var t=l.indexOf(e);return-1!==t&&l.splice(t,2),this},this.getHandler=function(e){for(var t=0,n=l.length;t<n;t+=2){var r=l[t],i=l[t+1];if(r.global&&(r.lastIndex=0),r.test(e))return i}return null}}var sh=new ah;function lh(e){this.manager=void 0!==e?e:sh,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}Object.assign(lh.prototype,{load:function(){},loadAsync:function(e,t){var n=this;return new Promise((function(r,i){n.load(e,r,t,i)}))},parse:function(){},setCrossOrigin:function(e){return this.crossOrigin=e,this},setWithCredentials:function(e){return this.withCredentials=e,this},setPath:function(e){return this.path=e,this},setResourcePath:function(e){return this.resourcePath=e,this},setRequestHeader:function(e){return this.requestHeader=e,this}});var ch={};function uh(e){lh.call(this,e)}function hh(e){lh.call(this,e)}function dh(e){lh.call(this,e)}function ph(e){lh.call(this,e)}function fh(e){lh.call(this,e)}function mh(e){lh.call(this,e)}function vh(e){lh.call(this,e)}function gh(){this.type="Curve",this.arcLengthDivisions=200}function yh(e,t,n,r,i,o,a,s){gh.call(this),this.type="EllipseCurve",this.aX=e||0,this.aY=t||0,this.xRadius=n||1,this.yRadius=r||1,this.aStartAngle=i||0,this.aEndAngle=o||2*Math.PI,this.aClockwise=a||!1,this.aRotation=s||0}function bh(e,t,n,r,i,o){yh.call(this,e,t,n,n,r,i,o),this.type="ArcCurve"}function Ah(){var e=0,t=0,n=0,r=0;function i(i,o,a,s){e=i,t=a,n=-3*i+3*o-2*a-s,r=2*i-2*o+a+s}return{initCatmullRom:function(e,t,n,r,o){i(t,n,o*(n-e),o*(r-t))},initNonuniformCatmullRom:function(e,t,n,r,o,a,s){var l=(t-e)/o-(n-e)/(o+a)+(n-t)/a,c=(n-t)/a-(r-t)/(a+s)+(r-n)/s;i(t,n,l*=a,c*=a)},calc:function(i){var o=i*i;return e+t*i+n*o+r*(o*i)}}}uh.prototype=Object.assign(Object.create(lh.prototype),{constructor:uh,load:function(e,t,n,r){void 0===e&&(e=""),void 0!==this.path&&(e=this.path+e),e=this.manager.resolveURL(e);var i=this,o=oh.get(e);if(void 0!==o)return i.manager.itemStart(e),setTimeout((function(){t&&t(o),i.manager.itemEnd(e)}),0),o;if(void 0===ch[e]){var a,s=/^data:(.*?)(;base64)?,(.*)$/,l=e.match(s);if(l){var c=l[1],u=!!l[2],h=l[3];h=decodeURIComponent(h),u&&(h=atob(h));try{var d,p=(this.responseType||"").toLowerCase();switch(p){case"arraybuffer":case"blob":for(var f=new Uint8Array(h.length),m=0;m<h.length;m++)f[m]=h.charCodeAt(m);d="blob"===p?new Blob([f.buffer],{type:c}):f.buffer;break;case"document":var v=new DOMParser;d=v.parseFromString(h,c);break;case"json":d=JSON.parse(h);break;default:d=h}setTimeout((function(){t&&t(d),i.manager.itemEnd(e)}),0)}catch(y){setTimeout((function(){r&&r(y),i.manager.itemError(e),i.manager.itemEnd(e)}),0)}}else{for(var g in ch[e]=[],ch[e].push({onLoad:t,onProgress:n,onError:r}),(a=new XMLHttpRequest).open("GET",e,!0),a.addEventListener("load",(function(t){var n=this.response,r=ch[e];if(delete ch[e],200===this.status||0===this.status){0===this.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),oh.add(e,n);for(var o=0,a=r.length;o<a;o++){var s=r[o];s.onLoad&&s.onLoad(n)}i.manager.itemEnd(e)}else{for(var l=0,c=r.length;l<c;l++){var u=r[l];u.onError&&u.onError(t)}i.manager.itemError(e),i.manager.itemEnd(e)}}),!1),a.addEventListener("progress",(function(t){for(var n=ch[e],r=0,i=n.length;r<i;r++){var o=n[r];o.onProgress&&o.onProgress(t)}}),!1),a.addEventListener("error",(function(t){var n=ch[e];delete ch[e];for(var r=0,o=n.length;r<o;r++){var a=n[r];a.onError&&a.onError(t)}i.manager.itemError(e),i.manager.itemEnd(e)}),!1),a.addEventListener("abort",(function(t){var n=ch[e];delete ch[e];for(var r=0,o=n.length;r<o;r++){var a=n[r];a.onError&&a.onError(t)}i.manager.itemError(e),i.manager.itemEnd(e)}),!1),void 0!==this.responseType&&(a.responseType=this.responseType),void 0!==this.withCredentials&&(a.withCredentials=this.withCredentials),a.overrideMimeType&&a.overrideMimeType(void 0!==this.mimeType?this.mimeType:"text/plain"),this.requestHeader)a.setRequestHeader(g,this.requestHeader[g]);a.send(null)}return i.manager.itemStart(e),a}ch[e].push({onLoad:t,onProgress:n,onError:r})},setResponseType:function(e){return this.responseType=e,this},setMimeType:function(e){return this.mimeType=e,this}}),hh.prototype=Object.assign(Object.create(lh.prototype),{constructor:hh,load:function(t,n,r,i){var o=this,a=new uh(o.manager);a.setPath(o.path),a.setRequestHeader(o.requestHeader),a.setWithCredentials(o.withCredentials),a.load(t,(function(r){try{n(o.parse(JSON.parse(r)))}catch(e){i?i(e):console.error(e),o.manager.itemError(t)}}),r,i)},parse:function(e){for(var t=[],n=0;n<e.length;n++){var r=nh.parse(e[n]);t.push(r)}return t}}),dh.prototype=Object.assign(Object.create(lh.prototype),{constructor:dh,load:function(e,t,n,r){var i=this,o=[],a=new Ac,s=new uh(this.manager);s.setPath(this.path),s.setResponseType("arraybuffer"),s.setRequestHeader(this.requestHeader),s.setWithCredentials(i.withCredentials);var l=0;function c(c){s.load(e[c],(function(e){var n=i.parse(e,!0);o[c]={width:n.width,height:n.height,format:n.format,mipmaps:n.mipmaps},6===(l+=1)&&(1===n.mipmapCount&&(a.minFilter=Ae),a.image=o,a.format=n.format,a.needsUpdate=!0,t&&t(a))}),n,r)}if(Array.isArray(e))for(var u=0,h=e.length;u<h;++u)c(u);else s.load(e,(function(e){var n=i.parse(e,!0);if(n.isCubemap){for(var r=n.mipmaps.length/n.mipmapCount,s=0;s<r;s++){o[s]={mipmaps:[]};for(var l=0;l<n.mipmapCount;l++)o[s].mipmaps.push(n.mipmaps[s*n.mipmapCount+l]),o[s].format=n.format,o[s].width=n.width,o[s].height=n.height}a.image=o}else a.image.width=n.width,a.image.height=n.height,a.mipmaps=n.mipmaps;1===n.mipmapCount&&(a.minFilter=Ae),a.format=n.format,a.needsUpdate=!0,t&&t(a)}),n,r);return a}}),ph.prototype=Object.assign(Object.create(lh.prototype),{constructor:ph,load:function(e,t,n,r){void 0!==this.path&&(e=this.path+e),e=this.manager.resolveURL(e);var i=this,o=oh.get(e);if(void 0!==o)return i.manager.itemStart(e),setTimeout((function(){t&&t(o),i.manager.itemEnd(e)}),0),o;var a=document.createElementNS("http://www.w3.org/1999/xhtml","img");function s(){a.removeEventListener("load",s,!1),a.removeEventListener("error",l,!1),oh.add(e,this),t&&t(this),i.manager.itemEnd(e)}function l(t){a.removeEventListener("load",s,!1),a.removeEventListener("error",l,!1),r&&r(t),i.manager.itemError(e),i.manager.itemEnd(e)}return a.addEventListener("load",s,!1),a.addEventListener("error",l,!1),"data:"!==e.substr(0,5)&&void 0!==this.crossOrigin&&(a.crossOrigin=this.crossOrigin),i.manager.itemStart(e),a.src=e,a}}),fh.prototype=Object.assign(Object.create(lh.prototype),{constructor:fh,load:function(e,t,n,r){var i=new ko,o=new ph(this.manager);o.setCrossOrigin(this.crossOrigin),o.setPath(this.path);var a=0;function s(n){o.load(e[n],(function(e){i.images[n]=e,6===++a&&(i.needsUpdate=!0,t&&t(i))}),void 0,r)}for(var l=0;l<e.length;++l)s(l);return i}}),mh.prototype=Object.assign(Object.create(lh.prototype),{constructor:mh,load:function(e,t,n,r){var i=this,o=new Uo,a=new uh(this.manager);return a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setPath(this.path),a.setWithCredentials(i.withCredentials),a.load(e,(function(e){var n=i.parse(e);n&&(void 0!==n.image?o.image=n.image:void 0!==n.data&&(o.image.width=n.width,o.image.height=n.height,o.image.data=n.data),o.wrapS=void 0!==n.wrapS?n.wrapS:pe,o.wrapT=void 0!==n.wrapT?n.wrapT:pe,o.magFilter=void 0!==n.magFilter?n.magFilter:Ae,o.minFilter=void 0!==n.minFilter?n.minFilter:Ae,o.anisotropy=void 0!==n.anisotropy?n.anisotropy:1,void 0!==n.encoding&&(o.encoding=n.encoding),void 0!==n.flipY&&(o.flipY=n.flipY),void 0!==n.format&&(o.format=n.format),void 0!==n.type&&(o.type=n.type),void 0!==n.mipmaps&&(o.mipmaps=n.mipmaps,o.minFilter=Ee),1===n.mipmapCount&&(o.minFilter=Ae),o.needsUpdate=!0,t&&t(o,n))}),n,r),o}}),vh.prototype=Object.assign(Object.create(lh.prototype),{constructor:vh,load:function(e,t,n,r){var i=new nr,o=new ph(this.manager);return o.setCrossOrigin(this.crossOrigin),o.setPath(this.path),o.load(e,(function(n){i.image=n;var r=e.search(/\.jpe?g($|\?)/i)>0||0===e.search(/^data\:image\/jpeg/);i.format=r?Ne:Ue,i.needsUpdate=!0,void 0!==t&&t(i)}),n,r),i}}),Object.assign(gh.prototype,{getPoint:function(){return console.warn("THREE.Curve: .getPoint() not implemented."),null},getPointAt:function(e,t){var n=this.getUtoTmapping(e);return this.getPoint(n,t)},getPoints:function(e){void 0===e&&(e=5);for(var t=[],n=0;n<=e;n++)t.push(this.getPoint(n/e));return t},getSpacedPoints:function(e){void 0===e&&(e=5);for(var t=[],n=0;n<=e;n++)t.push(this.getPointAt(n/e));return t},getLength:function(){var e=this.getLengths();return e[e.length-1]},getLengths:function(e){if(void 0===e&&(e=this.arcLengthDivisions),this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var t,n=[],r=this.getPoint(0),i=0;n.push(0);for(var o=1;o<=e;o++)i+=(t=this.getPoint(o/e)).distanceTo(r),n.push(i),r=t;return this.cacheArcLengths=n,n},updateArcLengths:function(){this.needsUpdate=!0,this.getLengths()},getUtoTmapping:function(e,t){var n,r=this.getLengths(),i=0,o=r.length;n=t||e*r[o-1];for(var a,s=0,l=o-1;s<=l;)if((a=r[i=Math.floor(s+(l-s)/2)]-n)<0)s=i+1;else{if(!(a>0)){l=i;break}l=i-1}if(r[i=l]===n)return i/(o-1);var c=r[i];return(i+(n-c)/(r[i+1]-c))/(o-1)},getTangent:function(e,t){var n=1e-4,r=e-n,i=e+n;r<0&&(r=0),i>1&&(i=1);var o=this.getPoint(r),a=this.getPoint(i),s=t||(o.isVector2?new Jn:new lr);return s.copy(a).sub(o).normalize(),s},getTangentAt:function(e,t){var n=this.getUtoTmapping(e);return this.getTangent(n,t)},computeFrenetFrames:function(e,t){for(var n=new lr,r=[],i=[],o=[],a=new lr,s=new Fr,l=0;l<=e;l++){var c=l/e;r[l]=this.getTangentAt(c,new lr),r[l].normalize()}i[0]=new lr,o[0]=new lr;var u=Number.MAX_VALUE,h=Math.abs(r[0].x),d=Math.abs(r[0].y),p=Math.abs(r[0].z);h<=u&&(u=h,n.set(1,0,0)),d<=u&&(u=d,n.set(0,1,0)),p<=u&&n.set(0,0,1),a.crossVectors(r[0],n).normalize(),i[0].crossVectors(r[0],a),o[0].crossVectors(r[0],i[0]);for(var f=1;f<=e;f++){if(i[f]=i[f-1].clone(),o[f]=o[f-1].clone(),a.crossVectors(r[f-1],r[f]),a.length()>Number.EPSILON){a.normalize();var m=Math.acos(Kn.clamp(r[f-1].dot(r[f]),-1,1));i[f].applyMatrix4(s.makeRotationAxis(a,m))}o[f].crossVectors(r[f],i[f])}if(!0===t){var v=Math.acos(Kn.clamp(i[0].dot(i[e]),-1,1));v/=e,r[0].dot(a.crossVectors(i[0],i[e]))>0&&(v=-v);for(var g=1;g<=e;g++)i[g].applyMatrix4(s.makeRotationAxis(r[g],v*g)),o[g].crossVectors(r[g],i[g])}return{tangents:r,normals:i,binormals:o}},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.arcLengthDivisions=e.arcLengthDivisions,this},toJSON:function(){var e={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e},fromJSON:function(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}),yh.prototype=Object.create(gh.prototype),yh.prototype.constructor=yh,yh.prototype.isEllipseCurve=!0,yh.prototype.getPoint=function(e,t){for(var n=t||new Jn,r=2*Math.PI,i=this.aEndAngle-this.aStartAngle,o=Math.abs(i)<Number.EPSILON;i<0;)i+=r;for(;i>r;)i-=r;i<Number.EPSILON&&(i=o?0:r),!0!==this.aClockwise||o||(i===r?i=-r:i-=r);var a=this.aStartAngle+e*i,s=this.aX+this.xRadius*Math.cos(a),l=this.aY+this.yRadius*Math.sin(a);if(0!==this.aRotation){var c=Math.cos(this.aRotation),u=Math.sin(this.aRotation),h=s-this.aX,d=l-this.aY;s=h*c-d*u+this.aX,l=h*u+d*c+this.aY}return n.set(s,l)},yh.prototype.copy=function(e){return gh.prototype.copy.call(this,e),this.aX=e.aX,this.aY=e.aY,this.xRadius=e.xRadius,this.yRadius=e.yRadius,this.aStartAngle=e.aStartAngle,this.aEndAngle=e.aEndAngle,this.aClockwise=e.aClockwise,this.aRotation=e.aRotation,this},yh.prototype.toJSON=function(){var e=gh.prototype.toJSON.call(this);return e.aX=this.aX,e.aY=this.aY,e.xRadius=this.xRadius,e.yRadius=this.yRadius,e.aStartAngle=this.aStartAngle,e.aEndAngle=this.aEndAngle,e.aClockwise=this.aClockwise,e.aRotation=this.aRotation,e},yh.prototype.fromJSON=function(e){return gh.prototype.fromJSON.call(this,e),this.aX=e.aX,this.aY=e.aY,this.xRadius=e.xRadius,this.yRadius=e.yRadius,this.aStartAngle=e.aStartAngle,this.aEndAngle=e.aEndAngle,this.aClockwise=e.aClockwise,this.aRotation=e.aRotation,this},bh.prototype=Object.create(yh.prototype),bh.prototype.constructor=bh,bh.prototype.isArcCurve=!0;var wh=new lr,xh=new Ah,Eh=new Ah,Mh=new Ah;function _h(e,t,n,r){void 0===e&&(e=[]),void 0===t&&(t=!1),void 0===n&&(n="centripetal"),void 0===r&&(r=.5),gh.call(this),this.type="CatmullRomCurve3",this.points=e,this.closed=t,this.curveType=n,this.tension=r}function Th(e,t,n,r,i){var o=.5*(r-t),a=.5*(i-n),s=e*e;return(2*n-2*r+o+a)*(e*s)+(-3*n+3*r-2*o-a)*s+o*e+n}function Sh(e,t){var n=1-e;return n*n*t}function Ch(e,t){return 2*(1-e)*e*t}function Lh(e,t){return e*e*t}function Rh(e,t,n,r){return Sh(e,t)+Ch(e,n)+Lh(e,r)}function Ph(e,t){var n=1-e;return n*n*n*t}function Dh(e,t){var n=1-e;return 3*n*n*e*t}function Oh(e,t){return 3*(1-e)*e*e*t}function Ih(e,t){return e*e*e*t}function Bh(e,t,n,r,i){return Ph(e,t)+Dh(e,n)+Oh(e,r)+Ih(e,i)}function Fh(e,t,n,r){void 0===e&&(e=new Jn),void 0===t&&(t=new Jn),void 0===n&&(n=new Jn),void 0===r&&(r=new Jn),gh.call(this),this.type="CubicBezierCurve",this.v0=e,this.v1=t,this.v2=n,this.v3=r}function kh(e,t,n,r){void 0===e&&(e=new lr),void 0===t&&(t=new lr),void 0===n&&(n=new lr),void 0===r&&(r=new lr),gh.call(this),this.type="CubicBezierCurve3",this.v0=e,this.v1=t,this.v2=n,this.v3=r}function Nh(e,t){void 0===e&&(e=new Jn),void 0===t&&(t=new Jn),gh.call(this),this.type="LineCurve",this.v1=e,this.v2=t}function Uh(e,t){void 0===e&&(e=new lr),void 0===t&&(t=new lr),gh.call(this),this.type="LineCurve3",this.v1=e,this.v2=t}function Hh(e,t,n){void 0===e&&(e=new Jn),void 0===t&&(t=new Jn),void 0===n&&(n=new Jn),gh.call(this),this.type="QuadraticBezierCurve",this.v0=e,this.v1=t,this.v2=n}function Gh(e,t,n){void 0===e&&(e=new lr),void 0===t&&(t=new lr),void 0===n&&(n=new lr),gh.call(this),this.type="QuadraticBezierCurve3",this.v0=e,this.v1=t,this.v2=n}function zh(e){void 0===e&&(e=[]),gh.call(this),this.type="SplineCurve",this.points=e}_h.prototype=Object.create(gh.prototype),_h.prototype.constructor=_h,_h.prototype.isCatmullRomCurve3=!0,_h.prototype.getPoint=function(e,t){void 0===t&&(t=new lr);var n,r,i=t,o=this.points,a=o.length,s=(a-(this.closed?0:1))*e,l=Math.floor(s),c=s-l;this.closed?l+=l>0?0:(Math.floor(Math.abs(l)/a)+1)*a:0===c&&l===a-1&&(l=a-2,c=1),this.closed||l>0?n=o[(l-1)%a]:(wh.subVectors(o[0],o[1]).add(o[0]),n=wh);var u=o[l%a],h=o[(l+1)%a];if(this.closed||l+2<a?r=o[(l+2)%a]:(wh.subVectors(o[a-1],o[a-2]).add(o[a-1]),r=wh),"centripetal"===this.curveType||"chordal"===this.curveType){var d="chordal"===this.curveType?.5:.25,p=Math.pow(n.distanceToSquared(u),d),f=Math.pow(u.distanceToSquared(h),d),m=Math.pow(h.distanceToSquared(r),d);f<1e-4&&(f=1),p<1e-4&&(p=f),m<1e-4&&(m=f),xh.initNonuniformCatmullRom(n.x,u.x,h.x,r.x,p,f,m),Eh.initNonuniformCatmullRom(n.y,u.y,h.y,r.y,p,f,m),Mh.initNonuniformCatmullRom(n.z,u.z,h.z,r.z,p,f,m)}else"catmullrom"===this.curveType&&(xh.initCatmullRom(n.x,u.x,h.x,r.x,this.tension),Eh.initCatmullRom(n.y,u.y,h.y,r.y,this.tension),Mh.initCatmullRom(n.z,u.z,h.z,r.z,this.tension));return i.set(xh.calc(c),Eh.calc(c),Mh.calc(c)),i},_h.prototype.copy=function(e){gh.prototype.copy.call(this,e),this.points=[];for(var t=0,n=e.points.length;t<n;t++){var r=e.points[t];this.points.push(r.clone())}return this.closed=e.closed,this.curveType=e.curveType,this.tension=e.tension,this},_h.prototype.toJSON=function(){var e=gh.prototype.toJSON.call(this);e.points=[];for(var t=0,n=this.points.length;t<n;t++){var r=this.points[t];e.points.push(r.toArray())}return e.closed=this.closed,e.curveType=this.curveType,e.tension=this.tension,e},_h.prototype.fromJSON=function(e){gh.prototype.fromJSON.call(this,e),this.points=[];for(var t=0,n=e.points.length;t<n;t++){var r=e.points[t];this.points.push((new lr).fromArray(r))}return this.closed=e.closed,this.curveType=e.curveType,this.tension=e.tension,this},Fh.prototype=Object.create(gh.prototype),Fh.prototype.constructor=Fh,Fh.prototype.isCubicBezierCurve=!0,Fh.prototype.getPoint=function(e,t){void 0===t&&(t=new Jn);var n=t,r=this.v0,i=this.v1,o=this.v2,a=this.v3;return n.set(Bh(e,r.x,i.x,o.x,a.x),Bh(e,r.y,i.y,o.y,a.y)),n},Fh.prototype.copy=function(e){return gh.prototype.copy.call(this,e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this.v3.copy(e.v3),this},Fh.prototype.toJSON=function(){var e=gh.prototype.toJSON.call(this);return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e.v3=this.v3.toArray(),e},Fh.prototype.fromJSON=function(e){return gh.prototype.fromJSON.call(this,e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this.v3.fromArray(e.v3),this},kh.prototype=Object.create(gh.prototype),kh.prototype.constructor=kh,kh.prototype.isCubicBezierCurve3=!0,kh.prototype.getPoint=function(e,t){void 0===t&&(t=new lr);var n=t,r=this.v0,i=this.v1,o=this.v2,a=this.v3;return n.set(Bh(e,r.x,i.x,o.x,a.x),Bh(e,r.y,i.y,o.y,a.y),Bh(e,r.z,i.z,o.z,a.z)),n},kh.prototype.copy=function(e){return gh.prototype.copy.call(this,e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this.v3.copy(e.v3),this},kh.prototype.toJSON=function(){var e=gh.prototype.toJSON.call(this);return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e.v3=this.v3.toArray(),e},kh.prototype.fromJSON=function(e){return gh.prototype.fromJSON.call(this,e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this.v3.fromArray(e.v3),this},Nh.prototype=Object.create(gh.prototype),Nh.prototype.constructor=Nh,Nh.prototype.isLineCurve=!0,Nh.prototype.getPoint=function(e,t){void 0===t&&(t=new Jn);var n=t;return 1===e?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(e).add(this.v1)),n},Nh.prototype.getPointAt=function(e,t){return this.getPoint(e,t)},Nh.prototype.getTangent=function(e,t){var n=t||new Jn;return n.copy(this.v2).sub(this.v1).normalize(),n},Nh.prototype.copy=function(e){return gh.prototype.copy.call(this,e),this.v1.copy(e.v1),this.v2.copy(e.v2),this},Nh.prototype.toJSON=function(){var e=gh.prototype.toJSON.call(this);return e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e},Nh.prototype.fromJSON=function(e){return gh.prototype.fromJSON.call(this,e),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this},Uh.prototype=Object.create(gh.prototype),Uh.prototype.constructor=Uh,Uh.prototype.isLineCurve3=!0,Uh.prototype.getPoint=function(e,t){void 0===t&&(t=new lr);var n=t;return 1===e?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(e).add(this.v1)),n},Uh.prototype.getPointAt=function(e,t){return this.getPoint(e,t)},Uh.prototype.copy=function(e){return gh.prototype.copy.call(this,e),this.v1.copy(e.v1),this.v2.copy(e.v2),this},Uh.prototype.toJSON=function(){var e=gh.prototype.toJSON.call(this);return e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e},Uh.prototype.fromJSON=function(e){return gh.prototype.fromJSON.call(this,e),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this},Hh.prototype=Object.create(gh.prototype),Hh.prototype.constructor=Hh,Hh.prototype.isQuadraticBezierCurve=!0,Hh.prototype.getPoint=function(e,t){void 0===t&&(t=new Jn);var n=t,r=this.v0,i=this.v1,o=this.v2;return n.set(Rh(e,r.x,i.x,o.x),Rh(e,r.y,i.y,o.y)),n},Hh.prototype.copy=function(e){return gh.prototype.copy.call(this,e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this},Hh.prototype.toJSON=function(){var e=gh.prototype.toJSON.call(this);return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e},Hh.prototype.fromJSON=function(e){return gh.prototype.fromJSON.call(this,e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this},Gh.prototype=Object.create(gh.prototype),Gh.prototype.constructor=Gh,Gh.prototype.isQuadraticBezierCurve3=!0,Gh.prototype.getPoint=function(e,t){void 0===t&&(t=new lr);var n=t,r=this.v0,i=this.v1,o=this.v2;return n.set(Rh(e,r.x,i.x,o.x),Rh(e,r.y,i.y,o.y),Rh(e,r.z,i.z,o.z)),n},Gh.prototype.copy=function(e){return gh.prototype.copy.call(this,e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this},Gh.prototype.toJSON=function(){var e=gh.prototype.toJSON.call(this);return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e},Gh.prototype.fromJSON=function(e){return gh.prototype.fromJSON.call(this,e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this},zh.prototype=Object.create(gh.prototype),zh.prototype.constructor=zh,zh.prototype.isSplineCurve=!0,zh.prototype.getPoint=function(e,t){void 0===t&&(t=new Jn);var n=t,r=this.points,i=(r.length-1)*e,o=Math.floor(i),a=i-o,s=r[0===o?o:o-1],l=r[o],c=r[o>r.length-2?r.length-1:o+1],u=r[o>r.length-3?r.length-1:o+2];return n.set(Th(a,s.x,l.x,c.x,u.x),Th(a,s.y,l.y,c.y,u.y)),n},zh.prototype.copy=function(e){gh.prototype.copy.call(this,e),this.points=[];for(var t=0,n=e.points.length;t<n;t++){var r=e.points[t];this.points.push(r.clone())}return this},zh.prototype.toJSON=function(){var e=gh.prototype.toJSON.call(this);e.points=[];for(var t=0,n=this.points.length;t<n;t++){var r=this.points[t];e.points.push(r.toArray())}return e},zh.prototype.fromJSON=function(e){gh.prototype.fromJSON.call(this,e),this.points=[];for(var t=0,n=e.points.length;t<n;t++){var r=e.points[t];this.points.push((new Jn).fromArray(r))}return this};var jh=Object.freeze({__proto__:null,ArcCurve:bh,CatmullRomCurve3:_h,CubicBezierCurve:Fh,CubicBezierCurve3:kh,EllipseCurve:yh,LineCurve:Nh,LineCurve3:Uh,QuadraticBezierCurve:Hh,QuadraticBezierCurve3:Gh,SplineCurve:zh});function Vh(){gh.call(this),this.type="CurvePath",this.curves=[],this.autoClose=!1}function Wh(e){Vh.call(this),this.type="Path",this.currentPoint=new Jn,e&&this.setFromPoints(e)}function qh(e){Wh.call(this,e),this.uuid=Kn.generateUUID(),this.type="Shape",this.holes=[]}function Xh(e,t){void 0===t&&(t=1),si.call(this),this.type="Light",this.color=new Li(e),this.intensity=t}function Yh(e,t,n){Xh.call(this,e,n),this.type="HemisphereLight",this.position.copy(si.DefaultUp),this.updateMatrix(),this.groundColor=new Li(t)}function Qh(e){this.camera=e,this.bias=0,this.normalBias=0,this.radius=1,this.mapSize=new Jn(512,512),this.map=null,this.mapPass=null,this.matrix=new Fr,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new zo,this._frameExtents=new Jn(1,1),this._viewportCount=1,this._viewports=[new ir(0,0,1,1)]}function Zh(){Qh.call(this,new Oo(50,1,.5,500)),this.focus=1}function Kh(e,t,n,r,i,o){Xh.call(this,e,t),this.type="SpotLight",this.position.copy(si.DefaultUp),this.updateMatrix(),this.target=new si,Object.defineProperty(this,"power",{get:function(){return this.intensity*Math.PI},set:function(e){this.intensity=e/Math.PI}}),this.distance=void 0!==n?n:0,this.angle=void 0!==r?r:Math.PI/3,this.penumbra=void 0!==i?i:0,this.decay=void 0!==o?o:1,this.shadow=new Zh}function Jh(){Qh.call(this,new Oo(90,1,.5,500)),this._frameExtents=new Jn(4,2),this._viewportCount=6,this._viewports=[new ir(2,1,1,1),new ir(0,1,1,1),new ir(3,1,1,1),new ir(1,1,1,1),new ir(3,0,1,1),new ir(1,0,1,1)],this._cubeDirections=[new lr(1,0,0),new lr(-1,0,0),new lr(0,0,1),new lr(0,0,-1),new lr(0,1,0),new lr(0,-1,0)],this._cubeUps=[new lr(0,1,0),new lr(0,1,0),new lr(0,1,0),new lr(0,1,0),new lr(0,0,1),new lr(0,0,-1)]}function $h(e,t,n,r){Xh.call(this,e,t),this.type="PointLight",Object.defineProperty(this,"power",{get:function(){return 4*this.intensity*Math.PI},set:function(e){this.intensity=e/(4*Math.PI)}}),this.distance=void 0!==n?n:0,this.decay=void 0!==r?r:1,this.shadow=new Jh}function ed(e,t,n,r,i,o){void 0===e&&(e=-1),void 0===t&&(t=1),void 0===n&&(n=1),void 0===r&&(r=-1),void 0===i&&(i=.1),void 0===o&&(o=2e3),Do.call(this),this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=n,this.bottom=r,this.near=i,this.far=o,this.updateProjectionMatrix()}function td(){Qh.call(this,new ed(-5,5,5,-5,.5,500))}function nd(e,t){Xh.call(this,e,t),this.type="DirectionalLight",this.position.copy(si.DefaultUp),this.updateMatrix(),this.target=new si,this.shadow=new td}function rd(e,t){Xh.call(this,e,t),this.type="AmbientLight"}function id(e,t,n,r){Xh.call(this,e,t),this.type="RectAreaLight",this.width=void 0!==n?n:10,this.height=void 0!==r?r:10}Vh.prototype=Object.assign(Object.create(gh.prototype),{constructor:Vh,add:function(e){this.curves.push(e)},closePath:function(){var e=this.curves[0].getPoint(0),t=this.curves[this.curves.length-1].getPoint(1);e.equals(t)||this.curves.push(new Nh(t,e))},getPoint:function(e){for(var t=e*this.getLength(),n=this.getCurveLengths(),r=0;r<n.length;){if(n[r]>=t){var i=n[r]-t,o=this.curves[r],a=o.getLength(),s=0===a?0:1-i/a;return o.getPointAt(s)}r++}return null},getLength:function(){var e=this.getCurveLengths();return e[e.length-1]},updateArcLengths:function(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var e=[],t=0,n=0,r=this.curves.length;n<r;n++)t+=this.curves[n].getLength(),e.push(t);return this.cacheLengths=e,e},getSpacedPoints:function(e){void 0===e&&(e=40);for(var t=[],n=0;n<=e;n++)t.push(this.getPoint(n/e));return this.autoClose&&t.push(t[0]),t},getPoints:function(e){void 0===e&&(e=12);for(var t,n=[],r=0,i=this.curves;r<i.length;r++)for(var o=i[r],a=o&&o.isEllipseCurve?2*e:o&&(o.isLineCurve||o.isLineCurve3)?1:o&&o.isSplineCurve?e*o.points.length:e,s=o.getPoints(a),l=0;l<s.length;l++){var c=s[l];t&&t.equals(c)||(n.push(c),t=c)}return this.autoClose&&n.length>1&&!n[n.length-1].equals(n[0])&&n.push(n[0]),n},copy:function(e){gh.prototype.copy.call(this,e),this.curves=[];for(var t=0,n=e.curves.length;t<n;t++){var r=e.curves[t];this.curves.push(r.clone())}return this.autoClose=e.autoClose,this},toJSON:function(){var e=gh.prototype.toJSON.call(this);e.autoClose=this.autoClose,e.curves=[];for(var t=0,n=this.curves.length;t<n;t++){var r=this.curves[t];e.curves.push(r.toJSON())}return e},fromJSON:function(e){gh.prototype.fromJSON.call(this,e),this.autoClose=e.autoClose,this.curves=[];for(var t=0,n=e.curves.length;t<n;t++){var r=e.curves[t];this.curves.push((new jh[r.type]).fromJSON(r))}return this}}),Wh.prototype=Object.assign(Object.create(Vh.prototype),{constructor:Wh,setFromPoints:function(e){this.moveTo(e[0].x,e[0].y);for(var t=1,n=e.length;t<n;t++)this.lineTo(e[t].x,e[t].y);return this},moveTo:function(e,t){return this.currentPoint.set(e,t),this},lineTo:function(e,t){var n=new Nh(this.currentPoint.clone(),new Jn(e,t));return this.curves.push(n),this.currentPoint.set(e,t),this},quadraticCurveTo:function(e,t,n,r){var i=new Hh(this.currentPoint.clone(),new Jn(e,t),new Jn(n,r));return this.curves.push(i),this.currentPoint.set(n,r),this},bezierCurveTo:function(e,t,n,r,i,o){var a=new Fh(this.currentPoint.clone(),new Jn(e,t),new Jn(n,r),new Jn(i,o));return this.curves.push(a),this.currentPoint.set(i,o),this},splineThru:function(e){var t=new zh([this.currentPoint.clone()].concat(e));return this.curves.push(t),this.currentPoint.copy(e[e.length-1]),this},arc:function(e,t,n,r,i,o){var a=this.currentPoint.x,s=this.currentPoint.y;return this.absarc(e+a,t+s,n,r,i,o),this},absarc:function(e,t,n,r,i,o){return this.absellipse(e,t,n,n,r,i,o),this},ellipse:function(e,t,n,r,i,o,a,s){var l=this.currentPoint.x,c=this.currentPoint.y;return this.absellipse(e+l,t+c,n,r,i,o,a,s),this},absellipse:function(e,t,n,r,i,o,a,s){var l=new yh(e,t,n,r,i,o,a,s);if(this.curves.length>0){var c=l.getPoint(0);c.equals(this.currentPoint)||this.lineTo(c.x,c.y)}this.curves.push(l);var u=l.getPoint(1);return this.currentPoint.copy(u),this},copy:function(e){return Vh.prototype.copy.call(this,e),this.currentPoint.copy(e.currentPoint),this},toJSON:function(){var e=Vh.prototype.toJSON.call(this);return e.currentPoint=this.currentPoint.toArray(),e},fromJSON:function(e){return Vh.prototype.fromJSON.call(this,e),this.currentPoint.fromArray(e.currentPoint),this}}),qh.prototype=Object.assign(Object.create(Wh.prototype),{constructor:qh,getPointsHoles:function(e){for(var t=[],n=0,r=this.holes.length;n<r;n++)t[n]=this.holes[n].getPoints(e);return t},extractPoints:function(e){return{shape:this.getPoints(e),holes:this.getPointsHoles(e)}},copy:function(e){Wh.prototype.copy.call(this,e),this.holes=[];for(var t=0,n=e.holes.length;t<n;t++){var r=e.holes[t];this.holes.push(r.clone())}return this},toJSON:function(){var e=Wh.prototype.toJSON.call(this);e.uuid=this.uuid,e.holes=[];for(var t=0,n=this.holes.length;t<n;t++){var r=this.holes[t];e.holes.push(r.toJSON())}return e},fromJSON:function(e){Wh.prototype.fromJSON.call(this,e),this.uuid=e.uuid,this.holes=[];for(var t=0,n=e.holes.length;t<n;t++){var r=e.holes[t];this.holes.push((new Wh).fromJSON(r))}return this}}),Xh.prototype=Object.assign(Object.create(si.prototype),{constructor:Xh,isLight:!0,copy:function(e){return si.prototype.copy.call(this,e),this.color.copy(e.color),this.intensity=e.intensity,this},toJSON:function(e){var t=si.prototype.toJSON.call(this,e);return t.object.color=this.color.getHex(),t.object.intensity=this.intensity,void 0!==this.groundColor&&(t.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(t.object.distance=this.distance),void 0!==this.angle&&(t.object.angle=this.angle),void 0!==this.decay&&(t.object.decay=this.decay),void 0!==this.penumbra&&(t.object.penumbra=this.penumbra),void 0!==this.shadow&&(t.object.shadow=this.shadow.toJSON()),t}}),Yh.prototype=Object.assign(Object.create(Xh.prototype),{constructor:Yh,isHemisphereLight:!0,copy:function(e){return Xh.prototype.copy.call(this,e),this.groundColor.copy(e.groundColor),this}}),Object.assign(Qh.prototype,{_projScreenMatrix:new Fr,_lightPositionWorld:new lr,_lookTarget:new lr,getViewportCount:function(){return this._viewportCount},getFrustum:function(){return this._frustum},updateMatrices:function(e){var t=this.camera,n=this.matrix,r=this._projScreenMatrix,i=this._lookTarget,o=this._lightPositionWorld;o.setFromMatrixPosition(e.matrixWorld),t.position.copy(o),i.setFromMatrixPosition(e.target.matrixWorld),t.lookAt(i),t.updateMatrixWorld(),r.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),this._frustum.setFromProjectionMatrix(r),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(t.projectionMatrix),n.multiply(t.matrixWorldInverse)},getViewport:function(e){return this._viewports[e]},getFrameExtents:function(){return this._frameExtents},copy:function(e){return this.camera=e.camera.clone(),this.bias=e.bias,this.radius=e.radius,this.mapSize.copy(e.mapSize),this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var e={};return 0!==this.bias&&(e.bias=this.bias),0!==this.normalBias&&(e.normalBias=this.normalBias),1!==this.radius&&(e.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(e.mapSize=this.mapSize.toArray()),e.camera=this.camera.toJSON(!1).object,delete e.camera.matrix,e}}),Zh.prototype=Object.assign(Object.create(Qh.prototype),{constructor:Zh,isSpotLightShadow:!0,updateMatrices:function(e){var t=this.camera,n=2*Kn.RAD2DEG*e.angle*this.focus,r=this.mapSize.width/this.mapSize.height,i=e.distance||t.far;n===t.fov&&r===t.aspect&&i===t.far||(t.fov=n,t.aspect=r,t.far=i,t.updateProjectionMatrix()),Qh.prototype.updateMatrices.call(this,e)}}),Kh.prototype=Object.assign(Object.create(Xh.prototype),{constructor:Kh,isSpotLight:!0,copy:function(e){return Xh.prototype.copy.call(this,e),this.distance=e.distance,this.angle=e.angle,this.penumbra=e.penumbra,this.decay=e.decay,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}),Jh.prototype=Object.assign(Object.create(Qh.prototype),{constructor:Jh,isPointLightShadow:!0,updateMatrices:function(e,t){void 0===t&&(t=0);var n=this.camera,r=this.matrix,i=this._lightPositionWorld,o=this._lookTarget,a=this._projScreenMatrix;i.setFromMatrixPosition(e.matrixWorld),n.position.copy(i),o.copy(n.position),o.add(this._cubeDirections[t]),n.up.copy(this._cubeUps[t]),n.lookAt(o),n.updateMatrixWorld(),r.makeTranslation(-i.x,-i.y,-i.z),a.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(a)}}),$h.prototype=Object.assign(Object.create(Xh.prototype),{constructor:$h,isPointLight:!0,copy:function(e){return Xh.prototype.copy.call(this,e),this.distance=e.distance,this.decay=e.decay,this.shadow=e.shadow.clone(),this}}),ed.prototype=Object.assign(Object.create(Do.prototype),{constructor:ed,isOrthographicCamera:!0,copy:function(e,t){return Do.prototype.copy.call(this,e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=null===e.view?null:Object.assign({},e.view),this},setViewOffset:function(e,t,n,r,i,o){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=r,this.view.width=i,this.view.height=o,this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()},updateProjectionMatrix:function(){var e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,r=(this.top+this.bottom)/2,i=n-e,o=n+e,a=r+t,s=r-t;if(null!==this.view&&this.view.enabled){var l=(this.right-this.left)/this.view.fullWidth/this.zoom,c=(this.top-this.bottom)/this.view.fullHeight/this.zoom;o=(i+=l*this.view.offsetX)+l*this.view.width,s=(a-=c*this.view.offsetY)-c*this.view.height}this.projectionMatrix.makeOrthographic(i,o,a,s,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()},toJSON:function(e){var t=si.prototype.toJSON.call(this,e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,null!==this.view&&(t.object.view=Object.assign({},this.view)),t}}),td.prototype=Object.assign(Object.create(Qh.prototype),{constructor:td,isDirectionalLightShadow:!0,updateMatrices:function(e){Qh.prototype.updateMatrices.call(this,e)}}),nd.prototype=Object.assign(Object.create(Xh.prototype),{constructor:nd,isDirectionalLight:!0,copy:function(e){return Xh.prototype.copy.call(this,e),this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}),rd.prototype=Object.assign(Object.create(Xh.prototype),{constructor:rd,isAmbientLight:!0}),id.prototype=Object.assign(Object.create(Xh.prototype),{constructor:id,isRectAreaLight:!0,copy:function(e){return Xh.prototype.copy.call(this,e),this.width=e.width,this.height=e.height,this},toJSON:function(e){var t=Xh.prototype.toJSON.call(this,e);return t.object.width=this.width,t.object.height=this.height,t}});var od=function(){function e(){Object.defineProperty(this,"isSphericalHarmonics3",{value:!0}),this.coefficients=[];for(var e=0;e<9;e++)this.coefficients.push(new lr)}var t=e.prototype;return t.set=function(e){for(var t=0;t<9;t++)this.coefficients[t].copy(e[t]);return this},t.zero=function(){for(var e=0;e<9;e++)this.coefficients[e].set(0,0,0);return this},t.getAt=function(e,t){var n=e.x,r=e.y,i=e.z,o=this.coefficients;return t.copy(o[0]).multiplyScalar(.282095),t.addScaledVector(o[1],.488603*r),t.addScaledVector(o[2],.488603*i),t.addScaledVector(o[3],.488603*n),t.addScaledVector(o[4],n*r*1.092548),t.addScaledVector(o[5],r*i*1.092548),t.addScaledVector(o[6],.315392*(3*i*i-1)),t.addScaledVector(o[7],n*i*1.092548),t.addScaledVector(o[8],.546274*(n*n-r*r)),t},t.getIrradianceAt=function(e,t){var n=e.x,r=e.y,i=e.z,o=this.coefficients;return t.copy(o[0]).multiplyScalar(.886227),t.addScaledVector(o[1],1.023328*r),t.addScaledVector(o[2],1.023328*i),t.addScaledVector(o[3],1.023328*n),t.addScaledVector(o[4],.858086*n*r),t.addScaledVector(o[5],.858086*r*i),t.addScaledVector(o[6],.743125*i*i-.247708),t.addScaledVector(o[7],.858086*n*i),t.addScaledVector(o[8],.429043*(n*n-r*r)),t},t.add=function(e){for(var t=0;t<9;t++)this.coefficients[t].add(e.coefficients[t]);return this},t.addScaledSH=function(e,t){for(var n=0;n<9;n++)this.coefficients[n].addScaledVector(e.coefficients[n],t);return this},t.scale=function(e){for(var t=0;t<9;t++)this.coefficients[t].multiplyScalar(e);return this},t.lerp=function(e,t){for(var n=0;n<9;n++)this.coefficients[n].lerp(e.coefficients[n],t);return this},t.equals=function(e){for(var t=0;t<9;t++)if(!this.coefficients[t].equals(e.coefficients[t]))return!1;return!0},t.copy=function(e){return this.set(e.coefficients)},t.clone=function(){return(new this.constructor).copy(this)},t.fromArray=function(e,t){void 0===t&&(t=0);for(var n=this.coefficients,r=0;r<9;r++)n[r].fromArray(e,t+3*r);return this},t.toArray=function(e,t){void 0===e&&(e=[]),void 0===t&&(t=0);for(var n=this.coefficients,r=0;r<9;r++)n[r].toArray(e,t+3*r);return e},e.getBasisAt=function(e,t){var n=e.x,r=e.y,i=e.z;t[0]=.282095,t[1]=.488603*r,t[2]=.488603*i,t[3]=.488603*n,t[4]=1.092548*n*r,t[5]=1.092548*r*i,t[6]=.315392*(3*i*i-1),t[7]=1.092548*n*i,t[8]=.546274*(n*n-r*r)},e}();function ad(e,t){Xh.call(this,void 0,t),this.type="LightProbe",this.sh=void 0!==e?e:new od}function sd(e){lh.call(this,e),this.textures={}}ad.prototype=Object.assign(Object.create(Xh.prototype),{constructor:ad,isLightProbe:!0,copy:function(e){return Xh.prototype.copy.call(this,e),this.sh.copy(e.sh),this},fromJSON:function(e){return this.intensity=e.intensity,this.sh.fromArray(e.sh),this},toJSON:function(e){var t=Xh.prototype.toJSON.call(this,e);return t.object.sh=this.sh.toArray(),t}}),sd.prototype=Object.assign(Object.create(lh.prototype),{constructor:sd,load:function(t,n,r,i){var o=this,a=new uh(o.manager);a.setPath(o.path),a.setRequestHeader(o.requestHeader),a.setWithCredentials(o.withCredentials),a.load(t,(function(r){try{n(o.parse(JSON.parse(r)))}catch(e){i?i(e):console.error(e),o.manager.itemError(t)}}),r,i)},parse:function(e){var t=this.textures;function n(e){return void 0===t[e]&&console.warn("THREE.MaterialLoader: Undefined texture",e),t[e]}var r=new zu[e.type];if(void 0!==e.uuid&&(r.uuid=e.uuid),void 0!==e.name&&(r.name=e.name),void 0!==e.color&&void 0!==r.color&&r.color.setHex(e.color),void 0!==e.roughness&&(r.roughness=e.roughness),void 0!==e.metalness&&(r.metalness=e.metalness),void 0!==e.sheen&&(r.sheen=(new Li).setHex(e.sheen)),void 0!==e.emissive&&void 0!==r.emissive&&r.emissive.setHex(e.emissive),void 0!==e.specular&&void 0!==r.specular&&r.specular.setHex(e.specular),void 0!==e.shininess&&(r.shininess=e.shininess),void 0!==e.clearcoat&&(r.clearcoat=e.clearcoat),void 0!==e.clearcoatRoughness&&(r.clearcoatRoughness=e.clearcoatRoughness),void 0!==e.fog&&(r.fog=e.fog),void 0!==e.flatShading&&(r.flatShading=e.flatShading),void 0!==e.blending&&(r.blending=e.blending),void 0!==e.combine&&(r.combine=e.combine),void 0!==e.side&&(r.side=e.side),void 0!==e.opacity&&(r.opacity=e.opacity),void 0!==e.transparent&&(r.transparent=e.transparent),void 0!==e.alphaTest&&(r.alphaTest=e.alphaTest),void 0!==e.depthTest&&(r.depthTest=e.depthTest),void 0!==e.depthWrite&&(r.depthWrite=e.depthWrite),void 0!==e.colorWrite&&(r.colorWrite=e.colorWrite),void 0!==e.stencilWrite&&(r.stencilWrite=e.stencilWrite),void 0!==e.stencilWriteMask&&(r.stencilWriteMask=e.stencilWriteMask),void 0!==e.stencilFunc&&(r.stencilFunc=e.stencilFunc),void 0!==e.stencilRef&&(r.stencilRef=e.stencilRef),void 0!==e.stencilFuncMask&&(r.stencilFuncMask=e.stencilFuncMask),void 0!==e.stencilFail&&(r.stencilFail=e.stencilFail),void 0!==e.stencilZFail&&(r.stencilZFail=e.stencilZFail),void 0!==e.stencilZPass&&(r.stencilZPass=e.stencilZPass),void 0!==e.wireframe&&(r.wireframe=e.wireframe),void 0!==e.wireframeLinewidth&&(r.wireframeLinewidth=e.wireframeLinewidth),void 0!==e.wireframeLinecap&&(r.wireframeLinecap=e.wireframeLinecap),void 0!==e.wireframeLinejoin&&(r.wireframeLinejoin=e.wireframeLinejoin),void 0!==e.rotation&&(r.rotation=e.rotation),1!==e.linewidth&&(r.linewidth=e.linewidth),void 0!==e.dashSize&&(r.dashSize=e.dashSize),void 0!==e.gapSize&&(r.gapSize=e.gapSize),void 0!==e.scale&&(r.scale=e.scale),void 0!==e.polygonOffset&&(r.polygonOffset=e.polygonOffset),void 0!==e.polygonOffsetFactor&&(r.polygonOffsetFactor=e.polygonOffsetFactor),void 0!==e.polygonOffsetUnits&&(r.polygonOffsetUnits=e.polygonOffsetUnits),void 0!==e.skinning&&(r.skinning=e.skinning),void 0!==e.morphTargets&&(r.morphTargets=e.morphTargets),void 0!==e.morphNormals&&(r.morphNormals=e.morphNormals),void 0!==e.dithering&&(r.dithering=e.dithering),void 0!==e.vertexTangents&&(r.vertexTangents=e.vertexTangents),void 0!==e.visible&&(r.visible=e.visible),void 0!==e.toneMapped&&(r.toneMapped=e.toneMapped),void 0!==e.userData&&(r.userData=e.userData),void 0!==e.vertexColors&&("number"===typeof e.vertexColors?r.vertexColors=e.vertexColors>0:r.vertexColors=e.vertexColors),void 0!==e.uniforms)for(var i in e.uniforms){var o=e.uniforms[i];switch(r.uniforms[i]={},o.type){case"t":r.uniforms[i].value=n(o.value);break;case"c":r.uniforms[i].value=(new Li).setHex(o.value);break;case"v2":r.uniforms[i].value=(new Jn).fromArray(o.value);break;case"v3":r.uniforms[i].value=(new lr).fromArray(o.value);break;case"v4":r.uniforms[i].value=(new ir).fromArray(o.value);break;case"m3":r.uniforms[i].value=(new $n).fromArray(o.value);break;case"m4":r.uniforms[i].value=(new Fr).fromArray(o.value);break;default:r.uniforms[i].value=o.value}}if(void 0!==e.defines&&(r.defines=e.defines),void 0!==e.vertexShader&&(r.vertexShader=e.vertexShader),void 0!==e.fragmentShader&&(r.fragmentShader=e.fragmentShader),void 0!==e.extensions)for(var a in e.extensions)r.extensions[a]=e.extensions[a];if(void 0!==e.shading&&(r.flatShading=1===e.shading),void 0!==e.size&&(r.size=e.size),void 0!==e.sizeAttenuation&&(r.sizeAttenuation=e.sizeAttenuation),void 0!==e.map&&(r.map=n(e.map)),void 0!==e.matcap&&(r.matcap=n(e.matcap)),void 0!==e.alphaMap&&(r.alphaMap=n(e.alphaMap)),void 0!==e.bumpMap&&(r.bumpMap=n(e.bumpMap)),void 0!==e.bumpScale&&(r.bumpScale=e.bumpScale),void 0!==e.normalMap&&(r.normalMap=n(e.normalMap)),void 0!==e.normalMapType&&(r.normalMapType=e.normalMapType),void 0!==e.normalScale){var s=e.normalScale;!1===Array.isArray(s)&&(s=[s,s]),r.normalScale=(new Jn).fromArray(s)}return void 0!==e.displacementMap&&(r.displacementMap=n(e.displacementMap)),void 0!==e.displacementScale&&(r.displacementScale=e.displacementScale),void 0!==e.displacementBias&&(r.displacementBias=e.displacementBias),void 0!==e.roughnessMap&&(r.roughnessMap=n(e.roughnessMap)),void 0!==e.metalnessMap&&(r.metalnessMap=n(e.metalnessMap)),void 0!==e.emissiveMap&&(r.emissiveMap=n(e.emissiveMap)),void 0!==e.emissiveIntensity&&(r.emissiveIntensity=e.emissiveIntensity),void 0!==e.specularMap&&(r.specularMap=n(e.specularMap)),void 0!==e.envMap&&(r.envMap=n(e.envMap)),void 0!==e.envMapIntensity&&(r.envMapIntensity=e.envMapIntensity),void 0!==e.reflectivity&&(r.reflectivity=e.reflectivity),void 0!==e.refractionRatio&&(r.refractionRatio=e.refractionRatio),void 0!==e.lightMap&&(r.lightMap=n(e.lightMap)),void 0!==e.lightMapIntensity&&(r.lightMapIntensity=e.lightMapIntensity),void 0!==e.aoMap&&(r.aoMap=n(e.aoMap)),void 0!==e.aoMapIntensity&&(r.aoMapIntensity=e.aoMapIntensity),void 0!==e.gradientMap&&(r.gradientMap=n(e.gradientMap)),void 0!==e.clearcoatMap&&(r.clearcoatMap=n(e.clearcoatMap)),void 0!==e.clearcoatRoughnessMap&&(r.clearcoatRoughnessMap=n(e.clearcoatRoughnessMap)),void 0!==e.clearcoatNormalMap&&(r.clearcoatNormalMap=n(e.clearcoatNormalMap)),void 0!==e.clearcoatNormalScale&&(r.clearcoatNormalScale=(new Jn).fromArray(e.clearcoatNormalScale)),void 0!==e.transmission&&(r.transmission=e.transmission),void 0!==e.transmissionMap&&(r.transmissionMap=n(e.transmissionMap)),r},setTextures:function(e){return this.textures=e,this}});var ld={decodeText:function(t){if("undefined"!==typeof TextDecoder)return(new TextDecoder).decode(t);for(var n="",r=0,i=t.length;r<i;r++)n+=String.fromCharCode(t[r]);try{return decodeURIComponent(escape(n))}catch(e){return n}},extractUrlBase:function(e){var t=e.lastIndexOf("/");return-1===t?"./":e.substr(0,t+1)}};function cd(){ro.call(this),this.type="InstancedBufferGeometry",this.instanceCount=1/0}function ud(e,t,n,r){"number"===typeof n&&(r=n,n=!1,console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.")),Fi.call(this,e,t,n),this.meshPerAttribute=r||1}function hd(e){lh.call(this,e)}cd.prototype=Object.assign(Object.create(ro.prototype),{constructor:cd,isInstancedBufferGeometry:!0,copy:function(e){return ro.prototype.copy.call(this,e),this.instanceCount=e.instanceCount,this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var e=ro.prototype.toJSON.call(this);return e.instanceCount=this.instanceCount,e.isInstancedBufferGeometry=!0,e}}),ud.prototype=Object.assign(Object.create(Fi.prototype),{constructor:ud,isInstancedBufferAttribute:!0,copy:function(e){return Fi.prototype.copy.call(this,e),this.meshPerAttribute=e.meshPerAttribute,this},toJSON:function(){var e=Fi.prototype.toJSON.call(this);return e.meshPerAttribute=this.meshPerAttribute,e.isInstancedBufferAttribute=!0,e}}),hd.prototype=Object.assign(Object.create(lh.prototype),{constructor:hd,load:function(t,n,r,i){var o=this,a=new uh(o.manager);a.setPath(o.path),a.setRequestHeader(o.requestHeader),a.setWithCredentials(o.withCredentials),a.load(t,(function(r){try{n(o.parse(JSON.parse(r)))}catch(e){i?i(e):console.error(e),o.manager.itemError(t)}}),r,i)},parse:function(e){var t={},n={};function r(e,n){if(void 0!==t[n])return t[n];var r=e.interleavedBuffers[n],o=i(e,r.buffer),a=new yl(Qi(r.type,o),r.stride);return a.uuid=r.uuid,t[n]=a,a}function i(e,t){if(void 0!==n[t])return n[t];var r=e.arrayBuffers[t],i=new Uint32Array(r).buffer;return n[t]=i,i}var o=e.isInstancedBufferGeometry?new cd:new ro,a=e.data.index;if(void 0!==a){var s=Qi(a.type,a.array);o.setIndex(new Fi(s,1))}var l=e.data.attributes;for(var c in l){var u=l[c],h=void 0;if(u.isInterleavedBufferAttribute)h=new wl(r(e.data,u.data),u.itemSize,u.offset,u.normalized);else{var d=Qi(u.type,u.array);h=new(u.isInstancedBufferAttribute?ud:Fi)(d,u.itemSize,u.normalized)}void 0!==u.name&&(h.name=u.name),o.setAttribute(c,h)}var p=e.data.morphAttributes;if(p)for(var f in p){for(var m=p[f],v=[],g=0,y=m.length;g<y;g++){var b=m[g],A=void 0;A=b.isInterleavedBufferAttribute?new wl(r(e.data,b.data),b.itemSize,b.offset,b.normalized):new Fi(Qi(b.type,b.array),b.itemSize,b.normalized),void 0!==b.name&&(A.name=b.name),v.push(A)}o.morphAttributes[f]=v}e.data.morphTargetsRelative&&(o.morphTargetsRelative=!0);var w=e.data.groups||e.data.drawcalls||e.data.offsets;if(void 0!==w)for(var x=0,E=w.length;x!==E;++x){var M=w[x];o.addGroup(M.start,M.count,M.materialIndex)}var _=e.data.boundingSphere;if(void 0!==_){var T=new lr;void 0!==_.center&&T.fromArray(_.center),o.boundingSphere=new Sr(T,_.radius)}return e.name&&(o.name=e.name),e.userData&&(o.userData=e.userData),o}});var dd=function(e){function t(t){return e.call(this,t)||this}Gn(t,e);var n=t.prototype;return n.load=function(e,t,n,r){var i=this,o=""===this.path?ld.extractUrlBase(e):this.path;this.resourcePath=this.resourcePath||o;var a=new uh(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,(function(n){var o=null;try{o=JSON.parse(n)}catch(s){return void 0!==r&&r(s),void console.error("THREE:ObjectLoader: Can't parse "+e+".",s.message)}var a=o.metadata;void 0!==a&&void 0!==a.type&&"geometry"!==a.type.toLowerCase()?i.parse(o,t):console.error("THREE.ObjectLoader: Can't load "+e)}),n,r)},n.parse=function(e,t){var n=this.parseAnimations(e.animations),r=this.parseShapes(e.shapes),i=this.parseGeometries(e.geometries,r),o=this.parseImages(e.images,(function(){void 0!==t&&t(l)})),a=this.parseTextures(e.textures,o),s=this.parseMaterials(e.materials,a),l=this.parseObject(e.object,i,s,n),c=this.parseSkeletons(e.skeletons,l);if(this.bindSkeletons(l,c),void 0!==t){var u=!1;for(var h in o)if(o[h]instanceof HTMLImageElement){u=!0;break}!1===u&&t(l)}return l},n.parseShapes=function(e){var t={};if(void 0!==e)for(var n=0,r=e.length;n<r;n++){var i=(new qh).fromJSON(e[n]);t[i.uuid]=i}return t},n.parseSkeletons=function(e,t){var n={},r={};if(t.traverse((function(e){e.isBone&&(r[e.uuid]=e)})),void 0!==e)for(var i=0,o=e.length;i<o;i++){var a=(new Ql).fromJSON(e[i],r);n[a.uuid]=a}return n},n.parseGeometries=function(e,t){var n,r={};if(void 0!==e)for(var i=new hd,o=0,a=e.length;o<a;o++){var s=void 0,l=e[o];switch(l.type){case"PlaneGeometry":case"PlaneBufferGeometry":s=new Pu[l.type](l.width,l.height,l.widthSegments,l.heightSegments);break;case"BoxGeometry":case"BoxBufferGeometry":s=new Pu[l.type](l.width,l.height,l.depth,l.widthSegments,l.heightSegments,l.depthSegments);break;case"CircleGeometry":case"CircleBufferGeometry":s=new Pu[l.type](l.radius,l.segments,l.thetaStart,l.thetaLength);break;case"CylinderGeometry":case"CylinderBufferGeometry":s=new Pu[l.type](l.radiusTop,l.radiusBottom,l.height,l.radialSegments,l.heightSegments,l.openEnded,l.thetaStart,l.thetaLength);break;case"ConeGeometry":case"ConeBufferGeometry":s=new Pu[l.type](l.radius,l.height,l.radialSegments,l.heightSegments,l.openEnded,l.thetaStart,l.thetaLength);break;case"SphereGeometry":case"SphereBufferGeometry":s=new Pu[l.type](l.radius,l.widthSegments,l.heightSegments,l.phiStart,l.phiLength,l.thetaStart,l.thetaLength);break;case"DodecahedronGeometry":case"DodecahedronBufferGeometry":case"IcosahedronGeometry":case"IcosahedronBufferGeometry":case"OctahedronGeometry":case"OctahedronBufferGeometry":case"TetrahedronGeometry":case"TetrahedronBufferGeometry":s=new Pu[l.type](l.radius,l.detail);break;case"RingGeometry":case"RingBufferGeometry":s=new Pu[l.type](l.innerRadius,l.outerRadius,l.thetaSegments,l.phiSegments,l.thetaStart,l.thetaLength);break;case"TorusGeometry":case"TorusBufferGeometry":s=new Pu[l.type](l.radius,l.tube,l.radialSegments,l.tubularSegments,l.arc);break;case"TorusKnotGeometry":case"TorusKnotBufferGeometry":s=new Pu[l.type](l.radius,l.tube,l.tubularSegments,l.radialSegments,l.p,l.q);break;case"TubeGeometry":case"TubeBufferGeometry":s=new Pu[l.type]((new jh[l.path.type]).fromJSON(l.path),l.tubularSegments,l.radius,l.radialSegments,l.closed);break;case"LatheGeometry":case"LatheBufferGeometry":s=new Pu[l.type](l.points,l.segments,l.phiStart,l.phiLength);break;case"PolyhedronGeometry":case"PolyhedronBufferGeometry":s=new Pu[l.type](l.vertices,l.indices,l.radius,l.details);break;case"ShapeGeometry":case"ShapeBufferGeometry":n=[];for(var c=0,u=l.shapes.length;c<u;c++){var h=t[l.shapes[c]];n.push(h)}s=new Pu[l.type](n,l.curveSegments);break;case"ExtrudeGeometry":case"ExtrudeBufferGeometry":n=[];for(var d=0,p=l.shapes.length;d<p;d++){var f=t[l.shapes[d]];n.push(f)}var m=l.options.extrudePath;void 0!==m&&(l.options.extrudePath=(new jh[m.type]).fromJSON(m)),s=new Pu[l.type](n,l.options);break;case"BufferGeometry":case"InstancedBufferGeometry":s=i.parse(l);break;case"Geometry":"THREE"in window&&"LegacyJSONLoader"in THREE?s=(new THREE.LegacyJSONLoader).parse(l,this.resourcePath).geometry:console.error('THREE.ObjectLoader: You have to import LegacyJSONLoader in order load geometry data of type "Geometry".');break;default:console.warn('THREE.ObjectLoader: Unsupported geometry type "'+l.type+'"');continue}s.uuid=l.uuid,void 0!==l.name&&(s.name=l.name),!0===s.isBufferGeometry&&void 0!==l.userData&&(s.userData=l.userData),r[l.uuid]=s}return r},n.parseMaterials=function(e,t){var n={},r={};if(void 0!==e){var i=new sd;i.setTextures(t);for(var o=0,a=e.length;o<a;o++){var s=e[o];if("MultiMaterial"===s.type){for(var l=[],c=0;c<s.materials.length;c++){var u=s.materials[c];void 0===n[u.uuid]&&(n[u.uuid]=i.parse(u)),l.push(n[u.uuid])}r[s.uuid]=l}else void 0===n[s.uuid]&&(n[s.uuid]=i.parse(s)),r[s.uuid]=n[s.uuid]}}return r},n.parseAnimations=function(e){var t={};if(void 0!==e)for(var n=0;n<e.length;n++){var r=e[n],i=nh.parse(r);t[i.uuid]=i}return t},n.parseImages=function(e,t){var n,r=this,i={};function o(e){return r.manager.itemStart(e),n.load(e,(function(){r.manager.itemEnd(e)}),void 0,(function(){r.manager.itemError(e),r.manager.itemEnd(e)}))}function a(e){if("string"===typeof e){var t=e;return o(/^(\/\/)|([a-z]+:(\/\/)?)/i.test(t)?t:r.resourcePath+t)}return e.data?{data:Qi(e.type,e.data),width:e.width,height:e.height}:null}if(void 0!==e&&e.length>0){var s=new ah(t);(n=new ph(s)).setCrossOrigin(this.crossOrigin);for(var l=0,c=e.length;l<c;l++){var u=e[l],h=u.url;if(Array.isArray(h)){i[u.uuid]=[];for(var d=0,p=h.length;d<p;d++){var f=a(h[d]);null!==f&&(f instanceof HTMLImageElement?i[u.uuid].push(f):i[u.uuid].push(new Uo(f.data,f.width,f.height)))}}else{var m=a(u.url);null!==m&&(i[u.uuid]=m)}}}return i},n.parseTextures=function(e,t){function n(e,t){return"number"===typeof e?e:(console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",e),t[e])}var r={};if(void 0!==e)for(var i=0,o=e.length;i<o;i++){var a=e[i];void 0===a.image&&console.warn('THREE.ObjectLoader: No "image" specified for',a.uuid),void 0===t[a.image]&&console.warn("THREE.ObjectLoader: Undefined image",a.image);var s=void 0,l=t[a.image];Array.isArray(l)?(s=new ko(l),6===l.length&&(s.needsUpdate=!0)):(s=l&&l.data?new Uo(l.data,l.width,l.height):new nr(l),l&&(s.needsUpdate=!0)),s.uuid=a.uuid,void 0!==a.name&&(s.name=a.name),void 0!==a.mapping&&(s.mapping=n(a.mapping,pd)),void 0!==a.offset&&s.offset.fromArray(a.offset),void 0!==a.repeat&&s.repeat.fromArray(a.repeat),void 0!==a.center&&s.center.fromArray(a.center),void 0!==a.rotation&&(s.rotation=a.rotation),void 0!==a.wrap&&(s.wrapS=n(a.wrap[0],fd),s.wrapT=n(a.wrap[1],fd)),void 0!==a.format&&(s.format=a.format),void 0!==a.type&&(s.type=a.type),void 0!==a.encoding&&(s.encoding=a.encoding),void 0!==a.minFilter&&(s.minFilter=n(a.minFilter,md)),void 0!==a.magFilter&&(s.magFilter=n(a.magFilter,md)),void 0!==a.anisotropy&&(s.anisotropy=a.anisotropy),void 0!==a.flipY&&(s.flipY=a.flipY),void 0!==a.premultiplyAlpha&&(s.premultiplyAlpha=a.premultiplyAlpha),void 0!==a.unpackAlignment&&(s.unpackAlignment=a.unpackAlignment),r[a.uuid]=s}return r},n.parseObject=function(e,t,n,r){var i,o,a;function s(e){return void 0===t[e]&&console.warn("THREE.ObjectLoader: Undefined geometry",e),t[e]}function l(e){if(void 0!==e){if(Array.isArray(e)){for(var t=[],r=0,i=e.length;r<i;r++){var o=e[r];void 0===n[o]&&console.warn("THREE.ObjectLoader: Undefined material",o),t.push(n[o])}return t}return void 0===n[e]&&console.warn("THREE.ObjectLoader: Undefined material",e),n[e]}}switch(e.type){case"Scene":i=new gl,void 0!==e.background&&Number.isInteger(e.background)&&(i.background=new Li(e.background)),void 0!==e.fog&&("Fog"===e.fog.type?i.fog=new vl(e.fog.color,e.fog.near,e.fog.far):"FogExp2"===e.fog.type&&(i.fog=new ml(e.fog.color,e.fog.density)));break;case"PerspectiveCamera":i=new Oo(e.fov,e.aspect,e.near,e.far),void 0!==e.focus&&(i.focus=e.focus),void 0!==e.zoom&&(i.zoom=e.zoom),void 0!==e.filmGauge&&(i.filmGauge=e.filmGauge),void 0!==e.filmOffset&&(i.filmOffset=e.filmOffset),void 0!==e.view&&(i.view=Object.assign({},e.view));break;case"OrthographicCamera":i=new ed(e.left,e.right,e.top,e.bottom,e.near,e.far),void 0!==e.zoom&&(i.zoom=e.zoom),void 0!==e.view&&(i.view=Object.assign({},e.view));break;case"AmbientLight":i=new rd(e.color,e.intensity);break;case"DirectionalLight":i=new nd(e.color,e.intensity);break;case"PointLight":i=new $h(e.color,e.intensity,e.distance,e.decay);break;case"RectAreaLight":i=new id(e.color,e.intensity,e.width,e.height);break;case"SpotLight":i=new Kh(e.color,e.intensity,e.distance,e.angle,e.penumbra,e.decay);break;case"HemisphereLight":i=new Yh(e.color,e.groundColor,e.intensity);break;case"LightProbe":i=(new ad).fromJSON(e);break;case"SkinnedMesh":i=new Wl(o=s(e.geometry),a=l(e.material)),void 0!==e.bindMode&&(i.bindMode=e.bindMode),void 0!==e.bindMatrix&&i.bindMatrix.fromArray(e.bindMatrix),void 0!==e.skeleton&&(i.skeleton=e.skeleton);break;case"Mesh":i=new xo(o=s(e.geometry),a=l(e.material));break;case"InstancedMesh":o=s(e.geometry),a=l(e.material);var c=e.count,u=e.instanceMatrix;(i=new ec(o,a,c)).instanceMatrix=new Fi(new Float32Array(u.array),16);break;case"LOD":i=new Ul;break;case"Line":i=new sc(s(e.geometry),l(e.material));break;case"LineLoop":i=new hc(s(e.geometry),l(e.material));break;case"LineSegments":i=new uc(s(e.geometry),l(e.material));break;case"PointCloud":case"Points":i=new gc(s(e.geometry),l(e.material));break;case"Sprite":i=new Bl(l(e.material));break;case"Group":i=new rl;break;case"Bone":i=new ql;break;default:i=new si}if(i.uuid=e.uuid,void 0!==e.name&&(i.name=e.name),void 0!==e.matrix?(i.matrix.fromArray(e.matrix),void 0!==e.matrixAutoUpdate&&(i.matrixAutoUpdate=e.matrixAutoUpdate),i.matrixAutoUpdate&&i.matrix.decompose(i.position,i.quaternion,i.scale)):(void 0!==e.position&&i.position.fromArray(e.position),void 0!==e.rotation&&i.rotation.fromArray(e.rotation),void 0!==e.quaternion&&i.quaternion.fromArray(e.quaternion),void 0!==e.scale&&i.scale.fromArray(e.scale)),void 0!==e.castShadow&&(i.castShadow=e.castShadow),void 0!==e.receiveShadow&&(i.receiveShadow=e.receiveShadow),e.shadow&&(void 0!==e.shadow.bias&&(i.shadow.bias=e.shadow.bias),void 0!==e.shadow.normalBias&&(i.shadow.normalBias=e.shadow.normalBias),void 0!==e.shadow.radius&&(i.shadow.radius=e.shadow.radius),void 0!==e.shadow.mapSize&&i.shadow.mapSize.fromArray(e.shadow.mapSize),void 0!==e.shadow.camera&&(i.shadow.camera=this.parseObject(e.shadow.camera))),void 0!==e.visible&&(i.visible=e.visible),void 0!==e.frustumCulled&&(i.frustumCulled=e.frustumCulled),void 0!==e.renderOrder&&(i.renderOrder=e.renderOrder),void 0!==e.userData&&(i.userData=e.userData),void 0!==e.layers&&(i.layers.mask=e.layers),void 0!==e.children)for(var h=e.children,d=0;d<h.length;d++)i.add(this.parseObject(h[d],t,n,r));if(void 0!==e.animations)for(var p=e.animations,f=0;f<p.length;f++){var m=p[f];i.animations.push(r[m])}if("LOD"===e.type){void 0!==e.autoUpdate&&(i.autoUpdate=e.autoUpdate);for(var v=e.levels,g=0;g<v.length;g++){var y=v[g],b=i.getObjectByProperty("uuid",y.object);void 0!==b&&i.addLevel(b,y.distance)}}return i},n.bindSkeletons=function(e,t){0!==Object.keys(t).length&&e.traverse((function(e){if(!0===e.isSkinnedMesh&&void 0!==e.skeleton){var n=t[e.skeleton];void 0===n?console.warn("THREE.ObjectLoader: No skeleton found with UUID:",e.skeleton):e.bind(n,e.bindMatrix)}}))},n.setTexturePath=function(e){return console.warn("THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath()."),this.setResourcePath(e)},t}(lh),pd={UVMapping:oe,CubeReflectionMapping:ae,CubeRefractionMapping:se,EquirectangularReflectionMapping:le,EquirectangularRefractionMapping:ce,CubeUVReflectionMapping:ue,CubeUVRefractionMapping:he},fd={RepeatWrapping:de,ClampToEdgeWrapping:pe,MirroredRepeatWrapping:fe},md={NearestFilter:me,NearestMipmapNearestFilter:ve,NearestMipmapLinearFilter:ye,LinearFilter:Ae,LinearMipmapNearestFilter:we,LinearMipmapLinearFilter:Ee};function vd(e){"undefined"===typeof createImageBitmap&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),"undefined"===typeof fetch&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),lh.call(this,e),this.options={premultiplyAlpha:"none"}}function gd(){this.type="ShapePath",this.color=new Li,this.subPaths=[],this.currentPath=null}vd.prototype=Object.assign(Object.create(lh.prototype),{constructor:vd,isImageBitmapLoader:!0,setOptions:function(e){return this.options=e,this},load:function(e,t,n,r){void 0===e&&(e=""),void 0!==this.path&&(e=this.path+e),e=this.manager.resolveURL(e);var i=this,o=oh.get(e);if(void 0!==o)return i.manager.itemStart(e),setTimeout((function(){t&&t(o),i.manager.itemEnd(e)}),0),o;var a={};a.credentials="anonymous"===this.crossOrigin?"same-origin":"include",fetch(e,a).then((function(e){return e.blob()})).then((function(e){return createImageBitmap(e,i.options)})).then((function(n){oh.add(e,n),t&&t(n),i.manager.itemEnd(e)})).catch((function(t){r&&r(t),i.manager.itemError(e),i.manager.itemEnd(e)})),i.manager.itemStart(e)}}),Object.assign(gd.prototype,{moveTo:function(e,t){return this.currentPath=new Wh,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this},lineTo:function(e,t){return this.currentPath.lineTo(e,t),this},quadraticCurveTo:function(e,t,n,r){return this.currentPath.quadraticCurveTo(e,t,n,r),this},bezierCurveTo:function(e,t,n,r,i,o){return this.currentPath.bezierCurveTo(e,t,n,r,i,o),this},splineThru:function(e){return this.currentPath.splineThru(e),this},toShapes:function(e,t){function n(e){for(var t=[],n=0,r=e.length;n<r;n++){var i=e[n],o=new qh;o.curves=i.curves,t.push(o)}return t}function r(e,t){for(var n=t.length,r=!1,i=n-1,o=0;o<n;i=o++){var a=t[i],s=t[o],l=s.x-a.x,c=s.y-a.y;if(Math.abs(c)>Number.EPSILON){if(c<0&&(a=t[o],l=-l,s=t[i],c=-c),e.y<a.y||e.y>s.y)continue;if(e.y===a.y){if(e.x===a.x)return!0}else{var u=c*(e.x-a.x)-l*(e.y-a.y);if(0===u)return!0;if(u<0)continue;r=!r}}else{if(e.y!==a.y)continue;if(s.x<=e.x&&e.x<=a.x||a.x<=e.x&&e.x<=s.x)return!0}}return r}var i,o,a,s=hu.isClockWise,l=this.subPaths;if(0===l.length)return[];if(!0===t)return n(l);var c=[];if(1===l.length)return o=l[0],(a=new qh).curves=o.curves,c.push(a),c;var u=!s(l[0].getPoints());u=e?!u:u;var h,d,p=[],f=[],m=[],v=0;f[v]=void 0,m[v]=[];for(var g=0,y=l.length;g<y;g++)i=s(h=(o=l[g]).getPoints()),(i=e?!i:i)?(!u&&f[v]&&v++,f[v]={s:new qh,p:h},f[v].s.curves=o.curves,u&&v++,m[v]=[]):m[v].push({h:o,p:h[0]});if(!f[0])return n(l);if(f.length>1){for(var b=!1,A=[],w=0,x=f.length;w<x;w++)p[w]=[];for(var E=0,M=f.length;E<M;E++)for(var _=m[E],T=0;T<_.length;T++){for(var S=_[T],C=!0,L=0;L<f.length;L++)r(S.p,f[L].p)&&(E!==L&&A.push({froms:E,tos:L,hole:T}),C?(C=!1,p[L].push(S)):b=!0);C&&p[E].push(S)}A.length>0&&(b||(m=p))}for(var R=0,P=f.length;R<P;R++){a=f[R].s,c.push(a);for(var D=0,O=(d=m[R]).length;D<O;D++)a.holes.push(d[D].h)}return c}});var yd,bd=function(){function e(e){Object.defineProperty(this,"isFont",{value:!0}),this.type="Font",this.data=e}return e.prototype.generateShapes=function(e,t){void 0===t&&(t=100);for(var n=[],r=Ad(e,t,this.data),i=0,o=r.length;i<o;i++)Array.prototype.push.apply(n,r[i].toShapes());return n},e}();function Ad(e,t,n){for(var r=Array.from?Array.from(e):String(e).split(""),i=t/n.resolution,o=(n.boundingBox.yMax-n.boundingBox.yMin+n.underlineThickness)*i,a=[],s=0,l=0,c=0;c<r.length;c++){var u=r[c];if("\n"===u)s=0,l-=o;else{var h=wd(u,i,s,l,n);s+=h.offsetX,a.push(h.path)}}return a}function wd(e,t,n,r,i){var o=i.glyphs[e]||i.glyphs["?"];if(o){var a,s,l,c,u,h,d,p,f=new gd;if(o.o)for(var m=o._cachedOutline||(o._cachedOutline=o.o.split(" ")),v=0,g=m.length;v<g;)switch(m[v++]){case"m":a=m[v++]*t+n,s=m[v++]*t+r,f.moveTo(a,s);break;case"l":a=m[v++]*t+n,s=m[v++]*t+r,f.lineTo(a,s);break;case"q":l=m[v++]*t+n,c=m[v++]*t+r,u=m[v++]*t+n,h=m[v++]*t+r,f.quadraticCurveTo(u,h,l,c);break;case"b":l=m[v++]*t+n,c=m[v++]*t+r,u=m[v++]*t+n,h=m[v++]*t+r,d=m[v++]*t+n,p=m[v++]*t+r,f.bezierCurveTo(u,h,d,p,l,c)}return{offsetX:o.ha*t,path:f}}console.error('THREE.Font: character "'+e+'" does not exists in font family '+i.familyName+".")}function xd(e){lh.call(this,e)}xd.prototype=Object.assign(Object.create(lh.prototype),{constructor:xd,load:function(t,n,r,i){var o=this,a=new uh(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(o.withCredentials),a.load(t,(function(t){var r;try{r=JSON.parse(t)}catch(e){console.warn("THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."),r=JSON.parse(t.substring(65,t.length-2))}var i=o.parse(r);n&&n(i)}),r,i)},parse:function(e){return new bd(e)}});var Ed={getContext:function(){return void 0===yd&&(yd=new(window.AudioContext||window.webkitAudioContext)),yd},setContext:function(e){yd=e}};function Md(e){lh.call(this,e)}function _d(e,t,n){ad.call(this,void 0,n);var r=(new Li).set(e),i=(new Li).set(t),o=new lr(r.r,r.g,r.b),a=new lr(i.r,i.g,i.b),s=Math.sqrt(Math.PI),l=s*Math.sqrt(.75);this.sh.coefficients[0].copy(o).add(a).multiplyScalar(s),this.sh.coefficients[1].copy(o).sub(a).multiplyScalar(l)}function Td(e,t){ad.call(this,void 0,t);var n=(new Li).set(e);this.sh.coefficients[0].set(n.r,n.g,n.b).multiplyScalar(2*Math.sqrt(Math.PI))}Md.prototype=Object.assign(Object.create(lh.prototype),{constructor:Md,load:function(t,n,r,i){var o=this,a=new uh(o.manager);a.setResponseType("arraybuffer"),a.setPath(o.path),a.setRequestHeader(o.requestHeader),a.setWithCredentials(o.withCredentials),a.load(t,(function(r){try{var a=r.slice(0);Ed.getContext().decodeAudioData(a,(function(e){n(e)}))}catch(e){i?i(e):console.error(e),o.manager.itemError(t)}}),r,i)}}),_d.prototype=Object.assign(Object.create(ad.prototype),{constructor:_d,isHemisphereLightProbe:!0,copy:function(e){return ad.prototype.copy.call(this,e),this},toJSON:function(e){return ad.prototype.toJSON.call(this,e)}}),Td.prototype=Object.assign(Object.create(ad.prototype),{constructor:Td,isAmbientLightProbe:!0,copy:function(e){return ad.prototype.copy.call(this,e),this},toJSON:function(e){return ad.prototype.toJSON.call(this,e)}});var Sd=new Fr,Cd=new Fr;function Ld(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new Oo,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new Oo,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}Object.assign(Ld.prototype,{update:function(e){var t=this._cache;if(t.focus!==e.focus||t.fov!==e.fov||t.aspect!==e.aspect*this.aspect||t.near!==e.near||t.far!==e.far||t.zoom!==e.zoom||t.eyeSep!==this.eyeSep){t.focus=e.focus,t.fov=e.fov,t.aspect=e.aspect*this.aspect,t.near=e.near,t.far=e.far,t.zoom=e.zoom,t.eyeSep=this.eyeSep;var n,r,i=e.projectionMatrix.clone(),o=t.eyeSep/2,a=o*t.near/t.focus,s=t.near*Math.tan(Kn.DEG2RAD*t.fov*.5)/t.zoom;Cd.elements[12]=-o,Sd.elements[12]=o,n=-s*t.aspect+a,r=s*t.aspect+a,i.elements[0]=2*t.near/(r-n),i.elements[8]=(r+n)/(r-n),this.cameraL.projectionMatrix.copy(i),n=-s*t.aspect-a,r=s*t.aspect-a,i.elements[0]=2*t.near/(r-n),i.elements[8]=(r+n)/(r-n),this.cameraR.projectionMatrix.copy(i)}this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(Cd),this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(Sd)}});var Rd=function(){function e(e){this.autoStart=void 0===e||e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}var t=e.prototype;return t.start=function(){this.startTime=Pd(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0},t.stop=function(){this.getElapsedTime(),this.running=!1,this.autoStart=!1},t.getElapsedTime=function(){return this.getDelta(),this.elapsedTime},t.getDelta=function(){var e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){var t=Pd();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e},e}();function Pd(){return("undefined"===typeof performance?Date:performance).now()}var Dd=new lr,Od=new sr,Id=new lr,Bd=new lr,Fd=function(e){function t(){var t;return(t=e.call(this)||this).type="AudioListener",t.context=Ed.getContext(),t.gain=t.context.createGain(),t.gain.connect(t.context.destination),t.filter=null,t.timeDelta=0,t._clock=new Rd,t}Gn(t,e);var n=t.prototype;return n.getInput=function(){return this.gain},n.removeFilter=function(){return null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this},n.getFilter=function(){return this.filter},n.setFilter=function(e){return null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this},n.getMasterVolume=function(){return this.gain.gain.value},n.setMasterVolume=function(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this},n.updateMatrixWorld=function(t){e.prototype.updateMatrixWorld.call(this,t);var n=this.context.listener,r=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(Dd,Od,Id),Bd.set(0,0,-1).applyQuaternion(Od),n.positionX){var i=this.context.currentTime+this.timeDelta;n.positionX.linearRampToValueAtTime(Dd.x,i),n.positionY.linearRampToValueAtTime(Dd.y,i),n.positionZ.linearRampToValueAtTime(Dd.z,i),n.forwardX.linearRampToValueAtTime(Bd.x,i),n.forwardY.linearRampToValueAtTime(Bd.y,i),n.forwardZ.linearRampToValueAtTime(Bd.z,i),n.upX.linearRampToValueAtTime(r.x,i),n.upY.linearRampToValueAtTime(r.y,i),n.upZ.linearRampToValueAtTime(r.z,i)}else n.setPosition(Dd.x,Dd.y,Dd.z),n.setOrientation(Bd.x,Bd.y,Bd.z,r.x,r.y,r.z)},t}(si),kd=function(e){function t(t){var n;return(n=e.call(this)||this).type="Audio",n.listener=t,n.context=t.context,n.gain=n.context.createGain(),n.gain.connect(t.getInput()),n.autoplay=!1,n.buffer=null,n.detune=0,n.loop=!1,n.loopStart=0,n.loopEnd=0,n.offset=0,n.duration=void 0,n.playbackRate=1,n.isPlaying=!1,n.hasPlaybackControl=!0,n.source=null,n.sourceType="empty",n._startedAt=0,n._progress=0,n._connected=!1,n.filters=[],n}Gn(t,e);var n=t.prototype;return n.getOutput=function(){return this.gain},n.setNodeSource=function(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this},n.setMediaElementSource=function(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this},n.setMediaStreamSource=function(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this},n.setBuffer=function(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this},n.play=function(e){if(void 0===e&&(e=0),!0!==this.isPlaying){if(!1!==this.hasPlaybackControl){this._startedAt=this.context.currentTime+e;var t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}console.warn("THREE.Audio: this Audio has no playback control.")}else console.warn("THREE.Audio: Audio is already playing.")},n.pause=function(){if(!1!==this.hasPlaybackControl)return!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this;console.warn("THREE.Audio: this Audio has no playback control.")},n.stop=function(){if(!1!==this.hasPlaybackControl)return this._progress=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this;console.warn("THREE.Audio: this Audio has no playback control.")},n.connect=function(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(var e=1,t=this.filters.length;e<t;e++)this.filters[e-1].connect(this.filters[e]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this._connected=!0,this},n.disconnect=function(){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(var e=1,t=this.filters.length;e<t;e++)this.filters[e-1].disconnect(this.filters[e]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this._connected=!1,this},n.getFilters=function(){return this.filters},n.setFilters=function(e){return e||(e=[]),!0===this._connected?(this.disconnect(),this.filters=e.slice(),this.connect()):this.filters=e.slice(),this},n.setDetune=function(e){if(this.detune=e,void 0!==this.source.detune)return!0===this.isPlaying&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this},n.getDetune=function(){return this.detune},n.getFilter=function(){return this.getFilters()[0]},n.setFilter=function(e){return this.setFilters(e?[e]:[])},n.setPlaybackRate=function(e){if(!1!==this.hasPlaybackControl)return this.playbackRate=e,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this;console.warn("THREE.Audio: this Audio has no playback control.")},n.getPlaybackRate=function(){return this.playbackRate},n.onEnded=function(){this.isPlaying=!1},n.getLoop=function(){return!1===this.hasPlaybackControl?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop},n.setLoop=function(e){if(!1!==this.hasPlaybackControl)return this.loop=e,!0===this.isPlaying&&(this.source.loop=this.loop),this;console.warn("THREE.Audio: this Audio has no playback control.")},n.setLoopStart=function(e){return this.loopStart=e,this},n.setLoopEnd=function(e){return this.loopEnd=e,this},n.getVolume=function(){return this.gain.gain.value},n.setVolume=function(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this},t}(si),Nd=new lr,Ud=new sr,Hd=new lr,Gd=new lr,zd=function(e){function t(t){var n;return(n=e.call(this,t)||this).panner=n.context.createPanner(),n.panner.panningModel="HRTF",n.panner.connect(n.gain),n}Gn(t,e);var n=t.prototype;return n.getOutput=function(){return this.panner},n.getRefDistance=function(){return this.panner.refDistance},n.setRefDistance=function(e){return this.panner.refDistance=e,this},n.getRolloffFactor=function(){return this.panner.rolloffFactor},n.setRolloffFactor=function(e){return this.panner.rolloffFactor=e,this},n.getDistanceModel=function(){return this.panner.distanceModel},n.setDistanceModel=function(e){return this.panner.distanceModel=e,this},n.getMaxDistance=function(){return this.panner.maxDistance},n.setMaxDistance=function(e){return this.panner.maxDistance=e,this},n.setDirectionalCone=function(e,t,n){return this.panner.coneInnerAngle=e,this.panner.coneOuterAngle=t,this.panner.coneOuterGain=n,this},n.updateMatrixWorld=function(t){if(e.prototype.updateMatrixWorld.call(this,t),!0!==this.hasPlaybackControl||!1!==this.isPlaying){this.matrixWorld.decompose(Nd,Ud,Hd),Gd.set(0,0,1).applyQuaternion(Ud);var n=this.panner;if(n.positionX){var r=this.context.currentTime+this.listener.timeDelta;n.positionX.linearRampToValueAtTime(Nd.x,r),n.positionY.linearRampToValueAtTime(Nd.y,r),n.positionZ.linearRampToValueAtTime(Nd.z,r),n.orientationX.linearRampToValueAtTime(Gd.x,r),n.orientationY.linearRampToValueAtTime(Gd.y,r),n.orientationZ.linearRampToValueAtTime(Gd.z,r)}else n.setPosition(Nd.x,Nd.y,Nd.z),n.setOrientation(Gd.x,Gd.y,Gd.z)}},t}(kd),jd=function(){function e(e,t){void 0===t&&(t=2048),this.analyser=e.context.createAnalyser(),this.analyser.fftSize=t,this.data=new Uint8Array(this.analyser.frequencyBinCount),e.getOutput().connect(this.analyser)}var t=e.prototype;return t.getFrequencyData=function(){return this.analyser.getByteFrequencyData(this.data),this.data},t.getAverageFrequency=function(){for(var e=0,t=this.getFrequencyData(),n=0;n<t.length;n++)e+=t[n];return e/t.length},e}();function Vd(e,t,n){var r,i,o;switch(this.binding=e,this.valueSize=n,t){case"quaternion":r=this._slerp,i=this._slerpAdditive,o=this._setAdditiveIdentityQuaternion,this.buffer=new Float64Array(6*n),this._workIndex=5;break;case"string":case"bool":r=this._select,i=this._select,o=this._setAdditiveIdentityOther,this.buffer=new Array(5*n);break;default:r=this._lerp,i=this._lerpAdditive,o=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(5*n)}this._mixBufferRegion=r,this._mixBufferRegionAdditive=i,this._setIdentity=o,this._origIndex=3,this._addIndex=4,this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,this.useCount=0,this.referenceCount=0}Object.assign(Vd.prototype,{accumulate:function(e,t){var n=this.buffer,r=this.valueSize,i=e*r+r,o=this.cumulativeWeight;if(0===o){for(var a=0;a!==r;++a)n[i+a]=n[a];o=t}else{var s=t/(o+=t);this._mixBufferRegion(n,i,0,s,r)}this.cumulativeWeight=o},accumulateAdditive:function(e){var t=this.buffer,n=this.valueSize,r=n*this._addIndex;0===this.cumulativeWeightAdditive&&this._setIdentity(),this._mixBufferRegionAdditive(t,r,0,e,n),this.cumulativeWeightAdditive+=e},apply:function(e){var t=this.valueSize,n=this.buffer,r=e*t+t,i=this.cumulativeWeight,o=this.cumulativeWeightAdditive,a=this.binding;if(this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,i<1){var s=t*this._origIndex;this._mixBufferRegion(n,r,s,1-i,t)}o>0&&this._mixBufferRegionAdditive(n,r,this._addIndex*t,1,t);for(var l=t,c=t+t;l!==c;++l)if(n[l]!==n[l+t]){a.setValue(n,r);break}},saveOriginalState:function(){var e=this.binding,t=this.buffer,n=this.valueSize,r=n*this._origIndex;e.getValue(t,r);for(var i=n,o=r;i!==o;++i)t[i]=t[r+i%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0},restoreOriginalState:function(){var e=3*this.valueSize;this.binding.setValue(this.buffer,e)},_setAdditiveIdentityNumeric:function(){for(var e=this._addIndex*this.valueSize,t=e+this.valueSize,n=e;n<t;n++)this.buffer[n]=0},_setAdditiveIdentityQuaternion:function(){this._setAdditiveIdentityNumeric(),this.buffer[this._addIndex*this.valueSize+3]=1},_setAdditiveIdentityOther:function(){for(var e=this._origIndex*this.valueSize,t=this._addIndex*this.valueSize,n=0;n<this.valueSize;n++)this.buffer[t+n]=this.buffer[e+n]},_select:function(e,t,n,r,i){if(r>=.5)for(var o=0;o!==i;++o)e[t+o]=e[n+o]},_slerp:function(e,t,n,r){sr.slerpFlat(e,t,e,t,e,n,r)},_slerpAdditive:function(e,t,n,r,i){var o=this._workIndex*i;sr.multiplyQuaternionsFlat(e,o,e,t,e,n),sr.slerpFlat(e,t,e,t,e,o,r)},_lerp:function(e,t,n,r,i){for(var o=1-r,a=0;a!==i;++a){var s=t+a;e[s]=e[s]*o+e[n+a]*r}},_lerpAdditive:function(e,t,n,r,i){for(var o=0;o!==i;++o){var a=t+o;e[a]=e[a]+e[n+o]*r}}});var Wd="\\[\\]\\.:\\/",qd=new RegExp("["+Wd+"]","g"),Xd="[^"+Wd+"]",Yd="[^"+Wd.replace("\\.","")+"]",Qd=/((?:WC+[\/:])*)/.source.replace("WC",Xd),Zd=/(WCOD+)?/.source.replace("WCOD",Yd),Kd=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Xd),Jd=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Xd),$d=new RegExp("^"+Qd+Zd+Kd+Jd+"$"),ep=["material","materials","bones"];function tp(e,t,n){var r=n||np.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,r)}function np(e,t,n){this.path=t,this.parsedPath=n||np.parseTrackName(t),this.node=np.findNode(e,this.parsedPath.nodeName)||e,this.rootNode=e}function rp(){this.uuid=Kn.generateUUID(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;var e={};this._indicesByUUID=e;for(var t=0,n=arguments.length;t!==n;++t)e[arguments[t].uuid]=t;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};var r=this;this.stats={objects:{get total(){return r._objects.length},get inUse(){return this.total-r.nCachedObjects_}},get bindingsPerObject(){return r._bindings.length}}}Object.assign(tp.prototype,{getValue:function(e,t){this.bind();var n=this._targetGroup.nCachedObjects_,r=this._bindings[n];void 0!==r&&r.getValue(e,t)},setValue:function(e,t){for(var n=this._bindings,r=this._targetGroup.nCachedObjects_,i=n.length;r!==i;++r)n[r].setValue(e,t)},bind:function(){for(var e=this._bindings,t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].bind()},unbind:function(){for(var e=this._bindings,t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].unbind()}}),Object.assign(np,{Composite:tp,create:function(e,t,n){return e&&e.isAnimationObjectGroup?new np.Composite(e,t,n):new np(e,t,n)},sanitizeNodeName:function(e){return e.replace(/\s/g,"_").replace(qd,"")},parseTrackName:function(e){var t=$d.exec(e);if(!t)throw new Error("PropertyBinding: Cannot parse trackName: "+e);var n={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},r=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==r&&-1!==r){var i=n.nodeName.substring(r+1);-1!==ep.indexOf(i)&&(n.nodeName=n.nodeName.substring(0,r),n.objectName=i)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return n},findNode:function(e,t){if(!t||""===t||"."===t||-1===t||t===e.name||t===e.uuid)return e;if(e.skeleton){var n=e.skeleton.getBoneByName(t);if(void 0!==n)return n}if(e.children){var r=function e(n){for(var r=0;r<n.length;r++){var i=n[r];if(i.name===t||i.uuid===t)return i;var o=e(i.children);if(o)return o}return null}(e.children);if(r)return r}return null}}),Object.assign(np.prototype,{_getValue_unavailable:function(){},_setValue_unavailable:function(){},BindingType:{Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},Versioning:{None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},GetterByBindingType:[function(e,t){e[t]=this.node[this.propertyName]},function(e,t){for(var n=this.resolvedProperty,r=0,i=n.length;r!==i;++r)e[t++]=n[r]},function(e,t){e[t]=this.resolvedProperty[this.propertyIndex]},function(e,t){this.resolvedProperty.toArray(e,t)}],SetterByBindingTypeAndVersioning:[[function(e,t){this.targetObject[this.propertyName]=e[t]},function(e,t){this.targetObject[this.propertyName]=e[t],this.targetObject.needsUpdate=!0},function(e,t){this.targetObject[this.propertyName]=e[t],this.targetObject.matrixWorldNeedsUpdate=!0}],[function(e,t){for(var n=this.resolvedProperty,r=0,i=n.length;r!==i;++r)n[r]=e[t++]},function(e,t){for(var n=this.resolvedProperty,r=0,i=n.length;r!==i;++r)n[r]=e[t++];this.targetObject.needsUpdate=!0},function(e,t){for(var n=this.resolvedProperty,r=0,i=n.length;r!==i;++r)n[r]=e[t++];this.targetObject.matrixWorldNeedsUpdate=!0}],[function(e,t){this.resolvedProperty[this.propertyIndex]=e[t]},function(e,t){this.resolvedProperty[this.propertyIndex]=e[t],this.targetObject.needsUpdate=!0},function(e,t){this.resolvedProperty[this.propertyIndex]=e[t],this.targetObject.matrixWorldNeedsUpdate=!0}],[function(e,t){this.resolvedProperty.fromArray(e,t)},function(e,t){this.resolvedProperty.fromArray(e,t),this.targetObject.needsUpdate=!0},function(e,t){this.resolvedProperty.fromArray(e,t),this.targetObject.matrixWorldNeedsUpdate=!0}]],getValue:function(e,t){this.bind(),this.getValue(e,t)},setValue:function(e,t){this.bind(),this.setValue(e,t)},bind:function(){var e=this.node,t=this.parsedPath,n=t.objectName,r=t.propertyName,i=t.propertyIndex;if(e||(e=np.findNode(this.rootNode,t.nodeName)||this.rootNode,this.node=e),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,e){if(n){var o=t.objectIndex;switch(n){case"materials":if(!e.material)return void console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);if(!e.material.materials)return void console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);e=e.material.materials;break;case"bones":if(!e.skeleton)return void console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);e=e.skeleton.bones;for(var a=0;a<e.length;a++)if(e[a].name===o){o=a;break}break;default:if(void 0===e[n])return void console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);e=e[n]}if(void 0!==o){if(void 0===e[o])return void console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,e);e=e[o]}}var s=e[r];if(void 0!==s){var l=this.Versioning.None;this.targetObject=e,void 0!==e.needsUpdate?l=this.Versioning.NeedsUpdate:void 0!==e.matrixWorldNeedsUpdate&&(l=this.Versioning.MatrixWorldNeedsUpdate);var c=this.BindingType.Direct;if(void 0!==i){if("morphTargetInfluences"===r){if(!e.geometry)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);if(!e.geometry.isBufferGeometry)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.",this);if(!e.geometry.morphAttributes)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);void 0!==e.morphTargetDictionary[i]&&(i=e.morphTargetDictionary[i])}c=this.BindingType.ArrayElement,this.resolvedProperty=s,this.propertyIndex=i}else void 0!==s.fromArray&&void 0!==s.toArray?(c=this.BindingType.HasFromToArray,this.resolvedProperty=s):Array.isArray(s)?(c=this.BindingType.EntireArray,this.resolvedProperty=s):this.propertyName=r;this.getValue=this.GetterByBindingType[c],this.setValue=this.SetterByBindingTypeAndVersioning[c][l]}else{var u=t.nodeName;console.error("THREE.PropertyBinding: Trying to update property for track: "+u+"."+r+" but it wasn't found.",e)}}else console.error("THREE.PropertyBinding: Trying to update node for track: "+this.path+" but it wasn't found.")},unbind:function(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}),Object.assign(np.prototype,{_getValue_unbound:np.prototype.getValue,_setValue_unbound:np.prototype.setValue}),Object.assign(rp.prototype,{isAnimationObjectGroup:!0,add:function(){for(var e=this._objects,t=this._indicesByUUID,n=this._paths,r=this._parsedPaths,i=this._bindings,o=i.length,a=void 0,s=e.length,l=this.nCachedObjects_,c=0,u=arguments.length;c!==u;++c){var h=arguments[c],d=h.uuid,p=t[d];if(void 0===p){p=s++,t[d]=p,e.push(h);for(var f=0,m=o;f!==m;++f)i[f].push(new np(h,n[f],r[f]))}else if(p<l){a=e[p];var v=--l,g=e[v];t[g.uuid]=p,e[p]=g,t[d]=v,e[v]=h;for(var y=0,b=o;y!==b;++y){var A=i[y],w=A[v],x=A[p];A[p]=w,void 0===x&&(x=new np(h,n[y],r[y])),A[v]=x}}else e[p]!==a&&console.error("THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.")}this.nCachedObjects_=l},remove:function(){for(var e=this._objects,t=this._indicesByUUID,n=this._bindings,r=n.length,i=this.nCachedObjects_,o=0,a=arguments.length;o!==a;++o){var s=arguments[o],l=s.uuid,c=t[l];if(void 0!==c&&c>=i){var u=i++,h=e[u];t[h.uuid]=c,e[c]=h,t[l]=u,e[u]=s;for(var d=0,p=r;d!==p;++d){var f=n[d],m=f[u],v=f[c];f[c]=m,f[u]=v}}}this.nCachedObjects_=i},uncache:function(){for(var e=this._objects,t=this._indicesByUUID,n=this._bindings,r=n.length,i=this.nCachedObjects_,o=e.length,a=0,s=arguments.length;a!==s;++a){var l=arguments[a].uuid,c=t[l];if(void 0!==c)if(delete t[l],c<i){var u=--i,h=e[u],d=--o,p=e[d];t[h.uuid]=c,e[c]=h,t[p.uuid]=u,e[u]=p,e.pop();for(var f=0,m=r;f!==m;++f){var v=n[f],g=v[u],y=v[d];v[c]=g,v[u]=y,v.pop()}}else{var b=--o,A=e[b];b>0&&(t[A.uuid]=c),e[c]=A,e.pop();for(var w=0,x=r;w!==x;++w){var E=n[w];E[c]=E[b],E.pop()}}}this.nCachedObjects_=i},subscribe_:function(e,t){var n=this._bindingsIndicesByPath,r=n[e],i=this._bindings;if(void 0!==r)return i[r];var o=this._paths,a=this._parsedPaths,s=this._objects,l=s.length,c=this.nCachedObjects_,u=new Array(l);r=i.length,n[e]=r,o.push(e),a.push(t),i.push(u);for(var h=c,d=s.length;h!==d;++h){var p=s[h];u[h]=new np(p,e,t)}return u},unsubscribe_:function(e){var t=this._bindingsIndicesByPath,n=t[e];if(void 0!==n){var r=this._paths,i=this._parsedPaths,o=this._bindings,a=o.length-1,s=o[a];t[e[a]]=n,o[n]=s,o.pop(),i[n]=i[a],i.pop(),r[n]=r[a],r.pop()}}});var ip=function(){function e(e,t,n,r){void 0===n&&(n=null),void 0===r&&(r=t.blendMode),this._mixer=e,this._clip=t,this._localRoot=n,this.blendMode=r;for(var i=t.tracks,o=i.length,a=new Array(o),s={endingStart:jt,endingEnd:jt},l=0;l!==o;++l){var c=i[l].createInterpolant(null);a[l]=c,c.settings=s}this._interpolantSettings=s,this._interpolants=a,this._propertyBindings=new Array(o),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=Nt,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}var t=e.prototype;return t.play=function(){return this._mixer._activateAction(this),this},t.stop=function(){return this._mixer._deactivateAction(this),this.reset()},t.reset=function(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()},t.isRunning=function(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)},t.isScheduled=function(){return this._mixer._isActiveAction(this)},t.startAt=function(e){return this._startTime=e,this},t.setLoop=function(e,t){return this.loop=e,this.repetitions=t,this},t.setEffectiveWeight=function(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()},t.getEffectiveWeight=function(){return this._effectiveWeight},t.fadeIn=function(e){return this._scheduleFading(e,0,1)},t.fadeOut=function(e){return this._scheduleFading(e,1,0)},t.crossFadeFrom=function(e,t,n){if(e.fadeOut(t),this.fadeIn(t),n){var r=this._clip.duration,i=e._clip.duration,o=i/r,a=r/i;e.warp(1,o,t),this.warp(a,1,t)}return this},t.crossFadeTo=function(e,t,n){return e.crossFadeFrom(this,t,n)},t.stopFading=function(){var e=this._weightInterpolant;return null!==e&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this},t.setEffectiveTimeScale=function(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()},t.getEffectiveTimeScale=function(){return this._effectiveTimeScale},t.setDuration=function(e){return this.timeScale=this._clip.duration/e,this.stopWarping()},t.syncWith=function(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()},t.halt=function(e){return this.warp(this._effectiveTimeScale,0,e)},t.warp=function(e,t,n){var r=this._mixer,i=r.time,o=this.timeScale,a=this._timeScaleInterpolant;null===a&&(a=r._lendControlInterpolant(),this._timeScaleInterpolant=a);var s=a.parameterPositions,l=a.sampleValues;return s[0]=i,s[1]=i+n,l[0]=e/o,l[1]=t/o,this},t.stopWarping=function(){var e=this._timeScaleInterpolant;return null!==e&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this},t.getMixer=function(){return this._mixer},t.getClip=function(){return this._clip},t.getRoot=function(){return this._localRoot||this._mixer._root},t._update=function(e,t,n,r){if(this.enabled){var i=this._startTime;if(null!==i){var o=(e-i)*n;if(o<0||0===n)return;this._startTime=null,t=n*o}t*=this._updateTimeScale(e);var a=this._updateTime(t),s=this._updateWeight(e);if(s>0){var l=this._interpolants,c=this._propertyBindings;switch(this.blendMode){case Xt:for(var u=0,h=l.length;u!==h;++u)l[u].evaluate(a),c[u].accumulateAdditive(s);break;case qt:default:for(var d=0,p=l.length;d!==p;++d)l[d].evaluate(a),c[d].accumulate(r,s)}}}else this._updateWeight(e)},t._updateWeight=function(e){var t=0;if(this.enabled){t=this.weight;var n=this._weightInterpolant;if(null!==n){var r=n.evaluate(e)[0];t*=r,e>n.parameterPositions[1]&&(this.stopFading(),0===r&&(this.enabled=!1))}}return this._effectiveWeight=t,t},t._updateTimeScale=function(e){var t=0;if(!this.paused){t=this.timeScale;var n=this._timeScaleInterpolant;null!==n&&(t*=n.evaluate(e)[0],e>n.parameterPositions[1]&&(this.stopWarping(),0===t?this.paused=!0:this.timeScale=t))}return this._effectiveTimeScale=t,t},t._updateTime=function(e){var t=this._clip.duration,n=this.loop,r=this.time+e,i=this._loopCount,o=n===Ut;if(0===e)return-1===i?r:o&&1===(1&i)?t-r:r;if(n===kt){-1===i&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(r>=t)r=t;else{if(!(r<0)){this.time=r;break e}r=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(-1===i&&(e>=0?(i=0,this._setEndings(!0,0===this.repetitions,o)):this._setEndings(0===this.repetitions,!0,o)),r>=t||r<0){var a=Math.floor(r/t);r-=t*a,i+=Math.abs(a);var s=this.repetitions-i;if(s<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=e>0?t:0,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(1===s){var l=e<0;this._setEndings(l,!l,o)}else this._setEndings(!1,!1,o);this._loopCount=i,this.time=r,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:a})}}else this.time=r;if(o&&1===(1&i))return t-r}return r},t._setEndings=function(e,t,n){var r=this._interpolantSettings;n?(r.endingStart=Vt,r.endingEnd=Vt):(r.endingStart=e?this.zeroSlopeAtStart?Vt:jt:Wt,r.endingEnd=t?this.zeroSlopeAtEnd?Vt:jt:Wt)},t._scheduleFading=function(e,t,n){var r=this._mixer,i=r.time,o=this._weightInterpolant;null===o&&(o=r._lendControlInterpolant(),this._weightInterpolant=o);var a=o.parameterPositions,s=o.sampleValues;return a[0]=i,s[0]=t,a[1]=i+e,s[1]=n,this},e}();function op(e){this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}op.prototype=Object.assign(Object.create(qn.prototype),{constructor:op,_bindAction:function(e,t){var n=e._localRoot||this._root,r=e._clip.tracks,i=r.length,o=e._propertyBindings,a=e._interpolants,s=n.uuid,l=this._bindingsByRootAndName,c=l[s];void 0===c&&(c={},l[s]=c);for(var u=0;u!==i;++u){var h=r[u],d=h.name,p=c[d];if(void 0!==p)o[u]=p;else{if(void 0!==(p=o[u])){null===p._cacheIndex&&(++p.referenceCount,this._addInactiveBinding(p,s,d));continue}var f=t&&t._propertyBindings[u].binding.parsedPath;++(p=new Vd(np.create(n,d,f),h.ValueTypeName,h.getValueSize())).referenceCount,this._addInactiveBinding(p,s,d),o[u]=p}a[u].resultBuffer=p.buffer}},_activateAction:function(e){if(!this._isActiveAction(e)){if(null===e._cacheIndex){var t=(e._localRoot||this._root).uuid,n=e._clip.uuid,r=this._actionsByClip[n];this._bindAction(e,r&&r.knownActions[0]),this._addInactiveAction(e,n,t)}for(var i=e._propertyBindings,o=0,a=i.length;o!==a;++o){var s=i[o];0===s.useCount++&&(this._lendBinding(s),s.saveOriginalState())}this._lendAction(e)}},_deactivateAction:function(e){if(this._isActiveAction(e)){for(var t=e._propertyBindings,n=0,r=t.length;n!==r;++n){var i=t[n];0===--i.useCount&&(i.restoreOriginalState(),this._takeBackBinding(i))}this._takeBackAction(e)}},_initMemoryManager:function(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;var e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}},_isActiveAction:function(e){var t=e._cacheIndex;return null!==t&&t<this._nActiveActions},_addInactiveAction:function(e,t,n){var r=this._actions,i=this._actionsByClip,o=i[t];if(void 0===o)o={knownActions:[e],actionByRoot:{}},e._byClipCacheIndex=0,i[t]=o;else{var a=o.knownActions;e._byClipCacheIndex=a.length,a.push(e)}e._cacheIndex=r.length,r.push(e),o.actionByRoot[n]=e},_removeInactiveAction:function(e){var t=this._actions,n=t[t.length-1],r=e._cacheIndex;n._cacheIndex=r,t[r]=n,t.pop(),e._cacheIndex=null;var i=e._clip.uuid,o=this._actionsByClip,a=o[i],s=a.knownActions,l=s[s.length-1],c=e._byClipCacheIndex;l._byClipCacheIndex=c,s[c]=l,s.pop(),e._byClipCacheIndex=null,delete a.actionByRoot[(e._localRoot||this._root).uuid],0===s.length&&delete o[i],this._removeInactiveBindingsForAction(e)},_removeInactiveBindingsForAction:function(e){for(var t=e._propertyBindings,n=0,r=t.length;n!==r;++n){var i=t[n];0===--i.referenceCount&&this._removeInactiveBinding(i)}},_lendAction:function(e){var t=this._actions,n=e._cacheIndex,r=this._nActiveActions++,i=t[r];e._cacheIndex=r,t[r]=e,i._cacheIndex=n,t[n]=i},_takeBackAction:function(e){var t=this._actions,n=e._cacheIndex,r=--this._nActiveActions,i=t[r];e._cacheIndex=r,t[r]=e,i._cacheIndex=n,t[n]=i},_addInactiveBinding:function(e,t,n){var r=this._bindingsByRootAndName,i=this._bindings,o=r[t];void 0===o&&(o={},r[t]=o),o[n]=e,e._cacheIndex=i.length,i.push(e)},_removeInactiveBinding:function(e){var t=this._bindings,n=e.binding,r=n.rootNode.uuid,i=n.path,o=this._bindingsByRootAndName,a=o[r],s=t[t.length-1],l=e._cacheIndex;s._cacheIndex=l,t[l]=s,t.pop(),delete a[i],0===Object.keys(a).length&&delete o[r]},_lendBinding:function(e){var t=this._bindings,n=e._cacheIndex,r=this._nActiveBindings++,i=t[r];e._cacheIndex=r,t[r]=e,i._cacheIndex=n,t[n]=i},_takeBackBinding:function(e){var t=this._bindings,n=e._cacheIndex,r=--this._nActiveBindings,i=t[r];e._cacheIndex=r,t[r]=e,i._cacheIndex=n,t[n]=i},_lendControlInterpolant:function(){var e=this._controlInterpolants,t=this._nActiveControlInterpolants++,n=e[t];return void 0===n&&((n=new qu(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer)).__cacheIndex=t,e[t]=n),n},_takeBackControlInterpolant:function(e){var t=this._controlInterpolants,n=e.__cacheIndex,r=--this._nActiveControlInterpolants,i=t[r];e.__cacheIndex=r,t[r]=e,i.__cacheIndex=n,t[n]=i},_controlInterpolantsResultBuffer:new Float32Array(1),clipAction:function(e,t,n){var r=t||this._root,i=r.uuid,o="string"===typeof e?nh.findByName(r,e):e,a=null!==o?o.uuid:e,s=this._actionsByClip[a],l=null;if(void 0===n&&(n=null!==o?o.blendMode:qt),void 0!==s){var c=s.actionByRoot[i];if(void 0!==c&&c.blendMode===n)return c;l=s.knownActions[0],null===o&&(o=l._clip)}if(null===o)return null;var u=new ip(this,o,t,n);return this._bindAction(u,l),this._addInactiveAction(u,a,i),u},existingAction:function(e,t){var n=t||this._root,r=n.uuid,i="string"===typeof e?nh.findByName(n,e):e,o=i?i.uuid:e,a=this._actionsByClip[o];return void 0!==a&&a.actionByRoot[r]||null},stopAllAction:function(){for(var e=this._actions,t=this._nActiveActions-1;t>=0;--t)e[t].stop();return this},update:function(e){e*=this.timeScale;for(var t=this._actions,n=this._nActiveActions,r=this.time+=e,i=Math.sign(e),o=this._accuIndex^=1,a=0;a!==n;++a)t[a]._update(r,e,i,o);for(var s=this._bindings,l=this._nActiveBindings,c=0;c!==l;++c)s[c].apply(o);return this},setTime:function(e){this.time=0;for(var t=0;t<this._actions.length;t++)this._actions[t].time=0;return this.update(e)},getRoot:function(){return this._root},uncacheClip:function(e){var t=this._actions,n=e.uuid,r=this._actionsByClip,i=r[n];if(void 0!==i){for(var o=i.knownActions,a=0,s=o.length;a!==s;++a){var l=o[a];this._deactivateAction(l);var c=l._cacheIndex,u=t[t.length-1];l._cacheIndex=null,l._byClipCacheIndex=null,u._cacheIndex=c,t[c]=u,t.pop(),this._removeInactiveBindingsForAction(l)}delete r[n]}},uncacheRoot:function(e){var t=e.uuid,n=this._actionsByClip;for(var r in n){var i=n[r].actionByRoot[t];void 0!==i&&(this._deactivateAction(i),this._removeInactiveAction(i))}var o=this._bindingsByRootAndName[t];if(void 0!==o)for(var a in o){var s=o[a];s.restoreOriginalState(),this._removeInactiveBinding(s)}},uncacheAction:function(e,t){var n=this.existingAction(e,t);null!==n&&(this._deactivateAction(n),this._removeInactiveAction(n))}});var ap=function(){function e(e){"string"===typeof e&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),e=arguments[1]),this.value=e}return e.prototype.clone=function(){return new e(void 0===this.value.clone?this.value:this.value.clone())},e}();function sp(e,t,n){yl.call(this,e,t),this.meshPerAttribute=n||1}function lp(e,t,n,r,i){this.buffer=e,this.type=t,this.itemSize=n,this.elementSize=r,this.count=i,this.version=0}function cp(e,t,n,r){this.ray=new Br(e,t),this.near=n||0,this.far=r||1/0,this.camera=null,this.layers=new Xr,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}},Object.defineProperties(this.params,{PointCloud:{get:function(){return console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points."),this.Points}}})}function up(e,t){return e.distance-t.distance}function hp(e,t,n,r){if(e.layers.test(t.layers)&&e.raycast(t,n),!0===r)for(var i=e.children,o=0,a=i.length;o<a;o++)hp(i[o],t,n,!0)}sp.prototype=Object.assign(Object.create(yl.prototype),{constructor:sp,isInstancedInterleavedBuffer:!0,copy:function(e){return yl.prototype.copy.call(this,e),this.meshPerAttribute=e.meshPerAttribute,this},clone:function(e){var t=yl.prototype.clone.call(this,e);return t.meshPerAttribute=this.meshPerAttribute,t},toJSON:function(e){var t=yl.prototype.toJSON.call(this,e);return t.isInstancedInterleavedBuffer=!0,t.meshPerAttribute=this.meshPerAttribute,t}}),Object.defineProperty(lp.prototype,"needsUpdate",{set:function(e){!0===e&&this.version++}}),Object.assign(lp.prototype,{isGLBufferAttribute:!0,setBuffer:function(e){return this.buffer=e,this},setType:function(e,t){return this.type=e,this.elementSize=t,this},setItemSize:function(e){return this.itemSize=e,this},setCount:function(e){return this.count=e,this}}),Object.assign(cp.prototype,{set:function(e,t){this.ray.set(e,t)},setFromCamera:function(e,t){t&&t.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(t.matrixWorld),this.ray.direction.set(e.x,e.y,.5).unproject(t).sub(this.ray.origin).normalize(),this.camera=t):t&&t.isOrthographicCamera?(this.ray.origin.set(e.x,e.y,(t.near+t.far)/(t.near-t.far)).unproject(t),this.ray.direction.set(0,0,-1).transformDirection(t.matrixWorld),this.camera=t):console.error("THREE.Raycaster: Unsupported camera type: "+t.type)},intersectObject:function(e,t,n){var r=n||[];return hp(e,this,r,t),r.sort(up),r},intersectObjects:function(e,t,n){var r=n||[];if(!1===Array.isArray(e))return console.warn("THREE.Raycaster.intersectObjects: objects is not an Array."),r;for(var i=0,o=e.length;i<o;i++)hp(e[i],this,r,t);return r.sort(up),r}});var dp=function(){function e(e,t,n){return void 0===e&&(e=1),void 0===t&&(t=0),void 0===n&&(n=0),this.radius=e,this.phi=t,this.theta=n,this}var t=e.prototype;return t.set=function(e,t,n){return this.radius=e,this.phi=t,this.theta=n,this},t.clone=function(){return(new this.constructor).copy(this)},t.copy=function(e){return this.radius=e.radius,this.phi=e.phi,this.theta=e.theta,this},t.makeSafe=function(){var e=1e-6;return this.phi=Math.max(e,Math.min(Math.PI-e,this.phi)),this},t.setFromVector3=function(e){return this.setFromCartesianCoords(e.x,e.y,e.z)},t.setFromCartesianCoords=function(e,t,n){return this.radius=Math.sqrt(e*e+t*t+n*n),0===this.radius?(this.theta=0,this.phi=0):(this.theta=Math.atan2(e,n),this.phi=Math.acos(Kn.clamp(t/this.radius,-1,1))),this},e}(),pp=function(){function e(e,t,n){return this.radius=void 0!==e?e:1,this.theta=void 0!==t?t:0,this.y=void 0!==n?n:0,this}var t=e.prototype;return t.set=function(e,t,n){return this.radius=e,this.theta=t,this.y=n,this},t.clone=function(){return(new this.constructor).copy(this)},t.copy=function(e){return this.radius=e.radius,this.theta=e.theta,this.y=e.y,this},t.setFromVector3=function(e){return this.setFromCartesianCoords(e.x,e.y,e.z)},t.setFromCartesianCoords=function(e,t,n){return this.radius=Math.sqrt(e*e+n*n),this.theta=Math.atan2(e,n),this.y=t,this},e}(),fp=new Jn,mp=function(){function e(e,t){Object.defineProperty(this,"isBox2",{value:!0}),this.min=void 0!==e?e:new Jn(1/0,1/0),this.max=void 0!==t?t:new Jn(-1/0,-1/0)}var t=e.prototype;return t.set=function(e,t){return this.min.copy(e),this.max.copy(t),this},t.setFromPoints=function(e){this.makeEmpty();for(var t=0,n=e.length;t<n;t++)this.expandByPoint(e[t]);return this},t.setFromCenterAndSize=function(e,t){var n=fp.copy(t).multiplyScalar(.5);return this.min.copy(e).sub(n),this.max.copy(e).add(n),this},t.clone=function(){return(new this.constructor).copy(this)},t.copy=function(e){return this.min.copy(e.min),this.max.copy(e.max),this},t.makeEmpty=function(){return this.min.x=this.min.y=1/0,this.max.x=this.max.y=-1/0,this},t.isEmpty=function(){return this.max.x<this.min.x||this.max.y<this.min.y},t.getCenter=function(e){return void 0===e&&(console.warn("THREE.Box2: .getCenter() target is now required"),e=new Jn),this.isEmpty()?e.set(0,0):e.addVectors(this.min,this.max).multiplyScalar(.5)},t.getSize=function(e){return void 0===e&&(console.warn("THREE.Box2: .getSize() target is now required"),e=new Jn),this.isEmpty()?e.set(0,0):e.subVectors(this.max,this.min)},t.expandByPoint=function(e){return this.min.min(e),this.max.max(e),this},t.expandByVector=function(e){return this.min.sub(e),this.max.add(e),this},t.expandByScalar=function(e){return this.min.addScalar(-e),this.max.addScalar(e),this},t.containsPoint=function(e){return!(e.x<this.min.x||e.x>this.max.x||e.y<this.min.y||e.y>this.max.y)},t.containsBox=function(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y},t.getParameter=function(e,t){return void 0===t&&(console.warn("THREE.Box2: .getParameter() target is now required"),t=new Jn),t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))},t.intersectsBox=function(e){return!(e.max.x<this.min.x||e.min.x>this.max.x||e.max.y<this.min.y||e.min.y>this.max.y)},t.clampPoint=function(e,t){return void 0===t&&(console.warn("THREE.Box2: .clampPoint() target is now required"),t=new Jn),t.copy(e).clamp(this.min,this.max)},t.distanceToPoint=function(e){return fp.copy(e).clamp(this.min,this.max).sub(e).length()},t.intersect=function(e){return this.min.max(e.min),this.max.min(e.max),this},t.union=function(e){return this.min.min(e.min),this.max.max(e.max),this},t.translate=function(e){return this.min.add(e),this.max.add(e),this},t.equals=function(e){return e.min.equals(this.min)&&e.max.equals(this.max)},e}(),vp=new lr,gp=new lr,yp=function(){function e(e,t){this.start=void 0!==e?e:new lr,this.end=void 0!==t?t:new lr}var t=e.prototype;return t.set=function(e,t){return this.start.copy(e),this.end.copy(t),this},t.clone=function(){return(new this.constructor).copy(this)},t.copy=function(e){return this.start.copy(e.start),this.end.copy(e.end),this},t.getCenter=function(e){return void 0===e&&(console.warn("THREE.Line3: .getCenter() target is now required"),e=new lr),e.addVectors(this.start,this.end).multiplyScalar(.5)},t.delta=function(e){return void 0===e&&(console.warn("THREE.Line3: .delta() target is now required"),e=new lr),e.subVectors(this.end,this.start)},t.distanceSq=function(){return this.start.distanceToSquared(this.end)},t.distance=function(){return this.start.distanceTo(this.end)},t.at=function(e,t){return void 0===t&&(console.warn("THREE.Line3: .at() target is now required"),t=new lr),this.delta(t).multiplyScalar(e).add(this.start)},t.closestPointToPointParameter=function(e,t){vp.subVectors(e,this.start),gp.subVectors(this.end,this.start);var n=gp.dot(gp),r=gp.dot(vp)/n;return t&&(r=Kn.clamp(r,0,1)),r},t.closestPointToPoint=function(e,t,n){var r=this.closestPointToPointParameter(e,t);return void 0===n&&(console.warn("THREE.Line3: .closestPointToPoint() target is now required"),n=new lr),this.delta(n).multiplyScalar(r).add(this.start)},t.applyMatrix4=function(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this},t.equals=function(e){return e.start.equals(this.start)&&e.end.equals(this.end)},e}();function bp(e){si.call(this),this.material=e,this.render=function(){},this.hasPositions=!1,this.hasNormals=!1,this.hasColors=!1,this.hasUvs=!1,this.positionArray=null,this.normalArray=null,this.colorArray=null,this.uvArray=null,this.count=0}bp.prototype=Object.create(si.prototype),bp.prototype.constructor=bp,bp.prototype.isImmediateRenderObject=!0;var Ap=new lr,wp=function(e){function t(t,n){var r;(r=e.call(this)||this).light=t,r.light.updateMatrixWorld(),r.matrix=t.matrixWorld,r.matrixAutoUpdate=!1,r.color=n;for(var i=new ro,o=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1],a=0,s=1,l=32;a<l;a++,s++){var c=a/l*Math.PI*2,u=s/l*Math.PI*2;o.push(Math.cos(c),Math.sin(c),1,Math.cos(u),Math.sin(u),1)}i.setAttribute("position",new Wi(o,3));var h=new tc({fog:!1,toneMapped:!1});return r.cone=new uc(i,h),r.add(r.cone),r.update(),r}Gn(t,e);var n=t.prototype;return n.dispose=function(){this.cone.geometry.dispose(),this.cone.material.dispose()},n.update=function(){this.light.updateMatrixWorld();var e=this.light.distance?this.light.distance:1e3,t=e*Math.tan(this.light.angle);this.cone.scale.set(t,t,e),Ap.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(Ap),void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)},t}(si),xp=new lr,Ep=new Fr,Mp=new Fr,_p=function(e){function t(t){for(var n,r=Tp(t),i=new ro,o=[],a=[],s=new Li(0,0,1),l=new Li(0,1,0),c=0;c<r.length;c++){var u=r[c];u.parent&&u.parent.isBone&&(o.push(0,0,0),o.push(0,0,0),a.push(s.r,s.g,s.b),a.push(l.r,l.g,l.b))}i.setAttribute("position",new Wi(o,3)),i.setAttribute("color",new Wi(a,3));var h=new tc({vertexColors:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,transparent:!0});return(n=e.call(this,i,h)||this).type="SkeletonHelper",n.isSkeletonHelper=!0,n.root=t,n.bones=r,n.matrix=t.matrixWorld,n.matrixAutoUpdate=!1,n}return Gn(t,e),t.prototype.updateMatrixWorld=function(t){var n=this.bones,r=this.geometry,i=r.getAttribute("position");Mp.copy(this.root.matrixWorld).invert();for(var o=0,a=0;o<n.length;o++){var s=n[o];s.parent&&s.parent.isBone&&(Ep.multiplyMatrices(Mp,s.matrixWorld),xp.setFromMatrixPosition(Ep),i.setXYZ(a,xp.x,xp.y,xp.z),Ep.multiplyMatrices(Mp,s.parent.matrixWorld),xp.setFromMatrixPosition(Ep),i.setXYZ(a+1,xp.x,xp.y,xp.z),a+=2)}r.getAttribute("position").needsUpdate=!0,e.prototype.updateMatrixWorld.call(this,t)},t}(uc);function Tp(e){var t=[];e&&e.isBone&&t.push(e);for(var n=0;n<e.children.length;n++)t.push.apply(t,Tp(e.children[n]));return t}var Sp=function(e){function t(t,n,r){var i,o=new Mu(n,4,2),a=new Oi({wireframe:!0,fog:!1,toneMapped:!1});return(i=e.call(this,o,a)||this).light=t,i.light.updateMatrixWorld(),i.color=r,i.type="PointLightHelper",i.matrix=i.light.matrixWorld,i.matrixAutoUpdate=!1,i.update(),i}Gn(t,e);var n=t.prototype;return n.dispose=function(){this.geometry.dispose(),this.material.dispose()},n.update=function(){void 0!==this.color?this.material.color.set(this.color):this.material.color.copy(this.light.color)},t}(xo),Cp=new lr,Lp=new Li,Rp=new Li,Pp=function(e){function t(t,n,r){var i;(i=e.call(this)||this).light=t,i.light.updateMatrixWorld(),i.matrix=t.matrixWorld,i.matrixAutoUpdate=!1,i.color=r;var o=new bu(n);o.rotateY(.5*Math.PI),i.material=new Oi({wireframe:!0,fog:!1,toneMapped:!1}),void 0===i.color&&(i.material.vertexColors=!0);var a=o.getAttribute("position"),s=new Float32Array(3*a.count);return o.setAttribute("color",new Fi(s,3)),i.add(new xo(o,i.material)),i.update(),i}Gn(t,e);var n=t.prototype;return n.dispose=function(){this.children[0].geometry.dispose(),this.children[0].material.dispose()},n.update=function(){var e=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{var t=e.geometry.getAttribute("color");Lp.copy(this.light.color),Rp.copy(this.light.groundColor);for(var n=0,r=t.count;n<r;n++){var i=n<r/2?Lp:Rp;t.setXYZ(n,i.r,i.g,i.b)}t.needsUpdate=!0}e.lookAt(Cp.setFromMatrixPosition(this.light.matrixWorld).negate())},t}(si),Dp=function(e){function t(t,n,r,i){var o;void 0===t&&(t=10),void 0===n&&(n=10),void 0===r&&(r=4473924),void 0===i&&(i=8947848),r=new Li(r),i=new Li(i);for(var a=n/2,s=t/n,l=t/2,c=[],u=[],h=0,d=0,p=-l;h<=n;h++,p+=s){c.push(-l,0,p,l,0,p),c.push(p,0,-l,p,0,l);var f=h===a?r:i;f.toArray(u,d),d+=3,f.toArray(u,d),d+=3,f.toArray(u,d),d+=3,f.toArray(u,d),d+=3}var m=new ro;m.setAttribute("position",new Wi(c,3)),m.setAttribute("color",new Wi(u,3));var v=new tc({vertexColors:!0,toneMapped:!1});return(o=e.call(this,m,v)||this).type="GridHelper",o}return Gn(t,e),t}(uc),Op=function(e){function t(t,n,r,i,o,a){var s;void 0===t&&(t=10),void 0===n&&(n=16),void 0===r&&(r=8),void 0===i&&(i=64),void 0===o&&(o=4473924),void 0===a&&(a=8947848),o=new Li(o),a=new Li(a);for(var l=[],c=[],u=0;u<=n;u++){var h=u/n*(2*Math.PI),d=Math.sin(h)*t,p=Math.cos(h)*t;l.push(0,0,0),l.push(d,0,p);var f=1&u?o:a;c.push(f.r,f.g,f.b),c.push(f.r,f.g,f.b)}for(var m=0;m<=r;m++)for(var v=1&m?o:a,g=t-t/r*m,y=0;y<i;y++){var b=y/i*(2*Math.PI),A=Math.sin(b)*g,w=Math.cos(b)*g;l.push(A,0,w),c.push(v.r,v.g,v.b),b=(y+1)/i*(2*Math.PI),A=Math.sin(b)*g,w=Math.cos(b)*g,l.push(A,0,w),c.push(v.r,v.g,v.b)}var x=new ro;x.setAttribute("position",new Wi(l,3)),x.setAttribute("color",new Wi(c,3));var E=new tc({vertexColors:!0,toneMapped:!1});return(s=e.call(this,x,E)||this).type="PolarGridHelper",s}return Gn(t,e),t}(uc),Ip=new lr,Bp=new lr,Fp=new lr,kp=function(e){function t(t,n,r){var i;(i=e.call(this)||this).light=t,i.light.updateMatrixWorld(),i.matrix=t.matrixWorld,i.matrixAutoUpdate=!1,i.color=r,void 0===n&&(n=1);var o=new ro;o.setAttribute("position",new Wi([-n,n,0,n,n,0,n,-n,0,-n,-n,0,-n,n,0],3));var a=new tc({fog:!1,toneMapped:!1});return i.lightPlane=new sc(o,a),i.add(i.lightPlane),(o=new ro).setAttribute("position",new Wi([0,0,0,0,0,1],3)),i.targetLine=new sc(o,a),i.add(i.targetLine),i.update(),i}Gn(t,e);var n=t.prototype;return n.dispose=function(){this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()},n.update=function(){Ip.setFromMatrixPosition(this.light.matrixWorld),Bp.setFromMatrixPosition(this.light.target.matrixWorld),Fp.subVectors(Bp,Ip),this.lightPlane.lookAt(Bp),void 0!==this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color)),this.targetLine.lookAt(Bp),this.targetLine.scale.z=Fp.length()},t}(si),Np=new lr,Up=new Do,Hp=function(e){function t(t){var n,r=new ro,i=new tc({color:16777215,vertexColors:!0,toneMapped:!1}),o=[],a=[],s={},l=new Li(16755200),c=new Li(16711680),u=new Li(43775),h=new Li(16777215),d=new Li(3355443);function p(e,t,n){f(e,n),f(t,n)}function f(e,t){o.push(0,0,0),a.push(t.r,t.g,t.b),void 0===s[e]&&(s[e]=[]),s[e].push(o.length/3-1)}return p("n1","n2",l),p("n2","n4",l),p("n4","n3",l),p("n3","n1",l),p("f1","f2",l),p("f2","f4",l),p("f4","f3",l),p("f3","f1",l),p("n1","f1",l),p("n2","f2",l),p("n3","f3",l),p("n4","f4",l),p("p","n1",c),p("p","n2",c),p("p","n3",c),p("p","n4",c),p("u1","u2",u),p("u2","u3",u),p("u3","u1",u),p("c","t",h),p("p","c",d),p("cn1","cn2",d),p("cn3","cn4",d),p("cf1","cf2",d),p("cf3","cf4",d),r.setAttribute("position",new Wi(o,3)),r.setAttribute("color",new Wi(a,3)),(n=e.call(this,r,i)||this).type="CameraHelper",n.camera=t,n.camera.updateProjectionMatrix&&n.camera.updateProjectionMatrix(),n.matrix=t.matrixWorld,n.matrixAutoUpdate=!1,n.pointMap=s,n.update(),n}return Gn(t,e),t.prototype.update=function(){var e=this.geometry,t=this.pointMap,n=1,r=1;Up.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),Gp("c",t,e,Up,0,0,-1),Gp("t",t,e,Up,0,0,1),Gp("n1",t,e,Up,-n,-r,-1),Gp("n2",t,e,Up,n,-r,-1),Gp("n3",t,e,Up,-n,r,-1),Gp("n4",t,e,Up,n,r,-1),Gp("f1",t,e,Up,-n,-r,1),Gp("f2",t,e,Up,n,-r,1),Gp("f3",t,e,Up,-n,r,1),Gp("f4",t,e,Up,n,r,1),Gp("u1",t,e,Up,.7*n,1.1*r,-1),Gp("u2",t,e,Up,.7*-n,1.1*r,-1),Gp("u3",t,e,Up,0,2*r,-1),Gp("cf1",t,e,Up,-n,0,1),Gp("cf2",t,e,Up,n,0,1),Gp("cf3",t,e,Up,0,-r,1),Gp("cf4",t,e,Up,0,r,1),Gp("cn1",t,e,Up,-n,0,-1),Gp("cn2",t,e,Up,n,0,-1),Gp("cn3",t,e,Up,0,-r,-1),Gp("cn4",t,e,Up,0,r,-1),e.getAttribute("position").needsUpdate=!0},t}(uc);function Gp(e,t,n,r,i,o,a){Np.set(i,o,a).unproject(r);var s=t[e];if(void 0!==s)for(var l=n.getAttribute("position"),c=0,u=s.length;c<u;c++)l.setXYZ(s[c],Np.x,Np.y,Np.z)}var zp,jp,Vp,Wp=new hr,qp=function(e){function t(t,n){var r;void 0===n&&(n=16776960);var i=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),o=new Float32Array(24),a=new ro;return a.setIndex(new Fi(i,1)),a.setAttribute("position",new Fi(o,3)),(r=e.call(this,a,new tc({color:n,toneMapped:!1}))||this).object=t,r.type="BoxHelper",r.matrixAutoUpdate=!1,r.update(),r}Gn(t,e);var n=t.prototype;return n.update=function(e){if(void 0!==e&&console.warn("THREE.BoxHelper: .update() has no longer arguments."),void 0!==this.object&&Wp.setFromObject(this.object),!Wp.isEmpty()){var t=Wp.min,n=Wp.max,r=this.geometry.attributes.position,i=r.array;i[0]=n.x,i[1]=n.y,i[2]=n.z,i[3]=t.x,i[4]=n.y,i[5]=n.z,i[6]=t.x,i[7]=t.y,i[8]=n.z,i[9]=n.x,i[10]=t.y,i[11]=n.z,i[12]=n.x,i[13]=n.y,i[14]=t.z,i[15]=t.x,i[16]=n.y,i[17]=t.z,i[18]=t.x,i[19]=t.y,i[20]=t.z,i[21]=n.x,i[22]=t.y,i[23]=t.z,r.needsUpdate=!0,this.geometry.computeBoundingSphere()}},n.setFromObject=function(e){return this.object=e,this.update(),this},n.copy=function(e){return uc.prototype.copy.call(this,e),this.object=e.object,this},t}(uc),Xp=function(e){function t(t,n){var r;void 0===n&&(n=16776960);var i=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),o=[1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],a=new ro;return a.setIndex(new Fi(i,1)),a.setAttribute("position",new Wi(o,3)),(r=e.call(this,a,new tc({color:n,toneMapped:!1}))||this).box=t,r.type="Box3Helper",r.geometry.computeBoundingSphere(),r}return Gn(t,e),t.prototype.updateMatrixWorld=function(t){var n=this.box;n.isEmpty()||(n.getCenter(this.position),n.getSize(this.scale),this.scale.multiplyScalar(.5),e.prototype.updateMatrixWorld.call(this,t))},t}(uc),Yp=function(e){function t(t,n,r){var i;void 0===n&&(n=1),void 0===r&&(r=16776960);var o=r,a=[1,-1,1,-1,1,1,-1,-1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,0,0,1,0,0,0],s=new ro;s.setAttribute("position",new Wi(a,3)),s.computeBoundingSphere(),(i=e.call(this,s,new tc({color:o,toneMapped:!1}))||this).type="PlaneHelper",i.plane=t,i.size=n;var l=[1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],c=new ro;return c.setAttribute("position",new Wi(l,3)),c.computeBoundingSphere(),i.add(new xo(c,new Oi({color:o,opacity:.2,transparent:!0,depthWrite:!1,toneMapped:!1}))),i}return Gn(t,e),t.prototype.updateMatrixWorld=function(t){var n=-this.plane.constant;Math.abs(n)<1e-8&&(n=1e-8),this.scale.set(.5*this.size,.5*this.size,n),this.children[0].material.side=n<0?v:m,this.lookAt(this.plane.normal),e.prototype.updateMatrixWorld.call(this,t)},t}(sc),Qp=new lr,Zp=function(e){function t(t,n,r,i,o,a){var s;return(s=e.call(this)||this).type="ArrowHelper",void 0===t&&(t=new lr(0,0,1)),void 0===n&&(n=new lr(0,0,0)),void 0===r&&(r=1),void 0===i&&(i=16776960),void 0===o&&(o=.2*r),void 0===a&&(a=.2*o),void 0===zp&&((zp=new ro).setAttribute("position",new Wi([0,0,0,0,1,0],3)),(jp=new Mc(0,.5,1,5,1)).translate(0,-.5,0)),s.position.copy(n),s.line=new sc(zp,new tc({color:i,toneMapped:!1})),s.line.matrixAutoUpdate=!1,s.add(s.line),s.cone=new xo(jp,new Oi({color:i,toneMapped:!1})),s.cone.matrixAutoUpdate=!1,s.add(s.cone),s.setDirection(t),s.setLength(r,o,a),s}Gn(t,e);var n=t.prototype;return n.setDirection=function(e){if(e.y>.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{Qp.set(e.z,0,-e.x).normalize();var t=Math.acos(e.y);this.quaternion.setFromAxisAngle(Qp,t)}},n.setLength=function(e,t,n){void 0===t&&(t=.2*e),void 0===n&&(n=.2*t),this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(n,t,n),this.cone.position.y=e,this.cone.updateMatrix()},n.setColor=function(e){this.line.material.color.set(e),this.cone.material.color.set(e)},n.copy=function(t){return e.prototype.copy.call(this,t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this},t}(si),Kp=function(e){function t(t){var n;void 0===t&&(t=1);var r=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t],i=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],o=new ro;o.setAttribute("position",new Wi(r,3)),o.setAttribute("color",new Wi(i,3));var a=new tc({vertexColors:!0,toneMapped:!1});return(n=e.call(this,o,a)||this).type="AxesHelper",n}return Gn(t,e),t}(uc),Jp=new Float32Array(1),$p=new Int32Array(Jp.buffer),ef={toHalfFloat:function(e){Jp[0]=e;var t=$p[0],n=t>>16&32768,r=t>>12&2047,i=t>>23&255;return i<103?n:i>142?(n|=31744,n|=(255==i?0:1)&&8388607&t):i<113?n|=((r|=2048)>>114-i)+(r>>113-i&1):(n|=i-112<<10|r>>1,n+=1&r)}},tf=4,nf=8,rf=Math.pow(2,nf),of=[.125,.215,.35,.446,.526,.582],af=nf-tf+1+of.length,sf=20,lf=((Vp={})[Kt]=0,Vp[Jt]=1,Vp[en]=2,Vp[nn]=3,Vp[rn]=4,Vp[on]=5,Vp[$t]=6,Vp),cf=new Oi({side:v,depthWrite:!1,depthTest:!1}),uf=new xo(new _o,cf),hf=new ed,df=Mf(),pf=df._lodPlanes,ff=df._sizeLods,mf=df._sigmas,vf=new Li,gf=null,yf=(1+Math.sqrt(5))/2,bf=1/yf,Af=[new lr(1,1,1),new lr(-1,1,1),new lr(1,1,-1),new lr(-1,1,-1),new lr(0,yf,bf),new lr(0,yf,-bf),new lr(bf,0,yf),new lr(-bf,0,yf),new lr(yf,bf,0),new lr(-yf,bf,0)];function wf(e){var t=Math.max(e.r,e.g,e.b),n=Math.min(Math.max(Math.ceil(Math.log2(t)),-128),127);return e.multiplyScalar(Math.pow(2,-n)),(n+128)/255}var xf=function(){function e(e){this._renderer=e,this._pingPongRenderTarget=null,this._blurMaterial=Sf(sf),this._equirectShader=null,this._cubemapShader=null,this._compileMaterial(this._blurMaterial)}var t=e.prototype;return t.fromScene=function(e,t,n,r){void 0===t&&(t=0),void 0===n&&(n=.1),void 0===r&&(r=100),gf=this._renderer.getRenderTarget();var i=this._allocateTargets();return this._sceneToCubeUV(e,n,r,i),t>0&&this._blur(i,0,0,t),this._applyPMREM(i),this._cleanup(i),i},t.fromEquirectangular=function(e){return this._fromTexture(e)},t.fromCubemap=function(e){return this._fromTexture(e)},t.compileCubemapShader=function(){null===this._cubemapShader&&(this._cubemapShader=Lf(),this._compileMaterial(this._cubemapShader))},t.compileEquirectangularShader=function(){null===this._equirectShader&&(this._equirectShader=Cf(),this._compileMaterial(this._equirectShader))},t.dispose=function(){this._blurMaterial.dispose(),null!==this._cubemapShader&&this._cubemapShader.dispose(),null!==this._equirectShader&&this._equirectShader.dispose();for(var e=0;e<pf.length;e++)pf[e].dispose()},t._cleanup=function(e){this._pingPongRenderTarget.dispose(),this._renderer.setRenderTarget(gf),e.scissorTest=!1,Tf(e,0,0,e.width,e.height)},t._fromTexture=function(e){gf=this._renderer.getRenderTarget();var t=this._allocateTargets(e);return this._textureToCubeUV(e,t),this._applyPMREM(t),this._cleanup(t),t},t._allocateTargets=function(e){var t={magFilter:me,minFilter:me,generateMipmaps:!1,type:_e,format:ze,encoding:Ef(e)?e.encoding:en,depthBuffer:!1},n=_f(t);return n.depthBuffer=!e,this._pingPongRenderTarget=_f(t),n},t._compileMaterial=function(e){var t=new xo(pf[0],e);this._renderer.compile(t,hf)},t._sceneToCubeUV=function(e,t,n,r){var i=new Oo(90,1,t,n),o=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],s=this._renderer,l=s.autoClear,c=s.outputEncoding,u=s.toneMapping;s.getClearColor(vf),s.toneMapping=$,s.outputEncoding=Kt,s.autoClear=!1;var h=!1,d=e.background;if(d){if(d.isColor){cf.color.copy(d).convertSRGBToLinear(),e.background=null;var p=wf(cf.color);cf.opacity=p,h=!0}}else{cf.color.copy(vf).convertSRGBToLinear();var f=wf(cf.color);cf.opacity=f,h=!0}for(var m=0;m<6;m++){var v=m%3;0==v?(i.up.set(0,o[m],0),i.lookAt(a[m],0,0)):1==v?(i.up.set(0,0,o[m]),i.lookAt(0,a[m],0)):(i.up.set(0,o[m],0),i.lookAt(0,0,a[m])),Tf(r,v*rf,m>2?rf:0,rf,rf),s.setRenderTarget(r),h&&s.render(uf,i),s.render(e,i)}s.toneMapping=u,s.outputEncoding=c,s.autoClear=l},t._textureToCubeUV=function(e,t){var n=this._renderer;e.isCubeTexture?null==this._cubemapShader&&(this._cubemapShader=Lf()):null==this._equirectShader&&(this._equirectShader=Cf());var r=e.isCubeTexture?this._cubemapShader:this._equirectShader,i=new xo(pf[0],r),o=r.uniforms;o.envMap.value=e,e.isCubeTexture||o.texelSize.value.set(1/e.image.width,1/e.image.height),o.inputEncoding.value=lf[e.encoding],o.outputEncoding.value=lf[t.texture.encoding],Tf(t,0,0,3*rf,2*rf),n.setRenderTarget(t),n.render(i,hf)},t._applyPMREM=function(e){var t=this._renderer,n=t.autoClear;t.autoClear=!1;for(var r=1;r<af;r++){var i=Math.sqrt(mf[r]*mf[r]-mf[r-1]*mf[r-1]),o=Af[(r-1)%Af.length];this._blur(e,r-1,r,i,o)}t.autoClear=n},t._blur=function(e,t,n,r,i){var o=this._pingPongRenderTarget;this._halfBlur(e,o,t,n,r,"latitudinal",i),this._halfBlur(o,e,n,n,r,"longitudinal",i)},t._halfBlur=function(e,t,n,r,i,o,a){var s=this._renderer,l=this._blurMaterial;"latitudinal"!==o&&"longitudinal"!==o&&console.error("blur direction must be either latitudinal or longitudinal!");var c=3,u=new xo(pf[r],l),h=l.uniforms,d=ff[n]-1,p=isFinite(i)?Math.PI/(2*d):2*Math.PI/(2*sf-1),f=i/p,m=isFinite(i)?1+Math.floor(c*f):sf;m>sf&&console.warn("sigmaRadians, "+i+", is too large and will clip, as it requested "+m+" samples when the maximum is set to "+sf);for(var v=[],g=0,y=0;y<sf;++y){var b=y/f,A=Math.exp(-b*b/2);v.push(A),0==y?g+=A:y<m&&(g+=2*A)}for(var w=0;w<v.length;w++)v[w]=v[w]/g;h.envMap.value=e.texture,h.samples.value=m,h.weights.value=v,h.latitudinal.value="latitudinal"===o,a&&(h.poleAxis.value=a),h.dTheta.value=p,h.mipInt.value=nf-n,h.inputEncoding.value=lf[e.texture.encoding],h.outputEncoding.value=lf[e.texture.encoding];var x=ff[r];Tf(t,3*Math.max(0,rf-2*x),(0===r?0:2*rf)+2*x*(r>nf-tf?r-nf+tf:0),3*x,2*x),s.setRenderTarget(t),s.render(u,hf)},e}();function Ef(e){return void 0!==e&&e.type===_e&&(e.encoding===Kt||e.encoding===Jt||e.encoding===$t)}function Mf(){for(var e=[],t=[],n=[],r=nf,i=0;i<af;i++){var o=Math.pow(2,r);t.push(o);var a=1/o;i>nf-tf?a=of[i-nf+tf-1]:0==i&&(a=0),n.push(a);for(var s=1/(o-1),l=-s/2,c=1+s/2,u=[l,l,c,l,c,c,l,l,c,c,l,c],h=6,d=6,p=3,f=2,m=1,v=new Float32Array(p*d*h),g=new Float32Array(f*d*h),y=new Float32Array(m*d*h),b=0;b<h;b++){var A=b%3*2/3-1,w=b>2?0:-1,x=[A,w,0,A+2/3,w,0,A+2/3,w+1,0,A,w,0,A+2/3,w+1,0,A,w+1,0];v.set(x,p*d*b),g.set(u,f*d*b);var E=[b,b,b,b,b,b];y.set(E,m*d*b)}var M=new ro;M.setAttribute("position",new Fi(v,p)),M.setAttribute("uv",new Fi(g,f)),M.setAttribute("faceIndex",new Fi(y,m)),e.push(M),r>tf&&r--}return{_lodPlanes:e,_sizeLods:t,_sigmas:n}}function _f(e){var t=new or(3*rf,3*rf,e);return t.texture.mapping=ue,t.texture.name="PMREM.cubeUv",t.scissorTest=!0,t}function Tf(e,t,n,r,i){e.viewport.set(t,n,r,i),e.scissor.set(t,n,r,i)}function Sf(e){return new Ou({name:"SphericalGaussianBlur",defines:{n:e},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:new Float32Array(e)},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:new lr(0,1,0)},inputEncoding:{value:lf[Kt]},outputEncoding:{value:lf[Kt]}},vertexShader:Rf(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t"+Pf()+"\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include <cube_uv_reflection_fragment>\n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t",blending:A,depthTest:!1,depthWrite:!1})}function Cf(){return new Ou({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null},texelSize:{value:new Jn(1,1)},inputEncoding:{value:lf[Kt]},outputEncoding:{value:lf[Kt]}},vertexShader:Rf(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform vec2 texelSize;\n\n\t\t\t"+Pf()+"\n\n\t\t\t#include <common>\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tvec2 f = fract( uv / texelSize - 0.5 );\n\t\t\t\tuv -= f * texelSize;\n\t\t\t\tvec3 tl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.x += texelSize.x;\n\t\t\t\tvec3 tr = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.y += texelSize.y;\n\t\t\t\tvec3 br = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.x -= texelSize.x;\n\t\t\t\tvec3 bl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\n\t\t\t\tvec3 tm = mix( tl, tr, f.x );\n\t\t\t\tvec3 bm = mix( bl, br, f.x );\n\t\t\t\tgl_FragColor.rgb = mix( tm, bm, f.y );\n\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t",blending:A,depthTest:!1,depthWrite:!1})}function Lf(){return new Ou({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},inputEncoding:{value:lf[Kt]},outputEncoding:{value:lf[Kt]}},vertexShader:Rf(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\t"+Pf()+"\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb = envMapTexelToLinear( textureCube( envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ) ) ).rgb;\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t",blending:A,depthTest:!1,depthWrite:!1})}function Rf(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute vec3 position;\n\t\tattribute vec2 uv;\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function Pf(){return"\n\n\t\tuniform int inputEncoding;\n\t\tuniform int outputEncoding;\n\n\t\t#include <encodings_pars_fragment>\n\n\t\tvec4 inputTexelToLinear( vec4 value ) {\n\n\t\t\tif ( inputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( inputEncoding == 1 ) {\n\n\t\t\t\treturn sRGBToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 2 ) {\n\n\t\t\t\treturn RGBEToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 3 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 7.0 );\n\n\t\t\t} else if ( inputEncoding == 4 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 16.0 );\n\n\t\t\t} else if ( inputEncoding == 5 ) {\n\n\t\t\t\treturn RGBDToLinear( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn GammaToLinear( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 linearToOutputTexel( vec4 value ) {\n\n\t\t\tif ( outputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( outputEncoding == 1 ) {\n\n\t\t\t\treturn LinearTosRGB( value );\n\n\t\t\t} else if ( outputEncoding == 2 ) {\n\n\t\t\t\treturn LinearToRGBE( value );\n\n\t\t\t} else if ( outputEncoding == 3 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 7.0 );\n\n\t\t\t} else if ( outputEncoding == 4 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 16.0 );\n\n\t\t\t} else if ( outputEncoding == 5 ) {\n\n\t\t\t\treturn LinearToRGBD( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn LinearToGamma( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 envMapTexelToLinear( vec4 color ) {\n\n\t\t\treturn inputTexelToLinear( color );\n\n\t\t}\n\t"}function Df(e,t,n,r,i,o,a){return console.warn("THREE.Face4 has been removed. A THREE.Face3 will be created instead."),new Ri(e,t,n,i,o,a)}var Of=0,If=1,Bf=0,Ff=1,kf=2;function Nf(e){return console.warn("THREE.MeshFaceMaterial has been removed. Use an Array instead."),e}function Uf(e){return void 0===e&&(e=[]),console.warn("THREE.MultiMaterial has been removed. Use an Array instead."),e.isMultiMaterial=!0,e.materials=e,e.clone=function(){return e.slice()},e}function Hf(e,t){return console.warn("THREE.PointCloud has been renamed to THREE.Points."),new gc(e,t)}function Gf(e){return console.warn("THREE.Particle has been renamed to THREE.Sprite."),new Bl(e)}function zf(e,t){return console.warn("THREE.ParticleSystem has been renamed to THREE.Points."),new gc(e,t)}function jf(e){return console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial."),new dc(e)}function Vf(e){return console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial."),new dc(e)}function Wf(e){return console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial."),new dc(e)}function qf(e,t,n){return console.warn("THREE.Vertex has been removed. Use THREE.Vector3 instead."),new lr(e,t,n)}function Xf(e,t){return console.warn("THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setUsage( THREE.DynamicDrawUsage ) instead."),new Fi(e,t).setUsage(Sn)}function Yf(e,t){return console.warn("THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead."),new ki(e,t)}function Qf(e,t){return console.warn("THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead."),new Ni(e,t)}function Zf(e,t){return console.warn("THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead."),new Ui(e,t)}function Kf(e,t){return console.warn("THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead."),new Hi(e,t)}function Jf(e,t){return console.warn("THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead."),new Gi(e,t)}function $f(e,t){return console.warn("THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead."),new zi(e,t)}function em(e,t){return console.warn("THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead."),new ji(e,t)}function tm(e,t){return console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead."),new Wi(e,t)}function nm(e,t){return console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead."),new qi(e,t)}function rm(e){console.warn("THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead."),_h.call(this,e),this.type="catmullrom",this.closed=!0}function im(e){console.warn("THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead."),_h.call(this,e),this.type="catmullrom"}function om(e){console.warn("THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead."),_h.call(this,e),this.type="catmullrom"}function am(e){return console.warn("THREE.AxisHelper has been renamed to THREE.AxesHelper."),new Kp(e)}function sm(e,t){return console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead."),new qp(e,t)}function lm(e,t){return console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead."),new uc(new Dc(e.geometry),new tc({color:void 0!==t?t:16777215}))}function cm(e,t){return console.warn("THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead."),new uc(new Ru(e.geometry),new tc({color:void 0!==t?t:16777215}))}function um(e){return console.warn("THREE.XHRLoader has been renamed to THREE.FileLoader."),new uh(e)}function hm(e){return console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader."),new mh(e)}function dm(e,t,n){return console.warn("THREE.WebGLRenderTargetCube( width, height, options ) is now WebGLCubeRenderTarget( size, options )."),new No(e,n)}gh.create=function(e,t){return console.log("THREE.Curve.create() has been deprecated"),e.prototype=Object.create(gh.prototype),e.prototype.constructor=e,e.prototype.getPoint=t,e},Object.assign(Wh.prototype,{fromPoints:function(e){return console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints()."),this.setFromPoints(e)}}),rm.prototype=Object.create(_h.prototype),im.prototype=Object.create(_h.prototype),om.prototype=Object.create(_h.prototype),Object.assign(om.prototype,{initFromArray:function(){console.error("THREE.Spline: .initFromArray() has been removed.")},getControlPointsArray:function(){console.error("THREE.Spline: .getControlPointsArray() has been removed.")},reparametrizeByArcLength:function(){console.error("THREE.Spline: .reparametrizeByArcLength() has been removed.")}}),Dp.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")},_p.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")},Object.assign(lh.prototype,{extractUrlBase:function(e){return console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead."),ld.extractUrlBase(e)}}),lh.Handlers={add:function(){console.error("THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.")},get:function(){console.error("THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.")}},Object.assign(mp.prototype,{center:function(e){return console.warn("THREE.Box2: .center() has been renamed to .getCenter()."),this.getCenter(e)},empty:function(){return console.warn("THREE.Box2: .empty() has been renamed to .isEmpty()."),this.isEmpty()},isIntersectionBox:function(e){return console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(e)},size:function(e){return console.warn("THREE.Box2: .size() has been renamed to .getSize()."),this.getSize(e)}}),Object.assign(hr.prototype,{center:function(e){return console.warn("THREE.Box3: .center() has been renamed to .getCenter()."),this.getCenter(e)},empty:function(){return console.warn("THREE.Box3: .empty() has been renamed to .isEmpty()."),this.isEmpty()},isIntersectionBox:function(e){return console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(e)},isIntersectionSphere:function(e){return console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(e)},size:function(e){return console.warn("THREE.Box3: .size() has been renamed to .getSize()."),this.getSize(e)}}),Object.assign(Sr.prototype,{empty:function(){return console.warn("THREE.Sphere: .empty() has been renamed to .isEmpty()."),this.isEmpty()}}),zo.prototype.setFromMatrix=function(e){return console.warn("THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix()."),this.setFromProjectionMatrix(e)},yp.prototype.center=function(e){return console.warn("THREE.Line3: .center() has been renamed to .getCenter()."),this.getCenter(e)},Object.assign(Kn,{random16:function(){return console.warn("THREE.Math: .random16() has been deprecated. Use Math.random() instead."),Math.random()},nearestPowerOfTwo:function(e){return console.warn("THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo()."),Kn.floorPowerOfTwo(e)},nextPowerOfTwo:function(e){return console.warn("THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo()."),Kn.ceilPowerOfTwo(e)}}),Object.assign($n.prototype,{flattenToArrayOffset:function(e,t){return console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(e,t)},multiplyVector3:function(e){return console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead."),e.applyMatrix3(this)},multiplyVector3Array:function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},applyToBufferAttribute:function(e){return console.warn("THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead."),e.applyMatrix3(this)},applyToVector3Array:function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")},getInverse:function(e){return console.warn("THREE.Matrix3: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead."),this.copy(e).invert()}}),Object.assign(Fr.prototype,{extractPosition:function(e){return console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition()."),this.copyPosition(e)},flattenToArrayOffset:function(e,t){return console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(e,t)},getPosition:function(){return console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead."),(new lr).setFromMatrixColumn(this,3)},setRotationFromQuaternion:function(e){return console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion()."),this.makeRotationFromQuaternion(e)},multiplyToArray:function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},multiplyVector3:function(e){return console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead."),e.applyMatrix4(this)},multiplyVector4:function(e){return console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead."),e.applyMatrix4(this)},multiplyVector3Array:function(){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},rotateAxis:function(e){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead."),e.transformDirection(this)},crossVector:function(e){return console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead."),e.applyMatrix4(this)},translate:function(){console.error("THREE.Matrix4: .translate() has been removed.")},rotateX:function(){console.error("THREE.Matrix4: .rotateX() has been removed.")},rotateY:function(){console.error("THREE.Matrix4: .rotateY() has been removed.")},rotateZ:function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")},rotateByAxis:function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")},applyToBufferAttribute:function(e){return console.warn("THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead."),e.applyMatrix4(this)},applyToVector3Array:function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")},makeFrustum:function(e,t,n,r,i,o){return console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead."),this.makePerspective(e,t,r,n,i,o)},getInverse:function(e){return console.warn("THREE.Matrix4: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead."),this.copy(e).invert()}}),hi.prototype.isIntersectionLine=function(e){return console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine()."),this.intersectsLine(e)},Object.assign(sr.prototype,{multiplyVector3:function(e){return console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead."),e.applyQuaternion(this)},inverse:function(){return console.warn("THREE.Quaternion: .inverse() has been renamed to invert()."),this.invert()}}),Object.assign(Br.prototype,{isIntersectionBox:function(e){return console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(e)},isIntersectionPlane:function(e){return console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane()."),this.intersectsPlane(e)},isIntersectionSphere:function(e){return console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(e)}}),Object.assign(xi.prototype,{area:function(){return console.warn("THREE.Triangle: .area() has been renamed to .getArea()."),this.getArea()},barycoordFromPoint:function(e,t){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),this.getBarycoord(e,t)},midpoint:function(e){return console.warn("THREE.Triangle: .midpoint() has been renamed to .getMidpoint()."),this.getMidpoint(e)},normal:function(e){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),this.getNormal(e)},plane:function(e){return console.warn("THREE.Triangle: .plane() has been renamed to .getPlane()."),this.getPlane(e)}}),Object.assign(xi,{barycoordFromPoint:function(e,t,n,r,i){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),xi.getBarycoord(e,t,n,r,i)},normal:function(e,t,n,r){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),xi.getNormal(e,t,n,r)}}),Object.assign(qh.prototype,{extractAllPoints:function(e){return console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead."),this.extractPoints(e)},extrude:function(e){return console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead."),new fu(this,e)},makeGeometry:function(e){return console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead."),new xu(this,e)}}),Object.assign(Jn.prototype,{fromAttribute:function(e,t,n){return console.warn("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(e,t,n)},distanceToManhattan:function(e){return console.warn("THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(e)},lengthManhattan:function(){return console.warn("THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(lr.prototype,{setEulerFromRotationMatrix:function(){console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")},setEulerFromQuaternion:function(){console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},getPositionFromMatrix:function(e){return console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition()."),this.setFromMatrixPosition(e)},getScaleFromMatrix:function(e){return console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale()."),this.setFromMatrixScale(e)},getColumnFromMatrix:function(e,t){return console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn()."),this.setFromMatrixColumn(t,e)},applyProjection:function(e){return console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead."),this.applyMatrix4(e)},fromAttribute:function(e,t,n){return console.warn("THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(e,t,n)},distanceToManhattan:function(e){return console.warn("THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(e)},lengthManhattan:function(){return console.warn("THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(ir.prototype,{fromAttribute:function(e,t,n){return console.warn("THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(e,t,n)},lengthManhattan:function(){return console.warn("THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(si.prototype,{getChildByName:function(e){return console.warn("THREE.Object3D: .getChildByName() has been renamed to .getObjectByName()."),this.getObjectByName(e)},renderDepth:function(){console.warn("THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.")},translate:function(e,t){return console.warn("THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead."),this.translateOnAxis(t,e)},getWorldRotation:function(){console.error("THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.")},applyMatrix:function(e){return console.warn("THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(e)}}),Object.defineProperties(si.prototype,{eulerOrder:{get:function(){return console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order},set:function(e){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order=e}},useQuaternion:{get:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")},set:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")}}}),Object.assign(xo.prototype,{setDrawMode:function(){console.error("THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.")}}),Object.defineProperties(xo.prototype,{drawMode:{get:function(){return console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode."),Yt},set:function(){console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.")}}}),Object.defineProperties(Ul.prototype,{objects:{get:function(){return console.warn("THREE.LOD: .objects has been renamed to .levels."),this.levels}}}),Object.defineProperty(Ql.prototype,"useVertexTexture",{get:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")},set:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")}}),Wl.prototype.initBones=function(){console.error("THREE.SkinnedMesh: initBones() has been removed.")},Object.defineProperty(gh.prototype,"__arcLengthDivisions",{get:function(){return console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions."),this.arcLengthDivisions},set:function(e){console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions."),this.arcLengthDivisions=e}}),Oo.prototype.setLens=function(e,t){console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup."),void 0!==t&&(this.filmGauge=t),this.setFocalLength(e)},Object.defineProperties(Xh.prototype,{onlyShadow:{set:function(){console.warn("THREE.Light: .onlyShadow has been removed.")}},shadowCameraFov:{set:function(e){console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov."),this.shadow.camera.fov=e}},shadowCameraLeft:{set:function(e){console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left."),this.shadow.camera.left=e}},shadowCameraRight:{set:function(e){console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right."),this.shadow.camera.right=e}},shadowCameraTop:{set:function(e){console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top."),this.shadow.camera.top=e}},shadowCameraBottom:{set:function(e){console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom."),this.shadow.camera.bottom=e}},shadowCameraNear:{set:function(e){console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near."),this.shadow.camera.near=e}},shadowCameraFar:{set:function(e){console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far."),this.shadow.camera.far=e}},shadowCameraVisible:{set:function(){console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.")}},shadowBias:{set:function(e){console.warn("THREE.Light: .shadowBias is now .shadow.bias."),this.shadow.bias=e}},shadowDarkness:{set:function(){console.warn("THREE.Light: .shadowDarkness has been removed.")}},shadowMapWidth:{set:function(e){console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width."),this.shadow.mapSize.width=e}},shadowMapHeight:{set:function(e){console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height."),this.shadow.mapSize.height=e}}}),Object.defineProperties(Fi.prototype,{length:{get:function(){return console.warn("THREE.BufferAttribute: .length has been deprecated. Use .count instead."),this.array.length}},dynamic:{get:function(){return console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."),this.usage===Sn},set:function(){console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."),this.setUsage(Sn)}}}),Object.assign(Fi.prototype,{setDynamic:function(e){return console.warn("THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(!0===e?Sn:Tn),this},copyIndicesArray:function(){console.error("THREE.BufferAttribute: .copyIndicesArray() has been removed.")},setArray:function(){console.error("THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")}}),Object.assign(ro.prototype,{addIndex:function(e){console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex()."),this.setIndex(e)},addAttribute:function(e,t){return console.warn("THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute()."),t&&t.isBufferAttribute||t&&t.isInterleavedBufferAttribute?"index"===e?(console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(t),this):this.setAttribute(e,t):(console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.setAttribute(e,new Fi(arguments[1],arguments[2])))},addDrawCall:function(e,t,n){void 0!==n&&console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset."),console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup()."),this.addGroup(e,t)},clearDrawCalls:function(){console.warn("THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups()."),this.clearGroups()},computeOffsets:function(){console.warn("THREE.BufferGeometry: .computeOffsets() has been removed.")},removeAttribute:function(e){return console.warn("THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute()."),this.deleteAttribute(e)},applyMatrix:function(e){return console.warn("THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(e)}}),Object.defineProperties(ro.prototype,{drawcalls:{get:function(){return console.error("THREE.BufferGeometry: .drawcalls has been renamed to .groups."),this.groups}},offsets:{get:function(){return console.warn("THREE.BufferGeometry: .offsets has been renamed to .groups."),this.groups}}}),Object.defineProperties(cd.prototype,{maxInstancedCount:{get:function(){return console.warn("THREE.InstancedBufferGeometry: .maxInstancedCount has been renamed to .instanceCount."),this.instanceCount},set:function(e){console.warn("THREE.InstancedBufferGeometry: .maxInstancedCount has been renamed to .instanceCount."),this.instanceCount=e}}}),Object.defineProperties(cp.prototype,{linePrecision:{get:function(){return console.warn("THREE.Raycaster: .linePrecision has been deprecated. Use .params.Line.threshold instead."),this.params.Line.threshold},set:function(e){console.warn("THREE.Raycaster: .linePrecision has been deprecated. Use .params.Line.threshold instead."),this.params.Line.threshold=e}}}),Object.defineProperties(yl.prototype,{dynamic:{get:function(){return console.warn("THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead."),this.usage===Sn},set:function(e){console.warn("THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead."),this.setUsage(e)}}}),Object.assign(yl.prototype,{setDynamic:function(e){return console.warn("THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(!0===e?Sn:Tn),this},setArray:function(){console.error("THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")}}),Object.assign(fu.prototype,{getArrays:function(){console.error("THREE.ExtrudeGeometry: .getArrays() has been removed.")},addShapeList:function(){console.error("THREE.ExtrudeGeometry: .addShapeList() has been removed.")},addShape:function(){console.error("THREE.ExtrudeGeometry: .addShape() has been removed.")}}),Object.assign(gl.prototype,{dispose:function(){console.error("THREE.Scene: .dispose() has been removed.")}}),Object.defineProperties(ap.prototype,{dynamic:{set:function(){console.warn("THREE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.")}},onUpdate:{value:function(){return console.warn("THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead."),this}}}),Object.defineProperties(Di.prototype,{wrapAround:{get:function(){console.warn("THREE.Material: .wrapAround has been removed.")},set:function(){console.warn("THREE.Material: .wrapAround has been removed.")}},overdraw:{get:function(){console.warn("THREE.Material: .overdraw has been removed.")},set:function(){console.warn("THREE.Material: .overdraw has been removed.")}},wrapRGB:{get:function(){return console.warn("THREE.Material: .wrapRGB has been removed."),new Li}},shading:{get:function(){console.error("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead.")},set:function(e){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=e===y}},stencilMask:{get:function(){return console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask},set:function(e){console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask=e}}}),Object.defineProperties(Fu.prototype,{metal:{get:function(){return console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead."),!1},set:function(){console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead")}}}),Object.defineProperties(Bu.prototype,{transparency:{get:function(){return console.warn("THREE.MeshPhysicalMaterial: .transparency has been renamed to .transmission."),this.transmission},set:function(e){console.warn("THREE.MeshPhysicalMaterial: .transparency has been renamed to .transmission."),this.transmission=e}}}),Object.defineProperties(Po.prototype,{derivatives:{get:function(){return console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives},set:function(e){console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives=e}}}),Object.assign(pl.prototype,{clearTarget:function(e,t,n,r){console.warn("THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead."),this.setRenderTarget(e),this.clear(t,n,r)},animate:function(e){console.warn("THREE.WebGLRenderer: .animate() is now .setAnimationLoop()."),this.setAnimationLoop(e)},getCurrentRenderTarget:function(){return console.warn("THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget()."),this.getRenderTarget()},getMaxAnisotropy:function(){return console.warn("THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy()."),this.capabilities.getMaxAnisotropy()},getPrecision:function(){return console.warn("THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision."),this.capabilities.precision},resetGLState:function(){return console.warn("THREE.WebGLRenderer: .resetGLState() is now .state.reset()."),this.state.reset()},supportsFloatTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' )."),this.extensions.get("OES_texture_float")},supportsHalfFloatTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' )."),this.extensions.get("OES_texture_half_float")},supportsStandardDerivatives:function(){return console.warn("THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' )."),this.extensions.get("OES_standard_derivatives")},supportsCompressedTextureS3TC:function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' )."),this.extensions.get("WEBGL_compressed_texture_s3tc")},supportsCompressedTexturePVRTC:function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' )."),this.extensions.get("WEBGL_compressed_texture_pvrtc")},supportsBlendMinMax:function(){return console.warn("THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' )."),this.extensions.get("EXT_blend_minmax")},supportsVertexTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures."),this.capabilities.vertexTextures},supportsInstancedArrays:function(){return console.warn("THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' )."),this.extensions.get("ANGLE_instanced_arrays")},enableScissorTest:function(e){console.warn("THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest()."),this.setScissorTest(e)},initMaterial:function(){console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")},addPrePlugin:function(){console.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.")},addPostPlugin:function(){console.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.")},updateShadowMap:function(){console.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.")},setFaceCulling:function(){console.warn("THREE.WebGLRenderer: .setFaceCulling() has been removed.")},allocTextureUnit:function(){console.warn("THREE.WebGLRenderer: .allocTextureUnit() has been removed.")},setTexture:function(){console.warn("THREE.WebGLRenderer: .setTexture() has been removed.")},setTextureCube:function(){console.warn("THREE.WebGLRenderer: .setTextureCube() has been removed.")},getActiveMipMapLevel:function(){return console.warn("THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel()."),this.getActiveMipmapLevel()}}),Object.defineProperties(pl.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(e){console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled."),this.shadowMap.enabled=e}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(e){console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type."),this.shadowMap.type=e}},shadowMapCullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")}},context:{get:function(){return console.warn("THREE.WebGLRenderer: .context has been removed. Use .getContext() instead."),this.getContext()}},vr:{get:function(){return console.warn("THREE.WebGLRenderer: .vr has been renamed to .xr"),this.xr}},gammaInput:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead."),!1},set:function(){console.warn("THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.")}},gammaOutput:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."),!1},set:function(e){console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."),this.outputEncoding=!0===e?Jt:Kt}},toneMappingWhitePoint:{get:function(){return console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed."),1},set:function(){console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.")}}}),Object.defineProperties($s.prototype,{cullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")}},renderReverseSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")}},renderSingleSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")}}}),Object.defineProperties(or.prototype,{wrapS:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS},set:function(e){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS=e}},wrapT:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT},set:function(e){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT=e}},magFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter},set:function(e){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter=e}},minFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter},set:function(e){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter=e}},anisotropy:{get:function(){return console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy},set:function(e){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy=e}},offset:{get:function(){return console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset},set:function(e){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset=e}},repeat:{get:function(){return console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat},set:function(e){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat=e}},format:{get:function(){return console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format},set:function(e){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format=e}},type:{get:function(){return console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type},set:function(e){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type=e}},generateMipmaps:{get:function(){return console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps},set:function(e){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps=e}}}),Object.defineProperties(kd.prototype,{load:{value:function(e){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");var t=this;return(new Md).load(e,(function(e){t.setBuffer(e)})),this}},startTime:{set:function(){console.warn("THREE.Audio: .startTime is now .play( delay ).")}}}),jd.prototype.getData=function(){return console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData()."),this.getFrequencyData()},Fo.prototype.updateCubeMap=function(e,t){return console.warn("THREE.CubeCamera: .updateCubeMap() is now .update()."),this.update(e,t)},Fo.prototype.clear=function(e,t,n,r){return console.warn("THREE.CubeCamera: .clear() is now .renderTarget.clear()."),this.renderTarget.clear(e,t,n,r)};var pm={merge:function(e,t,n){var r;console.warn("THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead."),t.isMesh&&(t.matrixAutoUpdate&&t.updateMatrix(),r=t.matrix,t=t.geometry),e.merge(t,r,n)},center:function(e){return console.warn("THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead."),e.center()}};function fm(){console.error("THREE.CanvasRenderer has been removed")}function mm(){console.error("THREE.JSONLoader has been removed.")}er.crossOrigin=void 0,er.loadTexture=function(e,t,n,r){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");var i=new vh;i.setCrossOrigin(this.crossOrigin);var o=i.load(e,n,void 0,r);return t&&(o.mapping=t),o},er.loadTextureCube=function(e,t,n,r){console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");var i=new fh;i.setCrossOrigin(this.crossOrigin);var o=i.load(e,n,void 0,r);return t&&(o.mapping=t),o},er.loadCompressedTexture=function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")},er.loadCompressedTextureCube=function(){console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.")};var vm={createMultiMaterialObject:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")},detach:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")},attach:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")}};function gm(){console.error("THREE.LensFlare has been moved to /examples/jsm/objects/Lensflare.js")}"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:i}})),"undefined"!==typeof window&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=i),t.ACESFilmicToneMapping=re,t.AddEquation=T,t.AddOperation=J,t.AdditiveAnimationBlendMode=Xt,t.AdditiveBlending=x,t.AlphaFormat=ke,t.AlwaysDepth=j,t.AlwaysStencilFunc=_n,t.AmbientLight=rd,t.AmbientLightProbe=Td,t.AnimationClip=nh,t.AnimationLoader=hh,t.AnimationMixer=op,t.AnimationObjectGroup=rp,t.AnimationUtils=ju,t.ArcCurve=bh,t.ArrayCamera=il,t.ArrowHelper=Zp,t.Audio=kd,t.AudioAnalyser=jd,t.AudioContext=Ed,t.AudioListener=Fd,t.AudioLoader=Md,t.AxesHelper=Kp,t.AxisHelper=am,t.BackSide=v,t.BasicDepthPacking=an,t.BasicShadowMap=h,t.BinaryTextureLoader=hm,t.Bone=ql,t.BooleanKeyframeTrack=Qu,t.BoundingBoxHelper=sm,t.Box2=mp,t.Box3=hr,t.Box3Helper=Xp,t.BoxBufferGeometry=_o,t.BoxGeometry=_o,t.BoxHelper=qp,t.BufferAttribute=Fi,t.BufferGeometry=ro,t.BufferGeometryLoader=hd,t.ByteType=Te,t.Cache=oh,t.Camera=Do,t.CameraHelper=Hp,t.CanvasRenderer=fm,t.CanvasTexture=wc,t.CatmullRomCurve3=_h,t.CineonToneMapping=ne,t.CircleBufferGeometry=Ec,t.CircleGeometry=Ec,t.ClampToEdgeWrapping=pe,t.Clock=Rd,t.ClosedSplineCurve3=rm,t.Color=Li,t.ColorKeyframeTrack=Zu,t.CompressedTexture=Ac,t.CompressedTextureLoader=dh,t.ConeBufferGeometry=_c,t.ConeGeometry=_c,t.CubeCamera=Fo,t.CubeReflectionMapping=ae,t.CubeRefractionMapping=se,t.CubeTexture=ko,t.CubeTextureLoader=fh,t.CubeUVReflectionMapping=ue,t.CubeUVRefractionMapping=he,t.CubicBezierCurve=Fh,t.CubicBezierCurve3=kh,t.CubicInterpolant=Wu,t.CullFaceBack=l,t.CullFaceFront=c,t.CullFaceFrontBack=u,t.CullFaceNone=s,t.Curve=gh,t.CurvePath=Vh,t.CustomBlending=_,t.CustomToneMapping=ie,t.CylinderBufferGeometry=Mc,t.CylinderGeometry=Mc,t.Cylindrical=pp,t.DataTexture=Uo,t.DataTexture2DArray=ca,t.DataTexture3D=ua,t.DataTextureLoader=mh,t.DataUtils=ef,t.DecrementStencilOp=fn,t.DecrementWrapStencilOp=vn,t.DefaultLoadingManager=sh,t.DepthFormat=je,t.DepthStencilFormat=Ve,t.DepthTexture=xc,t.DirectionalLight=nd,t.DirectionalLightHelper=kp,t.DiscreteInterpolant=Xu,t.DodecahedronBufferGeometry=Sc,t.DodecahedronGeometry=Sc,t.DoubleSide=g,t.DstAlphaFactor=k,t.DstColorFactor=U,t.DynamicBufferAttribute=Xf,t.DynamicCopyUsage=On,t.DynamicDrawUsage=Sn,t.DynamicReadUsage=Rn,t.EdgesGeometry=Dc,t.EdgesHelper=lm,t.EllipseCurve=yh,t.EqualDepth=q,t.EqualStencilFunc=An,t.EquirectangularReflectionMapping=le,t.EquirectangularRefractionMapping=ce,t.Euler=Vr,t.EventDispatcher=qn,t.ExtrudeBufferGeometry=fu,t.ExtrudeGeometry=fu,t.Face3=Ri,t.Face4=Df,t.FaceColors=Ff,t.FileLoader=uh,t.FlatShading=y,t.Float16BufferAttribute=Vi,t.Float32Attribute=tm,t.Float32BufferAttribute=Wi,t.Float64Attribute=nm,t.Float64BufferAttribute=qi,t.FloatType=Pe,t.Fog=vl,t.FogExp2=ml,t.Font=bd,t.FontLoader=xd,t.FrontSide=m,t.Frustum=zo,t.GLBufferAttribute=lp,t.GLSL1=Bn,t.GLSL3=Fn,t.GammaEncoding=$t,t.GeometryUtils=pm,t.GreaterDepth=Y,t.GreaterEqualDepth=X,t.GreaterEqualStencilFunc=Mn,t.GreaterStencilFunc=xn,t.GridHelper=Dp,t.Group=rl,t.HalfFloatType=De,t.HemisphereLight=Yh,t.HemisphereLightHelper=Pp,t.HemisphereLightProbe=_d,t.IcosahedronBufferGeometry=gu,t.IcosahedronGeometry=gu,t.ImageBitmapLoader=vd,t.ImageLoader=ph,t.ImageUtils=er,t.ImmediateRenderObject=bp,t.IncrementStencilOp=pn,t.IncrementWrapStencilOp=mn,t.InstancedBufferAttribute=ud,t.InstancedBufferGeometry=cd,t.InstancedInterleavedBuffer=sp,t.InstancedMesh=ec,t.Int16Attribute=Kf,t.Int16BufferAttribute=Hi,t.Int32Attribute=$f,t.Int32BufferAttribute=zi,t.Int8Attribute=Yf,t.Int8BufferAttribute=ki,t.IntType=Le,t.InterleavedBuffer=yl,t.InterleavedBufferAttribute=wl,t.Interpolant=Vu,t.InterpolateDiscrete=Ht,t.InterpolateLinear=Gt,t.InterpolateSmooth=zt,t.InvertStencilOp=gn,t.JSONLoader=mm,t.KeepStencilOp=hn,t.KeyframeTrack=Yu,t.LOD=Ul,t.LatheBufferGeometry=yu,t.LatheGeometry=yu,t.Layers=Xr,t.LensFlare=gm,t.LessDepth=V,t.LessEqualDepth=W,t.LessEqualStencilFunc=wn,t.LessStencilFunc=bn,t.Light=Xh,t.LightProbe=ad,t.Line=sc,t.Line3=yp,t.LineBasicMaterial=tc,t.LineCurve=Nh,t.LineCurve3=Uh,t.LineDashedMaterial=Gu,t.LineLoop=hc,t.LinePieces=If,t.LineSegments=uc,t.LineStrip=Of,t.LinearEncoding=Kt,t.LinearFilter=Ae,t.LinearInterpolant=qu,t.LinearMipMapLinearFilter=Me,t.LinearMipMapNearestFilter=xe,t.LinearMipmapLinearFilter=Ee,t.LinearMipmapNearestFilter=we,t.LinearToneMapping=ee,t.Loader=lh,t.LoaderUtils=ld,t.LoadingManager=ah,t.LogLuvEncoding=tn,t.LoopOnce=kt,t.LoopPingPong=Ut,t.LoopRepeat=Nt,t.LuminanceAlphaFormat=Ge,t.LuminanceFormat=He,t.MOUSE=o,t.Material=Di,t.MaterialLoader=sd,t.Math=Kn,t.MathUtils=Kn,t.Matrix3=$n,t.Matrix4=Fr,t.MaxEquation=R,t.Mesh=xo,t.MeshBasicMaterial=Oi,t.MeshDepthMaterial=Qs,t.MeshDistanceMaterial=Zs,t.MeshFaceMaterial=Nf,t.MeshLambertMaterial=Uu,t.MeshMatcapMaterial=Hu,t.MeshNormalMaterial=Nu,t.MeshPhongMaterial=Fu,t.MeshPhysicalMaterial=Bu,t.MeshStandardMaterial=Iu,t.MeshToonMaterial=ku,t.MinEquation=L,t.MirroredRepeatWrapping=fe,t.MixOperation=K,t.MultiMaterial=Uf,t.MultiplyBlending=M,t.MultiplyOperation=Z,t.NearestFilter=me,t.NearestMipMapLinearFilter=be,t.NearestMipMapNearestFilter=ge,t.NearestMipmapLinearFilter=ye,t.NearestMipmapNearestFilter=ve,t.NeverDepth=z,t.NeverStencilFunc=yn,t.NoBlending=A,t.NoColors=Bf,t.NoToneMapping=$,t.NormalAnimationBlendMode=qt,t.NormalBlending=w,t.NotEqualDepth=Q,t.NotEqualStencilFunc=En,t.NumberKeyframeTrack=Ku,t.Object3D=si,t.ObjectLoader=dd,t.ObjectSpaceNormalMap=cn,t.OctahedronBufferGeometry=bu,t.OctahedronGeometry=bu,t.OneFactor=D,t.OneMinusDstAlphaFactor=N,t.OneMinusDstColorFactor=H,t.OneMinusSrcAlphaFactor=F,t.OneMinusSrcColorFactor=I,t.OrthographicCamera=ed,t.PCFShadowMap=d,t.PCFSoftShadowMap=p,t.PMREMGenerator=xf,t.ParametricBufferGeometry=Au,t.ParametricGeometry=Au,t.Particle=Gf,t.ParticleBasicMaterial=Vf,t.ParticleSystem=zf,t.ParticleSystemMaterial=Wf,t.Path=Wh,t.PerspectiveCamera=Oo,t.Plane=hi,t.PlaneBufferGeometry=Wo,t.PlaneGeometry=Wo,t.PlaneHelper=Yp,t.PointCloud=Hf,t.PointCloudMaterial=jf,t.PointLight=$h,t.PointLightHelper=Sp,t.Points=gc,t.PointsMaterial=dc,t.PolarGridHelper=Op,t.PolyhedronBufferGeometry=Tc,t.PolyhedronGeometry=Tc,t.PositionalAudio=zd,t.PropertyBinding=np,t.PropertyMixer=Vd,t.QuadraticBezierCurve=Hh,t.QuadraticBezierCurve3=Gh,t.Quaternion=sr,t.QuaternionKeyframeTrack=$u,t.QuaternionLinearInterpolant=Ju,t.REVISION=i,t.RGBADepthPacking=sn,t.RGBAFormat=Ue,t.RGBAIntegerFormat=Ze,t.RGBA_ASTC_10x10_Format=bt,t.RGBA_ASTC_10x5_Format=vt,t.RGBA_ASTC_10x6_Format=gt,t.RGBA_ASTC_10x8_Format=yt,t.RGBA_ASTC_12x10_Format=At,t.RGBA_ASTC_12x12_Format=wt,t.RGBA_ASTC_4x4_Format=lt,t.RGBA_ASTC_5x4_Format=ct,t.RGBA_ASTC_5x5_Format=ut,t.RGBA_ASTC_6x5_Format=ht,t.RGBA_ASTC_6x6_Format=dt,t.RGBA_ASTC_8x5_Format=pt,t.RGBA_ASTC_8x6_Format=ft,t.RGBA_ASTC_8x8_Format=mt,t.RGBA_BPTC_Format=xt,t.RGBA_ETC2_EAC_Format=st,t.RGBA_PVRTC_2BPPV1_Format=it,t.RGBA_PVRTC_4BPPV1_Format=rt,t.RGBA_S3TC_DXT1_Format=Je,t.RGBA_S3TC_DXT3_Format=$e,t.RGBA_S3TC_DXT5_Format=et,t.RGBDEncoding=on,t.RGBEEncoding=en,t.RGBEFormat=ze,t.RGBFormat=Ne,t.RGBIntegerFormat=Qe,t.RGBM16Encoding=rn,t.RGBM7Encoding=nn,t.RGB_ETC1_Format=ot,t.RGB_ETC2_Format=at,t.RGB_PVRTC_2BPPV1_Format=nt,t.RGB_PVRTC_4BPPV1_Format=tt,t.RGB_S3TC_DXT1_Format=Ke,t.RGFormat=Xe,t.RGIntegerFormat=Ye,t.RawShaderMaterial=Ou,t.Ray=Br,t.Raycaster=cp,t.RectAreaLight=id,t.RedFormat=We,t.RedIntegerFormat=qe,t.ReinhardToneMapping=te,t.RepeatWrapping=de,t.ReplaceStencilOp=dn,t.ReverseSubtractEquation=C,t.RingBufferGeometry=wu,t.RingGeometry=wu,t.SRGB8_ALPHA8_ASTC_10x10_Format=It,t.SRGB8_ALPHA8_ASTC_10x5_Format=Pt,t.SRGB8_ALPHA8_ASTC_10x6_Format=Dt,t.SRGB8_ALPHA8_ASTC_10x8_Format=Ot,t.SRGB8_ALPHA8_ASTC_12x10_Format=Bt,t.SRGB8_ALPHA8_ASTC_12x12_Format=Ft,t.SRGB8_ALPHA8_ASTC_4x4_Format=Et,t.SRGB8_ALPHA8_ASTC_5x4_Format=Mt,t.SRGB8_ALPHA8_ASTC_5x5_Format=_t,t.SRGB8_ALPHA8_ASTC_6x5_Format=Tt,t.SRGB8_ALPHA8_ASTC_6x6_Format=St,t.SRGB8_ALPHA8_ASTC_8x5_Format=Ct,t.SRGB8_ALPHA8_ASTC_8x6_Format=Lt,t.SRGB8_ALPHA8_ASTC_8x8_Format=Rt,t.Scene=gl,t.SceneUtils=vm,t.ShaderChunk=qo,t.ShaderLib=Yo,t.ShaderMaterial=Po,t.ShadowMaterial=Du,t.Shape=qh,t.ShapeBufferGeometry=xu,t.ShapeGeometry=xu,t.ShapePath=gd,t.ShapeUtils=hu,t.ShortType=Se,t.Skeleton=Ql,t.SkeletonHelper=_p,t.SkinnedMesh=Wl,t.SmoothShading=b,t.Sphere=Sr,t.SphereBufferGeometry=Mu,t.SphereGeometry=Mu,t.Spherical=dp,t.SphericalHarmonics3=od,t.Spline=om,t.SplineCurve=zh,t.SplineCurve3=im,t.SpotLight=Kh,t.SpotLightHelper=wp,t.Sprite=Bl,t.SpriteMaterial=xl,t.SrcAlphaFactor=B,t.SrcAlphaSaturateFactor=G,t.SrcColorFactor=O,t.StaticCopyUsage=Dn,t.StaticDrawUsage=Tn,t.StaticReadUsage=Ln,t.StereoCamera=Ld,t.StreamCopyUsage=In,t.StreamDrawUsage=Cn,t.StreamReadUsage=Pn,t.StringKeyframeTrack=eh,t.SubtractEquation=S,t.SubtractiveBlending=E,t.TOUCH=a,t.TangentSpaceNormalMap=ln,t.TetrahedronBufferGeometry=_u,t.TetrahedronGeometry=_u,t.TextBufferGeometry=Tu,t.TextGeometry=Tu,t.Texture=nr,t.TextureLoader=vh,t.TorusBufferGeometry=Su,t.TorusGeometry=Su,t.TorusKnotBufferGeometry=Cu,t.TorusKnotGeometry=Cu,t.Triangle=xi,t.TriangleFanDrawMode=Zt,t.TriangleStripDrawMode=Qt,t.TrianglesDrawMode=Yt,t.TubeBufferGeometry=Lu,t.TubeGeometry=Lu,t.UVMapping=oe,t.Uint16Attribute=Jf,t.Uint16BufferAttribute=Gi,t.Uint32Attribute=em,t.Uint32BufferAttribute=ji,t.Uint8Attribute=Qf,t.Uint8BufferAttribute=Ni,t.Uint8ClampedAttribute=Zf,t.Uint8ClampedBufferAttribute=Ui,t.Uniform=ap,t.UniformsLib=Xo,t.UniformsUtils=Co,t.UnsignedByteType=_e,t.UnsignedInt248Type=Fe,t.UnsignedIntType=Re,t.UnsignedShort4444Type=Oe,t.UnsignedShort5551Type=Ie,t.UnsignedShort565Type=Be,t.UnsignedShortType=Ce,t.VSMShadowMap=f,t.Vector2=Jn,t.Vector3=lr,t.Vector4=ir,t.VectorKeyframeTrack=th,t.Vertex=qf,t.VertexColors=kf,t.VideoTexture=bc,t.WebGL1Renderer=fl,t.WebGLCubeRenderTarget=No,t.WebGLMultisampleRenderTarget=ar,t.WebGLRenderTarget=or,t.WebGLRenderTargetCube=dm,t.WebGLRenderer=pl,t.WebGLUtils=nl,t.WireframeGeometry=Ru,t.WireframeHelper=cm,t.WrapAroundEnding=Wt,t.XHRLoader=um,t.ZeroCurvatureEnding=jt,t.ZeroFactor=P,t.ZeroSlopeEnding=Vt,t.ZeroStencilOp=un,t.sRGBEncoding=Jt,Object.defineProperty(t,"__esModule",{value:!0})},"object"===typeof i&&"undefined"!==typeof r?a(i):"function"===typeof t&&t.amd?t(["exports"],a):a((o="undefined"!==typeof globalThis?globalThis:o||self).THREE={})},{}],58:[function(e,t,n){THREE.DRACOLoader=function(e){THREE.Loader.call(this,e),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}},THREE.DRACOLoader.prototype=Object.assign(Object.create(THREE.Loader.prototype),{constructor:THREE.DRACOLoader,setDecoderPath:function(e){return this.decoderPath=e,this},setDecoderConfig:function(e){return this.decoderConfig=e,this},setWorkerLimit:function(e){return this.workerLimit=e,this},setVerbosity:function(){console.warn("THREE.DRACOLoader: The .setVerbosity() method has been removed.")},setDrawMode:function(){console.warn("THREE.DRACOLoader: The .setDrawMode() method has been removed.")},setSkipDequantization:function(){console.warn("THREE.DRACOLoader: The .setSkipDequantization() method has been removed.")},load:function(e,t,n,r){var i=new THREE.FileLoader(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),i.load(e,(e=>{var n={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(e,n).then(t).catch(r)}),n,r)},decodeDracoFile:function(e,t,n,r){var i={attributeIDs:n||this.defaultAttributeIDs,attributeTypes:r||this.defaultAttributeTypes,useUniqueIDs:!!n};this.decodeGeometry(e,i).then(t)},decodeGeometry:function(e,t){for(var n in t.attributeTypes){var r=t.attributeTypes[n];void 0!==r.BYTES_PER_ELEMENT&&(t.attributeTypes[n]=r.name)}var i,o=JSON.stringify(t);if(THREE.DRACOLoader.taskCache.has(e)){var a=THREE.DRACOLoader.taskCache.get(e);if(a.key===o)return a.promise;if(0===e.byteLength)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}var s=this.workerNextTaskID++,l=e.byteLength,c=this._getWorker(s,l).then((n=>(i=n,new Promise(((n,r)=>{i._callbacks[s]={resolve:n,reject:r},i.postMessage({type:"decode",id:s,taskConfig:t,buffer:e},[e])}))))).then((e=>this._createGeometry(e.geometry)));return c.catch((()=>!0)).then((()=>{i&&s&&this._releaseTask(i,s)})),THREE.DRACOLoader.taskCache.set(e,{key:o,promise:c}),c},_createGeometry:function(e){var t=new THREE.BufferGeometry;e.index&&t.setIndex(new THREE.BufferAttribute(e.index.array,1));for(var n=0;n<e.attributes.length;n++){var r=e.attributes[n],i=r.name,o=r.array,a=r.itemSize;t.setAttribute(i,new THREE.BufferAttribute(o,a))}return t},_loadLibrary:function(e,t){var n=new THREE.FileLoader(this.manager);return n.setPath(this.decoderPath),n.setResponseType(t),n.setWithCredentials(this.withCredentials),new Promise(((t,r)=>{n.load(e,t,void 0,r)}))},preload:function(){return this._initDecoder(),this},_initDecoder:function(){if(this.decoderPending)return this.decoderPending;var e="object"!==typeof WebAssembly||"js"===this.decoderConfig.type,t=[];return e?t.push(this._loadLibrary("draco_decoder.js","text")):(t.push(this._loadLibrary("draco_wasm_wrapper.js","text")),t.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(t).then((t=>{var n=t[0];e||(this.decoderConfig.wasmBinary=t[1]);var r=THREE.DRACOLoader.DRACOWorker.toString(),i=["/* draco decoder */",n,"","/* worker */",r.substring(r.indexOf("{")+1,r.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([i]))})),this.decoderPending},_getWorker:function(e,t){return this._initDecoder().then((()=>{var n;return this.workerPool.length<this.workerLimit?((n=new Worker(this.workerSourceURL))._callbacks={},n._taskCosts={},n._taskLoad=0,n.postMessage({type:"init",decoderConfig:this.decoderConfig}),n.onmessage=function(e){var t=e.data;switch(t.type){case"decode":n._callbacks[t.id].resolve(t);break;case"error":n._callbacks[t.id].reject(t);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+t.type+'"')}},this.workerPool.push(n)):this.workerPool.sort((function(e,t){return e._taskLoad>t._taskLoad?-1:1})),(n=this.workerPool[this.workerPool.length-1])._taskCosts[e]=t,n._taskLoad+=t,n}))},_releaseTask:function(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]},debug:function(){console.log("Task load: ",this.workerPool.map((e=>e._taskLoad)))},dispose:function(){for(var e=0;e<this.workerPool.length;++e)this.workerPool[e].terminate();return this.workerPool.length=0,this}}),THREE.DRACOLoader.DRACOWorker=function(){var e,t;function n(e,t,n,o){var a,s,l=o.attributeIDs,c=o.attributeTypes,u=t.GetEncodedGeometryType(n);if(u===e.TRIANGULAR_MESH)a=new e.Mesh,s=t.DecodeBufferToMesh(n,a);else{if(u!==e.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");a=new e.PointCloud,s=t.DecodeBufferToPointCloud(n,a)}if(!s.ok()||0===a.ptr)throw new Error("THREE.DRACOLoader: Decoding failed: "+s.error_msg());var h={index:null,attributes:[]};for(var d in l){var p,f,m=self[c[d]];if(o.useUniqueIDs)f=l[d],p=t.GetAttributeByUniqueId(a,f);else{if(-1===(f=t.GetAttributeId(a,e[l[d]])))continue;p=t.GetAttribute(a,f)}h.attributes.push(i(e,t,a,d,m,p))}return u===e.TRIANGULAR_MESH&&(h.index=r(e,t,a)),e.destroy(a),h}function r(e,t,n){var r=3*n.num_faces(),i=4*r,o=e._malloc(i);t.GetTrianglesUInt32Array(n,i,o);var a=new Uint32Array(e.HEAPF32.buffer,o,r).slice();return e._free(o),{array:a,itemSize:1}}function i(e,t,n,r,i,a){var s=a.num_components(),l=n.num_points()*s,c=l*i.BYTES_PER_ELEMENT,u=o(e,i),h=e._malloc(c);t.GetAttributeDataArrayForAllPoints(n,a,u,c,h);var d=new i(e.HEAPF32.buffer,h,l).slice();return e._free(h),{name:r,array:d,itemSize:s}}function o(e,t){switch(t){case Float32Array:return e.DT_FLOAT32;case Int8Array:return e.DT_INT8;case Int16Array:return e.DT_INT16;case Int32Array:return e.DT_INT32;case Uint8Array:return e.DT_UINT8;case Uint16Array:return e.DT_UINT16;case Uint32Array:return e.DT_UINT32}}onmessage=function(r){var i=r.data;switch(i.type){case"init":e=i.decoderConfig,t=new Promise((function(t){e.onModuleLoaded=function(e){t({draco:e})},DracoDecoderModule(e)}));break;case"decode":var o=i.buffer,a=i.taskConfig;t.then((e=>{var t=e.draco,r=new t.Decoder,s=new t.DecoderBuffer;s.Init(new Int8Array(o),o.byteLength);try{var l=n(t,r,s,a),c=l.attributes.map((e=>e.array.buffer));l.index&&c.push(l.index.array.buffer),self.postMessage({type:"decode",id:i.id,geometry:l},c)}catch(u){console.error(u),self.postMessage({type:"error",id:i.id,error:u.message})}finally{t.destroy(s),t.destroy(r)}}))}}},THREE.DRACOLoader.taskCache=new WeakMap,THREE.DRACOLoader.setDecoderPath=function(){console.warn("THREE.DRACOLoader: The .setDecoderPath() method has been removed. Use instance methods.")},THREE.DRACOLoader.setDecoderConfig=function(){console.warn("THREE.DRACOLoader: The .setDecoderConfig() method has been removed. Use instance methods.")},THREE.DRACOLoader.releaseDecoderModule=function(){console.warn("THREE.DRACOLoader: The .releaseDecoderModule() method has been removed. Use instance methods.")},THREE.DRACOLoader.getDecoderModule=function(){console.warn("THREE.DRACOLoader: The .getDecoderModule() method has been removed. Use instance methods.")}},{}],59:[function(t,n,r){THREE.GLTFLoader=function(){function t(e){THREE.Loader.call(this,e),this.dracoLoader=null,this.ddsLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register((function(e){return new s(e)})),this.register((function(e){return new c(e)})),this.register((function(e){return new u(e)})),this.register((function(e){return new l(e)})),this.register((function(e){return new o(e)})),this.register((function(e){return new h(e)}))}function n(){var e={};return{get:function(t){return e[t]},add:function(t,n){e[t]=n},remove:function(t){delete e[t]},removeAll:function(){e={}}}}t.prototype=Object.assign(Object.create(THREE.Loader.prototype),{constructor:t,load:function(t,n,r,i){var o,a=this;o=""!==this.resourcePath?this.resourcePath:""!==this.path?this.path:THREE.LoaderUtils.extractUrlBase(t),this.manager.itemStart(t);var s=function(e){i?i(e):console.error(e),a.manager.itemError(t),a.manager.itemEnd(t)},l=new THREE.FileLoader(this.manager);l.setPath(this.path),l.setResponseType("arraybuffer"),l.setRequestHeader(this.requestHeader),l.setWithCredentials(this.withCredentials),l.load(t,(function(r){try{a.parse(r,o,(function(e){n(e),a.manager.itemEnd(t)}),s)}catch(e){s(e)}}),r,s)},setDRACOLoader:function(e){return this.dracoLoader=e,this},setDDSLoader:function(e){return this.ddsLoader=e,this},setKTX2Loader:function(e){return this.ktx2Loader=e,this},setMeshoptDecoder:function(e){return this.meshoptDecoder=e,this},register:function(e){return-1===this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.push(e),this},unregister:function(e){return-1!==this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this},parse:function(e,t,n,o){var s,l={},c={};if("string"===typeof e)s=e;else if(THREE.LoaderUtils.decodeText(new Uint8Array(e,0,4))===d){try{l[r.KHR_BINARY_GLTF]=new m(e)}catch(x){return void(o&&o(x))}s=l[r.KHR_BINARY_GLTF].content}else s=THREE.LoaderUtils.decodeText(new Uint8Array(e));var u=JSON.parse(s);if(void 0===u.asset||u.asset.version[0]<2)o&&o(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));else{var h=new U(u,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});h.fileLoader.setRequestHeader(this.requestHeader);for(var p=0;p<this.pluginCallbacks.length;p++){var f=this.pluginCallbacks[p](h);c[f.name]=f,l[f.name]=!0}if(u.extensionsUsed)for(p=0;p<u.extensionsUsed.length;++p){var y=u.extensionsUsed[p],w=u.extensionsRequired||[];switch(y){case r.KHR_MATERIALS_UNLIT:l[y]=new a;break;case r.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:l[y]=new b;break;case r.KHR_DRACO_MESH_COMPRESSION:l[y]=new v(u,this.dracoLoader);break;case r.MSFT_TEXTURE_DDS:l[y]=new i(this.ddsLoader);break;case r.KHR_TEXTURE_TRANSFORM:l[y]=new g;break;case r.KHR_MESH_QUANTIZATION:l[y]=new A;break;default:w.indexOf(y)>=0&&void 0===c[y]&&console.warn('THREE.GLTFLoader: Unknown extension "'+y+'".')}}h.setExtensions(l),h.setPlugins(c),h.parse(n,o)}}});var r={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:"KHR_materials_pbrSpecularGlossiness",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",MSFT_TEXTURE_DDS:"MSFT_texture_dds"};function i(e){if(!e)throw new Error("THREE.GLTFLoader: Attempting to load .dds texture without importing THREE.DDSLoader");this.name=r.MSFT_TEXTURE_DDS,this.ddsLoader=e}function o(e){this.parser=e,this.name=r.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}function a(){this.name=r.KHR_MATERIALS_UNLIT}function s(e){this.parser=e,this.name=r.KHR_MATERIALS_CLEARCOAT}function l(e){this.parser=e,this.name=r.KHR_MATERIALS_TRANSMISSION}function c(e){this.parser=e,this.name=r.KHR_TEXTURE_BASISU}function u(e){this.parser=e,this.name=r.EXT_TEXTURE_WEBP,this.isSupported=null}function h(e){this.name=r.EXT_MESHOPT_COMPRESSION,this.parser=e}o.prototype._markDefs=function(){for(var e=this.parser,t=this.parser.json.nodes||[],n=0,r=t.length;n<r;n++){var i=t[n];i.extensions&&i.extensions[this.name]&&void 0!==i.extensions[this.name].light&&e._addNodeRef(this.cache,i.extensions[this.name].light)}},o.prototype._loadLight=function(e){var t=this.parser,n="light:"+e,r=t.cache.get(n);if(r)return r;var i,o=t.json,a=((o.extensions&&o.extensions[this.name]||{}).lights||[])[e],s=new THREE.Color(16777215);void 0!==a.color&&s.fromArray(a.color);var l=void 0!==a.range?a.range:0;switch(a.type){case"directional":(i=new THREE.DirectionalLight(s)).target.position.set(0,0,-1),i.add(i.target);break;case"point":(i=new THREE.PointLight(s)).distance=l;break;case"spot":(i=new THREE.SpotLight(s)).distance=l,a.spot=a.spot||{},a.spot.innerConeAngle=void 0!==a.spot.innerConeAngle?a.spot.innerConeAngle:0,a.spot.outerConeAngle=void 0!==a.spot.outerConeAngle?a.spot.outerConeAngle:Math.PI/4,i.angle=a.spot.outerConeAngle,i.penumbra=1-a.spot.innerConeAngle/a.spot.outerConeAngle,i.target.position.set(0,0,-1),i.add(i.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+a.type)}return i.position.set(0,0,0),i.decay=2,void 0!==a.intensity&&(i.intensity=a.intensity),i.name=t.createUniqueName(a.name||"light_"+e),r=Promise.resolve(i),t.cache.add(n,r),r},o.prototype.createNodeAttachment=function(e){var t=this,n=this.parser,r=n.json.nodes[e],i=(r.extensions&&r.extensions[this.name]||{}).light;return void 0===i?null:this._loadLight(i).then((function(e){return n._getNodeRef(t.cache,i,e)}))},a.prototype.getMaterialType=function(){return THREE.MeshBasicMaterial},a.prototype.extendParams=function(e,t,n){var r=[];e.color=new THREE.Color(1,1,1),e.opacity=1;var i=t.pbrMetallicRoughness;if(i){if(Array.isArray(i.baseColorFactor)){var o=i.baseColorFactor;e.color.fromArray(o),e.opacity=o[3]}void 0!==i.baseColorTexture&&r.push(n.assignTexture(e,"map",i.baseColorTexture))}return Promise.all(r)},s.prototype.getMaterialType=function(e){var t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?THREE.MeshPhysicalMaterial:null},s.prototype.extendMaterialParams=function(e,t){var n=this.parser,r=n.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();var i=[],o=r.extensions[this.name];if(void 0!==o.clearcoatFactor&&(t.clearcoat=o.clearcoatFactor),void 0!==o.clearcoatTexture&&i.push(n.assignTexture(t,"clearcoatMap",o.clearcoatTexture)),void 0!==o.clearcoatRoughnessFactor&&(t.clearcoatRoughness=o.clearcoatRoughnessFactor),void 0!==o.clearcoatRoughnessTexture&&i.push(n.assignTexture(t,"clearcoatRoughnessMap",o.clearcoatRoughnessTexture)),void 0!==o.clearcoatNormalTexture&&(i.push(n.assignTexture(t,"clearcoatNormalMap",o.clearcoatNormalTexture)),void 0!==o.clearcoatNormalTexture.scale)){var a=o.clearcoatNormalTexture.scale;t.clearcoatNormalScale=new THREE.Vector2(a,-a)}return Promise.all(i)},l.prototype.getMaterialType=function(e){var t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?THREE.MeshPhysicalMaterial:null},l.prototype.extendMaterialParams=function(e,t){var n=this.parser,r=n.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();var i=[],o=r.extensions[this.name];return void 0!==o.transmissionFactor&&(t.transmission=o.transmissionFactor),void 0!==o.transmissionTexture&&i.push(n.assignTexture(t,"transmissionMap",o.transmissionTexture)),Promise.all(i)},c.prototype.loadTexture=function(e){var t=this.parser,n=t.json,r=n.textures[e];if(!r.extensions||!r.extensions[this.name])return null;var i=r.extensions[this.name],o=n.images[i.source],a=t.options.ktx2Loader;if(!a){if(n.extensionsRequired&&n.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,o,a)},u.prototype.loadTexture=function(e){var t=this.name,n=this.parser,r=n.json,i=r.textures[e];if(!i.extensions||!i.extensions[t])return null;var o=i.extensions[t],a=r.images[o.source],s=a.uri?n.options.manager.getHandler(a.uri):n.textureLoader;return this.detectSupport().then((function(i){if(i)return n.loadTextureImage(e,a,s);if(r.extensionsRequired&&r.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return n.loadTexture(e)}))},u.prototype.detectSupport=function(){return this.isSupported||(this.isSupported=new Promise((function(e){var t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported},h.prototype.loadBufferView=function(e){var t=this.parser.json,n=t.bufferViews[e];if(n.extensions&&n.extensions[this.name]){var r=n.extensions[this.name],i=this.parser.getDependency("buffer",r.buffer),o=this.parser.options.meshoptDecoder;if(!o||!o.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return Promise.all([i,o.ready]).then((function(e){var t=r.byteOffset||0,n=r.byteLength||0,i=r.count,a=r.byteStride,s=new ArrayBuffer(i*a),l=new Uint8Array(e[0],t,n);return o.decodeGltfBuffer(new Uint8Array(s),i,a,l,r.mode,r.filter),s}))}return null};var d="glTF",p=12,f={JSON:1313821514,BIN:5130562};function m(e){this.name=r.KHR_BINARY_GLTF,this.content=null,this.body=null;var t=new DataView(e,0,p);if(this.header={magic:THREE.LoaderUtils.decodeText(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==d)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");for(var n=this.header.length-p,i=new DataView(e,p),o=0;o<n;){var a=i.getUint32(o,!0);o+=4;var s=i.getUint32(o,!0);if(o+=4,s===f.JSON){var l=new Uint8Array(e,p+o,a);this.content=THREE.LoaderUtils.decodeText(l)}else if(s===f.BIN){var c=p+o;this.body=e.slice(c,c+a)}o+=a}if(null===this.content)throw new Error("THREE.GLTFLoader: JSON content not found.")}function v(e,t){if(!t)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=r.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}function g(){this.name=r.KHR_TEXTURE_TRANSFORM}function y(e){THREE.MeshStandardMaterial.call(this),this.isGLTFSpecularGlossinessMaterial=!0;var t=["#ifdef USE_SPECULARMAP","\tuniform sampler2D specularMap;","#endif"].join("\n"),n=["#ifdef USE_GLOSSINESSMAP","\tuniform sampler2D glossinessMap;","#endif"].join("\n"),r=["vec3 specularFactor = specular;","#ifdef USE_SPECULARMAP","\tvec4 texelSpecular = texture2D( specularMap, vUv );","\ttexelSpecular = sRGBToLinear( texelSpecular );","\t// reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture","\tspecularFactor *= texelSpecular.rgb;","#endif"].join("\n"),i=["float glossinessFactor = glossiness;","#ifdef USE_GLOSSINESSMAP","\tvec4 texelGlossiness = texture2D( glossinessMap, vUv );","\t// reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture","\tglossinessFactor *= texelGlossiness.a;","#endif"].join("\n"),o=["PhysicalMaterial material;","material.diffuseColor = diffuseColor.rgb * ( 1. - max( specularFactor.r, max( specularFactor.g, specularFactor.b ) ) );","vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );","float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );","material.specularRoughness = max( 1.0 - glossinessFactor, 0.0525 ); // 0.0525 corresponds to the base mip of a 256 cubemap.","material.specularRoughness += geometryRoughness;","material.specularRoughness = min( material.specularRoughness, 1.0 );","material.specularColor = specularFactor;"].join("\n"),a={specular:{value:(new THREE.Color).setHex(16777215)},glossiness:{value:1},specularMap:{value:null},glossinessMap:{value:null}};this._extraUniforms=a,this.onBeforeCompile=function(e){for(var s in a)e.uniforms[s]=a[s];e.fragmentShader=e.fragmentShader.replace("uniform float roughness;","uniform vec3 specular;").replace("uniform float metalness;","uniform float glossiness;").replace("#include <roughnessmap_pars_fragment>",t).replace("#include <metalnessmap_pars_fragment>",n).replace("#include <roughnessmap_fragment>",r).replace("#include <metalnessmap_fragment>",i).replace("#include <lights_physical_fragment>",o)},Object.defineProperties(this,{specular:{get:function(){return a.specular.value},set:function(e){a.specular.value=e}},specularMap:{get:function(){return a.specularMap.value},set:function(e){a.specularMap.value=e,e?this.defines.USE_SPECULARMAP="":delete this.defines.USE_SPECULARMAP}},glossiness:{get:function(){return a.glossiness.value},set:function(e){a.glossiness.value=e}},glossinessMap:{get:function(){return a.glossinessMap.value},set:function(e){a.glossinessMap.value=e,e?(this.defines.USE_GLOSSINESSMAP="",this.defines.USE_UV=""):(delete this.defines.USE_GLOSSINESSMAP,delete this.defines.USE_UV)}}}),delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this.setValues(e)}function b(){return{name:r.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,specularGlossinessParams:["color","map","lightMap","lightMapIntensity","aoMap","aoMapIntensity","emissive","emissiveIntensity","emissiveMap","bumpMap","bumpScale","normalMap","normalMapType","displacementMap","displacementScale","displacementBias","specularMap","specular","glossinessMap","glossiness","alphaMap","envMap","envMapIntensity","refractionRatio"],getMaterialType:function(){return y},extendParams:function(e,t,n){var r=t.extensions[this.name];e.color=new THREE.Color(1,1,1),e.opacity=1;var i=[];if(Array.isArray(r.diffuseFactor)){var o=r.diffuseFactor;e.color.fromArray(o),e.opacity=o[3]}if(void 0!==r.diffuseTexture&&i.push(n.assignTexture(e,"map",r.diffuseTexture)),e.emissive=new THREE.Color(0,0,0),e.glossiness=void 0!==r.glossinessFactor?r.glossinessFactor:1,e.specular=new THREE.Color(1,1,1),Array.isArray(r.specularFactor)&&e.specular.fromArray(r.specularFactor),void 0!==r.specularGlossinessTexture){var a=r.specularGlossinessTexture;i.push(n.assignTexture(e,"glossinessMap",a)),i.push(n.assignTexture(e,"specularMap",a))}return Promise.all(i)},createMaterial:function(e){var t=new y(e);return t.fog=!0,t.color=e.color,t.map=void 0===e.map?null:e.map,t.lightMap=null,t.lightMapIntensity=1,t.aoMap=void 0===e.aoMap?null:e.aoMap,t.aoMapIntensity=1,t.emissive=e.emissive,t.emissiveIntensity=1,t.emissiveMap=void 0===e.emissiveMap?null:e.emissiveMap,t.bumpMap=void 0===e.bumpMap?null:e.bumpMap,t.bumpScale=1,t.normalMap=void 0===e.normalMap?null:e.normalMap,t.normalMapType=THREE.TangentSpaceNormalMap,e.normalScale&&(t.normalScale=e.normalScale),t.displacementMap=null,t.displacementScale=1,t.displacementBias=0,t.specularMap=void 0===e.specularMap?null:e.specularMap,t.specular=e.specular,t.glossinessMap=void 0===e.glossinessMap?null:e.glossinessMap,t.glossiness=e.glossiness,t.alphaMap=null,t.envMap=void 0===e.envMap?null:e.envMap,t.envMapIntensity=1,t.refractionRatio=.98,t}}}function A(){this.name=r.KHR_MESH_QUANTIZATION}function w(e,t,n,r){THREE.Interpolant.call(this,e,t,n,r)}v.prototype.decodePrimitive=function(e,t){var n=this.json,r=this.dracoLoader,i=e.extensions[this.name].bufferView,o=e.extensions[this.name].attributes,a={},s={},l={};for(var c in o){var u=S[c]||c.toLowerCase();a[u]=o[c]}for(c in e.attributes)if(u=S[c]||c.toLowerCase(),void 0!==o[c]){var h=n.accessors[e.attributes[c]],d=E[h.componentType];l[u]=d,s[u]=!0===h.normalized}return t.getDependency("bufferView",i).then((function(e){return new Promise((function(t){r.decodeDracoFile(e,(function(e){for(var n in e.attributes){var r=e.attributes[n],i=s[n];void 0!==i&&(r.normalized=i)}t(e)}),a,l)}))}))},g.prototype.extendTexture=function(e,t){return e=e.clone(),void 0!==t.offset&&e.offset.fromArray(t.offset),void 0!==t.rotation&&(e.rotation=t.rotation),void 0!==t.scale&&e.repeat.fromArray(t.scale),void 0!==t.texCoord&&console.warn('THREE.GLTFLoader: Custom UV sets in "'+this.name+'" extension not yet supported.'),e.needsUpdate=!0,e},y.prototype=Object.create(THREE.MeshStandardMaterial.prototype),y.prototype.constructor=y,y.prototype.copy=function(e){return THREE.MeshStandardMaterial.prototype.copy.call(this,e),this.specularMap=e.specularMap,this.specular.copy(e.specular),this.glossinessMap=e.glossinessMap,this.glossiness=e.glossiness,delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this},w.prototype=Object.create(THREE.Interpolant.prototype),w.prototype.constructor=w,w.prototype.copySampleValue_=function(e){for(var t=this.resultBuffer,n=this.sampleValues,r=this.valueSize,i=e*r*3+r,o=0;o!==r;o++)t[o]=n[i+o];return t},w.prototype.beforeStart_=w.prototype.copySampleValue_,w.prototype.afterEnd_=w.prototype.copySampleValue_,w.prototype.interpolate_=function(e,t,n,r){for(var i=this.resultBuffer,o=this.sampleValues,a=this.valueSize,s=2*a,l=3*a,c=r-t,u=(n-t)/c,h=u*u,d=h*u,p=e*l,f=p-l,m=-2*d+3*h,v=d-h,g=1-m,y=v-h+u,b=0;b!==a;b++){var A=o[f+b+a],w=o[f+b+s]*c,x=o[p+b+a],E=o[p+b]*c;i[b]=g*A+y*w+m*x+v*E}return i};var x={FLOAT:5126,FLOAT_MAT3:35675,FLOAT_MAT4:35676,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,LINEAR:9729,REPEAT:10497,SAMPLER_2D:35678,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123},E={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},M={9728:THREE.NearestFilter,9729:THREE.LinearFilter,9984:THREE.NearestMipmapNearestFilter,9985:THREE.LinearMipmapNearestFilter,9986:THREE.NearestMipmapLinearFilter,9987:THREE.LinearMipmapLinearFilter},_={33071:THREE.ClampToEdgeWrapping,33648:THREE.MirroredRepeatWrapping,10497:THREE.RepeatWrapping},T={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},S={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},C={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},L={CUBICSPLINE:void 0,LINEAR:THREE.InterpolateLinear,STEP:THREE.InterpolateDiscrete},R={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function P(e,t){return"string"!==typeof e||""===e?"":(/^https?:\/\//i.test(t)&&/^\//.test(e)&&(t=t.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(e)||/^data:.*,.*$/i.test(e)||/^blob:.*$/i.test(e)?e:t+e)}function D(e){return void 0===e.DefaultMaterial&&(e.DefaultMaterial=new THREE.MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:THREE.FrontSide})),e.DefaultMaterial}function O(e,t,n){for(var r in n.extensions)void 0===e[r]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[r]=n.extensions[r])}function I(e,t){void 0!==t.extras&&("object"===typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function B(e,t,n){for(var r=!1,i=!1,o=0,a=t.length;o<a&&(void 0!==(c=t[o]).POSITION&&(r=!0),void 0!==c.NORMAL&&(i=!0),!r||!i);o++);if(!r&&!i)return Promise.resolve(e);var s=[],l=[];for(o=0,a=t.length;o<a;o++){var c=t[o];if(r){var u=void 0!==c.POSITION?n.getDependency("accessor",c.POSITION):e.attributes.position;s.push(u)}i&&(u=void 0!==c.NORMAL?n.getDependency("accessor",c.NORMAL):e.attributes.normal,l.push(u))}return Promise.all([Promise.all(s),Promise.all(l)]).then((function(t){var n=t[0],o=t[1];return r&&(e.morphAttributes.position=n),i&&(e.morphAttributes.normal=o),e.morphTargetsRelative=!0,e}))}function F(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(var n=0,r=t.weights.length;n<r;n++)e.morphTargetInfluences[n]=t.weights[n];if(t.extras&&Array.isArray(t.extras.targetNames)){var i=t.extras.targetNames;if(e.morphTargetInfluences.length===i.length)for(e.morphTargetDictionary={},n=0,r=i.length;n<r;n++)e.morphTargetDictionary[i[n]]=n;else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function k(e){var t=e.extensions&&e.extensions[r.KHR_DRACO_MESH_COMPRESSION];return t?"draco:"+t.bufferView+":"+t.indices+":"+N(t.attributes):e.indices+":"+N(e.attributes)+":"+e.mode}function N(e){for(var t="",n=Object.keys(e).sort(),r=0,i=n.length;r<i;r++)t+=n[r]+":"+e[n[r]]+";";return t}function U(e,t){this.json=e||{},this.extensions={},this.plugins={},this.options=t||{},this.cache=new n,this.associations=new Map,this.primitiveCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.nodeNamesUsed={},"undefined"!==typeof createImageBitmap&&!1===/Firefox/.test(navigator.userAgent)?this.textureLoader=new THREE.ImageBitmapLoader(this.options.manager):this.textureLoader=new THREE.TextureLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.fileLoader=new THREE.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}function H(e,t,n){var r=t.attributes,i=new THREE.Box3;if(void 0!==r.POSITION){var o=(d=n.json.accessors[r.POSITION]).min,a=d.max;if(void 0!==o&&void 0!==a){i.set(new THREE.Vector3(o[0],o[1],o[2]),new THREE.Vector3(a[0],a[1],a[2]));var s=t.targets;if(void 0!==s){for(var l=new THREE.Vector3,c=new THREE.Vector3,u=0,h=s.length;u<h;u++){var d,p=s[u];if(void 0!==p.POSITION)o=(d=n.json.accessors[p.POSITION]).min,a=d.max,void 0!==o&&void 0!==a?(c.setX(Math.max(Math.abs(o[0]),Math.abs(a[0]))),c.setY(Math.max(Math.abs(o[1]),Math.abs(a[1]))),c.setZ(Math.max(Math.abs(o[2]),Math.abs(a[2]))),l.max(c)):console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}i.expandByVector(l)}e.boundingBox=i;var f=new THREE.Sphere;i.getCenter(f.center),f.radius=i.min.distanceTo(i.max)/2,e.boundingSphere=f}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}function G(e,t,n){var r=t.attributes,i=[];function o(t,r){return n.getDependency("accessor",t).then((function(t){e.setAttribute(r,t)}))}for(var a in r){var s=S[a]||a.toLowerCase();s in e.attributes||i.push(o(r[a],s))}if(void 0!==t.indices&&!e.index){var l=n.getDependency("accessor",t.indices).then((function(t){e.setIndex(t)}));i.push(l)}return I(e,t),H(e,t,n),Promise.all(i).then((function(){return void 0!==t.targets?B(e,t.targets,n):e}))}function z(e,t){var n=e.getIndex();if(null===n){var r=[],i=e.getAttribute("position");if(void 0===i)return console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e;for(var o=0;o<i.count;o++)r.push(o);e.setIndex(r),n=e.getIndex()}var a=n.count-2,s=[];if(t===THREE.TriangleFanDrawMode)for(o=1;o<=a;o++)s.push(n.getX(0)),s.push(n.getX(o)),s.push(n.getX(o+1));else for(o=0;o<a;o++)o%2===0?(s.push(n.getX(o)),s.push(n.getX(o+1)),s.push(n.getX(o+2))):(s.push(n.getX(o+2)),s.push(n.getX(o+1)),s.push(n.getX(o)));s.length/3!==a&&console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");var l=e.clone();return l.setIndex(s),l}return U.prototype.setExtensions=function(e){this.extensions=e},U.prototype.setPlugins=function(e){this.plugins=e},U.prototype.parse=function(e,t){var n=this,r=this.json,i=this.extensions;this.cache.removeAll(),this._invokeAll((function(e){return e._markDefs&&e._markDefs()})),Promise.all([this.getDependencies("scene"),this.getDependencies("animation"),this.getDependencies("camera")]).then((function(t){var o={scene:t[0][r.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:r.asset,parser:n,userData:{}};O(i,o,r),I(o,r),e(o)})).catch(t)},U.prototype._markDefs=function(){for(var e=this.json.nodes||[],t=this.json.skins||[],n=this.json.meshes||[],r=0,i=t.length;r<i;r++)for(var o=t[r].joints,a=0,s=o.length;a<s;a++)e[o[a]].isBone=!0;for(var l=0,c=e.length;l<c;l++){var u=e[l];void 0!==u.mesh&&(this._addNodeRef(this.meshCache,u.mesh),void 0!==u.skin&&(n[u.mesh].isSkinnedMesh=!0)),void 0!==u.camera&&this._addNodeRef(this.cameraCache,u.camera)}},U.prototype._addNodeRef=function(e,t){void 0!==t&&(void 0===e.refs[t]&&(e.refs[t]=e.uses[t]=0),e.refs[t]++)},U.prototype._getNodeRef=function(e,t,n){if(e.refs[t]<=1)return n;var r=n.clone();return r.name+="_instance_"+e.uses[t]++,r},U.prototype._invokeOne=function(e){var t=Object.values(this.plugins);t.push(this);for(var n=0;n<t.length;n++){var r=e(t[n]);if(r)return r}},U.prototype._invokeAll=function(e){var t=Object.values(this.plugins);t.unshift(this);for(var n=[],r=0;r<t.length;r++){var i=e(t[r]);i&&n.push(i)}return n},U.prototype.getDependency=function(e,t){var n=e+":"+t,r=this.cache.get(n);if(!r){switch(e){case"scene":r=this.loadScene(t);break;case"node":r=this.loadNode(t);break;case"mesh":r=this._invokeOne((function(e){return e.loadMesh&&e.loadMesh(t)}));break;case"accessor":r=this.loadAccessor(t);break;case"bufferView":r=this._invokeOne((function(e){return e.loadBufferView&&e.loadBufferView(t)}));break;case"buffer":r=this.loadBuffer(t);break;case"material":r=this._invokeOne((function(e){return e.loadMaterial&&e.loadMaterial(t)}));break;case"texture":r=this._invokeOne((function(e){return e.loadTexture&&e.loadTexture(t)}));break;case"skin":r=this.loadSkin(t);break;case"animation":r=this.loadAnimation(t);break;case"camera":r=this.loadCamera(t);break;default:throw new Error("Unknown type: "+e)}this.cache.add(n,r)}return r},U.prototype.getDependencies=function(e){var t=this.cache.get(e);if(!t){var n=this,r=this.json[e+("mesh"===e?"es":"s")]||[];t=Promise.all(r.map((function(t,r){return n.getDependency(e,r)}))),this.cache.add(e,t)}return t},U.prototype.loadBuffer=function(e){var t=this.json.buffers[e],n=this.fileLoader;if(t.type&&"arraybuffer"!==t.type)throw new Error("THREE.GLTFLoader: "+t.type+" buffer type is not supported.");if(void 0===t.uri&&0===e)return Promise.resolve(this.extensions[r.KHR_BINARY_GLTF].body);var i=this.options;return new Promise((function(e,r){n.load(P(t.uri,i.path),e,void 0,(function(){r(new Error('THREE.GLTFLoader: Failed to load buffer "'+t.uri+'".'))}))}))},U.prototype.loadBufferView=function(e){var t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then((function(e){var n=t.byteLength||0,r=t.byteOffset||0;return e.slice(r,r+n)}))},U.prototype.loadAccessor=function(e){var t=this,n=this.json,r=this.json.accessors[e];if(void 0===r.bufferView&&void 0===r.sparse)return Promise.resolve(null);var i=[];return void 0!==r.bufferView?i.push(this.getDependency("bufferView",r.bufferView)):i.push(null),void 0!==r.sparse&&(i.push(this.getDependency("bufferView",r.sparse.indices.bufferView)),i.push(this.getDependency("bufferView",r.sparse.values.bufferView))),Promise.all(i).then((function(e){var i,o,a=e[0],s=T[r.type],l=E[r.componentType],c=l.BYTES_PER_ELEMENT,u=c*s,h=r.byteOffset||0,d=void 0!==r.bufferView?n.bufferViews[r.bufferView].byteStride:void 0,p=!0===r.normalized;if(d&&d!==u){var f=Math.floor(h/d),m="InterleavedBuffer:"+r.bufferView+":"+r.componentType+":"+f+":"+r.count,v=t.cache.get(m);v||(i=new l(a,f*d,r.count*d/c),v=new THREE.InterleavedBuffer(i,d/c),t.cache.add(m,v)),o=new THREE.InterleavedBufferAttribute(v,s,h%d/c,p)}else i=null===a?new l(r.count*s):new l(a,h,r.count*s),o=new THREE.BufferAttribute(i,s,p);if(void 0!==r.sparse){var g=T.SCALAR,y=E[r.sparse.indices.componentType],b=r.sparse.indices.byteOffset||0,A=r.sparse.values.byteOffset||0,w=new y(e[1],b,r.sparse.count*g),x=new l(e[2],A,r.sparse.count*s);null!==a&&(o=new THREE.BufferAttribute(o.array.slice(),o.itemSize,o.normalized));for(var M=0,_=w.length;M<_;M++){var S=w[M];if(o.setX(S,x[M*s]),s>=2&&o.setY(S,x[M*s+1]),s>=3&&o.setZ(S,x[M*s+2]),s>=4&&o.setW(S,x[M*s+3]),s>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return o}))},U.prototype.loadTexture=function(e){var t,n,i=this,o=this.json,a=this.options,s=o.textures[e],l=s.extensions||{};return(t=l[r.MSFT_TEXTURE_DDS]?o.images[l[r.MSFT_TEXTURE_DDS].source]:o.images[s.source]).uri&&(n=a.manager.getHandler(t.uri)),n||(n=l[r.MSFT_TEXTURE_DDS]?i.extensions[r.MSFT_TEXTURE_DDS].ddsLoader:this.textureLoader),this.loadTextureImage(e,t,n)},U.prototype.loadTextureImage=function(e,t,n){var r=this,i=this.json,o=this.options,a=i.textures[e],s=self.URL||self.webkitURL,l=t.uri,c=!1,u=!0;return"image/jpeg"===t.mimeType&&(u=!1),void 0!==t.bufferView&&(l=r.getDependency("bufferView",t.bufferView).then((function(e){if("image/png"===t.mimeType){var n=new DataView(e,25,1).getUint8(0,!1);u=6===n||4===n||3===n}c=!0;var r=new Blob([e],{type:t.mimeType});return l=s.createObjectURL(r)}))),Promise.resolve(l).then((function(e){return new Promise((function(t,r){var i=t;!0===n.isImageBitmapLoader&&(i=function(e){t(new THREE.CanvasTexture(e))}),n.load(P(e,o.path),i,void 0,r)}))})).then((function(t){!0===c&&s.revokeObjectURL(l),t.flipY=!1,a.name&&(t.name=a.name),u||(t.format=THREE.RGBFormat);var n=(i.samplers||{})[a.sampler]||{};return t.magFilter=M[n.magFilter]||THREE.LinearFilter,t.minFilter=M[n.minFilter]||THREE.LinearMipmapLinearFilter,t.wrapS=_[n.wrapS]||THREE.RepeatWrapping,t.wrapT=_[n.wrapT]||THREE.RepeatWrapping,r.associations.set(t,{type:"textures",index:e}),t}))},U.prototype.assignTexture=function(e,t,n){var i=this;return this.getDependency("texture",n.index).then((function(o){if(void 0===n.texCoord||0==n.texCoord||"aoMap"===t&&1==n.texCoord||console.warn("THREE.GLTFLoader: Custom UV set "+n.texCoord+" for texture "+t+" not yet supported."),i.extensions[r.KHR_TEXTURE_TRANSFORM]){var a=void 0!==n.extensions?n.extensions[r.KHR_TEXTURE_TRANSFORM]:void 0;if(a){var s=i.associations.get(o);o=i.extensions[r.KHR_TEXTURE_TRANSFORM].extendTexture(o,a),i.associations.set(o,s)}}e[t]=o}))},U.prototype.assignFinalMaterial=function(e){var t=e.geometry,n=e.material,r=void 0!==t.attributes.tangent,i=void 0!==t.attributes.color,o=void 0===t.attributes.normal,a=!0===e.isSkinnedMesh,s=Object.keys(t.morphAttributes).length>0,l=s&&void 0!==t.morphAttributes.normal;if(e.isPoints){var c="PointsMaterial:"+n.uuid,u=this.cache.get(c);u||(u=new THREE.PointsMaterial,THREE.Material.prototype.copy.call(u,n),u.color.copy(n.color),u.map=n.map,u.sizeAttenuation=!1,this.cache.add(c,u)),n=u}else if(e.isLine){c="LineBasicMaterial:"+n.uuid;var h=this.cache.get(c);h||(h=new THREE.LineBasicMaterial,THREE.Material.prototype.copy.call(h,n),h.color.copy(n.color),this.cache.add(c,h)),n=h}if(r||i||o||a||s){c="ClonedMaterial:"+n.uuid+":",n.isGLTFSpecularGlossinessMaterial&&(c+="specular-glossiness:"),a&&(c+="skinning:"),r&&(c+="vertex-tangents:"),i&&(c+="vertex-colors:"),o&&(c+="flat-shading:"),s&&(c+="morph-targets:"),l&&(c+="morph-normals:");var d=this.cache.get(c);d||(d=n.clone(),a&&(d.skinning=!0),i&&(d.vertexColors=!0),o&&(d.flatShading=!0),s&&(d.morphTargets=!0),l&&(d.morphNormals=!0),r&&(d.vertexTangents=!0,n.normalScale&&(n.normalScale.y*=-1),n.clearcoatNormalScale&&(n.clearcoatNormalScale.y*=-1)),this.cache.add(c,d),this.associations.set(d,this.associations.get(n))),n=d}n.aoMap&&void 0===t.attributes.uv2&&void 0!==t.attributes.uv&&t.setAttribute("uv2",t.attributes.uv),e.material=n},U.prototype.getMaterialType=function(){return THREE.MeshStandardMaterial},U.prototype.loadMaterial=function(e){var t,n=this,i=this.json,o=this.extensions,a=i.materials[e],s={},l=a.extensions||{},c=[];if(l[r.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]){var u=o[r.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];t=u.getMaterialType(),c.push(u.extendParams(s,a,n))}else if(l[r.KHR_MATERIALS_UNLIT]){var h=o[r.KHR_MATERIALS_UNLIT];t=h.getMaterialType(),c.push(h.extendParams(s,a,n))}else{var d=a.pbrMetallicRoughness||{};if(s.color=new THREE.Color(1,1,1),s.opacity=1,Array.isArray(d.baseColorFactor)){var p=d.baseColorFactor;s.color.fromArray(p),s.opacity=p[3]}void 0!==d.baseColorTexture&&c.push(n.assignTexture(s,"map",d.baseColorTexture)),s.metalness=void 0!==d.metallicFactor?d.metallicFactor:1,s.roughness=void 0!==d.roughnessFactor?d.roughnessFactor:1,void 0!==d.metallicRoughnessTexture&&(c.push(n.assignTexture(s,"metalnessMap",d.metallicRoughnessTexture)),c.push(n.assignTexture(s,"roughnessMap",d.metallicRoughnessTexture))),t=this._invokeOne((function(t){return t.getMaterialType&&t.getMaterialType(e)})),c.push(Promise.all(this._invokeAll((function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,s)}))))}!0===a.doubleSided&&(s.side=THREE.DoubleSide);var f=a.alphaMode||R.OPAQUE;return f===R.BLEND?(s.transparent=!0,s.depthWrite=!1):(s.transparent=!1,f===R.MASK&&(s.alphaTest=void 0!==a.alphaCutoff?a.alphaCutoff:.5)),void 0!==a.normalTexture&&t!==THREE.MeshBasicMaterial&&(c.push(n.assignTexture(s,"normalMap",a.normalTexture)),s.normalScale=new THREE.Vector2(1,-1),void 0!==a.normalTexture.scale&&s.normalScale.set(a.normalTexture.scale,-a.normalTexture.scale)),void 0!==a.occlusionTexture&&t!==THREE.MeshBasicMaterial&&(c.push(n.assignTexture(s,"aoMap",a.occlusionTexture)),void 0!==a.occlusionTexture.strength&&(s.aoMapIntensity=a.occlusionTexture.strength)),void 0!==a.emissiveFactor&&t!==THREE.MeshBasicMaterial&&(s.emissive=(new THREE.Color).fromArray(a.emissiveFactor)),void 0!==a.emissiveTexture&&t!==THREE.MeshBasicMaterial&&c.push(n.assignTexture(s,"emissiveMap",a.emissiveTexture)),Promise.all(c).then((function(){var i;return i=t===y?o[r.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(s):new t(s),a.name&&(i.name=a.name),i.map&&(i.map.encoding=THREE.sRGBEncoding),i.emissiveMap&&(i.emissiveMap.encoding=THREE.sRGBEncoding),I(i,a),n.associations.set(i,{type:"materials",index:e}),a.extensions&&O(o,i,a),i}))},U.prototype.createUniqueName=function(e){for(var t=THREE.PropertyBinding.sanitizeNodeName(e||""),n=t,r=1;this.nodeNamesUsed[n];++r)n=t+"_"+r;return this.nodeNamesUsed[n]=!0,n},U.prototype.loadGeometries=function(e){var t=this,n=this.extensions,i=this.primitiveCache;function o(e){return n[r.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then((function(n){return G(n,e,t)}))}for(var a=[],s=0,l=e.length;s<l;s++){var c,u=e[s],h=k(u),d=i[h];d?a.push(d.promise):(c=u.extensions&&u.extensions[r.KHR_DRACO_MESH_COMPRESSION]?o(u):G(new THREE.BufferGeometry,u,t),i[h]={primitive:u,promise:c},a.push(c))}return Promise.all(a)},U.prototype.loadMesh=function(e){for(var t=this,n=this.json,r=this.extensions,i=n.meshes[e],o=i.primitives,a=[],s=0,l=o.length;s<l;s++){var c=void 0===o[s].material?D(this.cache):this.getDependency("material",o[s].material);a.push(c)}return a.push(t.loadGeometries(o)),Promise.all(a).then((function(n){for(var a=n.slice(0,n.length-1),s=n[n.length-1],l=[],c=0,u=s.length;c<u;c++){var h,d=s[c],p=o[c],f=a[c];if(p.mode===x.TRIANGLES||p.mode===x.TRIANGLE_STRIP||p.mode===x.TRIANGLE_FAN||void 0===p.mode)h=!0===i.isSkinnedMesh?new THREE.SkinnedMesh(d,f):new THREE.Mesh(d,f),!0===f.isMeshStandardMaterial&&f.side===THREE.DoubleSide&&null!==d.getIndex()&&!0===d.hasAttribute("position")&&!0===d.hasAttribute("normal")&&!0===d.hasAttribute("uv")&&!1===d.hasAttribute("tangent")&&(d.computeTangents(),f.vertexTangents=!0),!0!==h.isSkinnedMesh||h.geometry.attributes.skinWeight.normalized||h.normalizeSkinWeights(),p.mode===x.TRIANGLE_STRIP?h.geometry=z(h.geometry,THREE.TriangleStripDrawMode):p.mode===x.TRIANGLE_FAN&&(h.geometry=z(h.geometry,THREE.TriangleFanDrawMode));else if(p.mode===x.LINES)h=new THREE.LineSegments(d,f);else if(p.mode===x.LINE_STRIP)h=new THREE.Line(d,f);else if(p.mode===x.LINE_LOOP)h=new THREE.LineLoop(d,f);else{if(p.mode!==x.POINTS)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+p.mode);h=new THREE.Points(d,f)}Object.keys(h.geometry.morphAttributes).length>0&&F(h,i),h.name=t.createUniqueName(i.name||"mesh_"+e),I(h,i),p.extensions&&O(r,h,p),t.assignFinalMaterial(h),l.push(h)}if(1===l.length)return l[0];var m=new THREE.Group;for(c=0,u=l.length;c<u;c++)m.add(l[c]);return m}))},U.prototype.loadCamera=function(e){var t,n=this.json.cameras[e],r=n[n.type];if(r)return"perspective"===n.type?t=new THREE.PerspectiveCamera(THREE.MathUtils.radToDeg(r.yfov),r.aspectRatio||1,r.znear||1,r.zfar||2e6):"orthographic"===n.type&&(t=new THREE.OrthographicCamera(-r.xmag,r.xmag,r.ymag,-r.ymag,r.znear,r.zfar)),n.name&&(t.name=this.createUniqueName(n.name)),I(t,n),Promise.resolve(t);console.warn("THREE.GLTFLoader: Missing camera parameters.")},U.prototype.loadSkin=function(e){var t=this.json.skins[e],n={joints:t.joints};return void 0===t.inverseBindMatrices?Promise.resolve(n):this.getDependency("accessor",t.inverseBindMatrices).then((function(e){return n.inverseBindMatrices=e,n}))},U.prototype.loadAnimation=function(e){for(var t=this.json.animations[e],n=[],r=[],i=[],o=[],a=[],s=0,l=t.channels.length;s<l;s++){var c=t.channels[s],u=t.samplers[c.sampler],h=c.target,d=void 0!==h.node?h.node:h.id,p=void 0!==t.parameters?t.parameters[u.input]:u.input,f=void 0!==t.parameters?t.parameters[u.output]:u.output;n.push(this.getDependency("node",d)),r.push(this.getDependency("accessor",p)),i.push(this.getDependency("accessor",f)),o.push(u),a.push(h)}return Promise.all([Promise.all(n),Promise.all(r),Promise.all(i),Promise.all(o),Promise.all(a)]).then((function(n){for(var r=n[0],i=n[1],o=n[2],a=n[3],s=n[4],l=[],c=0,u=r.length;c<u;c++){var h=r[c],d=i[c],p=o[c],f=a[c],m=s[c];if(void 0!==h){var v;switch(h.updateMatrix(),h.matrixAutoUpdate=!0,C[m.path]){case C.weights:v=THREE.NumberKeyframeTrack;break;case C.rotation:v=THREE.QuaternionKeyframeTrack;break;case C.position:case C.scale:default:v=THREE.VectorKeyframeTrack}var g=h.name?h.name:h.uuid,y=void 0!==f.interpolation?L[f.interpolation]:THREE.InterpolateLinear,b=[];C[m.path]===C.weights?h.traverse((function(e){!0===e.isMesh&&e.morphTargetInfluences&&b.push(e.name?e.name:e.uuid)})):b.push(g);var A=p.array;if(p.normalized){var x;if(A.constructor===Int8Array)x=1/127;else if(A.constructor===Uint8Array)x=1/255;else if(A.constructor==Int16Array)x=1/32767;else{if(A.constructor!==Uint16Array)throw new Error("THREE.GLTFLoader: Unsupported output accessor component type.");x=1/65535}for(var E=new Float32Array(A.length),M=0,_=A.length;M<_;M++)E[M]=A[M]*x;A=E}for(M=0,_=b.length;M<_;M++){var T=new v(b[M]+"."+C[m.path],d.array,A,y);"CUBICSPLINE"===f.interpolation&&(T.createInterpolant=function(e){return new w(this.times,this.values,this.getValueSize()/3,e)},T.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0),l.push(T)}}}var S=t.name?t.name:"animation_"+e;return new THREE.AnimationClip(S,void 0,l)}))},U.prototype.loadNode=function(e){var t=this.json,n=this.extensions,r=this,i=t.nodes[e],o=i.name?r.createUniqueName(i.name):"";return function(){var t=[];return void 0!==i.mesh&&t.push(r.getDependency("mesh",i.mesh).then((function(e){var t=r._getNodeRef(r.meshCache,i.mesh,e);return void 0!==i.weights&&t.traverse((function(e){if(e.isMesh)for(var t=0,n=i.weights.length;t<n;t++)e.morphTargetInfluences[t]=i.weights[t]})),t}))),void 0!==i.camera&&t.push(r.getDependency("camera",i.camera).then((function(e){return r._getNodeRef(r.cameraCache,i.camera,e)}))),r._invokeAll((function(t){return t.createNodeAttachment&&t.createNodeAttachment(e)})).forEach((function(e){t.push(e)})),Promise.all(t)}().then((function(t){var a;if((a=!0===i.isBone?new THREE.Bone:t.length>1?new THREE.Group:1===t.length?t[0]:new THREE.Object3D)!==t[0])for(var s=0,l=t.length;s<l;s++)a.add(t[s]);if(i.name&&(a.userData.name=i.name,a.name=o),I(a,i),i.extensions&&O(n,a,i),void 0!==i.matrix){var c=new THREE.Matrix4;c.fromArray(i.matrix),a.applyMatrix4(c)}else void 0!==i.translation&&a.position.fromArray(i.translation),void 0!==i.rotation&&a.quaternion.fromArray(i.rotation),void 0!==i.scale&&a.scale.fromArray(i.scale);return r.associations.set(a,{type:"nodes",index:e}),a}))},U.prototype.loadScene=function(){function e(t,n,r,i){var o=r.nodes[t];return i.getDependency("node",t).then((function(e){return void 0===o.skin?e:i.getDependency("skin",o.skin).then((function(e){for(var n=[],r=0,o=(t=e).joints.length;r<o;r++)n.push(i.getDependency("node",t.joints[r]));return Promise.all(n)})).then((function(n){return e.traverse((function(e){if(e.isMesh){for(var r=[],i=[],o=0,a=n.length;o<a;o++){var s=n[o];if(s){r.push(s);var l=new THREE.Matrix4;void 0!==t.inverseBindMatrices&&l.fromArray(t.inverseBindMatrices.array,16*o),i.push(l)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',t.joints[o])}e.bind(new THREE.Skeleton(r,i),e.matrixWorld)}})),e}));var t})).then((function(t){n.add(t);var a=[];if(o.children)for(var s=o.children,l=0,c=s.length;l<c;l++){var u=s[l];a.push(e(u,t,r,i))}return Promise.all(a)}))}return function(t){var n=this.json,r=this.extensions,i=this.json.scenes[t],o=this,a=new THREE.Group;i.name&&(a.name=o.createUniqueName(i.name)),I(a,i),i.extensions&&O(r,a,i);for(var s=i.nodes||[],l=[],c=0,u=s.length;c<u;c++)l.push(e(s[c],a,n,o));return Promise.all(l).then((function(){return a}))}}(),t}()},{}],60:[function(t,n,r){THREE.MTLLoader=function(e){THREE.Loader.call(this,e)},THREE.MTLLoader.prototype=Object.assign(Object.create(THREE.Loader.prototype),{constructor:THREE.MTLLoader,load:function(t,n,r,i){var o=this,a=""===this.path?THREE.LoaderUtils.extractUrlBase(t):this.path,s=new THREE.FileLoader(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(t,(function(r){try{n(o.parse(r,a))}catch(e){i?i(e):console.error(e),o.manager.itemError(t)}}),r,i)},setMaterialOptions:function(e){return this.materialOptions=e,this},parse:function(e,t){for(var n=e.split("\n"),r={},i=/\s+/,o={},a=0;a<n.length;a++){var s=n[a];if(0!==(s=s.trim()).length&&"#"!==s.charAt(0)){var l=s.indexOf(" "),c=l>=0?s.substring(0,l):s;c=c.toLowerCase();var u=l>=0?s.substring(l+1):"";if(u=u.trim(),"newmtl"===c)r={name:u},o[u]=r;else if("ka"===c||"kd"===c||"ks"===c||"ke"===c){var h=u.split(i,3);r[c]=[parseFloat(h[0]),parseFloat(h[1]),parseFloat(h[2])]}else r[c]=u}}var d=new THREE.MTLLoader.MaterialCreator(this.resourcePath||t,this.materialOptions);return d.setCrossOrigin(this.crossOrigin),d.setManager(this.manager),d.setMaterials(o),d}}),THREE.MTLLoader.MaterialCreator=function(e,t){this.baseUrl=e||"",this.options=t,this.materialsInfo={},this.materials={},this.materialsArray=[],this.nameLookup={},this.side=this.options&&this.options.side?this.options.side:THREE.FrontSide,this.wrap=this.options&&this.options.wrap?this.options.wrap:THREE.RepeatWrapping},THREE.MTLLoader.MaterialCreator.prototype={constructor:THREE.MTLLoader.MaterialCreator,crossOrigin:"anonymous",setCrossOrigin:function(e){return this.crossOrigin=e,this},setManager:function(e){this.manager=e},setMaterials:function(e){this.materialsInfo=this.convert(e),this.materials={},this.materialsArray=[],this.nameLookup={}},convert:function(e){if(!this.options)return e;var t={};for(var n in e){var r=e[n],i={};for(var o in t[n]=i,r){var a=!0,s=r[o],l=o.toLowerCase();switch(l){case"kd":case"ka":case"ks":this.options&&this.options.normalizeRGB&&(s=[s[0]/255,s[1]/255,s[2]/255]),this.options&&this.options.ignoreZeroRGBs&&0===s[0]&&0===s[1]&&0===s[2]&&(a=!1)}a&&(i[l]=s)}}return t},preload:function(){for(var e in this.materialsInfo)this.create(e)},getIndex:function(e){return this.nameLookup[e]},getAsArray:function(){var e=0;for(var t in this.materialsInfo)this.materialsArray[e]=this.create(t),this.nameLookup[t]=e,e++;return this.materialsArray},create:function(e){return void 0===this.materials[e]&&this.createMaterial_(e),this.materials[e]},createMaterial_:function(e){var t=this,n=this.materialsInfo[e],r={name:e,side:this.side};function i(e,t){return"string"!==typeof t||""===t?"":/^https?:\/\//i.test(t)?t:e+t}function o(e,n){if(!r[e]){var o=t.getTextureParams(n,r),a=t.loadTexture(i(t.baseUrl,o.url));a.repeat.copy(o.scale),a.offset.copy(o.offset),a.wrapS=t.wrap,a.wrapT=t.wrap,r[e]=a}}for(var a in n){var s,l=n[a];if(""!==l)switch(a.toLowerCase()){case"kd":r.color=(new THREE.Color).fromArray(l);break;case"ks":r.specular=(new THREE.Color).fromArray(l);break;case"ke":r.emissive=(new THREE.Color).fromArray(l);break;case"map_kd":o("map",l);break;case"map_ks":o("specularMap",l);break;case"map_ke":o("emissiveMap",l);break;case"norm":o("normalMap",l);break;case"map_bump":case"bump":o("bumpMap",l);break;case"map_d":o("alphaMap",l),r.transparent=!0;break;case"ns":r.shininess=parseFloat(l);break;case"d":(s=parseFloat(l))<1&&(r.opacity=s,r.transparent=!0);break;case"tr":s=parseFloat(l),this.options&&this.options.invertTrProperty&&(s=1-s),s>0&&(r.opacity=1-s,r.transparent=!0)}}return this.materials[e]=new THREE.MeshPhongMaterial(r),this.materials[e]},getTextureParams:function(e,t){var n,r={scale:new THREE.Vector2(1,1),offset:new THREE.Vector2(0,0)},i=e.split(/\s+/);return(n=i.indexOf("-bm"))>=0&&(t.bumpScale=parseFloat(i[n+1]),i.splice(n,2)),(n=i.indexOf("-s"))>=0&&(r.scale.set(parseFloat(i[n+1]),parseFloat(i[n+2])),i.splice(n,4)),(n=i.indexOf("-o"))>=0&&(r.offset.set(parseFloat(i[n+1]),parseFloat(i[n+2])),i.splice(n,4)),r.url=i.join(" ").trim(),r},loadTexture:function(e,t,n,r,i){var o,a=void 0!==this.manager?this.manager:THREE.DefaultLoadingManager,s=a.getHandler(e);return null===s&&(s=new THREE.TextureLoader(a)),s.setCrossOrigin&&s.setCrossOrigin(this.crossOrigin),o=s.load(e,n,r,i),void 0!==t&&(o.mapping=t),o}}},{}],61:[function(t,n,r){THREE.OBJLoader=function(){var t=/^[og]\s*(.+)?/,n=/^mtllib /,r=/^usemtl /,i=/^usemap /,o=new THREE.Vector3,a=new THREE.Vector3,s=new THREE.Vector3,l=new THREE.Vector3,c=new THREE.Vector3;function u(){var e={objects:[],object:{},vertices:[],normals:[],colors:[],uvs:[],materials:{},materialLibraries:[],startObject:function(e,t){if(this.object&&!1===this.object.fromDeclaration)return this.object.name=e,void(this.object.fromDeclaration=!1!==t);var n=this.object&&"function"===typeof this.object.currentMaterial?this.object.currentMaterial():void 0;if(this.object&&"function"===typeof this.object._finalize&&this.object._finalize(!0),this.object={name:e||"",fromDeclaration:!1!==t,geometry:{vertices:[],normals:[],colors:[],uvs:[],hasUVIndices:!1},materials:[],smooth:!0,startMaterial:function(e,t){var n=this._finalize(!1);n&&(n.inherited||n.groupCount<=0)&&this.materials.splice(n.index,1);var r={index:this.materials.length,name:e||"",mtllib:Array.isArray(t)&&t.length>0?t[t.length-1]:"",smooth:void 0!==n?n.smooth:this.smooth,groupStart:void 0!==n?n.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(e){var t={index:"number"===typeof e?e:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return t.clone=this.clone.bind(t),t}};return this.materials.push(r),r},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(e){var t=this.currentMaterial();if(t&&-1===t.groupEnd&&(t.groupEnd=this.geometry.vertices.length/3,t.groupCount=t.groupEnd-t.groupStart,t.inherited=!1),e&&this.materials.length>1)for(var n=this.materials.length-1;n>=0;n--)this.materials[n].groupCount<=0&&this.materials.splice(n,1);return e&&0===this.materials.length&&this.materials.push({name:"",smooth:this.smooth}),t}},n&&n.name&&"function"===typeof n.clone){var r=n.clone(0);r.inherited=!0,this.object.materials.push(r)}this.objects.push(this.object)},finalize:function(){this.object&&"function"===typeof this.object._finalize&&this.object._finalize(!0)},parseVertexIndex:function(e,t){var n=parseInt(e,10);return 3*(n>=0?n-1:n+t/3)},parseNormalIndex:function(e,t){var n=parseInt(e,10);return 3*(n>=0?n-1:n+t/3)},parseUVIndex:function(e,t){var n=parseInt(e,10);return 2*(n>=0?n-1:n+t/2)},addVertex:function(e,t,n){var r=this.vertices,i=this.object.geometry.vertices;i.push(r[e+0],r[e+1],r[e+2]),i.push(r[t+0],r[t+1],r[t+2]),i.push(r[n+0],r[n+1],r[n+2])},addVertexPoint:function(e){var t=this.vertices;this.object.geometry.vertices.push(t[e+0],t[e+1],t[e+2])},addVertexLine:function(e){var t=this.vertices;this.object.geometry.vertices.push(t[e+0],t[e+1],t[e+2])},addNormal:function(e,t,n){var r=this.normals,i=this.object.geometry.normals;i.push(r[e+0],r[e+1],r[e+2]),i.push(r[t+0],r[t+1],r[t+2]),i.push(r[n+0],r[n+1],r[n+2])},addFaceNormal:function(e,t,n){var r=this.vertices,i=this.object.geometry.normals;o.fromArray(r,e),a.fromArray(r,t),s.fromArray(r,n),c.subVectors(s,a),l.subVectors(o,a),c.cross(l),c.normalize(),i.push(c.x,c.y,c.z),i.push(c.x,c.y,c.z),i.push(c.x,c.y,c.z)},addColor:function(e,t,n){var r=this.colors,i=this.object.geometry.colors;void 0!==r[e]&&i.push(r[e+0],r[e+1],r[e+2]),void 0!==r[t]&&i.push(r[t+0],r[t+1],r[t+2]),void 0!==r[n]&&i.push(r[n+0],r[n+1],r[n+2])},addUV:function(e,t,n){var r=this.uvs,i=this.object.geometry.uvs;i.push(r[e+0],r[e+1]),i.push(r[t+0],r[t+1]),i.push(r[n+0],r[n+1])},addDefaultUV:function(){var e=this.object.geometry.uvs;e.push(0,0),e.push(0,0),e.push(0,0)},addUVLine:function(e){var t=this.uvs;this.object.geometry.uvs.push(t[e+0],t[e+1])},addFace:function(e,t,n,r,i,o,a,s,l){var c=this.vertices.length,u=this.parseVertexIndex(e,c),h=this.parseVertexIndex(t,c),d=this.parseVertexIndex(n,c);if(this.addVertex(u,h,d),this.addColor(u,h,d),void 0!==a&&""!==a){var p=this.normals.length;u=this.parseNormalIndex(a,p),h=this.parseNormalIndex(s,p),d=this.parseNormalIndex(l,p),this.addNormal(u,h,d)}else this.addFaceNormal(u,h,d);if(void 0!==r&&""!==r){var f=this.uvs.length;u=this.parseUVIndex(r,f),h=this.parseUVIndex(i,f),d=this.parseUVIndex(o,f),this.addUV(u,h,d),this.object.geometry.hasUVIndices=!0}else this.addDefaultUV()},addPointGeometry:function(e){this.object.geometry.type="Points";for(var t=this.vertices.length,n=0,r=e.length;n<r;n++){var i=this.parseVertexIndex(e[n],t);this.addVertexPoint(i),this.addColor(i)}},addLineGeometry:function(e,t){this.object.geometry.type="Line";for(var n=this.vertices.length,r=this.uvs.length,i=0,o=e.length;i<o;i++)this.addVertexLine(this.parseVertexIndex(e[i],n));var a=0;for(o=t.length;a<o;a++)this.addUVLine(this.parseUVIndex(t[a],r))}};return e.startObject("",!1),e}function h(e){THREE.Loader.call(this,e),this.materials=null}return h.prototype=Object.assign(Object.create(THREE.Loader.prototype),{constructor:h,load:function(t,n,r,i){var o=this,a=new THREE.FileLoader(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(t,(function(r){try{n(o.parse(r))}catch(e){i?i(e):console.error(e),o.manager.itemError(t)}}),r,i)},setMaterials:function(e){return this.materials=e,this},parse:function(e){var o=new u;-1!==e.indexOf("\r\n")&&(e=e.replace(/\r\n/g,"\n")),-1!==e.indexOf("\\\n")&&(e=e.replace(/\\\n/g,""));for(var a=e.split("\n"),s="",l="",c=[],h="function"===typeof"".trimLeft,d=0,p=a.length;d<p;d++)if(s=a[d],0!==(s=h?s.trimLeft():s.trim()).length&&"#"!==(l=s.charAt(0)))if("v"===l){var f=s.split(/\s+/);switch(f[0]){case"v":o.vertices.push(parseFloat(f[1]),parseFloat(f[2]),parseFloat(f[3])),f.length>=7?o.colors.push(parseFloat(f[4]),parseFloat(f[5]),parseFloat(f[6])):o.colors.push(void 0,void 0,void 0);break;case"vn":o.normals.push(parseFloat(f[1]),parseFloat(f[2]),parseFloat(f[3]));break;case"vt":o.uvs.push(parseFloat(f[1]),parseFloat(f[2]))}}else if("f"===l){for(var m=s.substr(1).trim().split(/\s+/),v=[],g=0,y=m.length;g<y;g++){var b=m[g];if(b.length>0){var A=b.split("/");v.push(A)}}var w=v[0];for(g=1,y=v.length-1;g<y;g++){var x=v[g],E=v[g+1];o.addFace(w[0],x[0],E[0],w[1],x[1],E[1],w[2],x[2],E[2])}}else if("l"===l){var M=s.substring(1).trim().split(" "),_=[],T=[];if(-1===s.indexOf("/"))_=M;else for(var S=0,C=M.length;S<C;S++){var L=M[S].split("/");""!==L[0]&&_.push(L[0]),""!==L[1]&&T.push(L[1])}o.addLineGeometry(_,T)}else if("p"===l){var R=s.substr(1).trim().split(" ");o.addPointGeometry(R)}else if(null!==(c=t.exec(s))){var P=(" "+c[0].substr(1).trim()).substr(1);o.startObject(P)}else if(r.test(s))o.object.startMaterial(s.substring(7).trim(),o.materialLibraries);else if(n.test(s))o.materialLibraries.push(s.substring(7).trim());else if(i.test(s))console.warn('THREE.OBJLoader: Rendering identifier "usemap" not supported. Textures must be defined in MTL files.');else if("s"===l){if((c=s.split(" ")).length>1){var D=c[1].trim().toLowerCase();o.object.smooth="0"!==D&&"off"!==D}else o.object.smooth=!0;(W=o.object.currentMaterial())&&(W.smooth=o.object.smooth)}else{if("\0"===s)continue;console.warn('THREE.OBJLoader: Unexpected line: "'+s+'"')}o.finalize();var O=new THREE.Group;if(O.materialLibraries=[].concat(o.materialLibraries),!0===!(1===o.objects.length&&0===o.objects[0].geometry.vertices.length))for(d=0,p=o.objects.length;d<p;d++){var I=o.objects[d],B=I.geometry,F=I.materials,k="Line"===B.type,N="Points"===B.type,U=!1;if(0!==B.vertices.length){(Q=new THREE.BufferGeometry).setAttribute("position",new THREE.Float32BufferAttribute(B.vertices,3)),B.normals.length>0&&Q.setAttribute("normal",new THREE.Float32BufferAttribute(B.normals,3)),B.colors.length>0&&(U=!0,Q.setAttribute("color",new THREE.Float32BufferAttribute(B.colors,3))),!0===B.hasUVIndices&&Q.setAttribute("uv",new THREE.Float32BufferAttribute(B.uvs,2));for(var H,G=[],z=0,j=F.length;z<j;z++){var V=(Y=F[z]).name+"_"+Y.smooth+"_"+U,W=o.materials[V];if(null!==this.materials)if(W=this.materials.create(Y.name),!k||!W||W instanceof THREE.LineBasicMaterial){if(N&&W&&!(W instanceof THREE.PointsMaterial)){var q=new THREE.PointsMaterial({size:10,sizeAttenuation:!1});THREE.Material.prototype.copy.call(q,W),q.color.copy(W.color),q.map=W.map,W=q}}else{var X=new THREE.LineBasicMaterial;THREE.Material.prototype.copy.call(X,W),X.color.copy(W.color),W=X}void 0===W&&((W=k?new THREE.LineBasicMaterial:N?new THREE.PointsMaterial({size:1,sizeAttenuation:!1}):new THREE.MeshPhongMaterial).name=Y.name,W.flatShading=!Y.smooth,W.vertexColors=U,o.materials[V]=W),G.push(W)}if(G.length>1){for(z=0,j=F.length;z<j;z++){var Y=F[z];Q.addGroup(Y.groupStart,Y.groupCount,z)}H=k?new THREE.LineSegments(Q,G):N?new THREE.Points(Q,G):new THREE.Mesh(Q,G)}else H=k?new THREE.LineSegments(Q,G[0]):N?new THREE.Points(Q,G[0]):new THREE.Mesh(Q,G[0]);H.name=I.name,O.add(H)}}else if(o.vertices.length>0){var Q;W=new THREE.PointsMaterial({size:1,sizeAttenuation:!1}),(Q=new THREE.BufferGeometry).setAttribute("position",new THREE.Float32BufferAttribute(o.vertices,3)),o.colors.length>0&&void 0!==o.colors[0]&&(Q.setAttribute("color",new THREE.Float32BufferAttribute(o.colors,3)),W.vertexColors=!0);var Z=new THREE.Points(Q,W);O.add(Z)}return O}}),h}()},{}],62:[function(e,t,n){THREE.BufferGeometryUtils={computeTangents:function(e){e.computeTangents(),console.warn("THREE.BufferGeometryUtils: .computeTangents() has been removed. Use BufferGeometry.computeTangents() instead.")},mergeBufferGeometries:function(e,t){for(var n=null!==e[0].index,r=new Set(Object.keys(e[0].attributes)),i=new Set(Object.keys(e[0].morphAttributes)),o={},a={},s=e[0].morphTargetsRelative,l=new THREE.BufferGeometry,c=0,u=0;u<e.length;++u){var h=e[u],d=0;if(n!==(null!==h.index))return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+u+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(var p in h.attributes){if(!r.has(p))return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+u+'. All geometries must have compatible attributes; make sure "'+p+'" attribute exists among all geometries, or in none of them.'),null;void 0===o[p]&&(o[p]=[]),o[p].push(h.attributes[p]),d++}if(d!==r.size)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+u+". Make sure all geometries have the same number of attributes."),null;if(s!==h.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+u+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(var p in h.morphAttributes){if(!i.has(p))return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+u+". .morphAttributes must be consistent throughout all geometries."),null;void 0===a[p]&&(a[p]=[]),a[p].push(h.morphAttributes[p])}if(l.userData.mergedUserData=l.userData.mergedUserData||[],l.userData.mergedUserData.push(h.userData),t){var f;if(n)f=h.index.count;else{if(void 0===h.attributes.position)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+u+". The geometry must have either an index or a position attribute"),null;f=h.attributes.position.count}l.addGroup(c,f,u),c+=f}}if(n){var m=0,v=[];for(u=0;u<e.length;++u){for(var g=e[u].index,y=0;y<g.count;++y)v.push(g.getX(y)+m);m+=e[u].attributes.position.count}l.setIndex(v)}for(var p in o){var b=this.mergeBufferAttributes(o[p]);if(!b)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the "+p+" attribute."),null;l.setAttribute(p,b)}for(var p in a){var A=a[p][0].length;if(0===A)break;for(l.morphAttributes=l.morphAttributes||{},l.morphAttributes[p]=[],u=0;u<A;++u){var w=[];for(y=0;y<a[p].length;++y)w.push(a[p][y][u]);var x=this.mergeBufferAttributes(w);if(!x)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the "+p+" morphAttribute."),null;l.morphAttributes[p].push(x)}}return l},mergeBufferAttributes:function(e){for(var t,n,r,i=0,o=0;o<e.length;++o){var a=e[o];if(a.isInterleavedBufferAttribute)return console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. InterleavedBufferAttributes are not supported."),null;if(void 0===t&&(t=a.array.constructor),t!==a.array.constructor)return console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."),null;if(void 0===n&&(n=a.itemSize),n!==a.itemSize)return console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null;if(void 0===r&&(r=a.normalized),r!==a.normalized)return console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null;i+=a.array.length}var s=new t(i),l=0;for(o=0;o<e.length;++o)s.set(e[o].array,l),l+=e[o].array.length;return new THREE.BufferAttribute(s,n,r)},interleaveAttributes:function(e){for(var t,n=0,r=0,i=0,o=e.length;i<o;++i){var a=e[i];if(void 0===t&&(t=a.array.constructor),t!==a.array.constructor)return console.error("AttributeBuffers of different types cannot be interleaved"),null;n+=a.array.length,r+=a.itemSize}var s=new THREE.InterleavedBuffer(new t(n),r),l=0,c=[],u=["getX","getY","getZ","getW"],h=["setX","setY","setZ","setW"],d=0;for(o=e.length;d<o;d++){var p=(a=e[d]).itemSize,f=a.count,m=new THREE.InterleavedBufferAttribute(s,p,l,a.normalized);c.push(m),l+=p;for(var v=0;v<f;v++)for(var g=0;g<p;g++)m[h[g]](v,a[u[g]](v))}return c},estimateBytesUsed:function(e){var t=0;for(var n in e.attributes){var r=e.getAttribute(n);t+=r.count*r.itemSize*r.array.BYTES_PER_ELEMENT}var i=e.getIndex();return t+=i?i.count*i.itemSize*i.array.BYTES_PER_ELEMENT:0},mergeVertices:function(e,t=1e-4){t=Math.max(t,Number.EPSILON);for(var n={},r=e.getIndex(),i=e.getAttribute("position"),o=r?r.count:i.count,a=0,s=Object.keys(e.attributes),l={},c={},u=[],h=["getX","getY","getZ","getW"],d=0,p=s.length;d<p;d++)l[b=s[d]]=[],(E=e.morphAttributes[b])&&(c[b]=new Array(E.length).fill().map((()=>[])));var f=Math.log10(1/t),m=Math.pow(10,f);for(d=0;d<o;d++){var v=r?r.getX(d):d,g="",y=0;for(p=s.length;y<p;y++)for(var b=s[y],A=(x=e.getAttribute(b)).itemSize,w=0;w<A;w++)g+=~~(x[h[w]](v)*m)+",";if(g in n)u.push(n[g]);else{for(y=0,p=s.length;y<p;y++){b=s[y];var x=e.getAttribute(b),E=e.morphAttributes[b],M=(A=x.itemSize,l[b]),_=c[b];for(w=0;w<A;w++){var T=h[w];if(M.push(x[T](v)),E)for(var S=0,C=E.length;S<C;S++)_[S].push(E[S][T](v))}}n[g]=a,u.push(a),a++}}const L=e.clone();for(d=0,p=s.length;d<p;d++){b=s[d];var R=e.getAttribute(b),P=new R.array.constructor(l[b]);if(x=new THREE.BufferAttribute(P,R.itemSize,R.normalized),L.setAttribute(b,x),b in c)for(y=0;y<c[b].length;y++){var D=e.morphAttributes[b][y],O=(P=new D.array.constructor(c[b][y]),new THREE.BufferAttribute(P,D.itemSize,D.normalized));L.morphAttributes[b][y]=O}}return L.setIndex(u),L},toTrianglesDrawMode:function(e,t){if(t===THREE.TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),e;if(t===THREE.TriangleFanDrawMode||t===THREE.TriangleStripDrawMode){var n=e.getIndex();if(null===n){var r=[],i=e.getAttribute("position");if(void 0===i)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e;for(var o=0;o<i.count;o++)r.push(o);e.setIndex(r),n=e.getIndex()}var a=n.count-2,s=[];if(t===THREE.TriangleFanDrawMode)for(o=1;o<=a;o++)s.push(n.getX(0)),s.push(n.getX(o)),s.push(n.getX(o+1));else for(o=0;o<a;o++)o%2===0?(s.push(n.getX(o)),s.push(n.getX(o+1)),s.push(n.getX(o+2))):(s.push(n.getX(o+2)),s.push(n.getX(o+1)),s.push(n.getX(o)));s.length/3!==a&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");var l=e.clone();return l.setIndex(s),l.clearGroups(),l}return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",t),e},computeMorphedAttributes:function(e){if(!0!==e.geometry.isBufferGeometry)return console.error("THREE.BufferGeometryUtils: Geometry is not of type THREE.BufferGeometry."),null;var t=new THREE.Vector3,n=new THREE.Vector3,r=new THREE.Vector3,i=new THREE.Vector3,o=new THREE.Vector3,a=new THREE.Vector3,s=new THREE.Vector3,l=new THREE.Vector3,c=new THREE.Vector3;function u(e,u,h,d,p,f,m,v,g){t.fromBufferAttribute(h,f),n.fromBufferAttribute(h,m),r.fromBufferAttribute(h,v);var y=e.morphTargetInfluences;if(u.morphTargets&&d&&y){s.set(0,0,0),l.set(0,0,0),c.set(0,0,0);for(var b=0,A=d.length;b<A;b++){var w=y[b];d=d[b],0!==w&&(i.fromBufferAttribute(d,f),o.fromBufferAttribute(d,m),a.fromBufferAttribute(d,v),p?(s.addScaledVector(i,w),l.addScaledVector(o,w),c.addScaledVector(a,w)):(s.addScaledVector(i.sub(t),w),l.addScaledVector(o.sub(n),w),c.addScaledVector(a.sub(r),w)))}t.add(s),n.add(l),r.add(c)}e.isSkinnedMesh&&(e.boneTransform(f,t),e.boneTransform(m,n),e.boneTransform(v,r)),g[3*f+0]=t.x,g[3*f+1]=t.y,g[3*f+2]=t.z,g[3*m+0]=n.x,g[3*m+1]=n.y,g[3*m+2]=n.z,g[3*v+0]=r.x,g[3*v+1]=r.y,g[3*v+2]=r.z}var h,d,p,f,m,v,g,y,b,A=e.geometry,w=e.material,x=A.index,E=A.attributes.position,M=A.morphAttributes.position,_=A.morphTargetsRelative,T=A.attributes.normal,S=A.morphAttributes.position,C=A.groups,L=A.drawRange,R=new Float32Array(E.count*E.itemSize),P=new Float32Array(T.count*T.itemSize);if(null!==x)if(Array.isArray(w))for(f=0,v=C.length;f<v;f++)for(b=w[(y=C[f]).materialIndex],m=Math.max(y.start,L.start),g=Math.min(y.start+y.count,L.start+L.count);m<g;m+=3)u(e,b,E,M,_,h=x.getX(m),d=x.getX(m+1),p=x.getX(m+2),R),u(e,b,T,S,_,h,d,p,P);else for(f=Math.max(0,L.start),v=Math.min(x.count,L.start+L.count);f<v;f+=3)u(e,w,E,M,_,h=x.getX(f),d=x.getX(f+1),p=x.getX(f+2),R),u(e,w,T,S,_,h,d,p,P);else if(void 0!==E)if(Array.isArray(w))for(f=0,v=C.length;f<v;f++)for(b=w[(y=C[f]).materialIndex],m=Math.max(y.start,L.start),g=Math.min(y.start+y.count,L.start+L.count);m<g;m+=3)u(e,b,E,M,_,h=m,d=m+1,p=m+2,R),u(e,b,T,S,_,h,d,p,P);else for(f=Math.max(0,L.start),v=Math.min(E.count,L.start+L.count);f<v;f+=3)u(e,w,E,M,_,h=f,d=f+1,p=f+2,R),u(e,w,T,S,_,h,d,p,P);return{positionAttribute:E,normalAttribute:T,morphedPositionAttribute:new THREE.Float32BufferAttribute(R,3),morphedNormalAttribute:new THREE.Float32BufferAttribute(P,3)}}}},{}],63:[function(e,t,n){var r=e("layout-bmfont-text"),i=e("inherits"),o=e("quad-indices"),a=e("three-buffer-vertex-data"),s=e("object-assign"),l=e("./lib/vertices"),c=e("./lib/utils"),u=THREE.BufferGeometry;function h(e){u.call(this),"string"===typeof e&&(e={text:e}),this._opt=s({},e),e&&this.update(e)}t.exports=function(e){return new h(e)},i(h,u),h.prototype.update=function(e){if("string"===typeof e&&(e={text:e}),!(e=s({},this._opt,e)).font)throw new TypeError("must specify a { font } in options");this.layout=r(e);var t=!1!==e.flipY,n=e.font,i=n.common.scaleW,c=n.common.scaleH,u=this.layout.glyphs.filter((function(e){var t=e.data;return t.width*t.height>0}));this.visibleGlyphs=u;var h=l.positions(u),d=l.uvs(u,i,c,t),p=o({clockwise:!0,type:"uint16",count:u.length});if(a.index(this,p,1,"uint16"),a.attr(this,"position",h,2),a.attr(this,"uv",d,2),!e.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(e.multipage){var f=l.pages(u);a.attr(this,"page",f,1)}},h.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var e=this.attributes.position.array,t=this.attributes.position.itemSize;if(!e||!t||e.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);c.computeSphere(e,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},h.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var e=this.boundingBox,t=this.attributes.position.array,n=this.attributes.position.itemSize;!t||!n||t.length<2?e.makeEmpty():c.computeBox(t,e)}},{"./lib/utils":64,"./lib/vertices":65,inherits:30,"layout-bmfont-text":36,"object-assign":39,"quad-indices":51,"three-buffer-vertex-data":66}],64:[function(e,t,n){var r=2,i={min:[0,0],max:[0,0]};function o(e){var t=e.length/r;i.min[0]=e[0],i.min[1]=e[1],i.max[0]=e[0],i.max[1]=e[1];for(var n=0;n<t;n++){var o=e[n*r+0],a=e[n*r+1];i.min[0]=Math.min(o,i.min[0]),i.min[1]=Math.min(a,i.min[1]),i.max[0]=Math.max(o,i.max[0]),i.max[1]=Math.max(a,i.max[1])}}t.exports.computeBox=function(e,t){o(e),t.min.set(i.min[0],i.min[1],0),t.max.set(i.max[0],i.max[1],0)},t.exports.computeSphere=function(e,t){o(e);var n=i.min[0],r=i.min[1],a=i.max[0]-n,s=i.max[1]-r,l=Math.sqrt(a*a+s*s);t.center.set(n+a/2,r+s/2,0),t.radius=l/2}},{}],65:[function(e,t,n){t.exports.pages=function(e){var t=new Float32Array(4*e.length*1),n=0;return e.forEach((function(e){var r=e.data.page||0;t[n++]=r,t[n++]=r,t[n++]=r,t[n++]=r})),t},t.exports.uvs=function(e,t,n,r){var i=new Float32Array(4*e.length*2),o=0;return e.forEach((function(e){var a=e.data,s=a.x+a.width,l=a.y+a.height,c=a.x/t,u=a.y/n,h=s/t,d=l/n;r&&(u=(n-a.y)/n,d=(n-l)/n),i[o++]=c,i[o++]=u,i[o++]=c,i[o++]=d,i[o++]=h,i[o++]=d,i[o++]=h,i[o++]=u})),i},t.exports.positions=function(e){var t=new Float32Array(4*e.length*2),n=0;return e.forEach((function(e){var r=e.data,i=e.position[0]+r.xoffset,o=e.position[1]+r.yoffset,a=r.width,s=r.height;t[n++]=i,t[n++]=o,t[n++]=i,t[n++]=o+s,t[n++]=i+a,t[n++]=o+s,t[n++]=i+a,t[n++]=o})),t}},{}],66:[function(e,t,n){var r=e("flatten-vertex-data");function i(e,t,n,r){"number"!==typeof n&&(n=1),"string"!==typeof r&&(r="uint16");var i=!e.index&&"function"!==typeof e.setIndex,o=a(i?e.getAttribute("index"):e.index,t,n,r);o&&(i?e.addAttribute("index",o):e.index=o)}function o(e,t,n,r,i){if("number"!==typeof r&&(r=3),"string"!==typeof i&&(i="float32"),Array.isArray(n)&&Array.isArray(n[0])&&n[0].length!==r)throw new Error("Nested vertex array has unexpected size; expected "+r+" but found "+n[0].length);var o=a(e.getAttribute(t),n,r,i);e.setAttribute(t,o)}function a(e,t,n,i){return t=r(t=t||[],i),(e=new THREE.BufferAttribute(t,n)).itemSize=n,e.needsUpdate=!0,e}t.exports.attr=o,t.exports.index=i},{"flatten-vertex-data":23}],67:[function(e,t,n){(function(t,r){var i=e("process/browser.js").nextTick,o=Function.prototype.apply,a=Array.prototype.slice,s={},l=0;function c(e,t){this._id=e,this._clearFn=t}n.setTimeout=function(){return new c(o.call(setTimeout,window,arguments),clearTimeout)},n.setInterval=function(){return new c(o.call(setInterval,window,arguments),clearInterval)},n.clearTimeout=n.clearInterval=function(e){e.close()},c.prototype.unref=c.prototype.ref=function(){},c.prototype.close=function(){this._clearFn.call(window,this._id)},n.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},n.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},n._unrefActive=n.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n.setImmediate="function"===typeof t?t:function(e){var t=l++,r=!(arguments.length<2)&&a.call(arguments,1);return s[t]=!0,i((function(){s[t]&&(r?e.apply(null,r):e.call(null),n.clearImmediate(t))})),t},n.clearImmediate="function"===typeof r?r:function(e){delete s[e]}}).call(this,e("timers").setImmediate,e("timers").clearImmediate)},{"process/browser.js":49,timers:67}],68:[function(e,n,i){(function(e){!function(e,r){"object"===typeof i&&"undefined"!==typeof n?n.exports=r():"function"===typeof t&&t.amd?t(r):e.WebVRPolyfill=r()}(this,(function(){"use strict";var t="undefined"!==typeof window?window:"undefined"!==typeof e?e:"undefined"!==typeof self?self:{};function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function r(e,t){return e(t={exports:{}},t.exports),t.exports}var i=function(){return/Android/i.test(navigator.userAgent)||/iPhone|iPad|iPod/i.test(navigator.userAgent)},o=function(e,t){for(var n=0,r=e.length;n<r;n++)t[n]=e[n]},a=function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},s=n(r((function(e,n){var r;r=function(){var e=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},n=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),r=function(){function e(e,t){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(l){i=!0,o=l}finally{try{!r&&s.return&&s.return()}finally{if(i)throw o}}return n}return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),i=.001,o=1,a=function(e,t){return"data:"+e+","+encodeURIComponent(t)},s=function(e,t,n){return e+(t-e)*n},l=function(){var e=/iPad|iPhone|iPod/.test(navigator.platform);return function(){return e}}(),c=function(){var e=-1!==navigator.userAgent.indexOf("Version")&&-1!==navigator.userAgent.indexOf("Android")&&-1!==navigator.userAgent.indexOf("Chrome");return function(){return e}}(),u=function(){var e=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);return function(){return e}}(),h=function(){var e=-1!==navigator.userAgent.indexOf("Firefox")&&-1!==navigator.userAgent.indexOf("Android");return function(){return e}}(),d=function(){var e=navigator.userAgent.match(/.*Chrome\/([0-9]+)/),t=e?parseInt(e[1],10):null;return function(){return t}}(),p=function(){var e=!1;return e=l()&&u()&&-1!==navigator.userAgent.indexOf("13_4"),function(){return e}}(),f=function(){var e=!1;if(65===d()){var t=navigator.userAgent.match(/.*Chrome\/([0-9\.]*)/);if(t){var n=t[1].split("."),i=r(n,4),o=(i[0],i[1],i[2]),a=i[3];e=3325===parseInt(o,10)&&parseInt(a,10)<148}}return function(){return e}}(),m=function(){var e=-1!==navigator.userAgent.indexOf("R7 Build");return function(){return e}}(),v=function(){var e=90==window.orientation||-90==window.orientation;return m()?!e:e},g=function(e){return!isNaN(e)&&!(e<=i)&&!(e>o)},y=function(){return Math.max(window.screen.width,window.screen.height)*window.devicePixelRatio},b=function(){return Math.min(window.screen.width,window.screen.height)*window.devicePixelRatio},A=function(e){if(c())return!1;if(e.requestFullscreen)e.requestFullscreen();else if(e.webkitRequestFullscreen)e.webkitRequestFullscreen();else if(e.mozRequestFullScreen)e.mozRequestFullScreen();else{if(!e.msRequestFullscreen)return!1;e.msRequestFullscreen()}return!0},w=function(){if(document.exitFullscreen)document.exitFullscreen();else if(document.webkitExitFullscreen)document.webkitExitFullscreen();else if(document.mozCancelFullScreen)document.mozCancelFullScreen();else{if(!document.msExitFullscreen)return!1;document.msExitFullscreen()}return!0},x=function(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement},E=function(e,t,n,r){var i=e.createShader(e.VERTEX_SHADER);e.shaderSource(i,t),e.compileShader(i);var o=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(o,n),e.compileShader(o);var a=e.createProgram();for(var s in e.attachShader(a,i),e.attachShader(a,o),r)e.bindAttribLocation(a,r[s],s);return e.linkProgram(a),e.deleteShader(i),e.deleteShader(o),a},M=function(e,t){for(var n={},r=e.getProgramParameter(t,e.ACTIVE_UNIFORMS),i="",o=0;o<r;o++)n[i=e.getActiveUniform(t,o).name.replace("[0]","")]=e.getUniformLocation(t,i);return n},_=function(e,t,n,r,i,o,a){var s=1/(t-n),l=1/(r-i),c=1/(o-a);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*c,e[11]=0,e[12]=(t+n)*s,e[13]=(i+r)*l,e[14]=(a+o)*c,e[15]=1,e},T=function(){var e,t=!1;return e=navigator.userAgent||navigator.vendor||window.opera,(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4)))&&(t=!0),t},S=function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},C=function(e){if(l()){var t=e.style.width,n=e.style.height;e.style.width=parseInt(t)+1+"px",e.style.height=parseInt(n)+"px",setTimeout((function(){e.style.width=t,e.style.height=n}),100)}window.canvas=e},L=function(){var e=Math.PI/180,t=.25*Math.PI;function n(n,r,i,o){var a=Math.tan(r?r.upDegrees*e:t),s=Math.tan(r?r.downDegrees*e:t),l=Math.tan(r?r.leftDegrees*e:t),c=Math.tan(r?r.rightDegrees*e:t),u=2/(l+c),h=2/(a+s);return n[0]=u,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=h,n[6]=0,n[7]=0,n[8]=-(l-c)*u*.5,n[9]=(a-s)*h*.5,n[10]=o/(i-o),n[11]=-1,n[12]=0,n[13]=0,n[14]=o*i/(i-o),n[15]=0,n}function r(e,t,n){var r=t[0],i=t[1],o=t[2],a=t[3],s=r+r,l=i+i,c=o+o,u=r*s,h=r*l,d=r*c,p=i*l,f=i*c,m=o*c,v=a*s,g=a*l,y=a*c;return e[0]=1-(p+m),e[1]=h+y,e[2]=d-g,e[3]=0,e[4]=h-y,e[5]=1-(u+m),e[6]=f+v,e[7]=0,e[8]=d+g,e[9]=f-v,e[10]=1-(u+p),e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function i(e,t,n){var r,i,o,a,s,l,c,u,h,d,p,f,m=n[0],v=n[1],g=n[2];return t===e?(e[12]=t[0]*m+t[4]*v+t[8]*g+t[12],e[13]=t[1]*m+t[5]*v+t[9]*g+t[13],e[14]=t[2]*m+t[6]*v+t[10]*g+t[14],e[15]=t[3]*m+t[7]*v+t[11]*g+t[15]):(r=t[0],i=t[1],o=t[2],a=t[3],s=t[4],l=t[5],c=t[6],u=t[7],h=t[8],d=t[9],p=t[10],f=t[11],e[0]=r,e[1]=i,e[2]=o,e[3]=a,e[4]=s,e[5]=l,e[6]=c,e[7]=u,e[8]=h,e[9]=d,e[10]=p,e[11]=f,e[12]=r*m+s*v+h*g+t[12],e[13]=i*m+l*v+d*g+t[13],e[14]=o*m+c*v+p*g+t[14],e[15]=a*m+u*v+f*g+t[15]),e}function o(e,t){var n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],s=t[5],l=t[6],c=t[7],u=t[8],h=t[9],d=t[10],p=t[11],f=t[12],m=t[13],v=t[14],g=t[15],y=n*s-r*a,b=n*l-i*a,A=n*c-o*a,w=r*l-i*s,x=r*c-o*s,E=i*c-o*l,M=u*m-h*f,_=u*v-d*f,T=u*g-p*f,S=h*v-d*m,C=h*g-p*m,L=d*g-p*v,R=y*L-b*C+A*S+w*T-x*_+E*M;return R?(R=1/R,e[0]=(s*L-l*C+c*S)*R,e[1]=(i*C-r*L-o*S)*R,e[2]=(m*E-v*x+g*w)*R,e[3]=(d*x-h*E-p*w)*R,e[4]=(l*T-a*L-c*_)*R,e[5]=(n*L-i*T+o*_)*R,e[6]=(v*A-f*E-g*b)*R,e[7]=(u*E-d*A+p*b)*R,e[8]=(a*C-s*T+c*M)*R,e[9]=(r*T-n*C-o*M)*R,e[10]=(f*x-m*A+g*y)*R,e[11]=(h*A-u*x-p*y)*R,e[12]=(s*_-a*S-l*M)*R,e[13]=(n*S-r*_+i*M)*R,e[14]=(m*b-f*w-v*y)*R,e[15]=(u*w-h*b+d*y)*R,e):null}var a=new Float32Array([0,0,0,1]),s=new Float32Array([0,0,0]);function l(e,t,l,c,u,h){n(e,c||null,h.depthNear,h.depthFar),r(t,l.orientation||a,l.position||s),u&&i(t,t,u),o(t,t)}return function(e,t,n){return!(!e||!t)&&(e.pose=t,e.timestamp=t.timestamp,l(e.leftProjectionMatrix,e.leftViewMatrix,t,n._getFieldOfView("left"),n._getEyeOffset("left"),n),l(e.rightProjectionMatrix,e.rightViewMatrix,t,n._getFieldOfView("right"),n._getEyeOffset("right"),n),!0)}}(),R=function(){var e=window.self!==window.top,t=P(document.referrer),n=P(window.location.href);return e&&t!==n},P=function(e){var t,n=e.indexOf("://");t=-1!==n?n+3:0;var r=e.indexOf("/",t);return-1===r&&(r=e.length),e.substring(0,r)},D=function(e){return e.w>1?(console.warn("getQuaternionAngle: w > 1"),0):2*Math.acos(e.w)},O=function(){var e={};return function(t,n){void 0===e[t]&&(console.warn("webvr-polyfill: "+n),e[t]=!0)}}(),I=function(e,t){O(e,e+" has been deprecated. This may not work on native WebVR displays. "+(t?"Please use "+t+" instead.":""))};function B(e,t,n){if(t){for(var r=[],i=null,o=0;o<t.length;++o)switch(a=t[o]){case e.TEXTURE_BINDING_2D:case e.TEXTURE_BINDING_CUBE_MAP:if((l=t[++o])<e.TEXTURE0||l>e.TEXTURE31){console.error("TEXTURE_BINDING_2D or TEXTURE_BINDING_CUBE_MAP must be followed by a valid texture unit"),r.push(null,null);break}i||(i=e.getParameter(e.ACTIVE_TEXTURE)),e.activeTexture(l),r.push(e.getParameter(a),null);break;case e.ACTIVE_TEXTURE:i=e.getParameter(e.ACTIVE_TEXTURE),r.push(null);break;default:r.push(e.getParameter(a))}for(n(e),o=0;o<t.length;++o){var a=t[o],s=r[o];switch(a){case e.ACTIVE_TEXTURE:break;case e.ARRAY_BUFFER_BINDING:e.bindBuffer(e.ARRAY_BUFFER,s);break;case e.COLOR_CLEAR_VALUE:e.clearColor(s[0],s[1],s[2],s[3]);break;case e.COLOR_WRITEMASK:e.colorMask(s[0],s[1],s[2],s[3]);break;case e.CURRENT_PROGRAM:e.useProgram(s);break;case e.ELEMENT_ARRAY_BUFFER_BINDING:e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,s);break;case e.FRAMEBUFFER_BINDING:e.bindFramebuffer(e.FRAMEBUFFER,s);break;case e.RENDERBUFFER_BINDING:e.bindRenderbuffer(e.RENDERBUFFER,s);break;case e.TEXTURE_BINDING_2D:if((l=t[++o])<e.TEXTURE0||l>e.TEXTURE31)break;e.activeTexture(l),e.bindTexture(e.TEXTURE_2D,s);break;case e.TEXTURE_BINDING_CUBE_MAP:var l;if((l=t[++o])<e.TEXTURE0||l>e.TEXTURE31)break;e.activeTexture(l),e.bindTexture(e.TEXTURE_CUBE_MAP,s);break;case e.VIEWPORT:e.viewport(s[0],s[1],s[2],s[3]);break;case e.BLEND:case e.CULL_FACE:case e.DEPTH_TEST:case e.SCISSOR_TEST:case e.STENCIL_TEST:s?e.enable(a):e.disable(a);break;default:console.log("No GL restore behavior for 0x"+a.toString(16))}i&&e.activeTexture(i)}}else n(e)}var F=B,k=["attribute vec2 position;","attribute vec3 texCoord;","varying vec2 vTexCoord;","uniform vec4 viewportOffsetScale[2];","void main() {"," vec4 viewport = viewportOffsetScale[int(texCoord.z)];"," vTexCoord = (texCoord.xy * viewport.zw) + viewport.xy;"," gl_Position = vec4( position, 1.0, 1.0 );","}"].join("\n"),N=["precision mediump float;","uniform sampler2D diffuse;","varying vec2 vTexCoord;","void main() {"," gl_FragColor = texture2D(diffuse, vTexCoord);","}"].join("\n");function U(e,t,n,r){this.gl=e,this.cardboardUI=t,this.bufferScale=n,this.dirtySubmitFrameBindings=r,this.ctxAttribs=e.getContextAttributes(),this.instanceExt=e.getExtension("ANGLE_instanced_arrays"),this.meshWidth=20,this.meshHeight=20,this.bufferWidth=e.drawingBufferWidth,this.bufferHeight=e.drawingBufferHeight,this.realBindFramebuffer=e.bindFramebuffer,this.realEnable=e.enable,this.realDisable=e.disable,this.realColorMask=e.colorMask,this.realClearColor=e.clearColor,this.realViewport=e.viewport,l()||(this.realCanvasWidth=Object.getOwnPropertyDescriptor(e.canvas.__proto__,"width"),this.realCanvasHeight=Object.getOwnPropertyDescriptor(e.canvas.__proto__,"height")),this.isPatched=!1,this.lastBoundFramebuffer=null,this.cullFace=!1,this.depthTest=!1,this.blend=!1,this.scissorTest=!1,this.stencilTest=!1,this.viewport=[0,0,0,0],this.colorMask=[!0,!0,!0,!0],this.clearColor=[0,0,0,0],this.attribs={position:0,texCoord:1},this.program=E(e,k,N,this.attribs),this.uniforms=M(e,this.program),this.viewportOffsetScale=new Float32Array(8),this.setTextureBounds(),this.vertexBuffer=e.createBuffer(),this.indexBuffer=e.createBuffer(),this.indexCount=0,this.renderTarget=e.createTexture(),this.framebuffer=e.createFramebuffer(),this.depthStencilBuffer=null,this.depthBuffer=null,this.stencilBuffer=null,this.ctxAttribs.depth&&this.ctxAttribs.stencil?this.depthStencilBuffer=e.createRenderbuffer():this.ctxAttribs.depth?this.depthBuffer=e.createRenderbuffer():this.ctxAttribs.stencil&&(this.stencilBuffer=e.createRenderbuffer()),this.patch(),this.onResize()}U.prototype.destroy=function(){var e=this.gl;this.unpatch(),e.deleteProgram(this.program),e.deleteBuffer(this.vertexBuffer),e.deleteBuffer(this.indexBuffer),e.deleteTexture(this.renderTarget),e.deleteFramebuffer(this.framebuffer),this.depthStencilBuffer&&e.deleteRenderbuffer(this.depthStencilBuffer),this.depthBuffer&&e.deleteRenderbuffer(this.depthBuffer),this.stencilBuffer&&e.deleteRenderbuffer(this.stencilBuffer),this.cardboardUI&&this.cardboardUI.destroy()},U.prototype.onResize=function(){var e=this.gl,t=this,n=[e.RENDERBUFFER_BINDING,e.TEXTURE_BINDING_2D,e.TEXTURE0];F(e,n,(function(e){t.realBindFramebuffer.call(e,e.FRAMEBUFFER,null),t.scissorTest&&t.realDisable.call(e,e.SCISSOR_TEST),t.realColorMask.call(e,!0,!0,!0,!0),t.realViewport.call(e,0,0,e.drawingBufferWidth,e.drawingBufferHeight),t.realClearColor.call(e,0,0,0,1),e.clear(e.COLOR_BUFFER_BIT),t.realBindFramebuffer.call(e,e.FRAMEBUFFER,t.framebuffer),e.bindTexture(e.TEXTURE_2D,t.renderTarget),e.texImage2D(e.TEXTURE_2D,0,t.ctxAttribs.alpha?e.RGBA:e.RGB,t.bufferWidth,t.bufferHeight,0,t.ctxAttribs.alpha?e.RGBA:e.RGB,e.UNSIGNED_BYTE,null),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t.renderTarget,0),t.ctxAttribs.depth&&t.ctxAttribs.stencil?(e.bindRenderbuffer(e.RENDERBUFFER,t.depthStencilBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_STENCIL,t.bufferWidth,t.bufferHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,t.depthStencilBuffer)):t.ctxAttribs.depth?(e.bindRenderbuffer(e.RENDERBUFFER,t.depthBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_COMPONENT16,t.bufferWidth,t.bufferHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t.depthBuffer)):t.ctxAttribs.stencil&&(e.bindRenderbuffer(e.RENDERBUFFER,t.stencilBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.STENCIL_INDEX8,t.bufferWidth,t.bufferHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.STENCIL_ATTACHMENT,e.RENDERBUFFER,t.stencilBuffer)),!e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE&&console.error("Framebuffer incomplete!"),t.realBindFramebuffer.call(e,e.FRAMEBUFFER,t.lastBoundFramebuffer),t.scissorTest&&t.realEnable.call(e,e.SCISSOR_TEST),t.realColorMask.apply(e,t.colorMask),t.realViewport.apply(e,t.viewport),t.realClearColor.apply(e,t.clearColor)})),this.cardboardUI&&this.cardboardUI.onResize()},U.prototype.patch=function(){if(!this.isPatched){var e=this,t=this.gl.canvas,n=this.gl;l()||(t.width=y()*this.bufferScale,t.height=b()*this.bufferScale,Object.defineProperty(t,"width",{configurable:!0,enumerable:!0,get:function(){return e.bufferWidth},set:function(n){e.bufferWidth=n,e.realCanvasWidth.set.call(t,n),e.onResize()}}),Object.defineProperty(t,"height",{configurable:!0,enumerable:!0,get:function(){return e.bufferHeight},set:function(n){e.bufferHeight=n,e.realCanvasHeight.set.call(t,n),e.onResize()}})),this.lastBoundFramebuffer=n.getParameter(n.FRAMEBUFFER_BINDING),null==this.lastBoundFramebuffer&&(this.lastBoundFramebuffer=this.framebuffer,this.gl.bindFramebuffer(n.FRAMEBUFFER,this.framebuffer)),this.gl.bindFramebuffer=function(t,r){e.lastBoundFramebuffer=r||e.framebuffer,e.realBindFramebuffer.call(n,t,e.lastBoundFramebuffer)},this.cullFace=n.getParameter(n.CULL_FACE),this.depthTest=n.getParameter(n.DEPTH_TEST),this.blend=n.getParameter(n.BLEND),this.scissorTest=n.getParameter(n.SCISSOR_TEST),this.stencilTest=n.getParameter(n.STENCIL_TEST),n.enable=function(t){switch(t){case n.CULL_FACE:e.cullFace=!0;break;case n.DEPTH_TEST:e.depthTest=!0;break;case n.BLEND:e.blend=!0;break;case n.SCISSOR_TEST:e.scissorTest=!0;break;case n.STENCIL_TEST:e.stencilTest=!0}e.realEnable.call(n,t)},n.disable=function(t){switch(t){case n.CULL_FACE:e.cullFace=!1;break;case n.DEPTH_TEST:e.depthTest=!1;break;case n.BLEND:e.blend=!1;break;case n.SCISSOR_TEST:e.scissorTest=!1;break;case n.STENCIL_TEST:e.stencilTest=!1}e.realDisable.call(n,t)},this.colorMask=n.getParameter(n.COLOR_WRITEMASK),n.colorMask=function(t,r,i,o){e.colorMask[0]=t,e.colorMask[1]=r,e.colorMask[2]=i,e.colorMask[3]=o,e.realColorMask.call(n,t,r,i,o)},this.clearColor=n.getParameter(n.COLOR_CLEAR_VALUE),n.clearColor=function(t,r,i,o){e.clearColor[0]=t,e.clearColor[1]=r,e.clearColor[2]=i,e.clearColor[3]=o,e.realClearColor.call(n,t,r,i,o)},this.viewport=n.getParameter(n.VIEWPORT),n.viewport=function(t,r,i,o){e.viewport[0]=t,e.viewport[1]=r,e.viewport[2]=i,e.viewport[3]=o,e.realViewport.call(n,t,r,i,o)},this.isPatched=!0,C(t)}},U.prototype.unpatch=function(){if(this.isPatched){var e=this.gl,t=this.gl.canvas;l()||(Object.defineProperty(t,"width",this.realCanvasWidth),Object.defineProperty(t,"height",this.realCanvasHeight)),t.width=this.bufferWidth,t.height=this.bufferHeight,e.bindFramebuffer=this.realBindFramebuffer,e.enable=this.realEnable,e.disable=this.realDisable,e.colorMask=this.realColorMask,e.clearColor=this.realClearColor,e.viewport=this.realViewport,this.lastBoundFramebuffer==this.framebuffer&&e.bindFramebuffer(e.FRAMEBUFFER,null),this.isPatched=!1,setTimeout((function(){C(t)}),1)}},U.prototype.setTextureBounds=function(e,t){e||(e=[0,0,.5,1]),t||(t=[.5,0,.5,1]),this.viewportOffsetScale[0]=e[0],this.viewportOffsetScale[1]=e[1],this.viewportOffsetScale[2]=e[2],this.viewportOffsetScale[3]=e[3],this.viewportOffsetScale[4]=t[0],this.viewportOffsetScale[5]=t[1],this.viewportOffsetScale[6]=t[2],this.viewportOffsetScale[7]=t[3]},U.prototype.submitFrame=function(){var e=this.gl,t=this,n=[];if(this.dirtySubmitFrameBindings||n.push(e.CURRENT_PROGRAM,e.ARRAY_BUFFER_BINDING,e.ELEMENT_ARRAY_BUFFER_BINDING,e.TEXTURE_BINDING_2D,e.TEXTURE0),F(e,n,(function(e){t.realBindFramebuffer.call(e,e.FRAMEBUFFER,null);var n=0,r=0;t.instanceExt&&(n=e.getVertexAttrib(t.attribs.position,t.instanceExt.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE),r=e.getVertexAttrib(t.attribs.texCoord,t.instanceExt.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE)),t.cullFace&&t.realDisable.call(e,e.CULL_FACE),t.depthTest&&t.realDisable.call(e,e.DEPTH_TEST),t.blend&&t.realDisable.call(e,e.BLEND),t.scissorTest&&t.realDisable.call(e,e.SCISSOR_TEST),t.stencilTest&&t.realDisable.call(e,e.STENCIL_TEST),t.realColorMask.call(e,!0,!0,!0,!0),t.realViewport.call(e,0,0,e.drawingBufferWidth,e.drawingBufferHeight),(t.ctxAttribs.alpha||l())&&(t.realClearColor.call(e,0,0,0,1),e.clear(e.COLOR_BUFFER_BIT)),e.useProgram(t.program),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t.indexBuffer),e.bindBuffer(e.ARRAY_BUFFER,t.vertexBuffer),e.enableVertexAttribArray(t.attribs.position),e.enableVertexAttribArray(t.attribs.texCoord),e.vertexAttribPointer(t.attribs.position,2,e.FLOAT,!1,20,0),e.vertexAttribPointer(t.attribs.texCoord,3,e.FLOAT,!1,20,8),t.instanceExt&&(0!=n&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.position,0),0!=r&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.texCoord,0)),e.activeTexture(e.TEXTURE0),e.uniform1i(t.uniforms.diffuse,0),e.bindTexture(e.TEXTURE_2D,t.renderTarget),e.uniform4fv(t.uniforms.viewportOffsetScale,t.viewportOffsetScale),e.drawElements(e.TRIANGLES,t.indexCount,e.UNSIGNED_SHORT,0),t.cardboardUI&&t.cardboardUI.renderNoState(),t.realBindFramebuffer.call(t.gl,e.FRAMEBUFFER,t.framebuffer),t.ctxAttribs.preserveDrawingBuffer||(t.realClearColor.call(e,0,0,0,0),e.clear(e.COLOR_BUFFER_BIT)),t.dirtySubmitFrameBindings||t.realBindFramebuffer.call(e,e.FRAMEBUFFER,t.lastBoundFramebuffer),t.cullFace&&t.realEnable.call(e,e.CULL_FACE),t.depthTest&&t.realEnable.call(e,e.DEPTH_TEST),t.blend&&t.realEnable.call(e,e.BLEND),t.scissorTest&&t.realEnable.call(e,e.SCISSOR_TEST),t.stencilTest&&t.realEnable.call(e,e.STENCIL_TEST),t.realColorMask.apply(e,t.colorMask),t.realViewport.apply(e,t.viewport),!t.ctxAttribs.alpha&&t.ctxAttribs.preserveDrawingBuffer||t.realClearColor.apply(e,t.clearColor),t.instanceExt&&(0!=n&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.position,n),0!=r&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.texCoord,r))})),l()){var r=e.canvas;r.width==t.bufferWidth&&r.height==t.bufferHeight||(t.bufferWidth=r.width,t.bufferHeight=r.height,t.onResize())}},U.prototype.updateDeviceInfo=function(e){var t=this.gl,n=this,r=[t.ARRAY_BUFFER_BINDING,t.ELEMENT_ARRAY_BUFFER_BINDING];F(t,r,(function(t){var r=n.computeMeshVertices_(n.meshWidth,n.meshHeight,e);if(t.bindBuffer(t.ARRAY_BUFFER,n.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,r,t.STATIC_DRAW),!n.indexCount){var i=n.computeMeshIndices_(n.meshWidth,n.meshHeight);t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,n.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,i,t.STATIC_DRAW),n.indexCount=i.length}}))},U.prototype.computeMeshVertices_=function(e,t,n){for(var r=new Float32Array(2*e*t*5),i=n.getLeftEyeVisibleTanAngles(),o=n.getLeftEyeNoLensTanAngles(),a=n.getLeftEyeVisibleScreenRect(o),l=0,c=0;c<2;c++){for(var u=0;u<t;u++)for(var h=0;h<e;h++,l++){var d=h/(e-1),p=u/(t-1),f=d,m=p,v=s(i[0],i[2],d),g=s(i[3],i[1],p),y=Math.sqrt(v*v+g*g),b=n.distortion.distortInverse(y),A=g*b/y;d=(v*b/y-o[0])/(o[2]-o[0]),p=(A-o[3])/(o[1]-o[3]),d=2*(a.x+d*a.width-.5),p=2*(a.y+p*a.height-.5),r[5*l+0]=d,r[5*l+1]=p,r[5*l+2]=f,r[5*l+3]=m,r[5*l+4]=c}var w=i[2]-i[0];i[0]=-(w+i[0]),i[2]=w-i[2],w=o[2]-o[0],o[0]=-(w+o[0]),o[2]=w-o[2],a.x=1-(a.x+a.width)}return r},U.prototype.computeMeshIndices_=function(e,t){for(var n=new Uint16Array(2*(e-1)*(t-1)*6),r=e/2,i=t/2,o=0,a=0,s=0;s<2;s++)for(var l=0;l<t;l++)for(var c=0;c<e;c++,o++)0!=c&&0!=l&&(c<=r==l<=i?(n[a++]=o,n[a++]=o-e-1,n[a++]=o-e,n[a++]=o-e-1,n[a++]=o,n[a++]=o-1):(n[a++]=o-1,n[a++]=o-e,n[a++]=o,n[a++]=o-e,n[a++]=o-1,n[a++]=o-e-1));return n},U.prototype.getOwnPropertyDescriptor_=function(e,t){var n=Object.getOwnPropertyDescriptor(e,t);return void 0!==n.get&&void 0!==n.set||(n.configurable=!0,n.enumerable=!0,n.get=function(){return this.getAttribute(t)},n.set=function(e){this.setAttribute(t,e)}),n};var H=["attribute vec2 position;","uniform mat4 projectionMat;","void main() {"," gl_Position = projectionMat * vec4( position, -1.0, 1.0 );","}"].join("\n"),G=["precision mediump float;","uniform vec4 color;","void main() {"," gl_FragColor = color;","}"].join("\n"),z=Math.PI/180,j=60,V=12,W=20,q=1,X=.75,Y=.3125,Q=4,Z=28,K=1.5;function J(e){this.gl=e,this.attribs={position:0},this.program=E(e,H,G,this.attribs),this.uniforms=M(e,this.program),this.vertexBuffer=e.createBuffer(),this.gearOffset=0,this.gearVertexCount=0,this.arrowOffset=0,this.arrowVertexCount=0,this.projMat=new Float32Array(16),this.listener=null,this.onResize()}function $(e){this.coefficients=e}J.prototype.destroy=function(){var e=this.gl;this.listener&&e.canvas.removeEventListener("click",this.listener,!1),e.deleteProgram(this.program),e.deleteBuffer(this.vertexBuffer)},J.prototype.listen=function(e,t){var n=this.gl.canvas;this.listener=function(r){var i=n.clientWidth/2,o=Z*K;r.clientX>i-o&&r.clientX<i+o&&r.clientY>n.clientHeight-o?e(r):r.clientX<o&&r.clientY<o&&t(r)},n.addEventListener("click",this.listener,!1)},J.prototype.onResize=function(){var e=this.gl,t=this,n=[e.ARRAY_BUFFER_BINDING];F(e,n,(function(e){var n=[],r=e.drawingBufferWidth/2,i=Math.max(screen.width,screen.height)*window.devicePixelRatio,o=e.drawingBufferWidth/i*window.devicePixelRatio,a=Q*o/2,s=Z*K*o,l=Z*o/2,c=(Z*K-Z)*o;function u(e,t){var i=(90-e)*z,o=Math.cos(i),a=Math.sin(i);n.push(Y*o*l+r,Y*a*l+l),n.push(t*o*l+r,t*a*l+l)}n.push(r-a,s),n.push(r-a,e.drawingBufferHeight),n.push(r+a,s),n.push(r+a,e.drawingBufferHeight),t.gearOffset=n.length/2;for(var h=0;h<=6;h++){var d=h*j;u(d,q),u(d+V,q),u(d+W,X),u(d+(j-W),X),u(d+(j-V),q)}function p(t,r){n.push(c+t,e.drawingBufferHeight-c-r)}t.gearVertexCount=n.length/2-t.gearOffset,t.arrowOffset=n.length/2;var f=a/Math.sin(45*z);p(0,l),p(l,0),p(l+f,f),p(f,l+f),p(f,l-f),p(0,l),p(l,2*l),p(l+f,2*l-f),p(f,l-f),p(0,l),p(f,l-a),p(Z*o,l-a),p(f,l+a),p(Z*o,l+a),t.arrowVertexCount=n.length/2-t.arrowOffset,e.bindBuffer(e.ARRAY_BUFFER,t.vertexBuffer),e.bufferData(e.ARRAY_BUFFER,new Float32Array(n),e.STATIC_DRAW)}))},J.prototype.render=function(){var e=this.gl,t=this,n=[e.CULL_FACE,e.DEPTH_TEST,e.BLEND,e.SCISSOR_TEST,e.STENCIL_TEST,e.COLOR_WRITEMASK,e.VIEWPORT,e.CURRENT_PROGRAM,e.ARRAY_BUFFER_BINDING];F(e,n,(function(e){e.disable(e.CULL_FACE),e.disable(e.DEPTH_TEST),e.disable(e.BLEND),e.disable(e.SCISSOR_TEST),e.disable(e.STENCIL_TEST),e.colorMask(!0,!0,!0,!0),e.viewport(0,0,e.drawingBufferWidth,e.drawingBufferHeight),t.renderNoState()}))},J.prototype.renderNoState=function(){var e=this.gl;e.useProgram(this.program),e.bindBuffer(e.ARRAY_BUFFER,this.vertexBuffer),e.enableVertexAttribArray(this.attribs.position),e.vertexAttribPointer(this.attribs.position,2,e.FLOAT,!1,8,0),e.uniform4f(this.uniforms.color,1,1,1,1),_(this.projMat,0,e.drawingBufferWidth,0,e.drawingBufferHeight,.1,1024),e.uniformMatrix4fv(this.uniforms.projectionMat,!1,this.projMat),e.drawArrays(e.TRIANGLE_STRIP,0,4),e.drawArrays(e.TRIANGLE_STRIP,this.gearOffset,this.gearVertexCount),e.drawArrays(e.TRIANGLE_STRIP,this.arrowOffset,this.arrowVertexCount)},$.prototype.distortInverse=function(e){for(var t=0,n=1,r=e-this.distort(t);Math.abs(n-t)>1e-4;){var i=e-this.distort(n),o=n-i*((n-t)/(i-r));t=n,n=o,r=i}return n},$.prototype.distort=function(e){for(var t=e*e,n=0,r=0;r<this.coefficients.length;r++)n=t*(n+this.coefficients[r]);return(n+1)*e};var ee=Math.PI/180,te=180/Math.PI,ne=function(e,t,n){this.x=e||0,this.y=t||0,this.z=n||0};ne.prototype={constructor:ne,set:function(e,t,n){return this.x=e,this.y=t,this.z=n,this},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},normalize:function(){var e=this.length();if(0!==e){var t=1/e;this.multiplyScalar(t)}else this.x=0,this.y=0,this.z=0;return this},multiplyScalar:function(e){this.x*=e,this.y*=e,this.z*=e},applyQuaternion:function(e){var t=this.x,n=this.y,r=this.z,i=e.x,o=e.y,a=e.z,s=e.w,l=s*t+o*r-a*n,c=s*n+a*t-i*r,u=s*r+i*n-o*t,h=-i*t-o*n-a*r;return this.x=l*s+h*-i+c*-a-u*-o,this.y=c*s+h*-o+u*-i-l*-a,this.z=u*s+h*-a+l*-o-c*-i,this},dot:function(e){return this.x*e.x+this.y*e.y+this.z*e.z},crossVectors:function(e,t){var n=e.x,r=e.y,i=e.z,o=t.x,a=t.y,s=t.z;return this.x=r*s-i*a,this.y=i*o-n*s,this.z=n*a-r*o,this}};var re=function(e,t,n,r){this.x=e||0,this.y=t||0,this.z=n||0,this.w=void 0!==r?r:1};function ie(e){this.width=e.width||y(),this.height=e.height||b(),this.widthMeters=e.widthMeters,this.heightMeters=e.heightMeters,this.bevelMeters=e.bevelMeters}re.prototype={constructor:re,set:function(e,t,n,r){return this.x=e,this.y=t,this.z=n,this.w=r,this},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w,this},setFromEulerXYZ:function(e,t,n){var r=Math.cos(e/2),i=Math.cos(t/2),o=Math.cos(n/2),a=Math.sin(e/2),s=Math.sin(t/2),l=Math.sin(n/2);return this.x=a*i*o+r*s*l,this.y=r*s*o-a*i*l,this.z=r*i*l+a*s*o,this.w=r*i*o-a*s*l,this},setFromEulerYXZ:function(e,t,n){var r=Math.cos(e/2),i=Math.cos(t/2),o=Math.cos(n/2),a=Math.sin(e/2),s=Math.sin(t/2),l=Math.sin(n/2);return this.x=a*i*o+r*s*l,this.y=r*s*o-a*i*l,this.z=r*i*l-a*s*o,this.w=r*i*o+a*s*l,this},setFromAxisAngle:function(e,t){var n=t/2,r=Math.sin(n);return this.x=e.x*r,this.y=e.y*r,this.z=e.z*r,this.w=Math.cos(n),this},multiply:function(e){return this.multiplyQuaternions(this,e)},multiplyQuaternions:function(e,t){var n=e.x,r=e.y,i=e.z,o=e.w,a=t.x,s=t.y,l=t.z,c=t.w;return this.x=n*c+o*a+r*l-i*s,this.y=r*c+o*s+i*a-n*l,this.z=i*c+o*l+n*s-r*a,this.w=o*c-n*a-r*s-i*l,this},inverse:function(){return this.x*=-1,this.y*=-1,this.z*=-1,this.normalize(),this},normalize:function(){var e=Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w);return 0===e?(this.x=0,this.y=0,this.z=0,this.w=1):(e=1/e,this.x=this.x*e,this.y=this.y*e,this.z=this.z*e,this.w=this.w*e),this},slerp:function(e,t){if(0===t)return this;if(1===t)return this.copy(e);var n=this.x,r=this.y,i=this.z,o=this.w,a=o*e.w+n*e.x+r*e.y+i*e.z;if(a<0?(this.w=-e.w,this.x=-e.x,this.y=-e.y,this.z=-e.z,a=-a):this.copy(e),a>=1)return this.w=o,this.x=n,this.y=r,this.z=i,this;var s=Math.acos(a),l=Math.sqrt(1-a*a);if(Math.abs(l)<.001)return this.w=.5*(o+this.w),this.x=.5*(n+this.x),this.y=.5*(r+this.y),this.z=.5*(i+this.z),this;var c=Math.sin((1-t)*s)/l,u=Math.sin(t*s)/l;return this.w=o*c+this.w*u,this.x=n*c+this.x*u,this.y=r*c+this.y*u,this.z=i*c+this.z*u,this},setFromUnitVectors:function(){var e,t,n=1e-6;return function(r,i){return void 0===e&&(e=new ne),(t=r.dot(i)+1)<n?(t=0,Math.abs(r.x)>Math.abs(r.z)?e.set(-r.y,r.x,0):e.set(0,-r.z,r.y)):e.crossVectors(r,i),this.x=e.x,this.y=e.y,this.z=e.z,this.w=t,this.normalize(),this}}()};var oe=new ie({widthMeters:.11,heightMeters:.062,bevelMeters:.004}),ae=new ie({widthMeters:.1038,heightMeters:.0584,bevelMeters:.004}),se={CardboardV1:new ce({id:"CardboardV1",label:"Cardboard I/O 2014",fov:40,interLensDistance:.06,baselineLensDistance:.035,screenLensDistance:.042,distortionCoefficients:[.441,.156],inverseCoefficients:[-.4410035,.42756155,-.4804439,.5460139,-.58821183,.5733938,-.48303202,.33299083,-.17573841,.0651772,-.01488963,.001559834]}),CardboardV2:new ce({id:"CardboardV2",label:"Cardboard I/O 2015",fov:60,interLensDistance:.064,baselineLensDistance:.035,screenLensDistance:.039,distortionCoefficients:[.34,.55],inverseCoefficients:[-.33836704,-.18162185,.862655,-1.2462051,1.0560602,-.58208317,.21609078,-.05444823,.009177956,-.0009904169,6183535e-11,-16981803e-13]})};function le(e,t){this.viewer=se.CardboardV2,this.updateDeviceParams(e),this.distortion=new $(this.viewer.distortionCoefficients);for(var n=0;n<t.length;n++){var r=t[n];se[r.id]=new ce(r)}}function ce(e){this.id=e.id,this.label=e.label,this.fov=e.fov,this.interLensDistance=e.interLensDistance,this.baselineLensDistance=e.baselineLensDistance,this.screenLensDistance=e.screenLensDistance,this.distortionCoefficients=e.distortionCoefficients,this.inverseCoefficients=e.inverseCoefficients}le.prototype.updateDeviceParams=function(e){this.device=this.determineDevice_(e)||this.device},le.prototype.getDevice=function(){return this.device},le.prototype.setViewer=function(e){this.viewer=e,this.distortion=new $(this.viewer.distortionCoefficients)},le.prototype.determineDevice_=function(e){if(!e)return l()?(console.warn("Using fallback iOS device measurements."),ae):(console.warn("Using fallback Android device measurements."),oe);var t=.0254,n=t/e.xdpi,r=t/e.ydpi;return new ie({widthMeters:n*y(),heightMeters:r*b(),bevelMeters:.001*e.bevelMm})},le.prototype.getDistortedFieldOfViewLeftEye=function(){var e=this.viewer,t=this.device,n=this.distortion,r=e.screenLensDistance,i=(t.widthMeters-e.interLensDistance)/2,o=e.interLensDistance/2,a=e.baselineLensDistance-t.bevelMeters,s=t.heightMeters-a,l=te*Math.atan(n.distort(i/r)),c=te*Math.atan(n.distort(o/r)),u=te*Math.atan(n.distort(a/r)),h=te*Math.atan(n.distort(s/r));return{leftDegrees:Math.min(l,e.fov),rightDegrees:Math.min(c,e.fov),downDegrees:Math.min(u,e.fov),upDegrees:Math.min(h,e.fov)}},le.prototype.getLeftEyeVisibleTanAngles=function(){var e=this.viewer,t=this.device,n=this.distortion,r=Math.tan(-ee*e.fov),i=Math.tan(ee*e.fov),o=Math.tan(ee*e.fov),a=Math.tan(-ee*e.fov),s=t.widthMeters/4,l=t.heightMeters/2,c=e.baselineLensDistance-t.bevelMeters-l,u=e.interLensDistance/2-s,h=-c,d=e.screenLensDistance,p=n.distort((u-s)/d),f=n.distort((h+l)/d),m=n.distort((u+s)/d),v=n.distort((h-l)/d),g=new Float32Array(4);return g[0]=Math.max(r,p),g[1]=Math.min(i,f),g[2]=Math.min(o,m),g[3]=Math.max(a,v),g},le.prototype.getLeftEyeNoLensTanAngles=function(){var e=this.viewer,t=this.device,n=this.distortion,r=new Float32Array(4),i=n.distortInverse(Math.tan(-ee*e.fov)),o=n.distortInverse(Math.tan(ee*e.fov)),a=n.distortInverse(Math.tan(ee*e.fov)),s=n.distortInverse(Math.tan(-ee*e.fov)),l=t.widthMeters/4,c=t.heightMeters/2,u=e.baselineLensDistance-t.bevelMeters-c,h=e.interLensDistance/2-l,d=-u,p=e.screenLensDistance,f=(h-l)/p,m=(d+c)/p,v=(h+l)/p,g=(d-c)/p;return r[0]=Math.max(i,f),r[1]=Math.min(o,m),r[2]=Math.min(a,v),r[3]=Math.max(s,g),r},le.prototype.getLeftEyeVisibleScreenRect=function(e){var t=this.viewer,n=this.device,r=t.screenLensDistance,i=(n.widthMeters-t.interLensDistance)/2,o=t.baselineLensDistance-n.bevelMeters,a=(e[0]*r+i)/n.widthMeters,s=(e[1]*r+o)/n.heightMeters,l=(e[2]*r+i)/n.widthMeters,c=(e[3]*r+o)/n.heightMeters;return{x:a,y:c,width:l-a,height:s-c}},le.prototype.getFieldOfViewLeftEye=function(e){return e?this.getUndistortedFieldOfViewLeftEye():this.getDistortedFieldOfViewLeftEye()},le.prototype.getFieldOfViewRightEye=function(e){var t=this.getFieldOfViewLeftEye(e);return{leftDegrees:t.rightDegrees,rightDegrees:t.leftDegrees,upDegrees:t.upDegrees,downDegrees:t.downDegrees}},le.prototype.getUndistortedFieldOfViewLeftEye=function(){var e=this.getUndistortedParams_();return{leftDegrees:te*Math.atan(e.outerDist),rightDegrees:te*Math.atan(e.innerDist),downDegrees:te*Math.atan(e.bottomDist),upDegrees:te*Math.atan(e.topDist)}},le.prototype.getUndistortedViewportLeftEye=function(){var e=this.getUndistortedParams_(),t=this.viewer,n=this.device,r=t.screenLensDistance,i=n.widthMeters/r,o=n.heightMeters/r,a=n.width/i,s=n.height/o,l=Math.round((e.eyePosX-e.outerDist)*a),c=Math.round((e.eyePosY-e.bottomDist)*s);return{x:l,y:c,width:Math.round((e.eyePosX+e.innerDist)*a)-l,height:Math.round((e.eyePosY+e.topDist)*s)-c}},le.prototype.getUndistortedParams_=function(){var e=this.viewer,t=this.device,n=this.distortion,r=e.screenLensDistance,i=e.interLensDistance/2/r,o=t.widthMeters/r,a=t.heightMeters/r,s=o/2-i,l=(e.baselineLensDistance-t.bevelMeters)/r,c=e.fov,u=n.distortInverse(Math.tan(ee*c)),h=Math.min(s,u),d=Math.min(i,u),p=Math.min(l,u);return{outerDist:h,innerDist:d,topDist:Math.min(a-l,u),bottomDist:p,eyePosX:s,eyePosY:l}},le.Viewers=se;var ue={format:1,last_updated:"2019-11-09T17:36:14Z",devices:[{type:"android",rules:[{mdmh:"asus/*/Nexus 7/*"},{ua:"Nexus 7"}],dpi:[320.8,323],bw:3,ac:500},{type:"android",rules:[{mdmh:"asus/*/ASUS_X00PD/*"},{ua:"ASUS_X00PD"}],dpi:245,bw:3,ac:500},{type:"android",rules:[{mdmh:"asus/*/ASUS_X008D/*"},{ua:"ASUS_X008D"}],dpi:282,bw:3,ac:500},{type:"android",rules:[{mdmh:"asus/*/ASUS_Z00AD/*"},{ua:"ASUS_Z00AD"}],dpi:[403,404.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 2 XL/*"},{ua:"Pixel 2 XL"}],dpi:537.9,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 3 XL/*"},{ua:"Pixel 3 XL"}],dpi:[558.5,553.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel XL/*"},{ua:"Pixel XL"}],dpi:[537.9,533],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 3/*"},{ua:"Pixel 3"}],dpi:442.4,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 2/*"},{ua:"Pixel 2"}],dpi:441,bw:3,ac:500},{type:"android",rules:[{mdmh:"Google/*/Pixel/*"},{ua:"Pixel"}],dpi:[432.6,436.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"HTC/*/HTC6435LVW/*"},{ua:"HTC6435LVW"}],dpi:[449.7,443.3],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"HTC/*/HTC One XL/*"},{ua:"HTC One XL"}],dpi:[315.3,314.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"htc/*/Nexus 9/*"},{ua:"Nexus 9"}],dpi:289,bw:3,ac:500},{type:"android",rules:[{mdmh:"HTC/*/HTC One M9/*"},{ua:"HTC One M9"}],dpi:[442.5,443.3],bw:3,ac:500},{type:"android",rules:[{mdmh:"HTC/*/HTC One_M8/*"},{ua:"HTC One_M8"}],dpi:[449.7,447.4],bw:3,ac:500},{type:"android",rules:[{mdmh:"HTC/*/HTC One/*"},{ua:"HTC One"}],dpi:472.8,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Huawei/*/Nexus 6P/*"},{ua:"Nexus 6P"}],dpi:[515.1,518],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Huawei/*/BLN-L24/*"},{ua:"HONORBLN-L24"}],dpi:480,bw:4,ac:500},{type:"android",rules:[{mdmh:"Huawei/*/BKL-L09/*"},{ua:"BKL-L09"}],dpi:403,bw:3.47,ac:500},{type:"android",rules:[{mdmh:"LENOVO/*/Lenovo PB2-690Y/*"},{ua:"Lenovo PB2-690Y"}],dpi:[457.2,454.713],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/Nexus 5X/*"},{ua:"Nexus 5X"}],dpi:[422,419.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LGMS345/*"},{ua:"LGMS345"}],dpi:[221.7,219.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/LG-D800/*"},{ua:"LG-D800"}],dpi:[422,424.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/LG-D850/*"},{ua:"LG-D850"}],dpi:[537.9,541.9],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/VS985 4G/*"},{ua:"VS985 4G"}],dpi:[537.9,535.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/Nexus 5/*"},{ua:"Nexus 5 B"}],dpi:[442.4,444.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/Nexus 4/*"},{ua:"Nexus 4"}],dpi:[319.8,318.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LG-P769/*"},{ua:"LG-P769"}],dpi:[240.6,247.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LGMS323/*"},{ua:"LGMS323"}],dpi:[206.6,204.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LGLS996/*"},{ua:"LGLS996"}],dpi:[403.4,401.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Micromax/*/4560MMX/*"},{ua:"4560MMX"}],dpi:[240,219.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Micromax/*/A250/*"},{ua:"Micromax A250"}],dpi:[480,446.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Micromax/*/Micromax AQ4501/*"},{ua:"Micromax AQ4501"}],dpi:240,bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/G5/*"},{ua:"Moto G (5) Plus"}],dpi:[403.4,403],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/DROID RAZR/*"},{ua:"DROID RAZR"}],dpi:[368.1,256.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT830C/*"},{ua:"XT830C"}],dpi:[254,255.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1021/*"},{ua:"XT1021"}],dpi:[254,256.7],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1023/*"},{ua:"XT1023"}],dpi:[254,256.7],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1028/*"},{ua:"XT1028"}],dpi:[326.6,327.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1034/*"},{ua:"XT1034"}],dpi:[326.6,328.4],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1053/*"},{ua:"XT1053"}],dpi:[315.3,316.1],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1562/*"},{ua:"XT1562"}],dpi:[403.4,402.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/Nexus 6/*"},{ua:"Nexus 6 B"}],dpi:[494.3,489.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1063/*"},{ua:"XT1063"}],dpi:[295,296.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1064/*"},{ua:"XT1064"}],dpi:[295,295.6],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1092/*"},{ua:"XT1092"}],dpi:[422,424.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1095/*"},{ua:"XT1095"}],dpi:[422,423.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/G4/*"},{ua:"Moto G (4)"}],dpi:401,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/A0001/*"},{ua:"A0001"}],dpi:[403.4,401],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE E1001/*"},{ua:"ONE E1001"}],dpi:[442.4,441.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE E1003/*"},{ua:"ONE E1003"}],dpi:[442.4,441.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE E1005/*"},{ua:"ONE E1005"}],dpi:[442.4,441.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A2001/*"},{ua:"ONE A2001"}],dpi:[391.9,405.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A2003/*"},{ua:"ONE A2003"}],dpi:[391.9,405.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A2005/*"},{ua:"ONE A2005"}],dpi:[391.9,405.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A3000/*"},{ua:"ONEPLUS A3000"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A3003/*"},{ua:"ONEPLUS A3003"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A3010/*"},{ua:"ONEPLUS A3010"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A5000/*"},{ua:"ONEPLUS A5000 "}],dpi:[403.411,399.737],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A5010/*"},{ua:"ONEPLUS A5010"}],dpi:[403,400],bw:2,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A6000/*"},{ua:"ONEPLUS A6000"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A6003/*"},{ua:"ONEPLUS A6003"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A6010/*"},{ua:"ONEPLUS A6010"}],dpi:401,bw:2,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A6013/*"},{ua:"ONEPLUS A6013"}],dpi:401,bw:2,ac:500},{type:"android",rules:[{mdmh:"OPPO/*/X909/*"},{ua:"X909"}],dpi:[442.4,444.1],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9082/*"},{ua:"GT-I9082"}],dpi:[184.7,185.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G360P/*"},{ua:"SM-G360P"}],dpi:[196.7,205.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/Nexus S/*"},{ua:"Nexus S"}],dpi:[234.5,229.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9300/*"},{ua:"GT-I9300"}],dpi:[304.8,303.9],bw:5,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-T230NU/*"},{ua:"SM-T230NU"}],dpi:216,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SGH-T399/*"},{ua:"SGH-T399"}],dpi:[217.7,231.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SGH-M919/*"},{ua:"SGH-M919"}],dpi:[440.8,437.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N9005/*"},{ua:"SM-N9005"}],dpi:[386.4,387],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SAMSUNG-SM-N900A/*"},{ua:"SAMSUNG-SM-N900A"}],dpi:[386.4,387.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9500/*"},{ua:"GT-I9500"}],dpi:[442.5,443.3],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/GT-I9505/*"},{ua:"GT-I9505"}],dpi:439.4,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G900F/*"},{ua:"SM-G900F"}],dpi:[415.6,431.6],bw:5,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G900M/*"},{ua:"SM-G900M"}],dpi:[415.6,431.6],bw:5,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G800F/*"},{ua:"SM-G800F"}],dpi:326.8,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G906S/*"},{ua:"SM-G906S"}],dpi:[562.7,572.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9300/*"},{ua:"GT-I9300"}],dpi:[306.7,304.8],bw:5,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-T535/*"},{ua:"SM-T535"}],dpi:[142.6,136.4],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-N920C/*"},{ua:"SM-N920C"}],dpi:[515.1,518.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N920P/*"},{ua:"SM-N920P"}],dpi:[386.3655,390.144],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N920W8/*"},{ua:"SM-N920W8"}],dpi:[515.1,518.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9300I/*"},{ua:"GT-I9300I"}],dpi:[304.8,305.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9195/*"},{ua:"GT-I9195"}],dpi:[249.4,256.7],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SPH-L520/*"},{ua:"SPH-L520"}],dpi:[249.4,255.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SAMSUNG-SGH-I717/*"},{ua:"SAMSUNG-SGH-I717"}],dpi:285.8,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SPH-D710/*"},{ua:"SPH-D710"}],dpi:[217.7,204.2],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-N7100/*"},{ua:"GT-N7100"}],dpi:265.1,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SCH-I605/*"},{ua:"SCH-I605"}],dpi:265.1,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/Galaxy Nexus/*"},{ua:"Galaxy Nexus"}],dpi:[315.3,314.2],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N910H/*"},{ua:"SM-N910H"}],dpi:[515.1,518],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N910C/*"},{ua:"SM-N910C"}],dpi:[515.2,520.2],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G130M/*"},{ua:"SM-G130M"}],dpi:[165.9,164.8],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G928I/*"},{ua:"SM-G928I"}],dpi:[515.1,518.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G920F/*"},{ua:"SM-G920F"}],dpi:580.6,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G920P/*"},{ua:"SM-G920P"}],dpi:[522.5,577],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G925F/*"},{ua:"SM-G925F"}],dpi:580.6,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G925V/*"},{ua:"SM-G925V"}],dpi:[522.5,576.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G930F/*"},{ua:"SM-G930F"}],dpi:576.6,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G935F/*"},{ua:"SM-G935F"}],dpi:533,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G950F/*"},{ua:"SM-G950F"}],dpi:[562.707,565.293],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G955U/*"},{ua:"SM-G955U"}],dpi:[522.514,525.762],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G955F/*"},{ua:"SM-G955F"}],dpi:[522.514,525.762],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G960F/*"},{ua:"SM-G960F"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G9600/*"},{ua:"SM-G9600"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960T/*"},{ua:"SM-G960T"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960N/*"},{ua:"SM-G960N"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960U/*"},{ua:"SM-G960U"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G9608/*"},{ua:"SM-G9608"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960FD/*"},{ua:"SM-G960FD"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960W/*"},{ua:"SM-G960W"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G965F/*"},{ua:"SM-G965F"}],dpi:529,bw:2,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/C6903/*"},{ua:"C6903"}],dpi:[442.5,443.3],bw:3,ac:500},{type:"android",rules:[{mdmh:"Sony/*/D6653/*"},{ua:"D6653"}],dpi:[428.6,427.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/E6653/*"},{ua:"E6653"}],dpi:[428.6,425.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/E6853/*"},{ua:"E6853"}],dpi:[403.4,401.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/SGP321/*"},{ua:"SGP321"}],dpi:[224.7,224.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"TCT/*/ALCATEL ONE TOUCH Fierce/*"},{ua:"ALCATEL ONE TOUCH Fierce"}],dpi:[240,247.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"THL/*/thl 5000/*"},{ua:"thl 5000"}],dpi:[480,443.3],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Fly/*/IQ4412/*"},{ua:"IQ4412"}],dpi:307.9,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"ZTE/*/ZTE Blade L2/*"},{ua:"ZTE Blade L2"}],dpi:240,bw:3,ac:500},{type:"android",rules:[{mdmh:"BENEVE/*/VR518/*"},{ua:"VR518"}],dpi:480,bw:3,ac:500},{type:"ios",rules:[{res:[640,960]}],dpi:[325.1,328.4],bw:4,ac:1e3},{type:"ios",rules:[{res:[640,1136]}],dpi:[317.1,320.2],bw:3,ac:1e3},{type:"ios",rules:[{res:[750,1334]}],dpi:326.4,bw:4,ac:1e3},{type:"ios",rules:[{res:[1242,2208]}],dpi:[453.6,458.4],bw:4,ac:1e3},{type:"ios",rules:[{res:[1125,2001]}],dpi:[410.9,415.4],bw:4,ac:1e3},{type:"ios",rules:[{res:[1125,2436]}],dpi:458,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"Huawei/*/EML-L29/*"},{ua:"EML-L29"}],dpi:428,bw:3.45,ac:500},{type:"android",rules:[{mdmh:"Nokia/*/Nokia 7.1/*"},{ua:"Nokia 7.1"}],dpi:[432,431.9],bw:3,ac:500},{type:"ios",rules:[{res:[1242,2688]}],dpi:458,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G570M/*"},{ua:"SM-G570M"}],dpi:320,bw:3.684,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G970F/*"},{ua:"SM-G970F"}],dpi:438,bw:2.281,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G973F/*"},{ua:"SM-G973F"}],dpi:550,bw:2.002,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G975F/*"},{ua:"SM-G975F"}],dpi:522,bw:2.054,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G977F/*"},{ua:"SM-G977F"}],dpi:505,bw:2.334,ac:500},{type:"ios",rules:[{res:[828,1792]}],dpi:326,bw:5,ac:500}]};function he(e,t){if(this.dpdb=ue,this.recalculateDeviceParams_(),e){this.onDeviceParamsUpdated=t;var n=new XMLHttpRequest,r=this;n.open("GET",e,!0),n.addEventListener("load",(function(){r.loading=!1,n.status>=200&&n.status<=299?(r.dpdb=JSON.parse(n.response),r.recalculateDeviceParams_()):console.error("Error loading online DPDB!")})),n.send()}}function de(e){this.xdpi=e.xdpi,this.ydpi=e.ydpi,this.bevelMm=e.bevelMm}function pe(e,t){this.set(e,t)}function fe(e,t){this.kFilter=e,this.isDebug=t,this.currentAccelMeasurement=new pe,this.currentGyroMeasurement=new pe,this.previousGyroMeasurement=new pe,l()?this.filterQ=new re(-1,0,0,1):this.filterQ=new re(1,0,0,1),this.previousFilterQ=new re,this.previousFilterQ.copy(this.filterQ),this.accelQ=new re,this.isOrientationInitialized=!1,this.estimatedGravity=new ne,this.measuredGravity=new ne,this.gyroIntegralQ=new re}function me(e,t){this.predictionTimeS=e,this.isDebug=t,this.previousQ=new re,this.previousTimestampS=null,this.deltaQ=new re,this.outQ=new re}function ve(e,t,n,r){this.yawOnly=n,this.accelerometer=new ne,this.gyroscope=new ne,this.filter=new fe(e,r),this.posePredictor=new me(t,r),this.isFirefoxAndroid=h(),this.isIOS=l();var i=d();this.isDeviceMotionInRadians=!this.isIOS&&i&&i<66,this.isWithoutDeviceMotion=f()||p(),this.filterToWorldQ=new re,l()?this.filterToWorldQ.setFromAxisAngle(new ne(1,0,0),Math.PI/2):this.filterToWorldQ.setFromAxisAngle(new ne(1,0,0),-Math.PI/2),this.inverseWorldToScreenQ=new re,this.worldToScreenQ=new re,this.originalPoseAdjustQ=new re,this.originalPoseAdjustQ.setFromAxisAngle(new ne(0,0,1),-window.orientation*Math.PI/180),this.setScreenTransform_(),v()&&this.filterToWorldQ.multiply(this.inverseWorldToScreenQ),this.resetQ=new re,this.orientationOut_=new Float32Array(4),this.start()}he.prototype.getDeviceParams=function(){return this.deviceParams},he.prototype.recalculateDeviceParams_=function(){var e=this.calcDeviceParams_();e?(this.deviceParams=e,this.onDeviceParamsUpdated&&this.onDeviceParamsUpdated(this.deviceParams)):console.error("Failed to recalculate device parameters.")},he.prototype.calcDeviceParams_=function(){var e=this.dpdb;if(!e)return console.error("DPDB not available."),null;if(1!=e.format)return console.error("DPDB has unexpected format version."),null;if(!e.devices||!e.devices.length)return console.error("DPDB does not have a devices section."),null;var t=navigator.userAgent||navigator.vendor||window.opera,n=y(),r=b();if(!e.devices)return console.error("DPDB has no devices section."),null;for(var i=0;i<e.devices.length;i++){var o=e.devices[i];if(o.rules)if("ios"==o.type||"android"==o.type){if(l()==("ios"==o.type)){for(var a=!1,s=0;s<o.rules.length;s++){var c=o.rules[s];if(this.ruleMatches_(c,t,n,r)){a=!0;break}}if(a)return new de({xdpi:o.dpi[0]||o.dpi,ydpi:o.dpi[1]||o.dpi,bevelMm:o.bw})}}else console.warn("Device["+i+"] has invalid type.");else console.warn("Device["+i+"] has no rules section.")}return console.warn("No DPDB device match."),null},he.prototype.ruleMatches_=function(e,t,n,r){if(!e.ua&&!e.res)return!1;if(e.ua&&"SM"===e.ua.substring(0,2)&&(e.ua=e.ua.substring(0,7)),e.ua&&t.indexOf(e.ua)<0)return!1;if(e.res){if(!e.res[0]||!e.res[1])return!1;var i=e.res[0],o=e.res[1];if(Math.min(n,r)!=Math.min(i,o)||Math.max(n,r)!=Math.max(i,o))return!1}return!0},pe.prototype.set=function(e,t){this.sample=e,this.timestampS=t},pe.prototype.copy=function(e){this.set(e.sample,e.timestampS)},fe.prototype.addAccelMeasurement=function(e,t){this.currentAccelMeasurement.set(e,t)},fe.prototype.addGyroMeasurement=function(e,t){this.currentGyroMeasurement.set(e,t);var n=t-this.previousGyroMeasurement.timestampS;g(n)&&this.run_(),this.previousGyroMeasurement.copy(this.currentGyroMeasurement)},fe.prototype.run_=function(){if(!this.isOrientationInitialized)return this.accelQ=this.accelToQuaternion_(this.currentAccelMeasurement.sample),this.previousFilterQ.copy(this.accelQ),void(this.isOrientationInitialized=!0);var e=this.currentGyroMeasurement.timestampS-this.previousGyroMeasurement.timestampS,t=this.gyroToQuaternionDelta_(this.currentGyroMeasurement.sample,e);this.gyroIntegralQ.multiply(t),this.filterQ.copy(this.previousFilterQ),this.filterQ.multiply(t);var n=new re;n.copy(this.filterQ),n.inverse(),this.estimatedGravity.set(0,0,-1),this.estimatedGravity.applyQuaternion(n),this.estimatedGravity.normalize(),this.measuredGravity.copy(this.currentAccelMeasurement.sample),this.measuredGravity.normalize();var r=new re;r.setFromUnitVectors(this.estimatedGravity,this.measuredGravity),r.inverse(),this.isDebug&&console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)",te*D(r),this.estimatedGravity.x.toFixed(1),this.estimatedGravity.y.toFixed(1),this.estimatedGravity.z.toFixed(1),this.measuredGravity.x.toFixed(1),this.measuredGravity.y.toFixed(1),this.measuredGravity.z.toFixed(1));var i=new re;i.copy(this.filterQ),i.multiply(r),this.filterQ.slerp(i,1-this.kFilter),this.previousFilterQ.copy(this.filterQ)},fe.prototype.getOrientation=function(){return this.filterQ},fe.prototype.accelToQuaternion_=function(e){var t=new ne;t.copy(e),t.normalize();var n=new re;return n.setFromUnitVectors(new ne(0,0,-1),t),n.inverse(),n},fe.prototype.gyroToQuaternionDelta_=function(e,t){var n=new re,r=new ne;return r.copy(e),r.normalize(),n.setFromAxisAngle(r,e.length()*t),n},me.prototype.getPrediction=function(e,t,n){if(!this.previousTimestampS)return this.previousQ.copy(e),this.previousTimestampS=n,e;var r=new ne;r.copy(t),r.normalize();var i=t.length();if(i<20*ee)return this.isDebug&&console.log("Moving slowly, at %s deg/s: no prediction",(te*i).toFixed(1)),this.outQ.copy(e),this.previousQ.copy(e),this.outQ;var o=i*this.predictionTimeS;return this.deltaQ.setFromAxisAngle(r,o),this.outQ.copy(this.previousQ),this.outQ.multiply(this.deltaQ),this.previousQ.copy(e),this.previousTimestampS=n,this.outQ},ve.prototype.getPosition=function(){return null},ve.prototype.getOrientation=function(){var e=void 0;if(this.isWithoutDeviceMotion&&this._deviceOrientationQ)return this.deviceOrientationFixQ=this.deviceOrientationFixQ||function(){var e=(new re).setFromAxisAngle(new ne(0,0,-1),0),t=new re;return-90===window.orientation?t.setFromAxisAngle(new ne(0,1,0),Math.PI/-2):t.setFromAxisAngle(new ne(0,1,0),Math.PI/2),e.multiply(t)}(),this.deviceOrientationFilterToWorldQ=this.deviceOrientationFilterToWorldQ||function(){var e=new re;return e.setFromAxisAngle(new ne(1,0,0),-Math.PI/2),e}(),e=this._deviceOrientationQ,(t=new re).copy(e),t.multiply(this.deviceOrientationFilterToWorldQ),t.multiply(this.resetQ),t.multiply(this.worldToScreenQ),t.multiplyQuaternions(this.deviceOrientationFixQ,t),this.yawOnly&&(t.x=0,t.z=0,t.normalize()),this.orientationOut_[0]=t.x,this.orientationOut_[1]=t.y,this.orientationOut_[2]=t.z,this.orientationOut_[3]=t.w,this.orientationOut_;var t,n=this.filter.getOrientation();return e=this.posePredictor.getPrediction(n,this.gyroscope,this.previousTimestampS),(t=new re).copy(this.filterToWorldQ),t.multiply(this.resetQ),t.multiply(e),t.multiply(this.worldToScreenQ),this.yawOnly&&(t.x=0,t.z=0,t.normalize()),this.orientationOut_[0]=t.x,this.orientationOut_[1]=t.y,this.orientationOut_[2]=t.z,this.orientationOut_[3]=t.w,this.orientationOut_},ve.prototype.resetPose=function(){this.resetQ.copy(this.filter.getOrientation()),this.resetQ.x=0,this.resetQ.y=0,this.resetQ.z*=-1,this.resetQ.normalize(),v()&&this.resetQ.multiply(this.inverseWorldToScreenQ),this.resetQ.multiply(this.originalPoseAdjustQ)},ve.prototype.onDeviceOrientation_=function(e){this._deviceOrientationQ=this._deviceOrientationQ||new re;var t=e.alpha,n=e.beta,r=e.gamma;t=(t||0)*Math.PI/180,n=(n||0)*Math.PI/180,r=(r||0)*Math.PI/180,this._deviceOrientationQ.setFromEulerYXZ(n,t,-r)},ve.prototype.onDeviceMotion_=function(e){this.updateDeviceMotion_(e)},ve.prototype.updateDeviceMotion_=function(e){var t=e.accelerationIncludingGravity,n=e.rotationRate,r=e.timeStamp/1e3,a=r-this.previousTimestampS;return a<0?(O("fusion-pose-sensor:invalid:non-monotonic","Invalid timestamps detected: non-monotonic timestamp from devicemotion"),void(this.previousTimestampS=r)):a<=i||a>o?(O("fusion-pose-sensor:invalid:outside-threshold","Invalid timestamps detected: Timestamp from devicemotion outside expected range."),void(this.previousTimestampS=r)):(this.accelerometer.set(-t.x,-t.y,-t.z),n&&(m()?this.gyroscope.set(-n.beta,n.alpha,n.gamma):this.gyroscope.set(n.alpha,n.beta,n.gamma),this.isDeviceMotionInRadians||this.gyroscope.multiplyScalar(Math.PI/180),this.filter.addGyroMeasurement(this.gyroscope,r)),this.filter.addAccelMeasurement(this.accelerometer,r),void(this.previousTimestampS=r))},ve.prototype.onOrientationChange_=function(e){this.setScreenTransform_()},ve.prototype.onMessage_=function(e){var t=e.data;t&&t.type&&"devicemotion"===t.type.toLowerCase()&&this.updateDeviceMotion_(t.deviceMotionEvent)},ve.prototype.setScreenTransform_=function(){switch(this.worldToScreenQ.set(0,0,0,1),window.orientation){case 0:break;case 90:this.worldToScreenQ.setFromAxisAngle(new ne(0,0,1),-Math.PI/2);break;case-90:this.worldToScreenQ.setFromAxisAngle(new ne(0,0,1),Math.PI/2)}this.inverseWorldToScreenQ.copy(this.worldToScreenQ),this.inverseWorldToScreenQ.inverse()},ve.prototype.start=function(){this.onDeviceMotionCallback_=this.onDeviceMotion_.bind(this),this.onOrientationChangeCallback_=this.onOrientationChange_.bind(this),this.onMessageCallback_=this.onMessage_.bind(this),this.onDeviceOrientationCallback_=this.onDeviceOrientation_.bind(this),l()&&R()&&window.addEventListener("message",this.onMessageCallback_),window.addEventListener("orientationchange",this.onOrientationChangeCallback_),this.isWithoutDeviceMotion?window.addEventListener("deviceorientation",this.onDeviceOrientationCallback_):window.addEventListener("devicemotion",this.onDeviceMotionCallback_)},ve.prototype.stop=function(){window.removeEventListener("devicemotion",this.onDeviceMotionCallback_),window.removeEventListener("deviceorientation",this.onDeviceOrientationCallback_),window.removeEventListener("orientationchange",this.onOrientationChangeCallback_),window.removeEventListener("message",this.onMessageCallback_)};var ge=60,ye=new ne(1,0,0),be=new ne(0,0,1),Ae=new re;Ae.setFromAxisAngle(ye,-Math.PI/2),Ae.multiply((new re).setFromAxisAngle(be,Math.PI/2));var we=function(){function t(n){e(this,t),this.config=n,this.sensor=null,this.fusionSensor=null,this._out=new Float32Array(4),this.api=null,this.errors=[],this._sensorQ=new re,this._outQ=new re,this._onSensorRead=this._onSensorRead.bind(this),this._onSensorError=this._onSensorError.bind(this),this.init()}return n(t,[{key:"init",value:function(){var e=null;try{(e=new RelativeOrientationSensor({frequency:ge,referenceFrame:"screen"})).addEventListener("error",this._onSensorError)}catch(t){this.errors.push(t),"SecurityError"===t.name?(console.error("Cannot construct sensors due to the Feature Policy"),console.warn('Attempting to fall back using "devicemotion"; however this will fail in the future without correct permissions.'),this.useDeviceMotion()):"ReferenceError"===t.name?this.useDeviceMotion():console.error(t)}e&&(this.api="sensor",this.sensor=e,this.sensor.addEventListener("reading",this._onSensorRead),this.sensor.start())}},{key:"useDeviceMotion",value:function(){this.api="devicemotion",this.fusionSensor=new ve(this.config.K_FILTER,this.config.PREDICTION_TIME_S,this.config.YAW_ONLY,this.config.DEBUG),this.sensor&&(this.sensor.removeEventListener("reading",this._onSensorRead),this.sensor.removeEventListener("error",this._onSensorError),this.sensor=null)}},{key:"getOrientation",value:function(){if(this.fusionSensor)return this.fusionSensor.getOrientation();if(!this.sensor||!this.sensor.quaternion)return this._out[0]=this._out[1]=this._out[2]=0,this._out[3]=1,this._out;var e=this.sensor.quaternion;this._sensorQ.set(e[0],e[1],e[2],e[3]);var t=this._outQ;return t.copy(Ae),t.multiply(this._sensorQ),this.config.YAW_ONLY&&(t.x=t.z=0,t.normalize()),this._out[0]=t.x,this._out[1]=t.y,this._out[2]=t.z,this._out[3]=t.w,this._out}},{key:"_onSensorError",value:function(e){this.errors.push(e.error),"NotAllowedError"===e.error.name?console.error("Permission to access sensor was denied"):"NotReadableError"===e.error.name?console.error("Sensor could not be read"):console.error(e.error),this.useDeviceMotion()}},{key:"_onSensorRead",value:function(){}}]),t}(),xe="<svg width='198' height='240' viewBox='0 0 198 240' xmlns='http://www.w3.org/2000/svg'><g fill='none' fill-rule='evenodd'><path d='M149.625 109.527l6.737 3.891v.886c0 .177.013.36.038.549.01.081.02.162.027.242.14 1.415.974 2.998 2.105 3.999l5.72 5.062.081-.09s4.382-2.53 5.235-3.024l25.97 14.993v54.001c0 .771-.386 1.217-.948 1.217-.233 0-.495-.076-.772-.236l-23.967-13.838-.014.024-27.322 15.775-.85-1.323c-4.731-1.529-9.748-2.74-14.951-3.61a.27.27 0 0 0-.007.024l-5.067 16.961-7.891 4.556-.037-.063v27.59c0 .772-.386 1.217-.948 1.217-.232 0-.495-.076-.772-.236l-42.473-24.522c-.95-.549-1.72-1.877-1.72-2.967v-1.035l-.021.047a5.111 5.111 0 0 0-1.816-.399 5.682 5.682 0 0 0-.546.001 13.724 13.724 0 0 1-1.918-.041c-1.655-.153-3.2-.6-4.404-1.296l-46.576-26.89.005.012-10.278-18.75c-1.001-1.827-.241-4.216 1.698-5.336l56.011-32.345a4.194 4.194 0 0 1 2.099-.572c1.326 0 2.572.659 3.227 1.853l.005-.003.227.413-.006.004a9.63 9.63 0 0 0 1.477 2.018l.277.27c1.914 1.85 4.468 2.801 7.113 2.801 1.949 0 3.948-.517 5.775-1.572.013 0 7.319-4.219 7.319-4.219a4.194 4.194 0 0 1 2.099-.572c1.326 0 2.572.658 3.226 1.853l3.25 5.928.022-.018 6.785 3.917-.105-.182 46.881-26.965m0-1.635c-.282 0-.563.073-.815.218l-46.169 26.556-5.41-3.124-3.005-5.481c-.913-1.667-2.699-2.702-4.66-2.703-1.011 0-2.02.274-2.917.792a3825 3825 0 0 1-7.275 4.195l-.044.024a9.937 9.937 0 0 1-4.957 1.353c-2.292 0-4.414-.832-5.976-2.342l-.252-.245a7.992 7.992 0 0 1-1.139-1.534 1.379 1.379 0 0 0-.06-.122l-.227-.414a1.718 1.718 0 0 0-.095-.154c-.938-1.574-2.673-2.545-4.571-2.545-1.011 0-2.02.274-2.917.792L3.125 155.502c-2.699 1.559-3.738 4.94-2.314 7.538l10.278 18.75c.177.323.448.563.761.704l46.426 26.804c1.403.81 3.157 1.332 5.072 1.508a15.661 15.661 0 0 0 2.146.046 4.766 4.766 0 0 1 .396 0c.096.004.19.011.283.022.109 1.593 1.159 3.323 2.529 4.114l42.472 24.522c.524.302 1.058.455 1.59.455 1.497 0 2.583-1.2 2.583-2.852v-26.562l7.111-4.105a1.64 1.64 0 0 0 .749-.948l4.658-15.593c4.414.797 8.692 1.848 12.742 3.128l.533.829a1.634 1.634 0 0 0 2.193.531l26.532-15.317L193 192.433c.523.302 1.058.455 1.59.455 1.497 0 2.583-1.199 2.583-2.852v-54.001c0-.584-.312-1.124-.818-1.416l-25.97-14.993a1.633 1.633 0 0 0-1.636.001c-.606.351-2.993 1.73-4.325 2.498l-4.809-4.255c-.819-.725-1.461-1.933-1.561-2.936a7.776 7.776 0 0 0-.033-.294 2.487 2.487 0 0 1-.023-.336v-.886c0-.584-.312-1.123-.817-1.416l-6.739-3.891a1.633 1.633 0 0 0-.817-.219' fill='#455A64'/><path d='M96.027 132.636l46.576 26.891c1.204.695 1.979 1.587 2.242 2.541l-.01.007-81.374 46.982h-.001c-1.654-.152-3.199-.6-4.403-1.295l-46.576-26.891 83.546-48.235' fill='#FAFAFA'/><path d='M63.461 209.174c-.008 0-.015 0-.022-.002-1.693-.156-3.228-.609-4.441-1.309l-46.576-26.89a.118.118 0 0 1 0-.203l83.546-48.235a.117.117 0 0 1 .117 0l46.576 26.891c1.227.708 2.021 1.612 2.296 2.611a.116.116 0 0 1-.042.124l-.021.016-81.375 46.981a.11.11 0 0 1-.058.016zm-50.747-28.303l46.401 26.79c1.178.68 2.671 1.121 4.32 1.276l81.272-46.922c-.279-.907-1.025-1.73-2.163-2.387l-46.517-26.857-83.313 48.1z' fill='#607D8B'/><path d='M148.327 165.471a5.85 5.85 0 0 1-.546.001c-1.894-.083-3.302-1.038-3.145-2.132a2.693 2.693 0 0 0-.072-1.105l-81.103 46.822c.628.058 1.272.073 1.918.042.182-.009.364-.009.546-.001 1.894.083 3.302 1.038 3.145 2.132l79.257-45.759' fill='#FFF'/><path d='M69.07 211.347a.118.118 0 0 1-.115-.134c.045-.317-.057-.637-.297-.925-.505-.61-1.555-1.022-2.738-1.074a5.966 5.966 0 0 0-.535.001 14.03 14.03 0 0 1-1.935-.041.117.117 0 0 1-.103-.092.116.116 0 0 1 .055-.126l81.104-46.822a.117.117 0 0 1 .171.07c.104.381.129.768.074 1.153-.045.316.057.637.296.925.506.61 1.555 1.021 2.739 1.073.178.008.357.008.535-.001a.117.117 0 0 1 .064.218l-79.256 45.759a.114.114 0 0 1-.059.016zm-3.405-2.372c.089 0 .177.002.265.006 1.266.056 2.353.488 2.908 1.158.227.274.35.575.36.882l78.685-45.429c-.036 0-.072-.001-.107-.003-1.267-.056-2.354-.489-2.909-1.158-.282-.34-.402-.724-.347-1.107a2.604 2.604 0 0 0-.032-.91L63.846 208.97a13.91 13.91 0 0 0 1.528.012c.097-.005.194-.007.291-.007z' fill='#607D8B'/><path d='M2.208 162.134c-1.001-1.827-.241-4.217 1.698-5.337l56.011-32.344c1.939-1.12 4.324-.546 5.326 1.281l.232.41a9.344 9.344 0 0 0 1.47 2.021l.278.27c3.325 3.214 8.583 3.716 12.888 1.23l7.319-4.22c1.94-1.119 4.324-.546 5.325 1.282l3.25 5.928-83.519 48.229-10.278-18.75z' fill='#FAFAFA'/><path d='M12.486 181.001a.112.112 0 0 1-.031-.005.114.114 0 0 1-.071-.056L2.106 162.19c-1.031-1.88-.249-4.345 1.742-5.494l56.01-32.344a4.328 4.328 0 0 1 2.158-.588c1.415 0 2.65.702 3.311 1.882.01.008.018.017.024.028l.227.414a.122.122 0 0 1 .013.038 9.508 9.508 0 0 0 1.439 1.959l.275.266c1.846 1.786 4.344 2.769 7.031 2.769 1.977 0 3.954-.538 5.717-1.557a.148.148 0 0 1 .035-.013l7.284-4.206a4.321 4.321 0 0 1 2.157-.588c1.427 0 2.672.716 3.329 1.914l3.249 5.929a.116.116 0 0 1-.044.157l-83.518 48.229a.116.116 0 0 1-.059.016zm49.53-57.004c-.704 0-1.41.193-2.041.557l-56.01 32.345c-1.882 1.086-2.624 3.409-1.655 5.179l10.221 18.645 83.317-48.112-3.195-5.829c-.615-1.122-1.783-1.792-3.124-1.792a4.08 4.08 0 0 0-2.04.557l-7.317 4.225a.148.148 0 0 1-.035.013 11.7 11.7 0 0 1-5.801 1.569c-2.748 0-5.303-1.007-7.194-2.835l-.278-.27a9.716 9.716 0 0 1-1.497-2.046.096.096 0 0 1-.013-.037l-.191-.347a.11.11 0 0 1-.023-.029c-.615-1.123-1.783-1.793-3.124-1.793z' fill='#607D8B'/><path d='M42.434 155.808c-2.51-.001-4.697-1.258-5.852-3.365-1.811-3.304-.438-7.634 3.059-9.654l12.291-7.098a7.599 7.599 0 0 1 3.789-1.033c2.51 0 4.697 1.258 5.852 3.365 1.811 3.304.439 7.634-3.059 9.654l-12.291 7.098a7.606 7.606 0 0 1-3.789 1.033zm13.287-20.683a7.128 7.128 0 0 0-3.555.971l-12.291 7.098c-3.279 1.893-4.573 5.942-2.883 9.024 1.071 1.955 3.106 3.122 5.442 3.122a7.13 7.13 0 0 0 3.556-.97l12.291-7.098c3.279-1.893 4.572-5.942 2.883-9.024-1.072-1.955-3.106-3.123-5.443-3.123z' fill='#607D8B'/><path d='M149.588 109.407l6.737 3.89v.887c0 .176.013.36.037.549.011.081.02.161.028.242.14 1.415.973 2.998 2.105 3.999l7.396 6.545c.177.156.358.295.541.415 1.579 1.04 2.95.466 3.062-1.282.049-.784.057-1.595.023-2.429l-.003-.16v-1.151l25.987 15.003v54c0 1.09-.77 1.53-1.72.982l-42.473-24.523c-.95-.548-1.72-1.877-1.72-2.966v-34.033' fill='#FAFAFA'/><path d='M194.553 191.25c-.257 0-.54-.085-.831-.253l-42.472-24.521c-.981-.567-1.779-1.943-1.779-3.068v-34.033h.234v34.033c0 1.051.745 2.336 1.661 2.866l42.473 24.521c.424.245.816.288 1.103.122.285-.164.442-.52.442-1.002v-53.933l-25.753-14.868.003 1.106c.034.832.026 1.654-.024 2.439-.054.844-.396 1.464-.963 1.746-.619.309-1.45.173-2.28-.373a5.023 5.023 0 0 1-.553-.426l-7.397-6.544c-1.158-1.026-1.999-2.625-2.143-4.076a9.624 9.624 0 0 0-.027-.238 4.241 4.241 0 0 1-.038-.564v-.82l-6.68-3.856.117-.202 6.738 3.89.058.034v.954c0 .171.012.351.036.533.011.083.021.165.029.246.138 1.395.948 2.935 2.065 3.923l7.397 6.545c.173.153.35.289.527.406.758.499 1.504.63 2.047.359.49-.243.786-.795.834-1.551.05-.778.057-1.591.024-2.417l-.004-.163v-1.355l.175.1 25.987 15.004.059.033v54.068c0 .569-.198.996-.559 1.204a1.002 1.002 0 0 1-.506.131' fill='#607D8B'/><path d='M145.685 163.161l24.115 13.922-25.978 14.998-1.462-.307c-6.534-2.17-13.628-3.728-21.019-4.616-4.365-.524-8.663 1.096-9.598 3.62a2.746 2.746 0 0 0-.011 1.928c1.538 4.267 4.236 8.363 7.995 12.135l.532.845-25.977 14.997-24.115-13.922 75.518-43.6' fill='#FFF'/><path d='M94.282 220.818l-.059-.033-24.29-14.024.175-.101 75.577-43.634.058.033 24.29 14.024-26.191 15.122-.045-.01-1.461-.307c-6.549-2.174-13.613-3.725-21.009-4.614a13.744 13.744 0 0 0-1.638-.097c-3.758 0-7.054 1.531-7.837 3.642a2.62 2.62 0 0 0-.01 1.848c1.535 4.258 4.216 8.326 7.968 12.091l.016.021.526.835.006.01.064.102-.105.061-25.977 14.998-.058.033zm-23.881-14.057l23.881 13.788 24.802-14.32c.546-.315.846-.489 1.017-.575l-.466-.74c-3.771-3.787-6.467-7.881-8.013-12.168a2.851 2.851 0 0 1 .011-2.008c.815-2.199 4.203-3.795 8.056-3.795.557 0 1.117.033 1.666.099 7.412.891 14.491 2.445 21.041 4.621.836.175 1.215.254 1.39.304l25.78-14.884-23.881-13.788-75.284 43.466z' fill='#607D8B'/><path d='M167.23 125.979v50.871l-27.321 15.773-6.461-14.167c-.91-1.996-3.428-1.738-5.624.574a10.238 10.238 0 0 0-2.33 4.018l-6.46 21.628-27.322 15.774v-50.871l75.518-43.6' fill='#FFF'/><path d='M91.712 220.567a.127.127 0 0 1-.059-.016.118.118 0 0 1-.058-.101v-50.871c0-.042.023-.08.058-.101l75.519-43.6a.117.117 0 0 1 .175.101v50.871c0 .041-.023.08-.059.1l-27.321 15.775a.118.118 0 0 1-.094.01.12.12 0 0 1-.071-.063l-6.46-14.168c-.375-.822-1.062-1.275-1.934-1.275-1.089 0-2.364.686-3.5 1.881a10.206 10.206 0 0 0-2.302 3.972l-6.46 21.627a.118.118 0 0 1-.054.068L91.77 220.551a.12.12 0 0 1-.058.016zm.117-50.92v50.601l27.106-15.65 6.447-21.583a10.286 10.286 0 0 1 2.357-4.065c1.18-1.242 2.517-1.954 3.669-1.954.969 0 1.731.501 2.146 1.411l6.407 14.051 27.152-15.676v-50.601l-75.284 43.466z' fill='#607D8B'/><path d='M168.543 126.213v50.87l-27.322 15.774-6.46-14.168c-.91-1.995-3.428-1.738-5.624.574a10.248 10.248 0 0 0-2.33 4.019l-6.461 21.627-27.321 15.774v-50.87l75.518-43.6' fill='#FFF'/><path d='M93.025 220.8a.123.123 0 0 1-.059-.015.12.12 0 0 1-.058-.101v-50.871c0-.042.023-.08.058-.101l75.518-43.6a.112.112 0 0 1 .117 0c.036.02.059.059.059.1v50.871a.116.116 0 0 1-.059.101l-27.321 15.774a.111.111 0 0 1-.094.01.115.115 0 0 1-.071-.062l-6.46-14.168c-.375-.823-1.062-1.275-1.935-1.275-1.088 0-2.363.685-3.499 1.881a10.19 10.19 0 0 0-2.302 3.971l-6.461 21.628a.108.108 0 0 1-.053.067l-27.322 15.775a.12.12 0 0 1-.058.015zm.117-50.919v50.6l27.106-15.649 6.447-21.584a10.293 10.293 0 0 1 2.357-4.065c1.179-1.241 2.516-1.954 3.668-1.954.969 0 1.732.502 2.147 1.412l6.407 14.051 27.152-15.676v-50.601l-75.284 43.466z' fill='#607D8B'/><path d='M169.8 177.083l-27.322 15.774-6.46-14.168c-.91-1.995-3.428-1.738-5.625.574a10.246 10.246 0 0 0-2.329 4.019l-6.461 21.627-27.321 15.774v-50.87l75.518-43.6v50.87z' fill='#FAFAFA'/><path d='M94.282 220.917a.234.234 0 0 1-.234-.233v-50.871c0-.083.045-.161.117-.202l75.518-43.601a.234.234 0 1 1 .35.202v50.871a.233.233 0 0 1-.116.202l-27.322 15.775a.232.232 0 0 1-.329-.106l-6.461-14.168c-.36-.789-.992-1.206-1.828-1.206-1.056 0-2.301.672-3.415 1.844a10.099 10.099 0 0 0-2.275 3.924l-6.46 21.628a.235.235 0 0 1-.107.136l-27.322 15.774a.23.23 0 0 1-.116.031zm.233-50.969v50.331l26.891-15.525 6.434-21.539a10.41 10.41 0 0 1 2.384-4.112c1.201-1.265 2.569-1.991 3.753-1.991 1.018 0 1.818.526 2.253 1.48l6.354 13.934 26.982-15.578v-50.331l-75.051 43.331z' fill='#607D8B'/><path d='M109.894 199.943c-1.774 0-3.241-.725-4.244-2.12a.224.224 0 0 1 .023-.294.233.233 0 0 1 .301-.023c.78.547 1.705.827 2.75.827 1.323 0 2.754-.439 4.256-1.306 5.311-3.067 9.631-10.518 9.631-16.611 0-1.927-.442-3.56-1.278-4.724a.232.232 0 0 1 .323-.327c1.671 1.172 2.591 3.381 2.591 6.219 0 6.242-4.426 13.863-9.865 17.003-1.574.908-3.084 1.356-4.488 1.356zm-2.969-1.542c.813.651 1.82.877 2.968.877h.001c1.321 0 2.753-.327 4.254-1.194 5.311-3.067 9.632-10.463 9.632-16.556 0-1.979-.463-3.599-1.326-4.761.411 1.035.625 2.275.625 3.635 0 6.243-4.426 13.883-9.865 17.023-1.574.909-3.084 1.317-4.49 1.317-.641 0-1.243-.149-1.799-.341z' fill='#607D8B'/><path d='M113.097 197.23c5.384-3.108 9.748-10.636 9.748-16.814 0-2.051-.483-3.692-1.323-4.86-1.784-1.252-4.374-1.194-7.257.47-5.384 3.108-9.748 10.636-9.748 16.814 0 2.051.483 3.692 1.323 4.86 1.784 1.252 4.374 1.194 7.257-.47' fill='#FAFAFA'/><path d='M108.724 198.614c-1.142 0-2.158-.213-3.019-.817-.021-.014-.04.014-.055-.007-.894-1.244-1.367-2.948-1.367-4.973 0-6.242 4.426-13.864 9.865-17.005 1.574-.908 3.084-1.363 4.49-1.363 1.142 0 2.158.309 3.018.913a.23.23 0 0 1 .056.056c.894 1.244 1.367 2.972 1.367 4.997 0 6.243-4.426 13.783-9.865 16.923-1.574.909-3.084 1.276-4.49 1.276zm-2.718-1.109c.774.532 1.688.776 2.718.776 1.323 0 2.754-.413 4.256-1.28 5.311-3.066 9.631-10.505 9.631-16.598 0-1.909-.434-3.523-1.255-4.685-.774-.533-1.688-.799-2.718-.799-1.323 0-2.755.441-4.256 1.308-5.311 3.066-9.631 10.506-9.631 16.599 0 1.909.434 3.517 1.255 4.679z' fill='#607D8B'/><path d='M149.318 114.262l-9.984 8.878 15.893 11.031 5.589-6.112-11.498-13.797' fill='#FAFAFA'/><path d='M169.676 120.84l-9.748 5.627c-3.642 2.103-9.528 2.113-13.147.024-3.62-2.089-3.601-5.488.041-7.591l9.495-5.608-6.729-3.885-81.836 47.071 45.923 26.514 3.081-1.779c.631-.365.869-.898.618-1.39-2.357-4.632-2.593-9.546-.683-14.262 5.638-13.92 24.509-24.815 48.618-28.07 8.169-1.103 16.68-.967 24.704.394.852.145 1.776.008 2.407-.357l3.081-1.778-25.825-14.91' fill='#FAFAFA'/><path d='M113.675 183.459a.47.47 0 0 1-.233-.062l-45.924-26.515a.468.468 0 0 1 .001-.809l81.836-47.071a.467.467 0 0 1 .466 0l6.729 3.885a.467.467 0 0 1-.467.809l-6.496-3.75-80.9 46.533 44.988 25.973 2.848-1.644c.192-.111.62-.409.435-.773-2.416-4.748-2.658-9.814-.7-14.65 2.806-6.927 8.885-13.242 17.582-18.263 8.657-4.998 19.518-8.489 31.407-10.094 8.198-1.107 16.79-.97 24.844.397.739.125 1.561.007 2.095-.301l2.381-1.374-25.125-14.506a.467.467 0 0 1 .467-.809l25.825 14.91a.467.467 0 0 1 0 .809l-3.081 1.779c-.721.417-1.763.575-2.718.413-7.963-1.351-16.457-1.486-24.563-.392-11.77 1.589-22.512 5.039-31.065 9.977-8.514 4.916-14.456 11.073-17.183 17.805-1.854 4.578-1.623 9.376.666 13.875.37.725.055 1.513-.8 2.006l-3.081 1.78a.476.476 0 0 1-.234.062' fill='#455A64'/><path d='M153.316 128.279c-2.413 0-4.821-.528-6.652-1.586-1.818-1.049-2.82-2.461-2.82-3.975 0-1.527 1.016-2.955 2.861-4.02l9.493-5.607a.233.233 0 1 1 .238.402l-9.496 5.609c-1.696.979-2.628 2.263-2.628 3.616 0 1.34.918 2.608 2.585 3.571 3.549 2.049 9.343 2.038 12.914-.024l9.748-5.628a.234.234 0 0 1 .234.405l-9.748 5.628c-1.858 1.072-4.296 1.609-6.729 1.609' fill='#607D8B'/><path d='M113.675 182.992l-45.913-26.508M113.675 183.342a.346.346 0 0 1-.175-.047l-45.913-26.508a.35.35 0 1 1 .35-.607l45.913 26.508a.35.35 0 0 1-.175.654' fill='#455A64'/><path d='M67.762 156.484v54.001c0 1.09.77 2.418 1.72 2.967l42.473 24.521c.95.549 1.72.11 1.72-.98v-54.001' fill='#FAFAFA'/><path d='M112.727 238.561c-.297 0-.62-.095-.947-.285l-42.473-24.521c-1.063-.613-1.895-2.05-1.895-3.27v-54.001a.35.35 0 1 1 .701 0v54.001c0 .96.707 2.18 1.544 2.663l42.473 24.522c.344.198.661.243.87.122.206-.119.325-.411.325-.799v-54.001a.35.35 0 1 1 .7 0v54.001c0 .655-.239 1.154-.675 1.406a1.235 1.235 0 0 1-.623.162' fill='#455A64'/><path d='M112.86 147.512h-.001c-2.318 0-4.499-.522-6.142-1.471-1.705-.984-2.643-2.315-2.643-3.749 0-1.445.952-2.791 2.68-3.788l12.041-6.953c1.668-.962 3.874-1.493 6.212-1.493 2.318 0 4.499.523 6.143 1.472 1.704.984 2.643 2.315 2.643 3.748 0 1.446-.952 2.791-2.68 3.789l-12.042 6.952c-1.668.963-3.874 1.493-6.211 1.493zm12.147-16.753c-2.217 0-4.298.497-5.861 1.399l-12.042 6.952c-1.502.868-2.33 1.998-2.33 3.182 0 1.173.815 2.289 2.293 3.142 1.538.889 3.596 1.378 5.792 1.378h.001c2.216 0 4.298-.497 5.861-1.399l12.041-6.953c1.502-.867 2.33-1.997 2.33-3.182 0-1.172-.814-2.288-2.292-3.142-1.539-.888-3.596-1.377-5.793-1.377z' fill='#607D8B'/><path d='M165.63 123.219l-5.734 3.311c-3.167 1.828-8.286 1.837-11.433.02-3.147-1.817-3.131-4.772.036-6.601l5.734-3.31 11.397 6.58' fill='#FAFAFA'/><path d='M154.233 117.448l9.995 5.771-4.682 2.704c-1.434.827-3.352 1.283-5.399 1.283-2.029 0-3.923-.449-5.333-1.263-1.29-.744-2-1.694-2-2.674 0-.991.723-1.955 2.036-2.713l5.383-3.108m0-.809l-5.734 3.31c-3.167 1.829-3.183 4.784-.036 6.601 1.568.905 3.623 1.357 5.684 1.357 2.077 0 4.159-.46 5.749-1.377l5.734-3.311-11.397-6.58M145.445 179.667c-1.773 0-3.241-.85-4.243-2.245-.067-.092-.057-.275.023-.356.08-.081.207-.12.3-.055.781.548 1.706.812 2.751.811 1.322 0 2.754-.446 4.256-1.313 5.31-3.066 9.631-10.522 9.631-16.615 0-1.927-.442-3.562-1.279-4.726a.235.235 0 0 1 .024-.301.232.232 0 0 1 .3-.027c1.67 1.172 2.59 3.38 2.59 6.219 0 6.242-4.425 13.987-9.865 17.127-1.573.908-3.083 1.481-4.488 1.481zM142.476 178c.814.651 1.82 1.002 2.969 1.002 1.322 0 2.753-.452 4.255-1.32 5.31-3.065 9.631-10.523 9.631-16.617 0-1.98-.463-3.63-1.325-4.793.411 1.035.624 2.26.624 3.62 0 6.242-4.425 13.875-9.865 17.015-1.573.909-3.084 1.376-4.489 1.376a5.49 5.49 0 0 1-1.8-.283z' fill='#607D8B'/><path d='M148.648 176.704c5.384-3.108 9.748-10.636 9.748-16.813 0-2.052-.483-3.693-1.322-4.861-1.785-1.252-4.375-1.194-7.258.471-5.383 3.108-9.748 10.636-9.748 16.813 0 2.051.484 3.692 1.323 4.86 1.785 1.253 4.374 1.195 7.257-.47' fill='#FAFAFA'/><path d='M144.276 178.276c-1.143 0-2.158-.307-3.019-.911a.217.217 0 0 1-.055-.054c-.895-1.244-1.367-2.972-1.367-4.997 0-6.241 4.425-13.875 9.865-17.016 1.573-.908 3.084-1.369 4.489-1.369 1.143 0 2.158.307 3.019.91a.24.24 0 0 1 .055.055c.894 1.244 1.367 2.971 1.367 4.997 0 6.241-4.425 13.875-9.865 17.016-1.573.908-3.084 1.369-4.489 1.369zm-2.718-1.172c.773.533 1.687.901 2.718.901 1.322 0 2.754-.538 4.256-1.405 5.31-3.066 9.631-10.567 9.631-16.661 0-1.908-.434-3.554-1.256-4.716-.774-.532-1.688-.814-2.718-.814-1.322 0-2.754.433-4.256 1.3-5.31 3.066-9.631 10.564-9.631 16.657 0 1.91.434 3.576 1.256 4.738z' fill='#607D8B'/><path d='M150.72 172.361l-.363-.295a24.105 24.105 0 0 0 2.148-3.128 24.05 24.05 0 0 0 1.977-4.375l.443.149a24.54 24.54 0 0 1-2.015 4.46 24.61 24.61 0 0 1-2.19 3.189M115.917 191.514l-.363-.294a24.174 24.174 0 0 0 2.148-3.128 24.038 24.038 0 0 0 1.976-4.375l.443.148a24.48 24.48 0 0 1-2.015 4.461 24.662 24.662 0 0 1-2.189 3.188M114 237.476V182.584 237.476' fill='#607D8B'/><g><path d='M81.822 37.474c.017-.135-.075-.28-.267-.392-.327-.188-.826-.21-1.109-.045l-6.012 3.471c-.131.076-.194.178-.191.285.002.132.002.461.002.578v.043l-.007.128-6.591 3.779c-.001 0-2.077 1.046-2.787 5.192 0 0-.912 6.961-.898 19.745.015 12.57.606 17.07 1.167 21.351.22 1.684 3.001 2.125 3.001 2.125.331.04.698-.027 1.08-.248l75.273-43.551c1.808-1.069 2.667-3.719 3.056-6.284 1.213-7.99 1.675-32.978-.275-39.878-.196-.693-.51-1.083-.868-1.282l-2.086-.79c-.727.028-1.416.467-1.534.535L82.032 37.072l-.21.402' fill='#FFF'/><path d='M144.311 1.701l2.085.79c.358.199.672.589.868 1.282 1.949 6.9 1.487 31.887.275 39.878-.39 2.565-1.249 5.215-3.056 6.284L69.21 93.486a1.78 1.78 0 0 1-.896.258l-.183-.011c0 .001-2.782-.44-3.003-2.124-.56-4.282-1.151-8.781-1.165-21.351-.015-12.784.897-19.745.897-19.745.71-4.146 2.787-5.192 2.787-5.192l6.591-3.779.007-.128v-.043c0-.117 0-.446-.002-.578-.003-.107.059-.21.191-.285l6.012-3.472a.98.98 0 0 1 .481-.11c.218 0 .449.053.627.156.193.112.285.258.268.392l.211-.402 60.744-34.836c.117-.068.806-.507 1.534-.535m0-.997l-.039.001c-.618.023-1.283.244-1.974.656l-.021.012-60.519 34.706a2.358 2.358 0 0 0-.831-.15c-.365 0-.704.084-.98.244l-6.012 3.471c-.442.255-.699.69-.689 1.166l.001.15-6.08 3.487c-.373.199-2.542 1.531-3.29 5.898l-.006.039c-.009.07-.92 7.173-.906 19.875.014 12.62.603 17.116 1.172 21.465l.002.015c.308 2.355 3.475 2.923 3.836 2.98l.034.004c.101.013.204.019.305.019a2.77 2.77 0 0 0 1.396-.392l75.273-43.552c1.811-1.071 2.999-3.423 3.542-6.997 1.186-7.814 1.734-33.096-.301-40.299-.253-.893-.704-1.527-1.343-1.882l-.132-.062-2.085-.789a.973.973 0 0 0-.353-.065' fill='#455A64'/><path d='M128.267 11.565l1.495.434-56.339 32.326' fill='#FFF'/><path d='M74.202 90.545a.5.5 0 0 1-.25-.931l18.437-10.645a.499.499 0 1 1 .499.864L74.451 90.478l-.249.067M75.764 42.654l-.108-.062.046-.171 5.135-2.964.17.045-.045.171-5.135 2.964-.063.017M70.52 90.375V46.421l.063-.036L137.84 7.554v43.954l-.062.036L70.52 90.375zm.25-43.811v43.38l66.821-38.579V7.985L70.77 46.564z' fill='#607D8B'/><path d='M86.986 83.182c-.23.149-.612.384-.849.523l-11.505 6.701c-.237.139-.206.252.068.252h.565c.275 0 .693-.113.93-.252L87.7 83.705c.237-.139.428-.253.425-.256a11.29 11.29 0 0 1-.006-.503c0-.274-.188-.377-.418-.227l-.715.463' fill='#607D8B'/><path d='M75.266 90.782H74.7c-.2 0-.316-.056-.346-.166-.03-.11.043-.217.215-.317l11.505-6.702c.236-.138.615-.371.844-.519l.715-.464a.488.488 0 0 1 .266-.089c.172 0 .345.13.345.421 0 .214.001.363.003.437l.006.004-.004.069c-.003.075-.003.075-.486.356l-11.505 6.702a2.282 2.282 0 0 1-.992.268zm-.6-.25l.034.001h.566c.252 0 .649-.108.866-.234l11.505-6.702c.168-.098.294-.173.361-.214-.004-.084-.004-.218-.004-.437l-.095-.171-.131.049-.714.463c-.232.15-.616.386-.854.525l-11.505 6.702-.029.018z' fill='#607D8B'/><path d='M75.266 89.871H74.7c-.2 0-.316-.056-.346-.166-.03-.11.043-.217.215-.317l11.505-6.702c.258-.151.694-.268.993-.268h.565c.2 0 .316.056.346.166.03.11-.043.217-.215.317l-11.505 6.702a2.282 2.282 0 0 1-.992.268zm-.6-.25l.034.001h.566c.252 0 .649-.107.866-.234l11.505-6.702.03-.018-.035-.001h-.565c-.252 0-.649.108-.867.234l-11.505 6.702-.029.018zM74.37 90.801v-1.247 1.247' fill='#607D8B'/><path d='M68.13 93.901c-.751-.093-1.314-.737-1.439-1.376-.831-4.238-1.151-8.782-1.165-21.352-.015-12.784.897-19.745.897-19.745.711-4.146 2.787-5.192 2.787-5.192l74.859-43.219c.223-.129 2.487-1.584 3.195.923 1.95 6.9 1.488 31.887.275 39.878-.389 2.565-1.248 5.215-3.056 6.283L69.21 93.653c-.382.221-.749.288-1.08.248 0 0-2.781-.441-3.001-2.125-.561-4.281-1.152-8.781-1.167-21.351-.014-12.784.898-19.745.898-19.745.71-4.146 2.787-5.191 2.787-5.191l6.598-3.81.871-.119 6.599-3.83.046-.461L68.13 93.901' fill='#FAFAFA'/><path d='M68.317 94.161l-.215-.013h-.001l-.244-.047c-.719-.156-2.772-.736-2.976-2.292-.568-4.34-1.154-8.813-1.168-21.384-.014-12.654.891-19.707.9-19.777.725-4.231 2.832-5.338 2.922-5.382l6.628-3.827.87-.119 6.446-3.742.034-.334a.248.248 0 0 1 .273-.223.248.248 0 0 1 .223.272l-.059.589-6.752 3.919-.87.118-6.556 3.785c-.031.016-1.99 1.068-2.666 5.018-.007.06-.908 7.086-.894 19.702.014 12.539.597 16.996 1.161 21.305.091.691.689 1.154 1.309 1.452a1.95 1.95 0 0 1-.236-.609c-.781-3.984-1.155-8.202-1.17-21.399-.014-12.653.891-19.707.9-19.777.725-4.231 2.832-5.337 2.922-5.382-.004.001 74.444-42.98 74.846-43.212l.028-.017c.904-.538 1.72-.688 2.36-.433.555.221.949.733 1.172 1.52 2.014 7.128 1.46 32.219.281 39.983-.507 3.341-1.575 5.515-3.175 6.462L69.335 93.869a2.023 2.023 0 0 1-1.018.292zm-.147-.507c.293.036.604-.037.915-.217l75.273-43.551c1.823-1.078 2.602-3.915 2.934-6.106 1.174-7.731 1.731-32.695-.268-39.772-.178-.631-.473-1.032-.876-1.192-.484-.193-1.166-.052-1.921.397l-.034.021-74.858 43.218c-.031.017-1.989 1.069-2.666 5.019-.007.059-.908 7.085-.894 19.702.015 13.155.386 17.351 1.161 21.303.09.461.476.983 1.037 1.139.114.025.185.037.196.039h.001z' fill='#455A64'/><path d='M69.317 68.982c.489-.281.885-.056.885.505 0 .56-.396 1.243-.885 1.525-.488.282-.884.057-.884-.504 0-.56.396-1.243.884-1.526' fill='#FFF'/><path d='M68.92 71.133c-.289 0-.487-.228-.487-.625 0-.56.396-1.243.884-1.526a.812.812 0 0 1 .397-.121c.289 0 .488.229.488.626 0 .56-.396 1.243-.885 1.525a.812.812 0 0 1-.397.121m.794-2.459a.976.976 0 0 0-.49.147c-.548.317-.978 1.058-.978 1.687 0 .486.271.812.674.812a.985.985 0 0 0 .491-.146c.548-.317.978-1.057.978-1.687 0-.486-.272-.813-.675-.813' fill='#8097A2'/><path d='M68.92 70.947c-.271 0-.299-.307-.299-.439 0-.491.361-1.116.79-1.363a.632.632 0 0 1 .303-.096c.272 0 .301.306.301.438 0 .491-.363 1.116-.791 1.364a.629.629 0 0 1-.304.096m.794-2.086a.812.812 0 0 0-.397.121c-.488.283-.884.966-.884 1.526 0 .397.198.625.487.625a.812.812 0 0 0 .397-.121c.489-.282.885-.965.885-1.525 0-.397-.199-.626-.488-.626' fill='#8097A2'/><path d='M69.444 85.35c.264-.152.477-.031.477.272 0 .303-.213.67-.477.822-.263.153-.477.031-.477-.271 0-.302.214-.671.477-.823' fill='#FFF'/><path d='M69.23 86.51c-.156 0-.263-.123-.263-.337 0-.302.214-.671.477-.823a.431.431 0 0 1 .214-.066c.156 0 .263.124.263.338 0 .303-.213.67-.477.822a.431.431 0 0 1-.214.066m.428-1.412c-.1 0-.203.029-.307.09-.32.185-.57.618-.57.985 0 .309.185.524.449.524a.63.63 0 0 0 .308-.09c.32-.185.57-.618.57-.985 0-.309-.185-.524-.45-.524' fill='#8097A2'/><path d='M69.23 86.322l-.076-.149c0-.235.179-.544.384-.661l.12-.041.076.151c0 .234-.179.542-.383.66l-.121.04m.428-1.038a.431.431 0 0 0-.214.066c-.263.152-.477.521-.477.823 0 .214.107.337.263.337a.431.431 0 0 0 .214-.066c.264-.152.477-.519.477-.822 0-.214-.107-.338-.263-.338' fill='#8097A2'/><path d='M139.278 7.769v43.667L72.208 90.16V46.493l67.07-38.724' fill='#455A64'/><path d='M72.083 90.375V46.421l.063-.036 67.257-38.831v43.954l-.062.036-67.258 38.831zm.25-43.811v43.38l66.821-38.579V7.985L72.333 46.564z' fill='#607D8B'/></g><path d='M125.737 88.647l-7.639 3.334V84l-11.459 4.713v8.269L99 100.315l13.369 3.646 13.368-15.314' fill='#455A64'/></g></svg>";function Ee(){this.loadIcon_();var e=document.createElement("div");(o=e.style).position="fixed",o.top=0,o.right=0,o.bottom=0,o.left=0,o.backgroundColor="gray",o.fontFamily="sans-serif",o.zIndex=1e6;var t=document.createElement("img");t.src=this.icon,(o=t.style).marginLeft="25%",o.marginTop="25%",o.width="50%",e.appendChild(t);var n=document.createElement("div");(o=n.style).textAlign="center",o.fontSize="16px",o.lineHeight="24px",o.margin="24px 25%",o.width="50%",n.innerHTML="Place your phone into your Cardboard viewer.",e.appendChild(n);var r=document.createElement("div");(o=r.style).backgroundColor="#CFD8DC",o.position="fixed",o.bottom=0,o.width="100%",o.height="48px",o.padding="14px 24px",o.boxSizing="border-box",o.color="#656A6B",e.appendChild(r);var i=document.createElement("div");i.style.float="left",i.innerHTML="No Cardboard viewer?";var o,a=document.createElement("a");a.href="https://www.google.com/get/cardboard/get-cardboard/",a.innerHTML="get one",a.target="_blank",(o=a.style).float="right",o.fontWeight=600,o.textTransform="uppercase",o.borderLeft="1px solid gray",o.paddingLeft="24px",o.textDecoration="none",o.color="#656A6B",r.appendChild(i),r.appendChild(a),this.overlay=e,this.text=n,this.hide()}Ee.prototype.show=function(e){e||this.overlay.parentElement?e&&(this.overlay.parentElement&&this.overlay.parentElement!=e&&this.overlay.parentElement.removeChild(this.overlay),e.appendChild(this.overlay)):document.body.appendChild(this.overlay),this.overlay.style.display="block";var t=this.overlay.querySelector("img").style;v()?(t.width="20%",t.marginLeft="40%",t.marginTop="3%"):(t.width="50%",t.marginLeft="25%",t.marginTop="25%")},Ee.prototype.hide=function(){this.overlay.style.display="none"},Ee.prototype.showTemporarily=function(e,t){this.show(t),this.timer=setTimeout(this.hide.bind(this),e)},Ee.prototype.disableShowTemporarily=function(){clearTimeout(this.timer)},Ee.prototype.update=function(){this.disableShowTemporarily(),!v()&&T()?this.show():this.hide()},Ee.prototype.loadIcon_=function(){this.icon=a("image/svg+xml",xe)};var Me="CardboardV1",_e="WEBVR_CARDBOARD_VIEWER",Te="webvr-polyfill-viewer-selector";function Se(e){try{this.selectedKey=localStorage.getItem(_e)}catch(t){console.error("Failed to load viewer profile: %s",t)}this.selectedKey||(this.selectedKey=e||Me),this.dialog=this.createDialog_(le.Viewers),this.root=null,this.onChangeCallbacks_=[]}function Ce(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Le(e,t){return e(t={exports:{}},t.exports),t.exports}Se.prototype.show=function(e){this.root=e,e.appendChild(this.dialog),this.dialog.querySelector("#"+this.selectedKey).checked=!0,this.dialog.style.display="block"},Se.prototype.hide=function(){this.root&&this.root.contains(this.dialog)&&this.root.removeChild(this.dialog),this.dialog.style.display="none"},Se.prototype.getCurrentViewer=function(){return le.Viewers[this.selectedKey]},Se.prototype.getSelectedKey_=function(){var e=this.dialog.querySelector("input[name=field]:checked");return e?e.id:null},Se.prototype.onChange=function(e){this.onChangeCallbacks_.push(e)},Se.prototype.fireOnChange_=function(e){for(var t=0;t<this.onChangeCallbacks_.length;t++)this.onChangeCallbacks_[t](e)},Se.prototype.onSave_=function(){if(this.selectedKey=this.getSelectedKey_(),this.selectedKey&&le.Viewers[this.selectedKey]){this.fireOnChange_(le.Viewers[this.selectedKey]);try{localStorage.setItem(_e,this.selectedKey)}catch(e){console.error("Failed to save viewer profile: %s",e)}this.hide()}else console.error("ViewerSelector.onSave_: this should never happen!")},Se.prototype.createDialog_=function(e){var t=document.createElement("div");t.classList.add(Te),t.style.display="none";var n=document.createElement("div");(o=n.style).position="fixed",o.left=0,o.top=0,o.width="100%",o.height="100%",o.background="rgba(0, 0, 0, 0.3)",n.addEventListener("click",this.hide.bind(this));var r=280,i=document.createElement("div"),o=i.style;for(var a in o.boxSizing="border-box",o.position="fixed",o.top="24px",o.left="50%",o.marginLeft=-r/2+"px",o.width=r+"px",o.padding="24px",o.overflow="hidden",o.background="#fafafa",o.fontFamily="'Roboto', sans-serif",o.boxShadow="0px 5px 20px #666",i.appendChild(this.createH1_("Select your viewer")),e)i.appendChild(this.createChoice_(a,e[a].label));return i.appendChild(this.createButton_("Save",this.onSave_.bind(this))),t.appendChild(n),t.appendChild(i),t},Se.prototype.createH1_=function(e){var t=document.createElement("h1"),n=t.style;return n.color="black",n.fontSize="20px",n.fontWeight="bold",n.marginTop=0,n.marginBottom="24px",t.innerHTML=e,t},Se.prototype.createChoice_=function(e,t){var n=document.createElement("div");n.style.marginTop="8px",n.style.color="black";var r=document.createElement("input");r.style.fontSize="30px",r.setAttribute("id",e),r.setAttribute("type","radio"),r.setAttribute("value",e),r.setAttribute("name","field");var i=document.createElement("label");return i.style.marginLeft="4px",i.setAttribute("for",e),i.innerHTML=t,n.appendChild(r),n.appendChild(i),n},Se.prototype.createButton_=function(e,t){var n=document.createElement("button");n.innerHTML=e;var r=n.style;return r.float="right",r.textTransform="uppercase",r.color="#1094f7",r.fontSize="14px",r.letterSpacing=0,r.border=0,r.background="none",r.marginTop="16px",n.addEventListener("click",t),n},"undefined"!==typeof window?window:"undefined"!==typeof t||"undefined"!==typeof self&&self;var Re=Ce(Le((function(e,t){var n;n=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=n(1),a="undefined"!==typeof navigator&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream,s=function(){function e(){i(this,e),a?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("playsinline",""),this.noSleepVideo.setAttribute("src",o),this.noSleepVideo.addEventListener("timeupdate",function(e){this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())}.bind(this)))}return r(e,[{key:"enable",value:function(){a?(this.disable(),this.noSleepTimer=window.setInterval((function(){window.location.href="/",window.setTimeout(window.stop,0)}),15e3)):this.noSleepVideo.play()}},{key:"disable",value:function(){a?this.noSleepTimer&&(window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause()}}]),e}();e.exports=s},function(e,t,n){e.exports="data:video/mp4;base64,AAAAIGZ0eXBtcDQyAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACKBtZGF0AAAC8wYF///v3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0MiByMjQ3OSBkZDc5YTYxIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTEgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9MiBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0wIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MCA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0wIHRocmVhZHM9NiBsb29rYWhlYWRfdGhyZWFkcz0xIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVyYXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTMgYl9weXJhbWlkPTIgYl9hZGFwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MSBrZXlpbnQ9MzAwIGtleWludF9taW49MzAgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD0xMCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIwLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IHZidl9tYXhyYXRlPTIwMDAwIHZidl9idWZzaXplPTI1MDAwIGNyZl9tYXg9MC4wIG5hbF9ocmQ9bm9uZSBmaWxsZXI9MCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAOWWIhAA3//p+C7v8tDDSTjf97w55i3SbRPO4ZY+hkjD5hbkAkL3zpJ6h/LR1CAABzgB1kqqzUorlhQAAAAxBmiQYhn/+qZYADLgAAAAJQZ5CQhX/AAj5IQADQGgcIQADQGgcAAAACQGeYUQn/wALKCEAA0BoHAAAAAkBnmNEJ/8ACykhAANAaBwhAANAaBwAAAANQZpoNExDP/6plgAMuSEAA0BoHAAAAAtBnoZFESwr/wAI+SEAA0BoHCEAA0BoHAAAAAkBnqVEJ/8ACykhAANAaBwAAAAJAZ6nRCf/AAsoIQADQGgcIQADQGgcAAAADUGarDRMQz/+qZYADLghAANAaBwAAAALQZ7KRRUsK/8ACPkhAANAaBwAAAAJAZ7pRCf/AAsoIQADQGgcIQADQGgcAAAACQGe60Qn/wALKCEAA0BoHAAAAA1BmvA0TEM//qmWAAy5IQADQGgcIQADQGgcAAAAC0GfDkUVLCv/AAj5IQADQGgcAAAACQGfLUQn/wALKSEAA0BoHCEAA0BoHAAAAAkBny9EJ/8ACyghAANAaBwAAAANQZs0NExDP/6plgAMuCEAA0BoHAAAAAtBn1JFFSwr/wAI+SEAA0BoHCEAA0BoHAAAAAkBn3FEJ/8ACyghAANAaBwAAAAJAZ9zRCf/AAsoIQADQGgcIQADQGgcAAAADUGbeDRMQz/+qZYADLkhAANAaBwAAAALQZ+WRRUsK/8ACPghAANAaBwhAANAaBwAAAAJAZ+1RCf/AAspIQADQGgcAAAACQGft0Qn/wALKSEAA0BoHCEAA0BoHAAAAA1Bm7w0TEM//qmWAAy4IQADQGgcAAAAC0Gf2kUVLCv/AAj5IQADQGgcAAAACQGf+UQn/wALKCEAA0BoHCEAA0BoHAAAAAkBn/tEJ/8ACykhAANAaBwAAAANQZvgNExDP/6plgAMuSEAA0BoHCEAA0BoHAAAAAtBnh5FFSwr/wAI+CEAA0BoHAAAAAkBnj1EJ/8ACyghAANAaBwhAANAaBwAAAAJAZ4/RCf/AAspIQADQGgcAAAADUGaJDRMQz/+qZYADLghAANAaBwAAAALQZ5CRRUsK/8ACPkhAANAaBwhAANAaBwAAAAJAZ5hRCf/AAsoIQADQGgcAAAACQGeY0Qn/wALKSEAA0BoHCEAA0BoHAAAAA1Bmmg0TEM//qmWAAy5IQADQGgcAAAAC0GehkUVLCv/AAj5IQADQGgcIQADQGgcAAAACQGepUQn/wALKSEAA0BoHAAAAAkBnqdEJ/8ACyghAANAaBwAAAANQZqsNExDP/6plgAMuCEAA0BoHCEAA0BoHAAAAAtBnspFFSwr/wAI+SEAA0BoHAAAAAkBnulEJ/8ACyghAANAaBwhAANAaBwAAAAJAZ7rRCf/AAsoIQADQGgcAAAADUGa8DRMQz/+qZYADLkhAANAaBwhAANAaBwAAAALQZ8ORRUsK/8ACPkhAANAaBwAAAAJAZ8tRCf/AAspIQADQGgcIQADQGgcAAAACQGfL0Qn/wALKCEAA0BoHAAAAA1BmzQ0TEM//qmWAAy4IQADQGgcAAAAC0GfUkUVLCv/AAj5IQADQGgcIQADQGgcAAAACQGfcUQn/wALKCEAA0BoHAAAAAkBn3NEJ/8ACyghAANAaBwhAANAaBwAAAANQZt4NExC//6plgAMuSEAA0BoHAAAAAtBn5ZFFSwr/wAI+CEAA0BoHCEAA0BoHAAAAAkBn7VEJ/8ACykhAANAaBwAAAAJAZ+3RCf/AAspIQADQGgcAAAADUGbuzRMQn/+nhAAYsAhAANAaBwhAANAaBwAAAAJQZ/aQhP/AAspIQADQGgcAAAACQGf+UQn/wALKCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHAAACiFtb292AAAAbG12aGQAAAAA1YCCX9WAgl8AAAPoAAAH/AABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAGGlvZHMAAAAAEICAgAcAT////v7/AAAF+XRyYWsAAABcdGtoZAAAAAPVgIJf1YCCXwAAAAEAAAAAAAAH0AAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAygAAAMoAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAB9AAABdwAAEAAAAABXFtZGlhAAAAIG1kaGQAAAAA1YCCX9WAgl8AAV+QAAK/IFXEAAAAAAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAFZpZGVvSGFuZGxlcgAAAAUcbWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAAE3HN0YmwAAACYc3RzZAAAAAAAAAABAAAAiGF2YzEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAygDKAEgAAABIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY//8AAAAyYXZjQwFNQCj/4QAbZ01AKOyho3ySTUBAQFAAAAMAEAAr8gDxgxlgAQAEaO+G8gAAABhzdHRzAAAAAAAAAAEAAAA8AAALuAAAABRzdHNzAAAAAAAAAAEAAAABAAAB8GN0dHMAAAAAAAAAPAAAAAEAABdwAAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAAC7gAAAAAQAAF3AAAAABAAAAAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAEEc3RzegAAAAAAAAAAAAAAPAAAAzQAAAAQAAAADQAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAANAAAADQAAAQBzdGNvAAAAAAAAADwAAAAwAAADZAAAA3QAAAONAAADoAAAA7kAAAPQAAAD6wAAA/4AAAQXAAAELgAABEMAAARcAAAEbwAABIwAAAShAAAEugAABM0AAATkAAAE/wAABRIAAAUrAAAFQgAABV0AAAVwAAAFiQAABaAAAAW1AAAFzgAABeEAAAX+AAAGEwAABiwAAAY/AAAGVgAABnEAAAaEAAAGnQAABrQAAAbPAAAG4gAABvUAAAcSAAAHJwAAB0AAAAdTAAAHcAAAB4UAAAeeAAAHsQAAB8gAAAfjAAAH9gAACA8AAAgmAAAIQQAACFQAAAhnAAAIhAAACJcAAAMsdHJhawAAAFx0a2hkAAAAA9WAgl/VgIJfAAAAAgAAAAAAAAf8AAAAAAAAAAAAAAABAQAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAACsm1kaWEAAAAgbWRoZAAAAADVgIJf1YCCXwAArEQAAWAAVcQAAAAAACdoZGxyAAAAAAAAAABzb3VuAAAAAAAAAAAAAAAAU3RlcmVvAAAAAmNtaW5mAAAAEHNtaGQAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAidzdGJsAAAAZ3N0c2QAAAAAAAAAAQAAAFdtcDRhAAAAAAAAAAEAAAAAAAAAAAACABAAAAAArEQAAAAAADNlc2RzAAAAAAOAgIAiAAIABICAgBRAFQAAAAADDUAAAAAABYCAgAISEAaAgIABAgAAABhzdHRzAAAAAAAAAAEAAABYAAAEAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAAUc3RzegAAAAAAAAAGAAAAWAAAAXBzdGNvAAAAAAAAAFgAAAOBAAADhwAAA5oAAAOtAAADswAAA8oAAAPfAAAD5QAAA/gAAAQLAAAEEQAABCgAAAQ9AAAEUAAABFYAAARpAAAEgAAABIYAAASbAAAErgAABLQAAATHAAAE3gAABPMAAAT5AAAFDAAABR8AAAUlAAAFPAAABVEAAAVXAAAFagAABX0AAAWDAAAFmgAABa8AAAXCAAAFyAAABdsAAAXyAAAF+AAABg0AAAYgAAAGJgAABjkAAAZQAAAGZQAABmsAAAZ+AAAGkQAABpcAAAauAAAGwwAABskAAAbcAAAG7wAABwYAAAcMAAAHIQAABzQAAAc6AAAHTQAAB2QAAAdqAAAHfwAAB5IAAAeYAAAHqwAAB8IAAAfXAAAH3QAAB/AAAAgDAAAICQAACCAAAAg1AAAIOwAACE4AAAhhAAAIeAAACH4AAAiRAAAIpAAACKoAAAiwAAAItgAACLwAAAjCAAAAFnVkdGEAAAAObmFtZVN0ZXJlbwAAAHB1ZHRhAAAAaG1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAAO2lsc3QAAAAzqXRvbwAAACtkYXRhAAAAAQAAAABIYW5kQnJha2UgMC4xMC4yIDIwMTUwNjExMDA="}])},e.exports=n()}))),Pe=1e3,De=[0,0,.5,1],Oe=[.5,0,.5,1],Ie=window.requestAnimationFrame,Be=window.cancelAnimationFrame;function Fe(){this.leftProjectionMatrix=new Float32Array(16),this.leftViewMatrix=new Float32Array(16),this.rightProjectionMatrix=new Float32Array(16),this.rightViewMatrix=new Float32Array(16),this.pose=null}function ke(e){Object.defineProperties(this,{hasPosition:{writable:!1,enumerable:!0,value:e.hasPosition},hasExternalDisplay:{writable:!1,enumerable:!0,value:e.hasExternalDisplay},canPresent:{writable:!1,enumerable:!0,value:e.canPresent},maxLayers:{writable:!1,enumerable:!0,value:e.maxLayers},hasOrientation:{enumerable:!0,get:function(){return I("VRDisplayCapabilities.prototype.hasOrientation","VRDisplay.prototype.getFrameData"),e.hasOrientation}}})}function Ne(e){var t=!("wakelock"in(e=e||{}))||e.wakelock;this.isPolyfilled=!0,this.displayId=Pe++,this.displayName="",this.depthNear=.01,this.depthFar=1e4,this.isPresenting=!1,Object.defineProperty(this,"isConnected",{get:function(){return I("VRDisplay.prototype.isConnected","VRDisplayCapabilities.prototype.hasExternalDisplay"),!1}}),this.capabilities=new ke({hasPosition:!1,hasOrientation:!1,hasExternalDisplay:!1,canPresent:!1,maxLayers:1}),this.stageParameters=null,this.waitingForPresent_=!1,this.layer_=null,this.originalParent_=null,this.fullscreenElement_=null,this.fullscreenWrapper_=null,this.fullscreenElementCachedStyle_=null,this.fullscreenEventTarget_=null,this.fullscreenChangeHandler_=null,this.fullscreenErrorHandler_=null,t&&T()&&(this.wakelock_=new Re)}Ne.prototype.getFrameData=function(e){return L(e,this._getPose(),this)},Ne.prototype.getPose=function(){return I("VRDisplay.prototype.getPose","VRDisplay.prototype.getFrameData"),this._getPose()},Ne.prototype.resetPose=function(){return I("VRDisplay.prototype.resetPose"),this._resetPose()},Ne.prototype.getImmediatePose=function(){return I("VRDisplay.prototype.getImmediatePose","VRDisplay.prototype.getFrameData"),this._getPose()},Ne.prototype.requestAnimationFrame=function(e){return Ie(e)},Ne.prototype.cancelAnimationFrame=function(e){return Be(e)},Ne.prototype.wrapForFullscreen=function(e){if(l())return e;if(!this.fullscreenWrapper_){this.fullscreenWrapper_=document.createElement("div");var t=["height: "+Math.min(screen.height,screen.width)+"px !important","top: 0 !important","left: 0 !important","right: 0 !important","border: 0","margin: 0","padding: 0","z-index: 999999 !important","position: fixed"];this.fullscreenWrapper_.setAttribute("style",t.join("; ")+";"),this.fullscreenWrapper_.classList.add("webvr-polyfill-fullscreen-wrapper")}if(this.fullscreenElement_==e)return this.fullscreenWrapper_;if(this.fullscreenElement_&&(this.originalParent_?this.originalParent_.appendChild(this.fullscreenElement_):this.fullscreenElement_.parentElement.removeChild(this.fullscreenElement_)),this.fullscreenElement_=e,this.originalParent_=e.parentElement,this.originalParent_||document.body.appendChild(e),!this.fullscreenWrapper_.parentElement){var n=this.fullscreenElement_.parentElement;n.insertBefore(this.fullscreenWrapper_,this.fullscreenElement_),n.removeChild(this.fullscreenElement_)}this.fullscreenWrapper_.insertBefore(this.fullscreenElement_,this.fullscreenWrapper_.firstChild),this.fullscreenElementCachedStyle_=this.fullscreenElement_.getAttribute("style");var r=this;function i(){if(r.fullscreenElement_){var e=["position: absolute","top: 0","left: 0","width: "+Math.max(screen.width,screen.height)+"px","height: "+Math.min(screen.height,screen.width)+"px","border: 0","margin: 0","padding: 0"];r.fullscreenElement_.setAttribute("style",e.join("; ")+";")}}return i(),this.fullscreenWrapper_},Ne.prototype.removeFullscreenWrapper=function(){if(this.fullscreenElement_){var e=this.fullscreenElement_;this.fullscreenElementCachedStyle_?e.setAttribute("style",this.fullscreenElementCachedStyle_):e.removeAttribute("style"),this.fullscreenElement_=null,this.fullscreenElementCachedStyle_=null;var t=this.fullscreenWrapper_.parentElement;return this.fullscreenWrapper_.removeChild(e),this.originalParent_===t?t.insertBefore(e,this.fullscreenWrapper_):this.originalParent_&&this.originalParent_.appendChild(e),t.removeChild(this.fullscreenWrapper_),e}},Ne.prototype.requestPresent=function(e){var t=this.isPresenting,n=this;return e instanceof Array||(I("VRDisplay.prototype.requestPresent with non-array argument","an array of VRLayers as the first argument"),e=[e]),new Promise((function(r,i){if(n.capabilities.canPresent)if(0==e.length||e.length>n.capabilities.maxLayers)i(new Error("Invalid number of layers."));else{var o=e[0];if(o.source){var a=o.leftBounds||De,s=o.rightBounds||Oe;if(t){var u=n.layer_;u.source!==o.source&&(u.source=o.source);for(var h=0;h<4;h++)u.leftBounds[h]=a[h],u.rightBounds[h]=s[h];return n.wrapForFullscreen(n.layer_.source),n.updatePresent_(),void r()}if(n.layer_={predistorted:o.predistorted,source:o.source,leftBounds:a.slice(0),rightBounds:s.slice(0)},n.waitingForPresent_=!1,n.layer_&&n.layer_.source){var d=n.wrapForFullscreen(n.layer_.source),p=function(){var e=x();n.isPresenting=d===e,n.isPresenting?(screen.orientation&&screen.orientation.lock&&screen.orientation.lock("landscape-primary").catch((function(e){console.error("screen.orientation.lock() failed due to",e.message)})),n.waitingForPresent_=!1,n.beginPresent_(),r()):(screen.orientation&&screen.orientation.unlock&&screen.orientation.unlock(),n.removeFullscreenWrapper(),n.disableWakeLock(),n.endPresent_(),n.removeFullscreenListeners_()),n.fireVRDisplayPresentChange_()},f=function(){n.waitingForPresent_&&(n.removeFullscreenWrapper(),n.removeFullscreenListeners_(),n.disableWakeLock(),n.waitingForPresent_=!1,n.isPresenting=!1,i(new Error("Unable to present.")))};n.addFullscreenListeners_(d,p,f),A(d)?(n.enableWakeLock(),n.waitingForPresent_=!0):(l()||c())&&(n.enableWakeLock(),n.isPresenting=!0,n.beginPresent_(),n.fireVRDisplayPresentChange_(),r())}n.waitingForPresent_||l()||(w(),i(new Error("Unable to present.")))}else r()}else i(new Error("VRDisplay is not capable of presenting."))}))},Ne.prototype.exitPresent=function(){var e=this.isPresenting,t=this;return this.isPresenting=!1,this.layer_=null,this.disableWakeLock(),new Promise((function(n,r){e?(!w()&&l()&&(t.endPresent_(),t.fireVRDisplayPresentChange_()),c()&&(t.removeFullscreenWrapper(),t.removeFullscreenListeners_(),t.endPresent_(),t.fireVRDisplayPresentChange_()),n()):r(new Error("Was not presenting to VRDisplay."))}))},Ne.prototype.getLayers=function(){return this.layer_?[this.layer_]:[]},Ne.prototype.fireVRDisplayPresentChange_=function(){var e=new CustomEvent("vrdisplaypresentchange",{detail:{display:this}});window.dispatchEvent(e)},Ne.prototype.fireVRDisplayConnect_=function(){var e=new CustomEvent("vrdisplayconnect",{detail:{display:this}});window.dispatchEvent(e)},Ne.prototype.addFullscreenListeners_=function(e,t,n){this.removeFullscreenListeners_(),this.fullscreenEventTarget_=e,this.fullscreenChangeHandler_=t,this.fullscreenErrorHandler_=n,t&&(document.fullscreenEnabled?e.addEventListener("fullscreenchange",t,!1):document.webkitFullscreenEnabled?e.addEventListener("webkitfullscreenchange",t,!1):document.mozFullScreenEnabled?document.addEventListener("mozfullscreenchange",t,!1):document.msFullscreenEnabled&&e.addEventListener("msfullscreenchange",t,!1)),n&&(document.fullscreenEnabled?e.addEventListener("fullscreenerror",n,!1):document.webkitFullscreenEnabled?e.addEventListener("webkitfullscreenerror",n,!1):document.mozFullScreenEnabled?document.addEventListener("mozfullscreenerror",n,!1):document.msFullscreenEnabled&&e.addEventListener("msfullscreenerror",n,!1))},Ne.prototype.removeFullscreenListeners_=function(){if(this.fullscreenEventTarget_){var e=this.fullscreenEventTarget_;if(this.fullscreenChangeHandler_){var t=this.fullscreenChangeHandler_;e.removeEventListener("fullscreenchange",t,!1),e.removeEventListener("webkitfullscreenchange",t,!1),document.removeEventListener("mozfullscreenchange",t,!1),e.removeEventListener("msfullscreenchange",t,!1)}if(this.fullscreenErrorHandler_){var n=this.fullscreenErrorHandler_;e.removeEventListener("fullscreenerror",n,!1),e.removeEventListener("webkitfullscreenerror",n,!1),document.removeEventListener("mozfullscreenerror",n,!1),e.removeEventListener("msfullscreenerror",n,!1)}this.fullscreenEventTarget_=null,this.fullscreenChangeHandler_=null,this.fullscreenErrorHandler_=null}},Ne.prototype.enableWakeLock=function(){this.wakelock_&&this.wakelock_.enable()},Ne.prototype.disableWakeLock=function(){this.wakelock_&&this.wakelock_.disable()},Ne.prototype.beginPresent_=function(){},Ne.prototype.endPresent_=function(){},Ne.prototype.submitFrame=function(e){},Ne.prototype.getEyeParameters=function(e){return null};var Ue={ADDITIONAL_VIEWERS:[],DEFAULT_VIEWER:"",MOBILE_WAKE_LOCK:!0,DEBUG:!1,DPDB_URL:"https://dpdb.webvr.rocks/dpdb.json",K_FILTER:.98,PREDICTION_TIME_S:.04,CARDBOARD_UI_DISABLED:!1,ROTATE_INSTRUCTIONS_DISABLED:!1,YAW_ONLY:!1,BUFFER_SCALE:.5,DIRTY_SUBMIT_FRAME_BINDINGS:!1},He={LEFT:"left",RIGHT:"right"};function Ge(e){var t=S({},Ue);e=S(t,e||{}),Ne.call(this,{wakelock:e.MOBILE_WAKE_LOCK}),this.config=e,this.displayName="Cardboard VRDisplay",this.capabilities=new ke({hasPosition:!1,hasOrientation:!0,hasExternalDisplay:!1,canPresent:!0,maxLayers:1}),this.stageParameters=null,this.bufferScale_=this.config.BUFFER_SCALE,this.poseSensor_=new we(this.config),this.distorter_=null,this.cardboardUI_=null,this.dpdb_=new he(this.config.DPDB_URL,this.onDeviceParamsUpdated_.bind(this)),this.deviceInfo_=new le(this.dpdb_.getDeviceParams(),e.ADDITIONAL_VIEWERS),this.viewerSelector_=new Se(e.DEFAULT_VIEWER),this.viewerSelector_.onChange(this.onViewerChanged_.bind(this)),this.deviceInfo_.setViewer(this.viewerSelector_.getCurrentViewer()),this.config.ROTATE_INSTRUCTIONS_DISABLED||(this.rotateInstructions_=new Ee),l()&&window.addEventListener("resize",this.onResize_.bind(this))}return Ge.prototype=Object.create(Ne.prototype),Ge.prototype._getPose=function(){return{position:null,orientation:this.poseSensor_.getOrientation(),linearVelocity:null,linearAcceleration:null,angularVelocity:null,angularAcceleration:null}},Ge.prototype._resetPose=function(){this.poseSensor_.resetPose&&this.poseSensor_.resetPose()},Ge.prototype._getFieldOfView=function(e){var t;if(e==He.LEFT)t=this.deviceInfo_.getFieldOfViewLeftEye();else{if(e!=He.RIGHT)return console.error("Invalid eye provided: %s",e),null;t=this.deviceInfo_.getFieldOfViewRightEye()}return t},Ge.prototype._getEyeOffset=function(e){var t;if(e==He.LEFT)t=[.5*-this.deviceInfo_.viewer.interLensDistance,0,0];else{if(e!=He.RIGHT)return console.error("Invalid eye provided: %s",e),null;t=[.5*this.deviceInfo_.viewer.interLensDistance,0,0]}return t},Ge.prototype.getEyeParameters=function(e){var t=this._getEyeOffset(e),n=this._getFieldOfView(e),r={offset:t,renderWidth:.5*this.deviceInfo_.device.width*this.bufferScale_,renderHeight:this.deviceInfo_.device.height*this.bufferScale_};return Object.defineProperty(r,"fieldOfView",{enumerable:!0,get:function(){return I("VRFieldOfView","VRFrameData's projection matrices"),n}}),r},Ge.prototype.onDeviceParamsUpdated_=function(e){this.config.DEBUG&&console.log("DPDB reported that device params were updated."),this.deviceInfo_.updateDeviceParams(e),this.distorter_&&this.distorter_.updateDeviceInfo(this.deviceInfo_)},Ge.prototype.updateBounds_=function(){this.layer_&&this.distorter_&&(this.layer_.leftBounds||this.layer_.rightBounds)&&this.distorter_.setTextureBounds(this.layer_.leftBounds,this.layer_.rightBounds)},Ge.prototype.beginPresent_=function(){var e=this.layer_.source.getContext("webgl");e||(e=this.layer_.source.getContext("experimental-webgl")),e||(e=this.layer_.source.getContext("webgl2")),e&&(this.layer_.predistorted?this.config.CARDBOARD_UI_DISABLED||(e.canvas.width=y()*this.bufferScale_,e.canvas.height=b()*this.bufferScale_,this.cardboardUI_=new J(e)):(this.config.CARDBOARD_UI_DISABLED||(this.cardboardUI_=new J(e)),this.distorter_=new U(e,this.cardboardUI_,this.config.BUFFER_SCALE,this.config.DIRTY_SUBMIT_FRAME_BINDINGS),this.distorter_.updateDeviceInfo(this.deviceInfo_)),this.cardboardUI_&&this.cardboardUI_.listen(function(e){this.viewerSelector_.show(this.layer_.source.parentElement),e.stopPropagation(),e.preventDefault()}.bind(this),function(e){this.exitPresent(),e.stopPropagation(),e.preventDefault()}.bind(this)),this.rotateInstructions_&&(v()&&T()?this.rotateInstructions_.showTemporarily(3e3,this.layer_.source.parentElement):this.rotateInstructions_.update()),this.orientationHandler=this.onOrientationChange_.bind(this),window.addEventListener("orientationchange",this.orientationHandler),this.vrdisplaypresentchangeHandler=this.updateBounds_.bind(this),window.addEventListener("vrdisplaypresentchange",this.vrdisplaypresentchangeHandler),this.fireVRDisplayDeviceParamsChange_())},Ge.prototype.endPresent_=function(){this.distorter_&&(this.distorter_.destroy(),this.distorter_=null),this.cardboardUI_&&(this.cardboardUI_.destroy(),this.cardboardUI_=null),this.rotateInstructions_&&this.rotateInstructions_.hide(),this.viewerSelector_.hide(),window.removeEventListener("orientationchange",this.orientationHandler),window.removeEventListener("vrdisplaypresentchange",this.vrdisplaypresentchangeHandler)},Ge.prototype.updatePresent_=function(){this.endPresent_(),this.beginPresent_()},Ge.prototype.submitFrame=function(e){if(this.distorter_)this.updateBounds_(),this.distorter_.submitFrame();else if(this.cardboardUI_&&this.layer_){var t=this.layer_.source.getContext("webgl");t||(t=this.layer_.source.getContext("experimental-webgl")),t||(t=this.layer_.source.getContext("webgl2"));var n=t.canvas;n.width==this.lastWidth&&n.height==this.lastHeight||this.cardboardUI_.onResize(),this.lastWidth=n.width,this.lastHeight=n.height,this.cardboardUI_.render()}},Ge.prototype.onOrientationChange_=function(e){this.viewerSelector_.hide(),this.rotateInstructions_&&this.rotateInstructions_.update(),this.onResize_()},Ge.prototype.onResize_=function(e){if(this.layer_){var t=this.layer_.source.getContext("webgl");t||(t=this.layer_.source.getContext("experimental-webgl")),t||(t=this.layer_.source.getContext("webgl2"));var n=["position: absolute","top: 0","left: 0","width: 100vw","height: 100vh","border: 0","margin: 0","padding: 0px","box-sizing: content-box"];t.canvas.setAttribute("style",n.join("; ")+";"),C(t.canvas)}},Ge.prototype.onViewerChanged_=function(e){this.deviceInfo_.setViewer(e),this.distorter_&&this.distorter_.updateDeviceInfo(this.deviceInfo_),this.fireVRDisplayDeviceParamsChange_()},Ge.prototype.fireVRDisplayDeviceParamsChange_=function(){var e=new CustomEvent("vrdisplaydeviceparamschange",{detail:{vrdisplay:this,deviceInfo:this.deviceInfo_}});window.dispatchEvent(e)},Ge.VRFrameData=Fe,Ge.VRDisplay=Ne,Ge},e.exports=r()}))),l="0.10.12",c={ADDITIONAL_VIEWERS:[],DEFAULT_VIEWER:"",PROVIDE_MOBILE_VRDISPLAY:!0,MOBILE_WAKE_LOCK:!0,DEBUG:!1,DPDB_URL:"https://dpdb.webvr.rocks/dpdb.json",K_FILTER:.98,PREDICTION_TIME_S:.04,CARDBOARD_UI_DISABLED:!1,ROTATE_INSTRUCTIONS_DISABLED:!1,YAW_ONLY:!1,BUFFER_SCALE:.5,DIRTY_SUBMIT_FRAME_BINDINGS:!1};function u(e){this.config=a(a({},c),e),this.polyfillDisplays=[],this.enabled=!1,this.hasNative="getVRDisplays"in navigator,this.native={},this.native.getVRDisplays=navigator.getVRDisplays,this.native.VRFrameData=window.VRFrameData,this.native.VRDisplay=window.VRDisplay,(!this.hasNative||this.config.PROVIDE_MOBILE_VRDISPLAY&&i())&&(this.enable(),this.getVRDisplays().then((function(e){e&&e[0]&&e[0].fireVRDisplayConnect_&&e[0].fireVRDisplayConnect_()})))}u.prototype.getPolyfillDisplays=function(){if(this._polyfillDisplaysPopulated)return this.polyfillDisplays;if(i()){var e=new s({ADDITIONAL_VIEWERS:this.config.ADDITIONAL_VIEWERS,DEFAULT_VIEWER:this.config.DEFAULT_VIEWER,MOBILE_WAKE_LOCK:this.config.MOBILE_WAKE_LOCK,DEBUG:this.config.DEBUG,DPDB_URL:this.config.DPDB_URL,CARDBOARD_UI_DISABLED:this.config.CARDBOARD_UI_DISABLED,K_FILTER:this.config.K_FILTER,PREDICTION_TIME_S:this.config.PREDICTION_TIME_S,ROTATE_INSTRUCTIONS_DISABLED:this.config.ROTATE_INSTRUCTIONS_DISABLED,YAW_ONLY:this.config.YAW_ONLY,BUFFER_SCALE:this.config.BUFFER_SCALE,DIRTY_SUBMIT_FRAME_BINDINGS:this.config.DIRTY_SUBMIT_FRAME_BINDINGS});this.polyfillDisplays.push(e)}return this._polyfillDisplaysPopulated=!0,this.polyfillDisplays},u.prototype.enable=function(){if(this.enabled=!0,this.hasNative&&this.native.VRFrameData){var e=this.native.VRFrameData,t=new this.native.VRFrameData,n=this.native.VRDisplay.prototype.getFrameData;window.VRDisplay.prototype.getFrameData=function(r){r instanceof e?n.call(this,r):(n.call(this,t),r.pose=t.pose,o(t.leftProjectionMatrix,r.leftProjectionMatrix),o(t.rightProjectionMatrix,r.rightProjectionMatrix),o(t.leftViewMatrix,r.leftViewMatrix),o(t.rightViewMatrix,r.rightViewMatrix))}}navigator.getVRDisplays=this.getVRDisplays.bind(this),window.VRDisplay=s.VRDisplay,window.VRFrameData=s.VRFrameData},u.prototype.getVRDisplays=function(){var e=this;return this.config,this.hasNative?this.native.getVRDisplays.call(navigator).then((function(t){return t.length>0?t:e.getPolyfillDisplays()})):Promise.resolve(this.getPolyfillDisplays())},u.version=l,u.VRFrameData=s.VRFrameData,u.VRDisplay=s.VRDisplay;var h=Object.freeze({default:u}),d=h&&u||h;return"undefined"!==typeof t&&t.window&&(t.document||(t.document=t.window.document),t.navigator||(t.navigator=t.window.navigator)),d}))}).call(this,"undefined"!==typeof r.g?r.g:"undefined"!==typeof self?self:"undefined"!==typeof window?window:{})},{}],69:[function(e,t,n){var r=/\n/,i="\n",o=/\s/;function a(e,t,n,r){var i=e.indexOf(t,n);return-1===i||i>r?r:i}function s(e){return o.test(e)}function l(e,t,n,i,o){for(var a=[],s=n,l=n;l<i&&l<t.length;l++){var c=t.charAt(l),u=r.test(c);if(u||l===i-1){var h=e(t,s,u?l:l+1,o);a.push(h),s=l+1}}return a}function c(e,t,n,r,o,l){var c=[],u=o;for("nowrap"===l&&(u=Number.MAX_VALUE);n<r&&n<t.length;){for(var h=a(t,i,n,r);n<h&&s(t.charAt(n));)n++;var d=e(t,n,h,u),p=n+(d.end-d.start),f=p+i.length;if(p<h){for(;p>n&&!s(t.charAt(p));)p--;if(p===n)f>n+i.length&&f--,p=f;else for(f=p;p>n&&s(t.charAt(p-i.length));)p--}if(p>=n){var m=e(t,n,p,u);c.push(m)}n=f}return c}function u(e,t,n,r){return{start:t,end:t+Math.min(r,n-t)}}t.exports=function(e,n){return t.exports.lines(e,n).map((function(t){return e.substring(t.start,t.end)})).join("\n")},t.exports.lines=function(e,t){if(0===(t=t||{}).width&&"nowrap"!==t.mode)return[];e=e||"";var n="number"===typeof t.width?t.width:Number.MAX_VALUE,r=Math.max(0,t.start||0),i="number"===typeof t.end?t.end:e.length,o=t.mode,a=t.measure||u;return"pre"===o?l(a,e,r,i,n):c(a,e,r,i,n,o)}},{}],70:[function(t,n,r){"use strict";var i=t("global/window"),o=t("is-function"),a=t("parse-headers"),s=t("xtend");function l(e,t){for(var n=0;n<e.length;n++)t(e[n])}function c(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}function u(e,t,n){var r=e;return o(t)?(n=t,"string"===typeof e&&(r={uri:e})):r=s(t,{uri:e}),r.callback=n,r}function h(e,t,n){return d(t=u(e,t,n))}function d(t){if("undefined"===typeof t.callback)throw new Error("callback argument missing");var n=!1,r=function(e,r,i){n||(n=!0,t.callback(e,r,i))};function i(){4===f.readyState&&setTimeout(l,0)}function o(){var t=void 0;if(t=f.response?f.response:f.responseText||p(f),w)try{t=JSON.parse(t)}catch(e){}return t}function s(e){return clearTimeout(m),e instanceof Error||(e=new Error(""+(e||"Unknown XMLHttpRequest Error"))),e.statusCode=0,r(e,x)}function l(){if(!d){var e;clearTimeout(m),e=t.useXDR&&void 0===f.status?200:1223===f.status?204:f.status;var n=x,i=null;return 0!==e?(n={body:o(),statusCode:e,method:g,headers:{},url:v,rawRequest:f},f.getAllResponseHeaders&&(n.headers=a(f.getAllResponseHeaders()))):i=new Error("Internal XMLHttpRequest Error"),r(i,n,n.body)}}var u,d,f=t.xhr||null;f||(f=t.cors||t.useXDR?new h.XDomainRequest:new h.XMLHttpRequest);var m,v=f.url=t.uri||t.url,g=f.method=t.method||"GET",y=t.body||t.data,b=f.headers=t.headers||{},A=!!t.sync,w=!1,x={body:void 0,headers:{},statusCode:0,method:g,url:v,rawRequest:f};if("json"in t&&!1!==t.json&&(w=!0,b.accept||b.Accept||(b.Accept="application/json"),"GET"!==g&&"HEAD"!==g&&(b["content-type"]||b["Content-Type"]||(b["Content-Type"]="application/json"),y=JSON.stringify(!0===t.json?y:t.json))),f.onreadystatechange=i,f.onload=l,f.onerror=s,f.onprogress=function(){},f.onabort=function(){d=!0},f.ontimeout=s,f.open(g,v,!A,t.username,t.password),A||(f.withCredentials=!!t.withCredentials),!A&&t.timeout>0&&(m=setTimeout((function(){if(!d){d=!0,f.abort("timeout");var e=new Error("XMLHttpRequest timeout");e.code="ETIMEDOUT",s(e)}}),t.timeout)),f.setRequestHeader)for(u in b)b.hasOwnProperty(u)&&f.setRequestHeader(u,b[u]);else if(t.headers&&!c(t.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in t&&(f.responseType=t.responseType),"beforeSend"in t&&"function"===typeof t.beforeSend&&t.beforeSend(f),f.send(y||null),f}function p(t){try{if("document"===t.responseType)return t.responseXML;var n=t.responseXML&&"parsererror"===t.responseXML.documentElement.nodeName;if(""===t.responseType&&!n)return t.responseXML}catch(e){}return null}function f(){}n.exports=h,n.exports.default=h,h.XMLHttpRequest=i.XMLHttpRequest||f,h.XDomainRequest="withCredentials"in new h.XMLHttpRequest?h.XMLHttpRequest:i.XDomainRequest,l(["get","put","post","patch","head","delete"],(function(e){h["delete"===e?"del":e]=function(t,n,r){return(n=u(t,n,r)).method=e.toUpperCase(),d(n)}}))},{"global/window":27,"is-function":33,"parse-headers":47,xtend:72}],71:[function(e,t,n){t.exports="undefined"!==typeof self.DOMParser?function(e){return(new self.DOMParser).parseFromString(e,"application/xml")}:"undefined"!==typeof self.ActiveXObject&&new self.ActiveXObject("Microsoft.XMLDOM")?function(e){var t=new self.ActiveXObject("Microsoft.XMLDOM");return t.async="false",t.loadXML(e),t}:function(e){var t=document.createElement("div");return t.innerHTML=e,t}},{}],72:[function(e,t,n){t.exports=i;var r=Object.prototype.hasOwnProperty;function i(){for(var e={},t=0;t<arguments.length;t++){var n=arguments[t];for(var i in n)r.call(n,i)&&(e[i]=n[i])}return e}},{}],73:[function(e,t,n){t.exports={name:"aframe",version:"1.2.0",description:"A web framework for building virtual reality experiences.",homepage:"https://aframe.io/",main:"dist/aframe-master.js",scripts:{browserify:"browserify src/index.js -s 'AFRAME' -p browserify-derequire",build:"shx mkdir -p build/ && npm run browserify -- --debug -t [ envify --INSPECTOR_VERSION dev ] -o build/aframe.js",codecov:"codecov",dev:"npm run build && cross-env INSPECTOR_VERSION=dev node ./scripts/budo -t envify",dist:"node scripts/updateVersionLog.js && npm run dist:min && npm run dist:max","dist:max":"npm run browserify -s -- --debug | exorcist dist/aframe-master.js.map > dist/aframe-master.js","dist:min":"npm run browserify -s -- --debug -p [ minifyify --map aframe-master.min.js.map --output dist/aframe-master.min.js.map ] -o dist/aframe-master.min.js",docs:"markserv --dir docs --port 9001",preghpages:"node ./scripts/preghpages.js",ghpages:"ghpages -p gh-pages/",lint:"semistandard -v | snazzy","lint:fix":"semistandard --fix",precommit:"npm run lint",prepush:"node scripts/testOnlyCheck.js",prerelease:"node scripts/release.js 1.0.4 1.1.0",start:"npm run dev","start:https":"cross-env SSL=true npm run dev",test:"karma start ./tests/karma.conf.js","test:docs":"node scripts/docsLint.js","test:firefox":"npm test -- --browsers Firefox","test:chrome":"npm test -- --browsers Chrome","test:nobrowser":"NO_BROWSER=true npm test","test:node":"mocha --ui tdd tests/node"},repository:"aframevr/aframe",license:"MIT",files:["dist/*","docs/**/*","src/**/*","vendor/**/*"],dependencies:{"custom-event-polyfill":"^1.0.6",debug:"ngokevin/debug#noTimestamp","deep-assign":"^2.0.0","document-register-element":"dmarcos/document-register-element#8ccc532b7f3744be954574caf3072a5fd260ca90","load-bmfont":"^1.2.3","object-assign":"^4.0.1",present:"0.0.6","promise-polyfill":"^3.1.0","super-animejs":"^3.1.0","super-three":"^0.125.1","three-bmfont-text":"dmarcos/three-bmfont-text#1babdf8507c731a18f8af3b807292e2b9740955e","webvr-polyfill":"^0.10.12"},devDependencies:{browserify:"^13.1.0","browserify-css":"^0.8.4","browserify-derequire":"^0.9.4","browserify-istanbul":"^2.0.0",budo:"^9.2.0",chai:"^3.5.0","chai-shallow-deep-equal":"^1.4.0",chalk:"^1.1.3",codecov:"^1.0.1","cross-env":"^5.0.1",envify:"^3.4.1",exorcist:"^0.4.0",ghpages:"0.0.8","git-rev":"^0.2.1",glob:"^7.1.1",husky:"^0.11.7",istanbul:"^0.4.5",jsdom:"^9.11.0",karma:"1.4.1","karma-browserify":"^5.1.0","karma-chai-shallow-deep-equal":"0.0.4","karma-chrome-launcher":"^2.0.0","karma-coverage":"^1.1.1","karma-env-preprocessor":"^0.1.1","karma-firefox-launcher":"^1.2.0","karma-mocha":"^1.1.1","karma-mocha-reporter":"^2.1.0","karma-sinon-chai":"1.2.4",lolex:"^1.5.1",markserv:"github:sukima/markserv#feature/fix-broken-websoketio-link",minifyify:"^7.3.3",mocha:"^3.0.2","mozilla-download":"^1.1.1","replace-in-file":"^2.5.3",semistandard:"^9.0.0",shelljs:"^0.7.7",shx:"^0.2.2",sinon:"^1.17.5","sinon-chai":"2.8.0",snazzy:"^5.0.0","too-wordy":"ngokevin/too-wordy",uglifyjs:"^2.4.10","write-good":"^0.9.1"},link:!0,browserify:{transform:["browserify-css","envify"]},semistandard:{ignore:["build/**","dist/**","examples/**/shaders/*.js","**/vendor/**"]},keywords:["3d","aframe","cardboard","components","oculus","three","three.js","rift","vive","vr","web-components","webvr"],"browserify-css":{minify:!0},engines:{node:">= 4.6.0",npm:"^2.15.9"}}},{}],74:[function(e,t,n){var r=e("super-animejs"),i=e("../core/component").components,o=e("../core/component").registerComponent,a=e("../lib/three"),s=e("../utils"),l=new a.Color,c=new a.Color,u=s.entity.getComponentProperty,h=s.entity.setComponentProperty,d={},p="color",f="position",m="rotation",v="scale",g="components",y="object3D";function b(e,t){var n,r,o,a;return r=(o=t.split("."))[0],a=o[1],(n=e.components[r]||i[r])?a&&!n.schema[a]?null:a?n.schema[a].type:n.schema.type:null}function A(e){e.x=a.Math.degToRad(e.x),e.y=a.Math.degToRad(e.y),e.z=a.Math.degToRad(e.z)}function w(e,t,n){var r;for(r=0;r<t.length;r++)e.addEventListener(t[r],n)}function x(e,t,n){var r;for(r=0;r<t.length;r++)e.removeEventListener(t[r],n)}function E(e,t){var n,r,i;for(r=_(t),i=e,n=0;n<r.length;n++)i=i[r[n]];if(void 0===i)throw console.log(e),new Error("[animation] property ("+t+") could not be found");return i}function M(e,t,n,r){var i,o,s,l;for(t.startsWith("object3D.rotation")&&(n=a.Math.degToRad(n)),o=_(t),l=e,i=0;i<o.length-1;i++)l=l[o[i]];s=o[o.length-1],r!==p?l[s]=n:"r"in l[s]?(l[s].r=n.r,l[s].g=n.g,l[s].b=n.b):(l[s].x=n.r,l[s].y=n.g,l[s].z=n.b)}function _(e){return e in d||(d[e]=e.split(".")),d[e]}function T(e){return e.isRawProperty||e.property.startsWith(g)||e.property.startsWith(y)}t.exports.Component=o("animation",{schema:{autoplay:{default:!0},delay:{default:0},dir:{default:""},dur:{default:1e3},easing:{default:"easeInQuad"},elasticity:{default:400},enabled:{default:!0},from:{default:""},loop:{default:0,parse:function(e){return!0===e||"true"===e||!1!==e&&"false"!==e&&parseInt(e,10)}},property:{default:""},startEvents:{type:"array"},pauseEvents:{type:"array"},resumeEvents:{type:"array"},round:{default:!1},to:{default:""},type:{default:""},isRawProperty:{default:!1}},multiple:!0,init:function(){var e=this;this.eventDetail={name:this.attrName},this.time=0,this.animation=null,this.animationIsPlaying=!1,this.onStartEvent=this.onStartEvent.bind(this),this.beginAnimation=this.beginAnimation.bind(this),this.pauseAnimation=this.pauseAnimation.bind(this),this.resumeAnimation=this.resumeAnimation.bind(this),this.fromColor={},this.toColor={},this.targets={},this.targetsArray=[],this.updateConfigForDefault=this.updateConfigForDefault.bind(this),this.updateConfigForRawColor=this.updateConfigForRawColor.bind(this),this.config={complete:function(){e.animationIsPlaying=!1,e.el.emit("animationcomplete",e.eventDetail,!1),e.id&&e.el.emit("animationcomplete__"+e.id,e.eventDetail,!1)}}},update:function(e){var t=this.config,n=this.data;this.animationIsPlaying=!1,this.data.enabled&&n.property&&(t.autoplay=!1,t.direction=n.dir,t.duration=n.dur,t.easing=n.easing,t.elasticity=n.elasticity,t.loop=n.loop,t.round=n.round,this.createAndStartAnimation())},tick:function(e,t){this.animationIsPlaying&&(this.time+=t,this.animation.tick(this.time))},remove:function(){this.pauseAnimation(),this.removeEventListeners()},pause:function(){this.paused=!0,this.pausedWasPlaying=this.animationIsPlaying,this.pauseAnimation(),this.removeEventListeners()},play:function(){this.paused&&(this.paused=!1,this.addEventListeners(),this.pausedWasPlaying&&(this.resumeAnimation(),this.pausedWasPlaying=!1))},createAndStartAnimation:function(){var e=this.data;this.updateConfig(),this.animationIsPlaying=!1,this.animation=r(this.config),this.animation.began=!0,this.removeEventListeners(),this.addEventListeners(),!e.autoplay||e.startEvents&&e.startEvents.length||(e.delay?setTimeout(this.beginAnimation,e.delay):this.beginAnimation())},beginAnimation:function(){this.updateConfig(),this.animation.began=!0,this.time=0,this.animationIsPlaying=!0,this.stopRelatedAnimations(),this.el.emit("animationbegin",this.eventDetail,!1)},pauseAnimation:function(){this.animationIsPlaying=!1},resumeAnimation:function(){this.animationIsPlaying=!0},onStartEvent:function(){this.data.enabled&&(this.updateConfig(),this.animation&&this.animation.pause(),this.animation=r(this.config),this.data.delay?setTimeout(this.beginAnimation,this.data.delay):this.beginAnimation())},updateConfigForRawColor:function(){var e,t,n,r=this.config,i=this.data,o=this.el;if(!this.waitComponentInitRawProperty(this.updateConfigForRawColor)){for(t in e=""===i.from?E(o,i.property):i.from,n=i.to,this.setColorConfig(e,n),e=this.fromColor,n=this.toColor,this.targetsArray.length=0,this.targetsArray.push(e),r.targets=this.targetsArray,n)r[t]=n[t];r.update=function(){var e={};return function(t){var n;(n=t.animatables[0].target).r===e.r&&n.g===e.g&&n.b===e.b||M(o,i.property,n,i.type)}}()}},updateConfigForDefault:function(){var e,t,n,r=this.config,i=this.data,o=this.el;this.waitComponentInitRawProperty(this.updateConfigForDefault)||(e=""===i.from?T(i)?E(o,i.property):u(o,i.property):i.from,n=i.to,isNaN(e||n)?(e=e?e.toString():e,n=n?n.toString():n):(e=parseFloat(e),n=parseFloat(n)),(t="true"===i.to||"false"===i.to||!0===i.to||!1===i.to)&&(e="true"===i.from||!0===i.from?1:0,n="true"===i.to||!0===i.to?1:0),this.targets.aframeProperty=e,r.targets=this.targets,r.aframeProperty=n,r.update=function(){var e;return function(n){var r;(r=n.animatables[0].target.aframeProperty)!==e&&(e=r,t&&(r=r>=1),T(i)?M(o,i.property,r,i.type):h(o,i.property,r))}}())},updateConfigForVector:function(){var e,t,n,r=this.config,i=this.data,o=this.el;for(e in t=""!==i.from?s.coordinates.parse(i.from):u(o,i.property),n=s.coordinates.parse(i.to),i.property===m&&(A(t),A(n)),this.targetsArray.length=0,this.targetsArray.push(t),r.targets=this.targetsArray,n)r[e]=n[e];i.property!==f&&i.property!==m&&i.property!==v?r.update=function(){var e={};return function(t){var n=t.animatables[0].target;n.x===e.x&&n.y===e.y&&n.z===e.z||(e.x=n.x,e.y=n.y,e.z=n.z,h(o,i.property,n))}}():r.update=function(){var e={};return function(t){var n=t.animatables[0].target;i.property===v&&(n.x=Math.max(1e-4,n.x),n.y=Math.max(1e-4,n.y),n.z=Math.max(1e-4,n.z)),n.x===e.x&&n.y===e.y&&n.z===e.z||(e.x=n.x,e.y=n.y,e.z=n.z,o.object3D[i.property].set(n.x,n.y,n.z))}}()},updateConfig:function(){var e;e=b(this.el,this.data.property),T(this.data)&&this.data.type===p?this.updateConfigForRawColor():"vec2"===e||"vec3"===e||"vec4"===e?this.updateConfigForVector():this.updateConfigForDefault()},waitComponentInitRawProperty:function(e){var t,n=this.data,i=this.el,o=this;return""===n.from&&!!n.property.startsWith(g)&&(t=_(n.property)[1],!i.components[t]&&(i.addEventListener("componentinitialized",(function n(a){a.detail.name===t&&(e(),o.animation=r(o.config),i.removeEventListener("componentinitialized",n))})),!0))},stopRelatedAnimations:function(){var e,t;for(t in this.el.components)e=this.el.components[t],t!==this.attrName&&"animation"===e.name&&e.animationIsPlaying&&e.data.property===this.data.property&&(e.animationIsPlaying=!1)},addEventListeners:function(){var e=this.data,t=this.el;w(t,e.startEvents,this.onStartEvent),w(t,e.pauseEvents,this.pauseAnimation),w(t,e.resumeEvents,this.resumeAnimation)},removeEventListeners:function(){var e=this.data,t=this.el;x(t,e.startEvents,this.onStartEvent),x(t,e.pauseEvents,this.pauseAnimation),x(t,e.resumeEvents,this.resumeAnimation)},setColorConfig:function(e,t){l.set(e),c.set(t),e=this.fromColor,t=this.toColor,e.r=l.r,e.g=l.g,e.b=l.b,t.r=c.r,t.g=c.g,t.b=c.b}})},{"../core/component":131,"../lib/three":179,"../utils":205,"super-animejs":56}],75:[function(e,t,n){var r=e("../core/component").registerComponent,i=e("../lib/three");t.exports.Component=r("camera",{schema:{active:{default:!0},far:{default:1e4},fov:{default:80,min:0},near:{default:.005,min:0},spectator:{default:!1},zoom:{default:1,min:0}},init:function(){var e,t=this.el;e=this.camera=new i.PerspectiveCamera,t.setObject3D("camera",e)},update:function(e){var t=this.data,n=this.camera;n.aspect=t.aspect||window.innerWidth/window.innerHeight,n.far=t.far,n.fov=t.fov,n.near=t.near,n.zoom=t.zoom,n.updateProjectionMatrix(),this.updateActiveCamera(e),this.updateSpectatorCamera(e)},updateActiveCamera:function(e){var t=this.data,n=this.el,r=this.system;e&&e.active===t.active||t.spectator||(t.active&&r.activeCameraEl!==n?r.setActiveCamera(n):t.active||r.activeCameraEl!==n||r.disableActiveCamera())},updateSpectatorCamera:function(e){var t=this.data,n=this.el,r=this.system;e&&e.spectator===t.spectator||(t.spectator&&r.spectatorCameraEl!==n?r.setSpectatorCamera(n):t.spectator||r.spectatorCameraEl!==n||r.disableSpectatorCamera())},remove:function(){this.el.removeObject3D("camera")}})},{"../core/component":131,"../lib/three":179}],76:[function(e,t,n){var r=e("../core/component").registerComponent,i=e("../utils/"),o=i.bind,a={CLICK:"click",FUSING:"fusing",MOUSEENTER:"mouseenter",MOUSEDOWN:"mousedown",MOUSELEAVE:"mouseleave",MOUSEUP:"mouseup"},s={FUSING:"cursor-fusing",HOVERING:"cursor-hovering",HOVERED:"cursor-hovered"},l={DOWN:["mousedown","touchstart"],UP:["mouseup","touchend"]},c={DOWN:["selectstart"],UP:["selectend"]},u="a-mouse-cursor-hover";t.exports.Component=r("cursor",{dependencies:["raycaster"],schema:{downEvents:{default:[]},fuse:{default:i.device.isMobile()},fuseTimeout:{default:1500,min:0},mouseCursorStylesEnabled:{default:!0},upEvents:{default:[]},rayOrigin:{default:"entity",oneOf:["mouse","entity"]}},init:function(){var e=this;this.fuseTimeout=void 0,this.cursorDownEl=null,this.intersectedEl=null,this.canvasBounds=document.body.getBoundingClientRect(),this.isCursorDown=!1,this.updateCanvasBounds=i.debounce((function(){e.canvasBounds=e.el.sceneEl.canvas.getBoundingClientRect()}),500),this.eventDetail={},this.intersectedEventDetail={cursorEl:this.el},this.onCursorDown=o(this.onCursorDown,this),this.onCursorUp=o(this.onCursorUp,this),this.onIntersection=o(this.onIntersection,this),this.onIntersectionCleared=o(this.onIntersectionCleared,this),this.onMouseMove=o(this.onMouseMove,this),this.onEnterVR=o(this.onEnterVR,this)},update:function(e){this.data.rayOrigin!==e.rayOrigin&&this.updateMouseEventListeners()},play:function(){this.addEventListeners()},pause:function(){this.removeEventListeners()},remove:function(){var e=this.el;e.removeState(s.HOVERING),e.removeState(s.FUSING),clearTimeout(this.fuseTimeout),this.intersectedEl&&this.intersectedEl.removeState(s.HOVERED),this.removeEventListeners()},addEventListeners:function(){var e,t=this.data,n=this.el,r=this;function i(){e=n.sceneEl.canvas,t.downEvents.length||t.upEvents.length||(l.DOWN.forEach((function(t){e.addEventListener(t,r.onCursorDown)})),l.UP.forEach((function(t){e.addEventListener(t,r.onCursorUp)})))}(e=n.sceneEl.canvas)?i():n.sceneEl.addEventListener("render-target-loaded",i),t.downEvents.forEach((function(e){n.addEventListener(e,r.onCursorDown)})),t.upEvents.forEach((function(e){n.addEventListener(e,r.onCursorUp)})),n.addEventListener("raycaster-intersection",this.onIntersection),n.addEventListener("raycaster-intersection-cleared",this.onIntersectionCleared),n.sceneEl.addEventListener("rendererresize",this.updateCanvasBounds),n.sceneEl.addEventListener("enter-vr",this.onEnterVR),window.addEventListener("resize",this.updateCanvasBounds),window.addEventListener("scroll",this.updateCanvasBounds),this.updateMouseEventListeners()},removeEventListeners:function(){var e,t=this.data,n=this.el,r=this;!(e=n.sceneEl.canvas)||t.downEvents.length||t.upEvents.length||(l.DOWN.forEach((function(t){e.removeEventListener(t,r.onCursorDown)})),l.UP.forEach((function(t){e.removeEventListener(t,r.onCursorUp)}))),t.downEvents.forEach((function(e){n.removeEventListener(e,r.onCursorDown)})),t.upEvents.forEach((function(e){n.removeEventListener(e,r.onCursorUp)})),n.removeEventListener("raycaster-intersection",this.onIntersection),n.removeEventListener("raycaster-intersection-cleared",this.onIntersectionCleared),e.removeEventListener("mousemove",this.onMouseMove),e.removeEventListener("touchstart",this.onMouseMove),e.removeEventListener("touchmove",this.onMouseMove),n.sceneEl.removeEventListener("rendererresize",this.updateCanvasBounds),n.sceneEl.removeEventListener("enter-vr",this.onEnterVR),window.removeEventListener("resize",this.updateCanvasBounds),window.removeEventListener("scroll",this.updateCanvasBounds)},updateMouseEventListeners:function(){var e,t=this.el;(e=t.sceneEl.canvas).removeEventListener("mousemove",this.onMouseMove),e.removeEventListener("touchmove",this.onMouseMove),t.setAttribute("raycaster","useWorldCoordinates",!1),"mouse"===this.data.rayOrigin&&(e.addEventListener("mousemove",this.onMouseMove,!1),e.addEventListener("touchmove",this.onMouseMove,!1),t.setAttribute("raycaster","useWorldCoordinates",!0),this.updateCanvasBounds())},onMouseMove:function(){var e=new THREE.Vector3,t=new THREE.Vector2,n=new THREE.Vector3,r={origin:n,direction:e};return function(i){var o,a,s,l=this.canvasBounds,c=this.el.sceneEl.camera;c.parent.updateMatrixWorld(),o=(a="touchmove"===i.type||"touchstart"===i.type?i.touches.item(0):i).clientX-l.left,s=a.clientY-l.top,t.x=o/l.width*2-1,t.y=-s/l.height*2+1,n.setFromMatrixPosition(c.matrixWorld),e.set(t.x,t.y,.5).unproject(c).sub(n).normalize(),this.el.setAttribute("raycaster",r),"touchmove"===i.type&&i.preventDefault()}}(),onCursorDown:function(e){this.isCursorDown=!0,"mouse"===this.data.rayOrigin&&"touchstart"===e.type&&(this.onMouseMove(e),this.el.components.raycaster.checkIntersections(),e.preventDefault()),this.twoWayEmit(a.MOUSEDOWN),this.cursorDownEl=this.intersectedEl},onCursorUp:function(e){if(this.isCursorDown){this.isCursorDown=!1;var t=this.data;this.twoWayEmit(a.MOUSEUP),this.cursorDownEl&&this.cursorDownEl!==this.intersectedEl&&(this.intersectedEventDetail.intersection=null,this.cursorDownEl.emit(a.MOUSEUP,this.intersectedEventDetail)),t.fuse&&"mouse"!==t.rayOrigin||!this.intersectedEl||this.cursorDownEl!==this.intersectedEl||this.twoWayEmit(a.CLICK),this.cursorDownEl=null,"touchend"===e.type&&e.preventDefault()}},onIntersection:function(e){var t,n,r,i,o=this.el;n=e.detail.els[0]===o?1:0,i=e.detail.intersections[n],(r=e.detail.els[n])&&this.intersectedEl!==r&&(this.intersectedEl&&(t=this.el.components.raycaster.getIntersection(this.intersectedEl))&&t.distance<=i.distance||(this.clearCurrentIntersection(!0),this.setIntersection(r,i)))},onIntersectionCleared:function(e){-1!==e.detail.clearedEls.indexOf(this.intersectedEl)&&this.clearCurrentIntersection()},onEnterVR:function(){this.clearCurrentIntersection(!0);var e=this.el.sceneEl.xrSession,t=this;e&&"mouse"!==this.data.rayOrigin&&(c.DOWN.forEach((function(n){e.addEventListener(n,t.onCursorDown)})),c.UP.forEach((function(n){e.addEventListener(n,t.onCursorUp)})))},setIntersection:function(e,t){var n=this.el,r=this.data,i=this;this.intersectedEl!==e&&(this.intersectedEl=e,n.addState(s.HOVERING),e.addState(s.HOVERED),this.twoWayEmit(a.MOUSEENTER),this.data.mouseCursorStylesEnabled&&"mouse"===this.data.rayOrigin&&this.el.sceneEl.canvas.classList.add(u),0!==r.fuseTimeout&&r.fuse&&(n.addState(s.FUSING),this.twoWayEmit(a.FUSING),this.fuseTimeout=setTimeout((function(){n.removeState(s.FUSING),i.twoWayEmit(a.CLICK)}),r.fuseTimeout)))},clearCurrentIntersection:function(e){var t,n,r=this.el;this.intersectedEl&&(this.intersectedEl.removeState(s.HOVERED),r.removeState(s.HOVERING),r.removeState(s.FUSING),this.twoWayEmit(a.MOUSELEAVE),this.data.mouseCursorStylesEnabled&&"mouse"===this.data.rayOrigin&&this.el.sceneEl.canvas.classList.remove(u),this.intersectedEl=null,clearTimeout(this.fuseTimeout),!0!==e&&0!==(n=this.el.components.raycaster.intersections).length&&(t=n[n[0].object.el===r?1:0])&&this.setIntersection(t.object.el,t))},twoWayEmit:function(e){var t,n=this.el,r=this.intersectedEl;t=this.el.components.raycaster.getIntersection(r),this.eventDetail.intersectedEl=r,this.eventDetail.intersection=t,n.emit(e,this.eventDetail),r&&(this.intersectedEventDetail.intersection=t,r.emit(e,this.intersectedEventDetail))}})},{"../core/component":131,"../utils/":205}],77:[function(e,t,n){var r=e("../core/component").registerComponent,i=e("../utils/bind"),o=e("../utils/tracked-controls"),a=o.checkControllerPresentAndSetup,s=o.emitIfAxesChanged,l=o.onButtonEvent,c="https://cdn.aframe.io/controllers/google/",u=c+"vr_controller_daydream.obj",h=c+"vr_controller_daydream.mtl",d=e("../utils/").device.isWebXRAvailable,p=d?"google-daydream":"Daydream Controller",f=d?{axes:{touchpad:[0,1]},buttons:["none","none","touchpad","menu","system"]}:{axes:{trackpad:[0,1]},buttons:["trackpad","menu","system"]};t.exports.Component=r("daydream-controls",{schema:{hand:{default:""},buttonColor:{type:"color",default:"#000000"},buttonTouchedColor:{type:"color",default:"#777777"},buttonHighlightColor:{type:"color",default:"#FFFFFF"},model:{default:!0},orientationOffset:{type:"vec3"},armModel:{default:!0}},mapping:f,bindMethods:function(){this.onModelLoaded=i(this.onModelLoaded,this),this.onControllersUpdate=i(this.onControllersUpdate,this),this.checkIfControllerPresent=i(this.checkIfControllerPresent,this),this.removeControllersUpdateListener=i(this.removeControllersUpdateListener,this),this.onAxisMoved=i(this.onAxisMoved,this)},init:function(){var e=this;this.onButtonChanged=i(this.onButtonChanged,this),this.onButtonDown=function(t){l(t.detail.id,"down",e)},this.onButtonUp=function(t){l(t.detail.id,"up",e)},this.onButtonTouchStart=function(t){l(t.detail.id,"touchstart",e)},this.onButtonTouchEnd=function(t){l(t.detail.id,"touchend",e)},this.controllerPresent=!1,this.lastControllerCheck=0,this.bindMethods()},addEventListeners:function(){var e=this.el;e.addEventListener("buttonchanged",this.onButtonChanged),e.addEventListener("buttondown",this.onButtonDown),e.addEventListener("buttonup",this.onButtonUp),e.addEventListener("touchstart",this.onButtonTouchStart),e.addEventListener("touchend",this.onButtonTouchEnd),e.addEventListener("model-loaded",this.onModelLoaded),e.addEventListener("axismove",this.onAxisMoved),this.controllerEventsActive=!0},removeEventListeners:function(){var e=this.el;e.removeEventListener("buttonchanged",this.onButtonChanged),e.removeEventListener("buttondown",this.onButtonDown),e.removeEventListener("buttonup",this.onButtonUp),e.removeEventListener("touchstart",this.onButtonTouchStart),e.removeEventListener("touchend",this.onButtonTouchEnd),e.removeEventListener("model-loaded",this.onModelLoaded),e.removeEventListener("axismove",this.onAxisMoved),this.controllerEventsActive=!1},checkIfControllerPresent:function(){a(this,p,this.data.hand?{hand:this.data.hand}:{})},play:function(){this.checkIfControllerPresent(),this.addControllersUpdateListener()},pause:function(){this.removeEventListeners(),this.removeControllersUpdateListener()},injectTrackedControls:function(){var e=this.el,t=this.data;e.setAttribute("tracked-controls",{armModel:t.armModel,hand:t.hand,idPrefix:p,id:p,orientationOffset:t.orientationOffset}),this.data.model&&this.el.setAttribute("obj-model",{obj:u,mtl:h})},addControllersUpdateListener:function(){this.el.sceneEl.addEventListener("controllersupdated",this.onControllersUpdate,!1)},removeControllersUpdateListener:function(){this.el.sceneEl.removeEventListener("controllersupdated",this.onControllersUpdate,!1)},onControllersUpdate:function(){this.checkIfControllerPresent()},onModelLoaded:function(e){var t,n=e.detail.model;this.data.model&&((t=this.buttonMeshes={}).menu=n.getObjectByName("AppButton_AppButton_Cylinder.004"),t.system=n.getObjectByName("HomeButton_HomeButton_Cylinder.005"),t.trackpad=n.getObjectByName("TouchPad_TouchPad_Cylinder.003"),t.touchpad=n.getObjectByName("TouchPad_TouchPad_Cylinder.003"),n.position.set(0,0,-.04))},onAxisMoved:function(e){s(this,this.mapping.axes,e)},onButtonChanged:function(e){var t=this.mapping.buttons[e.detail.id];t&&this.el.emit(t+"changed",e.detail.state)},updateModel:function(e,t){this.data.model&&this.updateButtonModel(e,t)},updateButtonModel:function(e,t){var n=this.buttonMeshes;if(n&&n[e]){var r;switch(t){case"down":r=this.data.buttonHighlightColor;break;case"touchstart":r=this.data.buttonTouchedColor;break;default:r=this.data.buttonColor}n[e].material.color.set(r)}}})},{"../core/component":131,"../utils/":205,"../utils/bind":199,"../utils/tracked-controls":214}],78:[function(e,t,n){var r=e("../core/component").registerComponent,i=e("../utils/bind"),o=e("../utils/tracked-controls"),a=o.checkControllerPresentAndSetup,s=o.emitIfAxesChanged,l=o.onButtonEvent,c=e("../utils/").device.isWebXRAvailable,u="https://cdn.aframe.io/controllers/samsung/",h=u+"gear_vr_controller.obj",d=u+"gear_vr_controller.mtl",p=c?"samsung-gearvr":"Gear VR",f=c?{axes:{touchpad:[0,1]},buttons:["trigger","none","touchpad","none","menu"]}:{axes:{trackpad:[0,1]},buttons:["trackpad","trigger"]};t.exports.Component=r("gearvr-controls",{schema:{hand:{default:""},buttonColor:{type:"color",default:"#000000"},buttonTouchedColor:{type:"color",default:"#777777"},buttonHighlightColor:{type:"color",default:"#FFFFFF"},model:{default:!0},orientationOffset:{type:"vec3"},armModel:{default:!0}},mapping:f,bindMethods:function(){this.onModelLoaded=i(this.onModelLoaded,this),this.onControllersUpdate=i(this.onControllersUpdate,this),this.checkIfControllerPresent=i(this.checkIfControllerPresent,this),this.removeControllersUpdateListener=i(this.removeControllersUpdateListener,this),this.onAxisMoved=i(this.onAxisMoved,this)},init:function(){var e=this;this.onButtonChanged=i(this.onButtonChanged,this),this.onButtonDown=function(t){l(t.detail.id,"down",e)},this.onButtonUp=function(t){l(t.detail.id,"up",e)},this.onButtonTouchStart=function(t){l(t.detail.id,"touchstart",e)},this.onButtonTouchEnd=function(t){l(t.detail.id,"touchend",e)},this.controllerPresent=!1,this.lastControllerCheck=0,this.bindMethods()},addEventListeners:function(){var e=this.el;e.addEventListener("buttonchanged",this.onButtonChanged),e.addEventListener("buttondown",this.onButtonDown),e.addEventListener("buttonup",this.onButtonUp),e.addEventListener("touchstart",this.onButtonTouchStart),e.addEventListener("touchend",this.onButtonTouchEnd),e.addEventListener("model-loaded",this.onModelLoaded),e.addEventListener("axismove",this.onAxisMoved),this.controllerEventsActive=!0},removeEventListeners:function(){var e=this.el;e.removeEventListener("buttonchanged",this.onButtonChanged),e.removeEventListener("buttondown",this.onButtonDown),e.removeEventListener("buttonup",this.onButtonUp),e.removeEventListener("touchstart",this.onButtonTouchStart),e.removeEventListener("touchend",this.onButtonTouchEnd),e.removeEventListener("model-loaded",this.onModelLoaded),e.removeEventListener("axismove",this.onAxisMoved),this.controllerEventsActive=!1},checkIfControllerPresent:function(){a(this,p,this.data.hand?{hand:this.data.hand}:{})},play:function(){this.checkIfControllerPresent(),this.addControllersUpdateListener()},pause:function(){this.removeEventListeners(),this.removeControllersUpdateListener()},injectTrackedControls:function(){var e=this.el,t=this.data;e.setAttribute("tracked-controls",{armModel:t.armModel,hand:t.hand,idPrefix:p,id:p,orientationOffset:t.orientationOffset}),this.data.model&&this.el.setAttribute("obj-model",{obj:h,mtl:d})},addControllersUpdateListener:function(){this.el.sceneEl.addEventListener("controllersupdated",this.onControllersUpdate,!1)},removeControllersUpdateListener:function(){this.el.sceneEl.removeEventListener("controllersupdated",this.onControllersUpdate,!1)},onControllersUpdate:function(){this.checkIfControllerPresent()},onModelLoaded:function(e){var t,n=e.detail.model;this.data.model&&((t=this.buttonMeshes={}).trigger=n.children[2],t.trackpad=n.children[1],t.touchpad=n.children[1])},onButtonChanged:function(e){var t=this.mapping.buttons[e.detail.id];t&&this.el.emit(t+"changed",e.detail.state)},onAxisMoved:function(e){s(this,this.mapping.axes,e)},updateModel:function(e,t){this.data.model&&this.updateButtonModel(e,t)},updateButtonModel:function(e,t){var n=this.buttonMeshes;if(n&&n[e]){var r;switch(t){case"down":r=this.data.buttonHighlightColor;break;case"touchstart":r=this.data.buttonTouchedColor;break;default:r=this.data.buttonColor}n[e].material.color.set(r)}}})},{"../core/component":131,"../utils/":205,"../utils/bind":199,"../utils/tracked-controls":214}],79:[function(e,t,n){var r=e("../core/component").registerComponent,i=e("../utils/bind"),o=e("../utils/tracked-controls"),a=o.checkControllerPresentAndSetup,s=o.emitIfAxesChanged,l=o.onButtonEvent,c="generic",u={axes:{touchpad:[0,1],thumbstick:[2,3]},buttons:["trigger","squeeze","touchpad","thumbstick"]};t.exports.Component=r("generic-tracked-controller-controls",{schema:{hand:{default:""},defaultModel:{default:!0},defaultModelColor:{default:"gray"},orientationOffset:{type:"vec3"},disabled:{default:!1}},mapping:u,bindMethods:function(){this.onControllersUpdate=i(this.onControllersUpdate,this),this.checkIfControllerPresent=i(this.checkIfControllerPresent,this),this.removeControllersUpdateListener=i(this.removeControllersUpdateListener,this),this.onAxisMoved=i(this.onAxisMoved,this)},init:function(){var e=this;this.onButtonChanged=i(this.onButtonChanged,this),this.onButtonDown=function(t){l(t.detail.id,"down",e)},this.onButtonUp=function(t){l(t.detail.id,"up",e)},this.onButtonTouchStart=function(t){l(t.detail.id,"touchstart",e)},this.onButtonTouchEnd=function(t){l(t.detail.id,"touchend",e)},this.controllerPresent=!1,this.wasControllerConnected=!1,this.lastControllerCheck=0,this.rendererSystem=this.el.sceneEl.systems.renderer,this.bindMethods(),this.el.addEventListener("controllerconnected",(function(t){t.detail.name!==e.name&&(e.wasControllerConnected=!0,e.removeEventListeners(),e.removeControllersUpdateListener())}))},addEventListeners:function(){var e=this.el;e.addEventListener("buttonchanged",this.onButtonChanged),e.addEventListener("buttondown",this.onButtonDown),e.addEventListener("buttonup",this.onButtonUp),e.addEventListener("touchstart",this.onButtonTouchStart),e.addEventListener("touchend",this.onButtonTouchEnd),e.addEventListener("axismove",this.onAxisMoved),this.controllerEventsActive=!0},removeEventListeners:function(){var e=this.el;e.removeEventListener("buttonchanged",this.onButtonChanged),e.removeEventListener("buttondown",this.onButtonDown),e.removeEventListener("buttonup",this.onButtonUp),e.removeEventListener("touchstart",this.onButtonTouchStart),e.removeEventListener("touchend",this.onButtonTouchEnd),e.removeEventListener("axismove",this.onAxisMoved),this.controllerEventsActive=!1},checkIfControllerPresent:function(){var e=this.data,t=e.hand?e.hand:void 0;a(this,c,{hand:t,iterateControllerProfiles:!0})},play:function(){this.wasControllerConnected||(this.checkIfControllerPresent(),this.addControllersUpdateListener())},pause:function(){this.removeEventListeners(),this.removeControllersUpdateListener()},injectTrackedControls:function(){var e=this.el,t=this.data;this.el.components["tracked-controls"]?this.removeEventListeners():(e.setAttribute("tracked-controls",{hand:t.hand,idPrefix:c,orientationOffset:t.orientationOffset,iterateControllerProfiles:!0}),this.data.defaultModel&&this.initDefaultModel())},addControllersUpdateListener:function(){this.el.sceneEl.addEventListener("controllersupdated",this.onControllersUpdate,!1)},removeControllersUpdateListener:function(){this.el.sceneEl.removeEventListener("controllersupdated",this.onControllersUpdate,!1)},onControllersUpdate:function(){this.checkIfControllerPresent()},onButtonChanged:function(e){var t=this.mapping.buttons[e.detail.id];t&&this.el.emit(t+"changed",e.detail.state)},onAxisMoved:function(e){s(this,this.mapping.axes,e)},initDefaultModel:function(){var e=this.modelEl=document.createElement("a-entity");e.setAttribute("geometry",{primitive:"sphere",radius:.03}),e.setAttribute("material",{color:this.data.color}),this.el.appendChild(e)}})},{"../core/component":131,"../utils/bind":199,"../utils/tracked-controls":214}],80:[function(e,t,n){var r=e("../core/geometry").geometries,i=e("../core/geometry").geometryNames,o=e("../core/component").registerComponent,a=e("../lib/three"),s=new a.BufferGeometry;t.exports.Component=o("geometry",{schema:{buffer:{default:!0},primitive:{default:"box",oneOf:i,schemaChange:!0},skipCache:{default:!1}},init:function(){this.geometry=null},update:function(e){var t,n=this.data,r=this.el,i=this.system;this.geometry&&(i.unuseGeometry(e),this.geometry=null),this.geometry=i.getOrCreateGeometry(n),(t=r.getObject3D("mesh"))?t.geometry=this.geometry:((t=new a.Mesh).geometry=this.geometry,this.el.getAttribute("material")||(t.material=new a.MeshStandardMaterial({color:16777215*Math.random(),metalness:0,roughness:.5})),r.setObject3D("mesh",t))},remove:function(){this.system.unuseGeometry(this.data),this.el.getObject3D("mesh").geometry=s,this.geometry=null},updateSchema:function(e){var t=this.oldData&&this.oldData.primitive,n=e.primitive,i=r[n]&&r[n].schema;if(!i)throw new Error("Unknown geometry schema `"+n+"`");t&&t===n||this.extendSchema(i)}})},{"../core/component":131,"../core/geometry":132,"../lib/three":179}],81:[function(e,t,n){var r=e("../core/component").registerComponent,i=e("../lib/three"),o=e("../utils/").debug("components:gltf-model:warn");t.exports.Component=r("gltf-model",{schema:{type:"model"},init:function(){var e=this.system.getDRACOLoader();this.model=null,this.loader=new i.GLTFLoader,e&&this.loader.setDRACOLoader(e)},update:function(){var e=this,t=this.el,n=this.data;n&&(this.remove(),this.loader.load(n,(function(n){e.model=n.scene||n.scenes[0],e.model.animations=n.animations,t.setObject3D("mesh",e.model),t.emit("model-loaded",{format:"gltf",model:e.model})}),void 0,(function(e){var r=e&&e.message?e.message:"Failed to load glTF model";o(r),t.emit("model-error",{format:"gltf",src:n})})))},remove:function(){this.model&&this.el.removeObject3D("mesh")}})},{"../core/component":131,"../lib/three":179,"../utils/":205}],82:[function(e,t,n){var r=e("../core/component").registerComponent,i={toonLeft:"https://cdn.aframe.io/controllers/hands/leftHand.glb",toonRight:"https://cdn.aframe.io/controllers/hands/rightHand.glb",lowPolyLeft:"https://cdn.aframe.io/controllers/hands/leftHandLow.glb",lowPolyRight:"https://cdn.aframe.io/controllers/hands/rightHandLow.glb",highPolyLeft:"https://cdn.aframe.io/controllers/hands/leftHandHigh.glb",highPolyRight:"https://cdn.aframe.io/controllers/hands/rightHandHigh.glb"},o={open:"Open",point:"Point",pointThumb:"Point + Thumb",fist:"Fist",hold:"Hold",thumbUp:"Thumb Up"},a={};function s(e,t){var n;if(e)return"grip"===(n=a[e])?n+(t?"close":"open"):"point"===n?n+(t?"up":"down"):"pointing"===n||"pistol"===n?n+(t?"start":"end"):void 0}function l(e){var t=e&&e.controller;return t&&(t.id&&0===t.id.indexOf("OpenVR ")||t.profiles&&t.profiles[0]&&"htc-vive-controller-mv"===t.profiles[0])}a[o.fist]="grip",a[o.thumbUp]="pistol",a[o.point]="pointing",t.exports.Component=r("hand-controls",{schema:{color:{default:"white",type:"color"},hand:{default:"left"},handModelStyle:{default:"lowPoly",oneOf:["lowPoly","highPoly","toon"]}},init:function(){var e=this,t=this.el;this.gesture=o.open,this.pressedButtons={},this.touchedButtons={},this.loader=new THREE.GLTFLoader,this.loader.setCrossOrigin("anonymous"),this.onGripDown=function(){e.handleButton("grip","down")},this.onGripUp=function(){e.handleButton("grip","up")},this.onTrackpadDown=function(){e.handleButton("trackpad","down")},this.onTrackpadUp=function(){e.handleButton("trackpad","up")},this.onTrackpadTouchStart=function(){e.handleButton("trackpad","touchstart")},this.onTrackpadTouchEnd=function(){e.handleButton("trackpad","touchend")},this.onTriggerDown=function(){e.handleButton("trigger","down")},this.onTriggerUp=function(){e.handleButton("trigger","up")},this.onTriggerTouchStart=function(){e.handleButton("trigger","touchstart")},this.onTriggerTouchEnd=function(){e.handleButton("trigger","touchend")},this.onGripTouchStart=function(){e.handleButton("grip","touchstart")},this.onGripTouchEnd=function(){e.handleButton("grip","touchend")},this.onThumbstickDown=function(){e.handleButton("thumbstick","down")},this.onThumbstickUp=function(){e.handleButton("thumbstick","up")},this.onAorXTouchStart=function(){e.handleButton("AorX","touchstart")},this.onAorXTouchEnd=function(){e.handleButton("AorX","touchend")},this.onBorYTouchStart=function(){e.handleButton("BorY","touchstart")},this.onBorYTouchEnd=function(){e.handleButton("BorY","touchend")},this.onSurfaceTouchStart=function(){e.handleButton("surface","touchstart")},this.onSurfaceTouchEnd=function(){e.handleButton("surface","touchend")},this.onControllerConnected=this.onControllerConnected.bind(this),this.onControllerDisconnected=this.onControllerDisconnected.bind(this),t.addEventListener("controllerconnected",this.onControllerConnected),t.addEventListener("controllerdisconnected",this.onControllerDisconnected),t.object3D.visible=!1},play:function(){this.addEventListeners()},pause:function(){this.removeEventListeners()},tick:function(e,t){var n=this.el.getObject3D("mesh");n&&n.mixer&&n.mixer.update(t/1e3)},onControllerConnected:function(){this.el.object3D.visible=!0},onControllerDisconnected:function(){this.el.object3D.visible=!1},addEventListeners:function(){var e=this.el;e.addEventListener("gripdown",this.onGripDown),e.addEventListener("gripup",this.onGripUp),e.addEventListener("trackpaddown",this.onTrackpadDown),e.addEventListener("trackpadup",this.onTrackpadUp),e.addEventListener("trackpadtouchstart",this.onTrackpadTouchStart),e.addEventListener("trackpadtouchend",this.onTrackpadTouchEnd),e.addEventListener("triggerdown",this.onTriggerDown),e.addEventListener("triggerup",this.onTriggerUp),e.addEventListener("triggertouchstart",this.onTriggerTouchStart),e.addEventListener("triggertouchend",this.onTriggerTouchEnd),e.addEventListener("griptouchstart",this.onGripTouchStart),e.addEventListener("griptouchend",this.onGripTouchEnd),e.addEventListener("thumbstickdown",this.onThumbstickDown),e.addEventListener("thumbstickup",this.onThumbstickUp),e.addEventListener("abuttontouchstart",this.onAorXTouchStart),e.addEventListener("abuttontouchend",this.onAorXTouchEnd),e.addEventListener("bbuttontouchstart",this.onBorYTouchStart),e.addEventListener("bbuttontouchend",this.onBorYTouchEnd),e.addEventListener("xbuttontouchstart",this.onAorXTouchStart),e.addEventListener("xbuttontouchend",this.onAorXTouchEnd),e.addEventListener("ybuttontouchstart",this.onBorYTouchStart),e.addEventListener("ybuttontouchend",this.onBorYTouchEnd),e.addEventListener("surfacetouchstart",this.onSurfaceTouchStart),e.addEventListener("surfacetouchend",this.onSurfaceTouchEnd)},removeEventListeners:function(){var e=this.el;e.removeEventListener("gripdown",this.onGripDown),e.removeEventListener("gripup",this.onGripUp),e.removeEventListener("trackpaddown",this.onTrackpadDown),e.removeEventListener("trackpadup",this.onTrackpadUp),e.removeEventListener("trackpadtouchstart",this.onTrackpadTouchStart),e.removeEventListener("trackpadtouchend",this.onTrackpadTouchEnd),e.removeEventListener("triggerdown",this.onTriggerDown),e.removeEventListener("triggerup",this.onTriggerUp),e.removeEventListener("triggertouchstart",this.onTriggerTouchStart),e.removeEventListener("triggertouchend",this.onTriggerTouchEnd),e.removeEventListener("griptouchstart",this.onGripTouchStart),e.removeEventListener("griptouchend",this.onGripTouchEnd),e.removeEventListener("thumbstickdown",this.onThumbstickDown),e.removeEventListener("thumbstickup",this.onThumbstickUp),e.removeEventListener("abuttontouchstart",this.onAorXTouchStart),e.removeEventListener("abuttontouchend",this.onAorXTouchEnd),e.removeEventListener("bbuttontouchstart",this.onBorYTouchStart),e.removeEventListener("bbuttontouchend",this.onBorYTouchEnd),e.removeEventListener("xbuttontouchstart",this.onAorXTouchStart),e.removeEventListener("xbuttontouchend",this.onAorXTouchEnd),e.removeEventListener("ybuttontouchstart",this.onBorYTouchStart),e.removeEventListener("ybuttontouchend",this.onBorYTouchEnd),e.removeEventListener("surfacetouchstart",this.onSurfaceTouchStart),e.removeEventListener("surfacetouchend",this.onSurfaceTouchEnd)},update:function(e){var t,n=this.el,r=this.data.hand,o=this.data.handModelStyle,a=this.data.color,s=this;if(t={hand:r,model:!1},r!==e){var l=i[o+r.charAt(0).toUpperCase()+r.slice(1)];this.loader.load(l,(function(e){var i=e.scene.children[0],o="left"===r?Math.PI/2:-Math.PI/2;i.mixer=new THREE.AnimationMixer(i),s.clips=e.animations,n.setObject3D("mesh",i),i.children[1].material.color=new THREE.Color(a),i.position.set(0,0,0),i.rotation.set(0,0,o),n.setAttribute("magicleap-controls",t),n.setAttribute("vive-controls",t),n.setAttribute("oculus-touch-controls",t),n.setAttribute("windows-motion-controls",t)}))}},remove:function(){this.el.removeObject3D("mesh")},handleButton:function(e,t){var n,r="down"===t,i="touchstart"===t;if(0===t.indexOf("touch")){if(i===this.touchedButtons[e])return;this.touchedButtons[e]=i}else{if(r===this.pressedButtons[e])return;this.pressedButtons[e]=r}n=this.gesture,this.gesture=this.determineGesture(),this.gesture!==n&&(this.animateGesture(this.gesture,n),this.emitGestureEvents(this.gesture,n))},determineGesture:function(){var e,t=this.pressedButtons.grip,n=this.pressedButtons.surface||this.touchedButtons.surface,r=this.pressedButtons.trackpad||this.touchedButtons.trackpad,i=this.pressedButtons.trigger||this.touchedButtons.trigger,a=this.touchedButtons.AorX||this.touchedButtons.BorY;return l(this.el.components["tracked-controls"])?t||i?e=o.fist:r&&(e=o.point):t?e=n||a||r?i?o.fist:o.point:i?o.thumbUp:o.pointThumb:i&&(e=o.hold),e},getClip:function(e){var t,n;for(n=0;n<this.clips.length;n++)if((t=this.clips[n]).name===e)return t},animateGesture:function(e,t){e?this.playAnimation(e||o.open,t,!1):this.playAnimation(t,t,!0)},emitGestureEvents:function(e,t){var n,r=this.el;t!==e&&((n=s(t,!1))&&r.emit(n),(n=s(e,!0))&&r.emit(n))},playAnimation:function(e,t,n){var r,i,o,a=this.el.getObject3D("mesh");if(a){if(a.mixer.stopAllAction(),r=this.getClip(e),(o=a.mixer.clipAction(r)).clampWhenFinished=!0,o.loop=THREE.LoopRepeat,o.repetitions=0,o.timeScale=n?-1:1,o.time=n?r.duration:0,o.weight=1,!t||e===t)return a.mixer.stopAllAction(),void o.play();r=this.getClip(t),(i=a.mixer.clipAction(r)).weight=.15,i.play(),o.play(),i.crossFadeTo(o,.15,!0)}}})},{"../core/component":131}],83:[function(e,t,n){var r=e("../core/component").registerComponent,i=e("../utils/bind"),o=e("../utils/tracked-controls").checkControllerPresentAndSetup,a="https://cdn.aframe.io/controllers/oculus-hands/unity/left.glb",s="https://cdn.aframe.io/controllers/oculus-hands/unity/right.glb",l={left:"b_l_",right:"b_r_"},c=["wrist","thumb-metacarpal","thumb-phalanx-proximal","thumb-phalanx-distal","thumb-tip","index-finger-metacarpal","index-finger-phalanx-proximal","index-finger-phalanx-intermediate","index-finger-phalanx-distal","index-finger-tip","middle-finger-metacarpal","middle-finger-phalanx-proximal","middle-finger-phalanx-intermediate","middle-finger-phalanx-distal","middle-finger-tip","ring-finger-metacarpal","ring-finger-phalanx-proximal","ring-finger-phalanx-intermediate","ring-finger-phalanx-distal","ring-finger-tip","pinky-finger-metacarpal","pinky-finger-phalanx-proximal","pinky-finger-phalanx-intermediate","pinky-finger-phalanx-distal","pinky-finger-tip"],u={wrist:"wrist","thumb-metacarpal":"thumb1","thumb-phalanx-proximal":"thumb2","thumb-phalanx-distal":"thumb3","thumb-tip":"thumb_null","index-finger-phalanx-proximal":"index1","index-finger-phalanx-intermediate":"index2","index-finger-phalanx-distal":"index3","index-finger-tip":"index_null","middle-finger-phalanx-proximal":"middle1","middle-finger-phalanx-intermediate":"middle2","middle-finger-phalanx-distal":"middle3","middle-finger-tip":"middle_null","ring-finger-phalanx-proximal":"ring1","ring-finger-phalanx-intermediate":"ring2","ring-finger-phalanx-distal":"ring3","ring-finger-tip":"ring_null","pinky-finger-metacarpal":"pinky0","pinky-finger-phalanx-proximal":"pinky1","pinky-finger-phalanx-intermediate":"pinky2","pinky-finger-phalanx-distal":"pinky3","pinky-finger-tip":"pinky_null"},h=.015,d=.03,p=.5;t.exports.Component=r("hand-tracking-controls",{schema:{hand:{default:"right",oneOf:["left","right"]},modelStyle:{default:"mesh",oneOf:["dots","mesh"]},modelColor:{default:"white"}},bindMethods:function(){this.onControllersUpdate=i(this.onControllersUpdate,this),this.checkIfControllerPresent=i(this.checkIfControllerPresent,this),this.removeControllersUpdateListener=i(this.removeControllersUpdateListener,this)},addEventListeners:function(){this.el.addEventListener("model-loaded",this.onModelLoaded);for(var e=0;e<this.jointEls.length;++e)this.jointEls[e].object3D.visible=!0},removeEventListeners:function(){this.el.removeEventListener("model-loaded",this.onModelLoaded);for(var e=0;e<this.jointEls.length;++e)this.jointEls[e].object3D.visible=!1},init:function(){var e=this.el.sceneEl,t=e.getAttribute("webxr").optionalFeatures;t.push("hand-tracking"),e.setAttribute("webxr",{optionalFeatures:t}),this.onModelLoaded=this.onModelLoaded.bind(this),this.jointEls=[],this.controllerPresent=!1,this.isPinched=!1,this.pinchEventDetail={position:new THREE.Vector3},this.indexTipPosition=new THREE.Vector3,this.bindMethods(),this.updateReferenceSpace=this.updateReferenceSpace.bind(this),this.el.sceneEl.addEventListener("enter-vr",this.updateReferenceSpace),this.el.sceneEl.addEventListener("exit-vr",this.updateReferenceSpace)},updateReferenceSpace:function(){var e=this,t=this.el.sceneEl.xrSession;if(this.referenceSpace=void 0,t){var n=e.el.sceneEl.systems.webxr.sessionReferenceSpaceType;t.requestReferenceSpace(n).then((function(t){e.referenceSpace=t.getOffsetReferenceSpace(new XRRigidTransform({x:0,y:1.5,z:0}))})).catch((function(t){throw e.el.sceneEl.systems.webxr.warnIfFeatureNotRequested(n,"tracked-controls-webxr uses reference space "+n),t}))}},checkIfControllerPresent:function(){var e=this.data,t=e.hand?e.hand:void 0;o(this,"",{hand:t,iterateControllerProfiles:!0,handTracking:!0})},play:function(){this.checkIfControllerPresent(),this.addControllersUpdateListener()},tick:function(){var e=this.el.sceneEl,t=this.el.components["tracked-controls"]&&this.el.components["tracked-controls"].controller,n=e.frame,r=this.el.components["tracked-controls-webxr"];t&&n&&r&&t.hand&&(this.el.object3D.position.set(0,0,0),this.el.object3D.rotation.set(0,0,0),n.getJointPose&&this.updateHandModel(),this.detectGesture())},updateHandModel:function(){"dots"===this.data.modelStyle&&this.updateHandDotsModel(),"mesh"===this.data.modelStyle&&this.updateHandMeshModel()},getBone:function(e){for(var t=this.bones,n=0;n<t.length;n++)if(t[n].name===e)return t[n];return null},updateHandMeshModel:function(){var e=this.el.sceneEl.frame,t=this.el.components["tracked-controls"]&&this.el.components["tracked-controls"].controller,n=this.referenceSpace;if(t&&this.mesh&&n)for(var r of(this.mesh.visible=!1,t.hand.values())){var i,o,a;o=e.getJointPose(r,n),u[r.jointName]&&null!=(i=this.getBone(l[this.data.hand]+u[r.jointName]))&&o&&(a=o.transform,this.mesh.visible=!0,i.position.copy(a.position).multiplyScalar(100),i.quaternion.set(a.orientation.x,a.orientation.y,a.orientation.z,a.orientation.w))}},updateHandDotsModel:function(){var e,t,n,r=this.el.sceneEl.frame,i=this.el.components["tracked-controls"]&&this.el.components["tracked-controls"].controller,o=this.el.components["tracked-controls-webxr"].system.referenceSpace,a=0;for(var s of i.hand.values())t=(e=this.jointEls[a++]).object3D,n=r.getJointPose(s,o),e.object3D.visible=!!n,n&&(t.matrix.elements=n.transform.matrix,t.matrix.decompose(t.position,t.rotation,t.scale),e.setAttribute("scale",{x:n.radius,y:n.radius,z:n.radius}))},detectGesture:function(){this.detectPinch()},detectPinch:function(){var e=new THREE.Vector3;return function(){var t=this.el.sceneEl.frame,n=this.indexTipPosition,r=this.el.components["tracked-controls"]&&this.el.components["tracked-controls"].controller,i=this.el.components["tracked-controls-webxr"],o=this.referenceSpace||i.system.referenceSpace,a=r.hand.get("index-finger-tip"),s=r.hand.get("thumb-tip");if(a&&s){var l=t.getJointPose(a,o),c=t.getJointPose(s,o);if(l&&c){e.copy(c.transform.position),n.copy(l.transform.position);var u=n.distanceTo(e);u<h&&!1===this.isPinched&&(this.isPinched=!0,this.pinchEventDetail.position.copy(n).lerp(e,p),this.pinchEventDetail.position.y+=1.5,this.el.emit("pinchstarted",this.pinchEventDetail)),u>d&&!0===this.isPinched&&(this.isPinched=!1,this.pinchEventDetail.position.copy(n).lerp(e,p),this.pinchEventDetail.position.y+=1.5,this.el.emit("pinchended",this.pinchEventDetail)),this.isPinched&&(this.pinchEventDetail.position.copy(n).lerp(e,p),this.pinchEventDetail.position.y+=1.5,this.el.emit("pinchmoved",this.pinchEventDetail)),n.y+=1.5}}}}(),pause:function(){this.removeEventListeners(),this.removeControllersUpdateListener()},injectTrackedControls:function(){var e=this.el,t=this.data;e.setAttribute("tracked-controls",{hand:t.hand,iterateControllerProfiles:!0,handTrackingEnabled:!0}),this.initDefaultModel()},addControllersUpdateListener:function(){this.el.sceneEl.addEventListener("controllersupdated",this.onControllersUpdate,!1)},removeControllersUpdateListener:function(){this.el.sceneEl.removeEventListener("controllersupdated",this.onControllersUpdate,!1)},onControllersUpdate:function(){var e;this.checkIfControllerPresent(),e=this.el.components["tracked-controls"]&&this.el.components["tracked-controls"].controller,this.el.getObject3D("mesh")&&(e&&e.hand&&e.hand[0]||(this.el.getObject3D("mesh").visible=!1))},initDefaultModel:function(){this.el.getObject3D("mesh")||("dots"===this.data.modelStyle&&this.initDotsModel(),"mesh"===this.data.modelStyle&&this.initMeshHandModel())},initDotsModel:function(){if(0===this.jointEls.length)for(var e=0;e<c.length;++e){var t=this.jointEl=document.createElement("a-entity");t.setAttribute("geometry",{primitive:"sphere",radius:1}),t.setAttribute("material",{color:this.data.modelColor}),t.object3D.visible=!1,this.el.appendChild(t),this.jointEls.push(t)}},initMeshHandModel:function(){var e="left"===this.data.hand?a:s;this.el.setAttribute("gltf-model",e)},onModelLoaded:function(){var e=this.mesh=this.el.getObject3D("mesh").children[0],t=this.skinnedMesh=e.children[24];this.skinnedMesh&&(this.bones=t.skeleton.bones,this.el.removeObject3D("mesh"),e.position.set(0,1.5,0),e.rotation.set(0,0,0),t.frustumCulled=!1,t.material=new THREE.MeshStandardMaterial({skinning:!0,color:this.data.modelColor}),this.el.setObject3D("mesh",e))}})},{"../core/component":131,"../utils/bind":199,"../utils/tracked-controls":214}],84:[function(e,t,n){e("./animation"),e("./camera"),e("./cursor"),e("./daydream-controls"),e("./gearvr-controls"),e("./geometry"),e("./generic-tracked-controller-controls"),e("./gltf-model"),e("./hand-tracking-controls"),e("./hand-controls"),e("./layer"),e("./laser-controls"),e("./light"),e("./line"),e("./link"),e("./look-controls"),e("./magicleap-controls"),e("./material"),e("./obj-model"),e("./oculus-go-controls"),e("./oculus-touch-controls"),e("./position"),e("./raycaster"),e("./rotation"),e("./scale"),e("./shadow"),e("./sound"),e("./text"),e("./tracked-controls"),e("./tracked-controls-webvr"),e("./tracked-controls-webxr"),e("./visible"),e("./valve-index-controls"),e("./vive-controls"),e("./vive-focus-controls"),e("./wasd-controls"),e("./windows-motion-controls"),e("./scene/background"),e("./scene/debug"),e("./scene/device-orientation-permission-ui"),e("./scene/embedded"),e("./scene/inspector"),e("./scene/fog"),e("./scene/keyboard-shortcuts"),e("./scene/pool"),e("./scene/screenshot"),e("./scene/stats"),e("./scene/vr-mode-ui")},{"./animation":74,"./camera":75,"./cursor":76,"./daydream-controls":77,"./gearvr-controls":78,"./generic-tracked-controller-controls":79,"./geometry":80,"./gltf-model":81,"./hand-controls":82,"./hand-tracking-controls":83,"./laser-controls":85,"./layer":86,"./light":87,"./line":88,"./link":89,"./look-controls":90,"./magicleap-controls":91,"./material":92,"./obj-model":93,"./oculus-go-controls":94,"./oculus-touch-controls":95,"./position":96,"./raycaster":97,"./rotation":98,"./scale":99,"./scene/background":100,"./scene/debug":101,"./scene/device-orientation-permission-ui":102,"./scene/embedded":103,"./scene/fog":104,"./scene/inspector":105,"./scene/keyboard-shortcuts":106,"./scene/pool":107,"./scene/screenshot":108,"./scene/stats":109,"./scene/vr-mode-ui":110,"./shadow":111,"./sound":112,"./text":113,"./tracked-controls":116,"./tracked-controls-webvr":114,"./tracked-controls-webxr":115,"./valve-index-controls":117,"./visible":118,"./vive-controls":119,"./vive-focus-controls":120,"./wasd-controls":121,"./windows-motion-controls":122}],85:[function(e,t,n){var r=e("../core/component").registerComponent,i=e("../utils/");r("laser-controls",{schema:{hand:{default:"right"},model:{default:!0},defaultModelColor:{type:"color",default:"grey"}},init:function(){var e=this.config,t=this.data,n=this.el,r=this,o={hand:t.hand,model:t.model};function a(t){var o=e[t.detail.name];if(o){var a=i.extend({showLine:!0},o.raycaster||{});t.detail.rayOrigin&&(a.origin=t.detail.rayOrigin.origin,a.direction=t.detail.rayOrigin.direction,a.showLine=!0),t.detail.rayOrigin||!r.modelReady?n.setAttribute("raycaster",a):n.setAttribute("raycaster","showLine",!0),n.setAttribute("cursor",i.extend({fuse:!1},o.cursor))}}function s(){n.setAttribute("raycaster","showLine",!1)}n.setAttribute("daydream-controls",o),n.setAttribute("gearvr-controls",o),n.setAttribute("magicleap-controls",o),n.setAttribute("oculus-go-controls",o),n.setAttribute("oculus-touch-controls",o),n.setAttribute("valve-index-controls",o),n.setAttribute("vive-controls",o),n.setAttribute("vive-focus-controls",o),n.setAttribute("windows-motion-controls",o),n.setAttribute("generic-tracked-controller-controls",o),n.addEventListener("controllerconnected",a),n.addEventListener("controllerdisconnected",s),n.addEventListener("controllermodelready",(function(e){a(e),r.modelReady=!0}))},config:{"daydream-controls":{cursor:{downEvents:["trackpaddown","triggerdown"],upEvents:["trackpadup","triggerup"]}},"gearvr-controls":{cursor:{downEvents:["triggerdown"],upEvents:["triggerup"]},raycaster:{origin:{x:0,y:.001,z:0}}},"generic-tracked-controller-controls":{cursor:{downEvents:["triggerdown"],upEvents:["triggerup"]}},"magicleap-controls":{cursor:{downEvents:["trackpaddown","triggerdown"],upEvents:["trackpadup","triggerup"]}},"oculus-go-controls":{cursor:{downEvents:["triggerdown"],upEvents:["triggerup"]},raycaster:{origin:{x:0,y:5e-4,z:0}}},"oculus-touch-controls":{cursor:{downEvents:["triggerdown"],upEvents:["triggerup"]},raycaster:{origin:{x:0,y:0,z:0}}},"valve-index-controls":{cursor:{downEvents:["triggerdown"],upEvents:["triggerup"]}},"vive-controls":{cursor:{downEvents:["triggerdown"],upEvents:["triggerup"]}},"vive-focus-controls":{cursor:{downEvents:["trackpaddown","triggerdown"],upEvents:["trackpadup","triggerup"]}},"windows-motion-controls":{cursor:{downEvents:["triggerdown"],upEvents:["triggerup"]},raycaster:{showLine:!1}}}})},{"../core/component":131,"../utils/":205}],86:[function(e,t,n){var r=e("../core/component").registerComponent,i=e("../utils/").debug("components:layer:warn");function o(e,t,n,r){var i=e.createFramebuffer();let o=n.viewport.x,a=n.viewport.y,s=n.viewport.x+n.viewport.width,l=n.viewport.y+n.viewport.height;"VIDEO"===r.tagName&&(e.bindTexture(e.TEXTURE_2D,t),e.texSubImage2D(e.TEXTURE_2D,0,0,0,r.width,r.height,e.RGB,e.UNSIGNED_BYTE,r)),e.bindFramebuffer(e.READ_FRAMEBUFFER,i),e.framebufferTexture2D(e.READ_FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0),e.readBuffer(e.COLOR_ATTACHMENT0),e.blitFramebuffer(0,0,r.width,r.height,o,a,s,l,e.COLOR_BUFFER_BIT,e.NEAREST),e.bindFramebuffer(e.READ_FRAMEBUFFER,null),e.deleteFramebuffer(i)}t.exports.Component=r("layer",{schema:{type:{default:"quad",oneOf:["quad","monocubemap","stereocubemap"]},src:{type:"map"},rotateCubemap:{default:!1},width:{default:0},height:{default:0}},init:function(){var e=this.el.sceneEl.renderer.getContext();this.quaternion=new THREE.Quaternion,this.position=new THREE.Vector3,this.bindMethods(),this.needsRedraw=!1,this.frameBuffer=e.createFramebuffer();var t=this.el.sceneEl.getAttribute("webxr").requiredFeatures;t.push("layers"),this.el.sceneEl.getAttribute("webxr","requiredFeatures",t),this.el.sceneEl.addEventListener("enter-vr",this.onEnterVR),this.el.sceneEl.addEventListener("exit-vr",this.onExitVR)},bindMethods:function(){this.onRequestedReferenceSpace=this.onRequestedReferenceSpace.bind(this),this.onEnterVR=this.onEnterVR.bind(this),this.onExitVR=this.onExitVR.bind(this)},update:function(e){this.data.src!==e.src&&this.updateSrc()},updateSrc:function(){var e=this.data.type;this.texture=void 0,"quad"!==e?"monocubemap"!==e&&"stereocubemap"!==e||this.loadCubeMapImages():this.loadQuadImage()},loadCubeMapImages:function(){var e,t=this.data.type,n=this.xrGLFactory,r=this.el.sceneEl.frame,i=this.data.src;this.visibilityChanged=!1,this.layer&&(i.complete?this.pendingCubeMapUpdate=!1:this.pendingCubeMapUpdate=!0,this.loadingScreen?this.loadingScreen=!1:this.loadingScreen=!0,"monocubemap"===t?(e=n.getSubImage(this.layer,r),this.loadCubeMapImage(e.colorTexture,i,0)):(e=n.getSubImage(this.layer,r,"left"),this.loadCubeMapImage(e.colorTexture,i,0),e=n.getSubImage(this.layer,r,"right"),this.loadCubeMapImage(e.colorTexture,i,6)))},loadQuadImage:function(){var e=this.data.src,t=this;this.el.sceneEl.systems.material.loadTexture(e,{src:e},(function(n){t.el.sceneEl.renderer.initTexture(n),t.texture=n,"VIDEO"===e.tagName&&setTimeout((function(){t.textureIsVideo=!0}),1e3),t.layer&&(t.layer.height=t.data.height/2||t.texture.image.height/1e3,t.layer.width=t.data.width/2||t.texture.image.width/1e3,t.needsRedraw=!0),t.updateQuadPanel()}))},preGenerateCubeMapTextures:function(e,t){"monocubemap"===this.data.type?this.generateCubeMapTextures(e,0,t):(this.generateCubeMapTextures(e,0,t),this.generateCubeMapTextures(e,6,t))},generateCubeMapTextures:function(e,t,n){for(var r,i,o=this.data,a=this.cubeFaceSize,s=Math.min(e.width,e.height),l=[],c=0;c<6;c++){var u=document.createElement("CANVAS");u.width=u.height=a;var h=u.getContext("2d");o.rotateCubemap&&(2!==c&&3!==c||(h.save(),h.translate(a,a),h.rotate(Math.PI))),h.drawImage(e,(c+t)*s,0,s,s,0,0,a,a),h.restore(),n&&n(),l.push(u)}return o.rotateCubemap&&(r=l[0],i=l[1],l[0]=i,l[1]=r,r=l[4],i=l[5],l[4]=i,l[5]=r),n&&n(),l},loadCubeMapImage:function(e,t,n){var r,i=this.el.sceneEl.renderer.getContext();i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1),i.bindTexture(i.TEXTURE_CUBE_MAP,e),r=!t.complete||this.loadingScreen?this.loadingScreenImages:this.generateCubeMapTextures(t,n);var o=0;r.forEach((function(e,t){i.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+t,0,0,0,i.RGBA,i.UNSIGNED_BYTE,e),o=i.getError()})),0!==o&&console.log("renderingError, WebGL Error Code: "+o),i.bindTexture(i.TEXTURE_CUBE_MAP,null)},tick:function(){this.el.sceneEl.xrSession&&(!this.layer&&this.el.sceneEl.is("vr-mode")&&this.initLayer(),this.updateTransform(),this.data.src.complete&&(this.pendingCubeMapUpdate||this.loadingScreen||this.visibilityChanged)&&this.loadCubeMapImages(),(this.needsRedraw||this.layer.needsRedraw||this.textureIsVideo)&&("quad"===this.data.type&&this.draw(),this.needsRedraw=!1))},initLayer:function(){var e=this,t=this.data.type;this.el.sceneEl.xrSession.onvisibilitychange=function(t){e.visibilityChanged="hidden"!==t.session.visibilityState},"quad"!==t?"monocubemap"!==t&&"stereocubemap"!==t||this.initCubeMapLayer():this.initQuadLayer()},initQuadLayer:function(){var e=this.el.sceneEl,t=e.renderer.getContext(),n=this.xrGLFactory=new XRWebGLBinding(e.xrSession,t);this.texture&&(this.layer=n.createQuadLayer({space:this.referenceSpace,viewPixelHeight:2048,viewPixelWidth:2048,height:this.data.height/2||this.texture.image.height/1e3,width:this.data.width/2||this.texture.image.width/1e3}),e.renderer.xr.addLayer(this.layer))},initCubeMapLayer:function(){var e=this.data.src,t=this.el.sceneEl,n=t.renderer.getContext(),r=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),i=this.cubeFaceSize=Math.min(r,Math.min(e.width,e.height)),o=this.xrGLFactory=new XRWebGLBinding(t.xrSession,n);this.layer=o.createCubeLayer({space:this.referenceSpace,viewPixelWidth:i,viewPixelHeight:i,layout:"monocubemap"===this.data.type?"mono":"stereo",isStatic:!1}),this.initLoadingScreenImages(),this.loadCubeMapImages(),t.renderer.xr.addLayer(this.layer)},initLoadingScreenImages:function(){for(var e=this.cubeFaceSize,t=this.loadingScreenImages=[],n=0;n<6;n++){var r=document.createElement("CANVAS");r.width=r.height=e;var i=r.getContext("2d");r.width=r.height=e,i.fillStyle="black",i.fillRect(0,0,e,e),2!==n&&3!==n&&(i.translate(e,0),i.scale(-1,1),i.fillStyle="white",i.font="30px Arial",i.fillText("Loading",e/2,e/2)),t.push(r)}},destroyLayer:function(){this.layer&&(this.el.sceneEl.renderer.xr.removeLayer(this.layer),this.layer.destroy(),this.layer=void 0)},toggleCompositorLayer:function(){this.enableCompositorLayer(!this.layerEnabled)},enableCompositorLayer:function(e){this.layerEnabled=e,this.quadPanelEl.object3D.visible=!this.layerEnabled},updateQuadPanel:function(){var e=this.quadPanelEl;this.quadPanelEl||(e=this.quadPanelEl=document.createElement("a-entity"),this.el.appendChild(e)),e.setAttribute("material",{shader:"flat",src:this.data.src,transparent:!0}),e.setAttribute("geometry",{primitive:"plane",height:this.data.height||this.texture.image.height/1e3,width:this.data.width||this.texture.image.height/1e3})},draw:function(){var e=this.el.sceneEl,t=this.el.sceneEl.renderer.getContext(),n=this.xrGLFactory.getSubImage(this.layer,e.frame),r=e.renderer.properties.get(this.texture).__webglTexture,i=t.getParameter(t.FRAMEBUFFER_BINDING);t.viewport(n.viewport.x,n.viewport.y,n.viewport.width,n.viewport.height),t.bindFramebuffer(t.FRAMEBUFFER,this.frameBuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,n.colorTexture,0),o(t,r,n,this.data.src),t.bindFramebuffer(t.FRAMEBUFFER,i)},updateTransform:function(){var e=this.el,t=this.position,n=this.quaternion;e.object3D.updateMatrixWorld(),t.setFromMatrixPosition(e.object3D.matrixWorld),n.setFromRotationMatrix(e.object3D.matrixWorld),this.layerEnabled||t.set(0,0,1e8),this.layer.transform=new XRRigidTransform(t,n)},onEnterVR:function(){var e=this.el.sceneEl,t=e.xrSession;e.hasWebXR&&XRWebGLBinding&&t?(t.requestReferenceSpace("local").then(this.onRequestedReferenceSpace),this.needsRedraw=!0,this.layerEnabled=!0,this.quadPanelEl&&(this.quadPanelEl.object3D.visible=!1),this.data.src.play&&this.data.src.play()):i("The layer component requires WebXR and the layers API enabled")},onExitVR:function(){this.quadPanelEl&&(this.quadPanelEl.object3D.visible=!0),this.destroyLayer()},onRequestedReferenceSpace:function(e){this.referenceSpace=e}})},{"../core/component":131,"../utils/":205}],87:[function(e,t,n){var r=e("../utils/bind"),i=e("../utils").diff,o=e("../utils/debug"),a=e("../core/component").registerComponent,s=e("../lib/three"),l=s.Math.degToRad,c=o("components:light:warn");t.exports.Component=a("light",{schema:{angle:{default:60,if:{type:["spot"]}},color:{type:"color"},groundColor:{type:"color",if:{type:["hemisphere"]}},decay:{default:1,if:{type:["point","spot"]}},distance:{default:0,min:0,if:{type:["point","spot"]}},intensity:{default:1,min:0,if:{type:["ambient","directional","hemisphere","point","spot"]}},penumbra:{default:0,min:0,max:1,if:{type:["spot"]}},type:{default:"directional",oneOf:["ambient","directional","hemisphere","point","spot"],schemaChange:!0},target:{type:"selector",if:{type:["spot","directional"]}},castShadow:{default:!1,if:{type:["point","spot","directional"]}},shadowBias:{default:0,if:{castShadow:!0}},shadowCameraFar:{default:500,if:{castShadow:!0}},shadowCameraFov:{default:90,if:{castShadow:!0}},shadowCameraNear:{default:.5,if:{castShadow:!0}},shadowCameraTop:{default:5,if:{castShadow:!0}},shadowCameraRight:{default:5,if:{castShadow:!0}},shadowCameraBottom:{default:-5,if:{castShadow:!0}},shadowCameraLeft:{default:-5,if:{castShadow:!0}},shadowCameraVisible:{default:!1,if:{castShadow:!0}},shadowMapHeight:{default:512,if:{castShadow:!0}},shadowMapWidth:{default:512,if:{castShadow:!0}},shadowRadius:{default:1,if:{castShadow:!0}}},init:function(){var e=this.el;this.light=null,this.defaultTarget=null,this.rendererSystem=this.el.sceneEl.systems.renderer,this.system.registerLight(e)},update:function(e){var t=this.data,n=i(t,e),o=this.light,a=this.rendererSystem,s=this;if(!o||"type"in n)this.setLight(this.data),this.updateShadow();else{var c=!1;Object.keys(n).forEach((function(e){var n=t[e];switch(e){case"color":o.color.set(n),a.applyColorCorrection(o.color);break;case"groundColor":o.groundColor.set(n),a.applyColorCorrection(o.groundColor);break;case"angle":o.angle=l(n);break;case"target":null===n?"spot"!==t.type&&"directional"!==t.type||(o.target=s.defaultTarget):n.hasLoaded?s.onSetTarget(n,o):n.addEventListener("loaded",r(s.onSetTarget,s,n,o));break;case"castShadow":case"shadowBias":case"shadowCameraFar":case"shadowCameraFov":case"shadowCameraNear":case"shadowCameraTop":case"shadowCameraRight":case"shadowCameraBottom":case"shadowCameraLeft":case"shadowCameraVisible":case"shadowMapHeight":case"shadowMapWidth":case"shadowRadius":c||(s.updateShadow(),c=!0);break;default:o[e]=n}}))}},setLight:function(e){var t=this.el,n=this.getLight(e);n&&(this.light&&t.removeObject3D("light"),this.light=n,this.light.el=t,t.setObject3D("light",this.light),"spot"!==e.type&&"directional"!==e.type&&"hemisphere"!==e.type||t.getObject3D("light").translateY(-1),"spot"===e.type&&(t.setObject3D("light-target",this.defaultTarget),t.getObject3D("light-target").position.set(0,0,-1)))},updateShadow:function(){var e=this.el,t=this.data,n=this.light;n.castShadow=t.castShadow;var r=e.getObject3D("cameraHelper");if(t.shadowCameraVisible&&!r?e.setObject3D("cameraHelper",new s.CameraHelper(n.shadow.camera)):!t.shadowCameraVisible&&r&&e.removeObject3D("cameraHelper"),!t.castShadow)return n;n.shadow.bias=t.shadowBias,n.shadow.radius=t.shadowRadius,n.shadow.mapSize.height=t.shadowMapHeight,n.shadow.mapSize.width=t.shadowMapWidth,n.shadow.camera.near=t.shadowCameraNear,n.shadow.camera.far=t.shadowCameraFar,n.shadow.camera instanceof s.OrthographicCamera?(n.shadow.camera.top=t.shadowCameraTop,n.shadow.camera.right=t.shadowCameraRight,n.shadow.camera.bottom=t.shadowCameraBottom,n.shadow.camera.left=t.shadowCameraLeft):n.shadow.camera.fov=t.shadowCameraFov,n.shadow.camera.updateProjectionMatrix(),r&&r.update()},getLight:function(e){var t=e.angle,n=new s.Color(e.color);this.rendererSystem.applyColorCorrection(n),n=n.getHex();var i=e.decay,o=e.distance,a=new s.Color(e.groundColor);this.rendererSystem.applyColorCorrection(a),a=a.getHex();var u=e.intensity,h=e.type,d=e.target,p=null;switch(h.toLowerCase()){case"ambient":return new s.AmbientLight(n,u);case"directional":return p=new s.DirectionalLight(n,u),this.defaultTarget=p.target,d&&(d.hasLoaded?this.onSetTarget(d,p):d.addEventListener("loaded",r(this.onSetTarget,this,d,p))),p;case"hemisphere":return new s.HemisphereLight(n,a,u);case"point":return new s.PointLight(n,u,o,i);case"spot":return p=new s.SpotLight(n,u,o,l(t),e.penumbra,i),this.defaultTarget=p.target,d&&(d.hasLoaded?this.onSetTarget(d,p):d.addEventListener("loaded",r(this.onSetTarget,this,d,p))),p;default:c("%s is not a valid light type. Choose from ambient, directional, hemisphere, point, spot.",h)}},onSetTarget:function(e,t){t.target=e.object3D},remove:function(){var e=this.el;e.removeObject3D("light"),e.getObject3D("cameraHelper")&&e.removeObject3D("cameraHelper")}})},{"../core/component":131,"../lib/three":179,"../utils":205,"../utils/bind":199,"../utils/debug":201}],88:[function(e,t,n){var r=e("../core/component").registerComponent;function i(e,t){return!(!e||!t)&&e.x===t.x&&e.y===t.y&&e.z===t.z}t.exports.Component=r("line",{schema:{start:{type:"vec3",default:{x:0,y:0,z:0}},end:{type:"vec3",default:{x:0,y:0,z:0}},color:{type:"color",default:"#74BEC1"},opacity:{type:"number",default:1},visible:{default:!0}},multiple:!0,init:function(){var e,t,n=this.data;this.rendererSystem=this.el.sceneEl.systems.renderer,t=this.material=new THREE.LineBasicMaterial({color:n.color,opacity:n.opacity,transparent:n.opacity<1,visible:n.visible}),(e=this.geometry=new THREE.BufferGeometry).setAttribute("position",new THREE.BufferAttribute(new Float32Array(6),3)),this.rendererSystem.applyColorCorrection(t.color),this.line=new THREE.Line(e,t),this.el.setObject3D(this.attrName,this.line)},update:function(e){var t=this.data,n=this.geometry,r=!1,o=this.material,a=n.attributes.position.array;i(t.start,e.start)||(a[0]=t.start.x,a[1]=t.start.y,a[2]=t.start.z,r=!0),i(t.end,e.end)||(a[3]=t.end.x,a[4]=t.end.y,a[5]=t.end.z,r=!0),r&&(n.attributes.position.needsUpdate=!0,n.computeBoundingSphere()),o.color.setStyle(t.color),this.rendererSystem.applyColorCorrection(o.color),o.opacity=t.opacity,o.transparent=t.opacity<1,o.visible=t.visible},remove:function(){this.el.removeObject3D("line",this.line)}})},{"../core/component":131}],89:[function(e,t,n){var r=e("../core/component").registerComponent,i=e("../core/shader").registerShader,o=e("../lib/three");t.exports.Component=r("link",{schema:{backgroundColor:{default:"red",type:"color"},borderColor:{default:"white",type:"color"},highlighted:{default:!1},highlightedColor:{default:"#24CAFF",type:"color"},href:{default:""},image:{type:"asset"},on:{default:"click"},peekMode:{default:!1},title:{default:""},titleColor:{default:"white",type:"color"},visualAspectEnabled:{default:!1}},init:function(){this.navigate=this.navigate.bind(this),this.previousQuaternion=void 0,this.quaternionClone=new o.Quaternion,this.hiddenEls=[]},update:function(e){var t,n,r=this.data,i=this.el;r.visualAspectEnabled&&(this.initVisualAspect(),t=r.highlighted?r.highlightedColor:r.backgroundColor,n=r.highlighted?r.highlightedColor:r.borderColor,i.setAttribute("material","backgroundColor",t),i.setAttribute("material","strokeColor",n),r.on!==e.on&&this.updateEventListener(),void 0!==e.peekMode&&r.peekMode!==e.peekMode&&this.updatePeekMode(),r.image&&e.image!==r.image&&i.setAttribute("material","pano","string"===typeof r.image?r.image:r.image.src))},updatePeekMode:function(){var e=this.el,t=this.sphereEl;this.data.peekMode?(this.hideAll(),e.getObject3D("mesh").visible=!1,t.setAttribute("visible",!0)):(this.showAll(),e.getObject3D("mesh").visible=!0,t.setAttribute("visible",!1))},play:function(){this.updateEventListener()},pause:function(){this.removeEventListener()},updateEventListener:function(){var e=this.el;e.isPlaying&&(this.removeEventListener(),e.addEventListener(this.data.on,this.navigate))},removeEventListener:function(){var e=this.data.on;e&&this.el.removeEventListener(e,this.navigate)},initVisualAspect:function(){var e,t,n,r=this.el;this.data.visualAspectEnabled&&!this.visualAspectInitialized&&(n=this.textEl=this.textEl||document.createElement("a-entity"),t=this.sphereEl=this.sphereEl||document.createElement("a-entity"),e=this.semiSphereEl=this.semiSphereEl||document.createElement("a-entity"),r.setAttribute("geometry",{primitive:"circle",radius:1,segments:64}),r.setAttribute("material",{shader:"portal",pano:this.data.image,side:"double"}),n.setAttribute("text",{color:this.data.titleColor,align:"center",font:"kelsonsans",value:this.data.title||this.data.href,width:4}),n.setAttribute("position","0 1.5 0"),r.appendChild(n),e.setAttribute("geometry",{primitive:"sphere",radius:1,phiStart:0,segmentsWidth:64,segmentsHeight:64,phiLength:180,thetaStart:0,thetaLength:360}),e.setAttribute("material",{shader:"portal",borderEnabled:0,pano:this.data.image,side:"back"}),e.setAttribute("rotation","0 180 0"),e.setAttribute("position","0 0 0"),e.setAttribute("visible",!1),r.appendChild(e),t.setAttribute("geometry",{primitive:"sphere",radius:10,segmentsWidth:64,segmentsHeight:64}),t.setAttribute("material",{shader:"portal",borderEnabled:0,pano:this.data.image,side:"back"}),t.setAttribute("visible",!1),r.appendChild(t),this.visualAspectInitialized=!0)},navigate:function(){window.location=this.data.href},tick:function(){var e=new o.Vector3,t=new o.Vector3,n=new o.Quaternion,r=new o.Vector3;return function(){var i,o,a=this.el,s=a.object3D,l=a.sceneEl.camera,c=this.textEl;if(this.data.visualAspectEnabled)if(s.updateMatrixWorld(),l.parent.updateMatrixWorld(),l.updateMatrixWorld(),s.matrix.decompose(t,n,r),t.setFromMatrixPosition(s.matrixWorld),e.setFromMatrixPosition(l.matrixWorld),(o=t.distanceTo(e))>20)this.previousQuaternion||(this.quaternionClone.copy(n),this.previousQuaternion=this.quaternionClone),s.lookAt(e);else{if(i=this.calculateCameraPortalOrientation(),o<.5){if(!0===this.semiSphereEl.getAttribute("visible"))return;c.setAttribute("text","width",1.5),i<=0?(c.setAttribute("position","0 0 0.75"),c.setAttribute("rotation","0 180 0"),this.semiSphereEl.setAttribute("rotation","0 0 0")):(c.setAttribute("position","0 0 -0.75"),c.setAttribute("rotation","0 0 0"),this.semiSphereEl.setAttribute("rotation","0 180 0")),a.getObject3D("mesh").visible=!1,this.semiSphereEl.setAttribute("visible",!0),this.peekCameraPortalOrientation=i}else i<=0?c.setAttribute("rotation","0 180 0"):c.setAttribute("rotation","0 0 0"),c.setAttribute("text","width",5),c.setAttribute("position","0 1.5 0"),a.getObject3D("mesh").visible=!0,this.semiSphereEl.setAttribute("visible",!1),this.peekCameraPortalOrientation=void 0;this.previousQuaternion&&(s.quaternion.copy(this.previousQuaternion),this.previousQuaternion=void 0)}}}(),hideAll:function(){var e=this.el,t=this.hiddenEls,n=this;t.length>0||e.sceneEl.object3D.traverse((function(r){r&&r.el&&r.el.hasAttribute("link-controls")||r.el&&r!==e.sceneEl.object3D&&r.el!==e&&r.el!==n.sphereEl&&r.el!==e.sceneEl.cameraEl&&!1!==r.el.getAttribute("visible")&&r.el!==n.textEl&&r.el!==n.semiSphereEl&&(r.el.setAttribute("visible",!1),t.push(r.el))}))},showAll:function(){this.hiddenEls.forEach((function(e){e.setAttribute("visible",!0)})),this.hiddenEls=[]},calculateCameraPortalOrientation:function(){var e=new o.Matrix4,t=new o.Vector3,n=new o.Vector3(0,0,1),r=new o.Vector3(0,0,0);return function(){var i=this.el,o=i.sceneEl.camera;return t.set(0,0,0),n.set(0,0,1),r.set(0,0,0),i.object3D.matrixWorld.extractRotation(e),n.applyMatrix4(e),i.object3D.updateMatrixWorld(),i.object3D.localToWorld(r),o.parent.parent.updateMatrixWorld(),o.parent.updateMatrixWorld(),o.updateMatrixWorld(),o.localToWorld(t),t.sub(r).normalize(),n.normalize(),Math.sign(n.dot(t))}}(),remove:function(){this.removeEventListener()}}),i("portal",{schema:{borderEnabled:{default:1,type:"int",is:"uniform"},backgroundColor:{default:"red",type:"color",is:"uniform"},pano:{type:"map",is:"uniform"},strokeColor:{default:"white",type:"color",is:"uniform"}},vertexShader:["vec3 portalPosition;","varying vec3 vWorldPosition;","varying float vDistanceToCenter;","varying float vDistance;","void main() {","vDistanceToCenter = clamp(length(position - vec3(0.0, 0.0, 0.0)), 0.0, 1.0);","portalPosition = (modelMatrix * vec4(0.0, 0.0, 0.0, 1.0)).xyz;","vDistance = length(portalPosition - cameraPosition);","vWorldPosition = (modelMatrix * vec4(position, 1.0)).xyz;","gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);","}"].join("\n"),fragmentShader:["#define RECIPROCAL_PI2 0.15915494","uniform sampler2D pano;","uniform vec3 strokeColor;","uniform vec3 backgroundColor;","uniform float borderEnabled;","varying float vDistanceToCenter;","varying float vDistance;","varying vec3 vWorldPosition;","void main() {","vec3 direction = normalize(vWorldPosition - cameraPosition);","vec2 sampleUV;","float borderThickness = clamp(exp(-vDistance / 50.0), 0.6, 0.95);","sampleUV.y = clamp(direction.y * 0.5 + 0.5, 0.0, 1.0);","sampleUV.x = atan(direction.z, -direction.x) * -RECIPROCAL_PI2 + 0.5;","if (vDistanceToCenter > borderThickness && borderEnabled == 1.0) {","gl_FragColor = vec4(strokeColor, 1.0);","} else {","gl_FragColor = mix(texture2D(pano, sampleUV), vec4(backgroundColor, 1.0), clamp(pow((vDistance / 15.0), 2.0), 0.0, 1.0));","}","}"].join("\n")})},{"../core/component":131,"../core/shader":141,"../lib/three":179}],90:[function(e,t,n){var r=e("../core/component").registerComponent,i=e("../lib/three"),o=e("../utils/"),a=o.bind,s=Math.PI/2;t.exports.Component=r("look-controls",{dependencies:["position","rotation"],schema:{enabled:{default:!0},magicWindowTrackingEnabled:{default:!0},pointerLockEnabled:{default:!1},reverseMouseDrag:{default:!1},reverseTouchDrag:{default:!1},touchEnabled:{default:!0},mouseEnabled:{default:!0}},init:function(){this.deltaYaw=0,this.previousHMDPosition=new i.Vector3,this.hmdQuaternion=new i.Quaternion,this.magicWindowAbsoluteEuler=new i.Euler,this.magicWindowDeltaEuler=new i.Euler,this.position=new i.Vector3,this.magicWindowObject=new i.Object3D,this.rotation={},this.deltaRotation={},this.savedPose=null,this.pointerLocked=!1,this.setupMouseControls(),this.bindMethods(),this.previousMouseEvent={},this.setupMagicWindowControls(),this.savedPose={position:new i.Vector3,rotation:new i.Euler},this.el.sceneEl.is("vr-mode")&&this.onEnterVR()},setupMagicWindowControls:function(){var e,t=this.data;o.device.isMobile()&&(e=this.magicWindowControls=new i.DeviceOrientationControls(this.magicWindowObject),"undefined"!==typeof DeviceOrientationEvent&&DeviceOrientationEvent.requestPermission&&(e.enabled=!1,this.el.sceneEl.components["device-orientation-permission-ui"].permissionGranted?e.enabled=t.magicWindowTrackingEnabled:this.el.sceneEl.addEventListener("deviceorientationpermissiongranted",(function(){e.enabled=t.magicWindowTrackingEnabled}))))},update:function(e){var t=this.data;t.enabled!==e.enabled&&this.updateGrabCursor(t.enabled),e&&!t.magicWindowTrackingEnabled&&e.magicWindowTrackingEnabled&&(this.magicWindowAbsoluteEuler.set(0,0,0),this.magicWindowDeltaEuler.set(0,0,0)),this.magicWindowControls&&(this.magicWindowControls.enabled=t.magicWindowTrackingEnabled),e&&!t.pointerLockEnabled!==e.pointerLockEnabled&&(this.removeEventListeners(),this.addEventListeners(),this.pointerLocked&&this.exitPointerLock())},tick:function(e){this.data.enabled&&this.updateOrientation()},play:function(){this.addEventListeners()},pause:function(){this.removeEventListeners(),this.pointerLocked&&this.exitPointerLock()},remove:function(){this.removeEventListeners(),this.pointerLocked&&this.exitPointerLock()},bindMethods:function(){this.onMouseDown=a(this.onMouseDown,this),this.onMouseMove=a(this.onMouseMove,this),this.onMouseUp=a(this.onMouseUp,this),this.onTouchStart=a(this.onTouchStart,this),this.onTouchMove=a(this.onTouchMove,this),this.onTouchEnd=a(this.onTouchEnd,this),this.onEnterVR=a(this.onEnterVR,this),this.onExitVR=a(this.onExitVR,this),this.onPointerLockChange=a(this.onPointerLockChange,this),this.onPointerLockError=a(this.onPointerLockError,this)},setupMouseControls:function(){this.mouseDown=!1,this.pitchObject=new i.Object3D,this.yawObject=new i.Object3D,this.yawObject.position.y=10,this.yawObject.add(this.pitchObject)},addEventListeners:function(){var e=this.el.sceneEl,t=e.canvas;t?(t.addEventListener("mousedown",this.onMouseDown,!1),window.addEventListener("mousemove",this.onMouseMove,!1),window.addEventListener("mouseup",this.onMouseUp,!1),t.addEventListener("touchstart",this.onTouchStart),window.addEventListener("touchmove",this.onTouchMove),window.addEventListener("touchend",this.onTouchEnd),e.addEventListener("enter-vr",this.onEnterVR),e.addEventListener("exit-vr",this.onExitVR),this.data.pointerLockEnabled&&(document.addEventListener("pointerlockchange",this.onPointerLockChange,!1),document.addEventListener("mozpointerlockchange",this.onPointerLockChange,!1),document.addEventListener("pointerlockerror",this.onPointerLockError,!1))):e.addEventListener("render-target-loaded",a(this.addEventListeners,this))},removeEventListeners:function(){var e=this.el.sceneEl,t=e&&e.canvas;t&&(t.removeEventListener("mousedown",this.onMouseDown),window.removeEventListener("mousemove",this.onMouseMove),window.removeEventListener("mouseup",this.onMouseUp),t.removeEventListener("touchstart",this.onTouchStart),window.removeEventListener("touchmove",this.onTouchMove),window.removeEventListener("touchend",this.onTouchEnd),e.removeEventListener("enter-vr",this.onEnterVR),e.removeEventListener("exit-vr",this.onExitVR),document.removeEventListener("pointerlockchange",this.onPointerLockChange,!1),document.removeEventListener("mozpointerlockchange",this.onPointerLockChange,!1),document.removeEventListener("pointerlockerror",this.onPointerLockError,!1))},updateOrientation:function(){var e=new i.Matrix4;return function(){var t,n=this.el.object3D,r=this.pitchObject,i=this.yawObject,o=this.el.sceneEl;o.is("vr-mode")&&o.checkHeadsetConnected()?o.hasWebXR&&(t=o.renderer.xr.getCameraPose())&&(e.elements=t.transform.matrix,e.decompose(n.position,n.rotation,n.scale)):(this.updateMagicWindowOrientation(),n.rotation.x=this.magicWindowDeltaEuler.x+r.rotation.x,n.rotation.y=this.magicWindowDeltaEuler.y+i.rotation.y,n.rotation.z=this.magicWindowDeltaEuler.z)}}(),updateMagicWindowOrientation:function(){var e=this.magicWindowAbsoluteEuler,t=this.magicWindowDeltaEuler;this.magicWindowControls&&this.magicWindowControls.enabled&&(this.magicWindowControls.update(),e.setFromQuaternion(this.magicWindowObject.quaternion,"YXZ"),this.previousMagicWindowYaw||0===e.y||(this.previousMagicWindowYaw=e.y),this.previousMagicWindowYaw&&(t.x=e.x,t.y+=e.y-this.previousMagicWindowYaw,t.z=e.z,this.previousMagicWindowYaw=e.y))},onMouseMove:function(e){var t,n,r,i=this.pitchObject,o=this.previousMouseEvent,a=this.yawObject;this.data.enabled&&(this.mouseDown||this.pointerLocked)&&(this.pointerLocked?(n=e.movementX||e.mozMovementX||0,r=e.movementY||e.mozMovementY||0):(n=e.screenX-o.screenX,r=e.screenY-o.screenY),this.previousMouseEvent.screenX=e.screenX,this.previousMouseEvent.screenY=e.screenY,t=this.data.reverseMouseDrag?1:-1,a.rotation.y+=.002*n*t,i.rotation.x+=.002*r*t,i.rotation.x=Math.max(-s,Math.min(s,i.rotation.x)))},onMouseDown:function(e){var t=this.el.sceneEl;if(this.data.enabled&&this.data.mouseEnabled&&(!t.is("vr-mode")||!t.checkHeadsetConnected())&&0===e.button){var n=t&&t.canvas;this.mouseDown=!0,this.previousMouseEvent.screenX=e.screenX,this.previousMouseEvent.screenY=e.screenY,this.showGrabbingCursor(),this.data.pointerLockEnabled&&!this.pointerLocked&&(n.requestPointerLock?n.requestPointerLock():n.mozRequestPointerLock&&n.mozRequestPointerLock())}},showGrabbingCursor:function(){this.el.sceneEl.canvas.style.cursor="grabbing"},hideGrabbingCursor:function(){this.el.sceneEl.canvas.style.cursor=""},onMouseUp:function(){this.mouseDown=!1,this.hideGrabbingCursor()},onTouchStart:function(e){1===e.touches.length&&this.data.touchEnabled&&!this.el.sceneEl.is("vr-mode")&&(this.touchStart={x:e.touches[0].pageX,y:e.touches[0].pageY},this.touchStarted=!0)},onTouchMove:function(e){var t,n,r=this.el.sceneEl.canvas,i=this.yawObject;this.touchStarted&&this.data.touchEnabled&&(n=2*Math.PI*(e.touches[0].pageX-this.touchStart.x)/r.clientWidth,t=this.data.reverseTouchDrag?1:-1,i.rotation.y-=.5*n*t,this.touchStart={x:e.touches[0].pageX,y:e.touches[0].pageY})},onTouchEnd:function(){this.touchStarted=!1},onEnterVR:function(){var e=this.el.sceneEl;e.checkHeadsetConnected()&&(this.saveCameraPose(),this.el.object3D.position.set(0,0,0),this.el.object3D.rotation.set(0,0,0),e.hasWebXR&&(this.el.object3D.matrixAutoUpdate=!1,this.el.object3D.updateMatrix()))},onExitVR:function(){this.el.sceneEl.checkHeadsetConnected()&&(this.restoreCameraPose(),this.previousHMDPosition.set(0,0,0),this.el.object3D.matrixAutoUpdate=!0)},onPointerLockChange:function(){this.pointerLocked=!(!document.pointerLockElement&&!document.mozPointerLockElement)},onPointerLockError:function(){this.pointerLocked=!1},exitPointerLock:function(){document.exitPointerLock(),this.pointerLocked=!1},updateGrabCursor:function(e){var t=this.el.sceneEl;function n(){t.canvas.classList.add("a-grab-cursor")}function r(){t.canvas.classList.remove("a-grab-cursor")}t.canvas?e?n():r():e?t.addEventListener("render-target-loaded",n):t.addEventListener("render-target-loaded",r)},saveCameraPose:function(){var e=this.el;this.savedPose.position.copy(e.object3D.position),this.savedPose.rotation.copy(e.object3D.rotation),this.hasSavedPose=!0},restoreCameraPose:function(){var e=this.el,t=this.savedPose;this.hasSavedPose&&(e.object3D.position.copy(t.position),e.object3D.rotation.copy(t.rotation),this.hasSavedPose=!1)}})},{"../core/component":131,"../lib/three":179,"../utils/":205}],91:[function(e,t,n){var r=e("../utils/bind"),i=e("../core/component").registerComponent,o=e("../utils/tracked-controls"),a=o.checkControllerPresentAndSetup,s=o.emitIfAxesChanged,l=o.onButtonEvent,c="magicleap-one",u="https://cdn.aframe.io/controllers/magicleap/magicleap-one-controller.glb",h={axes:{touchpad:[0,1]},buttons:["trigger","grip","touchpad","menu"]};t.exports.Component=i("magicleap-controls",{schema:{hand:{default:"none"},model:{default:!0},orientationOffset:{type:"vec3"}},mapping:h,init:function(){var e=this;this.controllerPresent=!1,this.lastControllerCheck=0,this.onButtonChanged=r(this.onButtonChanged,this),this.onButtonDown=function(t){l(t.detail.id,"down",e)},this.onButtonUp=function(t){l(t.detail.id,"up",e)},this.onButtonTouchEnd=function(t){l(t.detail.id,"touchend",e)},this.onButtonTouchStart=function(t){l(t.detail.id,"touchstart",e)},this.previousButtonValues={},this.rendererSystem=this.el.sceneEl.systems.renderer,this.bindMethods()},update:function(){var e=this.data;this.controllerIndex="right"===e.hand?0:"left"===e.hand?1:2},play:function(){this.checkIfControllerPresent(),this.addControllersUpdateListener()},pause:function(){this.removeEventListeners(),this.removeControllersUpdateListener()},bindMethods:function(){this.onModelLoaded=r(this.onModelLoaded,this),this.onControllersUpdate=r(this.onControllersUpdate,this),this.checkIfControllerPresent=r(this.checkIfControllerPresent,this),this.removeControllersUpdateListener=r(this.removeControllersUpdateListener,this),this.onAxisMoved=r(this.onAxisMoved,this)},addEventListeners:function(){var e=this.el;e.addEventListener("buttonchanged",this.onButtonChanged),e.addEventListener("buttondown",this.onButtonDown),e.addEventListener("buttonup",this.onButtonUp),e.addEventListener("touchstart",this.onButtonTouchStart),e.addEventListener("touchend",this.onButtonTouchEnd),e.addEventListener("axismove",this.onAxisMoved),e.addEventListener("model-loaded",this.onModelLoaded),this.controllerEventsActive=!0},removeEventListeners:function(){var e=this.el;e.removeEventListener("buttonchanged",this.onButtonChanged),e.removeEventListener("buttondown",this.onButtonDown),e.removeEventListener("buttonup",this.onButtonUp),e.removeEventListener("touchstart",this.onButtonTouchStart),e.removeEventListener("touchend",this.onButtonTouchEnd),e.removeEventListener("axismove",this.onAxisMoved),e.removeEventListener("model-loaded",this.onModelLoaded),this.controllerEventsActive=!1},checkIfControllerPresent:function(){var e=this.data;a(this,c,{index:this.controllerIndex,hand:e.hand})},injectTrackedControls:function(){var e=this.el,t=this.data;e.setAttribute("tracked-controls",{idPrefix:c,hand:t.hand,controller:this.controllerIndex,orientationOffset:t.orientationOffset}),this.data.model&&this.el.setAttribute("gltf-model",u)},addControllersUpdateListener:function(){this.el.sceneEl.addEventListener("controllersupdated",this.onControllersUpdate,!1)},removeControllersUpdateListener:function(){this.el.sceneEl.removeEventListener("controllersupdated",this.onControllersUpdate,!1)},onControllersUpdate:function(){this.checkIfControllerPresent()},onButtonChanged:function(e){var t,n=this.mapping.buttons[e.detail.id];n&&("trigger"===n&&(t=e.detail.state.value,console.log("analog value of trigger press: "+t)),this.el.emit(n+"changed",e.detail.state))},onModelLoaded:function(e){e.detail.model.scale.set(.01,.01,.01)},onAxisMoved:function(e){s(this,this.mapping.axes,e)},updateModel:function(e,t){},setButtonColor:function(e,t){}})},{"../core/component":131,"../utils/bind":199,"../utils/tracked-controls":214}],92:[function(e,t,n){var r=e("../utils/"),i=e("../core/component"),o=e("../lib/three"),a=e("../core/shader"),s=r.debug("components:material:error"),l=i.registerComponent,c=a.shaders,u=a.shaderNames;function h(e){switch(e){case"back":return o.BackSide;case"double":return o.DoubleSide;default:return o.FrontSide}}function d(e){switch(e){case"face":return o.FaceColors;case"vertex":return o.VertexColors;default:return o.NoColors}}function p(e){switch(e){case"none":return o.NoBlending;case"additive":return o.AdditiveBlending;case"subtractive":return o.SubtractiveBlending;case"multiply":return o.MultiplyBlending;default:return o.NormalBlending}}function f(e,t){e.dispose(),t.unregisterMaterial(e)}t.exports.Component=l("material",{schema:{alphaTest:{default:0,min:0,max:1},depthTest:{default:!0},depthWrite:{default:!0},flatShading:{default:!1},npot:{default:!1},offset:{type:"vec2",default:{x:0,y:0}},opacity:{default:1,min:0,max:1},repeat:{type:"vec2",default:{x:1,y:1}},shader:{default:"standard",oneOf:u,schemaChange:!0},side:{default:"front",oneOf:["front","back","double"]},transparent:{default:!1},vertexColors:{type:"string",default:"none",oneOf:["face","vertex"]},visible:{default:!0},blending:{default:"normal",oneOf:["none","normal","additive","subtractive","multiply"]},dithering:{default:!0}},init:function(){this.material=null},update:function(e){var t=this.data;this.shader&&t.shader===e.shader||this.updateShader(t.shader),this.shader.update(this.data),this.updateMaterial(e)},updateSchema:function(e){var t,n,r,i;n=e&&e.shader,t=this.oldData&&this.oldData.shader,(r=c[i=n||t]&&c[i].schema)||s("Unknown shader schema "+i),t&&n===t||(this.extendSchema(r),this.updateBehavior())},updateBehavior:function(){var e,t,n=this.el.sceneEl,r=this.schema,i=this;function o(e,n){var r;for(r in t)t[r]=e;i.shader.update(t)}for(e in this.tick=void 0,t={},r)"time"===r[e].type&&(this.tick=o,t[e]=!0);n&&(this.tick?n.addBehavior(this):n.removeBehavior(this))},updateShader:function(e){var t,n=this.data,r=c[e]&&c[e].Shader;if(!r)throw new Error("Unknown shader "+e);(t=this.shader=new r).el=this.el,t.init(n),this.setMaterial(t.material),this.updateSchema(n)},updateMaterial:function(e){var t,n=this.data,r=this.material;for(t in r.alphaTest=n.alphaTest,r.depthTest=!1!==n.depthTest,r.depthWrite=!1!==n.depthWrite,r.opacity=n.opacity,r.flatShading=n.flatShading,r.side=h(n.side),r.transparent=!1!==n.transparent||n.opacity<1,r.vertexColors=d(n.vertexColors),r.visible=n.visible,r.blending=p(n.blending),r.dithering=n.dithering,e)break;!t||e.alphaTest===n.alphaTest&&e.side===n.side&&e.vertexColors===n.vertexColors||(r.needsUpdate=!0)},remove:function(){var e=new o.MeshBasicMaterial,t=this.material,n=this.el.getObject3D("mesh");n&&(n.material=e),f(t,this.system)},setMaterial:function(e){var t,n=this.el,r=this.system;this.material&&f(this.material,r),this.material=e,r.registerMaterial(e),(t=n.getObject3D("mesh"))?t.material=e:n.addEventListener("object3dset",(function t(r){"mesh"===r.detail.type&&r.target===n&&(n.getObject3D("mesh").material=e,n.removeEventListener("object3dset",t))}))}})},{"../core/component":131,"../core/shader":141,"../lib/three":179,"../utils/":205}],93:[function(e,t,n){var r=e("../utils/debug"),i=e("../core/component").registerComponent,o=e("../lib/three"),a=r("components:obj-model:warn");t.exports.Component=i("obj-model",{schema:{mtl:{type:"model"},obj:{type:"model"}},init:function(){var e=this;this.model=null,this.objLoader=new o.OBJLoader,this.mtlLoader=new o.MTLLoader(this.objLoader.manager),this.mtlLoader.crossOrigin="",this.el.addEventListener("componentinitialized",(function(t){e.model&&"material"===t.detail.name&&e.applyMaterial()}))},update:function(){var e=this.data;e.obj&&(this.resetMesh(),this.loadObj(e.obj,e.mtl))},remove:function(){this.model&&this.resetMesh()},resetMesh:function(){this.el.removeObject3D("mesh")},loadObj:function(e,t){var n=this,r=this.el,i=this.mtlLoader,o=this.objLoader,s=this.el.sceneEl.systems.renderer,l=t.substr(0,t.lastIndexOf("/")+1);if(t)return r.hasAttribute("material")&&a("Material component properties are ignored when a .MTL is provided"),i.setResourcePath(l),void i.load(t,(function(t){t.preload(),o.setMaterials(t),o.load(e,(function(e){n.model=e,n.model.traverse((function(e){if(e.isMesh){var t=e.material;t.color&&s.applyColorCorrection(t.color),t.map&&s.applyColorCorrection(t.map),t.emissive&&s.applyColorCorrection(t.emissive),t.emissiveMap&&s.applyColorCorrection(t.emissiveMap)}})),r.setObject3D("mesh",e),r.emit("model-loaded",{format:"obj",model:e})}))}));o.load(e,(function(e){n.model=e,n.applyMaterial(),r.setObject3D("mesh",e),r.emit("model-loaded",{format:"obj",model:e})}))},applyMaterial:function(){var e=this.el.components.material;e&&this.model.traverse((function(t){t instanceof o.Mesh&&(t.material=e.material)}))}})},{"../core/component":131,"../lib/three":179,"../utils/debug":201}],94:[function(e,t,n){var r=e("../core/component").registerComponent,i=e("../utils/bind"),o=e("../utils/tracked-controls"),a=o.checkControllerPresentAndSetup,s=o.emitIfAxesChanged,l=o.onButtonEvent,c=e("../utils/").device.isWebXRAvailable,u="https://cdn.aframe.io/controllers/oculus/go/oculus-go-controller.gltf",h=c?"oculus-go":"Oculus Go",d=c?{axes:{touchpad:[0,1]},buttons:["trigger","none","touchpad"]}:{axes:{trackpad:[0,1]},buttons:["trackpad","trigger"]};t.exports.Component=r("oculus-go-controls",{schema:{hand:{default:""},buttonColor:{type:"color",default:"#FFFFFF"},buttonTouchedColor:{type:"color",default:"#BBBBBB"},buttonHighlightColor:{type:"color",default:"#7A7A7A"},model:{default:!0},orientationOffset:{type:"vec3"},armModel:{default:!0}},mapping:d,bindMethods:function(){this.onModelLoaded=i(this.onModelLoaded,this),this.onControllersUpdate=i(this.onControllersUpdate,this),this.checkIfControllerPresent=i(this.checkIfControllerPresent,this),this.removeControllersUpdateListener=i(this.removeControllersUpdateListener,this),this.onAxisMoved=i(this.onAxisMoved,this)},init:function(){var e=this;this.onButtonChanged=i(this.onButtonChanged,this),this.onButtonDown=function(t){l(t.detail.id,"down",e)},this.onButtonUp=function(t){l(t.detail.id,"up",e)},this.onButtonTouchStart=function(t){l(t.detail.id,"touchstart",e)},this.onButtonTouchEnd=function(t){l(t.detail.id,"touchend",e)},this.controllerPresent=!1,this.lastControllerCheck=0,this.rendererSystem=this.el.sceneEl.systems.renderer,this.bindMethods()},addEventListeners:function(){var e=this.el;e.addEventListener("buttonchanged",this.onButtonChanged),e.addEventListener("buttondown",this.onButtonDown),e.addEventListener("buttonup",this.onButtonUp),e.addEventListener("touchstart",this.onButtonTouchStart),e.addEventListener("touchend",this.onButtonTouchEnd),e.addEventListener("model-loaded",this.onModelLoaded),e.addEventListener("axismove",this.onAxisMoved),this.controllerEventsActive=!0},removeEventListeners:function(){var e=this.el;e.removeEventListener("buttonchanged",this.onButtonChanged),e.removeEventListener("buttondown",this.onButtonDown),e.removeEventListener("buttonup",this.onButtonUp),e.removeEventListener("touchstart",this.onButtonTouchStart),e.removeEventListener("touchend",this.onButtonTouchEnd),e.removeEventListener("model-loaded",this.onModelLoaded),e.removeEventListener("axismove",this.onAxisMoved),this.controllerEventsActive=!1},checkIfControllerPresent:function(){a(this,h,this.data.hand?{hand:this.data.hand}:{})},play:function(){this.checkIfControllerPresent(),this.addControllersUpdateListener()},pause:function(){this.removeEventListeners(),this.removeControllersUpdateListener()},injectTrackedControls:function(){var e=this.el,t=this.data;e.setAttribute("tracked-controls",{armModel:t.armModel,hand:t.hand,idPrefix:h,orientationOffset:t.orientationOffset}),this.data.model&&this.el.setAttribute("gltf-model",u)},addControllersUpdateListener:function(){this.el.sceneEl.addEventListener("controllersupdated",this.onControllersUpdate,!1)},removeControllersUpdateListener:function(){this.el.sceneEl.removeEventListener("controllersupdated",this.onControllersUpdate,!1)},onControllersUpdate:function(){this.checkIfControllerPresent()},onModelLoaded:function(e){var t,n=e.detail.model;this.data.model&&((t=this.buttonMeshes={}).trigger=n.getObjectByName("oculus_go_button_trigger"),t.trackpad=n.getObjectByName("oculus_go_touchpad"),t.touchpad=n.getObjectByName("oculus_go_touchpad"))},onButtonChanged:function(e){var t=this.mapping.buttons[e.detail.id];t&&this.el.emit(t+"changed",e.detail.state)},onAxisMoved:function(e){s(this,this.mapping.axes,e)},updateModel:function(e,t){this.data.model&&this.updateButtonModel(e,t)},updateButtonModel:function(e,t){var n=this.buttonMeshes;if(n&&n[e]){var r,i;switch(t){case"down":r=this.data.buttonHighlightColor;break;case"touchstart":r=this.data.buttonTouchedColor;break;default:r=this.data.buttonColor}(i=n[e]).material.color.set(r),this.rendererSystem.applyColorCorrection(i.material.color)}}})},{"../core/component":131,"../utils/":205,"../utils/bind":199,"../utils/tracked-controls":214}],95:[function(e,t,n){var r=e("../utils/bind"),i=e("../core/component").registerComponent,o=e("../lib/three"),a=e("../utils/tracked-controls"),s=a.checkControllerPresentAndSetup,l=a.emitIfAxesChanged,c=a.onButtonEvent,u=e("../utils/").device.isWebXRAvailable,h="oculus-touch",d=u?h:"Oculus Touch",p="https://cdn.aframe.io/controllers/oculus/oculus-touch-controller-",f={left:{modelUrl:p+"left.gltf",rayOrigin:{origin:{x:.008,y:-.01,z:0},direction:{x:0,y:-.8,z:-1}},modelPivotOffset:new o.Vector3(-.005,.003,-.055),modelPivotRotation:new o.Euler(0,0,0)},right:{modelUrl:p+"right.gltf",rayOrigin:{origin:{x:-.008,y:-.01,z:0},direction:{x:0,y:-.8,z:-1}},modelPivotOffset:new o.Vector3(.005,.003,-.055),modelPivotRotation:new o.Euler(0,0,0)}},m={left:{modelUrl:p+"left.gltf",rayOrigin:{origin:{x:.002,y:-.005,z:-.03},direction:{x:0,y:-.8,z:-1}},modelPivotOffset:new o.Vector3(-.005,.036,-.037),modelPivotRotation:new o.Euler(Math.PI/4.5,0,0)},right:{modelUrl:p+"right.gltf",rayOrigin:{origin:{x:-.002,y:-.005,z:-.03},direction:{x:0,y:-.8,z:-1}},modelPivotOffset:new o.Vector3(.005,.036,-.037),modelPivotRotation:new o.Euler(Math.PI/4.5,0,0)}},v="oculus-touch",g={"oculus-touch":u?m:f,"oculus-touch-v2":{left:{modelUrl:p+"gen2-left.gltf",rayOrigin:{origin:{x:-.01,y:0,z:-.02},direction:{x:0,y:-.5,z:-1}},modelPivotOffset:new o.Vector3(0,0,0),modelPivotRotation:new o.Euler(0,0,0)},right:{modelUrl:p+"gen2-right.gltf",rayOrigin:{origin:{x:.01,y:0,z:-.02},direction:{x:0,y:-.5,z:-1}},modelPivotOffset:new o.Vector3(0,0,0),modelPivotRotation:new o.Euler(0,0,0)}},"oculus-touch-v3":{left:{modelUrl:p+"v3-left.glb",rayOrigin:{origin:{x:.015,y:.005,z:0},direction:{x:0,y:0,z:-1}},modelPivotOffset:new o.Vector3(.01,-.01,.05),modelPivotRotation:new o.Euler(Math.PI/4,0,0)},right:{modelUrl:p+"v3-right.glb",rayOrigin:{origin:{x:-.015,y:.005,z:0},direction:{x:0,y:0,z:-1}},modelPivotOffset:new o.Vector3(-.01,-.01,.05),modelPivotRotation:new o.Euler(Math.PI/4,0,0)}}},y=u?{left:{axes:{thumbstick:[2,3]},buttons:["trigger","grip","none","thumbstick","xbutton","ybutton","surface"]},right:{axes:{thumbstick:[2,3]},buttons:["trigger","grip","none","thumbstick","abutton","bbutton","surface"]}}:{left:{axes:{thumbstick:[0,1]},buttons:["thumbstick","trigger","grip","xbutton","ybutton","surface"]},right:{axes:{thumbstick:[0,1]},buttons:["thumbstick","trigger","grip","abutton","bbutton","surface"]}};t.exports.Component=i("oculus-touch-controls",{schema:{hand:{default:"left"},buttonColor:{type:"color",default:"#999"},buttonTouchColor:{type:"color",default:"#8AB"},buttonHighlightColor:{type:"color",default:"#2DF"},model:{default:!0},controllerType:{default:"auto",oneOf:["auto","oculus-touch","oculus-touch-v2","oculus-touch-v3"]},orientationOffset:{type:"vec3",default:{x:43,y:0,z:0}}},mapping:y,bindMethods:function(){this.onModelLoaded=r(this.onModelLoaded,this),this.onControllersUpdate=r(this.onControllersUpdate,this),this.checkIfControllerPresent=r(this.checkIfControllerPresent,this),this.onAxisMoved=r(this.onAxisMoved,this)},init:function(){var e=this;this.onButtonChanged=r(this.onButtonChanged,this),this.onButtonDown=function(t){c(t.detail.id,"down",e,e.data.hand)},this.onButtonUp=function(t){c(t.detail.id,"up",e,e.data.hand)},this.onButtonTouchStart=function(t){c(t.detail.id,"touchstart",e,e.data.hand)},this.onButtonTouchEnd=function(t){c(t.detail.id,"touchend",e,e.data.hand)},this.controllerPresent=!1,this.lastControllerCheck=0,this.previousButtonValues={},this.rendererSystem=this.el.sceneEl.systems.renderer,this.bindMethods()},addEventListeners:function(){var e=this.el;e.addEventListener("buttonchanged",this.onButtonChanged),e.addEventListener("buttondown",this.onButtonDown),e.addEventListener("buttonup",this.onButtonUp),e.addEventListener("touchstart",this.onButtonTouchStart),e.addEventListener("touchend",this.onButtonTouchEnd),e.addEventListener("axismove",this.onAxisMoved),e.addEventListener("model-loaded",this.onModelLoaded),this.controllerEventsActive=!0},removeEventListeners:function(){var e=this.el;e.removeEventListener("buttonchanged",this.onButtonChanged),e.removeEventListener("buttondown",this.onButtonDown),e.removeEventListener("buttonup",this.onButtonUp),e.removeEventListener("touchstart",this.onButtonTouchStart),e.removeEventListener("touchend",this.onButtonTouchEnd),e.removeEventListener("axismove",this.onAxisMoved),e.removeEventListener("model-loaded",this.onModelLoaded),this.controllerEventsActive=!1},checkIfControllerPresent:function(){s(this,d,{hand:this.data.hand})},play:function(){this.checkIfControllerPresent(),this.addControllersUpdateListener()},pause:function(){this.removeEventListeners(),this.removeControllersUpdateListener()},loadModel:function(e){var t,n=this.data;if(n.model){if(this.displayModel=g[n.controllerType]||g[v],"auto"===n.controllerType){var r=this.el.sceneEl.systems["tracked-controls-webvr"];if(r&&r.vrDisplay){var i=r.vrDisplay.displayName;/^Oculus Quest$/.test(i)&&(this.displayModel=g["oculus-touch-v2"])}else t=v,t=-1!==e.profiles.indexOf("oculus-touch-v2")?"oculus-touch-v2":t,t=-1!==e.profiles.indexOf("oculus-touch-v3")?"oculus-touch-v3":t,this.displayModel=g[t]}var o=this.displayModel[n.hand].modelUrl;this.el.setAttribute("gltf-model",o)}},injectTrackedControls:function(e){var t=this.data,n=h,r="right"===t.hand?"Oculus Touch (Right)":"Oculus Touch (Left)",i=u?n:r;this.el.setAttribute("tracked-controls",{id:i,hand:t.hand,orientationOffset:t.orientationOffset,handTrackingEnabled:!1}),this.loadModel(e)},addControllersUpdateListener:function(){this.el.sceneEl.addEventListener("controllersupdated",this.onControllersUpdate,!1)},removeControllersUpdateListener:function(){this.el.sceneEl.removeEventListener("controllersupdated",this.onControllersUpdate,!1)},onControllersUpdate:function(){this.checkIfControllerPresent()},onButtonChanged:function(e){var t,n=this.mapping[this.data.hand].buttons[e.detail.id],r=this.buttonMeshes;n&&("trigger"!==n&&"grip"!==n||(t=e.detail.state.value),r&&("trigger"===n&&r.trigger&&(r.trigger.rotation.x=this.originalXRotationTrigger-t*(Math.PI/26)),"grip"===n&&r.grip&&(r.grip.position.x=this.originalXPositionGrip+("left"===this.data.hand?-1:1)*t*.004)),this.el.emit(n+"changed",e.detail.state))},onModelLoaded:function(e){var t,n=this.controllerObject3D=e.detail.model;this.data.model&&((t=this.buttonMeshes={}).grip=n.getObjectByName("buttonHand"),this.originalXPositionGrip=t.grip&&t.grip.position.x,t.thumbstick=n.getObjectByName("stick"),t.trigger=n.getObjectByName("buttonTrigger"),this.originalXRotationTrigger=t.trigger&&t.trigger.rotation.x,t.xbutton=n.getObjectByName("buttonX"),t.abutton=n.getObjectByName("buttonA"),t.ybutton=n.getObjectByName("buttonY"),t.bbutton=n.getObjectByName("buttonB"),n.position.copy(this.displayModel[this.data.hand].modelPivotOffset),n.rotation.copy(this.displayModel[this.data.hand].modelPivotRotation),this.el.emit("controllermodelready",{name:"oculus-touch-controls",model:this.data.model,rayOrigin:this.displayModel[this.data.hand].rayOrigin}))},onAxisMoved:function(e){l(this,this.mapping[this.data.hand].axes,e)},updateModel:function(e,t){this.data.model&&this.updateButtonModel(e,t)},updateButtonModel:function(e,t){var n,r="up"===t||"touchend"===t?this.data.buttonColor:"touchstart"===t?this.data.buttonTouchColor:this.data.buttonHighlightColor,i=this.buttonMeshes;this.data.model&&i&&i[e]&&((n=i[e]).material.color.set(r),this.rendererSystem.applyColorCorrection(n.material.color))}})},{"../core/component":131,"../lib/three":179,"../utils/":205,"../utils/bind":199,"../utils/tracked-controls":214}],96:[function(e,t,n){var r=e("../core/component").registerComponent;t.exports.Component=r("position",{schema:{type:"vec3"},update:function(){var e=this.el.object3D,t=this.data;e.position.set(t.x,t.y,t.z)},remove:function(){this.el.object3D.position.set(0,0,0)}})},{"../core/component":131}],97:[function(e,t,n){var r=e("../core/component").registerComponent,i=e("../lib/three"),o=e("../utils/").debug("components:raycaster:warn"),a=/^[\w\s-.,[\]#]*$/,s={childList:!0,attributes:!0,subtree:!0},l={INTERSECT:"raycaster-intersected",INTERSECTION:"raycaster-intersection",INTERSECT_CLEAR:"raycaster-intersected-cleared",INTERSECTION_CLEAR:"raycaster-intersection-cleared"};function c(e,t){var n;for(e.length=t.length,n=0;n<t.length;n++)e[n]=t[n]}t.exports.Component=r("raycaster",{schema:{autoRefresh:{default:!0},direction:{type:"vec3",default:{x:0,y:0,z:-1}},enabled:{default:!0},far:{default:1e3},interval:{default:0},near:{default:0},objects:{default:""},origin:{type:"vec3"},showLine:{default:!1},lineColor:{default:"white"},lineOpacity:{default:1},useWorldCoordinates:{default:!1}},multiple:!0,init:function(){this.clearedIntersectedEls=[],this.unitLineEndVec3=new i.Vector3,this.intersectedEls=[],this.intersections=[],this.newIntersectedEls=[],this.newIntersections=[],this.objects=[],this.prevCheckTime=void 0,this.prevIntersectedEls=[],this.rawIntersections=[],this.raycaster=new i.Raycaster,this.updateOriginDirection(),this.setDirty=this.setDirty.bind(this),this.updateLine=this.updateLine.bind(this),this.observer=new MutationObserver(this.setDirty),this.dirty=!0,this.lineEndVec3=new i.Vector3,this.otherLineEndVec3=new i.Vector3,this.lineData={end:this.lineEndVec3},this.getIntersection=this.getIntersection.bind(this),this.intersectedDetail={el:this.el,getIntersection:this.getIntersection},this.intersectedClearedDetail={el:this.el},this.intersectionClearedDetail={clearedEls:this.clearedIntersectedEls},this.intersectionDetail={}},update:function(e){var t=this.data,n=this.el,r=this.raycaster;r.far=t.far,r.near=t.near,!t.showLine||t.far===e.far&&t.origin===e.origin&&t.direction===e.direction&&e.showLine||(this.unitLineEndVec3.copy(t.origin).add(t.direction).normalize(),this.drawLine()),!t.showLine&&e.showLine&&n.removeAttribute("line"),t.objects===e.objects||a.test(t.objects)||o('[raycaster] Selector "'+t.objects+'" may not update automatically with DOM changes.'),t.objects||o('[raycaster] For performance, please define raycaster.objects when using raycaster or cursor components to whitelist which entities to intersect with. e.g., raycaster="objects: [data-raycastable]".'),t.autoRefresh!==e.autoRefresh&&n.isPlaying&&(t.autoRefresh?this.addEventListeners():this.removeEventListeners()),e.enabled&&!t.enabled&&this.clearAllIntersections(),this.setDirty()},play:function(){this.addEventListeners()},pause:function(){this.removeEventListeners()},remove:function(){this.data.showLine&&this.el.removeAttribute("line"),this.clearAllIntersections()},addEventListeners:function(){this.data.autoRefresh&&(this.observer.observe(this.el.sceneEl,s),this.el.sceneEl.addEventListener("object3dset",this.setDirty),this.el.sceneEl.addEventListener("object3dremove",this.setDirty))},removeEventListeners:function(){this.observer.disconnect(),this.el.sceneEl.removeEventListener("object3dset",this.setDirty),this.el.sceneEl.removeEventListener("object3dremove",this.setDirty)},setDirty:function(){this.dirty=!0},refreshObjects:function(){var e,t=this.data;e=t.objects?this.el.sceneEl.querySelectorAll(t.objects):this.el.sceneEl.querySelectorAll("*"),this.objects=this.flattenObject3DMaps(e),this.dirty=!1},tock:function(e){var t=this.data,n=this.prevCheckTime;t.enabled&&(n&&e-n<t.interval||(this.prevCheckTime=e,this.checkIntersections()))},checkIntersections:function(){var e,t,n=this.clearedIntersectedEls,r=this.el,i=this.data,o=this.intersectedEls,a=this.intersections,s=this.newIntersectedEls,u=this.newIntersections,h=this.prevIntersectedEls,d=this.rawIntersections;for(this.dirty&&this.refreshObjects(),c(this.prevIntersectedEls,this.intersectedEls),this.updateOriginDirection(),d.length=0,this.raycaster.intersectObjects(this.objects,!0,d),a.length=0,o.length=0,e=0;e<d.length;e++)t=d[e],i.showLine&&t.object===r.getObject3D("line")||t.object.el&&(a.push(t),o.push(t.object.el));for(u.length=0,s.length=0,e=0;e<a.length;e++)-1===h.indexOf(a[e].object.el)&&(u.push(a[e]),s.push(a[e].object.el));for(n.length=0,e=0;e<h.length;e++)-1===o.indexOf(h[e])&&(h[e].emit(l.INTERSECT_CLEAR,this.intersectedClearedDetail),n.push(h[e]));for(n.length&&r.emit(l.INTERSECTION_CLEAR,this.intersectionClearedDetail),e=0;e<s.length;e++)s[e].emit(l.INTERSECT,this.intersectedDetail);u.length&&(this.intersectionDetail.els=s,this.intersectionDetail.intersections=u,r.emit(l.INTERSECTION,this.intersectionDetail)),i.showLine&&setTimeout(this.updateLine)},updateLine:function(){var e,t=this.el,n=this.intersections;n.length&&(e=n[0].object.el===t&&n[1]?n[1].distance:n[0].distance),this.drawLine(e)},getIntersection:function(e){var t,n;for(t=0;t<this.intersections.length;t++)if((n=this.intersections[t]).object.el===e)return n;return null},updateOriginDirection:function(){var e=new i.Vector3,t=new i.Vector3;return function(){var n=this.el,r=this.data;r.useWorldCoordinates?this.raycaster.set(r.origin,r.direction):(n.object3D.updateMatrixWorld(),t.setFromMatrixPosition(n.object3D.matrixWorld),0===r.origin.x&&0===r.origin.y&&0===r.origin.z||(t=n.object3D.localToWorld(t.copy(r.origin))),e.copy(r.direction).transformDirection(n.object3D.matrixWorld).normalize(),this.raycaster.set(t,e))}}(),drawLine:function(e){var t,n=this.data,r=this.el;t=this.lineData.end===this.lineEndVec3?this.otherLineEndVec3:this.lineEndVec3,void 0===e&&(e=n.far===1/0?1e3:n.far),this.lineData.start=n.origin,this.lineData.end=t.copy(this.unitLineEndVec3).multiplyScalar(e),this.lineData.color=n.lineColor,this.lineData.opacity=n.lineOpacity,r.setAttribute("line",this.lineData)},flattenObject3DMaps:function(e){var t,n,r=this.objects;for(r.length=0,n=0;n<e.length;n++)if(e[n].isEntity&&e[n].object3D)for(t in e[n].object3DMap)r.push(e[n].getObject3D(t));return r},clearAllIntersections:function(){var e;for(e=0;e<this.intersectedEls.length;e++)this.intersectedEls[e].emit(l.INTERSECT_CLEAR,this.intersectedClearedDetail);c(this.clearedIntersectedEls,this.intersectedEls),this.intersectedEls.length=0,this.intersections.length=0,this.el.emit(l.INTERSECTION_CLEAR,this.intersectionClearedDetail)}})},{"../core/component":131,"../lib/three":179,"../utils/":205}],98:[function(e,t,n){var r=e("../lib/three").Math.degToRad,i=e("../core/component").registerComponent;t.exports.Component=i("rotation",{schema:{type:"vec3"},update:function(){var e=this.data,t=this.el.object3D;t.rotation.set(r(e.x),r(e.y),r(e.z)),t.rotation.order="YXZ"},remove:function(){this.el.object3D.rotation.set(0,0,0)}})},{"../core/component":131,"../lib/three":179}],99:[function(e,t,n){var r=e("../core/component").registerComponent,i=1e-5;t.exports.Component=r("scale",{schema:{type:"vec3",default:{x:1,y:1,z:1}},update:function(){var e=this.data,t=this.el.object3D,n=0===e.x?i:e.x,r=0===e.y?i:e.y,o=0===e.z?i:e.z;t.scale.set(n,r,o)},remove:function(){this.el.object3D.scale.set(1,1,1)}})},{"../core/component":131}],100:[function(e,t,n){var r=e("../../core/component").registerComponent,i=e("../../core/component").components;t.exports.Component=r("background",{schema:{color:{type:"color",default:"black"},transparent:{default:!1}},update:function(){var e=this.data,t=this.el.object3D;e.transparent?t.background=null:t.background=new THREE.Color(e.color)},remove:function(){var e=this.data,t=this.el.object3D;e.transparent?t.background=null:t.background=i[this.name].schema.color.default}})},{"../../core/component":131}],101:[function(e,t,n){var r=e("../../core/component").registerComponent;t.exports.Component=r("debug",{schema:{default:!0}})},{"../../core/component":131}],102:[function(e,t,n){var r=e("../../core/component").registerComponent,i=e("../../utils/"),o=i.bind,a=e("../../constants/"),s="a-modal",l="a-dialog",c="a-dialog-text",u="a-dialog-text-container",h="a-dialog-buttons-container",d="a-dialog-button",p="a-dialog-allow-button",f="a-dialog-deny-button",m="a-dialog-ok-button";function v(e,t,n,r,i){var o,s,l;return(o=document.createElement("div")).classList.add(h),(s=document.createElement("button")).classList.add(d,f),s.setAttribute(a.AFRAME_INJECTED,""),s.innerHTML=e,o.appendChild(s),(l=document.createElement("button")).classList.add(d,p),l.setAttribute(a.AFRAME_INJECTED,""),l.innerHTML=t,o.appendChild(l),l.addEventListener("click",(function(e){e.stopPropagation(),r()})),s.addEventListener("click",(function(e){e.stopPropagation(),i()})),y(n,o)}function g(e,t,n){var r,i;return(r=document.createElement("div")).classList.add(h),(i=document.createElement("button")).classList.add(d,m),i.setAttribute(a.AFRAME_INJECTED,""),i.innerHTML=e,r.appendChild(i),i.addEventListener("click",(function(e){e.stopPropagation(),n()})),y(t,r)}function y(e,t){var n,r,i,o;return(n=document.createElement("div")).classList.add(s),n.setAttribute(a.AFRAME_INJECTED,""),(r=document.createElement("div")).className=l,r.setAttribute(a.AFRAME_INJECTED,""),n.appendChild(r),(i=document.createElement("div")).classList.add(u),r.appendChild(i),(o=document.createElement("div")).classList.add(c),o.innerHTML=e,i.appendChild(o),r.appendChild(t),n}t.exports.Component=r("device-orientation-permission-ui",{schema:{enabled:{default:!0},deviceMotionMessage:{default:"This immersive website requires access to your device motion sensors."},mobileDesktopMessage:{default:"Set your browser to request the mobile version of the site and reload the page to enjoy immersive mode."},httpsMessage:{default:"Access this site over HTTPS to enter VR mode and grant access to the device sensors."},denyButtonText:{default:"Deny"},allowButtonText:{default:"Allow"},cancelButtonText:{default:"Cancel"}},init:function(){var e=this;this.data.enabled&&("localhost"!==location.hostname&&"127.0.0.1"!==location.hostname&&"http:"===location.protocol&&this.showHTTPAlert(),i.device.isMobileDeviceRequestingDesktopSite()?this.showMobileDesktopModeAlert():"undefined"!==typeof DeviceOrientationEvent&&DeviceOrientationEvent.requestPermission?(this.onDeviceMotionDialogAllowClicked=o(this.onDeviceMotionDialogAllowClicked,this),this.onDeviceMotionDialogDenyClicked=o(this.onDeviceMotionDialogDenyClicked,this),DeviceOrientationEvent.requestPermission().catch((function(){e.devicePermissionDialogEl=v(e.data.denyButtonText,e.data.allowButtonText,e.data.deviceMotionMessage,e.onDeviceMotionDialogAllowClicked,e.onDeviceMotionDialogDenyClicked),e.el.appendChild(e.devicePermissionDialogEl)})).then((function(){e.el.emit("deviceorientationpermissiongranted"),e.permissionGranted=!0}))):this.permissionGranted=!0)},remove:function(){this.devicePermissionDialogEl&&this.el.removeChild(this.devicePermissionDialogEl)},onDeviceMotionDialogDenyClicked:function(){this.remove()},showMobileDesktopModeAlert:function(){var e=this,t=g(e.data.cancelButtonText,e.data.mobileDesktopMessage,(function(){e.el.removeChild(t)}));this.el.appendChild(t)},showHTTPAlert:function(){var e=this,t=g(e.data.cancelButtonText,e.data.httpsMessage,(function(){e.el.removeChild(t)}));this.el.appendChild(t)},onDeviceMotionDialogAllowClicked:function(){var e=this;this.el.emit("deviceorientationpermissionrequested"),DeviceOrientationEvent.requestPermission().then((function(t){"granted"===t?(e.el.emit("deviceorientationpermissiongranted"),e.permissionGranted=!0):e.el.emit("deviceorientationpermissionrejected"),e.remove()})).catch(console.error)}})},{"../../constants/":123,"../../core/component":131,"../../utils/":205}],103:[function(e,t,n){var r=e("../../core/component").registerComponent;t.exports.Component=r("embedded",{dependencies:["vr-mode-ui"],schema:{default:!0},update:function(){var e=this.el,t=e.querySelector(".a-enter-vr");!0===this.data?(t&&t.classList.add("embedded"),e.removeFullScreenStyles()):(t&&t.classList.remove("embedded"),e.addFullScreenStyles())}})},{"../../core/component":131}],104:[function(e,t,n){var r=e("../../core/component").registerComponent,i=e("../../lib/three"),o=e("../../utils/debug")("components:fog:warn");function a(e){var t;return(t="exponential"===e.type?new i.FogExp2(e.color,e.density):new i.Fog(e.color,e.near,e.far)).name=e.type,t}t.exports.Component=r("fog",{schema:{color:{type:"color",default:"#000"},density:{default:25e-5},far:{default:1e3,min:0},near:{default:1,min:0},type:{default:"linear",oneOf:["linear","exponential"]}},update:function(){var e=this.data,t=this.el,n=this.el.object3D.fog;if(t.isScene)return n&&e.type===n.name?void Object.keys(this.schema).forEach((function(t){var r=e[t];"color"===t&&(r=new i.Color(r)),n[t]=r})):(t.object3D.fog=a(e),void t.systems.material.updateMaterials());o("Fog component can only be applied to <a-scene>")},remove:function(){var e=this.el.object3D.fog;e&&(e.far=0,e.near=.1)}})},{"../../core/component":131,"../../lib/three":179,"../../utils/debug":201}],105:[function(e,t,n){(function(n){var r=e("../../constants").AFRAME_INJECTED,i=e("../../../package"),o=e("../../core/component").registerComponent,a=e("../../utils/");function s(e){var t=e.split(".");return t[2]="x",t.join(".")}var l="https://aframe.io/aframe-inspector/dist/aframe-inspector.js",c="https://unpkg.com/aframe-inspector@"+s(i.version)+"/dist/aframe-inspector.min.js",u="dev"===n.env.INSPECTOR_VERSION?l:c,h="Loading Inspector",d="Error loading Inspector";t.exports.Component=o("inspector",{schema:{url:{default:u}},init:function(){this.firstPlay=!0,this.onKeydown=this.onKeydown.bind(this),this.onMessage=this.onMessage.bind(this),this.initOverlay(),window.addEventListener("keydown",this.onKeydown),window.addEventListener("message",this.onMessage)},play:function(){var e;this.firstPlay&&"false"!==(e=a.getUrlParameter("inspector"))&&e&&(this.openInspector(),this.firstPlay=!1)},initOverlay:function(){var e='<span class="dots"><span>.</span><span>.</span><span>.</span></span>';this.loadingMessageEl=document.createElement("div"),this.loadingMessageEl.classList.add("a-inspector-loader"),this.loadingMessageEl.innerHTML=h+e},remove:function(){this.removeEventListeners()},onKeydown:function(e){73===e.keyCode&&(e.ctrlKey&&e.altKey||e.getModifierState("AltGraph"))&&this.openInspector()},showLoader:function(){document.body.appendChild(this.loadingMessageEl)},hideLoader:function(){document.body.removeChild(this.loadingMessageEl)},onMessage:function(e){"INJECT_AFRAME_INSPECTOR"===e.data&&this.openInspector()},openInspector:function(e){var t,n=this;AFRAME.INSPECTOR||AFRAME.inspectorInjected?AFRAME.INSPECTOR.open(e):(this.showLoader(),(t=document.createElement("script")).src=this.data.url,t.setAttribute("data-name","aframe-inspector"),t.setAttribute(r,""),t.onload=function(){AFRAME.INSPECTOR.open(e),n.hideLoader(),n.removeEventListeners()},t.onerror=function(){n.loadingMessageEl.innerHTML=d},document.head.appendChild(t),AFRAME.inspectorInjected=!0)},removeEventListeners:function(){window.removeEventListener("keydown",this.onKeydown),window.removeEventListener("message",this.onMessage)}})}).call(this,e("_process"))},{"../../../package":73,"../../constants":123,"../../core/component":131,"../../utils/":205,_process:49}],106:[function(e,t,n){var r=e("../../core/component").registerComponent,i=e("../../utils/").shouldCaptureKeyEvent;t.exports.Component=r("keyboard-shortcuts",{schema:{enterVR:{default:!0},exitVR:{default:!0}},init:function(){this.onKeyup=this.onKeyup.bind(this)},update:function(e){var t=this.data;this.enterVREnabled=t.enterVR},play:function(){window.addEventListener("keyup",this.onKeyup,!1)},pause:function(){window.removeEventListener("keyup",this.onKeyup)},onKeyup:function(e){var t=this.el;i(e)&&(this.enterVREnabled&&70===e.keyCode&&t.enterVR(),this.enterVREnabled&&27===e.keyCode&&t.exitVR())}})},{"../../core/component":131,"../../utils/":205}],107:[function(e,t,n){var r=e("../../utils/debug"),i=e("../../core/component").registerComponent,o=r("components:pool:warn");t.exports.Component=i("pool",{schema:{container:{default:""},mixin:{default:""},size:{default:0},dynamic:{default:!1}},multiple:!0,initPool:function(){var e;for(this.availableEls=[],this.usedEls=[],this.data.mixin||o("No mixin provided for pool component."),this.data.container&&(this.container=document.querySelector(this.data.container),this.container||o("Container "+this.data.container+" not found.")),this.container=this.container||this.el,e=0;e<this.data.size;++e)this.createEntity()},update:function(e){var t=this.data;e.mixin===t.mixin&&e.size===t.size||this.initPool()},createEntity:function(){var e;(e=document.createElement("a-entity")).play=this.wrapPlay(e.play),e.setAttribute("mixin",this.data.mixin),e.object3D.visible=!1,e.pause(),this.container.appendChild(e),this.availableEls.push(e)},wrapPlay:function(e){var t=this.usedEls;return function(){-1!==t.indexOf(this)&&e.call(this)}},requestEntity:function(){var e;if(0===this.availableEls.length){if(!1===this.data.dynamic)return void o("Requested entity from empty pool: "+this.attrName);o("Requested entity from empty pool. This pool is dynamic and will resize automatically. You might want to increase its initial size: "+this.attrName),this.createEntity()}return e=this.availableEls.shift(),this.usedEls.push(e),e.object3D.visible=!0,e},returnEntity:function(e){var t=this.usedEls.indexOf(e);if(-1!==t)return this.usedEls.splice(t,1),this.availableEls.push(e),e.object3D.visible=!1,e.pause(),e;o("The returned entity was not previously pooled from "+this.attrName)}})},{"../../core/component":131,"../../utils/debug":201}],108:[function(e,t,n){var r=e("../../core/component").registerComponent,i=e("../../lib/three"),o=["attribute vec3 position;","attribute vec2 uv;","uniform mat4 projectionMatrix;","uniform mat4 modelViewMatrix;","varying vec2 vUv;","void main() {"," vUv = vec2( 1.- uv.x, uv.y );"," gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),a=["precision mediump float;","uniform samplerCube map;","varying vec2 vUv;","#define M_PI 3.141592653589793238462643383279","void main() {"," vec2 uv = vUv;"," float longitude = uv.x * 2. * M_PI - M_PI + M_PI / 2.;"," float latitude = uv.y * M_PI;"," vec3 dir = vec3("," - sin( longitude ) * sin( latitude ),"," cos( latitude ),"," - cos( longitude ) * sin( latitude )"," );"," normalize( dir );"," gl_FragColor = vec4( textureCube( map, dir ).rgb, 1.0 );","}"].join("\n");t.exports.Component=r("screenshot",{schema:{width:{default:4096},height:{default:2048},camera:{type:"selector"}},init:function(){var e=this.el,t=this;function n(){var n=e.renderer.getContext();n&&(t.cubeMapSize=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),t.material=new i.RawShaderMaterial({uniforms:{map:{type:"t",value:null}},vertexShader:o,fragmentShader:a,side:i.DoubleSide}),t.quad=new i.Mesh(new i.PlaneBufferGeometry(1,1),t.material),t.quad.visible=!1,t.camera=new i.OrthographicCamera(-.5,.5,.5,-.5,-1e4,1e4),t.canvas=document.createElement("canvas"),t.ctx=t.canvas.getContext("2d"),e.object3D.add(t.quad),t.onKeyDown=t.onKeyDown.bind(t))}e.renderer?n():e.addEventListener("render-target-loaded",n)},getRenderTarget:function(e,t){return new i.WebGLRenderTarget(e,t,{minFilter:i.LinearFilter,magFilter:i.LinearFilter,wrapS:i.ClampToEdgeWrapping,wrapT:i.ClampToEdgeWrapping,format:i.RGBAFormat,type:i.UnsignedByteType})},resize:function(e,t){this.quad.scale.set(e,t,1),this.camera.left=-1*e/2,this.camera.right=e/2,this.camera.top=t/2,this.camera.bottom=-1*t/2,this.camera.updateProjectionMatrix(),this.canvas.width=e,this.canvas.height=t},play:function(){window.addEventListener("keydown",this.onKeyDown)},onKeyDown:function(e){var t=83===e.keyCode&&e.ctrlKey&&e.altKey;if(this.data&&t){var n=e.shiftKey?"equirectangular":"perspective";this.capture(n)}},setCapture:function(e){var t,n,r,o,a=this.el;return"perspective"===e?(this.quad.visible=!1,n=this.data.camera&&this.data.camera.components.camera.camera||a.camera,t={width:this.data.width,height:this.data.height}):(n=this.camera,o=new i.WebGLCubeRenderTarget(Math.min(this.cubeMapSize,2048),{format:i.RGBFormat,generateMipmaps:!0,minFilter:i.LinearMipmapLinearFilter,encoding:i.sRGBEncoding}),r=new i.CubeCamera(a.camera.near,a.camera.far,o),a.camera.getWorldPosition(r.position),a.camera.getWorldQuaternion(r.quaternion),r.update(a.renderer,a.object3D),this.quad.material.uniforms.map.value=r.renderTarget.texture,t={width:this.data.width,height:this.data.height},this.quad.visible=!0),{camera:n,size:t,projection:e}},capture:function(e){var t,n=this.el.renderer.xr.enabled,r=this.el.renderer;r.xr.enabled=!1,t=this.setCapture(e),this.renderCapture(t.camera,t.size,t.projection),this.saveCapture(),r.xr.enabled=n},getCanvas:function(e){var t=this.el.renderer.xr.enabled,n=this.el.renderer,r=this.setCapture(e);return n.xr.enabled=!1,this.renderCapture(r.camera,r.size,r.projection),n.xr.enabled=t,this.canvas},renderCapture:function(e,t,n){var r,i,o,a=this.el.renderer.autoClear,s=this.el,l=s.renderer;i=this.getRenderTarget(t.width,t.height),o=new Uint8Array(4*t.width*t.height),this.resize(t.width,t.height),l.autoClear=!0,l.clear(),l.setRenderTarget(i),l.render(s.object3D,e),l.autoClear=a,l.readRenderTargetPixels(i,0,0,t.width,t.height,o),l.setRenderTarget(null),"perspective"===n&&(o=this.flipPixelsVertically(o,t.width,t.height)),r=new ImageData(new Uint8ClampedArray(o),t.width,t.height),this.quad.visible=!1,this.ctx.putImageData(r,0,0)},flipPixelsVertically:function(e,t,n){for(var r=e.slice(0),i=0;i<t;++i)for(var o=0;o<n;++o)r[4*i+o*t*4]=e[4*i+(n-o)*t*4],r[4*i+1+o*t*4]=e[4*i+1+(n-o)*t*4],r[4*i+2+o*t*4]=e[4*i+2+(n-o)*t*4],r[4*i+3+o*t*4]=e[4*i+3+(n-o)*t*4];return r},saveCapture:function(){this.canvas.toBlob((function(e){var t="screenshot-"+document.title.toLowerCase()+"-"+Date.now()+".png",n=document.createElement("a"),r=URL.createObjectURL(e);n.href=r,n.setAttribute("download",t),n.innerHTML="downloading...",n.style.display="none",document.body.appendChild(n),setTimeout((function(){n.click(),document.body.removeChild(n)}),1)}),"image/png")}})},{"../../core/component":131,"../../lib/three":179}],109:[function(e,t,n){var r=e("../../core/component").registerComponent,i=e("../../../vendor/rStats"),o=e("../../utils");e("../../../vendor/rStats.extras"),e("../../lib/rStatsAframe");var a=window.aframeStats,s=o.bind,l="a-hidden",c=window.threeStats;function u(e){var t=new c(e.renderer),n=new a(e),r=e.isMobile?[]:[t,n];return new i({css:[],values:{fps:{caption:"fps",below:30}},groups:[{caption:"Framerate",values:["fps","raf"]}],plugins:r})}t.exports.Component=r("stats",{schema:{default:!0},init:function(){var e=this.el;"false"!==o.getUrlParameter("stats")&&(this.stats=u(e),this.statsEl=document.querySelector(".rs-base"),this.hideBound=s(this.hide,this),this.showBound=s(this.show,this),e.addEventListener("enter-vr",this.hideBound),e.addEventListener("exit-vr",this.showBound))},update:function(){if(this.stats)return this.data?this.show():this.hide()},remove:function(){this.el.removeEventListener("enter-vr",this.hideBound),this.el.removeEventListener("exit-vr",this.showBound),this.statsEl&&this.statsEl.parentNode.removeChild(this.statsEl)},tick:function(){var e=this.stats;e&&(e("rAF").tick(),e("FPS").frame(),e().update())},hide:function(){this.statsEl.classList.add(l)},show:function(){this.statsEl.classList.remove(l)}})},{"../../../vendor/rStats":217,"../../../vendor/rStats.extras":216,"../../core/component":131,"../../lib/rStatsAframe":178,"../../utils":205}],110:[function(e,t,n){var r=e("../../core/component").registerComponent,i=e("../../constants/"),o=e("../../utils/"),a=o.bind,s="a-enter-vr",l="a-enter-ar",c="a-enter-vr-button",u="a-enter-ar-button",h="a-hidden",d="a-orientation-modal";function p(e){var t,n;return(n=document.createElement("div")).classList.add(s),n.setAttribute(i.AFRAME_INJECTED,""),(t=document.createElement("button")).className=c,t.setAttribute("title","Enter VR mode with a headset or fullscreen mode on a desktop. Visit https://webvr.rocks or https://webvr.info for more information."),t.setAttribute(i.AFRAME_INJECTED,""),o.device.isMobile()&&v(t),n.appendChild(t),t.addEventListener("click",(function(t){e(),t.stopPropagation()})),n}function f(e){var t,n;return(n=document.createElement("div")).classList.add(l),n.setAttribute(i.AFRAME_INJECTED,""),(t=document.createElement("button")).className=u,t.setAttribute("title","Enter AR mode with a headset or handheld device. Visit https://webvr.rocks or https://webvr.info for more information."),t.setAttribute(i.AFRAME_INJECTED,""),o.device.isMobile()&&v(t),n.appendChild(t),t.addEventListener("click",(function(t){e(),t.stopPropagation()})),n}function m(e){var t=document.createElement("div");t.className=d,t.classList.add(h),t.setAttribute(i.AFRAME_INJECTED,"");var n=document.createElement("button");return n.setAttribute(i.AFRAME_INJECTED,""),n.innerHTML="Exit VR",n.addEventListener("click",e),t.appendChild(n),t}function v(e){e.addEventListener("touchstart",(function(){e.classList.remove("resethover")})),e.addEventListener("touchend",(function(){e.classList.add("resethover")}))}t.exports.Component=r("vr-mode-ui",{dependencies:["canvas"],schema:{enabled:{default:!0},enterVRButton:{default:""},enterARButton:{default:""}},init:function(){var e=this,t=this.el;"false"!==o.getUrlParameter("ui")&&(this.insideLoader=!1,this.enterVREl=null,this.enterAREl=null,this.orientationModalEl=null,this.bindMethods(),t.addEventListener("enter-vr",this.updateEnterInterfaces),t.addEventListener("exit-vr",this.updateEnterInterfaces),t.addEventListener("update-vr-devices",this.updateEnterInterfaces),window.addEventListener("message",(function(t){"loaderReady"===t.data.type&&(e.insideLoader=!0,e.remove())})),window.addEventListener("orientationchange",this.toggleOrientationModalIfNeeded))},bindMethods:function(){this.onEnterVRButtonClick=a(this.onEnterVRButtonClick,this),this.onEnterARButtonClick=a(this.onEnterARButtonClick,this),this.onModalClick=a(this.onModalClick,this),this.toggleOrientationModalIfNeeded=a(this.toggleOrientationModalIfNeeded,this),this.updateEnterInterfaces=a(this.updateEnterInterfaces,this)},onModalClick:function(){this.el.exitVR()},onEnterVRButtonClick:function(){this.el.enterVR()},onEnterARButtonClick:function(){this.el.enterAR()},update:function(){var e=this.data,t=this.el;if(!e.enabled||this.insideLoader||"false"===o.getUrlParameter("ui"))return this.remove();this.enterVREl||this.enterAREl||this.orientationModalEl||(e.enterVRButton?(this.enterVREl=document.querySelector(e.enterVRButton),this.enterVREl.addEventListener("click",this.onEnterVRButtonClick)):(this.enterVREl=p(this.onEnterVRButtonClick),t.appendChild(this.enterVREl)),e.enterARButton?(this.enterAREl=document.querySelector(e.enterARButton),this.enterAREl.addEventListener("click",this.onEnterARButtonClick)):(this.enterAREl=f(this.onEnterARButtonClick),t.appendChild(this.enterAREl)),this.orientationModalEl=m(this.onModalClick),t.appendChild(this.orientationModalEl),this.updateEnterInterfaces())},remove:function(){[this.enterVREl,this.enterAREl,this.orientationModalEl].forEach((function(e){e&&e.parentNode&&e.parentNode.removeChild(e)})),this.enterVREl=void 0,this.enterAREl=void 0,this.orientationModalEl=void 0},updateEnterInterfaces:function(){this.toggleEnterVRButtonIfNeeded(),this.toggleEnterARButtonIfNeeded(),this.toggleOrientationModalIfNeeded()},toggleEnterVRButtonIfNeeded:function(){var e=this.el;this.enterVREl&&(e.is("vr-mode")?this.enterVREl.classList.add(h):this.enterVREl.classList.remove(h))},toggleEnterARButtonIfNeeded:function(){var e=this.el;this.enterAREl&&(e.is("vr-mode")||!o.device.checkARSupport()?this.enterAREl.classList.add(h):this.enterAREl.classList.remove(h))},toggleOrientationModalIfNeeded:function(){var e=this.el,t=this.orientationModalEl;t&&e.isMobile&&(!o.device.isLandscape()&&e.is("vr-mode")?t.classList.remove(h):t.classList.add(h))}})},{"../../constants/":123,"../../core/component":131,"../../utils/":205}],111:[function(e,t,n){var r=e("../core/component"),i=e("../lib/three"),o=e("../utils/bind"),a=r.registerComponent;t.exports.Component=a("shadow",{schema:{cast:{default:!0},receive:{default:!0}},init:function(){this.onMeshChanged=o(this.update,this),this.el.addEventListener("object3dset",this.onMeshChanged),this.system.setShadowMapEnabled(!0)},update:function(){var e=this.data;this.updateDescendants(e.cast,e.receive)},remove:function(){this.el.removeEventListener("object3dset",this.onMeshChanged),this.updateDescendants(!1,!1)},updateDescendants:function(e,t){var n=this.el.sceneEl;this.el.object3D.traverse((function(r){if(r instanceof i.Mesh&&(r.castShadow=e,r.receiveShadow=t,n.hasLoaded&&r.material))for(var o=Array.isArray(r.material)?r.material:[r.material],a=0;a<o.length;a++)o[a].needsUpdate=!0}))}})},{"../core/component":131,"../lib/three":179,"../utils/bind":199}],112:[function(t,n,r){var i=t("../core/component").registerComponent,o=t("../utils/debug"),a=t("../lib/three"),s=o("components:sound:warn");n.exports.Component=i("sound",{schema:{autoplay:{default:!1},distanceModel:{default:"inverse",oneOf:["linear","inverse","exponential"]},loop:{default:!1},maxDistance:{default:1e4},on:{default:""},poolSize:{default:1},positional:{default:!0},refDistance:{default:1},rolloffFactor:{default:1},src:{type:"audio"},volume:{default:1}},multiple:!0,init:function(){var e=this;this.listener=null,this.audioLoader=new a.AudioLoader,this.pool=new a.Group,this.loaded=!1,this.mustPlay=!1,this.playSoundBound=function(){e.playSound()}},update:function(e){var t,n,r=this.data,i=r.src!==e.src;if(i){if(!r.src)return;this.setupSound()}for(t=0;t<this.pool.children.length;t++)n=this.pool.children[t],r.positional&&(n.setDistanceModel(r.distanceModel),n.setMaxDistance(r.maxDistance),n.setRefDistance(r.refDistance),n.setRolloffFactor(r.rolloffFactor)),n.setLoop(r.loop),n.setVolume(r.volume),n.isPaused=!1;if(r.on!==e.on&&this.updateEventListener(e.on),i){var o=this;this.loaded=!1,this.audioLoader.load(r.src,(function(e){for(t=0;t<o.pool.children.length;t++)(n=o.pool.children[t]).setBuffer(e);o.loaded=!0,a.Cache.remove(r.src),(o.data.autoplay||o.mustPlay)&&o.playSound(),o.el.emit("sound-loaded",o.evtDetail,!1)}))}},pause:function(){this.stopSound(),this.removeEventListener()},play:function(){this.data.autoplay&&this.playSound(),this.updateEventListener()},remove:function(){var t;this.removeEventListener(),this.el.getObject3D(this.attrName)&&this.el.removeObject3D(this.attrName);try{for(t=0;t<this.pool.children.length;t++)this.pool.children[t].disconnect()}catch(e){s("Audio source not properly disconnected")}},updateEventListener:function(e){var t=this.el;e&&t.removeEventListener(e,this.playSoundBound),t.addEventListener(this.data.on,this.playSoundBound)},removeEventListener:function(){this.el.removeEventListener(this.data.on,this.playSoundBound)},setupSound:function(){var e,t,n=this.el,r=n.sceneEl,i=this;this.pool.children.length>0&&(this.stopSound(),n.removeObject3D("sound"));var o=this.listener=r.audioListener||new a.AudioListener;for(r.audioListener=o,r.camera&&r.camera.add(o),r.addEventListener("camera-set-active",(function(e){e.detail.cameraEl.getObject3D("camera").add(o)})),this.pool=new a.Group,e=0;e<this.data.poolSize;e++)t=this.data.positional?new a.PositionalAudio(o):new a.Audio(o),this.pool.add(t);for(n.setObject3D(this.attrName,this.pool),e=0;e<this.pool.children.length;e++)(t=this.pool.children[e]).onEnded=function(){this.isPlaying=!1,i.el.emit("sound-ended",i.evtDetail,!1)}},pauseSound:function(){var e,t;for(this.isPlaying=!1,e=0;e<this.pool.children.length;e++)(t=this.pool.children[e]).source&&t.source.buffer&&t.isPlaying&&!t.isPaused&&(t.isPaused=!0,t.pause())},playSound:function(e){var t,n,r;if(!this.loaded)return s("Sound not loaded yet. It will be played once it finished loading"),void(this.mustPlay=!0);for(t=!1,this.isPlaying=!0,n=0;n<this.pool.children.length;n++)(r=this.pool.children[n]).isPlaying||!r.buffer||t||(e&&e(r),r.play(),r.isPaused=!1,t=!0);t?this.mustPlay=!1:s("All the sounds are playing. If you need to play more sounds simultaneously consider increasing the size of pool with the `poolSize` attribute.",this.el)},stopSound:function(){var e,t;for(this.isPlaying=!1,e=0;e<this.pool.children.length;e++){if(!(t=this.pool.children[e]).source||!t.source.buffer)return;t.stop()}}})},{"../core/component":131,"../lib/three":179,"../utils/debug":201}],113:[function(e,t,n){var r=e("three-bmfont-text"),i=e("load-bmfont"),o=e("../core/component").registerComponent,a=e("../core/shader"),s=e("../lib/three"),l=e("../utils/"),c=l.debug("components:text:error"),u=a.shaders,h=l.debug("components:text:warn"),d=1,p=16,f="https://cdn.aframe.io/fonts/",m={aileronsemibold:f+"Aileron-Semibold.fnt",dejavu:f+"DejaVu-sdf.fnt",exo2bold:f+"Exo2Bold.fnt",exo2semibold:f+"Exo2SemiBold.fnt",kelsonsans:f+"KelsonSans.fnt",monoid:f+"Monoid.fnt",mozillavr:f+"mozillavr.fnt",roboto:f+"Roboto-msdf.json",sourcecodepro:f+"SourceCodePro.fnt"},v=["roboto"],g="roboto";t.exports.FONTS=m;var y=new C,b={},A={},w=/^\w+:/;function x(e){switch(e){case"back":return s.FrontSide;case"double":return s.DoubleSide;default:return s.BackSide}}function E(e,t){return new Promise((function(n,r){i(e,(function(i,o){if(i)return c("Error loading font",e),void r(i);e.indexOf("/Roboto-msdf.json")>=0&&(t=30),t&&o.chars.map((function(e){e.yoffset+=t})),n(o)}))}))}function M(e){return new Promise((function(t,n){(new s.ImageLoader).load(e,(function(e){t(e)}),void 0,(function(){c("Error loading font image",e),n(null)}))}))}function _(e,t,n){var r,i;return(i=new u[t].Shader).el=e,i.init(n),i.update(n),(r=i.material).transparent=n.transparent,{material:r,shader:i}}function T(e,t,n){return e||(.5+t)*n}function S(e){var t=0,n=0,r=0;return e.chars.map((function(e){t+=e.xadvance,e.id>=48&&e.id<=57&&(r++,n+=e.xadvance)})),r?n/r:t/e.chars.length}function C(){var e=this.cache={};this.get=function(t,n){return t in e||(e[t]=n()),e[t]}}t.exports.Component=o("text",{multiple:!0,schema:{align:{type:"string",default:"left",oneOf:["left","right","center"]},alphaTest:{default:.5},anchor:{default:"center",oneOf:["left","right","center","align"]},baseline:{default:"center",oneOf:["top","center","bottom"]},color:{type:"color",default:"#FFF"},font:{type:"string",default:g},fontImage:{type:"string"},height:{type:"number"},letterSpacing:{type:"number",default:0},lineHeight:{type:"number"},negate:{type:"boolean",default:!0},opacity:{type:"number",default:1},shader:{default:"sdf",oneOf:u},side:{default:"front",oneOf:["front","back","double"]},tabSize:{default:4},transparent:{default:!0},value:{type:"string"},whiteSpace:{default:"normal",oneOf:["normal","pre","nowrap"]},width:{type:"number"},wrapCount:{type:"number",default:40},wrapPixels:{type:"number"},xOffset:{type:"number",default:0},yOffset:{type:"number",default:0},zOffset:{type:"number",default:.001}},init:function(){this.shaderData={},this.geometry=r(),this.createOrUpdateMaterial()},update:function(e){var t=this.data,n=this.currentFont;A[t.font]?this.texture=A[t.font]:(this.texture=A[t.font]=new s.Texture,this.texture.anisotropy=p),this.createOrUpdateMaterial(),e.font===t.font?n&&(this.updateGeometry(this.geometry,n),this.updateLayout()):this.updateFont()},remove:function(){this.geometry.dispose(),this.geometry=null,this.el.removeObject3D(this.attrName),this.material.dispose(),this.material=null,this.texture.dispose(),this.texture=null,this.shaderObject&&delete this.shaderObject},createOrUpdateMaterial:function(){var e,t,n,r=this.data,i=this.material,o=this.shaderData;if(n=r.shader,-1!==v.indexOf(r.font)||r.font.indexOf("-msdf.")>=0?n="msdf":r.font in m&&-1===v.indexOf(r.font)&&(n="sdf"),e=(this.shaderObject&&this.shaderObject.name)!==n,o.alphaTest=r.alphaTest,o.color=r.color,o.map=this.texture,o.opacity=r.opacity,o.side=x(r.side),o.transparent=r.transparent,o.negate=r.negate,!e)return this.shaderObject.update(o),i.transparent=o.transparent,void(i.side=o.side);t=_(this.el,n,o),this.material=t.material,this.shaderObject=t.shader,this.material.side=o.side,this.mesh&&(this.mesh.material=this.material)},updateFont:function(){var e,t=this.data,n=this.el,r=this.geometry,i=this;t.font||h("No font specified. Using the default font."),this.mesh&&(this.mesh.visible=!1),e=this.lookupFont(t.font||g)||t.font,y.get(e,(function(){return E(e,t.yOffset)})).then((function(o){var a;if(1!==o.pages.length)throw new Error("Currently only single-page bitmap fonts are supported.");b[e]||(o.widthFactor=b[o]=S(o)),i.currentFont=o,a=i.getFontImageSrc(),y.get(a,(function(){return M(a)})).then((function(e){var a=i.texture;a.image=e,a.needsUpdate=!0,A[t.font]=a,i.texture=a,i.initMesh(),i.currentFont=o,i.updateGeometry(r,o),i.updateLayout(),i.mesh.visible=!0,n.emit("textfontset",{font:t.font,fontObj:o})})).catch((function(e){c(e.message),c(e.stack)}))})).catch((function(e){c(e.message),c(e.stack)}))},initMesh:function(){this.mesh||(this.mesh=new s.Mesh(this.geometry,this.material),this.el.setObject3D(this.attrName,this.mesh))},getFontImageSrc:function(){if(this.data.fontImage)return this.data.fontImage;var e=this.lookupFont(this.data.font||g)||this.data.font,t=this.currentFont.pages[0];return t.match(w)&&0!==t.indexOf("http")?e.replace(/(\.fnt)|(\.json)/,".png"):s.LoaderUtils.extractUrlBase(e)+t},updateLayout:function(){var e,t,n,r,i,o,a,s,l,c=this.el,u=this.data,h=this.geometry,p=this.mesh;if(p&&h.layout){if(n=c.getAttribute("geometry"),r=(o=(a=u.width||n&&n.width||d)/T(u.wrapPixels,u.wrapCount,this.currentFont.widthFactor))*((i=h.layout).height+i.descender),n&&"plane"===n.primitive&&(n.width||c.setAttribute("geometry","width",a),n.height||c.setAttribute("geometry","height",r)),"left"===(e="align"===u.anchor?u.align:u.anchor))s=0;else if("right"===e)s=-1*i.width;else{if("center"!==e)throw new TypeError("Invalid text.anchor property value",e);s=-1*i.width/2}if("bottom"===(t=u.baseline))l=0;else if("top"===t)l=-1*i.height+i.ascender;else{if("center"!==t)throw new TypeError("Invalid text.baseline property value",t);l=-1*i.height/2}p.position.x=s*o+u.xOffset,p.position.y=l*o,p.position.z=u.zOffset,p.scale.set(o,-1*o,o)}},lookupFont:function(e){return m[e]},updateGeometry:function(){var e={},t={},n=/\\n/g,r=/\\t/g;return function(i,o){var a=this.data;t.font=o,t.lineHeight=a.lineHeight&&isFinite(a.lineHeight)?a.lineHeight:o.common.lineHeight,t.text=a.value.toString().replace(n,"\n").replace(r,"\t"),t.width=T(a.wrapPixels,a.wrapCount,o.widthFactor),i.update(l.extend(e,a,t))}}()})},{"../core/component":131,"../core/shader":141,"../lib/three":179,"../utils/":205,"load-bmfont":37,"three-bmfont-text":63}],114:[function(e,t,n){var r=e("../core/component").registerComponent,i=e("../utils/tracked-controls"),o=e("../constants").DEFAULT_CAMERA_HEIGHT,a=e("../lib/three"),s=e("../constants").DEFAULT_HANDEDNESS,l={x:.175,y:-.3,z:-.03},c={x:0,y:0,z:-.175},u={touches:[]},h={AXISMOVE:"axismove",BUTTONCHANGED:"buttonchanged",BUTTONDOWN:"buttondown",BUTTONUP:"buttonup",TOUCHSTART:"touchstart",TOUCHEND:"touchend"};t.exports.Component=r("tracked-controls-webvr",{schema:{autoHide:{default:!0},controller:{default:0},id:{type:"string",default:""},hand:{type:"string",default:""},idPrefix:{type:"string",default:""},orientationOffset:{type:"vec3"},armModel:{default:!1},headElement:{type:"selector"}},init:function(){this.axis=this.el.components["tracked-controls"].axis=[0,0,0],this.buttonStates=this.el.components["tracked-controls"].buttonStates={},this.changedAxes=[],this.targetControllerNumber=this.data.controller,this.axisMoveEventDetail={axis:this.axis,changed:this.changedAxes},this.deltaControllerPosition=new a.Vector3,this.controllerQuaternion=new a.Quaternion,this.controllerEuler=new a.Euler,this.updateGamepad(),this.buttonEventDetails={}},tick:function(e,t){var n=this.el.getObject3D("mesh");n&&n.update&&n.update(t/1e3),this.updateGamepad(),this.updatePose(),this.updateButtons()},defaultUserHeight:function(){return o},getHeadElement:function(){return this.data.headElement||this.el.sceneEl.camera.el},updateGamepad:function(){var e=this.data,t=i.findMatchingControllerWebVR(this.system.controllers,e.id,e.idPrefix,e.hand,e.controller);this.controller=t,this.el.components["tracked-controls"].controller=t,this.data.autoHide&&(this.el.object3D.visible=!!this.controller)},applyArmModel:function(e){var t,n,r,i,o=this.controller,a=this.controllerEuler,u=this.controllerQuaternion,h=this.deltaControllerPosition;n=this.getHeadElement().object3D,i=this.defaultUserHeight(),r=o.pose,t=(o?o.hand:void 0)||s,e.copy(n.position),h.set(l.x*("left"===t?-1:"right"===t?1:0),l.y,l.z),h.multiplyScalar(i),h.applyAxisAngle(n.up,n.rotation.y),e.add(h),h.set(c.x,c.y,c.z),h.multiplyScalar(i),r.orientation?u.fromArray(r.orientation):u.copy(n.quaternion),a.setFromQuaternion(u),a.set(a.x,a.y,0),h.applyEuler(a),e.add(h)},updatePose:function(){var e,t,n=this.controller,r=this.data,i=this.el.object3D,o=this.system.vrDisplay;n&&((e=n.pose).position?i.position.fromArray(e.position):r.armModel&&this.applyArmModel(i.position),e.orientation&&i.quaternion.fromArray(e.orientation),o&&e.position&&(t=this.el.sceneEl.renderer.xr.getStandingMatrix(),i.matrix.compose(i.position,i.quaternion,i.scale),i.matrix.multiplyMatrices(t,i.matrix),i.matrix.decompose(i.position,i.quaternion,i.scale)),i.rotateX(this.data.orientationOffset.x*a.Math.DEG2RAD),i.rotateY(this.data.orientationOffset.y*a.Math.DEG2RAD),i.rotateZ(this.data.orientationOffset.z*a.Math.DEG2RAD))},updateButtons:function(){var e,t,n=this.controller;if(n){for(t=0;t<n.buttons.length;++t)this.buttonStates[t]||(this.buttonStates[t]={pressed:!1,touched:!1,value:0}),this.buttonEventDetails[t]||(this.buttonEventDetails[t]={id:t,state:this.buttonStates[t]}),e=n.buttons[t],this.handleButton(t,e);this.handleAxes()}},handleButton:function(e,t){return!!(this.handlePress(e,t)|this.handleTouch(e,t)|this.handleValue(e,t))&&(this.el.emit(h.BUTTONCHANGED,this.buttonEventDetails[e],!1),!0)},handleAxes:function(){var e,t=!1,n=this.controller.axes,r=this.axis,i=this.changedAxes;for(this.changedAxes.splice(0,this.changedAxes.length),e=0;e<n.length;++e)i.push(r[e]!==n[e]),i[e]&&(t=!0);if(!t)return!1;for(this.axis.splice(0,this.axis.length),e=0;e<n.length;e++)this.axis.push(n[e]);return this.el.emit(h.AXISMOVE,this.axisMoveEventDetail,!1),!0},handlePress:function(e,t){var n,r=this.buttonStates[e];return t.pressed!==r.pressed&&(n=t.pressed?h.BUTTONDOWN:h.BUTTONUP,this.el.emit(n,this.buttonEventDetails[e],!1),r.pressed=t.pressed,!0)},handleTouch:function(e,t){var n,r=this.buttonStates[e];return t.touched!==r.touched&&(n=t.touched?h.TOUCHSTART:h.TOUCHEND,this.el.emit(n,this.buttonEventDetails[e],!1,u),r.touched=t.touched,!0)},handleValue:function(e,t){var n=this.buttonStates[e];return t.value!==n.value&&(n.value=t.value,!0)}})},{"../constants":123,"../core/component":131,"../lib/three":179,"../utils/tracked-controls":214}],115:[function(e,t,n){var r=e("../utils/tracked-controls"),i=e("../core/component").registerComponent,o={AXISMOVE:"axismove",BUTTONCHANGED:"buttonchanged",BUTTONDOWN:"buttondown",BUTTONUP:"buttonup",TOUCHSTART:"touchstart",TOUCHEND:"touchend"};t.exports.Component=i("tracked-controls-webxr",{schema:{id:{type:"string",default:""},hand:{type:"string",default:""},handTrackingEnabled:{default:!1},index:{type:"int",default:-1},iterateControllerProfiles:{default:!1}},init:function(){this.updateController=this.updateController.bind(this),this.buttonEventDetails={},this.buttonStates=this.el.components["tracked-controls"].buttonStates={},this.axis=this.el.components["tracked-controls"].axis=[0,0,0],this.changedAxes=[],this.axisMoveEventDetail={axis:this.axis,changed:this.changedAxes}},update:function(){this.updateController()},play:function(){var e=this.el.sceneEl;this.updateController(),e.addEventListener("controllersupdated",this.updateController)},pause:function(){this.el.sceneEl.removeEventListener("controllersupdated",this.updateController)},isControllerPresent:function(e){return!(!this.controller||this.controller.gamepad)&&("none"===e.inputSource.handedness||e.inputSource.handedness===this.data.hand)},updateController:function(){this.controller=r.findMatchingControllerWebXR(this.system.controllers,this.data.id,this.data.hand,this.data.index,this.data.iterateControllerProfiles,this.data.handTrackingEnabled),this.el.components["tracked-controls"].controller=this.controller,this.data.autoHide&&(this.el.object3D.visible=!!this.controller)},tick:function(){var e=this.el.sceneEl,t=this.controller,n=e.frame;t&&e.frame&&this.system.referenceSpace&&(t.hand||(this.pose=n.getPose(t.targetRaySpace,this.system.referenceSpace),this.updatePose(),this.updateButtons()))},updatePose:function(){var e=this.el.object3D,t=this.pose;t&&(e.matrix.elements=t.transform.matrix,e.matrix.decompose(e.position,e.rotation,e.scale))},updateButtons:function(){var e,t,n,r=this.controller;if(r&&r.gamepad){for(n=r.gamepad,t=0;t<n.buttons.length;++t)this.buttonStates[t]||(this.buttonStates[t]={pressed:!1,touched:!1,value:0}),this.buttonEventDetails[t]||(this.buttonEventDetails[t]={id:t,state:this.buttonStates[t]}),e=n.buttons[t],this.handleButton(t,e);this.handleAxes()}},handleButton:function(e,t){return!!(this.handlePress(e,t)|this.handleTouch(e,t)|this.handleValue(e,t))&&(this.el.emit(o.BUTTONCHANGED,this.buttonEventDetails[e],!1),!0)},handleAxes:function(){var e,t=!1,n=this.controller.gamepad.axes,r=this.axis,i=this.changedAxes;for(this.changedAxes.splice(0,this.changedAxes.length),e=0;e<n.length;++e)i.push(r[e]!==n[e]),i[e]&&(t=!0);if(!t)return!1;for(this.axis.splice(0,this.axis.length),e=0;e<n.length;e++)this.axis.push(n[e]);return this.el.emit(o.AXISMOVE,this.axisMoveEventDetail,!1),!0},handlePress:function(e,t){var n,r=this.buttonStates[e];return t.pressed!==r.pressed&&(n=t.pressed?o.BUTTONDOWN:o.BUTTONUP,this.el.emit(n,this.buttonEventDetails[e],!1),r.pressed=t.pressed,!0)},handleTouch:function(e,t){var n,r=this.buttonStates[e];return t.touched!==r.touched&&(n=t.touched?o.TOUCHSTART:o.TOUCHEND,this.el.emit(n,this.buttonEventDetails[e],!1),r.touched=t.touched,!0)},handleValue:function(e,t){var n=this.buttonStates[e];return t.value!==n.value&&(n.value=t.value,!0)}})},{"../core/component":131,"../utils/tracked-controls":214}],116:[function(e,t,n){var r=e("../core/component").registerComponent;t.exports.Component=r("tracked-controls",{schema:{autoHide:{default:!0},controller:{default:-1},id:{type:"string",default:""},hand:{type:"string",default:""},idPrefix:{type:"string",default:""},handTrackingEnabled:{default:!1},orientationOffset:{type:"vec3"},armModel:{default:!1},headElement:{type:"selector"},iterateControllerProfiles:{default:!1}},update:function(){var e=this.data,t=this.el;t.sceneEl.hasWebXR?t.setAttribute("tracked-controls-webxr",{id:e.id,hand:e.hand,index:e.controller,iterateControllerProfiles:e.iterateControllerProfiles,handTrackingEnabled:e.handTrackingEnabled}):t.setAttribute("tracked-controls-webvr",e)}})},{"../core/component":131}],117:[function(e,t,n){var r=e("../core/component").registerComponent,i=e("../utils/bind"),o=e("../lib/three"),a=e("../utils/tracked-controls"),s=a.checkControllerPresentAndSetup,l=a.emitIfAxesChanged,c=a.onButtonEvent,u="https://cdn.aframe.io/controllers/valve/index/valve-index-",h={left:u+"left.glb",right:u+"right.glb"},d="valve",p=e("../utils/").device.isWebXRAvailable,f={left:{x:-.00023692678902063457,y:.04724540367838371,z:-.061959880395271096},right:{x:.002471558599671131,y:.055765208987076195,z:-.061068168708348844}},m={left:{x:0,y:-.05,z:.06},right:{x:0,y:-.05,z:.06}},v={left:{_x:.692295102620542,_y:-.0627618864318427,_z:-.06265893149611756,_order:"XYZ"},right:{_x:.6484021229942998,_y:-.032563619881892894,_z:-.1327973171917482,_order:"XYZ"}},g={left:{_x:Math.PI/3,_y:0,_z:0,_order:"XYZ"},right:{_x:Math.PI/3,_y:0,_z:0,_order:"XYZ"}},y=p?g:v,b=p?m:f;t.exports.Component=r("valve-index-controls",{schema:{hand:{default:"left"},buttonColor:{type:"color",default:"#FAFAFA"},buttonHighlightColor:{type:"color",default:"#22D1EE"},model:{default:!0},orientationOffset:{type:"vec3"}},mapping:{axes:{trackpad:[0,1],thumbstick:[2,3]},buttons:["trigger","grip","trackpad","thumbstick","abutton"]},init:function(){var e=this;this.controllerPresent=!1,this.lastControllerCheck=0,this.onButtonChanged=i(this.onButtonChanged,this),this.onButtonDown=function(t){c(t.detail.id,"down",e)},this.onButtonUp=function(t){c(t.detail.id,"up",e)},this.onButtonTouchEnd=function(t){c(t.detail.id,"touchend",e)},this.onButtonTouchStart=function(t){c(t.detail.id,"touchstart",e)},this.previousButtonValues={},this.rendererSystem=this.el.sceneEl.systems.renderer,this.bindMethods()},play:function(){this.checkIfControllerPresent(),this.addControllersUpdateListener()},pause:function(){this.removeEventListeners(),this.removeControllersUpdateListener()},bindMethods:function(){this.onModelLoaded=i(this.onModelLoaded,this),this.onControllersUpdate=i(this.onControllersUpdate,this),this.checkIfControllerPresent=i(this.checkIfControllerPresent,this),this.removeControllersUpdateListener=i(this.removeControllersUpdateListener,this),this.onAxisMoved=i(this.onAxisMoved,this)},addEventListeners:function(){var e=this.el;e.addEventListener("buttonchanged",this.onButtonChanged),e.addEventListener("buttondown",this.onButtonDown),e.addEventListener("buttonup",this.onButtonUp),e.addEventListener("touchend",this.onButtonTouchEnd),e.addEventListener("touchstart",this.onButtonTouchStart),e.addEventListener("model-loaded",this.onModelLoaded),e.addEventListener("axismove",this.onAxisMoved),this.controllerEventsActive=!0},removeEventListeners:function(){var e=this.el;e.removeEventListener("buttonchanged",this.onButtonChanged),e.removeEventListener("buttondown",this.onButtonDown),e.removeEventListener("buttonup",this.onButtonUp),e.removeEventListener("touchend",this.onButtonTouchEnd),e.removeEventListener("touchstart",this.onButtonTouchStart),e.removeEventListener("model-loaded",this.onModelLoaded),e.removeEventListener("axismove",this.onAxisMoved),this.controllerEventsActive=!1},checkIfControllerPresent:function(){var e=this.data,t="right"===e.hand?0:"left"===e.hand?1:2;s(this,d,{index:t,iterateControllerProfiles:!0,hand:e.hand})},injectTrackedControls:function(){var e=this.el,t=this.data;e.setAttribute("tracked-controls",{idPrefix:d,controller:"right"===t.hand?1:"left"===t.hand?0:2,hand:t.hand,orientationOffset:t.orientationOffset}),this.loadModel()},loadModel:function(){var e=this.data;e.model&&this.el.setAttribute("gltf-model",""+h[e.hand])},addControllersUpdateListener:function(){this.el.sceneEl.addEventListener("controllersupdated",this.onControllersUpdate,!1)},removeControllersUpdateListener:function(){this.el.sceneEl.removeEventListener("controllersupdated",this.onControllersUpdate,!1)},onControllersUpdate:function(){this.checkIfControllerPresent()},onButtonChanged:function(e){var t,n=this.mapping.buttons[e.detail.id],r=this.buttonMeshes;n&&("trigger"===n&&(t=e.detail.state.value,r&&r.trigger&&(r.trigger.rotation.x=this.triggerOriginalRotationX-t*(Math.PI/40))),this.el.emit(n+"changed",e.detail.state))},onModelLoaded:function(e){var t,n=e.detail.model,r=this;this.data.model&&((t=this.buttonMeshes={}).grip={left:n.getObjectByName("leftgrip"),right:n.getObjectByName("rightgrip")},t.menu=n.getObjectByName("menubutton"),t.system=n.getObjectByName("systembutton"),t.trackpad=n.getObjectByName("touchpad"),t.trigger=n.getObjectByName("trigger"),this.triggerOriginalRotationX=t.trigger.rotation.x,Object.keys(t).forEach((function(e){r.setButtonColor(e,r.data.buttonColor)})),n.position.copy(b[this.data.hand]),n.rotation.copy(y[this.data.hand]),this.el.emit("controllermodelready",{name:"valve-index-controlls",model:this.data.model,rayOrigin:new o.Vector3(0,0,0)}))},onAxisMoved:function(e){l(this,this.mapping.axes,e)},updateModel:function(e,t){var n;this.data.model&&(-1!==t.indexOf("touch")||(n="up"===t?this.data.buttonColor:this.data.buttonHighlightColor,this.setButtonColor(e,n)))},setButtonColor:function(e,t){}})},{"../core/component":131,"../lib/three":179,"../utils/":205,"../utils/bind":199,"../utils/tracked-controls":214}],118:[function(e,t,n){var r=e("../core/component").registerComponent;t.exports.Component=r("visible",{schema:{default:!0},update:function(){this.el.object3D.visible=this.data}})},{"../core/component":131}],119:[function(e,t,n){var r=e("../core/component").registerComponent,i=e("../utils/bind"),o=e("../utils/tracked-controls"),a=o.checkControllerPresentAndSetup,s=o.emitIfAxesChanged,l=o.onButtonEvent,c="https://cdn.aframe.io/controllers/vive/vr_controller_vive.obj",u="https://cdn.aframe.io/controllers/vive/vr_controller_vive.mtl",h=e("../utils/").device.isWebXRAvailable,d=h?"htc-vive-controller-mv":"OpenVR ",p=h?{axes:{thumbstick:[0,1]},buttons:["trigger","grip","trackpad","none","menu"]}:{axes:{trackpad:[0,1]},buttons:["trackpad","trigger","grip","menu","system"]};t.exports.Component=r("vive-controls",{schema:{hand:{default:"left"},buttonColor:{type:"color",default:"#FAFAFA"},buttonHighlightColor:{type:"color",default:"#22D1EE"},model:{default:!0},orientationOffset:{type:"vec3"}},mapping:p,init:function(){var e=this;this.controllerPresent=!1,this.lastControllerCheck=0,this.onButtonChanged=i(this.onButtonChanged,this),this.onButtonDown=function(t){l(t.detail.id,"down",e)},this.onButtonUp=function(t){l(t.detail.id,"up",e)},this.onButtonTouchEnd=function(t){l(t.detail.id,"touchend",e)},this.onButtonTouchStart=function(t){l(t.detail.id,"touchstart",e)},this.previousButtonValues={},this.rendererSystem=this.el.sceneEl.systems.renderer,this.bindMethods()},update:function(){var e=this.data;this.controllerIndex="right"===e.hand?0:"left"===e.hand?1:2},play:function(){this.checkIfControllerPresent(),this.addControllersUpdateListener()},pause:function(){this.removeEventListeners(),this.removeControllersUpdateListener()},bindMethods:function(){this.onModelLoaded=i(this.onModelLoaded,this),this.onControllersUpdate=i(this.onControllersUpdate,this),this.checkIfControllerPresent=i(this.checkIfControllerPresent,this),this.removeControllersUpdateListener=i(this.removeControllersUpdateListener,this),this.onAxisMoved=i(this.onAxisMoved,this)},addEventListeners:function(){var e=this.el;e.addEventListener("buttonchanged",this.onButtonChanged),e.addEventListener("buttondown",this.onButtonDown),e.addEventListener("buttonup",this.onButtonUp),e.addEventListener("touchend",this.onButtonTouchEnd),e.addEventListener("touchstart",this.onButtonTouchStart),e.addEventListener("model-loaded",this.onModelLoaded),e.addEventListener("axismove",this.onAxisMoved),this.controllerEventsActive=!0},removeEventListeners:function(){var e=this.el;e.removeEventListener("buttonchanged",this.onButtonChanged),e.removeEventListener("buttondown",this.onButtonDown),e.removeEventListener("buttonup",this.onButtonUp),e.removeEventListener("touchend",this.onButtonTouchEnd),e.removeEventListener("touchstart",this.onButtonTouchStart),e.removeEventListener("model-loaded",this.onModelLoaded),e.removeEventListener("axismove",this.onAxisMoved),this.controllerEventsActive=!1},checkIfControllerPresent:function(){var e=this.data;a(this,d,{index:this.controllerIndex,hand:e.hand})},injectTrackedControls:function(){var e=this.el,t=this.data;e.setAttribute("tracked-controls",{idPrefix:d,hand:t.hand,controller:this.controllerIndex,orientationOffset:t.orientationOffset}),this.data.model&&this.el.setAttribute("obj-model",{obj:c,mtl:u})},addControllersUpdateListener:function(){this.el.sceneEl.addEventListener("controllersupdated",this.onControllersUpdate,!1)},removeControllersUpdateListener:function(){this.el.sceneEl.removeEventListener("controllersupdated",this.onControllersUpdate,!1)},onControllersUpdate:function(){this.checkIfControllerPresent()},onButtonChanged:function(e){var t,n=this.mapping.buttons[e.detail.id],r=this.buttonMeshes;n&&("trigger"===n&&(t=e.detail.state.value,r&&r.trigger&&(r.trigger.rotation.x=-t*(Math.PI/12))),this.el.emit(n+"changed",e.detail.state))},onModelLoaded:function(e){var t,n=e.detail.model,r=this;this.data.model&&((t=this.buttonMeshes={}).grip={left:n.getObjectByName("leftgrip"),right:n.getObjectByName("rightgrip")},t.menu=n.getObjectByName("menubutton"),t.system=n.getObjectByName("systembutton"),t.trackpad=n.getObjectByName("touchpad"),t.trigger=n.getObjectByName("trigger"),Object.keys(t).forEach((function(e){r.setButtonColor(e,r.data.buttonColor)})),n.position.set(0,-.015,.04))},onAxisMoved:function(e){s(this,this.mapping.axes,e)},updateModel:function(e,t){var n;this.data.model&&(-1!==t.indexOf("touch")||(n="up"===t?this.data.buttonColor:this.data.buttonHighlightColor,this.setButtonColor(e,n)))},setButtonColor:function(e,t){var n=this.buttonMeshes,r=this.rendererSystem;if(n){if("grip"===e)return n.grip.left.material.color.set(t),n.grip.right.material.color.set(t),r.applyColorCorrection(n.grip.left.material.color),void r.applyColorCorrection(n.grip.right.material.color);n[e].material.color.set(t),r.applyColorCorrection(n[e].material.color)}}})},{"../core/component":131,"../utils/":205,"../utils/bind":199,"../utils/tracked-controls":214}],120:[function(e,t,n){var r=e("../core/component").registerComponent,i=e("../utils/bind"),o=e("../utils/tracked-controls"),a=o.checkControllerPresentAndSetup,s=o.emitIfAxesChanged,l=o.onButtonEvent,c="HTC Vive Focus",u="https://cdn.aframe.io/controllers/vive/focus-controller/focus-controller.gltf";t.exports.Component=r("vive-focus-controls",{schema:{hand:{default:""},buttonTouchedColor:{type:"color",default:"#BBBBBB"},buttonHighlightColor:{type:"color",default:"#7A7A7A"},model:{default:!0},orientationOffset:{type:"vec3"},armModel:{default:!0}},mapping:{axes:{trackpad:[0,1]},buttons:["trackpad","trigger"]},bindMethods:function(){this.onModelLoaded=i(this.onModelLoaded,this),this.onControllersUpdate=i(this.onControllersUpdate,this),this.checkIfControllerPresent=i(this.checkIfControllerPresent,this),this.removeControllersUpdateListener=i(this.removeControllersUpdateListener,this),this.onAxisMoved=i(this.onAxisMoved,this)},init:function(){var e=this;this.onButtonChanged=i(this.onButtonChanged,this),this.onButtonDown=function(t){l(t.detail.id,"down",e)},this.onButtonUp=function(t){l(t.detail.id,"up",e)},this.onButtonTouchStart=function(t){l(t.detail.id,"touchstart",e)},this.onButtonTouchEnd=function(t){l(t.detail.id,"touchend",e)},this.controllerPresent=!1,this.lastControllerCheck=0,this.bindMethods()},addEventListeners:function(){var e=this.el;e.addEventListener("buttonchanged",this.onButtonChanged),e.addEventListener("buttondown",this.onButtonDown),e.addEventListener("buttonup",this.onButtonUp),e.addEventListener("touchstart",this.onButtonTouchStart),e.addEventListener("touchend",this.onButtonTouchEnd),e.addEventListener("model-loaded",this.onModelLoaded),e.addEventListener("axismove",this.onAxisMoved),this.controllerEventsActive=!0,this.addControllersUpdateListener()},removeEventListeners:function(){var e=this.el;e.removeEventListener("buttonchanged",this.onButtonChanged),e.removeEventListener("buttondown",this.onButtonDown),e.removeEventListener("buttonup",this.onButtonUp),e.removeEventListener("touchstart",this.onButtonTouchStart),e.removeEventListener("touchend",this.onButtonTouchEnd),e.removeEventListener("model-loaded",this.onModelLoaded),e.removeEventListener("axismove",this.onAxisMoved),this.controllerEventsActive=!1,this.removeControllersUpdateListener()},checkIfControllerPresent:function(){a(this,c,this.data.hand?{hand:this.data.hand}:{})},play:function(){this.checkIfControllerPresent(),this.addControllersUpdateListener()},pause:function(){this.removeEventListeners(),this.removeControllersUpdateListener()},injectTrackedControls:function(){var e=this.el,t=this.data;e.setAttribute("tracked-controls",{armModel:t.armModel,idPrefix:c,orientationOffset:t.orientationOffset}),this.data.model&&this.el.setAttribute("gltf-model",u)},addControllersUpdateListener:function(){this.el.sceneEl.addEventListener("controllersupdated",this.onControllersUpdate,!1)},removeControllersUpdateListener:function(){this.el.sceneEl.removeEventListener("controllersupdated",this.onControllersUpdate,!1)},onControllersUpdate:function(){this.checkIfControllerPresent()},onModelLoaded:function(e){var t,n=e.detail.model;this.data.model&&((t=this.buttonMeshes={}).trigger=n.getObjectByName("BumperKey"),t.triggerPressed=n.getObjectByName("BumperKey_Press"),t.triggerPressed&&(t.triggerPressed.visible=!1),t.trackpad=n.getObjectByName("TouchPad"),t.trackpadPressed=n.getObjectByName("TouchPad_Press"),t.trackpadPressed&&(t.trackpadPressed.visible=!1))},onButtonChanged:function(e){var t=this.mapping.buttons[e.detail.id];t&&this.el.emit(t+"changed",e.detail.state)},onAxisMoved:function(e){s(this,this.mapping.axes,e)},updateModel:function(e,t){this.data.model&&this.updateButtonModel(e,t)},updateButtonModel:function(e,t){var n=this.buttonMeshes,r=e+"Pressed";if(n&&n[e]&&n[r]){var i;switch(t){case"down":i=this.data.buttonHighlightColor;break;case"touchstart":i=this.data.buttonTouchedColor}i&&n[r].material.color.set(i),n[r].visible=!!i,n[e].visible=!i}}})},{"../core/component":131,"../utils/bind":199,"../utils/tracked-controls":214}],121:[function(e,t,n){var r=e("../constants").keyboardevent.KEYCODE_TO_CODE,i=e("../core/component").registerComponent,o=e("../lib/three"),a=e("../utils/"),s=a.bind,l=a.shouldCaptureKeyEvent,c=1e-5,u=.2,h=["KeyW","KeyA","KeyS","KeyD","ArrowUp","ArrowLeft","ArrowRight","ArrowDown"];function d(e){var t;for(t in e)return!1;return!0}t.exports.Component=i("wasd-controls",{schema:{acceleration:{default:65},adAxis:{default:"x",oneOf:["x","y","z"]},adEnabled:{default:!0},adInverted:{default:!1},enabled:{default:!0},fly:{default:!1},wsAxis:{default:"z",oneOf:["x","y","z"]},wsEnabled:{default:!0},wsInverted:{default:!1}},init:function(){this.keys={},this.easing=1.1,this.velocity=new o.Vector3,this.onBlur=s(this.onBlur,this),this.onContextMenu=s(this.onContextMenu,this),this.onFocus=s(this.onFocus,this),this.onKeyDown=s(this.onKeyDown,this),this.onKeyUp=s(this.onKeyUp,this),this.onVisibilityChange=s(this.onVisibilityChange,this),this.attachVisibilityEventListeners()},tick:function(e,t){var n=this.data,r=this.el,i=this.velocity;(i[n.adAxis]||i[n.wsAxis]||!d(this.keys))&&(t/=1e3,this.updateVelocity(t),(i[n.adAxis]||i[n.wsAxis])&&r.object3D.position.add(this.getMovementVector(t)))},remove:function(){this.removeKeyEventListeners(),this.removeVisibilityEventListeners()},play:function(){this.attachKeyEventListeners()},pause:function(){this.keys={},this.removeKeyEventListeners()},updateVelocity:function(e){var t,n,r,i,o,a=this.data,s=this.keys,l=this.velocity;if(n=a.adAxis,i=a.wsAxis,e>u)return l[n]=0,void(l[i]=0);var h=Math.pow(1/this.easing,60*e);0!==l[n]&&(l[n]=l[n]*h),0!==l[i]&&(l[i]=l[i]*h),Math.abs(l[n])<c&&(l[n]=0),Math.abs(l[i])<c&&(l[i]=0),a.enabled&&(t=a.acceleration,a.adEnabled&&(r=a.adInverted?-1:1,(s.KeyA||s.ArrowLeft)&&(l[n]-=r*t*e),(s.KeyD||s.ArrowRight)&&(l[n]+=r*t*e)),a.wsEnabled&&(o=a.wsInverted?-1:1,(s.KeyW||s.ArrowUp)&&(l[i]-=o*t*e),(s.KeyS||s.ArrowDown)&&(l[i]+=o*t*e)))},getMovementVector:function(){var e=new o.Vector3(0,0,0),t=new o.Euler(0,0,0,"YXZ");return function(n){var r,i=this.el.getAttribute("rotation"),a=this.velocity;return e.copy(a),e.multiplyScalar(n),i?(r=this.data.fly?i.x:0,t.set(o.Math.degToRad(r),o.Math.degToRad(i.y),0),e.applyEuler(t),e):e}}(),attachVisibilityEventListeners:function(){window.oncontextmenu=this.onContextMenu,window.addEventListener("blur",this.onBlur),window.addEventListener("focus",this.onFocus),document.addEventListener("visibilitychange",this.onVisibilityChange)},removeVisibilityEventListeners:function(){window.removeEventListener("blur",this.onBlur),window.removeEventListener("focus",this.onFocus),document.removeEventListener("visibilitychange",this.onVisibilityChange)},attachKeyEventListeners:function(){window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp)},removeKeyEventListeners:function(){window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp)},onContextMenu:function(){for(var e=Object.keys(this.keys),t=0;t<e.length;t++)delete this.keys[e[t]]},onBlur:function(){this.pause()},onFocus:function(){this.play()},onVisibilityChange:function(){document.hidden?this.onBlur():this.onFocus()},onKeyDown:function(e){var t;l(e)&&(t=e.code||r[e.keyCode],-1!==h.indexOf(t)&&(this.keys[t]=!0))},onKeyUp:function(e){var t;t=e.code||r[e.keyCode],delete this.keys[t]}})},{"../constants":123,"../core/component":131,"../lib/three":179,"../utils/":205}],122:[function(e,t,n){var r=e("../core/component").registerComponent,i=e("../utils/bind"),o=e("../utils/tracked-controls"),a=o.checkControllerPresentAndSetup,s=o.emitIfAxesChanged,l=o.onButtonEvent,c=e("../utils/"),u=c.debug("components:windows-motion-controls:debug"),h=c.debug("components:windows-motion-controls:warn"),d=e("../constants").DEFAULT_HANDEDNESS,p="https://cdn.aframe.io/controllers/microsoft/",f={left:"left.glb",right:"right.glb",default:"universal.glb"},m=e("../utils/").device.isWebXRAvailable,v=/([0-9a-zA-Z]+-[0-9a-zA-Z]+)$/,g=m?"windows-mixed-reality":"Spatial Controller (Spatial Interaction Source) ",y=m?{axes:{touchpad:[0,1],thumbstick:[2,3]},buttons:["trigger","squeeze","touchpad","thumbstick","menu"],axisMeshNames:["TOUCHPAD_TOUCH_X","TOUCHPAD_TOUCH_X","THUMBSTICK_X","THUMBSTICK_Y"],buttonMeshNames:{trigger:"SELECT",menu:"MENU",squeeze:"GRASP",thumbstick:"THUMBSTICK_PRESS",touchpad:"TOUCHPAD_PRESS"},pointingPoseMeshName:"POINTING_POSE"}:{axes:{thumbstick:[0,1],trackpad:[2,3]},buttons:["thumbstick","trigger","grip","menu","trackpad"],axisMeshNames:["THUMBSTICK_X","THUMBSTICK_Y","TOUCHPAD_TOUCH_X","TOUCHPAD_TOUCH_Y"],buttonMeshNames:{trigger:"SELECT",menu:"MENU",grip:"GRASP",thumbstick:"THUMBSTICK_PRESS",trackpad:"TOUCHPAD_PRESS"},pointingPoseMeshName:"POINTING_POSE"};t.exports.Component=r("windows-motion-controls",{schema:{hand:{default:d},pair:{default:0},model:{default:!0},hideDisconnected:{default:!0}},mapping:y,bindMethods:function(){this.onModelError=i(this.onModelError,this),this.onModelLoaded=i(this.onModelLoaded,this),this.onControllersUpdate=i(this.onControllersUpdate,this),this.checkIfControllerPresent=i(this.checkIfControllerPresent,this),this.onAxisMoved=i(this.onAxisMoved,this)},init:function(){var e=this,t=this.el;this.onButtonChanged=i(this.onButtonChanged,this),this.onButtonDown=function(t){l(t.detail.id,"down",e)},this.onButtonUp=function(t){l(t.detail.id,"up",e)},this.onButtonTouchStart=function(t){l(t.detail.id,"touchstart",e)},this.onButtonTouchEnd=function(t){l(t.detail.id,"touchend",e)},this.onControllerConnected=function(){e.setModelVisibility(!0)},this.onControllerDisconnected=function(){e.setModelVisibility(!1)},this.controllerPresent=!1,this.lastControllerCheck=0,this.previousButtonValues={},this.bindMethods(),this.loadedMeshInfo={buttonMeshes:null,axisMeshes:null},this.rayOrigin={origin:new THREE.Vector3,direction:new THREE.Vector3(0,0,-1),createdFromMesh:!1},t.addEventListener("controllerconnected",this.onControllerConnected),t.addEventListener("controllerdisconnected",this.onControllerDisconnected)},addEventListeners:function(){var e=this.el;e.addEventListener("buttonchanged",this.onButtonChanged),e.addEventListener("buttondown",this.onButtonDown),e.addEventListener("buttonup",this.onButtonUp),e.addEventListener("touchstart",this.onButtonTouchStart),e.addEventListener("touchend",this.onButtonTouchEnd),e.addEventListener("axismove",this.onAxisMoved),e.addEventListener("model-error",this.onModelError),e.addEventListener("model-loaded",this.onModelLoaded),this.controllerEventsActive=!0},removeEventListeners:function(){var e=this.el;e.removeEventListener("buttonchanged",this.onButtonChanged),e.removeEventListener("buttondown",this.onButtonDown),e.removeEventListener("buttonup",this.onButtonUp),e.removeEventListener("touchstart",this.onButtonTouchStart),e.removeEventListener("touchend",this.onButtonTouchEnd),e.removeEventListener("axismove",this.onAxisMoved),e.removeEventListener("model-error",this.onModelError),e.removeEventListener("model-loaded",this.onModelLoaded),this.controllerEventsActive=!1},checkIfControllerPresent:function(){a(this,g,{hand:this.data.hand,index:this.data.pair,iterateControllerProfiles:!0})},play:function(){this.checkIfControllerPresent(),this.addControllersUpdateListener()},pause:function(){this.removeEventListeners(),this.removeControllersUpdateListener()},updateControllerModel:function(){if(this.data.model&&!this.rayOrigin.createdFromMesh){var e=this.createControllerModelUrl();this.loadModel(e)}else this.modelReady()},createControllerModelUrl:function(e){var t,n=this.el.components["tracked-controls"],r=n?n.controller:null,i="default",o=this.data.hand;if(r&&!window.hasNativeWebXRImplementation&&(o=r.hand,!e)){var a=r.id.match(v);i=a&&a[0]||i}return t=f[o]||f.default,p+i+"/"+t},injectTrackedControls:function(){var e=this.data;this.el.setAttribute("tracked-controls",{idPrefix:g,controller:e.pair,hand:e.hand,armModel:!1}),this.updateControllerModel()},addControllersUpdateListener:function(){this.el.sceneEl.addEventListener("controllersupdated",this.onControllersUpdate,!1)},removeControllersUpdateListener:function(){this.el.sceneEl.removeEventListener("controllersupdated",this.onControllersUpdate,!1)},onControllersUpdate:function(){this.checkIfControllerPresent()},onModelError:function(e){var t=this.createControllerModelUrl(!0);e.detail.src!==t?(h("Failed to load controller model for device, attempting to load default."),this.loadModel(t)):h("Failed to load default controller model.")},loadModel:function(e){this.el.setAttribute("gltf-model","url("+e+")")},onModelLoaded:function(e){var t,n,r,i,o=this.controllerModel=e.detail.model,a=this.loadedMeshInfo;if(u("Processing model"),a.buttonMeshes={},a.axisMeshes={},o){for(t=0;t<this.mapping.buttons.length;t++)(n=this.mapping.buttonMeshNames[this.mapping.buttons[t]])?(r=o.getObjectByName(n))?(i={index:t,value:s(r,"VALUE"),pressed:s(r,"PRESSED"),unpressed:s(r,"UNPRESSED")}).value&&i.pressed&&i.unpressed?a.buttonMeshes[this.mapping.buttons[t]]=i:h("Missing button submesh under mesh with name: "+n+"(VALUE: "+!!i.value+", PRESSED: "+!!i.pressed+", UNPRESSED:"+!!i.unpressed+")"):h("Missing button mesh with name: "+n):u("Skipping unknown button at index: "+t+" with mapped name: "+this.mapping.buttons[t]);for(t=0;t<this.mapping.axisMeshNames.length;t++)(n=this.mapping.axisMeshNames[t])?(r=o.getObjectByName(n))?(i={index:t,value:s(r,"VALUE"),min:s(r,"MIN"),max:s(r,"MAX")}).value&&i.min&&i.max?a.axisMeshes[t]=i:h("Missing axis submesh under mesh with name: "+n+"(VALUE: "+!!i.value+", MIN: "+!!i.min+", MAX:"+!!i.max+")"):h("Missing axis mesh with name: "+n):u("Skipping unknown axis at index: "+t);this.calculateRayOriginFromMesh(o),this.setModelVisibility()}function s(e,t){for(var n=0,r=e.children.length;n<r;n++){var i=e.children[n];if(i&&i.name===t)return i}}u("Model load complete.")},calculateRayOriginFromMesh:function(){var e=new THREE.Quaternion;return function(t){var n;if(this.rayOrigin.origin.set(0,0,0),this.rayOrigin.direction.set(0,0,-1),this.rayOrigin.createdFromMesh=!0,n=t.getObjectByName(this.mapping.pointingPoseMeshName)){var r=t.parent;r&&(t.parent=null,t.updateMatrixWorld(!0),t.parent=r),n.getWorldPosition(this.rayOrigin.origin),n.getWorldQuaternion(e),this.rayOrigin.direction.applyQuaternion(e),r&&t.updateMatrixWorld(!0)}else u("Mesh does not contain pointing origin data, defaulting to none.");this.modelReady()}}(),lerpAxisTransform:function(){var e=new THREE.Quaternion;return function(t,n){var r=this.loadedMeshInfo.axisMeshes[t];if(r){var i=r.min,o=r.max,a=r.value,s=.5*n+.5;a.setRotationFromQuaternion(e.copy(i.quaternion).slerp(o.quaternion,s)),a.position.lerpVectors(i.position,o.position,s)}}}(),lerpButtonTransform:function(){var e=new THREE.Quaternion;return function(t,n){var r=this.loadedMeshInfo.buttonMeshes[t];if(r){var i=r.unpressed,o=r.pressed,a=r.value;a.setRotationFromQuaternion(e.copy(i.quaternion).slerp(o.quaternion,n)),a.position.lerpVectors(i.position,o.position,n)}}}(),modelReady:function(){this.el.emit("controllermodelready",{name:"windows-motion-controls",model:this.data.model,rayOrigin:this.rayOrigin})},onButtonChanged:function(e){var t=this.mapping.buttons[e.detail.id];t&&(this.loadedMeshInfo&&this.loadedMeshInfo.buttonMeshes&&this.lerpButtonTransform(t,e.detail.state.value),this.el.emit(t+"changed",e.detail.state))},onAxisMoved:function(e){var t=this.mapping.axisMeshNames.length;if(this.loadedMeshInfo&&this.loadedMeshInfo.axisMeshes)for(var n=0;n<t;n++)this.lerpAxisTransform(n,e.detail.axis[n]||0);s(this,this.mapping.axes,e)},setModelVisibility:function(e){var t=this.el.getObject3D("mesh");e=void 0!==e?e:this.modelVisible,this.modelVisible=e,t&&(t.visible=e)}})},{"../constants":123,"../core/component":131,"../utils/":205,"../utils/bind":199,"../utils/tracked-controls":214}],123:[function(e,t,n){t.exports={AFRAME_INJECTED:"aframe-injected",DEFAULT_CAMERA_HEIGHT:1.6,DEFAULT_HANDEDNESS:"right",keyboardevent:e("./keyboardevent")}},{"./keyboardevent":124}],124:[function(e,t,n){t.exports={KEYCODE_TO_CODE:{38:"ArrowUp",37:"ArrowLeft",40:"ArrowDown",39:"ArrowRight",87:"KeyW",65:"KeyA",83:"KeyS",68:"KeyD"}}},{}],125:[function(e,t,n){var r=e("./a-node"),i=e("../utils/bind"),o=e("../utils/debug"),a=e("./a-register-element").registerElement,s=e("../lib/three"),l=new s.FileLoader,c=o("core:a-assets:warn");function u(e){if(e.hasAttribute("autoplay")||"auto"===e.getAttribute("preload"))return new Promise((function(t,n){if(4===e.readyState)return t();if(e.error)return n();function r(){for(var n=0,r=0;r<e.buffered.length;r++)n+=e.buffered.end(r)-e.buffered.start(r);n>=e.duration&&("VIDEO"===e.tagName&&(s.Cache.files[e.getAttribute("src")]=e),t())}e.addEventListener("loadeddata",r,!1),e.addEventListener("progress",r,!1),e.addEventListener("error",n,!1)}))}function h(e){var t=d(e);return t.tagName&&"video"===t.tagName.toLowerCase()&&(t.setAttribute("playsinline",""),t.setAttribute("webkit-playsinline","")),t!==e&&(e.parentNode.appendChild(t),e.parentNode.removeChild(e)),t}function d(e){var t;if(e.hasAttribute("crossorigin"))return e;if(null!==(t=e.getAttribute("src"))){if(-1===t.indexOf("://"))return e;if(p(t)===window.location.host)return e}return c('Cross-origin element (e.g., <img>) was requested without `crossorigin` set. A-Frame will re-request the asset with `crossorigin` attribute set. Please set `crossorigin` on the element (e.g., <img crossorigin="anonymous">)',t),e.crossOrigin="anonymous",e.cloneNode(!0)}function p(e){var t=e.indexOf("://")>-1?e.split("/")[2]:e.split("/")[0];return t.substring(0,t.indexOf(":"))}function f(e){var t=m(e),n=t.lastIndexOf(".");return n>=0&&".glb"===t.slice(n,e.search(/\?|#|$/))?"arraybuffer":"text"}function m(e){var t=document.createElement("a");t.href=e;var n=t.search.replace(/^\?/,""),r=e.replace(n,"").replace("?","");return r.substring(r.lastIndexOf("/")+1)}t.exports=a("a-assets",{prototype:Object.create(r.prototype,{createdCallback:{value:function(){this.isAssets=!0,this.fileLoader=l,this.timeout=null}},attachedCallback:{value:function(){var e,t,n,r,o,a,l=this,d=[];if(!this.parentNode.isScene)throw new Error("<a-assets> must be a child of a <a-scene>.");for(o=this.querySelectorAll("img"),e=0;e<o.length;e++)r=h(o[e]),d.push(new Promise((function(t,n){s.Cache.files[o[e].getAttribute("src")]=r,r.onload=t,r.onerror=n})));for(n=this.querySelectorAll("audio, video"),e=0;e<n.length;e++)(t=h(n[e])).src||t.srcObject||c("Audio/video asset has neither `src` nor `srcObject` attributes."),d.push(u(t));Promise.all(d).then(i(this.load,this)),a=parseInt(this.getAttribute("timeout"),10)||3e3,this.timeout=setTimeout((function(){l.hasLoaded||(c("Asset loading timed out in ",a,"ms"),l.emit("timeout"),l.load())}),a)}},detachedCallback:{value:function(){this.timeout&&clearTimeout(this.timeout)}},load:{value:function(){r.prototype.load.call(this,null,(function(e){return e.isAssetItem&&e.hasAttribute("src")}))}}})}),a("a-asset-item",{prototype:Object.create(r.prototype,{createdCallback:{value:function(){this.data=null,this.isAssetItem=!0}},attachedCallback:{value:function(){var e=this,t=this.getAttribute("src");l.setResponseType(this.getAttribute("response-type")||f(t)),l.load(t,(function(t){e.data=t,setTimeout((function(){r.prototype.load.call(e)}))}),(function(t){e.emit("progress",{loadedBytes:t.loaded,totalBytes:t.total,xhr:t})}),(function(t){e.emit("error",{xhr:t})}))}}})}),t.exports.inferResponseType=f,t.exports.getFileNameFromURL=m},{"../lib/three":179,"../utils/bind":199,"../utils/debug":201,"./a-node":129,"./a-register-element":130}],126:[function(e,t,n){var r=e("../utils/debug"),i=e("./a-register-element").registerElement,o=r("core:cubemap:warn");t.exports=i("a-cubemap",{prototype:Object.create(window.HTMLElement.prototype,{attachedCallback:{value:function(){this.srcs=this.validate()},writable:window.debug},validate:{value:function(){var e,t=this.querySelectorAll("[src]"),n=[];if(6===t.length){for(e=0;e<t.length;e++)n.push(t[e].getAttribute("src"));return n}o("<a-cubemap> did not contain exactly six elements each with a `src` attribute.")},writable:window.debug}})})},{"../utils/debug":201,"./a-register-element":130}],127:[function(e,t,n){var r,i=e("./a-node"),o=e("./component").components,a=e("./a-register-element").registerElement,s=e("../lib/three"),l=e("../utils/"),c=l.debug("core:a-entity:debug"),u=l.debug("core:a-entity:warn"),h="__",d=["position","rotation","scale","visible"],p={once:!0},f=Object.create(i.prototype,{createdCallback:{value:function(){this.components={},this.initializingComponents={},this.componentsToUpdate={},this.isEntity=!0,this.isPlaying=!1,this.object3D=new s.Group,this.object3D.el=this,this.object3DMap={},this.parentEl=null,this.rotationObj={},this.states=[]}},attributeChangedCallback:{value:function(e,t,n){var r=this.components[e];r&&r.justInitialized&&""===n?delete r.justInitialized:(r||null!==n)&&this.setEntityAttribute(e,t,n)}},attachedCallback:{value:function(){var e,t=this.sceneEl,n=this;this.addToParent(),this.isScene||(t?!(e=t.querySelector("a-assets"))||e.hasLoaded?this.load():e.addEventListener("loaded",(function(){n.load()})):this.load())}},detachedCallback:{value:function(){var e;if(this.parentEl){for(e in this.components)this.removeComponent(e,!1);this.isScene||(this.removeFromParent(),i.prototype.detachedCallback.call(this),this.object3D.el=null)}}},getObject3D:{value:function(e){return this.object3DMap[e]}},setObject3D:{value:function(e,t){var n,r=this;if(!(t instanceof s.Object3D))throw new Error("`Entity.setObject3D` was called with an object that was not an instance of THREE.Object3D.");(n=this.getObject3D(e))&&this.object3D.remove(n),t.el=this,t.children.length&&t.traverse((function(e){e.el=r})),this.object3D.add(t),this.object3DMap[e]=t,this.emit("object3dset",{object:t,type:e})}},removeObject3D:{value:function(e){var t=this.getObject3D(e);t?(this.object3D.remove(t),delete this.object3DMap[e],this.emit("object3dremove",{type:e})):u("Tried to remove `Object3D` of type:",e,"which was not defined.")}},getOrCreateObject3D:{value:function(e,t){var n=this.getObject3D(e);return!n&&t&&(n=new t,this.setObject3D(e,n)),u("`getOrCreateObject3D` has been deprecated. Use `setObject3D()` and `object3dset` event instead."),n}},add:{value:function(e){if(!e.object3D)throw new Error("Trying to add an element that doesn't have an `object3D`");this.object3D.add(e.object3D),this.emit("child-attached",{el:e})}},addToParent:{value:function(){var e=this.parentEl=this.parentNode;e&&e.add&&!this.attachedToParent&&(e.add(this),this.attachedToParent=!0)}},removeFromParent:{value:function(){var e=this.parentEl;this.parentEl.remove(this),this.attachedToParent=!1,this.parentEl=null,e.emit("child-detached",{el:this})}},load:{value:function(){var e=this;!this.hasLoaded&&this.parentEl&&i.prototype.load.call(this,(function(){e.parentEl&&(e.updateComponents(),(e.isScene||e.parentEl.isPlaying)&&e.play())}))},writable:window.debug},remove:{value:function(e){e?this.object3D.remove(e.object3D):this.parentNode.removeChild(this)}},getChildEntities:{value:function(){for(var e=this.children,t=[],n=0;n<e.length;n++){var i=e[n];i instanceof r&&t.push(i)}return t}},initComponent:{value:function(e,t,n){var r,i,a,s;if(s=(a=l.split(e,h))[0],i=a.length>2?a.slice(1).join("__"):a[1],o[s]&&(m(this,e)||void 0!==t||n)&&!(e in this.components)){if(this.initComponentDependencies(s),i&&!o[s].multiple)throw new Error("Trying to initialize multiple components of type `"+s+"`. There can only be one component of this type per entity.");r=new o[s].Component(this,t,i),this.isPlaying&&r.play(),this.hasAttribute(e)||(r.justInitialized=!0,window.HTMLElement.prototype.setAttribute.call(this,e,"")),c("Component initialized: %s",e)}},writable:window.debug},initComponentDependencies:{value:function(e){var t,n,r=this;if(o[e]&&(t=o[e].dependencies))for(n=0;n<t.length;n++)r.initComponent(t[n],window.HTMLElement.prototype.getAttribute.call(r,t[n])||void 0,!0)}},removeComponent:{value:function(e,t){var n;(n=this.components[e])&&(n.initialized?(n.pause(),n.remove(),t&&(n.destroy(),delete this.components[e]),this.emit("componentremoved",n.evtDetail,!1)):this.addEventListener("componentinitialized",(function n(r){r.detail.name===e&&(this.removeComponent(e,t),this.removeEventListener("componentinitialized",n))})))},writable:window.debug},updateComponents:{value:function(){var e,t,n,r,i=this.componentsToUpdate;if(this.hasLoaded){for(n=0;n<this.mixinEls.length;n++)for(r in this.mixinEls[n].componentCache)y(r)&&(i[r]=!0);if(this.getExtraComponents)for(r in t=this.getExtraComponents())y(r)&&(i[r]=!0);for(n=0;n<this.attributes.length;++n)r=this.attributes[n].name,-1===d.indexOf(r)&&y(r)&&(i[r]=!0);for(n=0;n<d.length;n++)r=d[n],this.hasAttribute(r)&&this.updateComponent(r,this.getDOMAttribute(r));for(r in i)e=g(this.getDOMAttribute(r),t&&t[r]),this.updateComponent(r,e),delete i[r]}},writable:window.debug},updateComponent:{value:function(e,t,n){var r=this.components[e];if(r)return null!==t||m(this,e)?void r.updateProperties(t,n):void this.removeComponent(e,!0);this.initComponent(e,t,!1)}},removeAttribute:{value:function(e,t){var n=this.components[e];n&&void 0===t&&this.removeComponent(e,!0),n&&void 0!==t?n.resetProperty(t):("mixin"===e&&this.mixinUpdate(""),window.HTMLElement.prototype.removeAttribute.call(this,e))}},play:{value:function(){var e,t,n;if(!this.isPlaying&&this.hasLoaded){for(n in this.isPlaying=!0,this.components)this.components[n].play();for(e=this.getChildEntities(),t=0;t<e.length;t++)e[t].play();this.emit("play")}},writable:!0},pause:{value:function(){var e,t,n;if(this.isPlaying){for(n in this.isPlaying=!1,this.components)this.components[n].pause();for(e=this.getChildEntities(),t=0;t<e.length;t++)e[t].pause();this.emit("pause")}},writable:!0},setEntityAttribute:{value:function(e,t,n){if(o[e]||this.components[e])this.updateComponent(e,n);else if("mixin"===e){if(n===this.computedMixinStr)return;this.mixinUpdate(n,t)}}},mixinUpdate:{value:function(){var e=[];return function(t,n){var r,i,o,a,s=this;if(this.hasLoaded){for(n=n||this.getAttribute("mixin"),o=this.updateMixins(t,n),e.length=0,a=0;a<this.mixinEls.length;a++)for(r in this.mixinEls[a].componentCache)-1===e.indexOf(r)&&(this.components[r]?this.components[r].handleMixinUpdate():this.initComponent(r,null),e.push(r));for(a=0;a<o.oldMixinIds.length;a++)if(i=document.getElementById(o.oldMixinIds[a]))for(r in i.componentCache)-1===e.indexOf(r)&&this.components[r]&&(this.getDOMAttribute(r)?this.components[r].handleMixinUpdate():this.removeComponent(r,!0))}else this.addEventListener("loaded",(function(){s.mixinUpdate(t,n)}),p)}}()},setAttribute:{value:function(){var e={};return function(t,n,r){var a,s,c,u,d;if(c=(u=t.indexOf(h))>0?t.substring(0,u):t,!o[c])return"mixin"===t&&this.mixinUpdate(n),void i.prototype.setAttribute.call(this,t,n);if(!this.components[t]&&this.hasAttribute(t)&&this.updateComponent(t,window.HTMLElement.prototype.getAttribute.call(this,t)),"undefined"!==typeof r&&"string"===typeof n&&n.length>0&&"string"===typeof l.styleParser.parse(n)){for(d in e)delete e[d];(a=e)[n]=r,s=!1}else a=n,s=!0===r;this.updateComponent(t,a,s),this.sceneEl&&this.sceneEl.getAttribute("debug")&&this.components[t].flushToDOM()}}(),writable:window.debug},flushToDOM:{value:function(e){var t,n,r,i=this.components,o=this.children;for(r in i)i[r].flushToDOM();if(e)for(n=0;n<o.length;++n)(t=o[n]).flushToDOM&&t.flushToDOM(e)}},getAttribute:{value:function(e){var t;return"position"===e?this.object3D.position:"rotation"===e?b(this):"scale"===e?this.object3D.scale:"visible"===e?this.object3D.visible:(t=this.components[e])?t.data:window.HTMLElement.prototype.getAttribute.call(this,e)},writable:window.debug},getDOMAttribute:{value:function(e){var t=this.components[e];return t?t.attrValue:window.HTMLElement.prototype.getAttribute.call(this,e)},writable:window.debug},addState:{value:function(e){this.is(e)||(this.states.push(e),this.emit("stateadded",e))}},removeState:{value:function(e){var t=this.states.indexOf(e);-1!==t&&(this.states.splice(t,1),this.emit("stateremoved",e))}},is:{value:function(e){return-1!==this.states.indexOf(e)}},inspect:{value:function(){this.sceneEl.components.inspector.openInspector(this)}},destroy:{value:function(){var e;if(this.parentNode)u("Entity can only be destroyed if detached from scenegraph.");else for(e in this.components)this.components[e].destroy()}}});function m(e,t){return!(!e.components[t]||!e.components[t].attrValue)||v(t,e.mixinEls)}function v(e,t){var n,r=!1;for(n=0;n<t.length&&!(r=t[n].hasAttribute(e));++n);return r}function g(e,t){return t?t.constructor===Object?l.extend(t,l.styleParser.parse(e||{})):e||t:e}function y(e){return-1!==e.indexOf(h)&&(e=l.split(e,h)[0]),!!o[e]}function b(e){var t=s.Math.radToDeg,n=e.object3D.rotation,r=e.rotationObj;return r.x=t(n.x),r.y=t(n.y),r.z=t(n.z),r}r=a("a-entity",{prototype:f}),t.exports=r},{"../lib/three":179,"../utils/":205,"./a-node":129,"./a-register-element":130,"./component":131}],128:[function(e,t,n){var r=e("./a-node"),i=e("./a-register-element").registerElement,o=e("./component").components,a=e("../utils"),s="__";t.exports=i("a-mixin",{prototype:Object.create(r.prototype,{createdCallback:{value:function(){this.componentCache={},this.id=this.getAttribute("id"),this.isMixin=!0}},attributeChangedCallback:{value:function(e,t,n){this.cacheAttribute(e,n),this.updateEntities()}},attachedCallback:{value:function(){this.sceneEl=this.closestScene(),this.cacheAttributes(),this.updateEntities(),this.load()}},setAttribute:{value:function(e,t){window.HTMLElement.prototype.setAttribute.call(this,e,t),this.cacheAttribute(e,t)}},cacheAttribute:{value:function(e,t){var n,r;r=a.split(e,s)[0],(n=o[r])&&(void 0===t&&(t=window.HTMLElement.prototype.getAttribute.call(this,e)),this.componentCache[e]=n.parseAttrValueForCache(t))}},getAttribute:{value:function(e){return this.componentCache[e]||window.HTMLElement.prototype.getAttribute.call(this,e)}},cacheAttributes:{value:function(){var e,t,n=this.attributes;for(t=0;t<n.length;t++)e=n[t].name,this.cacheAttribute(e)}},updateEntities:{value:function(){var e,t,n;if(this.sceneEl)for(t=this.sceneEl.querySelectorAll("[mixin~="+this.id+"]"),n=0;n<t.length;n++)(e=t[n]).hasLoaded&&!e.isMixin&&e.mixinUpdate(this.id)}}})})},{"../utils":205,"./a-node":129,"./a-register-element":130,"./component":131}],129:[function(e,t,n){var r=e("./a-register-element").registerElement,i=e("./a-register-element").isNode,o=e("../utils/"),a=o.debug("core:a-node:warn"),s=o.debug("core:a-node:error");t.exports=r("a-node",{prototype:Object.create(window.HTMLElement.prototype,{createdCallback:{value:function(){this.computedMixinStr="",this.hasLoaded=!1,this.isNode=!0,this.mixinEls=[]},writable:window.debug},attachedCallback:{value:function(){var e;this.sceneEl=this.closestScene(),this.sceneEl||a("You are attempting to attach <"+this.tagName+"> outside of an A-Frame scene. Append this element to `<a-scene>` instead."),this.hasLoaded=!1,this.emit("nodeready",void 0,!1),this.isMixin||(e=this.getAttribute("mixin"))&&this.updateMixins(e)},writable:window.debug},attributeChangedCallback:{value:function(e,t,n){n!==this.computedMixinStr&&("mixin"!==e||this.isMixin||this.updateMixins(n,t))}},closestScene:{value:function(){for(var e=this;e&&!e.isScene;)e=e.parentElement;return e}},closest:{value:function(e){for(var t=this.matches||this.mozMatchesSelector||this.msMatchesSelector||this.oMatchesSelector||this.webkitMatchesSelector,n=this;n&&!t.call(n,e);)n=n.parentElement;return n}},detachedCallback:{value:function(){this.hasLoaded=!1}},load:{value:function(e,t){var n,r=this;this.hasLoaded||(t=t||i,n=this.getChildren().filter(t).map((function(e){return new Promise((function(t){if(e.hasLoaded)return t();e.addEventListener("loaded",t)}))})),Promise.all(n).then((function(){r.hasLoaded=!0,e&&e(),r.emit("loaded",void 0,!1)})).catch((function(e){s("Failure loading node: ",e)})))},writable:!0},getChildren:{value:function(){return Array.prototype.slice.call(this.children,0)}},updateMixins:{value:function(){var e=[],t=[],n={};return function(r,i){var a,s,l;for(e.length=0,t.length=0,s=r?o.split(r.trim(),/\s+/):e,l=i?o.split(i.trim(),/\s+/):t,n.newMixinIds=s,n.oldMixinIds=l,a=0;a<l.length;a++)-1===s.indexOf(l[a])&&this.unregisterMixin(l[a]);for(this.computedMixinStr="",this.mixinEls.length=0,a=0;a<s.length;a++)this.registerMixin(document.getElementById(s[a]));return this.computedMixinStr&&(this.computedMixinStr=this.computedMixinStr.trim(),window.HTMLElement.prototype.setAttribute.call(this,"mixin",this.computedMixinStr)),n}}()},registerMixin:{value:function(e){var t,n,r;if(e){if(r=e.getAttribute("mixin"))for(t=o.split(r.trim(),/\s+/),n=0;n<t.length;n++)this.registerMixin(document.getElementById(t[n]));this.computedMixinStr=this.computedMixinStr+" "+e.id,this.mixinEls.push(e)}}},setAttribute:{value:function(e,t){"mixin"===e&&this.updateMixins(t),window.HTMLElement.prototype.setAttribute.call(this,e,t)}},unregisterMixin:{value:function(e){var t,n=this.mixinEls;for(t=0;t<n.length;++t)if(e===n[t].id){n.splice(t,1);break}}},emit:{value:function(){var e={};return function(t,n,r,i){void 0===r&&(r=!0),e.bubbles=!!r,e.detail=n,i&&(e=o.extend({},i,e)),this.dispatchEvent(new CustomEvent(t,e))}}(),writable:window.debug}})})},{"../utils/":205,"./a-register-element":130}],130:[function(e,t,n){var r,i;e("document-register-element");var o=t.exports.knownTags={};function a(e){o[e.toLowerCase()]=!0}function s(e){var t={};return c(t,["attachedCallback","attributeChangedCallback","createdCallback","detachedCallback"],e,r.prototype),h(e,t),t}function l(e){var t={},n=["attachedCallback","attributeChangedCallback","createdCallback","detachedCallback"];return c(t,["attachedCallback","attributeChangedCallback","createdCallback","detachedCallback"],e,r.prototype),c(t,n,e,i.prototype),h(e,t),t}function c(e,t,n,r){t.forEach((function(t){u(e,t,n,r)}))}function u(e,t,n,r){var i=n[t],o=r[t];i&&o&&i!==o&&(e[t]={value:function(){return o.apply(this,arguments),i.apply(this,arguments)},writable:window.debug})}function h(e,t){Object.getOwnPropertyNames(e).forEach((function(n){var r;t[n]||(r=Object.getOwnPropertyDescriptor(e,n),t[n]={value:e[n],writable:r.writable})}))}t.exports.isNode=function(e){return e.tagName.toLowerCase()in o||e.isNode},t.exports.registerElement=function(e,t){var n=Object.getPrototypeOf(t.prototype),o=t,c=r&&n===r.prototype,u=i&&n===i.prototype;return(c||u)&&a(e),c&&(o=s(t.prototype),o={prototype:Object.create(n,o)}),u&&(o=l(t.prototype),o={prototype:Object.create(n,o)}),Object.getOwnPropertyNames(o.prototype).forEach((function(e){var t=o.prototype[e];"function"===typeof t&&(t.displayName=e)})),document.registerElement(e,o)},t.exports.wrapMethods=c,r=e("./a-node"),i=e("./a-entity")},{"./a-entity":127,"./a-node":129,"document-register-element":12}],131:[function(e,t,n){var r=e("./schema"),i=e("./scene/scenes"),o=e("./system"),a=e("../utils/"),s=t.exports.components={},l=r.parseProperties,c=r.parseProperty,u=r.process,h=r.isSingleProperty,d=r.stringifyProperties,p=r.stringifyProperty,f=a.styleParser,m=a.debug("core:component:warn"),v=document.currentScript,g=new RegExp("[A-Z]+"),y={},b=t.exports.Component=function(e,t,n){var r=this;this.el=e,this.id=n,this.attrName=this.name+(n?"__"+n:""),this.evtDetail={id:this.id,name:this.name},this.initialized=!1,this.isSingleProperty=h(this.schema),this.isSinglePropertyObject=this.isSingleProperty&&S(c(void 0,this.schema))&&!(this.schema.default instanceof window.HTMLElement),this.isObjectBased=!this.isSingleProperty||this.isSinglePropertyObject,this.el.components[this.attrName]=this,this.objectPool=y[this.name];const i=this.events;this.events={},A(this,i),this.attrValue=void 0,this.isObjectBased?(this.nextData=this.objectPool.use(),a.objectPool.removeUnusedKeys(this.nextData,this.schema),this.oldData=this.objectPool.use(),a.objectPool.removeUnusedKeys(this.oldData,this.schema),this.previousOldData=this.objectPool.use(),a.objectPool.removeUnusedKeys(this.previousOldData,this.schema),this.parsingAttrValue=this.objectPool.use(),a.objectPool.removeUnusedKeys(this.parsingAttrValue,this.schema)):(this.nextData=void 0,this.oldData=void 0,this.previousOldData=void 0,this.parsingAttrValue=void 0),this.throttledEmitComponentChanged=a.throttle((function(){e.emit("componentchanged",r.evtDetail,!1)}),200),this.updateProperties(t)};function A(e,t){var n;for(n in t)e.events[n]=t[n].bind(e)}if(b.prototype={schema:{},init:function(){},events:{},update:function(e){},updateSchema:void 0,tick:void 0,tock:void 0,play:function(){},pause:function(){},remove:function(){},parse:function(e,t){var n=this.schema;return this.isSingleProperty?c(e,n):l(f.parse(e),n,!0,this.name,t)},stringify:function(e){var t=this.schema;return"string"===typeof e?e:this.isSingleProperty?p(e,t):(e=d(e,t),f.stringify(e))},updateCachedAttrValue:function(e,t){var n,r,i;if(void 0!==e){if(null===e)return this.isObjectBased&&this.attrValue&&this.objectPool.recycle(this.attrValue),void(this.attrValue=void 0);if(e instanceof Object&&!(e instanceof window.HTMLElement)?(r=this.objectPool.use(),n=a.extend(r,e)):n=this.parseAttrValueForCache(e),this.isObjectBased&&!t&&this.attrValue)for(i in this.attrValue)void 0===n[i]&&(n[i]=this.attrValue[i]);this.isObjectBased&&!this.attrValue&&(this.attrValue=this.objectPool.use()),a.objectPool.clearObject(this.attrValue),this.attrValue=E(this.attrValue,n,this.isObjectBased),a.objectPool.clearObject(r)}},parseAttrValueForCache:function(e){var t;return"string"!==typeof e?e:(this.isSingleProperty?"string"===typeof(t=this.schema.parse(e))&&(t=e):(a.objectPool.clearObject(this.parsingAttrValue),t=f.parse(e,this.parsingAttrValue)),t)},flushToDOM:function(e){var t=e?this.data:this.attrValue;null!==t&&void 0!==t&&window.HTMLElement.prototype.setAttribute.call(this.el,this.attrName,this.stringify(t))},updateProperties:function(e,t){this.el.hasLoaded?(null!==e&&(e=this.parseAttrValueForCache(e)),this.updateCachedAttrValue(e,t),this.initialized?(this.updateComponent(e,t),this.callUpdateHandler()):this.initComponent()):this.updateCachedAttrValue(e)},initComponent:function(){var e,t=this.el;this.updateSchema&&this.updateSchema(this.buildData(this.attrValue,!1,!0)),this.data=this.buildData(this.attrValue),t.initializingComponents[this.name]||(t.initializingComponents[this.name]=!0,this.init(),this.initialized=!0,delete t.initializingComponents[this.name],this.oldData=E(this.oldData,this.data,this.isObjectBased),e=this.isObjectBased?this.objectPool.use():void 0,this.update(e),this.isObjectBased&&this.objectPool.recycle(e),t.isPlaying&&this.play(),t.emit("componentinitialized",this.evtDetail,!1))},updateComponent:function(e,t){var n,r;if(t)return this.updateSchema&&this.updateSchema(this.buildData(this.attrValue,!0,!0)),void(this.data=this.buildData(this.attrValue,!0,!1));if(this.isSingleProperty)return this.isObjectBased&&c(e,this.schema),void(this.data=e);if(l(e,this.schema,!0,this.name),this.schemaChangeKeys.length)for(n in e)if(this.schema[n].schemaChange){r=!0;break}if(r)return this.updateSchema&&this.updateSchema(this.buildData(this.attrValue,!0,!0)),void(this.data=this.buildData(this.attrValue,!0,!1));for(n in e)void 0!==e[n]&&(this.data[n]=e[n])},callUpdateHandler:function(){var e;this.previousOldData instanceof Object&&a.objectPool.clearObject(this.previousOldData),this.isObjectBased?x(this.previousOldData,this.oldData):this.previousOldData=this.oldData,e=!a.deepEqual(this.oldData,this.data),(this.isPositionRotationScale||e)&&(this.oldData instanceof Object&&a.objectPool.clearObject(this.oldData),this.oldData=E(this.oldData,this.data,this.isObjectBased),this.update(this.previousOldData),this.throttledEmitComponentChanged())},handleMixinUpdate:function(){this.data=this.buildData(this.attrValue),this.callUpdateHandler()},resetProperty:function(e){if(this.isObjectBased){if(!(e in this.attrValue))return;delete this.attrValue[e],this.data[e]=this.schema[e].default}else this.attrValue=this.schema.default,this.data=this.schema.default;this.updateProperties(this.attrValue)},extendSchema:function(e){var t;t=a.extend({},s[this.name].schema),a.extend(t,e),this.schema=u(t),this.el.emit("schemachanged",this.evtDetail)},buildData:function(e,t,n){var r,i,o,s,u,h,d,p=this.nextData,f=this.schema,m=this.el.mixinEls;if(r=e&&e.constructor===Array?e.length:void 0!==e&&null!==e,this.isObjectBased&&a.objectPool.clearObject(p),this.isSingleProperty)i=this.isObjectBased?x(p,f.default):C(f.default)?a.clone(f.default):f.default;else for(s in i=(d=!t&&this.attrValue)instanceof Object?x(p,d):p,f)o=f[s].default,void 0===i[s]&&(i[s]=C(o)?a.clone(o):o);for(h=0;h<m.length;h++)(u=m[h].getAttribute(this.attrName))&&(i=E(i,u,this.isObjectBased));if(r){if(this.isSingleProperty)return S(e)?(x(this.parsingAttrValue,e),c(this.parsingAttrValue,f)):c(e,f);i=E(i,e,this.isObjectBased)}else if(this.isSingleProperty)return c(i,f);return l(i,f,void 0,this.name,n)},eventsAttach:function(){var e;for(e in this.eventsDetach(),this.events)this.el.addEventListener(e,this.events[e])},eventsDetach:function(){var e;for(e in this.events)this.el.removeEventListener(e,this.events[e])},destroy:function(){this.objectPool.recycle(this.attrValue),this.objectPool.recycle(this.oldData),this.objectPool.recycle(this.parsingAttrValue),this.attrValue=this.oldData=this.parsingAttrValue=void 0}},window.debug)var w=t.exports.registrationOrderWarnings={};function x(e,t){var n,r;for(r in t)void 0!==t[r]&&(n=t[r],e[r]=C(n)?a.clone(n):n);return e}function E(e,t,n){var r;if(n&&t.constructor===Object){for(r in t)void 0!==t[r]&&(t[r]&&t[r].constructor===Object?e[r]=a.clone(t[r]):e[r]=t[r]);return e}return t}function M(e){return e.tick||e.tock}function _(e){return function(){var t=this.el.sceneEl;this.isPlaying&&(e.call(this),this.isPlaying=!1,this.eventsDetach(),M(this)&&t.removeBehavior(this))}}function T(e){return function(){var t=this.el.sceneEl,n=this.el.isPlaying&&!this.isPlaying;this.initialized&&n&&(e.call(this),this.isPlaying=!0,this.eventsAttach(),M(this)&&t.addBehavior(this))}}function S(e){return e&&e.constructor===Object&&!(e instanceof window.HTMLElement)}function C(e){return e&&(e.constructor===Object||e.constructor===Array)&&!(e instanceof window.HTMLElement)}t.exports.registerComponent=function(e,t){var n,r,l,c,d={};if(document.currentScript&&document.currentScript!==v&&i.forEach((function(t){t.hasLoaded||document.currentScript.compareDocumentPosition(t)!==Node.DOCUMENT_POSITION_FOLLOWING&&(m("The component `"+e+"` was registered in a <script> tag after the scene. Component <script> tags in an HTML file should be declared *before* the scene such that the component is available to entities during scene initialization."),window.debug&&(w[e]=!0))})),!0===g.test(e)&&m("The component name `"+e+"` contains uppercase characters, but HTML will ignore the capitalization of attribute names. Change the name to be lowercase: `"+e.toLowerCase()+"`"),-1!==e.indexOf("__"))throw new Error("The component name `"+e+"` is not allowed. The sequence __ (double underscore) is reserved to specify an id for multiple components of the same type");if(Object.keys(t).forEach((function(e){d[e]={value:t[e],writable:!0}})),s[e])throw new Error("The component `"+e+"` has been already registered. Check that you are not loading two versions of the same component or two different components of the same name.");if((n=function(e,t,n){b.call(this,e,t,n)}).prototype=Object.create(b.prototype,d),n.prototype.name=e,n.prototype.isPositionRotationScale="position"===e||"rotation"===e||"scale"===e,n.prototype.constructor=n,n.prototype.system=o&&o.systems[e],n.prototype.play=T(n.prototype.play),n.prototype.pause=_(n.prototype.pause),l=a.extend(u(n.prototype.schema,n.prototype.name)),!(c=h(n.prototype.schema)))for(r in n.prototype.schemaChangeKeys=[],l)l[r].schemaChange&&n.prototype.schemaChangeKeys.push(r);return y[e]=a.objectPool.createPool(),s[e]={Component:n,dependencies:n.prototype.dependencies,isSingleProp:c,multiple:n.prototype.multiple,name:e,parse:n.prototype.parse,parseAttrValueForCache:n.prototype.parseAttrValueForCache,schema:l,stringify:n.prototype.stringify,type:n.prototype.type},n}},{"../utils/":205,"./scene/scenes":138,"./schema":140,"./system":142}],132:[function(e,t,n){var r=e("./schema").process,i=t.exports.geometries={},o=t.exports.geometryNames=[],a=e("../lib/three"),s=t.exports.Geometry=function(){};s.prototype={schema:{},init:function(e){return this.geometry=new a.BufferGeometry,this.geometry},update:function(e){}},t.exports.registerGeometry=function(e,t){var n,a={};if(Object.keys(t).forEach((function(e){a[e]={value:t[e],writable:!0}})),i[e])throw new Error("The geometry `"+e+"` has been already registered");return(n=function(){s.call(this)}).prototype=Object.create(s.prototype,a),n.prototype.name=e,n.prototype.constructor=n,i[e]={Geometry:n,schema:r(n.prototype.schema)},o.push(e),n}},{"../lib/three":179,"./schema":140}],133:[function(e,t,n){var r=e("../utils/coordinates"),i=e("debug"),o=i("core:propertyTypes:warn"),a=i("core:propertyTypes:warn"),s=t.exports.propertyTypes={},l=/[,> .[\]:]/,c=/\url\((.+)\)/;function u(e,t,n,r){"type"in s?o("Property type "+e+" is already registered."):s[e]={default:t,parse:n||f,stringify:r||m}}function h(e){return Array.isArray(e)?e:e&&"string"===typeof e?e.split(",").map(t):[];function t(e){return e.trim()}}function d(e){return e.join(", ")}function p(e){var t,n;return"string"!==typeof e?e:(n=e.match(c))?n[1]:"#"===e.charAt(0)?(t=document.getElementById(e.substring(1)))?"CANVAS"===t.tagName||"VIDEO"===t.tagName||"IMG"===t.tagName?t:t.getAttribute("src"):void a('"'+e+'" asset not found.'):e}function f(e){return e}function m(e){return null===e?"null":e.toString()}function v(e){return"false"!==e&&!1!==e}function g(e){return parseInt(e,10)}function y(e){return parseFloat(e,10)}function b(e){return e?"string"!==typeof e?e:"#"!==e[0]||l.test(e)?document.querySelector(e):document.getElementById(e.substring(1)):null}function A(e){return e?"string"!==typeof e?e:Array.prototype.slice.call(document.querySelectorAll(e),0):null}function w(e){return e.getAttribute?"#"+e.getAttribute("id"):m(e)}function x(e){return e instanceof Array?e.map((function(e){return"#"+e.getAttribute("id")})).join(", "):m(e)}function E(e){return a("`src` property type is deprecated. Use `asset` instead."),p(e)}function M(e){return r.parse(e,this.default)}function _(e,t){return("audio"!==e||"string"===typeof t)&&!("array"===e&&!Array.isArray(t))&&("asset"!==e||"string"===typeof t)&&("boolean"!==e||"boolean"===typeof t)&&("color"!==e||"string"===typeof t)&&("int"!==e||"number"===typeof t)&&("number"!==e||"number"===typeof t)&&("map"!==e||"string"===typeof t)&&("model"!==e||"string"===typeof t)&&("selector"!==e||"string"===typeof t||null===t)&&("selectorAll"!==e||"string"===typeof t||null===t)&&("src"!==e||"string"===typeof t)&&("string"!==e||"string"===typeof t)&&("time"!==e||"number"===typeof t)&&("vec2"===e?T(t,2):"vec3"===e?T(t,3):"vec4"!==e||T(t,4))}function T(e,t){if(null===e)return!0;if("object"!==typeof e)return!1;if(Object.keys(e).length!==t)return!1;var n=e.x,r=e.y,i=e.z,o=e.w;return"number"===typeof n&&"number"===typeof r&&!(t>2&&"number"!==typeof i)&&!(t>3&&"number"!==typeof o)}u("audio","",p),u("array",[],h,d),u("asset","",p),u("boolean",!1,v),u("color","#FFF",f,m),u("int",0,g),u("number",0,y),u("map","",p),u("model","",p),u("selector",null,b,w),u("selectorAll",null,A,x),u("src","",E),u("string","",f,m),u("time",0,g),u("vec2",{x:0,y:0},M,r.stringify),u("vec3",{x:0,y:0,z:0},M,r.stringify),u("vec4",{x:0,y:0,z:0,w:1},M,r.stringify),t.exports.registerPropertyType=u,t.exports.isValidDefaultValue=_,t.exports.isValidDefaultCoordinate=T},{"../utils/coordinates":200,debug:8}],134:[function(e,t,n){var r=e("./metaTags").inject,i=e("./wakelock"),o=e("./loadingScreen"),a=e("../a-register-element"),s=e("./scenes"),l=e("../system").systems,c=e("../../lib/three"),u=e("../../utils/"),h=e("../a-entity"),d=e("../a-node"),p=e("./postMessage"),f=u.bind,m=u.device.isIOS(),v=u.device.isMobile(),g=u.device.isWebXRAvailable,y=a.registerElement,b=u.debug("core:a-scene:warn");function A(e,t,n,r){return e.parentElement?t?{height:e.parentElement.offsetHeight,width:e.parentElement.offsetWidth}:w(n,r):{height:0,width:0}}function w(e,t){var n,r,i=window.devicePixelRatio;return r={height:document.body.offsetHeight,width:document.body.offsetWidth},!e||t||-1===e.width&&-1===e.height||r.width*i<e.width&&r.height*i<e.height||(n=r.width/r.height,r.width*i>e.width&&-1!==e.width&&(r.width=Math.round(e.width/i),r.height=Math.round(e.width/n/i)),r.height*i>e.height&&-1!==e.height&&(r.height=Math.round(e.height/i),r.width=Math.round(e.height*n/i))),r}function x(e){(e.requestFullscreen||e.webkitRequestFullscreen||e.mozRequestFullScreen||e.msRequestFullscreen).apply(e,[{navigationUI:"hide"}])}function E(){(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement)&&(document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen())}function M(e){var t;function n(){document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||e.exitVR(),document.activeElement.blur(),document.body.focus()}(t=document.createElement("canvas")).classList.add("a-canvas"),t.dataset.aframeCanvas=!0,e.appendChild(t),document.addEventListener("fullscreenchange",n),document.addEventListener("mozfullscreenchange",n),document.addEventListener("webkitfullscreenchange",n),document.addEventListener("MSFullscreenChange",n),t.addEventListener("touchmove",(function(e){e.preventDefault()})),e.canvas=t,e.emit("render-target-loaded",{target:t}),setTimeout(f(e.resize,e),0)}m&&e("../../utils/ios-orientationchange-blank-bug"),t.exports.AScene=y("a-scene",{prototype:Object.create(h.prototype,{createdCallback:{value:function(){this.clock=new c.Clock,this.isIOS=m,this.isMobile=v,this.hasWebXR=g,this.isAR=!1,this.isScene=!0,this.object3D=new c.Scene;var e=this;this.object3D.onAfterRender=function(t,n,r){e.isPlaying&&e.tock(e.time,e.delta,r)},this.resize=f(this.resize,this),this.render=f(this.render,this),this.systems={},this.systemNames=[],this.time=this.delta=0,this.behaviors={tick:[],tock:[]},this.hasLoaded=!1,this.isPlaying=!1,this.originalHTML=this.innerHTML,this.setAttribute("inspector",""),this.setAttribute("keyboard-shortcuts",""),this.setAttribute("screenshot",""),this.setAttribute("vr-mode-ui",""),this.setAttribute("device-orientation-permission-ui","")}},addFullScreenStyles:{value:function(){document.documentElement.classList.add("a-fullscreen")}},removeFullScreenStyles:{value:function(){document.documentElement.classList.remove("a-fullscreen")}},attachedCallback:{value:function(){var e=this,t=this.hasAttribute("embedded");M(this),this.setupRenderer(),o.setup(this,A),this.resize(),t||this.addFullScreenStyles(),p(this),r(this),i(this),this.onVRPresentChangeBound=f(this.onVRPresentChange,this),window.addEventListener("vrdisplaypresentchange",this.onVRPresentChangeBound),this.enterVRBound=function(){e.enterVR()},this.exitVRBound=function(){e.exitVR()},this.exitVRTrueBound=function(){e.exitVR(!0)},this.pointerRestrictedBound=function(){e.pointerRestricted()},this.pointerUnrestrictedBound=function(){e.pointerUnrestricted()},g||(window.addEventListener("vrdisplaydeactivate",this.exitVRBound),window.addEventListener("vrdisplaydisconnect",this.exitVRTrueBound),window.addEventListener("vrdisplaypointerrestricted",this.pointerRestrictedBound),window.addEventListener("vrdisplaypointerunrestricted",this.pointerUnrestrictedBound)),window.addEventListener("sessionend",this.resize),this.addEventListener("cameraready",(function(){e.attachedCallbackPostCamera()})),this.initSystems(),this.hasWebXR&&navigator.xr&&navigator.xr.addEventListener&&navigator.xr.addEventListener("sessiongranted",(function(){e.enterVR()}))}},attachedCallbackPostCamera:{value:function(){var e,t=this;window.addEventListener("load",e),window.addEventListener("resize",(function(){t.isIOS?setTimeout(t.resize,100):t.resize()})),this.play(),s.push(this)},writable:window.debug},initSystems:{value:function(){var e;for(e in this.initSystem("camera"),l)"camera"!==e&&this.initSystem(e)}},initSystem:{value:function(e){this.systems[e]||(this.systems[e]=new l[e](this),this.systemNames.push(e))}},detachedCallback:{value:function(){var e=s.indexOf(this);s.splice(e,1),window.removeEventListener("vrdisplaypresentchange",this.onVRPresentChangeBound),window.removeEventListener("vrdisplayactivate",this.enterVRBound),window.removeEventListener("vrdisplaydeactivate",this.exitVRBound),window.removeEventListener("vrdisplayconnect",this.enterVRBound),window.removeEventListener("vrdisplaydisconnect",this.exitVRTrueBound),window.removeEventListener("vrdisplaypointerrestricted",this.pointerRestrictedBound),window.removeEventListener("vrdisplaypointerunrestricted",this.pointerUnrestrictedBound),window.removeEventListener("sessionend",this.resize),this.renderer.xr.dispose()}},addBehavior:{value:function(e){var t,n,r=this.behaviors;for(n in r)e[n]&&-1===(t=this.behaviors[n]).indexOf(e)&&t.push(e)}},getPointerLockElement:{value:function(){return document.pointerLockElement},writable:window.debug},checkHeadsetConnected:{value:u.device.checkHeadsetConnected,writable:window.debug},enterAR:{value:function(){var e;if(!this.hasWebXR)throw e="Failed to enter AR mode, WebXR not supported.",new Error(e);if(!u.device.checkARSupport())throw e="Failed to enter AR, WebXR immersive-ar mode not supported in your browser or device.",new Error(e);return this.enterVR(!0)}},enterVR:{value:function(e){var t,n,r=this,i=r.renderer.xr;if(this.is("vr-mode"))return Promise.resolve("Already in VR.");if(this.checkHeadsetConnected()||this.isMobile){if(i.enabled=!0,this.hasWebXR){this.xrSession&&this.xrSession.removeEventListener("end",this.exitVRBound);var o=this.sceneEl.systems.webxr.sessionReferenceSpaceType;i.setReferenceSpaceType(o);var a=e?"immersive-ar":"immersive-vr";return n=this.sceneEl.systems.webxr.sessionConfiguration,new Promise((function(e,t){navigator.xr.requestSession(a,n).then((function(t){r.xrSession=t,i.layersEnabled=-1!==n.requiredFeatures.indexOf("layers"),i.setSession(t),t.addEventListener("end",r.exitVRBound),c(e)}),(function(e){throw new Error("Failed to enter "+("immersive-ar"===a?"AR":"VR")+" mode (`requestSession`) "+e)}))}))}if(t=u.device.getVRDisplay(),i.setDevice(t),t.isPresenting&&!window.hasNativeWebVRImplementation)return c(),Promise.resolve();var s=this.getAttribute("renderer"),l={highRefreshRate:s.highRefreshRate,foveationLevel:s.foveationLevel};return t.requestPresent([{source:this.canvas,attributes:l}]).then(c,h)}return c(),Promise.resolve();function c(t){var n;window.hasNativeWebVRImplementation&&!window.hasNativeWebXRImplementation&&(n=new CustomEvent("vrdisplaypresentchange",{detail:{display:u.device.getVRDisplay()}}),window.dispatchEvent(n)),e?r.addState("ar-mode"):r.addState("vr-mode"),r.emit("enter-vr",{target:r}),!g&&r.isMobile&&screen.orientation&&screen.orientation.lock&&screen.orientation.lock("landscape"),r.addFullScreenStyles(),r.isMobile||r.checkHeadsetConnected()||x(r.canvas),r.renderer.setAnimationLoop(r.render),r.resize(),t&&t()}function h(e){throw r.removeState("vr-mode"),e&&e.message?new Error("Failed to enter VR mode (`requestPresent`): "+e.message):new Error("Failed to enter VR mode (`requestPresent`).")}},writable:!0},exitVR:{value:function(){var e,t=this,n=this.renderer.xr;if(!this.is("vr-mode")&&!this.is("ar-mode"))return Promise.resolve("Not in immersive mode.");if(this.checkHeadsetConnected()||this.isMobile){if(n.enabled=!1,e=u.device.getVRDisplay(),this.hasWebXR)this.xrSession.removeEventListener("end",this.exitVRBound),this.xrSession.end().then((function(){}),(function(){})),this.xrSession=void 0,n.setSession(null);else if(e.isPresenting)return e.exitPresent().then(r,i)}else E();return r(),Promise.resolve();function r(){t.removeState("vr-mode"),t.removeState("ar-mode"),t.isMobile&&screen.orientation&&screen.orientation.unlock&&screen.orientation.unlock(),t.hasAttribute("embedded")&&t.removeFullScreenStyles(),t.resize(),t.isIOS&&u.forceCanvasResizeSafariMobile(t.canvas),t.renderer.setPixelRatio(window.devicePixelRatio),t.emit("exit-vr",{target:t})}function i(e){throw e&&e.message?new Error("Failed to exit VR mode (`exitPresent`): "+e.message):new Error("Failed to exit VR mode (`exitPresent`).")}},writable:!0},pointerRestricted:{value:function(){if(this.canvas){var e=this.getPointerLockElement();e&&e!==this.canvas&&document.exitPointerLock&&document.exitPointerLock(),this.canvas.requestPointerLock&&this.canvas.requestPointerLock()}}},pointerUnrestricted:{value:function(){var e=this.getPointerLockElement();e&&e===this.canvas&&document.exitPointerLock&&document.exitPointerLock()}},onVRPresentChange:{value:function(e){var t=e.display||e.detail.display;t&&t.isPresenting?this.enterVR():this.exitVR()}},getAttribute:{value:function(e){var t=this.systems[e];return t?t.data:h.prototype.getAttribute.call(this,e)}},getComputedAttribute:{value:function(e){b("`getComputedAttribute` is deprecated. Use `getAttribute` instead."),this.getAttribute(e)}},getDOMAttribute:{value:function(e){var t=this.systems[e];return t?t.data:h.prototype.getDOMAttribute.call(this,e)}},setAttribute:{value:function(e,t,n){var r=this.systems[e];if(r)return d.prototype.setAttribute.call(this,e,t),void r.updateProperties(t);h.prototype.setAttribute.call(this,e,t,n)}},removeBehavior:{value:function(e){var t,n,r,i=this.behaviors;for(n in i)e[n]&&-1!==(r=(t=this.behaviors[n]).indexOf(e))&&t.splice(r,1)}},resize:{value:function(){var e,t,n=this.camera,r=this.canvas,i=this.renderer.xr.isPresenting;e=this.renderer.xr.enabled&&i,!n||!r||this.is("vr-mode")&&(this.isMobile||e)||(t=A(r,this.getAttribute("embedded")&&!this.is("vr-mode"),this.maxCanvasSize,this.is("vr-mode")),n.aspect=t.width/t.height,n.updateProjectionMatrix(),this.renderer.setSize(t.width,t.height,!1),this.emit("rendererresize",null,!1))},writable:!0},setupRenderer:{value:function(){var e,t,n,r,i=this;r={alpha:!0,antialias:!v,canvas:this.canvas,logarithmicDepthBuffer:!1,powerPreference:"high-performance"},this.maxCanvasSize={height:1920,width:1920},this.hasAttribute("renderer")&&(n=this.getAttribute("renderer"),(t=u.styleParser.parse(n)).precision&&(r.precision=t.precision+"p"),t.antialias&&"auto"!==t.antialias&&(r.antialias="true"===t.antialias),t.logarithmicDepthBuffer&&"auto"!==t.logarithmicDepthBuffer&&(r.logarithmicDepthBuffer="true"===t.logarithmicDepthBuffer),t.alpha&&(r.alpha="true"===t.alpha),this.maxCanvasSize={width:t.maxCanvasWidth?parseInt(t.maxCanvasWidth):this.maxCanvasSize.width,height:t.maxCanvasHeight?parseInt(t.maxCanvasHeight):this.maxCanvasSize.height}),(e=this.renderer=new c.WebGLRenderer(r)).setPixelRatio(window.devicePixelRatio),e.sortObjects=!1,this.camera&&e.xr.setPoseTarget(this.camera.el.object3D),this.addEventListener("camera-set-active",(function(){e.xr.setPoseTarget(i.camera.el.object3D)}))},writable:window.debug},play:{value:function(){var e=this,t=this;this.renderStarted?h.prototype.play.call(this):(this.addEventListener("loaded",(function(){var e,n=this.renderer,r=this.renderer.xr;h.prototype.play.call(this),t.renderStarted||(t.resize(),t.renderer&&(window.performance&&window.performance.mark("render-started"),o.remove(),(e=u.device.getVRDisplay())&&e.isPresenting&&(r.setDevice(e),r.enabled=!0,t.enterVR()),n.setAnimationLoop(this.render),t.renderStarted=!0,t.emit("renderstart")))})),setTimeout((function(){h.prototype.load.call(e)})))}},updateComponent:{value:function(e){e in l||h.prototype.updateComponent.apply(this,arguments)}},tick:{value:function(e,t){var n,r=this.systems;for(n=0;n<this.behaviors.tick.length;n++)this.behaviors.tick[n].el.isPlaying&&this.behaviors.tick[n].tick(e,t);for(n=0;n<this.systemNames.length;n++)r[this.systemNames[n]].tick&&r[this.systemNames[n]].tick(e,t)}},tock:{value:function(e,t,n){var r,i=this.systems;for(r=0;r<this.behaviors.tock.length;r++)this.behaviors.tock[r].el.isPlaying&&this.behaviors.tock[r].tock(e,t,n);for(r=0;r<this.systemNames.length;r++)i[this.systemNames[r]].tock&&i[this.systemNames[r]].tock(e,t,n)}},render:{value:function(e,t){var n=this.renderer;this.frame=t,this.delta=1e3*this.clock.getDelta(),this.time=1e3*this.clock.elapsedTime,this.isPlaying&&this.tick(this.time,this.delta);var r=null;this.is("ar-mode")&&(r=this.object3D.background,this.object3D.background=null),n.render(this.object3D,this.camera),r&&(this.object3D.background=r)},writable:!0}})}),t.exports.setupCanvas=M},{"../../lib/three":179,"../../utils/":205,"../../utils/ios-orientationchange-blank-bug":206,"../a-entity":127,"../a-node":129,"../a-register-element":130,"../system":142,"./loadingScreen":135,"./metaTags":136,"./postMessage":137,"./scenes":138,"./wakelock":139}],135:[function(e,t,n){var r,i,o,a=e("../../utils/").styleParser,s="loading-screen",l="a-loader-title";function c(e){var t=r.hasAttribute("embedded"),n=o(r.canvas,t,r.maxCanvasSize,r.is("vr-mode"));e.aspect=n.width/n.height,e.updateProjectionMatrix(),r.renderer.setSize(n.width,n.height,!1)}function u(){(i=document.createElement("div")).className=l,i.innerHTML=document.title,i.style.display="none",r.appendChild(i)}t.exports.setup=function(e,t){o=t;var n,l,h,d,p,f,m,v,g,y,b=(r=e).hasAttribute(s)?a.parse(r.getAttribute(s)):void 0,A=b&&b.dotsColor||"white",w=b&&b.backgroundColor||"#24CAFF";(void 0===b||"true"===b.enabled||void 0===b.enabled)&&(n=new THREE.Scene,l=new THREE.SphereGeometry(.2,36,18,0,2*Math.PI,0,Math.PI),h=new THREE.MeshBasicMaterial({color:A}),d=new THREE.Mesh(l,h),p=d.clone(),f=d.clone(),m=new THREE.PerspectiveCamera(80,window.innerWidth/window.innerHeight,5e-4,1e4),v=new THREE.Clock,g=0,y=function(){r.renderer.render(n,m),g=v.getElapsedTime()%4,d.visible=g>=1,p.visible=g>=2,f.visible=g>=3},n.background=new THREE.Color(w),n.add(m),d.position.set(-1,0,-15),p.position.set(0,0,-15),f.position.set(1,0,-15),m.add(d),m.add(p),m.add(f),u(),setTimeout((function(){r.hasLoaded||(c(m),i.style.display="block",window.addEventListener("resize",(function(){c(m)})),r.renderer.setAnimationLoop(y))}),200))},t.exports.remove=function(){window.removeEventListener("resize",c),i&&(i.style.display="none")}},{"../../utils/":205}],136:[function(e,t,n){var r=e("../../constants/"),i=e("../../utils").extend,o=t.exports.MOBILE_HEAD_TAGS=[s({name:"viewport",content:"width=device-width,initial-scale=1,maximum-scale=1,shrink-to-fit=no,user-scalable=no,minimal-ui,viewport-fit=cover"}),s({name:"mobile-web-app-capable",content:"yes"}),s({name:"theme-color",content:"black"})],a=[s({name:"apple-mobile-web-app-capable",content:"yes"}),s({name:"apple-mobile-web-app-status-bar-style",content:"black"}),l({rel:"apple-touch-icon",href:"https://aframe.io/images/aframe-logo-152.png"})];function s(e){return{tagName:"meta",attributes:e,exists:function(){return document.querySelector('meta[name="'+e.name+'"]')}}}function l(e){return{tagName:"link",attributes:e,exists:function(){return document.querySelector('link[rel="'+e.rel+'"]')}}}function c(e){if(e&&e.tagName){var t=document.createElement(e.tagName);return t.setAttribute(r.AFRAME_INJECTED,""),i(t,e.attributes)}}t.exports.inject=function(e){var t,n=document.head,r=n.querySelector("script"),i=[];return o.forEach(s),e.isIOS&&a.forEach(s),i;function s(e){e&&!e.exists()&&(t=c(e))&&(r?r.parentNode.insertBefore(t,r):n.appendChild(t),i.push(t))}}},{"../../constants/":123,"../../utils":205}],137:[function(e,t,n){var r=e("../../utils/bind"),i=e("../../utils/").isIframed;function o(e){var t=this;if(e.data)switch(e.data.type){case"vr":switch(e.data.data){case"enter":t.enterVR();break;case"exit":t.exitVR()}}}t.exports=function(e){i()&&window.addEventListener("message",r(o,e))}},{"../../utils/":205,"../../utils/bind":199}],138:[function(e,t,n){t.exports=[]},{}],139:[function(e,t,n){var r=e("../../../vendor/wakelock/wakelock");t.exports=function(e){if(e.isMobile){var t=e.wakelock=new r;e.addEventListener("enter-vr",(function(){t.request()})),e.addEventListener("exit-vr",(function(){t.release()}))}}},{"../../../vendor/wakelock/wakelock":220}],140:[function(e,t,n){var r=e("../utils/"),i=e("./propertyTypes"),o=r.debug,a=i.isValidDefaultValue,s=i.propertyTypes,l=o("core:schema:warn");function c(e){return"type"in e?"string"===typeof e.type:"default"in e}function u(e,t){var n,r,i=e.default,o=e.type;return e.type?"bool"===e.type?o="boolean":"float"===e.type&&(o="number"):o=void 0===i||"boolean"!==typeof i&&"number"!==typeof i?Array.isArray(i)?"array":"string":typeof i,(r=s[o])||l("Unknown property type for component `"+t+"`: "+o),n=!!e.parse,e.parse=e.parse||r.parse,e.stringify=e.stringify||r.stringify,e.type=o,"default"in e?n||a(o,i)||l("Default value `"+i+"` does not match type `"+o+"` in component `"+t+"`"):e.default=r.default,e}function h(e,t){return void 0!==e&&null!==e&&""!==e||(e=t.default,Array.isArray(e)&&(e=e.slice())),t.parse(e,t.default)}function d(e,t){return"object"!==typeof e?e:t&&null!==e?t.stringify(e):JSON.stringify(e)}t.exports.isSingleProperty=c,t.exports.process=function(e,t){var n;if(c(e))return u(e,t);for(n in e)e[n]=u(e[n],t);return e},t.exports.processPropertyDefinition=u,t.exports.parseProperties=function(){var e=[];return function(t,n,r,i,o){var a,s,c,u;for(s in e.length=0,r?t:n)r&&void 0===t[s]||e.push(s);if(null===t||"object"!==typeof t)return t;for(s in t)void 0===t[s]||n[s]||o||l("Unknown property `"+s+"` for component/system `"+i+"`.");for(a=0;a<e.length;a++){if(c=n[s=e[a]],u=t[s],!n[s])return;t[s]=h(u,c)}return t}}(),t.exports.parseProperty=h,t.exports.stringifyProperties=function(e,t){var n,r,i,o,a={};for(n in e)r=t[n],"object"===typeof(o=i=e[n])&&(o=d(i,r),r||l("Unknown component property: "+n)),a[n]=o;return a},t.exports.stringifyProperty=d},{"../utils/":205,"./propertyTypes":133}],141:[function(e,t,n){var r=e("./schema").process,i=t.exports.shaders={},o=t.exports.shaderNames=[],a=e("../lib/three"),s=e("../utils"),l={array:"v3",color:"v3",int:"i",number:"f",map:"t",time:"f",vec2:"v2",vec3:"v3",vec4:"v4"},c=t.exports.Shader=function(){};c.prototype={schema:{},vertexShader:"void main() {gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);}",fragmentShader:"void main() {gl_FragColor = vec4(1.0, 0.0, 1.0, 1.0);}",init:function(e){return this.attributes=this.initVariables(e,"attribute"),this.uniforms=this.initVariables(e,"uniform"),this.material=new(this.raw?a.RawShaderMaterial:a.ShaderMaterial)({uniforms:this.uniforms,vertexShader:this.vertexShader,fragmentShader:this.fragmentShader}),this.material},initVariables:function(e,t){var n,r,i=this.schema,o={};for(n in i)i[n].is===t&&(r=l[i[n].type],o[n]={type:r,value:void 0});return o},update:function(e){this.updateVariables(e,"attribute"),this.updateVariables(e,"uniform")},updateVariables:function(e,t){var n,r,i,o=this.schema;for(n in i="uniform"===t?this.uniforms:this.attributes,e)if(o[n]&&o[n].is===t)if("map"!==o[n].type)i[n].value=this.parseValue(o[n].type,e[n]),i[n].needsUpdate=!0;else{if(!i[n]||i[n].value===e[n])continue;r="_texture_"+n,this.setMapOnTextureLoad(i,n,r),s.material.updateMapMaterialFromData(r,n,this,e)}},parseValue:function(e,t){var n;switch(e){case"vec2":return new a.Vector2(t.x,t.y);case"vec3":return new a.Vector3(t.x,t.y,t.z);case"vec4":return new a.Vector4(t.x,t.y,t.z,t.w);case"color":return n=new a.Color(t),new a.Vector3(n.r,n.g,n.b);case"map":return a.ImageUtils.loadTexture(t);default:return t}},setMapOnTextureLoad:function(e,t,n){var r=this;this.el.addEventListener("materialtextureloaded",(function(){e[t].value=r.material[n],e[t].needsUpdate=!0}))}},t.exports.registerShader=function(e,t){var n,a={};if(Object.keys(t).forEach((function(e){a[e]={value:t[e],writable:!0}})),i[e])throw new Error("The shader "+e+" has been already registered");return(n=function(){c.call(this)}).prototype=Object.create(c.prototype,a),n.prototype.name=e,n.prototype.constructor=n,i[e]={Shader:n,schema:r(n.prototype.schema)},o.push(e),n}},{"../lib/three":179,"../utils":205,"./schema":140}],142:[function(e,t,n){var r=e("./component"),i=e("./schema"),o=e("../utils/"),a=i.parseProperties,s=i.parseProperty,l=i.process,c=i.isSingleProperty,u=o.styleParser,h=t.exports.systems={},d=t.exports.System=function(e){var t=r&&r.components[this.name];this.el=e,this.sceneEl=e,t&&(t.Component.prototype.system=this),this.buildData(),this.init(),this.update({})};d.prototype={schema:{},init:function(){},update:function(e){},updateProperties:function(e){var t=this.data;Object.keys(i).length&&(this.buildData(e),this.update(t))},buildData:function(e){var t=this.schema;Object.keys(t).length&&(e=e||window.HTMLElement.prototype.getAttribute.call(this.sceneEl,this.name),c(t)?this.data=s(e,t):this.data=a(u.parse(e)||{},t))},tick:void 0,tock:void 0,play:function(){},pause:function(){}},t.exports.registerSystem=function(e,t){var n,r,i={},a=o.findAllScenes(document);if(Object.keys(t).forEach((function(e){i[e]={value:t[e],writable:!0}})),h[e])throw new Error("The system `"+e+"` has been already registered. Check that you are not loading two versions of the same system or two different systems of the same name.");for((r=function(e){d.call(this,e)}).prototype=Object.create(d.prototype,i),r.prototype.name=e,r.prototype.constructor=r,r.prototype.schema=o.extend(l(r.prototype.schema)),h[e]=r,n=0;n<a.length;n++)a[n].initSystem(e)}},{"../utils/":205,"./component":131,"./schema":140}],143:[function(e,t,n){e("./pivot")},{"./pivot":144}],144:[function(e,t,n){var r=e("../../core/component").registerComponent,i=e("../../lib/three"),o=new i.Vector3,a=new i.Vector3;r("pivot",{dependencies:["position"],schema:{type:"vec3"},init:function(){var e=this.data,t=this.el,n=t.object3D.parent,r=t.object3D,s=new i.Group;o.copy(r.position),a.copy(r.rotation),n.remove(r),s.add(r),n.add(s),t.object3D=s,r.position.set(-1*e.x,-1*e.y,-1*e.z),s.position.set(e.x+o.x,e.y+o.y,e.z+o.z),s.rotation.copy(r.rotation),r.rotation.set(0,0,0)}})},{"../../core/component":131,"../../lib/three":179}],145:[function(e,t,n){var r=e("../../core/component").components,i=e("../../core/shader").shaders,o=e("../../utils/"),a={};function s(e){var t=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();"fog"===e&&(t="material-fog"),"visible"===e&&(t="material-visible"),a[t]="material."+e}Object.keys(r.material.schema).forEach(s),Object.keys(i.standard.schema).forEach(s),t.exports=function(){return{defaultComponents:{material:{}},mappings:o.extend({},a)}}},{"../../core/component":131,"../../core/shader":141,"../../utils/":205}],146:[function(e,t,n){e("./primitives/a-camera"),e("./primitives/a-cursor"),e("./primitives/a-curvedimage"),e("./primitives/a-gltf-model"),e("./primitives/a-image"),e("./primitives/a-light"),e("./primitives/a-link"),e("./primitives/a-obj-model"),e("./primitives/a-sky"),e("./primitives/a-sound"),e("./primitives/a-text"),e("./primitives/a-video"),e("./primitives/a-videosphere"),e("./primitives/meshPrimitives")},{"./primitives/a-camera":148,"./primitives/a-cursor":149,"./primitives/a-curvedimage":150,"./primitives/a-gltf-model":151,"./primitives/a-image":152,"./primitives/a-light":153,"./primitives/a-link":154,"./primitives/a-obj-model":155,"./primitives/a-sky":156,"./primitives/a-sound":157,"./primitives/a-text":158,"./primitives/a-video":159,"./primitives/a-videosphere":160,"./primitives/meshPrimitives":161}],147:[function(e,t,n){var r=e("../../core/a-entity"),i=e("../../core/component").components,o=e("../../core/a-register-element").registerElement,a=e("../../utils/"),s=a.debug,l=a.entity.setComponentProperty,c=s("extras:primitives:debug"),u=s("extras:primitives:warn"),h=t.exports.primitives={};function d(e,t){var n=i[e].schema;Object.keys(n).map((function(n){var r=n.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();void 0!==t[r]&&(r=e+"-"+n),t[r]=e+"."+n}))}function p(e,n,r){r=r||{},Object.keys(n).map((function(e){d(e,r)})),t.exports.registerPrimitive(e,a.extendDeep({},null,{defaultComponents:n,mappings:r}))}t.exports.registerPrimitive=function(e,t){e=e.toLowerCase(),c("Registering <%s>",e),t.defaultAttributes&&u("The 'defaultAttributes' object is deprecated. Use 'defaultComponents' instead.");var n=o(e,{prototype:Object.create(r.prototype,{defaultComponentsFromPrimitive:{value:t.defaultComponents||t.defaultAttributes||{}},deprecated:{value:t.deprecated||null},deprecatedMappings:{value:t.deprecatedMappings||{}},mappings:{value:t.mappings||{}},createdCallback:{value:function(){t.deprecated&&console.warn(t.deprecated),this.resolveMappingCollisions()}},resolveMappingCollisions:{value:function(){var e=this.mappings,t=this;Object.keys(e).forEach((function(n){var r;n!==n.toLowerCase()&&u("Mapping keys should be specified in lower case. The mapping key "+n+" may not be recognized"),i[n]&&(r=e[n].replace(".","-"),e[r]=e[n],delete e[n],console.warn("The primitive "+t.tagName.toLowerCase()+" has a mapping collision. The attribute "+n+" has the same name as a registered component and has been renamed to "+r))}))}},getExtraComponents:{value:function(){var e,t,n,r,i,o,s=this;for(t=a.clone(this.defaultComponentsFromPrimitive),(i=this.getAttribute("mixin"))&&(i=i.trim().split(" ")).forEach((function(e){var n=s.sceneEl.querySelector("#"+e).componentCache;Object.keys(n).forEach((function(e){t[e]=l(t[e],n[e])}))})),n=0;n<this.attributes.length;n++)e=this.attributes[n],(r=this.mappings[e.name])&&((o=a.entity.getComponentPropertyPath(r)).constructor===Array?(t[o[0]]=t[o[0]]||{},t[o[0]][o[1]]=e.value.trim()):t[o]=e.value.trim());return t;function l(e,t){return c(e)?u(t):c(t)?u(e):h(e)&&h(t)?a.extendDeep(e,t):u(t)}function c(e){return"undefined"===typeof e}function u(e){return h(e)?a.extendDeep({},e):e}function h(e){return null!==e&&e.constructor===Object}}},attributeChangedCallback:{value:function(e,t,n){var r=this.mappings[e];e in this.deprecatedMappings&&console.warn(this.deprecatedMappings[e]),e&&r&&l(this,r,n)}}})});return h[e]=n,n},t.exports.definePrimitive=p},{"../../core/a-entity":127,"../../core/a-register-element":130,"../../core/component":131,"../../utils/":205}],148:[function(e,t,n){(0,e("../primitives").registerPrimitive)("a-camera",{defaultComponents:{camera:{},"look-controls":{},"wasd-controls":{},position:{x:0,y:1.6,z:0}},mappings:{active:"camera.active",far:"camera.far",fov:"camera.fov","look-controls-enabled":"look-controls.enabled",near:"camera.near","pointer-lock-enabled":"look-controls.pointerLockEnabled","wasd-controls-enabled":"wasd-controls.enabled","reverse-mouse-drag":"look-controls.reverseMouseDrag",zoom:"camera.zoom"}})},{"../primitives":147}],149:[function(e,t,n){var r=e("../getMeshMixin");(0,e("../primitives").registerPrimitive)("a-cursor",e("../../../utils/").extendDeep({},r(),{defaultComponents:{cursor:{},geometry:{primitive:"ring",radiusOuter:.016,radiusInner:.01,segmentsTheta:32},material:{color:"#000",shader:"flat",opacity:.8},position:{x:0,y:0,z:-1}},mappings:{far:"raycaster.far",fuse:"cursor.fuse","fuse-timeout":"cursor.fuseTimeout",interval:"raycaster.interval",objects:"raycaster.objects"}}))},{"../../../utils/":205,"../getMeshMixin":145,"../primitives":147}],150:[function(e,t,n){var r=e("../getMeshMixin");(0,e("../primitives").registerPrimitive)("a-curvedimage",e("../../../utils/").extendDeep({},r(),{defaultComponents:{geometry:{height:1,primitive:"cylinder",radius:2,segmentsRadial:48,thetaLength:270,openEnded:!0,thetaStart:0},material:{color:"#FFF",shader:"flat",side:"double",transparent:!0,repeat:"-1 1"}},mappings:{height:"geometry.height","open-ended":"geometry.openEnded",radius:"geometry.radius",segments:"geometry.segmentsRadial",start:"geometry.thetaStart","theta-length":"geometry.thetaLength","theta-start":"geometry.thetaStart",width:"geometry.thetaLength"}}))},{"../../../utils/":205,"../getMeshMixin":145,"../primitives":147}],151:[function(e,t,n){(0,e("../primitives").registerPrimitive)("a-gltf-model",{mappings:{src:"gltf-model"}})},{"../primitives":147}],152:[function(e,t,n){var r=e("../getMeshMixin");(0,e("../primitives").registerPrimitive)("a-image",e("../../../utils/").extendDeep({},r(),{defaultComponents:{geometry:{primitive:"plane"},material:{color:"#FFF",shader:"flat",side:"double",transparent:!0}},mappings:{height:"geometry.height",width:"geometry.width"}}))},{"../../../utils/":205,"../getMeshMixin":145,"../primitives":147}],153:[function(e,t,n){(0,e("../primitives").registerPrimitive)("a-light",{defaultComponents:{light:{}},mappings:{angle:"light.angle",color:"light.color","ground-color":"light.groundColor",decay:"light.decay",distance:"light.distance",intensity:"light.intensity",penumbra:"light.penumbra",type:"light.type",target:"light.target"}})},{"../primitives":147}],154:[function(e,t,n){(0,e("../primitives").registerPrimitive)("a-link",{defaultComponents:{link:{visualAspectEnabled:!0}},mappings:{href:"link.href",image:"link.image",title:"link.title"}})},{"../primitives":147}],155:[function(e,t,n){var r=e("../getMeshMixin")();(0,e("../primitives").registerPrimitive)("a-obj-model",e("../../../utils/").extendDeep({},r,{defaultComponents:{"obj-model":{}},mappings:{src:"obj-model.obj",mtl:"obj-model.mtl"}}))},{"../../../utils/":205,"../getMeshMixin":145,"../primitives":147}],156:[function(e,t,n){var r=e("../getMeshMixin"),i=e("../primitives").registerPrimitive,o=e("../../../utils/"),a=e("./meshPrimitives");i("a-sky",o.extendDeep({},r(),{defaultComponents:{geometry:{primitive:"sphere",radius:500,segmentsWidth:64,segmentsHeight:32},material:{color:"#FFF",side:"back",shader:"flat",npot:!0},scale:"-1 1 1"},mappings:o.extendDeep({},a["a-sphere"].prototype.mappings)}))},{"../../../utils/":205,"../getMeshMixin":145,"../primitives":147,"./meshPrimitives":161}],157:[function(e,t,n){(0,e("../primitives").registerPrimitive)("a-sound",{defaultComponents:{sound:{}},mappings:{src:"sound.src",on:"sound.on",autoplay:"sound.autoplay",loop:"sound.loop",volume:"sound.volume"}})},{"../primitives":147}],158:[function(e,t,n){(0,e("../primitives").definePrimitive)("a-text",{text:{anchor:"align",width:5}})},{"../primitives":147}],159:[function(e,t,n){var r=e("../getMeshMixin");(0,e("../primitives").registerPrimitive)("a-video",e("../../../utils/").extendDeep({},r(),{defaultComponents:{geometry:{primitive:"plane"},material:{color:"#FFF",shader:"flat",side:"double",transparent:!0}},mappings:{height:"geometry.height",width:"geometry.width"}}))},{"../../../utils/":205,"../getMeshMixin":145,"../primitives":147}],160:[function(e,t,n){var r=e("../getMeshMixin");(0,e("../primitives").registerPrimitive)("a-videosphere",e("../../../utils/").extendDeep({},r(),{defaultComponents:{geometry:{primitive:"sphere",radius:500,segmentsWidth:64,segmentsHeight:32},material:{color:"#FFF",shader:"flat",side:"back",npot:!0},scale:"-1 1 1"},mappings:{radius:"geometry.radius","segments-height":"geometry.segmentsHeight","segments-width":"geometry.segmentsWidth"}}))},{"../../../utils/":205,"../getMeshMixin":145,"../primitives":147}],161:[function(e,t,n){var r=e("../getMeshMixin"),i=e("../../../core/geometry").geometries,o=e("../../../core/geometry").geometryNames,a=e("../primitives").registerPrimitive,s=e("../../../utils/"),l=t.exports={};function c(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}o.forEach((function(e){var t=i[e],n=c(e),o={};Object.keys(t.schema).forEach((function(e){o[c(e)]="geometry."+e}));var u="a-"+n,h=a(u,s.extendDeep({},r(),{defaultComponents:{geometry:{primitive:e}},mappings:o}));l[u]=h}))},{"../../../core/geometry":132,"../../../utils/":205,"../getMeshMixin":145,"../primitives":147}],162:[function(e,t,n){var r=e("../core/geometry").registerGeometry,i=e("../lib/three");r("box",{schema:{depth:{default:1,min:0},height:{default:1,min:0},width:{default:1,min:0},segmentsHeight:{default:1,min:1,max:20,type:"int"},segmentsWidth:{default:1,min:1,max:20,type:"int"},segmentsDepth:{default:1,min:1,max:20,type:"int"}},init:function(e){this.geometry=new i.BoxGeometry(e.width,e.height,e.depth,e.segmentsWidth,e.segmentsHeight,e.segmentsDepth)}})},{"../core/geometry":132,"../lib/three":179}],163:[function(e,t,n){var r=e("../core/geometry").registerGeometry,i=e("../lib/three"),o=i.Math.degToRad;r("circle",{schema:{radius:{default:1,min:0},segments:{default:32,min:3,type:"int"},thetaLength:{default:360,min:0},thetaStart:{default:0}},init:function(e){this.geometry=new i.CircleGeometry(e.radius,e.segments,o(e.thetaStart),o(e.thetaLength))}})},{"../core/geometry":132,"../lib/three":179}],164:[function(e,t,n){var r=e("../core/geometry").registerGeometry,i=e("../lib/three"),o=i.Math.degToRad;r("cone",{schema:{height:{default:1,min:0},openEnded:{default:!1},radiusBottom:{default:1,min:0},radiusTop:{default:.01,min:0},segmentsHeight:{default:18,min:1,type:"int"},segmentsRadial:{default:36,min:3,type:"int"},thetaLength:{default:360,min:0},thetaStart:{default:0}},init:function(e){this.geometry=new i.CylinderGeometry(e.radiusTop,e.radiusBottom,e.height,e.segmentsRadial,e.segmentsHeight,e.openEnded,o(e.thetaStart),o(e.thetaLength))}})},{"../core/geometry":132,"../lib/three":179}],165:[function(e,t,n){var r=e("../core/geometry").registerGeometry,i=e("../lib/three"),o=i.Math.degToRad;r("cylinder",{schema:{height:{default:1,min:0},openEnded:{default:!1},radius:{default:1,min:0},segmentsHeight:{default:18,min:1,type:"int"},segmentsRadial:{default:36,min:3,type:"int"},thetaLength:{default:360,min:0},thetaStart:{default:0}},init:function(e){this.geometry=new i.CylinderGeometry(e.radius,e.radius,e.height,e.segmentsRadial,e.segmentsHeight,e.openEnded,o(e.thetaStart),o(e.thetaLength))}})},{"../core/geometry":132,"../lib/three":179}],166:[function(e,t,n){var r=e("../core/geometry").registerGeometry,i=e("../lib/three");r("dodecahedron",{schema:{detail:{default:0,min:0,max:5,type:"int"},radius:{default:1,min:0}},init:function(e){this.geometry=new i.DodecahedronGeometry(e.radius,e.detail)}})},{"../core/geometry":132,"../lib/three":179}],167:[function(e,t,n){var r=e("../core/geometry").registerGeometry,i=e("../lib/three");r("icosahedron",{schema:{detail:{default:0,min:0,max:5,type:"int"},radius:{default:1,min:0}},init:function(e){this.geometry=new i.IcosahedronGeometry(e.radius,e.detail)}})},{"../core/geometry":132,"../lib/three":179}],168:[function(e,t,n){e("./box.js"),e("./circle.js"),e("./cone.js"),e("./cylinder.js"),e("./dodecahedron.js"),e("./icosahedron.js"),e("./octahedron.js"),e("./plane.js"),e("./ring.js"),e("./sphere.js"),e("./tetrahedron.js"),e("./torus.js"),e("./torusKnot.js"),e("./triangle.js")},{"./box.js":162,"./circle.js":163,"./cone.js":164,"./cylinder.js":165,"./dodecahedron.js":166,"./icosahedron.js":167,"./octahedron.js":169,"./plane.js":170,"./ring.js":171,"./sphere.js":172,"./tetrahedron.js":173,"./torus.js":174,"./torusKnot.js":175,"./triangle.js":176}],169:[function(e,t,n){var r=e("../core/geometry").registerGeometry,i=e("../lib/three");r("octahedron",{schema:{detail:{default:0,min:0,max:5,type:"int"},radius:{default:1,min:0}},init:function(e){this.geometry=new i.OctahedronGeometry(e.radius,e.detail)}})},{"../core/geometry":132,"../lib/three":179}],170:[function(e,t,n){var r=e("../core/geometry").registerGeometry,i=e("../lib/three");r("plane",{schema:{height:{default:1,min:0},width:{default:1,min:0},segmentsHeight:{default:1,min:1,max:20,type:"int"},segmentsWidth:{default:1,min:1,max:20,type:"int"}},init:function(e){this.geometry=new i.PlaneGeometry(e.width,e.height,e.segmentsWidth,e.segmentsHeight)}})},{"../core/geometry":132,"../lib/three":179}],171:[function(e,t,n){var r=e("../core/geometry").registerGeometry,i=e("../lib/three"),o=i.Math.degToRad;r("ring",{schema:{radiusInner:{default:.8,min:0},radiusOuter:{default:1.2,min:0},segmentsPhi:{default:10,min:1,type:"int"},segmentsTheta:{default:32,min:3,type:"int"},thetaLength:{default:360,min:0},thetaStart:{default:0}},init:function(e){this.geometry=new i.RingGeometry(e.radiusInner,e.radiusOuter,e.segmentsTheta,e.segmentsPhi,o(e.thetaStart),o(e.thetaLength))}})},{"../core/geometry":132,"../lib/three":179}],172:[function(e,t,n){var r=e("../core/geometry").registerGeometry,i=e("../lib/three"),o=i.Math.degToRad;r("sphere",{schema:{radius:{default:1,min:0},phiLength:{default:360},phiStart:{default:0,min:0},thetaLength:{default:180,min:0},thetaStart:{default:0},segmentsHeight:{default:18,min:2,type:"int"},segmentsWidth:{default:36,min:3,type:"int"}},init:function(e){this.geometry=new i.SphereGeometry(e.radius,e.segmentsWidth,e.segmentsHeight,o(e.phiStart),o(e.phiLength),o(e.thetaStart),o(e.thetaLength))}})},{"../core/geometry":132,"../lib/three":179}],173:[function(e,t,n){var r=e("../core/geometry").registerGeometry,i=e("../lib/three");r("tetrahedron",{schema:{detail:{default:0,min:0,max:5,type:"int"},radius:{default:1,min:0}},init:function(e){this.geometry=new i.TetrahedronGeometry(e.radius,e.detail)}})},{"../core/geometry":132,"../lib/three":179}],174:[function(e,t,n){var r=e("../core/geometry").registerGeometry,i=e("../lib/three"),o=i.Math.degToRad;r("torus",{schema:{arc:{default:360},radius:{default:1,min:0},radiusTubular:{default:.2,min:0},segmentsRadial:{default:36,min:2,type:"int"},segmentsTubular:{default:32,min:3,type:"int"}},init:function(e){this.geometry=new i.TorusGeometry(e.radius,2*e.radiusTubular,e.segmentsRadial,e.segmentsTubular,o(e.arc))}})},{"../core/geometry":132,"../lib/three":179}],175:[function(e,t,n){var r=e("../core/geometry").registerGeometry,i=e("../lib/three");r("torusKnot",{schema:{p:{default:2,min:1},q:{default:3,min:1},radius:{default:1,min:0},radiusTubular:{default:.2,min:0},segmentsRadial:{default:8,min:3,type:"int"},segmentsTubular:{default:100,min:3,type:"int"}},init:function(e){this.geometry=new i.TorusKnotGeometry(e.radius,2*e.radiusTubular,e.segmentsTubular,e.segmentsRadial,e.p,e.q)}})},{"../core/geometry":132,"../lib/three":179}],176:[function(e,t,n){var r=e("../core/geometry").registerGeometry,i=e("../lib/three"),o=new i.Quaternion,a=new i.Vector3(0,0,1),s=new i.Vector2,l=new i.Vector2,c=new i.Vector2;r("triangle",{schema:{vertexA:{type:"vec3",default:{x:0,y:.5,z:0}},vertexB:{type:"vec3",default:{x:-.5,y:-.5,z:0}},vertexC:{type:"vec3",default:{x:.5,y:-.5,z:0}}},init:function(e){var t,n,r,u,h,d,p,f,m;(r=new i.Triangle).a.set(e.vertexA.x,e.vertexA.y,e.vertexA.z),r.b.set(e.vertexB.x,e.vertexB.y,e.vertexB.z),r.c.set(e.vertexC.x,e.vertexC.y,e.vertexC.z),n=r.getNormal(new i.Vector3),o.setFromUnitVectors(n,a),u=r.a.clone().applyQuaternion(o),h=r.b.clone().applyQuaternion(o),d=r.c.clone().applyQuaternion(o),s.set(Math.min(u.x,h.x,d.x),Math.min(u.y,h.y,d.y)),l.set(Math.max(u.x,h.x,d.x),Math.max(u.y,h.y,d.y)),c.set(0,0).subVectors(l,s),u=(new i.Vector2).subVectors(u,s).divide(c),h=(new i.Vector2).subVectors(h,s).divide(c),d=(new i.Vector2).subVectors(d,s).divide(c),t=this.geometry=new i.BufferGeometry,p=[r.a.x,r.a.y,r.a.z,r.b.x,r.b.y,r.b.z,r.c.x,r.c.y,r.c.z],f=[n.x,n.y,n.z,n.x,n.y,n.z,n.x,n.y,n.z],m=[u.x,u.y,h.x,h.y,d.x,d.y],t.setAttribute("position",new i.Float32BufferAttribute(p,3)),t.setAttribute("normal",new i.Float32BufferAttribute(f,3)),t.setAttribute("uv",new i.Float32BufferAttribute(m,2))}})},{"../core/geometry":132,"../lib/three":179}],177:[function(e,t,n){if(window.Promise=window.Promise||e("promise-polyfill"),window.hasNativeWebVRImplementation=!!window.navigator.getVRDisplays||!!window.navigator.getVRDevices,window.hasNativeWebXRImplementation=void 0!==navigator.xr,!window.hasNativeWebXRImplementation&&!window.hasNativeWebVRImplementation){var r=e("./utils/isIOSOlderThan10")(window.navigator.userAgent)?1/window.devicePixelRatio:1,i=e("webvr-polyfill"),o={BUFFER_SCALE:r,CARDBOARD_UI_DISABLED:!0,ROTATE_INSTRUCTIONS_DISABLED:!0,MOBILE_WAKE_LOCK:!!window.cordova};window.webvrpolyfill=new i(o)}var a=e("./utils/"),s=a.debug;a.isIE11&&(e("custom-event-polyfill"),e("../vendor/starts-with-polyfill"));var l=s("A-Frame:error"),c=s("A-Frame:warn");window.document.currentScript&&window.document.currentScript.parentNode!==window.document.head&&!window.debug&&c("Put the A-Frame <script> tag in the <head> of the HTML *before* the scene to ensure everything for A-Frame is properly registered before they are used from HTML."),window.cordova||"file:"!==window.location.protocol||l("This HTML file is currently being served via the file:// protocol. Assets, textures, and models WILL NOT WORK due to cross-origin policy! Please use a local or hosted server: https://aframe.io/docs/0.5.0/introduction/getting-started.html#using-a-local-server."),e("present"),a.device.isBrowserEnvironment&&(e("./style/aframe.css"),e("./style/rStats.css"));var u=e("./core/scene/a-scene").AScene,h=e("./core/component").components,d=e("./core/component").registerComponent,p=e("./core/geometry").registerGeometry,f=e("./extras/primitives/primitives").registerPrimitive,m=e("./core/shader").registerShader,v=e("./core/system").registerSystem,g=e("./core/shader").shaders,y=e("./core/system").systems,b=window.THREE=e("./lib/three"),A=e("../package");e("./components/index"),e("./geometries/index"),e("./shaders/index"),e("./systems/index");var w=e("./core/a-node"),x=e("./core/a-entity");e("./core/a-assets"),e("./core/a-cubemap"),e("./core/a-mixin"),e("./extras/components/"),e("./extras/primitives/"),console.log("A-Frame Version: 1.2.0 (Date 2021-02-05, Commit #b220fa00)"),console.log("THREE Version (https://github.com/supermedium/three.js):",A.dependencies["super-three"]),console.log("WebVR Polyfill Version:",A.dependencies["webvr-polyfill"]),t.exports=window.AFRAME={AComponent:e("./core/component").Component,AEntity:x,ANode:w,ANIME:e("super-animejs"),AScene:u,components:h,coreComponents:Object.keys(h),geometries:e("./core/geometry").geometries,registerComponent:d,registerElement:e("./core/a-register-element").registerElement,registerGeometry:p,registerPrimitive:f,registerShader:m,registerSystem:v,primitives:{getMeshMixin:e("./extras/primitives/getMeshMixin"),primitives:e("./extras/primitives/primitives").primitives},scenes:e("./core/scene/scenes"),schema:e("./core/schema"),shaders:g,systems:y,THREE:b,utils:a,version:A.version}},{"../package":73,"../vendor/starts-with-polyfill":218,"./components/index":84,"./core/a-assets":125,"./core/a-cubemap":126,"./core/a-entity":127,"./core/a-mixin":128,"./core/a-node":129,"./core/a-register-element":130,"./core/component":131,"./core/geometry":132,"./core/scene/a-scene":134,"./core/scene/scenes":138,"./core/schema":140,"./core/shader":141,"./core/system":142,"./extras/components/":143,"./extras/primitives/":146,"./extras/primitives/getMeshMixin":145,"./extras/primitives/primitives":147,"./geometries/index":168,"./lib/three":179,"./shaders/index":181,"./style/aframe.css":186,"./style/rStats.css":187,"./systems/index":191,"./utils/":205,"./utils/isIOSOlderThan10":208,"custom-event-polyfill":7,present:48,"promise-polyfill":50,"super-animejs":56,"webvr-polyfill":68}],178:[function(e,t,n){window.aframeStats=function(e){var t=null,n=e;function r(){t("te").set(i()),window.performance.getEntriesByName&&t("lt").set(window.performance.getEntriesByName("render-started")[0].startTime.toFixed(0))}function i(){var e=n.querySelectorAll("*");return Array.prototype.slice.call(e).filter((function(e){return e.isEntity})),e.length}function o(){}function a(){}function s(e){t=e}return{update:r,start:o,end:a,attach:s,values:{te:{caption:"Entities"},lt:{caption:"Load Time"}},groups:[{caption:"A-Frame",values:["te","lt"]}],fractions:[]}},"object"===typeof t&&(t.exports={aframeStats:window.aframeStats})},{}],179:[function(e,t,n){(function(n){var r=n.THREE=e("super-three");r.TextureLoader&&(r.TextureLoader.prototype.crossOrigin="anonymous"),r.ImageLoader&&(r.ImageLoader.prototype.crossOrigin="anonymous"),r.Cache&&(r.Cache.enabled=!0),e("../../vendor/DeviceOrientationControls"),e("super-three/examples/js/loaders/DRACOLoader"),e("super-three/examples/js/loaders/GLTFLoader"),e("super-three/examples/js/loaders/OBJLoader"),e("super-three/examples/js/loaders/MTLLoader"),e("super-three/examples/js/utils/BufferGeometryUtils"),r.DRACOLoader.prototype.crossOrigin="anonymous",r.GLTFLoader.prototype.crossOrigin="anonymous",r.MTLLoader.prototype.crossOrigin="anonymous",r.OBJLoader.prototype.crossOrigin="anonymous",t.exports=r}).call(this,"undefined"!==typeof r.g?r.g:"undefined"!==typeof self?self:"undefined"!==typeof window?window:{})},{"../../vendor/DeviceOrientationControls":215,"super-three":57,"super-three/examples/js/loaders/DRACOLoader":58,"super-three/examples/js/loaders/GLTFLoader":59,"super-three/examples/js/loaders/MTLLoader":60,"super-three/examples/js/loaders/OBJLoader":61,"super-three/examples/js/utils/BufferGeometryUtils":62}],180:[function(e,t,n){var r=e("../core/shader").registerShader,i=e("../lib/three"),o=e("../utils/");function a(e,t){return t.color.set(e.color),t.fog=e.fog,t.wireframe=e.wireframe,t.wireframeLinewidth=e.wireframeLinewidth,t}t.exports.Shader=r("flat",{schema:{color:{type:"color"},fog:{default:!0},height:{default:256},offset:{type:"vec2",default:{x:0,y:0}},repeat:{type:"vec2",default:{x:1,y:1}},src:{type:"map"},width:{default:512},wireframe:{default:!1},wireframeLinewidth:{default:2}},init:function(e){this.rendererSystem=this.el.sceneEl.systems.renderer,this.materialData={color:new i.Color},this.textureSrc=null,a(e,this.materialData),this.rendererSystem.applyColorCorrection(this.materialData.color),this.material=new i.MeshBasicMaterial(this.materialData),o.material.updateMap(this,e)},update:function(e){this.updateMaterial(e),o.material.updateMap(this,e)},updateMaterial:function(e){var t;for(t in a(e,this.materialData),this.rendererSystem.applyColorCorrection(this.materialData.color),this.materialData)this.material[t]=this.materialData[t]}})},{"../core/shader":141,"../lib/three":179,"../utils/":205}],181:[function(e,t,n){e("./flat"),e("./standard"),e("./sdf"),e("./msdf"),e("./ios10hls")},{"./flat":180,"./ios10hls":182,"./msdf":183,"./sdf":184,"./standard":185}],182:[function(e,t,n){var r=e("../core/shader").registerShader;t.exports.Shader=r("ios10hls",{schema:{src:{type:"map",is:"uniform"},opacity:{type:"number",is:"uniform",default:1}},vertexShader:["varying vec2 vUV;","void main(void) {"," gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);"," vUV = uv;","}"].join("\n"),fragmentShader:["uniform sampler2D src;","uniform float opacity;","varying vec2 vUV;","void main() {"," vec2 offset = vec2(0, 0);"," vec2 repeat = vec2(1, 1);"," vec4 color = texture2D(src, vec2(vUV.x / repeat.x + offset.x, (1.0 - vUV.y) / repeat.y + offset.y)).bgra;"," gl_FragColor = vec4(color.rgb, opacity);","}"].join("\n")})},{"../core/shader":141}],183:[function(e,t,n){var r=e("../core/shader").registerShader,i=!!document.createElement("canvas").getContext("webgl2"),o=["attribute vec2 uv;","attribute vec3 position;","uniform mat4 projectionMatrix;","uniform mat4 modelViewMatrix;","varying vec2 vUV;","void main(void) {"," gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);"," vUV = uv;","}"].join("\n"),a=["#version 300 es","in vec2 uv;","in vec3 position;","uniform mat4 projectionMatrix;","uniform mat4 modelViewMatrix;","out vec2 vUV;","void main(void) {"," gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);"," vUV = uv;","}"].join("\n"),s=i?a:o,l=["#ifdef GL_OES_standard_derivatives","#extension GL_OES_standard_derivatives: enable","#endif","precision highp float;","uniform bool negate;","uniform float alphaTest;","uniform float opacity;","uniform sampler2D map;","uniform vec3 color;","varying vec2 vUV;","float median(float r, float g, float b) {"," return max(min(r, g), min(max(r, g), b));","}","#define BIG_ENOUGH 0.001","#define MODIFIED_ALPHATEST (0.02 * isBigEnough / BIG_ENOUGH)","void main() {"," vec3 sampleColor = texture2D(map, vUV).rgb;"," if (negate) { sampleColor = 1.0 - sampleColor; }"," float sigDist = median(sampleColor.r, sampleColor.g, sampleColor.b) - 0.5;"," float alpha = clamp(sigDist / fwidth(sigDist) + 0.5, 0.0, 1.0);"," float dscale = 0.353505;"," vec2 duv = dscale * (dFdx(vUV) + dFdy(vUV));"," float isBigEnough = max(abs(duv.x), abs(duv.y));"," // Do modified alpha test."," if (isBigEnough > BIG_ENOUGH) {"," float ratio = BIG_ENOUGH / isBigEnough;"," alpha = ratio * alpha + (1.0 - ratio) * (sigDist + 0.5);"," }"," // Do modified alpha test."," if (alpha < alphaTest * MODIFIED_ALPHATEST) { discard; return; }"," gl_FragColor = vec4(color.xyz, alpha * opacity);","}"].join("\n"),c=["#version 300 es","precision highp float;","uniform bool negate;","uniform float alphaTest;","uniform float opacity;","uniform sampler2D map;","uniform vec3 color;","in vec2 vUV;","out vec4 fragColor;","float median(float r, float g, float b) {"," return max(min(r, g), min(max(r, g), b));","}","#define BIG_ENOUGH 0.001","#define MODIFIED_ALPHATEST (0.02 * isBigEnough / BIG_ENOUGH)","void main() {"," vec3 sampleColor = texture(map, vUV).rgb;"," if (negate) { sampleColor = 1.0 - sampleColor; }"," float sigDist = median(sampleColor.r, sampleColor.g, sampleColor.b) - 0.5;"," float alpha = clamp(sigDist / fwidth(sigDist) + 0.5, 0.0, 1.0);"," float dscale = 0.353505;"," vec2 duv = dscale * (dFdx(vUV) + dFdy(vUV));"," float isBigEnough = max(abs(duv.x), abs(duv.y));"," // Do modified alpha test."," if (isBigEnough > BIG_ENOUGH) {"," float ratio = BIG_ENOUGH / isBigEnough;"," alpha = ratio * alpha + (1.0 - ratio) * (sigDist + 0.5);"," }"," // Do modified alpha test."," if (alpha < alphaTest * MODIFIED_ALPHATEST) { discard; return; }"," fragColor = vec4(color.xyz, alpha * opacity);","}"].join("\n"),u=i?c:l;t.exports.Shader=r("msdf",{schema:{alphaTest:{type:"number",is:"uniform",default:.5},color:{type:"color",is:"uniform",default:"white"},map:{type:"map",is:"uniform"},negate:{type:"boolean",is:"uniform",default:!0},opacity:{type:"number",is:"uniform",default:1}},raw:!0,vertexShader:s,fragmentShader:u})},{"../core/shader":141}],184:[function(e,t,n){var r=e("../core/shader").registerShader;t.exports.Shader=r("sdf",{schema:{alphaTest:{type:"number",is:"uniform",default:.5},color:{type:"color",is:"uniform",default:"white"},map:{type:"map",is:"uniform"},opacity:{type:"number",is:"uniform",default:1}},raw:!0,vertexShader:["#version 300 es","in vec2 uv;","in vec3 position;","uniform mat4 projectionMatrix;","uniform mat4 modelViewMatrix;","out vec2 vUV;","void main(void) {"," gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);"," vUV = uv;","}"].join("\n"),fragmentShader:["#version 300 es","precision highp float;","uniform float alphaTest;","uniform float opacity;","uniform sampler2D map;","uniform vec3 color;","in vec2 vUV;","out vec4 fragColor;","#ifdef GL_OES_standard_derivatives"," float contour(float width, float value) {"," return smoothstep(0.5 - value, 0.5 + value, width);"," }","#else"," float aastep(float value, float afwidth) {"," return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);"," }","#endif","#define BIG_ENOUGH 0.001","#define MODIFIED_ALPHATEST (0.02 * isBigEnough / BIG_ENOUGH)","#define ALL_SMOOTH 0.4","#define ALL_ROUGH 0.02","#define DISCARD_ALPHA (alphaTest / (2.2 - 1.2 * ratio))","void main() {"," #ifdef GL_OES_standard_derivatives"," vec2 uv = vUV;"," vec4 texColor = texture(map, uv);"," float dist = texColor.a;"," float width = fwidth(dist);"," float alpha = contour(dist, width);"," float dscale = 0.353505;"," vec2 duv = dscale * (dFdx(uv) + dFdy(uv));"," float isBigEnough = max(abs(duv.x), abs(duv.y));"," if (isBigEnough > BIG_ENOUGH) {"," float ratio = BIG_ENOUGH / isBigEnough;"," alpha = ratio * alpha + (1.0 - ratio) * dist;"," }"," if (isBigEnough <= BIG_ENOUGH) {"," vec4 box = vec4 (uv - duv, uv + duv);"," alpha = (alpha + 0.5 * ("," contour(texture(map, box.xy).a, width)"," + contour(texture(map, box.zw).a, width)"," + contour(texture(map, box.xw).a, width)"," + contour(texture(map, box.zy).a, width)"," )) / 3.0;"," }"," if (alpha < alphaTest * MODIFIED_ALPHATEST) { discard; return; }"," #else"," vec4 texColor = texture(map, vUV);"," float value = texColor.a;"," float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w));"," float alpha = aastep(value, afwidth);"," float ratio = (gl_FragCoord.w >= ALL_SMOOTH) ? 1.0 : (gl_FragCoord.w < ALL_ROUGH) ? 0.0 : (gl_FragCoord.w - ALL_ROUGH) / (ALL_SMOOTH - ALL_ROUGH);"," if (alpha < alphaTest) { if (ratio >= 1.0) { discard; return; } alpha = 0.0; }"," alpha = alpha * ratio + (1.0 - ratio) * value;"," if (ratio < 1.0 && alpha <= DISCARD_ALPHA) { discard; return; }"," #endif"," fragColor = vec4(color, opacity * alpha);","}"].join("\n")})},{"../core/shader":141}],185:[function(e,t,n){var r=e("../core/shader").registerShader,i=e("../lib/three"),o=e("../utils/"),a=new i.CubeTextureLoader,s={};function l(e,t){return t.color.set(e.color),t.emissive.set(e.emissive),t.emissiveIntensity=e.emissiveIntensity,t.fog=e.fog,t.metalness=e.metalness,t.roughness=e.roughness,t.wireframe=e.wireframe,t.wireframeLinewidth=e.wireframeLinewidth,e.normalMap&&(t.normalScale=e.normalScale),e.ambientOcclusionMap&&(t.aoMapIntensity=e.ambientOcclusionMapIntensity),e.displacementMap&&(t.displacementScale=e.displacementScale,t.displacementBias=e.displacementBias),t}t.exports.Shader=r("standard",{schema:{ambientOcclusionMap:{type:"map"},ambientOcclusionMapIntensity:{default:1},ambientOcclusionTextureOffset:{type:"vec2"},ambientOcclusionTextureRepeat:{type:"vec2",default:{x:1,y:1}},color:{type:"color"},displacementMap:{type:"map"},displacementScale:{default:1},displacementBias:{default:.5},displacementTextureOffset:{type:"vec2"},displacementTextureRepeat:{type:"vec2",default:{x:1,y:1}},emissive:{type:"color",default:"#000"},emissiveIntensity:{default:1},envMap:{default:""},fog:{default:!0},height:{default:256},metalness:{default:0,min:0,max:1},metalnessMap:{type:"map"},metalnessTextureOffset:{type:"vec2"},metalnessTextureRepeat:{type:"vec2",default:{x:1,y:1}},normalMap:{type:"map"},normalScale:{type:"vec2",default:{x:1,y:1}},normalTextureOffset:{type:"vec2"},normalTextureRepeat:{type:"vec2",default:{x:1,y:1}},offset:{type:"vec2",default:{x:0,y:0}},repeat:{type:"vec2",default:{x:1,y:1}},roughness:{default:.5,min:0,max:1},roughnessMap:{type:"map"},roughnessTextureOffset:{type:"vec2"},roughnessTextureRepeat:{type:"vec2",default:{x:1,y:1}},sphericalEnvMap:{type:"map"},src:{type:"map"},width:{default:512},wireframe:{default:!1},wireframeLinewidth:{default:2}},init:function(e){this.rendererSystem=this.el.sceneEl.systems.renderer,this.materialData={color:new i.Color,emissive:new i.Color},l(e,this.materialData),this.rendererSystem.applyColorCorrection(this.materialData.color),this.rendererSystem.applyColorCorrection(this.materialData.emissive),this.material=new i.MeshStandardMaterial(this.materialData),o.material.updateMap(this,e),e.normalMap&&o.material.updateDistortionMap("normal",this,e),e.displacementMap&&o.material.updateDistortionMap("displacement",this,e),e.ambientOcclusionMap&&o.material.updateDistortionMap("ambientOcclusion",this,e),e.metalnessMap&&o.material.updateDistortionMap("metalness",this,e),e.roughnessMap&&o.material.updateDistortionMap("roughness",this,e),this.updateEnvMap(e)},update:function(e){this.updateMaterial(e),o.material.updateMap(this,e),e.normalMap&&o.material.updateDistortionMap("normal",this,e),e.displacementMap&&o.material.updateDistortionMap("displacement",this,e),e.ambientOcclusionMap&&o.material.updateDistortionMap("ambientOcclusion",this,e),e.metalnessMap&&o.material.updateDistortionMap("metalness",this,e),e.roughnessMap&&o.material.updateDistortionMap("roughness",this,e),this.updateEnvMap(e)},updateMaterial:function(e){var t,n=this.material;for(t in l(e,this.materialData),this.rendererSystem.applyColorCorrection(this.materialData.color),this.rendererSystem.applyColorCorrection(this.materialData.emissive),this.materialData)n[t]=this.materialData[t]},updateEnvMap:function(e){var t=this,n=this.material,r=e.envMap,l=e.sphericalEnvMap;if(!r&&!l||this.isLoadingEnvMap)return n.envMap=null,void(n.needsUpdate=!0);this.isLoadingEnvMap=!0,l?this.el.sceneEl.systems.material.loadTexture(l,{src:l},(function(e){t.isLoadingEnvMap=!1,e.mapping=i.SphericalReflectionMapping,n.envMap=e,o.material.handleTextureEvents(t.el,e),n.needsUpdate=!0})):s[r]?s[r].then((function(e){t.isLoadingEnvMap=!1,n.envMap=e,o.material.handleTextureEvents(t.el,e),n.needsUpdate=!0})):s[r]=new Promise((function(e){o.srcLoader.validateCubemapSrc(r,(function(r){a.load(r,(function(r){t.isLoadingEnvMap=!1,n.envMap=r,o.material.handleTextureEvents(t.el,r),e(r)}))}))}))}})},{"../core/shader":141,"../lib/three":179,"../utils/":205}],186:[function(e,t,n){var r="html.a-fullscreen{bottom:0;left:0;position:fixed;right:0;top:0}html.a-fullscreen body{height:100%;margin:0;overflow:hidden;padding:0;width:100%}html.a-fullscreen .a-canvas{width:100%!important;height:100%!important;top:0!important;left:0!important;right:0!important;bottom:0!important;position:fixed!important}html:not(.a-fullscreen) .a-enter-ar,html:not(.a-fullscreen) .a-enter-vr{right:5px;bottom:5px}:-webkit-full-screen{background-color:transparent}.a-hidden{display:none!important}.a-canvas{height:100%;left:0;position:absolute;top:0;width:100%}.a-canvas.a-grab-cursor:hover{cursor:grab;cursor:-moz-grab;cursor:-webkit-grab}canvas.a-canvas.a-mouse-cursor-hover:hover{cursor:pointer}.a-inspector-loader{background-color:#ed3160;position:fixed;left:3px;top:3px;padding:6px 10px;color:#fff;text-decoration:none;font-size:12px;font-family:Roboto,sans-serif;text-align:center;z-index:99999;width:204px}@keyframes dots-1{from{opacity:0}25%{opacity:1}}@keyframes dots-2{from{opacity:0}50%{opacity:1}}@keyframes dots-3{from{opacity:0}75%{opacity:1}}@-webkit-keyframes dots-1{from{opacity:0}25%{opacity:1}}@-webkit-keyframes dots-2{from{opacity:0}50%{opacity:1}}@-webkit-keyframes dots-3{from{opacity:0}75%{opacity:1}}.a-inspector-loader .dots span{animation:dots-1 2s infinite steps(1);-webkit-animation:dots-1 2s infinite steps(1)}.a-inspector-loader .dots span:first-child+span{animation-name:dots-2;-webkit-animation-name:dots-2}.a-inspector-loader .dots span:first-child+span+span{animation-name:dots-3;-webkit-animation-name:dots-3}a-scene{display:block;position:relative;height:100%;width:100%}a-assets,a-scene audio,a-scene img,a-scene video{display:none}.a-enter-vr-modal,.a-orientation-modal{font-family:Consolas,Andale Mono,Courier New,monospace}.a-enter-vr-modal a{border-bottom:1px solid #fff;padding:2px 0;text-decoration:none;transition:.1s color ease-in}.a-enter-vr-modal a:hover{background-color:#fff;color:#111;padding:2px 4px;position:relative;left:-4px}.a-enter-ar,.a-enter-vr{font-family:sans-serif,monospace;font-size:13px;width:100%;font-weight:200;line-height:16px;position:absolute;right:20px;bottom:20px}.a-enter-ar{right:80px}.a-enter-vr-button,.a-enter-vr-modal,.a-enter-vr-modal a{color:#fff;user-select:none;outline:0}.a-enter-vr-button{background:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='108' height='62' viewBox='0 0 108 62'%3E%3Ctitle%3Eaframe-vrmode-noborder-reduced-tracking%3C/title%3E%3Cpath d='M68.81,21.56H64.23v8.27h4.58a4.13,4.13,0,0,0,3.1-1.09,4.2,4.2,0,0,0,1-3,4.24,4.24,0,0,0-1-3A4.05,4.05,0,0,0,68.81,21.56Z' fill='%23fff'/%3E%3Cpath d='M96,0H12A12,12,0,0,0,0,12V50A12,12,0,0,0,12,62H96a12,12,0,0,0,12-12V12A12,12,0,0,0,96,0ZM41.9,46H34L24,16h8l6,21.84,6-21.84H52Zm39.29,0H73.44L68.15,35.39H64.23V46H57V16H68.81q5.32,0,8.34,2.37a8,8,0,0,1,3,6.69,9.68,9.68,0,0,1-1.27,5.18,8.9,8.9,0,0,1-4,3.34l6.26,12.11Z' fill='%23fff'/%3E%3C/svg%3E\") 50% 50% no-repeat rgba(0,0,0,.35)}.a-enter-ar-button{background:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='108' height='62' viewBox='0 0 108 62'%3E%3Ctitle%3Eaframe-armode-noborder-reduced-tracking%3C/title%3E%3Cpath d='M96,0H12A12,12,0,0,0,0,12V50A12,12,0,0,0,12,62H96a12,12,0,0,0,12-12V12A12,12,0,0,0,96,0Zm8,50a8,8,0,0,1-8,8H12a8,8,0,0,1-8-8V12a8,8,0,0,1,8-8H96a8,8,0,0,1,8,8Z' fill='%23fff'/%3E%3Cpath d='M43.35,39.82H32.51L30.45,46H23.88L35,16h5.73L52,46H45.43Zm-9.17-5h7.5L37.91,23.58Z' fill='%23fff'/%3E%3Cpath d='M68.11,35H63.18V46H57V16H68.15q5.31,0,8.2,2.37a8.18,8.18,0,0,1,2.88,6.7,9.22,9.22,0,0,1-1.33,5.12,9.09,9.09,0,0,1-4,3.26l6.49,12.26V46H73.73Zm-4.93-5h5a5.09,5.09,0,0,0,3.6-1.18,4.21,4.21,0,0,0,1.28-3.27,4.56,4.56,0,0,0-1.2-3.34A5,5,0,0,0,68.15,21h-5Z' fill='%23fff'/%3E%3C/svg%3E\") 50% 50% no-repeat rgba(0,0,0,.2)}.a-enter-ar-button,.a-enter-vr-button{background-size:90% 90%;border:0;bottom:0;cursor:pointer;min-width:58px;min-height:34px;padding-right:0;padding-top:0;position:absolute;right:0;transition:background-color .05s ease;-webkit-transition:background-color .05s ease;z-index:9999;border-radius:8px;touch-action:manipulation}.a-enter-ar-button{background-size:100% 90%;margin-right:10px;border-radius:7px}.a-enter-ar-button:active,.a-enter-ar-button:hover,.a-enter-vr-button:active,.a-enter-vr-button:hover{background-color:#ef2d5e}.a-enter-vr-button.resethover{background-color:rgba(0,0,0,.35)}[data-a-enter-vr-no-webvr] .a-enter-vr-button{border-color:#666;opacity:.65}[data-a-enter-vr-no-webvr] .a-enter-vr-button:active,[data-a-enter-vr-no-webvr] .a-enter-vr-button:hover{background-color:rgba(0,0,0,.35);cursor:not-allowed}.a-enter-vr-modal{background-color:#666;border-radius:0;display:none;min-height:32px;margin-right:70px;padding:9px;width:280px;right:2%;position:absolute}.a-enter-vr-modal:after{border-bottom:10px solid transparent;border-left:10px solid #666;border-top:10px solid transparent;display:inline-block;content:'';position:absolute;right:-5px;top:5px;width:0;height:0}.a-enter-vr-modal a,.a-enter-vr-modal p{display:inline}.a-enter-vr-modal p{margin:0}.a-enter-vr-modal p:after{content:' '}[data-a-enter-vr-no-headset].a-enter-vr:hover .a-enter-vr-modal,[data-a-enter-vr-no-webvr].a-enter-vr:hover .a-enter-vr-modal{display:block}.a-orientation-modal{background:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20xmlns%3Axlink%3D%22http%3A//www.w3.org/1999/xlink%22%20version%3D%221.1%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2090%2090%22%20enable-background%3D%22new%200%200%2090%2090%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%220%2C0%200%2C0%200%2C0%20%22%3E%3C/polygon%3E%3Cg%3E%3Cpath%20d%3D%22M71.545%2C48.145h-31.98V20.743c0-2.627-2.138-4.765-4.765-4.765H18.456c-2.628%2C0-4.767%2C2.138-4.767%2C4.765v42.789%20%20%20c0%2C2.628%2C2.138%2C4.766%2C4.767%2C4.766h5.535v0.959c0%2C2.628%2C2.138%2C4.765%2C4.766%2C4.765h42.788c2.628%2C0%2C4.766-2.137%2C4.766-4.765V52.914%20%20%20C76.311%2C50.284%2C74.173%2C48.145%2C71.545%2C48.145z%20M18.455%2C16.935h16.344c2.1%2C0%2C3.808%2C1.708%2C3.808%2C3.808v27.401H37.25V22.636%20%20%20c0-0.264-0.215-0.478-0.479-0.478H16.482c-0.264%2C0-0.479%2C0.214-0.479%2C0.478v36.585c0%2C0.264%2C0.215%2C0.478%2C0.479%2C0.478h7.507v7.644%20%20%20h-5.534c-2.101%2C0-3.81-1.709-3.81-3.81V20.743C14.645%2C18.643%2C16.354%2C16.935%2C18.455%2C16.935z%20M16.96%2C23.116h19.331v25.031h-7.535%20%20%20c-2.628%2C0-4.766%2C2.139-4.766%2C4.768v5.828h-7.03V23.116z%20M71.545%2C73.064H28.757c-2.101%2C0-3.81-1.708-3.81-3.808V52.914%20%20%20c0-2.102%2C1.709-3.812%2C3.81-3.812h42.788c2.1%2C0%2C3.809%2C1.71%2C3.809%2C3.812v16.343C75.354%2C71.356%2C73.645%2C73.064%2C71.545%2C73.064z%22%3E%3C/path%3E%3Cpath%20d%3D%22M28.919%2C58.424c-1.466%2C0-2.659%2C1.193-2.659%2C2.66c0%2C1.466%2C1.193%2C2.658%2C2.659%2C2.658c1.468%2C0%2C2.662-1.192%2C2.662-2.658%20%20%20C31.581%2C59.617%2C30.387%2C58.424%2C28.919%2C58.424z%20M28.919%2C62.786c-0.939%2C0-1.703-0.764-1.703-1.702c0-0.939%2C0.764-1.704%2C1.703-1.704%20%20%20c0.94%2C0%2C1.705%2C0.765%2C1.705%2C1.704C30.623%2C62.022%2C29.858%2C62.786%2C28.919%2C62.786z%22%3E%3C/path%3E%3Cpath%20d%3D%22M69.654%2C50.461H33.069c-0.264%2C0-0.479%2C0.215-0.479%2C0.479v20.288c0%2C0.264%2C0.215%2C0.478%2C0.479%2C0.478h36.585%20%20%20c0.263%2C0%2C0.477-0.214%2C0.477-0.478V50.939C70.131%2C50.676%2C69.917%2C50.461%2C69.654%2C50.461z%20M69.174%2C51.417V70.75H33.548V51.417H69.174z%22%3E%3C/path%3E%3Cpath%20d%3D%22M45.201%2C30.296c6.651%2C0%2C12.233%2C5.351%2C12.551%2C11.977l-3.033-2.638c-0.193-0.165-0.507-0.142-0.675%2C0.048%20%20%20c-0.174%2C0.198-0.153%2C0.501%2C0.045%2C0.676l3.883%2C3.375c0.09%2C0.075%2C0.198%2C0.115%2C0.312%2C0.115c0.141%2C0%2C0.273-0.061%2C0.362-0.166%20%20%20l3.371-3.877c0.173-0.2%2C0.151-0.502-0.047-0.675c-0.194-0.166-0.508-0.144-0.676%2C0.048l-2.592%2C2.979%20%20%20c-0.18-3.417-1.629-6.605-4.099-9.001c-2.538-2.461-5.877-3.817-9.404-3.817c-0.264%2C0-0.479%2C0.215-0.479%2C0.479%20%20%20C44.72%2C30.083%2C44.936%2C30.296%2C45.201%2C30.296z%22%3E%3C/path%3E%3C/g%3E%3C/svg%3E) center/50% 50% no-repeat rgba(244,244,244,1);bottom:0;font-size:14px;font-weight:600;left:0;line-height:20px;right:0;position:fixed;top:0;z-index:9999999}.a-orientation-modal:after{color:#666;content:\"Insert phone into Cardboard holder.\";display:block;position:absolute;text-align:center;top:70%;transform:translateY(-70%);width:100%}.a-orientation-modal button{background:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20xmlns%3Axlink%3D%22http%3A//www.w3.org/1999/xlink%22%20version%3D%221.1%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%20100%20100%22%20enable-background%3D%22new%200%200%20100%20100%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23000000%22%20d%3D%22M55.209%2C50l17.803-17.803c1.416-1.416%2C1.416-3.713%2C0-5.129c-1.416-1.417-3.713-1.417-5.129%2C0L50.08%2C44.872%20%20L32.278%2C27.069c-1.416-1.417-3.714-1.417-5.129%2C0c-1.417%2C1.416-1.417%2C3.713%2C0%2C5.129L44.951%2C50L27.149%2C67.803%20%20c-1.417%2C1.416-1.417%2C3.713%2C0%2C5.129c0.708%2C0.708%2C1.636%2C1.062%2C2.564%2C1.062c0.928%2C0%2C1.856-0.354%2C2.564-1.062L50.08%2C55.13l17.803%2C17.802%20%20c0.708%2C0.708%2C1.637%2C1.062%2C2.564%2C1.062s1.856-0.354%2C2.564-1.062c1.416-1.416%2C1.416-3.713%2C0-5.129L55.209%2C50z%22%3E%3C/path%3E%3C/svg%3E) no-repeat;border:none;height:50px;text-indent:-9999px;width:50px}.a-loader-title{background-color:rgba(0,0,0,.6);font-family:sans-serif,monospace;text-align:center;font-size:20px;height:50px;font-weight:300;line-height:50px;position:absolute;right:0;left:0;top:0;color:#fff}.a-modal{background:0 0/50% 50% rgba(0,0,0,.6);bottom:0;font-size:14px;font-weight:600;left:0;line-height:20px;right:0;position:fixed;top:0;z-index:9999999}.a-dialog{position:relative;left:50%;top:50%;transform:translate(-50%,-50%);z-index:199995;width:300px;height:200px;background-size:contain;background-color:#fff;font-family:sans-serif,monospace;font-size:20px;border-radius:3px;padding:6px}.a-dialog-text-container{width:100%;height:70%;align-self:flex-start;display:flex;justify-content:center;align-content:center;flex-direction:column}.a-dialog-text{display:inline-block;font-weight:400;font-size:14pt;margin:8px}.a-dialog-buttons-container{display:inline-flex;align-self:flex-end;width:100%;height:30%}.a-dialog-button{cursor:pointer;align-self:center;opacity:.9;height:80%;width:50%;font-size:12pt;margin:4px;border-radius:2px;text-align:center;border:none;display:inline-block;-webkit-transition:all .25s ease-in-out;transition:all .25s ease-in-out;box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.2);user-select:none}.a-dialog-permission-button:hover{box-shadow:0 7px 14px rgba(0,0,0,.2),0 2px 2px rgba(0,0,0,.2)}.a-dialog-allow-button{background-color:#00ceff}.a-dialog-deny-button{background-color:#ff005b}.a-dialog-ok-button{background-color:#00ceff;width:100%}";e("browserify-css").createStyle(r,{href:"src/style/aframe.css"}),t.exports=r},{"browserify-css":4}],187:[function(e,t,n){var r=".rs-base{background-color:#333;color:#fafafa;border-radius:0;font:10px monospace;left:5px;line-height:1em;opacity:.85;overflow:hidden;padding:10px;position:fixed;top:5px;width:300px;z-index:10000}.rs-base div.hidden{display:none}.rs-base h1{color:#fff;cursor:pointer;font-size:1.4em;font-weight:300;margin:0 0 5px;padding:0}.rs-group{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-direction:column-reverse;flex-direction:column-reverse;margin-bottom:5px}.rs-group:last-child{margin-bottom:0}.rs-counter-base{align-items:center;display:-webkit-box;display:-webkit-flex;display:flex;height:10px;-webkit-justify-content:space-between;justify-content:space-between;margin:2px 0}.rs-counter-base.alarm{color:#b70000;text-shadow:0 0 0 #b70000,0 0 1px #fff,0 0 1px #fff,0 0 2px #fff,0 0 2px #fff,0 0 3px #fff,0 0 3px #fff,0 0 4px #fff,0 0 4px #fff}.rs-counter-id{font-weight:300;-webkit-box-ordinal-group:0;-webkit-order:0;order:0;width:54px}.rs-counter-value{font-weight:300;-webkit-box-ordinal-group:1;-webkit-order:1;order:1;text-align:right;width:35px}.rs-canvas{-webkit-box-ordinal-group:2;-webkit-order:2;order:2}@media (min-width:480px){.rs-base{left:20px;top:20px}}";e("browserify-css").createStyle(r,{href:"src/style/rStats.css"}),t.exports=r},{"browserify-css":4}],188:[function(e,t,n){var r=e("../constants/"),i=e("../core/system").registerSystem,o="data-aframe-default-camera";function a(e){var t;e.camera&&(t=e.querySelector("["+o+"]"))&&e.removeChild(t)}t.exports.System=i("camera",{init:function(){this.activeCameraEl=null,this.render=this.render.bind(this),this.unwrapRender=this.unwrapRender.bind(this),this.wrapRender=this.wrapRender.bind(this),this.initialCameraFound=!1,this.numUserCameras=0,this.numUserCamerasChecked=0,this.setupInitialCamera()},setupInitialCamera:function(){var e,t,n=this.sceneEl,r=this;if(!n.camera||n.camera.el.getAttribute("camera").spectator)if((e=n.querySelectorAll("a-camera, [camera]")).length)for(this.numUserCameras=e.length,t=0;t<e.length;t++)e[t].addEventListener("object3dset",(function(e){"camera"===e.detail.type&&r.checkUserCamera(this)})),e[t].isNode?e[t].load():e[t].addEventListener("nodeready",(function(){this.load()}));else this.createDefaultCamera();else n.emit("cameraready",{cameraEl:n.camera.el})},checkUserCamera:function(e){var t,n=this.el.sceneEl;this.numUserCamerasChecked++,this.initialCameraFound||((t=e.getAttribute("camera")).active&&!t.spectator?(this.initialCameraFound=!0,n.camera=e.getObject3D("camera"),n.emit("cameraready",{cameraEl:e})):this.numUserCamerasChecked===this.numUserCameras&&this.createDefaultCamera())},createDefaultCamera:function(){var e,t=this.sceneEl;(e=document.createElement("a-entity")).setAttribute("camera",{active:!0}),e.setAttribute("position",{x:0,y:r.DEFAULT_CAMERA_HEIGHT,z:0}),e.setAttribute("wasd-controls",""),e.setAttribute("look-controls",""),e.setAttribute(r.AFRAME_INJECTED,""),e.addEventListener("object3dset",(function(n){"camera"===n.detail.type&&(t.camera=n.detail.object,t.emit("cameraready",{cameraEl:e}))})),t.appendChild(e)},disableActiveCamera:function(){var e;(e=this.sceneEl.querySelectorAll("[camera]"))[e.length-1].setAttribute("camera","active",!0)},setActiveCamera:function(e){var t,n,r,i,s=this.activeCameraEl,l=this.sceneEl;if((i=e.getObject3D("camera"))&&e!==this.activeCameraEl){var c=l.querySelector("["+o+"]");for(e!==(c&&c.querySelector("[camera]"))&&a(l),this.activeCameraEl=e,this.activeCameraEl.play(),l.camera=i,s&&s.setAttribute("camera","active",!1),n=l.querySelectorAll("[camera]"),r=0;r<n.length;r++)(t=n[r]).isEntity&&e!==t&&(t.setAttribute("camera","active",!1),t.pause());l.emit("camera-set-active",{cameraEl:e})}},setSpectatorCamera:function(e){var t,n=this.spectatorCameraEl,r=this.sceneEl;e.getObject3D("camera")&&e!==this.spectatorCameraEl&&(n&&n.setAttribute("camera","spectator",!1),t=this.spectatorCameraEl=e,r.addEventListener("enter-vr",this.wrapRender),r.addEventListener("exit-vr",this.unwrapRender),t.setAttribute("camera","active",!1),t.play(),r.emit("camera-set-spectator",{cameraEl:e}))},disableSpectatorCamera:function(){this.spectatorCameraEl=void 0},wrapRender:function(){this.spectatorCameraEl&&!this.originalRender&&(this.originalRender=this.sceneEl.renderer.render,this.sceneEl.renderer.render=this.render)},unwrapRender:function(){this.originalRender&&(this.sceneEl.renderer.render=this.originalRender,this.originalRender=void 0)},render:function(e,t){var n,r,i=this.sceneEl;n=i.renderer.xr.enabled,this.originalRender.call(i.renderer,e,t),this.spectatorCameraEl&&!i.isMobile&&n&&(r=this.spectatorCameraEl.components.camera.camera,i.renderer.xr.enabled=!1,this.originalRender.call(i.renderer,e,r),i.renderer.xr.enabled=n)}})},{"../constants/":123,"../core/system":142}],189:[function(e,t,n){var r=e("../core/geometry").geometries,i=e("../core/system").registerSystem;function o(e){var t=e.primitive,n=r[t]&&r[t].Geometry,i=new n;if(!n)throw new Error("Unknown geometry `"+t+"`");return i.init(e),i.geometry}function a(e,t){e[t]--}function s(e,t){e[t]=void 0===e[t]?1:e[t]+1}t.exports.System=i("geometry",{init:function(){this.cache={},this.cacheCount={}},clearCache:function(){this.cache={},this.cacheCount={}},getOrCreateGeometry:function(e){var t,n,r=this.cache;return e.skipCache?o(e):(t=r[n=this.hash(e)],s(this.cacheCount,n),t||(t=o(e),r[n]=t,t))},unuseGeometry:function(e){var t,n=this.cache,r=this.cacheCount;e.skipCache||n[t=this.hash(e)]&&(a(r,t),r[t]>0||(n[t].dispose(),delete n[t],delete r[t]))},hash:function(e){return JSON.stringify(e)}})},{"../core/geometry":132,"../core/system":142}],190:[function(e,t,n){var r=e("../core/system").registerSystem,i=e("../lib/three");t.exports.System=r("gltf-model",{schema:{dracoDecoderPath:{default:""}},init:function(){var e=this.data.dracoDecoderPath;this.dracoLoader=new i.DRACOLoader,this.dracoLoader.setDecoderPath(e)},update:function(){var e;this.dracoLoader||(e=this.data.dracoDecoderPath,this.dracoLoader=new i.DRACOLoader,this.dracoLoader.setDecoderPath(e))},getDRACOLoader:function(){return this.dracoLoader}})},{"../core/system":142,"../lib/three":179}],191:[function(e,t,n){e("./camera"),e("./geometry"),e("./gltf-model"),e("./light"),e("./material"),e("./renderer"),e("./shadow"),e("./tracked-controls-webvr"),e("./tracked-controls-webxr"),e("./webxr")},{"./camera":188,"./geometry":189,"./gltf-model":190,"./light":192,"./material":193,"./renderer":194,"./shadow":195,"./tracked-controls-webvr":196,"./tracked-controls-webxr":197,"./webxr":198}],192:[function(e,t,n){var r=e("../core/system").registerSystem,i=e("../utils/bind"),o=e("../constants/"),a="data-aframe-default-light";t.exports.System=r("light",{schema:{defaultLightsEnabled:{default:!0}},init:function(){this.defaultLights=!1,this.userDefinedLights=!1,this.sceneEl.addEventListener("loaded",i(this.setupDefaultLights,this))},registerLight:function(e){e.hasAttribute(a)||(this.removeDefaultLights(),this.userDefinedLights=!0)},removeDefaultLights:function(){var e,t=this.sceneEl;if(this.defaultLights){e=document.querySelectorAll("["+a+"]");for(var n=0;n<e.length;n++)t.removeChild(e[n]);this.defaultLights=!1}},setupDefaultLights:function(){var e,t,n=this.sceneEl;this.userDefinedLights||this.defaultLights||!this.data.defaultLightsEnabled||((e=document.createElement("a-entity")).setAttribute("light",{color:"#BBB",type:"ambient"}),e.setAttribute(a,""),e.setAttribute(o.AFRAME_INJECTED,""),n.appendChild(e),(t=document.createElement("a-entity")).setAttribute("light",{color:"#FFF",intensity:.6,castShadow:!0}),t.setAttribute("position",{x:-.5,y:1,z:1}),t.setAttribute(a,""),t.setAttribute(o.AFRAME_INJECTED,""),n.appendChild(t),this.defaultLights=!0)}})},{"../constants/":123,"../core/system":142,"../utils/bind":199}],193:[function(e,t,n){var r=e("../core/system").registerSystem,i=e("../lib/three"),o=e("../utils/"),a=e("../utils/material").isHLS,s=o.bind,l=o.debug,c=l("components:texture:error"),u=new i.TextureLoader,h=l("components:texture:warn");function d(e,t){var n,r,i,o=t.getAttribute("id");if(o)return o;for(r="",i=e||{},n=0;n<t.attributes.length;n++)i[t.attributes[n].name]=t.attributes[n].value;return Object.keys(i).sort().forEach((function(e){r+=e+":"+i[e]+";"})),r}function p(e,t){return new Promise(n);function n(n,r){function o(e){f(e,t),e.needsUpdate=!0,n(e)}"string"!==typeof e?o(new i.Texture(e)):u.load(e,o,(function(){}),(function(e){c("`$s` could not be fetched (Error code: %s; Response: %s)",e.status,e.statusText)}))}}function f(e,t){var n=t.offset||{x:0,y:0},r=t.repeat||{x:1,y:1};!!t.npot&&(e.wrapS=i.ClampToEdgeWrapping,e.wrapT=i.ClampToEdgeWrapping,e.magFilter=i.LinearFilter,e.minFilter=i.LinearFilter),1===r.x&&1===r.y||(e.wrapS=i.RepeatWrapping,e.wrapT=i.RepeatWrapping,e.repeat.set(r.x,r.y)),0===n.x&&0===n.y||e.offset.set(n.x,n.y)}function m(e,t,n){var r=document.createElement("video");return r.width=t,r.height=n,r.setAttribute("playsinline",""),r.setAttribute("webkit-playsinline",""),r.autoplay=!0,r.loop=!0,r.crossOrigin="anonymous",r.addEventListener("error",(function(){h("`$s` is not a valid video",e)}),!0),r.src=e,r}function v(e){return e.autoplay=e.hasAttribute("autoplay")&&"false"!==e.getAttribute("autoplay"),e.controls=e.hasAttribute("controls")&&"false"!==e.getAttribute("controls"),"false"===e.getAttribute("loop")&&e.removeAttribute("loop"),"false"===e.getAttribute("preload")&&(e.preload="none"),e.crossOrigin=e.crossOrigin||"anonymous",e.setAttribute("playsinline",""),e.setAttribute("webkit-playsinline",""),e}u.setCrossOrigin("anonymous"),t.exports.System=r("material",{init:function(){this.materials={},this.textureCounts={},this.textureCache={},this.sceneEl.addEventListener("materialtextureloaded",s(this.onMaterialTextureLoaded,this))},clearTextureCache:function(){this.textureCache={}},loadTexture:function(e,t,n){var r=this;if("CANVAS"!==e.tagName){if("VIDEO"===e.tagName)return e.src||e.srcObject||e.childElementCount||h("Video element was defined with neither `source` elements nor `src` / `srcObject` attributes."),void this.loadVideo(e,t,n);o.srcLoader.validateSrc(e,i,a)}else this.loadCanvas(e,t,n);function i(e){r.loadImage(e,t,n)}function a(e){r.loadVideo(e,t,n)}},loadImage:function(e,t,n){var r=this.hash(t),i=this.textureCache;i[r]||(i[r]=p(e,t)),i[r].then(n)},loadCanvas:function(e,t,n){var r;f(r=new i.CanvasTexture(e),t),n(r)},loadVideo:function(e,t,n){var r,o,s,l,c=this.textureCache;function u(e){e.texture.needsUpdate=!0,n(e.texture,e.videoEl)}if("string"!==typeof e){if(s=e,c[r=this.hashVideo(t,s)])return void c[r].then(u);v(s)}s=s||m(e,t.width,t.height),c[r=this.hashVideo(t,s)]?c[r].then(u):((o=new i.VideoTexture(s)).minFilter=i.LinearFilter,f(o,t),this.sceneEl.isIOS&&a(s.src||s.getAttribute("src"),s.type||s.getAttribute("type"))&&(o.format=i.RGBAFormat,o.needsCorrectionBGRA=!0,o.flipY=!1,o.needsCorrectionFlipY=!0),l={texture:o,videoEl:s},c[r]=Promise.resolve(l),u(l))},hash:function(e){return e.src.tagName&&((e=o.extendDeep({},e)).src=e.src.src),JSON.stringify(e)},hashVideo:function(e,t){return d(e,t)},registerMaterial:function(e){this.materials[e.uuid]=e},unregisterMaterial:function(e){delete this.materials[e.uuid];var t=this.textureCounts;Object.keys(e).filter((function(t){return e[t]&&e[t].isTexture})).forEach((function(n){t[e[n].uuid]--,t[e[n].uuid]<=0&&e[n].dispose()}))},updateMaterials:function(e){var t=this.materials;Object.keys(t).forEach((function(e){t[e].needsUpdate=!0}))},onMaterialTextureLoaded:function(e){this.textureCounts[e.detail.texture.uuid]||(this.textureCounts[e.detail.texture.uuid]=0),this.textureCounts[e.detail.texture.uuid]++}})},{"../core/system":142,"../lib/three":179,"../utils/":205,"../utils/material":209}],194:[function(e,t,n){var r=e("../core/system").registerSystem,i=e("../utils/"),o=e("../lib/three"),a=(0,i.debug)("components:renderer:warn");t.exports.System=r("renderer",{schema:{antialias:{default:"auto",oneOf:["true","false","auto"]},highRefreshRate:{default:i.device.isOculusBrowser()},logarithmicDepthBuffer:{default:"auto",oneOf:["true","false","auto"]},maxCanvasWidth:{default:1920},maxCanvasHeight:{default:1920},physicallyCorrectLights:{default:!1},precision:{default:"high",oneOf:["high","medium","low"]},sortObjects:{default:!1},colorManagement:{default:!1},gammaOutput:{default:!1},alpha:{default:!0},foveationLevel:{default:0}},init:function(){var e=this.data,t=this.el,n=t.renderer;n.sortObjects=e.sortObjects,n.physicallyCorrectLights=e.physicallyCorrectLights,(e.colorManagement||e.gammaOutput)&&(n.outputEncoding=o.sRGBEncoding,e.gammaOutput&&a('Property `gammaOutput` is deprecated. Use `renderer="colorManagement: true;"` instead.')),t.hasAttribute("antialias")&&a('Component `antialias` is deprecated. Use `renderer="antialias: true"` instead.'),t.hasAttribute("logarithmicDepthBuffer")&&a('Component `logarithmicDepthBuffer` is deprecated. Use `renderer="logarithmicDepthBuffer: true"` instead.')},applyColorCorrection:function(e){this.data.colorManagement&&e&&(e.isColor?e.convertSRGBToLinear():e.isTexture&&(e.encoding=o.sRGBEncoding))}})},{"../core/system":142,"../lib/three":179,"../utils/":205}],195:[function(e,t,n){var r=e("../core/system").registerSystem,i=e("../lib/three"),o={basic:i.BasicShadowMap,pcf:i.PCFShadowMap,pcfsoft:i.PCFSoftShadowMap};t.exports.System=r("shadow",{schema:{enabled:{default:!0},autoUpdate:{default:!0},type:{default:"pcf",oneOf:["basic","pcf","pcfsoft"]}},init:function(){var e=this.sceneEl,t=this.data;this.shadowMapEnabled=!1,e.renderer&&(e.renderer.shadowMap.type=o[t.type],e.renderer.shadowMap.autoUpdate=t.autoUpdate,this.setShadowMapEnabled(this.shadowMapEnabled))},update:function(e){e.enabled!==this.data.enabled&&this.setShadowMapEnabled(this.data.enabled)},setShadowMapEnabled:function(e){var t=this.sceneEl.renderer;this.shadowMapEnabled=this.data.enabled&&e,t&&(t.shadowMap.enabled=this.shadowMapEnabled)}})},{"../core/system":142,"../lib/three":179}],196:[function(e,t,n){var r=e("../core/system").registerSystem,i=e("../utils"),o=i.device.isWebXRAvailable;t.exports.System=r("tracked-controls-webvr",{init:function(){var e=this;this.controllers=[],this.isChrome=-1!==navigator.userAgent.indexOf("Chrome"),this.updateControllerList(),this.throttledUpdateControllerList=i.throttle(this.updateControllerList,500,this),o||navigator.getVRDisplays&&this.sceneEl.addEventListener("enter-vr",(function(){navigator.getVRDisplays().then((function(t){t.length&&(e.vrDisplay=t[0])}))}))},tick:function(){this.isChrome?this.updateControllerList():this.throttledUpdateControllerList()},updateControllerList:function(){var e,t,n,r,i=this.controllers;if(t=navigator.getGamepads&&navigator.getGamepads()){for(r=i.length,i.length=0,n=0;n<t.length;++n)(e=t[n])&&e.pose&&i.push(e);i.length!==r&&this.el.emit("controllersupdated",void 0,!1)}}})},{"../core/system":142,"../utils":205}],197:[function(e,t,n){var r=e("../core/system").registerSystem,i=e("../utils");t.exports.System=r("tracked-controls-webxr",{init:function(){this.controllers=[],this.oldControllers=[],this.oldControllersLength=0,this.throttledUpdateControllerList=i.throttle(this.updateControllerList,500,this),this.updateReferenceSpace=this.updateReferenceSpace.bind(this),this.el.addEventListener("enter-vr",this.updateReferenceSpace),this.el.addEventListener("exit-vr",this.updateReferenceSpace)},tick:function(){this.throttledUpdateControllerList()},updateReferenceSpace:function(){var e=this,t=this.el.xrSession;if(!t)return this.referenceSpace=void 0,this.controllers=[],void(this.oldControllersLength>0&&(this.oldControllersLength=0,this.el.emit("controllersupdated",void 0,!1)));var n=e.el.sceneEl.systems.webxr.sessionReferenceSpaceType;t.requestReferenceSpace(n).then((function(t){e.referenceSpace=t})).catch((function(t){throw e.el.sceneEl.systems.webxr.warnIfFeatureNotRequested(n,'tracked-controls-webxr uses reference space "'+n+'".'),t}))},updateControllerList:function(){var e,t=this.el.xrSession,n=this.oldControllers;if(!t){if(0===this.oldControllersLength)return;return this.oldControllersLength=0,this.controllers=[],void this.el.emit("controllersupdated",void 0,!1)}if(t.inputSources){if(this.controllers=t.inputSources,this.oldControllersLength===this.controllers.length){var r=!0;for(e=0;e<this.controllers.length;++e)if(this.controllers[e]!==n[e]||this.controllers[e].gamepad!==n[e].gamepad){r=!1;break}if(r)return}for(n.length=0,e=0;e<this.controllers.length;e++)n.push(this.controllers[e]);this.oldControllersLength=this.controllers.length,this.el.emit("controllersupdated",void 0,!1)}}})},{"../core/system":142,"../utils":205}],198:[function(e,t,n){var r=e("../core/system").registerSystem,i=e("../utils/").debug("systems:webxr:warn");t.exports.System=r("webxr",{schema:{referenceSpaceType:{type:"string",default:"local-floor"},requiredFeatures:{type:"array",default:["local-floor"]},optionalFeatures:{type:"array",default:["bounded-floor"]},overlayElement:{type:"selector"}},update:function(){var e=this.data;this.sessionConfiguration={requiredFeatures:e.requiredFeatures,optionalFeatures:e.optionalFeatures},this.sessionReferenceSpaceType=e.referenceSpaceType,e.overlayElement&&(this.warnIfFeatureNotRequested("dom-overlay"),this.sessionConfiguration.domOverlay={root:e.overlayElement})},wasFeatureRequested:function(e){return"viewer"===e||"local"===e||!(!this.sessionConfiguration.requiredFeatures.includes(e)&&!this.sessionConfiguration.optionalFeatures.includes(e))},warnIfFeatureNotRequested:function(e,t){this.wasFeatureRequested(e)||i((t?t+" ":"")+'Please add the feature "'+e+"\" to a-scene's webxr system options in requiredFeatures/optionalFeatures.")}})},{"../core/system":142,"../utils/":205}],199:[function(e,t,n){t.exports=function(e,t){return n=Array.prototype.slice.call(arguments,2),function(){var r=n.concat(Array.prototype.slice.call(arguments,0));return e.apply(t,r)};var n}},{}],200:[function(e,t,n){var r=e("./debug"),i=e("object-assign"),o=r("utils:coordinates:warn"),a=["x","y","z","w"],s=/^\s*((-?\d*\.{0,1}\d+(e-?\d+)?)\s+){2,3}(-?\d*\.{0,1}\d+(e-?\d+)?)\s*$/;t.exports.regex=s;var l="object",c=/\s+/g;function u(e,t){var n,r,o,s,u,h,d,f,m;if(e&&e instanceof Object)return h=void 0===e.x?t&&t.x:e.x,d=void 0===e.y?t&&t.y:e.y,f=void 0===e.z?t&&t.z:e.z,m=void 0===e.w?t&&t.w:e.w,void 0!==h&&null!==h&&(e.x=p(h)),void 0!==d&&null!==d&&(e.y=p(d)),void 0!==f&&null!==f&&(e.z=p(f)),void 0!==m&&null!==m&&(e.w=p(m)),e;if(null===e||void 0===e)return typeof t===l?i({},t):t;for(n=e.trim().split(c),u={},s=0;s<a.length;s++)if(o=a[s],n[s])u[o]=parseFloat(n[s],10);else{if(void 0===(r=t&&t[o]))continue;u[o]=p(r)}return u}function h(e){var t;return typeof e!==l?e:(t=e.x+" "+e.y,null!=e.z&&(t+=" "+e.z),null!=e.w&&(t+=" "+e.w),t)}function d(e){return s.test(e)}function p(e){return null!==e&&void 0!==e&&e.constructor===String?parseFloat(e,10):e}t.exports.parse=u,t.exports.stringify=h,t.exports.isCoordinates=d,t.exports.isCoordinate=function(e){return o("`AFRAME.utils.isCoordinate` has been renamed to `AFRAME.utils.isCoordinates`"),d(e)},t.exports.toVector3=function(e){return new THREE.Vector3(e.x,e.y,e.z)}},{"./debug":201,"object-assign":39}],201:[function(t,n,r){(function(r){var i=t("debug"),o=t("object-assign"),a={colors:{debug:"gray",error:"red",info:"gray",warn:"orange"}},s=function(e){var t=i(e);return t.color=c(e),t};function l(e){var t=e.split(":");return t[t.length-1]}function c(e){var t=l(e);return a.colors&&a.colors[t]||null}function u(){try{return window.localStorage}catch(e){}}o(s,i);var h=u();h&&(parseInt(h.logs,10)||"true"===h.logs)?s.enable("*"):s.enable("*:error,*:info,*:warn"),r.browser&&(window.logs=s),n.exports=s}).call(this,t("_process"))},{_process:49,debug:8,"object-assign":39}],202:[function(e,t,n){(function(n){var r,i=e("debug")("device:error"),o=!1,a=!1,s=t.exports.isWebXRAvailable=!window.debug&&void 0!==navigator.xr;if(window.addEventListener("vrdisplayactivate",(function(e){var t;s||(t=document.createElement("canvas"),r=e.display,t.getContext("webgl",{}),r.requestPresent([{source:t}]).then((function(){}),(function(){})))})),s){var l=function(){var e=document.querySelector("a-scene");e?e.hasLoaded?e.components["vr-mode-ui"].updateEnterInterfaces():e.addEventListener("loaded",l):window.addEventListener("DOMContentLoaded",l)},c=function(e){i("WebXR session support error: "+e.message)};navigator.xr.isSessionSupported?(navigator.xr.isSessionSupported("immersive-vr").then((function(e){o=e,l()})).catch(c),navigator.xr.isSessionSupported("immersive-ar").then((function(e){a=e,l()})).catch((function(){}))):navigator.xr.supportsSession?(navigator.xr.supportsSession("immersive-vr").then((function(){o=!0,l()})).catch(c),navigator.xr.supportsSession("immersive-ar").then((function(){a=!0,l()})).catch((function(){}))):i("WebXR has neither isSessionSupported or supportsSession?!")}else navigator.getVRDisplays&&navigator.getVRDisplays().then((function(e){var t=document.querySelector("a-scene");r=e.length&&e[0],t&&t.emit("displayconnected",{vrDisplay:r})}));function u(){return r}function h(){return o||a||!!u()}function d(){return a}t.exports.getVRDisplay=u,t.exports.checkHeadsetConnected=h,t.exports.checkARSupport=d;var p=function(){var e,t=!1;return e=window.navigator.userAgent||window.navigator.vendor||window.opera,(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4)))&&(t=!0),(m()||f()||A())&&(t=!0),b()&&(t=!1),function(){return t}}();function f(e){var t=e||window.navigator.userAgent;return/ipad|Nexus (7|9)|xoom|sch-i800|playbook|tablet|kindle/i.test(t)}function m(){return/iPad|iPhone|iPod/.test(window.navigator.platform)}function v(){return!p()&&!b()&&void 0!==window.orientation}function g(){return/(OculusBrowser)/i.test(window.navigator.userAgent)}function y(){return/(Mobile VR)/i.test(window.navigator.userAgent)}function b(){return g()||y()}function A(){return/R7 Build/.test(window.navigator.userAgent)}t.exports.isMobile=p,t.exports.isTablet=f,t.exports.isIOS=m,t.exports.isMobileDeviceRequestingDesktopSite=v,t.exports.isOculusBrowser=g,t.exports.isFirefoxReality=y,t.exports.isMobileVR=b,t.exports.isR7=A,t.exports.isLandscape=function(){var e=window.orientation;return A()&&(e+=90),90===e||-90===e},t.exports.isBrowserEnvironment=!(n&&!n.browser),t.exports.isNodeEnvironment=!t.exports.isBrowserEnvironment}).call(this,e("_process"))},{_process:49,debug:8}],203:[function(e,t,n){var r={};function i(e,t){return r[t=t||"."]||(r[t]={}),-1!==e.indexOf(t)?r[t][e]=e.split(t):r[t][e]=e,r[t][e]}t.exports.getComponentPropertyPath=i,t.exports.propertyPathCache=r,t.exports.getComponentProperty=function(e,t,n){var r;return n=n||".",-1!==t.indexOf(n)?(r=i(t,n)).constructor===String?e.getAttribute(r):e.getAttribute(r[0])[r[1]]:e.getAttribute(t)},t.exports.setComponentProperty=function(e,t,n,r){var o;r=r||".",-1===t.indexOf(r)?e.setAttribute(t,n):(o=i(t,r)).constructor===String?e.setAttribute(o,n):e.setAttribute(o[0],o[1],n)}},{}],204:[function(e,t,n){t.exports=function(e){var t=e.style.width,n=e.style.height;e.style.width=parseInt(t,10)+1+"px",e.style.height=parseInt(n,10)+1+"px",setTimeout((function(){e.style.width=t,e.style.height=n}),200)}},{}],205:[function(e,t,n){var r=e("./debug"),i=e("deep-assign"),o=e("./device"),a=e("object-assign"),s=e("./object-pool"),l=r("utils:warn");t.exports.bind=e("./bind"),t.exports.coordinates=e("./coordinates"),t.exports.debug=r,t.exports.device=o,t.exports.entity=e("./entity"),t.exports.forceCanvasResizeSafariMobile=e("./forceCanvasResizeSafariMobile"),t.exports.isIE11=e("./is-ie11"),t.exports.material=e("./material"),t.exports.objectPool=s,t.exports.split=e("./split").split,t.exports.styleParser=e("./styleParser"),t.exports.trackedControls=e("./tracked-controls"),t.exports.checkHeadsetConnected=function(){return l("`utils.checkHeadsetConnected` has moved to `utils.device.checkHeadsetConnected`"),o.checkHeadsetConnected(arguments)},t.exports.isGearVR=t.exports.device.isGearVR=function(){l("`utils.isGearVR` has been deprecated, use `utils.device.isMobileVR`")},t.exports.isIOS=function(){return l("`utils.isIOS` has moved to `utils.device.isIOS`"),o.isIOS(arguments)},t.exports.isOculusGo=t.exports.device.isOculusGo=function(){l("`utils.isOculusGo` has been deprecated, use `utils.device.isMobileVR`")},t.exports.isMobile=function(){return l("`utils.isMobile has moved to `utils.device.isMobile`"),o.isMobile(arguments)},t.exports.throttle=function(e,n,r){var i;return r&&(e=t.exports.bind(e,r)),function(){var t=Date.now();("undefined"===typeof i||("undefined"===typeof i?n:t-i)>=n)&&(i=t,e.apply(null,arguments))}},t.exports.throttleTick=function(e,n,r){var i;return r&&(e=t.exports.bind(e,r)),function(t,r){var o="undefined"===typeof i?r:t-i;("undefined"===typeof i||o>=n)&&(i=t,e(t,o))}},t.exports.debounce=function(e,t,n){var r;return function(){var i=this,o=arguments,a=function(){r=null,n||e.apply(i,o)},s=n&&!r;clearTimeout(r),r=setTimeout(a,t),s&&e.apply(i,o)}},t.exports.extend=a,t.exports.extendDeep=i,t.exports.clone=function(e){return JSON.parse(JSON.stringify(e))};var c=function(){var e=s.createPool((function(){return[]}));return function(t,n){var r,i,o,a,s,l;if(void 0===t||void 0===n||null===t||null===n||!(t&&n&&t.constructor===Object&&n.constructor===Object||t.constructor===Array&&n.constructor===Array))return t===n;for(r in i=e.use(),o=e.use(),i.length=0,o.length=0,t)i.push(r);for(r in n)o.push(r);if(i.length!==o.length)return e.recycle(i),e.recycle(o),!1;for(a=0;a<i.length;++a)if(s=t[i[a]],l=n[i[a]],"object"===typeof s||"object"===typeof l||Array.isArray(s)&&Array.isArray(l)){if(s===l)continue;if(!c(s,l))return e.recycle(i),e.recycle(o),!1}else if(s!==l)return e.recycle(i),e.recycle(o),!1;return e.recycle(i),e.recycle(o),!0}}();t.exports.deepEqual=c,t.exports.diff=function(){var e=[];return function(t,n,r){var i,o,a,s,l,u,h;for(l in s=r||{},e.length=0,t)e.push(l);if(!n)return s;for(a in n)-1===e.indexOf(a)&&e.push(a);for(u=0;u<e.length;u++)i=t[l=e[u]],o=n[l],((h=i&&o&&i.constructor===Object&&o.constructor===Object)&&!c(i,o)||!h&&i!==o)&&(s[l]=o);return s}}(),t.exports.shouldCaptureKeyEvent=function(e){return!e.metaKey&&document.activeElement===document.body},t.exports.splitString=function(e,t){"undefined"===typeof t&&(t=" ");var n=new RegExp(t,"g");return(e=(e||"").replace(n,t)).split(t)},t.exports.getElData=function(e,t){t=t||{};var n={};function r(t){e.hasAttribute(t)&&(n[t]=e.getAttribute(t))}return Object.keys(t).forEach(r),n},t.exports.getUrlParameter=function(e){e=e.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var t=new RegExp("[\\?&]"+e+"=([^&#]*)").exec(location.search);return null===t?"":decodeURIComponent(t[1].replace(/\+/g," "))},t.exports.isIframed=function(){return window.top!==window.self},t.exports.findAllScenes=function(e){for(var t=[],n=e.getElementsByTagName("*"),r=0,i=n.length;r<i;r++)n[r].isScene&&t.push(n[r]);return t},t.exports.srcLoader=e("./src-loader")},{"./bind":199,"./coordinates":200,"./debug":201,"./device":202,"./entity":203,"./forceCanvasResizeSafariMobile":204,"./is-ie11":207,"./material":209,"./object-pool":210,"./split":211,"./src-loader":212,"./styleParser":213,"./tracked-controls":214,"deep-assign":10,"object-assign":39}],206:[function(e,t,n){window.addEventListener("orientationchange",(function(){document.documentElement.style.height="initial",setTimeout((function(){document.documentElement.style.height="100%",setTimeout((function(){window.scrollTo(0,1)}),500)}),500)}))},{}],207:[function(e,t,n){function r(){var e=-1,t=navigator.userAgent;return"Microsoft Internet Explorer"===navigator.appName?null!=new RegExp("MSIE ([0-9]{1,}[\\.0-9]{0,})").exec(t)&&(e=parseFloat(RegExp.$1)):"Netscape"===navigator.appName&&null!=new RegExp("Trident/.*rv:([0-9]{1,}[\\.0-9]{0,})").exec(t)&&(e=parseFloat(RegExp.$1)),e}t.exports=11===r()},{}],208:[function(e,t,n){t.exports=function(e){return/(iphone|ipod|ipad).*os.(7_|8_|9_)/i.test(e)}},{}],209:[function(e,t,n){var r=e("../lib/three"),i=["application/x-mpegurl","application/vnd.apple.mpegurl"],o=new Set(["emissiveMap","envMap","map","specularMap"]);function a(e,t){t&&(e.emit("materialtextureloaded",{src:t.image,texture:t}),t.image&&"VIDEO"===t.image.tagName&&(t.image.addEventListener("loadeddata",(function(){e.components&&e.components.material&&(t.needsCorrectionBGRA&&t.needsCorrectionFlipY&&-1!==["standard","flat"].indexOf(e.components.material.data.shader)&&e.setAttribute("material","shader","ios10hls"),e.emit("materialvideoloadeddata",{src:t.image,texture:t}))})),t.image.addEventListener("ended",(function(){e.emit("materialvideoended",{src:t.image,texture:t})}))))}t.exports.updateMapMaterialFromData=function(e,t,n,i){var s=n.el,l=n.material,c=s.sceneEl.systems.renderer,u=i[t];if(n.materialSrcs||(n.materialSrcs={}),!u)return delete n.materialSrcs[e],void d(null);function h(t){n.materialSrcs[e]===u&&d(t)}function d(t){l[e]=t,t&&o.has(e)&&c.applyColorCorrection(t),l.needsUpdate=!0,a(s,t)}u!==n.materialSrcs[e]&&(n.materialSrcs[e]=u,u instanceof r.Texture?d(u):s.sceneEl.systems.material.loadTexture(u,{src:u,repeat:i.repeat,offset:i.offset,npot:i.npot},h))},t.exports.updateMap=function(e,n){return t.exports.updateMapMaterialFromData("map","src",e,n)},t.exports.updateDistortionMap=function(e,t,n){var r=e;"ambientOcclusion"===e&&(r="ao");var i=t.el,s=t.material,l=i.sceneEl.systems.renderer,c=n[e+"Map"],u={};if(u.src=c,u.offset=n[e+"TextureOffset"],u.repeat=n[e+"TextureRepeat"],u.wrap=n[e+"TextureWrap"],c){if(c===t[e+"TextureSrc"])return;return t[e+"TextureSrc"]=c,void i.sceneEl.systems.material.loadTexture(c,u,h)}function h(e){var t=r+"Map";s[t]=e,e&&o.has(t)&&l.applyColorCorrection(e),s.needsUpdate=!0,a(i,e)}s.map&&h(null)},t.exports.handleTextureEvents=a,t.exports.isHLS=function(e,t){return!(!t||!i.includes(t.toLowerCase()))||!!(e&&e.toLowerCase().indexOf(".m3u8")>0)}},{"../lib/three":179}],210:[function(e,t,n){var r=Object.freeze(Object.create(null));function i(){return{}}function o(e){var t;if(e&&e.constructor===Object)for(t in e)e[t]=void 0}function a(e,t){var n;if(e&&e.constructor===Object)for(n in e)n in t||delete e[n]}t.exports.createPool=function(e){var t=[],n=null;function a(){var e;return null!==n&&n!==t.length||l(t.length||5),e=t[n],t[n++]=r,o(e),e}function s(e){e instanceof Object&&(null!==n&&-1!==n?t[--n]=e:t[t.length]=e)}function l(r){var i,o;if((r=void 0===r?t.length:r)>0&&null==n&&(n=0),r>0)for(i=t.length,t.length+=Number(r),o=i;o<t.length;o++)t[o]=e();return t.length}function c(){return t.length}return e=e||i,{grow:l,pool:t,recycle:s,size:c,use:a}},t.exports.clearObject=o,t.exports.removeUnusedKeys=a},{}],211:[function(e,t,n){t.exports.split=function(){var e={};return function(t,n){return n in e||(e[n]={}),t in e[n]||(e[n][t]=t.split(n)),e[n][t]}}()},{}],212:[function(t,n,r){var i=t("./debug")("utils:src-loader:warn");function o(e,t,n){l(e,(function(r){r?t(e):n(e)}))}function a(e,t){var n,r,a,l="",c=[];for(r=0;r<5;r++)l+="(url\\((?:[^\\)]+)\\),\\s*)";function h(e){c.push(e),6===c.length&&t(c)}if(l+="(url\\((?:[^\\)]+)\\)\\s*)",a=e.match(new RegExp(l)))for(r=1;r<7;r++)o(s(a[r]),h);else if(n=u(e))return"A-CUBEMAP"===n.tagName&&n.srcs?t(n.srcs):void i('Selector "%s" does not point to <a-cubemap>',e)}function s(e){var t=e.match(/\url\((.+)\)/);if(t)return t[1]}function l(e,t){var n;e.tagName?t("IMG"===e.tagName):((n=new XMLHttpRequest).open("HEAD",e),n.addEventListener("load",(function(r){var i;n.status>=200&&n.status<300?null==(i=n.getResponseHeader("Content-Type"))?c(e,t):i.startsWith("image")?t(!0):t(!1):c(e,t),n.abort()})),n.send())}function c(e,t){var n=new Image;function r(){t(!0)}function i(){t(!1)}n.addEventListener("load",r),n.addEventListener("error",i),n.src=e}function u(t){try{var n=document.querySelector(t);return n||i('No element was found matching the selector: "%s"',t),n}catch(e){return void i('"%s" is not a valid selector',t)}}n.exports={parseUrl:s,validateSrc:o,validateCubemapSrc:a}},{"./debug":201}],213:[function(e,t,n){var r=/-([a-z])/g;function i(e){return e.replace(r,c)}function o(e){var t,n;for(n in e)n!==(t=i(n))&&(e[t]=e[n],delete e[n]);return e}t.exports.parse=function(e,t){var n;return"string"!==typeof e||(n=s(e,t))[""]?e:o(n)},t.exports.stringify=function(e){return"string"===typeof e?e:l(e)},t.exports.toCamelCase=i,t.exports.transformKeysToCamelCase=o;var a=function(){var e=[],t=/url\([^)]+$/;return function(n){var r,i="",o=0,a=";";for(e.length=0;o<n.length;)-1===(r=n.indexOf(a,o))&&(r=n.length),i+=n.substring(o,r),t.test(i)?(i+=";",o=r+1):(e.push(i.trim()),i="",o=r+1);return e}}();function s(e,t){var n,r,i,o,s,l;for(t=t||{},n=a(e),r=0;r<n.length;r++)(i=n[r])&&(o=i.indexOf(":"),s=i.substr(0,o).trim(),l=i.substr(o+1).trim(),t[s]=l);return t}function l(e){var t,n=0,r=0,i="";for(t in e)n++;for(t in e)i+=t+": "+e[t],r<n-1&&(i+="; "),r++;return i}function c(e){return e[1].toUpperCase()}},{}],214:[function(e,t,n){var r=e("../constants").DEFAULT_HANDEDNESS,i=["x","y","z","w"],o=2;function a(e,t,n){var r,i,o=e.el.sceneEl,a=n.index||0;return!!t&&!!(i=o&&o.systems["tracked-controls-webvr"])&&!!(r=i.controllers).length&&!!l(r,null,t,n.hand,a)}function s(e,t,n){var r,i=e.el.sceneEl,o=i&&i.systems["tracked-controls-webxr"];return!!o&&!(!(r=o.controllers)||!r.length)&&c(r,t,n.hand,n.index,n.iterateControllerProfiles,n.handTracking)}function l(e,t,n,i,a){var s,l,c=0;for(l=0;l<e.length;l++)if(s=e[l],(!n||s.id.startsWith(n))&&(n||s.id===t)&&(!i||!s.hand||i===s.hand)){if(!i||s.hand)return s;if(c===o*a+(i===r?0:1))return s;++c}}function c(e,t,n,r,i,o){var a,s,l,c,u=!1;for(a=0;a<e.length;a++){if(c=(l=e[a]).profiles,o)u=l.hand;else if(i)for(s=0;s<c.length&&!(u=c[s].startsWith(t));s++);else u=c.length>0&&c[0].startsWith(t);if(u)if("right"===l.handedness||"left"===l.handedness){if(l.handedness===n)return e[a]}else if(a===r)return e[a]}}t.exports.checkControllerPresentAndSetup=function(e,t,n){var r,i,o=e.el,l=o.sceneEl.hasWebXR;if(i=!!(r=(l?s:a)(e,t,n)),!e.controllerPresent||e.controllerEventsActive||l||e.addEventListeners(),i===e.controllerPresent)return i;e.controllerPresent=i,i?(e.addEventListeners(),e.injectTrackedControls(r),o.emit("controllerconnected",{name:e.name,component:e})):(e.removeEventListeners(),o.emit("controllerdisconnected",{name:e.name,component:e}))},t.exports.isControllerPresentWebVR=a,t.exports.isControllerPresentWebXR=s,t.exports.findMatchingControllerWebVR=l,t.exports.findMatchingControllerWebXR=c,t.exports.emitIfAxesChanged=function(e,t,n){var r,o,a,s,l;for(o in t){for(r=t[o],a=!1,l=0;l<r.length;l++)n.detail.changed[r[l]]&&(a=!0);if(a){for(s={},l=0;l<r.length;l++)s[i[l]]=n.detail.axis[r[l]];e.el.emit(o+"moved",s)}}},t.exports.onButtonEvent=function(e,t,n,r){var i=(r?n.mapping[r]:n.mapping).buttons[e];n.el.emit(i+t),n.updateModel&&n.updateModel(i,t)}},{"../constants":123}],215:[function(e,t,n){THREE.DeviceOrientationControls=function(e){var t=this;this.object=e,this.object.rotation.reorder("YXZ"),this.enabled=!0,this.deviceOrientation={},this.screenOrientation=0,this.alphaOffset=0;var n=function(e){t.deviceOrientation=e},r=function(){t.screenOrientation=window.orientation||0},i=function(){var e=new THREE.Vector3(0,0,1),t=new THREE.Euler,n=new THREE.Quaternion,r=new THREE.Quaternion(-Math.sqrt(.5),0,0,Math.sqrt(.5));return function(i,o,a,s,l){t.set(a,o,-s,"YXZ"),i.setFromEuler(t),i.multiply(r),i.multiply(n.setFromAxisAngle(e,-l))}}();this.connect=function(){r(),window.addEventListener("orientationchange",r,!1),window.addEventListener("deviceorientation",n,!1),t.enabled=!0},this.disconnect=function(){window.removeEventListener("orientationchange",r,!1),window.removeEventListener("deviceorientation",n,!1),t.enabled=!1},this.update=function(){if(!1!==t.enabled){var e=t.deviceOrientation;if(e){var n=e.alpha?THREE.Math.degToRad(e.alpha)+t.alphaOffset:0,r=e.beta?THREE.Math.degToRad(e.beta):0,o=e.gamma?THREE.Math.degToRad(e.gamma):0,a=t.screenOrientation?THREE.Math.degToRad(t.screenOrientation):0;i(t.object.quaternion,n,r,o,a)}}},this.dispose=function(){t.disconnect()},this.connect()}},{}],216:[function(e,t,n){window.glStats=function(){var e=null,t=0,n=0,r=0,i=0,o=0,a=0,s=0;function l(e,t){return function(){t.apply(this,arguments),e.apply(this,arguments)}}function c(){e("allcalls").set(t+n),e("drawElements").set(n),e("drawArrays").set(t),e("bindTexture").set(s),e("useProgram").set(r),e("glfaces").set(i),e("glvertices").set(o),e("glpoints").set(a)}function u(){t=0,n=0,r=0,i=0,o=0,a=0,s=0}function h(){}function d(t){e=t}return WebGLRenderingContext.prototype.drawArrays=l(WebGLRenderingContext.prototype.drawArrays,(function(){t++,arguments[0]==this.POINTS?a+=arguments[2]:o+=arguments[2]})),WebGLRenderingContext.prototype.drawElements=l(WebGLRenderingContext.prototype.drawElements,(function(){n++,i+=arguments[1]/3,o+=arguments[1]})),WebGLRenderingContext.prototype.useProgram=l(WebGLRenderingContext.prototype.useProgram,(function(){r++})),WebGLRenderingContext.prototype.bindTexture=l(WebGLRenderingContext.prototype.bindTexture,(function(){s++})),{update:c,start:u,end:h,attach:d,values:{allcalls:{over:3e3,caption:"Calls (hook)"},drawelements:{caption:"drawElements (hook)"},drawarrays:{caption:"drawArrays (hook)"}},groups:[{caption:"WebGL",values:["allcalls","drawelements","drawarrays","useprogram","bindtexture","glfaces","glvertices","glpoints"]}],fractions:[{base:"allcalls",steps:["drawelements","drawarrays"]}]}},window.threeStats=function(e){var t=null;function n(){t("renderer.info.memory.geometries").set(e.info.memory.geometries),t("renderer.info.programs").set(e.info.programs.length),t("renderer.info.memory.textures").set(e.info.memory.textures),t("renderer.info.render.calls").set(e.info.render.calls),t("renderer.info.render.triangles").set(e.info.render.triangles),t("renderer.info.render.points").set(e.info.render.points)}function r(){}function i(){}function o(e){t=e}return{update:n,start:r,end:i,attach:o,values:{"renderer.info.memory.geometries":{caption:"Geometries"},"renderer.info.memory.textures":{caption:"Textures"},"renderer.info.programs":{caption:"Programs"},"renderer.info.render.calls":{caption:"Calls"},"renderer.info.render.triangles":{caption:"Triangles",over:1e3},"renderer.info.render.points":{caption:"Points"}},groups:[{caption:"Three.js - Memory",values:["renderer.info.memory.geometries","renderer.info.programs","renderer.info.memory.textures"]},{caption:"Three.js - Render",values:["renderer.info.render.calls","renderer.info.render.triangles","renderer.info.render.points"]}],fractions:[]}},window.BrowserStats=function(){var e=null,t=0,n=0;window.performance&&!performance.memory&&(performance.memory={usedJSHeapSize:0,totalJSHeapSize:0}),0===performance.memory.totalJSHeapSize&&console.warn("totalJSHeapSize === 0... performance.memory is only available in Chrome .");var r={memory:{caption:"Used Memory",average:!0,avgMs:1e3,over:22},total:{caption:"Total Memory"}},i=[{caption:"Browser",values:["memory","total"]}],o=[{base:"total",steps:["memory"]}],a=Math.log(1024);function s(e){var t=100,n=Math.floor(Math.log(e)/a);return Math.round(e*t/Math.pow(1024,n))/t}function l(){t=s(performance.memory.usedJSHeapSize),n=s(performance.memory.totalJSHeapSize),e("memory").set(t),e("total").set(n)}function c(){t=0}function u(){}function h(t){e=t}return{update:l,start:c,end:u,attach:h,values:r,groups:i,fractions:o}},"object"===typeof t&&(t.exports={glStats:window.glStats,threeStats:window.threeStats,BrowserStats:window.BrowserStats})},{}],217:[function(e,t,n){"use strict";!function(){"performance"in window==0&&(window.performance={});var e=window.performance;if("now"in e==0){var t=Date.now();e.timing&&e.timing.navigationStart&&(t=e.timing.navigationStart),e.now=function(){return Date.now()-t}}e.mark||(e.mark=function(){}),e.measure||(e.measure=function(){})}(),window.rStats=function(e){function t(e,t){for(var n=Object.keys(e),r=0,i=n.length;r<i;r++)t(n[r])}function n(e){var t=document.createElement("link");t.href=e,t.rel="stylesheet",t.type="text/css",document.getElementsByTagName("head")[0].appendChild(t)}var r=e||{},i=r.colours||["#850700","#c74900","#fcb300","#284280","#4c7c0c"],o="https://fonts.googleapis.com/css?family=Roboto+Condensed:400,700,300",a=(r.CSSPath?r.CSSPath:"")+"rStats.css";(r.css||[o,a]).forEach((function(e){n(e)})),r.values||(r.values={});var s,l,c=10,u=200,h={};function d(e,t,n){var r=n||{},i=document.createElement("canvas"),o=i.getContext("2d"),a=0,s=0,l=r.color?r.color:"#666666",h=document.createElement("canvas"),d=h.getContext("2d");h.width=1,h.height=2*c,d.fillStyle="#444444",d.fillRect(0,0,1,2*c),d.fillStyle=l,d.fillRect(0,c,1,c),d.fillStyle="#ffffff",d.globalAlpha=.5,d.fillRect(0,c,1,1),d.globalAlpha=1;var p=document.createElement("canvas"),f=p.getContext("2d");function m(){i.width=u,i.height=c,i.style.width=i.width+"px",i.style.height=i.height+"px",i.className="rs-canvas",e.appendChild(i),o.fillStyle="#444444",o.fillRect(0,0,i.width,i.height)}function v(e,t){(s+=.1*(e-s))>(a*=.99)&&(a=s),o.drawImage(i,1,0,i.width-1,i.height,0,0,i.width-1,i.height),t?o.drawImage(p,i.width-1,i.height-s*i.height/a-c):o.drawImage(h,i.width-1,i.height-s*i.height/a-c)}return p.width=1,p.height=2*c,f.fillStyle="#444444",f.fillRect(0,0,1,2*c),f.fillStyle="#b70000",f.fillRect(0,c,1,c),f.globalAlpha=.5,f.fillStyle="#ffffff",f.fillRect(0,c,1,1),f.globalAlpha=1,m(),{draw:v}}function p(e,n){var r=document.createElement("canvas"),o=r.getContext("2d");function a(){r.width=u,r.height=c*n,r.style.width=r.width+"px",r.style.height=r.height+"px",r.className="rs-canvas",e.appendChild(r),o.fillStyle="#444444",o.fillRect(0,0,r.width,r.height)}function s(e){o.drawImage(r,1,0,r.width-1,r.height,0,0,r.width-1,r.height);var n=0;t(e,(function(t){var a=e[t]*r.height;o.fillStyle=i[t],o.fillRect(r.width-1,n,1,a),n+=a}))}return a(),{draw:s}}function f(e,t){var n,i=e,o=0,a=0,s=0,c=0,u=performance.now(),h=0,p=document.createElement("div"),f=document.createElement("span"),m=document.createElement("div"),v=document.createTextNode(""),g=r?r.values[i.toLowerCase()]:null,y=new d(p,i,g),b=!1;function A(e){if(g&&g.average){c+=e,h++;var t=performance.now();t-u>=(g.avgMs||1e3)&&(s=c/h,c=0,u=t,h=0)}}function w(){n=performance.now(),r.userTimingAPI&&performance.mark(i+"-start"),b=!0}function x(){o=performance.now()-n,r.userTimingAPI&&(performance.mark(i+"-end"),b&&performance.measure(i,i+"-start",i+"-end")),A(o)}function E(){x(),w()}function M(){var e=g&&g.average?s:o;v.nodeValue=Math.round(100*e)/100;var t=g&&(g.below&&o<g.below||g.over&&o>g.over);y.draw(o,t),p.className=t?"rs-counter-base alarm":"rs-counter-base"}function _(){var e=performance.now(),t=e-n;a++,t>1e3&&(o=g&&!1===g.interpolate?a:1e3*a/t,a=0,n=e,A(o))}function T(e){A(o=e)}return f.className="rs-counter-id",f.textContent=g&&g.caption?g.caption:i,m.className="rs-counter-value",m.appendChild(v),p.appendChild(f),p.appendChild(m),t?t.div.appendChild(p):l.appendChild(p),n=performance.now(),{set:T,start:w,tick:E,end:x,frame:_,value:function(){return o},draw:M}}function m(e){var n=e.toLowerCase();if(void 0===n&&(n="default"),h[n])return h[n];var i=null;r&&r.groups&&t(r.groups,(function(e){var t=r.groups[parseInt(e,10)];i||-1===t.values.indexOf(n.toLowerCase())||(i=t)}));var o=new f(n,i);return h[n]=o,o}function v(){if(r.plugins){r.values||(r.values={}),r.groups||(r.groups=[]),r.fractions||(r.fractions=[]);for(var e=0;e<r.plugins.length;e++)r.plugins[e].attach(m),t(r.plugins[e].values,(function(t){r.values[t]=r.plugins[e].values[t]})),r.groups=r.groups.concat(r.plugins[e].groups),r.fractions=r.fractions.concat(r.plugins[e].fractions)}else r.plugins={};(s=document.createElement("div")).className="rs-base",(l=document.createElement("div")).className="rs-container",l.style.height="auto",s.appendChild(l),document.body.appendChild(s),r&&(r.groups&&t(r.groups,(function(e){var t=r.groups[parseInt(e,10)],n=document.createElement("div");n.className="rs-group",t.div=n;var i=document.createElement("h1");i.textContent=t.caption,i.addEventListener("click",function(e){this.classList.toggle("hidden"),e.preventDefault()}.bind(n)),l.appendChild(i),l.appendChild(n)})),r.fractions&&t(r.fractions,(function(e){var n=r.fractions[parseInt(e,10)],o=document.createElement("div");o.className="rs-fraction";var a=document.createElement("div");a.className="rs-legend";var s=0;t(r.fractions[e].steps,(function(t){var n=document.createElement("p");n.textContent=r.fractions[e].steps[t],n.style.color=i[s],a.appendChild(n),s++})),o.appendChild(a),o.style.height=s*c+"px",n.div=o;var u=new p(o,s);n.graph=u,l.appendChild(o)})))}function g(){t(r.plugins,(function(e){r.plugins[e].update()})),t(h,(function(e){h[e].draw()})),r&&r.fractions&&t(r.fractions,(function(e){var n=r.fractions[parseInt(e,10)],i=[],o=h[n.base.toLowerCase()];o&&(o=o.value(),t(r.fractions[e].steps,(function(t){var n=r.fractions[e].steps[parseInt(t,10)].toLowerCase(),a=h[n];a&&i.push(a.value()/o)}))),n.graph.draw(i)}))}return v(),function(e){return e?m(e):{element:s,update:g}}},"object"===typeof t&&(t.exports=window.rStats)},{}],218:[function(e,t,n){String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return t=t||0,this.substr(t,e.length)===e})},{}],219:[function(t,n,r){var i={base64:function(e,t){return"data:"+e+";base64,"+t},isMobile:function(){var e,t=!1;return e=navigator.userAgent||navigator.vendor||window.opera,(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4)))&&(t=!0),t},isIOS:function(){return/(iPad|iPhone|iPod)/g.test(navigator.userAgent)},isIFrame:function(){try{return window.self!==window.top}catch(e){return!0}},appendQueryParameter:function(e,t,n){var r=e.indexOf("?")<0?"?":"&";return e+=r+t+"="+n},getQueryParameter:function(e){e=e.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var t=new RegExp("[\\?&]"+e+"=([^&#]*)").exec(location.search);return null===t?"":decodeURIComponent(t[1].replace(/\+/g," "))},isLandscapeMode:function(){return 90==window.orientation||-90==window.orientation}};n.exports=i},{}],220:[function(e,t,n){var r=e("./util.js");function i(){var e=document.createElement("video");e.addEventListener("ended",(function(){e.play()})),this.request=function(){e.paused&&(e.src=r.base64("video/webm","GkXfowEAAAAAAAAfQoaBAUL3gQFC8oEEQvOBCEKChHdlYm1Ch4ECQoWBAhhTgGcBAAAAAAAH4xFNm3RALE27i1OrhBVJqWZTrIHfTbuMU6uEFlSua1OsggEwTbuMU6uEHFO7a1OsggfG7AEAAAAAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmAQAAAAAAAEUq17GDD0JATYCNTGF2ZjU2LjQwLjEwMVdBjUxhdmY1Ni40MC4xMDFzpJAGSJTMbsLpDt/ySkipgX1fRImIQO1MAAAAAAAWVK5rAQAAAAAAADuuAQAAAAAAADLXgQFzxYEBnIEAIrWcg3VuZIaFVl9WUDmDgQEj44OEO5rKAOABAAAAAAAABrCBsLqBkB9DtnUBAAAAAAAAo+eBAKOmgQAAgKJJg0IAAV4BHsAHBIODCoAACmH2MAAAZxgz4dPSTFi5JACjloED6ACmAECSnABMQAADYAAAWi0quoCjloEH0ACmAECSnABNwAADYAAAWi0quoCjloELuACmAECSnABNgAADYAAAWi0quoCjloEPoACmAECSnABNYAADYAAAWi0quoCjloETiACmAECSnABNIAADYAAAWi0quoAfQ7Z1AQAAAAAAAJTnghdwo5aBAAAApgBAkpwATOAAA2AAAFotKrqAo5aBA+gApgBAkpwATMAAA2AAAFotKrqAo5aBB9AApgBAkpwATIAAA2AAAFotKrqAo5aBC7gApgBAkpwATEAAA2AAAFotKrqAo5aBD6AApgDAkpwAQ2AAA2AAAFotKrqAo5aBE4gApgBAkpwATCAAA2AAAFotKrqAH0O2dQEAAAAAAACU54Iu4KOWgQAAAKYAQJKcAEvAAANgAABaLSq6gKOWgQPoAKYAQJKcAEtgAANgAABaLSq6gKOWgQfQAKYAQJKcAEsAAANgAABaLSq6gKOWgQu4AKYAQJKcAEqAAANgAABaLSq6gKOWgQ+gAKYAQJKcAEogAANgAABaLSq6gKOWgROIAKYAQJKcAEnAAANgAABaLSq6gB9DtnUBAAAAAAAAlOeCRlCjloEAAACmAECSnABJgAADYAAAWi0quoCjloED6ACmAECSnABJIAADYAAAWi0quoCjloEH0ACmAMCSnABDYAADYAAAWi0quoCjloELuACmAECSnABI4AADYAAAWi0quoCjloEPoACmAECSnABIoAADYAAAWi0quoCjloETiACmAECSnABIYAADYAAAWi0quoAfQ7Z1AQAAAAAAAJTngl3Ao5aBAAAApgBAkpwASCAAA2AAAFotKrqAo5aBA+gApgBAkpwASAAAA2AAAFotKrqAo5aBB9AApgBAkpwAR8AAA2AAAFotKrqAo5aBC7gApgBAkpwAR4AAA2AAAFotKrqAo5aBD6AApgBAkpwAR2AAA2AAAFotKrqAo5aBE4gApgBAkpwARyAAA2AAAFotKrqAH0O2dQEAAAAAAACU54J1MKOWgQAAAKYAwJKcAENgAANgAABaLSq6gKOWgQPoAKYAQJKcAEbgAANgAABaLSq6gKOWgQfQAKYAQJKcAEagAANgAABaLSq6gKOWgQu4AKYAQJKcAEaAAANgAABaLSq6gKOWgQ+gAKYAQJKcAEZAAANgAABaLSq6gKOWgROIAKYAQJKcAEYAAANgAABaLSq6gB9DtnUBAAAAAAAAlOeCjKCjloEAAACmAECSnABF4AADYAAAWi0quoCjloED6ACmAECSnABFwAADYAAAWi0quoCjloEH0ACmAECSnABFoAADYAAAWi0quoCjloELuACmAECSnABFgAADYAAAWi0quoCjloEPoACmAMCSnABDYAADYAAAWi0quoCjloETiACmAECSnABFYAADYAAAWi0quoAfQ7Z1AQAAAAAAAJTngqQQo5aBAAAApgBAkpwARUAAA2AAAFotKrqAo5aBA+gApgBAkpwARSAAA2AAAFotKrqAo5aBB9AApgBAkpwARQAAA2AAAFotKrqAo5aBC7gApgBAkpwARQAAA2AAAFotKrqAo5aBD6AApgBAkpwAROAAA2AAAFotKrqAo5aBE4gApgBAkpwARMAAA2AAAFotKrqAH0O2dQEAAAAAAACU54K7gKOWgQAAAKYAQJKcAESgAANgAABaLSq6gKOWgQPoAKYAQJKcAESAAANgAABaLSq6gKOWgQfQAKYAwJKcAENgAANgAABaLSq6gKOWgQu4AKYAQJKcAERgAANgAABaLSq6gKOWgQ+gAKYAQJKcAERAAANgAABaLSq6gKOWgROIAKYAQJKcAEQgAANgAABaLSq6gB9DtnUBAAAAAAAAlOeC0vCjloEAAACmAECSnABEIAADYAAAWi0quoCjloED6ACmAECSnABEAAADYAAAWi0quoCjloEH0ACmAECSnABD4AADYAAAWi0quoCjloELuACmAECSnABDwAADYAAAWi0quoCjloEPoACmAECSnABDoAADYAAAWi0quoCjloETiACmAECSnABDgAADYAAAWi0quoAcU7trAQAAAAAAABG7j7OBALeK94EB8YIBd/CBAw=="),e.play())},this.release=function(){e.pause(),e.src=""}}function o(){var e=null;this.request=function(){e||(e=setInterval((function(){window.location.href="/",setTimeout(window.stop,0)}),15e3))},this.release=function(){e&&(clearInterval(e),e=null)}}function a(){var e=navigator.userAgent||navigator.vendor||window.opera;return e.match(/iPhone/i)||e.match(/iPod/i)?o:i}t.exports=a()},{"./util.js":219}]},{},[177])(177)}()}}]); \ No newline at end of file
diff --git a/build/static/chunks/fb7d5399-a8c606efbc9e7c0edf90.js b/build/static/chunks/fb7d5399-a8c606efbc9e7c0edf90.js
new file mode 100644
index 0000000..16c7bfc
--- /dev/null
+++ b/build/static/chunks/fb7d5399-a8c606efbc9e7c0edf90.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[737],{2212:function(t,e,n){"use strict";n.d(e,{Mig:function(){return Jo},_Li:function(){return s},ZzF:function(){return mt},TlE:function(){return Be},u9r:function(){return Je},SUY:function(){return ll},Ilk:function(){return Ie},_3:function(){return Zs},yj7:function(){return ha},m_w:function(){return Js},Ox3:function(){return Yo},pBf:function(){return W},a$l:function(){return He},ZAu:function(){return kr},x12:function(){return Os},nls:function(){return Cs},wem:function(){return v},RsA:function(){return i},yGw:function(){return Vt},Kj0:function(){return mn},vBJ:function(){return Ne},YBo:function(){return no},iKG:function(){return qo},cPb:function(){return Mn},JOQ:function(){return Cn},mXe:function(){return pa},_fP:function(){return ht},wk1:function(){return E},iMs:function(){return Tl},xsS:function(){return Qr},jyz:function(){return _n},Aip:function(){return Xa},xo$:function(){return Xa},$V:function(){return Al},QmN:function(){return r},dpR:function(){return Ro},Lcc:function(){return Ya},rDY:function(){return xn},FM8:function(){return tt},Pa4:function(){return ut},dd2:function(){return lt},CP7:function(){return Yr}});const i={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},s=1,a=100,o=301,l=302,c=306,h=307,u=1e3,d=1001,p=1002,m=1003,f=1004,g=1005,v=1006,y=1008,x=1009,_=1012,b=1014,M=1015,w=1016,S=1020,T=1022,E=1023,L=1026,A=1027,R=2300,C=2301,P=2302,D=2400,I=2401,N=2402,z=2500,O=3e3,B=3001,F=3007,U=3002,H=7680,G=35044,V=35048,k="300 es";class W{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const n=this._listeners[t];if(void 0!==n){const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const n=e.slice(0);for(let e=0,i=n.length;e<i;e++)n[e].call(this,t);t.target=null}}}const j=[];for(let jl=0;jl<256;jl++)j[jl]=(jl<16?"0":"")+jl.toString(16);const q=Math.PI/180,X=180/Math.PI;function Y(){const t=4294967295*Math.random()|0,e=4294967295*Math.random()|0,n=4294967295*Math.random()|0,i=4294967295*Math.random()|0;return(j[255&t]+j[t>>8&255]+j[t>>16&255]+j[t>>24&255]+"-"+j[255&e]+j[e>>8&255]+"-"+j[e>>16&15|64]+j[e>>24&255]+"-"+j[63&n|128]+j[n>>8&255]+"-"+j[n>>16&255]+j[n>>24&255]+j[255&i]+j[i>>8&255]+j[i>>16&255]+j[i>>24&255]).toUpperCase()}function J(t,e,n){return Math.max(e,Math.min(n,t))}function Z(t,e){return(t%e+e)%e}function Q(t,e,n){return(1-n)*t+n*e}function K(t){return 0===(t&t-1)&&0!==t}function $(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}class tt{constructor(t=0,e=0){this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t,e){return void 0!==e?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t,e){return void 0!==e?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,s=this.y-t.y;return this.x=r*n-s*i+t.x,this.y=r*i+s*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}}tt.prototype.isVector2=!0;class et{constructor(){this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}set(t,e,n,i,r,s,a,o,l){const c=this.elements;return c[0]=t,c[1]=i,c[2]=a,c[3]=e,c[4]=r,c[5]=o,c[6]=n,c[7]=s,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[3],o=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],m=i[0],f=i[3],g=i[6],v=i[1],y=i[4],x=i[7],_=i[2],b=i[5],M=i[8];return r[0]=s*m+a*v+o*_,r[3]=s*f+a*y+o*b,r[6]=s*g+a*x+o*M,r[1]=l*m+c*v+h*_,r[4]=l*f+c*y+h*b,r[7]=l*g+c*x+h*M,r[2]=u*m+d*v+p*_,r[5]=u*f+d*y+p*b,r[8]=u*g+d*x+p*M,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8];return e*s*c-e*a*l-n*r*c+n*a*o+i*r*l-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=c*s-a*l,u=a*o-c*r,d=l*r-s*o,p=e*h+n*u+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const m=1/p;return t[0]=h*m,t[1]=(i*l-c*n)*m,t[2]=(a*n-i*s)*m,t[3]=u*m,t[4]=(c*e-i*o)*m,t[5]=(i*r-a*e)*m,t[6]=d*m,t[7]=(n*o-l*e)*m,t[8]=(s*e-n*r)*m,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*s+l*a)+s+t,-i*l,i*o,-i*(-l*s+o*a)+a+e,0,0,1),this}scale(t,e){const n=this.elements;return n[0]*=t,n[3]*=t,n[6]*=t,n[1]*=e,n[4]*=e,n[7]*=e,this}rotate(t){const e=Math.cos(t),n=Math.sin(t),i=this.elements,r=i[0],s=i[3],a=i[6],o=i[1],l=i[4],c=i[7];return i[0]=e*r+n*o,i[3]=e*s+n*l,i[6]=e*a+n*c,i[1]=-n*r+e*o,i[4]=-n*s+e*l,i[7]=-n*a+e*c,this}translate(t,e){const n=this.elements;return n[0]+=t*n[2],n[3]+=t*n[5],n[6]+=t*n[8],n[1]+=e*n[2],n[4]+=e*n[5],n[7]+=e*n[8],this}equals(t){const e=this.elements,n=t.elements;for(let i=0;i<9;i++)if(e[i]!==n[i])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}let nt;et.prototype.isMatrix3=!0;class it{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if("undefined"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===nt&&(nt=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")),nt.width=t.width,nt.height=t.height;const n=nt.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=nt}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}}let rt=0;class st extends W{constructor(t=st.DEFAULT_IMAGE,e=st.DEFAULT_MAPPING,n=1001,i=1001,r=v,s=1008,a=E,o=1009,l=1,c=3e3){super(),Object.defineProperty(this,"id",{value:rt++}),this.uuid=Y(),this.name="",this.image=t,this.mipmaps=[],this.mapping=e,this.wrapS=n,this.wrapT=i,this.magFilter=r,this.minFilter=s,this.anisotropy=l,this.format=a,this.internalFormat=null,this.type=o,this.offset=new tt(0,0),this.repeat=new tt(1,1),this.center=new tt(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new et,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=c,this.version=0,this.onUpdate=null}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(t){return this.name=t.name,this.image=t.image,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.encoding=t.encoding,this}toJSON(t){const e=void 0===t||"string"===typeof t;if(!e&&void 0!==t.textures[this.uuid])return t.textures[this.uuid];const n={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(void 0!==this.image){const i=this.image;if(void 0===i.uuid&&(i.uuid=Y()),!e&&void 0===t.images[i.uuid]){let e;if(Array.isArray(i)){e=[];for(let t=0,n=i.length;t<n;t++)i[t].isDataTexture?e.push(at(i[t].image)):e.push(at(i[t]))}else e=at(i);t.images[i.uuid]={uuid:i.uuid,url:e}}n.image=i.uuid}return e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(300!==this.mapping)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case u:t.x=t.x-Math.floor(t.x);break;case d:t.x=t.x<0?0:1;break;case p:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case u:t.y=t.y-Math.floor(t.y);break;case d:t.y=t.y<0?0:1;break;case p:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&this.version++}}function at(t){return"undefined"!==typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!==typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!==typeof ImageBitmap&&t instanceof ImageBitmap?it.getDataURL(t):t.data?{data:Array.prototype.slice.call(t.data),width:t.width,height:t.height,type:t.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}st.DEFAULT_IMAGE=void 0,st.DEFAULT_MAPPING=300,st.prototype.isTexture=!0;class ot{constructor(t=0,e=0,n=0,i=1){this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t,e){return void 0!==e?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t,e){return void 0!==e?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r,this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r,this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r,this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],m=o[2],f=o[6],g=o[10];if(Math.abs(c-u)<s&&Math.abs(h-m)<s&&Math.abs(p-f)<s){if(Math.abs(c+u)<a&&Math.abs(h+m)<a&&Math.abs(p+f)<a&&Math.abs(l+d+g-3)<a)return this.set(1,0,0,0),this;e=Math.PI;const t=(l+1)/2,o=(d+1)/2,v=(g+1)/2,y=(c+u)/4,x=(h+m)/4,_=(p+f)/4;return t>o&&t>v?t<s?(n=0,i=.707106781,r=.707106781):(n=Math.sqrt(t),i=y/n,r=x/n):o>v?o<s?(n=.707106781,i=0,r=.707106781):(i=Math.sqrt(o),n=y/i,r=_/i):v<s?(n=.707106781,i=.707106781,r=0):(r=Math.sqrt(v),n=x/r,i=_/r),this.set(n,i,r,e),this}let v=Math.sqrt((f-p)*(f-p)+(h-m)*(h-m)+(u-c)*(u-c));return Math.abs(v)<.001&&(v=1),this.x=(f-p)/v,this.y=(h-m)/v,this.z=(u-c)/v,this.w=Math.acos((l+d+g-1)/2),this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}}ot.prototype.isVector4=!0;class lt extends W{constructor(t,e,n={}){super(),this.width=t,this.height=e,this.depth=1,this.scissor=new ot(0,0,t,e),this.scissorTest=!1,this.viewport=new ot(0,0,t,e),this.texture=new st(void 0,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.texture.image={width:t,height:e,depth:1},this.texture.generateMipmaps=void 0!==n.generateMipmaps&&n.generateMipmaps,this.texture.minFilter=void 0!==n.minFilter?n.minFilter:v,this.depthBuffer=void 0===n.depthBuffer||n.depthBuffer,this.stencilBuffer=void 0!==n.stencilBuffer&&n.stencilBuffer,this.depthTexture=void 0!==n.depthTexture?n.depthTexture:null}setTexture(t){t.image={width:this.width,height:this.height,depth:this.depth},this.texture=t}setSize(t,e,n=1){this.width===t&&this.height===e&&this.depth===n||(this.width=t,this.height=e,this.depth=n,this.texture.image.width=t,this.texture.image.height=e,this.texture.image.depth=n,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return(new this.constructor).copy(this)}copy(t){return this.width=t.width,this.height=t.height,this.depth=t.depth,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.texture.image={...this.texture.image},this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this}dispose(){this.dispatchEvent({type:"dispose"})}}lt.prototype.isWebGLRenderTarget=!0;(class extends lt{constructor(t,e,n){super(t,e);const i=this.texture;this.texture=[];for(let r=0;r<n;r++)this.texture[r]=i.clone()}setSize(t,e,n=1){if(this.width!==t||this.height!==e||this.depth!==n){this.width=t,this.height=e,this.depth=n;for(let i=0,r=this.texture.length;i<r;i++)this.texture[i].image.width=t,this.texture[i].image.height=e,this.texture[i].image.depth=n;this.dispose()}return this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e),this}copy(t){this.dispose(),this.width=t.width,this.height=t.height,this.depth=t.depth,this.viewport.set(0,0,this.width,this.height),this.scissor.set(0,0,this.width,this.height),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this.texture.length=0;for(let e=0,n=t.texture.length;e<n;e++)this.texture[e]=t.texture[e].clone();return this}}).prototype.isWebGLMultipleRenderTargets=!0;class ct extends lt{constructor(t,e,n){super(t,e,n),this.samples=4}copy(t){return super.copy.call(this,t),this.samples=t.samples,this}}ct.prototype.isWebGLMultisampleRenderTarget=!0;class ht{constructor(t=0,e=0,n=0,i=1){this._x=t,this._y=e,this._z=n,this._w=i}static slerp(t,e,n,i){return console.warn("THREE.Quaternion: Static .slerp() has been deprecated. Use qm.slerpQuaternions( qa, qb, t ) instead."),n.slerpQuaternions(t,e,i)}static slerpFlat(t,e,n,i,r,s,a){let o=n[i+0],l=n[i+1],c=n[i+2],h=n[i+3];const u=r[s+0],d=r[s+1],p=r[s+2],m=r[s+3];if(0===a)return t[e+0]=o,t[e+1]=l,t[e+2]=c,void(t[e+3]=h);if(1===a)return t[e+0]=u,t[e+1]=d,t[e+2]=p,void(t[e+3]=m);if(h!==m||o!==u||l!==d||c!==p){let t=1-a;const e=o*u+l*d+c*p+h*m,n=e>=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r,a=Math.sin(a*s)/r}const r=a*n;if(o=o*t+u*r,l=l*t+d*r,c=c*t+p*r,h=h*t+m*r,t===1-a){const t=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=t,l*=t,c*=t,h*=t}}t[e]=o,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i],o=n[i+1],l=n[i+2],c=n[i+3],h=r[s],u=r[s+1],d=r[s+2],p=r[s+3];return t[e]=a*p+c*h+o*d-l*u,t[e+1]=o*p+c*u+l*h-a*d,t[e+2]=l*p+c*d+a*u-o*h,t[e+3]=c*p-a*h-o*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){if(!t||!t.isEuler)throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");const n=t._x,i=t._y,r=t._z,s=t._order,a=Math.cos,o=Math.sin,l=a(n/2),c=a(i/2),h=a(r/2),u=o(n/2),d=o(i/2),p=o(r/2);switch(s){case"XYZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"YXZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"ZXY":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"ZYX":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"YZX":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case"XZY":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],l=e[2],c=e[6],h=e[10],u=n+a+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-o)*t,this._y=(r-l)*t,this._z=(s-i)*t}else if(n>a&&n>h){const t=2*Math.sqrt(1+n-a-h);this._w=(c-o)/t,this._x=.25*t,this._y=(i+s)/t,this._z=(r+l)/t}else if(a>h){const t=2*Math.sqrt(1+a-n-h);this._w=(r-l)/t,this._x=(i+s)/t,this._y=.25*t,this._z=(o+c)/t}else{const t=2*Math.sqrt(1+h-n-a);this._w=(s-i)/t,this._x=(r+l)/t,this._y=(o+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return n<Number.EPSILON?(n=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(J(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t,e){return void 0!==e?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w,a=e._x,o=e._y,l=e._z,c=e._w;return this._x=n*c+s*a+i*l-r*o,this._y=i*c+s*o+r*a-n*l,this._z=r*c+s*l+n*o-i*a,this._w=s*c-n*a-i*o-r*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=n,this._y=i,this._z=r,this;const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;return this._w=t*s+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=s*h+this._w*u,this._x=n*h+this._x*u,this._y=i*h+this._y*u,this._z=r*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){this.copy(t).slerp(e,n)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}ht.prototype.isQuaternion=!0;class ut{constructor(t=0,e=0,n=0){this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t,e){return void 0!==e?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t,e){return void 0!==e?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t,e){return void 0!==e?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return t&&t.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(pt.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(pt.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,s=t.y,a=t.z,o=t.w,l=o*e+s*i-a*n,c=o*n+a*e-r*i,h=o*i+r*n-s*e,u=-r*e-s*n-a*i;return this.x=l*o+u*-r+c*-a-h*-s,this.y=c*o+u*-s+h*-r-l*-a,this.z=h*o+u*-a+l*-s-c*-r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t,e){return void 0!==e?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(t,e)):this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,s=e.x,a=e.y,o=e.z;return this.x=i*o-r*a,this.y=r*s-n*o,this.z=n*a-i*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return dt.copy(this).projectOnVector(t),this.sub(dt)}reflect(t){return this.sub(dt.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(J(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}}ut.prototype.isVector3=!0;const dt=new ut,pt=new ht;class mt{constructor(t=new ut(1/0,1/0,1/0),e=new ut(-1/0,-1/0,-1/0)){this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){let e=1/0,n=1/0,i=1/0,r=-1/0,s=-1/0,a=-1/0;for(let o=0,l=t.length;o<l;o+=3){const l=t[o],c=t[o+1],h=t[o+2];l<e&&(e=l),c<n&&(n=c),h<i&&(i=h),l>r&&(r=l),c>s&&(s=c),h>a&&(a=h)}return this.min.set(e,n,i),this.max.set(r,s,a),this}setFromBufferAttribute(t){let e=1/0,n=1/0,i=1/0,r=-1/0,s=-1/0,a=-1/0;for(let o=0,l=t.count;o<l;o++){const l=t.getX(o),c=t.getY(o),h=t.getZ(o);l<e&&(e=l),c<n&&(n=c),h<i&&(i=h),l>r&&(r=l),c>s&&(s=c),h>a&&(a=h)}return this.min.set(e,n,i),this.max.set(r,s,a),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=gt.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}setFromObject(t){return this.makeEmpty(),this.expandByObject(t)}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(t){return this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}expandByObject(t){t.updateWorldMatrix(!1,!1);const e=t.geometry;void 0!==e&&(null===e.boundingBox&&e.computeBoundingBox(),vt.copy(e.boundingBox),vt.applyMatrix4(t.matrixWorld),this.union(vt));const n=t.children;for(let i=0,r=n.length;i<r;i++)this.expandByObject(n[i]);return this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y||t.z<this.min.z||t.z>this.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y||t.max.z<this.min.z||t.min.z>this.max.z)}intersectsSphere(t){return this.clampPoint(t.center,gt),gt.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(St),Tt.subVectors(this.max,St),yt.subVectors(t.a,St),xt.subVectors(t.b,St),_t.subVectors(t.c,St),bt.subVectors(xt,yt),Mt.subVectors(_t,xt),wt.subVectors(yt,_t);let e=[0,-bt.z,bt.y,0,-Mt.z,Mt.y,0,-wt.z,wt.y,bt.z,0,-bt.x,Mt.z,0,-Mt.x,wt.z,0,-wt.x,-bt.y,bt.x,0,-Mt.y,Mt.x,0,-wt.y,wt.x,0];return!!At(e,yt,xt,_t,Tt)&&(e=[1,0,0,0,1,0,0,0,1],!!At(e,yt,xt,_t,Tt)&&(Et.crossVectors(bt,Mt),e=[Et.x,Et.y,Et.z],At(e,yt,xt,_t,Tt)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return gt.copy(t).clamp(this.min,this.max).sub(t).length()}getBoundingSphere(t){return this.getCenter(t.center),t.radius=.5*this.getSize(gt).length(),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(ft[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),ft[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),ft[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),ft[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),ft[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),ft[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),ft[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),ft[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(ft)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}mt.prototype.isBox3=!0;const ft=[new ut,new ut,new ut,new ut,new ut,new ut,new ut,new ut],gt=new ut,vt=new mt,yt=new ut,xt=new ut,_t=new ut,bt=new ut,Mt=new ut,wt=new ut,St=new ut,Tt=new ut,Et=new ut,Lt=new ut;function At(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){Lt.fromArray(t,s);const a=r.x*Math.abs(Lt.x)+r.y*Math.abs(Lt.y)+r.z*Math.abs(Lt.z),o=e.dot(Lt),l=n.dot(Lt),c=i.dot(Lt);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const Rt=new mt,Ct=new ut,Pt=new ut,Dt=new ut;class It{constructor(t=new ut,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):Rt.setFromPoints(t).getCenter(n);let i=0;for(let r=0,s=t.length;r<s;r++)i=Math.max(i,n.distanceToSquared(t[r]));return this.radius=Math.sqrt(i),this}copy(t){return this.center.copy(t.center),this.radius=t.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(t){return t.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(t){return t.distanceTo(this.center)-this.radius}intersectsSphere(t){const e=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=e*e}intersectsBox(t){return t.intersectsSphere(this)}intersectsPlane(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius}clampPoint(t,e){const n=this.center.distanceToSquared(t);return e.copy(t),n>this.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){Dt.subVectors(t,this.center);const e=Dt.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.add(Dt.multiplyScalar(n/t)),this.radius+=n}return this}union(t){return Pt.subVectors(t.center,this.center).normalize().multiplyScalar(t.radius),this.expandByPoint(Ct.copy(t.center).add(Pt)),this.expandByPoint(Ct.copy(t.center).sub(Pt)),this}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Nt=new ut,zt=new ut,Ot=new ut,Bt=new ut,Ft=new ut,Ut=new ut,Ht=new ut;class Gt{constructor(t=new ut,e=new ut(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.direction).multiplyScalar(t).add(this.origin)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Nt)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=Nt.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Nt.copy(this.direction).multiplyScalar(e).add(this.origin),Nt.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){zt.copy(t).add(e).multiplyScalar(.5),Ot.copy(e).sub(t).normalize(),Bt.copy(this.origin).sub(zt);const r=.5*t.distanceTo(e),s=-this.direction.dot(Ot),a=Bt.dot(this.direction),o=-Bt.dot(Ot),l=Bt.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=r*c,h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t,u*=t,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*r+a)),u=h>0?-r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-r,-o),r),d=u*(u+2*o)+l):(h=Math.max(0,-(s*r+a)),u=h>0?r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l);else u=s>0?-r:r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return n&&n.copy(this.direction).multiplyScalar(h).add(this.origin),i&&i.copy(Ot).multiplyScalar(u).add(zt),d}intersectSphere(t,e){Nt.subVectors(t.center,this.origin);const n=Nt.dot(this.direction),i=Nt.dot(Nt)-n*n,r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i),a=n-s,o=n+s;return a<0&&o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,r,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),c>=0?(r=(t.min.y-u.y)*c,s=(t.max.y-u.y)*c):(r=(t.max.y-u.y)*c,s=(t.min.y-u.y)*c),n>s||r>i?null:((r>n||n!==n)&&(n=r),(s<i||i!==i)&&(i=s),h>=0?(a=(t.min.z-u.z)*h,o=(t.max.z-u.z)*h):(a=(t.max.z-u.z)*h,o=(t.min.z-u.z)*h),n>o||a>i?null:((a>n||n!==n)&&(n=a),(o<i||i!==i)&&(i=o),i<0?null:this.at(n>=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,Nt)}intersectTriangle(t,e,n,i,r){Ft.subVectors(e,t),Ut.subVectors(n,t),Ht.crossVectors(Ft,Ut);let s,a=this.direction.dot(Ht);if(a>0){if(i)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}Bt.subVectors(this.origin,t);const o=s*this.direction.dot(Ut.crossVectors(Bt,Ut));if(o<0)return null;const l=s*this.direction.dot(Ft.cross(Bt));if(l<0)return null;if(o+l>a)return null;const c=-s*Bt.dot(Ht);return c<0?null:this.at(c/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class Vt{constructor(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=m,g[15]=f,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new Vt).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/kt.setFromMatrixColumn(t,0).length(),r=1/kt.setFromMatrixColumn(t,1).length(),s=1/kt.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){t&&t.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");const e=this.elements,n=t.x,i=t.y,r=t.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(i),l=Math.sin(i),c=Math.cos(r),h=Math.sin(r);if("XYZ"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=-o*h,e[8]=l,e[1]=n+i*l,e[5]=t-r*l,e[9]=-a*o,e[2]=r-t*l,e[6]=i+n*l,e[10]=s*o}else if("YXZ"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t+r*a,e[4]=i*a-n,e[8]=s*l,e[1]=s*h,e[5]=s*c,e[9]=-a,e[2]=n*a-i,e[6]=r+t*a,e[10]=s*o}else if("ZXY"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t-r*a,e[4]=-s*h,e[8]=i+n*a,e[1]=n+i*a,e[5]=s*c,e[9]=r-t*a,e[2]=-s*l,e[6]=a,e[10]=s*o}else if("ZYX"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=i*l-n,e[8]=t*l+r,e[1]=o*h,e[5]=r*l+t,e[9]=n*l-i,e[2]=-l,e[6]=a*o,e[10]=s*o}else if("YZX"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=r-t*h,e[8]=i*h+n,e[1]=h,e[5]=s*c,e[9]=-a*c,e[2]=-l*c,e[6]=n*h+i,e[10]=t-r*h}else if("XZY"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=-h,e[8]=l*c,e[1]=t*h+r,e[5]=s*c,e[9]=n*h-i,e[2]=i*h-n,e[6]=a*c,e[10]=r*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(jt,t,qt)}lookAt(t,e,n){const i=this.elements;return Jt.subVectors(t,e),0===Jt.lengthSq()&&(Jt.z=1),Jt.normalize(),Xt.crossVectors(n,Jt),0===Xt.lengthSq()&&(1===Math.abs(n.z)?Jt.x+=1e-4:Jt.z+=1e-4,Jt.normalize(),Xt.crossVectors(n,Jt)),Xt.normalize(),Yt.crossVectors(Jt,Xt),i[0]=Xt.x,i[4]=Yt.x,i[8]=Jt.x,i[1]=Xt.y,i[5]=Yt.y,i[9]=Jt.y,i[2]=Xt.z,i[6]=Yt.z,i[10]=Jt.z,this}multiply(t,e){return void 0!==e?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[4],o=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],m=n[6],f=n[10],g=n[14],v=n[3],y=n[7],x=n[11],_=n[15],b=i[0],M=i[4],w=i[8],S=i[12],T=i[1],E=i[5],L=i[9],A=i[13],R=i[2],C=i[6],P=i[10],D=i[14],I=i[3],N=i[7],z=i[11],O=i[15];return r[0]=s*b+a*T+o*R+l*I,r[4]=s*M+a*E+o*C+l*N,r[8]=s*w+a*L+o*P+l*z,r[12]=s*S+a*A+o*D+l*O,r[1]=c*b+h*T+u*R+d*I,r[5]=c*M+h*E+u*C+d*N,r[9]=c*w+h*L+u*P+d*z,r[13]=c*S+h*A+u*D+d*O,r[2]=p*b+m*T+f*R+g*I,r[6]=p*M+m*E+f*C+g*N,r[10]=p*w+m*L+f*P+g*z,r[14]=p*S+m*A+f*D+g*O,r[3]=v*b+y*T+x*R+_*I,r[7]=v*M+y*E+x*C+_*N,r[11]=v*w+y*L+x*P+_*z,r[15]=v*S+y*A+x*D+_*O,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],s=t[1],a=t[5],o=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+r*o*h-i*l*h-r*a*u+n*l*u+i*a*d-n*o*d)+t[7]*(+e*o*d-e*l*u+r*s*u-i*s*d+i*l*c-r*o*c)+t[11]*(+e*l*h-e*a*d-r*s*h+n*s*d+r*a*c-n*l*c)+t[15]*(-i*a*c-e*o*h+e*a*u+i*s*h-n*s*u+n*o*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],m=t[13],f=t[14],g=t[15],v=h*f*l-m*u*l+m*o*d-a*f*d-h*o*g+a*u*g,y=p*u*l-c*f*l-p*o*d+s*f*d+c*o*g-s*u*g,x=c*m*l-p*h*l+p*a*d-s*m*d-c*a*g+s*h*g,_=p*h*o-c*m*o-p*a*u+s*m*u+c*a*f-s*h*f,b=e*v+n*y+i*x+r*_;if(0===b)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const M=1/b;return t[0]=v*M,t[1]=(m*u*r-h*f*r-m*i*d+n*f*d+h*i*g-n*u*g)*M,t[2]=(a*f*r-m*o*r+m*i*l-n*f*l-a*i*g+n*o*g)*M,t[3]=(h*o*r-a*u*r-h*i*l+n*u*l+a*i*d-n*o*d)*M,t[4]=y*M,t[5]=(c*f*r-p*u*r+p*i*d-e*f*d-c*i*g+e*u*g)*M,t[6]=(p*o*r-s*f*r-p*i*l+e*f*l+s*i*g-e*o*g)*M,t[7]=(s*u*r-c*o*r+c*i*l-e*u*l-s*i*d+e*o*d)*M,t[8]=x*M,t[9]=(p*h*r-c*m*r-p*n*d+e*m*d+c*n*g-e*h*g)*M,t[10]=(s*m*r-p*a*r+p*n*l-e*m*l-s*n*g+e*a*g)*M,t[11]=(c*a*r-s*h*r-c*n*l+e*h*l+s*n*d-e*a*d)*M,t[12]=_*M,t[13]=(c*m*i-p*h*i+p*n*u-e*m*u-c*n*f+e*h*f)*M,t[14]=(p*a*i-s*m*i-p*n*o+e*m*o+s*n*f-e*a*f)*M,t[15]=(s*h*i-c*a*i+c*n*o-e*h*o-s*n*u+e*a*u)*M,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,s=t.x,a=t.y,o=t.z,l=r*s,c=r*a;return this.set(l*s+n,l*a-i*o,l*o+i*a,0,l*a+i*o,c*a+n,c*o-i*s,0,l*o-i*a,c*o+i*s,r*o*o+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,r,s){return this.set(1,n,r,0,t,1,s,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,s=e._y,a=e._z,o=e._w,l=r+r,c=s+s,h=a+a,u=r*l,d=r*c,p=r*h,m=s*c,f=s*h,g=a*h,v=o*l,y=o*c,x=o*h,_=n.x,b=n.y,M=n.z;return i[0]=(1-(m+g))*_,i[1]=(d+x)*_,i[2]=(p-y)*_,i[3]=0,i[4]=(d-x)*b,i[5]=(1-(u+g))*b,i[6]=(f+v)*b,i[7]=0,i[8]=(p+y)*M,i[9]=(f-v)*M,i[10]=(1-(u+m))*M,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=kt.set(i[0],i[1],i[2]).length();const s=kt.set(i[4],i[5],i[6]).length(),a=kt.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],Wt.copy(this);const o=1/r,l=1/s,c=1/a;return Wt.elements[0]*=o,Wt.elements[1]*=o,Wt.elements[2]*=o,Wt.elements[4]*=l,Wt.elements[5]*=l,Wt.elements[6]*=l,Wt.elements[8]*=c,Wt.elements[9]*=c,Wt.elements[10]*=c,e.setFromRotationMatrix(Wt),n.x=r,n.y=s,n.z=a,this}makePerspective(t,e,n,i,r,s){void 0===s&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");const a=this.elements,o=2*r/(e-t),l=2*r/(n-i),c=(e+t)/(e-t),h=(n+i)/(n-i),u=-(s+r)/(s-r),d=-2*s*r/(s-r);return a[0]=o,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,n,i,r,s){const a=this.elements,o=1/(e-t),l=1/(n-i),c=1/(s-r),h=(e+t)*o,u=(n+i)*l,d=(s+r)*c;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let i=0;i<16;i++)if(e[i]!==n[i])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}Vt.prototype.isMatrix4=!0;const kt=new ut,Wt=new Vt,jt=new ut(0,0,0),qt=new ut(1,1,1),Xt=new ut,Yt=new ut,Jt=new ut,Zt=new Vt,Qt=new ht;class Kt{constructor(t=0,e=0,n=0,i=Kt.DefaultOrder){this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,r=i[0],s=i[4],a=i[8],o=i[1],l=i[5],c=i[9],h=i[2],u=i[6],d=i[10];switch(e){case"XYZ":this._y=Math.asin(J(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,r)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-J(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,r),this._z=0);break;case"ZXY":this._x=Math.asin(J(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-J(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(J(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,r)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-J(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return Zt.makeRotationFromQuaternion(t),this.setFromRotationMatrix(Zt,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return Qt.setFromEuler(this),this.setFromQuaternion(Qt,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}toVector3(t){return t?t.set(this._x,this._y,this._z):new ut(this._x,this._y,this._z)}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}Kt.prototype.isEuler=!0,Kt.DefaultOrder="XYZ",Kt.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"];class $t{constructor(){this.mask=1}set(t){this.mask=1<<t|0}enable(t){this.mask|=1<<t|0}enableAll(){this.mask=-1}toggle(t){this.mask^=1<<t|0}disable(t){this.mask&=~(1<<t|0)}disableAll(){this.mask=0}test(t){return 0!==(this.mask&t.mask)}}let te=0;const ee=new ut,ne=new ht,ie=new Vt,re=new ut,se=new ut,ae=new ut,oe=new ht,le=new ut(1,0,0),ce=new ut(0,1,0),he=new ut(0,0,1),ue={type:"added"},de={type:"removed"};class pe extends W{constructor(){super(),Object.defineProperty(this,"id",{value:te++}),this.uuid=Y(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=pe.DefaultUp.clone();const t=new ut,e=new Kt,n=new ht,i=new ut(1,1,1);e._onChange((function(){n.setFromEuler(e,!1)})),n._onChange((function(){e.setFromQuaternion(n,void 0,!1)})),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:e},quaternion:{configurable:!0,enumerable:!0,value:n},scale:{configurable:!0,enumerable:!0,value:i},modelViewMatrix:{value:new Vt},normalMatrix:{value:new et}}),this.matrix=new Vt,this.matrixWorld=new Vt,this.matrixAutoUpdate=pe.DefaultMatrixAutoUpdate,this.matrixWorldNeedsUpdate=!1,this.layers=new $t,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeRender(){}onAfterRender(){}applyMatrix4(t){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(t),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(t){return this.quaternion.premultiply(t),this}setRotationFromAxisAngle(t,e){this.quaternion.setFromAxisAngle(t,e)}setRotationFromEuler(t){this.quaternion.setFromEuler(t,!0)}setRotationFromMatrix(t){this.quaternion.setFromRotationMatrix(t)}setRotationFromQuaternion(t){this.quaternion.copy(t)}rotateOnAxis(t,e){return ne.setFromAxisAngle(t,e),this.quaternion.multiply(ne),this}rotateOnWorldAxis(t,e){return ne.setFromAxisAngle(t,e),this.quaternion.premultiply(ne),this}rotateX(t){return this.rotateOnAxis(le,t)}rotateY(t){return this.rotateOnAxis(ce,t)}rotateZ(t){return this.rotateOnAxis(he,t)}translateOnAxis(t,e){return ee.copy(t).applyQuaternion(this.quaternion),this.position.add(ee.multiplyScalar(e)),this}translateX(t){return this.translateOnAxis(le,t)}translateY(t){return this.translateOnAxis(ce,t)}translateZ(t){return this.translateOnAxis(he,t)}localToWorld(t){return t.applyMatrix4(this.matrixWorld)}worldToLocal(t){return t.applyMatrix4(ie.copy(this.matrixWorld).invert())}lookAt(t,e,n){t.isVector3?re.copy(t):re.set(t,e,n);const i=this.parent;this.updateWorldMatrix(!0,!1),se.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?ie.lookAt(se,re,this.up):ie.lookAt(re,se,this.up),this.quaternion.setFromRotationMatrix(ie),i&&(ie.extractRotation(i.matrixWorld),ne.setFromRotationMatrix(ie),this.quaternion.premultiply(ne.invert()))}add(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return t===this?(console.error("THREE.Object3D.add: object can't be added as a child of itself.",t),this):(t&&t.isObject3D?(null!==t.parent&&t.parent.remove(t),t.parent=this,this.children.push(t),t.dispatchEvent(ue)):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",t),this)}remove(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.remove(arguments[t]);return this}const e=this.children.indexOf(t);return-1!==e&&(t.parent=null,this.children.splice(e,1),t.dispatchEvent(de)),this}removeFromParent(){const t=this.parent;return null!==t&&t.remove(this),this}clear(){for(let t=0;t<this.children.length;t++){const e=this.children[t];e.parent=null,e.dispatchEvent(de)}return this.children.length=0,this}attach(t){return this.updateWorldMatrix(!0,!1),ie.copy(this.matrixWorld).invert(),null!==t.parent&&(t.parent.updateWorldMatrix(!0,!1),ie.multiply(t.parent.matrixWorld)),t.applyMatrix4(ie),this.add(t),t.updateWorldMatrix(!1,!0),this}getObjectById(t){return this.getObjectByProperty("id",t)}getObjectByName(t){return this.getObjectByProperty("name",t)}getObjectByProperty(t,e){if(this[t]===e)return this;for(let n=0,i=this.children.length;n<i;n++){const i=this.children[n].getObjectByProperty(t,e);if(void 0!==i)return i}}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(se,t,ae),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(se,oe,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverse(t)}traverseVisible(t){if(!1===this.visible)return;t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverseVisible(t)}traverseAncestors(t){const e=this.parent;null!==e&&(t(e),e.traverseAncestors(t))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,t=!0);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].updateMatrixWorld(t)}updateWorldMatrix(t,e){const n=this.parent;if(!0===t&&null!==n&&n.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),!0===e){const t=this.children;for(let e=0,n=t.length;e<n;e++)t[e].updateWorldMatrix(!1,!0)}}toJSON(t){const e=void 0===t||"string"===typeof t,n={};e&&(t={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{}},n.metadata={version:4.5,type:"Object",generator:"Object3D.toJSON"});const i={};function r(e,n){return void 0===e[n.uuid]&&(e[n.uuid]=n.toJSON(t)),n.uuid}if(i.uuid=this.uuid,i.type=this.type,""!==this.name&&(i.name=this.name),!0===this.castShadow&&(i.castShadow=!0),!0===this.receiveShadow&&(i.receiveShadow=!0),!1===this.visible&&(i.visible=!1),!1===this.frustumCulled&&(i.frustumCulled=!1),0!==this.renderOrder&&(i.renderOrder=this.renderOrder),"{}"!==JSON.stringify(this.userData)&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,i=n.length;e<i;e++){const i=n[e];r(t.shapes,i)}else r(t.shapes,n)}}if(this.isSkinnedMesh&&(i.bindMode=this.bindMode,i.bindMatrix=this.bindMatrix.toArray(),void 0!==this.skeleton&&(r(t.skeletons,this.skeleton),i.skeleton=this.skeleton.uuid)),void 0!==this.material)if(Array.isArray(this.material)){const e=[];for(let n=0,i=this.material.length;n<i;n++)e.push(r(t.materials,this.material[n]));i.material=e}else i.material=r(t.materials,this.material);if(this.children.length>0){i.children=[];for(let e=0;e<this.children.length;e++)i.children.push(this.children[e].toJSON(t).object)}if(this.animations.length>0){i.animations=[];for(let e=0;e<this.animations.length;e++){const n=this.animations[e];i.animations.push(r(t.animations,n))}}if(e){const e=s(t.geometries),i=s(t.materials),r=s(t.textures),a=s(t.images),o=s(t.shapes),l=s(t.skeletons),c=s(t.animations);e.length>0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c)}return n.object=i,n;function s(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let n=0;n<t.children.length;n++){const e=t.children[n];this.add(e.clone())}return this}}pe.DefaultUp=new ut(0,1,0),pe.DefaultMatrixAutoUpdate=!0,pe.prototype.isObject3D=!0;const me=new ut,fe=new ut,ge=new ut,ve=new ut,ye=new ut,xe=new ut,_e=new ut,be=new ut,Me=new ut,we=new ut;class Se{constructor(t=new ut,e=new ut,n=new ut){this.a=t,this.b=e,this.c=n}static getNormal(t,e,n,i){i.subVectors(n,e),me.subVectors(t,e),i.cross(me);const r=i.lengthSq();return r>0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){me.subVectors(i,e),fe.subVectors(n,e),ge.subVectors(t,e);const s=me.dot(me),a=me.dot(fe),o=me.dot(ge),l=fe.dot(fe),c=fe.dot(ge),h=s*l-a*a;if(0===h)return r.set(-2,-1,-1);const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,ve),ve.x>=0&&ve.y>=0&&ve.x+ve.y<=1}static getUV(t,e,n,i,r,s,a,o){return this.getBarycoord(t,e,n,i,ve),o.set(0,0),o.addScaledVector(r,ve.x),o.addScaledVector(s,ve.y),o.addScaledVector(a,ve.z),o}static isFrontFacing(t,e,n,i){return me.subVectors(n,e),fe.subVectors(t,e),me.cross(fe).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return me.subVectors(this.c,this.b),fe.subVectors(this.a,this.b),.5*me.cross(fe).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return Se.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return Se.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,r){return Se.getUV(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return Se.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return Se.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,r=this.c;let s,a;ye.subVectors(i,n),xe.subVectors(r,n),be.subVectors(t,n);const o=ye.dot(be),l=xe.dot(be);if(o<=0&&l<=0)return e.copy(n);Me.subVectors(t,i);const c=ye.dot(Me),h=xe.dot(Me);if(c>=0&&h<=c)return e.copy(i);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),e.copy(n).addScaledVector(ye,s);we.subVectors(t,r);const d=ye.dot(we),p=xe.dot(we);if(p>=0&&d<=p)return e.copy(r);const m=d*l-o*p;if(m<=0&&l>=0&&p<=0)return a=l/(l-p),e.copy(n).addScaledVector(xe,a);const f=c*p-d*h;if(f<=0&&h-c>=0&&d-p>=0)return _e.subVectors(r,i),a=(h-c)/(h-c+(d-p)),e.copy(i).addScaledVector(_e,a);const g=1/(f+m+u);return s=m*g,a=u*g,e.copy(n).addScaledVector(ye,s).addScaledVector(xe,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}let Te=0;class Ee extends W{constructor(){super(),Object.defineProperty(this,"id",{value:Te++}),this.uuid=Y(),this.name="",this.type="Material",this.fog=!0,this.blending=1,this.side=0,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=a,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=H,this.stencilZFail=H,this.stencilZPass=H,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaTest=0,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0}onBuild(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn("THREE.Material: '"+e+"' parameter is undefined.");continue}if("shading"===e){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===n;continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn("THREE."+this.type+": '"+e+"' is not a property of this material.")}}toJSON(t){const e=void 0===t||"string"===typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),this.sheen&&this.sheen.isColor&&(n.sheen=this.sheen.getHex()),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),0!==this.side&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.morphTargets&&(n.morphTargets=!0),!0===this.morphNormals&&(n.morphNormals=!0),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),"{}"!==JSON.stringify(this.userData)&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.fog=t.fog,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){!0===t&&this.version++}}Ee.prototype.isMaterial=!0;const Le={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Ae={h:0,s:0,l:0},Re={h:0,s:0,l:0};function Ce(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}function Pe(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function De(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}class Ie{constructor(t,e,n){return void 0===e&&void 0===n?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):"number"===typeof t?this.setHex(t):"string"===typeof t&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this}setRGB(t,e,n){return this.r=t,this.g=e,this.b=n,this}setHSL(t,e,n){if(t=Z(t,1),e=J(e,0,1),n=J(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=Ce(r,i,t+1/3),this.g=Ce(r,i,t),this.b=Ce(r,i,t-1/3)}return this}setStyle(t){function e(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let n;if(n=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(t)){let t;const i=n[1],r=n[2];switch(i){case"rgb":case"rgba":if(t=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(r))return this.r=Math.min(255,parseInt(t[1],10))/255,this.g=Math.min(255,parseInt(t[2],10))/255,this.b=Math.min(255,parseInt(t[3],10))/255,e(t[4]),this;if(t=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(r))return this.r=Math.min(100,parseInt(t[1],10))/100,this.g=Math.min(100,parseInt(t[2],10))/100,this.b=Math.min(100,parseInt(t[3],10))/100,e(t[4]),this;break;case"hsl":case"hsla":if(t=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(r)){const n=parseFloat(t[1])/360,i=parseInt(t[2],10)/100,r=parseInt(t[3],10)/100;return e(t[4]),this.setHSL(n,i,r)}}}else if(n=/^\#([A-Fa-f\d]+)$/.exec(t)){const t=n[1],e=t.length;if(3===e)return this.r=parseInt(t.charAt(0)+t.charAt(0),16)/255,this.g=parseInt(t.charAt(1)+t.charAt(1),16)/255,this.b=parseInt(t.charAt(2)+t.charAt(2),16)/255,this;if(6===e)return this.r=parseInt(t.charAt(0)+t.charAt(1),16)/255,this.g=parseInt(t.charAt(2)+t.charAt(3),16)/255,this.b=parseInt(t.charAt(4)+t.charAt(5),16)/255,this}return t&&t.length>0?this.setColorName(t):this}setColorName(t){const e=Le[t.toLowerCase()];return void 0!==e?this.setHex(e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copyGammaToLinear(t,e=2){return this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this}copyLinearToGamma(t,e=2){const n=e>0?1/e:1;return this.r=Math.pow(t.r,n),this.g=Math.pow(t.g,n),this.b=Math.pow(t.b,n),this}convertGammaToLinear(t){return this.copyGammaToLinear(this,t),this}convertLinearToGamma(t){return this.copyLinearToGamma(this,t),this}copySRGBToLinear(t){return this.r=Pe(t.r),this.g=Pe(t.g),this.b=Pe(t.b),this}copyLinearToSRGB(t){return this.r=De(t.r),this.g=De(t.g),this.b=De(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0}getHexString(){return("000000"+this.getHex().toString(16)).slice(-6)}getHSL(t){const e=this.r,n=this.g,i=this.b,r=Math.max(e,n,i),s=Math.min(e,n,i);let a,o;const l=(s+r)/2;if(s===r)a=0,o=0;else{const t=r-s;switch(o=l<=.5?t/(r+s):t/(2-r-s),r){case e:a=(n-i)/t+(n<i?6:0);break;case n:a=(i-e)/t+2;break;case i:a=(e-n)/t+4}a/=6}return t.h=a,t.s=o,t.l=l,t}getStyle(){return"rgb("+(255*this.r|0)+","+(255*this.g|0)+","+(255*this.b|0)+")"}offsetHSL(t,e,n){return this.getHSL(Ae),Ae.h+=t,Ae.s+=e,Ae.l+=n,this.setHSL(Ae.h,Ae.s,Ae.l),this}add(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this}addColors(t,e){return this.r=t.r+e.r,this.g=t.g+e.g,this.b=t.b+e.b,this}addScalar(t){return this.r+=t,this.g+=t,this.b+=t,this}sub(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this}multiply(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this}multiplyScalar(t){return this.r*=t,this.g*=t,this.b*=t,this}lerp(t,e){return this.r+=(t.r-this.r)*e,this.g+=(t.g-this.g)*e,this.b+=(t.b-this.b)*e,this}lerpColors(t,e,n){return this.r=t.r+(e.r-t.r)*n,this.g=t.g+(e.g-t.g)*n,this.b=t.b+(e.b-t.b)*n,this}lerpHSL(t,e){this.getHSL(Ae),t.getHSL(Re);const n=Q(Ae.h,Re.h,e),i=Q(Ae.s,Re.s,e),r=Q(Ae.l,Re.l,e);return this.setHSL(n,i,r),this}equals(t){return t.r===this.r&&t.g===this.g&&t.b===this.b}fromArray(t,e=0){return this.r=t[e],this.g=t[e+1],this.b=t[e+2],this}toArray(t=[],e=0){return t[e]=this.r,t[e+1]=this.g,t[e+2]=this.b,t}fromBufferAttribute(t,e){return this.r=t.getX(e),this.g=t.getY(e),this.b=t.getZ(e),!0===t.normalized&&(this.r/=255,this.g/=255,this.b/=255),this}toJSON(){return this.getHex()}}Ie.NAMES=Le,Ie.prototype.isColor=!0,Ie.prototype.r=1,Ie.prototype.g=1,Ie.prototype.b=1;class Ne extends Ee{constructor(t){super(),this.type="MeshBasicMaterial",this.color=new Ie(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.morphTargets=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this}}Ne.prototype.isMeshBasicMaterial=!0;const ze=new ut,Oe=new tt;class Be{constructor(t,e,n){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=!0===n,this.usage=G,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,r=this.itemSize;i<r;i++)this.array[t+i]=e.array[n+i];return this}copyArray(t){return this.array.set(t),this}copyColorsArray(t){const e=this.array;let n=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined",i),r=new Ie),e[n++]=r.r,e[n++]=r.g,e[n++]=r.b}return this}copyVector2sArray(t){const e=this.array;let n=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined",i),r=new tt),e[n++]=r.x,e[n++]=r.y}return this}copyVector3sArray(t){const e=this.array;let n=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined",i),r=new ut),e[n++]=r.x,e[n++]=r.y,e[n++]=r.z}return this}copyVector4sArray(t){const e=this.array;let n=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined",i),r=new ot),e[n++]=r.x,e[n++]=r.y,e[n++]=r.z,e[n++]=r.w}return this}applyMatrix3(t){if(2===this.itemSize)for(let e=0,n=this.count;e<n;e++)Oe.fromBufferAttribute(this,e),Oe.applyMatrix3(t),this.setXY(e,Oe.x,Oe.y);else if(3===this.itemSize)for(let e=0,n=this.count;e<n;e++)ze.fromBufferAttribute(this,e),ze.applyMatrix3(t),this.setXYZ(e,ze.x,ze.y,ze.z);return this}applyMatrix4(t){for(let e=0,n=this.count;e<n;e++)ze.x=this.getX(e),ze.y=this.getY(e),ze.z=this.getZ(e),ze.applyMatrix4(t),this.setXYZ(e,ze.x,ze.y,ze.z);return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++)ze.x=this.getX(e),ze.y=this.getY(e),ze.z=this.getZ(e),ze.applyNormalMatrix(t),this.setXYZ(e,ze.x,ze.y,ze.z);return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++)ze.x=this.getX(e),ze.y=this.getY(e),ze.z=this.getZ(e),ze.transformDirection(t),this.setXYZ(e,ze.x,ze.y,ze.z);return this}set(t,e=0){return this.array.set(t,e),this}getX(t){return this.array[t*this.itemSize]}setX(t,e){return this.array[t*this.itemSize]=e,this}getY(t){return this.array[t*this.itemSize+1]}setY(t,e){return this.array[t*this.itemSize+1]=e,this}getZ(t){return this.array[t*this.itemSize+2]}setZ(t,e){return this.array[t*this.itemSize+2]=e,this}getW(t){return this.array[t*this.itemSize+3]}setW(t,e){return this.array[t*this.itemSize+3]=e,this}setXY(t,e,n){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this}setXYZ(t,e,n,i){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=i,this}setXYZW(t,e,n,i,r){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=i,this.array[t+3]=r,this}onUpload(t){return this.onUploadCallback=t,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const t={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.prototype.slice.call(this.array),normalized:this.normalized};return""!==this.name&&(t.name=this.name),this.usage!==G&&(t.usage=this.usage),0===this.updateRange.offset&&-1===this.updateRange.count||(t.updateRange=this.updateRange),t}}Be.prototype.isBufferAttribute=!0;class Fe extends Be{constructor(t,e,n){super(new Uint16Array(t),e,n)}}class Ue extends Be{constructor(t,e,n){super(new Uint32Array(t),e,n)}}(class extends Be{constructor(t,e,n){super(new Uint16Array(t),e,n)}}).prototype.isFloat16BufferAttribute=!0;class He extends Be{constructor(t,e,n){super(new Float32Array(t),e,n)}}function Ge(t){if(0===t.length)return-1/0;let e=t[0];for(let n=1,i=t.length;n<i;++n)t[n]>e&&(e=t[n]);return e}Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array;let Ve=0;const ke=new Vt,We=new pe,je=new ut,qe=new mt,Xe=new mt,Ye=new ut;class Je extends W{constructor(){super(),Object.defineProperty(this,"id",{value:Ve++}),this.uuid=Y(),this.name="",this.type="BufferGeometry",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(t){return Array.isArray(t)?this.index=new(Ge(t)>65535?Ue:Fe)(t,1):this.index=t,this}getAttribute(t){return this.attributes[t]}setAttribute(t,e){return this.attributes[t]=e,this}deleteAttribute(t){return delete this.attributes[t],this}hasAttribute(t){return void 0!==this.attributes[t]}addGroup(t,e,n=0){this.groups.push({start:t,count:e,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(t,e){this.drawRange.start=t,this.drawRange.count=e}applyMatrix4(t){const e=this.attributes.position;void 0!==e&&(e.applyMatrix4(t),e.needsUpdate=!0);const n=this.attributes.normal;if(void 0!==n){const e=(new et).getNormalMatrix(t);n.applyNormalMatrix(e),n.needsUpdate=!0}const i=this.attributes.tangent;return void 0!==i&&(i.transformDirection(t),i.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}applyQuaternion(t){return ke.makeRotationFromQuaternion(t),this.applyMatrix4(ke),this}rotateX(t){return ke.makeRotationX(t),this.applyMatrix4(ke),this}rotateY(t){return ke.makeRotationY(t),this.applyMatrix4(ke),this}rotateZ(t){return ke.makeRotationZ(t),this.applyMatrix4(ke),this}translate(t,e,n){return ke.makeTranslation(t,e,n),this.applyMatrix4(ke),this}scale(t,e,n){return ke.makeScale(t,e,n),this.applyMatrix4(ke),this}lookAt(t){return We.lookAt(t),We.updateMatrix(),this.applyMatrix4(We.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(je).negate(),this.translate(je.x,je.y,je.z),this}setFromPoints(t){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n];e.push(i.x,i.y,i.z||0)}return this.setAttribute("position",new He(e,3)),this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new mt);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set "mesh.frustumCulled" to "false".',this),void this.boundingBox.set(new ut(-1/0,-1/0,-1/0),new ut(1/0,1/0,1/0));if(void 0!==t){if(this.boundingBox.setFromBufferAttribute(t),e)for(let n=0,i=e.length;n<i;n++){const t=e[n];qe.setFromBufferAttribute(t),this.morphTargetsRelative?(Ye.addVectors(this.boundingBox.min,qe.min),this.boundingBox.expandByPoint(Ye),Ye.addVectors(this.boundingBox.max,qe.max),this.boundingBox.expandByPoint(Ye)):(this.boundingBox.expandByPoint(qe.min),this.boundingBox.expandByPoint(qe.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new It);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set "mesh.frustumCulled" to "false".',this),void this.boundingSphere.set(new ut,1/0);if(t){const n=this.boundingSphere.center;if(qe.setFromBufferAttribute(t),e)for(let t=0,r=e.length;t<r;t++){const n=e[t];Xe.setFromBufferAttribute(n),this.morphTargetsRelative?(Ye.addVectors(qe.min,Xe.min),qe.expandByPoint(Ye),Ye.addVectors(qe.max,Xe.max),qe.expandByPoint(Ye)):(qe.expandByPoint(Xe.min),qe.expandByPoint(Xe.max))}qe.getCenter(n);let i=0;for(let e=0,r=t.count;e<r;e++)Ye.fromBufferAttribute(t,e),i=Math.max(i,n.distanceToSquared(Ye));if(e)for(let r=0,s=e.length;r<s;r++){const s=e[r],a=this.morphTargetsRelative;for(let e=0,r=s.count;e<r;e++)Ye.fromBufferAttribute(s,e),a&&(je.fromBufferAttribute(t,e),Ye.add(je)),i=Math.max(i,n.distanceToSquared(Ye))}this.boundingSphere.radius=Math.sqrt(i),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}}computeFaceNormals(){}computeTangents(){const t=this.index,e=this.attributes;if(null===t||void 0===e.position||void 0===e.normal||void 0===e.uv)return void console.error("THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");const n=t.array,i=e.position.array,r=e.normal.array,s=e.uv.array,a=i.length/3;void 0===e.tangent&&this.setAttribute("tangent",new Be(new Float32Array(4*a),4));const o=e.tangent.array,l=[],c=[];for(let T=0;T<a;T++)l[T]=new ut,c[T]=new ut;const h=new ut,u=new ut,d=new ut,p=new tt,m=new tt,f=new tt,g=new ut,v=new ut;function y(t,e,n){h.fromArray(i,3*t),u.fromArray(i,3*e),d.fromArray(i,3*n),p.fromArray(s,2*t),m.fromArray(s,2*e),f.fromArray(s,2*n),u.sub(h),d.sub(h),m.sub(p),f.sub(p);const r=1/(m.x*f.y-f.x*m.y);isFinite(r)&&(g.copy(u).multiplyScalar(f.y).addScaledVector(d,-m.y).multiplyScalar(r),v.copy(d).multiplyScalar(m.x).addScaledVector(u,-f.x).multiplyScalar(r),l[t].add(g),l[e].add(g),l[n].add(g),c[t].add(v),c[e].add(v),c[n].add(v))}let x=this.groups;0===x.length&&(x=[{start:0,count:n.length}]);for(let T=0,E=x.length;T<E;++T){const t=x[T],e=t.start;for(let i=e,r=e+t.count;i<r;i+=3)y(n[i+0],n[i+1],n[i+2])}const _=new ut,b=new ut,M=new ut,w=new ut;function S(t){M.fromArray(r,3*t),w.copy(M);const e=l[t];_.copy(e),_.sub(M.multiplyScalar(M.dot(e))).normalize(),b.crossVectors(w,e);const n=b.dot(c[t])<0?-1:1;o[4*t]=_.x,o[4*t+1]=_.y,o[4*t+2]=_.z,o[4*t+3]=n}for(let T=0,E=x.length;T<E;++T){const t=x[T],e=t.start;for(let i=e,r=e+t.count;i<r;i+=3)S(n[i+0]),S(n[i+1]),S(n[i+2])}}computeVertexNormals(){const t=this.index,e=this.getAttribute("position");if(void 0!==e){let n=this.getAttribute("normal");if(void 0===n)n=new Be(new Float32Array(3*e.count),3),this.setAttribute("normal",n);else for(let t=0,e=n.count;t<e;t++)n.setXYZ(t,0,0,0);const i=new ut,r=new ut,s=new ut,a=new ut,o=new ut,l=new ut,c=new ut,h=new ut;if(t)for(let u=0,d=t.count;u<d;u+=3){const d=t.getX(u+0),p=t.getX(u+1),m=t.getX(u+2);i.fromBufferAttribute(e,d),r.fromBufferAttribute(e,p),s.fromBufferAttribute(e,m),c.subVectors(s,r),h.subVectors(i,r),c.cross(h),a.fromBufferAttribute(n,d),o.fromBufferAttribute(n,p),l.fromBufferAttribute(n,m),a.add(c),o.add(c),l.add(c),n.setXYZ(d,a.x,a.y,a.z),n.setXYZ(p,o.x,o.y,o.z),n.setXYZ(m,l.x,l.y,l.z)}else for(let t=0,u=e.count;t<u;t+=3)i.fromBufferAttribute(e,t+0),r.fromBufferAttribute(e,t+1),s.fromBufferAttribute(e,t+2),c.subVectors(s,r),h.subVectors(i,r),c.cross(h),n.setXYZ(t+0,c.x,c.y,c.z),n.setXYZ(t+1,c.x,c.y,c.z),n.setXYZ(t+2,c.x,c.y,c.z);this.normalizeNormals(),n.needsUpdate=!0}}merge(t,e){if(!t||!t.isBufferGeometry)return void console.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.",t);void 0===e&&(e=0,console.warn("THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge."));const n=this.attributes;for(const i in n){if(void 0===t.attributes[i])continue;const r=n[i].array,s=t.attributes[i],a=s.array,o=s.itemSize*e,l=Math.min(a.length,r.length-o);for(let t=0,e=o;t<l;t++,e++)r[e]=a[t]}return this}normalizeNormals(){const t=this.attributes.normal;for(let e=0,n=t.count;e<n;e++)Ye.fromBufferAttribute(t,e),Ye.normalize(),t.setXYZ(e,Ye.x,Ye.y,Ye.z)}toNonIndexed(){function t(t,e){const n=t.array,i=t.itemSize,r=t.normalized,s=new n.constructor(e.length*i);let a=0,o=0;for(let l=0,c=e.length;l<c;l++){a=t.isInterleavedBufferAttribute?e[l]*t.data.stride+t.offset:e[l]*i;for(let t=0;t<i;t++)s[o++]=n[a++]}return new Be(s,i,r)}if(null===this.index)return console.warn("THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."),this;const e=new Je,n=this.index.array,i=this.attributes;for(const a in i){const r=t(i[a],n);e.setAttribute(a,r)}const r=this.morphAttributes;for(const a in r){const i=[],s=r[a];for(let e=0,r=s.length;e<r;e++){const r=t(s[e],n);i.push(r)}e.morphAttributes[a]=i}e.morphTargetsRelative=this.morphTargetsRelative;const s=this.groups;for(let a=0,o=s.length;a<o;a++){const t=s[a];e.addGroup(t.start,t.count,t.materialIndex)}return e}toJSON(){const t={metadata:{version:4.5,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,""!==this.name&&(t.name=this.name),Object.keys(this.userData).length>0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const o in n){const e=n[o];t.data.attributes[o]=e.toJSON(t.data)}const i={};let r=!1;for(const o in this.morphAttributes){const e=this.morphAttributes[o],n=[];for(let i=0,r=e.length;i<r;i++){const r=e[i];n.push(r.toJSON(t.data))}n.length>0&&(i[o]=n,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new Je).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const l in i){const t=i[l];this.setAttribute(l,t.clone(e))}const r=t.morphAttributes;for(const l in r){const t=[],n=r[l];for(let i=0,r=n.length;i<r;i++)t.push(n[i].clone(e));this.morphAttributes[l]=t}this.morphTargetsRelative=t.morphTargetsRelative;const s=t.groups;for(let l=0,c=s.length;l<c;l++){const t=s[l];this.addGroup(t.start,t.count,t.materialIndex)}const a=t.boundingBox;null!==a&&(this.boundingBox=a.clone());const o=t.boundingSphere;return null!==o&&(this.boundingSphere=o.clone()),this.drawRange.start=t.drawRange.start,this.drawRange.count=t.drawRange.count,this.userData=t.userData,this}dispose(){this.dispatchEvent({type:"dispose"})}}Je.prototype.isBufferGeometry=!0;const Ze=new Vt,Qe=new Gt,Ke=new It,$e=new ut,tn=new ut,en=new ut,nn=new ut,rn=new ut,sn=new ut,an=new ut,on=new ut,ln=new ut,cn=new tt,hn=new tt,un=new tt,dn=new ut,pn=new ut;class mn extends pe{constructor(t=new Je,e=new Ne){super(),this.type="Mesh",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),void 0!==t.morphTargetInfluences&&(this.morphTargetInfluences=t.morphTargetInfluences.slice()),void 0!==t.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary)),this.material=t.material,this.geometry=t.geometry,this}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}}raycast(t,e){const n=this.geometry,i=this.material,r=this.matrixWorld;if(void 0===i)return;if(null===n.boundingSphere&&n.computeBoundingSphere(),Ke.copy(n.boundingSphere),Ke.applyMatrix4(r),!1===t.ray.intersectsSphere(Ke))return;if(Ze.copy(r).invert(),Qe.copy(t.ray).applyMatrix4(Ze),null!==n.boundingBox&&!1===Qe.intersectsBox(n.boundingBox))return;let s;if(n.isBufferGeometry){const r=n.index,a=n.attributes.position,o=n.morphAttributes.position,l=n.morphTargetsRelative,c=n.attributes.uv,h=n.attributes.uv2,u=n.groups,d=n.drawRange;if(null!==r)if(Array.isArray(i))for(let n=0,p=u.length;n<p;n++){const p=u[n],m=i[p.materialIndex];for(let n=Math.max(p.start,d.start),i=Math.min(p.start+p.count,d.start+d.count);n<i;n+=3){const i=r.getX(n),u=r.getX(n+1),d=r.getX(n+2);s=fn(this,m,t,Qe,a,o,l,c,h,i,u,d),s&&(s.faceIndex=Math.floor(n/3),s.face.materialIndex=p.materialIndex,e.push(s))}}else{for(let n=Math.max(0,d.start),u=Math.min(r.count,d.start+d.count);n<u;n+=3){const u=r.getX(n),d=r.getX(n+1),p=r.getX(n+2);s=fn(this,i,t,Qe,a,o,l,c,h,u,d,p),s&&(s.faceIndex=Math.floor(n/3),e.push(s))}}else if(void 0!==a)if(Array.isArray(i))for(let n=0,p=u.length;n<p;n++){const r=u[n],p=i[r.materialIndex];for(let n=Math.max(r.start,d.start),i=Math.min(r.start+r.count,d.start+d.count);n<i;n+=3){s=fn(this,p,t,Qe,a,o,l,c,h,n,n+1,n+2),s&&(s.faceIndex=Math.floor(n/3),s.face.materialIndex=r.materialIndex,e.push(s))}}else{for(let n=Math.max(0,d.start),r=Math.min(a.count,d.start+d.count);n<r;n+=3){s=fn(this,i,t,Qe,a,o,l,c,h,n,n+1,n+2),s&&(s.faceIndex=Math.floor(n/3),e.push(s))}}}else n.isGeometry&&console.error("THREE.Mesh.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}}function fn(t,e,n,i,r,a,o,l,c,h,u,d){$e.fromBufferAttribute(r,h),tn.fromBufferAttribute(r,u),en.fromBufferAttribute(r,d);const p=t.morphTargetInfluences;if(e.morphTargets&&a&&p){an.set(0,0,0),on.set(0,0,0),ln.set(0,0,0);for(let t=0,e=a.length;t<e;t++){const e=p[t],n=a[t];0!==e&&(nn.fromBufferAttribute(n,h),rn.fromBufferAttribute(n,u),sn.fromBufferAttribute(n,d),o?(an.addScaledVector(nn,e),on.addScaledVector(rn,e),ln.addScaledVector(sn,e)):(an.addScaledVector(nn.sub($e),e),on.addScaledVector(rn.sub(tn),e),ln.addScaledVector(sn.sub(en),e)))}$e.add(an),tn.add(on),en.add(ln)}t.isSkinnedMesh&&(t.boneTransform(h,$e),t.boneTransform(u,tn),t.boneTransform(d,en));const m=function(t,e,n,i,r,a,o,l){let c;if(c=e.side===s?i.intersectTriangle(o,a,r,!0,l):i.intersectTriangle(r,a,o,2!==e.side,l),null===c)return null;pn.copy(l),pn.applyMatrix4(t.matrixWorld);const h=n.ray.origin.distanceTo(pn);return h<n.near||h>n.far?null:{distance:h,point:pn.clone(),object:t}}(t,e,n,i,$e,tn,en,dn);if(m){l&&(cn.fromBufferAttribute(l,h),hn.fromBufferAttribute(l,u),un.fromBufferAttribute(l,d),m.uv=Se.getUV(dn,$e,tn,en,cn,hn,un,new tt)),c&&(cn.fromBufferAttribute(c,h),hn.fromBufferAttribute(c,u),un.fromBufferAttribute(c,d),m.uv2=Se.getUV(dn,$e,tn,en,cn,hn,un,new tt));const t={a:h,b:u,c:d,normal:new ut,materialIndex:0};Se.getNormal($e,tn,en,t.normal),m.face=t}return m}mn.prototype.isMesh=!0;class gn extends Je{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i),r=Math.floor(r),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function p(t,e,n,i,r,s,p,m,f,g,v){const y=s/f,x=p/g,_=s/2,b=p/2,M=m/2,w=f+1,S=g+1;let T=0,E=0;const L=new ut;for(let a=0;a<S;a++){const s=a*x-b;for(let o=0;o<w;o++){const u=o*y-_;L[t]=u*i,L[e]=s*r,L[n]=M,l.push(L.x,L.y,L.z),L[t]=0,L[e]=0,L[n]=m>0?1:-1,c.push(L.x,L.y,L.z),h.push(o/f),h.push(1-a/g),T+=1}}for(let a=0;a<g;a++)for(let t=0;t<f;t++){const e=u+t+w*a,n=u+t+w*(a+1),i=u+(t+1)+w*(a+1),r=u+(t+1)+w*a;o.push(e,n,r),o.push(n,i,r),E+=6}a.addGroup(d,E,v),d+=E,u+=T}p("z","y","x",-1,-1,n,e,t,s,r,0),p("z","y","x",1,-1,n,e,-t,s,r,1),p("x","z","y",1,1,t,n,e,i,s,2),p("x","z","y",1,-1,t,n,-e,i,s,3),p("x","y","z",1,-1,t,e,n,i,r,4),p("x","y","z",-1,-1,t,e,-n,i,r,5),this.setIndex(o),this.setAttribute("position",new He(l,3)),this.setAttribute("normal",new He(c,3)),this.setAttribute("uv",new He(h,2))}static fromJSON(t){return new gn(t.width,t.height,t.depth,t.widthSegments,t.heightSegments,t.depthSegments)}}function vn(t){const e={};for(const n in t){e[n]={};for(const i in t[n]){const r=t[n][i];r&&(r.isColor||r.isMatrix3||r.isMatrix4||r.isVector2||r.isVector3||r.isVector4||r.isTexture||r.isQuaternion)?e[n][i]=r.clone():Array.isArray(r)?e[n][i]=r.slice():e[n][i]=r}}return e}function yn(t){const e={};for(let n=0;n<t.length;n++){const i=vn(t[n]);for(const t in i)e[t]=i[t]}return e}const xn={clone:vn,merge:yn};class _n extends Ee{constructor(t){super(),this.type="ShaderMaterial",this.defines={},this.uniforms={},this.vertexShader="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",this.fragmentShader="void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}",this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.morphTargets=!1,this.morphNormals=!1,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,void 0!==t&&(void 0!==t.attributes&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),this.setValues(t))}copy(t){return super.copy(t),this.fragmentShader=t.fragmentShader,this.vertexShader=t.vertexShader,this.uniforms=vn(t.uniforms),this.defines=Object.assign({},t.defines),this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.lights=t.lights,this.clipping=t.clipping,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.extensions=Object.assign({},t.extensions),this.glslVersion=t.glslVersion,this}toJSON(t){const e=super.toJSON(t);e.glslVersion=this.glslVersion,e.uniforms={};for(const i in this.uniforms){const n=this.uniforms[i].value;n&&n.isTexture?e.uniforms[i]={type:"t",value:n.toJSON(t).uuid}:n&&n.isColor?e.uniforms[i]={type:"c",value:n.getHex()}:n&&n.isVector2?e.uniforms[i]={type:"v2",value:n.toArray()}:n&&n.isVector3?e.uniforms[i]={type:"v3",value:n.toArray()}:n&&n.isVector4?e.uniforms[i]={type:"v4",value:n.toArray()}:n&&n.isMatrix3?e.uniforms[i]={type:"m3",value:n.toArray()}:n&&n.isMatrix4?e.uniforms[i]={type:"m4",value:n.toArray()}:e.uniforms[i]={value:n}}Object.keys(this.defines).length>0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;const n={};for(const i in this.extensions)!0===this.extensions[i]&&(n[i]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}_n.prototype.isShaderMaterial=!0;class bn extends pe{constructor(){super(),this.type="Camera",this.matrixWorldInverse=new Vt,this.projectionMatrix=new Vt,this.projectionMatrixInverse=new Vt}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}bn.prototype.isCamera=!0;class Mn extends bn{constructor(t=50,e=1,n=.1,i=2e3){super(),this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*X*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*q*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*X*Math.atan(Math.tan(.5*q*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*q*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const s=this.view;if(null!==this.view&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t,e-=s.offsetY*n/a,i*=s.width/t,n*=s.height/a}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}Mn.prototype.isPerspectiveCamera=!0;const wn=90;class Sn extends pe{constructor(t,e,n){if(super(),this.type="CubeCamera",!0!==n.isWebGLCubeRenderTarget)return void console.error("THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.");this.renderTarget=n;const i=new Mn(wn,1,t,e);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new ut(1,0,0)),this.add(i);const r=new Mn(wn,1,t,e);r.layers=this.layers,r.up.set(0,-1,0),r.lookAt(new ut(-1,0,0)),this.add(r);const s=new Mn(wn,1,t,e);s.layers=this.layers,s.up.set(0,0,1),s.lookAt(new ut(0,1,0)),this.add(s);const a=new Mn(wn,1,t,e);a.layers=this.layers,a.up.set(0,0,-1),a.lookAt(new ut(0,-1,0)),this.add(a);const o=new Mn(wn,1,t,e);o.layers=this.layers,o.up.set(0,-1,0),o.lookAt(new ut(0,0,1)),this.add(o);const l=new Mn(wn,1,t,e);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new ut(0,0,-1)),this.add(l)}update(t,e){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[i,r,s,a,o,l]=this.children,c=t.xr.enabled,h=t.getRenderTarget();t.xr.enabled=!1;const u=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,r),t.setRenderTarget(n,2),t.render(e,s),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,o),n.texture.generateMipmaps=u,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(h),t.xr.enabled=c}}class Tn extends st{constructor(t,e,n,i,r,s,a,l,c,h){super(t=void 0!==t?t:[],e=void 0!==e?e:o,n,i,r,s,a=void 0!==a?a:T,l,c,h),this._needsFlipEnvMap=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}Tn.prototype.isCubeTexture=!0;class En extends lt{constructor(t,e,n){Number.isInteger(e)&&(console.warn("THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )"),e=n),super(t,t,e),e=e||{},this.texture=new Tn(void 0,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:v,this.texture._needsFlipEnvMap=!1}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.format=E,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include <begin_vertex>\n\t\t\t\t\t#include <project_vertex>\n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include <common>\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},i=new gn(5,5,5),r=new _n({name:"CubemapFromEquirect",uniforms:vn(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:s,blending:0});r.uniforms.tEquirect.value=e;const a=new mn(i,r),o=e.minFilter;e.minFilter===y&&(e.minFilter=v);return new Sn(1,10,this).update(t,a),e.minFilter=o,a.geometry.dispose(),a.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let s=0;s<6;s++)t.setRenderTarget(this,s),t.clear(e,n,i);t.setRenderTarget(r)}}En.prototype.isWebGLCubeRenderTarget=!0;const Ln=new ut,An=new ut,Rn=new et;class Cn{constructor(t=new ut(1,0,0),e=0){this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=Ln.subVectors(n,e).cross(An.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)}intersectLine(t,e){const n=t.delta(Ln),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(n).multiplyScalar(r).add(t.start)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||Rn.getNormalMatrix(t),i=this.coplanarPoint(Ln).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}Cn.prototype.isPlane=!0;const Pn=new It,Dn=new ut;class In{constructor(t=new Cn,e=new Cn,n=new Cn,i=new Cn,r=new Cn,s=new Cn){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(s),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,i=n[0],r=n[1],s=n[2],a=n[3],o=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],m=n[11],f=n[12],g=n[13],v=n[14],y=n[15];return e[0].setComponents(a-i,h-o,m-u,y-f).normalize(),e[1].setComponents(a+i,h+o,m+u,y+f).normalize(),e[2].setComponents(a+r,h+l,m+d,y+g).normalize(),e[3].setComponents(a-r,h-l,m-d,y-g).normalize(),e[4].setComponents(a-s,h-c,m-p,y-v).normalize(),e[5].setComponents(a+s,h+c,m+p,y+v).normalize(),this}intersectsObject(t){const e=t.geometry;return null===e.boundingSphere&&e.computeBoundingSphere(),Pn.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(Pn)}intersectsSprite(t){return Pn.center.set(0,0,0),Pn.radius=.7071067811865476,Pn.applyMatrix4(t.matrixWorld),this.intersectsSphere(Pn)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let r=0;r<6;r++){if(e[r].distanceToPoint(n)<i)return!1}return!0}intersectsBox(t){const e=this.planes;for(let n=0;n<6;n++){const i=e[n];if(Dn.x=i.normal.x>0?t.max.x:t.min.x,Dn.y=i.normal.y>0?t.max.y:t.min.y,Dn.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(Dn)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function Nn(){let t=null,e=!1,n=null,i=null;function r(e,s){n(e,s),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function zn(t,e){const n=e.isWebGL2,i=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),i.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=i.get(e);n&&(t.deleteBuffer(n.buffer),i.delete(e))},update:function(e,r){if(e.isGLBufferAttribute){const t=i.get(e);return void((!t||t.version<e.version)&&i.set(e,{buffer:e.buffer,type:e.type,bytesPerElement:e.elementSize,version:e.version}))}e.isInterleavedBufferAttribute&&(e=e.data);const s=i.get(e);void 0===s?i.set(e,function(e,i){const r=e.array,s=e.usage,a=t.createBuffer();t.bindBuffer(i,a),t.bufferData(i,r,s),e.onUploadCallback();let o=5126;return r instanceof Float32Array?o=5126:r instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):r instanceof Uint16Array?e.isFloat16BufferAttribute?n?o=5131:console.warn("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2."):o=5123:r instanceof Int16Array?o=5122:r instanceof Uint32Array?o=5125:r instanceof Int32Array?o=5124:r instanceof Int8Array?o=5120:(r instanceof Uint8Array||r instanceof Uint8ClampedArray)&&(o=5121),{buffer:a,type:o,bytesPerElement:r.BYTES_PER_ELEMENT,version:e.version}}(e,r)):s.version<e.version&&(!function(e,i,r){const s=i.array,a=i.updateRange;t.bindBuffer(r,e),-1===a.count?t.bufferSubData(r,0,s):(n?t.bufferSubData(r,a.offset*s.BYTES_PER_ELEMENT,s,a.offset,a.count):t.bufferSubData(r,a.offset*s.BYTES_PER_ELEMENT,s.subarray(a.offset,a.offset+a.count)),a.count=-1)}(s.buffer,e,r),s.version=e.version)}}}class On extends Je{constructor(t=1,e=1,n=1,i=1){super(),this.type="PlaneGeometry",this.parameters={width:t,height:e,widthSegments:n,heightSegments:i};const r=t/2,s=e/2,a=Math.floor(n),o=Math.floor(i),l=a+1,c=o+1,h=t/a,u=e/o,d=[],p=[],m=[],f=[];for(let g=0;g<c;g++){const t=g*u-s;for(let e=0;e<l;e++){const n=e*h-r;p.push(n,-t,0),m.push(0,0,1),f.push(e/a),f.push(1-g/o)}}for(let g=0;g<o;g++)for(let t=0;t<a;t++){const e=t+l*g,n=t+l*(g+1),i=t+1+l*(g+1),r=t+1+l*g;d.push(e,n,r),d.push(n,i,r)}this.setIndex(d),this.setAttribute("position",new He(p,3)),this.setAttribute("normal",new He(m,3)),this.setAttribute("uv",new He(f,2))}static fromJSON(t){return new On(t.width,t.height,t.widthSegments,t.heightSegments)}}const Bn={alphamap_fragment:"#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n#endif",alphamap_pars_fragment:"#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",alphatest_fragment:"#ifdef ALPHATEST\n\tif ( diffuseColor.a < ALPHATEST ) discard;\n#endif",aomap_fragment:"#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\n\t#endif\n#endif",aomap_pars_fragment:"#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif",begin_vertex:"vec3 transformed = vec3( position );",beginnormal_vertex:"vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif",bsdfs:"vec2 integrateSpecularBRDF( const in float dotNV, const in float roughness ) {\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\treturn vec2( -1.04, 1.04 ) * a004 + r.zw;\n}\nfloat punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\tif( cutoffDistance > 0.0 ) {\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t}\n\treturn distanceFalloff;\n#else\n\tif( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t}\n\treturn 1.0;\n#endif\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotVH ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\n}\nvec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );\n\tvec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;\n\treturn Fr * fresnel + F0;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( incidentLight.direction + viewDir );\n\tfloat dotNL = saturate( dot( normal, incidentLight.direction ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( G * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nvec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\treturn specularColor * brdf.x + brdf.y;\n}\nvoid BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tvec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\tvec3 FssEss = F * brdf.x + brdf.y;\n\tfloat Ess = brdf.x + brdf.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie(float roughness, float NoH) {\n\tfloat invAlpha = 1.0 / roughness;\n\tfloat cos2h = NoH * NoH;\n\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\treturn (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);\n}\nfloat V_Neubelt(float NoV, float NoL) {\n\treturn saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));\n}\nvec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {\n\tvec3 N = geometry.normal;\n\tvec3 V = geometry.viewDir;\n\tvec3 H = normalize( V + L );\n\tfloat dotNH = saturate( dot( N, H ) );\n\treturn specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );\n}\n#endif",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif",clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement(a) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract(sin(sn) * c);\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance = dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_maxMipLevel 8.0\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_maxTileSize 256.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\tfloat texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize );\n\t\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 );\n\t\tvec2 f = fract( uv );\n\t\tuv += 0.5 - f;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tif ( mipInt < cubeUV_maxMipLevel ) {\n\t\t\tuv.y += 2.0 * cubeUV_maxTileSize;\n\t\t}\n\t\tuv.y += filterInt * 2.0 * cubeUV_minTileSize;\n\t\tuv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize );\n\t\tuv *= texelSize;\n\t\tvec3 tl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.x += texelSize;\n\t\tvec3 tr = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.y += texelSize;\n\t\tvec3 br = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.x -= texelSize;\n\t\tvec3 bl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tvec3 tm = mix( tl, tr, f.x );\n\t\tvec3 bm = mix( bl, br, f.x );\n\t\treturn mix( tm, bm, f.y );\n\t}\n\t#define r0 1.0\n\t#define v0 0.339\n\t#define m0 - 2.0\n\t#define r1 0.8\n\t#define v1 0.276\n\t#define m1 - 1.0\n\t#define r4 0.4\n\t#define v4 0.046\n\t#define m4 2.0\n\t#define r5 0.305\n\t#define v5 0.016\n\t#define m5 3.0\n\t#define r6 0.21\n\t#define v6 0.0038\n\t#define m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= r1 ) {\n\t\t\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\n\t\t} else if ( roughness >= r4 ) {\n\t\t\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\n\t\t} else if ( roughness >= r5 ) {\n\t\t\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\n\t\t} else if ( roughness >= r6 ) {\n\t\t\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 RGBEToLinear( in vec4 value ) {\n\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n\tfloat maxComponent = max( max( value.r, value.g ), value.b );\n\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM = ceil( M * 255.0 ) / 255.0;\n\treturn vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat D = max( maxRange / maxRGB, 1.0 );\n\tD = clamp( floor( D ) / 255.0, 0.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value ) {\n\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\n\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\n\tvec4 vResult;\n\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w = fract( Le );\n\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n\tfloat Le = value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\n\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\n\treturn vec4( max( vRGB, 0.0 ), 1.0 );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifndef ENVMAP_TYPE_CUBE_UV\n\t\tenvColor = envMapTexelToLinear( envColor );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform int maxMipLevel;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\t#ifdef ENVMAP_MODE_REFRACTION\n\t\tuniform float refractionRatio;\n\t#endif\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor = vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}\n\tfloat getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar = float( maxMIPLevel );\n\t\tfloat sigma = PI * roughness * roughness / ( 1.0 + roughness );\n\t\tfloat desiredMIPLevel = maxMIPLevelScalar + log2( sigma );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( -viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( -viewDir, normal, refractionRatio );\n\t\t#endif\n\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\n\t}\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tfogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float fogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float fogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn texture2D( gradientMap, coord ).rgb;\n\t#else\n\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\treflectedLight.indirectDiffuse += PI * lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_vertex:"vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\nvIndirectFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n\tvIndirectBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry );\n#ifdef DOUBLE_SIDED\n\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\n\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry );\n#endif\n#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in GeometricContext geometry ) {\n\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treturn irradiance;\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color = directionalLight.color;\n\t\tdirectLight.direction = directionalLight.direction;\n\t\tdirectLight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tdirectLight.color = pointLight.color;\n\t\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tfloat angleCos = dot( directLight.direction, spotLight.direction );\n\t\tif ( angleCos > spotLight.coneCos ) {\n\t\t\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color = spotLight.color;\n\t\t\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible = true;\n\t\t} else {\n\t\t\tdirectLight.color = vec3( 0.0 );\n\t\t\tdirectLight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\n\t\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance *= PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon\n#define Material_LightProbeLOD( material )\t(0)",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.specularRoughness = max( roughnessFactor, 0.0525 );material.specularRoughness += geometryRoughness;\nmaterial.specularRoughness = min( material.specularRoughness, 1.0 );\n#ifdef REFLECTIVITY\n\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#endif\n#ifdef CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheen;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat specularRoughness;\n\tvec3 specularColor;\n#ifdef CLEARCOAT\n\tfloat clearcoat;\n\tfloat clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tvec3 sheenColor;\n#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearcoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.specularRoughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = ccDotNL * directLight.color;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tccIrradiance *= PI;\n\t\t#endif\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t\treflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(\n\t\t\tmaterial.specularRoughness,\n\t\t\tdirectLight.direction,\n\t\t\tgeometry,\n\t\t\tmaterial.sheenColor\n\t\t);\n\t#else\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);\n\t#endif\n\treflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t\tfloat ccDotNL = ccDotNV;\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\tfloat clearcoatInv = 1.0 - clearcoatDHR;\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\tBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\n\treflectedLight.indirectSpecular += clearcoatInv * radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );\n\t#ifdef CLEARCOAT\n\t\tclearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n#endif\n#ifdef USE_MAP\n\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tuniform mat3 uvTransform;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifndef USE_MORPHNORMALS\n\t\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\t\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\t#ifdef USE_TANGENT\n\t\tvec3 tangent = normalize( vTangent );\n\t\tvec3 bitangent = normalize( vBitangent );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\ttangent = tangent * faceDirection;\n\t\t\tbitangent = bitangent * faceDirection;\n\t\t#endif\n\t\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\t\t#endif\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef OBJECTSPACE_NORMALMAP\n\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( TANGENTSPACE_NORMALMAP )\n\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\t#ifdef USE_TANGENT\n\t\tnormal = normalize( vTBN * mapN );\n\t#else\n\t\tnormal = perturbNormal2Arb( -vViewPosition, normal, mapN, faceDirection );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\n\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\n\t\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\t#ifdef USE_TANGENT\n\t\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\n\t#else\n\t\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\n\t#endif\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ));\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w);\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\n\t\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\tvec4 shadowWorldPosition;\n\t#endif\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform highp sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tfloat transmissionFactor = transmission;\n\tfloat thicknessFactor = thickness;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\ttransmissionFactor *= texture2D( transmissionMap, vUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSNMAP\n\t\tthicknessFactor *= texture2D( thicknessMap, vUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition.xyz / vWorldPosition.w;\n\tvec3 v = normalize( cameraPosition - pos );\n\tfloat ior = ( 1.0 + 0.4 * reflectivity ) / ( 1.0 - 0.4 * reflectivity );\n\tvec3 transmission = transmissionFactor * getIBLVolumeRefraction(\n\t\tnormal, v, roughnessFactor, material.diffuseColor, totalSpecular,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor,\n\t\tattenuationColor, attenuationDistance );\n\ttotalDiffuse = mix( totalDiffuse, transmission, transmissionFactor );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec4 vWorldPosition;\n\tvec3 getVolumeTransmissionRay(vec3 n, vec3 v, float thickness, float ior, mat4 modelMatrix) {\n\t\tvec3 refractionVector = refract(-v, normalize(n), 1.0 / ior);\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length(vec3(modelMatrix[0].xyz));\n\t\tmodelScale.y = length(vec3(modelMatrix[1].xyz));\n\t\tmodelScale.z = length(vec3(modelMatrix[2].xyz));\n\t\treturn normalize(refractionVector) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness(float roughness, float ior) {\n\t\treturn roughness * clamp(ior * 2.0 - 2.0, 0.0, 1.0);\n\t}\n\tvec3 getTransmissionSample(vec2 fragCoord, float roughness, float ior) {\n\t\tfloat framebufferLod = log2(transmissionSamplerSize.x) * applyIorToRoughness(roughness, ior);\n\t\treturn texture2DLodEXT(transmissionSamplerMap, fragCoord.xy, framebufferLod).rgb;\n\t}\n\tvec3 applyVolumeAttenuation(vec3 radiance, float transmissionDistance, vec3 attenuationColor, float attenuationDistance) {\n\t\tif (attenuationDistance == 0.0) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log(attenuationColor) / attenuationDistance;\n\t\t\tvec3 transmittance = exp(-attenuationCoefficient * transmissionDistance);\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec3 getIBLVolumeRefraction(vec3 n, vec3 v, float perceptualRoughness, vec3 baseColor, vec3 specularColor,\n\t\tvec3 position, mat4 modelMatrix, mat4 viewMatrix, mat4 projMatrix, float ior, float thickness,\n\t\tvec3 attenuationColor, float attenuationDistance) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay(n, v, thickness, ior, modelMatrix);\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4(refractedRayExit, 1.0);\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec3 transmittedLight = getTransmissionSample(refractionCoords, perceptualRoughness, ior);\n\t\tvec3 attenuatedColor = applyVolumeAttenuation(transmittedLight, length(transmissionRay), attenuationColor, attenuationDistance);\n\t\treturn (1.0 - specularColor) * attenuatedColor * baseColor;\n\t}\n#endif",uv_pars_fragment:"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\n\tvarying vec2 vUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\t#ifdef UVS_VERTEX_ONLY\n\t\tvec2 vUv;\n\t#else\n\t\tvarying vec2 vUv;\n\t#endif\n\tuniform mat3 uvTransform;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif",uv2_pars_fragment:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif",uv2_pars_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n\tuniform mat3 uv2Transform;\n#endif",uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION )\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_frag:"uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",cube_frag:"#include <envmap_common_pars_fragment>\nuniform float opacity;\nvarying vec3 vWorldDirection;\n#include <cube_uv_reflection_fragment>\nvoid main() {\n\tvec3 vReflect = vWorldDirection;\n\t#include <envmap_fragment>\n\tgl_FragColor = envColor;\n\tgl_FragColor.a *= opacity;\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",cube_vert:"varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <logdepthbuf_fragment>\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",depth_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvHighPrecisionZW = gl_Position.zw;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main () {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\tvWorldPosition = worldPosition.xyz;\n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tvec4 texColor = texture2D( tEquirect, sampleUV );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <color_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include <color_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshbasic_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_ENVMAP\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}",meshlambert_frag:"uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <fog_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <emissivemap_fragment>\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\n\t#else\n\t\treflectedLight.indirectDiffuse += vIndirectFront;\n\t#endif\n\t#include <lightmap_fragment>\n\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <lights_lambert_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t\tmatcapColor = matcapTexelToLinear( matcapColor );\n\t#else\n\t\tvec4 matcapColor = vec4( 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <color_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#ifndef FLAT_SHADED\n\t\tvNormal = normalize( transformedNormal );\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n\tvViewPosition = - mvPosition.xyz;\n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <gradientmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <lights_toon_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_toon_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <lights_phong_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_phong_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define REFLECTIVITY\n\t#define CLEARCOAT\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform vec3 attenuationColor;\n\tuniform float attenuationDistance;\n#endif\n#ifdef REFLECTIVITY\n\tuniform float reflectivity;\n#endif\n#ifdef CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheen;\n#endif\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <bsdfs>\n#include <transmission_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <lights_physical_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <roughnessmap_fragment>\n\t#include <metalnessmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include <transmission_fragment>\n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#ifdef USE_TRANSMISSION\n\tvarying vec4 vWorldPosition;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition;\n#endif\n}",normal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n}",normal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",points_vert:"uniform float size;\nuniform float scale;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <color_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <fog_vertex>\n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}",shadow_vert:"#include <common>\n#include <fog_pars_vertex>\n#include <shadowmap_pars_vertex>\nvoid main() {\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include <common>\n#include <uv_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}"},Fn={common:{diffuse:{value:new Ie(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new et},uv2Transform:{value:new et},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new tt(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Ie(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Ie(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},uvTransform:{value:new et}},sprite:{diffuse:{value:new Ie(16777215)},opacity:{value:1},center:{value:new tt(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},uvTransform:{value:new et}}},Un={basic:{uniforms:yn([Fn.common,Fn.specularmap,Fn.envmap,Fn.aomap,Fn.lightmap,Fn.fog]),vertexShader:Bn.meshbasic_vert,fragmentShader:Bn.meshbasic_frag},lambert:{uniforms:yn([Fn.common,Fn.specularmap,Fn.envmap,Fn.aomap,Fn.lightmap,Fn.emissivemap,Fn.fog,Fn.lights,{emissive:{value:new Ie(0)}}]),vertexShader:Bn.meshlambert_vert,fragmentShader:Bn.meshlambert_frag},phong:{uniforms:yn([Fn.common,Fn.specularmap,Fn.envmap,Fn.aomap,Fn.lightmap,Fn.emissivemap,Fn.bumpmap,Fn.normalmap,Fn.displacementmap,Fn.fog,Fn.lights,{emissive:{value:new Ie(0)},specular:{value:new Ie(1118481)},shininess:{value:30}}]),vertexShader:Bn.meshphong_vert,fragmentShader:Bn.meshphong_frag},standard:{uniforms:yn([Fn.common,Fn.envmap,Fn.aomap,Fn.lightmap,Fn.emissivemap,Fn.bumpmap,Fn.normalmap,Fn.displacementmap,Fn.roughnessmap,Fn.metalnessmap,Fn.fog,Fn.lights,{emissive:{value:new Ie(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Bn.meshphysical_vert,fragmentShader:Bn.meshphysical_frag},toon:{uniforms:yn([Fn.common,Fn.aomap,Fn.lightmap,Fn.emissivemap,Fn.bumpmap,Fn.normalmap,Fn.displacementmap,Fn.gradientmap,Fn.fog,Fn.lights,{emissive:{value:new Ie(0)}}]),vertexShader:Bn.meshtoon_vert,fragmentShader:Bn.meshtoon_frag},matcap:{uniforms:yn([Fn.common,Fn.bumpmap,Fn.normalmap,Fn.displacementmap,Fn.fog,{matcap:{value:null}}]),vertexShader:Bn.meshmatcap_vert,fragmentShader:Bn.meshmatcap_frag},points:{uniforms:yn([Fn.points,Fn.fog]),vertexShader:Bn.points_vert,fragmentShader:Bn.points_frag},dashed:{uniforms:yn([Fn.common,Fn.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Bn.linedashed_vert,fragmentShader:Bn.linedashed_frag},depth:{uniforms:yn([Fn.common,Fn.displacementmap]),vertexShader:Bn.depth_vert,fragmentShader:Bn.depth_frag},normal:{uniforms:yn([Fn.common,Fn.bumpmap,Fn.normalmap,Fn.displacementmap,{opacity:{value:1}}]),vertexShader:Bn.normal_vert,fragmentShader:Bn.normal_frag},sprite:{uniforms:yn([Fn.sprite,Fn.fog]),vertexShader:Bn.sprite_vert,fragmentShader:Bn.sprite_frag},background:{uniforms:{uvTransform:{value:new et},t2D:{value:null}},vertexShader:Bn.background_vert,fragmentShader:Bn.background_frag},cube:{uniforms:yn([Fn.envmap,{opacity:{value:1}}]),vertexShader:Bn.cube_vert,fragmentShader:Bn.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Bn.equirect_vert,fragmentShader:Bn.equirect_frag},distanceRGBA:{uniforms:yn([Fn.common,Fn.displacementmap,{referencePosition:{value:new ut},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Bn.distanceRGBA_vert,fragmentShader:Bn.distanceRGBA_frag},shadow:{uniforms:yn([Fn.lights,Fn.fog,{color:{value:new Ie(0)},opacity:{value:1}}]),vertexShader:Bn.shadow_vert,fragmentShader:Bn.shadow_frag}};function Hn(t,e,n,i,r){const a=new Ie(0);let o,l,h=0,u=null,d=0,p=null;function m(t,e){n.buffers.color.setClear(t.r,t.g,t.b,e,r)}return{getClearColor:function(){return a},setClearColor:function(t,e=1){a.set(t),h=e,m(a,h)},getClearAlpha:function(){return h},setClearAlpha:function(t){h=t,m(a,h)},render:function(n,r){let f=!1,g=!0===r.isScene?r.background:null;g&&g.isTexture&&(g=e.get(g));const v=t.xr,y=v.getSession&&v.getSession();y&&"additive"===y.environmentBlendMode&&(g=null),null===g?m(a,h):g&&g.isColor&&(m(g,1),f=!0),(t.autoClear||f)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),g&&(g.isCubeTexture||g.mapping===c)?(void 0===l&&(l=new mn(new gn(1,1,1),new _n({name:"BackgroundCubeMaterial",uniforms:vn(Un.cube.uniforms),vertexShader:Un.cube.vertexShader,fragmentShader:Un.cube.fragmentShader,side:s,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(l)),l.material.uniforms.envMap.value=g,l.material.uniforms.flipEnvMap.value=g.isCubeTexture&&g._needsFlipEnvMap?-1:1,u===g&&d===g.version&&p===t.toneMapping||(l.material.needsUpdate=!0,u=g,d=g.version,p=t.toneMapping),n.unshift(l,l.geometry,l.material,0,0,null)):g&&g.isTexture&&(void 0===o&&(o=new mn(new On(2,2),new _n({name:"BackgroundMaterial",uniforms:vn(Un.background.uniforms),vertexShader:Un.background.vertexShader,fragmentShader:Un.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),o.geometry.deleteAttribute("normal"),Object.defineProperty(o.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(o)),o.material.uniforms.t2D.value=g,!0===g.matrixAutoUpdate&&g.updateMatrix(),o.material.uniforms.uvTransform.value.copy(g.matrix),u===g&&d===g.version&&p===t.toneMapping||(o.material.needsUpdate=!0,u=g,d=g.version,p=t.toneMapping),n.unshift(o,o.geometry,o.material,0,0,null))}}}function Gn(t,e,n,i){const r=t.getParameter(34921),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),a=i.isWebGL2||null!==s,o={},l=d(null);let c=l;function h(e){return i.isWebGL2?t.bindVertexArray(e):s.bindVertexArrayOES(e)}function u(e){return i.isWebGL2?t.deleteVertexArray(e):s.deleteVertexArrayOES(e)}function d(t){const e=[],n=[],i=[];for(let s=0;s<r;s++)e[s]=0,n[s]=0,i[s]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:e,enabledAttributes:n,attributeDivisors:i,object:t,attributes:{},index:null}}function p(){const t=c.newAttributes;for(let e=0,n=t.length;e<n;e++)t[e]=0}function m(t){f(t,0)}function f(n,r){const s=c.newAttributes,a=c.enabledAttributes,o=c.attributeDivisors;if(s[n]=1,0===a[n]&&(t.enableVertexAttribArray(n),a[n]=1),o[n]!==r){(i.isWebGL2?t:e.get("ANGLE_instanced_arrays"))[i.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](n,r),o[n]=r}}function g(){const e=c.newAttributes,n=c.enabledAttributes;for(let i=0,r=n.length;i<r;i++)n[i]!==e[i]&&(t.disableVertexAttribArray(i),n[i]=0)}function v(e,n,r,s,a,o){!0!==i.isWebGL2||5124!==r&&5125!==r?t.vertexAttribPointer(e,n,r,s,a,o):t.vertexAttribIPointer(e,n,r,a,o)}function y(){x(),c!==l&&(c=l,h(c.object))}function x(){l.geometry=null,l.program=null,l.wireframe=!1}return{setup:function(r,l,u,y,x){let _=!1;if(a){const e=function(e,n,r){const a=!0===r.wireframe;let l=o[e.id];void 0===l&&(l={},o[e.id]=l);let c=l[n.id];void 0===c&&(c={},l[n.id]=c);let h=c[a];void 0===h&&(h=d(i.isWebGL2?t.createVertexArray():s.createVertexArrayOES()),c[a]=h);return h}(y,u,l);c!==e&&(c=e,h(c.object)),_=function(t,e){const n=c.attributes,i=t.attributes;let r=0;for(const s in i){const t=n[s],e=i[s];if(void 0===t)return!0;if(t.attribute!==e)return!0;if(t.data!==e.data)return!0;r++}return c.attributesNum!==r||c.index!==e}(y,x),_&&function(t,e){const n={},i=t.attributes;let r=0;for(const s in i){const t=i[s],e={};e.attribute=t,t.data&&(e.data=t.data),n[s]=e,r++}c.attributes=n,c.attributesNum=r,c.index=e}(y,x)}else{const t=!0===l.wireframe;c.geometry===y.id&&c.program===u.id&&c.wireframe===t||(c.geometry=y.id,c.program=u.id,c.wireframe=t,_=!0)}!0===r.isInstancedMesh&&(_=!0),null!==x&&n.update(x,34963),_&&(!function(r,s,a,o){if(!1===i.isWebGL2&&(r.isInstancedMesh||o.isInstancedBufferGeometry)&&null===e.get("ANGLE_instanced_arrays"))return;p();const l=o.attributes,c=a.getAttributes(),h=s.defaultAttributeValues;for(const e in c){const i=c[e];if(i>=0){const s=l[e];if(void 0!==s){const e=s.normalized,r=s.itemSize,a=n.get(s);if(void 0===a)continue;const l=a.buffer,c=a.type,h=a.bytesPerElement;if(s.isInterleavedBufferAttribute){const n=s.data,a=n.stride,u=s.offset;n&&n.isInstancedInterleavedBuffer?(f(i,n.meshPerAttribute),void 0===o._maxInstanceCount&&(o._maxInstanceCount=n.meshPerAttribute*n.count)):m(i),t.bindBuffer(34962,l),v(i,r,c,e,a*h,u*h)}else s.isInstancedBufferAttribute?(f(i,s.meshPerAttribute),void 0===o._maxInstanceCount&&(o._maxInstanceCount=s.meshPerAttribute*s.count)):m(i),t.bindBuffer(34962,l),v(i,r,c,e,0,0)}else if("instanceMatrix"===e){const e=n.get(r.instanceMatrix);if(void 0===e)continue;const s=e.buffer,a=e.type;f(i+0,1),f(i+1,1),f(i+2,1),f(i+3,1),t.bindBuffer(34962,s),t.vertexAttribPointer(i+0,4,a,!1,64,0),t.vertexAttribPointer(i+1,4,a,!1,64,16),t.vertexAttribPointer(i+2,4,a,!1,64,32),t.vertexAttribPointer(i+3,4,a,!1,64,48)}else if("instanceColor"===e){const e=n.get(r.instanceColor);if(void 0===e)continue;const s=e.buffer,a=e.type;f(i,1),t.bindBuffer(34962,s),t.vertexAttribPointer(i,3,a,!1,12,0)}else if(void 0!==h){const n=h[e];if(void 0!==n)switch(n.length){case 2:t.vertexAttrib2fv(i,n);break;case 3:t.vertexAttrib3fv(i,n);break;case 4:t.vertexAttrib4fv(i,n);break;default:t.vertexAttrib1fv(i,n)}}}}g()}(r,l,u,y),null!==x&&t.bindBuffer(34963,n.get(x).buffer))},reset:y,resetDefaultState:x,dispose:function(){y();for(const t in o){const e=o[t];for(const t in e){const n=e[t];for(const t in n)u(n[t].object),delete n[t];delete e[t]}delete o[t]}},releaseStatesOfGeometry:function(t){if(void 0===o[t.id])return;const e=o[t.id];for(const n in e){const t=e[n];for(const e in t)u(t[e].object),delete t[e];delete e[n]}delete o[t.id]},releaseStatesOfProgram:function(t){for(const e in o){const n=o[e];if(void 0===n[t.id])continue;const i=n[t.id];for(const t in i)u(i[t].object),delete i[t];delete n[t.id]}},initAttributes:p,enableAttribute:m,disableUnusedAttributes:g}}function Vn(t,e,n,i){const r=i.isWebGL2;let s;this.setMode=function(t){s=t},this.render=function(e,i){t.drawArrays(s,e,i),n.update(i,s,1)},this.renderInstances=function(i,a,o){if(0===o)return;let l,c;if(r)l=t,c="drawArraysInstanced";else if(l=e.get("ANGLE_instanced_arrays"),c="drawArraysInstancedANGLE",null===l)return void console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");l[c](s,i,a,o),n.update(a,s,o)}}function kn(t,e,n){let i;function r(e){if("highp"===e){if(t.getShaderPrecisionFormat(35633,36338).precision>0&&t.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}const s="undefined"!==typeof WebGL2RenderingContext&&t instanceof WebGL2RenderingContext||"undefined"!==typeof WebGL2ComputeRenderingContext&&t instanceof WebGL2ComputeRenderingContext;let a=void 0!==n.precision?n.precision:"highp";const o=r(a);o!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",o,"instead."),a=o);const l=s||e.has("WEBGL_draw_buffers"),c=!0===n.logarithmicDepthBuffer,h=t.getParameter(34930),u=t.getParameter(35660),d=t.getParameter(3379),p=t.getParameter(34076),m=t.getParameter(34921),f=t.getParameter(36347),g=t.getParameter(36348),v=t.getParameter(36349),y=u>0,x=s||e.has("OES_texture_float");return{isWebGL2:s,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==i)return i;if(!0===e.has("EXT_texture_filter_anisotropic")){const n=e.get("EXT_texture_filter_anisotropic");i=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:r,precision:a,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:m,maxVertexUniforms:f,maxVaryings:g,maxFragmentUniforms:v,vertexTextures:y,floatFragmentTextures:x,floatVertexTextures:y&&x,maxSamples:s?t.getParameter(36183):0}}function Wn(t){const e=this;let n=null,i=0,r=!1,s=!1;const a=new Cn,o=new et,l={value:null,needsUpdate:!1};function c(){l.value!==n&&(l.value=n,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(t,n,i,r){const s=null!==t?t.length:0;let c=null;if(0!==s){if(c=l.value,!0!==r||null===c){const e=i+4*s,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===c||c.length<e)&&(c=new Float32Array(e));for(let n=0,l=i;n!==s;++n,l+=4)a.copy(t[n]).applyMatrix4(r,o),a.normal.toArray(c,l),c[l+3]=a.constant}l.value=c,l.needsUpdate=!0}return e.numPlanes=s,e.numIntersection=0,c}this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(t,e,s){const a=0!==t.length||e||0!==i||r;return r=e,n=h(t,s,0),i=t.length,a},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1,c()},this.setState=function(e,a,o){const u=e.clippingPlanes,d=e.clipIntersection,p=e.clipShadows,m=t.get(e);if(!r||null===u||0===u.length||s&&!p)s?h(null):c();else{const t=s?0:i,e=4*t;let r=m.clippingState||null;l.value=r,r=h(u,a,e,o);for(let i=0;i!==e;++i)r[i]=n[i];m.clippingState=r,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=t}}}function jn(t){let e=new WeakMap;function n(t,e){return 303===e?t.mapping=o:304===e&&(t.mapping=l),t}function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){const s=r.mapping;if(303===s||304===s){if(e.has(r)){return n(e.get(r).texture,r.mapping)}{const s=r.image;if(s&&s.height>0){const a=t.getRenderTarget(),o=new En(s.height/2);return o.fromEquirectangularTexture(t,r),e.set(r,o),t.setRenderTarget(a),r.addEventListener("dispose",i),n(o.texture,r.mapping)}return null}}}return r},dispose:function(){e=new WeakMap}}}function qn(t){const e={};function n(n){if(void 0!==e[n])return e[n];let i;switch(n){case"WEBGL_depth_texture":i=t.getExtension("WEBGL_depth_texture")||t.getExtension("MOZ_WEBGL_depth_texture")||t.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":i=t.getExtension("EXT_texture_filter_anisotropic")||t.getExtension("MOZ_EXT_texture_filter_anisotropic")||t.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":i=t.getExtension("WEBGL_compressed_texture_s3tc")||t.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":i=t.getExtension("WEBGL_compressed_texture_pvrtc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:i=t.getExtension(n)}return e[n]=i,i}return{has:function(t){return null!==n(t)},init:function(t){t.isWebGL2?n("EXT_color_buffer_float"):(n("WEBGL_depth_texture"),n("OES_texture_float"),n("OES_texture_half_float"),n("OES_texture_half_float_linear"),n("OES_standard_derivatives"),n("OES_element_index_uint"),n("OES_vertex_array_object"),n("ANGLE_instanced_arrays")),n("OES_texture_float_linear"),n("EXT_color_buffer_half_float")},get:function(t){const e=n(t);return null===e&&console.warn("THREE.WebGLRenderer: "+t+" extension not supported."),e}}}function Xn(t,e,n,i){const r={},s=new WeakMap;function a(t){const o=t.target;null!==o.index&&e.remove(o.index);for(const n in o.attributes)e.remove(o.attributes[n]);o.removeEventListener("dispose",a),delete r[o.id];const l=s.get(o);l&&(e.remove(l),s.delete(o)),i.releaseStatesOfGeometry(o),!0===o.isInstancedBufferGeometry&&delete o._maxInstanceCount,n.memory.geometries--}function o(t){const n=[],i=t.index,r=t.attributes.position;let a=0;if(null!==i){const t=i.array;a=i.version;for(let e=0,i=t.length;e<i;e+=3){const i=t[e+0],r=t[e+1],s=t[e+2];n.push(i,r,r,s,s,i)}}else{const t=r.array;a=r.version;for(let e=0,i=t.length/3-1;e<i;e+=3){const t=e+0,i=e+1,r=e+2;n.push(t,i,i,r,r,t)}}const o=new(Ge(n)>65535?Ue:Fe)(n,1);o.version=a;const l=s.get(t);l&&e.remove(l),s.set(t,o)}return{get:function(t,e){return!0===r[e.id]||(e.addEventListener("dispose",a),r[e.id]=!0,n.memory.geometries++),e},update:function(t){const n=t.attributes;for(const r in n)e.update(n[r],34962);const i=t.morphAttributes;for(const r in i){const t=i[r];for(let n=0,i=t.length;n<i;n++)e.update(t[n],34962)}},getWireframeAttribute:function(t){const e=s.get(t);if(e){const n=t.index;null!==n&&e.version<n.version&&o(t)}else o(t);return s.get(t)}}}function Yn(t,e,n,i){const r=i.isWebGL2;let s,a,o;this.setMode=function(t){s=t},this.setIndex=function(t){a=t.type,o=t.bytesPerElement},this.render=function(e,i){t.drawElements(s,i,a,e*o),n.update(i,s,1)},this.renderInstances=function(i,l,c){if(0===c)return;let h,u;if(r)h=t,u="drawElementsInstanced";else if(h=e.get("ANGLE_instanced_arrays"),u="drawElementsInstancedANGLE",null===h)return void console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");h[u](s,l,a,i*o,c),n.update(l,s,c)}}function Jn(t){const e={frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:e,programs:null,autoReset:!0,reset:function(){e.frame++,e.calls=0,e.triangles=0,e.points=0,e.lines=0},update:function(t,n,i){switch(e.calls++,n){case 4:e.triangles+=i*(t/3);break;case 1:e.lines+=i*(t/2);break;case 3:e.lines+=i*(t-1);break;case 2:e.lines+=i*t;break;case 0:e.points+=i*t;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",n)}}}}function Zn(t,e){return t[0]-e[0]}function Qn(t,e){return Math.abs(e[1])-Math.abs(t[1])}function Kn(t){const e={},n=new Float32Array(8),i=[];for(let r=0;r<8;r++)i[r]=[r,0];return{update:function(r,s,a,o){const l=r.morphTargetInfluences,c=void 0===l?0:l.length;let h=e[s.id];if(void 0===h||h.length!==c){h=[];for(let t=0;t<c;t++)h[t]=[t,0];e[s.id]=h}for(let t=0;t<c;t++){const e=h[t];e[0]=t,e[1]=l[t]}h.sort(Qn);for(let t=0;t<8;t++)t<c&&h[t][1]?(i[t][0]=h[t][0],i[t][1]=h[t][1]):(i[t][0]=Number.MAX_SAFE_INTEGER,i[t][1]=0);i.sort(Zn);const u=a.morphTargets&&s.morphAttributes.position,d=a.morphNormals&&s.morphAttributes.normal;let p=0;for(let t=0;t<8;t++){const e=i[t],r=e[0],a=e[1];r!==Number.MAX_SAFE_INTEGER&&a?(u&&s.getAttribute("morphTarget"+t)!==u[r]&&s.setAttribute("morphTarget"+t,u[r]),d&&s.getAttribute("morphNormal"+t)!==d[r]&&s.setAttribute("morphNormal"+t,d[r]),n[t]=a,p+=a):(u&&!0===s.hasAttribute("morphTarget"+t)&&s.deleteAttribute("morphTarget"+t),d&&!0===s.hasAttribute("morphNormal"+t)&&s.deleteAttribute("morphNormal"+t),n[t]=0)}const m=s.morphTargetsRelative?1:1-p;o.getUniforms().setValue(t,"morphTargetBaseInfluence",m),o.getUniforms().setValue(t,"morphTargetInfluences",n)}}}function $n(t,e,n,i){let r=new WeakMap;function s(t){const e=t.target;e.removeEventListener("dispose",s),n.remove(e.instanceMatrix),null!==e.instanceColor&&n.remove(e.instanceColor)}return{update:function(t){const a=i.render.frame,o=t.geometry,l=e.get(t,o);return r.get(l)!==a&&(e.update(l),r.set(l,a)),t.isInstancedMesh&&(!1===t.hasEventListener("dispose",s)&&t.addEventListener("dispose",s),n.update(t.instanceMatrix,34962),null!==t.instanceColor&&n.update(t.instanceColor,34962)),l},dispose:function(){r=new WeakMap}}}Un.physical={uniforms:yn([Un.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new tt(1,1)},clearcoatNormalMap:{value:null},sheen:{value:new Ie(0)},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new tt},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new Ie(0)}}]),vertexShader:Bn.meshphysical_vert,fragmentShader:Bn.meshphysical_frag};class ti extends st{constructor(t=null,e=1,n=1,i=1){super(null),this.image={data:t,width:e,height:n,depth:i},this.magFilter=m,this.minFilter=m,this.wrapR=d,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}ti.prototype.isDataTexture2DArray=!0;class ei extends st{constructor(t=null,e=1,n=1,i=1){super(null),this.image={data:t,width:e,height:n,depth:i},this.magFilter=m,this.minFilter=m,this.wrapR=d,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}ei.prototype.isDataTexture3D=!0;const ni=new st,ii=new ti,ri=new ei,si=new Tn,ai=[],oi=[],li=new Float32Array(16),ci=new Float32Array(9),hi=new Float32Array(4);function ui(t,e,n){const i=t[0];if(i<=0||i>0)return t;const r=e*n;let s=ai[r];if(void 0===s&&(s=new Float32Array(r),ai[r]=s),0!==e){i.toArray(s,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(s,r)}return s}function di(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n<i;n++)if(t[n]!==e[n])return!1;return!0}function pi(t,e){for(let n=0,i=e.length;n<i;n++)t[n]=e[n]}function mi(t,e){let n=oi[e];void 0===n&&(n=new Int32Array(e),oi[e]=n);for(let i=0;i!==e;++i)n[i]=t.allocateTextureUnit();return n}function fi(t,e){const n=this.cache;n[0]!==e&&(t.uniform1f(this.addr,e),n[0]=e)}function gi(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y||(t.uniform2f(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(di(n,e))return;t.uniform2fv(this.addr,e),pi(n,e)}}function vi(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z||(t.uniform3f(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else if(void 0!==e.r)n[0]===e.r&&n[1]===e.g&&n[2]===e.b||(t.uniform3f(this.addr,e.r,e.g,e.b),n[0]=e.r,n[1]=e.g,n[2]=e.b);else{if(di(n,e))return;t.uniform3fv(this.addr,e),pi(n,e)}}function yi(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z&&n[3]===e.w||(t.uniform4f(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(di(n,e))return;t.uniform4fv(this.addr,e),pi(n,e)}}function xi(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(di(n,e))return;t.uniformMatrix2fv(this.addr,!1,e),pi(n,e)}else{if(di(n,i))return;hi.set(i),t.uniformMatrix2fv(this.addr,!1,hi),pi(n,i)}}function _i(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(di(n,e))return;t.uniformMatrix3fv(this.addr,!1,e),pi(n,e)}else{if(di(n,i))return;ci.set(i),t.uniformMatrix3fv(this.addr,!1,ci),pi(n,i)}}function bi(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(di(n,e))return;t.uniformMatrix4fv(this.addr,!1,e),pi(n,e)}else{if(di(n,i))return;li.set(i),t.uniformMatrix4fv(this.addr,!1,li),pi(n,i)}}function Mi(t,e){const n=this.cache;n[0]!==e&&(t.uniform1i(this.addr,e),n[0]=e)}function wi(t,e){const n=this.cache;di(n,e)||(t.uniform2iv(this.addr,e),pi(n,e))}function Si(t,e){const n=this.cache;di(n,e)||(t.uniform3iv(this.addr,e),pi(n,e))}function Ti(t,e){const n=this.cache;di(n,e)||(t.uniform4iv(this.addr,e),pi(n,e))}function Ei(t,e){const n=this.cache;n[0]!==e&&(t.uniform1ui(this.addr,e),n[0]=e)}function Li(t,e){const n=this.cache;di(n,e)||(t.uniform2uiv(this.addr,e),pi(n,e))}function Ai(t,e){const n=this.cache;di(n,e)||(t.uniform3uiv(this.addr,e),pi(n,e))}function Ri(t,e){const n=this.cache;di(n,e)||(t.uniform4uiv(this.addr,e),pi(n,e))}function Ci(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.safeSetTexture2D(e||ni,r)}function Pi(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTexture3D(e||ri,r)}function Di(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.safeSetTextureCube(e||si,r)}function Ii(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTexture2DArray(e||ii,r)}function Ni(t,e){t.uniform1fv(this.addr,e)}function zi(t,e){const n=ui(e,this.size,2);t.uniform2fv(this.addr,n)}function Oi(t,e){const n=ui(e,this.size,3);t.uniform3fv(this.addr,n)}function Bi(t,e){const n=ui(e,this.size,4);t.uniform4fv(this.addr,n)}function Fi(t,e){const n=ui(e,this.size,4);t.uniformMatrix2fv(this.addr,!1,n)}function Ui(t,e){const n=ui(e,this.size,9);t.uniformMatrix3fv(this.addr,!1,n)}function Hi(t,e){const n=ui(e,this.size,16);t.uniformMatrix4fv(this.addr,!1,n)}function Gi(t,e){t.uniform1iv(this.addr,e)}function Vi(t,e){t.uniform2iv(this.addr,e)}function ki(t,e){t.uniform3iv(this.addr,e)}function Wi(t,e){t.uniform4iv(this.addr,e)}function ji(t,e){t.uniform1uiv(this.addr,e)}function qi(t,e){t.uniform2uiv(this.addr,e)}function Xi(t,e){t.uniform3uiv(this.addr,e)}function Yi(t,e){t.uniform4uiv(this.addr,e)}function Ji(t,e,n){const i=e.length,r=mi(n,i);t.uniform1iv(this.addr,r);for(let s=0;s!==i;++s)n.safeSetTexture2D(e[s]||ni,r[s])}function Zi(t,e,n){const i=e.length,r=mi(n,i);t.uniform1iv(this.addr,r);for(let s=0;s!==i;++s)n.safeSetTextureCube(e[s]||si,r[s])}function Qi(t,e,n){this.id=t,this.addr=n,this.cache=[],this.setValue=function(t){switch(t){case 5126:return fi;case 35664:return gi;case 35665:return vi;case 35666:return yi;case 35674:return xi;case 35675:return _i;case 35676:return bi;case 5124:case 35670:return Mi;case 35667:case 35671:return wi;case 35668:case 35672:return Si;case 35669:case 35673:return Ti;case 5125:return Ei;case 36294:return Li;case 36295:return Ai;case 36296:return Ri;case 35678:case 36198:case 36298:case 36306:case 35682:return Ci;case 35679:case 36299:case 36307:return Pi;case 35680:case 36300:case 36308:case 36293:return Di;case 36289:case 36303:case 36311:case 36292:return Ii}}(e.type)}function Ki(t,e,n){this.id=t,this.addr=n,this.cache=[],this.size=e.size,this.setValue=function(t){switch(t){case 5126:return Ni;case 35664:return zi;case 35665:return Oi;case 35666:return Bi;case 35674:return Fi;case 35675:return Ui;case 35676:return Hi;case 5124:case 35670:return Gi;case 35667:case 35671:return Vi;case 35668:case 35672:return ki;case 35669:case 35673:return Wi;case 5125:return ji;case 36294:return qi;case 36295:return Xi;case 36296:return Yi;case 35678:case 36198:case 36298:case 36306:case 35682:return Ji;case 35680:case 36300:case 36308:case 36293:return Zi}}(e.type)}function $i(t){this.id=t,this.seq=[],this.map={}}Ki.prototype.updateCache=function(t){const e=this.cache;t instanceof Float32Array&&e.length!==t.length&&(this.cache=new Float32Array(t.length)),pi(e,t)},$i.prototype.setValue=function(t,e,n){const i=this.seq;for(let r=0,s=i.length;r!==s;++r){const s=i[r];s.setValue(t,e[s.id],n)}};const tr=/(\w+)(\])?(\[|\.)?/g;function er(t,e){t.seq.push(e),t.map[e.id]=e}function nr(t,e,n){const i=t.name,r=i.length;for(tr.lastIndex=0;;){const s=tr.exec(i),a=tr.lastIndex;let o=s[1];const l="]"===s[2],c=s[3];if(l&&(o|=0),void 0===c||"["===c&&a+2===r){er(n,void 0===c?new Qi(o,t,e):new Ki(o,t,e));break}{let t=n.map[o];void 0===t&&(t=new $i(o),er(n,t)),n=t}}}function ir(t,e){this.seq=[],this.map={};const n=t.getProgramParameter(e,35718);for(let i=0;i<n;++i){const n=t.getActiveUniform(e,i);nr(n,t.getUniformLocation(e,n.name),this)}}function rr(t,e,n){const i=t.createShader(e);return t.shaderSource(i,n),t.compileShader(i),i}ir.prototype.setValue=function(t,e,n,i){const r=this.map[e];void 0!==r&&r.setValue(t,n,i)},ir.prototype.setOptional=function(t,e,n){const i=e[n];void 0!==i&&this.setValue(t,n,i)},ir.upload=function(t,e,n,i){for(let r=0,s=e.length;r!==s;++r){const s=e[r],a=n[s.id];!1!==a.needsUpdate&&s.setValue(t,a.value,i)}},ir.seqWithValue=function(t,e){const n=[];for(let i=0,r=t.length;i!==r;++i){const r=t[i];r.id in e&&n.push(r)}return n};let sr=0;function ar(t){switch(t){case O:return["Linear","( value )"];case B:return["sRGB","( value )"];case U:return["RGBE","( value )"];case 3004:return["RGBM","( value, 7.0 )"];case 3005:return["RGBM","( value, 16.0 )"];case 3006:return["RGBD","( value, 256.0 )"];case F:return["Gamma","( value, float( GAMMA_FACTOR ) )"];case 3003:return["LogLuv","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",t),["Linear","( value )"]}}function or(t,e,n){const i=t.getShaderParameter(e,35713),r=t.getShaderInfoLog(e).trim();if(i&&""===r)return"";return"THREE.WebGLShader: gl.getShaderInfoLog() "+n+"\n"+r+function(t){const e=t.split("\n");for(let n=0;n<e.length;n++)e[n]=n+1+": "+e[n];return e.join("\n")}(t.getShaderSource(e))}function lr(t,e){const n=ar(e);return"vec4 "+t+"( vec4 value ) { return "+n[0]+"ToLinear"+n[1]+"; }"}function cr(t,e){const n=ar(e);return"vec4 "+t+"( vec4 value ) { return LinearTo"+n[0]+n[1]+"; }"}function hr(t,e){let n;switch(e){case 1:n="Linear";break;case 2:n="Reinhard";break;case 3:n="OptimizedCineon";break;case 4:n="ACESFilmic";break;case 5:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function ur(t){return""!==t}function dr(t,e){return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function pr(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const mr=/^[ \t]*#include +<([\w\d./]+)>/gm;function fr(t){return t.replace(mr,gr)}function gr(t,e){const n=Bn[e];if(void 0===n)throw new Error("Can not resolve #include <"+e+">");return fr(n)}const vr=/#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,yr=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function xr(t){return t.replace(yr,br).replace(vr,_r)}function _r(t,e,n,i){return console.warn("WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead."),br(t,e,n,i)}function br(t,e,n,i){let r="";for(let s=parseInt(e);s<parseInt(n);s++)r+=i.replace(/\[\s*i\s*\]/g,"[ "+s+" ]").replace(/UNROLLED_LOOP_INDEX/g,s);return r}function Mr(t){let e="precision "+t.precision+" float;\nprecision "+t.precision+" int;";return"highp"===t.precision?e+="\n#define HIGH_PRECISION":"mediump"===t.precision?e+="\n#define MEDIUM_PRECISION":"lowp"===t.precision&&(e+="\n#define LOW_PRECISION"),e}function wr(t,e,n,i){const r=t.getContext(),s=n.defines;let a=n.vertexShader,u=n.fragmentShader;const d=function(t){let e="SHADOWMAP_TYPE_BASIC";return 1===t.shadowMapType?e="SHADOWMAP_TYPE_PCF":2===t.shadowMapType?e="SHADOWMAP_TYPE_PCF_SOFT":3===t.shadowMapType&&(e="SHADOWMAP_TYPE_VSM"),e}(n),p=function(t){let e="ENVMAP_TYPE_CUBE";if(t.envMap)switch(t.envMapMode){case o:case l:e="ENVMAP_TYPE_CUBE";break;case c:case h:e="ENVMAP_TYPE_CUBE_UV"}return e}(n),m=function(t){let e="ENVMAP_MODE_REFLECTION";if(t.envMap)switch(t.envMapMode){case l:case h:e="ENVMAP_MODE_REFRACTION"}return e}(n),f=function(t){let e="ENVMAP_BLENDING_NONE";if(t.envMap)switch(t.combine){case 0:e="ENVMAP_BLENDING_MULTIPLY";break;case 1:e="ENVMAP_BLENDING_MIX";break;case 2:e="ENVMAP_BLENDING_ADD"}return e}(n),g=t.gammaFactor>0?t.gammaFactor:1,v=n.isWebGL2?"":function(t){return[t.extensionDerivatives||t.envMapCubeUV||t.bumpMap||t.tangentSpaceNormalMap||t.clearcoatNormalMap||t.flatShading||"physical"===t.shaderID?"#extension GL_OES_standard_derivatives : enable":"",(t.extensionFragDepth||t.logarithmicDepthBuffer)&&t.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",t.extensionDrawBuffers&&t.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(t.extensionShaderTextureLOD||t.envMap||t.transmission>0)&&t.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(ur).join("\n")}(n),y=function(t){const e=[];for(const n in t){const i=t[n];!1!==i&&e.push("#define "+n+" "+i)}return e.join("\n")}(s),x=r.createProgram();let _,b,M=n.glslVersion?"#version "+n.glslVersion+"\n":"";n.isRawShaderMaterial?(_=[y].filter(ur).join("\n"),_.length>0&&(_+="\n"),b=[v,y].filter(ur).join("\n"),b.length>0&&(b+="\n")):(_=[Mr(n),"#define SHADER_NAME "+n.shaderName,y,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define GAMMA_FACTOR "+g,"#define MAX_BONES "+n.maxBones,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+m:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.displacementMap&&n.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.useVertexTexture?"#define BONE_TEXTURE":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+d:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#ifdef USE_MORPHTARGETS","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(ur).join("\n"),b=[v,Mr(n),"#define SHADER_NAME "+n.shaderName,y,n.alphaTest?"#define ALPHATEST "+n.alphaTest+(n.alphaTest%1?"":".0"):"","#define GAMMA_FACTOR "+g,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+p:"",n.envMap?"#define "+m:"",n.envMap?"#define "+f:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.sheen?"#define USE_SHEEN":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+d:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"",(n.extensionShaderTextureLOD||n.envMap)&&n.rendererExtensionShaderTextureLod?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",0!==n.toneMapping?"#define TONE_MAPPING":"",0!==n.toneMapping?Bn.tonemapping_pars_fragment:"",0!==n.toneMapping?hr("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",Bn.encodings_pars_fragment,n.map?lr("mapTexelToLinear",n.mapEncoding):"",n.matcap?lr("matcapTexelToLinear",n.matcapEncoding):"",n.envMap?lr("envMapTexelToLinear",n.envMapEncoding):"",n.emissiveMap?lr("emissiveMapTexelToLinear",n.emissiveMapEncoding):"",n.lightMap?lr("lightMapTexelToLinear",n.lightMapEncoding):"",cr("linearToOutputTexel",n.outputEncoding),n.depthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(ur).join("\n")),a=fr(a),a=dr(a,n),a=pr(a,n),u=fr(u),u=dr(u,n),u=pr(u,n),a=xr(a),u=xr(u),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(M="#version 300 es\n",_=["#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+_,b=["#define varying in",n.glslVersion===k?"":"out highp vec4 pc_fragColor;",n.glslVersion===k?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+b);const w=M+b+u,S=rr(r,35633,M+_+a),T=rr(r,35632,w);if(r.attachShader(x,S),r.attachShader(x,T),void 0!==n.index0AttributeName?r.bindAttribLocation(x,0,n.index0AttributeName):!0===n.morphTargets&&r.bindAttribLocation(x,0,"position"),r.linkProgram(x),t.debug.checkShaderErrors){const t=r.getProgramInfoLog(x).trim(),e=r.getShaderInfoLog(S).trim(),n=r.getShaderInfoLog(T).trim();let i=!0,s=!0;if(!1===r.getProgramParameter(x,35714)){i=!1;const e=or(r,S,"vertex"),n=or(r,T,"fragment");console.error("THREE.WebGLProgram: shader error: ",r.getError(),"35715",r.getProgramParameter(x,35715),"gl.getProgramInfoLog",t,e,n)}else""!==t?console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()",t):""!==e&&""!==n||(s=!1);s&&(this.diagnostics={runnable:i,programLog:t,vertexShader:{log:e,prefix:_},fragmentShader:{log:n,prefix:b}})}let E,L;return r.deleteShader(S),r.deleteShader(T),this.getUniforms=function(){return void 0===E&&(E=new ir(r,x)),E},this.getAttributes=function(){return void 0===L&&(L=function(t,e){const n={},i=t.getProgramParameter(e,35721);for(let r=0;r<i;r++){const i=t.getActiveAttrib(e,r).name;n[i]=t.getAttribLocation(e,i)}return n}(r,x)),L},this.destroy=function(){i.releaseStatesOfProgram(this),r.deleteProgram(x),this.program=void 0},this.name=n.shaderName,this.id=sr++,this.cacheKey=e,this.usedTimes=1,this.program=x,this.vertexShader=S,this.fragmentShader=T,this}function Sr(t,e,n,i,r,a){const o=[],l=i.isWebGL2,u=i.logarithmicDepthBuffer,d=i.floatVertexTextures,p=i.maxVertexUniforms,m=i.vertexTextures;let f=i.precision;const g={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"},v=["precision","isWebGL2","supportsVertexTextures","outputEncoding","instancing","instancingColor","map","mapEncoding","matcap","matcapEncoding","envMap","envMapMode","envMapEncoding","envMapCubeUV","lightMap","lightMapEncoding","aoMap","emissiveMap","emissiveMapEncoding","bumpMap","normalMap","objectSpaceNormalMap","tangentSpaceNormalMap","clearcoatMap","clearcoatRoughnessMap","clearcoatNormalMap","displacementMap","specularMap","roughnessMap","metalnessMap","gradientMap","alphaMap","combine","vertexColors","vertexAlphas","vertexTangents","vertexUvs","uvsVertexOnly","fog","useFog","fogExp2","flatShading","sizeAttenuation","logarithmicDepthBuffer","skinning","maxBones","useVertexTexture","morphTargets","morphNormals","premultipliedAlpha","numDirLights","numPointLights","numSpotLights","numHemiLights","numRectAreaLights","numDirLightShadows","numPointLightShadows","numSpotLightShadows","shadowMapEnabled","shadowMapType","toneMapping","physicallyCorrectLights","alphaTest","doubleSided","flipSided","numClippingPlanes","numClipIntersection","depthPacking","dithering","sheen","transmission","transmissionMap","thicknessMap"];function y(t){let e;return t&&t.isTexture?e=t.encoding:t&&t.isWebGLRenderTarget?(console.warn("THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead."),e=t.texture.encoding):e=O,e}return{getParameters:function(r,o,v,x,_){const b=x.fog,M=r.isMeshStandardMaterial?x.environment:null,w=e.get(r.envMap||M),S=g[r.type],T=_.isSkinnedMesh?function(t){const e=t.skeleton.bones;if(d)return 1024;{const t=p,n=Math.floor((t-20)/4),i=Math.min(n,e.length);return i<e.length?(console.warn("THREE.WebGLRenderer: Skeleton has "+e.length+" bones. This GPU supports "+i+"."),0):i}}(_):0;let E,L;if(null!==r.precision&&(f=i.getMaxPrecision(r.precision),f!==r.precision&&console.warn("THREE.WebGLProgram.getParameters:",r.precision,"not supported, using",f,"instead.")),S){const t=Un[S];E=t.vertexShader,L=t.fragmentShader}else E=r.vertexShader,L=r.fragmentShader;const A=t.getRenderTarget();return{isWebGL2:l,shaderID:S,shaderName:r.type,vertexShader:E,fragmentShader:L,defines:r.defines,isRawShaderMaterial:!0===r.isRawShaderMaterial,glslVersion:r.glslVersion,precision:f,instancing:!0===_.isInstancedMesh,instancingColor:!0===_.isInstancedMesh&&null!==_.instanceColor,supportsVertexTextures:m,outputEncoding:null!==A?y(A.texture):t.outputEncoding,map:!!r.map,mapEncoding:y(r.map),matcap:!!r.matcap,matcapEncoding:y(r.matcap),envMap:!!w,envMapMode:w&&w.mapping,envMapEncoding:y(w),envMapCubeUV:!!w&&(w.mapping===c||w.mapping===h),lightMap:!!r.lightMap,lightMapEncoding:y(r.lightMap),aoMap:!!r.aoMap,emissiveMap:!!r.emissiveMap,emissiveMapEncoding:y(r.emissiveMap),bumpMap:!!r.bumpMap,normalMap:!!r.normalMap,objectSpaceNormalMap:1===r.normalMapType,tangentSpaceNormalMap:0===r.normalMapType,clearcoatMap:!!r.clearcoatMap,clearcoatRoughnessMap:!!r.clearcoatRoughnessMap,clearcoatNormalMap:!!r.clearcoatNormalMap,displacementMap:!!r.displacementMap,roughnessMap:!!r.roughnessMap,metalnessMap:!!r.metalnessMap,specularMap:!!r.specularMap,alphaMap:!!r.alphaMap,gradientMap:!!r.gradientMap,sheen:!!r.sheen,transmission:!!r.transmission,transmissionMap:!!r.transmissionMap,thicknessMap:!!r.thicknessMap,combine:r.combine,vertexTangents:r.normalMap&&r.vertexTangents,vertexColors:r.vertexColors,vertexAlphas:!0===r.vertexColors&&_.geometry&&_.geometry.attributes.color&&4===_.geometry.attributes.color.itemSize,vertexUvs:!!r.map||!!r.bumpMap||!!r.normalMap||!!r.specularMap||!!r.alphaMap||!!r.emissiveMap||!!r.roughnessMap||!!r.metalnessMap||!!r.clearcoatMap||!!r.clearcoatRoughnessMap||!!r.clearcoatNormalMap||!!r.displacementMap||!!r.transmissionMap||!!r.thicknessMap,uvsVertexOnly:!(r.map||r.bumpMap||r.normalMap||r.specularMap||r.alphaMap||r.emissiveMap||r.roughnessMap||r.metalnessMap||r.clearcoatNormalMap||r.transmission||r.transmissionMap||r.thicknessMap)&&!!r.displacementMap,fog:!!b,useFog:r.fog,fogExp2:b&&b.isFogExp2,flatShading:!!r.flatShading,sizeAttenuation:r.sizeAttenuation,logarithmicDepthBuffer:u,skinning:!0===_.isSkinnedMesh&&T>0,maxBones:T,useVertexTexture:d,morphTargets:r.morphTargets,morphNormals:r.morphNormals,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:r.dithering,shadowMapEnabled:t.shadowMap.enabled&&v.length>0,shadowMapType:t.shadowMap.type,toneMapping:r.toneMapped?t.toneMapping:0,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:r.premultipliedAlpha,alphaTest:r.alphaTest,doubleSided:2===r.side,flipSided:r.side===s,depthPacking:void 0!==r.depthPacking&&r.depthPacking,index0AttributeName:r.index0AttributeName,extensionDerivatives:r.extensions&&r.extensions.derivatives,extensionFragDepth:r.extensions&&r.extensions.fragDepth,extensionDrawBuffers:r.extensions&&r.extensions.drawBuffers,extensionShaderTextureLOD:r.extensions&&r.extensions.shaderTextureLOD,rendererExtensionFragDepth:l||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:l||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:l||n.has("EXT_shader_texture_lod"),customProgramCacheKey:r.customProgramCacheKey()}},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.fragmentShader),n.push(e.vertexShader)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);if(!1===e.isRawShaderMaterial){for(let t=0;t<v.length;t++)n.push(e[v[t]]);n.push(t.outputEncoding),n.push(t.gammaFactor)}return n.push(e.customProgramCacheKey),n.join()},getUniforms:function(t){const e=g[t.type];let n;if(e){const t=Un[e];n=xn.clone(t.uniforms)}else n=t.uniforms;return n},acquireProgram:function(e,n){let i;for(let t=0,r=o.length;t<r;t++){const e=o[t];if(e.cacheKey===n){i=e,++i.usedTimes;break}}return void 0===i&&(i=new wr(t,n,e,r),o.push(i)),i},releaseProgram:function(t){if(0===--t.usedTimes){const e=o.indexOf(t);o[e]=o[o.length-1],o.pop(),t.destroy()}},programs:o}}function Tr(){let t=new WeakMap;return{get:function(e){let n=t.get(e);return void 0===n&&(n={},t.set(e,n)),n},remove:function(e){t.delete(e)},update:function(e,n,i){t.get(e)[n]=i},dispose:function(){t=new WeakMap}}}function Er(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.program!==e.program?t.program.id-e.program.id:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function Lr(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function Ar(t){const e=[];let n=0;const i=[],r=[],s=[],a={id:-1};function o(i,r,s,o,l,c){let h=e[n];const u=t.get(s);return void 0===h?(h={id:i.id,object:i,geometry:r,material:s,program:u.program||a,groupOrder:o,renderOrder:i.renderOrder,z:l,group:c},e[n]=h):(h.id=i.id,h.object=i,h.geometry=r,h.material=s,h.program=u.program||a,h.groupOrder=o,h.renderOrder=i.renderOrder,h.z=l,h.group=c),n++,h}return{opaque:i,transmissive:r,transparent:s,init:function(){n=0,i.length=0,r.length=0,s.length=0},push:function(t,e,n,a,l,c){const h=o(t,e,n,a,l,c);n.transmission>0?r.push(h):!0===n.transparent?s.push(h):i.push(h)},unshift:function(t,e,n,a,l,c){const h=o(t,e,n,a,l,c);n.transmission>0?r.unshift(h):!0===n.transparent?s.unshift(h):i.unshift(h)},finish:function(){for(let t=n,i=e.length;t<i;t++){const n=e[t];if(null===n.id)break;n.id=null,n.object=null,n.geometry=null,n.material=null,n.program=null,n.group=null}},sort:function(t,e){i.length>1&&i.sort(t||Er),r.length>1&&r.sort(e||Lr),s.length>1&&s.sort(e||Lr)}}}function Rr(t){let e=new WeakMap;return{get:function(n,i){let r;return!1===e.has(n)?(r=new Ar(t),e.set(n,[r])):i>=e.get(n).length?(r=new Ar(t),e.get(n).push(r)):r=e.get(n)[i],r},dispose:function(){e=new WeakMap}}}function Cr(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new ut,color:new Ie};break;case"SpotLight":n={position:new ut,direction:new ut,color:new Ie,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new ut,color:new Ie,distance:0,decay:0};break;case"HemisphereLight":n={direction:new ut,skyColor:new Ie,groundColor:new Ie};break;case"RectAreaLight":n={color:new Ie,position:new ut,halfWidth:new ut,halfHeight:new ut}}return t[e.id]=n,n}}}let Pr=0;function Dr(t,e){return(e.castShadow?1:0)-(t.castShadow?1:0)}function Ir(t,e){const n=new Cr,i=function(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new tt};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new tt,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let l=0;l<9;l++)r.probe.push(new ut);const s=new ut,a=new Vt,o=new Vt;return{setup:function(s){let a=0,o=0,l=0;for(let t=0;t<9;t++)r.probe[t].set(0,0,0);let c=0,h=0,u=0,d=0,p=0,m=0,f=0,g=0;s.sort(Dr);for(let t=0,e=s.length;t<e;t++){const e=s[t],v=e.color,y=e.intensity,x=e.distance,_=e.shadow&&e.shadow.map?e.shadow.map.texture:null;if(e.isAmbientLight)a+=v.r*y,o+=v.g*y,l+=v.b*y;else if(e.isLightProbe)for(let t=0;t<9;t++)r.probe[t].addScaledVector(e.sh.coefficients[t],y);else if(e.isDirectionalLight){const t=n.get(e);if(t.color.copy(e.color).multiplyScalar(e.intensity),e.castShadow){const t=e.shadow,n=i.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,r.directionalShadow[c]=n,r.directionalShadowMap[c]=_,r.directionalShadowMatrix[c]=e.shadow.matrix,m++}r.directional[c]=t,c++}else if(e.isSpotLight){const t=n.get(e);if(t.position.setFromMatrixPosition(e.matrixWorld),t.color.copy(v).multiplyScalar(y),t.distance=x,t.coneCos=Math.cos(e.angle),t.penumbraCos=Math.cos(e.angle*(1-e.penumbra)),t.decay=e.decay,e.castShadow){const t=e.shadow,n=i.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,r.spotShadow[u]=n,r.spotShadowMap[u]=_,r.spotShadowMatrix[u]=e.shadow.matrix,g++}r.spot[u]=t,u++}else if(e.isRectAreaLight){const t=n.get(e);t.color.copy(v).multiplyScalar(y),t.halfWidth.set(.5*e.width,0,0),t.halfHeight.set(0,.5*e.height,0),r.rectArea[d]=t,d++}else if(e.isPointLight){const t=n.get(e);if(t.color.copy(e.color).multiplyScalar(e.intensity),t.distance=e.distance,t.decay=e.decay,e.castShadow){const t=e.shadow,n=i.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,n.shadowCameraNear=t.camera.near,n.shadowCameraFar=t.camera.far,r.pointShadow[h]=n,r.pointShadowMap[h]=_,r.pointShadowMatrix[h]=e.shadow.matrix,f++}r.point[h]=t,h++}else if(e.isHemisphereLight){const t=n.get(e);t.skyColor.copy(e.color).multiplyScalar(y),t.groundColor.copy(e.groundColor).multiplyScalar(y),r.hemi[p]=t,p++}}d>0&&(e.isWebGL2||!0===t.has("OES_texture_float_linear")?(r.rectAreaLTC1=Fn.LTC_FLOAT_1,r.rectAreaLTC2=Fn.LTC_FLOAT_2):!0===t.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=Fn.LTC_HALF_1,r.rectAreaLTC2=Fn.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=a,r.ambient[1]=o,r.ambient[2]=l;const v=r.hash;v.directionalLength===c&&v.pointLength===h&&v.spotLength===u&&v.rectAreaLength===d&&v.hemiLength===p&&v.numDirectionalShadows===m&&v.numPointShadows===f&&v.numSpotShadows===g||(r.directional.length=c,r.spot.length=u,r.rectArea.length=d,r.point.length=h,r.hemi.length=p,r.directionalShadow.length=m,r.directionalShadowMap.length=m,r.pointShadow.length=f,r.pointShadowMap.length=f,r.spotShadow.length=g,r.spotShadowMap.length=g,r.directionalShadowMatrix.length=m,r.pointShadowMatrix.length=f,r.spotShadowMatrix.length=g,v.directionalLength=c,v.pointLength=h,v.spotLength=u,v.rectAreaLength=d,v.hemiLength=p,v.numDirectionalShadows=m,v.numPointShadows=f,v.numSpotShadows=g,r.version=Pr++)},setupView:function(t,e){let n=0,i=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let d=0,p=t.length;d<p;d++){const e=t[d];if(e.isDirectionalLight){const t=r.directional[n];t.direction.setFromMatrixPosition(e.matrixWorld),s.setFromMatrixPosition(e.target.matrixWorld),t.direction.sub(s),t.direction.transformDirection(u),n++}else if(e.isSpotLight){const t=r.spot[l];t.position.setFromMatrixPosition(e.matrixWorld),t.position.applyMatrix4(u),t.direction.setFromMatrixPosition(e.matrixWorld),s.setFromMatrixPosition(e.target.matrixWorld),t.direction.sub(s),t.direction.transformDirection(u),l++}else if(e.isRectAreaLight){const t=r.rectArea[c];t.position.setFromMatrixPosition(e.matrixWorld),t.position.applyMatrix4(u),o.identity(),a.copy(e.matrixWorld),a.premultiply(u),o.extractRotation(a),t.halfWidth.set(.5*e.width,0,0),t.halfHeight.set(0,.5*e.height,0),t.halfWidth.applyMatrix4(o),t.halfHeight.applyMatrix4(o),c++}else if(e.isPointLight){const t=r.point[i];t.position.setFromMatrixPosition(e.matrixWorld),t.position.applyMatrix4(u),i++}else if(e.isHemisphereLight){const t=r.hemi[h];t.direction.setFromMatrixPosition(e.matrixWorld),t.direction.transformDirection(u),t.direction.normalize(),h++}}},state:r}}function Nr(t,e){const n=new Ir(t,e),i=[],r=[];return{init:function(){i.length=0,r.length=0},state:{lightsArray:i,shadowsArray:r,lights:n},setupLights:function(){n.setup(i)},setupLightsView:function(t){n.setupView(i,t)},pushLight:function(t){i.push(t)},pushShadow:function(t){r.push(t)}}}function zr(t,e){let n=new WeakMap;return{get:function(i,r=0){let s;return!1===n.has(i)?(s=new Nr(t,e),n.set(i,[s])):r>=n.get(i).length?(s=new Nr(t,e),n.get(i).push(s)):s=n.get(i)[r],s},dispose:function(){n=new WeakMap}}}class Or extends Ee{constructor(t){super(),this.type="MeshDepthMaterial",this.depthPacking=3200,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}Or.prototype.isMeshDepthMaterial=!0;class Br extends Ee{constructor(t){super(),this.type="MeshDistanceMaterial",this.referencePosition=new ut,this.nearDistance=1,this.farDistance=1e3,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}Br.prototype.isMeshDistanceMaterial=!0;function Fr(t,e,n){let i=new In;const r=new tt,a=new tt,o=new ot,l=[],c=[],h={},u=n.maxTextureSize,d={0:s,1:0,2:2},p=new _n({defines:{SAMPLE_RATE:2/8,HALF_SAMPLE_RATE:1/8},uniforms:{shadow_pass:{value:null},resolution:{value:new tt},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include <packing>\nvoid main() {\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) );\n\tfor ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, i ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean * HALF_SAMPLE_RATE;\n\tsquared_mean = squared_mean * HALF_SAMPLE_RATE;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),f=p.clone();f.defines.HORIZONTAL_PASS=1;const g=new Je;g.setAttribute("position",new Be(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const y=new mn(g,p),x=this;function _(n,i){const r=e.update(y);p.uniforms.shadow_pass.value=n.map.texture,p.uniforms.resolution.value=n.mapSize,p.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,r,p,y,null),f.uniforms.shadow_pass.value=n.mapPass.texture,f.uniforms.resolution.value=n.mapSize,f.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,r,f,y,null)}function b(t){const e=t<<0;let n=l[e];return void 0===n&&(n=new Or({depthPacking:3201,morphTargets:t}),l[e]=n),n}function M(t){const e=t<<0;let n=c[e];return void 0===n&&(n=new Br({morphTargets:t}),c[e]=n),n}function w(e,n,i,r,s,a,o){let l=null,c=b,u=e.customDepthMaterial;if(!0===r.isPointLight&&(c=M,u=e.customDistanceMaterial),void 0===u){let t=!1;!0===i.morphTargets&&(t=n.morphAttributes&&n.morphAttributes.position&&n.morphAttributes.position.length>0),l=c(t)}else l=u;if(t.localClippingEnabled&&!0===i.clipShadows&&0!==i.clippingPlanes.length){const t=l.uuid,e=i.uuid;let n=h[t];void 0===n&&(n={},h[t]=n);let r=n[e];void 0===r&&(r=l.clone(),n[e]=r),l=r}return l.visible=i.visible,l.wireframe=i.wireframe,l.side=3===o?null!==i.shadowSide?i.shadowSide:i.side:null!==i.shadowSide?i.shadowSide:d[i.side],l.clipShadows=i.clipShadows,l.clippingPlanes=i.clippingPlanes,l.clipIntersection=i.clipIntersection,l.wireframeLinewidth=i.wireframeLinewidth,l.linewidth=i.linewidth,!0===r.isPointLight&&!0===l.isMeshDistanceMaterial&&(l.referencePosition.setFromMatrixPosition(r.matrixWorld),l.nearDistance=s,l.farDistance=a),l}function S(n,r,s,a,o){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&3===o)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n),r=n.material;if(Array.isArray(r)){const e=i.groups;for(let l=0,c=e.length;l<c;l++){const c=e[l],h=r[c.materialIndex];if(h&&h.visible){const e=w(n,i,h,a,s.near,s.far,o);t.renderBufferDirect(s,null,i,e,n,c)}}}else if(r.visible){const e=w(n,i,r,a,s.near,s.far,o);t.renderBufferDirect(s,null,i,e,n,null)}}const l=n.children;for(let t=0,e=l.length;t<e;t++)S(l[t],r,s,a,o)}this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1,this.render=function(e,n,s){if(!1===x.enabled)return;if(!1===x.autoUpdate&&!1===x.needsUpdate)return;if(0===e.length)return;const l=t.getRenderTarget(),c=t.getActiveCubeFace(),h=t.getActiveMipmapLevel(),d=t.state;d.setBlending(0),d.buffers.color.setClear(1,1,1,1),d.buffers.depth.setTest(!0),d.setScissorTest(!1);for(let p=0,f=e.length;p<f;p++){const l=e[p],c=l.shadow;if(void 0===c){console.warn("THREE.WebGLShadowMap:",l,"has no shadow.");continue}if(!1===c.autoUpdate&&!1===c.needsUpdate)continue;r.copy(c.mapSize);const h=c.getFrameExtents();if(r.multiply(h),a.copy(c.mapSize),(r.x>u||r.y>u)&&(r.x>u&&(a.x=Math.floor(u/h.x),r.x=a.x*h.x,c.mapSize.x=a.x),r.y>u&&(a.y=Math.floor(u/h.y),r.y=a.y*h.y,c.mapSize.y=a.y)),null===c.map&&!c.isPointLightShadow&&3===this.type){const t={minFilter:v,magFilter:v,format:E};c.map=new lt(r.x,r.y,t),c.map.texture.name=l.name+".shadowMap",c.mapPass=new lt(r.x,r.y,t),c.camera.updateProjectionMatrix()}if(null===c.map){const t={minFilter:m,magFilter:m,format:E};c.map=new lt(r.x,r.y,t),c.map.texture.name=l.name+".shadowMap",c.camera.updateProjectionMatrix()}t.setRenderTarget(c.map),t.clear();const f=c.getViewportCount();for(let t=0;t<f;t++){const e=c.getViewport(t);o.set(a.x*e.x,a.y*e.y,a.x*e.z,a.y*e.w),d.viewport(o),c.updateMatrices(l,t),i=c.getFrustum(),S(n,s,c.camera,l,this.type)}c.isPointLightShadow||3!==this.type||_(c,s),c.needsUpdate=!1}x.needsUpdate=!1,t.setRenderTarget(l,c,h)}}function Ur(t,e,n){const i=n.isWebGL2;const r=new function(){let e=!1;const n=new ot;let i=null;const r=new ot(0,0,0,0);return{setMask:function(n){i===n||e||(t.colorMask(n,n,n,n),i=n)},setLocked:function(t){e=t},setClear:function(e,i,s,a,o){!0===o&&(e*=a,i*=a,s*=a),n.set(e,i,s,a),!1===r.equals(n)&&(t.clearColor(e,i,s,a),r.copy(n))},reset:function(){e=!1,i=null,r.set(-1,0,0,0)}}},o=new function(){let e=!1,n=null,i=null,r=null;return{setTest:function(t){t?U(2929):H(2929)},setMask:function(i){n===i||e||(t.depthMask(i),n=i)},setFunc:function(e){if(i!==e){if(e)switch(e){case 0:t.depthFunc(512);break;case 1:t.depthFunc(519);break;case 2:t.depthFunc(513);break;case 3:t.depthFunc(515);break;case 4:t.depthFunc(514);break;case 5:t.depthFunc(518);break;case 6:t.depthFunc(516);break;case 7:t.depthFunc(517);break;default:t.depthFunc(515)}else t.depthFunc(515);i=e}},setLocked:function(t){e=t},setClear:function(e){r!==e&&(t.clearDepth(e),r=e)},reset:function(){e=!1,n=null,i=null,r=null}}},l=new function(){let e=!1,n=null,i=null,r=null,s=null,a=null,o=null,l=null,c=null;return{setTest:function(t){e||(t?U(2960):H(2960))},setMask:function(i){n===i||e||(t.stencilMask(i),n=i)},setFunc:function(e,n,a){i===e&&r===n&&s===a||(t.stencilFunc(e,n,a),i=e,r=n,s=a)},setOp:function(e,n,i){a===e&&o===n&&l===i||(t.stencilOp(e,n,i),a=e,o=n,l=i)},setLocked:function(t){e=t},setClear:function(e){c!==e&&(t.clearStencil(e),c=e)},reset:function(){e=!1,n=null,i=null,r=null,s=null,a=null,o=null,l=null,c=null}}};let c={},h=null,u={},d=null,p=!1,m=null,f=null,g=null,v=null,y=null,x=null,_=null,b=!1,M=null,w=null,S=null,T=null,E=null;const L=t.getParameter(35661);let A=!1,R=0;const C=t.getParameter(7938);-1!==C.indexOf("WebGL")?(R=parseFloat(/^WebGL (\d)/.exec(C)[1]),A=R>=1):-1!==C.indexOf("OpenGL ES")&&(R=parseFloat(/^OpenGL ES (\d)/.exec(C)[1]),A=R>=2);let P=null,D={};const I=t.getParameter(3088),N=t.getParameter(2978),z=(new ot).fromArray(I),O=(new ot).fromArray(N);function B(e,n,i){const r=new Uint8Array(4),s=t.createTexture();t.bindTexture(e,s),t.texParameteri(e,10241,9728),t.texParameteri(e,10240,9728);for(let a=0;a<i;a++)t.texImage2D(n+a,0,6408,1,1,0,6408,5121,r);return s}const F={};function U(e){!0!==c[e]&&(t.enable(e),c[e]=!0)}function H(e){!1!==c[e]&&(t.disable(e),c[e]=!1)}F[3553]=B(3553,3553,1),F[34067]=B(34067,34069,6),r.setClear(0,0,0,1),o.setClear(1),l.setClear(0),U(2929),o.setFunc(3),W(!1),j(1),U(2884),k(0);const G={[a]:32774,101:32778,102:32779};if(i)G[103]=32775,G[104]=32776;else{const t=e.get("EXT_blend_minmax");null!==t&&(G[103]=t.MIN_EXT,G[104]=t.MAX_EXT)}const V={200:0,201:1,202:768,204:770,210:776,208:774,206:772,203:769,205:771,209:775,207:773};function k(e,n,i,r,s,o,l,c){if(0!==e){if(!1===p&&(U(3042),p=!0),5===e)s=s||n,o=o||i,l=l||r,n===f&&s===y||(t.blendEquationSeparate(G[n],G[s]),f=n,y=s),i===g&&r===v&&o===x&&l===_||(t.blendFuncSeparate(V[i],V[r],V[o],V[l]),g=i,v=r,x=o,_=l),m=e,b=null;else if(e!==m||c!==b){if(f===a&&y===a||(t.blendEquation(32774),f=a,y=a),c)switch(e){case 1:t.blendFuncSeparate(1,771,1,771);break;case 2:t.blendFunc(1,1);break;case 3:t.blendFuncSeparate(0,0,769,771);break;case 4:t.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",e)}else switch(e){case 1:t.blendFuncSeparate(770,771,1,771);break;case 2:t.blendFunc(770,1);break;case 3:t.blendFunc(0,769);break;case 4:t.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",e)}g=null,v=null,x=null,_=null,m=e,b=c}}else!0===p&&(H(3042),p=!1)}function W(e){M!==e&&(e?t.frontFace(2304):t.frontFace(2305),M=e)}function j(e){0!==e?(U(2884),e!==w&&(1===e?t.cullFace(1029):2===e?t.cullFace(1028):t.cullFace(1032))):H(2884),w=e}function q(e,n,i){e?(U(32823),T===n&&E===i||(t.polygonOffset(n,i),T=n,E=i)):H(32823)}function X(e){void 0===e&&(e=33984+L-1),P!==e&&(t.activeTexture(e),P=e)}return{buffers:{color:r,depth:o,stencil:l},enable:U,disable:H,bindFramebuffer:function(e,n){return null===n&&null!==h&&(n=h),u[e]!==n&&(t.bindFramebuffer(e,n),u[e]=n,i&&(36009===e&&(u[36160]=n),36160===e&&(u[36009]=n)),!0)},bindXRFramebuffer:function(e){e!==h&&(t.bindFramebuffer(36160,e),h=e)},useProgram:function(e){return d!==e&&(t.useProgram(e),d=e,!0)},setBlending:k,setMaterial:function(t,e){2===t.side?H(2884):U(2884);let n=t.side===s;e&&(n=!n),W(n),1===t.blending&&!1===t.transparent?k(0):k(t.blending,t.blendEquation,t.blendSrc,t.blendDst,t.blendEquationAlpha,t.blendSrcAlpha,t.blendDstAlpha,t.premultipliedAlpha),o.setFunc(t.depthFunc),o.setTest(t.depthTest),o.setMask(t.depthWrite),r.setMask(t.colorWrite);const i=t.stencilWrite;l.setTest(i),i&&(l.setMask(t.stencilWriteMask),l.setFunc(t.stencilFunc,t.stencilRef,t.stencilFuncMask),l.setOp(t.stencilFail,t.stencilZFail,t.stencilZPass)),q(t.polygonOffset,t.polygonOffsetFactor,t.polygonOffsetUnits),!0===t.alphaToCoverage?U(32926):H(32926)},setFlipSided:W,setCullFace:j,setLineWidth:function(e){e!==S&&(A&&t.lineWidth(e),S=e)},setPolygonOffset:q,setScissorTest:function(t){t?U(3089):H(3089)},activeTexture:X,bindTexture:function(e,n){null===P&&X();let i=D[P];void 0===i&&(i={type:void 0,texture:void 0},D[P]=i),i.type===e&&i.texture===n||(t.bindTexture(e,n||F[e]),i.type=e,i.texture=n)},unbindTexture:function(){const e=D[P];void 0!==e&&void 0!==e.type&&(t.bindTexture(e.type,null),e.type=void 0,e.texture=void 0)},compressedTexImage2D:function(){try{t.compressedTexImage2D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},texImage2D:function(){try{t.texImage2D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},texImage3D:function(){try{t.texImage3D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},scissor:function(e){!1===z.equals(e)&&(t.scissor(e.x,e.y,e.z,e.w),z.copy(e))},viewport:function(e){!1===O.equals(e)&&(t.viewport(e.x,e.y,e.z,e.w),O.copy(e))},reset:function(){t.disable(3042),t.disable(2884),t.disable(2929),t.disable(32823),t.disable(3089),t.disable(2960),t.disable(32926),t.blendEquation(32774),t.blendFunc(1,0),t.blendFuncSeparate(1,0,1,0),t.colorMask(!0,!0,!0,!0),t.clearColor(0,0,0,0),t.depthMask(!0),t.depthFunc(513),t.clearDepth(1),t.stencilMask(4294967295),t.stencilFunc(519,0,4294967295),t.stencilOp(7680,7680,7680),t.clearStencil(0),t.cullFace(1029),t.frontFace(2305),t.polygonOffset(0,0),t.activeTexture(33984),t.bindFramebuffer(36160,null),!0===i&&(t.bindFramebuffer(36009,null),t.bindFramebuffer(36008,null)),t.useProgram(null),t.lineWidth(1),t.scissor(0,0,t.canvas.width,t.canvas.height),t.viewport(0,0,t.canvas.width,t.canvas.height),c={},P=null,D={},h=null,u={},d=null,p=!1,m=null,f=null,g=null,v=null,y=null,x=null,_=null,b=!1,M=null,w=null,S=null,T=null,E=null,z.set(0,0,t.canvas.width,t.canvas.height),O.set(0,0,t.canvas.width,t.canvas.height),r.reset(),o.reset(),l.reset()}}}function Hr(t,e,n,i,r,s,a){const o=r.isWebGL2,l=r.maxTextures,c=r.maxCubemapSize,h=r.maxTextureSize,x=r.maxSamples,R=new WeakMap;let C,P=!1;try{P="undefined"!==typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch(it){}function D(t,e){return P?new OffscreenCanvas(t,e):document.createElementNS("http://www.w3.org/1999/xhtml","canvas")}function I(t,e,n,i){let r=1;if((t.width>i||t.height>i)&&(r=i/Math.max(t.width,t.height)),r<1||!0===e){if("undefined"!==typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!==typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!==typeof ImageBitmap&&t instanceof ImageBitmap){const i=e?$:Math.floor,s=i(r*t.width),a=i(r*t.height);void 0===C&&(C=D(s,a));const o=n?D(s,a):C;o.width=s,o.height=a;return o.getContext("2d").drawImage(t,0,0,s,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+t.width+"x"+t.height+") to ("+s+"x"+a+")."),o}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+t.width+"x"+t.height+")."),t}return t}function N(t){return K(t.width)&&K(t.height)}function z(t,e){return t.generateMipmaps&&e&&t.minFilter!==m&&t.minFilter!==v}function O(e,n,r,s,a=1){t.generateMipmap(e);i.get(n).__maxMipLevel=Math.log2(Math.max(r,s,a))}function B(n,i,r){if(!1===o)return i;if(null!==n){if(void 0!==t[n])return t[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let s=i;return 6403===i&&(5126===r&&(s=33326),5131===r&&(s=33325),5121===r&&(s=33321)),6407===i&&(5126===r&&(s=34837),5131===r&&(s=34843),5121===r&&(s=32849)),6408===i&&(5126===r&&(s=34836),5131===r&&(s=34842),5121===r&&(s=32856)),33325!==s&&33326!==s&&34842!==s&&34836!==s||e.get("EXT_color_buffer_float"),s}function F(t){return t===m||t===f||t===g?9728:9729}function U(e){const n=e.target;n.removeEventListener("dispose",U),function(e){const n=i.get(e);if(void 0===n.__webglInit)return;t.deleteTexture(n.__webglTexture),i.remove(e)}(n),n.isVideoTexture&&R.delete(n),a.memory.textures--}function H(e){const n=e.target;n.removeEventListener("dispose",H),function(e){const n=e.texture,r=i.get(e),s=i.get(n);if(!e)return;void 0!==s.__webglTexture&&(t.deleteTexture(s.__webglTexture),a.memory.textures--);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let i=0;i<6;i++)t.deleteFramebuffer(r.__webglFramebuffer[i]),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer[i]);else t.deleteFramebuffer(r.__webglFramebuffer),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer),r.__webglMultisampledFramebuffer&&t.deleteFramebuffer(r.__webglMultisampledFramebuffer),r.__webglColorRenderbuffer&&t.deleteRenderbuffer(r.__webglColorRenderbuffer),r.__webglDepthRenderbuffer&&t.deleteRenderbuffer(r.__webglDepthRenderbuffer);if(e.isWebGLMultipleRenderTargets)for(let o=0,l=n.length;o<l;o++){const e=i.get(n[o]);e.__webglTexture&&(t.deleteTexture(e.__webglTexture),a.memory.textures--),i.remove(n[o])}i.remove(n),i.remove(e)}(n)}let G=0;function V(t,e){const r=i.get(t);if(t.isVideoTexture&&function(t){const e=a.render.frame;R.get(t)!==e&&(R.set(t,e),t.update())}(t),t.version>0&&r.__version!==t.version){const n=t.image;if(void 0===n)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");else{if(!1!==n.complete)return void Y(r,t,e);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.activeTexture(33984+e),n.bindTexture(3553,r.__webglTexture)}function k(e,r){const a=i.get(e);e.version>0&&a.__version!==e.version?function(e,i,r){if(6!==i.image.length)return;X(e,i),n.activeTexture(33984+r),n.bindTexture(34067,e.__webglTexture),t.pixelStorei(37440,i.flipY),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i.unpackAlignment),t.pixelStorei(37443,0);const a=i&&(i.isCompressedTexture||i.image[0].isCompressedTexture),l=i.image[0]&&i.image[0].isDataTexture,h=[];for(let t=0;t<6;t++)h[t]=a||l?l?i.image[t].image:i.image[t]:I(i.image[t],!1,!0,c);const u=h[0],d=N(u)||o,p=s.convert(i.format),m=s.convert(i.type),f=B(i.internalFormat,p,m);let g;if(q(34067,i,d),a){for(let t=0;t<6;t++){g=h[t].mipmaps;for(let e=0;e<g.length;e++){const r=g[e];i.format!==E&&i.format!==T?null!==p?n.compressedTexImage2D(34069+t,e,f,r.width,r.height,0,r.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):n.texImage2D(34069+t,e,f,r.width,r.height,0,p,m,r.data)}}e.__maxMipLevel=g.length-1}else{g=i.mipmaps;for(let t=0;t<6;t++)if(l){n.texImage2D(34069+t,0,f,h[t].width,h[t].height,0,p,m,h[t].data);for(let e=0;e<g.length;e++){const i=g[e].image[t].image;n.texImage2D(34069+t,e+1,f,i.width,i.height,0,p,m,i.data)}}else{n.texImage2D(34069+t,0,f,p,m,h[t]);for(let e=0;e<g.length;e++){const i=g[e];n.texImage2D(34069+t,e+1,f,p,m,i.image[t])}}e.__maxMipLevel=g.length}z(i,d)&&O(34067,i,u.width,u.height);e.__version=i.version,i.onUpdate&&i.onUpdate(i)}(a,e,r):(n.activeTexture(33984+r),n.bindTexture(34067,a.__webglTexture))}const W={[u]:10497,[d]:33071,[p]:33648},j={[m]:9728,[f]:9984,[g]:9986,[v]:9729,1007:9985,[y]:9987};function q(n,s,a){if(a?(t.texParameteri(n,10242,W[s.wrapS]),t.texParameteri(n,10243,W[s.wrapT]),32879!==n&&35866!==n||t.texParameteri(n,32882,W[s.wrapR]),t.texParameteri(n,10240,j[s.magFilter]),t.texParameteri(n,10241,j[s.minFilter])):(t.texParameteri(n,10242,33071),t.texParameteri(n,10243,33071),32879!==n&&35866!==n||t.texParameteri(n,32882,33071),s.wrapS===d&&s.wrapT===d||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(n,10240,F(s.magFilter)),t.texParameteri(n,10241,F(s.minFilter)),s.minFilter!==m&&s.minFilter!==v&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),!0===e.has("EXT_texture_filter_anisotropic")){const a=e.get("EXT_texture_filter_anisotropic");if(s.type===M&&!1===e.has("OES_texture_float_linear"))return;if(!1===o&&s.type===w&&!1===e.has("OES_texture_half_float_linear"))return;(s.anisotropy>1||i.get(s).__currentAnisotropy)&&(t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy())),i.get(s).__currentAnisotropy=s.anisotropy)}}function X(e,n){void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener("dispose",U),e.__webglTexture=t.createTexture(),a.memory.textures++)}function Y(e,i,r){let a=3553;i.isDataTexture2DArray&&(a=35866),i.isDataTexture3D&&(a=32879),X(e,i),n.activeTexture(33984+r),n.bindTexture(a,e.__webglTexture),t.pixelStorei(37440,i.flipY),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i.unpackAlignment),t.pixelStorei(37443,0);const l=function(t){return!o&&(t.wrapS!==d||t.wrapT!==d||t.minFilter!==m&&t.minFilter!==v)}(i)&&!1===N(i.image),c=I(i.image,l,!1,h),u=N(c)||o,p=s.convert(i.format);let f,g=s.convert(i.type),y=B(i.internalFormat,p,g);q(a,i,u);const x=i.mipmaps;if(i.isDepthTexture)y=6402,o?y=i.type===M?36012:i.type===b?33190:i.type===S?35056:33189:i.type===M&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),i.format===L&&6402===y&&i.type!==_&&i.type!==b&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),i.type=_,g=s.convert(i.type)),i.format===A&&6402===y&&(y=34041,i.type!==S&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),i.type=S,g=s.convert(i.type))),n.texImage2D(3553,0,y,c.width,c.height,0,p,g,null);else if(i.isDataTexture)if(x.length>0&&u){for(let t=0,e=x.length;t<e;t++)f=x[t],n.texImage2D(3553,t,y,f.width,f.height,0,p,g,f.data);i.generateMipmaps=!1,e.__maxMipLevel=x.length-1}else n.texImage2D(3553,0,y,c.width,c.height,0,p,g,c.data),e.__maxMipLevel=0;else if(i.isCompressedTexture){for(let t=0,e=x.length;t<e;t++)f=x[t],i.format!==E&&i.format!==T?null!==p?n.compressedTexImage2D(3553,t,y,f.width,f.height,0,f.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):n.texImage2D(3553,t,y,f.width,f.height,0,p,g,f.data);e.__maxMipLevel=x.length-1}else if(i.isDataTexture2DArray)n.texImage3D(35866,0,y,c.width,c.height,c.depth,0,p,g,c.data),e.__maxMipLevel=0;else if(i.isDataTexture3D)n.texImage3D(32879,0,y,c.width,c.height,c.depth,0,p,g,c.data),e.__maxMipLevel=0;else if(x.length>0&&u){for(let t=0,e=x.length;t<e;t++)f=x[t],n.texImage2D(3553,t,y,p,g,f);i.generateMipmaps=!1,e.__maxMipLevel=x.length-1}else n.texImage2D(3553,0,y,p,g,c),e.__maxMipLevel=0;z(i,u)&&O(a,i,c.width,c.height),e.__version=i.version,i.onUpdate&&i.onUpdate(i)}function J(e,r,a,o,l){const c=s.convert(a.format),h=s.convert(a.type),u=B(a.internalFormat,c,h);32879===l||35866===l?n.texImage3D(l,0,u,r.width,r.height,r.depth,0,c,h,null):n.texImage2D(l,0,u,r.width,r.height,0,c,h,null),n.bindFramebuffer(36160,e),t.framebufferTexture2D(36160,o,l,i.get(a).__webglTexture,0),n.bindFramebuffer(36160,null)}function Z(e,n,i){if(t.bindRenderbuffer(36161,e),n.depthBuffer&&!n.stencilBuffer){let r=33189;if(i){const e=n.depthTexture;e&&e.isDepthTexture&&(e.type===M?r=36012:e.type===b&&(r=33190));const i=tt(n);t.renderbufferStorageMultisample(36161,i,r,n.width,n.height)}else t.renderbufferStorage(36161,r,n.width,n.height);t.framebufferRenderbuffer(36160,36096,36161,e)}else if(n.depthBuffer&&n.stencilBuffer){if(i){const e=tt(n);t.renderbufferStorageMultisample(36161,e,35056,n.width,n.height)}else t.renderbufferStorage(36161,34041,n.width,n.height);t.framebufferRenderbuffer(36160,33306,36161,e)}else{const e=!0===n.isWebGLMultipleRenderTargets?n.texture[0]:n.texture,r=s.convert(e.format),a=s.convert(e.type),o=B(e.internalFormat,r,a);if(i){const e=tt(n);t.renderbufferStorageMultisample(36161,e,o,n.width,n.height)}else t.renderbufferStorage(36161,o,n.width,n.height)}t.bindRenderbuffer(36161,null)}function Q(e){const r=i.get(e),s=!0===e.isWebGLCubeRenderTarget;if(e.depthTexture){if(s)throw new Error("target.depthTexture not supported in Cube render targets");!function(e,r){if(r&&r.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(n.bindFramebuffer(36160,e),!r.depthTexture||!r.depthTexture.isDepthTexture)throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");i.get(r.depthTexture).__webglTexture&&r.depthTexture.image.width===r.width&&r.depthTexture.image.height===r.height||(r.depthTexture.image.width=r.width,r.depthTexture.image.height=r.height,r.depthTexture.needsUpdate=!0),V(r.depthTexture,0);const s=i.get(r.depthTexture).__webglTexture;if(r.depthTexture.format===L)t.framebufferTexture2D(36160,36096,3553,s,0);else{if(r.depthTexture.format!==A)throw new Error("Unknown depthTexture format");t.framebufferTexture2D(36160,33306,3553,s,0)}}(r.__webglFramebuffer,e)}else if(s){r.__webglDepthbuffer=[];for(let i=0;i<6;i++)n.bindFramebuffer(36160,r.__webglFramebuffer[i]),r.__webglDepthbuffer[i]=t.createRenderbuffer(),Z(r.__webglDepthbuffer[i],e,!1)}else n.bindFramebuffer(36160,r.__webglFramebuffer),r.__webglDepthbuffer=t.createRenderbuffer(),Z(r.__webglDepthbuffer,e,!1);n.bindFramebuffer(36160,null)}function tt(t){return o&&t.isWebGLMultisampleRenderTarget?Math.min(x,t.samples):0}let et=!1,nt=!1;this.allocateTextureUnit=function(){const t=G;return t>=l&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+l),G+=1,t},this.resetTextureUnits=function(){G=0},this.setTexture2D=V,this.setTexture2DArray=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?Y(r,t,e):(n.activeTexture(33984+e),n.bindTexture(35866,r.__webglTexture))},this.setTexture3D=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?Y(r,t,e):(n.activeTexture(33984+e),n.bindTexture(32879,r.__webglTexture))},this.setTextureCube=k,this.setupRenderTarget=function(e){const l=e.texture,c=i.get(e),h=i.get(l);e.addEventListener("dispose",H),!0!==e.isWebGLMultipleRenderTargets&&(h.__webglTexture=t.createTexture(),h.__version=l.version,a.memory.textures++);const u=!0===e.isWebGLCubeRenderTarget,d=!0===e.isWebGLMultipleRenderTargets,p=!0===e.isWebGLMultisampleRenderTarget,m=l.isDataTexture3D||l.isDataTexture2DArray,f=N(e)||o;if(!o||l.format!==T||l.type!==M&&l.type!==w||(l.format=E,console.warn("THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead.")),u){c.__webglFramebuffer=[];for(let e=0;e<6;e++)c.__webglFramebuffer[e]=t.createFramebuffer()}else if(c.__webglFramebuffer=t.createFramebuffer(),d)if(r.drawBuffers){const n=e.texture;for(let e=0,r=n.length;e<r;e++){const r=i.get(n[e]);void 0===r.__webglTexture&&(r.__webglTexture=t.createTexture(),a.memory.textures++)}}else console.warn("THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.");else if(p)if(o){c.__webglMultisampledFramebuffer=t.createFramebuffer(),c.__webglColorRenderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,c.__webglColorRenderbuffer);const i=s.convert(l.format),r=s.convert(l.type),a=B(l.internalFormat,i,r),o=tt(e);t.renderbufferStorageMultisample(36161,o,a,e.width,e.height),n.bindFramebuffer(36160,c.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(36160,36064,36161,c.__webglColorRenderbuffer),t.bindRenderbuffer(36161,null),e.depthBuffer&&(c.__webglDepthRenderbuffer=t.createRenderbuffer(),Z(c.__webglDepthRenderbuffer,e,!0)),n.bindFramebuffer(36160,null)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.");if(u){n.bindTexture(34067,h.__webglTexture),q(34067,l,f);for(let t=0;t<6;t++)J(c.__webglFramebuffer[t],e,l,36064,34069+t);z(l,f)&&O(34067,l,e.width,e.height),n.bindTexture(34067,null)}else if(d){const t=e.texture;for(let r=0,s=t.length;r<s;r++){const s=t[r],a=i.get(s);n.bindTexture(3553,a.__webglTexture),q(3553,s,f),J(c.__webglFramebuffer,e,s,36064+r,3553),z(s,f)&&O(3553,s,e.width,e.height)}n.bindTexture(3553,null)}else{let t=3553;if(m)if(o){t=l.isDataTexture3D?32879:35866}else console.warn("THREE.DataTexture3D and THREE.DataTexture2DArray only supported with WebGL2.");n.bindTexture(t,h.__webglTexture),q(t,l,f),J(c.__webglFramebuffer,e,l,36064,t),z(l,f)&&O(t,l,e.width,e.height,e.depth),n.bindTexture(t,null)}e.depthBuffer&&Q(e)},this.updateRenderTargetMipmap=function(t){const e=N(t)||o,r=!0===t.isWebGLMultipleRenderTargets?t.texture:[t.texture];for(let s=0,a=r.length;s<a;s++){const a=r[s];if(z(a,e)){const e=t.isWebGLCubeRenderTarget?34067:3553,r=i.get(a).__webglTexture;n.bindTexture(e,r),O(e,a,t.width,t.height),n.bindTexture(e,null)}}},this.updateMultisampleRenderTarget=function(e){if(e.isWebGLMultisampleRenderTarget)if(o){const r=e.width,s=e.height;let a=16384;e.depthBuffer&&(a|=256),e.stencilBuffer&&(a|=1024);const o=i.get(e);n.bindFramebuffer(36008,o.__webglMultisampledFramebuffer),n.bindFramebuffer(36009,o.__webglFramebuffer),t.blitFramebuffer(0,0,r,s,0,0,r,s,a,9728),n.bindFramebuffer(36008,null),n.bindFramebuffer(36009,o.__webglMultisampledFramebuffer)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.")},this.safeSetTexture2D=function(t,e){t&&t.isWebGLRenderTarget&&(!1===et&&(console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."),et=!0),t=t.texture),V(t,e)},this.safeSetTextureCube=function(t,e){t&&t.isWebGLCubeRenderTarget&&(!1===nt&&(console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."),nt=!0),t=t.texture),k(t,e)}}function Gr(t,e,n){const i=n.isWebGL2;return{convert:function(t){let n;if(t===x)return 5121;if(1017===t)return 32819;if(1018===t)return 32820;if(1019===t)return 33635;if(1010===t)return 5120;if(1011===t)return 5122;if(t===_)return 5123;if(1013===t)return 5124;if(t===b)return 5125;if(t===M)return 5126;if(t===w)return i?5131:(n=e.get("OES_texture_half_float"),null!==n?n.HALF_FLOAT_OES:null);if(1021===t)return 6406;if(t===T)return 6407;if(t===E)return 6408;if(1024===t)return 6409;if(1025===t)return 6410;if(t===L)return 6402;if(t===A)return 34041;if(1028===t)return 6403;if(1029===t)return 36244;if(1030===t)return 33319;if(1031===t)return 33320;if(1032===t)return 36248;if(1033===t)return 36249;if(33776===t||33777===t||33778===t||33779===t){if(n=e.get("WEBGL_compressed_texture_s3tc"),null===n)return null;if(33776===t)return n.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777===t)return n.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(33778===t)return n.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779===t)return n.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(35840===t||35841===t||35842===t||35843===t){if(n=e.get("WEBGL_compressed_texture_pvrtc"),null===n)return null;if(35840===t)return n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(35841===t)return n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842===t)return n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===t)return n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===t)return n=e.get("WEBGL_compressed_texture_etc1"),null!==n?n.COMPRESSED_RGB_ETC1_WEBGL:null;if((37492===t||37496===t)&&(n=e.get("WEBGL_compressed_texture_etc"),null!==n)){if(37492===t)return n.COMPRESSED_RGB8_ETC2;if(37496===t)return n.COMPRESSED_RGBA8_ETC2_EAC}return 37808===t||37809===t||37810===t||37811===t||37812===t||37813===t||37814===t||37815===t||37816===t||37817===t||37818===t||37819===t||37820===t||37821===t||37840===t||37841===t||37842===t||37843===t||37844===t||37845===t||37846===t||37847===t||37848===t||37849===t||37850===t||37851===t||37852===t||37853===t?(n=e.get("WEBGL_compressed_texture_astc"),null!==n?t:null):36492===t?(n=e.get("EXT_texture_compression_bptc"),null!==n?t:null):t===S?i?34042:(n=e.get("WEBGL_depth_texture"),null!==n?n.UNSIGNED_INT_24_8_WEBGL:null):void 0}}}class Vr extends Mn{constructor(t=[]){super(),this.cameras=t}}Vr.prototype.isArrayCamera=!0;class kr extends pe{constructor(){super(),this.type="Group"}}kr.prototype.isGroup=!0;const Wr={type:"move"};class jr{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return null===this._hand&&(this._hand=new kr,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return null===this._targetRay&&(this._targetRay=new kr,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new ut,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new ut),this._targetRay}getGripSpace(){return null===this._grip&&(this._grip=new kr,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new ut,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new ut),this._grip}dispatchEvent(t){return null!==this._targetRay&&this._targetRay.dispatchEvent(t),null!==this._grip&&this._grip.dispatchEvent(t),null!==this._hand&&this._hand.dispatchEvent(t),this}disconnect(t){return this.dispatchEvent({type:"disconnected",data:t}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this}update(t,e,n){let i=null,r=null,s=null;const a=this._targetRay,o=this._grip,l=this._hand;if(t&&"visible-blurred"!==e.session.visibilityState)if(null!==a&&(i=e.getPose(t.targetRaySpace,n),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(Wr))),l&&t.hand){s=!0;for(const s of t.hand.values()){const t=e.getJointPose(s,n);if(void 0===l.joints[s.jointName]){const t=new kr;t.matrixAutoUpdate=!1,t.visible=!1,l.joints[s.jointName]=t,l.add(t)}const i=l.joints[s.jointName];null!==t&&(i.matrix.fromArray(t.transform.matrix),i.matrix.decompose(i.position,i.rotation,i.scale),i.jointRadius=t.radius),i.visible=null!==t}const i=l.joints["index-finger-tip"],r=l.joints["thumb-tip"],a=i.position.distanceTo(r.position),o=.02,c=.005;l.inputState.pinching&&a>o+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==o&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));return null!==a&&(a.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==s),this}}class qr extends W{constructor(t,e){super();const n=this,i=t.state;let r=null,s=1,a=null,o="local-floor",l=null,c=null,h=null,u=null;const d=[],p=new Map,m=new Mn;m.layers.enable(1),m.viewport=new ot;const f=new Mn;f.layers.enable(2),f.viewport=new ot;const g=[m,f],v=new Vr;v.layers.enable(1),v.layers.enable(2);let y=null,x=null;function _(t){const e=p.get(t.inputSource);e&&e.dispatchEvent({type:t.type,data:t.inputSource})}function b(){p.forEach((function(t,e){t.disconnect(e)})),p.clear(),y=null,x=null,i.bindXRFramebuffer(null),t.setRenderTarget(t.getRenderTarget()),L.stop(),n.isPresenting=!1,n.dispatchEvent({type:"sessionend"})}function M(t){const e=r.inputSources;for(let n=0;n<d.length;n++)p.set(e[n],d[n]);for(let n=0;n<t.removed.length;n++){const e=t.removed[n],i=p.get(e);i&&(i.dispatchEvent({type:"disconnected",data:e}),p.delete(e))}for(let n=0;n<t.added.length;n++){const e=t.added[n],i=p.get(e);i&&i.dispatchEvent({type:"connected",data:e})}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=d[t];return void 0===e&&(e=new jr,d[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=d[t];return void 0===e&&(e=new jr,d[t]=e),e.getGripSpace()},this.getHand=function(t){let e=d[t];return void 0===e&&(e=new jr,d[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){s=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(t){o=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return a},this.getSession=function(){return r},this.setSession=async function(t){if(r=t,null!==r){r.addEventListener("select",_),r.addEventListener("selectstart",_),r.addEventListener("selectend",_),r.addEventListener("squeeze",_),r.addEventListener("squeezestart",_),r.addEventListener("squeezeend",_),r.addEventListener("end",b),r.addEventListener("inputsourceschange",M);const t=e.getContextAttributes();if(!0!==t.xrCompatible&&await e.makeXRCompatible(),void 0===r.renderState.layers){const n={antialias:t.antialias,alpha:t.alpha,depth:t.depth,stencil:t.stencil,framebufferScaleFactor:s},i=new XRWebGLLayer(r,e,n);r.updateRenderState({baseLayer:i})}else{let n=0;t.depth&&(n=t.stencil?34041:6402);const i={colorFormat:t.alpha?6408:6407,depthFormat:n,scaleFactor:s};c=new XRWebGLBinding(r,e),u=c.createProjectionLayer(i),h=e.createFramebuffer(),r.updateRenderState({layers:[u]})}a=await r.requestReferenceSpace(o),L.setContext(r),L.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}};const w=new ut,S=new ut;function T(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(null===r)return;v.near=f.near=m.near=t.near,v.far=f.far=m.far=t.far,y===v.near&&x===v.far||(r.updateRenderState({depthNear:v.near,depthFar:v.far}),y=v.near,x=v.far);const e=t.parent,n=v.cameras;T(v,e);for(let r=0;r<n.length;r++)T(n[r],e);v.matrixWorld.decompose(v.position,v.quaternion,v.scale),t.position.copy(v.position),t.quaternion.copy(v.quaternion),t.scale.copy(v.scale),t.matrix.copy(v.matrix),t.matrixWorld.copy(v.matrixWorld);const i=t.children;for(let r=0,s=i.length;r<s;r++)i[r].updateMatrixWorld(!0);2===n.length?function(t,e,n){w.setFromMatrixPosition(e.matrixWorld),S.setFromMatrixPosition(n.matrixWorld);const i=w.distanceTo(S),r=e.projectionMatrix.elements,s=n.projectionMatrix.elements,a=r[14]/(r[10]-1),o=r[14]/(r[10]+1),l=(r[9]+1)/r[5],c=(r[9]-1)/r[5],h=(r[8]-1)/r[0],u=(s[8]+1)/s[0],d=a*h,p=a*u,m=i/(-h+u),f=m*-h;e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(f),t.translateZ(m),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.copy(t.matrixWorld).invert();const g=a+m,v=o+m,y=d-f,x=p+(i-f),_=l*o/v*g,b=c*o/v*g;t.projectionMatrix.makePerspective(y,x,_,b,g,v)}(v,m,f):v.projectionMatrix.copy(m.projectionMatrix)},this.getCamera=function(){return v};let E=null;const L=new Nn;L.setAnimationLoop((function(t,n){if(l=n.getViewerPose(a),null!==l){const t=l.views,n=r.renderState.baseLayer;void 0===r.renderState.layers&&i.bindXRFramebuffer(n.framebuffer);let s=!1;t.length!==v.cameras.length&&(v.cameras.length=0,s=!0);for(let a=0;a<t.length;a++){const o=t[a];let l=null;if(void 0===r.renderState.layers)l=n.getViewport(o);else{const t=c.getViewSubImage(u,o);i.bindXRFramebuffer(h),e.framebufferTexture2D(36160,36064,3553,t.colorTexture,0),void 0!==t.depthStencilTexture&&e.framebufferTexture2D(36160,36096,3553,t.depthStencilTexture,0),l=t.viewport}const d=g[a];d.matrix.fromArray(o.transform.matrix),d.projectionMatrix.fromArray(o.projectionMatrix),d.viewport.set(l.x,l.y,l.width,l.height),0===a&&v.matrix.copy(d.matrix),!0===s&&v.cameras.push(d)}}const s=r.inputSources;for(let e=0;e<d.length;e++){const t=d[e],i=s[e];t.update(i,n,a)}E&&E(t,n)})),this.setAnimationLoop=function(t){E=t},this.dispose=function(){}}}function Xr(t){function e(e,n){e.opacity.value=n.opacity,n.color&&e.diffuse.value.copy(n.color),n.emissive&&e.emissive.value.copy(n.emissive).multiplyScalar(n.emissiveIntensity),n.map&&(e.map.value=n.map),n.alphaMap&&(e.alphaMap.value=n.alphaMap),n.specularMap&&(e.specularMap.value=n.specularMap);const i=t.get(n).envMap;if(i){e.envMap.value=i,e.flipEnvMap.value=i.isCubeTexture&&i._needsFlipEnvMap?-1:1,e.reflectivity.value=n.reflectivity,e.refractionRatio.value=n.refractionRatio;const r=t.get(i).__maxMipLevel;void 0!==r&&(e.maxMipLevel.value=r)}let r,s;n.lightMap&&(e.lightMap.value=n.lightMap,e.lightMapIntensity.value=n.lightMapIntensity),n.aoMap&&(e.aoMap.value=n.aoMap,e.aoMapIntensity.value=n.aoMapIntensity),n.map?r=n.map:n.specularMap?r=n.specularMap:n.displacementMap?r=n.displacementMap:n.normalMap?r=n.normalMap:n.bumpMap?r=n.bumpMap:n.roughnessMap?r=n.roughnessMap:n.metalnessMap?r=n.metalnessMap:n.alphaMap?r=n.alphaMap:n.emissiveMap?r=n.emissiveMap:n.clearcoatMap?r=n.clearcoatMap:n.clearcoatNormalMap?r=n.clearcoatNormalMap:n.clearcoatRoughnessMap&&(r=n.clearcoatRoughnessMap),void 0!==r&&(r.isWebGLRenderTarget&&(r=r.texture),!0===r.matrixAutoUpdate&&r.updateMatrix(),e.uvTransform.value.copy(r.matrix)),n.aoMap?s=n.aoMap:n.lightMap&&(s=n.lightMap),void 0!==s&&(s.isWebGLRenderTarget&&(s=s.texture),!0===s.matrixAutoUpdate&&s.updateMatrix(),e.uv2Transform.value.copy(s.matrix))}function n(e,n){e.roughness.value=n.roughness,e.metalness.value=n.metalness,n.roughnessMap&&(e.roughnessMap.value=n.roughnessMap),n.metalnessMap&&(e.metalnessMap.value=n.metalnessMap),n.emissiveMap&&(e.emissiveMap.value=n.emissiveMap),n.bumpMap&&(e.bumpMap.value=n.bumpMap,e.bumpScale.value=n.bumpScale,n.side===s&&(e.bumpScale.value*=-1)),n.normalMap&&(e.normalMap.value=n.normalMap,e.normalScale.value.copy(n.normalScale),n.side===s&&e.normalScale.value.negate()),n.displacementMap&&(e.displacementMap.value=n.displacementMap,e.displacementScale.value=n.displacementScale,e.displacementBias.value=n.displacementBias);t.get(n).envMap&&(e.envMapIntensity.value=n.envMapIntensity)}return{refreshFogUniforms:function(t,e){t.fogColor.value.copy(e.color),e.isFog?(t.fogNear.value=e.near,t.fogFar.value=e.far):e.isFogExp2&&(t.fogDensity.value=e.density)},refreshMaterialUniforms:function(t,i,r,a,o){i.isMeshBasicMaterial?e(t,i):i.isMeshLambertMaterial?(e(t,i),function(t,e){e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap)}(t,i)):i.isMeshToonMaterial?(e(t,i),function(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap);e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,e.side===s&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),e.side===s&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshPhongMaterial?(e(t,i),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,e.side===s&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),e.side===s&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshStandardMaterial?(e(t,i),i.isMeshPhysicalMaterial?function(t,e,i){n(t,e),t.reflectivity.value=e.reflectivity,t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.sheen&&t.sheen.value.copy(e.sheen);e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap);e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap);e.clearcoatNormalMap&&(t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),t.clearcoatNormalMap.value=e.clearcoatNormalMap,e.side===s&&t.clearcoatNormalScale.value.negate());t.transmission.value=e.transmission,e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap);e.transmission>0&&(t.transmissionSamplerMap.value=i.texture,t.transmissionSamplerSize.value.set(i.width,i.height));t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap);t.attenuationDistance.value=e.attenuationDistance,t.attenuationColor.value.copy(e.attenuationColor)}(t,i,o):n(t,i)):i.isMeshMatcapMaterial?(e(t,i),function(t,e){e.matcap&&(t.matcap.value=e.matcap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,e.side===s&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),e.side===s&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshDepthMaterial?(e(t,i),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshDistanceMaterial?(e(t,i),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias);t.referencePosition.value.copy(e.referencePosition),t.nearDistance.value=e.nearDistance,t.farDistance.value=e.farDistance}(t,i)):i.isMeshNormalMaterial?(e(t,i),function(t,e){e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,e.side===s&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),e.side===s&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity}(t,i),i.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(t,i)):i.isPointsMaterial?function(t,e,n,i){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*n,t.scale.value=.5*i,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);let r;e.map?r=e.map:e.alphaMap&&(r=e.alphaMap);void 0!==r&&(!0===r.matrixAutoUpdate&&r.updateMatrix(),t.uvTransform.value.copy(r.matrix))}(t,i,r,a):i.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);let n;e.map?n=e.map:e.alphaMap&&(n=e.alphaMap);void 0!==n&&(!0===n.matrixAutoUpdate&&n.updateMatrix(),t.uvTransform.value.copy(n.matrix))}(t,i):i.isShadowMaterial?(t.color.value.copy(i.color),t.opacity.value=i.opacity):i.isShaderMaterial&&(i.uniformsNeedUpdate=!1)}}}function Yr(t={}){const e=void 0!==t.canvas?t.canvas:function(){const t=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");return t.style.display="block",t}(),n=void 0!==t.context?t.context:null,i=void 0!==t.alpha&&t.alpha,r=void 0===t.depth||t.depth,a=void 0===t.stencil||t.stencil,o=void 0!==t.antialias&&t.antialias,l=void 0===t.premultipliedAlpha||t.premultipliedAlpha,c=void 0!==t.preserveDrawingBuffer&&t.preserveDrawingBuffer,h=void 0!==t.powerPreference?t.powerPreference:"default",u=void 0!==t.failIfMajorPerformanceCaveat&&t.failIfMajorPerformanceCaveat;let p=null,f=null;const g=[],v=[];this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.gammaFactor=2,this.outputEncoding=O,this.physicallyCorrectLights=!1,this.toneMapping=0,this.toneMappingExposure=1;const _=this;let b=!1,S=0,T=0,L=null,A=-1,R=null;const C=new ot,P=new ot;let D=null,I=e.width,N=e.height,z=1,B=null,F=null;const U=new ot(0,0,I,N),H=new ot(0,0,I,N);let G=!1;const V=[],k=new In;let W=!1,j=!1,q=null;const X=new Vt,Y=new ut,J={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function Z(){return null===L?z:1}let Q,K,$,tt,et,nt,it,rt,st,at,ht,dt,pt,mt,ft,gt,vt,yt,xt,_t,bt,Mt,wt=n;function St(t,n){for(let i=0;i<t.length;i++){const r=t[i],s=e.getContext(r,n);if(null!==s)return s}return null}try{const t={alpha:i,depth:r,stencil:a,antialias:o,premultipliedAlpha:l,preserveDrawingBuffer:c,powerPreference:h,failIfMajorPerformanceCaveat:u};if(e.addEventListener("webglcontextlost",Lt,!1),e.addEventListener("webglcontextrestored",At,!1),null===wt){const e=["webgl2","webgl","experimental-webgl"];if(!0===_.isWebGL1Renderer&&e.shift(),wt=St(e,t),null===wt)throw St(e)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}void 0===wt.getShaderPrecisionFormat&&(wt.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(Ht){throw console.error("THREE.WebGLRenderer: "+Ht.message),Ht}function Tt(){Q=new qn(wt),K=new kn(wt,Q,t),Q.init(K),bt=new Gr(wt,Q,K),$=new Ur(wt,Q,K),V[0]=1029,tt=new Jn(wt),et=new Tr,nt=new Hr(wt,Q,$,et,K,bt,tt),it=new jn(_),rt=new zn(wt,K),Mt=new Gn(wt,Q,rt,K),st=new Xn(wt,rt,tt,Mt),at=new $n(wt,st,rt,tt),yt=new Kn(wt),ft=new Wn(et),ht=new Sr(_,it,Q,K,Mt,ft),dt=new Xr(et),pt=new Rr(et),mt=new zr(Q,K),vt=new Hn(_,it,$,at,l),gt=new Fr(_,at,K),xt=new Vn(wt,Q,tt,K),_t=new Yn(wt,Q,tt,K),tt.programs=ht.programs,_.capabilities=K,_.extensions=Q,_.properties=et,_.renderLists=pt,_.shadowMap=gt,_.state=$,_.info=tt}Tt();const Et=new qr(_,wt);function Lt(t){t.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),b=!0}function At(){console.log("THREE.WebGLRenderer: Context Restored."),b=!1;const t=tt.autoReset,e=gt.enabled,n=gt.autoUpdate,i=gt.needsUpdate,r=gt.type;Tt(),tt.autoReset=t,gt.enabled=e,gt.autoUpdate=n,gt.needsUpdate=i,gt.type=r}function Rt(t){const e=t.target;e.removeEventListener("dispose",Rt),function(t){(function(t){const e=et.get(t).programs;void 0!==e&&e.forEach((function(t){ht.releaseProgram(t)}))})(t),et.remove(t)}(e)}this.xr=Et,this.getContext=function(){return wt},this.getContextAttributes=function(){return wt.getContextAttributes()},this.forceContextLoss=function(){const t=Q.get("WEBGL_lose_context");t&&t.loseContext()},this.forceContextRestore=function(){const t=Q.get("WEBGL_lose_context");t&&t.restoreContext()},this.getPixelRatio=function(){return z},this.setPixelRatio=function(t){void 0!==t&&(z=t,this.setSize(I,N,!1))},this.getSize=function(t){return t.set(I,N)},this.setSize=function(t,n,i){Et.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(I=t,N=n,e.width=Math.floor(t*z),e.height=Math.floor(n*z),!1!==i&&(e.style.width=t+"px",e.style.height=n+"px"),this.setViewport(0,0,t,n))},this.getDrawingBufferSize=function(t){return t.set(I*z,N*z).floor()},this.setDrawingBufferSize=function(t,n,i){I=t,N=n,z=i,e.width=Math.floor(t*i),e.height=Math.floor(n*i),this.setViewport(0,0,t,n)},this.getCurrentViewport=function(t){return t.copy(C)},this.getViewport=function(t){return t.copy(U)},this.setViewport=function(t,e,n,i){t.isVector4?U.set(t.x,t.y,t.z,t.w):U.set(t,e,n,i),$.viewport(C.copy(U).multiplyScalar(z).floor())},this.getScissor=function(t){return t.copy(H)},this.setScissor=function(t,e,n,i){t.isVector4?H.set(t.x,t.y,t.z,t.w):H.set(t,e,n,i),$.scissor(P.copy(H).multiplyScalar(z).floor())},this.getScissorTest=function(){return G},this.setScissorTest=function(t){$.setScissorTest(G=t)},this.setOpaqueSort=function(t){B=t},this.setTransparentSort=function(t){F=t},this.getClearColor=function(t){return t.copy(vt.getClearColor())},this.setClearColor=function(){vt.setClearColor.apply(vt,arguments)},this.getClearAlpha=function(){return vt.getClearAlpha()},this.setClearAlpha=function(){vt.setClearAlpha.apply(vt,arguments)},this.clear=function(t,e,n){let i=0;(void 0===t||t)&&(i|=16384),(void 0===e||e)&&(i|=256),(void 0===n||n)&&(i|=1024),wt.clear(i)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){e.removeEventListener("webglcontextlost",Lt,!1),e.removeEventListener("webglcontextrestored",At,!1),pt.dispose(),mt.dispose(),et.dispose(),it.dispose(),at.dispose(),Mt.dispose(),Et.dispose(),Et.removeEventListener("sessionstart",Pt),Et.removeEventListener("sessionend",Dt),q&&(q.dispose(),q=null),It.stop()},this.renderBufferImmediate=function(t,e){Mt.initAttributes();const n=et.get(t);t.hasPositions&&!n.position&&(n.position=wt.createBuffer()),t.hasNormals&&!n.normal&&(n.normal=wt.createBuffer()),t.hasUvs&&!n.uv&&(n.uv=wt.createBuffer()),t.hasColors&&!n.color&&(n.color=wt.createBuffer());const i=e.getAttributes();t.hasPositions&&(wt.bindBuffer(34962,n.position),wt.bufferData(34962,t.positionArray,35048),Mt.enableAttribute(i.position),wt.vertexAttribPointer(i.position,3,5126,!1,0,0)),t.hasNormals&&(wt.bindBuffer(34962,n.normal),wt.bufferData(34962,t.normalArray,35048),Mt.enableAttribute(i.normal),wt.vertexAttribPointer(i.normal,3,5126,!1,0,0)),t.hasUvs&&(wt.bindBuffer(34962,n.uv),wt.bufferData(34962,t.uvArray,35048),Mt.enableAttribute(i.uv),wt.vertexAttribPointer(i.uv,2,5126,!1,0,0)),t.hasColors&&(wt.bindBuffer(34962,n.color),wt.bufferData(34962,t.colorArray,35048),Mt.enableAttribute(i.color),wt.vertexAttribPointer(i.color,3,5126,!1,0,0)),Mt.disableUnusedAttributes(),wt.drawArrays(4,0,t.count),t.count=0},this.renderBufferDirect=function(t,e,n,i,r,s){null===e&&(e=J);const a=r.isMesh&&r.matrixWorld.determinant()<0,o=Ut(t,e,i,r);$.setMaterial(i,a);let l=n.index;const c=n.attributes.position;if(null===l){if(void 0===c||0===c.count)return}else if(0===l.count)return;let h,u=1;!0===i.wireframe&&(l=st.getWireframeAttribute(n),u=2),(i.morphTargets||i.morphNormals)&&yt.update(r,n,i,o),Mt.setup(r,i,o,n,l);let d=xt;null!==l&&(h=rt.get(l),d=_t,d.setIndex(h));const p=null!==l?l.count:c.count,m=n.drawRange.start*u,f=n.drawRange.count*u,g=null!==s?s.start*u:0,v=null!==s?s.count*u:1/0,y=Math.max(m,g),x=Math.min(p,m+f,g+v)-1,_=Math.max(0,x-y+1);if(0!==_){if(r.isMesh)!0===i.wireframe?($.setLineWidth(i.wireframeLinewidth*Z()),d.setMode(1)):d.setMode(4);else if(r.isLine){let t=i.linewidth;void 0===t&&(t=1),$.setLineWidth(t*Z()),r.isLineSegments?d.setMode(1):r.isLineLoop?d.setMode(2):d.setMode(3)}else r.isPoints?d.setMode(0):r.isSprite&&d.setMode(4);if(r.isInstancedMesh)d.renderInstances(y,_,r.count);else if(n.isInstancedBufferGeometry){const t=Math.min(n.instanceCount,n._maxInstanceCount);d.renderInstances(y,_,t)}else d.render(y,_)}},this.compile=function(t,e){f=mt.get(t),f.init(),t.traverseVisible((function(t){t.isLight&&t.layers.test(e.layers)&&(f.pushLight(t),t.castShadow&&f.pushShadow(t))})),f.setupLights(),t.traverse((function(e){const n=e.material;if(n)if(Array.isArray(n))for(let i=0;i<n.length;i++){Bt(n[i],t,e)}else Bt(n,t,e)}))};let Ct=null;function Pt(){It.stop()}function Dt(){It.start()}const It=new Nn;function Nt(t,e,n,i){if(!1===t.visible)return;if(t.layers.test(e.layers))if(t.isGroup)n=t.renderOrder;else if(t.isLOD)!0===t.autoUpdate&&t.update(e);else if(t.isLight)f.pushLight(t),t.castShadow&&f.pushShadow(t);else if(t.isSprite){if(!t.frustumCulled||k.intersectsSprite(t)){i&&Y.setFromMatrixPosition(t.matrixWorld).applyMatrix4(X);const e=at.update(t),r=t.material;r.visible&&p.push(t,e,r,n,Y.z,null)}}else if(t.isImmediateRenderObject)i&&Y.setFromMatrixPosition(t.matrixWorld).applyMatrix4(X),p.push(t,null,t.material,n,Y.z,null);else if((t.isMesh||t.isLine||t.isPoints)&&(t.isSkinnedMesh&&t.skeleton.frame!==tt.render.frame&&(t.skeleton.update(),t.skeleton.frame=tt.render.frame),!t.frustumCulled||k.intersectsObject(t))){i&&Y.setFromMatrixPosition(t.matrixWorld).applyMatrix4(X);const e=at.update(t),r=t.material;if(Array.isArray(r)){const i=e.groups;for(let s=0,a=i.length;s<a;s++){const a=i[s],o=r[a.materialIndex];o&&o.visible&&p.push(t,e,o,n,Y.z,a)}}else r.visible&&p.push(t,e,r,n,Y.z,null)}const r=t.children;for(let s=0,a=r.length;s<a;s++)Nt(r[s],e,n,i)}function zt(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let r=0,s=t.length;r<s;r++){const s=t[r],a=s.object,o=s.geometry,l=null===i?s.material:i,c=s.group;if(n.isArrayCamera){const t=n.cameras;for(let n=0,i=t.length;n<i;n++){const i=t[n];a.layers.test(i.layers)&&($.viewport(C.copy(i.viewport)),f.setupLightsView(i),Ot(a,e,i,o,l,c))}}else Ot(a,e,n,o,l,c)}}function Ot(t,e,n,i,r,a){if(t.onBeforeRender(_,e,n,i,r,a),t.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse,t.matrixWorld),t.normalMatrix.getNormalMatrix(t.modelViewMatrix),t.isImmediateRenderObject){const i=Ut(n,e,r,t);$.setMaterial(r),Mt.reset(),function(t,e){t.render((function(t){_.renderBufferImmediate(t,e)}))}(t,i)}else!0===r.transparent&&2===r.side?(r.side=s,r.needsUpdate=!0,_.renderBufferDirect(n,e,i,r,t,a),r.side=0,r.needsUpdate=!0,_.renderBufferDirect(n,e,i,r,t,a),r.side=2):_.renderBufferDirect(n,e,i,r,t,a);t.onAfterRender(_,e,n,i,r,a)}function Bt(t,e,n){!0!==e.isScene&&(e=J);const i=et.get(t),r=f.state.lights,s=f.state.shadowsArray,a=r.state.version,o=ht.getParameters(t,r.state,s,e,n),l=ht.getProgramCacheKey(o);let c=i.programs;i.environment=t.isMeshStandardMaterial?e.environment:null,i.fog=e.fog,i.envMap=it.get(t.envMap||i.environment),void 0===c&&(t.addEventListener("dispose",Rt),c=new Map,i.programs=c);let h=c.get(l);if(void 0!==h){if(i.currentProgram===h&&i.lightsStateVersion===a)return Ft(t,o),h}else o.uniforms=ht.getUniforms(t),t.onBuild(o,_),t.onBeforeCompile(o,_),h=ht.acquireProgram(o,l),c.set(l,h),i.uniforms=o.uniforms;const u=i.uniforms;(t.isShaderMaterial||t.isRawShaderMaterial)&&!0!==t.clipping||(u.clippingPlanes=ft.uniform),Ft(t,o),i.needsLights=function(t){return t.isMeshLambertMaterial||t.isMeshToonMaterial||t.isMeshPhongMaterial||t.isMeshStandardMaterial||t.isShadowMaterial||t.isShaderMaterial&&!0===t.lights}(t),i.lightsStateVersion=a,i.needsLights&&(u.ambientLightColor.value=r.state.ambient,u.lightProbe.value=r.state.probe,u.directionalLights.value=r.state.directional,u.directionalLightShadows.value=r.state.directionalShadow,u.spotLights.value=r.state.spot,u.spotLightShadows.value=r.state.spotShadow,u.rectAreaLights.value=r.state.rectArea,u.ltc_1.value=r.state.rectAreaLTC1,u.ltc_2.value=r.state.rectAreaLTC2,u.pointLights.value=r.state.point,u.pointLightShadows.value=r.state.pointShadow,u.hemisphereLights.value=r.state.hemi,u.directionalShadowMap.value=r.state.directionalShadowMap,u.directionalShadowMatrix.value=r.state.directionalShadowMatrix,u.spotShadowMap.value=r.state.spotShadowMap,u.spotShadowMatrix.value=r.state.spotShadowMatrix,u.pointShadowMap.value=r.state.pointShadowMap,u.pointShadowMatrix.value=r.state.pointShadowMatrix);const d=h.getUniforms(),p=ir.seqWithValue(d.seq,u);return i.currentProgram=h,i.uniformsList=p,h}function Ft(t,e){const n=et.get(t);n.outputEncoding=e.outputEncoding,n.instancing=e.instancing,n.skinning=e.skinning,n.numClippingPlanes=e.numClippingPlanes,n.numIntersection=e.numClipIntersection,n.vertexAlphas=e.vertexAlphas}function Ut(t,e,n,i){!0!==e.isScene&&(e=J),nt.resetTextureUnits();const r=e.fog,s=n.isMeshStandardMaterial?e.environment:null,a=null===L?_.outputEncoding:L.texture.encoding,o=it.get(n.envMap||s),l=!0===n.vertexColors&&i.geometry&&i.geometry.attributes.color&&4===i.geometry.attributes.color.itemSize,c=et.get(n),h=f.state.lights;if(!0===W&&(!0===j||t!==R)){const e=t===R&&n.id===A;ft.setState(n,t,e)}let u=!1;n.version===c.__version?c.needsLights&&c.lightsStateVersion!==h.state.version||c.outputEncoding!==a||i.isInstancedMesh&&!1===c.instancing?u=!0:i.isInstancedMesh||!0!==c.instancing?i.isSkinnedMesh&&!1===c.skinning?u=!0:i.isSkinnedMesh||!0!==c.skinning?c.envMap!==o||n.fog&&c.fog!==r?u=!0:void 0===c.numClippingPlanes||c.numClippingPlanes===ft.numPlanes&&c.numIntersection===ft.numIntersection?c.vertexAlphas!==l&&(u=!0):u=!0:u=!0:u=!0:(u=!0,c.__version=n.version);let d=c.currentProgram;!0===u&&(d=Bt(n,e,i));let p=!1,m=!1,g=!1;const v=d.getUniforms(),y=c.uniforms;if($.useProgram(d.program)&&(p=!0,m=!0,g=!0),n.id!==A&&(A=n.id,m=!0),p||R!==t){if(v.setValue(wt,"projectionMatrix",t.projectionMatrix),K.logarithmicDepthBuffer&&v.setValue(wt,"logDepthBufFC",2/(Math.log(t.far+1)/Math.LN2)),R!==t&&(R=t,m=!0,g=!0),n.isShaderMaterial||n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshStandardMaterial||n.envMap){const e=v.map.cameraPosition;void 0!==e&&e.setValue(wt,Y.setFromMatrixPosition(t.matrixWorld))}(n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshLambertMaterial||n.isMeshBasicMaterial||n.isMeshStandardMaterial||n.isShaderMaterial)&&v.setValue(wt,"isOrthographic",!0===t.isOrthographicCamera),(n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshLambertMaterial||n.isMeshBasicMaterial||n.isMeshStandardMaterial||n.isShaderMaterial||n.isShadowMaterial||i.isSkinnedMesh)&&v.setValue(wt,"viewMatrix",t.matrixWorldInverse)}if(i.isSkinnedMesh){v.setOptional(wt,i,"bindMatrix"),v.setOptional(wt,i,"bindMatrixInverse");const t=i.skeleton;t&&(K.floatVertexTextures?(null===t.boneTexture&&t.computeBoneTexture(),v.setValue(wt,"boneTexture",t.boneTexture,nt),v.setValue(wt,"boneTextureSize",t.boneTextureSize)):v.setOptional(wt,t,"boneMatrices"))}var x,b;return(m||c.receiveShadow!==i.receiveShadow)&&(c.receiveShadow=i.receiveShadow,v.setValue(wt,"receiveShadow",i.receiveShadow)),m&&(v.setValue(wt,"toneMappingExposure",_.toneMappingExposure),c.needsLights&&(b=g,(x=y).ambientLightColor.needsUpdate=b,x.lightProbe.needsUpdate=b,x.directionalLights.needsUpdate=b,x.directionalLightShadows.needsUpdate=b,x.pointLights.needsUpdate=b,x.pointLightShadows.needsUpdate=b,x.spotLights.needsUpdate=b,x.spotLightShadows.needsUpdate=b,x.rectAreaLights.needsUpdate=b,x.hemisphereLights.needsUpdate=b),r&&n.fog&&dt.refreshFogUniforms(y,r),dt.refreshMaterialUniforms(y,n,z,N,q),ir.upload(wt,c.uniformsList,y,nt)),n.isShaderMaterial&&!0===n.uniformsNeedUpdate&&(ir.upload(wt,c.uniformsList,y,nt),n.uniformsNeedUpdate=!1),n.isSpriteMaterial&&v.setValue(wt,"center",i.center),v.setValue(wt,"modelViewMatrix",i.modelViewMatrix),v.setValue(wt,"normalMatrix",i.normalMatrix),v.setValue(wt,"modelMatrix",i.matrixWorld),d}It.setAnimationLoop((function(t){Ct&&Ct(t)})),"undefined"!==typeof window&&It.setContext(window),this.setAnimationLoop=function(t){Ct=t,Et.setAnimationLoop(t),null===t?It.stop():It.start()},Et.addEventListener("sessionstart",Pt),Et.addEventListener("sessionend",Dt),this.render=function(t,e){if(void 0!==e&&!0!==e.isCamera)return void console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");if(!0===b)return;!0===t.autoUpdate&&t.updateMatrixWorld(),null===e.parent&&e.updateMatrixWorld(),!0===Et.enabled&&!0===Et.isPresenting&&(!0===Et.cameraAutoUpdate&&Et.updateCamera(e),e=Et.getCamera()),!0===t.isScene&&t.onBeforeRender(_,t,e,L),f=mt.get(t,v.length),f.init(),v.push(f),X.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),k.setFromProjectionMatrix(X),j=this.localClippingEnabled,W=ft.init(this.clippingPlanes,j,e),p=pt.get(t,g.length),p.init(),g.push(p),Nt(t,e,0,_.sortObjects),p.finish(),!0===_.sortObjects&&p.sort(B,F),!0===W&&ft.beginShadows();const n=f.state.shadowsArray;gt.render(n,t,e),f.setupLights(),f.setupLightsView(e),!0===W&&ft.endShadows(),!0===this.info.autoReset&&this.info.reset(),vt.render(p,t);const i=p.opaque,r=p.transmissive,s=p.transparent;i.length>0&&zt(i,t,e),r.length>0&&function(t,e,n,i){if(null===q){const t=!0===o&&!0===K.isWebGL2;q=new(t?ct:lt)(1024,1024,{generateMipmaps:!0,type:null!==bt.convert(w)?w:x,minFilter:y,magFilter:m,wrapS:d,wrapT:d})}const r=_.getRenderTarget();_.setRenderTarget(q),_.clear();const s=_.toneMapping;_.toneMapping=0,zt(t,n,i),_.toneMapping=s,nt.updateMultisampleRenderTarget(q),nt.updateRenderTargetMipmap(q),_.setRenderTarget(r),zt(e,n,i)}(i,r,t,e),s.length>0&&zt(s,t,e),null!==L&&(nt.updateMultisampleRenderTarget(L),nt.updateRenderTargetMipmap(L)),!0===t.isScene&&t.onAfterRender(_,t,e),$.buffers.depth.setTest(!0),$.buffers.depth.setMask(!0),$.buffers.color.setMask(!0),$.setPolygonOffset(!1),Mt.resetDefaultState(),A=-1,R=null,v.pop(),f=v.length>0?v[v.length-1]:null,g.pop(),p=g.length>0?g[g.length-1]:null},this.getActiveCubeFace=function(){return S},this.getActiveMipmapLevel=function(){return T},this.getRenderTarget=function(){return L},this.setRenderTarget=function(t,e=0,n=0){L=t,S=e,T=n,t&&void 0===et.get(t).__webglFramebuffer&&nt.setupRenderTarget(t);let i=null,r=!1,s=!1;if(t){const n=t.texture;(n.isDataTexture3D||n.isDataTexture2DArray)&&(s=!0);const a=et.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(i=a[e],r=!0):i=t.isWebGLMultisampleRenderTarget?et.get(t).__webglMultisampledFramebuffer:a,C.copy(t.viewport),P.copy(t.scissor),D=t.scissorTest}else C.copy(U).multiplyScalar(z).floor(),P.copy(H).multiplyScalar(z).floor(),D=G;if($.bindFramebuffer(36160,i)&&K.drawBuffers){let e=!1;if(t)if(t.isWebGLMultipleRenderTargets){const n=t.texture;if(V.length!==n.length||36064!==V[0]){for(let t=0,e=n.length;t<e;t++)V[t]=36064+t;V.length=n.length,e=!0}}else 1===V.length&&36064===V[0]||(V[0]=36064,V.length=1,e=!0);else 1===V.length&&1029===V[0]||(V[0]=1029,V.length=1,e=!0);e&&(K.isWebGL2?wt.drawBuffers(V):Q.get("WEBGL_draw_buffers").drawBuffersWEBGL(V))}if($.viewport(C),$.scissor(P),$.setScissorTest(D),r){const i=et.get(t.texture);wt.framebufferTexture2D(36160,36064,34069+e,i.__webglTexture,n)}else if(s){const i=et.get(t.texture),r=e||0;wt.framebufferTextureLayer(36160,36064,i.__webglTexture,n||0,r)}},this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=et.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){$.bindFramebuffer(36160,o);try{const a=t.texture,o=a.format,l=a.type;if(o!==E&&bt.convert(o)!==wt.getParameter(35739))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const c=l===w&&(Q.has("EXT_color_buffer_half_float")||K.isWebGL2&&Q.has("EXT_color_buffer_float"));if(l!==x&&bt.convert(l)!==wt.getParameter(35738)&&(l!==M||!(K.isWebGL2||Q.has("OES_texture_float")||Q.has("WEBGL_color_buffer_float")))&&!c)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");36053===wt.checkFramebufferStatus(36160)?e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&wt.readPixels(e,n,i,r,bt.convert(o),bt.convert(l),s):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.")}finally{const t=null!==L?et.get(L).__webglFramebuffer:null;$.bindFramebuffer(36160,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){const i=Math.pow(2,-n),r=Math.floor(e.image.width*i),s=Math.floor(e.image.height*i);let a=bt.convert(e.format);K.isWebGL2&&(6407===a&&(a=32849),6408===a&&(a=32856)),nt.setTexture2D(e,0),wt.copyTexImage2D(3553,n,a,t.x,t.y,r,s,0),$.unbindTexture()},this.copyTextureToTexture=function(t,e,n,i=0){const r=e.image.width,s=e.image.height,a=bt.convert(n.format),o=bt.convert(n.type);nt.setTexture2D(n,0),wt.pixelStorei(37440,n.flipY),wt.pixelStorei(37441,n.premultiplyAlpha),wt.pixelStorei(3317,n.unpackAlignment),e.isDataTexture?wt.texSubImage2D(3553,i,t.x,t.y,r,s,a,o,e.image.data):e.isCompressedTexture?wt.compressedTexSubImage2D(3553,i,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,a,e.mipmaps[0].data):wt.texSubImage2D(3553,i,t.x,t.y,a,o,e.image),0===i&&n.generateMipmaps&&wt.generateMipmap(3553),$.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,i,r=0){if(_.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const s=t.max.x-t.min.x+1,a=t.max.y-t.min.y+1,o=t.max.z-t.min.z+1,l=bt.convert(i.format),c=bt.convert(i.type);let h;if(i.isDataTexture3D)nt.setTexture3D(i,0),h=32879;else{if(!i.isDataTexture2DArray)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");nt.setTexture2DArray(i,0),h=35866}wt.pixelStorei(37440,i.flipY),wt.pixelStorei(37441,i.premultiplyAlpha),wt.pixelStorei(3317,i.unpackAlignment);const u=wt.getParameter(3314),d=wt.getParameter(32878),p=wt.getParameter(3316),m=wt.getParameter(3315),f=wt.getParameter(32877),g=n.isCompressedTexture?n.mipmaps[0]:n.image;wt.pixelStorei(3314,g.width),wt.pixelStorei(32878,g.height),wt.pixelStorei(3316,t.min.x),wt.pixelStorei(3315,t.min.y),wt.pixelStorei(32877,t.min.z),n.isDataTexture||n.isDataTexture3D?wt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g.data):n.isCompressedTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),wt.compressedTexSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,g.data)):wt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g),wt.pixelStorei(3314,u),wt.pixelStorei(32878,d),wt.pixelStorei(3316,p),wt.pixelStorei(3315,m),wt.pixelStorei(32877,f),0===r&&i.generateMipmaps&&wt.generateMipmap(h),$.unbindTexture()},this.initTexture=function(t){nt.setTexture2D(t,0),$.unbindTexture()},this.resetState=function(){S=0,T=0,L=null,$.reset(),Mt.reset()},"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}(class extends Yr{}).prototype.isWebGL1Renderer=!0;class Jr{constructor(t,e=25e-5){this.name="",this.color=new Ie(t),this.density=e}clone(){return new Jr(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}Jr.prototype.isFogExp2=!0;class Zr{constructor(t,e=1,n=1e3){this.name="",this.color=new Ie(t),this.near=e,this.far=n}clone(){return new Zr(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}Zr.prototype.isFog=!0;class Qr extends pe{constructor(){super(),this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.autoUpdate=t.autoUpdate,this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),e}}Qr.prototype.isScene=!0;class Kr{constructor(t,e){this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=G,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Y()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,r=this.stride;i<r;i++)this.array[t+i]=e.array[n+i];return this}set(t,e=0){return this.array.set(t,e),this}clone(t){void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=Y()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const e=new this.array.constructor(t.arrayBuffers[this.array.buffer._uuid]),n=new this.constructor(e,this.stride);return n.setUsage(this.usage),n}onUpload(t){return this.onUploadCallback=t,this}toJSON(t){return void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=Y()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=Array.prototype.slice.call(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}}Kr.prototype.isInterleavedBuffer=!0;const $r=new ut;class ts{constructor(t,e,n,i=!1){this.name="",this.data=t,this.itemSize=e,this.offset=n,this.normalized=!0===i}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(t){this.data.needsUpdate=t}applyMatrix4(t){for(let e=0,n=this.data.count;e<n;e++)$r.x=this.getX(e),$r.y=this.getY(e),$r.z=this.getZ(e),$r.applyMatrix4(t),this.setXYZ(e,$r.x,$r.y,$r.z);return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++)$r.x=this.getX(e),$r.y=this.getY(e),$r.z=this.getZ(e),$r.applyNormalMatrix(t),this.setXYZ(e,$r.x,$r.y,$r.z);return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++)$r.x=this.getX(e),$r.y=this.getY(e),$r.z=this.getZ(e),$r.transformDirection(t),this.setXYZ(e,$r.x,$r.y,$r.z);return this}setX(t,e){return this.data.array[t*this.data.stride+this.offset]=e,this}setY(t,e){return this.data.array[t*this.data.stride+this.offset+1]=e,this}setZ(t,e){return this.data.array[t*this.data.stride+this.offset+2]=e,this}setW(t,e){return this.data.array[t*this.data.stride+this.offset+3]=e,this}getX(t){return this.data.array[t*this.data.stride+this.offset]}getY(t){return this.data.array[t*this.data.stride+this.offset+1]}getZ(t){return this.data.array[t*this.data.stride+this.offset+2]}getW(t){return this.data.array[t*this.data.stride+this.offset+3]}setXY(t,e,n){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this}setXYZ(t,e,n,i){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=i,this}setXYZW(t,e,n,i,r){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=i,this.data.array[t+3]=r,this}clone(t){if(void 0===t){console.log("THREE.InterleavedBufferAttribute.clone(): Cloning an interlaved buffer attribute will deinterleave buffer data.");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return new Be(new this.array.constructor(t),this.itemSize,this.normalized)}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.clone(t)),new ts(t.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(t){if(void 0===t){console.log("THREE.InterleavedBufferAttribute.toJSON(): Serializing an interlaved buffer attribute will deinterleave buffer data.");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:t,normalized:this.normalized}}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.toJSON(t)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}ts.prototype.isInterleavedBufferAttribute=!0;class es extends Ee{constructor(t){super(),this.type="SpriteMaterial",this.color=new Ie(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.rotation=t.rotation,this.sizeAttenuation=t.sizeAttenuation,this}}let ns;es.prototype.isSpriteMaterial=!0;const is=new ut,rs=new ut,ss=new ut,as=new tt,os=new tt,ls=new Vt,cs=new ut,hs=new ut,us=new ut,ds=new tt,ps=new tt,ms=new tt;class fs extends pe{constructor(t){if(super(),this.type="Sprite",void 0===ns){ns=new Je;const t=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),e=new Kr(t,5);ns.setIndex([0,1,2,0,2,3]),ns.setAttribute("position",new ts(e,3,0,!1)),ns.setAttribute("uv",new ts(e,2,3,!1))}this.geometry=ns,this.material=void 0!==t?t:new es,this.center=new tt(.5,.5)}raycast(t,e){null===t.camera&&console.error('THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.'),rs.setFromMatrixScale(this.matrixWorld),ls.copy(t.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(t.camera.matrixWorldInverse,this.matrixWorld),ss.setFromMatrixPosition(this.modelViewMatrix),t.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&rs.multiplyScalar(-ss.z);const n=this.material.rotation;let i,r;0!==n&&(r=Math.cos(n),i=Math.sin(n));const s=this.center;gs(cs.set(-.5,-.5,0),ss,s,rs,i,r),gs(hs.set(.5,-.5,0),ss,s,rs,i,r),gs(us.set(.5,.5,0),ss,s,rs,i,r),ds.set(0,0),ps.set(1,0),ms.set(1,1);let a=t.ray.intersectTriangle(cs,hs,us,!1,is);if(null===a&&(gs(hs.set(-.5,.5,0),ss,s,rs,i,r),ps.set(0,1),a=t.ray.intersectTriangle(cs,us,hs,!1,is),null===a))return;const o=t.ray.origin.distanceTo(is);o<t.near||o>t.far||e.push({distance:o,point:is.clone(),uv:Se.getUV(is,cs,hs,us,ds,ps,ms,new tt),face:null,object:this})}copy(t){return super.copy(t),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function gs(t,e,n,i,r,s){as.subVectors(t,n).addScalar(.5).multiply(i),void 0!==r?(os.x=s*as.x-r*as.y,os.y=r*as.x+s*as.y):os.copy(as),t.copy(e),t.x+=os.x,t.y+=os.y,t.applyMatrix4(ls)}fs.prototype.isSprite=!0;const vs=new ut,ys=new ot,xs=new ot,_s=new ut,bs=new Vt;class Ms extends mn{constructor(t,e){super(t,e),this.type="SkinnedMesh",this.bindMode="attached",this.bindMatrix=new Vt,this.bindMatrixInverse=new Vt}copy(t){return super.copy(t),this.bindMode=t.bindMode,this.bindMatrix.copy(t.bindMatrix),this.bindMatrixInverse.copy(t.bindMatrixInverse),this.skeleton=t.skeleton,this}bind(t,e){this.skeleton=t,void 0===e&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),e=this.matrixWorld),this.bindMatrix.copy(e),this.bindMatrixInverse.copy(e).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const t=new ot,e=this.geometry.attributes.skinWeight;for(let n=0,i=e.count;n<i;n++){t.x=e.getX(n),t.y=e.getY(n),t.z=e.getZ(n),t.w=e.getW(n);const i=1/t.manhattanLength();i!==1/0?t.multiplyScalar(i):t.set(1,0,0,0),e.setXYZW(n,t.x,t.y,t.z,t.w)}}updateMatrixWorld(t){super.updateMatrixWorld(t),"attached"===this.bindMode?this.bindMatrixInverse.copy(this.matrixWorld).invert():"detached"===this.bindMode?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)}boneTransform(t,e){const n=this.skeleton,i=this.geometry;ys.fromBufferAttribute(i.attributes.skinIndex,t),xs.fromBufferAttribute(i.attributes.skinWeight,t),vs.fromBufferAttribute(i.attributes.position,t).applyMatrix4(this.bindMatrix),e.set(0,0,0);for(let r=0;r<4;r++){const t=xs.getComponent(r);if(0!==t){const i=ys.getComponent(r);bs.multiplyMatrices(n.bones[i].matrixWorld,n.boneInverses[i]),e.addScaledVector(_s.copy(vs).applyMatrix4(bs),t)}}return e.applyMatrix4(this.bindMatrixInverse)}}Ms.prototype.isSkinnedMesh=!0;class ws extends pe{constructor(){super(),this.type="Bone"}}ws.prototype.isBone=!0;class Ss extends st{constructor(t=null,e=1,n=1,i,r,s,a,o,l=1003,c=1003,h,u){super(null,s,a,o,l,c,i,r,h,u),this.image={data:t,width:e,height:n},this.magFilter=l,this.minFilter=c,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}Ss.prototype.isDataTexture=!0;const Ts=new Vt,Es=new Vt,Ls=[],As=new mn;class Rs extends mn{constructor(t,e,n){super(t,e),this.instanceMatrix=new Be(new Float32Array(16*n),16),this.instanceColor=null,this.count=n,this.frustumCulled=!1}copy(t){return super.copy(t),this.instanceMatrix.copy(t.instanceMatrix),null!==t.instanceColor&&(this.instanceColor=t.instanceColor.clone()),this.count=t.count,this}getColorAt(t,e){e.fromArray(this.instanceColor.array,3*t)}getMatrixAt(t,e){e.fromArray(this.instanceMatrix.array,16*t)}raycast(t,e){const n=this.matrixWorld,i=this.count;if(As.geometry=this.geometry,As.material=this.material,void 0!==As.material)for(let r=0;r<i;r++){this.getMatrixAt(r,Ts),Es.multiplyMatrices(n,Ts),As.matrixWorld=Es,As.raycast(t,Ls);for(let t=0,n=Ls.length;t<n;t++){const n=Ls[t];n.instanceId=r,n.object=this,e.push(n)}Ls.length=0}}setColorAt(t,e){null===this.instanceColor&&(this.instanceColor=new Be(new Float32Array(3*this.count),3)),e.toArray(this.instanceColor.array,3*t)}setMatrixAt(t,e){e.toArray(this.instanceMatrix.array,16*t)}updateMorphTargets(){}dispose(){this.dispatchEvent({type:"dispose"})}}Rs.prototype.isInstancedMesh=!0;class Cs extends Ee{constructor(t){super(),this.type="LineBasicMaterial",this.color=new Ie(16777215),this.linewidth=1,this.linecap="round",this.linejoin="round",this.morphTargets=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this.morphTargets=t.morphTargets,this}}Cs.prototype.isLineBasicMaterial=!0;const Ps=new ut,Ds=new ut,Is=new Vt,Ns=new Gt,zs=new It;class Os extends pe{constructor(t=new Je,e=new Cs){super(),this.type="Line",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),this.material=t.material,this.geometry=t.geometry,this}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[0];for(let t=1,i=e.count;t<i;t++)Ps.fromBufferAttribute(e,t-1),Ds.fromBufferAttribute(e,t),n[t]=n[t-1],n[t]+=Ps.distanceTo(Ds);t.setAttribute("lineDistance",new He(n,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else t.isGeometry&&console.error("THREE.Line.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");return this}raycast(t,e){const n=this.geometry,i=this.matrixWorld,r=t.params.Line.threshold,s=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),zs.copy(n.boundingSphere),zs.applyMatrix4(i),zs.radius+=r,!1===t.ray.intersectsSphere(zs))return;Is.copy(i).invert(),Ns.copy(t.ray).applyMatrix4(Is);const a=r/((this.scale.x+this.scale.y+this.scale.z)/3),o=a*a,l=new ut,c=new ut,h=new ut,u=new ut,d=this.isLineSegments?2:1;if(n.isBufferGeometry){const i=n.index,r=n.attributes.position;if(null!==i){for(let n=Math.max(0,s.start),a=Math.min(i.count,s.start+s.count)-1;n<a;n+=d){const s=i.getX(n),a=i.getX(n+1);l.fromBufferAttribute(r,s),c.fromBufferAttribute(r,a);if(Ns.distanceSqToSegment(l,c,u,h)>o)continue;u.applyMatrix4(this.matrixWorld);const d=t.ray.origin.distanceTo(u);d<t.near||d>t.far||e.push({distance:d,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,s.start),i=Math.min(r.count,s.start+s.count)-1;n<i;n+=d){l.fromBufferAttribute(r,n),c.fromBufferAttribute(r,n+1);if(Ns.distanceSqToSegment(l,c,u,h)>o)continue;u.applyMatrix4(this.matrixWorld);const i=t.ray.origin.distanceTo(u);i<t.near||i>t.far||e.push({distance:i,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}else n.isGeometry&&console.error("THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error("THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}Os.prototype.isLine=!0;const Bs=new ut,Fs=new ut;class Us extends Os{constructor(t,e){super(t,e),this.type="LineSegments"}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[];for(let t=0,i=e.count;t<i;t+=2)Bs.fromBufferAttribute(e,t),Fs.fromBufferAttribute(e,t+1),n[t]=0===t?0:n[t-1],n[t+1]=n[t]+Bs.distanceTo(Fs);t.setAttribute("lineDistance",new He(n,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else t.isGeometry&&console.error("THREE.LineSegments.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");return this}}Us.prototype.isLineSegments=!0;class Hs extends Os{constructor(t,e){super(t,e),this.type="LineLoop"}}Hs.prototype.isLineLoop=!0;class Gs extends Ee{constructor(t){super(),this.type="PointsMaterial",this.color=new Ie(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.morphTargets=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this.morphTargets=t.morphTargets,this}}Gs.prototype.isPointsMaterial=!0;const Vs=new Vt,ks=new Gt,Ws=new It,js=new ut;class qs extends pe{constructor(t=new Je,e=new Gs){super(),this.type="Points",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),this.material=t.material,this.geometry=t.geometry,this}raycast(t,e){const n=this.geometry,i=this.matrixWorld,r=t.params.Points.threshold,s=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),Ws.copy(n.boundingSphere),Ws.applyMatrix4(i),Ws.radius+=r,!1===t.ray.intersectsSphere(Ws))return;Vs.copy(i).invert(),ks.copy(t.ray).applyMatrix4(Vs);const a=r/((this.scale.x+this.scale.y+this.scale.z)/3),o=a*a;if(n.isBufferGeometry){const r=n.index,a=n.attributes.position;if(null!==r){for(let n=Math.max(0,s.start),l=Math.min(r.count,s.start+s.count);n<l;n++){const s=r.getX(n);js.fromBufferAttribute(a,s),Xs(js,s,o,i,t,e,this)}}else{for(let n=Math.max(0,s.start),r=Math.min(a.count,s.start+s.count);n<r;n++)js.fromBufferAttribute(a,n),Xs(js,n,o,i,t,e,this)}}else console.error("THREE.Points.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}function Xs(t,e,n,i,r,s,a){const o=ks.distanceSqToPoint(t);if(o<n){const n=new ut;ks.closestPointToPoint(t,n),n.applyMatrix4(i);const l=r.ray.origin.distanceTo(n);if(l<r.near||l>r.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:e,face:null,object:a})}}qs.prototype.isPoints=!0;(class extends st{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.format=void 0!==a?a:T,this.minFilter=void 0!==s?s:v,this.magFilter=void 0!==r?r:v,this.generateMipmaps=!1;const c=this;"requestVideoFrameCallback"in t&&t.requestVideoFrameCallback((function e(){c.needsUpdate=!0,t.requestVideoFrameCallback(e)}))}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;!1==="requestVideoFrameCallback"in t&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}).prototype.isVideoTexture=!0;class Ys extends st{constructor(t,e,n,i,r,s,a,o,l,c,h,u){super(null,s,a,o,l,c,i,r,h,u),this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}Ys.prototype.isCompressedTexture=!0;(class extends st{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.needsUpdate=!0}}).prototype.isCanvasTexture=!0;(class extends st{constructor(t,e,n,i,r,s,a,o,l,c){if((c=void 0!==c?c:L)!==L&&c!==A)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&c===L&&(n=_),void 0===n&&c===A&&(n=S),super(null,i,r,s,a,o,c,n,l),this.image={width:t,height:e},this.magFilter=void 0!==a?a:m,this.minFilter=void 0!==o?o:m,this.flipY=!1,this.generateMipmaps=!1}}).prototype.isDepthTexture=!0;class Js extends Je{constructor(t=1,e=1,n=1,i=8,r=1,s=!1,a=0,o=2*Math.PI){super(),this.type="CylinderGeometry",this.parameters={radiusTop:t,radiusBottom:e,height:n,radialSegments:i,heightSegments:r,openEnded:s,thetaStart:a,thetaLength:o};const l=this;i=Math.floor(i),r=Math.floor(r);const c=[],h=[],u=[],d=[];let p=0;const m=[],f=n/2;let g=0;function v(n){const r=p,s=new tt,m=new ut;let v=0;const y=!0===n?t:e,x=!0===n?1:-1;for(let t=1;t<=i;t++)h.push(0,f*x,0),u.push(0,x,0),d.push(.5,.5),p++;const _=p;for(let t=0;t<=i;t++){const e=t/i*o+a,n=Math.cos(e),r=Math.sin(e);m.x=y*r,m.y=f*x,m.z=y*n,h.push(m.x,m.y,m.z),u.push(0,x,0),s.x=.5*n+.5,s.y=.5*r*x+.5,d.push(s.x,s.y),p++}for(let t=0;t<i;t++){const e=r+t,i=_+t;!0===n?c.push(i,i+1,e):c.push(i+1,i,e),v+=3}l.addGroup(g,v,!0===n?1:2),g+=v}!function(){const s=new ut,v=new ut;let y=0;const x=(e-t)/n;for(let l=0;l<=r;l++){const c=[],g=l/r,y=g*(e-t)+t;for(let t=0;t<=i;t++){const e=t/i,r=e*o+a,l=Math.sin(r),m=Math.cos(r);v.x=y*l,v.y=-g*n+f,v.z=y*m,h.push(v.x,v.y,v.z),s.set(l,x,m).normalize(),u.push(s.x,s.y,s.z),d.push(e,1-g),c.push(p++)}m.push(c)}for(let t=0;t<i;t++)for(let e=0;e<r;e++){const n=m[e][t],i=m[e+1][t],r=m[e+1][t+1],s=m[e][t+1];c.push(n,i,s),c.push(i,r,s),y+=6}l.addGroup(g,y,0),g+=y}(),!1===s&&(t>0&&v(!0),e>0&&v(!1)),this.setIndex(c),this.setAttribute("position",new He(h,3)),this.setAttribute("normal",new He(u,3)),this.setAttribute("uv",new He(d,2))}static fromJSON(t){return new Js(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class Zs extends Js{constructor(t=1,e=1,n=8,i=1,r=!1,s=0,a=2*Math.PI){super(0,t,e,n,i,r,s,a),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}static fromJSON(t){return new Zs(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}new ut,new ut,new ut,new Se;class Qs{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,i=this.getPoint(0),r=0;e.push(0);for(let s=1;s<=t;s++)n=this.getPoint(s/t),r+=n.distanceTo(i),e.push(r),i=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const r=n.length;let s;s=e||t*n[r-1];let a,o=0,l=r-1;for(;o<=l;)if(i=Math.floor(o+(l-o)/2),a=n[i]-s,a<0)o=i+1;else{if(!(a>0)){l=i;break}l=i-1}if(i=l,n[i]===s)return i/(r-1);const c=n[i];return(i+(s-c)/(n[i+1]-c))/(r-1)}getTangent(t,e){const n=1e-4;let i=t-n,r=t+n;i<0&&(i=0),r>1&&(r=1);const s=this.getPoint(i),a=this.getPoint(r),o=e||(s.isVector2?new tt:new ut);return o.copy(a).sub(s).normalize(),o}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new ut,i=[],r=[],s=[],a=new ut,o=new Vt;for(let d=0;d<=t;d++){const e=d/t;i[d]=this.getTangentAt(e,new ut),i[d].normalize()}r[0]=new ut,s[0]=new ut;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x),h=Math.abs(i[0].y),u=Math.abs(i[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],a),s[0].crossVectors(i[0],r[0]);for(let d=1;d<=t;d++){if(r[d]=r[d-1].clone(),s[d]=s[d-1].clone(),a.crossVectors(i[d-1],i[d]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(J(i[d-1].dot(i[d]),-1,1));r[d].applyMatrix4(o.makeRotationAxis(a,t))}s[d].crossVectors(i[d],r[d])}if(!0===e){let e=Math.acos(J(r[0].dot(r[t]),-1,1));e/=t,i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],e*n)),s[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class Ks extends Qs{constructor(t=0,e=0,n=1,i=1,r=0,s=2*Math.PI,a=!1,o=0){super(),this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(t,e){const n=e||new tt,i=2*Math.PI;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)<Number.EPSILON;for(;r<0;)r+=i;for(;r>i;)r-=i;r<Number.EPSILON&&(r=s?0:i),!0!==this.aClockwise||s||(r===i?r=-i:r-=i);const a=this.aStartAngle+t*r;let o=this.aX+this.xRadius*Math.cos(a),l=this.aY+this.yRadius*Math.sin(a);if(0!==this.aRotation){const t=Math.cos(this.aRotation),e=Math.sin(this.aRotation),n=o-this.aX,i=l-this.aY;o=n*t-i*e+this.aX,l=n*e+i*t+this.aY}return n.set(o,l)}copy(t){return super.copy(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}toJSON(){const t=super.toJSON();return t.aX=this.aX,t.aY=this.aY,t.xRadius=this.xRadius,t.yRadius=this.yRadius,t.aStartAngle=this.aStartAngle,t.aEndAngle=this.aEndAngle,t.aClockwise=this.aClockwise,t.aRotation=this.aRotation,t}fromJSON(t){return super.fromJSON(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}}Ks.prototype.isEllipseCurve=!0;class $s extends Ks{constructor(t,e,n,i,r,s){super(t,e,n,n,i,r,s),this.type="ArcCurve"}}function ta(){let t=0,e=0,n=0,i=0;function r(r,s,a,o){t=r,e=a,n=-3*r+3*s-2*a-o,i=2*r-2*s+a+o}return{initCatmullRom:function(t,e,n,i,s){r(e,n,s*(n-t),s*(i-e))},initNonuniformCatmullRom:function(t,e,n,i,s,a,o){let l=(e-t)/s-(n-t)/(s+a)+(n-e)/a,c=(n-e)/a-(i-e)/(a+o)+(i-n)/o;l*=a,c*=a,r(e,n,l,c)},calc:function(r){const s=r*r;return t+e*r+n*s+i*(s*r)}}}$s.prototype.isArcCurve=!0;const ea=new ut,na=new ta,ia=new ta,ra=new ta;class sa extends Qs{constructor(t=[],e=!1,n="centripetal",i=.5){super(),this.type="CatmullRomCurve3",this.points=t,this.closed=e,this.curveType=n,this.tension=i}getPoint(t,e=new ut){const n=e,i=this.points,r=i.length,s=(r-(this.closed?0:1))*t;let a,o,l=Math.floor(s),c=s-l;this.closed?l+=l>0?0:(Math.floor(Math.abs(l)/r)+1)*r:0===c&&l===r-1&&(l=r-2,c=1),this.closed||l>0?a=i[(l-1)%r]:(ea.subVectors(i[0],i[1]).add(i[0]),a=ea);const h=i[l%r],u=i[(l+1)%r];if(this.closed||l+2<r?o=i[(l+2)%r]:(ea.subVectors(i[r-1],i[r-2]).add(i[r-1]),o=ea),"centripetal"===this.curveType||"chordal"===this.curveType){const t="chordal"===this.curveType?.5:.25;let e=Math.pow(a.distanceToSquared(h),t),n=Math.pow(h.distanceToSquared(u),t),i=Math.pow(u.distanceToSquared(o),t);n<1e-4&&(n=1),e<1e-4&&(e=n),i<1e-4&&(i=n),na.initNonuniformCatmullRom(a.x,h.x,u.x,o.x,e,n,i),ia.initNonuniformCatmullRom(a.y,h.y,u.y,o.y,e,n,i),ra.initNonuniformCatmullRom(a.z,h.z,u.z,o.z,e,n,i)}else"catmullrom"===this.curveType&&(na.initCatmullRom(a.x,h.x,u.x,o.x,this.tension),ia.initCatmullRom(a.y,h.y,u.y,o.y,this.tension),ra.initCatmullRom(a.z,h.z,u.z,o.z,this.tension));return n.set(na.calc(c),ia.calc(c),ra.calc(c)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t.closed=this.closed,t.curveType=this.curveType,t.tension=this.tension,t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new ut).fromArray(n))}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}}function aa(t,e,n,i,r){const s=.5*(i-e),a=.5*(r-n),o=t*t;return(2*n-2*i+s+a)*(t*o)+(-3*n+3*i-2*s-a)*o+s*t+n}function oa(t,e,n,i){return function(t,e){const n=1-t;return n*n*e}(t,e)+function(t,e){return 2*(1-t)*t*e}(t,n)+function(t,e){return t*t*e}(t,i)}function la(t,e,n,i,r){return function(t,e){const n=1-t;return n*n*n*e}(t,e)+function(t,e){const n=1-t;return 3*n*n*t*e}(t,n)+function(t,e){return 3*(1-t)*t*t*e}(t,i)+function(t,e){return t*t*t*e}(t,r)}sa.prototype.isCatmullRomCurve3=!0;class ca extends Qs{constructor(t=new tt,e=new tt,n=new tt,i=new tt){super(),this.type="CubicBezierCurve",this.v0=t,this.v1=e,this.v2=n,this.v3=i}getPoint(t,e=new tt){const n=e,i=this.v0,r=this.v1,s=this.v2,a=this.v3;return n.set(la(t,i.x,r.x,s.x,a.x),la(t,i.y,r.y,s.y,a.y)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}}ca.prototype.isCubicBezierCurve=!0;class ha extends Qs{constructor(t=new ut,e=new ut,n=new ut,i=new ut){super(),this.type="CubicBezierCurve3",this.v0=t,this.v1=e,this.v2=n,this.v3=i}getPoint(t,e=new ut){const n=e,i=this.v0,r=this.v1,s=this.v2,a=this.v3;return n.set(la(t,i.x,r.x,s.x,a.x),la(t,i.y,r.y,s.y,a.y),la(t,i.z,r.z,s.z,a.z)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}}ha.prototype.isCubicBezierCurve3=!0;class ua extends Qs{constructor(t=new tt,e=new tt){super(),this.type="LineCurve",this.v1=t,this.v2=e}getPoint(t,e=new tt){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n}getPointAt(t,e){return this.getPoint(t,e)}getTangent(t,e){const n=e||new tt;return n.copy(this.v2).sub(this.v1).normalize(),n}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}ua.prototype.isLineCurve=!0;class da extends Qs{constructor(t=new tt,e=new tt,n=new tt){super(),this.type="QuadraticBezierCurve",this.v0=t,this.v1=e,this.v2=n}getPoint(t,e=new tt){const n=e,i=this.v0,r=this.v1,s=this.v2;return n.set(oa(t,i.x,r.x,s.x),oa(t,i.y,r.y,s.y)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}da.prototype.isQuadraticBezierCurve=!0;class pa extends Qs{constructor(t=new ut,e=new ut,n=new ut){super(),this.type="QuadraticBezierCurve3",this.v0=t,this.v1=e,this.v2=n}getPoint(t,e=new ut){const n=e,i=this.v0,r=this.v1,s=this.v2;return n.set(oa(t,i.x,r.x,s.x),oa(t,i.y,r.y,s.y),oa(t,i.z,r.z,s.z)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}pa.prototype.isQuadraticBezierCurve3=!0;class ma extends Qs{constructor(t=[]){super(),this.type="SplineCurve",this.points=t}getPoint(t,e=new tt){const n=e,i=this.points,r=(i.length-1)*t,s=Math.floor(r),a=r-s,o=i[0===s?s:s-1],l=i[s],c=i[s>i.length-2?i.length-1:s+1],h=i[s>i.length-3?i.length-1:s+2];return n.set(aa(a,o.x,l.x,c.x,h.x),aa(a,o.y,l.y,c.y,h.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new tt).fromArray(n))}return this}}ma.prototype.isSplineCurve=!0;var fa=Object.freeze({__proto__:null,ArcCurve:$s,CatmullRomCurve3:sa,CubicBezierCurve:ca,CubicBezierCurve3:ha,EllipseCurve:Ks,LineCurve:ua,LineCurve3:class extends Qs{constructor(t=new ut,e=new ut){super(),this.type="LineCurve3",this.isLineCurve3=!0,this.v1=t,this.v2=e}getPoint(t,e=new ut){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n}getPointAt(t,e){return this.getPoint(t,e)}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}},QuadraticBezierCurve:da,QuadraticBezierCurve3:pa,SplineCurve:ma});const ga=function(t,e,n=2){const i=e&&e.length,r=i?e[0]*n:t.length;let s=va(t,0,r,n,!0);const a=[];if(!s||s.next===s.prev)return a;let o,l,c,h,u,d,p;if(i&&(s=function(t,e,n,i){const r=[];let s,a,o,l,c;for(s=0,a=e.length;s<a;s++)o=e[s]*i,l=s<a-1?e[s+1]*i:t.length,c=va(t,o,l,i,!1),c===c.next&&(c.steiner=!0),r.push(Aa(c));for(r.sort(Sa),s=0;s<r.length;s++)Ta(r[s],n),n=ya(n,n.next);return n}(t,e,s,n)),t.length>80*n){o=c=t[0],l=h=t[1];for(let e=n;e<r;e+=n)u=t[e],d=t[e+1],u<o&&(o=u),d<l&&(l=d),u>c&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?1/p:0}return xa(s,a,n,o,l,p),a};function va(t,e,n,i,r){let s,a;if(r===function(t,e,n,i){let r=0;for(let s=e,a=n-i;s<n;s+=i)r+=(t[a]-t[s])*(t[s+1]+t[a+1]),a=s;return r}(t,e,n,i)>0)for(s=e;s<n;s+=i)a=Fa(s,t[s],t[s+1],a);else for(s=n-i;s>=e;s-=i)a=Fa(s,t[s],t[s+1],a);return a&&Da(a,a.next)&&(Ua(a),a=a.next),a}function ya(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!Da(i,i.next)&&0!==Pa(i.prev,i,i.next))i=i.next;else{if(Ua(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function xa(t,e,n,i,r,s,a){if(!t)return;!a&&s&&function(t,e,n,i){let r=t;do{null===r.z&&(r.z=La(r.x,r.y,e,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){let e,n,i,r,s,a,o,l,c=1;do{for(n=t,t=null,s=null,a=0;n;){for(a++,i=n,o=0,e=0;e<c&&(o++,i=i.nextZ,i);e++);for(l=c;o>0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;n=i}s.nextZ=null,c*=2}while(a>1)}(r)}(t,i,r,s);let o,l,c=t;for(;t.prev!==t.next;)if(o=t.prev,l=t.next,s?ba(t,i,r,s):_a(t))e.push(o.i/n),e.push(t.i/n),e.push(l.i/n),Ua(t),t=l.next,c=l.next;else if((t=l)===c){a?1===a?xa(t=Ma(ya(t),e,n),e,n,i,r,s,2):2===a&&wa(t,e,n,i,r,s):xa(ya(t),e,n,i,r,s,1);break}}function _a(t){const e=t.prev,n=t,i=t.next;if(Pa(e,n,i)>=0)return!1;let r=t.next.next;for(;r!==t.prev;){if(Ra(e.x,e.y,n.x,n.y,i.x,i.y,r.x,r.y)&&Pa(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function ba(t,e,n,i){const r=t.prev,s=t,a=t.next;if(Pa(r,s,a)>=0)return!1;const o=r.x<s.x?r.x<a.x?r.x:a.x:s.x<a.x?s.x:a.x,l=r.y<s.y?r.y<a.y?r.y:a.y:s.y<a.y?s.y:a.y,c=r.x>s.x?r.x>a.x?r.x:a.x:s.x>a.x?s.x:a.x,h=r.y>s.y?r.y>a.y?r.y:a.y:s.y>a.y?s.y:a.y,u=La(o,l,e,n,i),d=La(c,h,e,n,i);let p=t.prevZ,m=t.nextZ;for(;p&&p.z>=u&&m&&m.z<=d;){if(p!==t.prev&&p!==t.next&&Ra(r.x,r.y,s.x,s.y,a.x,a.y,p.x,p.y)&&Pa(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,m!==t.prev&&m!==t.next&&Ra(r.x,r.y,s.x,s.y,a.x,a.y,m.x,m.y)&&Pa(m.prev,m,m.next)>=0)return!1;m=m.nextZ}for(;p&&p.z>=u;){if(p!==t.prev&&p!==t.next&&Ra(r.x,r.y,s.x,s.y,a.x,a.y,p.x,p.y)&&Pa(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;m&&m.z<=d;){if(m!==t.prev&&m!==t.next&&Ra(r.x,r.y,s.x,s.y,a.x,a.y,m.x,m.y)&&Pa(m.prev,m,m.next)>=0)return!1;m=m.nextZ}return!0}function Ma(t,e,n){let i=t;do{const r=i.prev,s=i.next.next;!Da(r,s)&&Ia(r,i,i.next,s)&&Oa(r,s)&&Oa(s,r)&&(e.push(r.i/n),e.push(i.i/n),e.push(s.i/n),Ua(i),Ua(i.next),i=t=s),i=i.next}while(i!==t);return ya(i)}function wa(t,e,n,i,r,s){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&Ca(a,t)){let o=Ba(a,t);return a=ya(a,a.next),o=ya(o,o.next),xa(a,e,n,i,r,s),void xa(o,e,n,i,r,s)}t=t.next}a=a.next}while(a!==t)}function Sa(t,e){return t.x-e.x}function Ta(t,e){if(e=function(t,e){let n=e;const i=t.x,r=t.y;let s,a=-1/0;do{if(r<=n.y&&r>=n.next.y&&n.next.y!==n.y){const t=n.x+(r-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(t<=i&&t>a){if(a=t,t===i){if(r===n.y)return n;if(r===n.next.y)return n.next}s=n.x<n.next.x?n:n.next}}n=n.next}while(n!==e);if(!s)return null;if(i===a)return s;const o=s,l=s.x,c=s.y;let h,u=1/0;n=s;do{i>=n.x&&n.x>=l&&i!==n.x&&Ra(r<c?i:a,r,l,c,r<c?a:i,r,n.x,n.y)&&(h=Math.abs(r-n.y)/(i-n.x),Oa(n,t)&&(h<u||h===u&&(n.x>s.x||n.x===s.x&&Ea(s,n)))&&(s=n,u=h)),n=n.next}while(n!==o);return s}(t,e)){const n=Ba(e,t);ya(e,e.next),ya(n,n.next)}}function Ea(t,e){return Pa(t.prev,t,e.prev)<0&&Pa(e.next,t,t.next)<0}function La(t,e,n,i,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*r)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-i)*r)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Aa(t){let e=t,n=t;do{(e.x<n.x||e.x===n.x&&e.y<n.y)&&(n=e),e=e.next}while(e!==t);return n}function Ra(t,e,n,i,r,s,a,o){return(r-a)*(e-o)-(t-a)*(s-o)>=0&&(t-a)*(i-o)-(n-a)*(e-o)>=0&&(n-a)*(s-o)-(r-a)*(i-o)>=0}function Ca(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&Ia(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(Oa(t,e)&&Oa(e,t)&&function(t,e){let n=t,i=!1;const r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!==n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i}(t,e)&&(Pa(t.prev,t,e.prev)||Pa(t,e.prev,e))||Da(t,e)&&Pa(t.prev,t,t.next)>0&&Pa(e.prev,e,e.next)>0)}function Pa(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function Da(t,e){return t.x===e.x&&t.y===e.y}function Ia(t,e,n,i){const r=za(Pa(t,e,n)),s=za(Pa(t,e,i)),a=za(Pa(n,i,t)),o=za(Pa(n,i,e));return r!==s&&a!==o||(!(0!==r||!Na(t,n,e))||(!(0!==s||!Na(t,i,e))||(!(0!==a||!Na(n,t,i))||!(0!==o||!Na(n,e,i)))))}function Na(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function za(t){return t>0?1:t<0?-1:0}function Oa(t,e){return Pa(t.prev,t,t.next)<0?Pa(t,e,t.next)>=0&&Pa(t,t.prev,e)>=0:Pa(t,e,t.prev)<0||Pa(t,t.next,e)<0}function Ba(t,e){const n=new Ha(t.i,t.x,t.y),i=new Ha(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,i.next=n,n.prev=i,s.next=i,i.prev=s,i}function Fa(t,e,n,i){const r=new Ha(t,e,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function Ua(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Ha(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}class Ga{static area(t){const e=t.length;let n=0;for(let i=e-1,r=0;r<e;i=r++)n+=t[i].x*t[r].y-t[r].x*t[i].y;return.5*n}static isClockWise(t){return Ga.area(t)<0}static triangulateShape(t,e){const n=[],i=[],r=[];Va(t),ka(n,t);let s=t.length;e.forEach(Va);for(let o=0;o<e.length;o++)i.push(s),s+=e[o].length,ka(n,e[o]);const a=ga(n,i);for(let o=0;o<a.length;o+=3)r.push(a.slice(o,o+3));return r}}function Va(t){const e=t.length;e>2&&t[e-1].equals(t[0])&&t.pop()}function ka(t,e){for(let n=0;n<e.length;n++)t.push(e[n].x),t.push(e[n].y)}class Wa extends Je{constructor(t,e){super(),this.type="ExtrudeGeometry",this.parameters={shapes:t,options:e},t=Array.isArray(t)?t:[t];const n=this,i=[],r=[];for(let a=0,o=t.length;a<o;a++){s(t[a])}function s(t){const s=[],a=void 0!==e.curveSegments?e.curveSegments:12,o=void 0!==e.steps?e.steps:1;let l=void 0!==e.depth?e.depth:100,c=void 0===e.bevelEnabled||e.bevelEnabled,h=void 0!==e.bevelThickness?e.bevelThickness:6,u=void 0!==e.bevelSize?e.bevelSize:h-2,d=void 0!==e.bevelOffset?e.bevelOffset:0,p=void 0!==e.bevelSegments?e.bevelSegments:3;const m=e.extrudePath,f=void 0!==e.UVGenerator?e.UVGenerator:ja;void 0!==e.amount&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),l=e.amount);let g,v,y,x,_,b=!1;m&&(g=m.getSpacedPoints(o),b=!0,c=!1,v=m.computeFrenetFrames(o,!1),y=new ut,x=new ut,_=new ut),c||(p=0,h=0,u=0,d=0);const M=t.extractPoints(a);let w=M.shape;const S=M.holes;if(!Ga.isClockWise(w)){w=w.reverse();for(let t=0,e=S.length;t<e;t++){const e=S[t];Ga.isClockWise(e)&&(S[t]=e.reverse())}}const T=Ga.triangulateShape(w,S),E=w;for(let e=0,n=S.length;e<n;e++){const t=S[e];w=w.concat(t)}function L(t,e,n){return e||console.error("THREE.ExtrudeGeometry: vec does not exist"),e.clone().multiplyScalar(n).add(t)}const A=w.length,R=T.length;function C(t,e,n){let i,r,s;const a=t.x-e.x,o=t.y-e.y,l=n.x-t.x,c=n.y-t.y,h=a*a+o*o,u=a*c-o*l;if(Math.abs(u)>Number.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=e.x-o/u,m=e.y+a/u,f=((n.x-c/d-p)*c-(n.y+l/d-m)*l)/(a*c-o*l);i=p+a*f-t.x,r=m+o*f-t.y;const g=i*i+r*r;if(g<=2)return new tt(i,r);s=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?l>Number.EPSILON&&(t=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(o)===Math.sign(c)&&(t=!0),t?(i=-o,r=a,s=Math.sqrt(h)):(i=a,r=o,s=Math.sqrt(h/2))}return new tt(i/s,r/s)}const P=[];for(let e=0,n=E.length,i=n-1,r=e+1;e<n;e++,i++,r++)i===n&&(i=0),r===n&&(r=0),P[e]=C(E[e],E[i],E[r]);const D=[];let I,N=P.concat();for(let e=0,n=S.length;e<n;e++){const t=S[e];I=[];for(let e=0,n=t.length,i=n-1,r=e+1;e<n;e++,i++,r++)i===n&&(i=0),r===n&&(r=0),I[e]=C(t[e],t[i],t[r]);D.push(I),N=N.concat(I)}for(let e=0;e<p;e++){const t=e/p,n=h*Math.cos(t*Math.PI/2),i=u*Math.sin(t*Math.PI/2)+d;for(let e=0,r=E.length;e<r;e++){const t=L(E[e],P[e],i);B(t.x,t.y,-n)}for(let e=0,r=S.length;e<r;e++){const t=S[e];I=D[e];for(let e=0,r=t.length;e<r;e++){const r=L(t[e],I[e],i);B(r.x,r.y,-n)}}}const z=u+d;for(let e=0;e<A;e++){const t=c?L(w[e],N[e],z):w[e];b?(x.copy(v.normals[0]).multiplyScalar(t.x),y.copy(v.binormals[0]).multiplyScalar(t.y),_.copy(g[0]).add(x).add(y),B(_.x,_.y,_.z)):B(t.x,t.y,0)}for(let e=1;e<=o;e++)for(let t=0;t<A;t++){const n=c?L(w[t],N[t],z):w[t];b?(x.copy(v.normals[e]).multiplyScalar(n.x),y.copy(v.binormals[e]).multiplyScalar(n.y),_.copy(g[e]).add(x).add(y),B(_.x,_.y,_.z)):B(n.x,n.y,l/o*e)}for(let e=p-1;e>=0;e--){const t=e/p,n=h*Math.cos(t*Math.PI/2),i=u*Math.sin(t*Math.PI/2)+d;for(let e=0,r=E.length;e<r;e++){const t=L(E[e],P[e],i);B(t.x,t.y,l+n)}for(let e=0,r=S.length;e<r;e++){const t=S[e];I=D[e];for(let e=0,r=t.length;e<r;e++){const r=L(t[e],I[e],i);b?B(r.x,r.y+g[o-1].y,g[o-1].x+n):B(r.x,r.y,l+n)}}}function O(t,e){let n=t.length;for(;--n>=0;){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=o+2*p;t<n;t++){const n=A*t,s=A*(t+1);U(e+i+n,e+r+n,e+r+s,e+i+s)}}}function B(t,e,n){s.push(t),s.push(e),s.push(n)}function F(t,e,r){H(t),H(e),H(r);const s=i.length/3,a=f.generateTopUV(n,i,s-3,s-2,s-1);G(a[0]),G(a[1]),G(a[2])}function U(t,e,r,s){H(t),H(e),H(s),H(e),H(r),H(s);const a=i.length/3,o=f.generateSideWallUV(n,i,a-6,a-3,a-2,a-1);G(o[0]),G(o[1]),G(o[3]),G(o[1]),G(o[2]),G(o[3])}function H(t){i.push(s[3*t+0]),i.push(s[3*t+1]),i.push(s[3*t+2])}function G(t){r.push(t.x),r.push(t.y)}!function(){const t=i.length/3;if(c){let t=0,e=A*t;for(let n=0;n<R;n++){const t=T[n];F(t[2]+e,t[1]+e,t[0]+e)}t=o+2*p,e=A*t;for(let n=0;n<R;n++){const t=T[n];F(t[0]+e,t[1]+e,t[2]+e)}}else{for(let t=0;t<R;t++){const e=T[t];F(e[2],e[1],e[0])}for(let t=0;t<R;t++){const e=T[t];F(e[0]+A*o,e[1]+A*o,e[2]+A*o)}}n.addGroup(t,i.length/3-t,0)}(),function(){const t=i.length/3;let e=0;O(E,e),e+=E.length;for(let n=0,i=S.length;n<i;n++){const t=S[n];O(t,e),e+=t.length}n.addGroup(t,i.length/3-t,1)}()}this.setAttribute("position",new He(i,3)),this.setAttribute("uv",new He(r,2)),this.computeVertexNormals()}toJSON(){const t=super.toJSON();return function(t,e,n){if(n.shapes=[],Array.isArray(t))for(let i=0,r=t.length;i<r;i++){const e=t[i];n.shapes.push(e.uuid)}else n.shapes.push(t.uuid);void 0!==e.extrudePath&&(n.options.extrudePath=e.extrudePath.toJSON());return n}(this.parameters.shapes,this.parameters.options,t)}static fromJSON(t,e){const n=[];for(let r=0,s=t.shapes.length;r<s;r++){const i=e[t.shapes[r]];n.push(i)}const i=t.options.extrudePath;return void 0!==i&&(t.options.extrudePath=(new fa[i.type]).fromJSON(i)),new Wa(n,t.options)}}const ja={generateTopUV:function(t,e,n,i,r){const s=e[3*n],a=e[3*n+1],o=e[3*i],l=e[3*i+1],c=e[3*r],h=e[3*r+1];return[new tt(s,a),new tt(o,l),new tt(c,h)]},generateSideWallUV:function(t,e,n,i,r,s){const a=e[3*n],o=e[3*n+1],l=e[3*n+2],c=e[3*i],h=e[3*i+1],u=e[3*i+2],d=e[3*r],p=e[3*r+1],m=e[3*r+2],f=e[3*s],g=e[3*s+1],v=e[3*s+2];return Math.abs(o-h)<Math.abs(a-c)?[new tt(a,1-l),new tt(c,1-u),new tt(d,1-m),new tt(f,1-v)]:[new tt(o,1-l),new tt(h,1-u),new tt(p,1-m),new tt(g,1-v)]}};class qa extends Je{constructor(t,e=12){super(),this.type="ShapeGeometry",this.parameters={shapes:t,curveSegments:e};const n=[],i=[],r=[],s=[];let a=0,o=0;if(!1===Array.isArray(t))l(t);else for(let c=0;c<t.length;c++)l(t[c]),this.addGroup(a,o,c),a+=o,o=0;function l(t){const a=i.length/3,l=t.extractPoints(e);let c=l.shape;const h=l.holes;!1===Ga.isClockWise(c)&&(c=c.reverse());for(let e=0,n=h.length;e<n;e++){const t=h[e];!0===Ga.isClockWise(t)&&(h[e]=t.reverse())}const u=Ga.triangulateShape(c,h);for(let e=0,n=h.length;e<n;e++){const t=h[e];c=c.concat(t)}for(let e=0,n=c.length;e<n;e++){const t=c[e];i.push(t.x,t.y,0),r.push(0,0,1),s.push(t.x,t.y)}for(let e=0,i=u.length;e<i;e++){const t=u[e],i=t[0]+a,r=t[1]+a,s=t[2]+a;n.push(i,r,s),o+=3}}this.setIndex(n),this.setAttribute("position",new He(i,3)),this.setAttribute("normal",new He(r,3)),this.setAttribute("uv",new He(s,2))}toJSON(){const t=super.toJSON();return function(t,e){if(e.shapes=[],Array.isArray(t))for(let n=0,i=t.length;n<i;n++){const i=t[n];e.shapes.push(i.uuid)}else e.shapes.push(t.uuid);return e}(this.parameters.shapes,t)}static fromJSON(t,e){const n=[];for(let i=0,r=t.shapes.length;i<r;i++){const r=e[t.shapes[i]];n.push(r)}return new qa(n,t.curveSegments)}}class Xa extends Je{constructor(t=1,e=8,n=6,i=0,r=2*Math.PI,s=0,a=Math.PI){super(),this.type="SphereGeometry",this.parameters={radius:t,widthSegments:e,heightSegments:n,phiStart:i,phiLength:r,thetaStart:s,thetaLength:a},e=Math.max(3,Math.floor(e)),n=Math.max(2,Math.floor(n));const o=Math.min(s+a,Math.PI);let l=0;const c=[],h=new ut,u=new ut,d=[],p=[],m=[],f=[];for(let g=0;g<=n;g++){const d=[],v=g/n;let y=0;0==g&&0==s?y=.5/e:g==n&&o==Math.PI&&(y=-.5/e);for(let n=0;n<=e;n++){const o=n/e;h.x=-t*Math.cos(i+o*r)*Math.sin(s+v*a),h.y=t*Math.cos(s+v*a),h.z=t*Math.sin(i+o*r)*Math.sin(s+v*a),p.push(h.x,h.y,h.z),u.copy(h).normalize(),m.push(u.x,u.y,u.z),f.push(o+y,1-v),d.push(l++)}c.push(d)}for(let g=0;g<n;g++)for(let t=0;t<e;t++){const e=c[g][t+1],i=c[g][t],r=c[g+1][t],a=c[g+1][t+1];(0!==g||s>0)&&d.push(e,i,a),(g!==n-1||o<Math.PI)&&d.push(i,r,a)}this.setIndex(d),this.setAttribute("position",new He(p,3)),this.setAttribute("normal",new He(m,3)),this.setAttribute("uv",new He(f,2))}static fromJSON(t){return new Xa(t.radius,t.widthSegments,t.heightSegments,t.phiStart,t.phiLength,t.thetaStart,t.thetaLength)}}class Ya extends Je{constructor(t,e=64,n=1,i=8,r=!1){super(),this.type="TubeGeometry",this.parameters={path:t,tubularSegments:e,radius:n,radialSegments:i,closed:r};const s=t.computeFrenetFrames(e,r);this.tangents=s.tangents,this.normals=s.normals,this.binormals=s.binormals;const a=new ut,o=new ut,l=new tt;let c=new ut;const h=[],u=[],d=[],p=[];function m(r){c=t.getPointAt(r/e,c);const l=s.normals[r],d=s.binormals[r];for(let t=0;t<=i;t++){const e=t/i*Math.PI*2,r=Math.sin(e),s=-Math.cos(e);o.x=s*l.x+r*d.x,o.y=s*l.y+r*d.y,o.z=s*l.z+r*d.z,o.normalize(),u.push(o.x,o.y,o.z),a.x=c.x+n*o.x,a.y=c.y+n*o.y,a.z=c.z+n*o.z,h.push(a.x,a.y,a.z)}}!function(){for(let t=0;t<e;t++)m(t);m(!1===r?e:0),function(){for(let t=0;t<=e;t++)for(let n=0;n<=i;n++)l.x=t/e,l.y=n/i,d.push(l.x,l.y)}(),function(){for(let t=1;t<=e;t++)for(let e=1;e<=i;e++){const n=(i+1)*(t-1)+(e-1),r=(i+1)*t+(e-1),s=(i+1)*t+e,a=(i+1)*(t-1)+e;p.push(n,r,a),p.push(r,s,a)}}()}(),this.setIndex(p),this.setAttribute("position",new He(h,3)),this.setAttribute("normal",new He(u,3)),this.setAttribute("uv",new He(d,2))}toJSON(){const t=super.toJSON();return t.path=this.parameters.path.toJSON(),t}static fromJSON(t){return new Ya((new fa[t.path.type]).fromJSON(t.path),t.tubularSegments,t.radius,t.radialSegments,t.closed)}}class Ja extends Ee{constructor(t){super(),this.type="ShadowMaterial",this.color=new Ie(0),this.transparent=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this}}Ja.prototype.isShadowMaterial=!0;class Za extends _n{constructor(t){super(t),this.type="RawShaderMaterial"}}Za.prototype.isRawShaderMaterial=!0;class Qa extends Ee{constructor(t){super(),this.defines={STANDARD:""},this.type="MeshStandardMaterial",this.color=new Ie(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ie(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new tt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.morphTargets=!1,this.morphNormals=!1,this.flatShading=!1,this.vertexTangents=!1,this.setValues(t)}copy(t){return super.copy(t),this.defines={STANDARD:""},this.color.copy(t.color),this.roughness=t.roughness,this.metalness=t.metalness,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.roughnessMap=t.roughnessMap,this.metalnessMap=t.metalnessMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapIntensity=t.envMapIntensity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.flatShading=t.flatShading,this.vertexTangents=t.vertexTangents,this}}Qa.prototype.isMeshStandardMaterial=!0;class Ka extends Qa{constructor(t){super(),this.defines={STANDARD:"",PHYSICAL:""},this.type="MeshPhysicalMaterial",this.clearcoat=0,this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new tt(1,1),this.clearcoatNormalMap=null,this.reflectivity=.5,Object.defineProperty(this,"ior",{get:function(){return(1+.4*this.reflectivity)/(1-.4*this.reflectivity)},set:function(t){this.reflectivity=J(2.5*(t-1)/(t+1),0,1)}}),this.sheen=null,this.transmission=0,this.transmissionMap=null,this.thickness=.01,this.thicknessMap=null,this.attenuationDistance=0,this.attenuationColor=new Ie(1,1,1),this.setValues(t)}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.reflectivity=t.reflectivity,t.sheen?this.sheen=(this.sheen||new Ie).copy(t.sheen):this.sheen=null,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this}}Ka.prototype.isMeshPhysicalMaterial=!0;class $a extends Ee{constructor(t){super(),this.type="MeshPhongMaterial",this.color=new Ie(16777215),this.specular=new Ie(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ie(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new tt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.morphTargets=!1,this.morphNormals=!1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.flatShading=t.flatShading,this}}$a.prototype.isMeshPhongMaterial=!0;class to extends Ee{constructor(t){super(),this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Ie(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ie(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new tt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this}}to.prototype.isMeshToonMaterial=!0;class eo extends Ee{constructor(t){super(),this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new tt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.morphTargets=!1,this.morphNormals=!1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.flatShading=t.flatShading,this}}eo.prototype.isMeshNormalMaterial=!0;class no extends Ee{constructor(t){super(),this.type="MeshLambertMaterial",this.color=new Ie(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ie(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this}}no.prototype.isMeshLambertMaterial=!0;class io extends Ee{constructor(t){super(),this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Ie(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new tt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.morphTargets=!1,this.morphNormals=!1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.flatShading=t.flatShading,this}}io.prototype.isMeshMatcapMaterial=!0;class ro extends Cs{constructor(t){super(),this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}ro.prototype.isLineDashedMaterial=!0;const so={arraySlice:function(t,e,n){return so.isTypedArray(t)?new t.constructor(t.subarray(e,void 0!==n?n:t.length)):t.slice(e,n)},convertArray:function(t,e,n){return!t||!n&&t.constructor===e?t:"number"===typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)},isTypedArray:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)},getKeyframeOrder:function(t){const e=t.length,n=new Array(e);for(let i=0;i!==e;++i)n[i]=i;return n.sort((function(e,n){return t[e]-t[n]})),n},sortedArray:function(t,e,n){const i=t.length,r=new t.constructor(i);for(let s=0,a=0;a!==i;++s){const i=n[s]*e;for(let n=0;n!==e;++n)r[a++]=t[i+n]}return r},flattenJSON:function(t,e,n,i){let r=1,s=t[0];for(;void 0!==s&&void 0===s[i];)s=t[r++];if(void 0===s)return;let a=s[i];if(void 0!==a)if(Array.isArray(a))do{a=s[i],void 0!==a&&(e.push(s.time),n.push.apply(n,a)),s=t[r++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[i],void 0!==a&&(e.push(s.time),a.toArray(n,n.length)),s=t[r++]}while(void 0!==s);else do{a=s[i],void 0!==a&&(e.push(s.time),n.push(a)),s=t[r++]}while(void 0!==s)},subclip:function(t,e,n,i,r=30){const s=t.clone();s.name=e;const a=[];for(let l=0;l<s.tracks.length;++l){const t=s.tracks[l],e=t.getValueSize(),o=[],c=[];for(let s=0;s<t.times.length;++s){const a=t.times[s]*r;if(!(a<n||a>=i)){o.push(t.times[s]);for(let n=0;n<e;++n)c.push(t.values[s*e+n])}}0!==o.length&&(t.times=so.convertArray(o,t.times.constructor),t.values=so.convertArray(c,t.values.constructor),a.push(t))}s.tracks=a;let o=1/0;for(let l=0;l<s.tracks.length;++l)o>s.tracks[l].times[0]&&(o=s.tracks[l].times[0]);for(let l=0;l<s.tracks.length;++l)s.tracks[l].shift(-1*o);return s.resetDuration(),s},makeClipAdditive:function(t,e=0,n=t,i=30){i<=0&&(i=30);const r=n.tracks.length,s=e/i;for(let a=0;a<r;++a){const e=n.tracks[a],i=e.ValueTypeName;if("bool"===i||"string"===i)continue;const r=t.tracks.find((function(t){return t.name===e.name&&t.ValueTypeName===i}));if(void 0===r)continue;let o=0;const l=e.getValueSize();e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(o=l/3);let c=0;const h=r.getValueSize();r.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(c=h/3);const u=e.times.length-1;let d;if(s<=e.times[0]){const t=o,n=l-o;d=so.arraySlice(e.values,t,n)}else if(s>=e.times[u]){const t=u*l+o,n=t+l-o;d=so.arraySlice(e.values,t,n)}else{const t=e.createInterpolant(),n=o,i=l-o;t.evaluate(s),d=so.arraySlice(t.resultBuffer,n,i)}if("quaternion"===i){(new ht).fromArray(d).normalize().conjugate().toArray(d)}const p=r.times.length;for(let t=0;t<p;++t){const e=t*h+c;if("quaternion"===i)ht.multiplyQuaternionsFlat(r.values,e,d,0,r.values,e);else{const t=h-2*c;for(let n=0;n<t;++n)r.values[e+n]-=d[n]}}}return t.blendMode=2501,t}};class ao{constructor(t,e,n,i){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=void 0!==i?i:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let n=this._cachedIndex,i=e[n],r=e[n-1];t:{e:{let s;n:{i:if(!(t<i)){for(let s=n+2;;){if(void 0===i){if(t<r)break i;return n=e.length,this._cachedIndex=n,this.afterEnd_(n-1,t,r)}if(n===s)break;if(r=i,i=e[++n],t<i)break e}s=e.length;break n}if(t>=r)break t;{const a=e[1];t<a&&(n=2,r=a);for(let s=n-2;;){if(void 0===r)return this._cachedIndex=0,this.beforeStart_(0,t,i);if(n===s)break;if(i=r,r=e[--n-1],t>=r)break e}s=n,n=0}}for(;n<s;){const i=n+s>>>1;t<e[i]?s=i:n=i+1}if(i=e[n],r=e[n-1],void 0===r)return this._cachedIndex=0,this.beforeStart_(0,t,i);if(void 0===i)return n=e.length,this._cachedIndex=n,this.afterEnd_(n-1,r,t)}this._cachedIndex=n,this.intervalChanged_(n,r,i)}return this.interpolate_(n,r,t,i)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(t){const e=this.resultBuffer,n=this.sampleValues,i=this.valueSize,r=t*i;for(let s=0;s!==i;++s)e[s]=n[r+s];return e}interpolate_(){throw new Error("call to abstract method")}intervalChanged_(){}}ao.prototype.beforeStart_=ao.prototype.copySampleValue_,ao.prototype.afterEnd_=ao.prototype.copySampleValue_;class oo extends ao{constructor(t,e,n,i){super(t,e,n,i),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:D,endingEnd:D}}intervalChanged_(t,e,n){const i=this.parameterPositions;let r=t-2,s=t+1,a=i[r],o=i[s];if(void 0===a)switch(this.getSettings_().endingStart){case I:r=t,a=2*e-n;break;case N:r=i.length-2,a=e+i[r]-i[r+1];break;default:r=t,a=n}if(void 0===o)switch(this.getSettings_().endingEnd){case I:s=t,o=2*n-e;break;case N:s=1,o=n+i[1]-i[0];break;default:s=t-1,o=e}const l=.5*(n-e),c=this.valueSize;this._weightPrev=l/(e-a),this._weightNext=l/(o-n),this._offsetPrev=r*c,this._offsetNext=s*c}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=t*a,l=o-a,c=this._offsetPrev,h=this._offsetNext,u=this._weightPrev,d=this._weightNext,p=(n-e)/(i-e),m=p*p,f=m*p,g=-u*f+2*u*m-u*p,v=(1+u)*f+(-1.5-2*u)*m+(-.5+u)*p+1,y=(-1-d)*f+(1.5+d)*m+.5*p,x=d*f-d*m;for(let _=0;_!==a;++_)r[_]=g*s[c+_]+v*s[l+_]+y*s[o+_]+x*s[h+_];return r}}class lo extends ao{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=t*a,l=o-a,c=(n-e)/(i-e),h=1-c;for(let u=0;u!==a;++u)r[u]=s[l+u]*h+s[o+u]*c;return r}}class co extends ao{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t){return this.copySampleValue_(t-1)}}class ho{constructor(t,e,n,i){if(void 0===t)throw new Error("THREE.KeyframeTrack: track name is undefined");if(void 0===e||0===e.length)throw new Error("THREE.KeyframeTrack: no keyframes in track named "+t);this.name=t,this.times=so.convertArray(e,this.TimeBufferType),this.values=so.convertArray(n,this.ValueBufferType),this.setInterpolation(i||this.DefaultInterpolation)}static toJSON(t){const e=t.constructor;let n;if(e.toJSON!==this.toJSON)n=e.toJSON(t);else{n={name:t.name,times:so.convertArray(t.times,Array),values:so.convertArray(t.values,Array)};const e=t.getInterpolation();e!==t.DefaultInterpolation&&(n.interpolation=e)}return n.type=t.ValueTypeName,n}InterpolantFactoryMethodDiscrete(t){return new co(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodLinear(t){return new lo(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodSmooth(t){return new oo(this.times,this.values,this.getValueSize(),t)}setInterpolation(t){let e;switch(t){case R:e=this.InterpolantFactoryMethodDiscrete;break;case C:e=this.InterpolantFactoryMethodLinear;break;case P:e=this.InterpolantFactoryMethodSmooth}if(void 0===e){const e="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(void 0===this.createInterpolant){if(t===this.DefaultInterpolation)throw new Error(e);this.setInterpolation(this.DefaultInterpolation)}return console.warn("THREE.KeyframeTrack:",e),this}return this.createInterpolant=e,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return R;case this.InterpolantFactoryMethodLinear:return C;case this.InterpolantFactoryMethodSmooth:return P}}getValueSize(){return this.values.length/this.times.length}shift(t){if(0!==t){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]+=t}return this}scale(t){if(1!==t){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]*=t}return this}trim(t,e){const n=this.times,i=n.length;let r=0,s=i-1;for(;r!==i&&n[r]<t;)++r;for(;-1!==s&&n[s]>e;)--s;if(++s,0!==r||s!==i){r>=s&&(s=Math.max(s,1),r=s-1);const t=this.getValueSize();this.times=so.arraySlice(n,r,s),this.values=so.arraySlice(this.values,r*t,s*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let s=null;for(let a=0;a!==r;a++){const e=n[a];if("number"===typeof e&&isNaN(e)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,e),t=!1;break}if(null!==s&&s>e){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,e,s),t=!1;break}s=e}if(void 0!==i&&so.isTypedArray(i))for(let a=0,o=i.length;a!==o;++a){const e=i[a];if(isNaN(e)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,e),t=!1;break}}return t}optimize(){const t=so.arraySlice(this.times),e=so.arraySlice(this.values),n=this.getValueSize(),i=this.getInterpolation()===P,r=t.length-1;let s=1;for(let a=1;a<r;++a){let r=!1;const o=t[a];if(o!==t[a+1]&&(1!==a||o!==t[0]))if(i)r=!0;else{const t=a*n,i=t-n,s=t+n;for(let a=0;a!==n;++a){const n=e[t+a];if(n!==e[i+a]||n!==e[s+a]){r=!0;break}}}if(r){if(a!==s){t[s]=t[a];const i=a*n,r=s*n;for(let t=0;t!==n;++t)e[r+t]=e[i+t]}++s}}if(r>0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}return s!==t.length?(this.times=so.arraySlice(t,0,s),this.values=so.arraySlice(e,0,s*n)):(this.times=t,this.values=e),this}clone(){const t=so.arraySlice(this.times,0),e=so.arraySlice(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}ho.prototype.TimeBufferType=Float32Array,ho.prototype.ValueBufferType=Float32Array,ho.prototype.DefaultInterpolation=C;class uo extends ho{}uo.prototype.ValueTypeName="bool",uo.prototype.ValueBufferType=Array,uo.prototype.DefaultInterpolation=R,uo.prototype.InterpolantFactoryMethodLinear=void 0,uo.prototype.InterpolantFactoryMethodSmooth=void 0;class po extends ho{}po.prototype.ValueTypeName="color";class mo extends ho{}mo.prototype.ValueTypeName="number";class fo extends ao{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let l=t*a;for(let c=l+a;l!==c;l+=4)ht.slerpFlat(r,0,s,l-a,s,l,o);return r}}class go extends ho{InterpolantFactoryMethodLinear(t){return new fo(this.times,this.values,this.getValueSize(),t)}}go.prototype.ValueTypeName="quaternion",go.prototype.DefaultInterpolation=C,go.prototype.InterpolantFactoryMethodSmooth=void 0;class vo extends ho{}vo.prototype.ValueTypeName="string",vo.prototype.ValueBufferType=Array,vo.prototype.DefaultInterpolation=R,vo.prototype.InterpolantFactoryMethodLinear=void 0,vo.prototype.InterpolantFactoryMethodSmooth=void 0;class yo extends ho{}yo.prototype.ValueTypeName="vector";class xo{constructor(t,e=-1,n,i=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=Y(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let s=0,a=n.length;s!==a;++s)e.push(_o(n[s]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);return r.uuid=t.uuid,r}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let r=0,s=n.length;r!==s;++r)e.push(ho.toJSON(n[r]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const r=e.length,s=[];for(let a=0;a<r;a++){let t=[],o=[];t.push((a+r-1)%r,a,(a+1)%r),o.push(0,1,0);const l=so.getKeyframeOrder(t);t=so.sortedArray(t,1,l),o=so.sortedArray(o,1,l),i||0!==t[0]||(t.push(r),o.push(o[0])),s.push(new mo(".morphTargetInfluences["+e[a].name+"]",t,o).scale(1/n))}return new this(t,-1,s)}static findByName(t,e){let n=t;if(!Array.isArray(t)){const e=t;n=e.geometry&&e.geometry.animations||e.animations}for(let i=0;i<n.length;i++)if(n[i].name===e)return n[i];return null}static CreateClipsFromMorphTargetSequences(t,e,n){const i={},r=/^([\w-]*?)([\d]+)$/;for(let a=0,o=t.length;a<o;a++){const e=t[a],n=e.name.match(r);if(n&&n.length>1){const t=n[1];let r=i[t];r||(i[t]=r=[]),r.push(e)}}const s=[];for(const a in i)s.push(this.CreateFromMorphTargetSequence(a,i[a],e,n));return s}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(t,e,n,i,r){if(0!==n.length){const s=[],a=[];so.flattenJSON(n,s,a,i),0!==s.length&&r.push(new t(e,s,a))}},i=[],r=t.name||"default",s=t.fps||30,a=t.blendMode;let o=t.length||-1;const l=t.hierarchy||[];for(let c=0;c<l.length;c++){const t=l[c].keys;if(t&&0!==t.length)if(t[0].morphTargets){const e={};let n;for(n=0;n<t.length;n++)if(t[n].morphTargets)for(let i=0;i<t[n].morphTargets.length;i++)e[t[n].morphTargets[i]]=-1;for(const r in e){const e=[],s=[];for(let i=0;i!==t[n].morphTargets.length;++i){const i=t[n];e.push(i.time),s.push(i.morphTarget===r?1:0)}i.push(new mo(".morphTargetInfluence["+r+"]",e,s))}o=e.length*(s||1)}else{const r=".bones["+e[c].name+"]";n(yo,r+".position",t,"pos",i),n(go,r+".quaternion",t,"rot",i),n(yo,r+".scale",t,"scl",i)}}if(0===i.length)return null;return new this(r,o,i,a)}resetDuration(){let t=0;for(let e=0,n=this.tracks.length;e!==n;++e){const n=this.tracks[e];t=Math.max(t,n.times[n.times.length-1])}return this.duration=t,this}trim(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].trim(0,this.duration);return this}validate(){let t=!0;for(let e=0;e<this.tracks.length;e++)t=t&&this.tracks[e].validate();return t}optimize(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].optimize();return this}clone(){const t=[];for(let e=0;e<this.tracks.length;e++)t.push(this.tracks[e].clone());return new this.constructor(this.name,this.duration,t,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}}function _o(t){if(void 0===t.type)throw new Error("THREE.KeyframeTrack: track type undefined, can not parse");const e=function(t){switch(t.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return mo;case"vector":case"vector2":case"vector3":case"vector4":return yo;case"color":return po;case"quaternion":return go;case"bool":case"boolean":return uo;case"string":return vo}throw new Error("THREE.KeyframeTrack: Unsupported typeName: "+t)}(t.type);if(void 0===t.times){const e=[],n=[];so.flattenJSON(t.keys,e,n,"value"),t.times=e,t.values=n}return void 0!==e.parse?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)}const bo={enabled:!1,files:{},add:function(t,e){!1!==this.enabled&&(this.files[t]=e)},get:function(t){if(!1!==this.enabled)return this.files[t]},remove:function(t){delete this.files[t]},clear:function(){this.files={}}};class Mo{constructor(t,e,n){const i=this;let r,s=!1,a=0,o=0;const l=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=n,this.itemStart=function(t){o++,!1===s&&void 0!==i.onStart&&i.onStart(t,a,o),s=!0},this.itemEnd=function(t){a++,void 0!==i.onProgress&&i.onProgress(t,a,o),a===o&&(s=!1,void 0!==i.onLoad&&i.onLoad())},this.itemError=function(t){void 0!==i.onError&&i.onError(t)},this.resolveURL=function(t){return r?r(t):t},this.setURLModifier=function(t){return r=t,this},this.addHandler=function(t,e){return l.push(t,e),this},this.removeHandler=function(t){const e=l.indexOf(t);return-1!==e&&l.splice(e,2),this},this.getHandler=function(t){for(let e=0,n=l.length;e<n;e+=2){const n=l[e],i=l[e+1];if(n.global&&(n.lastIndex=0),n.test(t))return i}return null}}}const wo=new Mo;class So{constructor(t){this.manager=void 0!==t?t:wo,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(t,e){const n=this;return new Promise((function(i,r){n.load(t,i,e,r)}))}parse(){}setCrossOrigin(t){return this.crossOrigin=t,this}setWithCredentials(t){return this.withCredentials=t,this}setPath(t){return this.path=t,this}setResourcePath(t){return this.resourcePath=t,this}setRequestHeader(t){return this.requestHeader=t,this}}const To={};class Eo extends So{constructor(t){super(t)}load(t,e,n,i){void 0===t&&(t=""),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=bo.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s;if(void 0!==To[t])return void To[t].push({onLoad:e,onProgress:n,onError:i});const a=t.match(/^data:(.*?)(;base64)?,(.*)$/);let o;if(a){const n=a[1],s=!!a[2];let o=a[3];o=decodeURIComponent(o),s&&(o=atob(o));try{let i;const s=(this.responseType||"").toLowerCase();switch(s){case"arraybuffer":case"blob":const t=new Uint8Array(o.length);for(let n=0;n<o.length;n++)t[n]=o.charCodeAt(n);i="blob"===s?new Blob([t.buffer],{type:n}):t.buffer;break;case"document":const e=new DOMParser;i=e.parseFromString(o,n);break;case"json":i=JSON.parse(o);break;default:i=o}setTimeout((function(){e&&e(i),r.manager.itemEnd(t)}),0)}catch(l){setTimeout((function(){i&&i(l),r.manager.itemError(t),r.manager.itemEnd(t)}),0)}}else{To[t]=[],To[t].push({onLoad:e,onProgress:n,onError:i}),o=new XMLHttpRequest,o.open("GET",t,!0),o.addEventListener("load",(function(e){const n=this.response,i=To[t];if(delete To[t],200===this.status||0===this.status){0===this.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),bo.add(t,n);for(let t=0,e=i.length;t<e;t++){const e=i[t];e.onLoad&&e.onLoad(n)}r.manager.itemEnd(t)}else{for(let t=0,n=i.length;t<n;t++){const n=i[t];n.onError&&n.onError(e)}r.manager.itemError(t),r.manager.itemEnd(t)}}),!1),o.addEventListener("progress",(function(e){const n=To[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onProgress&&i.onProgress(e)}}),!1),o.addEventListener("error",(function(e){const n=To[t];delete To[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onError&&i.onError(e)}r.manager.itemError(t),r.manager.itemEnd(t)}),!1),o.addEventListener("abort",(function(e){const n=To[t];delete To[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onError&&i.onError(e)}r.manager.itemError(t),r.manager.itemEnd(t)}),!1),void 0!==this.responseType&&(o.responseType=this.responseType),void 0!==this.withCredentials&&(o.withCredentials=this.withCredentials),o.overrideMimeType&&o.overrideMimeType(void 0!==this.mimeType?this.mimeType:"text/plain");for(const t in this.requestHeader)o.setRequestHeader(t,this.requestHeader[t]);o.send(null)}return r.manager.itemStart(t),o}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class Lo extends So{constructor(t){super(t)}load(t,e,n,i){void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=bo.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s;const a=document.createElementNS("http://www.w3.org/1999/xhtml","img");function o(){a.removeEventListener("load",o,!1),a.removeEventListener("error",l,!1),bo.add(t,this),e&&e(this),r.manager.itemEnd(t)}function l(e){a.removeEventListener("load",o,!1),a.removeEventListener("error",l,!1),i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)}return a.addEventListener("load",o,!1),a.addEventListener("error",l,!1),"data:"!==t.substr(0,5)&&void 0!==this.crossOrigin&&(a.crossOrigin=this.crossOrigin),r.manager.itemStart(t),a.src=t,a}}class Ao extends So{constructor(t){super(t)}load(t,e,n,i){const r=new Tn,s=new Lo(this.manager);s.setCrossOrigin(this.crossOrigin),s.setPath(this.path);let a=0;function o(n){s.load(t[n],(function(t){r.images[n]=t,a++,6===a&&(r.needsUpdate=!0,e&&e(r))}),void 0,i)}for(let l=0;l<t.length;++l)o(l);return r}}class Ro extends So{constructor(t){super(t)}load(t,e,n,i){const r=new st,s=new Lo(this.manager);return s.setCrossOrigin(this.crossOrigin),s.setPath(this.path),s.load(t,(function(n){r.image=n;const i=t.search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/);r.format=i?T:E,r.needsUpdate=!0,void 0!==e&&e(r)}),n,i),r}}class Co extends Qs{constructor(){super(),this.type="CurvePath",this.curves=[],this.autoClose=!1}add(t){this.curves.push(t)}closePath(){const t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);t.equals(e)||this.curves.push(new ua(e,t))}getPoint(t){const e=t*this.getLength(),n=this.getCurveLengths();let i=0;for(;i<n.length;){if(n[i]>=e){const t=n[i]-e,r=this.curves[i],s=r.getLength(),a=0===s?0:1-t/s;return r.getPointAt(a)}i++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n<i;n++)e+=this.curves[n].getLength(),t.push(e);return this.cacheLengths=t,t}getSpacedPoints(t=40){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return this.autoClose&&e.push(e[0]),e}getPoints(t=12){const e=[];let n;for(let i=0,r=this.curves;i<r.length;i++){const s=r[i],a=s&&s.isEllipseCurve?2*t:s&&(s.isLineCurve||s.isLineCurve3)?1:s&&s.isSplineCurve?t*s.points.length:t,o=s.getPoints(a);for(let t=0;t<o.length;t++){const i=o[t];n&&n.equals(i)||(e.push(i),n=i)}}return this.autoClose&&e.length>1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push(n.clone())}return this.autoClose=t.autoClose,this}toJSON(){const t=super.toJSON();t.autoClose=this.autoClose,t.curves=[];for(let e=0,n=this.curves.length;e<n;e++){const n=this.curves[e];t.curves.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.autoClose=t.autoClose,this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push((new fa[n.type]).fromJSON(n))}return this}}class Po extends Co{constructor(t){super(),this.type="Path",this.currentPoint=new tt,t&&this.setFromPoints(t)}setFromPoints(t){this.moveTo(t[0].x,t[0].y);for(let e=1,n=t.length;e<n;e++)this.lineTo(t[e].x,t[e].y);return this}moveTo(t,e){return this.currentPoint.set(t,e),this}lineTo(t,e){const n=new ua(this.currentPoint.clone(),new tt(t,e));return this.curves.push(n),this.currentPoint.set(t,e),this}quadraticCurveTo(t,e,n,i){const r=new da(this.currentPoint.clone(),new tt(t,e),new tt(n,i));return this.curves.push(r),this.currentPoint.set(n,i),this}bezierCurveTo(t,e,n,i,r,s){const a=new ca(this.currentPoint.clone(),new tt(t,e),new tt(n,i),new tt(r,s));return this.curves.push(a),this.currentPoint.set(r,s),this}splineThru(t){const e=[this.currentPoint.clone()].concat(t),n=new ma(e);return this.curves.push(n),this.currentPoint.copy(t[t.length-1]),this}arc(t,e,n,i,r,s){const a=this.currentPoint.x,o=this.currentPoint.y;return this.absarc(t+a,e+o,n,i,r,s),this}absarc(t,e,n,i,r,s){return this.absellipse(t,e,n,n,i,r,s),this}ellipse(t,e,n,i,r,s,a,o){const l=this.currentPoint.x,c=this.currentPoint.y;return this.absellipse(t+l,e+c,n,i,r,s,a,o),this}absellipse(t,e,n,i,r,s,a,o){const l=new Ks(t,e,n,i,r,s,a,o);if(this.curves.length>0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class Do extends Po{constructor(t){super(t),this.uuid=Y(),this.type="Shape",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,i=this.holes.length;n<i;n++)e[n]=this.holes[n].getPoints(t);return e}extractPoints(t){return{shape:this.getPoints(t),holes:this.getPointsHoles(t)}}copy(t){super.copy(t),this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.uuid=this.uuid,t.holes=[];for(let e=0,n=this.holes.length;e<n;e++){const n=this.holes[e];t.holes.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.uuid=t.uuid,this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push((new Po).fromJSON(n))}return this}}class Io extends pe{constructor(t,e=1){super(),this.type="Light",this.color=new Ie(t),this.intensity=e}dispose(){}copy(t){return super.copy(t),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}Io.prototype.isLight=!0;class No extends Io{constructor(t,e,n){super(t,n),this.type="HemisphereLight",this.position.copy(pe.DefaultUp),this.updateMatrix(),this.groundColor=new Ie(e)}copy(t){return Io.prototype.copy.call(this,t),this.groundColor.copy(t.groundColor),this}}No.prototype.isHemisphereLight=!0;const zo=new Vt,Oo=new ut,Bo=new ut;class Fo{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.mapSize=new tt(512,512),this.map=null,this.mapPass=null,this.matrix=new Vt,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new In,this._frameExtents=new tt(1,1),this._viewportCount=1,this._viewports=[new ot(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;Oo.setFromMatrixPosition(t.matrixWorld),e.position.copy(Oo),Bo.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(Bo),e.updateMatrixWorld(),zo.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(zo),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(e.projectionMatrix),n.multiply(e.matrixWorldInverse)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const t={};return 0!==this.bias&&(t.bias=this.bias),0!==this.normalBias&&(t.normalBias=this.normalBias),1!==this.radius&&(t.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class Uo extends Fo{constructor(){super(new Mn(50,1,.5,500)),this.focus=1}updateMatrices(t){const e=this.camera,n=2*X*t.angle*this.focus,i=this.mapSize.width/this.mapSize.height,r=t.distance||e.far;n===e.fov&&i===e.aspect&&r===e.far||(e.fov=n,e.aspect=i,e.far=r,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}Uo.prototype.isSpotLightShadow=!0;class Ho extends Io{constructor(t,e,n=0,i=Math.PI/3,r=0,s=1){super(t,e),this.type="SpotLight",this.position.copy(pe.DefaultUp),this.updateMatrix(),this.target=new pe,this.distance=n,this.angle=i,this.penumbra=r,this.decay=s,this.shadow=new Uo}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}Ho.prototype.isSpotLight=!0;const Go=new Vt,Vo=new ut,ko=new ut;class Wo extends Fo{constructor(){super(new Mn(90,1,.5,500)),this._frameExtents=new tt(4,2),this._viewportCount=6,this._viewports=[new ot(2,1,1,1),new ot(0,1,1,1),new ot(3,1,1,1),new ot(1,1,1,1),new ot(3,0,1,1),new ot(1,0,1,1)],this._cubeDirections=[new ut(1,0,0),new ut(-1,0,0),new ut(0,0,1),new ut(0,0,-1),new ut(0,1,0),new ut(0,-1,0)],this._cubeUps=[new ut(0,1,0),new ut(0,1,0),new ut(0,1,0),new ut(0,1,0),new ut(0,0,1),new ut(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,i=this.matrix,r=t.distance||n.far;r!==n.far&&(n.far=r,n.updateProjectionMatrix()),Vo.setFromMatrixPosition(t.matrixWorld),n.position.copy(Vo),ko.copy(n.position),ko.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(ko),n.updateMatrixWorld(),i.makeTranslation(-Vo.x,-Vo.y,-Vo.z),Go.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Go)}}Wo.prototype.isPointLightShadow=!0;class jo extends Io{constructor(t,e,n=0,i=1){super(t,e),this.type="PointLight",this.distance=n,this.decay=i,this.shadow=new Wo}get power(){return 4*this.intensity*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}jo.prototype.isPointLight=!0;class qo extends bn{constructor(t=-1,e=1,n=1,i=-1,r=.1,s=2e3){super(),this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=r,this.far=s,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,r,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-t,s=n+t,a=i+e,o=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX,s=r+t*this.view.width,a-=e*this.view.offsetY,o=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,s,a,o,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}qo.prototype.isOrthographicCamera=!0;class Xo extends Fo{constructor(){super(new qo(-5,5,5,-5,.5,500))}}Xo.prototype.isDirectionalLightShadow=!0;class Yo extends Io{constructor(t,e){super(t,e),this.type="DirectionalLight",this.position.copy(pe.DefaultUp),this.updateMatrix(),this.target=new pe,this.shadow=new Xo}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}Yo.prototype.isDirectionalLight=!0;class Jo extends Io{constructor(t,e){super(t,e),this.type="AmbientLight"}}Jo.prototype.isAmbientLight=!0;class Zo extends Io{constructor(t,e,n=10,i=10){super(t,e),this.type="RectAreaLight",this.width=n,this.height=i}copy(t){return super.copy(t),this.width=t.width,this.height=t.height,this}toJSON(t){const e=super.toJSON(t);return e.object.width=this.width,e.object.height=this.height,e}}Zo.prototype.isRectAreaLight=!0;class Qo{constructor(){this.coefficients=[];for(let t=0;t<9;t++)this.coefficients.push(new ut)}set(t){for(let e=0;e<9;e++)this.coefficients[e].copy(t[e]);return this}zero(){for(let t=0;t<9;t++)this.coefficients[t].set(0,0,0);return this}getAt(t,e){const n=t.x,i=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.282095),e.addScaledVector(s[1],.488603*i),e.addScaledVector(s[2],.488603*r),e.addScaledVector(s[3],.488603*n),e.addScaledVector(s[4],n*i*1.092548),e.addScaledVector(s[5],i*r*1.092548),e.addScaledVector(s[6],.315392*(3*r*r-1)),e.addScaledVector(s[7],n*r*1.092548),e.addScaledVector(s[8],.546274*(n*n-i*i)),e}getIrradianceAt(t,e){const n=t.x,i=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.886227),e.addScaledVector(s[1],1.023328*i),e.addScaledVector(s[2],1.023328*r),e.addScaledVector(s[3],1.023328*n),e.addScaledVector(s[4],.858086*n*i),e.addScaledVector(s[5],.858086*i*r),e.addScaledVector(s[6],.743125*r*r-.247708),e.addScaledVector(s[7],.858086*n*r),e.addScaledVector(s[8],.429043*(n*n-i*i)),e}add(t){for(let e=0;e<9;e++)this.coefficients[e].add(t.coefficients[e]);return this}addScaledSH(t,e){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(t.coefficients[n],e);return this}scale(t){for(let e=0;e<9;e++)this.coefficients[e].multiplyScalar(t);return this}lerp(t,e){for(let n=0;n<9;n++)this.coefficients[n].lerp(t.coefficients[n],e);return this}equals(t){for(let e=0;e<9;e++)if(!this.coefficients[e].equals(t.coefficients[e]))return!1;return!0}copy(t){return this.set(t.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(t,e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].fromArray(t,e+3*i);return this}toArray(t=[],e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].toArray(t,e+3*i);return t}static getBasisAt(t,e){const n=t.x,i=t.y,r=t.z;e[0]=.282095,e[1]=.488603*i,e[2]=.488603*r,e[3]=.488603*n,e[4]=1.092548*n*i,e[5]=1.092548*i*r,e[6]=.315392*(3*r*r-1),e[7]=1.092548*n*r,e[8]=.546274*(n*n-i*i)}}Qo.prototype.isSphericalHarmonics3=!0;class Ko extends Io{constructor(t=new Qo,e=1){super(void 0,e),this.sh=t}copy(t){return super.copy(t),this.sh.copy(t.sh),this}fromJSON(t){return this.intensity=t.intensity,this.sh.fromArray(t.sh),this}toJSON(t){const e=super.toJSON(t);return e.object.sh=this.sh.toArray(),e}}Ko.prototype.isLightProbe=!0;class $o{static decodeText(t){if("undefined"!==typeof TextDecoder)return(new TextDecoder).decode(t);let e="";for(let i=0,r=t.length;i<r;i++)e+=String.fromCharCode(t[i]);try{return decodeURIComponent(escape(e))}catch(n){return e}}static extractUrlBase(t){const e=t.lastIndexOf("/");return-1===e?"./":t.substr(0,e+1)}}class tl extends Je{constructor(){super(),this.type="InstancedBufferGeometry",this.instanceCount=1/0}copy(t){return super.copy(t),this.instanceCount=t.instanceCount,this}clone(){return(new this.constructor).copy(this)}toJSON(){const t=super.toJSON(this);return t.instanceCount=this.instanceCount,t.isInstancedBufferGeometry=!0,t}}tl.prototype.isInstancedBufferGeometry=!0;class el extends Be{constructor(t,e,n,i=1){"number"===typeof n&&(i=n,n=!1,console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.")),super(t,e,n),this.meshPerAttribute=i}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}toJSON(){const t=super.toJSON();return t.meshPerAttribute=this.meshPerAttribute,t.isInstancedBufferAttribute=!0,t}}el.prototype.isInstancedBufferAttribute=!0;(class extends So{constructor(t){super(t),"undefined"===typeof createImageBitmap&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),"undefined"===typeof fetch&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(t){return this.options=t,this}load(t,e,n,i){void 0===t&&(t=""),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=bo.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s;const a={};a.credentials="anonymous"===this.crossOrigin?"same-origin":"include",a.headers=this.requestHeader,fetch(t,a).then((function(t){return t.blob()})).then((function(t){return createImageBitmap(t,Object.assign(r.options,{colorSpaceConversion:"none"}))})).then((function(n){bo.add(t,n),e&&e(n),r.manager.itemEnd(t)})).catch((function(e){i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)})),r.manager.itemStart(t)}}).prototype.isImageBitmapLoader=!0;class nl{constructor(){this.type="ShapePath",this.color=new Ie,this.subPaths=[],this.currentPath=null}moveTo(t,e){return this.currentPath=new Po,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath.lineTo(t,e),this}quadraticCurveTo(t,e,n,i){return this.currentPath.quadraticCurveTo(t,e,n,i),this}bezierCurveTo(t,e,n,i,r,s){return this.currentPath.bezierCurveTo(t,e,n,i,r,s),this}splineThru(t){return this.currentPath.splineThru(t),this}toShapes(t,e){function n(t){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n],r=new Do;r.curves=i.curves,e.push(r)}return e}function i(t,e){const n=e.length;let i=!1;for(let r=n-1,s=0;s<n;r=s++){let n=e[r],a=e[s],o=a.x-n.x,l=a.y-n.y;if(Math.abs(l)>Number.EPSILON){if(l<0&&(n=e[s],o=-o,a=e[r],l=-l),t.y<n.y||t.y>a.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=l*(t.x-n.x)-o*(t.y-n.y);if(0===e)return!0;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return!0}}return i}const r=Ga.isClockWise,s=this.subPaths;if(0===s.length)return[];if(!0===e)return n(s);let a,o,l;const c=[];if(1===s.length)return o=s[0],l=new Do,l.curves=o.curves,c.push(l),c;let h=!r(s[0].getPoints());h=t?!h:h;const u=[],d=[];let p,m,f=[],g=0;d[g]=void 0,f[g]=[];for(let v=0,y=s.length;v<y;v++)o=s[v],p=o.getPoints(),a=r(p),a=t?!a:a,a?(!h&&d[g]&&g++,d[g]={s:new Do,p:p},d[g].s.curves=o.curves,h&&g++,f[g]=[]):f[g].push({h:o,p:p[0]});if(!d[0])return n(s);if(d.length>1){let t=!1;const e=[];for(let n=0,i=d.length;n<i;n++)u[n]=[];for(let n=0,r=d.length;n<r;n++){const r=f[n];for(let s=0;s<r.length;s++){const a=r[s];let o=!0;for(let r=0;r<d.length;r++)i(a.p,d[r].p)&&(n!==r&&e.push({froms:n,tos:r,hole:s}),o?(o=!1,u[r].push(a)):t=!0);o&&u[n].push(a)}}e.length>0&&(t||(f=u))}for(let v=0,y=d.length;v<y;v++){l=d[v].s,c.push(l),m=f[v];for(let t=0,e=m.length;t<e;t++)l.holes.push(m[t].h)}return c}}class il{constructor(t){this.type="Font",this.data=t}generateShapes(t,e=100){const n=[],i=function(t,e,n){const i=Array.from(t),r=e/n.resolution,s=(n.boundingBox.yMax-n.boundingBox.yMin+n.underlineThickness)*r,a=[];let o=0,l=0;for(let c=0;c<i.length;c++){const t=i[c];if("\n"===t)o=0,l-=s;else{const e=rl(t,r,o,l,n);o+=e.offsetX,a.push(e.path)}}return a}(t,e,this.data);for(let r=0,s=i.length;r<s;r++)Array.prototype.push.apply(n,i[r].toShapes());return n}}function rl(t,e,n,i,r){const s=r.glyphs[t]||r.glyphs["?"];if(!s)return void console.error('THREE.Font: character "'+t+'" does not exists in font family '+r.familyName+".");const a=new nl;let o,l,c,h,u,d,p,m;if(s.o){const t=s._cachedOutline||(s._cachedOutline=s.o.split(" "));for(let r=0,s=t.length;r<s;){switch(t[r++]){case"m":o=t[r++]*e+n,l=t[r++]*e+i,a.moveTo(o,l);break;case"l":o=t[r++]*e+n,l=t[r++]*e+i,a.lineTo(o,l);break;case"q":c=t[r++]*e+n,h=t[r++]*e+i,u=t[r++]*e+n,d=t[r++]*e+i,a.quadraticCurveTo(u,d,c,h);break;case"b":c=t[r++]*e+n,h=t[r++]*e+i,u=t[r++]*e+n,d=t[r++]*e+i,p=t[r++]*e+n,m=t[r++]*e+i,a.bezierCurveTo(u,d,p,m,c,h)}}}return{offsetX:s.ha*e,path:a}}il.prototype.isFont=!0;let sl;const al=function(){return void 0===sl&&(sl=new(window.AudioContext||window.webkitAudioContext)),sl};class ol extends So{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new Eo(this.manager);s.setResponseType("arraybuffer"),s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(t,(function(n){try{const t=n.slice(0);al().decodeAudioData(t,(function(t){e(t)}))}catch(s){i?i(s):console.error(s),r.manager.itemError(t)}}),n,i)}}(class extends Ko{constructor(t,e,n=1){super(void 0,n);const i=(new Ie).set(t),r=(new Ie).set(e),s=new ut(i.r,i.g,i.b),a=new ut(r.r,r.g,r.b),o=Math.sqrt(Math.PI),l=o*Math.sqrt(.75);this.sh.coefficients[0].copy(s).add(a).multiplyScalar(o),this.sh.coefficients[1].copy(s).sub(a).multiplyScalar(l)}}).prototype.isHemisphereLightProbe=!0;(class extends Ko{constructor(t,e=1){super(void 0,e);const n=(new Ie).set(t);this.sh.coefficients[0].set(n.r,n.g,n.b).multiplyScalar(2*Math.sqrt(Math.PI))}}).prototype.isAmbientLightProbe=!0;class ll{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=cl(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=cl();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function cl(){return("undefined"===typeof performance?Date:performance).now()}class hl extends pe{constructor(t){super(),this.type="Audio",this.listener=t,this.context=t.context,this.gain=this.context.createGain(),this.gain.connect(t.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(t){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=t,this.connect(),this}setMediaElementSource(t){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(t),this.connect(),this}setMediaStreamSource(t){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(t),this.connect(),this}setBuffer(t){return this.buffer=t,this.sourceType="buffer",this.autoplay&&this.play(),this}play(t=0){if(!0===this.isPlaying)return void console.warn("THREE.Audio: Audio is already playing.");if(!1===this.hasPlaybackControl)return void console.warn("THREE.Audio: this Audio has no playback control.");this._startedAt=this.context.currentTime+t;const e=this.context.createBufferSource();return e.buffer=this.buffer,e.loop=this.loop,e.loopStart=this.loopStart,e.loopEnd=this.loopEnd,e.onended=this.onEnded.bind(this),e.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=e,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(!1!==this.hasPlaybackControl)return!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this;console.warn("THREE.Audio: this Audio has no playback control.")}stop(){if(!1!==this.hasPlaybackControl)return this._progress=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this;console.warn("THREE.Audio: this Audio has no playback control.")}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].connect(this.filters[t]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this._connected=!0,this}disconnect(){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].disconnect(this.filters[t]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this._connected=!1,this}getFilters(){return this.filters}setFilters(t){return t||(t=[]),!0===this._connected?(this.disconnect(),this.filters=t.slice(),this.connect()):this.filters=t.slice(),this}setDetune(t){if(this.detune=t,void 0!==this.source.detune)return!0===this.isPlaying&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(t){return this.setFilters(t?[t]:[])}setPlaybackRate(t){if(!1!==this.hasPlaybackControl)return this.playbackRate=t,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this;console.warn("THREE.Audio: this Audio has no playback control.")}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=!1}getLoop(){return!1===this.hasPlaybackControl?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop}setLoop(t){if(!1!==this.hasPlaybackControl)return this.loop=t,!0===this.isPlaying&&(this.source.loop=this.loop),this;console.warn("THREE.Audio: this Audio has no playback control.")}setLoopStart(t){return this.loopStart=t,this}setLoopEnd(t){return this.loopEnd=t,this}getVolume(){return this.gain.gain.value}setVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}}class ul{constructor(t,e,n){let i,r,s;switch(this.binding=t,this.valueSize=n,e){case"quaternion":i=this._slerp,r=this._slerpAdditive,s=this._setAdditiveIdentityQuaternion,this.buffer=new Float64Array(6*n),this._workIndex=5;break;case"string":case"bool":i=this._select,r=this._select,s=this._setAdditiveIdentityOther,this.buffer=new Array(5*n);break;default:i=this._lerp,r=this._lerpAdditive,s=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(5*n)}this._mixBufferRegion=i,this._mixBufferRegionAdditive=r,this._setIdentity=s,this._origIndex=3,this._addIndex=4,this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,this.useCount=0,this.referenceCount=0}accumulate(t,e){const n=this.buffer,i=this.valueSize,r=t*i+i;let s=this.cumulativeWeight;if(0===s){for(let t=0;t!==i;++t)n[r+t]=n[t];s=e}else{s+=e;const t=e/s;this._mixBufferRegion(n,r,0,t,i)}this.cumulativeWeight=s}accumulateAdditive(t){const e=this.buffer,n=this.valueSize,i=n*this._addIndex;0===this.cumulativeWeightAdditive&&this._setIdentity(),this._mixBufferRegionAdditive(e,i,0,t,n),this.cumulativeWeightAdditive+=t}apply(t){const e=this.valueSize,n=this.buffer,i=t*e+e,r=this.cumulativeWeight,s=this.cumulativeWeightAdditive,a=this.binding;if(this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,r<1){const t=e*this._origIndex;this._mixBufferRegion(n,i,t,1-r,e)}s>0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let o=e,l=e+e;o!==l;++o)if(n[o]!==n[o+e]){a.setValue(n,i);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let r=n,s=i;r!==s;++r)e[r]=e[i+r%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n<e;n++)this.buffer[n]=0}_setAdditiveIdentityQuaternion(){this._setAdditiveIdentityNumeric(),this.buffer[this._addIndex*this.valueSize+3]=1}_setAdditiveIdentityOther(){const t=this._origIndex*this.valueSize,e=this._addIndex*this.valueSize;for(let n=0;n<this.valueSize;n++)this.buffer[e+n]=this.buffer[t+n]}_select(t,e,n,i,r){if(i>=.5)for(let s=0;s!==r;++s)t[e+s]=t[n+s]}_slerp(t,e,n,i){ht.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,r){const s=this._workIndex*r;ht.multiplyQuaternionsFlat(t,s,t,e,t,n),ht.slerpFlat(t,e,t,e,t,s,i)}_lerp(t,e,n,i,r){const s=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*s+t[n+a]*i}}_lerpAdditive(t,e,n,i,r){for(let s=0;s!==r;++s){const r=e+s;t[r]=t[r]+t[n+s]*i}}}const dl="\\[\\]\\.:\\/",pl=new RegExp("[\\[\\]\\.:\\/]","g"),ml="[^\\[\\]\\.:\\/]",fl="[^"+dl.replace("\\.","")+"]",gl=/((?:WC+[\/:])*)/.source.replace("WC",ml),vl=/(WCOD+)?/.source.replace("WCOD",fl),yl=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",ml),xl=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",ml),_l=new RegExp("^"+gl+vl+yl+xl+"$"),bl=["material","materials","bones"];class Ml{constructor(t,e,n){this.path=e,this.parsedPath=n||Ml.parseTrackName(e),this.node=Ml.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new Ml.Composite(t,e,n):new Ml(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(pl,"")}static parseTrackName(t){const e=_l.exec(t);if(!e)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==bl.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(!e||""===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i<t.length;i++){const r=t[i];if(r.name===e||r.uuid===e)return r;const s=n(r.children);if(s)return s}return null},i=n(t.children);if(i)return i}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(t,e){t[e]=this.node[this.propertyName]}_getValue_array(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)t[e++]=n[i]}_getValue_arrayElement(t,e){t[e]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(t,e){this.resolvedProperty.toArray(t,e)}_setValue_direct(t,e){this.targetObject[this.propertyName]=t[e]}_setValue_direct_setNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++]}_setValue_array_setNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(t,e){this.resolvedProperty[this.propertyIndex]=t[e]}_setValue_arrayElement_setNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(t,e){this.resolvedProperty.fromArray(t,e)}_setValue_fromArray_setNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(t,e){this.bind(),this.getValue(t,e)}_setValue_unbound(t,e){this.bind(),this.setValue(t,e)}bind(){let t=this.node;const e=this.parsedPath,n=e.objectName,i=e.propertyName;let r=e.propertyIndex;if(t||(t=Ml.findNode(this.rootNode,e.nodeName)||this.rootNode,this.node=t),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!t)return void console.error("THREE.PropertyBinding: Trying to update node for track: "+this.path+" but it wasn't found.");if(n){let i=e.objectIndex;switch(n){case"materials":if(!t.material)return void console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);if(!t.material.materials)return void console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);t=t.material.materials;break;case"bones":if(!t.skeleton)return void console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);t=t.skeleton.bones;for(let e=0;e<t.length;e++)if(t[e].name===i){i=e;break}break;default:if(void 0===t[n])return void console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);t=t[n]}if(void 0!==i){if(void 0===t[i])return void console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,t);t=t[i]}}const s=t[i];if(void 0===s){const n=e.nodeName;return void console.error("THREE.PropertyBinding: Trying to update property for track: "+n+"."+i+" but it wasn't found.",t)}let a=this.Versioning.None;this.targetObject=t,void 0!==t.needsUpdate?a=this.Versioning.NeedsUpdate:void 0!==t.matrixWorldNeedsUpdate&&(a=this.Versioning.MatrixWorldNeedsUpdate);let o=this.BindingType.Direct;if(void 0!==r){if("morphTargetInfluences"===i){if(!t.geometry)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);if(!t.geometry.isBufferGeometry)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.",this);if(!t.geometry.morphAttributes)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);void 0!==t.morphTargetDictionary[r]&&(r=t.morphTargetDictionary[r])}o=this.BindingType.ArrayElement,this.resolvedProperty=s,this.propertyIndex=r}else void 0!==s.fromArray&&void 0!==s.toArray?(o=this.BindingType.HasFromToArray,this.resolvedProperty=s):Array.isArray(s)?(o=this.BindingType.EntireArray,this.resolvedProperty=s):this.propertyName=i;this.getValue=this.GetterByBindingType[o],this.setValue=this.SetterByBindingTypeAndVersioning[o][a]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}Ml.Composite=class{constructor(t,e,n){const i=n||Ml.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,i)}getValue(t,e){this.bind();const n=this._targetGroup.nCachedObjects_,i=this._bindings[n];void 0!==i&&i.getValue(t,e)}setValue(t,e){const n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,r=n.length;i!==r;++i)n[i].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}},Ml.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},Ml.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},Ml.prototype.GetterByBindingType=[Ml.prototype._getValue_direct,Ml.prototype._getValue_array,Ml.prototype._getValue_arrayElement,Ml.prototype._getValue_toArray],Ml.prototype.SetterByBindingTypeAndVersioning=[[Ml.prototype._setValue_direct,Ml.prototype._setValue_direct_setNeedsUpdate,Ml.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[Ml.prototype._setValue_array,Ml.prototype._setValue_array_setNeedsUpdate,Ml.prototype._setValue_array_setMatrixWorldNeedsUpdate],[Ml.prototype._setValue_arrayElement,Ml.prototype._setValue_arrayElement_setNeedsUpdate,Ml.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[Ml.prototype._setValue_fromArray,Ml.prototype._setValue_fromArray_setNeedsUpdate,Ml.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];(class{constructor(){this.uuid=Y(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;const t={};this._indicesByUUID=t;for(let n=0,i=arguments.length;n!==i;++n)t[arguments[n].uuid]=n;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};const e=this;this.stats={objects:{get total(){return e._objects.length},get inUse(){return this.total-e.nCachedObjects_}},get bindingsPerObject(){return e._bindings.length}}}add(){const t=this._objects,e=this._indicesByUUID,n=this._paths,i=this._parsedPaths,r=this._bindings,s=r.length;let a,o=t.length,l=this.nCachedObjects_;for(let c=0,h=arguments.length;c!==h;++c){const h=arguments[c],u=h.uuid;let d=e[u];if(void 0===d){d=o++,e[u]=d,t.push(h);for(let t=0,e=s;t!==e;++t)r[t].push(new Ml(h,n[t],i[t]))}else if(d<l){a=t[d];const o=--l,c=t[o];e[c.uuid]=d,t[d]=c,e[u]=o,t[o]=h;for(let t=0,e=s;t!==e;++t){const e=r[t],s=e[o];let a=e[d];e[d]=s,void 0===a&&(a=new Ml(h,n[t],i[t])),e[o]=a}}else t[d]!==a&&console.error("THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.")}this.nCachedObjects_=l}remove(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_;for(let s=0,a=arguments.length;s!==a;++s){const a=arguments[s],o=a.uuid,l=e[o];if(void 0!==l&&l>=r){const s=r++,c=t[s];e[c.uuid]=l,t[l]=c,e[o]=s,t[s]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[s],r=e[l];e[l]=i,e[s]=r}}}this.nCachedObjects_=r}uncache(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,s=t.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=e[o];if(void 0!==l)if(delete e[o],l<r){const a=--r,o=t[a],c=--s,h=t[c];e[o.uuid]=l,t[l]=o,e[h.uuid]=a,t[a]=h,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[a],r=e[c];e[l]=i,e[a]=r,e.pop()}}else{const r=--s,a=t[r];r>0&&(e[a.uuid]=l),t[l]=a,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[l]=e[r],e.pop()}}}this.nCachedObjects_=r}subscribe_(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(void 0!==i)return r[i];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);i=r.length,n[t]=i,s.push(t),a.push(e),r.push(h);for(let u=c,d=o.length;u!==d;++u){const n=o[u];h[u]=new Ml(n,t,e)}return h}unsubscribe_(t){const e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){const i=this._paths,r=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];e[t[a]]=n,s[n]=o,s.pop(),r[n]=r[a],r.pop(),i[n]=i[a],i.pop()}}}).prototype.isAnimationObjectGroup=!0;class wl{constructor(t,e,n=null,i=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=n,this.blendMode=i;const r=e.tracks,s=r.length,a=new Array(s),o={endingStart:D,endingEnd:D};for(let l=0;l!==s;++l){const t=r[l].createInterpolant(null);a[l]=t,t.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){const n=this._clip.duration,i=t._clip.duration,r=i/n,s=n/i;t.warp(1,r,e),this.warp(s,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const i=this._mixer,r=i.time,s=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=i._lendControlInterpolant(),this._timeScaleInterpolant=a);const o=a.parameterPositions,l=a.sampleValues;return o[0]=r,o[1]=r+n,l[0]=t/s,l[1]=e/s,this}stopWarping(){const t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,i){if(!this.enabled)return void this._updateWeight(t);const r=this._startTime;if(null!==r){const i=(t-r)*n;if(i<0||0===n)return;this._startTime=null,e=n*i}e*=this._updateTimeScale(t);const s=this._updateTime(e),a=this._updateWeight(t);if(a>0){const t=this._interpolants,e=this._propertyBindings;switch(this.blendMode){case 2501:for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(s),e[n].accumulateAdditive(a);break;case z:default:for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(s),e[n].accumulate(i,a)}}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,r=this._loopCount;const s=2202===n;if(0===t)return-1===r?i:s&&1===(1&r)?e-i:i;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,r+=Math.abs(n);const a=this.repetitions-r;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,s)}else this._setEndings(!1,!1,s);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(s&&1===(1&r))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=I,i.endingEnd=I):(i.endingStart=t?this.zeroSlopeAtStart?I:D:N,i.endingEnd=e?this.zeroSlopeAtEnd?I:D:N)}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let s=this._weightInterpolant;null===s&&(s=i._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=r,o[0]=e,a[1]=r+t,o[1]=n,this}}(class extends W{constructor(t){super(),this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(t,e){const n=t._localRoot||this._root,i=t._clip.tracks,r=i.length,s=t._propertyBindings,a=t._interpolants,o=n.uuid,l=this._bindingsByRootAndName;let c=l[o];void 0===c&&(c={},l[o]=c);for(let h=0;h!==r;++h){const t=i[h],r=t.name;let l=c[r];if(void 0!==l)s[h]=l;else{if(l=s[h],void 0!==l){null===l._cacheIndex&&(++l.referenceCount,this._addInactiveBinding(l,o,r));continue}const i=e&&e._propertyBindings[h].binding.parsedPath;l=new ul(Ml.create(n,r,i),t.ValueTypeName,t.getValueSize()),++l.referenceCount,this._addInactiveBinding(l,o,r),s[h]=l}a[h].resultBuffer=l.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,i=this._actionsByClip[n];this._bindAction(t,i&&i.knownActions[0]),this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0===n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0===--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return null!==e&&e<this._nActiveActions}_addInactiveAction(t,e,n){const i=this._actions,r=this._actionsByClip;let s=r[e];if(void 0===s)s={knownActions:[t],actionByRoot:{}},t._byClipCacheIndex=0,r[e]=s;else{const e=s.knownActions;t._byClipCacheIndex=e.length,e.push(t)}t._cacheIndex=i.length,i.push(t),s.actionByRoot[n]=t}_removeInactiveAction(t){const e=this._actions,n=e[e.length-1],i=t._cacheIndex;n._cacheIndex=i,e[i]=n,e.pop(),t._cacheIndex=null;const r=t._clip.uuid,s=this._actionsByClip,a=s[r],o=a.knownActions,l=o[o.length-1],c=t._byClipCacheIndex;l._byClipCacheIndex=c,o[c]=l,o.pop(),t._byClipCacheIndex=null;delete a.actionByRoot[(t._localRoot||this._root).uuid],0===o.length&&delete s[r],this._removeInactiveBindingsForAction(t)}_removeInactiveBindingsForAction(t){const e=t._propertyBindings;for(let n=0,i=e.length;n!==i;++n){const t=e[n];0===--t.referenceCount&&this._removeInactiveBinding(t)}}_lendAction(t){const e=this._actions,n=t._cacheIndex,i=this._nActiveActions++,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_takeBackAction(t){const e=this._actions,n=t._cacheIndex,i=--this._nActiveActions,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_addInactiveBinding(t,e,n){const i=this._bindingsByRootAndName,r=this._bindings;let s=i[e];void 0===s&&(s={},i[e]=s),s[n]=t,t._cacheIndex=r.length,r.push(t)}_removeInactiveBinding(t){const e=this._bindings,n=t.binding,i=n.rootNode.uuid,r=n.path,s=this._bindingsByRootAndName,a=s[i],o=e[e.length-1],l=t._cacheIndex;o._cacheIndex=l,e[l]=o,e.pop(),delete a[r],0===Object.keys(a).length&&delete s[i]}_lendBinding(t){const e=this._bindings,n=t._cacheIndex,i=this._nActiveBindings++,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_takeBackBinding(t){const e=this._bindings,n=t._cacheIndex,i=--this._nActiveBindings,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_lendControlInterpolant(){const t=this._controlInterpolants,e=this._nActiveControlInterpolants++;let n=t[e];return void 0===n&&(n=new lo(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),n.__cacheIndex=e,t[e]=n),n}_takeBackControlInterpolant(t){const e=this._controlInterpolants,n=t.__cacheIndex,i=--this._nActiveControlInterpolants,r=e[i];t.__cacheIndex=i,e[i]=t,r.__cacheIndex=n,e[n]=r}clipAction(t,e,n){const i=e||this._root,r=i.uuid;let s="string"===typeof t?xo.findByName(i,t):t;const a=null!==s?s.uuid:t,o=this._actionsByClip[a];let l=null;if(void 0===n&&(n=null!==s?s.blendMode:z),void 0!==o){const t=o.actionByRoot[r];if(void 0!==t&&t.blendMode===n)return t;l=o.knownActions[0],null===s&&(s=l._clip)}if(null===s)return null;const c=new wl(this,s,e,n);return this._bindAction(c,l),this._addInactiveAction(c,a,r),c}existingAction(t,e){const n=e||this._root,i=n.uuid,r="string"===typeof t?xo.findByName(n,t):t,s=r?r.uuid:t,a=this._actionsByClip[s];return void 0!==a&&a.actionByRoot[i]||null}stopAllAction(){const t=this._actions;for(let e=this._nActiveActions-1;e>=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1;for(let l=0;l!==n;++l){e[l]._update(i,t,r,s)}const a=this._bindings,o=this._nActiveBindings;for(let l=0;l!==o;++l)a[l].apply(s);return this}setTime(t){this.time=0;for(let e=0;e<this._actions.length;e++)this._actions[e].time=0;return this.update(t)}getRoot(){return this._root}uncacheClip(t){const e=this._actions,n=t.uuid,i=this._actionsByClip,r=i[n];if(void 0!==r){const t=r.knownActions;for(let n=0,i=t.length;n!==i;++n){const i=t[n];this._deactivateAction(i);const r=i._cacheIndex,s=e[e.length-1];i._cacheIndex=null,i._byClipCacheIndex=null,s._cacheIndex=r,e[r]=s,e.pop(),this._removeInactiveBindingsForAction(i)}delete i[n]}}uncacheRoot(t){const e=t.uuid,n=this._actionsByClip;for(const r in n){const t=n[r].actionByRoot[e];void 0!==t&&(this._deactivateAction(t),this._removeInactiveAction(t))}const i=this._bindingsByRootAndName[e];if(void 0!==i)for(const r in i){const t=i[r];t.restoreOriginalState(),this._removeInactiveBinding(t)}}uncacheAction(t,e){const n=this.existingAction(t,e);null!==n&&(this._deactivateAction(n),this._removeInactiveAction(n))}}).prototype._controlInterpolantsResultBuffer=new Float32Array(1);class Sl{constructor(t){"string"===typeof t&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),t=arguments[1]),this.value=t}clone(){return new Sl(void 0===this.value.clone?this.value:this.value.clone())}}(class extends Kr{constructor(t,e,n=1){super(t,e),this.meshPerAttribute=n}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}clone(t){const e=super.clone(t);return e.meshPerAttribute=this.meshPerAttribute,e}toJSON(t){const e=super.toJSON(t);return e.isInstancedInterleavedBuffer=!0,e.meshPerAttribute=this.meshPerAttribute,e}}).prototype.isInstancedInterleavedBuffer=!0;(class{constructor(t,e,n,i,r){this.buffer=t,this.type=e,this.itemSize=n,this.elementSize=i,this.count=r,this.version=0}set needsUpdate(t){!0===t&&this.version++}setBuffer(t){return this.buffer=t,this}setType(t,e){return this.type=t,this.elementSize=e,this}setItemSize(t){return this.itemSize=t,this}setCount(t){return this.count=t,this}}).prototype.isGLBufferAttribute=!0;class Tl{constructor(t,e,n=0,i=1/0){this.ray=new Gt(t,e),this.near=n,this.far=i,this.camera=null,this.layers=new $t,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(t,e){this.ray.set(t,e)}setFromCamera(t,e){e&&e.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(e.matrixWorld),this.ray.direction.set(t.x,t.y,.5).unproject(e).sub(this.ray.origin).normalize(),this.camera=e):e&&e.isOrthographicCamera?(this.ray.origin.set(t.x,t.y,(e.near+e.far)/(e.near-e.far)).unproject(e),this.ray.direction.set(0,0,-1).transformDirection(e.matrixWorld),this.camera=e):console.error("THREE.Raycaster: Unsupported camera type: "+e.type)}intersectObject(t,e=!1,n=[]){return Ll(t,this,n,e),n.sort(El),n}intersectObjects(t,e=!1,n=[]){for(let i=0,r=t.length;i<r;i++)Ll(t[i],this,n,e);return n.sort(El),n}}function El(t,e){return t.distance-e.distance}function Ll(t,e,n,i){if(t.layers.test(e.layers)&&t.raycast(e,n),!0===i){const i=t.children;for(let t=0,r=i.length;t<r;t++)Ll(i[t],e,n,!0)}}class Al{constructor(t=1,e=0,n=0){return this.radius=t,this.phi=e,this.theta=n,this}set(t,e,n){return this.radius=t,this.phi=e,this.theta=n,this}copy(t){return this.radius=t.radius,this.phi=t.phi,this.theta=t.theta,this}makeSafe(){const t=1e-6;return this.phi=Math.max(t,Math.min(Math.PI-t,this.phi)),this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,n){return this.radius=Math.sqrt(t*t+e*e+n*n),0===this.radius?(this.theta=0,this.phi=0):(this.theta=Math.atan2(t,n),this.phi=Math.acos(J(e/this.radius,-1,1))),this}clone(){return(new this.constructor).copy(this)}}const Rl=new tt;class Cl{constructor(t=new tt(1/0,1/0),e=new tt(-1/0,-1/0)){this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=Rl.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=1/0,this.max.x=this.max.y=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y}getCenter(t){return this.isEmpty()?t.set(0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return Rl.copy(t).clamp(this.min,this.max).sub(t).length()}intersect(t){return this.min.max(t.min),this.max.min(t.max),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}Cl.prototype.isBox2=!0;const Pl=new ut,Dl=new ut;(class extends pe{constructor(t){super(),this.material=t,this.render=function(){},this.hasPositions=!1,this.hasNormals=!1,this.hasColors=!1,this.hasUvs=!1,this.positionArray=null,this.normalArray=null,this.colorArray=null,this.uvArray=null,this.count=0}}).prototype.isImmediateRenderObject=!0;const Il=new ut,Nl=new Vt,zl=new Vt;function Ol(t){const e=[];t&&t.isBone&&e.push(t);for(let n=0;n<t.children.length;n++)e.push.apply(e,Ol(t.children[n]));return e}const Bl=new Float32Array(1);new Int32Array(Bl.buffer);Math.pow(2,8);const Fl=[.125,.215,.35,.446,.526,.582],Ul=5+Fl.length,Hl=new Ne({side:s,depthWrite:!1,depthTest:!1}),{_lodPlanes:Gl,_sizeLods:Vl,_sigmas:kl}=(new mn(new gn,Hl),Wl());Math.sqrt(5);function Wl(){const t=[],e=[],n=[];let i=8;for(let r=0;r<Ul;r++){const s=Math.pow(2,i);e.push(s);let a=1/s;r>4?a=Fl[r-8+4-1]:0==r&&(a=0),n.push(a);const o=1/(s-1),l=-o/2,c=1+o/2,h=[l,l,c,l,c,c,l,l,c,c,l,c],u=6,d=6,p=3,m=2,f=1,g=new Float32Array(p*d*u),v=new Float32Array(m*d*u),y=new Float32Array(f*d*u);for(let t=0;t<u;t++){const e=t%3*2/3-1,n=t>2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];g.set(i,p*d*t),v.set(h,m*d*t);const r=[t,t,t,t,t,t];y.set(r,f*d*t)}const x=new Je;x.setAttribute("position",new Be(g,p)),x.setAttribute("uv",new Be(v,m)),x.setAttribute("faceIndex",new Be(y,f)),t.push(x),i>4&&i--}return{_lodPlanes:t,_sizeLods:e,_sigmas:n}}Qs.create=function(t,e){return console.log("THREE.Curve.create() has been deprecated"),t.prototype=Object.create(Qs.prototype),t.prototype.constructor=t,t.prototype.getPoint=e,t},Po.prototype.fromPoints=function(t){return console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints()."),this.setFromPoints(t)},class extends Us{constructor(t=10,e=10,n=4473924,i=8947848){n=new Ie(n),i=new Ie(i);const r=e/2,s=t/e,a=t/2,o=[],l=[];for(let h=0,u=0,d=-a;h<=e;h++,d+=s){o.push(-a,0,d,a,0,d),o.push(d,0,-a,d,0,a);const t=h===r?n:i;t.toArray(l,u),u+=3,t.toArray(l,u),u+=3,t.toArray(l,u),u+=3,t.toArray(l,u),u+=3}const c=new Je;c.setAttribute("position",new He(o,3)),c.setAttribute("color",new He(l,3));super(c,new Cs({vertexColors:!0,toneMapped:!1})),this.type="GridHelper"}}.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")},class extends Us{constructor(t){const e=Ol(t),n=new Je,i=[],r=[],s=new Ie(0,0,1),a=new Ie(0,1,0);for(let o=0;o<e.length;o++){const t=e[o];t.parent&&t.parent.isBone&&(i.push(0,0,0),i.push(0,0,0),r.push(s.r,s.g,s.b),r.push(a.r,a.g,a.b))}n.setAttribute("position",new He(i,3)),n.setAttribute("color",new He(r,3));super(n,new Cs({vertexColors:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,transparent:!0})),this.type="SkeletonHelper",this.isSkeletonHelper=!0,this.root=t,this.bones=e,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1}updateMatrixWorld(t){const e=this.bones,n=this.geometry,i=n.getAttribute("position");zl.copy(this.root.matrixWorld).invert();for(let r=0,s=0;r<e.length;r++){const t=e[r];t.parent&&t.parent.isBone&&(Nl.multiplyMatrices(zl,t.matrixWorld),Il.setFromMatrixPosition(Nl),i.setXYZ(s,Il.x,Il.y,Il.z),Nl.multiplyMatrices(zl,t.parent.matrixWorld),Il.setFromMatrixPosition(Nl),i.setXYZ(s+1,Il.x,Il.y,Il.z),s+=2)}n.getAttribute("position").needsUpdate=!0,super.updateMatrixWorld(t)}}.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")},So.prototype.extractUrlBase=function(t){return console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead."),$o.extractUrlBase(t)},So.Handlers={add:function(){console.error("THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.")},get:function(){console.error("THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.")}},Cl.prototype.center=function(t){return console.warn("THREE.Box2: .center() has been renamed to .getCenter()."),this.getCenter(t)},Cl.prototype.empty=function(){return console.warn("THREE.Box2: .empty() has been renamed to .isEmpty()."),this.isEmpty()},Cl.prototype.isIntersectionBox=function(t){return console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},Cl.prototype.size=function(t){return console.warn("THREE.Box2: .size() has been renamed to .getSize()."),this.getSize(t)},mt.prototype.center=function(t){return console.warn("THREE.Box3: .center() has been renamed to .getCenter()."),this.getCenter(t)},mt.prototype.empty=function(){return console.warn("THREE.Box3: .empty() has been renamed to .isEmpty()."),this.isEmpty()},mt.prototype.isIntersectionBox=function(t){return console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},mt.prototype.isIntersectionSphere=function(t){return console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(t)},mt.prototype.size=function(t){return console.warn("THREE.Box3: .size() has been renamed to .getSize()."),this.getSize(t)},It.prototype.empty=function(){return console.warn("THREE.Sphere: .empty() has been renamed to .isEmpty()."),this.isEmpty()},In.prototype.setFromMatrix=function(t){return console.warn("THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix()."),this.setFromProjectionMatrix(t)},class{constructor(t=new ut,e=new ut){this.start=t,this.end=e}set(t,e){return this.start.copy(t),this.end.copy(e),this}copy(t){return this.start.copy(t.start),this.end.copy(t.end),this}getCenter(t){return t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){Pl.subVectors(t,this.start),Dl.subVectors(this.end,this.start);const n=Dl.dot(Dl);let i=Dl.dot(Pl)/n;return e&&(i=J(i,0,1)),i}closestPointToPoint(t,e,n){const i=this.closestPointToPointParameter(t,e);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}.prototype.center=function(t){return console.warn("THREE.Line3: .center() has been renamed to .getCenter()."),this.getCenter(t)},et.prototype.flattenToArrayOffset=function(t,e){return console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(t,e)},et.prototype.multiplyVector3=function(t){return console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead."),t.applyMatrix3(this)},et.prototype.multiplyVector3Array=function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},et.prototype.applyToBufferAttribute=function(t){return console.warn("THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead."),t.applyMatrix3(this)},et.prototype.applyToVector3Array=function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")},et.prototype.getInverse=function(t){return console.warn("THREE.Matrix3: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead."),this.copy(t).invert()},Vt.prototype.extractPosition=function(t){return console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition()."),this.copyPosition(t)},Vt.prototype.flattenToArrayOffset=function(t,e){return console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(t,e)},Vt.prototype.getPosition=function(){return console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead."),(new ut).setFromMatrixColumn(this,3)},Vt.prototype.setRotationFromQuaternion=function(t){return console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion()."),this.makeRotationFromQuaternion(t)},Vt.prototype.multiplyToArray=function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},Vt.prototype.multiplyVector3=function(t){return console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},Vt.prototype.multiplyVector4=function(t){return console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},Vt.prototype.multiplyVector3Array=function(){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},Vt.prototype.rotateAxis=function(t){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead."),t.transformDirection(this)},Vt.prototype.crossVector=function(t){return console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},Vt.prototype.translate=function(){console.error("THREE.Matrix4: .translate() has been removed.")},Vt.prototype.rotateX=function(){console.error("THREE.Matrix4: .rotateX() has been removed.")},Vt.prototype.rotateY=function(){console.error("THREE.Matrix4: .rotateY() has been removed.")},Vt.prototype.rotateZ=function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")},Vt.prototype.rotateByAxis=function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")},Vt.prototype.applyToBufferAttribute=function(t){return console.warn("THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},Vt.prototype.applyToVector3Array=function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")},Vt.prototype.makeFrustum=function(t,e,n,i,r,s){return console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead."),this.makePerspective(t,e,i,n,r,s)},Vt.prototype.getInverse=function(t){return console.warn("THREE.Matrix4: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead."),this.copy(t).invert()},Cn.prototype.isIntersectionLine=function(t){return console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine()."),this.intersectsLine(t)},ht.prototype.multiplyVector3=function(t){return console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead."),t.applyQuaternion(this)},ht.prototype.inverse=function(){return console.warn("THREE.Quaternion: .inverse() has been renamed to invert()."),this.invert()},Gt.prototype.isIntersectionBox=function(t){return console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},Gt.prototype.isIntersectionPlane=function(t){return console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane()."),this.intersectsPlane(t)},Gt.prototype.isIntersectionSphere=function(t){return console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(t)},Se.prototype.area=function(){return console.warn("THREE.Triangle: .area() has been renamed to .getArea()."),this.getArea()},Se.prototype.barycoordFromPoint=function(t,e){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),this.getBarycoord(t,e)},Se.prototype.midpoint=function(t){return console.warn("THREE.Triangle: .midpoint() has been renamed to .getMidpoint()."),this.getMidpoint(t)},Se.prototypenormal=function(t){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),this.getNormal(t)},Se.prototype.plane=function(t){return console.warn("THREE.Triangle: .plane() has been renamed to .getPlane()."),this.getPlane(t)},Se.barycoordFromPoint=function(t,e,n,i,r){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),Se.getBarycoord(t,e,n,i,r)},Se.normal=function(t,e,n,i){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),Se.getNormal(t,e,n,i)},Do.prototype.extractAllPoints=function(t){return console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead."),this.extractPoints(t)},Do.prototype.extrude=function(t){return console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead."),new Wa(this,t)},Do.prototype.makeGeometry=function(t){return console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead."),new qa(this,t)},tt.prototype.fromAttribute=function(t,e,n){return console.warn("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,n)},tt.prototype.distanceToManhattan=function(t){return console.warn("THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(t)},tt.prototype.lengthManhattan=function(){return console.warn("THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()},ut.prototype.setEulerFromRotationMatrix=function(){console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")},ut.prototype.setEulerFromQuaternion=function(){console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},ut.prototype.getPositionFromMatrix=function(t){return console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition()."),this.setFromMatrixPosition(t)},ut.prototype.getScaleFromMatrix=function(t){return console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale()."),this.setFromMatrixScale(t)},ut.prototype.getColumnFromMatrix=function(t,e){return console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn()."),this.setFromMatrixColumn(e,t)},ut.prototype.applyProjection=function(t){return console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead."),this.applyMatrix4(t)},ut.prototype.fromAttribute=function(t,e,n){return console.warn("THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,n)},ut.prototype.distanceToManhattan=function(t){return console.warn("THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(t)},ut.prototype.lengthManhattan=function(){return console.warn("THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()},ot.prototype.fromAttribute=function(t,e,n){return console.warn("THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,n)},ot.prototype.lengthManhattan=function(){return console.warn("THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()},pe.prototype.getChildByName=function(t){return console.warn("THREE.Object3D: .getChildByName() has been renamed to .getObjectByName()."),this.getObjectByName(t)},pe.prototype.renderDepth=function(){console.warn("THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.")},pe.prototype.translate=function(t,e){return console.warn("THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead."),this.translateOnAxis(e,t)},pe.prototype.getWorldRotation=function(){console.error("THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.")},pe.prototype.applyMatrix=function(t){return console.warn("THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)},Object.defineProperties(pe.prototype,{eulerOrder:{get:function(){return console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order},set:function(t){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order=t}},useQuaternion:{get:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")},set:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")}}}),mn.prototype.setDrawMode=function(){console.error("THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.")},Object.defineProperties(mn.prototype,{drawMode:{get:function(){return console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode."),0},set:function(){console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.")}}}),Ms.prototype.initBones=function(){console.error("THREE.SkinnedMesh: initBones() has been removed.")},Mn.prototype.setLens=function(t,e){console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup."),void 0!==e&&(this.filmGauge=e),this.setFocalLength(t)},Object.defineProperties(Io.prototype,{onlyShadow:{set:function(){console.warn("THREE.Light: .onlyShadow has been removed.")}},shadowCameraFov:{set:function(t){console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov."),this.shadow.camera.fov=t}},shadowCameraLeft:{set:function(t){console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left."),this.shadow.camera.left=t}},shadowCameraRight:{set:function(t){console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right."),this.shadow.camera.right=t}},shadowCameraTop:{set:function(t){console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top."),this.shadow.camera.top=t}},shadowCameraBottom:{set:function(t){console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom."),this.shadow.camera.bottom=t}},shadowCameraNear:{set:function(t){console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near."),this.shadow.camera.near=t}},shadowCameraFar:{set:function(t){console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far."),this.shadow.camera.far=t}},shadowCameraVisible:{set:function(){console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.")}},shadowBias:{set:function(t){console.warn("THREE.Light: .shadowBias is now .shadow.bias."),this.shadow.bias=t}},shadowDarkness:{set:function(){console.warn("THREE.Light: .shadowDarkness has been removed.")}},shadowMapWidth:{set:function(t){console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width."),this.shadow.mapSize.width=t}},shadowMapHeight:{set:function(t){console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height."),this.shadow.mapSize.height=t}}}),Object.defineProperties(Be.prototype,{length:{get:function(){return console.warn("THREE.BufferAttribute: .length has been deprecated. Use .count instead."),this.array.length}},dynamic:{get:function(){return console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."),this.usage===V},set:function(){console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."),this.setUsage(V)}}}),Be.prototype.setDynamic=function(t){return console.warn("THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(!0===t?V:G),this},Be.prototype.copyIndicesArray=function(){console.error("THREE.BufferAttribute: .copyIndicesArray() has been removed.")},Be.prototype.setArray=function(){console.error("THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")},Je.prototype.addIndex=function(t){console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex()."),this.setIndex(t)},Je.prototype.addAttribute=function(t,e){return console.warn("THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute()."),e&&e.isBufferAttribute||e&&e.isInterleavedBufferAttribute?"index"===t?(console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(e),this):this.setAttribute(t,e):(console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.setAttribute(t,new Be(arguments[1],arguments[2])))},Je.prototype.addDrawCall=function(t,e,n){void 0!==n&&console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset."),console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup()."),this.addGroup(t,e)},Je.prototype.clearDrawCalls=function(){console.warn("THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups()."),this.clearGroups()},Je.prototype.computeOffsets=function(){console.warn("THREE.BufferGeometry: .computeOffsets() has been removed.")},Je.prototype.removeAttribute=function(t){return console.warn("THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute()."),this.deleteAttribute(t)},Je.prototype.applyMatrix=function(t){return console.warn("THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)},Object.defineProperties(Je.prototype,{drawcalls:{get:function(){return console.error("THREE.BufferGeometry: .drawcalls has been renamed to .groups."),this.groups}},offsets:{get:function(){return console.warn("THREE.BufferGeometry: .offsets has been renamed to .groups."),this.groups}}}),Kr.prototype.setDynamic=function(t){return console.warn("THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(!0===t?V:G),this},Kr.prototype.setArray=function(){console.error("THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")},Wa.prototype.getArrays=function(){console.error("THREE.ExtrudeGeometry: .getArrays() has been removed.")},Wa.prototype.addShapeList=function(){console.error("THREE.ExtrudeGeometry: .addShapeList() has been removed.")},Wa.prototype.addShape=function(){console.error("THREE.ExtrudeGeometry: .addShape() has been removed.")},Qr.prototype.dispose=function(){console.error("THREE.Scene: .dispose() has been removed.")},Sl.prototype.onUpdate=function(){return console.warn("THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead."),this},Object.defineProperties(Ee.prototype,{wrapAround:{get:function(){console.warn("THREE.Material: .wrapAround has been removed.")},set:function(){console.warn("THREE.Material: .wrapAround has been removed.")}},overdraw:{get:function(){console.warn("THREE.Material: .overdraw has been removed.")},set:function(){console.warn("THREE.Material: .overdraw has been removed.")}},wrapRGB:{get:function(){return console.warn("THREE.Material: .wrapRGB has been removed."),new Ie}},shading:{get:function(){console.error("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead.")},set:function(t){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===t}},stencilMask:{get:function(){return console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask},set:function(t){console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask=t}}}),Object.defineProperties(_n.prototype,{derivatives:{get:function(){return console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives},set:function(t){console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives=t}}}),Yr.prototype.clearTarget=function(t,e,n,i){console.warn("THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead."),this.setRenderTarget(t),this.clear(e,n,i)},Yr.prototype.animate=function(t){console.warn("THREE.WebGLRenderer: .animate() is now .setAnimationLoop()."),this.setAnimationLoop(t)},Yr.prototype.getCurrentRenderTarget=function(){return console.warn("THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget()."),this.getRenderTarget()},Yr.prototype.getMaxAnisotropy=function(){return console.warn("THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy()."),this.capabilities.getMaxAnisotropy()},Yr.prototype.getPrecision=function(){return console.warn("THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision."),this.capabilities.precision},Yr.prototype.resetGLState=function(){return console.warn("THREE.WebGLRenderer: .resetGLState() is now .state.reset()."),this.state.reset()},Yr.prototype.supportsFloatTextures=function(){return console.warn("THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' )."),this.extensions.get("OES_texture_float")},Yr.prototype.supportsHalfFloatTextures=function(){return console.warn("THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' )."),this.extensions.get("OES_texture_half_float")},Yr.prototype.supportsStandardDerivatives=function(){return console.warn("THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' )."),this.extensions.get("OES_standard_derivatives")},Yr.prototype.supportsCompressedTextureS3TC=function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' )."),this.extensions.get("WEBGL_compressed_texture_s3tc")},Yr.prototype.supportsCompressedTexturePVRTC=function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' )."),this.extensions.get("WEBGL_compressed_texture_pvrtc")},Yr.prototype.supportsBlendMinMax=function(){return console.warn("THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' )."),this.extensions.get("EXT_blend_minmax")},Yr.prototype.supportsVertexTextures=function(){return console.warn("THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures."),this.capabilities.vertexTextures},Yr.prototype.supportsInstancedArrays=function(){return console.warn("THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' )."),this.extensions.get("ANGLE_instanced_arrays")},Yr.prototype.enableScissorTest=function(t){console.warn("THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest()."),this.setScissorTest(t)},Yr.prototype.initMaterial=function(){console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")},Yr.prototype.addPrePlugin=function(){console.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.")},Yr.prototype.addPostPlugin=function(){console.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.")},Yr.prototype.updateShadowMap=function(){console.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.")},Yr.prototype.setFaceCulling=function(){console.warn("THREE.WebGLRenderer: .setFaceCulling() has been removed.")},Yr.prototype.allocTextureUnit=function(){console.warn("THREE.WebGLRenderer: .allocTextureUnit() has been removed.")},Yr.prototype.setTexture=function(){console.warn("THREE.WebGLRenderer: .setTexture() has been removed.")},Yr.prototype.setTexture2D=function(){console.warn("THREE.WebGLRenderer: .setTexture2D() has been removed.")},Yr.prototype.setTextureCube=function(){console.warn("THREE.WebGLRenderer: .setTextureCube() has been removed.")},Yr.prototype.getActiveMipMapLevel=function(){return console.warn("THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel()."),this.getActiveMipmapLevel()},Object.defineProperties(Yr.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(t){console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled."),this.shadowMap.enabled=t}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(t){console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type."),this.shadowMap.type=t}},shadowMapCullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")}},context:{get:function(){return console.warn("THREE.WebGLRenderer: .context has been removed. Use .getContext() instead."),this.getContext()}},vr:{get:function(){return console.warn("THREE.WebGLRenderer: .vr has been renamed to .xr"),this.xr}},gammaInput:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead."),!1},set:function(){console.warn("THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.")}},gammaOutput:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."),!1},set:function(t){console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."),this.outputEncoding=!0===t?B:O}},toneMappingWhitePoint:{get:function(){return console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed."),1},set:function(){console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.")}}}),Object.defineProperties(Fr.prototype,{cullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")}},renderReverseSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")}},renderSingleSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")}}}),Object.defineProperties(lt.prototype,{wrapS:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS},set:function(t){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS=t}},wrapT:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT},set:function(t){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT=t}},magFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter},set:function(t){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter=t}},minFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter},set:function(t){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter=t}},anisotropy:{get:function(){return console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy},set:function(t){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy=t}},offset:{get:function(){return console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset},set:function(t){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset=t}},repeat:{get:function(){return console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat},set:function(t){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat=t}},format:{get:function(){return console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format},set:function(t){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format=t}},type:{get:function(){return console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type},set:function(t){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type=t}},generateMipmaps:{get:function(){return console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps},set:function(t){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps=t}}}),hl.prototype.load=function(t){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");const e=this;return(new ol).load(t,(function(t){e.setBuffer(t)})),this},class{constructor(t,e=2048){this.analyser=t.context.createAnalyser(),this.analyser.fftSize=e,this.data=new Uint8Array(this.analyser.frequencyBinCount),t.getOutput().connect(this.analyser)}getFrequencyData(){return this.analyser.getByteFrequencyData(this.data),this.data}getAverageFrequency(){let t=0;const e=this.getFrequencyData();for(let n=0;n<e.length;n++)t+=e[n];return t/e.length}}.prototype.getData=function(){return console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData()."),this.getFrequencyData()},Sn.prototype.updateCubeMap=function(t,e){return console.warn("THREE.CubeCamera: .updateCubeMap() is now .update()."),this.update(t,e)},Sn.prototype.clear=function(t,e,n,i){return console.warn("THREE.CubeCamera: .clear() is now .renderTarget.clear()."),this.renderTarget.clear(t,e,n,i)},it.crossOrigin=void 0,it.loadTexture=function(t,e,n,i){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");const r=new Ro;r.setCrossOrigin(this.crossOrigin);const s=r.load(t,n,void 0,i);return e&&(s.mapping=e),s},it.loadTextureCube=function(t,e,n,i){console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");const r=new Ao;r.setCrossOrigin(this.crossOrigin);const s=r.load(t,n,void 0,i);return e&&(s.mapping=e),s},it.loadCompressedTexture=function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")},it.loadCompressedTextureCube=function(){console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.")};"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:"130"}})),"undefined"!==typeof window&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__="130")}}]); \ No newline at end of file
diff --git a/build/static/chunks/framework-0441fae7fd130f37dee1.js b/build/static/chunks/framework-0441fae7fd130f37dee1.js
new file mode 100644
index 0000000..496916b
--- /dev/null
+++ b/build/static/chunks/framework-0441fae7fd130f37dee1.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[774],{2703:function(e,t,n){"use strict";var r=n(414);function l(){}function a(){}a.resetWarningCache=l,e.exports=function(){function e(e,t,n,l,a,o){if(o!==r){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:l};return n.PropTypes=n,n}},5697:function(e,t,n){e.exports=n(2703)()},414:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:function(e,t,n){"use strict";var r=n(7294),l=n(6086),a=n(3840);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(o(227));var u=new Set,i={};function s(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(i[e]=t,e=0;e<t.length;e++)u.add(t[e])}var f=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement),d=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p=Object.prototype.hasOwnProperty,h={},m={};function v(e,t,n,r,l,a,o){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=o}var y={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){y[e]=new v(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];y[t]=new v(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){y[e]=new v(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){y[e]=new v(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){y[e]=new v(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){y[e]=new v(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){y[e]=new v(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){y[e]=new v(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){y[e]=new v(e,5,!1,e.toLowerCase(),null,!1,!1)}));var g=/[\-:]([a-z])/g;function b(e){return e[1].toUpperCase()}function w(e,t,n,r){var l=y.hasOwnProperty(t)?y[t]:null;(null!==l?0===l.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null===t||"undefined"===typeof t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,l,r)&&(n=null),r||null===l?function(e){return!!p.call(m,e)||!p.call(h,e)&&(d.test(e)?m[e]=!0:(h[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):l.mustUseProperty?e[l.propertyName]=null===n?3!==l.type&&"":n:(t=l.attributeName,r=l.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(l=l.type)||4===l&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(g,b);y[t]=new v(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(g,b);y[t]=new v(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(g,b);y[t]=new v(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){y[e]=new v(e,1,!1,e.toLowerCase(),null,!1,!1)})),y.xlinkHref=new v("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){y[e]=new v(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,E=60103,S=60106,_=60107,x=60108,C=60114,P=60109,N=60110,T=60112,L=60113,z=60120,O=60115,R=60116,M=60121,I=60128,D=60129,F=60130,U=60131;if("function"===typeof Symbol&&Symbol.for){var A=Symbol.for;E=A("react.element"),S=A("react.portal"),_=A("react.fragment"),x=A("react.strict_mode"),C=A("react.profiler"),P=A("react.provider"),N=A("react.context"),T=A("react.forward_ref"),L=A("react.suspense"),z=A("react.suspense_list"),O=A("react.memo"),R=A("react.lazy"),M=A("react.block"),A("react.scope"),I=A("react.opaque.id"),D=A("react.debug_trace_mode"),F=A("react.offscreen"),U=A("react.legacy_hidden")}var V,j="function"===typeof Symbol&&Symbol.iterator;function B(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=j&&e[j]||e["@@iterator"])?e:null}function W(e){if(void 0===V)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);V=t&&t[1]||""}return"\n"+V+e}var $=!1;function H(e,t){if(!e||$)return"";$=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"===typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(i){var r=i}Reflect.construct(e,[],t)}else{try{t.call()}catch(i){r=i}e.call(t.prototype)}else{try{throw Error()}catch(i){r=i}e()}}catch(i){if(i&&r&&"string"===typeof i.stack){for(var l=i.stack.split("\n"),a=r.stack.split("\n"),o=l.length-1,u=a.length-1;1<=o&&0<=u&&l[o]!==a[u];)u--;for(;1<=o&&0<=u;o--,u--)if(l[o]!==a[u]){if(1!==o||1!==u)do{if(o--,0>--u||l[o]!==a[u])return"\n"+l[o].replace(" at new "," at ")}while(1<=o&&0<=u);break}}}finally{$=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?W(e):""}function Q(e){switch(e.tag){case 5:return W(e.type);case 16:return W("Lazy");case 13:return W("Suspense");case 19:return W("SuspenseList");case 0:case 2:case 15:return e=H(e.type,!1);case 11:return e=H(e.type.render,!1);case 22:return e=H(e.type._render,!1);case 1:return e=H(e.type,!0);default:return""}}function q(e){if(null==e)return null;if("function"===typeof e)return e.displayName||e.name||null;if("string"===typeof e)return e;switch(e){case _:return"Fragment";case S:return"Portal";case C:return"Profiler";case x:return"StrictMode";case L:return"Suspense";case z:return"SuspenseList"}if("object"===typeof e)switch(e.$$typeof){case N:return(e.displayName||"Context")+".Consumer";case P:return(e._context.displayName||"Context")+".Provider";case T:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case O:return q(e.type);case M:return q(e._render);case R:t=e._payload,e=e._init;try{return q(e(t))}catch(n){}}return null}function K(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Y(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function X(e){e._valueTracker||(e._valueTracker=function(e){var t=Y(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&"undefined"!==typeof n&&"function"===typeof n.get&&"function"===typeof n.set){var l=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function G(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Y(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Z(e){if("undefined"===typeof(e=e||("undefined"!==typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return l({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=K(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=K(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?le(e,t.type,n):t.hasOwnProperty("defaultValue")&&le(e,t.type,K(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function le(e,t,n){"number"===t&&Z(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function ae(e,t){return e=l({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function oe(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l<n.length;l++)t["$"+n[l]]=!0;for(n=0;n<e.length;n++)l=t.hasOwnProperty("$"+e[n].value),e[n].selected!==l&&(e[n].selected=l),l&&r&&(e[n].defaultSelected=!0)}else{for(n=""+K(n),t=null,l=0;l<e.length;l++){if(e[l].value===n)return e[l].selected=!0,void(r&&(e[l].defaultSelected=!0));null!==t||e[l].disabled||(t=e[l])}null!==t&&(t.selected=!0)}}function ue(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(o(91));return l({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ie(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(o(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(o(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:K(n)}}function se(e,t){var n=K(t.value),r=K(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var fe="http://www.w3.org/1999/xhtml",de="http://www.w3.org/2000/svg";function pe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function he(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?pe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var me,ve,ye=(ve=function(e,t){if(e.namespaceURI!==de||"innerHTML"in e)e.innerHTML=t;else{for((me=me||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=me.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ve(e,t)}))}:ve);function ge(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var be={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},we=["Webkit","ms","Moz","O"];function ke(e,t,n){return null==t||"boolean"===typeof t||""===t?"":n||"number"!==typeof t||0===t||be.hasOwnProperty(e)&&be[e]?(""+t).trim():t+"px"}function Ee(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),l=ke(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}Object.keys(be).forEach((function(e){we.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),be[t]=be[e]}))}));var Se=l({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function _e(e,t){if(t){if(Se[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(o(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(o(60));if("object"!==typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(o(61))}if(null!=t.style&&"object"!==typeof t.style)throw Error(o(62))}}function xe(e,t){if(-1===e.indexOf("-"))return"string"===typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Ce(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Pe=null,Ne=null,Te=null;function Le(e){if(e=el(e)){if("function"!==typeof Pe)throw Error(o(280));var t=e.stateNode;t&&(t=nl(t),Pe(e.stateNode,e.type,t))}}function ze(e){Ne?Te?Te.push(e):Te=[e]:Ne=e}function Oe(){if(Ne){var e=Ne,t=Te;if(Te=Ne=null,Le(e),t)for(e=0;e<t.length;e++)Le(t[e])}}function Re(e,t){return e(t)}function Me(e,t,n,r,l){return e(t,n,r,l)}function Ie(){}var De=Re,Fe=!1,Ue=!1;function Ae(){null===Ne&&null===Te||(Ie(),Oe())}function Ve(e,t){var n=e.stateNode;if(null===n)return null;var r=nl(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!==typeof n)throw Error(o(231,t,typeof n));return n}var je=!1;if(f)try{var Be={};Object.defineProperty(Be,"passive",{get:function(){je=!0}}),window.addEventListener("test",Be,Be),window.removeEventListener("test",Be,Be)}catch(ve){je=!1}function We(e,t,n,r,l,a,o,u,i){var s=Array.prototype.slice.call(arguments,3);try{t.apply(n,s)}catch(c){this.onError(c)}}var $e=!1,He=null,Qe=!1,qe=null,Ke={onError:function(e){$e=!0,He=e}};function Ye(e,t,n,r,l,a,o,u,i){$e=!1,He=null,We.apply(Ke,arguments)}function Xe(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!==(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ge(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Ze(e){if(Xe(e)!==e)throw Error(o(188))}function Je(e){if(!(e=function(e){var t=e.alternate;if(!t){if(null===(t=Xe(e)))throw Error(o(188));return t!==e?null:e}for(var n=e,r=t;;){var l=n.return;if(null===l)break;var a=l.alternate;if(null===a){if(null!==(r=l.return)){n=r;continue}break}if(l.child===a.child){for(a=l.child;a;){if(a===n)return Ze(l),e;if(a===r)return Ze(l),t;a=a.sibling}throw Error(o(188))}if(n.return!==r.return)n=l,r=a;else{for(var u=!1,i=l.child;i;){if(i===n){u=!0,n=l,r=a;break}if(i===r){u=!0,r=l,n=a;break}i=i.sibling}if(!u){for(i=a.child;i;){if(i===n){u=!0,n=a,r=l;break}if(i===r){u=!0,r=a,n=l;break}i=i.sibling}if(!u)throw Error(o(189))}}if(n.alternate!==r)throw Error(o(190))}if(3!==n.tag)throw Error(o(188));return n.stateNode.current===n?e:t}(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function et(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var tt,nt,rt,lt,at=!1,ot=[],ut=null,it=null,st=null,ct=new Map,ft=new Map,dt=[],pt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function ht(e,t,n,r,l){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:l,targetContainers:[r]}}function mt(e,t){switch(e){case"focusin":case"focusout":ut=null;break;case"dragenter":case"dragleave":it=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":ct.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ft.delete(t.pointerId)}}function vt(e,t,n,r,l,a){return null===e||e.nativeEvent!==a?(e=ht(t,n,r,l,a),null!==t&&(null!==(t=el(t))&&nt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==l&&-1===t.indexOf(l)&&t.push(l),e)}function yt(e){var t=Jr(e.target);if(null!==t){var n=Xe(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ge(n)))return e.blockedOn=t,void lt(e.lanePriority,(function(){a.unstable_runWithPriority(e.priority,(function(){rt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function gt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=el(n))&&nt(t),e.blockedOn=n,!1;t.shift()}return!0}function bt(e,t,n){gt(e)&&n.delete(t)}function wt(){for(at=!1;0<ot.length;){var e=ot[0];if(null!==e.blockedOn){null!==(e=el(e.blockedOn))&&tt(e);break}for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&ot.shift()}null!==ut&&gt(ut)&&(ut=null),null!==it&&gt(it)&&(it=null),null!==st&&gt(st)&&(st=null),ct.forEach(bt),ft.forEach(bt)}function kt(e,t){e.blockedOn===t&&(e.blockedOn=null,at||(at=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,wt)))}function Et(e){function t(t){return kt(t,e)}if(0<ot.length){kt(ot[0],e);for(var n=1;n<ot.length;n++){var r=ot[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==ut&&kt(ut,e),null!==it&&kt(it,e),null!==st&&kt(st,e),ct.forEach(t),ft.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)yt(n),null===n.blockedOn&&dt.shift()}function St(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var _t={animationend:St("Animation","AnimationEnd"),animationiteration:St("Animation","AnimationIteration"),animationstart:St("Animation","AnimationStart"),transitionend:St("Transition","TransitionEnd")},xt={},Ct={};function Pt(e){if(xt[e])return xt[e];if(!_t[e])return e;var t,n=_t[e];for(t in n)if(n.hasOwnProperty(t)&&t in Ct)return xt[e]=n[t];return e}f&&(Ct=document.createElement("div").style,"AnimationEvent"in window||(delete _t.animationend.animation,delete _t.animationiteration.animation,delete _t.animationstart.animation),"TransitionEvent"in window||delete _t.transitionend.transition);var Nt=Pt("animationend"),Tt=Pt("animationiteration"),Lt=Pt("animationstart"),zt=Pt("transitionend"),Ot=new Map,Rt=new Map,Mt=["abort","abort",Nt,"animationEnd",Tt,"animationIteration",Lt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",zt,"transitionEnd","waiting","waiting"];function It(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],l=e[n+1];l="on"+(l[0].toUpperCase()+l.slice(1)),Rt.set(r,t),Ot.set(r,l),s(l,[r])}}(0,a.unstable_now)();var Dt=8;function Ft(e){if(0!==(1&e))return Dt=15,1;if(0!==(2&e))return Dt=14,2;if(0!==(4&e))return Dt=13,4;var t=24&e;return 0!==t?(Dt=12,t):0!==(32&e)?(Dt=11,32):0!==(t=192&e)?(Dt=10,t):0!==(256&e)?(Dt=9,256):0!==(t=3584&e)?(Dt=8,t):0!==(4096&e)?(Dt=7,4096):0!==(t=4186112&e)?(Dt=6,t):0!==(t=62914560&e)?(Dt=5,t):67108864&e?(Dt=4,67108864):0!==(134217728&e)?(Dt=3,134217728):0!==(t=805306368&e)?(Dt=2,t):0!==(1073741824&e)?(Dt=1,1073741824):(Dt=8,e)}function Ut(e,t){var n=e.pendingLanes;if(0===n)return Dt=0;var r=0,l=0,a=e.expiredLanes,o=e.suspendedLanes,u=e.pingedLanes;if(0!==a)r=a,l=Dt=15;else if(0!==(a=134217727&n)){var i=a&~o;0!==i?(r=Ft(i),l=Dt):0!==(u&=a)&&(r=Ft(u),l=Dt)}else 0!==(a=n&~o)?(r=Ft(a),l=Dt):0!==u&&(r=Ft(u),l=Dt);if(0===r)return 0;if(r=n&((0>(r=31-$t(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0===(t&o)){if(Ft(t),l<=Dt)return t;Dt=l}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)l=1<<(n=31-$t(t)),r|=e[n],t&=~l;return r}function At(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function Vt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=jt(24&~t))?Vt(10,t):e;case 10:return 0===(e=jt(192&~t))?Vt(8,t):e;case 8:return 0===(e=jt(3584&~t))&&(0===(e=jt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=jt(805306368&~t))&&(t=268435456),t}throw Error(o(358,e))}function jt(e){return e&-e}function Bt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Wt(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-$t(t)]=n}var $t=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Ht(e)/Qt|0)|0},Ht=Math.log,Qt=Math.LN2;var qt=a.unstable_UserBlockingPriority,Kt=a.unstable_runWithPriority,Yt=!0;function Xt(e,t,n,r){Fe||Ie();var l=Zt,a=Fe;Fe=!0;try{Me(l,e,t,n,r)}finally{(Fe=a)||Ae()}}function Gt(e,t,n,r){Kt(qt,Zt.bind(null,e,t,n,r))}function Zt(e,t,n,r){var l;if(Yt)if((l=0===(4&t))&&0<ot.length&&-1<pt.indexOf(e))e=ht(null,e,t,n,r),ot.push(e);else{var a=Jt(e,t,n,r);if(null===a)l&&mt(e,r);else{if(l){if(-1<pt.indexOf(e))return e=ht(a,e,t,n,r),void ot.push(e);if(function(e,t,n,r,l){switch(t){case"focusin":return ut=vt(ut,e,t,n,r,l),!0;case"dragenter":return it=vt(it,e,t,n,r,l),!0;case"mouseover":return st=vt(st,e,t,n,r,l),!0;case"pointerover":var a=l.pointerId;return ct.set(a,vt(ct.get(a)||null,e,t,n,r,l)),!0;case"gotpointercapture":return a=l.pointerId,ft.set(a,vt(ft.get(a)||null,e,t,n,r,l)),!0}return!1}(a,e,t,n,r))return;mt(e,r)}Or(e,t,r,null,n)}}}function Jt(e,t,n,r){var l=Ce(r);if(null!==(l=Jr(l))){var a=Xe(l);if(null===a)l=null;else{var o=a.tag;if(13===o){if(null!==(l=Ge(a)))return l;l=null}else if(3===o){if(a.stateNode.hydrate)return 3===a.tag?a.stateNode.containerInfo:null;l=null}else a!==l&&(l=null)}}return Or(e,t,r,l,n),null}var en=null,tn=null,nn=null;function rn(){if(nn)return nn;var e,t,n=tn,r=n.length,l="value"in en?en.value:en.textContent,a=l.length;for(e=0;e<r&&n[e]===l[e];e++);var o=r-e;for(t=1;t<=o&&n[r-t]===l[a-t];t++);return nn=l.slice(e,1<t?1-t:void 0)}function ln(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function an(){return!0}function on(){return!1}function un(e){function t(t,n,r,l,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=l,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(l):l[o]);return this.isDefaultPrevented=(null!=l.defaultPrevented?l.defaultPrevented:!1===l.returnValue)?an:on,this.isPropagationStopped=on,this}return l(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=an)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=an)},persist:function(){},isPersistent:an}),t}var sn,cn,fn,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},pn=un(dn),hn=l({},dn,{view:0,detail:0}),mn=un(hn),vn=l({},hn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Pn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==fn&&(fn&&"mousemove"===e.type?(sn=e.screenX-fn.screenX,cn=e.screenY-fn.screenY):cn=sn=0,fn=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:cn}}),yn=un(vn),gn=un(l({},vn,{dataTransfer:0})),bn=un(l({},hn,{relatedTarget:0})),wn=un(l({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),kn=un(l({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}})),En=un(l({},dn,{data:0})),Sn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},_n={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},xn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=xn[e])&&!!t[e]}function Pn(){return Cn}var Nn=un(l({},hn,{key:function(e){if(e.key){var t=Sn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=ln(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?_n[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Pn,charCode:function(e){return"keypress"===e.type?ln(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?ln(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}})),Tn=un(l({},vn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Ln=un(l({},hn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Pn})),zn=un(l({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),On=un(l({},vn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),Rn=[9,13,27,32],Mn=f&&"CompositionEvent"in window,In=null;f&&"documentMode"in document&&(In=document.documentMode);var Dn=f&&"TextEvent"in window&&!In,Fn=f&&(!Mn||In&&8<In&&11>=In),Un=String.fromCharCode(32),An=!1;function Vn(e,t){switch(e){case"keyup":return-1!==Rn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function jn(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var Bn=!1;var Wn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function $n(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Wn[e.type]:"textarea"===t}function Hn(e,t,n,r){ze(r),0<(t=Mr(t,"onChange")).length&&(n=new pn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Qn=null,qn=null;function Kn(e){Cr(e,0)}function Yn(e){if(G(tl(e)))return e}function Xn(e,t){if("change"===e)return t}var Gn=!1;if(f){var Zn;if(f){var Jn="oninput"in document;if(!Jn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jn="function"===typeof er.oninput}Zn=Jn}else Zn=!1;Gn=Zn&&(!document.documentMode||9<document.documentMode)}function tr(){Qn&&(Qn.detachEvent("onpropertychange",nr),qn=Qn=null)}function nr(e){if("value"===e.propertyName&&Yn(qn)){var t=[];if(Hn(t,qn,e,Ce(e)),e=Kn,Fe)e(t);else{Fe=!0;try{Re(e,t)}finally{Fe=!1,Ae()}}}}function rr(e,t,n){"focusin"===e?(tr(),qn=n,(Qn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function lr(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Yn(qn)}function ar(e,t){if("click"===e)return Yn(t)}function or(e,t){if("input"===e||"change"===e)return Yn(t)}var ur="function"===typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e===1/t)||e!==e&&t!==t},ir=Object.prototype.hasOwnProperty;function sr(e,t){if(ur(e,t))return!0;if("object"!==typeof e||null===e||"object"!==typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!ir.call(t,n[r])||!ur(e[n[r]],t[n[r]]))return!1;return!0}function cr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function fr(e,t){var n,r=cr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=cr(r)}}function dr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?dr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function pr(){for(var e=window,t=Z();t instanceof e.HTMLIFrameElement;){try{var n="string"===typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=Z((e=t.contentWindow).document)}return t}function hr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var mr=f&&"documentMode"in document&&11>=document.documentMode,vr=null,yr=null,gr=null,br=!1;function wr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;br||null==vr||vr!==Z(r)||("selectionStart"in(r=vr)&&hr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},gr&&sr(gr,r)||(gr=r,0<(r=Mr(yr,"onSelect")).length&&(t=new pn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=vr)))}It("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),It("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),It(Mt,2);for(var kr="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),Er=0;Er<kr.length;Er++)Rt.set(kr[Er],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),s("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),s("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),s("onBeforeInput",["compositionend","keypress","textInput","paste"]),s("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Sr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),_r=new Set("cancel close invalid load scroll toggle".split(" ").concat(Sr));function xr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,l,a,u,i,s){if(Ye.apply(this,arguments),$e){if(!$e)throw Error(o(198));var c=He;$e=!1,He=null,Qe||(Qe=!0,qe=c)}}(r,t,void 0,e),e.currentTarget=null}function Cr(e,t){t=0!==(4&t);for(var n=0;n<e.length;n++){var r=e[n],l=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var u=r[o],i=u.instance,s=u.currentTarget;if(u=u.listener,i!==a&&l.isPropagationStopped())break e;xr(l,u,s),a=i}else for(o=0;o<r.length;o++){if(i=(u=r[o]).instance,s=u.currentTarget,u=u.listener,i!==a&&l.isPropagationStopped())break e;xr(l,u,s),a=i}}}if(Qe)throw e=qe,Qe=!1,qe=null,e}function Pr(e,t){var n=rl(t),r=e+"__bubble";n.has(r)||(zr(t,e,2,!1),n.add(r))}var Nr="_reactListening"+Math.random().toString(36).slice(2);function Tr(e){e[Nr]||(e[Nr]=!0,u.forEach((function(t){_r.has(t)||Lr(t,!1,e,null),Lr(t,!0,e,null)})))}function Lr(e,t,n,r){var l=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,a=n;if("selectionchange"===e&&9!==n.nodeType&&(a=n.ownerDocument),null!==r&&!t&&_r.has(e)){if("scroll"!==e)return;l|=2,a=r}var o=rl(a),u=e+"__"+(t?"capture":"bubble");o.has(u)||(t&&(l|=4),zr(a,e,l,t),o.add(u))}function zr(e,t,n,r){var l=Rt.get(t);switch(void 0===l?2:l){case 0:l=Xt;break;case 1:l=Gt;break;default:l=Zt}n=l.bind(null,t,n,e),l=void 0,!je||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(l=!0),r?void 0!==l?e.addEventListener(t,n,{capture:!0,passive:l}):e.addEventListener(t,n,!0):void 0!==l?e.addEventListener(t,n,{passive:l}):e.addEventListener(t,n,!1)}function Or(e,t,n,r,l){var a=r;if(0===(1&t)&&0===(2&t)&&null!==r)e:for(;;){if(null===r)return;var o=r.tag;if(3===o||4===o){var u=r.stateNode.containerInfo;if(u===l||8===u.nodeType&&u.parentNode===l)break;if(4===o)for(o=r.return;null!==o;){var i=o.tag;if((3===i||4===i)&&((i=o.stateNode.containerInfo)===l||8===i.nodeType&&i.parentNode===l))return;o=o.return}for(;null!==u;){if(null===(o=Jr(u)))return;if(5===(i=o.tag)||6===i){r=a=o;continue e}u=u.parentNode}}r=r.return}!function(e,t,n){if(Ue)return e(t,n);Ue=!0;try{De(e,t,n)}finally{Ue=!1,Ae()}}((function(){var r=a,l=Ce(n),o=[];e:{var u=Ot.get(e);if(void 0!==u){var i=pn,s=e;switch(e){case"keypress":if(0===ln(n))break e;case"keydown":case"keyup":i=Nn;break;case"focusin":s="focus",i=bn;break;case"focusout":s="blur",i=bn;break;case"beforeblur":case"afterblur":i=bn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":i=yn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":i=gn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":i=Ln;break;case Nt:case Tt:case Lt:i=wn;break;case zt:i=zn;break;case"scroll":i=mn;break;case"wheel":i=On;break;case"copy":case"cut":case"paste":i=kn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":i=Tn}var c=0!==(4&t),f=!c&&"scroll"===e,d=c?null!==u?u+"Capture":null:u;c=[];for(var p,h=r;null!==h;){var m=(p=h).stateNode;if(5===p.tag&&null!==m&&(p=m,null!==d&&(null!=(m=Ve(h,d))&&c.push(Rr(h,m,p)))),f)break;h=h.return}0<c.length&&(u=new i(u,s,null,n,l),o.push({event:u,listeners:c}))}}if(0===(7&t)){if(i="mouseout"===e||"pointerout"===e,(!(u="mouseover"===e||"pointerover"===e)||0!==(16&t)||!(s=n.relatedTarget||n.fromElement)||!Jr(s)&&!s[Gr])&&(i||u)&&(u=l.window===l?l:(u=l.ownerDocument)?u.defaultView||u.parentWindow:window,i?(i=r,null!==(s=(s=n.relatedTarget||n.toElement)?Jr(s):null)&&(s!==(f=Xe(s))||5!==s.tag&&6!==s.tag)&&(s=null)):(i=null,s=r),i!==s)){if(c=yn,m="onMouseLeave",d="onMouseEnter",h="mouse","pointerout"!==e&&"pointerover"!==e||(c=Tn,m="onPointerLeave",d="onPointerEnter",h="pointer"),f=null==i?u:tl(i),p=null==s?u:tl(s),(u=new c(m,h+"leave",i,n,l)).target=f,u.relatedTarget=p,m=null,Jr(l)===r&&((c=new c(d,h+"enter",s,n,l)).target=p,c.relatedTarget=f,m=c),f=m,i&&s)e:{for(d=s,h=0,p=c=i;p;p=Ir(p))h++;for(p=0,m=d;m;m=Ir(m))p++;for(;0<h-p;)c=Ir(c),h--;for(;0<p-h;)d=Ir(d),p--;for(;h--;){if(c===d||null!==d&&c===d.alternate)break e;c=Ir(c),d=Ir(d)}c=null}else c=null;null!==i&&Dr(o,u,i,c,!1),null!==s&&null!==f&&Dr(o,f,s,c,!0)}if("select"===(i=(u=r?tl(r):window).nodeName&&u.nodeName.toLowerCase())||"input"===i&&"file"===u.type)var v=Xn;else if($n(u))if(Gn)v=or;else{v=lr;var y=rr}else(i=u.nodeName)&&"input"===i.toLowerCase()&&("checkbox"===u.type||"radio"===u.type)&&(v=ar);switch(v&&(v=v(e,r))?Hn(o,v,n,l):(y&&y(e,u,r),"focusout"===e&&(y=u._wrapperState)&&y.controlled&&"number"===u.type&&le(u,"number",u.value)),y=r?tl(r):window,e){case"focusin":($n(y)||"true"===y.contentEditable)&&(vr=y,yr=r,gr=null);break;case"focusout":gr=yr=vr=null;break;case"mousedown":br=!0;break;case"contextmenu":case"mouseup":case"dragend":br=!1,wr(o,n,l);break;case"selectionchange":if(mr)break;case"keydown":case"keyup":wr(o,n,l)}var g;if(Mn)e:{switch(e){case"compositionstart":var b="onCompositionStart";break e;case"compositionend":b="onCompositionEnd";break e;case"compositionupdate":b="onCompositionUpdate";break e}b=void 0}else Bn?Vn(e,n)&&(b="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(b="onCompositionStart");b&&(Fn&&"ko"!==n.locale&&(Bn||"onCompositionStart"!==b?"onCompositionEnd"===b&&Bn&&(g=rn()):(tn="value"in(en=l)?en.value:en.textContent,Bn=!0)),0<(y=Mr(r,b)).length&&(b=new En(b,e,null,n,l),o.push({event:b,listeners:y}),g?b.data=g:null!==(g=jn(n))&&(b.data=g))),(g=Dn?function(e,t){switch(e){case"compositionend":return jn(t);case"keypress":return 32!==t.which?null:(An=!0,Un);case"textInput":return(e=t.data)===Un&&An?null:e;default:return null}}(e,n):function(e,t){if(Bn)return"compositionend"===e||!Mn&&Vn(e,t)?(e=rn(),nn=tn=en=null,Bn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Fn&&"ko"!==t.locale?null:t.data;default:return null}}(e,n))&&(0<(r=Mr(r,"onBeforeInput")).length&&(l=new En("onBeforeInput","beforeinput",null,n,l),o.push({event:l,listeners:r}),l.data=g))}Cr(o,t)}))}function Rr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Mr(e,t){for(var n=t+"Capture",r=[];null!==e;){var l=e,a=l.stateNode;5===l.tag&&null!==a&&(l=a,null!=(a=Ve(e,n))&&r.unshift(Rr(e,a,l)),null!=(a=Ve(e,t))&&r.push(Rr(e,a,l))),e=e.return}return r}function Ir(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Dr(e,t,n,r,l){for(var a=t._reactName,o=[];null!==n&&n!==r;){var u=n,i=u.alternate,s=u.stateNode;if(null!==i&&i===r)break;5===u.tag&&null!==s&&(u=s,l?null!=(i=Ve(n,a))&&o.unshift(Rr(n,i,u)):l||null!=(i=Ve(n,a))&&o.push(Rr(n,i,u))),n=n.return}0!==o.length&&e.push({event:t,listeners:o})}function Fr(){}var Ur=null,Ar=null;function Vr(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function jr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"===typeof t.children||"number"===typeof t.children||"object"===typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Br="function"===typeof setTimeout?setTimeout:void 0,Wr="function"===typeof clearTimeout?clearTimeout:void 0;function $r(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Hr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Qr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var qr=0;var Kr=Math.random().toString(36).slice(2),Yr="__reactFiber$"+Kr,Xr="__reactProps$"+Kr,Gr="__reactContainer$"+Kr,Zr="__reactEvents$"+Kr;function Jr(e){var t=e[Yr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Gr]||n[Yr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Qr(e);null!==e;){if(n=e[Yr])return n;e=Qr(e)}return t}n=(e=n).parentNode}return null}function el(e){return!(e=e[Yr]||e[Gr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function tl(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(o(33))}function nl(e){return e[Xr]||null}function rl(e){var t=e[Zr];return void 0===t&&(t=e[Zr]=new Set),t}var ll=[],al=-1;function ol(e){return{current:e}}function ul(e){0>al||(e.current=ll[al],ll[al]=null,al--)}function il(e,t){al++,ll[al]=e.current,e.current=t}var sl={},cl=ol(sl),fl=ol(!1),dl=sl;function pl(e,t){var n=e.type.contextTypes;if(!n)return sl;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l,a={};for(l in n)a[l]=t[l];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function hl(e){return null!==(e=e.childContextTypes)&&void 0!==e}function ml(){ul(fl),ul(cl)}function vl(e,t,n){if(cl.current!==sl)throw Error(o(168));il(cl,t),il(fl,n)}function yl(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!==typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in e))throw Error(o(108,q(t)||"Unknown",a));return l({},n,r)}function gl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||sl,dl=cl.current,il(cl,e),il(fl,fl.current),!0}function bl(e,t,n){var r=e.stateNode;if(!r)throw Error(o(169));n?(e=yl(e,t,dl),r.__reactInternalMemoizedMergedChildContext=e,ul(fl),ul(cl),il(cl,e)):ul(fl),il(fl,n)}var wl=null,kl=null,El=a.unstable_runWithPriority,Sl=a.unstable_scheduleCallback,_l=a.unstable_cancelCallback,xl=a.unstable_shouldYield,Cl=a.unstable_requestPaint,Pl=a.unstable_now,Nl=a.unstable_getCurrentPriorityLevel,Tl=a.unstable_ImmediatePriority,Ll=a.unstable_UserBlockingPriority,zl=a.unstable_NormalPriority,Ol=a.unstable_LowPriority,Rl=a.unstable_IdlePriority,Ml={},Il=void 0!==Cl?Cl:function(){},Dl=null,Fl=null,Ul=!1,Al=Pl(),Vl=1e4>Al?Pl:function(){return Pl()-Al};function jl(){switch(Nl()){case Tl:return 99;case Ll:return 98;case zl:return 97;case Ol:return 96;case Rl:return 95;default:throw Error(o(332))}}function Bl(e){switch(e){case 99:return Tl;case 98:return Ll;case 97:return zl;case 96:return Ol;case 95:return Rl;default:throw Error(o(332))}}function Wl(e,t){return e=Bl(e),El(e,t)}function $l(e,t,n){return e=Bl(e),Sl(e,t,n)}function Hl(){if(null!==Fl){var e=Fl;Fl=null,_l(e)}Ql()}function Ql(){if(!Ul&&null!==Dl){Ul=!0;var e=0;try{var t=Dl;Wl(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Dl=null}catch(n){throw null!==Dl&&(Dl=Dl.slice(e+1)),Sl(Tl,Hl),n}finally{Ul=!1}}}var ql=k.ReactCurrentBatchConfig;function Kl(e,t){if(e&&e.defaultProps){for(var n in t=l({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Yl=ol(null),Xl=null,Gl=null,Zl=null;function Jl(){Zl=Gl=Xl=null}function ea(e){var t=Yl.current;ul(Yl),e.type._context._currentValue=t}function ta(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function na(e,t){Xl=e,Zl=Gl=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!==(e.lanes&t)&&(Mo=!0),e.firstContext=null)}function ra(e,t){if(Zl!==e&&!1!==t&&0!==t)if("number"===typeof t&&1073741823!==t||(Zl=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Gl){if(null===Xl)throw Error(o(308));Gl=t,Xl.dependencies={lanes:0,firstContext:t,responders:null}}else Gl=Gl.next=t;return e._currentValue}var la=!1;function aa(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function oa(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function ua(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ia(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function sa(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var l=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===a?l=a=o:a=a.next=o,n=n.next}while(null!==n);null===a?l=a=t:a=a.next=t}else l=a=t;return n={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function ca(e,t,n,r){var a=e.updateQueue;la=!1;var o=a.firstBaseUpdate,u=a.lastBaseUpdate,i=a.shared.pending;if(null!==i){a.shared.pending=null;var s=i,c=s.next;s.next=null,null===u?o=c:u.next=c,u=s;var f=e.alternate;if(null!==f){var d=(f=f.updateQueue).lastBaseUpdate;d!==u&&(null===d?f.firstBaseUpdate=c:d.next=c,f.lastBaseUpdate=s)}}if(null!==o){for(d=a.baseState,u=0,f=c=s=null;;){i=o.lane;var p=o.eventTime;if((r&i)===i){null!==f&&(f=f.next={eventTime:p,lane:0,tag:o.tag,payload:o.payload,callback:o.callback,next:null});e:{var h=e,m=o;switch(i=t,p=n,m.tag){case 1:if("function"===typeof(h=m.payload)){d=h.call(p,d,i);break e}d=h;break e;case 3:h.flags=-4097&h.flags|64;case 0:if(null===(i="function"===typeof(h=m.payload)?h.call(p,d,i):h)||void 0===i)break e;d=l({},d,i);break e;case 2:la=!0}}null!==o.callback&&(e.flags|=32,null===(i=a.effects)?a.effects=[o]:i.push(o))}else p={eventTime:p,lane:i,tag:o.tag,payload:o.payload,callback:o.callback,next:null},null===f?(c=f=p,s=d):f=f.next=p,u|=i;if(null===(o=o.next)){if(null===(i=a.shared.pending))break;o=i.next,i.next=null,a.lastBaseUpdate=i,a.shared.pending=null}}null===f&&(s=d),a.baseState=s,a.firstBaseUpdate=c,a.lastBaseUpdate=f,Uu|=u,e.lanes=u,e.memoizedState=d}}function fa(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],l=r.callback;if(null!==l){if(r.callback=null,r=n,"function"!==typeof l)throw Error(o(191,l));l.call(r)}}}var da=(new r.Component).refs;function pa(e,t,n,r){n=null===(n=n(r,t=e.memoizedState))||void 0===n?t:l({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var ha={isMounted:function(e){return!!(e=e._reactInternals)&&Xe(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=si(),l=ci(e),a=ua(r,l);a.payload=t,void 0!==n&&null!==n&&(a.callback=n),ia(e,a),fi(e,l,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=si(),l=ci(e),a=ua(r,l);a.tag=1,a.payload=t,void 0!==n&&null!==n&&(a.callback=n),ia(e,a),fi(e,l,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=si(),r=ci(e),l=ua(n,r);l.tag=2,void 0!==t&&null!==t&&(l.callback=t),ia(e,l),fi(e,r,n)}};function ma(e,t,n,r,l,a,o){return"function"===typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,o):!t.prototype||!t.prototype.isPureReactComponent||(!sr(n,r)||!sr(l,a))}function va(e,t,n){var r=!1,l=sl,a=t.contextType;return"object"===typeof a&&null!==a?a=ra(a):(l=hl(t)?dl:cl.current,a=(r=null!==(r=t.contextTypes)&&void 0!==r)?pl(e,l):sl),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=ha,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=l,e.__reactInternalMemoizedMaskedChildContext=a),t}function ya(e,t,n,r){e=t.state,"function"===typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"===typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&ha.enqueueReplaceState(t,t.state,null)}function ga(e,t,n,r){var l=e.stateNode;l.props=n,l.state=e.memoizedState,l.refs=da,aa(e);var a=t.contextType;"object"===typeof a&&null!==a?l.context=ra(a):(a=hl(t)?dl:cl.current,l.context=pl(e,a)),ca(e,n,l,r),l.state=e.memoizedState,"function"===typeof(a=t.getDerivedStateFromProps)&&(pa(e,t,a,n),l.state=e.memoizedState),"function"===typeof t.getDerivedStateFromProps||"function"===typeof l.getSnapshotBeforeUpdate||"function"!==typeof l.UNSAFE_componentWillMount&&"function"!==typeof l.componentWillMount||(t=l.state,"function"===typeof l.componentWillMount&&l.componentWillMount(),"function"===typeof l.UNSAFE_componentWillMount&&l.UNSAFE_componentWillMount(),t!==l.state&&ha.enqueueReplaceState(l,l.state,null),ca(e,n,l,r),l.state=e.memoizedState),"function"===typeof l.componentDidMount&&(e.flags|=4)}var ba=Array.isArray;function wa(e,t,n){if(null!==(e=n.ref)&&"function"!==typeof e&&"object"!==typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(o(309));var r=n.stateNode}if(!r)throw Error(o(147,e));var l=""+e;return null!==t&&null!==t.ref&&"function"===typeof t.ref&&t.ref._stringRef===l?t.ref:((t=function(e){var t=r.refs;t===da&&(t=r.refs={}),null===e?delete t[l]:t[l]=e})._stringRef=l,t)}if("string"!==typeof e)throw Error(o(284));if(!n._owner)throw Error(o(290,e))}return e}function ka(e,t){if("textarea"!==e.type)throw Error(o(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function Ea(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function l(e,t){return(e=Wi(e,t)).index=0,e.sibling=null,e}function a(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function u(t){return e&&null===t.alternate&&(t.flags=2),t}function i(e,t,n,r){return null===t||6!==t.tag?((t=qi(n,e.mode,r)).return=e,t):((t=l(t,n)).return=e,t)}function s(e,t,n,r){return null!==t&&t.elementType===n.type?((r=l(t,n.props)).ref=wa(e,t,n),r.return=e,r):((r=$i(n.type,n.key,n.props,null,e.mode,r)).ref=wa(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Ki(n,e.mode,r)).return=e,t):((t=l(t,n.children||[])).return=e,t)}function f(e,t,n,r,a){return null===t||7!==t.tag?((t=Hi(n,e.mode,r,a)).return=e,t):((t=l(t,n)).return=e,t)}function d(e,t,n){if("string"===typeof t||"number"===typeof t)return(t=qi(""+t,e.mode,n)).return=e,t;if("object"===typeof t&&null!==t){switch(t.$$typeof){case E:return(n=$i(t.type,t.key,t.props,null,e.mode,n)).ref=wa(e,null,t),n.return=e,n;case S:return(t=Ki(t,e.mode,n)).return=e,t}if(ba(t)||B(t))return(t=Hi(t,e.mode,n,null)).return=e,t;ka(e,t)}return null}function p(e,t,n,r){var l=null!==t?t.key:null;if("string"===typeof n||"number"===typeof n)return null!==l?null:i(e,t,""+n,r);if("object"===typeof n&&null!==n){switch(n.$$typeof){case E:return n.key===l?n.type===_?f(e,t,n.props.children,r,l):s(e,t,n,r):null;case S:return n.key===l?c(e,t,n,r):null}if(ba(n)||B(n))return null!==l?null:f(e,t,n,r,null);ka(e,n)}return null}function h(e,t,n,r,l){if("string"===typeof r||"number"===typeof r)return i(t,e=e.get(n)||null,""+r,l);if("object"===typeof r&&null!==r){switch(r.$$typeof){case E:return e=e.get(null===r.key?n:r.key)||null,r.type===_?f(t,e,r.props.children,l,r.key):s(t,e,r,l);case S:return c(t,e=e.get(null===r.key?n:r.key)||null,r,l)}if(ba(r)||B(r))return f(t,e=e.get(n)||null,r,l,null);ka(t,r)}return null}function m(l,o,u,i){for(var s=null,c=null,f=o,m=o=0,v=null;null!==f&&m<u.length;m++){f.index>m?(v=f,f=null):v=f.sibling;var y=p(l,f,u[m],i);if(null===y){null===f&&(f=v);break}e&&f&&null===y.alternate&&t(l,f),o=a(y,o,m),null===c?s=y:c.sibling=y,c=y,f=v}if(m===u.length)return n(l,f),s;if(null===f){for(;m<u.length;m++)null!==(f=d(l,u[m],i))&&(o=a(f,o,m),null===c?s=f:c.sibling=f,c=f);return s}for(f=r(l,f);m<u.length;m++)null!==(v=h(f,l,m,u[m],i))&&(e&&null!==v.alternate&&f.delete(null===v.key?m:v.key),o=a(v,o,m),null===c?s=v:c.sibling=v,c=v);return e&&f.forEach((function(e){return t(l,e)})),s}function v(l,u,i,s){var c=B(i);if("function"!==typeof c)throw Error(o(150));if(null==(i=c.call(i)))throw Error(o(151));for(var f=c=null,m=u,v=u=0,y=null,g=i.next();null!==m&&!g.done;v++,g=i.next()){m.index>v?(y=m,m=null):y=m.sibling;var b=p(l,m,g.value,s);if(null===b){null===m&&(m=y);break}e&&m&&null===b.alternate&&t(l,m),u=a(b,u,v),null===f?c=b:f.sibling=b,f=b,m=y}if(g.done)return n(l,m),c;if(null===m){for(;!g.done;v++,g=i.next())null!==(g=d(l,g.value,s))&&(u=a(g,u,v),null===f?c=g:f.sibling=g,f=g);return c}for(m=r(l,m);!g.done;v++,g=i.next())null!==(g=h(m,l,v,g.value,s))&&(e&&null!==g.alternate&&m.delete(null===g.key?v:g.key),u=a(g,u,v),null===f?c=g:f.sibling=g,f=g);return e&&m.forEach((function(e){return t(l,e)})),c}return function(e,r,a,i){var s="object"===typeof a&&null!==a&&a.type===_&&null===a.key;s&&(a=a.props.children);var c="object"===typeof a&&null!==a;if(c)switch(a.$$typeof){case E:e:{for(c=a.key,s=r;null!==s;){if(s.key===c){switch(s.tag){case 7:if(a.type===_){n(e,s.sibling),(r=l(s,a.props.children)).return=e,e=r;break e}break;default:if(s.elementType===a.type){n(e,s.sibling),(r=l(s,a.props)).ref=wa(e,s,a),r.return=e,e=r;break e}}n(e,s);break}t(e,s),s=s.sibling}a.type===_?((r=Hi(a.props.children,e.mode,i,a.key)).return=e,e=r):((i=$i(a.type,a.key,a.props,null,e.mode,i)).ref=wa(e,r,a),i.return=e,e=i)}return u(e);case S:e:{for(s=a.key;null!==r;){if(r.key===s){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),(r=l(r,a.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Ki(a,e.mode,i)).return=e,e=r}return u(e)}if("string"===typeof a||"number"===typeof a)return a=""+a,null!==r&&6===r.tag?(n(e,r.sibling),(r=l(r,a)).return=e,e=r):(n(e,r),(r=qi(a,e.mode,i)).return=e,e=r),u(e);if(ba(a))return m(e,r,a,i);if(B(a))return v(e,r,a,i);if(c&&ka(e,a),"undefined"===typeof a&&!s)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(o(152,q(e.type)||"Component"))}return n(e,r)}}var Sa=Ea(!0),_a=Ea(!1),xa={},Ca=ol(xa),Pa=ol(xa),Na=ol(xa);function Ta(e){if(e===xa)throw Error(o(174));return e}function La(e,t){switch(il(Na,t),il(Pa,e),il(Ca,xa),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:he(null,"");break;default:t=he(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}ul(Ca),il(Ca,t)}function za(){ul(Ca),ul(Pa),ul(Na)}function Oa(e){Ta(Na.current);var t=Ta(Ca.current),n=he(t,e.type);t!==n&&(il(Pa,e),il(Ca,n))}function Ra(e){Pa.current===e&&(ul(Ca),ul(Pa))}var Ma=ol(0);function Ia(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!==(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Da=null,Fa=null,Ua=!1;function Aa(e,t){var n=ji(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function Va(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);case 13:default:return!1}}function ja(e){if(Ua){var t=Fa;if(t){var n=t;if(!Va(e,t)){if(!(t=Hr(n.nextSibling))||!Va(e,t))return e.flags=-1025&e.flags|2,Ua=!1,void(Da=e);Aa(Da,n)}Da=e,Fa=Hr(t.firstChild)}else e.flags=-1025&e.flags|2,Ua=!1,Da=e}}function Ba(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Da=e}function Wa(e){if(e!==Da)return!1;if(!Ua)return Ba(e),Ua=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!jr(t,e.memoizedProps))for(t=Fa;t;)Aa(e,t),t=Hr(t.nextSibling);if(Ba(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(o(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){Fa=Hr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}Fa=null}}else Fa=Da?Hr(e.stateNode.nextSibling):null;return!0}function $a(){Fa=Da=null,Ua=!1}var Ha=[];function Qa(){for(var e=0;e<Ha.length;e++)Ha[e]._workInProgressVersionPrimary=null;Ha.length=0}var qa=k.ReactCurrentDispatcher,Ka=k.ReactCurrentBatchConfig,Ya=0,Xa=null,Ga=null,Za=null,Ja=!1,eo=!1;function to(){throw Error(o(321))}function no(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ur(e[n],t[n]))return!1;return!0}function ro(e,t,n,r,l,a){if(Ya=a,Xa=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,qa.current=null===e||null===e.memoizedState?Lo:zo,e=n(r,l),eo){a=0;do{if(eo=!1,!(25>a))throw Error(o(301));a+=1,Za=Ga=null,t.updateQueue=null,qa.current=Oo,e=n(r,l)}while(eo)}if(qa.current=To,t=null!==Ga&&null!==Ga.next,Ya=0,Za=Ga=Xa=null,Ja=!1,t)throw Error(o(300));return e}function lo(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===Za?Xa.memoizedState=Za=e:Za=Za.next=e,Za}function ao(){if(null===Ga){var e=Xa.alternate;e=null!==e?e.memoizedState:null}else e=Ga.next;var t=null===Za?Xa.memoizedState:Za.next;if(null!==t)Za=t,Ga=e;else{if(null===e)throw Error(o(310));e={memoizedState:(Ga=e).memoizedState,baseState:Ga.baseState,baseQueue:Ga.baseQueue,queue:Ga.queue,next:null},null===Za?Xa.memoizedState=Za=e:Za=Za.next=e}return Za}function oo(e,t){return"function"===typeof t?t(e):t}function uo(e){var t=ao(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=Ga,l=r.baseQueue,a=n.pending;if(null!==a){if(null!==l){var u=l.next;l.next=a.next,a.next=u}r.baseQueue=l=a,n.pending=null}if(null!==l){l=l.next,r=r.baseState;var i=u=a=null,s=l;do{var c=s.lane;if((Ya&c)===c)null!==i&&(i=i.next={lane:0,action:s.action,eagerReducer:s.eagerReducer,eagerState:s.eagerState,next:null}),r=s.eagerReducer===e?s.eagerState:e(r,s.action);else{var f={lane:c,action:s.action,eagerReducer:s.eagerReducer,eagerState:s.eagerState,next:null};null===i?(u=i=f,a=r):i=i.next=f,Xa.lanes|=c,Uu|=c}s=s.next}while(null!==s&&s!==l);null===i?a=r:i.next=u,ur(r,t.memoizedState)||(Mo=!0),t.memoizedState=r,t.baseState=a,t.baseQueue=i,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function io(e){var t=ao(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=n.dispatch,l=n.pending,a=t.memoizedState;if(null!==l){n.pending=null;var u=l=l.next;do{a=e(a,u.action),u=u.next}while(u!==l);ur(a,t.memoizedState)||(Mo=!0),t.memoizedState=a,null===t.baseQueue&&(t.baseState=a),n.lastRenderedState=a}return[a,r]}function so(e,t,n){var r=t._getVersion;r=r(t._source);var l=t._workInProgressVersionPrimary;if(null!==l?e=l===r:(e=e.mutableReadLanes,(e=(Ya&e)===e)&&(t._workInProgressVersionPrimary=r,Ha.push(t))),e)return n(t._source);throw Ha.push(t),Error(o(350))}function co(e,t,n,r){var l=Lu;if(null===l)throw Error(o(349));var a=t._getVersion,u=a(t._source),i=qa.current,s=i.useState((function(){return so(l,t,n)})),c=s[1],f=s[0];s=Za;var d=e.memoizedState,p=d.refs,h=p.getSnapshot,m=d.source;d=d.subscribe;var v=Xa;return e.memoizedState={refs:p,source:t,subscribe:r},i.useEffect((function(){p.getSnapshot=n,p.setSnapshot=c;var e=a(t._source);if(!ur(u,e)){e=n(t._source),ur(f,e)||(c(e),e=ci(v),l.mutableReadLanes|=e&l.pendingLanes),e=l.mutableReadLanes,l.entangledLanes|=e;for(var r=l.entanglements,o=e;0<o;){var i=31-$t(o),s=1<<i;r[i]|=e,o&=~s}}}),[n,t,r]),i.useEffect((function(){return r(t._source,(function(){var e=p.getSnapshot,n=p.setSnapshot;try{n(e(t._source));var r=ci(v);l.mutableReadLanes|=r&l.pendingLanes}catch(a){n((function(){throw a}))}}))}),[t,r]),ur(h,n)&&ur(m,t)&&ur(d,r)||((e={pending:null,dispatch:null,lastRenderedReducer:oo,lastRenderedState:f}).dispatch=c=No.bind(null,Xa,e),s.queue=e,s.baseQueue=null,f=so(l,t,n),s.memoizedState=s.baseState=f),f}function fo(e,t,n){return co(ao(),e,t,n)}function po(e){var t=lo();return"function"===typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:oo,lastRenderedState:e}).dispatch=No.bind(null,Xa,e),[t.memoizedState,e]}function ho(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Xa.updateQueue)?(t={lastEffect:null},Xa.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function mo(e){return e={current:e},lo().memoizedState=e}function vo(){return ao().memoizedState}function yo(e,t,n,r){var l=lo();Xa.flags|=e,l.memoizedState=ho(1|t,n,void 0,void 0===r?null:r)}function go(e,t,n,r){var l=ao();r=void 0===r?null:r;var a=void 0;if(null!==Ga){var o=Ga.memoizedState;if(a=o.destroy,null!==r&&no(r,o.deps))return void ho(t,n,a,r)}Xa.flags|=e,l.memoizedState=ho(1|t,n,a,r)}function bo(e,t){return yo(516,4,e,t)}function wo(e,t){return go(516,4,e,t)}function ko(e,t){return go(4,2,e,t)}function Eo(e,t){return"function"===typeof t?(e=e(),t(e),function(){t(null)}):null!==t&&void 0!==t?(e=e(),t.current=e,function(){t.current=null}):void 0}function So(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,go(4,2,Eo.bind(null,t,e),n)}function _o(){}function xo(e,t){var n=ao();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&no(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Co(e,t){var n=ao();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&no(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Po(e,t){var n=jl();Wl(98>n?98:n,(function(){e(!0)})),Wl(97<n?97:n,(function(){var n=Ka.transition;Ka.transition=1;try{e(!1),t()}finally{Ka.transition=n}}))}function No(e,t,n){var r=si(),l=ci(e),a={lane:l,action:n,eagerReducer:null,eagerState:null,next:null},o=t.pending;if(null===o?a.next=a:(a.next=o.next,o.next=a),t.pending=a,o=e.alternate,e===Xa||null!==o&&o===Xa)eo=Ja=!0;else{if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var u=t.lastRenderedState,i=o(u,n);if(a.eagerReducer=o,a.eagerState=i,ur(i,u))return}catch(s){}fi(e,l,r)}}var To={readContext:ra,useCallback:to,useContext:to,useEffect:to,useImperativeHandle:to,useLayoutEffect:to,useMemo:to,useReducer:to,useRef:to,useState:to,useDebugValue:to,useDeferredValue:to,useTransition:to,useMutableSource:to,useOpaqueIdentifier:to,unstable_isNewReconciler:!1},Lo={readContext:ra,useCallback:function(e,t){return lo().memoizedState=[e,void 0===t?null:t],e},useContext:ra,useEffect:bo,useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,yo(4,2,Eo.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yo(4,2,e,t)},useMemo:function(e,t){var n=lo();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=lo();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=No.bind(null,Xa,e),[r.memoizedState,e]},useRef:mo,useState:po,useDebugValue:_o,useDeferredValue:function(e){var t=po(e),n=t[0],r=t[1];return bo((function(){var t=Ka.transition;Ka.transition=1;try{r(e)}finally{Ka.transition=t}}),[e]),n},useTransition:function(){var e=po(!1),t=e[0];return mo(e=Po.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=lo();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},co(r,e,t,n)},useOpaqueIdentifier:function(){if(Ua){var e=!1,t=function(e){return{$$typeof:I,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(qr++).toString(36))),Error(o(355))})),n=po(t)[1];return 0===(2&Xa.mode)&&(Xa.flags|=516,ho(5,(function(){n("r:"+(qr++).toString(36))}),void 0,null)),t}return po(t="r:"+(qr++).toString(36)),t},unstable_isNewReconciler:!1},zo={readContext:ra,useCallback:xo,useContext:ra,useEffect:wo,useImperativeHandle:So,useLayoutEffect:ko,useMemo:Co,useReducer:uo,useRef:vo,useState:function(){return uo(oo)},useDebugValue:_o,useDeferredValue:function(e){var t=uo(oo),n=t[0],r=t[1];return wo((function(){var t=Ka.transition;Ka.transition=1;try{r(e)}finally{Ka.transition=t}}),[e]),n},useTransition:function(){var e=uo(oo)[0];return[vo().current,e]},useMutableSource:fo,useOpaqueIdentifier:function(){return uo(oo)[0]},unstable_isNewReconciler:!1},Oo={readContext:ra,useCallback:xo,useContext:ra,useEffect:wo,useImperativeHandle:So,useLayoutEffect:ko,useMemo:Co,useReducer:io,useRef:vo,useState:function(){return io(oo)},useDebugValue:_o,useDeferredValue:function(e){var t=io(oo),n=t[0],r=t[1];return wo((function(){var t=Ka.transition;Ka.transition=1;try{r(e)}finally{Ka.transition=t}}),[e]),n},useTransition:function(){var e=io(oo)[0];return[vo().current,e]},useMutableSource:fo,useOpaqueIdentifier:function(){return io(oo)[0]},unstable_isNewReconciler:!1},Ro=k.ReactCurrentOwner,Mo=!1;function Io(e,t,n,r){t.child=null===e?_a(t,null,n,r):Sa(t,e.child,n,r)}function Do(e,t,n,r,l){n=n.render;var a=t.ref;return na(t,l),r=ro(e,t,n,r,a,l),null===e||Mo?(t.flags|=1,Io(e,t,r,l),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~l,nu(e,t,l))}function Fo(e,t,n,r,l,a){if(null===e){var o=n.type;return"function"!==typeof o||Bi(o)||void 0!==o.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=$i(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,Uo(e,t,o,r,l,a))}return o=e.child,0===(l&a)&&(l=o.memoizedProps,(n=null!==(n=n.compare)?n:sr)(l,r)&&e.ref===t.ref)?nu(e,t,a):(t.flags|=1,(e=Wi(o,r)).ref=t.ref,e.return=t,t.child=e)}function Uo(e,t,n,r,l,a){if(null!==e&&sr(e.memoizedProps,r)&&e.ref===t.ref){if(Mo=!1,0===(a&l))return t.lanes=e.lanes,nu(e,t,a);0!==(16384&e.flags)&&(Mo=!0)}return jo(e,t,n,r,a)}function Ao(e,t,n){var r=t.pendingProps,l=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0===(4&t.mode))t.memoizedState={baseLanes:0},bi(t,n);else{if(0===(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},bi(t,e),null;t.memoizedState={baseLanes:0},bi(t,null!==a?a.baseLanes:n)}else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,bi(t,r);return Io(e,t,l,n),t.child}function Vo(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function jo(e,t,n,r,l){var a=hl(n)?dl:cl.current;return a=pl(t,a),na(t,l),n=ro(e,t,n,r,a,l),null===e||Mo?(t.flags|=1,Io(e,t,n,l),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~l,nu(e,t,l))}function Bo(e,t,n,r,l){if(hl(n)){var a=!0;gl(t)}else a=!1;if(na(t,l),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),va(t,n,r),ga(t,n,r,l),r=!0;else if(null===e){var o=t.stateNode,u=t.memoizedProps;o.props=u;var i=o.context,s=n.contextType;"object"===typeof s&&null!==s?s=ra(s):s=pl(t,s=hl(n)?dl:cl.current);var c=n.getDerivedStateFromProps,f="function"===typeof c||"function"===typeof o.getSnapshotBeforeUpdate;f||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(u!==r||i!==s)&&ya(t,o,r,s),la=!1;var d=t.memoizedState;o.state=d,ca(t,r,o,l),i=t.memoizedState,u!==r||d!==i||fl.current||la?("function"===typeof c&&(pa(t,n,c,r),i=t.memoizedState),(u=la||ma(t,n,u,r,d,i,s))?(f||"function"!==typeof o.UNSAFE_componentWillMount&&"function"!==typeof o.componentWillMount||("function"===typeof o.componentWillMount&&o.componentWillMount(),"function"===typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),"function"===typeof o.componentDidMount&&(t.flags|=4)):("function"===typeof o.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=i),o.props=r,o.state=i,o.context=s,r=u):("function"===typeof o.componentDidMount&&(t.flags|=4),r=!1)}else{o=t.stateNode,oa(e,t),u=t.memoizedProps,s=t.type===t.elementType?u:Kl(t.type,u),o.props=s,f=t.pendingProps,d=o.context,"object"===typeof(i=n.contextType)&&null!==i?i=ra(i):i=pl(t,i=hl(n)?dl:cl.current);var p=n.getDerivedStateFromProps;(c="function"===typeof p||"function"===typeof o.getSnapshotBeforeUpdate)||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(u!==f||d!==i)&&ya(t,o,r,i),la=!1,d=t.memoizedState,o.state=d,ca(t,r,o,l);var h=t.memoizedState;u!==f||d!==h||fl.current||la?("function"===typeof p&&(pa(t,n,p,r),h=t.memoizedState),(s=la||ma(t,n,s,r,d,h,i))?(c||"function"!==typeof o.UNSAFE_componentWillUpdate&&"function"!==typeof o.componentWillUpdate||("function"===typeof o.componentWillUpdate&&o.componentWillUpdate(r,h,i),"function"===typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(r,h,i)),"function"===typeof o.componentDidUpdate&&(t.flags|=4),"function"===typeof o.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!==typeof o.componentDidUpdate||u===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!==typeof o.getSnapshotBeforeUpdate||u===e.memoizedProps&&d===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=h),o.props=r,o.state=h,o.context=i,r=s):("function"!==typeof o.componentDidUpdate||u===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!==typeof o.getSnapshotBeforeUpdate||u===e.memoizedProps&&d===e.memoizedState||(t.flags|=256),r=!1)}return Wo(e,t,n,r,a,l)}function Wo(e,t,n,r,l,a){Vo(e,t);var o=0!==(64&t.flags);if(!r&&!o)return l&&bl(t,n,!1),nu(e,t,a);r=t.stateNode,Ro.current=t;var u=o&&"function"!==typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&o?(t.child=Sa(t,e.child,null,a),t.child=Sa(t,null,u,a)):Io(e,t,u,a),t.memoizedState=r.state,l&&bl(t,n,!0),t.child}function $o(e){var t=e.stateNode;t.pendingContext?vl(0,t.pendingContext,t.pendingContext!==t.context):t.context&&vl(0,t.context,!1),La(e,t.containerInfo)}var Ho,Qo,qo,Ko={dehydrated:null,retryLane:0};function Yo(e,t,n){var r,l=t.pendingProps,a=Ma.current,o=!1;return(r=0!==(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!==(2&a)),r?(o=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===l.fallback||!0===l.unstable_avoidThisFallback||(a|=1),il(Ma,1&a),null===e?(void 0!==l.fallback&&ja(t),e=l.children,a=l.fallback,o?(e=Xo(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Ko,e):"number"===typeof l.unstable_expectedLoadTime?(e=Xo(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Ko,t.lanes=33554432,e):((n=Qi({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,o?(l=Zo(e,t,l.children,l.fallback,n),o=t.child,a=e.child.memoizedState,o.memoizedState=null===a?{baseLanes:n}:{baseLanes:a.baseLanes|n},o.childLanes=e.childLanes&~n,t.memoizedState=Ko,l):(n=Go(e,t,l.children,n),t.memoizedState=null,n))}function Xo(e,t,n,r){var l=e.mode,a=e.child;return t={mode:"hidden",children:t},0===(2&l)&&null!==a?(a.childLanes=0,a.pendingProps=t):a=Qi(t,l,0,null),n=Hi(n,l,r,null),a.return=e,n.return=e,a.sibling=n,e.child=a,n}function Go(e,t,n,r){var l=e.child;return e=l.sibling,n=Wi(l,{mode:"visible",children:n}),0===(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function Zo(e,t,n,r,l){var a=t.mode,o=e.child;e=o.sibling;var u={mode:"hidden",children:n};return 0===(2&a)&&t.child!==o?((n=t.child).childLanes=0,n.pendingProps=u,null!==(o=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=o,o.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Wi(o,u),null!==e?r=Wi(e,r):(r=Hi(r,a,l,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function Jo(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),ta(e.return,t)}function eu(e,t,n,r,l,a){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:l,lastEffect:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=l,o.lastEffect=a)}function tu(e,t,n){var r=t.pendingProps,l=r.revealOrder,a=r.tail;if(Io(e,t,r.children,n),0!==(2&(r=Ma.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!==(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Jo(e,n);else if(19===e.tag)Jo(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(il(Ma,r),0===(2&t.mode))t.memoizedState=null;else switch(l){case"forwards":for(n=t.child,l=null;null!==n;)null!==(e=n.alternate)&&null===Ia(e)&&(l=n),n=n.sibling;null===(n=l)?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),eu(t,!1,l,n,a,t.lastEffect);break;case"backwards":for(n=null,l=t.child,t.child=null;null!==l;){if(null!==(e=l.alternate)&&null===Ia(e)){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}eu(t,!0,n,null,a,t.lastEffect);break;case"together":eu(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function nu(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Uu|=t.lanes,0!==(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(o(153));if(null!==t.child){for(n=Wi(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Wi(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function ru(e,t){if(!Ua)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function lu(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return hl(t.type)&&ml(),null;case 3:return za(),ul(fl),ul(cl),Qa(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Wa(t)?t.flags|=4:r.hydrate||(t.flags|=256)),null;case 5:Ra(t);var a=Ta(Na.current);if(n=t.type,null!==e&&null!=t.stateNode)Qo(e,t,n,r),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(o(166));return null}if(e=Ta(Ca.current),Wa(t)){r=t.stateNode,n=t.type;var u=t.memoizedProps;switch(r[Yr]=t,r[Xr]=u,n){case"dialog":Pr("cancel",r),Pr("close",r);break;case"iframe":case"object":case"embed":Pr("load",r);break;case"video":case"audio":for(e=0;e<Sr.length;e++)Pr(Sr[e],r);break;case"source":Pr("error",r);break;case"img":case"image":case"link":Pr("error",r),Pr("load",r);break;case"details":Pr("toggle",r);break;case"input":ee(r,u),Pr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!u.multiple},Pr("invalid",r);break;case"textarea":ie(r,u),Pr("invalid",r)}for(var s in _e(n,u),e=null,u)u.hasOwnProperty(s)&&(a=u[s],"children"===s?"string"===typeof a?r.textContent!==a&&(e=["children",a]):"number"===typeof a&&r.textContent!==""+a&&(e=["children",""+a]):i.hasOwnProperty(s)&&null!=a&&"onScroll"===s&&Pr("scroll",r));switch(n){case"input":X(r),re(r,u,!0);break;case"textarea":X(r),ce(r);break;case"select":case"option":break;default:"function"===typeof u.onClick&&(r.onclick=Fr)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(s=9===a.nodeType?a:a.ownerDocument,e===fe&&(e=pe(n)),e===fe?"script"===n?((e=s.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"===typeof r.is?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),"select"===n&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[Yr]=t,e[Xr]=r,Ho(e,t),t.stateNode=e,s=xe(n,r),n){case"dialog":Pr("cancel",e),Pr("close",e),a=r;break;case"iframe":case"object":case"embed":Pr("load",e),a=r;break;case"video":case"audio":for(a=0;a<Sr.length;a++)Pr(Sr[a],e);a=r;break;case"source":Pr("error",e),a=r;break;case"img":case"image":case"link":Pr("error",e),Pr("load",e),a=r;break;case"details":Pr("toggle",e),a=r;break;case"input":ee(e,r),a=J(e,r),Pr("invalid",e);break;case"option":a=ae(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=l({},r,{value:void 0}),Pr("invalid",e);break;case"textarea":ie(e,r),a=ue(e,r),Pr("invalid",e);break;default:a=r}_e(n,a);var c=a;for(u in c)if(c.hasOwnProperty(u)){var f=c[u];"style"===u?Ee(e,f):"dangerouslySetInnerHTML"===u?null!=(f=f?f.__html:void 0)&&ye(e,f):"children"===u?"string"===typeof f?("textarea"!==n||""!==f)&&ge(e,f):"number"===typeof f&&ge(e,""+f):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(i.hasOwnProperty(u)?null!=f&&"onScroll"===u&&Pr("scroll",e):null!=f&&w(e,u,f,s))}switch(n){case"input":X(e),re(e,r,!1);break;case"textarea":X(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+K(r.value));break;case"select":e.multiple=!!r.multiple,null!=(u=r.value)?oe(e,!!r.multiple,u,!1):null!=r.defaultValue&&oe(e,!!r.multiple,r.defaultValue,!0);break;default:"function"===typeof a.onClick&&(e.onclick=Fr)}Vr(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)qo(0,t,e.memoizedProps,r);else{if("string"!==typeof r&&null===t.stateNode)throw Error(o(166));n=Ta(Na.current),Ta(Ca.current),Wa(t)?(r=t.stateNode,n=t.memoizedProps,r[Yr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Yr]=t,t.stateNode=r)}return null;case 13:return ul(Ma),r=t.memoizedState,0!==(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Wa(t):n=null!==e.memoizedState,r&&!n&&0!==(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!==(1&Ma.current)?0===Iu&&(Iu=3):(0!==Iu&&3!==Iu||(Iu=4),null===Lu||0===(134217727&Uu)&&0===(134217727&Au)||mi(Lu,Ou))),(r||n)&&(t.flags|=4),null);case 4:return za(),null===e&&Tr(t.stateNode.containerInfo),null;case 10:return ea(t),null;case 17:return hl(t.type)&&ml(),null;case 19:if(ul(Ma),null===(r=t.memoizedState))return null;if(u=0!==(64&t.flags),null===(s=r.rendering))if(u)ru(r,!1);else{if(0!==Iu||null!==e&&0!==(64&e.flags))for(e=t.child;null!==e;){if(null!==(s=Ia(e))){for(t.flags|=64,ru(r,!1),null!==(u=s.updateQueue)&&(t.updateQueue=u,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(u=n).flags&=2,u.nextEffect=null,u.firstEffect=null,u.lastEffect=null,null===(s=u.alternate)?(u.childLanes=0,u.lanes=e,u.child=null,u.memoizedProps=null,u.memoizedState=null,u.updateQueue=null,u.dependencies=null,u.stateNode=null):(u.childLanes=s.childLanes,u.lanes=s.lanes,u.child=s.child,u.memoizedProps=s.memoizedProps,u.memoizedState=s.memoizedState,u.updateQueue=s.updateQueue,u.type=s.type,e=s.dependencies,u.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return il(Ma,1&Ma.current|2),t.child}e=e.sibling}null!==r.tail&&Vl()>Wu&&(t.flags|=64,u=!0,ru(r,!1),t.lanes=33554432)}else{if(!u)if(null!==(e=Ia(s))){if(t.flags|=64,u=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),ru(r,!0),null===r.tail&&"hidden"===r.tailMode&&!s.alternate&&!Ua)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*Vl()-r.renderingStartTime>Wu&&1073741824!==n&&(t.flags|=64,u=!0,ru(r,!1),t.lanes=33554432);r.isBackwards?(s.sibling=t.child,t.child=s):(null!==(n=r.last)?n.sibling=s:t.child=s,r.last=s)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=Vl(),n.sibling=null,t=Ma.current,il(Ma,u?1&t|2:1&t),n):null;case 23:case 24:return wi(),null!==e&&null!==e.memoizedState!==(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(o(156,t.tag))}function au(e){switch(e.tag){case 1:hl(e.type)&&ml();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(za(),ul(fl),ul(cl),Qa(),0!==(64&(t=e.flags)))throw Error(o(285));return e.flags=-4097&t|64,e;case 5:return Ra(e),null;case 13:return ul(Ma),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ul(Ma),null;case 4:return za(),null;case 10:return ea(e),null;case 23:case 24:return wi(),null;default:return null}}function ou(e,t){try{var n="",r=t;do{n+=Q(r),r=r.return}while(r);var l=n}catch(a){l="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:t,stack:l}}function uu(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Ho=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Qo=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,Ta(Ca.current);var o,u=null;switch(n){case"input":a=J(e,a),r=J(e,r),u=[];break;case"option":a=ae(e,a),r=ae(e,r),u=[];break;case"select":a=l({},a,{value:void 0}),r=l({},r,{value:void 0}),u=[];break;case"textarea":a=ue(e,a),r=ue(e,r),u=[];break;default:"function"!==typeof a.onClick&&"function"===typeof r.onClick&&(e.onclick=Fr)}for(f in _e(n,r),n=null,a)if(!r.hasOwnProperty(f)&&a.hasOwnProperty(f)&&null!=a[f])if("style"===f){var s=a[f];for(o in s)s.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else"dangerouslySetInnerHTML"!==f&&"children"!==f&&"suppressContentEditableWarning"!==f&&"suppressHydrationWarning"!==f&&"autoFocus"!==f&&(i.hasOwnProperty(f)?u||(u=[]):(u=u||[]).push(f,null));for(f in r){var c=r[f];if(s=null!=a?a[f]:void 0,r.hasOwnProperty(f)&&c!==s&&(null!=c||null!=s))if("style"===f)if(s){for(o in s)!s.hasOwnProperty(o)||c&&c.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in c)c.hasOwnProperty(o)&&s[o]!==c[o]&&(n||(n={}),n[o]=c[o])}else n||(u||(u=[]),u.push(f,n)),n=c;else"dangerouslySetInnerHTML"===f?(c=c?c.__html:void 0,s=s?s.__html:void 0,null!=c&&s!==c&&(u=u||[]).push(f,c)):"children"===f?"string"!==typeof c&&"number"!==typeof c||(u=u||[]).push(f,""+c):"suppressContentEditableWarning"!==f&&"suppressHydrationWarning"!==f&&(i.hasOwnProperty(f)?(null!=c&&"onScroll"===f&&Pr("scroll",e),u||s===c||(u=[])):"object"===typeof c&&null!==c&&c.$$typeof===I?c.toString():(u=u||[]).push(f,c))}n&&(u=u||[]).push("style",n);var f=u;(t.updateQueue=f)&&(t.flags|=4)}},qo=function(e,t,n,r){n!==r&&(t.flags|=4)};var iu="function"===typeof WeakMap?WeakMap:Map;function su(e,t,n){(n=ua(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){qu||(qu=!0,Ku=r),uu(0,t)},n}function cu(e,t,n){(n=ua(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"===typeof r){var l=t.value;n.payload=function(){return uu(0,t),r(l)}}var a=e.stateNode;return null!==a&&"function"===typeof a.componentDidCatch&&(n.callback=function(){"function"!==typeof r&&(null===Yu?Yu=new Set([this]):Yu.add(this),uu(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var fu="function"===typeof WeakSet?WeakSet:Set;function du(e){var t=e.ref;if(null!==t)if("function"===typeof t)try{t(null)}catch(n){Fi(e,n)}else t.current=null}function pu(e,t){switch(t.tag){case 0:case 11:case 15:case 22:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Kl(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&$r(t.stateNode.containerInfo));case 5:case 6:case 4:case 17:return}throw Error(o(163))}function hu(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3===(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var l=e;r=l.next,0!==(4&(l=l.tag))&&0!==(1&l)&&(Mi(n,e),Ri(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Kl(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&fa(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:e=n.child.stateNode;break;case 1:e=n.child.stateNode}fa(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&Vr(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&Et(n)))));case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(o(163))}function mu(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"===typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var l=n.memoizedProps.style;l=void 0!==l&&null!==l&&l.hasOwnProperty("display")?l.display:null,r.style.display=ke("display",l)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function vu(e,t){if(kl&&"function"===typeof kl.onCommitFiberUnmount)try{kl.onCommitFiberUnmount(wl,t)}catch(a){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,l=r.destroy;if(r=r.tag,void 0!==l)if(0!==(4&r))Mi(t,n);else{r=t;try{l()}catch(a){Fi(r,a)}}n=n.next}while(n!==e)}break;case 1:if(du(t),"function"===typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(a){Fi(t,a)}break;case 5:du(t);break;case 4:Eu(e,t)}}function yu(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function gu(e){return 5===e.tag||3===e.tag||4===e.tag}function bu(e){e:{for(var t=e.return;null!==t;){if(gu(t))break e;t=t.return}throw Error(o(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(o(161))}16&n.flags&&(ge(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||gu(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?wu(e,n,t):ku(e,n,t)}function wu(e,t,n){var r=e.tag,l=5===r||6===r;if(l)e=l?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!==(n=n._reactRootContainer)&&void 0!==n||null!==t.onclick||(t.onclick=Fr));else if(4!==r&&null!==(e=e.child))for(wu(e,t,n),e=e.sibling;null!==e;)wu(e,t,n),e=e.sibling}function ku(e,t,n){var r=e.tag,l=5===r||6===r;if(l)e=l?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(ku(e,t,n),e=e.sibling;null!==e;)ku(e,t,n),e=e.sibling}function Eu(e,t){for(var n,r,l=t,a=!1;;){if(!a){a=l.return;e:for(;;){if(null===a)throw Error(o(160));switch(n=a.stateNode,a.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}a=a.return}a=!0}if(5===l.tag||6===l.tag){e:for(var u=e,i=l,s=i;;)if(vu(u,s),null!==s.child&&4!==s.tag)s.child.return=s,s=s.child;else{if(s===i)break e;for(;null===s.sibling;){if(null===s.return||s.return===i)break e;s=s.return}s.sibling.return=s.return,s=s.sibling}r?(u=n,i=l.stateNode,8===u.nodeType?u.parentNode.removeChild(i):u.removeChild(i)):n.removeChild(l.stateNode)}else if(4===l.tag){if(null!==l.child){n=l.stateNode.containerInfo,r=!0,l.child.return=l,l=l.child;continue}}else if(vu(e,l),null!==l.child){l.child.return=l,l=l.child;continue}if(l===t)break;for(;null===l.sibling;){if(null===l.return||l.return===t)return;4===(l=l.return).tag&&(a=!1)}l.sibling.return=l.return,l=l.sibling}}function Su(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3===(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var l=null!==e?e.memoizedProps:r;e=t.type;var a=t.updateQueue;if(t.updateQueue=null,null!==a){for(n[Xr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),xe(e,l),t=xe(e,r),l=0;l<a.length;l+=2){var u=a[l],i=a[l+1];"style"===u?Ee(n,i):"dangerouslySetInnerHTML"===u?ye(n,i):"children"===u?ge(n,i):w(n,u,i,t)}switch(e){case"input":ne(n,r);break;case"textarea":se(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(a=r.value)?oe(n,!!r.multiple,a,!1):e!==!!r.multiple&&(null!=r.defaultValue?oe(n,!!r.multiple,r.defaultValue,!0):oe(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(o(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,Et(n.containerInfo)));case 12:return;case 13:return null!==t.memoizedState&&(Bu=Vl(),mu(t.child,!0)),void _u(t);case 19:return void _u(t);case 17:return;case 23:case 24:return void mu(t,null!==t.memoizedState)}throw Error(o(163))}function _u(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new fu),t.forEach((function(t){var r=Ai.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function xu(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Cu=Math.ceil,Pu=k.ReactCurrentDispatcher,Nu=k.ReactCurrentOwner,Tu=0,Lu=null,zu=null,Ou=0,Ru=0,Mu=ol(0),Iu=0,Du=null,Fu=0,Uu=0,Au=0,Vu=0,ju=null,Bu=0,Wu=1/0;function $u(){Wu=Vl()+500}var Hu,Qu=null,qu=!1,Ku=null,Yu=null,Xu=!1,Gu=null,Zu=90,Ju=[],ei=[],ti=null,ni=0,ri=null,li=-1,ai=0,oi=0,ui=null,ii=!1;function si(){return 0!==(48&Tu)?Vl():-1!==li?li:li=Vl()}function ci(e){if(0===(2&(e=e.mode)))return 1;if(0===(4&e))return 99===jl()?1:2;if(0===ai&&(ai=Fu),0!==ql.transition){0!==oi&&(oi=null!==ju?ju.pendingLanes:0),e=ai;var t=4186112&~oi;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=jl(),0!==(4&Tu)&&98===e?e=Vt(12,ai):e=Vt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ai),e}function fi(e,t,n){if(50<ni)throw ni=0,ri=null,Error(o(185));if(null===(e=di(e,t)))return null;Wt(e,t,n),e===Lu&&(Au|=t,4===Iu&&mi(e,Ou));var r=jl();1===t?0!==(8&Tu)&&0===(48&Tu)?vi(e):(pi(e,n),0===Tu&&($u(),Hl())):(0===(4&Tu)||98!==r&&99!==r||(null===ti?ti=new Set([e]):ti.add(e)),pi(e,n)),ju=e}function di(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function pi(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,l=e.pingedLanes,a=e.expirationTimes,u=e.pendingLanes;0<u;){var i=31-$t(u),s=1<<i,c=a[i];if(-1===c){if(0===(s&r)||0!==(s&l)){c=t,Ft(s);var f=Dt;a[i]=10<=f?c+250:6<=f?c+5e3:-1}}else c<=t&&(e.expiredLanes|=s);u&=~s}if(r=Ut(e,e===Lu?Ou:0),t=Dt,0===r)null!==n&&(n!==Ml&&_l(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Ml&&_l(n)}15===t?(n=vi.bind(null,e),null===Dl?(Dl=[n],Fl=Sl(Tl,Ql)):Dl.push(n),n=Ml):14===t?n=$l(99,vi.bind(null,e)):n=$l(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(o(358,e))}}(t),hi.bind(null,e)),e.callbackPriority=t,e.callbackNode=n}}function hi(e){if(li=-1,oi=ai=0,0!==(48&Tu))throw Error(o(327));var t=e.callbackNode;if(Oi()&&e.callbackNode!==t)return null;var n=Ut(e,e===Lu?Ou:0);if(0===n)return null;var r=n,l=Tu;Tu|=16;var a=Si();for(Lu===e&&Ou===r||($u(),ki(e,r));;)try{Ci();break}catch(i){Ei(e,i)}if(Jl(),Pu.current=a,Tu=l,null!==zu?r=0:(Lu=null,Ou=0,r=Iu),0!==(Fu&Au))ki(e,0);else if(0!==r){if(2===r&&(Tu|=64,e.hydrate&&(e.hydrate=!1,$r(e.containerInfo)),0!==(n=At(e))&&(r=_i(e,n))),1===r)throw t=Du,ki(e,0),mi(e,n),pi(e,Vl()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(o(345));case 2:Ti(e);break;case 3:if(mi(e,n),(62914560&n)===n&&10<(r=Bu+500-Vl())){if(0!==Ut(e,0))break;if(((l=e.suspendedLanes)&n)!==n){si(),e.pingedLanes|=e.suspendedLanes&l;break}e.timeoutHandle=Br(Ti.bind(null,e),r);break}Ti(e);break;case 4:if(mi(e,n),(4186112&n)===n)break;for(r=e.eventTimes,l=-1;0<n;){var u=31-$t(n);a=1<<u,(u=r[u])>l&&(l=u),n&=~a}if(n=l,10<(n=(120>(n=Vl()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Cu(n/1960))-n)){e.timeoutHandle=Br(Ti.bind(null,e),n);break}Ti(e);break;case 5:Ti(e);break;default:throw Error(o(329))}}return pi(e,Vl()),e.callbackNode===t?hi.bind(null,e):null}function mi(e,t){for(t&=~Vu,t&=~Au,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-$t(t),r=1<<n;e[n]=-1,t&=~r}}function vi(e){if(0!==(48&Tu))throw Error(o(327));if(Oi(),e===Lu&&0!==(e.expiredLanes&Ou)){var t=Ou,n=_i(e,t);0!==(Fu&Au)&&(n=_i(e,t=Ut(e,t)))}else n=_i(e,t=Ut(e,0));if(0!==e.tag&&2===n&&(Tu|=64,e.hydrate&&(e.hydrate=!1,$r(e.containerInfo)),0!==(t=At(e))&&(n=_i(e,t))),1===n)throw n=Du,ki(e,0),mi(e,t),pi(e,Vl()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Ti(e),pi(e,Vl()),null}function yi(e,t){var n=Tu;Tu|=1;try{return e(t)}finally{0===(Tu=n)&&($u(),Hl())}}function gi(e,t){var n=Tu;Tu&=-2,Tu|=8;try{return e(t)}finally{0===(Tu=n)&&($u(),Hl())}}function bi(e,t){il(Mu,Ru),Ru|=t,Fu|=t}function wi(){Ru=Mu.current,ul(Mu)}function ki(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Wr(n)),null!==zu)for(n=zu.return;null!==n;){var r=n;switch(r.tag){case 1:null!==(r=r.type.childContextTypes)&&void 0!==r&&ml();break;case 3:za(),ul(fl),ul(cl),Qa();break;case 5:Ra(r);break;case 4:za();break;case 13:case 19:ul(Ma);break;case 10:ea(r);break;case 23:case 24:wi()}n=n.return}Lu=e,zu=Wi(e.current,null),Ou=Ru=Fu=t,Iu=0,Du=null,Vu=Au=Uu=0}function Ei(e,t){for(;;){var n=zu;try{if(Jl(),qa.current=To,Ja){for(var r=Xa.memoizedState;null!==r;){var l=r.queue;null!==l&&(l.pending=null),r=r.next}Ja=!1}if(Ya=0,Za=Ga=Xa=null,eo=!1,Nu.current=null,null===n||null===n.return){Iu=1,Du=t,zu=null;break}e:{var a=e,o=n.return,u=n,i=t;if(t=Ou,u.flags|=2048,u.firstEffect=u.lastEffect=null,null!==i&&"object"===typeof i&&"function"===typeof i.then){var s=i;if(0===(2&u.mode)){var c=u.alternate;c?(u.updateQueue=c.updateQueue,u.memoizedState=c.memoizedState,u.lanes=c.lanes):(u.updateQueue=null,u.memoizedState=null)}var f=0!==(1&Ma.current),d=o;do{var p;if(p=13===d.tag){var h=d.memoizedState;if(null!==h)p=null!==h.dehydrated;else{var m=d.memoizedProps;p=void 0!==m.fallback&&(!0!==m.unstable_avoidThisFallback||!f)}}if(p){var v=d.updateQueue;if(null===v){var y=new Set;y.add(s),d.updateQueue=y}else v.add(s);if(0===(2&d.mode)){if(d.flags|=64,u.flags|=16384,u.flags&=-2981,1===u.tag)if(null===u.alternate)u.tag=17;else{var g=ua(-1,1);g.tag=2,ia(u,g)}u.lanes|=1;break e}i=void 0,u=t;var b=a.pingCache;if(null===b?(b=a.pingCache=new iu,i=new Set,b.set(s,i)):void 0===(i=b.get(s))&&(i=new Set,b.set(s,i)),!i.has(u)){i.add(u);var w=Ui.bind(null,a,s,u);s.then(w,w)}d.flags|=4096,d.lanes=t;break e}d=d.return}while(null!==d);i=Error((q(u.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Iu&&(Iu=2),i=ou(i,u),d=o;do{switch(d.tag){case 3:a=i,d.flags|=4096,t&=-t,d.lanes|=t,sa(d,su(0,a,t));break e;case 1:a=i;var k=d.type,E=d.stateNode;if(0===(64&d.flags)&&("function"===typeof k.getDerivedStateFromError||null!==E&&"function"===typeof E.componentDidCatch&&(null===Yu||!Yu.has(E)))){d.flags|=4096,t&=-t,d.lanes|=t,sa(d,cu(d,a,t));break e}}d=d.return}while(null!==d)}Ni(n)}catch(S){t=S,zu===n&&null!==n&&(zu=n=n.return);continue}break}}function Si(){var e=Pu.current;return Pu.current=To,null===e?To:e}function _i(e,t){var n=Tu;Tu|=16;var r=Si();for(Lu===e&&Ou===t||ki(e,t);;)try{xi();break}catch(l){Ei(e,l)}if(Jl(),Tu=n,Pu.current=r,null!==zu)throw Error(o(261));return Lu=null,Ou=0,Iu}function xi(){for(;null!==zu;)Pi(zu)}function Ci(){for(;null!==zu&&!xl();)Pi(zu)}function Pi(e){var t=Hu(e.alternate,e,Ru);e.memoizedProps=e.pendingProps,null===t?Ni(e):zu=t,Nu.current=null}function Ni(e){var t=e;do{var n=t.alternate;if(e=t.return,0===(2048&t.flags)){if(null!==(n=lu(n,t,Ru)))return void(zu=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!==(1073741824&Ru)||0===(4&n.mode)){for(var r=0,l=n.child;null!==l;)r|=l.lanes|l.childLanes,l=l.sibling;n.childLanes=r}null!==e&&0===(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=au(t)))return n.flags&=2047,void(zu=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(zu=t);zu=t=e}while(null!==t);0===Iu&&(Iu=5)}function Ti(e){var t=jl();return Wl(99,Li.bind(null,e,t)),null}function Li(e,t){do{Oi()}while(null!==Gu);if(0!==(48&Tu))throw Error(o(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(o(177));e.callbackNode=null;var r=n.lanes|n.childLanes,l=r,a=e.pendingLanes&~l;e.pendingLanes=l,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=l,e.mutableReadLanes&=l,e.entangledLanes&=l,l=e.entanglements;for(var u=e.eventTimes,i=e.expirationTimes;0<a;){var s=31-$t(a),c=1<<s;l[s]=0,u[s]=-1,i[s]=-1,a&=~c}if(null!==ti&&0===(24&r)&&ti.has(e)&&ti.delete(e),e===Lu&&(zu=Lu=null,Ou=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(l=Tu,Tu|=32,Nu.current=null,Ur=Yt,hr(u=pr())){if("selectionStart"in u)i={start:u.selectionStart,end:u.selectionEnd};else e:if(i=(i=u.ownerDocument)&&i.defaultView||window,(c=i.getSelection&&i.getSelection())&&0!==c.rangeCount){i=c.anchorNode,a=c.anchorOffset,s=c.focusNode,c=c.focusOffset;try{i.nodeType,s.nodeType}catch(C){i=null;break e}var f=0,d=-1,p=-1,h=0,m=0,v=u,y=null;t:for(;;){for(var g;v!==i||0!==a&&3!==v.nodeType||(d=f+a),v!==s||0!==c&&3!==v.nodeType||(p=f+c),3===v.nodeType&&(f+=v.nodeValue.length),null!==(g=v.firstChild);)y=v,v=g;for(;;){if(v===u)break t;if(y===i&&++h===a&&(d=f),y===s&&++m===c&&(p=f),null!==(g=v.nextSibling))break;y=(v=y).parentNode}v=g}i=-1===d||-1===p?null:{start:d,end:p}}else i=null;i=i||{start:0,end:0}}else i=null;Ar={focusedElem:u,selectionRange:i},Yt=!1,ui=null,ii=!1,Qu=r;do{try{zi()}catch(C){if(null===Qu)throw Error(o(330));Fi(Qu,C),Qu=Qu.nextEffect}}while(null!==Qu);ui=null,Qu=r;do{try{for(u=e;null!==Qu;){var b=Qu.flags;if(16&b&&ge(Qu.stateNode,""),128&b){var w=Qu.alternate;if(null!==w){var k=w.ref;null!==k&&("function"===typeof k?k(null):k.current=null)}}switch(1038&b){case 2:bu(Qu),Qu.flags&=-3;break;case 6:bu(Qu),Qu.flags&=-3,Su(Qu.alternate,Qu);break;case 1024:Qu.flags&=-1025;break;case 1028:Qu.flags&=-1025,Su(Qu.alternate,Qu);break;case 4:Su(Qu.alternate,Qu);break;case 8:Eu(u,i=Qu);var E=i.alternate;yu(i),null!==E&&yu(E)}Qu=Qu.nextEffect}}catch(C){if(null===Qu)throw Error(o(330));Fi(Qu,C),Qu=Qu.nextEffect}}while(null!==Qu);if(k=Ar,w=pr(),b=k.focusedElem,u=k.selectionRange,w!==b&&b&&b.ownerDocument&&dr(b.ownerDocument.documentElement,b)){null!==u&&hr(b)&&(w=u.start,void 0===(k=u.end)&&(k=w),"selectionStart"in b?(b.selectionStart=w,b.selectionEnd=Math.min(k,b.value.length)):(k=(w=b.ownerDocument||document)&&w.defaultView||window).getSelection&&(k=k.getSelection(),i=b.textContent.length,E=Math.min(u.start,i),u=void 0===u.end?E:Math.min(u.end,i),!k.extend&&E>u&&(i=u,u=E,E=i),i=fr(b,E),a=fr(b,u),i&&a&&(1!==k.rangeCount||k.anchorNode!==i.node||k.anchorOffset!==i.offset||k.focusNode!==a.node||k.focusOffset!==a.offset)&&((w=w.createRange()).setStart(i.node,i.offset),k.removeAllRanges(),E>u?(k.addRange(w),k.extend(a.node,a.offset)):(w.setEnd(a.node,a.offset),k.addRange(w))))),w=[];for(k=b;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"===typeof b.focus&&b.focus(),b=0;b<w.length;b++)(k=w[b]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Yt=!!Ur,Ar=Ur=null,e.current=n,Qu=r;do{try{for(b=e;null!==Qu;){var S=Qu.flags;if(36&S&&hu(b,Qu.alternate,Qu),128&S){w=void 0;var _=Qu.ref;if(null!==_){var x=Qu.stateNode;switch(Qu.tag){case 5:w=x;break;default:w=x}"function"===typeof _?_(w):_.current=w}}Qu=Qu.nextEffect}}catch(C){if(null===Qu)throw Error(o(330));Fi(Qu,C),Qu=Qu.nextEffect}}while(null!==Qu);Qu=null,Il(),Tu=l}else e.current=n;if(Xu)Xu=!1,Gu=e,Zu=t;else for(Qu=r;null!==Qu;)t=Qu.nextEffect,Qu.nextEffect=null,8&Qu.flags&&((S=Qu).sibling=null,S.stateNode=null),Qu=t;if(0===(r=e.pendingLanes)&&(Yu=null),1===r?e===ri?ni++:(ni=0,ri=e):ni=0,n=n.stateNode,kl&&"function"===typeof kl.onCommitFiberRoot)try{kl.onCommitFiberRoot(wl,n,void 0,64===(64&n.current.flags))}catch(C){}if(pi(e,Vl()),qu)throw qu=!1,e=Ku,Ku=null,e;return 0!==(8&Tu)||Hl(),null}function zi(){for(;null!==Qu;){var e=Qu.alternate;ii||null===ui||(0!==(8&Qu.flags)?et(Qu,ui)&&(ii=!0):13===Qu.tag&&xu(e,Qu)&&et(Qu,ui)&&(ii=!0));var t=Qu.flags;0!==(256&t)&&pu(e,Qu),0===(512&t)||Xu||(Xu=!0,$l(97,(function(){return Oi(),null}))),Qu=Qu.nextEffect}}function Oi(){if(90!==Zu){var e=97<Zu?97:Zu;return Zu=90,Wl(e,Ii)}return!1}function Ri(e,t){Ju.push(t,e),Xu||(Xu=!0,$l(97,(function(){return Oi(),null})))}function Mi(e,t){ei.push(t,e),Xu||(Xu=!0,$l(97,(function(){return Oi(),null})))}function Ii(){if(null===Gu)return!1;var e=Gu;if(Gu=null,0!==(48&Tu))throw Error(o(331));var t=Tu;Tu|=32;var n=ei;ei=[];for(var r=0;r<n.length;r+=2){var l=n[r],a=n[r+1],u=l.destroy;if(l.destroy=void 0,"function"===typeof u)try{u()}catch(s){if(null===a)throw Error(o(330));Fi(a,s)}}for(n=Ju,Ju=[],r=0;r<n.length;r+=2){l=n[r],a=n[r+1];try{var i=l.create;l.destroy=i()}catch(s){if(null===a)throw Error(o(330));Fi(a,s)}}for(i=e.current.firstEffect;null!==i;)e=i.nextEffect,i.nextEffect=null,8&i.flags&&(i.sibling=null,i.stateNode=null),i=e;return Tu=t,Hl(),!0}function Di(e,t,n){ia(e,t=su(0,t=ou(n,t),1)),t=si(),null!==(e=di(e,1))&&(Wt(e,1,t),pi(e,t))}function Fi(e,t){if(3===e.tag)Di(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Di(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"===typeof n.type.getDerivedStateFromError||"function"===typeof r.componentDidCatch&&(null===Yu||!Yu.has(r))){var l=cu(n,e=ou(t,e),1);if(ia(n,l),l=si(),null!==(n=di(n,1)))Wt(n,1,l),pi(n,l);else if("function"===typeof r.componentDidCatch&&(null===Yu||!Yu.has(r)))try{r.componentDidCatch(t,e)}catch(a){}break}}n=n.return}}function Ui(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=si(),e.pingedLanes|=e.suspendedLanes&n,Lu===e&&(Ou&n)===n&&(4===Iu||3===Iu&&(62914560&Ou)===Ou&&500>Vl()-Bu?ki(e,0):Vu|=n),pi(e,t)}function Ai(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0===(2&(t=e.mode))?t=1:0===(4&t)?t=99===jl()?1:2:(0===ai&&(ai=Fu),0===(t=jt(62914560&~ai))&&(t=4194304))),n=si(),null!==(e=di(e,t))&&(Wt(e,t,n),pi(e,n))}function Vi(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function ji(e,t,n,r){return new Vi(e,t,n,r)}function Bi(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Wi(e,t){var n=e.alternate;return null===n?((n=ji(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function $i(e,t,n,r,l,a){var u=2;if(r=e,"function"===typeof e)Bi(e)&&(u=1);else if("string"===typeof e)u=5;else e:switch(e){case _:return Hi(n.children,l,a,t);case D:u=8,l|=16;break;case x:u=8,l|=1;break;case C:return(e=ji(12,n,t,8|l)).elementType=C,e.type=C,e.lanes=a,e;case L:return(e=ji(13,n,t,l)).type=L,e.elementType=L,e.lanes=a,e;case z:return(e=ji(19,n,t,l)).elementType=z,e.lanes=a,e;case F:return Qi(n,l,a,t);case U:return(e=ji(24,n,t,l)).elementType=U,e.lanes=a,e;default:if("object"===typeof e&&null!==e)switch(e.$$typeof){case P:u=10;break e;case N:u=9;break e;case T:u=11;break e;case O:u=14;break e;case R:u=16,r=null;break e;case M:u=22;break e}throw Error(o(130,null==e?e:typeof e,""))}return(t=ji(u,n,t,l)).elementType=e,t.type=r,t.lanes=a,t}function Hi(e,t,n,r){return(e=ji(7,e,r,t)).lanes=n,e}function Qi(e,t,n,r){return(e=ji(23,e,r,t)).elementType=F,e.lanes=n,e}function qi(e,t,n){return(e=ji(6,e,null,t)).lanes=n,e}function Ki(e,t,n){return(t=ji(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Yi(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Bt(0),this.expirationTimes=Bt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Bt(0),this.mutableSourceEagerHydrationData=null}function Xi(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:S,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}function Gi(e,t,n,r){var l=t.current,a=si(),u=ci(l);e:if(n){t:{if(Xe(n=n._reactInternals)!==n||1!==n.tag)throw Error(o(170));var i=n;do{switch(i.tag){case 3:i=i.stateNode.context;break t;case 1:if(hl(i.type)){i=i.stateNode.__reactInternalMemoizedMergedChildContext;break t}}i=i.return}while(null!==i);throw Error(o(171))}if(1===n.tag){var s=n.type;if(hl(s)){n=yl(n,s,i);break e}}n=i}else n=sl;return null===t.context?t.context=n:t.pendingContext=n,(t=ua(a,u)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),ia(l,t),fi(l,u,a),u}function Zi(e){if(!(e=e.current).child)return null;switch(e.child.tag){case 5:default:return e.child.stateNode}}function Ji(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function es(e,t){Ji(e,t),(e=e.alternate)&&Ji(e,t)}function ts(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Yi(e,t,null!=n&&!0===n.hydrate),t=ji(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,aa(t),e[Gr]=n.current,Tr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var l=(t=r[e])._getVersion;l=l(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,l]:n.mutableSourceEagerHydrationData.push(t,l)}this._internalRoot=n}function ns(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function rs(e,t,n,r,l){var a=n._reactRootContainer;if(a){var o=a._internalRoot;if("function"===typeof l){var u=l;l=function(){var e=Zi(o);u.call(e)}}Gi(t,o,e,l)}else{if(a=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new ts(e,0,t?{hydrate:!0}:void 0)}(n,r),o=a._internalRoot,"function"===typeof l){var i=l;l=function(){var e=Zi(o);i.call(e)}}gi((function(){Gi(t,o,e,l)}))}return Zi(o)}function ls(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ns(t))throw Error(o(200));return Xi(e,t,null,n)}Hu=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||fl.current)Mo=!0;else{if(0===(n&r)){switch(Mo=!1,t.tag){case 3:$o(t),$a();break;case 5:Oa(t);break;case 1:hl(t.type)&&gl(t);break;case 4:La(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var l=t.type._context;il(Yl,l._currentValue),l._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!==(n&t.child.childLanes)?Yo(e,t,n):(il(Ma,1&Ma.current),null!==(t=nu(e,t,n))?t.sibling:null);il(Ma,1&Ma.current);break;case 19:if(r=0!==(n&t.childLanes),0!==(64&e.flags)){if(r)return tu(e,t,n);t.flags|=64}if(null!==(l=t.memoizedState)&&(l.rendering=null,l.tail=null,l.lastEffect=null),il(Ma,Ma.current),r)break;return null;case 23:case 24:return t.lanes=0,Ao(e,t,n)}return nu(e,t,n)}Mo=0!==(16384&e.flags)}else Mo=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,l=pl(t,cl.current),na(t,n),l=ro(null,t,r,e,l,n),t.flags|=1,"object"===typeof l&&null!==l&&"function"===typeof l.render&&void 0===l.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,hl(r)){var a=!0;gl(t)}else a=!1;t.memoizedState=null!==l.state&&void 0!==l.state?l.state:null,aa(t);var u=r.getDerivedStateFromProps;"function"===typeof u&&pa(t,r,u,e),l.updater=ha,t.stateNode=l,l._reactInternals=t,ga(t,r,e,n),t=Wo(null,t,r,!0,a,n)}else t.tag=0,Io(null,t,l,n),t=t.child;return t;case 16:l=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,l=(a=l._init)(l._payload),t.type=l,a=t.tag=function(e){if("function"===typeof e)return Bi(e)?1:0;if(void 0!==e&&null!==e){if((e=e.$$typeof)===T)return 11;if(e===O)return 14}return 2}(l),e=Kl(l,e),a){case 0:t=jo(null,t,l,e,n);break e;case 1:t=Bo(null,t,l,e,n);break e;case 11:t=Do(null,t,l,e,n);break e;case 14:t=Fo(null,t,l,Kl(l.type,e),r,n);break e}throw Error(o(306,l,""))}return t;case 0:return r=t.type,l=t.pendingProps,jo(e,t,r,l=t.elementType===r?l:Kl(r,l),n);case 1:return r=t.type,l=t.pendingProps,Bo(e,t,r,l=t.elementType===r?l:Kl(r,l),n);case 3:if($o(t),r=t.updateQueue,null===e||null===r)throw Error(o(282));if(r=t.pendingProps,l=null!==(l=t.memoizedState)?l.element:null,oa(e,t),ca(t,r,null,n),(r=t.memoizedState.element)===l)$a(),t=nu(e,t,n);else{if((a=(l=t.stateNode).hydrate)&&(Fa=Hr(t.stateNode.containerInfo.firstChild),Da=t,a=Ua=!0),a){if(null!=(e=l.mutableSourceEagerHydrationData))for(l=0;l<e.length;l+=2)(a=e[l])._workInProgressVersionPrimary=e[l+1],Ha.push(a);for(n=_a(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Io(e,t,r,n),$a();t=t.child}return t;case 5:return Oa(t),null===e&&ja(t),r=t.type,l=t.pendingProps,a=null!==e?e.memoizedProps:null,u=l.children,jr(r,l)?u=null:null!==a&&jr(r,a)&&(t.flags|=16),Vo(e,t),Io(e,t,u,n),t.child;case 6:return null===e&&ja(t),null;case 13:return Yo(e,t,n);case 4:return La(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Sa(t,null,r,n):Io(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,Do(e,t,r,l=t.elementType===r?l:Kl(r,l),n);case 7:return Io(e,t,t.pendingProps,n),t.child;case 8:case 12:return Io(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,l=t.pendingProps,u=t.memoizedProps,a=l.value;var i=t.type._context;if(il(Yl,i._currentValue),i._currentValue=a,null!==u)if(i=u.value,0===(a=ur(i,a)?0:0|("function"===typeof r._calculateChangedBits?r._calculateChangedBits(i,a):1073741823))){if(u.children===l.children&&!fl.current){t=nu(e,t,n);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var s=i.dependencies;if(null!==s){u=i.child;for(var c=s.firstContext;null!==c;){if(c.context===r&&0!==(c.observedBits&a)){1===i.tag&&((c=ua(-1,n&-n)).tag=2,ia(i,c)),i.lanes|=n,null!==(c=i.alternate)&&(c.lanes|=n),ta(i.return,n),s.lanes|=n;break}c=c.next}}else u=10===i.tag&&i.type===t.type?null:i.child;if(null!==u)u.return=i;else for(u=i;null!==u;){if(u===t){u=null;break}if(null!==(i=u.sibling)){i.return=u.return,u=i;break}u=u.return}i=u}Io(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=(a=t.pendingProps).children,na(t,n),r=r(l=ra(l,a.unstable_observedBits)),t.flags|=1,Io(e,t,r,n),t.child;case 14:return a=Kl(l=t.type,t.pendingProps),Fo(e,t,l,a=Kl(l.type,a),r,n);case 15:return Uo(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Kl(r,l),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,hl(r)?(e=!0,gl(t)):e=!1,na(t,n),va(t,r,l),ga(t,r,l,n),Wo(null,t,r,!0,e,n);case 19:return tu(e,t,n);case 23:case 24:return Ao(e,t,n)}throw Error(o(156,t.tag))},ts.prototype.render=function(e){Gi(e,this._internalRoot,null,null)},ts.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Gi(null,e,null,(function(){t[Gr]=null}))},tt=function(e){13===e.tag&&(fi(e,4,si()),es(e,4))},nt=function(e){13===e.tag&&(fi(e,67108864,si()),es(e,67108864))},rt=function(e){if(13===e.tag){var t=si(),n=ci(e);fi(e,n,t),es(e,n)}},lt=function(e,t){return t()},Pe=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var l=nl(r);if(!l)throw Error(o(90));G(r),ne(r,l)}}}break;case"textarea":se(e,n);break;case"select":null!=(t=n.value)&&oe(e,!!n.multiple,t,!1)}},Re=yi,Me=function(e,t,n,r,l){var a=Tu;Tu|=4;try{return Wl(98,e.bind(null,t,n,r,l))}finally{0===(Tu=a)&&($u(),Hl())}},Ie=function(){0===(49&Tu)&&(function(){if(null!==ti){var e=ti;ti=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,pi(e,Vl())}))}Hl()}(),Oi())},De=function(e,t){var n=Tu;Tu|=2;try{return e(t)}finally{0===(Tu=n)&&($u(),Hl())}};var as={Events:[el,tl,nl,ze,Oe,Oi,{current:!1}]},os={findFiberByHostInstance:Jr,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},us={bundleType:os.bundleType,version:os.version,rendererPackageName:os.rendererPackageName,rendererConfig:os.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Je(e))?null:e.stateNode},findFiberByHostInstance:os.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var is=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!is.isDisabled&&is.supportsFiber)try{wl=is.inject(us),kl=is}catch(ve){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=as,t.createPortal=ls,t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"===typeof e.render)throw Error(o(188));throw Error(o(268,Object.keys(e)))}return e=null===(e=Je(t))?null:e.stateNode},t.flushSync=function(e,t){var n=Tu;if(0!==(48&n))return e(t);Tu|=1;try{if(e)return Wl(99,e.bind(null,t))}finally{Tu=n,Hl()}},t.hydrate=function(e,t,n){if(!ns(t))throw Error(o(200));return rs(null,e,t,!0,n)},t.render=function(e,t,n){if(!ns(t))throw Error(o(200));return rs(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!ns(e))throw Error(o(40));return!!e._reactRootContainer&&(gi((function(){rs(null,null,e,!1,(function(){e._reactRootContainer=null,e[Gr]=null}))})),!0)},t.unstable_batchedUpdates=yi,t.unstable_createPortal=function(e,t){return ls(e,t,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)},t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!ns(n))throw Error(o(200));if(null==e||void 0===e._reactInternals)throw Error(o(38));return rs(e,t,n,!1,r)},t.version="17.0.2"},3935:function(e,t,n){"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},5251:function(e,t,n){"use strict";n(6086);var r=n(7294),l=60103;if(60107,"function"===typeof Symbol&&Symbol.for){var a=Symbol.for;l=a("react.element"),a("react.fragment")}var o=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,u=Object.prototype.hasOwnProperty,i={key:!0,ref:!0,__self:!0,__source:!0};function s(e,t,n){var r,a={},s=null,c=null;for(r in void 0!==n&&(s=""+n),void 0!==t.key&&(s=""+t.key),void 0!==t.ref&&(c=t.ref),t)u.call(t,r)&&!i.hasOwnProperty(r)&&(a[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===a[r]&&(a[r]=t[r]);return{$$typeof:l,type:e,key:s,ref:c,props:a,_owner:o.current}}t.jsx=s,t.jsxs=s},2408:function(e,t,n){"use strict";var r=n(6086),l=60103,a=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var o=60109,u=60110,i=60112;t.Suspense=60113;var s=60115,c=60116;if("function"===typeof Symbol&&Symbol.for){var f=Symbol.for;l=f("react.element"),a=f("react.portal"),t.Fragment=f("react.fragment"),t.StrictMode=f("react.strict_mode"),t.Profiler=f("react.profiler"),o=f("react.provider"),u=f("react.context"),i=f("react.forward_ref"),t.Suspense=f("react.suspense"),s=f("react.memo"),c=f("react.lazy")}var d="function"===typeof Symbol&&Symbol.iterator;function p(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m={};function v(e,t,n){this.props=e,this.context=t,this.refs=m,this.updater=n||h}function y(){}function g(e,t,n){this.props=e,this.context=t,this.refs=m,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if("object"!==typeof e&&"function"!==typeof e&&null!=e)throw Error(p(85));this.updater.enqueueSetState(this,e,t,"setState")},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=v.prototype;var b=g.prototype=new y;b.constructor=g,r(b,v.prototype),b.isPureReactComponent=!0;var w={current:null},k=Object.prototype.hasOwnProperty,E={key:!0,ref:!0,__self:!0,__source:!0};function S(e,t,n){var r,a={},o=null,u=null;if(null!=t)for(r in void 0!==t.ref&&(u=t.ref),void 0!==t.key&&(o=""+t.key),t)k.call(t,r)&&!E.hasOwnProperty(r)&&(a[r]=t[r]);var i=arguments.length-2;if(1===i)a.children=n;else if(1<i){for(var s=Array(i),c=0;c<i;c++)s[c]=arguments[c+2];a.children=s}if(e&&e.defaultProps)for(r in i=e.defaultProps)void 0===a[r]&&(a[r]=i[r]);return{$$typeof:l,type:e,key:o,ref:u,props:a,_owner:w.current}}function _(e){return"object"===typeof e&&null!==e&&e.$$typeof===l}var x=/\/+/g;function C(e,t){return"object"===typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function P(e,t,n,r,o){var u=typeof e;"undefined"!==u&&"boolean"!==u||(e=null);var i=!1;if(null===e)i=!0;else switch(u){case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case l:case a:i=!0}}if(i)return o=o(i=e),e=""===r?"."+C(i,0):r,Array.isArray(o)?(n="",null!=e&&(n=e.replace(x,"$&/")+"/"),P(o,t,n,"",(function(e){return e}))):null!=o&&(_(o)&&(o=function(e,t){return{$$typeof:l,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(o,n+(!o.key||i&&i.key===o.key?"":(""+o.key).replace(x,"$&/")+"/")+e)),t.push(o)),1;if(i=0,r=""===r?".":r+":",Array.isArray(e))for(var s=0;s<e.length;s++){var c=r+C(u=e[s],s);i+=P(u,t,n,c,o)}else if("function"===typeof(c=function(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=d&&e[d]||e["@@iterator"])?e:null}(e)))for(e=c.call(e),s=0;!(u=e.next()).done;)i+=P(u=u.value,t,n,c=r+C(u,s++),o);else if("object"===u)throw t=""+e,Error(p(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return i}function N(e,t,n){if(null==e)return e;var r=[],l=0;return P(e,r,"","",(function(e){return t.call(n,e,l++)})),r}function T(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var L={current:null};function z(){var e=L.current;if(null===e)throw Error(p(321));return e}var O={ReactCurrentDispatcher:L,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:N,forEach:function(e,t,n){N(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return N(e,(function(){t++})),t},toArray:function(e){return N(e,(function(e){return e}))||[]},only:function(e){if(!_(e))throw Error(p(143));return e}},t.Component=v,t.PureComponent=g,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=O,t.cloneElement=function(e,t,n){if(null===e||void 0===e)throw Error(p(267,e));var a=r({},e.props),o=e.key,u=e.ref,i=e._owner;if(null!=t){if(void 0!==t.ref&&(u=t.ref,i=w.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(c in t)k.call(t,c)&&!E.hasOwnProperty(c)&&(a[c]=void 0===t[c]&&void 0!==s?s[c]:t[c])}var c=arguments.length-2;if(1===c)a.children=n;else if(1<c){s=Array(c);for(var f=0;f<c;f++)s[f]=arguments[f+2];a.children=s}return{$$typeof:l,type:e.type,key:o,ref:u,props:a,_owner:i}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:u,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:o,_context:e},e.Consumer=e},t.createElement=S,t.createFactory=function(e){var t=S.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:i,render:e}},t.isValidElement=_,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:T}},t.memo=function(e,t){return{$$typeof:s,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return z().useCallback(e,t)},t.useContext=function(e,t){return z().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return z().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return z().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return z().useLayoutEffect(e,t)},t.useMemo=function(e,t){return z().useMemo(e,t)},t.useReducer=function(e,t,n){return z().useReducer(e,t,n)},t.useRef=function(e){return z().useRef(e)},t.useState=function(e){return z().useState(e)},t.version="17.0.2"},7294:function(e,t,n){"use strict";e.exports=n(2408)},5893:function(e,t,n){"use strict";e.exports=n(5251)},53:function(e,t){"use strict";var n,r,l,a;if("object"===typeof performance&&"function"===typeof performance.now){var o=performance;t.unstable_now=function(){return o.now()}}else{var u=Date,i=u.now();t.unstable_now=function(){return u.now()-i}}if("undefined"===typeof window||"function"!==typeof MessageChannel){var s=null,c=null,f=function(){if(null!==s)try{var e=t.unstable_now();s(!0,e),s=null}catch(n){throw setTimeout(f,0),n}};n=function(e){null!==s?setTimeout(n,0,e):(s=e,setTimeout(f,0))},r=function(e,t){c=setTimeout(e,t)},l=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},a=t.unstable_forceFrameRate=function(){}}else{var d=window.setTimeout,p=window.clearTimeout;if("undefined"!==typeof console){var h=window.cancelAnimationFrame;"function"!==typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!==typeof h&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var m=!1,v=null,y=-1,g=5,b=0;t.unstable_shouldYield=function(){return t.unstable_now()>=b},a=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):g=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,k=w.port2;w.port1.onmessage=function(){if(null!==v){var e=t.unstable_now();b=e+g;try{v(!0,e)?k.postMessage(null):(m=!1,v=null)}catch(n){throw k.postMessage(null),n}}else m=!1},n=function(e){v=e,m||(m=!0,k.postMessage(null))},r=function(e,n){y=d((function(){e(t.unstable_now())}),n)},l=function(){p(y),y=-1}}function E(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,l=e[r];if(!(void 0!==l&&0<x(l,t)))break e;e[r]=t,e[n]=l,n=r}}function S(e){return void 0===(e=e[0])?null:e}function _(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,l=e.length;r<l;){var a=2*(r+1)-1,o=e[a],u=a+1,i=e[u];if(void 0!==o&&0>x(o,n))void 0!==i&&0>x(i,o)?(e[r]=i,e[u]=n,r=u):(e[r]=o,e[a]=n,r=a);else{if(!(void 0!==i&&0>x(i,n)))break e;e[r]=i,e[u]=n,r=u}}}return t}return null}function x(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],P=[],N=1,T=null,L=3,z=!1,O=!1,R=!1;function M(e){for(var t=S(P);null!==t;){if(null===t.callback)_(P);else{if(!(t.startTime<=e))break;_(P),t.sortIndex=t.expirationTime,E(C,t)}t=S(P)}}function I(e){if(R=!1,M(e),!O)if(null!==S(C))O=!0,n(D);else{var t=S(P);null!==t&&r(I,t.startTime-e)}}function D(e,n){O=!1,R&&(R=!1,l()),z=!0;var a=L;try{for(M(n),T=S(C);null!==T&&(!(T.expirationTime>n)||e&&!t.unstable_shouldYield());){var o=T.callback;if("function"===typeof o){T.callback=null,L=T.priorityLevel;var u=o(T.expirationTime<=n);n=t.unstable_now(),"function"===typeof u?T.callback=u:T===S(C)&&_(C),M(n)}else _(C);T=S(C)}if(null!==T)var i=!0;else{var s=S(P);null!==s&&r(I,s.startTime-n),i=!1}return i}finally{T=null,L=a,z=!1}}var F=a;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){O||z||(O=!0,n(D))},t.unstable_getCurrentPriorityLevel=function(){return L},t.unstable_getFirstCallbackNode=function(){return S(C)},t.unstable_next=function(e){switch(L){case 1:case 2:case 3:var t=3;break;default:t=L}var n=L;L=t;try{return e()}finally{L=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=F,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=L;L=e;try{return t()}finally{L=n}},t.unstable_scheduleCallback=function(e,a,o){var u=t.unstable_now();switch("object"===typeof o&&null!==o?o="number"===typeof(o=o.delay)&&0<o?u+o:u:o=u,e){case 1:var i=-1;break;case 2:i=250;break;case 5:i=1073741823;break;case 4:i=1e4;break;default:i=5e3}return e={id:N++,callback:a,priorityLevel:e,startTime:o,expirationTime:i=o+i,sortIndex:-1},o>u?(e.sortIndex=o,E(P,e),null===S(C)&&e===S(P)&&(R?l():R=!0,r(I,o-u))):(e.sortIndex=i,E(C,e),O||z||(O=!0,n(D))),e},t.unstable_wrapCallback=function(e){var t=L;return function(){var n=L;L=t;try{return e.apply(this,arguments)}finally{L=n}}}},3840:function(e,t,n){"use strict";e.exports=n(53)}}]); \ No newline at end of file
diff --git a/build/static/chunks/main-a3a79aff3ff232b41814.js b/build/static/chunks/main-a3a79aff3ff232b41814.js
new file mode 100644
index 0000000..190daf9
--- /dev/null
+++ b/build/static/chunks/main-a3a79aff3ff232b41814.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[179],{7228:function(e){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}},2858:function(e){e.exports=function(e){if(Array.isArray(e))return e}},1506:function(e){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},8926:function(e){function t(e,t,r,n,o,a,i){try{var u=e[a](i),c=u.value}catch(s){return void r(s)}u.done?t(c):Promise.resolve(c).then(n,o)}e.exports=function(e){return function(){var r=this,n=arguments;return new Promise((function(o,a){var i=e.apply(r,n);function u(e){t(i,o,a,u,c,"next",e)}function c(e){t(i,o,a,u,c,"throw",e)}u(void 0)}))}}},4575:function(e){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},9100:function(e,t,r){var n=r(9489),o=r(7067);function a(t,r,i){return o()?e.exports=a=Reflect.construct:e.exports=a=function(e,t,r){var o=[null];o.push.apply(o,t);var a=new(Function.bind.apply(e,o));return r&&n(a,r.prototype),a},a.apply(null,arguments)}e.exports=a},3913:function(e){function t(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}e.exports=function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}},7154:function(e){function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},t.apply(this,arguments)}e.exports=t},9754:function(e){function t(r){return e.exports=t=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},t(r)}e.exports=t},2205:function(e,t,r){var n=r(9489);e.exports=function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&n(e,t)}},5318:function(e){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},862:function(e,t,r){var n=r(8);function o(){if("function"!==typeof WeakMap)return null;var e=new WeakMap;return o=function(){return e},e}e.exports=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!==typeof e)return{default:e};var t=o();if(t&&t.has(e))return t.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var u=a?Object.getOwnPropertyDescriptor(e,i):null;u&&(u.get||u.set)?Object.defineProperty(r,i,u):r[i]=e[i]}return r.default=e,t&&t.set(e,r),r}},7067:function(e){e.exports=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}},3884:function(e){e.exports=function(e,t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e)){var r=[],n=!0,o=!1,a=void 0;try{for(var i,u=e[Symbol.iterator]();!(n=(i=u.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(c){o=!0,a=c}finally{try{n||null==u.return||u.return()}finally{if(o)throw a}}return r}}},521:function(e){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},7316:function(e){e.exports=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}},8585:function(e,t,r){var n=r(8),o=r(1506);e.exports=function(e,t){return!t||"object"!==n(t)&&"function"!==typeof t?o(e):t}},9489:function(e){function t(r,n){return e.exports=t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},t(r,n)}e.exports=t},3038:function(e,t,r){var n=r(2858),o=r(3884),a=r(379),i=r(521);e.exports=function(e,t){return n(e)||o(e,t)||a(e,t)||i()}},8:function(e){function t(r){return"function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?e.exports=t=function(e){return typeof e}:e.exports=t=function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(r)}e.exports=t},379:function(e,t,r){var n=r(7228);e.exports=function(e,t){if(e){if("string"===typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}},7757:function(e,t,r){e.exports=r(5666)},400:function(){"trimStart"in String.prototype||(String.prototype.trimStart=String.prototype.trimLeft),"trimEnd"in String.prototype||(String.prototype.trimEnd=String.prototype.trimRight),"description"in Symbol.prototype||Object.defineProperty(Symbol.prototype,"description",{configurable:!0,get:function(){var e=/\((.*)\)/.exec(this.toString());return e?e[1]:void 0}}),Array.prototype.flat||(Array.prototype.flat=function(e,t){return t=this.concat.apply([],this),e>1&&t.some(Array.isArray)?t.flat(e-1):t},Array.prototype.flatMap=function(e,t){return this.map(e,t).flat()}),Promise.prototype.finally||(Promise.prototype.finally=function(e){if("function"!=typeof e)return this.then(e,e);var t=this.constructor||Promise;return this.then((function(r){return t.resolve(e()).then((function(){return r}))}),(function(r){return t.resolve(e()).then((function(){throw r}))}))})},6792:function(e,t){"use strict";t.__esModule=!0,t.default=function(){var e=null;return{mountedInstances:new Set,updateHead:function(t){var r=e=Promise.resolve().then((function(){if(r===e){e=null;var o={};t.forEach((function(e){"link"===e.type&&e.props["data-optimized-fonts"]&&!document.querySelector('style[data-href="'.concat(e.props["data-href"],'"]'))&&(e.props.href=e.props["data-href"],e.props["data-href"]=void 0);var t=o[e.type]||[];t.push(e),o[e.type]=t}));var a=o.title?o.title[0]:null,i="";if(a){var u=a.props.children;i="string"===typeof u?u:Array.isArray(u)?u.join(""):""}i!==document.title&&(document.title=i),["meta","base","link","style","script"].forEach((function(e){!function(e,t){var r=document.getElementsByTagName("head")[0],o=r.querySelector("meta[name=next-head-count]");0;for(var a=Number(o.content),i=[],u=0,c=o.previousElementSibling;u<a;u++,c=c.previousElementSibling)c.tagName.toLowerCase()===e&&i.push(c);var s=t.map(n).filter((function(e){for(var t=0,r=i.length;t<r;t++){if(i[t].isEqualNode(e))return i.splice(t,1),!1}return!0}));i.forEach((function(e){return e.parentNode.removeChild(e)})),s.forEach((function(e){return r.insertBefore(e,o)})),o.content=(a-i.length+s.length).toString()}(e,o[e]||[])}))}}))}}},t.DOMAttributeNames=void 0;var r={acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv",noModule:"noModule"};function n(e){var t=e.type,n=e.props,o=document.createElement(t);for(var a in n)if(n.hasOwnProperty(a)&&"children"!==a&&"dangerouslySetInnerHTML"!==a&&void 0!==n[a]){var i=r[a]||a.toLowerCase();"script"!==t||"async"!==i&&"defer"!==i&&"noModule"!==i?o.setAttribute(i,n[a]):o[i]=!!n[a]}var u=n.children,c=n.dangerouslySetInnerHTML;return c?o.innerHTML=c.__html||"":u&&(o.textContent="string"===typeof u?u:Array.isArray(u)?u.join(""):""),o}t.DOMAttributeNames=r},310:function(e,t,r){"use strict";var n=r(7757),o=r(8926),a=r(4575),i=r(3913),u=r(2205),c=r(8585),s=r(9754),l=r(3038);function f(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=s(e);if(t){var o=s(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var h=r(862),p=r(5318);t.__esModule=!0,t.render=ue,t.renderError=se,t.default=t.emitter=t.router=t.version=void 0;var d=p(r(7154));r(400);var v=p(r(7294)),m=p(r(3935)),y=r(1165),g=p(r(8119)),b=r(6171),_=r(9414),w=r(8073),x=h(r(8187)),S=h(r(3584)),E=r(4755),P=r(6579),k=p(r(6792)),L=p(r(7145)),R=p(r(9934)),C=r(8475),T=r(4651),A=JSON.parse(document.getElementById("__NEXT_DATA__").textContent);window.__NEXT_DATA__=A;t.version="11.0.1";var O=function(e){return[].slice.call(e)},I=A.props,M=A.err,N=A.page,j=A.query,D=A.buildId,F=A.assetPrefix,U=A.runtimeConfig,q=A.dynamicIds,W=A.isFallback,B=A.locale,H=A.locales,G=A.domainLocales,V=A.isPreview,X=A.defaultLocale,z=F||"";r.p="".concat(z,"/_next/"),S.setConfig({serverRuntimeConfig:{},publicRuntimeConfig:U||{}});var $=(0,E.getURL)();((0,_.hasBasePath)($)&&($=(0,_.delBasePath)($)),A.scriptLoader)&&(0,r(7926).initScriptLoader)(A.scriptLoader);var Q=new L.default(D,z),Y=function(e){var t=l(e,2),r=t[0],n=t[1];return Q.routeLoader.onEntrypoint(r,n)};window.__NEXT_P&&window.__NEXT_P.map((function(e){return setTimeout((function(){return Y(e)}),0)})),window.__NEXT_P=[],window.__NEXT_P.push=Y;var J,K,Z,ee,te=(0,k.default)(),re=document.getElementById("__next");t.router=K;var ne,oe=function(e){u(r,e);var t=f(r);function r(){return a(this,r),t.apply(this,arguments)}return i(r,[{key:"componentDidCatch",value:function(e,t){this.props.fn(e,t)}},{key:"componentDidMount",value:function(){this.scrollToHash(),!K.isSsr||"/404"===N||"/_error"===N&&I&&I.pageProps&&404===I.pageProps.statusCode||!(W||A.nextExport&&((0,w.isDynamicRoute)(K.pathname)||location.search)||I&&I.__N_SSG&&location.search)||K.replace(K.pathname+"?"+String(x.assign(x.urlQueryToSearchParams(K.query),new URLSearchParams(location.search))),$,{_h:1,shallow:!W})}},{key:"componentDidUpdate",value:function(){this.scrollToHash()}},{key:"scrollToHash",value:function(){var e=location.hash;if(e=e&&e.substring(1)){var t=document.getElementById(e);t&&setTimeout((function(){return t.scrollIntoView()}),0)}}},{key:"render",value:function(){return this.props.children}}]),r}(v.default.Component),ae=(0,g.default)();t.emitter=ae;var ie=function(){var e=o(n.mark((function e(){var r,o,a,i,u,c,s=arguments;return n.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s.length>0&&void 0!==s[0]?s[0]:{},r=M,e.prev=3,e.next=6,Q.routeLoader.whenEntrypoint("/_app");case 6:if(!("error"in(o=e.sent))){e.next=9;break}throw o.error;case 9:a=o.component,i=o.exports,Z=a,i&&i.reportWebVitals&&(ee=function(e){var t,r=e.id,n=e.name,o=e.startTime,a=e.value,u=e.duration,c=e.entryType,s=e.entries,l="".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12);s&&s.length&&(t=s[0].startTime),i.reportWebVitals({id:r||l,name:n,startTime:o||t,value:null==a?u:a,label:"mark"===c||"measure"===c?"custom":"web-vital"})}),e.next=16;break;case 16:return e.next=18,Q.routeLoader.whenEntrypoint(N);case 18:e.t0=e.sent;case 19:if(!("error"in(u=e.t0))){e.next=22;break}throw u.error;case 22:ne=u.component,e.next=27;break;case 27:e.next=32;break;case 29:e.prev=29,e.t1=e.catch(3),r=e.t1;case 32:if(!window.__NEXT_PRELOADREADY){e.next=36;break}return e.next=36,window.__NEXT_PRELOADREADY(q);case 36:return t.router=K=(0,T.createRouter)(N,j,$,{initialProps:I,pageLoader:Q,App:Z,Component:ne,wrapApp:me,err:r,isFallback:Boolean(W),subscription:function(e,t,r){return ue(Object.assign({},e,{App:t,scroll:r}))},locale:B,locales:H,defaultLocale:X,domainLocales:G,isPreview:V}),ue(c={App:Z,initial:!0,Component:ne,props:I,err:r}),e.abrupt("return",ae);case 43:return e.abrupt("return",{emitter:ae,render:ue,renderCtx:c});case 44:case"end":return e.stop()}}),e,null,[[3,29]])})));return function(){return e.apply(this,arguments)}}();function ue(e){return ce.apply(this,arguments)}function ce(){return(ce=o(n.mark((function e(t){return n.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t.err){e.next=4;break}return e.next=3,se(t);case 3:return e.abrupt("return");case 4:return e.prev=4,e.next=7,ye(t);case 7:e.next=16;break;case 9:if(e.prev=9,e.t0=e.catch(4),!e.t0.cancelled){e.next=13;break}throw e.t0;case 13:return e.next=16,se((0,d.default)({},t,{err:e.t0}));case 16:case"end":return e.stop()}}),e,null,[[4,9]])})))).apply(this,arguments)}function se(e){var t=e.App,r=e.err;return console.error(r),Q.loadPage("/_error").then((function(n){var o=n.page,a=n.styleSheets,i=me(t),u={Component:o,AppTree:i,router:K,ctx:{err:r,pathname:N,query:j,asPath:$,AppTree:i}};return Promise.resolve(e.props?e.props:(0,E.loadGetInitialProps)(t,u)).then((function(t){return ye((0,d.default)({},e,{err:r,Component:o,styleSheets:a,props:t}))}))}))}t.default=ie;var le="function"===typeof m.default.hydrate;function fe(){E.ST&&(performance.mark("afterHydrate"),performance.measure("Next.js-before-hydration","navigationStart","beforeRender"),performance.measure("Next.js-hydration","beforeRender","afterHydrate"),ee&&performance.getEntriesByName("Next.js-hydration").forEach(ee),pe())}function he(){if(E.ST){performance.mark("afterRender");var e=performance.getEntriesByName("routeChange","mark");e.length&&(performance.measure("Next.js-route-change-to-render",e[0].name,"beforeRender"),performance.measure("Next.js-render","beforeRender","afterRender"),ee&&(performance.getEntriesByName("Next.js-render").forEach(ee),performance.getEntriesByName("Next.js-route-change-to-render").forEach(ee)),pe(),["Next.js-route-change-to-render","Next.js-render"].forEach((function(e){return performance.clearMeasures(e)})))}}function pe(){["beforeRender","afterHydrate","afterRender","routeChange"].forEach((function(e){return performance.clearMarks(e)}))}function de(e){var t=e.children;return v.default.createElement(oe,{fn:function(e){return se({App:Z,err:e}).catch((function(e){return console.error("Error rendering page: ",e)}))}},v.default.createElement(b.RouterContext.Provider,{value:(0,T.makePublicRouterInstance)(K)},v.default.createElement(y.HeadManagerContext.Provider,{value:te},t)))}var ve,me=function(e){return function(t){var r=(0,d.default)({},t,{Component:ne,err:M,router:K});return v.default.createElement(de,null,v.default.createElement(e,r))}};function ye(e){var t=e.App,r=e.Component,n=e.props,o=e.err,a="initial"in e?void 0:e.styleSheets;r=r||ve.Component,n=n||ve.props;var i=(0,d.default)({},n,{Component:r,err:o,router:K});ve=i;var u,c=!1,s=new Promise((function(e,t){J&&J(),u=function(){J=null,e()},J=function(){c=!0,J=null;var e=new Error("Cancel rendering route");e.cancelled=!0,t(e)}}));function l(){u()}!function(){if(!a)return!1;var e=O(document.querySelectorAll("style[data-n-href]")),t=new Set(e.map((function(e){return e.getAttribute("data-n-href")}))),r=document.querySelector("noscript[data-n-css]"),n=null==r?void 0:r.getAttribute("data-n-css");a.forEach((function(e){var r=e.href,o=e.text;if(!t.has(r)){var a=document.createElement("style");a.setAttribute("data-n-href",r),a.setAttribute("media","x"),n&&a.setAttribute("nonce",n),document.head.appendChild(a),a.appendChild(document.createTextNode(o))}}))}();var f=v.default.createElement(v.default.Fragment,null,v.default.createElement(be,{callback:function(){if(a&&!c){for(var t=new Set(a.map((function(e){return e.href}))),r=O(document.querySelectorAll("style[data-n-href]")),n=r.map((function(e){return e.getAttribute("data-n-href")})),o=0;o<n.length;++o)t.has(n[o])?r[o].removeAttribute("media"):r[o].setAttribute("media","x");var i=document.querySelector("noscript[data-n-css]");i&&a.forEach((function(e){var t=e.href,r=document.querySelector('style[data-n-href="'.concat(t,'"]'));r&&(i.parentNode.insertBefore(r,i.nextSibling),i=r)})),O(document.querySelectorAll("link[data-n-p]")).forEach((function(e){e.parentNode.removeChild(e)})),getComputedStyle(document.body,"height")}e.scroll&&window.scrollTo(e.scroll.x,e.scroll.y)}}),v.default.createElement(de,null,v.default.createElement(t,i),v.default.createElement(P.Portal,{type:"next-route-announcer"},v.default.createElement(C.RouteAnnouncer,null))));return function(e,t){E.ST&&performance.mark("beforeRender");var r=t(le?fe:he);le?(m.default.hydrate(r,e),le=!1):m.default.render(r,e)}(re,(function(e){return v.default.createElement(ge,{callbacks:[e,l]},f)})),s}function ge(e){var t=e.callbacks,r=e.children;return v.default.useLayoutEffect((function(){return t.forEach((function(e){return e()}))}),[t]),v.default.useEffect((function(){(0,R.default)(ee)}),[]),r}function be(e){var t=e.callback;return v.default.useLayoutEffect((function(){return t()}),[t]),null}},457:function(e,t,r){"use strict";var n=r(862)(r(310));window.next=n,(0,n.default)().catch(console.error)},5965:function(e,t){"use strict";function r(e){return e.endsWith("/")&&"/"!==e?e.slice(0,-1):e}t.__esModule=!0,t.removePathTrailingSlash=r,t.normalizePathTrailingSlash=void 0;var n=r;t.normalizePathTrailingSlash=n},7145:function(e,t,r){"use strict";var n=r(4575),o=r(3913),a=r(862),i=r(5318);t.__esModule=!0,t.default=void 0;var u=r(9414),c=i(r(5292)),s=r(8073),l=r(3900),f=r(5965),h=a(r(1392));var p=function(){function e(t,r){n(this,e),this.buildId=void 0,this.assetPrefix=void 0,this.promisedSsgManifest=void 0,this.promisedDevPagesManifest=void 0,this.routeLoader=void 0,this.routeLoader=(0,h.default)(r),this.buildId=t,this.assetPrefix=r,this.promisedSsgManifest=new Promise((function(e){window.__SSG_MANIFEST?e(window.__SSG_MANIFEST):window.__SSG_MANIFEST_CB=function(){e(window.__SSG_MANIFEST)}}))}return o(e,[{key:"getPageList",value:function(){return(0,h.getClientBuildManifest)().then((function(e){return e.sortedPages}))}},{key:"getDataHref",value:function(e,t,r,n){var o=this,a=(0,l.parseRelativeUrl)(e),i=a.pathname,h=a.query,p=a.search,d=(0,l.parseRelativeUrl)(t).pathname,v=function(e){if("/"!==e[0])throw new Error('Route name should start with a "/", got "'.concat(e,'"'));return"/"===e?e:e.replace(/\/$/,"")}(i),m=function(e){var t=(0,c.default)((0,f.removePathTrailingSlash)((0,u.addLocale)(e,n)),".json");return(0,u.addBasePath)("/_next/data/".concat(o.buildId).concat(t).concat(r?"":p))},y=(0,s.isDynamicRoute)(v),g=y?(0,u.interpolateAs)(i,d,h).result:"";return y?g&&m(g):m(v)}},{key:"_isSsg",value:function(e){return this.promisedSsgManifest.then((function(t){return t.has(e)}))}},{key:"loadPage",value:function(e){return this.routeLoader.loadRoute(e).then((function(e){if("component"in e)return{page:e.component,mod:e.exports,styleSheets:e.styles.map((function(e){return{href:e.href,text:e.content}}))};throw e.error}))}},{key:"prefetch",value:function(e){return this.routeLoader.prefetch(e)}}]),e}();t.default=p},9934:function(e,t,r){"use strict";t.__esModule=!0,t.default=void 0;var n,o=r(5866),a=(location.href,!1);function i(e){n&&n(e)}t.default=function(e){n=e,a||(a=!0,(0,o.getCLS)(i),(0,o.getFID)(i),(0,o.getFCP)(i),(0,o.getLCP)(i),(0,o.getTTFB)(i))}},6579:function(e,t,r){"use strict";var n=r(3038),o=r(862);t.__esModule=!0,t.Portal=void 0;var a=o(r(7294)),i=r(3935);t.Portal=function(e){var t=e.children,r=e.type,o=a.useRef(null),u=a.useState(),c=n(u,2)[1];return a.useEffect((function(){return o.current=document.createElement(r),document.body.appendChild(o.current),c({}),function(){o.current&&document.body.removeChild(o.current)}}),[r]),o.current?(0,i.createPortal)(t,o.current):null}},3447:function(e,t){"use strict";t.__esModule=!0,t.cancelIdleCallback=t.requestIdleCallback=void 0;var r="undefined"!==typeof self&&self.requestIdleCallback||function(e){var t=Date.now();return setTimeout((function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})}),1)};t.requestIdleCallback=r;var n="undefined"!==typeof self&&self.cancelIdleCallback||function(e){return clearTimeout(e)};t.cancelIdleCallback=n},8475:function(e,t,r){"use strict";var n=r(3038),o=r(862);t.__esModule=!0,t.RouteAnnouncer=u,t.default=void 0;var a=o(r(7294)),i=r(4651);function u(){var e=(0,i.useRouter)().asPath,t=(0,a.useState)(""),r=n(t,2),o=r[0],u=r[1],c=(0,a.useRef)(!1);return(0,a.useEffect)((function(){if(c.current){var t,r=document.querySelector("h1");r&&(t=r.innerText||r.textContent),t||(t=document.title?document.title:e),u(t)}else c.current=!0}),[e]),a.default.createElement("p",{"aria-live":"assertive",id:"__next-route-announcer__",role:"alert",style:{border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}},o)}var c=u;t.default=c},1392:function(e,t,r){"use strict";var n=r(5318);t.__esModule=!0,t.markAssetError=c,t.isAssetError=function(e){return e&&u in e},t.getClientBuildManifest=l,t.default=void 0;n(r(5292));var o=r(3447);function a(e,t,r){var n,o=t.get(e);if(o)return"future"in o?o.future:Promise.resolve(o);var a=new Promise((function(e){n=e}));return t.set(e,o={resolve:n,future:a}),r?r().then((function(e){return n(e),e})):a}var i=function(e){try{return e=document.createElement("link"),!!window.MSInputMethodContext&&!!document.documentMode||e.relList.supports("prefetch")}catch(t){return!1}}();var u=Symbol("ASSET_LOAD_ERROR");function c(e){return Object.defineProperty(e,u,{})}function s(e,t,r){return new Promise((function(n,a){var i=!1;e.then((function(e){i=!0,n(e)})).catch(a),(0,o.requestIdleCallback)((function(){return setTimeout((function(){i||a(r)}),t)}))}))}function l(){return self.__BUILD_MANIFEST?Promise.resolve(self.__BUILD_MANIFEST):s(new Promise((function(e){var t=self.__BUILD_MANIFEST_CB;self.__BUILD_MANIFEST_CB=function(){e(self.__BUILD_MANIFEST),t&&t()}})),3800,c(new Error("Failed to load client build manifest")))}function f(e,t){return l().then((function(r){if(!(t in r))throw c(new Error("Failed to lookup route: ".concat(t)));var n=r[t].map((function(t){return e+"/_next/"+encodeURI(t)}));return{scripts:n.filter((function(e){return e.endsWith(".js")})),css:n.filter((function(e){return e.endsWith(".css")}))}}))}var h=function(e){var t=new Map,r=new Map,n=new Map,u=new Map;function l(e){var t=r.get(e);return t||(document.querySelector('script[src^="'.concat(e,'"]'))?Promise.resolve():(r.set(e,t=function(e,t){return new Promise((function(r,n){(t=document.createElement("script")).onload=r,t.onerror=function(){return n(c(new Error("Failed to load script: ".concat(e))))},t.crossOrigin=void 0,t.src=e,document.body.appendChild(t)}))}(e)),t))}function h(e){var t=n.get(e);return t||(n.set(e,t=fetch(e).then((function(t){if(!t.ok)throw new Error("Failed to load stylesheet: ".concat(e));return t.text().then((function(t){return{href:e,content:t}}))})).catch((function(e){throw c(e)}))),t)}return{whenEntrypoint:function(e){return a(e,t)},onEntrypoint:function(e,r){Promise.resolve(r).then((function(e){return e()})).then((function(e){return{component:e&&e.default||e,exports:e}}),(function(e){return{error:e}})).then((function(r){var n=t.get(e);t.set(e,r),n&&"resolve"in n&&n.resolve(r)}))},loadRoute:function(r,n){var o=this;return a(r,u,(function(){return s(f(e,r).then((function(e){var n=e.scripts,o=e.css;return Promise.all([t.has(r)?[]:Promise.all(n.map(l)),Promise.all(o.map(h))])})).then((function(e){return o.whenEntrypoint(r).then((function(t){return{entrypoint:t,styles:e[1]}}))})),3800,c(new Error("Route did not complete loading: ".concat(r)))).then((function(e){var t=e.entrypoint,r=e.styles,n=Object.assign({styles:r},t);return"error"in t?t:n})).catch((function(e){if(n)throw e;return{error:e}}))}))},prefetch:function(t){var r,n=this;return(r=navigator.connection)&&(r.saveData||/2g/.test(r.effectiveType))?Promise.resolve():f(e,t).then((function(e){return Promise.all(i?e.scripts.map((function(e){return t=e,r="script",new Promise((function(e,o){if(document.querySelector('link[rel="prefetch"][href^="'.concat(t,'"]')))return e();n=document.createElement("link"),r&&(n.as=r),n.rel="prefetch",n.crossOrigin=void 0,n.onload=e,n.onerror=o,n.href=t,document.head.appendChild(n)}));var t,r,n})):[])})).then((function(){(0,o.requestIdleCallback)((function(){return n.loadRoute(t,!0).catch((function(){}))}))})).catch((function(){}))}}};t.default=h},4651:function(e,t,r){"use strict";var n=r(9100);function o(e,t){var r;if("undefined"===typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"===typeof e)return a(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a(e,t)}(e))||t&&e&&"number"===typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,u=!0,c=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return u=e.done,e},e:function(e){c=!0,i=e},f:function(){try{u||null==r.return||r.return()}finally{if(c)throw i}}}}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var i=r(862),u=r(5318);t.__esModule=!0,t.useRouter=function(){return c.default.useContext(l.RouterContext)},t.makePublicRouterInstance=function(e){var t,r=e,n={},a=o(p);try{for(a.s();!(t=a.n()).done;){var i=t.value;"object"!==typeof r[i]?n[i]=r[i]:n[i]=Object.assign(Array.isArray(r[i])?[]:{},r[i])}}catch(u){a.e(u)}finally{a.f()}return n.events=s.default.events,d.forEach((function(e){n[e]=function(){return r[e].apply(r,arguments)}})),n},t.createRouter=t.withRouter=t.default=void 0;var c=u(r(7294)),s=i(r(9414));t.Router=s.default,t.NextRouter=s.NextRouter;var l=r(6171),f=u(r(7413));t.withRouter=f.default;var h={router:null,readyCallbacks:[],ready:function(e){if(this.router)return e();this.readyCallbacks.push(e)}},p=["pathname","route","query","asPath","components","isFallback","basePath","locale","locales","defaultLocale","isReady","isPreview","isLocaleDomain","domainLocales"],d=["push","replace","reload","back","prefetch","beforePopState"];function v(){if(!h.router){throw new Error('No router instance found.\nYou should only use "next/router" on the client side of your app.\n')}return h.router}Object.defineProperty(h,"events",{get:function(){return s.default.events}}),p.forEach((function(e){Object.defineProperty(h,e,{get:function(){return v()[e]}})})),d.forEach((function(e){h[e]=function(){var t=v();return t[e].apply(t,arguments)}})),["routeChangeStart","beforeHistoryChange","routeChangeComplete","routeChangeError","hashChangeStart","hashChangeComplete"].forEach((function(e){h.ready((function(){s.default.events.on(e,(function(){var t="on".concat(e.charAt(0).toUpperCase()).concat(e.substring(1)),r=h;if(r[t])try{r[t].apply(r,arguments)}catch(n){console.error("Error when running the Router event: ".concat(t)),console.error("".concat(n.message,"\n").concat(n.stack))}}))}))}));var m=h;t.default=m;t.createRouter=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return h.router=n(s.default,t),h.readyCallbacks.forEach((function(e){return e()})),h.readyCallbacks=[],h.router}},7926:function(e,t,r){"use strict";var n=r(3038),o=r(5318);t.__esModule=!0,t.initScriptLoader=function(e){e.forEach(v)},t.default=void 0;var a=o(r(7154)),i=o(r(7316)),u=r(7294),c=r(1165),s=r(6792),l=r(3447),f=new Map,h=new Set,p=["onLoad","dangerouslySetInnerHTML","children","onError","strategy"],d=function(e){var t=e.src,r=e.id,o=e.onLoad,a=void 0===o?function(){}:o,i=e.dangerouslySetInnerHTML,u=e.children,c=void 0===u?"":u,l=e.onError,d=r||t;if(f.has(t))h.has(d)||(h.add(d),f.get(t).then(a,l));else{var v=document.createElement("script"),m=new Promise((function(e,t){v.addEventListener("load",(function(){e(),a&&a.call(this)})),v.addEventListener("error",(function(){t(),l&&l()}))}));t&&(f.set(t,m),h.add(d)),i?v.innerHTML=i.__html||"":c?v.textContent="string"===typeof c?c:Array.isArray(c)?c.join(""):"":t&&(v.src=t);for(var y=0,g=Object.entries(e);y<g.length;y++){var b=n(g[y],2),_=b[0],w=b[1];if(void 0!==w&&!p.includes(_)){var x=s.DOMAttributeNames[_]||_.toLowerCase();v.setAttribute(x,w)}}document.body.appendChild(v)}};function v(e){var t=e.strategy,r=void 0===t?"afterInteractive":t;"afterInteractive"===r?d(e):"lazyOnload"===r&&window.addEventListener("load",(function(){(0,l.requestIdleCallback)((function(){return d(e)}))}))}var m=function(e){var t=e.src,r=void 0===t?"":t,n=e.onLoad,o=void 0===n?function(){}:n,s=e.strategy,f=void 0===s?"afterInteractive":s,h=e.onError,p=(0,i.default)(e,["src","onLoad","dangerouslySetInnerHTML","strategy","onError"]),v=(0,u.useContext)(c.HeadManagerContext),m=v.updateScripts,y=v.scripts;return(0,u.useEffect)((function(){"afterInteractive"===f?d(e):"lazyOnload"===f&&function(e){"complete"===document.readyState?(0,l.requestIdleCallback)((function(){return d(e)})):window.addEventListener("load",(function(){(0,l.requestIdleCallback)((function(){return d(e)}))}))}(e)}),[e,f]),"beforeInteractive"===f&&m&&(y.beforeInteractive=(y.beforeInteractive||[]).concat([(0,a.default)({src:r,onLoad:o,onError:h},p)]),m(y)),null};t.default=m},7413:function(e,t,r){"use strict";var n=r(5318);t.__esModule=!0,t.default=function(e){function t(t){return o.default.createElement(e,Object.assign({router:(0,a.useRouter)()},t))}t.getInitialProps=e.getInitialProps,t.origGetInitialProps=e.origGetInitialProps,!1;return t};var o=n(r(7294)),a=r(4651)},1165:function(e,t,r){"use strict";var n;t.__esModule=!0,t.HeadManagerContext=void 0;var o=((n=r(7294))&&n.__esModule?n:{default:n}).default.createContext({});t.HeadManagerContext=o},6813:function(e,t){"use strict";t.__esModule=!0,t.normalizeLocalePath=function(e,t){var r,n=e.split("/");return(t||[]).some((function(t){return n[1].toLowerCase()===t.toLowerCase()&&(r=t,n.splice(1,1),e=n.join("/")||"/",!0)})),{pathname:e,detectedLocale:r}}},8119:function(e,t){"use strict";t.__esModule=!0,t.default=function(){var e=Object.create(null);return{on:function(t,r){(e[t]||(e[t]=[])).push(r)},off:function(t,r){e[t]&&e[t].splice(e[t].indexOf(r)>>>0,1)},emit:function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),o=1;o<r;o++)n[o-1]=arguments[o];(e[t]||[]).slice().map((function(e){e.apply(void 0,n)}))}}}},6171:function(e,t,r){"use strict";var n;t.__esModule=!0,t.RouterContext=void 0;var o=((n=r(7294))&&n.__esModule?n:{default:n}).default.createContext(null);t.RouterContext=o},9414:function(e,t,r){"use strict";var n=r(7757),o=r(8926),a=r(4575),i=r(3913),u=r(3038);t.__esModule=!0,t.getDomainLocale=function(e,t,r,n){0;return!1},t.addLocale=w,t.delLocale=x,t.hasBasePath=E,t.addBasePath=P,t.delBasePath=k,t.isLocalURL=L,t.interpolateAs=R,t.resolveHref=T,t.default=void 0;var c=r(5965),s=r(1392),l=r(9320),f=(r(6813),b(r(8119))),h=r(4755),p=r(8073),d=r(3900),v=r(8187),m=b(r(4453)),y=r(8085),g=r(4550);function b(e){return e&&e.__esModule?e:{default:e}}function _(){return Object.assign(new Error("Route Cancelled"),{cancelled:!0})}function w(e,t,r){return e}function x(e,t){return e}function S(e){var t=e.indexOf("?"),r=e.indexOf("#");return(t>-1||r>-1)&&(e=e.substring(0,t>-1?t:r)),e}function E(e){return""===(e=S(e))||e.startsWith("/")}function P(e){return function(e,t){return t&&e.startsWith("/")?"/"===e?(0,c.normalizePathTrailingSlash)(t):"".concat(t).concat("/"===S(e)?e.substring(1):e):e}(e,"")}function k(e){return(e=e.slice("".length)).startsWith("/")||(e="/".concat(e)),e}function L(e){if(e.startsWith("/")||e.startsWith("#")||e.startsWith("?"))return!0;try{var t=(0,h.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&E(r.pathname)}catch(n){return!1}}function R(e,t,r){var n="",o=(0,g.getRouteRegex)(e),a=o.groups,i=(t!==e?(0,y.getRouteMatcher)(o)(t):"")||r;n=e;var u=Object.keys(a);return u.every((function(e){var t=i[e]||"",r=a[e],o=r.repeat,u=r.optional,c="[".concat(o?"...":"").concat(e,"]");return u&&(c="".concat(t?"":"/","[").concat(c,"]")),o&&!Array.isArray(t)&&(t=[t]),(u||e in i)&&(n=n.replace(c,o?t.map((function(e){return encodeURIComponent(e)})).join("/"):encodeURIComponent(t))||"/")}))||(n=""),{params:u,result:n}}function C(e,t){var r={};return Object.keys(e).forEach((function(n){t.includes(n)||(r[n]=e[n])})),r}function T(e,t,r){var n,o="string"===typeof t?t:(0,h.formatWithValidation)(t);try{n=new URL(o.startsWith("#")?e.asPath:e.pathname,"http://n")}catch(m){n=new URL("/","http://n")}if(!L(o))return r?[o]:o;try{var a=new URL(o,n);a.pathname=(0,c.normalizePathTrailingSlash)(a.pathname);var i="";if((0,p.isDynamicRoute)(a.pathname)&&a.searchParams&&r){var u=(0,v.searchParamsToUrlQuery)(a.searchParams),s=R(a.pathname,a.pathname,u),l=s.result,f=s.params;l&&(i=(0,h.formatWithValidation)({pathname:l,hash:a.hash,query:C(u,f)}))}var d=a.origin===n.origin?a.href.slice(a.origin.length):a.href;return r?[d,i||d]:d}catch(m){return r?[o]:o}}function A(e){var t=(0,h.getLocationOrigin)();return e.startsWith(t)?e.substring(t.length):e}function O(e,t,r){var n=T(e,t,!0),o=u(n,2),a=o[0],i=o[1],c=(0,h.getLocationOrigin)(),s=a.startsWith(c),l=i&&i.startsWith(c);a=A(a),i=i?A(i):i;var f=s?a:P(a),p=r?A(T(e,r)):i||a;return{url:f,as:l?p:P(p)}}function I(e,t){var r=(0,c.removePathTrailingSlash)((0,l.denormalizePagePath)(e));return"/404"===r||"/_error"===r?e:(t.includes(r)||t.some((function(t){if((0,p.isDynamicRoute)(t)&&(0,g.getRouteRegex)(t).re.test(r))return e=t,!0})),(0,c.removePathTrailingSlash)(e))}var M=Symbol("SSG_DATA_NOT_FOUND");function N(e,t){return fetch(e,{credentials:"same-origin"}).then((function(r){if(!r.ok){if(t>1&&r.status>=500)return N(e,t-1);if(404===r.status)return r.json().then((function(e){if(e.notFound)return{notFound:M};throw new Error("Failed to load static props")}));throw new Error("Failed to load static props")}return r.json()}))}function j(e,t){return N(e,t?3:1).catch((function(e){throw t||(0,s.markAssetError)(e),e}))}var D=function(){function e(t,r,n,o){var i=this,u=o.initialProps,s=o.pageLoader,l=o.App,f=o.wrapApp,v=o.Component,m=o.err,y=o.subscription,g=o.isFallback,b=o.locale,_=(o.locales,o.defaultLocale,o.domainLocales,o.isPreview);a(this,e),this.route=void 0,this.pathname=void 0,this.query=void 0,this.asPath=void 0,this.basePath=void 0,this.components=void 0,this.sdc={},this.sdr={},this.sub=void 0,this.clc=void 0,this.pageLoader=void 0,this._bps=void 0,this.events=void 0,this._wrapApp=void 0,this.isSsr=void 0,this.isFallback=void 0,this._inFlightRoute=void 0,this._shallow=void 0,this.locale=void 0,this.locales=void 0,this.defaultLocale=void 0,this.domainLocales=void 0,this.isReady=void 0,this.isPreview=void 0,this.isLocaleDomain=void 0,this._idx=0,this.onPopState=function(e){var t=e.state;if(t){if(t.__N){var r=t.url,n=t.as,o=t.options,a=t.idx;i._idx=a;var u=(0,d.parseRelativeUrl)(r).pathname;i.isSsr&&n===i.asPath&&u===i.pathname||i._bps&&!i._bps(t)||i.change("replaceState",r,n,Object.assign({},o,{shallow:o.shallow&&i._shallow,locale:o.locale||i.defaultLocale}),undefined)}}else{var c=i.pathname,s=i.query;i.changeState("replaceState",(0,h.formatWithValidation)({pathname:P(c),query:s}),(0,h.getURL)())}},this.route=(0,c.removePathTrailingSlash)(t),this.components={},"/_error"!==t&&(this.components[this.route]={Component:v,initial:!0,props:u,err:m,__N_SSG:u&&u.__N_SSG,__N_SSP:u&&u.__N_SSP}),this.components["/_app"]={Component:l,styleSheets:[]},this.events=e.events,this.pageLoader=s,this.pathname=t,this.query=r;var w=(0,p.isDynamicRoute)(t)&&self.__NEXT_DATA__.autoExport;if(this.asPath=w?t:n,this.basePath="",this.sub=y,this.clc=null,this._wrapApp=f,this.isSsr=!0,this.isFallback=g,this.isReady=!(!self.__NEXT_DATA__.gssp&&!self.__NEXT_DATA__.gip&&(w||self.location.search)),this.isPreview=!!_,this.isLocaleDomain=!1,"//"!==n.substr(0,2)){var x={locale:b};x._shouldResolveHref=n!==t,this.changeState("replaceState",(0,h.formatWithValidation)({pathname:P(t),query:r}),(0,h.getURL)(),x)}window.addEventListener("popstate",this.onPopState)}return i(e,[{key:"reload",value:function(){window.location.reload()}},{key:"back",value:function(){window.history.back()}},{key:"push",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};var n=O(this,e,t);return e=n.url,t=n.as,this.change("pushState",e,t,r)}},{key:"replace",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=O(this,e,t);return e=n.url,t=n.as,this.change("replaceState",e,t,r)}},{key:"change",value:function(){var t=o(n.mark((function t(r,o,a,i,u){var l,f,v,m,b,_,S,T,A,N,j,D,F,U,q,W,B,H,G,V,X,z,$,Q,Y,J,K,Z,ee,te,re,ne,oe,ae,ie,ue,ce;return n.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(L(o)){t.next=3;break}return window.location.href=o,t.abrupt("return",!1);case 3:l=o===a||i._h||i._shouldResolveHref,i._h&&(this.isReady=!0),f=i.locale!==this.locale,t.next=18;break;case 18:if(i._h||(this.isSsr=!1),h.ST&&performance.mark("routeChange"),v=i.shallow,m={shallow:void 0!==v&&v},this._inFlightRoute&&this.abortComponentLoad(this._inFlightRoute,m),a=P(w(E(a)?k(a):a,i.locale,this.defaultLocale)),b=x(E(a)?k(a):a,this.locale),this._inFlightRoute=a,i._h||!this.onlyAHashChange(b)){t.next=34;break}return this.asPath=b,e.events.emit("hashChangeStart",a,m),this.changeState(r,o,a,i),this.scrollToHash(b),this.notify(this.components[this.route],null),e.events.emit("hashChangeComplete",a,m),t.abrupt("return",!0);case 34:return _=(0,d.parseRelativeUrl)(o),S=_.pathname,T=_.query,t.prev=36,t.next=39,this.pageLoader.getPageList();case 39:return A=t.sent,t.next=42,(0,s.getClientBuildManifest)();case 42:N=t.sent,N.__rewrites,t.next=50;break;case 46:return t.prev=46,t.t0=t.catch(36),window.location.href=a,t.abrupt("return",!1);case 50:if(this.urlIsNew(b)||f||(r="replaceState"),j=a,S=S?(0,c.removePathTrailingSlash)(k(S)):S,l&&"/_error"!==S&&(i._shouldResolveHref=!0,_.pathname=I(S,A),_.pathname!==S&&(S=_.pathname,_.pathname=P(S),o=(0,h.formatWithValidation)(_))),D=(0,c.removePathTrailingSlash)(S),L(a)){t.next=60;break}t.next=58;break;case 58:return window.location.href=a,t.abrupt("return",!1);case 60:if(j=x(k(j),this.locale),!(0,p.isDynamicRoute)(D)){t.next=76;break}if(F=(0,d.parseRelativeUrl)(j),U=F.pathname,q=(0,g.getRouteRegex)(D),W=(0,y.getRouteMatcher)(q)(U),H=(B=D===U)?R(D,U,T):{},W&&(!B||H.result)){t.next=75;break}if(!((G=Object.keys(q.groups).filter((function(e){return!T[e]}))).length>0)){t.next=73;break}throw new Error((B?"The provided `href` (".concat(o,") value is missing query values (").concat(G.join(", "),") to be interpolated properly. "):"The provided `as` value (".concat(U,") is incompatible with the `href` value (").concat(D,"). "))+"Read more: https://nextjs.org/docs/messages/".concat(B?"href-interpolation-failed":"incompatible-href-as"));case 73:t.next=76;break;case 75:B?a=(0,h.formatWithValidation)(Object.assign({},F,{pathname:H.result,query:C(T,H.params)})):Object.assign(T,W);case 76:return e.events.emit("routeChangeStart",a,m),t.prev=77,t.next=80,this.getRouteInfo(D,S,T,a,j,m);case 80:if($=t.sent,Y=(Q=$).error,J=Q.props,K=Q.__N_SSG,Z=Q.__N_SSP,!K&&!Z||!J){t.next=106;break}if(!J.pageProps||!J.pageProps.__N_REDIRECT){t.next=92;break}if(!(ee=J.pageProps.__N_REDIRECT).startsWith("/")){t.next=90;break}return(te=(0,d.parseRelativeUrl)(ee)).pathname=I(te.pathname,A),re=O(this,ee,ee),ne=re.url,oe=re.as,t.abrupt("return",this.change(r,ne,oe,i));case 90:return window.location.href=ee,t.abrupt("return",new Promise((function(){})));case 92:if(this.isPreview=!!J.__N_PREVIEW,J.notFound!==M){t.next=106;break}return t.prev=94,t.next=97,this.fetchComponent("/404");case 97:ae="/404",t.next=103;break;case 100:t.prev=100,t.t1=t.catch(94),ae="/_error";case 103:return t.next=105,this.getRouteInfo(ae,ae,T,a,j,{shallow:!1});case 105:$=t.sent;case 106:return e.events.emit("beforeHistoryChange",a,m),this.changeState(r,o,a,i),i._h&&"/_error"===S&&500===(null==(V=self.__NEXT_DATA__.props)||null==(X=V.pageProps)?void 0:X.statusCode)&&null!=J&&J.pageProps&&(J.pageProps.statusCode=500),ie=i.shallow&&this.route===D,ue=null!=(z=i.scroll)?z:!ie,ce=ue?{x:0,y:0}:null,t.next=115,this.set(D,S,T,b,$,null!=u?u:ce).catch((function(e){if(!e.cancelled)throw e;Y=Y||e}));case 115:if(!Y){t.next=118;break}throw e.events.emit("routeChangeError",Y,b,m),Y;case 118:return e.events.emit("routeChangeComplete",a,m),t.abrupt("return",!0);case 123:if(t.prev=123,t.t2=t.catch(77),!t.t2.cancelled){t.next=127;break}return t.abrupt("return",!1);case 127:throw t.t2;case 128:case"end":return t.stop()}}),t,this,[[36,46],[77,123],[94,100]])})));return function(e,r,n,o,a){return t.apply(this,arguments)}}()},{key:"changeState",value:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};"pushState"===e&&(0,h.getURL)()===r||(this._shallow=n.shallow,window.history[e]({url:t,as:r,options:n,__N:!0,idx:this._idx="pushState"!==e?this._idx:this._idx+1},"",r))}},{key:"handleRouteInfoError",value:function(){var t=o(n.mark((function t(r,o,a,i,u,c){var l,f,h,p;return n.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!r.cancelled){t.next=2;break}throw r;case 2:if(!(0,s.isAssetError)(r)&&!c){t.next=6;break}throw e.events.emit("routeChangeError",r,i,u),window.location.href=i,_();case 6:if(t.prev=6,"undefined"!==typeof l&&"undefined"!==typeof f){t.next=14;break}return t.next=11,this.fetchComponent("/_error");case 11:h=t.sent,l=h.page,f=h.styleSheets;case 14:if((p={props:undefined,Component:l,styleSheets:f,err:r,error:r}).props){t.next=26;break}return t.prev=16,t.next=19,this.getInitialProps(l,{err:r,pathname:o,query:a});case 19:p.props=t.sent,t.next=26;break;case 22:t.prev=22,t.t0=t.catch(16),console.error("Error in error page `getInitialProps`: ",t.t0),p.props={};case 26:return t.abrupt("return",p);case 29:return t.prev=29,t.t1=t.catch(6),t.abrupt("return",this.handleRouteInfoError(t.t1,o,a,i,u,!0));case 32:case"end":return t.stop()}}),t,this,[[6,29],[16,22]])})));return function(e,r,n,o,a,i){return t.apply(this,arguments)}}()},{key:"getRouteInfo",value:function(){var e=o(n.mark((function e(t,r,o,a,i,u){var c,s,l,f,p,d,v,m,y=this;return n.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,c=this.components[t],!u.shallow||!c||this.route!==t){e.next=4;break}return e.abrupt("return",c);case 4:if(!(s=c&&"initial"in c?void 0:c)){e.next=9;break}e.t0=s,e.next=12;break;case 9:return e.next=11,this.fetchComponent(t).then((function(e){return{Component:e.page,styleSheets:e.styleSheets,__N_SSG:e.mod.__N_SSG,__N_SSP:e.mod.__N_SSP}}));case 11:e.t0=e.sent;case 12:l=e.t0,f=l.Component,p=l.__N_SSG,d=l.__N_SSP,e.next=18;break;case 18:return(p||d)&&(v=this.pageLoader.getDataHref((0,h.formatWithValidation)({pathname:r,query:o}),i,p,this.locale)),e.next=21,this._getData((function(){return p?y._getStaticData(v):d?y._getServerData(v):y.getInitialProps(f,{pathname:r,query:o,asPath:a,locale:y.locale,locales:y.locales,defaultLocale:y.defaultLocale})}));case 21:return m=e.sent,l.props=m,this.components[t]=l,e.abrupt("return",l);case 27:return e.prev=27,e.t1=e.catch(0),e.abrupt("return",this.handleRouteInfoError(e.t1,r,o,a,u));case 30:case"end":return e.stop()}}),e,this,[[0,27]])})));return function(t,r,n,o,a,i){return e.apply(this,arguments)}}()},{key:"set",value:function(e,t,r,n,o,a){return this.isFallback=!1,this.route=e,this.pathname=t,this.query=r,this.asPath=n,this.notify(o,a)}},{key:"beforePopState",value:function(e){this._bps=e}},{key:"onlyAHashChange",value:function(e){if(!this.asPath)return!1;var t=this.asPath.split("#"),r=u(t,2),n=r[0],o=r[1],a=e.split("#"),i=u(a,2),c=i[0],s=i[1];return!(!s||n!==c||o!==s)||n===c&&o!==s}},{key:"scrollToHash",value:function(e){var t=e.split("#"),r=u(t,2)[1];if(""!==r&&"top"!==r){var n=document.getElementById(r);if(n)n.scrollIntoView();else{var o=document.getElementsByName(r)[0];o&&o.scrollIntoView()}}else window.scrollTo(0,0)}},{key:"urlIsNew",value:function(e){return this.asPath!==e}},{key:"prefetch",value:function(){var e=o(n.mark((function e(t){var r,o,a,i,u,s,l,f,p,v,y=this,g=arguments;return n.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=g.length>1&&void 0!==g[1]?g[1]:t,o=g.length>2&&void 0!==g[2]?g[2]:{},a=(0,d.parseRelativeUrl)(t),i=a.pathname,e.next=7,this.pageLoader.getPageList();case 7:u=e.sent,s=r,e.next=19;break;case 12:f=e.sent,l=f.__rewrites,p=(0,m.default)(P(w(r,this.locale)),u,l,a.query,(function(e){return I(e,u)}),this.locales),s=x(k(p.asPath),this.locale),p.matchedPage&&p.resolvedHref&&(i=p.resolvedHref,a.pathname=i,t=(0,h.formatWithValidation)(a)),e.next=21;break;case 19:a.pathname=I(a.pathname,u),a.pathname!==i&&(i=a.pathname,a.pathname=i,t=(0,h.formatWithValidation)(a));case 21:v=(0,c.removePathTrailingSlash)(i),e.next=24;break;case 24:return e.next=26,Promise.all([this.pageLoader._isSsg(v).then((function(e){return!!e&&y._getStaticData(y.pageLoader.getDataHref(t,s,!0,"undefined"!==typeof o.locale?o.locale:y.locale))})),this.pageLoader[o.priority?"loadPage":"prefetch"](v)]);case 26:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"fetchComponent",value:function(){var e=o(n.mark((function e(t){var r,o,a,i;return n.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=!1,o=this.clc=function(){r=!0},e.next=4,this.pageLoader.loadPage(t);case 4:if(a=e.sent,!r){e.next=9;break}throw(i=new Error('Abort fetching component for route: "'.concat(t,'"'))).cancelled=!0,i;case 9:return o===this.clc&&(this.clc=null),e.abrupt("return",a);case 11:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"_getData",value:function(e){var t=this,r=!1,n=function(){r=!0};return this.clc=n,e().then((function(e){if(n===t.clc&&(t.clc=null),r){var o=new Error("Loading initial props cancelled");throw o.cancelled=!0,o}return e}))}},{key:"_getStaticData",value:function(e){var t=this,r=new URL(e,window.location.href).href;return!this.isPreview&&this.sdc[r]?Promise.resolve(this.sdc[r]):j(e,this.isSsr).then((function(e){return t.sdc[r]=e,e}))}},{key:"_getServerData",value:function(e){var t=this,r=new URL(e,window.location.href).href;return this.sdr[r]?this.sdr[r]:this.sdr[r]=j(e,this.isSsr).then((function(e){return delete t.sdr[r],e})).catch((function(e){throw delete t.sdr[r],e}))}},{key:"getInitialProps",value:function(e,t){var r=this.components["/_app"].Component,n=this._wrapApp(r);return t.AppTree=n,(0,h.loadGetInitialProps)(r,{AppTree:n,Component:e,router:this,ctx:t})}},{key:"abortComponentLoad",value:function(t,r){this.clc&&(e.events.emit("routeChangeError",_(),t,r),this.clc(),this.clc=null)}},{key:"notify",value:function(e,t){return this.sub(e,this.components["/_app"].Component,t)}}]),e}();t.default=D,D.events=(0,f.default)()},2960:function(e,t,r){"use strict";t.__esModule=!0,t.formatUrl=function(e){var t=e.auth,r=e.hostname,o=e.protocol||"",i=e.pathname||"",u=e.hash||"",c=e.query||"",s=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?s=t+e.host:r&&(s=t+(~r.indexOf(":")?"[".concat(r,"]"):r),e.port&&(s+=":"+e.port));c&&"object"===typeof c&&(c=String(n.urlQueryToSearchParams(c)));var l=e.search||c&&"?".concat(c)||"";o&&":"!==o.substr(-1)&&(o+=":");e.slashes||(!o||a.test(o))&&!1!==s?(s="//"+(s||""),i&&"/"!==i[0]&&(i="/"+i)):s||(s="");u&&"#"!==u[0]&&(u="#"+u);l&&"?"!==l[0]&&(l="?"+l);return i=i.replace(/[?#]/g,encodeURIComponent),l=l.replace("#","%23"),"".concat(o).concat(s).concat(i).concat(l).concat(u)};var n=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var t=o();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=n?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(8187));function o(){if("function"!==typeof WeakMap)return null;var e=new WeakMap;return o=function(){return e},e}var a=/https?|ftp|gopher|file/},5292:function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r="/"===e?"/index":/^\/index(\/|$)/.test(e)?"/index".concat(e):"".concat(e);return r+t}},8073:function(e,t){"use strict";t.__esModule=!0,t.isDynamicRoute=function(e){return r.test(e)};var r=/\/\[[^/]+?\](?=\/|$)/},3900:function(e,t,r){"use strict";t.__esModule=!0,t.parseRelativeUrl=function(e,t){var r=new URL((0,n.getLocationOrigin)()),a=t?new URL(t,r):r,i=new URL(e,a),u=i.pathname,c=i.searchParams,s=i.search,l=i.hash,f=i.href;if(i.origin!==r.origin)throw new Error("invariant: invalid relative URL, router received ".concat(e));return{pathname:u,query:(0,o.searchParamsToUrlQuery)(c),search:s,hash:l,href:f.slice(r.origin.length)}};var n=r(4755),o=r(8187)},8187:function(e,t,r){"use strict";var n=r(3038);function o(e){return"string"===typeof e||"number"===typeof e&&!isNaN(e)||"boolean"===typeof e?String(e):""}t.__esModule=!0,t.searchParamsToUrlQuery=function(e){var t={};return e.forEach((function(e,r){"undefined"===typeof t[r]?t[r]=e:Array.isArray(t[r])?t[r].push(e):t[r]=[t[r],e]})),t},t.urlQueryToSearchParams=function(e){var t=new URLSearchParams;return Object.entries(e).forEach((function(e){var r=n(e,2),a=r[0],i=r[1];Array.isArray(i)?i.forEach((function(e){return t.append(a,o(e))})):t.set(a,o(i))})),t},t.assign=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return r.forEach((function(t){Array.from(t.keys()).forEach((function(t){return e.delete(t)})),t.forEach((function(t,r){return e.append(r,t)}))})),e}},8085:function(e,t){"use strict";t.__esModule=!0,t.getRouteMatcher=function(e){var t=e.re,r=e.groups;return function(e){var n=t.exec(e);if(!n)return!1;var o=function(e){try{return decodeURIComponent(e)}catch(r){var t=new Error("failed to decode param");throw t.code="DECODE_FAILED",t}},a={};return Object.keys(r).forEach((function(e){var t=r[e],i=n[t.pos];void 0!==i&&(a[e]=~i.indexOf("/")?i.split("/").map((function(e){return o(e)})):t.repeat?[o(i)]:o(i))})),a}}},4550:function(e,t){"use strict";t.__esModule=!0,t.getRouteRegex=function(e){var t=(e.replace(/\/$/,"")||"/").slice(1).split("/"),r={},n=1,o=t.map((function(e){if(e.startsWith("[")&&e.endsWith("]")){var t=function(e){var t=e.startsWith("[")&&e.endsWith("]");t&&(e=e.slice(1,-1));var r=e.startsWith("...");r&&(e=e.slice(3));return{key:e,repeat:r,optional:t}}(e.slice(1,-1)),o=t.key,a=t.optional,i=t.repeat;return r[o]={pos:n++,repeat:i,optional:a},i?a?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)"}return"/".concat(e.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&"))})).join("");0;return{re:new RegExp("^".concat(o,"(?:/)?$")),groups:r}}},3584:function(e,t){"use strict";var r;t.__esModule=!0,t.setConfig=function(e){r=e},t.default=void 0;t.default=function(){return r}},4755:function(e,t,r){"use strict";var n=r(7757),o=r(8926);t.__esModule=!0,t.execOnce=function(e){var t,r=!1;return function(){return r||(r=!0,t=e.apply(void 0,arguments)),t}},t.getLocationOrigin=i,t.getURL=function(){var e=window.location.href,t=i();return e.substring(t.length)},t.getDisplayName=u,t.isResSent=c,t.loadGetInitialProps=s,t.formatWithValidation=function(e){0;return(0,a.formatUrl)(e)},t.ST=t.SP=t.urlObjectKeys=void 0;var a=r(2960);function i(){var e=window.location,t=e.protocol,r=e.hostname,n=e.port;return"".concat(t,"//").concat(r).concat(n?":"+n:"")}function u(e){return"string"===typeof e?e:e.displayName||e.name||"Unknown"}function c(e){return e.finished||e.headersSent}function s(e,t){return l.apply(this,arguments)}function l(){return(l=o(n.mark((function e(t,r){var o,a,i;return n.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.next=4;break;case 4:if(o=r.res||r.ctx&&r.ctx.res,t.getInitialProps){e.next=12;break}if(!r.ctx||!r.Component){e.next=11;break}return e.next=9,s(r.Component,r.ctx);case 9:return e.t0=e.sent,e.abrupt("return",{pageProps:e.t0});case 11:return e.abrupt("return",{});case 12:return e.next=14,t.getInitialProps(r);case 14:if(a=e.sent,!o||!c(o)){e.next=17;break}return e.abrupt("return",a);case 17:if(a){e.next=20;break}throw i='"'.concat(u(t),'.getInitialProps()" should resolve to an object. But found "').concat(a,'" instead.'),new Error(i);case 20:return e.abrupt("return",a);case 22:case"end":return e.stop()}}),e)})))).apply(this,arguments)}t.urlObjectKeys=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];var f="undefined"!==typeof performance;t.SP=f;var h=f&&"function"===typeof performance.mark&&"function"===typeof performance.measure;t.ST=h},6086:function(e){"use strict";var t=Object.assign.bind(Object);e.exports=t,e.exports.default=e.exports},5866:function(e){e.exports=function(){var e={599:function(e,t){!function(e){"use strict";var t,r,n=function(){return"".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12)},o=function(e){return{name:e,value:arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,delta:0,entries:[],id:n(),isFinal:!1}},a=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var r=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return r.observe({type:e,buffered:!0}),r}}catch(e){}},i=!1,u=!1,c=function(e){i=!e.persisted},s=function(){addEventListener("pagehide",c),addEventListener("beforeunload",(function(){}))},l=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];u||(s(),u=!0),addEventListener("visibilitychange",(function(t){var r=t.timeStamp;"hidden"===document.visibilityState&&e({timeStamp:r,isUnloading:i})}),{capture:!0,once:t})},f=function(e,t,r,n){var o;return function(){r&&t.isFinal&&r.disconnect(),t.value>=0&&(n||t.isFinal||"hidden"===document.visibilityState)&&(t.delta=t.value-(o||0),(t.delta||t.isFinal||void 0===o)&&(e(t),o=t.value))}},h=function(){return void 0===t&&(t="hidden"===document.visibilityState?0:1/0,l((function(e){var r=e.timeStamp;return t=r}),!0)),{get timeStamp(){return t}}},p=function(){return r||(r=new Promise((function(e){return["scroll","keydown","pointerdown"].map((function(t){addEventListener(t,e,{once:!0,passive:!0,capture:!0})}))}))),r};e.getCLS=function(e){var t,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=o("CLS",0),i=function(e){e.hadRecentInput||(n.value+=e.value,n.entries.push(e),t())},u=a("layout-shift",i);u&&(t=f(e,n,u,r),l((function(e){var r=e.isUnloading;u.takeRecords().map(i),r&&(n.isFinal=!0),t()})))},e.getFCP=function(e){var t,r=o("FCP"),n=h(),i=a("paint",(function(e){"first-contentful-paint"===e.name&&e.startTime<n.timeStamp&&(r.value=e.startTime,r.isFinal=!0,r.entries.push(e),t())}));i&&(t=f(e,r,i))},e.getFID=function(e){var t=o("FID"),r=h(),n=function(e){e.startTime<r.timeStamp&&(t.value=e.processingStart-e.startTime,t.entries.push(e),t.isFinal=!0,u())},i=a("first-input",n),u=f(e,t,i);i?l((function(){i.takeRecords().map(n),i.disconnect()}),!0):window.perfMetrics&&window.perfMetrics.onFirstInputDelay&&window.perfMetrics.onFirstInputDelay((function(e,n){n.timeStamp<r.timeStamp&&(t.value=e,t.isFinal=!0,t.entries=[{entryType:"first-input",name:n.type,target:n.target,cancelable:n.cancelable,startTime:n.timeStamp,processingStart:n.timeStamp+e}],u())}))},e.getLCP=function(e){var t,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=o("LCP"),i=h(),u=function(e){var r=e.startTime;r<i.timeStamp?(n.value=r,n.entries.push(e)):n.isFinal=!0,t()},c=a("largest-contentful-paint",u);if(c){t=f(e,n,c,r);var s=function(){n.isFinal||(c.takeRecords().map(u),n.isFinal=!0,t())};p().then(s),l(s,!0)}},e.getTTFB=function(e){var t,r=o("TTFB");t=function(){try{var t=performance.getEntriesByType("navigation")[0]||function(){var e=performance.timing,t={entryType:"navigation",startTime:0};for(var r in e)"navigationStart"!==r&&"toJSON"!==r&&(t[r]=Math.max(e[r]-e.navigationStart,0));return t}();r.value=r.delta=t.responseStart,r.entries=[t],r.isFinal=!0,e(r)}catch(e){}},"complete"===document.readyState?setTimeout(t,0):addEventListener("pageshow",t)},Object.defineProperty(e,"__esModule",{value:!0})}(t)}},t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={exports:{}},a=!0;try{e[n].call(o.exports,o,o.exports,r),a=!1}finally{a&&delete t[n]}return o.exports}return r.ab="//",r(599)}()},9320:function(e,t){"use strict";function r(e){return e.replace(/\\/g,"/")}t.__esModule=!0,t.normalizePathSep=r,t.denormalizePagePath=function(e){(e=r(e)).startsWith("/index/")?e=e.slice(6):"/index"===e&&(e="/");return e}},5666:function(e){var t=function(e){"use strict";var t,r=Object.prototype,n=r.hasOwnProperty,o="function"===typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(A){c=function(e,t,r){return e[t]=r}}function s(e,t,r,n){var o=t&&t.prototype instanceof m?t:m,a=Object.create(o.prototype),i=new R(n||[]);return a._invoke=function(e,t,r){var n=f;return function(o,a){if(n===p)throw new Error("Generator is already running");if(n===d){if("throw"===o)throw a;return T()}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var u=P(i,r);if(u){if(u===v)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(n===f)throw n=d,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n=p;var c=l(e,t,r);if("normal"===c.type){if(n=r.done?d:h,c.arg===v)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n=d,r.method="throw",r.arg=c.arg)}}}(e,r,i),a}function l(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(A){return{type:"throw",arg:A}}}e.wrap=s;var f="suspendedStart",h="suspendedYield",p="executing",d="completed",v={};function m(){}function y(){}function g(){}var b={};b[a]=function(){return this};var _=Object.getPrototypeOf,w=_&&_(_(C([])));w&&w!==r&&n.call(w,a)&&(b=w);var x=g.prototype=m.prototype=Object.create(b);function S(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function E(e,t){function r(o,a,i,u){var c=l(e[o],e,a);if("throw"!==c.type){var s=c.arg,f=s.value;return f&&"object"===typeof f&&n.call(f,"__await")?t.resolve(f.__await).then((function(e){r("next",e,i,u)}),(function(e){r("throw",e,i,u)})):t.resolve(f).then((function(e){s.value=e,i(s)}),(function(e){return r("throw",e,i,u)}))}u(c.arg)}var o;this._invoke=function(e,n){function a(){return new t((function(t,o){r(e,n,t,o)}))}return o=o?o.then(a,a):a()}}function P(e,r){var n=e.iterator[r.method];if(n===t){if(r.delegate=null,"throw"===r.method){if(e.iterator.return&&(r.method="return",r.arg=t,P(e,r),"throw"===r.method))return v;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var o=l(n,e.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,v;var a=o.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function L(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function R(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function C(e){if(e){var r=e[a];if(r)return r.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o<e.length;)if(n.call(e,o))return r.value=e[o],r.done=!1,r;return r.value=t,r.done=!0,r};return i.next=i}}return{next:T}}function T(){return{value:t,done:!0}}return y.prototype=x.constructor=g,g.constructor=y,y.displayName=c(g,u,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"===typeof e&&e.constructor;return!!t&&(t===y||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,g):(e.__proto__=g,c(e,u,"GeneratorFunction")),e.prototype=Object.create(x),e},e.awrap=function(e){return{__await:e}},S(E.prototype),E.prototype[i]=function(){return this},e.AsyncIterator=E,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new E(s(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},S(x),c(x,u,"Generator"),x[a]=function(){return this},x.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},e.values=C,R.prototype={constructor:R,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(L),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function o(n,o){return u.type="throw",u.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],u=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return o(i.catchLoc,!0);if(this.prev<i.finallyLoc)return o(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return o(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return o(i.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,v):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),L(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;L(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:C(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}(e.exports);try{regeneratorRuntime=t}catch(r){Function("r","regeneratorRuntime = r")(t)}},4453:function(){}},function(e){e.O(0,[774],(function(){return t=457,e(e.s=t);var t}));var t=e.O();_N_E=t}]); \ No newline at end of file
diff --git a/build/static/chunks/pages/_app-5bb503dca4dae114eb0c.js b/build/static/chunks/pages/_app-5bb503dca4dae114eb0c.js
new file mode 100644
index 0000000..5314fc9
--- /dev/null
+++ b/build/static/chunks/pages/_app-5bb503dca4dae114eb0c.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[888],{6156:function(r,e,t){"use strict";function n(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}t.d(e,{Z:function(){return n}})},4738:function(r,e,t){"use strict";t.d(e,{SG:function(){return x},If:function(){return y}});var n=t(3808),o=t(4461),a=t(658),i=t(7294),s="chakra-ui-light",l="chakra-ui-dark",c={classList:{add:a.ZT,remove:a.ZT}};function u(r){var e=o.jU?document.body:c;e.classList.add(r?l:s),e.classList.remove(r?s:l)}var d="(prefers-color-scheme: dark)";function f(r){var e;return(null!=(e=function(r){var e=null==window.matchMedia?void 0:window.matchMedia(r);if(e)return!!e.media===e.matches}(d))?e:"dark"===r)?"dark":"light"}var p=()=>document.documentElement.style.getPropertyValue("--chakra-ui-color-mode"),h=r=>{o.jU&&document.documentElement.style.setProperty("--chakra-ui-color-mode",r)},b=()=>"undefined"!==typeof Storage,g="chakra-ui-color-mode",m={get(r){if(!b())return r;try{var e=localStorage.getItem(g);return null!=e?e:r}catch(t){return n.Ts&&console.log(t),r}},set(r){if(b())try{localStorage.setItem(g,r)}catch(e){n.Ts&&console.log(e)}},type:"localStorage"};var v=i.createContext({});n.Ts&&(v.displayName="ColorModeContext");var y=()=>{var r=i.useContext(v);if(void 0===r)throw new Error("useColorMode must be used within a ColorModeProvider");return r};function x(r){var{value:e,children:t,options:{useSystemColorMode:n,initialColorMode:s},colorModeManager:l=m}=r,[c,b]=i.useState("cookie"===l.type?l.get(s):s);i.useEffect((()=>{if(o.jU&&"localStorage"===l.type){var r=n?f(s):p()||l.get();r&&b(r)}}),[l,n,s]),i.useEffect((()=>{var r="dark"===c;u(r),h(r?"dark":"light")}),[c]);var g=i.useCallback((r=>{l.set(r),b(r)}),[l]),y=i.useCallback((()=>{g("light"===c?"dark":"light")}),[c,g]);i.useEffect((()=>{var r;return n&&(r=function(r){if(!("matchMedia"in window))return a.ZT;var e=window.matchMedia(d),t=()=>{r(e.matches?"dark":"light")};return t(),e.addListener(t),()=>{e.removeListener(t)}}(g)),()=>{r&&n&&r()}}),[g,n]);var x=i.useMemo((()=>({colorMode:null!=e?e:c,toggleColorMode:e?a.ZT:y,setColorMode:e?a.ZT:g})),[c,g,y,e]);return i.createElement(v.Provider,{value:x},t)}n.Ts&&(x.displayName="ColorModeProvider");n.Ts;n.Ts},4577:function(r,e,t){"use strict";t.d(e,{vc:function(){return i},Me:function(){return s},ZS:function(){return l}});var n=t(7294),o={prefix:Math.round(1e10*Math.random()),current:0},a=n.createContext(o),i=n.memo((r=>{var{children:e}=r,t=n.useContext(a),i=t===o,s=n.useMemo((()=>({prefix:i?0:++t.prefix,current:0})),[i,t]);return n.createElement(a.Provider,{value:s},e)}));function s(r,e){var t=n.useContext(a);return n.useMemo((()=>r||[e,t.prefix,++t.current].filter(Boolean).join("-")),[r,e])}function l(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),o=1;o<e;o++)t[o-1]=arguments[o];var a=s(r);return n.useMemo((()=>t.map((r=>r+"-"+a))),[a,t])}},4288:function(r,e,t){"use strict";t.d(e,{L:function(){return s},h:function(){return l}});var n=t(3808),o=t(8500),a=t(7294),[i,s]=(0,o.k)({strict:!1,name:"PortalManagerContext"});function l(r){var{children:e,zIndex:t}=r;return a.createElement(i,{value:{zIndex:t}},e)}n.Ts&&(l.displayName="PortalManager")},8500:function(r,e,t){"use strict";t.d(e,{k:function(){return o}});var n=t(7294);function o(r){void 0===r&&(r={});var{strict:e=!0,errorMessage:t="useContext: `context` is undefined. Seems you forgot to wrap component within the Provider",name:o}=r,a=n.createContext(void 0);return a.displayName=o,[a.Provider,function r(){var o=n.useContext(a);if(!o&&e){var i=new Error(t);throw i.name="ContextError",null==Error.captureStackTrace||Error.captureStackTrace(i,r),i}return o},a]}},2631:function(r,e,t){"use strict";t.d(e,{css:function(){return yr},isStyleProp:function(){return br},propNames:function(){return pr},toCSSVar:function(){return Lr}});var n=t(3808);function o(r){var{scale:e,transform:t,compose:o}=r;return(r,a)=>{var i,s=((r,e)=>t=>{var o=String(e),a=r?r+"."+o:o;return(0,n.Kn)(t.__cssMap)&&a in t.__cssMap?t.__cssMap[a].varRef:e})(e,r)(a),l=null!=(i=null==t?void 0:t(s,a))?i:s;return o&&(l=o(l,a)),l}}function a(r,e){return t=>{var n={property:t,scale:r};return n.transform=o({scale:r,transform:e}),n}}var i=r=>{var{rtl:e,ltr:t}=r;return r=>"rtl"===r.direction?e:t};var s=["rotate(var(--chakra-rotate, 0))","scaleX(var(--chakra-scale-x, 1))","scaleY(var(--chakra-scale-y, 1))","skewX(var(--chakra-skew-x, 0))","skewY(var(--chakra-skew-y, 0))"];var l={"--chakra-blur":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-brightness":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-contrast":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-grayscale":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-hue-rotate":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-invert":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-saturate":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-sepia":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-drop-shadow":"var(--chakra-empty,/*!*/ /*!*/)",filter:["var(--chakra-blur)","var(--chakra-brightness)","var(--chakra-contrast)","var(--chakra-grayscale)","var(--chakra-hue-rotate)","var(--chakra-invert)","var(--chakra-saturate)","var(--chakra-sepia)","var(--chakra-drop-shadow)"].join(" ")},c={backdropFilter:["var(--chakra-backdrop-blur)","var(--chakra-backdrop-brightness)","var(--chakra-backdrop-contrast)","var(--chakra-backdrop-grayscale)","var(--chakra-backdrop-hue-rotate)","var(--chakra-backdrop-invert)","var(--chakra-backdrop-opacity)","var(--chakra-backdrop-saturate)","var(--chakra-backdrop-sepia)"].join(" "),"--chakra-backdrop-blur":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-brightness":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-contrast":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-grayscale":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-hue-rotate":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-invert":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-opacity":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-saturate":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-backdrop-sepia":"var(--chakra-empty,/*!*/ /*!*/)"};var u={"row-reverse":{space:"--chakra-space-x-reverse",divide:"--chakra-divide-x-reverse"},"column-reverse":{space:"--chakra-space-y-reverse",divide:"--chakra-divide-y-reverse"}},d="& > :not(style) ~ :not(style)",f={[d]:{marginInlineStart:"calc(var(--chakra-space-x) * calc(1 - var(--chakra-space-x-reverse)))",marginInlineEnd:"calc(var(--chakra-space-x) * var(--chakra-space-x-reverse))"}},p={[d]:{marginTop:"calc(var(--chakra-space-y) * calc(1 - var(--chakra-space-y-reverse)))",marginBottom:"calc(var(--chakra-space-y) * var(--chakra-space-y-reverse))"}};function h(r,e){h=function(r,e){return new a(r,void 0,e)};var t=g(RegExp),n=RegExp.prototype,o=new WeakMap;function a(r,e,n){var a=t.call(this,r,e);return o.set(a,n||o.get(r)),a}function i(r,e){var t=o.get(e);return Object.keys(t).reduce((function(e,n){return e[n]=r[t[n]],e}),Object.create(null))}return b(a,t),a.prototype.exec=function(r){var e=n.exec.call(this,r);return e&&(e.groups=i(e,this)),e},a.prototype[Symbol.replace]=function(r,e){if("string"===typeof e){var t=o.get(this);return n[Symbol.replace].call(this,r,e.replace(/\$<([^>]+)>/g,(function(r,e){return"$"+t[e]})))}if("function"===typeof e){var a=this;return n[Symbol.replace].call(this,r,(function(){var r=[];return r.push.apply(r,arguments),"object"!==typeof r[r.length-1]&&r.push(i(r,a)),e.apply(this,r)}))}return n[Symbol.replace].call(this,r,e)},h.apply(this,arguments)}function b(r,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&y(r,e)}function g(r){var e="function"===typeof Map?new Map:void 0;return(g=function(r){if(null===r||(t=r,-1===Function.toString.call(t).indexOf("[native code]")))return r;var t;if("function"!==typeof r)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof e){if(e.has(r))return e.get(r);e.set(r,n)}function n(){return m(r,arguments,x(this).constructor)}return n.prototype=Object.create(r.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),y(n,r)})(r)}function m(r,e,t){return(m=v()?Reflect.construct:function(r,e,t){var n=[null];n.push.apply(n,e);var o=new(Function.bind.apply(r,n));return t&&y(o,t.prototype),o}).apply(null,arguments)}function v(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(r){return!1}}function y(r,e){return(y=Object.setPrototypeOf||function(r,e){return r.__proto__=e,r})(r,e)}function x(r){return(x=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)})(r)}var S={"to-t":"to top","to-tr":"to top right","to-r":"to right","to-br":"to bottom right","to-b":"to bottom","to-bl":"to bottom left","to-l":"to left","to-tl":"to top left"},k=new Set(Object.values(S)),w=new Set(["none","-moz-initial","inherit","initial","revert","unset"]),_=r=>r.trim();var C=r=>e=>r+"("+e+")",A={filter:r=>"auto"!==r?r:l,backdropFilter:r=>"auto"!==r?r:c,ring:r=>function(r){return{"--chakra-ring-offset-shadow":"var(--chakra-ring-inset) 0 0 0 var(--chakra-ring-offset-width) var(--chakra-ring-offset-color)","--chakra-ring-shadow":"var(--chakra-ring-inset) 0 0 0 calc(var(--chakra-ring-width) + var(--chakra-ring-offset-width)) var(--chakra-ring-color)","--chakra-ring-width":r,boxShadow:["var(--chakra-ring-offset-shadow)","var(--chakra-ring-shadow)","var(--chakra-shadow, 0 0 #0000)"].join(", ")}}(A.px(r)),bgClip:r=>"text"===r?{color:"transparent",backgroundClip:"text"}:{backgroundClip:r},transform:r=>"auto"===r?["translateX(var(--chakra-translate-x, 0))","translateY(var(--chakra-translate-y, 0))",...s].join(" "):"auto-gpu"===r?["translate3d(var(--chakra-translate-x, 0), var(--chakra-translate-y, 0), 0)",...s].join(" "):r,px(r){if(null==r)return r;var{unitless:e}=(r=>{var e=parseFloat(r.toString()),t=r.toString().replace(String(e),"");return{unitless:!t,value:e,unit:t}})(r);return e||(0,n.hj)(r)?r+"px":r},fraction:r=>!(0,n.hj)(r)||r>1?r:100*r+"%",float:(r,e)=>"rtl"===e.direction?{left:"right",right:"left"}[r]:r,degree(r){if((0,n.FS)(r)||null==r)return r;var e=(0,n.HD)(r)&&!r.endsWith("deg");return(0,n.hj)(r)||e?r+"deg":r},gradient:(r,e)=>function(r,e){var t,n;if(null==r||w.has(r))return r;var o=h(/(^[\x2DA-Za-z]+)\(((.*))\)/g,{type:1,values:2}),{type:a,values:i}=null!=(t=null==(n=o.exec(r))?void 0:n.groups)?t:{};if(!a||!i)return r;var s=a.includes("-gradient")?a:a+"-gradient",[l,...c]=i.split(",").map(_).filter(Boolean);if(0===(null==c?void 0:c.length))return r;var u=l in S?S[l]:l;return c.unshift(u),s+"("+c.map((r=>{if(k.has(r))return r;var[t,n]=r.split(" "),o="colors."+t,a=o in e.__cssMap?e.__cssMap[o].varRef:t;return n?[a,n].join(" "):a})).join(", ")+")"}(r,null!=e?e:{}),blur:C("blur"),opacity:C("opacity"),brightness:C("brightness"),contrast:C("contrast"),dropShadow:C("drop-shadow"),grayscale:C("grayscale"),hueRotate:C("hue-rotate"),invert:C("invert"),saturate:C("saturate"),sepia:C("sepia"),bgImage:r=>null==r||z(r)||w.has(r)?r:"url("+r+")",outline(r){var e="0"===String(r)||"none"===String(r);return null!==r&&e?{outline:"2px solid transparent",outlineOffset:"2px"}:{outline:r}},flexDirection(r){var e,{space:t,divide:n}=null!=(e=u[r])?e:{},o={flexDirection:r};return t&&(o[t]=1),n&&(o[n]=1),o}},z=r=>(0,n.HD)(r)&&r.includes("(")&&r.includes(")");function E(){return(E=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}var R={borderWidths:a("borderWidths"),borderStyles:a("borderStyles"),colors:a("colors"),borders:a("borders"),radii:a("radii",A.px),space:a("space",A.px),spaceT:a("space",A.px),degreeT:r=>({property:r,transform:A.degree}),prop:(r,e,t)=>E({property:r,scale:e},e&&{transform:o({scale:e,transform:t})}),propT:(r,e)=>({property:r,transform:e}),sizes:a("sizes",A.px),sizesT:a("sizes",A.fraction),shadows:a("shadows"),logical:function(r){var{property:e,scale:t,transform:n}=r;return{scale:t,property:i(e),transform:t?o({scale:t,compose:n}):n}},blur:a("blur",A.blur)},B={background:R.colors("background"),backgroundColor:R.colors("backgroundColor"),backgroundImage:R.propT("backgroundImage",A.bgImage),backgroundSize:!0,backgroundPosition:!0,backgroundRepeat:!0,backgroundAttachment:!0,backgroundClip:{transform:A.bgClip},bgSize:R.prop("backgroundSize"),bgPosition:R.prop("backgroundPosition"),bg:R.colors("background"),bgColor:R.colors("backgroundColor"),bgPos:R.prop("backgroundPosition"),bgRepeat:R.prop("backgroundRepeat"),bgAttachment:R.prop("backgroundAttachment"),bgGradient:R.propT("backgroundImage",A.gradient),bgClip:{transform:A.bgClip}};Object.assign(B,{bgImage:B.backgroundImage,bgImg:B.backgroundImage});var j={border:R.borders("border"),borderWidth:R.borderWidths("borderWidth"),borderStyle:R.borderStyles("borderStyle"),borderColor:R.colors("borderColor"),borderRadius:R.radii("borderRadius"),borderTop:R.borders("borderTop"),borderBlockStart:R.borders("borderBlockStart"),borderTopLeftRadius:R.radii("borderTopLeftRadius"),borderStartStartRadius:R.logical({scale:"radii",property:{ltr:"borderTopLeftRadius",rtl:"borderTopRightRadius"}}),borderEndStartRadius:R.logical({scale:"radii",property:{ltr:"borderBottomLeftRadius",rtl:"borderBottomRightRadius"}}),borderTopRightRadius:R.radii("borderTopRightRadius"),borderStartEndRadius:R.logical({scale:"radii",property:{ltr:"borderTopRightRadius",rtl:"borderTopLeftRadius"}}),borderEndEndRadius:R.logical({scale:"radii",property:{ltr:"borderBottomRightRadius",rtl:"borderBottomLeftRadius"}}),borderRight:R.borders("borderRight"),borderInlineEnd:R.borders("borderInlineEnd"),borderBottom:R.borders("borderBottom"),borderBlockEnd:R.borders("borderBlockEnd"),borderBottomLeftRadius:R.radii("borderBottomLeftRadius"),borderBottomRightRadius:R.radii("borderBottomRightRadius"),borderLeft:R.borders("borderLeft"),borderInlineStart:{property:"borderInlineStart",scale:"borders"},borderInlineStartRadius:R.logical({scale:"radii",property:{ltr:["borderTopLeftRadius","borderBottomLeftRadius"],rtl:["borderTopRightRadius","borderBottomRightRadius"]}}),borderInlineEndRadius:R.logical({scale:"radii",property:{ltr:["borderTopRightRadius","borderBottomRightRadius"],rtl:["borderTopLeftRadius","borderBottomLeftRadius"]}}),borderX:R.borders(["borderLeft","borderRight"]),borderInline:R.borders("borderInline"),borderY:R.borders(["borderTop","borderBottom"]),borderBlock:R.borders("borderBlock"),borderTopWidth:R.borderWidths("borderTopWidth"),borderBlockStartWidth:R.borderWidths("borderBlockStartWidth"),borderTopColor:R.colors("borderTopColor"),borderBlockStartColor:R.colors("borderBlockStartColor"),borderTopStyle:R.borderStyles("borderTopStyle"),borderBlockStartStyle:R.borderStyles("borderBlockStartStyle"),borderBottomWidth:R.borderWidths("borderBottomWidth"),borderBlockEndWidth:R.borderWidths("borderBlockEndWidth"),borderBottomColor:R.colors("borderBottomColor"),borderBlockEndColor:R.colors("borderBlockEndColor"),borderBottomStyle:R.borderStyles("borderBottomStyle"),borderBlockEndStyle:R.borderStyles("borderBlockEndStyle"),borderLeftWidth:R.borderWidths("borderLeftWidth"),borderInlineStartWidth:R.borderWidths("borderInlineStartWidth"),borderLeftColor:R.colors("borderLeftColor"),borderInlineStartColor:R.colors("borderInlineStartColor"),borderLeftStyle:R.borderStyles("borderLeftStyle"),borderInlineStartStyle:R.borderStyles("borderInlineStartStyle"),borderRightWidth:R.borderWidths("borderRightWidth"),borderInlineEndWidth:R.borderWidths("borderInlineEndWidth"),borderRightColor:R.colors("borderRightColor"),borderInlineEndColor:R.colors("borderInlineEndColor"),borderRightStyle:R.borderStyles("borderRightStyle"),borderInlineEndStyle:R.borderStyles("borderInlineEndStyle"),borderTopRadius:R.radii(["borderTopLeftRadius","borderTopRightRadius"]),borderBottomRadius:R.radii(["borderBottomLeftRadius","borderBottomRightRadius"]),borderLeftRadius:R.radii(["borderTopLeftRadius","borderBottomLeftRadius"]),borderRightRadius:R.radii(["borderTopRightRadius","borderBottomRightRadius"])};Object.assign(j,{rounded:j.borderRadius,roundedTop:j.borderTopRadius,roundedTopLeft:j.borderTopLeftRadius,roundedTopRight:j.borderTopRightRadius,roundedTopStart:j.borderStartStartRadius,roundedTopEnd:j.borderStartEndRadius,roundedBottom:j.borderBottomRadius,roundedBottomLeft:j.borderBottomLeftRadius,roundedBottomRight:j.borderBottomRightRadius,roundedBottomStart:j.borderEndStartRadius,roundedBottomEnd:j.borderEndEndRadius,roundedLeft:j.borderLeftRadius,roundedRight:j.borderRightRadius,roundedStart:j.borderInlineStartRadius,roundedEnd:j.borderInlineEndRadius,borderStart:j.borderInlineStart,borderEnd:j.borderInlineEnd,borderTopStartRadius:j.borderStartStartRadius,borderTopEndRadius:j.borderStartEndRadius,borderBottomStartRadius:j.borderEndStartRadius,borderBottomEndRadius:j.borderEndEndRadius,borderStartRadius:j.borderInlineStartRadius,borderEndRadius:j.borderInlineEndRadius,borderStartWidth:j.borderInlineStartWidth,borderEndWidth:j.borderInlineEndWidth,borderStartColor:j.borderInlineStartColor,borderEndColor:j.borderInlineEndColor,borderStartStyle:j.borderInlineStartStyle,borderEndStyle:j.borderInlineEndStyle});var O={color:R.colors("color"),textColor:R.colors("color"),fill:R.colors("fill"),stroke:R.colors("stroke")},T={boxShadow:R.shadows("boxShadow"),mixBlendMode:!0,blendMode:R.prop("mixBlendMode"),backgroundBlendMode:!0,bgBlendMode:R.prop("backgroundBlendMode"),opacity:!0};Object.assign(T,{shadow:T.boxShadow});var F={filter:{transform:A.filter},blur:R.blur("--chakra-blur"),brightness:R.propT("--chakra-brightness",A.brightness),contrast:R.propT("--chakra-contrast",A.contrast),hueRotate:R.degreeT("--chakra-hue-rotate"),invert:R.propT("--chakra-invert",A.invert),saturate:R.propT("--chakra-saturate",A.saturate),dropShadow:R.propT("--chakra-drop-shadow",A.dropShadow),backdropFilter:{transform:A.backdropFilter},backdropBlur:R.blur("--chakra-backdrop-blur"),backdropBrightness:R.propT("--chakra-backdrop-brightness",A.brightness),backdropContrast:R.propT("--chakra-backdrop-contrast",A.contrast),backdropHueRotate:R.degreeT("--chakra-backdrop-hue-rotate"),backdropInvert:R.propT("--chakra-backdrop-invert",A.invert),backdropSaturate:R.propT("--chakra-backdrop-saturate",A.saturate)},P={alignItems:!0,alignContent:!0,justifyItems:!0,justifyContent:!0,flexWrap:!0,flexDirection:{transform:A.flexDirection},experimental_spaceX:{static:f,transform:o({scale:"space",transform:r=>null!==r?{"--chakra-space-x":r}:null})},experimental_spaceY:{static:p,transform:o({scale:"space",transform:r=>null!=r?{"--chakra-space-y":r}:null})},flex:!0,flexFlow:!0,flexGrow:!0,flexShrink:!0,flexBasis:R.sizes("flexBasis"),justifySelf:!0,alignSelf:!0,order:!0,placeItems:!0,placeContent:!0,placeSelf:!0};Object.assign(P,{flexDir:P.flexDirection});var I={gridGap:R.space("gridGap"),gridColumnGap:R.space("gridColumnGap"),gridRowGap:R.space("gridRowGap"),gridColumn:!0,gridRow:!0,gridAutoFlow:!0,gridAutoColumns:!0,gridColumnStart:!0,gridColumnEnd:!0,gridRowStart:!0,gridRowEnd:!0,gridAutoRows:!0,gridTemplate:!0,gridTemplateColumns:!0,gridTemplateRows:!0,gridTemplateAreas:!0,gridArea:!0},D={appearance:!0,cursor:!0,resize:!0,userSelect:!0,pointerEvents:!0,outline:{transform:A.outline},outlineOffset:!0,outlineColor:R.colors("outlineColor")},W={width:R.sizesT("width"),inlineSize:R.sizesT("inlineSize"),height:R.sizes("height"),blockSize:R.sizes("blockSize"),boxSize:R.sizes(["width","height"]),minWidth:R.sizes("minWidth"),minInlineSize:R.sizes("minInlineSize"),minHeight:R.sizes("minHeight"),minBlockSize:R.sizes("minBlockSize"),maxWidth:R.sizes("maxWidth"),maxInlineSize:R.sizes("maxInlineSize"),maxHeight:R.sizes("maxHeight"),maxBlockSize:R.sizes("maxBlockSize"),d:R.prop("display"),overflow:!0,overflowX:!0,overflowY:!0,overscrollBehavior:!0,overscrollBehaviorX:!0,overscrollBehaviorY:!0,display:!0,verticalAlign:!0,boxSizing:!0,boxDecorationBreak:!0,float:R.propT("float",A.float),objectFit:!0,objectPosition:!0,visibility:!0,isolation:!0};Object.assign(W,{w:W.width,h:W.height,minW:W.minWidth,maxW:W.maxWidth,minH:W.minHeight,maxH:W.maxHeight,overscroll:W.overscrollBehavior,overscrollX:W.overscrollBehaviorX,overscrollY:W.overscrollBehaviorY});var M={listStyleType:!0,listStylePosition:!0,listStylePos:R.prop("listStylePosition"),listStyleImage:!0,listStyleImg:R.prop("listStyleImage")},L=t(5505),H={border:"0px",clip:"rect(0, 0, 0, 0)",width:"1px",height:"1px",margin:"-1px",padding:"0px",overflow:"hidden",whiteSpace:"nowrap",position:"absolute"},$={position:"static",width:"auto",height:"auto",clip:"auto",padding:"0",margin:"0",overflow:"visible",whiteSpace:"normal"},N=(r,e,t)=>{var n={},o=(0,L.Wf)(r,e,{});for(var a in o){a in t&&null!=t[a]||(n[a]=o[a])}return n},V={srOnly:{transform:r=>!0===r?H:"focusable"===r?$:{}},layerStyle:{processResult:!0,transform:(r,e,t)=>N(e,"layerStyles."+r,t)},textStyle:{processResult:!0,transform:(r,e,t)=>N(e,"textStyles."+r,t)},apply:{processResult:!0,transform:(r,e,t)=>N(e,r,t)}},Y={position:!0,pos:R.prop("position"),zIndex:R.prop("zIndex","zIndices"),inset:R.spaceT(["top","right","bottom","left"]),insetX:R.spaceT(["left","right"]),insetInline:R.spaceT("insetInline"),insetY:R.spaceT(["top","bottom"]),insetBlock:R.spaceT("insetBlock"),top:R.spaceT("top"),insetBlockStart:R.spaceT("insetBlockStart"),bottom:R.spaceT("bottom"),insetBlockEnd:R.spaceT("insetBlockEnd"),left:R.spaceT("left"),insetInlineStart:R.logical({scale:"space",property:{ltr:"left",rtl:"right"}}),right:R.spaceT("right"),insetInlineEnd:R.logical({scale:"space",property:{ltr:"right",rtl:"left"}})};Object.assign(Y,{insetStart:Y.insetInlineStart,insetEnd:Y.insetInlineEnd});var q={ring:{transform:A.ring},ringColor:R.colors("--chakra-ring-color"),ringOffset:R.prop("--chakra-ring-offset-width"),ringOffsetColor:R.colors("--chakra-ring-offset-color"),ringInset:R.prop("--chakra-ring-inset")},X={margin:R.spaceT("margin"),marginTop:R.spaceT("marginTop"),marginBlockStart:R.spaceT("marginBlockStart"),marginRight:R.spaceT("marginRight"),marginInlineEnd:R.spaceT("marginInlineEnd"),marginBottom:R.spaceT("marginBottom"),marginBlockEnd:R.spaceT("marginBlockEnd"),marginLeft:R.spaceT("marginLeft"),marginInlineStart:R.spaceT("marginInlineStart"),marginX:R.spaceT(["marginInlineStart","marginInlineEnd"]),marginInline:R.spaceT("marginInline"),marginY:R.spaceT(["marginTop","marginBottom"]),marginBlock:R.spaceT("marginBlock"),padding:R.space("padding"),paddingTop:R.space("paddingTop"),paddingBlockStart:R.space("paddingBlockStart"),paddingRight:R.space("paddingRight"),paddingBottom:R.space("paddingBottom"),paddingBlockEnd:R.space("paddingBlockEnd"),paddingLeft:R.space("paddingLeft"),paddingInlineStart:R.space("paddingInlineStart"),paddingInlineEnd:R.space("paddingInlineEnd"),paddingX:R.space(["paddingInlineStart","paddingInlineEnd"]),paddingInline:R.space("paddingInline"),paddingY:R.space(["paddingTop","paddingBottom"]),paddingBlock:R.space("paddingBlock")};Object.assign(X,{m:X.margin,mt:X.marginTop,mr:X.marginRight,me:X.marginInlineEnd,marginEnd:X.marginInlineEnd,mb:X.marginBottom,ml:X.marginLeft,ms:X.marginInlineStart,marginStart:X.marginInlineStart,mx:X.marginX,my:X.marginY,p:X.padding,pt:X.paddingTop,py:X.paddingY,px:X.paddingX,pb:X.paddingBottom,pl:X.paddingLeft,ps:X.paddingInlineStart,paddingStart:X.paddingInlineStart,pr:X.paddingRight,pe:X.paddingInlineEnd,paddingEnd:X.paddingInlineEnd});var U={textDecorationColor:R.colors("textDecorationColor"),textDecoration:!0,textDecor:{property:"textDecoration"},textDecorationLine:!0,textDecorationStyle:!0,textDecorationThickness:!0,textUnderlineOffset:!0,textShadow:R.shadows("textShadow")},G={clipPath:!0,transform:R.propT("transform",A.transform),transformOrigin:!0,translateX:R.spaceT("--chakra-translate-x"),translateY:R.spaceT("--chakra-translate-y"),skewX:R.degreeT("--chakra-skew-x"),skewY:R.degreeT("--chakra-skew-y"),scaleX:R.prop("--chakra-scale-x"),scaleY:R.prop("--chakra-scale-y"),scale:R.prop(["--chakra-scale-x","--chakra-scale-y"]),rotate:R.degreeT("--chakra-rotate")},Z={transition:!0,transitionDelay:!0,animation:!0,willChange:!0,transitionDuration:R.prop("transitionDuration","transition.duration"),transitionProperty:R.prop("transitionProperty","transition.property"),transitionTimingFunction:R.prop("transitionTimingFunction","transition.easing")},K={fontFamily:R.prop("fontFamily","fonts"),fontSize:R.prop("fontSize","fontSizes",A.px),fontWeight:R.prop("fontWeight","fontWeights"),lineHeight:R.prop("lineHeight","lineHeights"),letterSpacing:R.prop("letterSpacing","letterSpacings"),textAlign:!0,fontStyle:!0,wordBreak:!0,overflowWrap:!0,textOverflow:!0,textTransform:!0,whiteSpace:!0,noOfLines:{static:{overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:"var(--chakra-line-clamp)"},property:"--chakra-line-clamp"},isTruncated:{transform(r){if(!0===r)return{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}}},Q=t(658),J=t(8554),rr=t.n(J),er=r=>r+":focus &, "+r+"[data-focus] &",tr=r=>r+":active &, "+r+"[data-active] &",nr=r=>r+":disabled &, "+r+"[data-disabled] &",or=r=>r+":invalid &, "+r+"[data-invalid] &",ar=r=>r+":checked &, "+r+"[data-checked] &",ir=r=>sr(r,"[role=group]","[data-group]",".group"),sr=function(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),n=1;n<e;n++)t[n-1]=arguments[n];return t.map(r).join(", ")},lr={_hover:"&:hover, &[data-hover]",_active:"&:active, &[data-active]",_focus:"&:focus, &[data-focus]",_highlighted:"&[data-highlighted]",_focusWithin:"&:focus-within",_focusVisible:"&:focus-visible",_disabled:"&[disabled], &[aria-disabled=true], &[data-disabled]",_readOnly:"&[aria-readonly=true], &[readonly], &[data-readonly]",_before:"&::before",_after:"&::after",_empty:"&:empty",_expanded:"&[aria-expanded=true], &[data-expanded]",_checked:"&[aria-checked=true], &[data-checked]",_grabbed:"&[aria-grabbed=true], &[data-grabbed]",_pressed:"&[aria-pressed=true], &[data-pressed]",_invalid:"&[aria-invalid=true], &[data-invalid]",_valid:"&[data-valid], &[data-state=valid]",_loading:"&[data-loading], &[aria-busy=true]",_selected:"&[aria-selected=true], &[data-selected]",_hidden:"&[hidden], &[data-hidden]",_autofill:"&:-webkit-autofill",_even:"&:nth-of-type(even)",_odd:"&:nth-of-type(odd)",_first:"&:first-of-type",_last:"&:last-of-type",_notFirst:"&:not(:first-of-type)",_notLast:"&:not(:last-of-type)",_visited:"&:visited",_activeLink:"&[aria-current=page]",_activeStep:"&[aria-current=step]",_indeterminate:"&:indeterminate, &[aria-checked=mixed], &[data-indeterminate]",_groupHover:ir((r=>r+":hover &, "+r+"[data-hover] &")),_groupFocus:ir(er),_groupActive:ir(tr),_groupDisabled:ir(nr),_groupInvalid:ir(or),_groupChecked:ir(ar),_placeholder:"&::placeholder",_fullScreen:"&:fullscreen",_selection:"&::selection",_rtl:"[dir=rtl] &",_mediaDark:"@media (prefers-color-scheme: dark)",_dark:".chakra-ui-dark &, [data-theme=dark] &, &[data-theme=dark]",_light:".chakra-ui-light &, [data-theme=light] &, &[data-theme=light]"},cr=(0,L.Yd)(lr);function ur(){return(ur=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}var dr=rr()({},B,j,O,P,W,F,q,D,I,V,Y,T,X,K,U,G,M,Z),fr=Object.assign({},X,W,P,I,Y),pr=((0,L.Yd)(fr),[...(0,L.Yd)(dr),...cr]),hr=ur({},dr,lr),br=r=>r in hr,gr=(r,e)=>r.startsWith("--")&&(0,n.HD)(e)&&!(0,n.FS)(e),mr=(r,e)=>{var t,n;if(null==e)return e;var o=e=>{var t,n;return null==(t=r.__cssMap)||null==(n=t[e])?void 0:n.varRef},a=r=>{var e;return null!=(e=o(r))?e:r},i=e.split(",").map((r=>r.trim())),[s,l]=i;return e=null!=(t=null!=(n=o(s))?n:a(l))?t:a(e)};function vr(r){var{configs:e={},pseudos:t={},theme:o}=r;return function r(a,i){void 0===i&&(i=!1);var s=(0,Q.Pu)(a,o),l=(r=>e=>{if(!e.__breakpoints)return r;var{isResponsive:t,toArrayValue:o,media:a}=e.__breakpoints,i={};for(var s in r){var l=(0,Q.Pu)(r[s],e);if(null!=l)if(l=(0,n.Kn)(l)&&t(l)?o(l):l,Array.isArray(l))for(var c=l.slice(0,a.length).length,u=0;u<c;u+=1){var d=null==a?void 0:a[u];d?(i[d]=i[d]||{},null!=l[u]&&(i[d][s]=l[u])):i[s]=l[u]}else i[s]=l}return i})(s)(o),c={};for(var u in l){var d,f,p,h,b,g=l[u],m=(0,Q.Pu)(g,o);u in t&&(u=t[u]),gr(u,m)&&(m=mr(o,m));var v=e[u];if(!0===v&&(v={property:u}),(0,n.Kn)(m)){var y;c[u]=null!=(y=c[u])?y:{},c[u]=rr()({},c[u],r(m,!0))}else{var x=null!=(d=null==(f=v)||null==f.transform?void 0:f.transform(m,o,s))?d:m;x=null!=(p=v)&&p.processResult?r(x,!0):x;var S=(0,Q.Pu)(null==(h=v)?void 0:h.property,o);if(!i&&null!=(b=v)&&b.static){var k=(0,Q.Pu)(v.static,o);c=rr()({},c,k)}if(S&&Array.isArray(S))for(var w of S)c[w]=x;else S?"&"===S&&(0,n.Kn)(x)?c=rr()({},c,x):c[S]=x:(0,n.Kn)(x)?c=rr()({},c,x):c[u]=x}}return c}}var yr=r=>e=>vr({theme:e,pseudos:lr,configs:dr})(r);t(1664),t(7759);function xr(r){return(0,n.Kn)(r)&&r.reference?r.reference:String(r)}var Sr=function(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),n=1;n<e;n++)t[n-1]=arguments[n];return t.map(xr).join(" "+r+" ").replace(/calc/g,"")},kr=function(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];return"calc("+Sr("+",...e)+")"},wr=function(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];return"calc("+Sr("-",...e)+")"},_r=function(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];return"calc("+Sr("*",...e)+")"},Cr=function(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];return"calc("+Sr("/",...e)+")"},Ar=r=>{var e=xr(r);return null==e||Number.isNaN(parseFloat(e))?_r(e,-1):String(e).startsWith("-")?String(e).slice(1):"-"+e},zr=Object.assign((r=>({add:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return zr(kr(r,...t))},subtract:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return zr(wr(r,...t))},multiply:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return zr(_r(r,...t))},divide:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return zr(Cr(r,...t))},negate:()=>zr(Ar(r)),toString:()=>r.toString()})),{add:kr,subtract:wr,multiply:_r,divide:Cr,negate:Ar}),Er=t(8456);function Rr(r){var e=function(r,e){return void 0===e&&(e="-"),r.replace(/\s+/g,e)}(r.toString());return e.includes("\\.")?r:!Number.isInteger(parseFloat(r.toString()))?e.replace(".","\\."):r}function Br(r,e){return"var("+Rr(r)+(e?", "+e:"")+")"}function jr(r,e){return void 0===e&&(e=""),"--"+function(r,e){return void 0===e&&(e=""),[e,Rr(r)].filter(Boolean).join("-")}(r,e)}function Or(r,e,t){var n=jr(r,t);return{variable:n,reference:Br(n,e)}}function Tr(){return(Tr=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}function Fr(r,e){var t={cssMap:{},cssVars:{}};return function(r,e){(function r(t,o){return void 0===o&&(o=[]),(0,n.kJ)(t)?t.map(((e,t)=>r(e,[...o,String(t)]))):(0,n.Kn)(t)?Object.fromEntries(Object.entries(t).map((e=>{var[t,n]=e;return[t,r(n,[...o,t])]}))):e(t,o)})(r)}(r,((r,n)=>{var o,[a]=n,i=null!=(o=Pr[a])?o:Pr.defaultHandler,{cssVars:s,cssMap:l}=i(n,r,e);Object.assign(t.cssVars,s),Object.assign(t.cssMap,l)})),t}var Pr={space:(r,e,t)=>{var n=Pr.defaultHandler(r,e,t),[o,...a]=r,i=o+".-"+a.join("."),s=r.join("-"),{variable:l,reference:c}=Or(s,void 0,t.cssVarPrefix),u=zr.negate(e),d=zr.negate(c);return{cssVars:n.cssVars,cssMap:Tr({},n.cssMap,{[i]:{value:""+u,var:""+l,varRef:d}})}},defaultHandler:(r,e,t)=>{var n=r.join("."),o=r.join("-"),{variable:a,reference:i}=Or(o,void 0,t.cssVarPrefix);return{cssVars:{[a]:e},cssMap:{[n]:{value:e,var:a,varRef:i}}}}};var Ir=["colors","borders","borderWidths","borderStyles","fonts","fontSizes","fontWeights","letterSpacings","lineHeights","radii","space","shadows","sizes","zIndices","transition","blur"];function Dr(r){var e=Ir;return(0,L.ei)(r,e)}function Wr(r){return function(r,e){if(null==r)return{};var t,n,o={},a=Object.keys(r);for(n=0;n<a.length;n++)t=a[n],e.indexOf(t)>=0||(o[t]=r[t]);return o}(r,["__cssMap","__cssVars","__breakpoints"])}function Mr(){return(Mr=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}function Lr(r){var e,t=Wr(r),n=Dr(t),o=null==(e=t.config)?void 0:e.cssVarPrefix,{cssMap:a,cssVars:i}=Fr(n,{cssVarPrefix:o});return Object.assign(t,{__cssVars:Mr({},{"--chakra-ring-inset":"var(--chakra-empty,/*!*/ /*!*/)","--chakra-ring-offset-width":"0px","--chakra-ring-offset-color":"#fff","--chakra-ring-color":"rgba(66, 153, 225, 0.6)","--chakra-ring-offset-shadow":"0 0 #0000","--chakra-ring-shadow":"0 0 #0000","--chakra-space-x-reverse":"0","--chakra-space-y-reverse":"0"},i),__cssMap:a,__breakpoints:(0,Er.y)(t.breakpoints)}),t}},1664:function(){},7759:function(){},9676:function(r,e,t){"use strict";t.d(e,{f6:function(){return d},Fg:function(){return f},Fo:function(){return p},yK:function(){return h},ZL:function(){return b}});var n=t(4738),o=t(2631),a=t(5505),i=t(658),s=t(8500),l=t(2544),c=t(917),u=t(7294),d=r=>{var{cssVarsRoot:e=":host, :root",theme:t,children:n}=r,a=u.useMemo((()=>(0,o.toCSSVar)(t)),[t]);return u.createElement(l.a,{theme:a},u.createElement(c.xB,{styles:r=>({[e]:r.__cssVars})}),n)};function f(){var r=u.useContext(l.T);if(!r)throw Error("useTheme: `theme` is undefined. Seems you forgot to wrap your app in `<ChakraProvider />` or `<ThemeProvider />`");return r}var[p,h]=(0,s.k)({name:"StylesContext",errorMessage:"useStyles: `styles` is undefined. Seems you forgot to wrap the components in `<StylesProvider />` "}),b=()=>{var{colorMode:r}=(0,n.If)();return u.createElement(c.xB,{styles:e=>{var t=(0,a.Wf)(e,"styles.global"),n=(0,i.Pu)(t,{theme:e,colorMode:r});if(n)return(0,o.css)(n)(e)}})}},7277:function(r,e,t){"use strict";function n(r){var e=null==r?0:r.length;return e?r[e-1]:void 0}function o(r,e){return[...r,e]}function a(r,e){return r.filter((r=>r!==e))}function i(r,e,t,n){if(null==e)return n;if(!n)return r.find((r=>t(r).toLowerCase().startsWith(e.toLowerCase())));var o,a=r.filter((r=>t(r).toLowerCase().startsWith(e.toLowerCase())));return a.length>0?a.includes(n)?((o=a.indexOf(n)+1)===a.length&&(o=0),a[o]):(o=r.indexOf(a[0]),r[o]):n}t.d(e,{s:function(){return n},jX:function(){return o},cl:function(){return a},LP:function(){return i}})},3808:function(r,e,t){"use strict";function n(r){return"number"===typeof r}function o(r){return"number"!==typeof r||Number.isNaN(r)||!Number.isFinite(r)}function a(r){return Array.isArray(r)}function i(r){return"function"===typeof r}function s(r){return"undefined"===typeof r||void 0===r}function l(r){var e=typeof r;return null!=r&&("object"===e||"function"===e)&&!a(r)}function c(r){return l(r)&&0===Object.keys(r).length}function u(r){return"[object String]"===Object.prototype.toString.call(r)}function d(r){return/^var\(--.+\)$/.test(r)}t.d(e,{hj:function(){return n},iy:function(){return o},kJ:function(){return a},mf:function(){return i},o8:function(){return s},Kn:function(){return l},Qr:function(){return c},HD:function(){return u},FS:function(){return d},Ts:function(){return f},Ys:function(){return p}});var f=!1,p=!1},8456:function(r,e,t){"use strict";t.d(e,{px:function(){return i},y:function(){return d}});var n=t(7277),o=t(3808),a=t(5505);function i(r){if(null==r)return r;var{unitless:e}=function(r){var e=parseFloat(r.toString()),t=r.toString().replace(String(e),"");return{unitless:!t,value:e,unit:t}}(r);return e||(0,o.hj)(r)?r+"px":r}var s=(r,e)=>parseInt(r[1],10)>parseInt(e[1],10)?1:-1,l=r=>(0,a.sq)(Object.entries(r).sort(s));function c(r){var e=l(r);return Object.assign(Object.values(e),e)}function u(r,e){var t=[];return r&&t.push("@media screen and (min-width: "+i(r)+")"),t.length>0&&e&&t.push("and"),e&&t.push("@media screen and (max-width: "+i(e)+")"),t.join(" ")}function d(r){var e;if(!r)return null;r.base=null!=(e=r.base)?e:"0px";var t=c(r),a=Object.entries(r).sort(s).map(((r,e,t)=>{var n,[a,s]=r,[,l]=null!=(n=t[e+1])?n:[];return{breakpoint:a,minW:s,maxW:l=parseFloat(l)>0?function(r){var e;if(!r)return r;var t=(r=null!=(e=i(r))?e:r).endsWith("px")?-1:-.0635;return(0,o.hj)(r)?""+(r+t):r.replace(/([0-9]+\.?[0-9]*)/,(r=>""+(parseFloat(r)+t)))}(l):void 0,maxWQuery:u(null,l),minWQuery:u(s),minMaxQuery:u(s,l)}})),d=function(r){var e=Object.keys(l(r));return new Set(e)}(r),f=Array.from(d.values());return{keys:d,normalized:t,isResponsive(r){var e=Object.keys(r);return e.length>0&&e.every((r=>d.has(r)))},asObject:l(r),asArray:c(r),details:a,media:[null,...t.map((r=>u(r))).slice(1)],toArrayValue(r){if(!(0,o.Kn)(r))throw new Error("toArrayValue: value must be an object");for(var e=f.map((e=>{var t;return null!=(t=r[e])?t:null}));null===(0,n.s)(e);)e.pop();return e},toObjectValue(r){if(!Array.isArray(r))throw new Error("toObjectValue: value must be an array");return r.reduce(((r,e,t)=>{var n=f[t];return null!=n&&null!=e&&(r[n]=e),r}),{})}}}},4461:function(r,e,t){"use strict";function n(r){var e;return r instanceof Element&&null!=(e=r.ownerDocument)?e:document}t.d(e,{lZ:function(){return n},jU:function(){return o},PB:function(){return a},Qm:function(){return i},cx:function(){return s},vY:function(){return l},r3:function(){return c},EV:function(){return u},uh:function(){return d},dO:function(){return f}});var o=!("undefined"===typeof window||!window.document||!window.document.createElement),a=r=>r?"":void 0,i=r=>!!r||void 0,s=function(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];return e.filter(Boolean).join(" ")};function l(r){var e=n(r);return null==e?void 0:e.activeElement}function c(r,e){return!!r&&(r===e||r.contains(e))}function u(r,e,t,n){return r.addEventListener(e,t,n),()=>{r.removeEventListener(e,t,n)}}function d(r){var{key:e,keyCode:t}=r;return t>=37&&t<=40&&0!==e.indexOf("Arrow")?"Arrow"+e:e}function f(r){return 0!==r.button}},658:function(r,e,t){"use strict";t.d(e,{Pu:function(){return o},v0:function(){return a},ZT:function(){return s},ZK:function(){return l},A4:function(){return c},zG:function(){return u},TE:function(){return p}});var n=t(3808);function o(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),o=1;o<e;o++)t[o-1]=arguments[o];return(0,n.mf)(r)?r(...t):r}function a(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];return function(r){e.some((e=>(null==e||e(r),null==r?void 0:r.defaultPrevented)))}}function i(r){var e;return function(){if(r){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];e=r.apply(this,n),r=null}return e}}var s=()=>{},l=i((r=>()=>{var{condition:e,message:t}=r;e&&n.Ts&&console.warn(t)})),c=(i((r=>()=>{var{condition:e,message:t}=r;e&&n.Ts&&console.error(t)})),n.Ys?r=>r():"function"===typeof queueMicrotask?queueMicrotask:r=>{Promise.resolve().then(r)}),u=function(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];return r=>e.reduce(((r,e)=>e(r)),r)},d=(r,e)=>Math.abs(r-e),f=r=>"x"in r&&"y"in r;function p(r,e){if((0,n.hj)(r)&&(0,n.hj)(e))return d(r,e);if(f(r)&&f(e)){var t=d(r.x,e.x),o=d(r.y,e.y);return Math.sqrt(t**2+o**2)}return 0}},5505:function(r,e,t){"use strict";t.d(e,{CE:function(){return n},ei:function(){return o},Wf:function(){return a},lw:function(){return i},YU:function(){return s},Yd:function(){return l},sq:function(){return c},K1:function(){return u}});t(8554);function n(r,e){var t={};return Object.keys(r).forEach((n=>{e.includes(n)||(t[n]=r[n])})),t}function o(r,e){var t={};return e.forEach((e=>{e in r&&(t[e]=r[e])})),t}var a=(r=>{var e=new WeakMap;return(t,n,o,a)=>{if("undefined"===typeof t)return r(t,n,o);e.has(t)||e.set(t,new Map);var i=e.get(t);if(i.has(n))return i.get(n);var s=r(t,n,o,a);return i.set(n,s),s}})((function(r,e,t,n){var o="string"===typeof e?e.split("."):[e];for(n=0;n<o.length&&r;n+=1)r=r[o[n]];return void 0===r?t:r}));function i(r,e){var t={};return Object.keys(r).forEach((n=>{var o=r[n];e(o,n,r)&&(t[n]=o)})),t}var s=r=>i(r,(r=>null!==r&&void 0!==r)),l=r=>Object.keys(r),c=r=>r.reduce(((r,e)=>{var[t,n]=e;return r[t]=n,r}),{}),u=(r,e,t)=>{var n,o;return null!=(n=null==(o=r.__cssMap[e+"."+t])?void 0:o.varRef)?n:t}},9152:function(r,e,t){"use strict";t.d(e,{Z:function(){return er}});var n=t(1526),o=Math.abs,a=String.fromCharCode;function i(r){return r.trim()}function s(r,e,t){return r.replace(e,t)}function l(r,e){return r.indexOf(e)}function c(r,e){return 0|r.charCodeAt(e)}function u(r,e,t){return r.slice(e,t)}function d(r){return r.length}function f(r){return r.length}function p(r,e){return e.push(r),r}var h=1,b=1,g=0,m=0,v=0,y="";function x(r,e,t,n,o,a,i){return{value:r,root:e,parent:t,type:n,props:o,children:a,line:h,column:b,length:i,return:""}}function S(r,e,t){return x(r,e.root,e.parent,t,e.props,e.children,0)}function k(){return v=m>0?c(y,--m):0,b--,10===v&&(b=1,h--),v}function w(){return v=m<g?c(y,m++):0,b++,10===v&&(b=1,h++),v}function _(){return c(y,m)}function C(){return m}function A(r,e){return u(y,r,e)}function z(r){switch(r){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function E(r){return h=b=1,g=d(y=r),m=0,[]}function R(r){return y="",r}function B(r){return i(A(m-1,T(91===r?r+2:40===r?r+1:r)))}function j(r){for(;(v=_())&&v<33;)w();return z(r)>2||z(v)>3?"":" "}function O(r,e){for(;--e&&w()&&!(v<48||v>102||v>57&&v<65||v>70&&v<97););return A(r,C()+(e<6&&32==_()&&32==w()))}function T(r){for(;w();)switch(v){case r:return m;case 34:case 39:return T(34===r||39===r?r:v);case 40:41===r&&T(r);break;case 92:w()}return m}function F(r,e){for(;w()&&r+v!==57&&(r+v!==84||47!==_()););return"/*"+A(e,m-1)+"*"+a(47===r?r:w())}function P(r){for(;!z(_());)w();return A(r,m)}var I="-ms-",D="-moz-",W="-webkit-",M="comm",L="rule",H="decl";function $(r,e){for(var t="",n=f(r),o=0;o<n;o++)t+=e(r[o],o,r,e)||"";return t}function N(r,e,t,n){switch(r.type){case"@import":case H:return r.return=r.return||r.value;case M:return"";case L:r.value=r.props.join(",")}return d(t=$(r.children,n))?r.return=r.value+"{"+t+"}":""}function V(r,e){switch(function(r,e){return(((e<<2^c(r,0))<<2^c(r,1))<<2^c(r,2))<<2^c(r,3)}(r,e)){case 5103:return W+"print-"+r+r;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return W+r+r;case 5349:case 4246:case 4810:case 6968:case 2756:return W+r+D+r+I+r+r;case 6828:case 4268:return W+r+I+r+r;case 6165:return W+r+I+"flex-"+r+r;case 5187:return W+r+s(r,/(\w+).+(:[^]+)/,"-webkit-box-$1$2-ms-flex-$1$2")+r;case 5443:return W+r+I+"flex-item-"+s(r,/flex-|-self/,"")+r;case 4675:return W+r+I+"flex-line-pack"+s(r,/align-content|flex-|-self/,"")+r;case 5548:return W+r+I+s(r,"shrink","negative")+r;case 5292:return W+r+I+s(r,"basis","preferred-size")+r;case 6060:return W+"box-"+s(r,"-grow","")+W+r+I+s(r,"grow","positive")+r;case 4554:return W+s(r,/([^-])(transform)/g,"$1-webkit-$2")+r;case 6187:return s(s(s(r,/(zoom-|grab)/,W+"$1"),/(image-set)/,W+"$1"),r,"")+r;case 5495:case 3959:return s(r,/(image-set\([^]*)/,W+"$1$`$1");case 4968:return s(s(r,/(.+:)(flex-)?(.*)/,"-webkit-box-pack:$3-ms-flex-pack:$3"),/s.+-b[^;]+/,"justify")+W+r+r;case 4095:case 3583:case 4068:case 2532:return s(r,/(.+)-inline(.+)/,W+"$1$2")+r;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(d(r)-1-e>6)switch(c(r,e+1)){case 109:if(45!==c(r,e+4))break;case 102:return s(r,/(.+:)(.+)-([^]+)/,"$1-webkit-$2-$3$1"+D+(108==c(r,e+3)?"$3":"$2-$3"))+r;case 115:return~l(r,"stretch")?V(s(r,"stretch","fill-available"),e)+r:r}break;case 4949:if(115!==c(r,e+1))break;case 6444:switch(c(r,d(r)-3-(~l(r,"!important")&&10))){case 107:return s(r,":",":"+W)+r;case 101:return s(r,/(.+:)([^;!]+)(;|!.+)?/,"$1"+W+(45===c(r,14)?"inline-":"")+"box$3$1"+W+"$2$3$1"+I+"$2box$3")+r}break;case 5936:switch(c(r,e+11)){case 114:return W+r+I+s(r,/[svh]\w+-[tblr]{2}/,"tb")+r;case 108:return W+r+I+s(r,/[svh]\w+-[tblr]{2}/,"tb-rl")+r;case 45:return W+r+I+s(r,/[svh]\w+-[tblr]{2}/,"lr")+r}return W+r+I+r+r}return r}function Y(r){return R(q("",null,null,null,[""],r=E(r),0,[0],r))}function q(r,e,t,n,o,i,l,c,u){for(var f=0,h=0,b=l,g=0,m=0,v=0,y=1,x=1,S=1,A=0,z="",E=o,R=i,T=n,I=z;x;)switch(v=A,A=w()){case 34:case 39:case 91:case 40:I+=B(A);break;case 9:case 10:case 13:case 32:I+=j(v);break;case 92:I+=O(C()-1,7);continue;case 47:switch(_()){case 42:case 47:p(U(F(w(),C()),e,t),u);break;default:I+="/"}break;case 123*y:c[f++]=d(I)*S;case 125*y:case 59:case 0:switch(A){case 0:case 125:x=0;case 59+h:m>0&&d(I)-b&&p(m>32?G(I+";",n,t,b-1):G(s(I," ","")+";",n,t,b-2),u);break;case 59:I+=";";default:if(p(T=X(I,e,t,f,h,o,c,z,E=[],R=[],b),i),123===A)if(0===h)q(I,e,T,T,E,i,b,c,R);else switch(g){case 100:case 109:case 115:q(r,T,T,n&&p(X(r,T,T,0,0,o,c,z,o,E=[],b),R),o,R,b,c,n?E:R);break;default:q(I,T,T,T,[""],R,b,c,R)}}f=h=m=0,y=S=1,z=I="",b=l;break;case 58:b=1+d(I),m=v;default:if(y<1)if(123==A)--y;else if(125==A&&0==y++&&125==k())continue;switch(I+=a(A),A*y){case 38:S=h>0?1:(I+="\f",-1);break;case 44:c[f++]=(d(I)-1)*S,S=1;break;case 64:45===_()&&(I+=B(w())),g=_(),h=d(z=I+=P(C())),A++;break;case 45:45===v&&2==d(I)&&(y=0)}}return i}function X(r,e,t,n,a,l,c,d,p,h,b){for(var g=a-1,m=0===a?l:[""],v=f(m),y=0,S=0,k=0;y<n;++y)for(var w=0,_=u(r,g+1,g=o(S=c[y])),C=r;w<v;++w)(C=i(S>0?m[w]+" "+_:s(_,/&\f/g,m[w])))&&(p[k++]=C);return x(r,e,t,0===a?L:d,p,h,b)}function U(r,e,t){return x(r,e,t,M,a(v),u(r,2,-2),0)}function G(r,e,t,n){return x(r,e,t,H,u(r,0,n),u(r,n+1,-1),n)}var Z=function(r,e){return R(function(r,e){var t=-1,n=44;do{switch(z(n)){case 0:38===n&&12===_()&&(e[t]=1),r[t]+=P(m-1);break;case 2:r[t]+=B(n);break;case 4:if(44===n){r[++t]=58===_()?"&\f":"",e[t]=r[t].length;break}default:r[t]+=a(n)}}while(n=w());return r}(E(r),e))},K=new WeakMap,Q=function(r){if("rule"===r.type&&r.parent&&r.length){for(var e=r.value,t=r.parent,n=r.column===t.column&&r.line===t.line;"rule"!==t.type;)if(!(t=t.parent))return;if((1!==r.props.length||58===e.charCodeAt(0)||K.get(t))&&!n){K.set(r,!0);for(var o=[],a=Z(e,o),i=t.props,s=0,l=0;s<a.length;s++)for(var c=0;c<i.length;c++,l++)r.props[l]=o[s]?a[s].replace(/&\f/g,i[c]):i[c]+" "+a[s]}}},J=function(r){if("decl"===r.type){var e=r.value;108===e.charCodeAt(0)&&98===e.charCodeAt(2)&&(r.return="",r.value="")}},rr=[function(r,e,t,n){if(!r.return)switch(r.type){case H:r.return=V(r.value,r.length);break;case"@keyframes":return $([S(s(r.value,"@","@"+W),r,"")],n);case L:if(r.length)return function(r,e){return r.map(e).join("")}(r.props,(function(e){switch(function(r,e){return(r=e.exec(r))?r[0]:r}(e,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return $([S(s(e,/:(read-\w+)/,":-moz-$1"),r,"")],n);case"::placeholder":return $([S(s(e,/:(plac\w+)/,":-webkit-input-$1"),r,""),S(s(e,/:(plac\w+)/,":-moz-$1"),r,""),S(s(e,/:(plac\w+)/,I+"input-$1"),r,"")],n)}return""}))}}],er=function(r){var e=r.key;if("css"===e){var t=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(t,(function(r){-1!==r.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(r),r.setAttribute("data-s",""))}))}var o=r.stylisPlugins||rr;var a,i,s={},l=[];a=r.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+e+' "]'),(function(r){for(var e=r.getAttribute("data-emotion").split(" "),t=1;t<e.length;t++)s[e[t]]=!0;l.push(r)}));var c,u,d=[N,(u=function(r){c.insert(r)},function(r){r.root||(r=r.return)&&u(r)})],p=function(r){var e=f(r);return function(t,n,o,a){for(var i="",s=0;s<e;s++)i+=r[s](t,n,o,a)||"";return i}}([Q,J].concat(o,d));i=function(r,e,t,n){c=t,$(Y(r?r+"{"+e.styles+"}":e.styles),p),n&&(h.inserted[e.name]=!0)};var h={key:e,sheet:new n.m({key:e,container:a,nonce:r.nonce,speedy:r.speedy,prepend:r.prepend}),nonce:r.nonce,inserted:s,registered:{},insert:i};return h.sheet.hydrate(l),h}},7866:function(r,e){"use strict";e.Z=function(r){var e=Object.create(null);return function(t){return void 0===e[t]&&(e[t]=r(t)),e[t]}}},2544:function(r,e,t){"use strict";t.d(e,{T:function(){return c},a:function(){return d},w:function(){return l}});var n=t(7294),o=t(9152);function a(){return(a=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}var i=function(r){var e=new WeakMap;return function(t){if(e.has(t))return e.get(t);var n=r(t);return e.set(t,n),n}},s=(t(4199),Object.prototype.hasOwnProperty,(0,n.createContext)("undefined"!==typeof HTMLElement?(0,o.Z)({key:"css"}):null)),l=(s.Provider,function(r){return(0,n.forwardRef)((function(e,t){var o=(0,n.useContext)(s);return r(e,o,t)}))}),c=(0,n.createContext)({}),u=i((function(r){return i((function(e){return function(r,e){return"function"===typeof e?e(r):a({},r,e)}(r,e)}))})),d=function(r){var e=(0,n.useContext)(c);return r.theme!==e&&(e=u(e)(r.theme)),(0,n.createElement)(c.Provider,{value:e},r.children)}},917:function(r,e,t){"use strict";t.d(e,{xB:function(){return l},F4:function(){return u}});var n=t(7294),o=(t(9152),t(2544)),a=(t(8679),t(444)),i=t(4199),s=t(1526),l=(0,o.w)((function(r,e){var t=r.styles,l=(0,i.O)([t],void 0,"function"===typeof t||Array.isArray(t)?(0,n.useContext)(o.T):void 0),c=(0,n.useRef)();return(0,n.useLayoutEffect)((function(){var r=e.key+"-global",t=new s.m({key:r,nonce:e.sheet.nonce,container:e.sheet.container,speedy:e.sheet.isSpeedy}),n=!1,o=document.querySelector('style[data-emotion="'+r+" "+l.name+'"]');return e.sheet.tags.length&&(t.before=e.sheet.tags[0]),null!==o&&(n=!0,o.setAttribute("data-emotion",r),t.hydrate([o])),c.current=[t,n],function(){t.flush()}}),[e]),(0,n.useLayoutEffect)((function(){var r=c.current,t=r[0];if(r[1])r[1]=!1;else{if(void 0!==l.next&&(0,a.M)(e,l.next,!0),t.tags.length){var n=t.tags[t.tags.length-1].nextElementSibling;t.before=n,t.flush()}e.insert("",l,t,!1)}}),[e,l.name]),null}));function c(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];return(0,i.O)(e)}var u=function(){var r=c.apply(void 0,arguments),e="animation-"+r.name;return{name:e,styles:"@keyframes "+e+"{"+r.styles+"}",anim:1,toString:function(){return"_EMO_"+this.name+"_"+this.styles+"_EMO_"}}}},4199:function(r,e,t){"use strict";t.d(e,{O:function(){return b}});var n=function(r){for(var e,t=0,n=0,o=r.length;o>=4;++n,o-=4)e=1540483477*(65535&(e=255&r.charCodeAt(n)|(255&r.charCodeAt(++n))<<8|(255&r.charCodeAt(++n))<<16|(255&r.charCodeAt(++n))<<24))+(59797*(e>>>16)<<16),t=1540483477*(65535&(e^=e>>>24))+(59797*(e>>>16)<<16)^1540483477*(65535&t)+(59797*(t>>>16)<<16);switch(o){case 3:t^=(255&r.charCodeAt(n+2))<<16;case 2:t^=(255&r.charCodeAt(n+1))<<8;case 1:t=1540483477*(65535&(t^=255&r.charCodeAt(n)))+(59797*(t>>>16)<<16)}return(((t=1540483477*(65535&(t^=t>>>13))+(59797*(t>>>16)<<16))^t>>>15)>>>0).toString(36)},o={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},a=t(7866),i=/[A-Z]|^ms/g,s=/_EMO_([^_]+?)_([^]*?)_EMO_/g,l=function(r){return 45===r.charCodeAt(1)},c=function(r){return null!=r&&"boolean"!==typeof r},u=(0,a.Z)((function(r){return l(r)?r:r.replace(i,"-$&").toLowerCase()})),d=function(r,e){switch(r){case"animation":case"animationName":if("string"===typeof e)return e.replace(s,(function(r,e,t){return p={name:e,styles:t,next:p},e}))}return 1===o[r]||l(r)||"number"!==typeof e||0===e?e:e+"px"};function f(r,e,t){if(null==t)return"";if(void 0!==t.__emotion_styles)return t;switch(typeof t){case"boolean":return"";case"object":if(1===t.anim)return p={name:t.name,styles:t.styles,next:p},t.name;if(void 0!==t.styles){var n=t.next;if(void 0!==n)for(;void 0!==n;)p={name:n.name,styles:n.styles,next:p},n=n.next;return t.styles+";"}return function(r,e,t){var n="";if(Array.isArray(t))for(var o=0;o<t.length;o++)n+=f(r,e,t[o])+";";else for(var a in t){var i=t[a];if("object"!==typeof i)null!=e&&void 0!==e[i]?n+=a+"{"+e[i]+"}":c(i)&&(n+=u(a)+":"+d(a,i)+";");else if(!Array.isArray(i)||"string"!==typeof i[0]||null!=e&&void 0!==e[i[0]]){var s=f(r,e,i);switch(a){case"animation":case"animationName":n+=u(a)+":"+s+";";break;default:n+=a+"{"+s+"}"}}else for(var l=0;l<i.length;l++)c(i[l])&&(n+=u(a)+":"+d(a,i[l])+";")}return n}(r,e,t);case"function":if(void 0!==r){var o=p,a=t(r);return p=o,f(r,e,a)}break;case"string":}if(null==e)return t;var i=e[t];return void 0!==i?i:t}var p,h=/label:\s*([^\s;\n{]+)\s*(;|$)/g;var b=function(r,e,t){if(1===r.length&&"object"===typeof r[0]&&null!==r[0]&&void 0!==r[0].styles)return r[0];var o=!0,a="";p=void 0;var i=r[0];null==i||void 0===i.raw?(o=!1,a+=f(t,e,i)):a+=i[0];for(var s=1;s<r.length;s++)a+=f(t,e,r[s]),o&&(a+=i[s]);h.lastIndex=0;for(var l,c="";null!==(l=h.exec(a));)c+="-"+l[1];return{name:n(a)+c,styles:a,next:p}}},1526:function(r,e,t){"use strict";t.d(e,{m:function(){return n}});var n=function(){function r(r){var e=this;this._insertTag=function(r){var t;t=0===e.tags.length?e.prepend?e.container.firstChild:e.before:e.tags[e.tags.length-1].nextSibling,e.container.insertBefore(r,t),e.tags.push(r)},this.isSpeedy=void 0===r.speedy||r.speedy,this.tags=[],this.ctr=0,this.nonce=r.nonce,this.key=r.key,this.container=r.container,this.prepend=r.prepend,this.before=null}var e=r.prototype;return e.hydrate=function(r){r.forEach(this._insertTag)},e.insert=function(r){this.ctr%(this.isSpeedy?65e3:1)===0&&this._insertTag(function(r){var e=document.createElement("style");return e.setAttribute("data-emotion",r.key),void 0!==r.nonce&&e.setAttribute("nonce",r.nonce),e.appendChild(document.createTextNode("")),e.setAttribute("data-s",""),e}(this));var e=this.tags[this.tags.length-1];if(this.isSpeedy){var t=function(r){if(r.sheet)return r.sheet;for(var e=0;e<document.styleSheets.length;e++)if(document.styleSheets[e].ownerNode===r)return document.styleSheets[e]}(e);try{t.insertRule(r,t.cssRules.length)}catch(n){0}}else e.appendChild(document.createTextNode(r));this.ctr++},e.flush=function(){this.tags.forEach((function(r){return r.parentNode.removeChild(r)})),this.tags=[],this.ctr=0},r}()},444:function(r,e,t){"use strict";t.d(e,{f:function(){return n},M:function(){return o}});function n(r,e,t){var n="";return t.split(" ").forEach((function(t){void 0!==r[t]?e.push(r[t]+";"):n+=t+" "})),n}var o=function(r,e,t){var n=r.key+"-"+e.name;if(!1===t&&void 0===r.registered[n]&&(r.registered[n]=e.styles),void 0===r.inserted[e.name]){var o=e;do{r.insert(e===o?"."+n:"",o,r.sheet,!0);o=o.next}while(void 0!==o)}}},8679:function(r,e,t){"use strict";var n=t(1296),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(r){return n.isMemo(r)?i:s[r.$$typeof]||o}s[n.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[n.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;r.exports=function r(e,t,n){if("string"!==typeof t){if(h){var o=p(t);o&&o!==h&&r(e,o,n)}var i=u(t);d&&(i=i.concat(d(t)));for(var s=l(e),b=l(t),g=0;g<i.length;++g){var m=i[g];if(!a[m]&&(!n||!n[m])&&(!b||!b[m])&&(!s||!s[m])){var v=f(t,m);try{c(e,m,v)}catch(y){}}}}return e}},6103:function(r,e){"use strict";var t="function"===typeof Symbol&&Symbol.for,n=t?Symbol.for("react.element"):60103,o=t?Symbol.for("react.portal"):60106,a=t?Symbol.for("react.fragment"):60107,i=t?Symbol.for("react.strict_mode"):60108,s=t?Symbol.for("react.profiler"):60114,l=t?Symbol.for("react.provider"):60109,c=t?Symbol.for("react.context"):60110,u=t?Symbol.for("react.async_mode"):60111,d=t?Symbol.for("react.concurrent_mode"):60111,f=t?Symbol.for("react.forward_ref"):60112,p=t?Symbol.for("react.suspense"):60113,h=t?Symbol.for("react.suspense_list"):60120,b=t?Symbol.for("react.memo"):60115,g=t?Symbol.for("react.lazy"):60116,m=t?Symbol.for("react.block"):60121,v=t?Symbol.for("react.fundamental"):60117,y=t?Symbol.for("react.responder"):60118,x=t?Symbol.for("react.scope"):60119;function S(r){if("object"===typeof r&&null!==r){var e=r.$$typeof;switch(e){case n:switch(r=r.type){case u:case d:case a:case s:case i:case p:return r;default:switch(r=r&&r.$$typeof){case c:case f:case g:case b:case l:return r;default:return e}}case o:return e}}}function k(r){return S(r)===d}e.AsyncMode=u,e.ConcurrentMode=d,e.ContextConsumer=c,e.ContextProvider=l,e.Element=n,e.ForwardRef=f,e.Fragment=a,e.Lazy=g,e.Memo=b,e.Portal=o,e.Profiler=s,e.StrictMode=i,e.Suspense=p,e.isAsyncMode=function(r){return k(r)||S(r)===u},e.isConcurrentMode=k,e.isContextConsumer=function(r){return S(r)===c},e.isContextProvider=function(r){return S(r)===l},e.isElement=function(r){return"object"===typeof r&&null!==r&&r.$$typeof===n},e.isForwardRef=function(r){return S(r)===f},e.isFragment=function(r){return S(r)===a},e.isLazy=function(r){return S(r)===g},e.isMemo=function(r){return S(r)===b},e.isPortal=function(r){return S(r)===o},e.isProfiler=function(r){return S(r)===s},e.isStrictMode=function(r){return S(r)===i},e.isSuspense=function(r){return S(r)===p},e.isValidElementType=function(r){return"string"===typeof r||"function"===typeof r||r===a||r===d||r===s||r===i||r===p||r===h||"object"===typeof r&&null!==r&&(r.$$typeof===g||r.$$typeof===b||r.$$typeof===l||r.$$typeof===c||r.$$typeof===f||r.$$typeof===v||r.$$typeof===y||r.$$typeof===x||r.$$typeof===m)},e.typeOf=S},1296:function(r,e,t){"use strict";r.exports=t(6103)},8554:function(r,e,t){r=t.nmd(r);var n="__lodash_hash_undefined__",o=9007199254740991,a="[object Arguments]",i="[object Function]",s="[object Object]",l=/^\[object .+?Constructor\]$/,c=/^(?:0|[1-9]\d*)$/,u={};u["[object Float32Array]"]=u["[object Float64Array]"]=u["[object Int8Array]"]=u["[object Int16Array]"]=u["[object Int32Array]"]=u["[object Uint8Array]"]=u["[object Uint8ClampedArray]"]=u["[object Uint16Array]"]=u["[object Uint32Array]"]=!0,u[a]=u["[object Array]"]=u["[object ArrayBuffer]"]=u["[object Boolean]"]=u["[object DataView]"]=u["[object Date]"]=u["[object Error]"]=u[i]=u["[object Map]"]=u["[object Number]"]=u[s]=u["[object RegExp]"]=u["[object Set]"]=u["[object String]"]=u["[object WeakMap]"]=!1;var d="object"==typeof t.g&&t.g&&t.g.Object===Object&&t.g,f="object"==typeof self&&self&&self.Object===Object&&self,p=d||f||Function("return this")(),h=e&&!e.nodeType&&e,b=h&&r&&!r.nodeType&&r,g=b&&b.exports===h,m=g&&d.process,v=function(){try{var r=b&&b.require&&b.require("util").types;return r||m&&m.binding&&m.binding("util")}catch(e){}}(),y=v&&v.isTypedArray;function x(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}var S,k,w=Array.prototype,_=Function.prototype,C=Object.prototype,A=p["__core-js_shared__"],z=_.toString,E=C.hasOwnProperty,R=function(){var r=/[^.]+$/.exec(A&&A.keys&&A.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}(),B=C.toString,j=z.call(Object),O=RegExp("^"+z.call(E).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),T=g?p.Buffer:void 0,F=p.Symbol,P=p.Uint8Array,I=T?T.allocUnsafe:void 0,D=(S=Object.getPrototypeOf,k=Object,function(r){return S(k(r))}),W=Object.create,M=C.propertyIsEnumerable,L=w.splice,H=F?F.toStringTag:void 0,$=function(){try{var r=pr(Object,"defineProperty");return r({},"",{}),r}catch(e){}}(),N=T?T.isBuffer:void 0,V=Math.max,Y=Date.now,q=pr(p,"Map"),X=pr(Object,"create"),U=function(){function r(){}return function(e){if(!Cr(e))return{};if(W)return W(e);r.prototype=e;var t=new r;return r.prototype=void 0,t}}();function G(r){var e=-1,t=null==r?0:r.length;for(this.clear();++e<t;){var n=r[e];this.set(n[0],n[1])}}function Z(r){var e=-1,t=null==r?0:r.length;for(this.clear();++e<t;){var n=r[e];this.set(n[0],n[1])}}function K(r){var e=-1,t=null==r?0:r.length;for(this.clear();++e<t;){var n=r[e];this.set(n[0],n[1])}}function Q(r){var e=this.__data__=new Z(r);this.size=e.size}function J(r,e){var t=xr(r),n=!t&&yr(r),o=!t&&!n&&kr(r),a=!t&&!n&&!o&&zr(r),i=t||n||o||a,s=i?function(r,e){for(var t=-1,n=Array(r);++t<r;)n[t]=e(t);return n}(r.length,String):[],l=s.length;for(var c in r)!e&&!E.call(r,c)||i&&("length"==c||o&&("offset"==c||"parent"==c)||a&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||hr(c,l))||s.push(c);return s}function rr(r,e,t){(void 0!==t&&!vr(r[e],t)||void 0===t&&!(e in r))&&nr(r,e,t)}function er(r,e,t){var n=r[e];E.call(r,e)&&vr(n,t)&&(void 0!==t||e in r)||nr(r,e,t)}function tr(r,e){for(var t=r.length;t--;)if(vr(r[t][0],e))return t;return-1}function nr(r,e,t){"__proto__"==e&&$?$(r,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):r[e]=t}G.prototype.clear=function(){this.__data__=X?X(null):{},this.size=0},G.prototype.delete=function(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e},G.prototype.get=function(r){var e=this.__data__;if(X){var t=e[r];return t===n?void 0:t}return E.call(e,r)?e[r]:void 0},G.prototype.has=function(r){var e=this.__data__;return X?void 0!==e[r]:E.call(e,r)},G.prototype.set=function(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=X&&void 0===e?n:e,this},Z.prototype.clear=function(){this.__data__=[],this.size=0},Z.prototype.delete=function(r){var e=this.__data__,t=tr(e,r);return!(t<0)&&(t==e.length-1?e.pop():L.call(e,t,1),--this.size,!0)},Z.prototype.get=function(r){var e=this.__data__,t=tr(e,r);return t<0?void 0:e[t][1]},Z.prototype.has=function(r){return tr(this.__data__,r)>-1},Z.prototype.set=function(r,e){var t=this.__data__,n=tr(t,r);return n<0?(++this.size,t.push([r,e])):t[n][1]=e,this},K.prototype.clear=function(){this.size=0,this.__data__={hash:new G,map:new(q||Z),string:new G}},K.prototype.delete=function(r){var e=fr(this,r).delete(r);return this.size-=e?1:0,e},K.prototype.get=function(r){return fr(this,r).get(r)},K.prototype.has=function(r){return fr(this,r).has(r)},K.prototype.set=function(r,e){var t=fr(this,r),n=t.size;return t.set(r,e),this.size+=t.size==n?0:1,this},Q.prototype.clear=function(){this.__data__=new Z,this.size=0},Q.prototype.delete=function(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t},Q.prototype.get=function(r){return this.__data__.get(r)},Q.prototype.has=function(r){return this.__data__.has(r)},Q.prototype.set=function(r,e){var t=this.__data__;if(t instanceof Z){var n=t.__data__;if(!q||n.length<199)return n.push([r,e]),this.size=++t.size,this;t=this.__data__=new K(n)}return t.set(r,e),this.size=t.size,this};var or,ar=function(r,e,t){for(var n=-1,o=Object(r),a=t(r),i=a.length;i--;){var s=a[or?i:++n];if(!1===e(o[s],s,o))break}return r};function ir(r){return null==r?void 0===r?"[object Undefined]":"[object Null]":H&&H in Object(r)?function(r){var e=E.call(r,H),t=r[H];try{r[H]=void 0;var n=!0}catch(a){}var o=B.call(r);n&&(e?r[H]=t:delete r[H]);return o}(r):function(r){return B.call(r)}(r)}function sr(r){return Ar(r)&&ir(r)==a}function lr(r){return!(!Cr(r)||function(r){return!!R&&R in r}(r))&&(wr(r)?O:l).test(function(r){if(null!=r){try{return z.call(r)}catch(e){}try{return r+""}catch(e){}}return""}(r))}function cr(r){if(!Cr(r))return function(r){var e=[];if(null!=r)for(var t in Object(r))e.push(t);return e}(r);var e=br(r),t=[];for(var n in r)("constructor"!=n||!e&&E.call(r,n))&&t.push(n);return t}function ur(r,e,t,n,o){r!==e&&ar(e,(function(a,i){if(o||(o=new Q),Cr(a))!function(r,e,t,n,o,a,i){var l=gr(r,t),c=gr(e,t),u=i.get(c);if(u)return void rr(r,t,u);var d=a?a(l,c,t+"",r,e,i):void 0,f=void 0===d;if(f){var p=xr(c),h=!p&&kr(c),b=!p&&!h&&zr(c);d=c,p||h||b?xr(l)?d=l:Ar(g=l)&&Sr(g)?d=function(r,e){var t=-1,n=r.length;e||(e=Array(n));for(;++t<n;)e[t]=r[t];return e}(l):h?(f=!1,d=function(r,e){if(e)return r.slice();var t=r.length,n=I?I(t):new r.constructor(t);return r.copy(n),n}(c,!0)):b?(f=!1,d=function(r,e){var t=e?function(r){var e=new r.constructor(r.byteLength);return new P(e).set(new P(r)),e}(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.length)}(c,!0)):d=[]:function(r){if(!Ar(r)||ir(r)!=s)return!1;var e=D(r);if(null===e)return!0;var t=E.call(e,"constructor")&&e.constructor;return"function"==typeof t&&t instanceof t&&z.call(t)==j}(c)||yr(c)?(d=l,yr(l)?d=function(r){return function(r,e,t,n){var o=!t;t||(t={});var a=-1,i=e.length;for(;++a<i;){var s=e[a],l=n?n(t[s],r[s],s,t,r):void 0;void 0===l&&(l=r[s]),o?nr(t,s,l):er(t,s,l)}return t}(r,Er(r))}(l):Cr(l)&&!wr(l)||(d=function(r){return"function"!=typeof r.constructor||br(r)?{}:U(D(r))}(c))):f=!1}var g;f&&(i.set(c,d),o(d,c,n,a,i),i.delete(c));rr(r,t,d)}(r,e,i,t,ur,n,o);else{var l=n?n(gr(r,i),a,i+"",r,e,o):void 0;void 0===l&&(l=a),rr(r,i,l)}}),Er)}function dr(r,e){return mr(function(r,e,t){return e=V(void 0===e?r.length-1:e,0),function(){for(var n=arguments,o=-1,a=V(n.length-e,0),i=Array(a);++o<a;)i[o]=n[e+o];o=-1;for(var s=Array(e+1);++o<e;)s[o]=n[o];return s[e]=t(i),x(r,this,s)}}(r,e,jr),r+"")}function fr(r,e){var t=r.__data__;return function(r){var e=typeof r;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==r:null===r}(e)?t["string"==typeof e?"string":"hash"]:t.map}function pr(r,e){var t=function(r,e){return null==r?void 0:r[e]}(r,e);return lr(t)?t:void 0}function hr(r,e){var t=typeof r;return!!(e=null==e?o:e)&&("number"==t||"symbol"!=t&&c.test(r))&&r>-1&&r%1==0&&r<e}function br(r){var e=r&&r.constructor;return r===("function"==typeof e&&e.prototype||C)}function gr(r,e){if(("constructor"!==e||"function"!==typeof r[e])&&"__proto__"!=e)return r[e]}var mr=function(r){var e=0,t=0;return function(){var n=Y(),o=16-(n-t);if(t=n,o>0){if(++e>=800)return arguments[0]}else e=0;return r.apply(void 0,arguments)}}($?function(r,e){return $(r,"toString",{configurable:!0,enumerable:!1,value:(t=e,function(){return t}),writable:!0});var t}:jr);function vr(r,e){return r===e||r!==r&&e!==e}var yr=sr(function(){return arguments}())?sr:function(r){return Ar(r)&&E.call(r,"callee")&&!M.call(r,"callee")},xr=Array.isArray;function Sr(r){return null!=r&&_r(r.length)&&!wr(r)}var kr=N||function(){return!1};function wr(r){if(!Cr(r))return!1;var e=ir(r);return e==i||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}function _r(r){return"number"==typeof r&&r>-1&&r%1==0&&r<=o}function Cr(r){var e=typeof r;return null!=r&&("object"==e||"function"==e)}function Ar(r){return null!=r&&"object"==typeof r}var zr=y?function(r){return function(e){return r(e)}}(y):function(r){return Ar(r)&&_r(r.length)&&!!u[ir(r)]};function Er(r){return Sr(r)?J(r,!0):cr(r)}var Rr,Br=(Rr=function(r,e,t,n){ur(r,e,t,n)},dr((function(r,e){var t=-1,n=e.length,o=n>1?e[n-1]:void 0,a=n>2?e[2]:void 0;for(o=Rr.length>3&&"function"==typeof o?(n--,o):void 0,a&&function(r,e,t){if(!Cr(t))return!1;var n=typeof e;return!!("number"==n?Sr(t)&&hr(e,t.length):"string"==n&&e in t)&&vr(t[e],r)}(e[0],e[1],a)&&(o=n<3?void 0:o,n=1),r=Object(r);++t<n;){var i=e[t];i&&Rr(r,i,t,o)}return r})));function jr(r){return r}r.exports=Br},6445:function(r,e,t){"use strict";t.r(e),t.d(e,{default:function(){return at}});var n=t(6156),o=t(5893),a=(t(2702),t(917)),i=t(7294),s=()=>i.createElement(a.xB,{styles:'\n html {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n font-family: system-ui, sans-serif;\n -webkit-font-smoothing: antialiased;\n text-rendering: optimizeLegibility; \n -moz-osx-font-smoothing: grayscale; \n touch-action: manipulation; \n }\n\n body {\n position: relative;\n min-height: 100%;\n font-feature-settings: \'kern\';\n }\n\n *,\n *::before,\n *::after {\n border-width: 0;\n border-style: solid;\n box-sizing: border-box;\n }\n\n main {\n display: block;\n }\n\n hr {\n border-top-width: 1px;\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n }\n\n pre,\n code,\n kbd,\n samp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n font-size: 1em;\n }\n\n a {\n background-color: transparent;\n color: inherit;\n text-decoration: inherit;\n }\n\n abbr[title] {\n border-bottom: none;\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n\n b,\n strong {\n font-weight: bold;\n }\n\n small {\n font-size: 80%;\n }\n\n sub,\n sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n\n sub {\n bottom: -0.25em;\n }\n\n sup {\n top: -0.5em;\n }\n\n img {\n border-style: none;\n }\n\n button,\n input,\n optgroup,\n select,\n textarea {\n font-family: inherit;\n font-size: 100%;\n line-height: 1.15;\n margin: 0;\n }\n\n button,\n input {\n overflow: visible;\n }\n\n button,\n select {\n text-transform: none;\n }\n\n button::-moz-focus-inner,\n [type="button"]::-moz-focus-inner,\n [type="reset"]::-moz-focus-inner,\n [type="submit"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n }\n\n fieldset {\n padding: 0.35em 0.75em 0.625em;\n }\n\n legend {\n box-sizing: border-box;\n color: inherit;\n display: table;\n max-width: 100%;\n padding: 0;\n white-space: normal;\n }\n\n progress {\n vertical-align: baseline;\n }\n\n textarea {\n overflow: auto;\n }\n\n [type="checkbox"],\n [type="radio"] {\n box-sizing: border-box;\n padding: 0;\n }\n\n [type="number"]::-webkit-inner-spin-button,\n [type="number"]::-webkit-outer-spin-button {\n -webkit-appearance: none !important;\n }\n\n input[type="number"] {\n -moz-appearance: textfield;\n }\n\n [type="search"] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n }\n\n [type="search"]::-webkit-search-decoration {\n -webkit-appearance: none !important;\n }\n\n ::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n }\n\n details {\n display: block;\n }\n\n summary {\n display: list-item;\n }\n\n template {\n display: none;\n }\n\n [hidden] {\n display: none !important;\n }\n\n body,\n blockquote,\n dl,\n dd,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n hr,\n figure,\n p,\n pre {\n margin: 0;\n }\n\n button {\n background: transparent;\n padding: 0;\n }\n\n fieldset {\n margin: 0;\n padding: 0;\n }\n\n ol,\n ul {\n margin: 0;\n padding: 0;\n }\n\n textarea {\n resize: vertical;\n }\n\n button,\n [role="button"] {\n cursor: pointer;\n }\n\n button::-moz-focus-inner {\n border: 0 !important;\n }\n\n table {\n border-collapse: collapse;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n\n button,\n input,\n optgroup,\n select,\n textarea {\n padding: 0;\n line-height: inherit;\n color: inherit;\n }\n\n img,\n svg,\n video,\n canvas,\n audio,\n iframe,\n embed,\n object {\n display: block;\n vertical-align: middle;\n }\n\n img,\n video {\n max-width: 100%;\n height: auto;\n }\n\n [data-js-focus-visible] :focus:not([data-focus-visible-added]) {\n outline: none;\n box-shadow: none;\n }\n\n select::-ms-expand {\n display: none;\n }\n '}),l=t(4288),c=t(9676),u=t(4738),d={parts:["container","button","panel","icon"],baseStyle:{container:{borderTopWidth:"1px",borderColor:"inherit",_last:{borderBottomWidth:"1px"}},button:{transitionProperty:"common",transitionDuration:"normal",fontSize:"1rem",_focus:{boxShadow:"outline"},_hover:{bg:"blackAlpha.50"},_disabled:{opacity:.4,cursor:"not-allowed"},px:4,py:2},panel:{pt:2,px:4,pb:5},icon:{fontSize:"1.25em"}}},f=t(7621),p=t.n(f),h=t(5505),b=t(3808),g=(r,e,t)=>{var n=(0,h.Wf)(r,"colors."+e,e);return p()(n).isValid()?n:t},m=r=>e=>{var t=g(e,r);return p()(t).isDark()?"dark":"light"},v=(r,e)=>t=>{var n=g(t,r);return p()(n).setAlpha(e).toRgbString()};function y(r,e){return void 0===r&&(r="1rem"),void 0===e&&(e="rgba(255, 255, 255, 0.15)"),{backgroundImage:"linear-gradient(\n 45deg,\n "+e+" 25%,\n transparent 25%,\n transparent 50%,\n "+e+" 50%,\n "+e+" 75%,\n transparent 75%,\n transparent\n )",backgroundSize:r+" "+r}}function x(r){var e=p().random().toHexString();return!r||(0,b.Qr)(r)?e:r.string&&r.colors?function(r,e){var t=0;if(0===r.length)return e[0];for(var n=0;n<r.length;n+=1)t=r.charCodeAt(n)+((t<<5)-t),t&=t;return t=(t%e.length+e.length)%e.length,e[t]}(r.string,r.colors):r.string&&!r.colors?function(r){var e=0;if(0===r.length)return e.toString();for(var t=0;t<r.length;t+=1)e=r.charCodeAt(t)+((e<<5)-e),e&=e;for(var n="#",o=0;o<3;o+=1){n+=("00"+(e>>8*o&255).toString(16)).substr(-2)}return n}(r.string):r.colors&&!r.string?function(r){return r[Math.floor(Math.random()*r.length)]}(r.colors):e}function S(r,e){return t=>"dark"===t.colorMode?e:r}function k(r){var{orientation:e,vertical:t,horizontal:n}=r;return e?"vertical"===e?t:n:{}}function w(r){var{theme:e,colorScheme:t}=r;return S(g(e,t+".100",t),v(t+".200",.16)(e))(r)}var _={parts:["container","title","description","icon"],baseStyle:{container:{px:4,py:3},title:{fontWeight:"bold",lineHeight:6,marginEnd:2},description:{lineHeight:6},icon:{flexShrink:0,marginEnd:3,w:5,h:6}},variants:{subtle:function(r){var{colorScheme:e}=r;return{container:{bg:w(r)},icon:{color:S(e+".500",e+".200")(r)}}},"left-accent":function(r){var{colorScheme:e}=r;return{container:{paddingStart:3,borderStartWidth:"4px",borderStartColor:S(e+".500",e+".200")(r),bg:w(r)},icon:{color:S(e+".500",e+".200")(r)}}},"top-accent":function(r){var{colorScheme:e}=r;return{container:{pt:2,borderTopWidth:"4px",borderTopColor:S(e+".500",e+".200")(r),bg:w(r)},icon:{color:S(e+".500",e+".200")(r)}}},solid:function(r){var{colorScheme:e}=r;return{container:{bg:S(e+".500",e+".200")(r),color:S("white","gray.900")(r)}}}},defaultProps:{variant:"subtle",colorScheme:"blue"}},C={px:"1px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"};function A(){return(A=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}var z=A({},C,{max:"max-content",min:"min-content",full:"100%","3xs":"14rem","2xs":"16rem",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem","8xl":"90rem"},{container:{sm:"640px",md:"768px",lg:"1024px",xl:"1280px"}});function E(r){return{transform:"translate(25%, 25%)",borderRadius:"full",border:"0.2em solid",borderColor:S("white","gray.800")(r)}}function R(r){return{bg:S("gray.200","whiteAlpha.400")(r)}}function B(r){var{name:e,theme:t}=r,n=e?x({string:e}):"gray.400",o=(r=>e=>"dark"===m(r)(e))(n)(t),a="white";return o||(a="gray.800"),{bg:n,color:a,borderColor:S("white","gray.800")(r),verticalAlign:"top"}}function j(r){var e=z[r];return{container:{width:r,height:r,fontSize:"calc("+(null!=e?e:r)+" / 2.5)"},excessLabel:{width:r,height:r},label:{fontSize:"calc("+(null!=e?e:r)+" / 2.5)",lineHeight:"100%"!==r?null!=e?e:r:void 0}}}var O={parts:["container","excessLabel","badge","label"],baseStyle:r=>({badge:E(r),excessLabel:R(r),container:B(r)}),sizes:{"2xs":j("4"),xs:j("6"),sm:j("8"),md:j("12"),lg:j("16"),xl:j("24"),"2xl":j("32"),full:j("100%")},defaultProps:{size:"md"}};var T={baseStyle:{px:1,textTransform:"uppercase",fontSize:"xs",borderRadius:"sm",fontWeight:"bold"},variants:{solid:function(r){var{colorScheme:e,theme:t}=r;return{bg:S(e+".500",v(e+".500",.6)(t))(r),color:S("white","whiteAlpha.800")(r)}},subtle:function(r){var{colorScheme:e,theme:t}=r;return{bg:S(e+".100",v(e+".200",.16)(t))(r),color:S(e+".800",e+".200")(r)}},outline:function(r){var{colorScheme:e,theme:t}=r,n=v(e+".200",.8)(t),o=S(g(t,e+".500"),n)(r);return{color:o,boxShadow:"inset 0 0 0px 1px "+o}}},defaultProps:{variant:"subtle",colorScheme:"gray"}},F={parts:["container","item","link","separator"],baseStyle:{link:{transitionProperty:"common",transitionDuration:"fast",transitionTimingFunction:"ease-out",cursor:"pointer",textDecoration:"none",outline:"none",color:"inherit",_hover:{textDecoration:"underline"},_focus:{boxShadow:"outline"}}}};function P(){return(P=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}function I(r){var{colorScheme:e,theme:t}=r;if("gray"===e)return{color:S("inherit","whiteAlpha.900")(r),_hover:{bg:S("gray.100","whiteAlpha.200")(r)},_active:{bg:S("gray.200","whiteAlpha.300")(r)}};var n=v(e+".200",.12)(t),o=v(e+".200",.24)(t);return{color:S(e+".600",e+".200")(r),bg:"transparent",_hover:{bg:S(e+".50",n)(r)},_active:{bg:S(e+".100",o)(r)}}}var D={yellow:{bg:"yellow.400",color:"black",hoverBg:"yellow.500",activeBg:"yellow.600"},cyan:{bg:"cyan.400",color:"black",hoverBg:"cyan.500",activeBg:"cyan.600"}};var W={baseStyle:{lineHeight:"1.2",borderRadius:"md",fontWeight:"semibold",transitionProperty:"common",transitionDuration:"normal",_focus:{boxShadow:"outline"},_disabled:{opacity:.4,cursor:"not-allowed",boxShadow:"none"},_hover:{_disabled:{bg:"initial"}}},variants:{ghost:I,outline:function(r){var{colorScheme:e}=r,t=S("gray.200","whiteAlpha.300")(r);return P({border:"1px solid",borderColor:"gray"===e?t:"currentColor"},I(r))},solid:function(r){var{colorScheme:e}=r;if("gray"===e){var t=S("gray.100","whiteAlpha.200")(r);return{bg:t,_hover:{bg:S("gray.200","whiteAlpha.300")(r),_disabled:{bg:t}},_active:{bg:S("gray.300","whiteAlpha.400")(r)}}}var{bg:n=e+".500",color:o="white",hoverBg:a=e+".600",activeBg:i=e+".700"}=D[e]||{},s=S(n,e+".200")(r);return{bg:s,color:S(o,"gray.800")(r),_hover:{bg:S(a,e+".300")(r),_disabled:{bg:s}},_active:{bg:S(i,e+".400")(r)}}},link:function(r){var{colorScheme:e}=r;return{padding:0,height:"auto",lineHeight:"normal",verticalAlign:"baseline",color:S(e+".500",e+".200")(r),_hover:{textDecoration:"underline",_disabled:{textDecoration:"none"}},_active:{color:S(e+".700",e+".500")(r)}}},unstyled:{bg:"none",color:"inherit",display:"inline",lineHeight:"inherit",m:0,p:0}},sizes:{lg:{h:12,minW:12,fontSize:"lg",px:6},md:{h:10,minW:10,fontSize:"md",px:4},sm:{h:8,minW:8,fontSize:"sm",px:3},xs:{h:6,minW:6,fontSize:"xs",px:2}},defaultProps:{variant:"solid",size:"md",colorScheme:"gray"}};function M(r){var{colorScheme:e}=r;return{w:"100%",transitionProperty:"box-shadow",transitionDuration:"normal",border:"2px solid",borderRadius:"sm",borderColor:"inherit",color:"white",_checked:{bg:S(e+".500",e+".200")(r),borderColor:S(e+".500",e+".200")(r),color:S("white","gray.900")(r),_hover:{bg:S(e+".600",e+".300")(r),borderColor:S(e+".600",e+".300")(r)},_disabled:{borderColor:S("gray.200","transparent")(r),bg:S("gray.200","whiteAlpha.300")(r),color:S("gray.500","whiteAlpha.500")(r)}},_indeterminate:{bg:S(e+".500",e+".200")(r),borderColor:S(e+".500",e+".200")(r),color:S("white","gray.900")(r)},_disabled:{bg:S("gray.100","whiteAlpha.100")(r),borderColor:S("gray.100","transparent")(r)},_focus:{boxShadow:"outline"},_invalid:{borderColor:S("red.500","red.300")(r)}}}var L={userSelect:"none",_disabled:{opacity:.4}},H={transitionProperty:"transform",transitionDuration:"normal"},$={parts:["container","control","label","icon"],baseStyle:r=>({icon:H,control:M(r),label:L}),sizes:{sm:{control:{h:3,w:3},label:{fontSize:"sm"},icon:{fontSize:"0.45rem"}},md:{control:{w:4,h:4},label:{fontSize:"md"},icon:{fontSize:"0.625rem"}},lg:{control:{w:5,h:5},label:{fontSize:"lg"},icon:{fontSize:"0.625rem"}}},defaultProps:{size:"md",colorScheme:"blue"}};var N={baseStyle:function(r){return{borderRadius:"md",transitionProperty:"common",transitionDuration:"normal",_disabled:{opacity:.4,cursor:"not-allowed",boxShadow:"none"},_hover:{bg:S("blackAlpha.100","whiteAlpha.100")(r)},_active:{bg:S("blackAlpha.200","whiteAlpha.200")(r)},_focus:{boxShadow:"outline"}}},sizes:{lg:{w:"40px",h:"40px",fontSize:"16px"},md:{w:"32px",h:"32px",fontSize:"12px"},sm:{w:"24px",h:"24px",fontSize:"10px"}},defaultProps:{size:"md"}},{variants:V,defaultProps:Y}=T,q={baseStyle:{fontFamily:"mono",fontSize:"sm",px:"0.2em",borderRadius:"sm"},variants:V,defaultProps:Y},X={baseStyle:{w:"100%",mx:"auto",maxW:"60ch",px:"1rem"}},U={baseStyle:{opacity:.6,borderColor:"inherit"},variants:{solid:{borderStyle:"solid"},dashed:{borderStyle:"dashed"}},defaultProps:{variant:"solid"}},G={bg:"blackAlpha.600",zIndex:"modal"};function Z(r){var{isCentered:e,scrollBehavior:t}=r;return{display:"flex",zIndex:"modal",justifyContent:"center",alignItems:e?"center":"flex-start",overflow:"inside"===t?"hidden":"auto"}}function K(r){var{scrollBehavior:e}=r;return{borderRadius:"md",bg:S("white","gray.700")(r),color:"inherit",my:"3.75rem",zIndex:"modal",maxH:"inside"===e?"calc(100% - 7.5rem)":void 0,boxShadow:S("lg","dark-lg")(r)}}var Q={px:6,py:4,fontSize:"xl",fontWeight:"semibold"},J={position:"absolute",top:2,insetEnd:3};function rr(r){var{scrollBehavior:e}=r;return{px:6,py:2,flex:1,overflow:"inside"===e?"auto":void 0}}var er={px:6,py:4};function tr(r){return"full"===r?{dialog:{maxW:"100vw",minH:"100vh"}}:{dialog:{maxW:r}}}var nr={parts:["overlay","dialogContainer","dialog","header","closeButton","body","footer"],baseStyle:r=>({overlay:G,dialogContainer:Z(r),dialog:K(r),header:Q,closeButton:J,body:rr(r),footer:er}),sizes:{xs:tr("xs"),sm:tr("sm"),md:tr("md"),lg:tr("lg"),xl:tr("xl"),"2xl":tr("2xl"),"3xl":tr("3xl"),"4xl":tr("4xl"),"5xl":tr("5xl"),"6xl":tr("6xl"),full:tr("full")},defaultProps:{size:"md"}};function or(){return(or=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}function ar(r){return"full"===r?{dialog:{maxW:"100vw",h:"100vh"}}:{dialog:{maxW:r}}}var ir={bg:"blackAlpha.600",zIndex:"overlay"},sr={display:"flex",zIndex:"modal",justifyContent:"center"};function lr(r){var{isFullHeight:e}=r;return or({},e&&{height:"100vh"},{zIndex:"modal",maxH:"100vh",bg:S("white","gray.700")(r),color:"inherit",boxShadow:S("lg","dark-lg")(r)})}var cr={px:6,py:4,fontSize:"xl",fontWeight:"semibold"},ur={position:"absolute",top:2,insetEnd:3},dr={px:6,py:2,flex:1,overflow:"auto"},fr={px:6,py:4},pr={parts:nr.parts,baseStyle:r=>({overlay:ir,dialogContainer:sr,dialog:lr(r),header:cr,closeButton:ur,body:dr,footer:fr}),sizes:{xs:ar("xs"),sm:ar("md"),md:ar("lg"),lg:ar("2xl"),xl:ar("4xl"),full:ar("full")},defaultProps:{size:"xs"}},hr={parts:["preview","input"],baseStyle:{preview:{borderRadius:"md",py:"3px",transitionProperty:"common",transitionDuration:"normal"},input:{borderRadius:"md",py:"3px",transitionProperty:"common",transitionDuration:"normal",width:"full",_focus:{boxShadow:"outline"},_placeholder:{opacity:.6}}}};function br(r){return{marginStart:1,color:S("red.500","red.300")(r)}}function gr(r){return{mt:2,color:S("gray.500","whiteAlpha.600")(r),lineHeight:"normal",fontSize:"sm"}}var mr={parts:["requiredIndicator","helperText"],baseStyle:r=>({requiredIndicator:br(r),helperText:gr(r)})},vr={baseStyle:{fontSize:"md",marginEnd:3,mb:2,fontWeight:"medium",transitionProperty:"common",transitionDuration:"normal",opacity:1,_disabled:{opacity:.4}}},yr={baseStyle:{fontFamily:"heading",fontWeight:"bold"},sizes:{"4xl":{fontSize:["6xl",null,"7xl"],lineHeight:1},"3xl":{fontSize:["5xl",null,"6xl"],lineHeight:1},"2xl":{fontSize:["4xl",null,"5xl"],lineHeight:[1.2,null,1]},xl:{fontSize:["3xl",null,"4xl"],lineHeight:[1.33,null,1.2]},lg:{fontSize:["2xl",null,"3xl"],lineHeight:[1.33,null,1.2]},md:{fontSize:"xl",lineHeight:1.2},sm:{fontSize:"md",lineHeight:1.2},xs:{fontSize:"sm",lineHeight:1.2}},defaultProps:{size:"xl"}},xr={lg:{fontSize:"lg",px:4,h:12,borderRadius:"md"},md:{fontSize:"md",px:4,h:10,borderRadius:"md"},sm:{fontSize:"sm",px:3,h:8,borderRadius:"sm"},xs:{fontSize:"xs",px:2,h:6,borderRadius:"sm"}};function Sr(r){var{focusBorderColor:e,errorBorderColor:t}=r;return{focusBorderColor:e||S("blue.500","blue.300")(r),errorBorderColor:t||S("red.500","red.300")(r)}}var kr={parts:["field","addon"],baseStyle:{field:{width:"100%",minWidth:0,outline:0,position:"relative",appearance:"none",transitionProperty:"common",transitionDuration:"normal"}},sizes:{lg:{field:xr.lg,addon:xr.lg},md:{field:xr.md,addon:xr.md},sm:{field:xr.sm,addon:xr.sm},xs:{field:xr.xs,addon:xr.xs}},variants:{outline:function(r){var{theme:e}=r,{focusBorderColor:t,errorBorderColor:n}=Sr(r);return{field:{border:"1px solid",borderColor:"inherit",bg:"inherit",_hover:{borderColor:S("gray.300","whiteAlpha.400")(r)},_readOnly:{boxShadow:"none !important",userSelect:"all"},_disabled:{opacity:.4,cursor:"not-allowed"},_invalid:{borderColor:g(e,n),boxShadow:"0 0 0 1px "+g(e,n)},_focus:{zIndex:1,borderColor:g(e,t),boxShadow:"0 0 0 1px "+g(e,t)}},addon:{border:"1px solid",borderColor:S("inherit","whiteAlpha.50")(r),bg:S("gray.100","whiteAlpha.300")(r)}}},filled:function(r){var{theme:e}=r,{focusBorderColor:t,errorBorderColor:n}=Sr(r);return{field:{border:"2px solid",borderColor:"transparent",bg:S("gray.100","whiteAlpha.50")(r),_hover:{bg:S("gray.200","whiteAlpha.100")(r)},_readOnly:{boxShadow:"none !important",userSelect:"all"},_disabled:{opacity:.4,cursor:"not-allowed"},_invalid:{borderColor:g(e,n)},_focus:{bg:"transparent",borderColor:g(e,t)}},addon:{border:"2px solid",borderColor:"transparent",bg:S("gray.100","whiteAlpha.50")(r)}}},flushed:function(r){var{theme:e}=r,{focusBorderColor:t,errorBorderColor:n}=Sr(r);return{field:{borderBottom:"1px solid",borderColor:"inherit",borderRadius:0,px:0,bg:"transparent",_readOnly:{boxShadow:"none !important",userSelect:"all"},_invalid:{borderColor:g(e,n),boxShadow:"0px 1px 0px 0px "+g(e,n)},_focus:{borderColor:g(e,t),boxShadow:"0px 1px 0px 0px "+g(e,t)}},addon:{borderBottom:"2px solid",borderColor:"inherit",borderRadius:0,px:0,bg:"transparent"}}},unstyled:{field:{bg:"transparent",px:0,height:"auto"},addon:{bg:"transparent",px:0,height:"auto"}}},defaultProps:{size:"md",variant:"outline"}};var wr={baseStyle:function(r){return{bg:S("gray.100","whiteAlpha")(r),borderRadius:"md",borderWidth:"1px",borderBottomWidth:"3px",fontSize:"0.8em",fontWeight:"bold",lineHeight:"normal",px:"0.4em",whiteSpace:"nowrap"}}},_r={baseStyle:{transitionProperty:"common",transitionDuration:"fast",transitionTimingFunction:"ease-out",cursor:"pointer",textDecoration:"none",outline:"none",color:"inherit",_hover:{textDecoration:"underline"},_focus:{boxShadow:"outline"}}},Cr={parts:["container","item","icon"],baseStyle:{container:{},item:{},icon:{marginEnd:"0.5rem",display:"inline",verticalAlign:"text-bottom"}}};function Ar(r){return{bg:S("#fff","gray.700")(r),boxShadow:S("sm","dark-lg")(r),color:"inherit",minW:"3xs",py:"2",zIndex:1,borderRadius:"md",borderWidth:"1px"}}function zr(r){return{py:"0.4rem",px:"0.8rem",transitionProperty:"background",transitionDuration:"ultra-fast",transitionTimingFunction:"ease-in",_focus:{bg:S("gray.100","whiteAlpha.100")(r)},_active:{bg:S("gray.200","whiteAlpha.200")(r)},_expanded:{bg:S("gray.100","whiteAlpha.100")(r)},_disabled:{opacity:.4,cursor:"not-allowed"}}}var Er,Rr={mx:4,my:2,fontWeight:"semibold",fontSize:"sm"},Br={opacity:.6},jr={border:0,borderBottom:"1px solid",borderColor:"inherit",my:"0.5rem",opacity:.6},Or={transitionProperty:"common",transitionDuration:"normal"},Tr={parts:["item","command","list","button","groupTitle","divider"],baseStyle:r=>({button:Or,list:Ar(r),item:zr(r),groupTitle:Rr,command:Br,divider:jr})},Fr={letterSpacings:{tighter:"-0.05em",tight:"-0.025em",normal:"0",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeights:{normal:"normal",none:1,shorter:1.25,short:1.375,base:1.5,tall:1.625,taller:"2",3:".75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem"},fontWeights:{hairline:100,thin:200,light:300,normal:400,medium:500,semibold:600,bold:700,extrabold:800,black:900},fonts:{heading:'-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',body:'-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',mono:'SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace'},fontSizes:{xs:"0.75rem",sm:"0.875rem",md:"1rem",lg:"1.125rem",xl:"1.25rem","2xl":"1.5rem","3xl":"1.875rem","4xl":"2.25rem","5xl":"3rem","6xl":"3.75rem","7xl":"4.5rem","8xl":"6rem","9xl":"8rem"}};function Pr(){return(Pr=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}var{variants:Ir,defaultProps:Dr}=kr,Wr={"--number-input-stepper-width":"24px","--number-input-field-padding":"calc(var(--number-input-stepper-width) + 0.5rem)"},Mr=null==(Er=kr.baseStyle)?void 0:Er.field,Lr={width:"var(--number-input-stepper-width)"};function Hr(r){return{borderStart:"1px solid",borderStartColor:S("inherit","whiteAlpha.300")(r),color:S("inherit","whiteAlpha.800")(r),_active:{bg:S("gray.200","whiteAlpha.300")(r)},_disabled:{opacity:.4,cursor:"not-allowed"}}}function $r(r){var e=kr.sizes[r],t={lg:"md",md:"md",sm:"sm",xs:"sm"},n=Fr.fontSizes[e.field.fontSize];return{field:Pr({},e.field,{paddingInlineEnd:"var(--number-input-field-padding)",verticalAlign:"top"}),stepper:{fontSize:"calc("+n+" * 0.75)",_first:{borderTopEndRadius:t[r]},_last:{borderBottomEndRadius:t[r],mt:"-1px",borderTopWidth:1}}}}var Nr={parts:["root","field","stepper","stepperGroup"],baseStyle:r=>({root:Wr,field:Mr,stepperGroup:Lr,stepper:Hr(r)}),sizes:{xs:$r("xs"),sm:$r("sm"),md:$r("md"),lg:$r("lg")},variants:Ir,defaultProps:Dr};function Vr(){return(Vr=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}var Yr={baseStyle:Vr({},kr.baseStyle.field,{textAlign:"center"}),sizes:{lg:{fontSize:"lg",w:12,h:12,borderRadius:"md"},md:{fontSize:"md",w:10,h:10,borderRadius:"md"},sm:{fontSize:"sm",w:8,h:8,borderRadius:"sm"},xs:{fontSize:"xs",w:6,h:6,borderRadius:"sm"}},variants:{outline:r=>kr.variants.outline(r).field,flushed:r=>kr.variants.flushed(r).field,filled:r=>kr.variants.filled(r).field,unstyled:kr.variants.unstyled.field},defaultProps:kr.defaultProps},qr={zIndex:10};function Xr(r){return{"--popover-bg":"colors."+S("white","gray.700")(r),bg:"var(--popover-bg)","--popper-arrow-bg":"var(--popover-bg)","--popper-arrow-shadow-color":"colors."+S("gray.200","whiteAlpha.300")(r),width:"xs",border:"1px solid",borderColor:"inherit",borderRadius:"md",boxShadow:"sm",zIndex:"inherit",_focus:{outline:0,boxShadow:"outline"}}}var Ur={px:3,py:2,borderBottomWidth:"1px"},Gr={px:3,py:2},Zr={px:3,py:2,borderTopWidth:"1px"},Kr={parts:["popper","content","header","body","footer","arrow"],baseStyle:r=>({popper:qr,content:Xr(r),header:Ur,body:Gr,footer:Zr,arrow:{}})};function Qr(){return(Qr=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}var Jr={lineHeight:"1",fontSize:"0.25em",fontWeight:"bold",color:"white"};function re(r){return{bg:S("gray.100","whiteAlpha.300")(r)}}function ee(r){return Qr({transitionProperty:"common",transitionDuration:"slow"},function(r){var{colorScheme:e,theme:t,isIndeterminate:n,hasStripe:o}=r,a=S(y(),y("1rem","rgba(0,0,0,0.1)"))(r),i=S(e+".500",e+".200")(r),s="linear-gradient(\n to right,\n transparent 0%,\n "+g(t,i)+" 50%,\n transparent 100%\n )";return Qr({},!n&&o&&a,n?{bgImage:s}:{bgColor:i})}(r))}var te={parts:["track","filledTrack","label"],sizes:{xs:{track:{h:"0.25rem"}},sm:{track:{h:"0.5rem"}},md:{track:{h:"0.75rem"}},lg:{track:{h:"1rem"}}},baseStyle:r=>({label:Jr,filledTrack:ee(r),track:re(r)}),defaultProps:{size:"md",colorScheme:"blue"}};function ne(){return(ne=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}function oe(r){var{control:e}=$.baseStyle(r);return ne({},e,{borderRadius:"full",_checked:ne({},e._checked,{_before:{content:'""',display:"inline-block",pos:"relative",w:"50%",h:"50%",borderRadius:"50%",bg:"currentColor"}})})}var ae={parts:["container","control","label"],baseStyle:r=>({label:$.baseStyle(r).label,control:oe(r)}),sizes:{md:{control:{w:4,h:4},label:{fontSize:"md"}},lg:{control:{w:5,h:5},label:{fontSize:"lg"}},sm:{control:{width:3,height:3},label:{fontSize:"sm"}}},defaultProps:{size:"md",colorScheme:"blue"}},ie=t(8554);function se(){return(se=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}function le(r){return se({},kr.baseStyle.field,{appearance:"none",paddingBottom:"1px",lineHeight:"normal","> option, > optgroup":{bg:S("white","gray.700")(r)}})}var ce={width:"1.5rem",height:"100%",insetEnd:"0.5rem",position:"relative",color:"currentColor",fontSize:"1.25rem",_disabled:{opacity:.5}},ue={parts:["field","icon"],baseStyle:r=>({field:le(r),icon:ce}),sizes:t.n(ie)()({},kr.sizes,{xs:{icon:{insetEnd:"0.25rem"}}}),variants:kr.variants,defaultProps:kr.defaultProps},de=(r,e)=>(0,a.F4)({from:{borderColor:r,background:r},to:{borderColor:e,background:e}}),fe={baseStyle:r=>{var e=S("gray.100","gray.800")(r),t=S("gray.400","gray.600")(r),{startColor:n=e,endColor:o=t,speed:a,theme:i}=r,s=g(i,n),l=g(i,o);return{opacity:.7,borderRadius:"2px",borderColor:s,background:l,animation:a+"s linear infinite alternate "+de(s,l)}}},pe={baseStyle:r=>({borderRadius:"md",fontWeight:"semibold",_focus:{boxShadow:"outline",padding:"1rem",position:"fixed",top:"1.5rem",insetStart:"1.5rem",bg:S("white","gray.700")(r)}})};function he(){return(he=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}var be=r=>{var{orientation:e}=r;return he({_disabled:{opacity:.6,cursor:"default",pointerEvents:"none"}},k({orientation:e,vertical:{h:"100%"},horizontal:{w:"100%"}}))};function ge(r){return{borderRadius:"sm",bg:S("gray.200","whiteAlpha.200")(r),_disabled:{bg:S("gray.300","whiteAlpha.300")(r)}}}function me(r){return he({zIndex:1,borderRadius:"full",bg:"white",boxShadow:"base",border:"1px solid",borderColor:"transparent",transitionProperty:"transform",transitionDuration:"normal",_focus:{boxShadow:"outline"},_disabled:{bg:"gray.300"}},function(r){return k({orientation:r.orientation,vertical:{left:"50%",transform:"translateX(-50%)",_active:{transform:"translateX(-50%) scale(1.15)"}},horizontal:{top:"50%",transform:"translateY(-50%)",_active:{transform:"translateY(-50%) scale(1.15)"}}})}(r))}function ve(r){var{colorScheme:e}=r;return{bg:S(e+".500",e+".200")(r)}}var ye={parts:["container","thumb","track","filledTrack"],sizes:{lg:function(r){return{thumb:{w:"16px",h:"16px"},track:k({orientation:r.orientation,horizontal:{h:"4px"},vertical:{w:"4px"}})}},md:function(r){return{thumb:{w:"14px",h:"14px"},track:k({orientation:r.orientation,horizontal:{h:"4px"},vertical:{w:"4px"}})}},sm:function(r){return{thumb:{w:"10px",h:"10px"},track:k({orientation:r.orientation,horizontal:{h:"2px"},vertical:{w:"2px"}})}}},baseStyle:r=>({container:be(r),track:ge(r),thumb:me(r),filledTrack:ve(r)}),defaultProps:{size:"md",colorScheme:"blue"}},xe={baseStyle:{width:"var(--spinner-size)",height:"var(--spinner-size)"},sizes:{xs:{"--spinner-size":"0.75rem"},sm:{"--spinner-size":"1rem"},md:{"--spinner-size":"1.5rem"},lg:{"--spinner-size":"2rem"},xl:{"--spinner-size":"3rem"}},defaultProps:{size:"md"}},Se={parts:["label","number","icon","helpText"],baseStyle:{label:{fontWeight:"medium"},helpText:{opacity:.8,marginBottom:2},number:{verticalAlign:"baseline",fontWeight:"semibold"},icon:{marginEnd:1,w:"14px",h:"14px",verticalAlign:"middle"}},sizes:{md:{label:{fontSize:"sm"},helpText:{fontSize:"sm"},number:{fontSize:"2xl"}}},defaultProps:{size:"md"}};function ke(r){var{colorScheme:e}=r;return{borderRadius:"full",p:"2px",width:"var(--slider-track-width)",height:"var(--slider-track-height)",transitionProperty:"common",transitionDuration:"fast",bg:S("gray.300","whiteAlpha.400")(r),_focus:{boxShadow:"outline"},_disabled:{opacity:.4,cursor:"not-allowed"},_checked:{bg:S(e+".500",e+".200")(r)}}}var we={bg:"white",transitionProperty:"transform",transitionDuration:"normal",borderRadius:"inherit",width:"var(--slider-track-height)",height:"var(--slider-track-height)",_checked:{transform:"translateX(var(--slider-thumb-x))"}},_e={parts:["container","track","thumb"],baseStyle:r=>({container:{"--slider-track-diff":"calc(var(--slider-track-width) - var(--slider-track-height))","--slider-thumb-x":"var(--slider-track-diff)",_rtl:{"--slider-thumb-x":"calc(-1 * var(--slider-track-diff))"}},track:ke(r),thumb:we}),sizes:{sm:{container:{"--slider-track-width":"1.375rem","--slider-track-height":"0.75rem"}},md:{container:{"--slider-track-width":"1.875rem","--slider-track-height":"1rem"}},lg:{container:{"--slider-track-width":"2.875rem","--slider-track-height":"1.5rem"}}},defaultProps:{size:"md",colorScheme:"blue"}};function Ce(){return(Ce=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}var Ae={"&[data-is-numeric=true]":{textAlign:"end"}},ze={parts:["table","thead","tbody","tr","th","td","caption"],baseStyle:{table:{fontVariantNumeric:"lining-nums tabular-nums",borderCollapse:"collapse",width:"full"},th:{fontFamily:"heading",fontWeight:"bold",textTransform:"uppercase",letterSpacing:"wider",textAlign:"start"},td:{textAlign:"start"},caption:{mt:4,fontFamily:"heading",textAlign:"center",fontWeight:"medium"}},variants:{simple:r=>{var{colorScheme:e}=r;return{th:Ce({color:S("gray.600","gray.400")(r),borderBottom:"1px",borderColor:S(e+".100",e+".700")(r)},Ae),td:Ce({borderBottom:"1px",borderColor:S(e+".100",e+".700")(r)},Ae),caption:{color:S("gray.600","gray.100")(r)},tfoot:{tr:{"&:last-of-type":{th:{borderBottomWidth:0}}}}}},striped:r=>{var{colorScheme:e}=r;return{th:Ce({color:S("gray.600","gray.400")(r),borderBottom:"1px",borderColor:S(e+".100",e+".700")(r)},Ae),td:Ce({borderBottom:"1px",borderColor:S(e+".100",e+".700")(r)},Ae),caption:{color:S("gray.600","gray.100")(r)},tbody:{tr:{"&:nth-of-type(odd)":{"th, td":{borderBottomWidth:"1px",borderColor:S(e+".100",e+".700")(r)},td:{background:S(e+".100",e+".700")(r)}}}},tfoot:{tr:{"&:last-of-type":{th:{borderBottomWidth:0}}}}}},unstyled:{}},sizes:{sm:{th:{px:"4",py:"1",lineHeight:"4",fontSize:"xs"},td:{px:"4",py:"2",fontSize:"sm",lineHeight:"4"},caption:{px:"4",py:"2",fontSize:"xs"}},md:{th:{px:"6",py:"3",lineHeight:"4",fontSize:"xs"},td:{px:"6",py:"4",lineHeight:"5"},caption:{px:"6",py:"2",fontSize:"sm"}},lg:{th:{px:"8",py:"4",lineHeight:"5",fontSize:"sm"},td:{px:"8",py:"5",lineHeight:"6"},caption:{px:"6",py:"2",fontSize:"md"}}},defaultProps:{variant:"simple",size:"md",colorScheme:"gray"}};function Ee(r){var{orientation:e}=r;return{display:"vertical"===e?"flex":"block"}}function Re(r){var{isFitted:e}=r;return{flex:e?1:void 0,transitionProperty:"common",transitionDuration:"normal",_focus:{zIndex:1,boxShadow:"outline"}}}function Be(r){var{align:e="start",orientation:t}=r;return{justifyContent:{end:"flex-end",center:"center",start:"flex-start"}[e],flexDirection:"vertical"===t?"column":"row"}}var je={p:4};var Oe={parts:["root","tablist","tab","tabpanels","tabpanel","indicator"],baseStyle:r=>({root:Ee(r),tab:Re(r),tablist:Be(r),tabpanel:je}),sizes:{sm:{tab:{py:1,px:4,fontSize:"sm"}},md:{tab:{fontSize:"md",py:2,px:4}},lg:{tab:{fontSize:"lg",py:3,px:4}}},variants:{line:function(r){var{colorScheme:e,orientation:t}=r,n="vertical"===t?"borderStart":"borderBottom";return{tablist:{[n]:"2px solid",borderColor:"inherit"},tab:{[n]:"2px solid",borderColor:"transparent",["vertical"===t?"marginStart":"marginBottom"]:"-2px",_selected:{color:S(e+".600",e+".300")(r),borderColor:"currentColor"},_active:{bg:S("gray.200","whiteAlpha.300")(r)},_disabled:{opacity:.4,cursor:"not-allowed"}}}},enclosed:function(r){var{colorScheme:e}=r;return{tab:{borderTopRadius:"md",border:"1px solid",borderColor:"transparent",mb:"-1px",_selected:{color:S(e+".600",e+".300")(r),borderColor:"inherit",borderBottomColor:S("white","gray.800")(r)}},tablist:{mb:"-1px",borderBottom:"1px solid",borderColor:"inherit"}}},"enclosed-colored":function(r){var{colorScheme:e}=r;return{tab:{border:"1px solid",borderColor:"inherit",bg:S("gray.50","whiteAlpha.50")(r),mb:"-1px",_notLast:{marginEnd:"-1px"},_selected:{bg:S("#fff","gray.800")(r),color:S(e+".600",e+".300")(r),borderColor:"inherit",borderTopColor:"currentColor",borderBottomColor:"transparent"}},tablist:{mb:"-1px",borderBottom:"1px solid",borderColor:"inherit"}}},"soft-rounded":function(r){var{colorScheme:e,theme:t}=r;return{tab:{borderRadius:"full",fontWeight:"semibold",color:"gray.600",_selected:{color:g(t,e+".700"),bg:g(t,e+".100")}}}},"solid-rounded":function(r){var{colorScheme:e}=r;return{tab:{borderRadius:"full",fontWeight:"semibold",color:S("gray.600","inherit")(r),_selected:{color:S("#fff","gray.800")(r),bg:S(e+".600",e+".300")(r)}}}},unstyled:{}},defaultProps:{size:"md",variant:"line",colorScheme:"blue"}},Te={parts:["container","label","closeButton"],variants:{subtle:r=>({container:T.variants.subtle(r)}),solid:r=>({container:T.variants.solid(r)}),outline:r=>({container:T.variants.outline(r)})},baseStyle:{container:{fontWeight:"medium",lineHeight:1.2,outline:0,_focus:{boxShadow:"outline"}},label:{lineHeight:1.2},closeButton:{fontSize:"18px",w:"1.25rem",h:"1.25rem",transitionProperty:"common",transitionDuration:"normal",borderRadius:"full",marginStart:"0.375rem",marginEnd:"-1",opacity:.5,_disabled:{opacity:.4},_focus:{boxShadow:"outline",bg:"rgba(0, 0, 0, 0.14)"},_hover:{opacity:.8},_active:{opacity:1}}},sizes:{sm:{container:{minH:"1.25rem",minW:"1.25rem",fontSize:"xs",px:2,borderRadius:"md"},closeButton:{marginEnd:"-2px",marginStart:"0.35rem"}},md:{container:{minH:"1.5rem",minW:"1.5rem",fontSize:"sm",borderRadius:"md",px:2}},lg:{container:{minH:8,minW:8,fontSize:"md",borderRadius:"md",px:3}}},defaultProps:{size:"md",variant:"subtle",colorScheme:"gray"}};function Fe(){return(Fe=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}var Pe=Fe({},kr.baseStyle.field,{paddingY:"8px",minHeight:"80px",lineHeight:"short",verticalAlign:"top"}),Ie={outline:r=>kr.variants.outline(r).field,flushed:r=>kr.variants.flushed(r).field,filled:r=>kr.variants.filled(r).field,unstyled:kr.variants.unstyled.field},De={xs:kr.sizes.xs.field,sm:kr.sizes.sm.field,md:kr.sizes.md.field,lg:kr.sizes.lg.field};function We(r){return{color:S("red.500","red.300")(r),mt:2,fontSize:"sm"}}function Me(r){return{marginEnd:"0.5em",color:S("red.500","red.300")(r)}}var Le={Accordion:d,Alert:_,Avatar:O,Badge:T,Breadcrumb:F,Button:W,Checkbox:$,CloseButton:N,Code:q,Container:X,Divider:U,Drawer:pr,Editable:hr,Form:mr,FormLabel:vr,Heading:yr,Input:kr,Kbd:wr,Link:_r,List:Cr,Menu:Tr,Modal:nr,NumberInput:Nr,PinInput:Yr,Popover:Kr,Progress:te,Radio:ae,Select:ue,Skeleton:fe,SkipLink:pe,Slider:ye,Spinner:xe,Stat:Se,Switch:_e,Table:ze,Tabs:Oe,Tag:Te,Textarea:{baseStyle:Pe,sizes:De,variants:Ie,defaultProps:{size:"md",variant:"outline"}},Tooltip:{baseStyle:function(r){return{"--tooltip-bg":"colors."+S("gray.700","gray.300")(r),px:"8px",py:"2px",bg:"var(--tooltip-bg)","--popper-arrow-bg":"var(--tooltip-bg)",color:S("whiteAlpha.900","gray.900")(r),borderRadius:"sm",fontWeight:"medium",fontSize:"sm",boxShadow:"md",maxW:"320px",zIndex:"tooltip"}}},FormError:{parts:["text","icon"],baseStyle:r=>({text:We(r),icon:Me(r)})}},He={none:0,"1px":"1px solid","2px":"2px solid","4px":"4px solid","8px":"8px solid"},$e=t(658);function Ne(){return(Ne=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}var Ve=(r=>((0,$e.ZK)({condition:!0,message:["[chakra-ui]: createBreakpoints(...) will be deprecated pretty soon","simply pass the breakpoints as an object. Remove the createBreakpoint(..) call"].join("")}),Ne({base:"0em"},r)))({sm:"30em",md:"48em",lg:"62em",xl:"80em","2xl":"96em"});function Ye(){return(Ye=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}function qe(){return(qe=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}var Xe=qe({direction:"ltr"},Ye({breakpoints:Ve,zIndices:{hide:-1,auto:"auto",base:0,docked:10,dropdown:1e3,sticky:1100,banner:1200,overlay:1300,modal:1400,popover:1500,skipLink:1600,toast:1700,tooltip:1800},radii:{none:"0",sm:"0.125rem",base:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},blur:{none:0,sm:"4px",base:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},colors:{transparent:"transparent",current:"currentColor",black:"#000000",white:"#FFFFFF",whiteAlpha:{50:"rgba(255, 255, 255, 0.04)",100:"rgba(255, 255, 255, 0.06)",200:"rgba(255, 255, 255, 0.08)",300:"rgba(255, 255, 255, 0.16)",400:"rgba(255, 255, 255, 0.24)",500:"rgba(255, 255, 255, 0.36)",600:"rgba(255, 255, 255, 0.48)",700:"rgba(255, 255, 255, 0.64)",800:"rgba(255, 255, 255, 0.80)",900:"rgba(255, 255, 255, 0.92)"},blackAlpha:{50:"rgba(0, 0, 0, 0.04)",100:"rgba(0, 0, 0, 0.06)",200:"rgba(0, 0, 0, 0.08)",300:"rgba(0, 0, 0, 0.16)",400:"rgba(0, 0, 0, 0.24)",500:"rgba(0, 0, 0, 0.36)",600:"rgba(0, 0, 0, 0.48)",700:"rgba(0, 0, 0, 0.64)",800:"rgba(0, 0, 0, 0.80)",900:"rgba(0, 0, 0, 0.92)"},gray:{50:"#F7FAFC",100:"#EDF2F7",200:"#E2E8F0",300:"#CBD5E0",400:"#A0AEC0",500:"#718096",600:"#4A5568",700:"#2D3748",800:"#1A202C",900:"#171923"},red:{50:"#FFF5F5",100:"#FED7D7",200:"#FEB2B2",300:"#FC8181",400:"#F56565",500:"#E53E3E",600:"#C53030",700:"#9B2C2C",800:"#822727",900:"#63171B"},orange:{50:"#FFFAF0",100:"#FEEBC8",200:"#FBD38D",300:"#F6AD55",400:"#ED8936",500:"#DD6B20",600:"#C05621",700:"#9C4221",800:"#7B341E",900:"#652B19"},yellow:{50:"#FFFFF0",100:"#FEFCBF",200:"#FAF089",300:"#F6E05E",400:"#ECC94B",500:"#D69E2E",600:"#B7791F",700:"#975A16",800:"#744210",900:"#5F370E"},green:{50:"#F0FFF4",100:"#C6F6D5",200:"#9AE6B4",300:"#68D391",400:"#48BB78",500:"#38A169",600:"#2F855A",700:"#276749",800:"#22543D",900:"#1C4532"},teal:{50:"#E6FFFA",100:"#B2F5EA",200:"#81E6D9",300:"#4FD1C5",400:"#38B2AC",500:"#319795",600:"#2C7A7B",700:"#285E61",800:"#234E52",900:"#1D4044"},blue:{50:"#ebf8ff",100:"#bee3f8",200:"#90cdf4",300:"#63b3ed",400:"#4299e1",500:"#3182ce",600:"#2b6cb0",700:"#2c5282",800:"#2a4365",900:"#1A365D"},cyan:{50:"#EDFDFD",100:"#C4F1F9",200:"#9DECF9",300:"#76E4F7",400:"#0BC5EA",500:"#00B5D8",600:"#00A3C4",700:"#0987A0",800:"#086F83",900:"#065666"},purple:{50:"#FAF5FF",100:"#E9D8FD",200:"#D6BCFA",300:"#B794F4",400:"#9F7AEA",500:"#805AD5",600:"#6B46C1",700:"#553C9A",800:"#44337A",900:"#322659"},pink:{50:"#FFF5F7",100:"#FED7E2",200:"#FBB6CE",300:"#F687B3",400:"#ED64A6",500:"#D53F8C",600:"#B83280",700:"#97266D",800:"#702459",900:"#521B41"},linkedin:{50:"#E8F4F9",100:"#CFEDFB",200:"#9BDAF3",300:"#68C7EC",400:"#34B3E4",500:"#00A0DC",600:"#008CC9",700:"#0077B5",800:"#005E93",900:"#004471"},facebook:{50:"#E8F4F9",100:"#D9DEE9",200:"#B7C2DA",300:"#6482C0",400:"#4267B2",500:"#385898",600:"#314E89",700:"#29487D",800:"#223B67",900:"#1E355B"},messenger:{50:"#D0E6FF",100:"#B9DAFF",200:"#A2CDFF",300:"#7AB8FF",400:"#2E90FF",500:"#0078FF",600:"#0063D1",700:"#0052AC",800:"#003C7E",900:"#002C5C"},whatsapp:{50:"#dffeec",100:"#b9f5d0",200:"#90edb3",300:"#65e495",400:"#3cdd78",500:"#22c35e",600:"#179848",700:"#0c6c33",800:"#01421c",900:"#001803"},twitter:{50:"#E5F4FD",100:"#C8E9FB",200:"#A8DCFA",300:"#83CDF7",400:"#57BBF5",500:"#1DA1F2",600:"#1A94DA",700:"#1681BF",800:"#136B9E",900:"#0D4D71"},telegram:{50:"#E3F2F9",100:"#C5E4F3",200:"#A2D4EC",300:"#7AC1E4",400:"#47A9DA",500:"#0088CC",600:"#007AB8",700:"#006BA1",800:"#005885",900:"#003F5E"}}},Fr,{sizes:z,shadows:{xs:"0 0 0 1px rgba(0, 0, 0, 0.05)",sm:"0 1px 2px 0 rgba(0, 0, 0, 0.05)",base:"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)",md:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",lg:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)",xl:"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)","2xl":"0 25px 50px -12px rgba(0, 0, 0, 0.25)",outline:"0 0 0 3px rgba(66, 153, 225, 0.6)",inner:"inset 0 2px 4px 0 rgba(0,0,0,0.06)",none:"none","dark-lg":"rgba(0, 0, 0, 0.1) 0px 0px 0px 1px, rgba(0, 0, 0, 0.2) 0px 5px 10px, rgba(0, 0, 0, 0.4) 0px 15px 40px"},space:C,borders:He,transition:{property:{common:"background-color, border-color, color, fill, stroke, opacity, box-shadow, transform",colors:"background-color, border-color, color, fill, stroke",dimensions:"width, height",position:"left, right, top, bottom",background:"background-color, background-image, background-position"},easing:{"ease-in":"cubic-bezier(0.4, 0, 1, 1)","ease-out":"cubic-bezier(0, 0, 0.2, 1)","ease-in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},duration:{"ultra-fast":"50ms",faster:"100ms",fast:"150ms",normal:"200ms",slow:"300ms",slower:"400ms","ultra-slow":"500ms"}}}),{components:Le,styles:{global:r=>({body:{fontFamily:"body",color:S("gray.800","whiteAlpha.900")(r),bg:S("white","gray.800")(r),transitionProperty:"background-color",transitionDuration:"normal",lineHeight:"base"},"*::placeholder":{color:S("gray.400","whiteAlpha.400")(r)},"*, *::before, &::after":{borderColor:S("gray.200","whiteAlpha.300")(r),wordWrap:"break-word"}})},config:{useSystemColorMode:!1,initialColorMode:"light",cssVarPrefix:"chakra"}}),Ue=t(4461),Ge={body:{classList:{add(){},remove(){}}},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector:()=>null,querySelectorAll:()=>[],getElementById:()=>null,createEvent:()=>({initEvent(){}}),createElement:()=>({children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName:()=>[]})},Ze=()=>{},Ke={window:{document:Ge,navigator:{userAgent:""},CustomEvent:function(){return this},addEventListener:Ze,removeEventListener:Ze,getComputedStyle:()=>({getPropertyValue:()=>""}),matchMedia:()=>({matches:!1,addListener:Ze,removeListener:Ze}),requestAnimationFrame:r=>"undefined"===typeof setTimeout?(r(),null):setTimeout(r,0),cancelAnimationFrame(r){"undefined"!==typeof setTimeout&&clearTimeout(r)},setTimeout:()=>0,clearTimeout:Ze,setInterval:()=>0,clearInterval:Ze},document:Ge},Qe=Ue.jU?{window:window,document:document}:Ke,Je=(0,i.createContext)(Qe);function rt(r){var{children:e,environment:t}=r,[n,o]=(0,i.useState)(null),a=(0,i.useMemo)((()=>{var r,e=null==n?void 0:n.ownerDocument,o=null==n?void 0:n.ownerDocument.defaultView;return null!=(r=null!=t?t:e?{document:e,window:o}:void 0)?r:Qe}),[n,t]),s=!n&&!t;return i.createElement(Je.Provider,{value:a},e,s&&i.createElement("span",{ref:r=>{r&&o(r)}}))}b.Ts&&(Je.displayName="EnvironmentContext"),b.Ts&&(rt.displayName="EnvironmentProvider");var et=t(4577),tt=r=>{var{children:e,colorModeManager:t,portalZIndex:n,resetCSS:o=!0,theme:a=Xe,environment:d,cssVarsRoot:f}=r,p=i.createElement(rt,{environment:d},e);return i.createElement(et.vc,null,i.createElement(c.f6,{theme:a,cssVarsRoot:f},i.createElement(u.SG,{colorModeManager:t,options:a.config},o&&i.createElement(s,null),i.createElement(c.ZL,null),n?i.createElement(l.h,{zIndex:n},p):p)))};function nt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.push.apply(t,n)}return t}function ot(r){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?nt(Object(t),!0).forEach((function(e){(0,n.Z)(r,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):nt(Object(t)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(t,e))}))}return r}var at=function(r){var e=r.Component,t=r.pageProps;return(0,o.jsx)(tt,{children:(0,o.jsx)(e,ot({},t))})}},6363:function(r,e,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app",function(){return t(6445)}])},2702:function(){},7621:function(r,e,t){var n;!function(o){var a=/^\s+/,i=/\s+$/,s=0,l=o.round,c=o.min,u=o.max,d=o.random;function f(r,e){if(e=e||{},(r=r||"")instanceof f)return r;if(!(this instanceof f))return new f(r,e);var t=function(r){var e={r:0,g:0,b:0},t=1,n=null,s=null,l=null,d=!1,f=!1;"string"==typeof r&&(r=function(r){r=r.replace(a,"").replace(i,"").toLowerCase();var e,t=!1;if(B[r])r=B[r],t=!0;else if("transparent"==r)return{r:0,g:0,b:0,a:0,format:"name"};if(e=L.rgb.exec(r))return{r:e[1],g:e[2],b:e[3]};if(e=L.rgba.exec(r))return{r:e[1],g:e[2],b:e[3],a:e[4]};if(e=L.hsl.exec(r))return{h:e[1],s:e[2],l:e[3]};if(e=L.hsla.exec(r))return{h:e[1],s:e[2],l:e[3],a:e[4]};if(e=L.hsv.exec(r))return{h:e[1],s:e[2],v:e[3]};if(e=L.hsva.exec(r))return{h:e[1],s:e[2],v:e[3],a:e[4]};if(e=L.hex8.exec(r))return{r:P(e[1]),g:P(e[2]),b:P(e[3]),a:M(e[4]),format:t?"name":"hex8"};if(e=L.hex6.exec(r))return{r:P(e[1]),g:P(e[2]),b:P(e[3]),format:t?"name":"hex"};if(e=L.hex4.exec(r))return{r:P(e[1]+""+e[1]),g:P(e[2]+""+e[2]),b:P(e[3]+""+e[3]),a:M(e[4]+""+e[4]),format:t?"name":"hex8"};if(e=L.hex3.exec(r))return{r:P(e[1]+""+e[1]),g:P(e[2]+""+e[2]),b:P(e[3]+""+e[3]),format:t?"name":"hex"};return!1}(r));"object"==typeof r&&(H(r.r)&&H(r.g)&&H(r.b)?(p=r.r,h=r.g,b=r.b,e={r:255*T(p,255),g:255*T(h,255),b:255*T(b,255)},d=!0,f="%"===String(r.r).substr(-1)?"prgb":"rgb"):H(r.h)&&H(r.s)&&H(r.v)?(n=D(r.s),s=D(r.v),e=function(r,e,t){r=6*T(r,360),e=T(e,100),t=T(t,100);var n=o.floor(r),a=r-n,i=t*(1-e),s=t*(1-a*e),l=t*(1-(1-a)*e),c=n%6;return{r:255*[t,s,i,i,l,t][c],g:255*[l,t,t,s,i,i][c],b:255*[i,i,l,t,t,s][c]}}(r.h,n,s),d=!0,f="hsv"):H(r.h)&&H(r.s)&&H(r.l)&&(n=D(r.s),l=D(r.l),e=function(r,e,t){var n,o,a;function i(r,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?r+6*(e-r)*t:t<.5?e:t<2/3?r+(e-r)*(2/3-t)*6:r}if(r=T(r,360),e=T(e,100),t=T(t,100),0===e)n=o=a=t;else{var s=t<.5?t*(1+e):t+e-t*e,l=2*t-s;n=i(l,s,r+1/3),o=i(l,s,r),a=i(l,s,r-1/3)}return{r:255*n,g:255*o,b:255*a}}(r.h,n,l),d=!0,f="hsl"),r.hasOwnProperty("a")&&(t=r.a));var p,h,b;return t=O(t),{ok:d,format:r.format||f,r:c(255,u(e.r,0)),g:c(255,u(e.g,0)),b:c(255,u(e.b,0)),a:t}}(r);this._originalInput=r,this._r=t.r,this._g=t.g,this._b=t.b,this._a=t.a,this._roundA=l(100*this._a)/100,this._format=e.format||t.format,this._gradientType=e.gradientType,this._r<1&&(this._r=l(this._r)),this._g<1&&(this._g=l(this._g)),this._b<1&&(this._b=l(this._b)),this._ok=t.ok,this._tc_id=s++}function p(r,e,t){r=T(r,255),e=T(e,255),t=T(t,255);var n,o,a=u(r,e,t),i=c(r,e,t),s=(a+i)/2;if(a==i)n=o=0;else{var l=a-i;switch(o=s>.5?l/(2-a-i):l/(a+i),a){case r:n=(e-t)/l+(e<t?6:0);break;case e:n=(t-r)/l+2;break;case t:n=(r-e)/l+4}n/=6}return{h:n,s:o,l:s}}function h(r,e,t){r=T(r,255),e=T(e,255),t=T(t,255);var n,o,a=u(r,e,t),i=c(r,e,t),s=a,l=a-i;if(o=0===a?0:l/a,a==i)n=0;else{switch(a){case r:n=(e-t)/l+(e<t?6:0);break;case e:n=(t-r)/l+2;break;case t:n=(r-e)/l+4}n/=6}return{h:n,s:o,v:s}}function b(r,e,t,n){var o=[I(l(r).toString(16)),I(l(e).toString(16)),I(l(t).toString(16))];return n&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)?o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0):o.join("")}function g(r,e,t,n){return[I(W(n)),I(l(r).toString(16)),I(l(e).toString(16)),I(l(t).toString(16))].join("")}function m(r,e){e=0===e?0:e||10;var t=f(r).toHsl();return t.s-=e/100,t.s=F(t.s),f(t)}function v(r,e){e=0===e?0:e||10;var t=f(r).toHsl();return t.s+=e/100,t.s=F(t.s),f(t)}function y(r){return f(r).desaturate(100)}function x(r,e){e=0===e?0:e||10;var t=f(r).toHsl();return t.l+=e/100,t.l=F(t.l),f(t)}function S(r,e){e=0===e?0:e||10;var t=f(r).toRgb();return t.r=u(0,c(255,t.r-l(-e/100*255))),t.g=u(0,c(255,t.g-l(-e/100*255))),t.b=u(0,c(255,t.b-l(-e/100*255))),f(t)}function k(r,e){e=0===e?0:e||10;var t=f(r).toHsl();return t.l-=e/100,t.l=F(t.l),f(t)}function w(r,e){var t=f(r).toHsl(),n=(t.h+e)%360;return t.h=n<0?360+n:n,f(t)}function _(r){var e=f(r).toHsl();return e.h=(e.h+180)%360,f(e)}function C(r){var e=f(r).toHsl(),t=e.h;return[f(r),f({h:(t+120)%360,s:e.s,l:e.l}),f({h:(t+240)%360,s:e.s,l:e.l})]}function A(r){var e=f(r).toHsl(),t=e.h;return[f(r),f({h:(t+90)%360,s:e.s,l:e.l}),f({h:(t+180)%360,s:e.s,l:e.l}),f({h:(t+270)%360,s:e.s,l:e.l})]}function z(r){var e=f(r).toHsl(),t=e.h;return[f(r),f({h:(t+72)%360,s:e.s,l:e.l}),f({h:(t+216)%360,s:e.s,l:e.l})]}function E(r,e,t){e=e||6,t=t||30;var n=f(r).toHsl(),o=360/t,a=[f(r)];for(n.h=(n.h-(o*e>>1)+720)%360;--e;)n.h=(n.h+o)%360,a.push(f(n));return a}function R(r,e){e=e||6;for(var t=f(r).toHsv(),n=t.h,o=t.s,a=t.v,i=[],s=1/e;e--;)i.push(f({h:n,s:o,v:a})),a=(a+s)%1;return i}f.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var r=this.toRgb();return(299*r.r+587*r.g+114*r.b)/1e3},getLuminance:function(){var r,e,t,n=this.toRgb();return r=n.r/255,e=n.g/255,t=n.b/255,.2126*(r<=.03928?r/12.92:o.pow((r+.055)/1.055,2.4))+.7152*(e<=.03928?e/12.92:o.pow((e+.055)/1.055,2.4))+.0722*(t<=.03928?t/12.92:o.pow((t+.055)/1.055,2.4))},setAlpha:function(r){return this._a=O(r),this._roundA=l(100*this._a)/100,this},toHsv:function(){var r=h(this._r,this._g,this._b);return{h:360*r.h,s:r.s,v:r.v,a:this._a}},toHsvString:function(){var r=h(this._r,this._g,this._b),e=l(360*r.h),t=l(100*r.s),n=l(100*r.v);return 1==this._a?"hsv("+e+", "+t+"%, "+n+"%)":"hsva("+e+", "+t+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var r=p(this._r,this._g,this._b);return{h:360*r.h,s:r.s,l:r.l,a:this._a}},toHslString:function(){var r=p(this._r,this._g,this._b),e=l(360*r.h),t=l(100*r.s),n=l(100*r.l);return 1==this._a?"hsl("+e+", "+t+"%, "+n+"%)":"hsla("+e+", "+t+"%, "+n+"%, "+this._roundA+")"},toHex:function(r){return b(this._r,this._g,this._b,r)},toHexString:function(r){return"#"+this.toHex(r)},toHex8:function(r){return function(r,e,t,n,o){var a=[I(l(r).toString(16)),I(l(e).toString(16)),I(l(t).toString(16)),I(W(n))];if(o&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)&&a[3].charAt(0)==a[3].charAt(1))return a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0);return a.join("")}(this._r,this._g,this._b,this._a,r)},toHex8String:function(r){return"#"+this.toHex8(r)},toRgb:function(){return{r:l(this._r),g:l(this._g),b:l(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+l(this._r)+", "+l(this._g)+", "+l(this._b)+")":"rgba("+l(this._r)+", "+l(this._g)+", "+l(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:l(100*T(this._r,255))+"%",g:l(100*T(this._g,255))+"%",b:l(100*T(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+l(100*T(this._r,255))+"%, "+l(100*T(this._g,255))+"%, "+l(100*T(this._b,255))+"%)":"rgba("+l(100*T(this._r,255))+"%, "+l(100*T(this._g,255))+"%, "+l(100*T(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(j[b(this._r,this._g,this._b,!0)]||!1)},toFilter:function(r){var e="#"+g(this._r,this._g,this._b,this._a),t=e,n=this._gradientType?"GradientType = 1, ":"";if(r){var o=f(r);t="#"+g(o._r,o._g,o._b,o._a)}return"progid:DXImageTransform.Microsoft.gradient("+n+"startColorstr="+e+",endColorstr="+t+")"},toString:function(r){var e=!!r;r=r||this._format;var t=!1,n=this._a<1&&this._a>=0;return e||!n||"hex"!==r&&"hex6"!==r&&"hex3"!==r&&"hex4"!==r&&"hex8"!==r&&"name"!==r?("rgb"===r&&(t=this.toRgbString()),"prgb"===r&&(t=this.toPercentageRgbString()),"hex"!==r&&"hex6"!==r||(t=this.toHexString()),"hex3"===r&&(t=this.toHexString(!0)),"hex4"===r&&(t=this.toHex8String(!0)),"hex8"===r&&(t=this.toHex8String()),"name"===r&&(t=this.toName()),"hsl"===r&&(t=this.toHslString()),"hsv"===r&&(t=this.toHsvString()),t||this.toHexString()):"name"===r&&0===this._a?this.toName():this.toRgbString()},clone:function(){return f(this.toString())},_applyModification:function(r,e){var t=r.apply(null,[this].concat([].slice.call(e)));return this._r=t._r,this._g=t._g,this._b=t._b,this.setAlpha(t._a),this},lighten:function(){return this._applyModification(x,arguments)},brighten:function(){return this._applyModification(S,arguments)},darken:function(){return this._applyModification(k,arguments)},desaturate:function(){return this._applyModification(m,arguments)},saturate:function(){return this._applyModification(v,arguments)},greyscale:function(){return this._applyModification(y,arguments)},spin:function(){return this._applyModification(w,arguments)},_applyCombination:function(r,e){return r.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(E,arguments)},complement:function(){return this._applyCombination(_,arguments)},monochromatic:function(){return this._applyCombination(R,arguments)},splitcomplement:function(){return this._applyCombination(z,arguments)},triad:function(){return this._applyCombination(C,arguments)},tetrad:function(){return this._applyCombination(A,arguments)}},f.fromRatio=function(r,e){if("object"==typeof r){var t={};for(var n in r)r.hasOwnProperty(n)&&(t[n]="a"===n?r[n]:D(r[n]));r=t}return f(r,e)},f.equals=function(r,e){return!(!r||!e)&&f(r).toRgbString()==f(e).toRgbString()},f.random=function(){return f.fromRatio({r:d(),g:d(),b:d()})},f.mix=function(r,e,t){t=0===t?0:t||50;var n=f(r).toRgb(),o=f(e).toRgb(),a=t/100;return f({r:(o.r-n.r)*a+n.r,g:(o.g-n.g)*a+n.g,b:(o.b-n.b)*a+n.b,a:(o.a-n.a)*a+n.a})},f.readability=function(r,e){var t=f(r),n=f(e);return(o.max(t.getLuminance(),n.getLuminance())+.05)/(o.min(t.getLuminance(),n.getLuminance())+.05)},f.isReadable=function(r,e,t){var n,o,a=f.readability(r,e);switch(o=!1,(n=function(r){var e,t;e=((r=r||{level:"AA",size:"small"}).level||"AA").toUpperCase(),t=(r.size||"small").toLowerCase(),"AA"!==e&&"AAA"!==e&&(e="AA");"small"!==t&&"large"!==t&&(t="small");return{level:e,size:t}}(t)).level+n.size){case"AAsmall":case"AAAlarge":o=a>=4.5;break;case"AAlarge":o=a>=3;break;case"AAAsmall":o=a>=7}return o},f.mostReadable=function(r,e,t){var n,o,a,i,s=null,l=0;o=(t=t||{}).includeFallbackColors,a=t.level,i=t.size;for(var c=0;c<e.length;c++)(n=f.readability(r,e[c]))>l&&(l=n,s=f(e[c]));return f.isReadable(r,s,{level:a,size:i})||!o?s:(t.includeFallbackColors=!1,f.mostReadable(r,["#fff","#000"],t))};var B=f.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},j=f.hexNames=function(r){var e={};for(var t in r)r.hasOwnProperty(t)&&(e[r[t]]=t);return e}(B);function O(r){return r=parseFloat(r),(isNaN(r)||r<0||r>1)&&(r=1),r}function T(r,e){(function(r){return"string"==typeof r&&-1!=r.indexOf(".")&&1===parseFloat(r)})(r)&&(r="100%");var t=function(r){return"string"===typeof r&&-1!=r.indexOf("%")}(r);return r=c(e,u(0,parseFloat(r))),t&&(r=parseInt(r*e,10)/100),o.abs(r-e)<1e-6?1:r%e/parseFloat(e)}function F(r){return c(1,u(0,r))}function P(r){return parseInt(r,16)}function I(r){return 1==r.length?"0"+r:""+r}function D(r){return r<=1&&(r=100*r+"%"),r}function W(r){return o.round(255*parseFloat(r)).toString(16)}function M(r){return P(r)/255}var L=function(){var r="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",e="[\\s|\\(]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")\\s*\\)?",t="[\\s|\\(]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")\\s*\\)?";return{CSS_UNIT:new RegExp(r),rgb:new RegExp("rgb"+e),rgba:new RegExp("rgba"+t),hsl:new RegExp("hsl"+e),hsla:new RegExp("hsla"+t),hsv:new RegExp("hsv"+e),hsva:new RegExp("hsva"+t),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function H(r){return!!L.CSS_UNIT.exec(r)}r.exports?r.exports=f:void 0===(n=function(){return f}.call(e,t,e,r))||(r.exports=n)}(Math)}},function(r){var e=function(e){return r(r.s=e)};r.O(0,[774,179],(function(){return e(6363),e(4651)}));var t=r.O();_N_E=t}]); \ No newline at end of file
diff --git a/build/static/chunks/pages/_error-a0e21b9b223f827fe1f2.js b/build/static/chunks/pages/_error-a0e21b9b223f827fe1f2.js
new file mode 100644
index 0000000..2c29d9b
--- /dev/null
+++ b/build/static/chunks/pages/_error-a0e21b9b223f827fe1f2.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[820],{3646:function(e,t,n){var r=n(7228);e.exports=function(e){if(Array.isArray(e))return r(e)}},9713:function(e){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},6860:function(e){e.exports=function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}},8206:function(e){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},319:function(e,t,n){var r=n(3646),a=n(6860),o=n(379),i=n(8206);e.exports=function(e){return r(e)||a(e)||o(e)||i()}},3398:function(e,t,n){"use strict";var r;t.__esModule=!0,t.AmpStateContext=void 0;var a=((r=n(7294))&&r.__esModule?r:{default:r}).default.createContext({});t.AmpStateContext=a},6393:function(e,t,n){"use strict";t.__esModule=!0,t.isInAmpMode=i,t.useAmp=function(){return i(a.default.useContext(o.AmpStateContext))};var r,a=(r=n(7294))&&r.__esModule?r:{default:r},o=n(3398);function i(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.ampFirst,n=void 0!==t&&t,r=e.hybrid,a=void 0!==r&&r,o=e.hasQuery,i=void 0!==o&&o;return n||a&&i}},2775:function(e,t,n){"use strict";var r=n(9713);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}t.__esModule=!0,t.defaultHead=d,t.default=void 0;var o,i=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var t=f();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=r?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(n,a,o):n[a]=e[a]}n.default=e,t&&t.set(e,n);return n}(n(7294)),u=(o=n(3244))&&o.__esModule?o:{default:o},c=n(3398),s=n(1165),l=n(6393);function f(){if("function"!==typeof WeakMap)return null;var e=new WeakMap;return f=function(){return e},e}function d(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=[i.default.createElement("meta",{charSet:"utf-8"})];return e||t.push(i.default.createElement("meta",{name:"viewport",content:"width=device-width"})),t}function p(e,t){return"string"===typeof t||"number"===typeof t?e:t.type===i.default.Fragment?e.concat(i.default.Children.toArray(t.props.children).reduce((function(e,t){return"string"===typeof t||"number"===typeof t?e:e.concat(t)}),[])):e.concat(t)}var h=["name","httpEquiv","charSet","itemProp"];function y(e,t){return e.reduce((function(e,t){var n=i.default.Children.toArray(t.props.children);return e.concat(n)}),[]).reduce(p,[]).reverse().concat(d(t.inAmpMode)).filter(function(){var e=new Set,t=new Set,n=new Set,r={};return function(a){var o=!0,i=!1;if(a.key&&"number"!==typeof a.key&&a.key.indexOf("$")>0){i=!0;var u=a.key.slice(a.key.indexOf("$")+1);e.has(u)?o=!1:e.add(u)}switch(a.type){case"title":case"base":t.has(a.type)?o=!1:t.add(a.type);break;case"meta":for(var c=0,s=h.length;c<s;c++){var l=h[c];if(a.props.hasOwnProperty(l))if("charSet"===l)n.has(l)?o=!1:n.add(l);else{var f=a.props[l],d=r[l]||new Set;"name"===l&&i||!d.has(f)?(d.add(f),r[l]=d):o=!1}}}return o}}()).reverse().map((function(e,n){var o=e.key||n;if(!t.inAmpMode&&"link"===e.type&&e.props.href&&["https://fonts.googleapis.com/css","https://use.typekit.net/"].some((function(t){return e.props.href.startsWith(t)}))){var u=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},e.props||{});return u["data-href"]=u.href,u.href=void 0,u["data-optimized-fonts"]=!0,i.default.cloneElement(e,u)}return i.default.cloneElement(e,{key:o})}))}var m=function(e){var t=e.children,n=(0,i.useContext)(c.AmpStateContext),r=(0,i.useContext)(s.HeadManagerContext);return i.default.createElement(u.default,{reduceComponentsToState:y,headManager:r,inAmpMode:(0,l.isInAmpMode)(n)},t)};t.default=m},3244:function(e,t,n){"use strict";var r=n(319),a=n(4575),o=n(3913),i=(n(1506),n(2205)),u=n(8585),c=n(9754);function s(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=c(e);if(t){var a=c(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return u(this,n)}}t.__esModule=!0,t.default=void 0;var l=n(7294),f=function(e){i(n,e);var t=s(n);function n(e){var o;return a(this,n),(o=t.call(this,e))._hasHeadManager=void 0,o.emitChange=function(){o._hasHeadManager&&o.props.headManager.updateHead(o.props.reduceComponentsToState(r(o.props.headManager.mountedInstances),o.props))},o._hasHeadManager=o.props.headManager&&o.props.headManager.mountedInstances,o}return o(n,[{key:"componentDidMount",value:function(){this._hasHeadManager&&this.props.headManager.mountedInstances.add(this),this.emitChange()}},{key:"componentDidUpdate",value:function(){this.emitChange()}},{key:"componentWillUnmount",value:function(){this._hasHeadManager&&this.props.headManager.mountedInstances.delete(this),this.emitChange()}},{key:"render",value:function(){return null}}]),n}(l.Component);t.default=f},3359:function(e,t,n){"use strict";var r=n(4575),a=n(3913),o=n(2205),i=n(8585),u=n(9754);function c(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=u(e);if(t){var a=u(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return i(this,n)}}var s=n(5318);t.__esModule=!0,t.default=void 0;var l=s(n(7294)),f=s(n(2775)),d={400:"Bad Request",404:"This page could not be found",405:"Method Not Allowed",500:"Internal Server Error"};function p(e){var t=e.res,n=e.err;return{statusCode:t&&t.statusCode?t.statusCode:n?n.statusCode:404}}var h=function(e){o(n,e);var t=c(n);function n(){return r(this,n),t.apply(this,arguments)}return a(n,[{key:"render",value:function(){var e=this.props.statusCode,t=this.props.title||d[e]||"An unexpected error has occurred";return l.default.createElement("div",{style:y.error},l.default.createElement(f.default,null,l.default.createElement("title",null,e?"".concat(e,": ").concat(t):"Application error: a client-side exception has occurred")),l.default.createElement("div",null,l.default.createElement("style",{dangerouslySetInnerHTML:{__html:"body { margin: 0 }"}}),e?l.default.createElement("h1",{style:y.h1},e):null,l.default.createElement("div",{style:y.desc},l.default.createElement("h2",{style:y.h2},this.props.title||e?t:l.default.createElement(l.default.Fragment,null,"Application error: a client-side exception has occurred (",l.default.createElement("a",{href:"https://nextjs.org/docs/messages/client-side-exception-occurred"},"developer guidance"),")"),"."))))}}]),n}(l.default.Component);t.default=h,h.displayName="ErrorPage",h.getInitialProps=p,h.origGetInitialProps=p;var y={error:{color:"#000",background:"#fff",fontFamily:'-apple-system, BlinkMacSystemFont, Roboto, "Segoe UI", "Fira Sans", Avenir, "Helvetica Neue", "Lucida Grande", sans-serif',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{display:"inline-block",textAlign:"left",lineHeight:"49px",height:"49px",verticalAlign:"middle"},h1:{display:"inline-block",borderRight:"1px solid rgba(0, 0, 0,.3)",margin:0,marginRight:"20px",padding:"10px 23px 10px 0",fontSize:"24px",fontWeight:500,verticalAlign:"top"},h2:{fontSize:"14px",fontWeight:"normal",lineHeight:"inherit",margin:0,padding:0}}},4977:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error",function(){return n(3359)}])}},function(e){e.O(0,[774,888,179],(function(){return t=4977,e(e.s=t);var t}));var t=e.O();_N_E=t}]); \ No newline at end of file
diff --git a/build/static/chunks/pages/index-b7e9a3c26de1eb7c41cc.js b/build/static/chunks/pages/index-b7e9a3c26de1eb7c41cc.js
new file mode 100644
index 0000000..2f81609
--- /dev/null
+++ b/build/static/chunks/pages/index-b7e9a3c26de1eb7c41cc.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[405],{9053:function(e,n,t){"use strict";t.r(n),t.d(n,{EnableSection:function(){return Z},Graph:function(){return X},GraphPage:function(){return L},InfoTooltip:function(){return _},SliderWithInfo:function(){return M},Tweaks:function(){return W},default:function(){return H}});var i=t(7757),r=t.n(i),l=t(2137),a=t(7375),s=t(5893),o=t(7329),c=t(6156),u=t(4699),d=t(7294);function h(e,n){return{get:function(){var t=n.getItem(e);if(t&&"undefined"!==t)return JSON.parse(t)},update:function(t){n.setItem(e,JSON.stringify(t))},remove:function(){n.removeItem(e)}}}var f=t(4309),g=t(8017),x=t(8420),j=t(5684),b=t(4115),p=t(3014),v=t(8134),y=t(1033),m=t(6327),C=t(2026),k=t(4096),S=t(8235),w=t(155),O=t(3924),I=t(4189),E=t(3986),N=t(6569);function D(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);n&&(i=i.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,i)}return t}function F(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?D(Object(t),!0).forEach((function(n){(0,c.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):D(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var T=t.e(4).then(t.bind(t,7004)),P=t.g.window?t(6923).f$:null,B=t.g.window?t(6923).s6:null,R={enabled:!0,charge:-350,collision:!0,collisionStrength:0,linkStrength:.1,linkIts:1,particles:!1,particlesNumber:0,particlesWidth:4,linkOpacity:.4,linkWidth:1,nodeRel:4,labels:!0,labelScale:1.5,alphaDecay:.02,alphaTarget:0,alphaMin:0,velocityDecay:.25,gravity:.5,gravityOn:!0,colorful:!0,galaxy:!0,ticks:1,hover:"highlight",click:"select",doubleClick:"local",iterations:0,highlight:!0,highlightNodeSize:2,highlightLinkSize:2},z={base1:"#1c1f24",base2:"#21272d",base3:"#23272e",base4:"#484854",base5:"#62686E",base6:"#757B80",base7:"#9ca0a4",base8:"#DFDFDF",bg:"#242730","bg-alt":"#2a2e38",blue:"#51afef",cyan:"#5cEfFF","dark-blue":"#1f5582","dark-cyan":"#6A8FBF",fg:"#bbc2cf","fg-alt":"#5D656B",green:"#7bc275",grey:"#484854",magenta:"#C57BDB",orange:"#e69055",red:"#ff665c",teal:"#4db5bd",violet:"#a991f1",yellow:"#FCCE7B"};function H(){var e=(0,d.useState)(!1),n=e[0],t=e[1];return(0,d.useEffect)((function(){t(!0)}),[]),n?(0,s.jsx)(L,{}):null}function L(){var e=function(e,n){var t,i=h(e,null!==(t=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).storage)&&void 0!==t?t:localStorage),r=i.get(),l=void 0!==r?r:n;l!==r&&i.update(l);var a=(0,d.useState)(l),s=a[0],o=a[1];return(0,d.useEffect)((function(){s!==l&&o(l)}),[e]),[s,function(e){e instanceof Function?o((function(n){var t=e(n);return i.update(t),t})):(o(e),i.update(e))}]}("physics",R),n=(0,u.Z)(e,2),t=n[0],i=n[1],r=(0,d.useState)(z),l=(r[0],r[1]),a=(0,d.useState)(null),f=a[0],j=a[1],b=(0,d.useState)(null),p=b[0],v=b[1],y=(0,d.useRef)({}),m=(0,d.useRef)({}),C=function(){return fetch("http://localhost:35901/graph").then((function(e){return e.json()})).then((function(e){y.current=Object.fromEntries(e.nodes.map((function(e){return[e.id,e]}))),m.current=e.links.reduce((function(e,n){var t,i,r;return F(F({},e),{},(r={},(0,c.Z)(r,n.source,[].concat((0,o.Z)(null!==(t=e[n.source])&&void 0!==t?t:[]),[n])),(0,c.Z)(r,n.target,[].concat((0,o.Z)(null!==(i=e[n.target])&&void 0!==i?i:[]),[n])),r))}),{});var n=JSON.parse(JSON.stringify(e));j(n)}))};(0,d.useEffect)((function(){new EventSource("http://127.0.0.1:35901/current-node-id").addEventListener("message",(function(e){var n=e.data;v(n)})),fetch("http://localhost:35901/theme").then((function(e){return e.json()})).then((function(e){l(e)})),C()}),[]),(0,d.useEffect)((function(){p&&C()}),[p]);var k=(0,d.useState)(!1),S=k[0],w=(k[1],(0,d.useState)(!0)),I=w[0],E=w[1];return f?(0,s.jsxs)("div",{children:[I?(0,s.jsx)(W,F(F({},{physics:t,setPhysics:i,threeDim:S}),{},{onClose:function(){E(!1)}})):(0,s.jsx)(g.xu,{position:"absolute",zIndex:"overlay",marginTop:"2%",marginLeft:"2%",children:(0,s.jsx)(x.h,{"aria-label":"Settings",icon:(0,s.jsx)(O.e,{}),onClick:function(){return E(!0)}})}),(0,s.jsx)(X,F({nodeById:y.current,linksByNodeId:m.current},{physics:t,graphData:f,threeDim:S,emacsNodeId:p}))]}):null}var _=function(e){var n=e.infoText;return(0,s.jsx)(g.xu,{paddingLeft:"1",children:(0,s.jsx)(j.u,{label:n,placement:"top",color:"gray.100",bg:"gray.800",hasArrow:!0,children:(0,s.jsx)(I.h,{})})})},M=function(e){var n=e.min,t=void 0===n?0:n,i=e.max,r=void 0===i?10:i,l=e.step,o=void 0===l?.1:l,c=e.value,u=void 0===c?1:c,d=(0,a.Z)(e,["min","max","step","value"]),h=d.onChange,f=d.label,x=d.infoText;return(0,s.jsxs)(g.xu,{children:[(0,s.jsxs)(g.xu,{display:"flex",alignItems:"flex-end",children:[(0,s.jsx)(b.x,{children:f}),x&&(0,s.jsx)(_,{infoText:x})]}),(0,s.jsxs)(p.iR,{value:u,onChange:h,min:t,max:r,step:o,children:[(0,s.jsx)(p.Uj,{children:(0,s.jsx)(p.Ms,{})}),(0,s.jsx)(j.u,{label:u.toFixed(1),children:(0,s.jsx)(p.gs,{})})]})]})},Z=function(e){var n=e.value,t=e.onChange,i=e.label,r=e.infoText,l=e.children;return(0,s.jsxs)(g.xu,{children:[(0,s.jsxs)(g.xu,{display:"flex",justifyContent:"space-between",children:[(0,s.jsxs)(g.xu,{display:"flex",alignItems:"center",children:[(0,s.jsx)(b.x,{children:i}),r&&(0,s.jsx)(_,{infoText:r})]}),(0,s.jsx)(v.r,{isChecked:!!n,onChange:t})]}),n&&l]})},W=function(e){var n=e.physics,t=e.setPhysics,i=(e.threeDim,e.onClose);return(0,s.jsxs)(g.xu,{zIndex:"overlay",position:"absolute",bg:"white",w:"xs",marginTop:"2%",marginLeft:"2%",borderRadius:"md",maxH:"80%",overflowY:"scroll",children:[(0,s.jsxs)(g.xu,{display:"flex",justifyContent:"flex-end",children:[(0,s.jsx)(j.u,{label:"Reset settings to defaults",children:(0,s.jsx)(x.h,{"aria-label":"Reset Defaults",icon:(0,s.jsx)(E.A,{}),onClick:function(){return t(R)}})}),(0,s.jsx)(y.P,{onClick:i})]}),(0,s.jsxs)(m.UQ,{allowMultiple:!0,allowToggle:!0,children:[(0,s.jsxs)(m.Qd,{children:[(0,s.jsxs)(m.KF,{display:"flex",justifyContent:"space-between",children:[(0,s.jsxs)(g.xu,{display:"flex",children:[(0,s.jsx)(m.XE,{}),(0,s.jsx)(b.x,{children:"Physics"})]}),(0,s.jsx)(v.r,{id:"physicsOn",onChange:function(){return t(F(F({},n),{},{enabled:!n.enabled}))},isChecked:n.enabled})]}),(0,s.jsxs)(m.Hk,{children:[(0,s.jsxs)(C.gC,{spacing:2,justifyContent:"flex-start",divider:(0,s.jsx)(C.cX,{borderColor:"gray.200"}),align:"stretch",children:[(0,s.jsx)(Z,{label:"Gravity",value:n.gravityOn,onChange:function(){return t(F(F({},n),{},{gravityOn:!n.gravityOn}))},children:(0,s.jsx)(M,{label:"Strength",value:10*n.gravity,onChange:function(e){return t(F(F({},n),{},{gravity:e/10}))}})}),(0,s.jsx)(M,{value:-n.charge/100,onChange:function(e){return t(F(F({},n),{},{charge:-100*e}))},label:"Repulsive Force"}),(0,s.jsx)(Z,{label:"Collision",infoText:"Perfomance sap, disable if slow",value:n.collision,onChange:function(){return t(F(F({},n),{},{collision:!n.collision}))},children:(0,s.jsx)(M,{value:10*n.collisionStrength,onChange:function(e){return t(F(F({},n),{},{collisionStrength:e/10}))},label:"Strength"})}),(0,s.jsx)(M,{value:5*n.linkStrength,onChange:function(e){return t(F(F({},n),{},{linkStrength:e/5}))},label:"Link Force"}),(0,s.jsx)(M,{label:"Link Iterations",value:n.linkIts,onChange:function(e){return t(F(F({},n),{},{linkIts:e}))},min:0,max:6,step:1,infoText:"How many links down the line the physics of a single node affects (Slow)"}),(0,s.jsx)(M,{label:"Viscosity",value:10*n.velocityDecay,onChange:function(e){return t(F(F({},n),{},{velocityDecay:e/10}))}})]}),(0,s.jsx)(g.xu,{children:(0,s.jsx)(m.UQ,{allowToggle:!0,children:(0,s.jsxs)(m.Qd,{children:[(0,s.jsxs)(m.KF,{children:[(0,s.jsx)(b.x,{children:"Advanced"}),(0,s.jsx)(m.XE,{})]}),(0,s.jsx)(m.Hk,{children:(0,s.jsxs)(C.gC,{spacing:2,justifyContent:"flex-start",divider:(0,s.jsx)(C.cX,{borderColor:"gray.200"}),align:"stretch",children:[(0,s.jsx)(M,{label:"Iterations per tick",min:1,max:10,step:1,value:n.iterations,onChange:function(e){return t(F(F({},n),{},{iterations:e}))},infoText:"Number of times the physics simulation iterates per simulation step"}),(0,s.jsx)(M,{label:"Stabilization rate",value:50*n.alphaDecay,onChange:function(e){return t(F(F({},n),{},{alphaDecay:e/50}))}})]})})]})})})]})]}),(0,s.jsxs)(m.Qd,{children:[(0,s.jsxs)(m.KF,{children:[(0,s.jsx)(m.XE,{}),"Visual"]}),(0,s.jsx)(m.Hk,{children:(0,s.jsxs)(C.gC,{spacing:2,justifyContent:"flex-start",divider:(0,s.jsx)(C.cX,{borderColor:"gray.200"}),align:"stretch",children:[(0,s.jsx)(M,{label:"Node size",value:n.nodeRel,onChange:function(e){return t(F(F({},n),{},{nodeRel:e}))}}),(0,s.jsx)(M,{label:"Link width",value:n.linkWidth,onChange:function(e){return t(F(F({},n),{},{linkWidth:e}))}}),(0,s.jsx)(Z,{label:"Labels",value:n.labels,onChange:function(){return t(F(F({},n),{},{labels:!n.labels}))},children:(0,s.jsx)(M,{label:"Label Appearance Scale",value:5*n.labelScale,onChange:function(e){return t(F(F({},n),{},{labelScale:e/5}))}})}),(0,s.jsxs)(Z,{label:"Directional Particles",value:n.particles,onChange:function(){return t(F(F({},n),{},{particles:!n.particles}))},children:[(0,s.jsx)(M,{label:"Particle Number",value:n.particlesNumber,max:5,step:1,onChange:function(e){return t(F(F({},n),{},{particlesNumber:e}))}}),(0,s.jsx)(M,{label:"Particle Size",value:n.particlesWidth,onChange:function(e){return t(F(F({},n),{},{particleWidth:e}))}})]}),(0,s.jsxs)(Z,{label:"Highlight",onChange:function(){return t(F(F({},n),{},{highlight:!n.highlight}))},value:n.highlight,children:[(0,s.jsx)(M,{label:"Highlight Link Thickness Multiplier",value:n.highlightLinkSize,onChange:function(e){return t(F(F({},n),{},{highlightLinkSize:e}))}}),(0,s.jsx)(M,{label:"Highlight Node Size Multiplier",value:n.highlightNodeSize,onChange:function(e){return t(F(F({},n),{},{highlightNodeSize:e}))}}),(0,s.jsx)(k.k,{justifyContent:"space-between",children:(0,s.jsx)(b.x,{children:" Highlight node color "})}),(0,s.jsx)(k.k,{justifyContent:"space-between",children:(0,s.jsx)(b.x,{children:" Highlight link color "})})]})]})})]}),(0,s.jsxs)(m.Qd,{children:[(0,s.jsxs)(m.KF,{children:[(0,s.jsx)(m.XE,{}),"Behavior"]}),(0,s.jsx)(m.Hk,{children:(0,s.jsxs)(C.gC,{spacing:2,justifyContent:"flex-start",divider:(0,s.jsx)(C.cX,{borderColor:"gray.200"}),align:"stretch",children:[(0,s.jsxs)(g.xu,{display:"flex",justifyContent:"space-between",alignItems:"center",children:[(0,s.jsx)(b.x,{children:"Hover Higlight"}),(0,s.jsxs)(S.v2,{children:[(0,s.jsx)(S.j2,{as:w.z,rightIcon:(0,s.jsx)(N.v,{}),children:n.hover}),(0,s.jsxs)(S.qy,{children:[(0,s.jsx)(S.sN,{children:"Off"}),(0,s.jsx)(S.sN,{children:"On"})]})]})]}),(0,s.jsx)(g.xu,{display:"flex",justifyContent:"space-between",children:(0,s.jsx)(b.x,{children:"Click"})}),(0,s.jsx)(g.xu,{display:"flex",justifyContent:"space-between",children:(0,s.jsx)(b.x,{children:"Double-click"})})]})})]})]})]})},X=function(e){var n=e.physics,t=e.graphData,i=e.threeDim,a=e.linksByNodeId,c=e.emacsNodeId,h=e.nodeById,g=(0,d.useRef)(null),x=(0,d.useRef)(null),j=(0,f.iP)(),b=(0,u.Z)(j,2),p=b[0],v=b[1],y=(0,d.useState)(null),m=y[0],C=y[1],k=(0,d.useState)({nodeIds:[]}),S=k[0],w=k[1];(0,d.useEffect)((function(){c&&w({nodeIds:[c]})}),[c]);var O=m,I=function(){if(!O)return{};var e=a[O.id];return e?Object.fromEntries([O.id].concat((0,o.Z)(e.flatMap((function(e){return[e.source,e.target]})))).map((function(e){return[e,{}]}))):{}}(),E=t.nodes.filter((function(e){var n,t=null!==(n=a[e.id])&&void 0!==n?n:[];return S.nodeIds.includes(e.id)||t.some((function(e){return S.nodeIds.includes(e.source)||S.nodeIds.includes(e.target)}))})),N=E.map((function(e){return e.id})),D=t.links.filter((function(e){var n="object"===typeof e.source?e.source.id:e.source,t="object"===typeof e.target?e.target.id:e.target;return N.includes(n)&&N.includes(t)})),R=(0,d.useMemo)((function(){return 0===S.nodeIds.length?t:{nodes:E,links:D}}),[S,JSON.stringify(Object.keys(h))]);(0,d.useEffect)((function(){setTimeout((function(){var e=i?x.current:g.current;null===e||void 0===e||e.zoomToFit(0,200)}),1)}),[JSON.stringify(N)]),(0,d.useEffect)((function(){(0,l.Z)(r().mark((function e(){var n,t;return r().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=i?x.current:g.current,e.next=3,T;case 3:t=e.sent,n.d3Force("collide",t.forceCollide().radius(10));case 5:case"end":return e.stop()}}),e)})))()})),(0,d.useEffect)((function(){var e;null===(e=g.current)||void 0===e||e.d3ReheatSimulation()}),[n]);var z=(0,d.useRef)(0),H={graphData:R,width:p,height:v,backgroundColor:"#242730",nodeLabel:function(e){return e.title},nodeColor:function(e){var t,i;if(!n.colorful)return 0===Object.keys(I).length?"rgb(100, 100, 100)":I[e.id]?"#a991f1":"rgb(50, 50, 50)";var r,l,s,o=["#ff665c","#e69055","#7bc275","#4db5bd","#FCCE7B","#51afef","#1f5582","#C57BDB","#a991f1","#5cEfFF","#6A8FBF"];return o[(r=null!==(t=null===(i=a[e.id])||void 0===i?void 0:i.length)&&void 0!==t?t:0,l=0,s=o.length-1,Math.min(Math.max(r,l),s))]},nodeRelSize:n.nodeRel,nodeVal:function(e){var n;return(null!==(n=a[e.id])&&void 0!==n?n:[]).length},nodeCanvasObject:function(e,t,i){if(n.labels&&(!(i<=n.labelScale)||I[e.id])){var r=e.title,l=r.substring(0,Math.min(r.length,30)),a=12/i,s=[1.1*t.measureText(l).width,a].map((function(e){return e+.5*a})),c=Math.min(3*(i-n.labelScale)/n.labelScale,1),u=0===Object.keys(I).length?.5*c:I[e.id]?.5:.15*c;t.fillStyle="rgba(20, 20, 20, ".concat(u,")"),t.fillRect.apply(t,[e.x-s[0]/2,e.y-s[1]/2].concat((0,o.Z)(s)));var d=0===Object.keys(I).length?c:I[e.id]?1:.3*c;t.textAlign="center",t.textBaseline="middle",t.fillStyle="rgb(255, 255, 255, ".concat(d,")"),t.font="".concat(a,"px Sans-Serif"),t.fillText(l,e.x,e.y)}},nodeCanvasObjectMode:function(){return"after"},linkDirectionalParticles:n.particles?n.particlesNumber:void 0,linkColor:function(e){return e.source.id===(null===O||void 0===O?void 0:O.id)||e.target.id===(null===O||void 0===O?void 0:O.id)?"#a991f1":"#666666"},linkWidth:n.linkWidth,linkDirectionalParticleWidth:n.particlesWidth,onNodeClick:function(e,n){var t=n.timeStamp-z.current<400;z.current=n.timeStamp,t?window.open("org-protocol://roam-node?node="+e.id,"_self"):w((function(n){return F(F({},n),{},{nodeIds:[].concat((0,o.Z)(n.nodeIds),[e.id])})}))},onBackgroundClick:function(){w((function(e){return F(F({},e),{},{nodeIds:[]})}))},onNodeHover:function(e){n.hover&&C(e)}};return(0,s.jsx)("div",{children:i?(0,s.jsx)(B,F(F({ref:x},H),{},{nodeThreeObjectExtend:!0})):(0,s.jsx)(P,F({ref:g},H))})}},5301:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/",function(){return t(9053)}])}},function(e){e.O(0,[774,737,446,283,888,179],(function(){return n=5301,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file
diff --git a/build/static/chunks/polyfills-a54b4f32bdc1ef890ddd.js b/build/static/chunks/polyfills-a54b4f32bdc1ef890ddd.js
new file mode 100644
index 0000000..2c9d41f
--- /dev/null
+++ b/build/static/chunks/polyfills-a54b4f32bdc1ef890ddd.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[429],{2589:function(t,e,r){"use strict";r(1784)},1784:function(t,e,r){!function(){var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof r.g?r.g:"undefined"!=typeof self?self:{};function e(t){var e={exports:{}};return t(e,e.exports),e.exports}var n=function(t){return t&&t.Math==Math&&t},o=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||Function("return this")(),i=function(t){try{return!!t()}catch(t){return!0}},a=!i((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),u={}.propertyIsEnumerable,s=Object.getOwnPropertyDescriptor,c={f:s&&!u.call({1:2},1)?function(t){var e=s(this,t);return!!e&&e.enumerable}:u},f=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},l={}.toString,h=function(t){return l.call(t).slice(8,-1)},p="".split,d=i((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==h(t)?p.call(t,""):Object(t)}:Object,v=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t},g=function(t){return d(v(t))},y=function(t){return"object"==typeof t?null!==t:"function"==typeof t},m=function(t,e){if(!y(t))return t;var r,n;if(e&&"function"==typeof(r=t.toString)&&!y(n=r.call(t)))return n;if("function"==typeof(r=t.valueOf)&&!y(n=r.call(t)))return n;if(!e&&"function"==typeof(r=t.toString)&&!y(n=r.call(t)))return n;throw TypeError("Can't convert object to primitive value")},b={}.hasOwnProperty,w=function(t,e){return b.call(t,e)},S=o.document,E=y(S)&&y(S.createElement),x=function(t){return E?S.createElement(t):{}},A=!a&&!i((function(){return 7!=Object.defineProperty(x("div"),"a",{get:function(){return 7}}).a})),O=Object.getOwnPropertyDescriptor,R={f:a?O:function(t,e){if(t=g(t),e=m(e,!0),A)try{return O(t,e)}catch(t){}if(w(t,e))return f(!c.f.call(t,e),t[e])}},j=function(t){if(!y(t))throw TypeError(String(t)+" is not an object");return t},P=Object.defineProperty,I={f:a?P:function(t,e,r){if(j(t),e=m(e,!0),j(r),A)try{return P(t,e,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},k=a?function(t,e,r){return I.f(t,e,f(1,r))}:function(t,e,r){return t[e]=r,t},T=function(t,e){try{k(o,t,e)}catch(n){o[t]=e}return e},L="__core-js_shared__",U=o[L]||T(L,{}),_=Function.toString;"function"!=typeof U.inspectSource&&(U.inspectSource=function(t){return _.call(t)});var M,N,C,F=U.inspectSource,B=o.WeakMap,D="function"==typeof B&&/native code/.test(F(B)),q=!1,z=e((function(t){(t.exports=function(t,e){return U[t]||(U[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.6.5",mode:"global",copyright:"\xa9 2020 Denis Pushkarev (zloirock.ru)"})})),W=0,K=Math.random(),G=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++W+K).toString(36)},$=z("keys"),V=function(t){return $[t]||($[t]=G(t))},H={};if(D){var X=new(0,o.WeakMap),Y=X.get,J=X.has,Q=X.set;M=function(t,e){return Q.call(X,t,e),e},N=function(t){return Y.call(X,t)||{}},C=function(t){return J.call(X,t)}}else{var Z=V("state");H[Z]=!0,M=function(t,e){return k(t,Z,e),e},N=function(t){return w(t,Z)?t[Z]:{}},C=function(t){return w(t,Z)}}var tt,et={set:M,get:N,has:C,enforce:function(t){return C(t)?N(t):M(t,{})},getterFor:function(t){return function(e){var r;if(!y(e)||(r=N(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return r}}},rt=e((function(t){var e=et.get,r=et.enforce,n=String(String).split("String");(t.exports=function(t,e,i,a){var u=!!a&&!!a.unsafe,s=!!a&&!!a.enumerable,c=!!a&&!!a.noTargetGet;"function"==typeof i&&("string"!=typeof e||w(i,"name")||k(i,"name",e),r(i).source=n.join("string"==typeof e?e:"")),t!==o?(u?!c&&t[e]&&(s=!0):delete t[e],s?t[e]=i:k(t,e,i)):s?t[e]=i:T(e,i)})(Function.prototype,"toString",(function(){return"function"==typeof this&&e(this).source||F(this)}))})),nt=o,ot=function(t){return"function"==typeof t?t:void 0},it=function(t,e){return arguments.length<2?ot(nt[t])||ot(o[t]):nt[t]&&nt[t][e]||o[t]&&o[t][e]},at=Math.ceil,ut=Math.floor,st=function(t){return isNaN(t=+t)?0:(t>0?ut:at)(t)},ct=Math.min,ft=function(t){return t>0?ct(st(t),9007199254740991):0},lt=Math.max,ht=Math.min,pt=function(t,e){var r=st(t);return r<0?lt(r+e,0):ht(r,e)},dt=function(t){return function(e,r,n){var o,i=g(e),a=ft(i.length),u=pt(n,a);if(t&&r!=r){for(;a>u;)if((o=i[u++])!=o)return!0}else for(;a>u;u++)if((t||u in i)&&i[u]===r)return t||u||0;return!t&&-1}},vt={includes:dt(!0),indexOf:dt(!1)},gt=vt.indexOf,yt=function(t,e){var r,n=g(t),o=0,i=[];for(r in n)!w(H,r)&&w(n,r)&&i.push(r);for(;e.length>o;)w(n,r=e[o++])&&(~gt(i,r)||i.push(r));return i},mt=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],bt=mt.concat("length","prototype"),wt={f:Object.getOwnPropertyNames||function(t){return yt(t,bt)}},St={f:Object.getOwnPropertySymbols},Et=it("Reflect","ownKeys")||function(t){var e=wt.f(j(t)),r=St.f;return r?e.concat(r(t)):e},xt=function(t,e){for(var r=Et(e),n=I.f,o=R.f,i=0;i<r.length;i++){var a=r[i];w(t,a)||n(t,a,o(e,a))}},At=/#|\.prototype\./,Ot=function(t,e){var r=jt[Rt(t)];return r==It||r!=Pt&&("function"==typeof e?i(e):!!e)},Rt=Ot.normalize=function(t){return String(t).replace(At,".").toLowerCase()},jt=Ot.data={},Pt=Ot.NATIVE="N",It=Ot.POLYFILL="P",kt=Ot,Tt=R.f,Lt=function(t,e){var r,n,i,a,u,s=t.target,c=t.global,f=t.stat;if(r=c?o:f?o[s]||T(s,{}):(o[s]||{}).prototype)for(n in e){if(a=e[n],i=t.noTargetGet?(u=Tt(r,n))&&u.value:r[n],!kt(c?n:s+(f?".":"#")+n,t.forced)&&void 0!==i){if(typeof a==typeof i)continue;xt(a,i)}(t.sham||i&&i.sham)&&k(a,"sham",!0),rt(r,n,a,t)}},Ut=function(t){return Object(v(t))},_t=Math.min,Mt=[].copyWithin||function(t,e){var r=Ut(this),n=ft(r.length),o=pt(t,n),i=pt(e,n),a=arguments.length>2?arguments[2]:void 0,u=_t((void 0===a?n:pt(a,n))-i,n-o),s=1;for(i<o&&o<i+u&&(s=-1,i+=u-1,o+=u-1);u-- >0;)i in r?r[o]=r[i]:delete r[o],o+=s,i+=s;return r},Nt=!!Object.getOwnPropertySymbols&&!i((function(){return!String(Symbol())})),Ct=Nt&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Ft=z("wks"),Bt=o.Symbol,Dt=Ct?Bt:Bt&&Bt.withoutSetter||G,qt=function(t){return w(Ft,t)||(Ft[t]=Nt&&w(Bt,t)?Bt[t]:Dt("Symbol."+t)),Ft[t]},zt=Object.keys||function(t){return yt(t,mt)},Wt=a?Object.defineProperties:function(t,e){j(t);for(var r,n=zt(e),o=n.length,i=0;o>i;)I.f(t,r=n[i++],e[r]);return t},Kt=it("document","documentElement"),Gt=V("IE_PROTO"),$t=function(){},Vt=function(t){return"<script>"+t+"<\/script>"},Ht=function(){try{tt=document.domain&&new ActiveXObject("htmlfile")}catch(t){}var t,e;Ht=tt?function(t){t.write(Vt("")),t.close();var e=t.parentWindow.Object;return t=null,e}(tt):((e=x("iframe")).style.display="none",Kt.appendChild(e),e.src=String("javascript:"),(t=e.contentWindow.document).open(),t.write(Vt("document.F=Object")),t.close(),t.F);for(var r=mt.length;r--;)delete Ht.prototype[mt[r]];return Ht()};H[Gt]=!0;var Xt=Object.create||function(t,e){var r;return null!==t?($t.prototype=j(t),r=new $t,$t.prototype=null,r[Gt]=t):r=Ht(),void 0===e?r:Wt(r,e)},Yt=qt("unscopables"),Jt=Array.prototype;null==Jt[Yt]&&I.f(Jt,Yt,{configurable:!0,value:Xt(null)});var Qt=function(t){Jt[Yt][t]=!0};Lt({target:"Array",proto:!0},{copyWithin:Mt}),Qt("copyWithin");var Zt=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t},te=function(t,e,r){if(Zt(t),void 0===e)return t;switch(r){case 0:return function(){return t.call(e)};case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,o){return t.call(e,r,n,o)}}return function(){return t.apply(e,arguments)}},ee=Function.call,re=function(t,e,r){return te(ee,o[t].prototype[e],r)};re("Array","copyWithin"),Lt({target:"Array",proto:!0},{fill:function(t){for(var e=Ut(this),r=ft(e.length),n=arguments.length,o=pt(n>1?arguments[1]:void 0,r),i=n>2?arguments[2]:void 0,a=void 0===i?r:pt(i,r);a>o;)e[o++]=t;return e}}),Qt("fill"),re("Array","fill");var ne=Array.isArray||function(t){return"Array"==h(t)},oe=qt("species"),ie=function(t,e){var r;return ne(t)&&("function"!=typeof(r=t.constructor)||r!==Array&&!ne(r.prototype)?y(r)&&null===(r=r[oe])&&(r=void 0):r=void 0),new(void 0===r?Array:r)(0===e?0:e)},ae=[].push,ue=function(t){var e=1==t,r=2==t,n=3==t,o=4==t,i=6==t,a=5==t||i;return function(u,s,c,f){for(var l,h,p=Ut(u),v=d(p),g=te(s,c,3),y=ft(v.length),m=0,b=f||ie,w=e?b(u,y):r?b(u,0):void 0;y>m;m++)if((a||m in v)&&(h=g(l=v[m],m,p),t))if(e)w[m]=h;else if(h)switch(t){case 3:return!0;case 5:return l;case 6:return m;case 2:ae.call(w,l)}else if(o)return!1;return i?-1:n||o?o:w}},se={forEach:ue(0),map:ue(1),filter:ue(2),some:ue(3),every:ue(4),find:ue(5),findIndex:ue(6)},ce=Object.defineProperty,fe={},le=function(t){throw t},he=function(t,e){if(w(fe,t))return fe[t];e||(e={});var r=[][t],n=!!w(e,"ACCESSORS")&&e.ACCESSORS,o=w(e,0)?e[0]:le,u=w(e,1)?e[1]:void 0;return fe[t]=!!r&&!i((function(){if(n&&!a)return!0;var t={length:-1};n?ce(t,1,{enumerable:!0,get:le}):t[1]=1,r.call(t,o,u)}))},pe=se.find,de="find",ve=!0,ge=he(de);de in[]&&Array(1).find((function(){ve=!1})),Lt({target:"Array",proto:!0,forced:ve||!ge},{find:function(t){return pe(this,t,arguments.length>1?arguments[1]:void 0)}}),Qt(de),re("Array","find");var ye=se.findIndex,me="findIndex",be=!0,we=he(me);me in[]&&Array(1).findIndex((function(){be=!1})),Lt({target:"Array",proto:!0,forced:be||!we},{findIndex:function(t){return ye(this,t,arguments.length>1?arguments[1]:void 0)}}),Qt(me),re("Array","findIndex");var Se=function t(e,r,n,o,i,a,u,s){for(var c,f=i,l=0,h=!!u&&te(u,s,3);l<o;){if(l in n){if(c=h?h(n[l],l,r):n[l],a>0&&ne(c))f=t(e,r,c,ft(c.length),f,a-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[f]=c}f++}l++}return f};Lt({target:"Array",proto:!0},{flatMap:function(t){var e,r=Ut(this),n=ft(r.length);return Zt(t),(e=ie(r,0)).length=Se(e,r,r,n,0,1,t,arguments.length>1?arguments[1]:void 0),e}}),Qt("flatMap"),re("Array","flatMap"),Lt({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=Ut(this),r=ft(e.length),n=ie(e,0);return n.length=Se(n,e,e,r,0,void 0===t?1:st(t)),n}}),Qt("flat"),re("Array","flat");var Ee,xe,Ae,Oe=function(t){return function(e,r){var n,o,i=String(v(e)),a=st(r),u=i.length;return a<0||a>=u?t?"":void 0:(n=i.charCodeAt(a))<55296||n>56319||a+1===u||(o=i.charCodeAt(a+1))<56320||o>57343?t?i.charAt(a):n:t?i.slice(a,a+2):o-56320+(n-55296<<10)+65536}},Re={codeAt:Oe(!1),charAt:Oe(!0)},je=!i((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})),Pe=V("IE_PROTO"),Ie=Object.prototype,ke=je?Object.getPrototypeOf:function(t){return t=Ut(t),w(t,Pe)?t[Pe]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?Ie:null},Te=qt("iterator"),Le=!1;[].keys&&("next"in(Ae=[].keys())?(xe=ke(ke(Ae)))!==Object.prototype&&(Ee=xe):Le=!0),null==Ee&&(Ee={}),w(Ee,Te)||k(Ee,Te,(function(){return this}));var Ue={IteratorPrototype:Ee,BUGGY_SAFARI_ITERATORS:Le},_e=I.f,Me=qt("toStringTag"),Ne=function(t,e,r){t&&!w(t=r?t:t.prototype,Me)&&_e(t,Me,{configurable:!0,value:e})},Ce={},Fe=Ue.IteratorPrototype,Be=function(){return this},De=function(t,e,r){var n=e+" Iterator";return t.prototype=Xt(Fe,{next:f(1,r)}),Ne(t,n,!1),Ce[n]=Be,t},qe=function(t){if(!y(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t},ze=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,r={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(r,[]),e=r instanceof Array}catch(t){}return function(r,n){return j(r),qe(n),e?t.call(r,n):r.__proto__=n,r}}():void 0),We=Ue.IteratorPrototype,Ke=Ue.BUGGY_SAFARI_ITERATORS,Ge=qt("iterator"),$e="keys",Ve="values",He="entries",Xe=function(){return this},Ye=function(t,e,r,n,o,i,a){De(r,e,n);var u,s,c,f=function(t){if(t===o&&v)return v;if(!Ke&&t in p)return p[t];switch(t){case $e:case Ve:case He:return function(){return new r(this,t)}}return function(){return new r(this)}},l=e+" Iterator",h=!1,p=t.prototype,d=p[Ge]||p["@@iterator"]||o&&p[o],v=!Ke&&d||f(o),g="Array"==e&&p.entries||d;if(g&&(u=ke(g.call(new t)),We!==Object.prototype&&u.next&&(ke(u)!==We&&(ze?ze(u,We):"function"!=typeof u[Ge]&&k(u,Ge,Xe)),Ne(u,l,!0))),o==Ve&&d&&d.name!==Ve&&(h=!0,v=function(){return d.call(this)}),p[Ge]!==v&&k(p,Ge,v),Ce[e]=v,o)if(s={values:f(Ve),keys:i?v:f($e),entries:f(He)},a)for(c in s)(Ke||h||!(c in p))&&rt(p,c,s[c]);else Lt({target:e,proto:!0,forced:Ke||h},s);return s},Je=Re.charAt,Qe="String Iterator",Ze=et.set,tr=et.getterFor(Qe);Ye(String,"String",(function(t){Ze(this,{type:Qe,string:String(t),index:0})}),(function(){var t,e=tr(this),r=e.string,n=e.index;return n>=r.length?{value:void 0,done:!0}:(t=Je(r,n),e.index+=t.length,{value:t,done:!1})}));var er=function(t,e,r,n){try{return n?e(j(r)[0],r[1]):e(r)}catch(e){var o=t.return;throw void 0!==o&&j(o.call(t)),e}},rr=qt("iterator"),nr=Array.prototype,or=function(t){return void 0!==t&&(Ce.Array===t||nr[rr]===t)},ir=function(t,e,r){var n=m(e);n in t?I.f(t,n,f(0,r)):t[n]=r},ar={};ar[qt("toStringTag")]="z";var ur="[object z]"===String(ar),sr=qt("toStringTag"),cr="Arguments"==h(function(){return arguments}()),fr=ur?h:function(t){var e,r,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),sr))?r:cr?h(e):"Object"==(n=h(e))&&"function"==typeof e.callee?"Arguments":n},lr=qt("iterator"),hr=function(t){if(null!=t)return t[lr]||t["@@iterator"]||Ce[fr(t)]},pr=function(t){var e,r,n,o,i,a,u=Ut(t),s="function"==typeof this?this:Array,c=arguments.length,f=c>1?arguments[1]:void 0,l=void 0!==f,h=hr(u),p=0;if(l&&(f=te(f,c>2?arguments[2]:void 0,2)),null==h||s==Array&&or(h))for(r=new s(e=ft(u.length));e>p;p++)a=l?f(u[p],p):u[p],ir(r,p,a);else for(i=(o=h.call(u)).next,r=new s;!(n=i.call(o)).done;p++)a=l?er(o,f,[n.value,p],!0):n.value,ir(r,p,a);return r.length=p,r},dr=qt("iterator"),vr=!1;try{var gr=0,yr={next:function(){return{done:!!gr++}},return:function(){vr=!0}};yr[dr]=function(){return this},Array.from(yr,(function(){throw 2}))}catch(t){}var mr=function(t,e){if(!e&&!vr)return!1;var r=!1;try{var n={};n[dr]=function(){return{next:function(){return{done:r=!0}}}},t(n)}catch(t){}return r},br=!mr((function(t){Array.from(t)}));Lt({target:"Array",stat:!0,forced:br},{from:pr});var wr=vt.includes,Sr=he("indexOf",{ACCESSORS:!0,1:0});Lt({target:"Array",proto:!0,forced:!Sr},{includes:function(t){return wr(this,t,arguments.length>1?arguments[1]:void 0)}}),Qt("includes"),re("Array","includes");var Er="Array Iterator",xr=et.set,Ar=et.getterFor(Er),Or=Ye(Array,"Array",(function(t,e){xr(this,{type:Er,target:g(t),index:0,kind:e})}),(function(){var t=Ar(this),e=t.target,r=t.kind,n=t.index++;return!e||n>=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==r?{value:n,done:!1}:"values"==r?{value:e[n],done:!1}:{value:[n,e[n]],done:!1}}),"values");Ce.Arguments=Ce.Array,Qt("keys"),Qt("values"),Qt("entries"),re("Array","values");var Rr=i((function(){function t(){}return!(Array.of.call(t)instanceof t)}));Lt({target:"Array",stat:!0,forced:Rr},{of:function(){for(var t=0,e=arguments.length,r=new("function"==typeof this?this:Array)(e);e>t;)ir(r,t,arguments[t++]);return r.length=e,r}});var jr=qt("hasInstance"),Pr=Function.prototype;jr in Pr||I.f(Pr,jr,{value:function(t){if("function"!=typeof this||!y(t))return!1;if(!y(this.prototype))return t instanceof this;for(;t=ke(t);)if(this.prototype===t)return!0;return!1}}),qt("hasInstance");var Ir=Function.prototype,kr=Ir.toString,Tr=/^\s*function ([^ (]*)/,Lr="name";a&&!(Lr in Ir)&&(0,I.f)(Ir,Lr,{configurable:!0,get:function(){try{return kr.call(this).match(Tr)[1]}catch(t){return""}}});var Ur=!i((function(){return Object.isExtensible(Object.preventExtensions({}))})),_r=e((function(t){var e=I.f,r=G("meta"),n=0,o=Object.isExtensible||function(){return!0},i=function(t){e(t,r,{value:{objectID:"O"+ ++n,weakData:{}}})},a=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!y(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!w(t,r)){if(!o(t))return"F";if(!e)return"E";i(t)}return t[r].objectID},getWeakData:function(t,e){if(!w(t,r)){if(!o(t))return!0;if(!e)return!1;i(t)}return t[r].weakData},onFreeze:function(t){return Ur&&a.REQUIRED&&o(t)&&!w(t,r)&&i(t),t}};H[r]=!0})),Mr=e((function(t){var e=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,r,n,o,i){var a,u,s,c,f,l,h,p=te(r,n,o?2:1);if(i)a=t;else{if("function"!=typeof(u=hr(t)))throw TypeError("Target is not iterable");if(or(u)){for(s=0,c=ft(t.length);c>s;s++)if((f=o?p(j(h=t[s])[0],h[1]):p(t[s]))&&f instanceof e)return f;return new e(!1)}a=u.call(t)}for(l=a.next;!(h=l.call(a)).done;)if("object"==typeof(f=er(a,p,h.value,o))&&f&&f instanceof e)return f;return new e(!1)}).stop=function(t){return new e(!0,t)}})),Nr=function(t,e,r){if(!(t instanceof e))throw TypeError("Incorrect "+(r?r+" ":"")+"invocation");return t},Cr=function(t,e,r){var n,o;return ze&&"function"==typeof(n=e.constructor)&&n!==r&&y(o=n.prototype)&&o!==r.prototype&&ze(t,o),t},Fr=function(t,e,r){var n=-1!==t.indexOf("Map"),a=-1!==t.indexOf("Weak"),u=n?"set":"add",s=o[t],c=s&&s.prototype,f=s,l={},h=function(t){var e=c[t];rt(c,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(a&&!y(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return a&&!y(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(a&&!y(t))&&e.call(this,0===t?0:t)}:function(t,r){return e.call(this,0===t?0:t,r),this})};if(kt(t,"function"!=typeof s||!(a||c.forEach&&!i((function(){(new s).entries().next()})))))f=r.getConstructor(e,t,n,u),_r.REQUIRED=!0;else if(kt(t,!0)){var p=new f,d=p[u](a?{}:-0,1)!=p,v=i((function(){p.has(1)})),g=mr((function(t){new s(t)})),m=!a&&i((function(){for(var t=new s,e=5;e--;)t[u](e,e);return!t.has(-0)}));g||((f=e((function(e,r){Nr(e,f,t);var o=Cr(new s,e,f);return null!=r&&Mr(r,o[u],o,n),o}))).prototype=c,c.constructor=f),(v||m)&&(h("delete"),h("has"),n&&h("get")),(m||d)&&h(u),a&&c.clear&&delete c.clear}return l[t]=f,Lt({global:!0,forced:f!=s},l),Ne(f,t),a||r.setStrong(f,t,n),f},Br=function(t,e,r){for(var n in e)rt(t,n,e[n],r);return t},Dr=qt("species"),qr=function(t){var e=it(t);a&&e&&!e[Dr]&&(0,I.f)(e,Dr,{configurable:!0,get:function(){return this}})},zr=I.f,Wr=_r.fastKey,Kr=et.set,Gr=et.getterFor,$r={getConstructor:function(t,e,r,n){var o=t((function(t,i){Nr(t,o,e),Kr(t,{type:e,index:Xt(null),first:void 0,last:void 0,size:0}),a||(t.size=0),null!=i&&Mr(i,t[n],t,r)})),i=Gr(e),u=function(t,e,r){var n,o,u=i(t),c=s(t,e);return c?c.value=r:(u.last=c={index:o=Wr(e,!0),key:e,value:r,previous:n=u.last,next:void 0,removed:!1},u.first||(u.first=c),n&&(n.next=c),a?u.size++:t.size++,"F"!==o&&(u.index[o]=c)),t},s=function(t,e){var r,n=i(t),o=Wr(e);if("F"!==o)return n.index[o];for(r=n.first;r;r=r.next)if(r.key==e)return r};return Br(o.prototype,{clear:function(){for(var t=i(this),e=t.index,r=t.first;r;)r.removed=!0,r.previous&&(r.previous=r.previous.next=void 0),delete e[r.index],r=r.next;t.first=t.last=void 0,a?t.size=0:this.size=0},delete:function(t){var e=this,r=i(e),n=s(e,t);if(n){var o=n.next,u=n.previous;delete r.index[n.index],n.removed=!0,u&&(u.next=o),o&&(o.previous=u),r.first==n&&(r.first=o),r.last==n&&(r.last=u),a?r.size--:e.size--}return!!n},forEach:function(t){for(var e,r=i(this),n=te(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:r.first;)for(n(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!s(this,t)}}),Br(o.prototype,r?{get:function(t){var e=s(this,t);return e&&e.value},set:function(t,e){return u(this,0===t?0:t,e)}}:{add:function(t){return u(this,t=0===t?0:t,t)}}),a&&zr(o.prototype,"size",{get:function(){return i(this).size}}),o},setStrong:function(t,e,r){var n=e+" Iterator",o=Gr(e),i=Gr(n);Ye(t,e,(function(t,e){Kr(this,{type:n,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,r=t.last;r&&r.removed;)r=r.previous;return t.target&&(t.last=r=r?r.next:t.state.first)?"keys"==e?{value:r.key,done:!1}:"values"==e?{value:r.value,done:!1}:{value:[r.key,r.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),r?"entries":"values",!r,!0),qr(e)}},Vr=Fr("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),$r);ur||rt(Object.prototype,"toString",ur?{}.toString:function(){return"[object "+fr(this)+"]"},{unsafe:!0});var Hr={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Xr=qt("iterator"),Yr=qt("toStringTag"),Jr=Or.values;for(var Qr in Hr){var Zr=o[Qr],tn=Zr&&Zr.prototype;if(tn){if(tn[Xr]!==Jr)try{k(tn,Xr,Jr)}catch(t){tn[Xr]=Jr}if(tn[Yr]||k(tn,Yr,Qr),Hr[Qr])for(var en in Or)if(tn[en]!==Or[en])try{k(tn,en,Or[en])}catch(t){tn[en]=Or[en]}}}var rn=function(t){var e,r,n,o,i=arguments.length,a=i>1?arguments[1]:void 0;return Zt(this),(e=void 0!==a)&&Zt(a),null==t?new this:(r=[],e?(n=0,o=te(a,i>2?arguments[2]:void 0,2),Mr(t,(function(t){r.push(o(t,n++))}))):Mr(t,r.push,r),new this(r))};Lt({target:"Map",stat:!0},{from:rn});var nn=function(){for(var t=arguments.length,e=new Array(t);t--;)e[t]=arguments[t];return new this(e)};Lt({target:"Map",stat:!0},{of:nn});var on=function(){for(var t,e=j(this),r=Zt(e.delete),n=!0,o=0,i=arguments.length;o<i;o++)t=r.call(e,arguments[o]),n=n&&t;return!!n};Lt({target:"Map",proto:!0,real:!0,forced:q},{deleteAll:function(){return on.apply(this,arguments)}});var an=function(t){var e=hr(t);if("function"!=typeof e)throw TypeError(String(t)+" is not iterable");return j(e.call(t))},un=function(t){return Map.prototype.entries.call(t)};Lt({target:"Map",proto:!0,real:!0,forced:q},{every:function(t){var e=j(this),r=un(e),n=te(t,arguments.length>1?arguments[1]:void 0,3);return!Mr(r,(function(t,r){if(!n(r,t,e))return Mr.stop()}),void 0,!0,!0).stopped}});var sn=qt("species"),cn=function(t,e){var r,n=j(t).constructor;return void 0===n||null==(r=j(n)[sn])?e:Zt(r)};Lt({target:"Map",proto:!0,real:!0,forced:q},{filter:function(t){var e=j(this),r=un(e),n=te(t,arguments.length>1?arguments[1]:void 0,3),o=new(cn(e,it("Map"))),i=Zt(o.set);return Mr(r,(function(t,r){n(r,t,e)&&i.call(o,t,r)}),void 0,!0,!0),o}}),Lt({target:"Map",proto:!0,real:!0,forced:q},{find:function(t){var e=j(this),r=un(e),n=te(t,arguments.length>1?arguments[1]:void 0,3);return Mr(r,(function(t,r){if(n(r,t,e))return Mr.stop(r)}),void 0,!0,!0).result}}),Lt({target:"Map",proto:!0,real:!0,forced:q},{findKey:function(t){var e=j(this),r=un(e),n=te(t,arguments.length>1?arguments[1]:void 0,3);return Mr(r,(function(t,r){if(n(r,t,e))return Mr.stop(t)}),void 0,!0,!0).result}}),Lt({target:"Map",stat:!0},{groupBy:function(t,e){var r=new this;Zt(e);var n=Zt(r.has),o=Zt(r.get),i=Zt(r.set);return Mr(t,(function(t){var a=e(t);n.call(r,a)?o.call(r,a).push(t):i.call(r,a,[t])})),r}}),Lt({target:"Map",proto:!0,real:!0,forced:q},{includes:function(t){return Mr(un(j(this)),(function(e,r){if((n=r)===(o=t)||n!=n&&o!=o)return Mr.stop();var n,o}),void 0,!0,!0).stopped}}),Lt({target:"Map",stat:!0},{keyBy:function(t,e){var r=new this;Zt(e);var n=Zt(r.set);return Mr(t,(function(t){n.call(r,e(t),t)})),r}}),Lt({target:"Map",proto:!0,real:!0,forced:q},{keyOf:function(t){return Mr(un(j(this)),(function(e,r){if(r===t)return Mr.stop(e)}),void 0,!0,!0).result}}),Lt({target:"Map",proto:!0,real:!0,forced:q},{mapKeys:function(t){var e=j(this),r=un(e),n=te(t,arguments.length>1?arguments[1]:void 0,3),o=new(cn(e,it("Map"))),i=Zt(o.set);return Mr(r,(function(t,r){i.call(o,n(r,t,e),r)}),void 0,!0,!0),o}}),Lt({target:"Map",proto:!0,real:!0,forced:q},{mapValues:function(t){var e=j(this),r=un(e),n=te(t,arguments.length>1?arguments[1]:void 0,3),o=new(cn(e,it("Map"))),i=Zt(o.set);return Mr(r,(function(t,r){i.call(o,t,n(r,t,e))}),void 0,!0,!0),o}}),Lt({target:"Map",proto:!0,real:!0,forced:q},{merge:function(t){for(var e=j(this),r=Zt(e.set),n=0;n<arguments.length;)Mr(arguments[n++],r,e,!0);return e}}),Lt({target:"Map",proto:!0,real:!0,forced:q},{reduce:function(t){var e=j(this),r=un(e),n=arguments.length<2,o=n?void 0:arguments[1];if(Zt(t),Mr(r,(function(r,i){n?(n=!1,o=i):o=t(o,i,r,e)}),void 0,!0,!0),n)throw TypeError("Reduce of empty map with no initial value");return o}}),Lt({target:"Map",proto:!0,real:!0,forced:q},{some:function(t){var e=j(this),r=un(e),n=te(t,arguments.length>1?arguments[1]:void 0,3);return Mr(r,(function(t,r){if(n(r,t,e))return Mr.stop()}),void 0,!0,!0).stopped}}),Lt({target:"Map",proto:!0,real:!0,forced:q},{update:function(t,e){var r=j(this),n=arguments.length;Zt(e);var o=r.has(t);if(!o&&n<3)throw TypeError("Updating absent value");var i=o?r.get(t):Zt(n>2?arguments[2]:void 0)(t,r);return r.set(t,e(i,t,r)),r}});var fn=function(t,e){var r,n=j(this),o=arguments.length>2?arguments[2]:void 0;if("function"!=typeof e&&"function"!=typeof o)throw TypeError("At least one callback required");return n.has(t)?(r=n.get(t),"function"==typeof e&&(r=e(r),n.set(t,r))):"function"==typeof o&&(r=o(),n.set(t,r)),r};Lt({target:"Map",proto:!0,real:!0,forced:q},{upsert:fn}),Lt({target:"Map",proto:!0,real:!0,forced:q},{updateOrInsert:fn});var ln="\t\n\v\f\r \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff",hn="["+ln+"]",pn=RegExp("^"+hn+hn+"*"),dn=RegExp(hn+hn+"*$"),vn=function(t){return function(e){var r=String(v(e));return 1&t&&(r=r.replace(pn,"")),2&t&&(r=r.replace(dn,"")),r}},gn={start:vn(1),end:vn(2),trim:vn(3)},yn=wt.f,mn=R.f,bn=I.f,wn=gn.trim,Sn="Number",En=o.Number,xn=En.prototype,An=h(Xt(xn))==Sn,On=function(t){var e,r,n,o,i,a,u,s,c=m(t,!1);if("string"==typeof c&&c.length>2)if(43===(e=(c=wn(c)).charCodeAt(0))||45===e){if(88===(r=c.charCodeAt(2))||120===r)return NaN}else if(48===e){switch(c.charCodeAt(1)){case 66:case 98:n=2,o=49;break;case 79:case 111:n=8,o=55;break;default:return+c}for(a=(i=c.slice(2)).length,u=0;u<a;u++)if((s=i.charCodeAt(u))<48||s>o)return NaN;return parseInt(i,n)}return+c};if(kt(Sn,!En(" 0o1")||!En("0b1")||En("+0x1"))){for(var Rn,jn=function(t){var e=arguments.length<1?0:t,r=this;return r instanceof jn&&(An?i((function(){xn.valueOf.call(r)})):h(r)!=Sn)?Cr(new En(On(e)),r,jn):On(e)},Pn=a?yn(En):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),In=0;Pn.length>In;In++)w(En,Rn=Pn[In])&&!w(jn,Rn)&&bn(jn,Rn,mn(En,Rn));jn.prototype=xn,xn.constructor=jn,rt(o,Sn,jn)}Lt({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)});var kn=o.isFinite;Lt({target:"Number",stat:!0},{isFinite:Number.isFinite||function(t){return"number"==typeof t&&kn(t)}});var Tn=Math.floor,Ln=function(t){return!y(t)&&isFinite(t)&&Tn(t)===t};Lt({target:"Number",stat:!0},{isInteger:Ln}),Lt({target:"Number",stat:!0},{isNaN:function(t){return t!=t}});var Un=Math.abs;Lt({target:"Number",stat:!0},{isSafeInteger:function(t){return Ln(t)&&Un(t)<=9007199254740991}}),Lt({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991}),Lt({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991});var _n=gn.trim,Mn=o.parseFloat,Nn=1/Mn(ln+"-0")!=-1/0?function(t){var e=_n(String(t)),r=Mn(e);return 0===r&&"-"==e.charAt(0)?-0:r}:Mn;Lt({target:"Number",stat:!0,forced:Number.parseFloat!=Nn},{parseFloat:Nn});var Cn=gn.trim,Fn=o.parseInt,Bn=/^[+-]?0[Xx]/,Dn=8!==Fn(ln+"08")||22!==Fn(ln+"0x16")?function(t,e){var r=Cn(String(t));return Fn(r,e>>>0||(Bn.test(r)?16:10))}:Fn;Lt({target:"Number",stat:!0,forced:Number.parseInt!=Dn},{parseInt:Dn});var qn=c.f,zn=function(t){return function(e){for(var r,n=g(e),o=zt(n),i=o.length,u=0,s=[];i>u;)r=o[u++],a&&!qn.call(n,r)||s.push(t?[r,n[r]]:n[r]);return s}},Wn={entries:zn(!0),values:zn(!1)},Kn=Wn.entries;Lt({target:"Object",stat:!0},{entries:function(t){return Kn(t)}}),Lt({target:"Object",stat:!0,sham:!a},{getOwnPropertyDescriptors:function(t){for(var e,r,n=g(t),o=R.f,i=Et(n),a={},u=0;i.length>u;)void 0!==(r=o(n,e=i[u++]))&&ir(a,e,r);return a}});var Gn=i((function(){zt(1)}));Lt({target:"Object",stat:!0,forced:Gn},{keys:function(t){return zt(Ut(t))}});var $n=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e};Lt({target:"Object",stat:!0},{is:$n});var Vn=Wn.values;Lt({target:"Object",stat:!0},{values:function(t){return Vn(t)}});var Hn=it("Reflect","apply"),Xn=Function.apply,Yn=!i((function(){Hn((function(){}))}));Lt({target:"Reflect",stat:!0,forced:Yn},{apply:function(t,e,r){return Zt(t),j(r),Hn?Hn(t,e,r):Xn.call(t,e,r)}});var Jn=[].slice,Qn={},Zn=function(t,e,r){if(!(e in Qn)){for(var n=[],o=0;o<e;o++)n[o]="a["+o+"]";Qn[e]=Function("C,a","return new C("+n.join(",")+")")}return Qn[e](t,r)},to=Function.bind||function(t){var e=Zt(this),r=Jn.call(arguments,1),n=function(){var o=r.concat(Jn.call(arguments));return this instanceof n?Zn(e,o.length,o):e.apply(t,o)};return y(e.prototype)&&(n.prototype=e.prototype),n},eo=it("Reflect","construct"),ro=i((function(){function t(){}return!(eo((function(){}),[],t)instanceof t)})),no=!i((function(){eo((function(){}))})),oo=ro||no;Lt({target:"Reflect",stat:!0,forced:oo,sham:oo},{construct:function(t,e){Zt(t),j(e);var r=arguments.length<3?t:Zt(arguments[2]);if(no&&!ro)return eo(t,e,r);if(t==r){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var n=[null];return n.push.apply(n,e),new(to.apply(t,n))}var o=r.prototype,i=Xt(y(o)?o:Object.prototype),a=Function.apply.call(t,i,e);return y(a)?a:i}});var io=i((function(){Reflect.defineProperty(I.f({},1,{value:1}),1,{value:2})}));Lt({target:"Reflect",stat:!0,forced:io,sham:!a},{defineProperty:function(t,e,r){j(t);var n=m(e,!0);j(r);try{return I.f(t,n,r),!0}catch(t){return!1}}});var ao=R.f;Lt({target:"Reflect",stat:!0},{deleteProperty:function(t,e){var r=ao(j(t),e);return!(r&&!r.configurable)&&delete t[e]}}),Lt({target:"Reflect",stat:!0},{get:function t(e,r){var n,o,i=arguments.length<3?e:arguments[2];return j(e)===i?e[r]:(n=R.f(e,r))?w(n,"value")?n.value:void 0===n.get?void 0:n.get.call(i):y(o=ke(e))?t(o,r,i):void 0}}),Lt({target:"Reflect",stat:!0,sham:!a},{getOwnPropertyDescriptor:function(t,e){return R.f(j(t),e)}}),Lt({target:"Reflect",stat:!0,sham:!je},{getPrototypeOf:function(t){return ke(j(t))}}),Lt({target:"Reflect",stat:!0},{has:function(t,e){return e in t}});var uo=Object.isExtensible;Lt({target:"Reflect",stat:!0},{isExtensible:function(t){return j(t),!uo||uo(t)}}),Lt({target:"Reflect",stat:!0},{ownKeys:Et}),Lt({target:"Reflect",stat:!0,sham:!Ur},{preventExtensions:function(t){j(t);try{var e=it("Object","preventExtensions");return e&&e(t),!0}catch(t){return!1}}});var so=i((function(){var t=I.f({},"a",{configurable:!0});return!1!==Reflect.set(ke(t),"a",1,t)}));Lt({target:"Reflect",stat:!0,forced:so},{set:function t(e,r,n){var o,i,a=arguments.length<4?e:arguments[3],u=R.f(j(e),r);if(!u){if(y(i=ke(e)))return t(i,r,n,a);u=f(0)}if(w(u,"value")){if(!1===u.writable||!y(a))return!1;if(o=R.f(a,r)){if(o.get||o.set||!1===o.writable)return!1;o.value=n,I.f(a,r,o)}else I.f(a,r,f(0,n));return!0}return void 0!==u.set&&(u.set.call(a,n),!0)}}),ze&&Lt({target:"Reflect",stat:!0},{setPrototypeOf:function(t,e){j(t),qe(e);try{return ze(t,e),!0}catch(t){return!1}}});var co=_r.getWeakData,fo=et.set,lo=et.getterFor,ho=se.find,po=se.findIndex,vo=0,go=function(t){return t.frozen||(t.frozen=new yo)},yo=function(){this.entries=[]},mo=function(t,e){return ho(t.entries,(function(t){return t[0]===e}))};yo.prototype={get:function(t){var e=mo(this,t);if(e)return e[1]},has:function(t){return!!mo(this,t)},set:function(t,e){var r=mo(this,t);r?r[1]=e:this.entries.push([t,e])},delete:function(t){var e=po(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}};var bo={getConstructor:function(t,e,r,n){var o=t((function(t,i){Nr(t,o,e),fo(t,{type:e,id:vo++,frozen:void 0}),null!=i&&Mr(i,t[n],t,r)})),i=lo(e),a=function(t,e,r){var n=i(t),o=co(j(e),!0);return!0===o?go(n).set(e,r):o[n.id]=r,t};return Br(o.prototype,{delete:function(t){var e=i(this);if(!y(t))return!1;var r=co(t);return!0===r?go(e).delete(t):r&&w(r,e.id)&&delete r[e.id]},has:function(t){var e=i(this);if(!y(t))return!1;var r=co(t);return!0===r?go(e).has(t):r&&w(r,e.id)}}),Br(o.prototype,r?{get:function(t){var e=i(this);if(y(t)){var r=co(t);return!0===r?go(e).get(t):r?r[e.id]:void 0}},set:function(t,e){return a(this,t,e)}}:{add:function(t){return a(this,t,!0)}}),o}},wo=e((function(t){var e,r=et.enforce,n=!o.ActiveXObject&&"ActiveXObject"in o,i=Object.isExtensible,a=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},u=t.exports=Fr("WeakMap",a,bo);if(D&&n){e=bo.getConstructor(a,"WeakMap",!0),_r.REQUIRED=!0;var s=u.prototype,c=s.delete,f=s.has,l=s.get,h=s.set;Br(s,{delete:function(t){if(y(t)&&!i(t)){var n=r(this);return n.frozen||(n.frozen=new e),c.call(this,t)||n.frozen.delete(t)}return c.call(this,t)},has:function(t){if(y(t)&&!i(t)){var n=r(this);return n.frozen||(n.frozen=new e),f.call(this,t)||n.frozen.has(t)}return f.call(this,t)},get:function(t){if(y(t)&&!i(t)){var n=r(this);return n.frozen||(n.frozen=new e),f.call(this,t)?l.call(this,t):n.frozen.get(t)}return l.call(this,t)},set:function(t,n){if(y(t)&&!i(t)){var o=r(this);o.frozen||(o.frozen=new e),f.call(this,t)?h.call(this,t,n):o.frozen.set(t,n)}else h.call(this,t,n);return this}})}})),So=z("metadata"),Eo=So.store||(So.store=new wo),xo=function(t,e,r){var n=Eo.get(t);if(!n){if(!r)return;Eo.set(t,n=new Vr)}var o=n.get(e);if(!o){if(!r)return;n.set(e,o=new Vr)}return o},Ao={store:Eo,getMap:xo,has:function(t,e,r){var n=xo(e,r,!1);return void 0!==n&&n.has(t)},get:function(t,e,r){var n=xo(e,r,!1);return void 0===n?void 0:n.get(t)},set:function(t,e,r,n){xo(r,n,!0).set(t,e)},keys:function(t,e){var r=xo(t,e,!1),n=[];return r&&r.forEach((function(t,e){n.push(e)})),n},toKey:function(t){return void 0===t||"symbol"==typeof t?t:String(t)}},Oo=Ao.toKey,Ro=Ao.set;Lt({target:"Reflect",stat:!0},{defineMetadata:function(t,e,r){var n=arguments.length<4?void 0:Oo(arguments[3]);Ro(t,e,j(r),n)}});var jo=Ao.toKey,Po=Ao.getMap,Io=Ao.store;Lt({target:"Reflect",stat:!0},{deleteMetadata:function(t,e){var r=arguments.length<3?void 0:jo(arguments[2]),n=Po(j(e),r,!1);if(void 0===n||!n.delete(t))return!1;if(n.size)return!0;var o=Io.get(e);return o.delete(r),!!o.size||Io.delete(e)}});var ko=Ao.has,To=Ao.get,Lo=Ao.toKey,Uo=function t(e,r,n){if(ko(e,r,n))return To(e,r,n);var o=ke(r);return null!==o?t(e,o,n):void 0};Lt({target:"Reflect",stat:!0},{getMetadata:function(t,e){var r=arguments.length<3?void 0:Lo(arguments[2]);return Uo(t,j(e),r)}});var _o=Fr("Set",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),$r),Mo=Ao.keys,No=Ao.toKey,Co=function t(e,r){var n=Mo(e,r),o=ke(e);if(null===o)return n;var i,a,u=t(o,r);return u.length?n.length?(i=new _o(n.concat(u)),Mr(i,(a=[]).push,a),a):u:n};Lt({target:"Reflect",stat:!0},{getMetadataKeys:function(t){var e=arguments.length<2?void 0:No(arguments[1]);return Co(j(t),e)}});var Fo=Ao.get,Bo=Ao.toKey;Lt({target:"Reflect",stat:!0},{getOwnMetadata:function(t,e){var r=arguments.length<3?void 0:Bo(arguments[2]);return Fo(t,j(e),r)}});var Do=Ao.keys,qo=Ao.toKey;Lt({target:"Reflect",stat:!0},{getOwnMetadataKeys:function(t){var e=arguments.length<2?void 0:qo(arguments[1]);return Do(j(t),e)}});var zo=Ao.has,Wo=Ao.toKey,Ko=function t(e,r,n){if(zo(e,r,n))return!0;var o=ke(r);return null!==o&&t(e,o,n)};Lt({target:"Reflect",stat:!0},{hasMetadata:function(t,e){var r=arguments.length<3?void 0:Wo(arguments[2]);return Ko(t,j(e),r)}});var Go=Ao.has,$o=Ao.toKey;Lt({target:"Reflect",stat:!0},{hasOwnMetadata:function(t,e){var r=arguments.length<3?void 0:$o(arguments[2]);return Go(t,j(e),r)}});var Vo=Ao.toKey,Ho=Ao.set;Lt({target:"Reflect",stat:!0},{metadata:function(t,e){return function(r,n){Ho(t,e,j(r),Vo(n))}}});var Xo=qt("match"),Yo=function(t){var e;return y(t)&&(void 0!==(e=t[Xo])?!!e:"RegExp"==h(t))},Jo=function(){var t=j(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e};function Qo(t,e){return RegExp(t,e)}var Zo={UNSUPPORTED_Y:i((function(){var t=Qo("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),BROKEN_CARET:i((function(){var t=Qo("^r","gy");return t.lastIndex=2,null!=t.exec("str")}))},ti=I.f,ei=wt.f,ri=et.set,ni=qt("match"),oi=o.RegExp,ii=oi.prototype,ai=/a/g,ui=/a/g,si=new oi(ai)!==ai,ci=Zo.UNSUPPORTED_Y;if(a&&kt("RegExp",!si||ci||i((function(){return ui[ni]=!1,oi(ai)!=ai||oi(ui)==ui||"/a/i"!=oi(ai,"i")})))){for(var fi=function(t,e){var r,n=this instanceof fi,o=Yo(t),i=void 0===e;if(!n&&o&&t.constructor===fi&&i)return t;si?o&&!i&&(t=t.source):t instanceof fi&&(i&&(e=Jo.call(t)),t=t.source),ci&&(r=!!e&&e.indexOf("y")>-1)&&(e=e.replace(/y/g,""));var a=Cr(si?new oi(t,e):oi(t,e),n?this:ii,fi);return ci&&r&&ri(a,{sticky:r}),a},li=function(t){t in fi||ti(fi,t,{configurable:!0,get:function(){return oi[t]},set:function(e){oi[t]=e}})},hi=ei(oi),pi=0;hi.length>pi;)li(hi[pi++]);ii.constructor=fi,fi.prototype=ii,rt(o,"RegExp",fi)}qr("RegExp");var di="toString",vi=RegExp.prototype,gi=vi.toString;(i((function(){return"/a/b"!=gi.call({source:"a",flags:"b"})}))||gi.name!=di)&&rt(RegExp.prototype,di,(function(){var t=j(this),e=String(t.source),r=t.flags;return"/"+e+"/"+String(void 0===r&&t instanceof RegExp&&!("flags"in vi)?Jo.call(t):r)}),{unsafe:!0});var yi=RegExp.prototype.exec,mi=String.prototype.replace,bi=yi,wi=function(){var t=/a/,e=/b*/g;return yi.call(t,"a"),yi.call(e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),Si=Zo.UNSUPPORTED_Y||Zo.BROKEN_CARET,Ei=void 0!==/()??/.exec("")[1];(wi||Ei||Si)&&(bi=function(t){var e,r,n,o,i=this,a=Si&&i.sticky,u=Jo.call(i),s=i.source,c=0,f=t;return a&&(-1===(u=u.replace("y","")).indexOf("g")&&(u+="g"),f=String(t).slice(i.lastIndex),i.lastIndex>0&&(!i.multiline||i.multiline&&"\n"!==t[i.lastIndex-1])&&(s="(?: "+s+")",f=" "+f,c++),r=new RegExp("^(?:"+s+")",u)),Ei&&(r=new RegExp("^"+s+"$(?!\\s)",u)),wi&&(e=i.lastIndex),n=yi.call(a?r:i,f),a?n?(n.input=n.input.slice(c),n[0]=n[0].slice(c),n.index=i.lastIndex,i.lastIndex+=n[0].length):i.lastIndex=0:wi&&n&&(i.lastIndex=i.global?n.index+n[0].length:e),Ei&&n&&n.length>1&&mi.call(n[0],r,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(n[o]=void 0)})),n});var xi=bi;Lt({target:"RegExp",proto:!0,forced:/./.exec!==xi},{exec:xi}),a&&("g"!=/./g.flags||Zo.UNSUPPORTED_Y)&&I.f(RegExp.prototype,"flags",{configurable:!0,get:Jo});var Ai=et.get,Oi=RegExp.prototype;a&&Zo.UNSUPPORTED_Y&&(0,I.f)(RegExp.prototype,"sticky",{configurable:!0,get:function(){if(this!==Oi){if(this instanceof RegExp)return!!Ai(this).sticky;throw TypeError("Incompatible receiver, RegExp required")}}});var Ri,ji,Pi=(Ri=!1,(ji=/[ac]/).exec=function(){return Ri=!0,/./.exec.apply(this,arguments)},!0===ji.test("abc")&&Ri),Ii=/./.test;Lt({target:"RegExp",proto:!0,forced:!Pi},{test:function(t){if("function"!=typeof this.exec)return Ii.call(this,t);var e=this.exec(t);if(null!==e&&!y(e))throw new Error("RegExp exec method returned something other than an Object or null");return!!e}});var ki=qt("species"),Ti=!i((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")})),Li="$0"==="a".replace(/./,"$0"),Ui=qt("replace"),_i=!!/./[Ui]&&""===/./[Ui]("a","$0"),Mi=!i((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var r="ab".split(t);return 2!==r.length||"a"!==r[0]||"b"!==r[1]})),Ni=function(t,e,r,n){var o=qt(t),a=!i((function(){var e={};return e[o]=function(){return 7},7!=""[t](e)})),u=a&&!i((function(){var e=!1,r=/a/;return"split"===t&&((r={}).constructor={},r.constructor[ki]=function(){return r},r.flags="",r[o]=/./[o]),r.exec=function(){return e=!0,null},r[o](""),!e}));if(!a||!u||"replace"===t&&(!Ti||!Li||_i)||"split"===t&&!Mi){var s=/./[o],c=r(o,""[t],(function(t,e,r,n,o){return e.exec===xi?a&&!o?{done:!0,value:s.call(e,r,n)}:{done:!0,value:t.call(r,e,n)}:{done:!1}}),{REPLACE_KEEPS_$0:Li,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:_i}),f=c[1];rt(String.prototype,t,c[0]),rt(RegExp.prototype,o,2==e?function(t,e){return f.call(t,this,e)}:function(t){return f.call(t,this)})}n&&k(RegExp.prototype[o],"sham",!0)},Ci=Re.charAt,Fi=function(t,e,r){return e+(r?Ci(t,e).length:1)},Bi=function(t,e){var r=t.exec;if("function"==typeof r){var n=r.call(t,e);if("object"!=typeof n)throw TypeError("RegExp exec method returned something other than an Object or null");return n}if("RegExp"!==h(t))throw TypeError("RegExp#exec called on incompatible receiver");return xi.call(t,e)};Ni("match",1,(function(t,e,r){return[function(e){var r=v(this),n=null==e?void 0:e[t];return void 0!==n?n.call(e,r):new RegExp(e)[t](String(r))},function(t){var n=r(e,t,this);if(n.done)return n.value;var o=j(t),i=String(this);if(!o.global)return Bi(o,i);var a=o.unicode;o.lastIndex=0;for(var u,s=[],c=0;null!==(u=Bi(o,i));){var f=String(u[0]);s[c]=f,""===f&&(o.lastIndex=Fi(i,ft(o.lastIndex),a)),c++}return 0===c?null:s}]}));var Di=Math.max,qi=Math.min,zi=Math.floor,Wi=/\$([$&'`]|\d\d?|<[^>]*>)/g,Ki=/\$([$&'`]|\d\d?)/g;Ni("replace",2,(function(t,e,r,n){var o=n.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,i=n.REPLACE_KEEPS_$0,a=o?"$":"$0";return[function(r,n){var o=v(this),i=null==r?void 0:r[t];return void 0!==i?i.call(r,o,n):e.call(String(o),r,n)},function(t,n){if(!o&&i||"string"==typeof n&&-1===n.indexOf(a)){var s=r(e,t,this,n);if(s.done)return s.value}var c=j(t),f=String(this),l="function"==typeof n;l||(n=String(n));var h=c.global;if(h){var p=c.unicode;c.lastIndex=0}for(var d=[];;){var v=Bi(c,f);if(null===v)break;if(d.push(v),!h)break;""===String(v[0])&&(c.lastIndex=Fi(f,ft(c.lastIndex),p))}for(var g,y="",m=0,b=0;b<d.length;b++){v=d[b];for(var w=String(v[0]),S=Di(qi(st(v.index),f.length),0),E=[],x=1;x<v.length;x++)E.push(void 0===(g=v[x])?g:String(g));var A=v.groups;if(l){var O=[w].concat(E,S,f);void 0!==A&&O.push(A);var R=String(n.apply(void 0,O))}else R=u(w,f,S,E,A,n);S>=m&&(y+=f.slice(m,S)+R,m=S+w.length)}return y+f.slice(m)}];function u(t,r,n,o,i,a){var u=n+t.length,s=o.length,c=Ki;return void 0!==i&&(i=Ut(i),c=Wi),e.call(a,c,(function(e,a){var c;switch(a.charAt(0)){case"$":return"$";case"&":return t;case"`":return r.slice(0,n);case"'":return r.slice(u);case"<":c=i[a.slice(1,-1)];break;default:var f=+a;if(0===f)return e;if(f>s){var l=zi(f/10);return 0===l?e:l<=s?void 0===o[l-1]?a.charAt(1):o[l-1]+a.charAt(1):e}c=o[f-1]}return void 0===c?"":c}))}})),Ni("search",1,(function(t,e,r){return[function(e){var r=v(this),n=null==e?void 0:e[t];return void 0!==n?n.call(e,r):new RegExp(e)[t](String(r))},function(t){var n=r(e,t,this);if(n.done)return n.value;var o=j(t),i=String(this),a=o.lastIndex;$n(a,0)||(o.lastIndex=0);var u=Bi(o,i);return $n(o.lastIndex,a)||(o.lastIndex=a),null===u?-1:u.index}]}));var Gi=[].push,$i=Math.min,Vi=4294967295,Hi=!i((function(){return!RegExp(Vi,"y")}));Ni("split",2,(function(t,e,r){var n;return n="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,r){var n=String(v(this)),o=void 0===r?Vi:r>>>0;if(0===o)return[];if(void 0===t)return[n];if(!Yo(t))return e.call(n,t,o);for(var i,a,u,s=[],c=0,f=new RegExp(t.source,(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":"")+"g");(i=xi.call(f,n))&&!((a=f.lastIndex)>c&&(s.push(n.slice(c,i.index)),i.length>1&&i.index<n.length&&Gi.apply(s,i.slice(1)),u=i[0].length,c=a,s.length>=o));)f.lastIndex===i.index&&f.lastIndex++;return c===n.length?!u&&f.test("")||s.push(""):s.push(n.slice(c)),s.length>o?s.slice(0,o):s}:"0".split(void 0,0).length?function(t,r){return void 0===t&&0===r?[]:e.call(this,t,r)}:e,[function(e,r){var o=v(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,r):n.call(String(o),e,r)},function(t,o){var i=r(n,t,this,o,n!==e);if(i.done)return i.value;var a=j(t),u=String(this),s=cn(a,RegExp),c=a.unicode,f=new s(Hi?a:"^(?:"+a.source+")",(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.unicode?"u":"")+(Hi?"y":"g")),l=void 0===o?Vi:o>>>0;if(0===l)return[];if(0===u.length)return null===Bi(f,u)?[u]:[];for(var h=0,p=0,d=[];p<u.length;){f.lastIndex=Hi?p:0;var v,g=Bi(f,Hi?u:u.slice(p));if(null===g||(v=$i(ft(f.lastIndex+(Hi?0:p)),u.length))===h)p=Fi(u,p,c);else{if(d.push(u.slice(h,p)),d.length===l)return d;for(var y=1;y<=g.length-1;y++)if(d.push(g[y]),d.length===l)return d;p=h=v}}return d.push(u.slice(h)),d}]}),!Hi),Lt({target:"Set",stat:!0},{from:rn}),Lt({target:"Set",stat:!0},{of:nn});var Xi=function(){for(var t=j(this),e=Zt(t.add),r=0,n=arguments.length;r<n;r++)e.call(t,arguments[r]);return t};Lt({target:"Set",proto:!0,real:!0,forced:q},{addAll:function(){return Xi.apply(this,arguments)}}),Lt({target:"Set",proto:!0,real:!0,forced:q},{deleteAll:function(){return on.apply(this,arguments)}});var Yi=function(t){return Set.prototype.values.call(t)};Lt({target:"Set",proto:!0,real:!0,forced:q},{every:function(t){var e=j(this),r=Yi(e),n=te(t,arguments.length>1?arguments[1]:void 0,3);return!Mr(r,(function(t){if(!n(t,t,e))return Mr.stop()}),void 0,!1,!0).stopped}}),Lt({target:"Set",proto:!0,real:!0,forced:q},{difference:function(t){var e=j(this),r=new(cn(e,it("Set")))(e),n=Zt(r.delete);return Mr(t,(function(t){n.call(r,t)})),r}}),Lt({target:"Set",proto:!0,real:!0,forced:q},{filter:function(t){var e=j(this),r=Yi(e),n=te(t,arguments.length>1?arguments[1]:void 0,3),o=new(cn(e,it("Set"))),i=Zt(o.add);return Mr(r,(function(t){n(t,t,e)&&i.call(o,t)}),void 0,!1,!0),o}}),Lt({target:"Set",proto:!0,real:!0,forced:q},{find:function(t){var e=j(this),r=Yi(e),n=te(t,arguments.length>1?arguments[1]:void 0,3);return Mr(r,(function(t){if(n(t,t,e))return Mr.stop(t)}),void 0,!1,!0).result}}),Lt({target:"Set",proto:!0,real:!0,forced:q},{intersection:function(t){var e=j(this),r=new(cn(e,it("Set"))),n=Zt(e.has),o=Zt(r.add);return Mr(t,(function(t){n.call(e,t)&&o.call(r,t)})),r}}),Lt({target:"Set",proto:!0,real:!0,forced:q},{isDisjointFrom:function(t){var e=j(this),r=Zt(e.has);return!Mr(t,(function(t){if(!0===r.call(e,t))return Mr.stop()})).stopped}}),Lt({target:"Set",proto:!0,real:!0,forced:q},{isSubsetOf:function(t){var e=an(this),r=j(t),n=r.has;return"function"!=typeof n&&(r=new(it("Set"))(t),n=Zt(r.has)),!Mr(e,(function(t){if(!1===n.call(r,t))return Mr.stop()}),void 0,!1,!0).stopped}}),Lt({target:"Set",proto:!0,real:!0,forced:q},{isSupersetOf:function(t){var e=j(this),r=Zt(e.has);return!Mr(t,(function(t){if(!1===r.call(e,t))return Mr.stop()})).stopped}}),Lt({target:"Set",proto:!0,real:!0,forced:q},{join:function(t){var e=j(this),r=Yi(e),n=void 0===t?",":String(t),o=[];return Mr(r,o.push,o,!1,!0),o.join(n)}}),Lt({target:"Set",proto:!0,real:!0,forced:q},{map:function(t){var e=j(this),r=Yi(e),n=te(t,arguments.length>1?arguments[1]:void 0,3),o=new(cn(e,it("Set"))),i=Zt(o.add);return Mr(r,(function(t){i.call(o,n(t,t,e))}),void 0,!1,!0),o}}),Lt({target:"Set",proto:!0,real:!0,forced:q},{reduce:function(t){var e=j(this),r=Yi(e),n=arguments.length<2,o=n?void 0:arguments[1];if(Zt(t),Mr(r,(function(r){n?(n=!1,o=r):o=t(o,r,r,e)}),void 0,!1,!0),n)throw TypeError("Reduce of empty set with no initial value");return o}}),Lt({target:"Set",proto:!0,real:!0,forced:q},{some:function(t){var e=j(this),r=Yi(e),n=te(t,arguments.length>1?arguments[1]:void 0,3);return Mr(r,(function(t){if(n(t,t,e))return Mr.stop()}),void 0,!1,!0).stopped}}),Lt({target:"Set",proto:!0,real:!0,forced:q},{symmetricDifference:function(t){var e=j(this),r=new(cn(e,it("Set")))(e),n=Zt(r.delete),o=Zt(r.add);return Mr(t,(function(t){n.call(r,t)||o.call(r,t)})),r}}),Lt({target:"Set",proto:!0,real:!0,forced:q},{union:function(t){var e=j(this),r=new(cn(e,it("Set")))(e);return Mr(t,Zt(r.add),r),r}});var Ji,Qi,Zi=it("navigator","userAgent")||"",ta=o.process,ea=ta&&ta.versions,ra=ea&&ea.v8;ra?Qi=(Ji=ra.split("."))[0]+Ji[1]:Zi&&(!(Ji=Zi.match(/Edge\/(\d+)/))||Ji[1]>=74)&&(Ji=Zi.match(/Chrome\/(\d+)/))&&(Qi=Ji[1]);var na=Qi&&+Qi,oa=qt("species"),ia=qt("isConcatSpreadable"),aa=9007199254740991,ua="Maximum allowed index exceeded",sa=na>=51||!i((function(){var t=[];return t[ia]=!1,t.concat()[0]!==t})),ca=na>=51||!i((function(){var t=[];return(t.constructor={})[oa]=function(){return{foo:1}},1!==t.concat(Boolean).foo})),fa=function(t){if(!y(t))return!1;var e=t[ia];return void 0!==e?!!e:ne(t)};Lt({target:"Array",proto:!0,forced:!sa||!ca},{concat:function(t){var e,r,n,o,i,a=Ut(this),u=ie(a,0),s=0;for(e=-1,n=arguments.length;e<n;e++)if(fa(i=-1===e?a:arguments[e])){if(s+(o=ft(i.length))>aa)throw TypeError(ua);for(r=0;r<o;r++,s++)r in i&&ir(u,s,i[r])}else{if(s>=aa)throw TypeError(ua);ir(u,s++,i)}return u.length=s,u}});var la=wt.f,ha={}.toString,pa="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],da={f:function(t){return pa&&"[object Window]"==ha.call(t)?function(t){try{return la(t)}catch(t){return pa.slice()}}(t):la(g(t))}},va={f:qt},ga=I.f,ya=function(t){var e=nt.Symbol||(nt.Symbol={});w(e,t)||ga(e,t,{value:va.f(t)})},ma=se.forEach,ba=V("hidden"),wa="Symbol",Sa=qt("toPrimitive"),Ea=et.set,xa=et.getterFor(wa),Aa=Object.prototype,Oa=o.Symbol,Ra=it("JSON","stringify"),ja=R.f,Pa=I.f,Ia=da.f,ka=c.f,Ta=z("symbols"),La=z("op-symbols"),Ua=z("string-to-symbol-registry"),_a=z("symbol-to-string-registry"),Ma=z("wks"),Na=o.QObject,Ca=!Na||!Na.prototype||!Na.prototype.findChild,Fa=a&&i((function(){return 7!=Xt(Pa({},"a",{get:function(){return Pa(this,"a",{value:7}).a}})).a}))?function(t,e,r){var n=ja(Aa,e);n&&delete Aa[e],Pa(t,e,r),n&&t!==Aa&&Pa(Aa,e,n)}:Pa,Ba=function(t,e){var r=Ta[t]=Xt(Oa.prototype);return Ea(r,{type:wa,tag:t,description:e}),a||(r.description=e),r},Da=Ct?function(t){return"symbol"==typeof t}:function(t){return Object(t)instanceof Oa},qa=function(t,e,r){t===Aa&&qa(La,e,r),j(t);var n=m(e,!0);return j(r),w(Ta,n)?(r.enumerable?(w(t,ba)&&t[ba][n]&&(t[ba][n]=!1),r=Xt(r,{enumerable:f(0,!1)})):(w(t,ba)||Pa(t,ba,f(1,{})),t[ba][n]=!0),Fa(t,n,r)):Pa(t,n,r)},za=function(t,e){j(t);var r=g(e),n=zt(r).concat($a(r));return ma(n,(function(e){a&&!Wa.call(r,e)||qa(t,e,r[e])})),t},Wa=function(t){var e=m(t,!0),r=ka.call(this,e);return!(this===Aa&&w(Ta,e)&&!w(La,e))&&(!(r||!w(this,e)||!w(Ta,e)||w(this,ba)&&this[ba][e])||r)},Ka=function(t,e){var r=g(t),n=m(e,!0);if(r!==Aa||!w(Ta,n)||w(La,n)){var o=ja(r,n);return!o||!w(Ta,n)||w(r,ba)&&r[ba][n]||(o.enumerable=!0),o}},Ga=function(t){var e=Ia(g(t)),r=[];return ma(e,(function(t){w(Ta,t)||w(H,t)||r.push(t)})),r},$a=function(t){var e=t===Aa,r=Ia(e?La:g(t)),n=[];return ma(r,(function(t){!w(Ta,t)||e&&!w(Aa,t)||n.push(Ta[t])})),n};if(Nt||(rt((Oa=function(){if(this instanceof Oa)throw TypeError("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=G(t),r=function t(r){this===Aa&&t.call(La,r),w(this,ba)&&w(this[ba],e)&&(this[ba][e]=!1),Fa(this,e,f(1,r))};return a&&Ca&&Fa(Aa,e,{configurable:!0,set:r}),Ba(e,t)}).prototype,"toString",(function(){return xa(this).tag})),rt(Oa,"withoutSetter",(function(t){return Ba(G(t),t)})),c.f=Wa,I.f=qa,R.f=Ka,wt.f=da.f=Ga,St.f=$a,va.f=function(t){return Ba(qt(t),t)},a&&(Pa(Oa.prototype,"description",{configurable:!0,get:function(){return xa(this).description}}),rt(Aa,"propertyIsEnumerable",Wa,{unsafe:!0}))),Lt({global:!0,wrap:!0,forced:!Nt,sham:!Nt},{Symbol:Oa}),ma(zt(Ma),(function(t){ya(t)})),Lt({target:wa,stat:!0,forced:!Nt},{for:function(t){var e=String(t);if(w(Ua,e))return Ua[e];var r=Oa(e);return Ua[e]=r,_a[r]=e,r},keyFor:function(t){if(!Da(t))throw TypeError(t+" is not a symbol");if(w(_a,t))return _a[t]},useSetter:function(){Ca=!0},useSimple:function(){Ca=!1}}),Lt({target:"Object",stat:!0,forced:!Nt,sham:!a},{create:function(t,e){return void 0===e?Xt(t):za(Xt(t),e)},defineProperty:qa,defineProperties:za,getOwnPropertyDescriptor:Ka}),Lt({target:"Object",stat:!0,forced:!Nt},{getOwnPropertyNames:Ga,getOwnPropertySymbols:$a}),Lt({target:"Object",stat:!0,forced:i((function(){St.f(1)}))},{getOwnPropertySymbols:function(t){return St.f(Ut(t))}}),Ra){var Va=!Nt||i((function(){var t=Oa();return"[null]"!=Ra([t])||"{}"!=Ra({a:t})||"{}"!=Ra(Object(t))}));Lt({target:"JSON",stat:!0,forced:Va},{stringify:function(t,e,r){for(var n,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(n=e,(y(e)||void 0!==t)&&!Da(t))return ne(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!Da(e))return e}),o[1]=e,Ra.apply(null,o)}})}Oa.prototype[Sa]||k(Oa.prototype,Sa,Oa.prototype.valueOf),Ne(Oa,wa),H[ba]=!0,ya("asyncIterator");var Ha=I.f,Xa=o.Symbol;if(a&&"function"==typeof Xa&&(!("description"in Xa.prototype)||void 0!==Xa().description)){var Ya={},Ja=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),e=this instanceof Ja?new Xa(t):void 0===t?Xa():Xa(t);return""===t&&(Ya[e]=!0),e};xt(Ja,Xa);var Qa=Ja.prototype=Xa.prototype;Qa.constructor=Ja;var Za=Qa.toString,tu="Symbol(test)"==String(Xa("test")),eu=/^Symbol\((.*)\)[^)]+$/;Ha(Qa,"description",{configurable:!0,get:function(){var t=y(this)?this.valueOf():this,e=Za.call(t);if(w(Ya,t))return"";var r=tu?e.slice(7,-1):e.replace(eu,"$1");return""===r?void 0:r}}),Lt({global:!0,forced:!0},{Symbol:Ja})}ya("hasInstance"),ya("isConcatSpreadable"),ya("iterator"),ya("match"),ya("matchAll"),ya("replace"),ya("search"),ya("species"),ya("split"),ya("toPrimitive"),ya("toStringTag"),ya("unscopables"),Ne(Math,"Math",!0),Ne(o.JSON,"JSON",!0),ya("asyncDispose"),ya("dispose"),ya("observable"),ya("patternMatch"),ya("replaceAll"),va.f("asyncIterator");var ru=Re.codeAt;Lt({target:"String",proto:!0},{codePointAt:function(t){return ru(this,t)}}),re("String","codePointAt");var nu,ou=function(t){if(Yo(t))throw TypeError("The method doesn't accept regular expressions");return t},iu=qt("match"),au=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[iu]=!1,"/./"[t](e)}catch(t){}}return!1},uu=R.f,su="".endsWith,cu=Math.min,fu=au("endsWith"),lu=!(fu||(nu=uu(String.prototype,"endsWith"),!nu||nu.writable));Lt({target:"String",proto:!0,forced:!lu&&!fu},{endsWith:function(t){var e=String(v(this));ou(t);var r=arguments.length>1?arguments[1]:void 0,n=ft(e.length),o=void 0===r?n:cu(ft(r),n),i=String(t);return su?su.call(e,i,o):e.slice(o-i.length,o)===i}}),re("String","endsWith");var hu=String.fromCharCode,pu=String.fromCodePoint;Lt({target:"String",stat:!0,forced:!!pu&&1!=pu.length},{fromCodePoint:function(t){for(var e,r=[],n=arguments.length,o=0;n>o;){if(e=+arguments[o++],pt(e,1114111)!==e)throw RangeError(e+" is not a valid code point");r.push(e<65536?hu(e):hu(55296+((e-=65536)>>10),e%1024+56320))}return r.join("")}}),Lt({target:"String",proto:!0,forced:!au("includes")},{includes:function(t){return!!~String(v(this)).indexOf(ou(t),arguments.length>1?arguments[1]:void 0)}}),re("String","includes");var du="".repeat||function(t){var e=String(v(this)),r="",n=st(t);if(n<0||1/0==n)throw RangeError("Wrong number of repetitions");for(;n>0;(n>>>=1)&&(e+=e))1&n&&(r+=e);return r},vu=Math.ceil,gu=function(t){return function(e,r,n){var o,i,a=String(v(e)),u=a.length,s=void 0===n?" ":String(n),c=ft(r);return c<=u||""==s?a:((i=du.call(s,vu((o=c-u)/s.length))).length>o&&(i=i.slice(0,o)),t?a+i:i+a)}},yu={start:gu(!1),end:gu(!0)},mu=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(Zi),bu=yu.start;Lt({target:"String",proto:!0,forced:mu},{padStart:function(t){return bu(this,t,arguments.length>1?arguments[1]:void 0)}}),re("String","padStart");var wu=yu.end;Lt({target:"String",proto:!0,forced:mu},{padEnd:function(t){return wu(this,t,arguments.length>1?arguments[1]:void 0)}}),re("String","padEnd"),Lt({target:"String",stat:!0},{raw:function(t){for(var e=g(t.raw),r=ft(e.length),n=arguments.length,o=[],i=0;r>i;)o.push(String(e[i++])),i<n&&o.push(String(arguments[i]));return o.join("")}}),Lt({target:"String",proto:!0},{repeat:du}),re("String","repeat");var Su=R.f,Eu="".startsWith,xu=Math.min,Au=au("startsWith"),Ou=!Au&&!!function(){var t=Su(String.prototype,"startsWith");return t&&!t.writable}();Lt({target:"String",proto:!0,forced:!Ou&&!Au},{startsWith:function(t){var e=String(v(this));ou(t);var r=ft(xu(arguments.length>1?arguments[1]:void 0,e.length)),n=String(t);return Eu?Eu.call(e,n,r):e.slice(r,r+n.length)===n}}),re("String","startsWith");var Ru=function(t){return i((function(){return!!ln[t]()||"\u200b\x85\u180e"!="\u200b\x85\u180e"[t]()||ln[t].name!==t}))},ju=gn.start,Pu=Ru("trimStart"),Iu=Pu?function(){return ju(this)}:"".trimStart;Lt({target:"String",proto:!0,forced:Pu},{trimStart:Iu,trimLeft:Iu}),re("String","trimLeft");var ku=gn.end,Tu=Ru("trimEnd"),Lu=Tu?function(){return ku(this)}:"".trimEnd;Lt({target:"String",proto:!0,forced:Tu},{trimEnd:Lu,trimRight:Lu}),re("String","trimRight");var Uu=qt("iterator"),_u=!i((function(){var t=new URL("b?a=1&b=2&c=3","http://a"),e=t.searchParams,r="";return t.pathname="c%20d",e.forEach((function(t,n){e.delete("b"),r+=n+t})),!e.sort||"http://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!e[Uu]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://\u0442\u0435\u0441\u0442").host||"#%D0%B1"!==new URL("http://a#\u0431").hash||"a1c3"!==r||"x"!==new URL("http://x",void 0).host})),Mu=Object.assign,Nu=Object.defineProperty,Cu=!Mu||i((function(){if(a&&1!==Mu({b:1},Mu(Nu({},"a",{enumerable:!0,get:function(){Nu(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},r=Symbol(),n="abcdefghijklmnopqrst";return t[r]=7,n.split("").forEach((function(t){e[t]=t})),7!=Mu({},t)[r]||zt(Mu({},e)).join("")!=n}))?function(t,e){for(var r=Ut(t),n=arguments.length,o=1,i=St.f,u=c.f;n>o;)for(var s,f=d(arguments[o++]),l=i?zt(f).concat(i(f)):zt(f),h=l.length,p=0;h>p;)s=l[p++],a&&!u.call(f,s)||(r[s]=f[s]);return r}:Mu,Fu=2147483647,Bu=/[^\0-\u007E]/,Du=/[.\u3002\uFF0E\uFF61]/g,qu="Overflow: input needs wider integers to process",zu=Math.floor,Wu=String.fromCharCode,Ku=function(t){return t+22+75*(t<26)},Gu=function(t,e,r){var n=0;for(t=r?zu(t/700):t>>1,t+=zu(t/e);t>455;n+=36)t=zu(t/35);return zu(n+36*t/(t+38))},$u=function(t){var e,r,n=[],o=(t=function(t){for(var e=[],r=0,n=t.length;r<n;){var o=t.charCodeAt(r++);if(o>=55296&&o<=56319&&r<n){var i=t.charCodeAt(r++);56320==(64512&i)?e.push(((1023&o)<<10)+(1023&i)+65536):(e.push(o),r--)}else e.push(o)}return e}(t)).length,i=128,a=0,u=72;for(e=0;e<t.length;e++)(r=t[e])<128&&n.push(Wu(r));var s=n.length,c=s;for(s&&n.push("-");c<o;){var f=Fu;for(e=0;e<t.length;e++)(r=t[e])>=i&&r<f&&(f=r);var l=c+1;if(f-i>zu((Fu-a)/l))throw RangeError(qu);for(a+=(f-i)*l,i=f,e=0;e<t.length;e++){if((r=t[e])<i&&++a>Fu)throw RangeError(qu);if(r==i){for(var h=a,p=36;;p+=36){var d=p<=u?1:p>=u+26?26:p-u;if(h<d)break;var v=h-d,g=36-d;n.push(Wu(Ku(d+v%g))),h=zu(v/g)}n.push(Wu(Ku(h))),u=Gu(a,l,c==s),a=0,++c}}++a,++i}return n.join("")},Vu=it("fetch"),Hu=it("Headers"),Xu=qt("iterator"),Yu="URLSearchParams",Ju="URLSearchParamsIterator",Qu=et.set,Zu=et.getterFor(Yu),ts=et.getterFor(Ju),es=/\+/g,rs=Array(4),ns=function(t){return rs[t-1]||(rs[t-1]=RegExp("((?:%[\\da-f]{2}){"+t+"})","gi"))},os=function(t){try{return decodeURIComponent(t)}catch(e){return t}},is=function(t){var e=t.replace(es," "),r=4;try{return decodeURIComponent(e)}catch(t){for(;r;)e=e.replace(ns(r--),os);return e}},as=/[!'()~]|%20/g,us={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},ss=function(t){return us[t]},cs=function(t){return encodeURIComponent(t).replace(as,ss)},fs=function(t,e){if(e)for(var r,n,o=e.split("&"),i=0;i<o.length;)(r=o[i++]).length&&(n=r.split("="),t.push({key:is(n.shift()),value:is(n.join("="))}))},ls=function(t){this.entries.length=0,fs(this.entries,t)},hs=function(t,e){if(t<e)throw TypeError("Not enough arguments")},ps=De((function(t,e){Qu(this,{type:Ju,iterator:an(Zu(t).entries),kind:e})}),"Iterator",(function(){var t=ts(this),e=t.kind,r=t.iterator.next(),n=r.value;return r.done||(r.value="keys"===e?n.key:"values"===e?n.value:[n.key,n.value]),r})),ds=function(){Nr(this,ds,Yu);var t,e,r,n,o,i,a,u,s,c=arguments.length>0?arguments[0]:void 0,f=this,l=[];if(Qu(f,{type:Yu,entries:l,updateURL:function(){},updateSearchParams:ls}),void 0!==c)if(y(c))if("function"==typeof(t=hr(c)))for(r=(e=t.call(c)).next;!(n=r.call(e)).done;){if((a=(i=(o=an(j(n.value))).next).call(o)).done||(u=i.call(o)).done||!i.call(o).done)throw TypeError("Expected sequence with length 2");l.push({key:a.value+"",value:u.value+""})}else for(s in c)w(c,s)&&l.push({key:s,value:c[s]+""});else fs(l,"string"==typeof c?"?"===c.charAt(0)?c.slice(1):c:c+"")},vs=ds.prototype;Br(vs,{append:function(t,e){hs(arguments.length,2);var r=Zu(this);r.entries.push({key:t+"",value:e+""}),r.updateURL()},delete:function(t){hs(arguments.length,1);for(var e=Zu(this),r=e.entries,n=t+"",o=0;o<r.length;)r[o].key===n?r.splice(o,1):o++;e.updateURL()},get:function(t){hs(arguments.length,1);for(var e=Zu(this).entries,r=t+"",n=0;n<e.length;n++)if(e[n].key===r)return e[n].value;return null},getAll:function(t){hs(arguments.length,1);for(var e=Zu(this).entries,r=t+"",n=[],o=0;o<e.length;o++)e[o].key===r&&n.push(e[o].value);return n},has:function(t){hs(arguments.length,1);for(var e=Zu(this).entries,r=t+"",n=0;n<e.length;)if(e[n++].key===r)return!0;return!1},set:function(t,e){hs(arguments.length,1);for(var r,n=Zu(this),o=n.entries,i=!1,a=t+"",u=e+"",s=0;s<o.length;s++)(r=o[s]).key===a&&(i?o.splice(s--,1):(i=!0,r.value=u));i||o.push({key:a,value:u}),n.updateURL()},sort:function(){var t,e,r,n=Zu(this),o=n.entries,i=o.slice();for(o.length=0,r=0;r<i.length;r++){for(t=i[r],e=0;e<r;e++)if(o[e].key>t.key){o.splice(e,0,t);break}e===r&&o.push(t)}n.updateURL()},forEach:function(t){for(var e,r=Zu(this).entries,n=te(t,arguments.length>1?arguments[1]:void 0,3),o=0;o<r.length;)n((e=r[o++]).value,e.key,this)},keys:function(){return new ps(this,"keys")},values:function(){return new ps(this,"values")},entries:function(){return new ps(this,"entries")}},{enumerable:!0}),rt(vs,Xu,vs.entries),rt(vs,"toString",(function(){for(var t,e=Zu(this).entries,r=[],n=0;n<e.length;)t=e[n++],r.push(cs(t.key)+"="+cs(t.value));return r.join("&")}),{enumerable:!0}),Ne(ds,Yu),Lt({global:!0,forced:!_u},{URLSearchParams:ds}),_u||"function"!=typeof Vu||"function"!=typeof Hu||Lt({global:!0,enumerable:!0,forced:!0},{fetch:function(t){var e,r,n,o=[t];return arguments.length>1&&(y(e=arguments[1])&&fr(r=e.body)===Yu&&((n=e.headers?new Hu(e.headers):new Hu).has("content-type")||n.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"),e=Xt(e,{body:f(0,String(r)),headers:f(0,n)})),o.push(e)),Vu.apply(this,o)}});var gs,ys={URLSearchParams:ds,getState:Zu},ms=Re.codeAt,bs=o.URL,ws=ys.URLSearchParams,Ss=ys.getState,Es=et.set,xs=et.getterFor("URL"),As=Math.floor,Os=Math.pow,Rs="Invalid scheme",js="Invalid host",Ps="Invalid port",Is=/[A-Za-z]/,ks=/[\d+-.A-Za-z]/,Ts=/\d/,Ls=/^(0x|0X)/,Us=/^[0-7]+$/,_s=/^\d+$/,Ms=/^[\dA-Fa-f]+$/,Ns=/[\u0000\u0009\u000A\u000D #%/:?@[\\]]/,Cs=/[\u0000\u0009\u000A\u000D #/:?@[\\]]/,Fs=/^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g,Bs=/[\u0009\u000A\u000D]/g,Ds=function(t,e){var r,n,o;if("["==e.charAt(0)){if("]"!=e.charAt(e.length-1))return js;if(!(r=zs(e.slice(1,-1))))return js;t.host=r}else if(Ys(t)){if(e=function(t){var e,r,n=[],o=t.toLowerCase().replace(Du,".").split(".");for(e=0;e<o.length;e++)n.push(Bu.test(r=o[e])?"xn--"+$u(r):r);return n.join(".")}(e),Ns.test(e))return js;if(null===(r=qs(e)))return js;t.host=r}else{if(Cs.test(e))return js;for(r="",n=pr(e),o=0;o<n.length;o++)r+=Hs(n[o],Ks);t.host=r}},qs=function(t){var e,r,n,o,i,a,u,s=t.split(".");if(s.length&&""==s[s.length-1]&&s.pop(),(e=s.length)>4)return t;for(r=[],n=0;n<e;n++){if(""==(o=s[n]))return t;if(i=10,o.length>1&&"0"==o.charAt(0)&&(i=Ls.test(o)?16:8,o=o.slice(8==i?1:2)),""===o)a=0;else{if(!(10==i?_s:8==i?Us:Ms).test(o))return t;a=parseInt(o,i)}r.push(a)}for(n=0;n<e;n++)if(a=r[n],n==e-1){if(a>=Os(256,5-e))return null}else if(a>255)return null;for(u=r.pop(),n=0;n<r.length;n++)u+=r[n]*Os(256,3-n);return u},zs=function(t){var e,r,n,o,i,a,u,s=[0,0,0,0,0,0,0,0],c=0,f=null,l=0,h=function(){return t.charAt(l)};if(":"==h()){if(":"!=t.charAt(1))return;l+=2,f=++c}for(;h();){if(8==c)return;if(":"!=h()){for(e=r=0;r<4&&Ms.test(h());)e=16*e+parseInt(h(),16),l++,r++;if("."==h()){if(0==r)return;if(l-=r,c>6)return;for(n=0;h();){if(o=null,n>0){if(!("."==h()&&n<4))return;l++}if(!Ts.test(h()))return;for(;Ts.test(h());){if(i=parseInt(h(),10),null===o)o=i;else{if(0==o)return;o=10*o+i}if(o>255)return;l++}s[c]=256*s[c]+o,2!=++n&&4!=n||c++}if(4!=n)return;break}if(":"==h()){if(l++,!h())return}else if(h())return;s[c++]=e}else{if(null!==f)return;l++,f=++c}}if(null!==f)for(a=c-f,c=7;0!=c&&a>0;)u=s[c],s[c--]=s[f+a-1],s[f+--a]=u;else if(8!=c)return;return s},Ws=function(t){var e,r,n,o;if("number"==typeof t){for(e=[],r=0;r<4;r++)e.unshift(t%256),t=As(t/256);return e.join(".")}if("object"==typeof t){for(e="",n=function(t){for(var e=null,r=1,n=null,o=0,i=0;i<8;i++)0!==t[i]?(o>r&&(e=n,r=o),n=null,o=0):(null===n&&(n=i),++o);return o>r&&(e=n,r=o),e}(t),r=0;r<8;r++)o&&0===t[r]||(o&&(o=!1),n===r?(e+=r?":":"::",o=!0):(e+=t[r].toString(16),r<7&&(e+=":")));return"["+e+"]"}return t},Ks={},Gs=Cu({},Ks,{" ":1,'"':1,"<":1,">":1,"`":1}),$s=Cu({},Gs,{"#":1,"?":1,"{":1,"}":1}),Vs=Cu({},$s,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Hs=function(t,e){var r=ms(t,0);return r>32&&r<127&&!w(e,t)?t:encodeURIComponent(t)},Xs={ftp:21,file:null,http:80,https:443,ws:80,wss:443},Ys=function(t){return w(Xs,t.scheme)},Js=function(t){return""!=t.username||""!=t.password},Qs=function(t){return!t.host||t.cannotBeABaseURL||"file"==t.scheme},Zs=function(t,e){var r;return 2==t.length&&Is.test(t.charAt(0))&&(":"==(r=t.charAt(1))||!e&&"|"==r)},tc=function(t){var e;return t.length>1&&Zs(t.slice(0,2))&&(2==t.length||"/"===(e=t.charAt(2))||"\\"===e||"?"===e||"#"===e)},ec=function(t){var e=t.path,r=e.length;!r||"file"==t.scheme&&1==r&&Zs(e[0],!0)||e.pop()},rc=function(t){return"."===t||"%2e"===t.toLowerCase()},nc={},oc={},ic={},ac={},uc={},sc={},cc={},fc={},lc={},hc={},pc={},dc={},vc={},gc={},yc={},mc={},bc={},wc={},Sc={},Ec={},xc={},Ac=function(t,e,r,n){var o,i,a,u,s,c=r||nc,f=0,l="",h=!1,p=!1,d=!1;for(r||(t.scheme="",t.username="",t.password="",t.host=null,t.port=null,t.path=[],t.query=null,t.fragment=null,t.cannotBeABaseURL=!1,e=e.replace(Fs,"")),e=e.replace(Bs,""),o=pr(e);f<=o.length;){switch(i=o[f],c){case nc:if(!i||!Is.test(i)){if(r)return Rs;c=ic;continue}l+=i.toLowerCase(),c=oc;break;case oc:if(i&&(ks.test(i)||"+"==i||"-"==i||"."==i))l+=i.toLowerCase();else{if(":"!=i){if(r)return Rs;l="",c=ic,f=0;continue}if(r&&(Ys(t)!=w(Xs,l)||"file"==l&&(Js(t)||null!==t.port)||"file"==t.scheme&&!t.host))return;if(t.scheme=l,r)return void(Ys(t)&&Xs[t.scheme]==t.port&&(t.port=null));l="","file"==t.scheme?c=gc:Ys(t)&&n&&n.scheme==t.scheme?c=ac:Ys(t)?c=fc:"/"==o[f+1]?(c=uc,f++):(t.cannotBeABaseURL=!0,t.path.push(""),c=Sc)}break;case ic:if(!n||n.cannotBeABaseURL&&"#"!=i)return Rs;if(n.cannotBeABaseURL&&"#"==i){t.scheme=n.scheme,t.path=n.path.slice(),t.query=n.query,t.fragment="",t.cannotBeABaseURL=!0,c=xc;break}c="file"==n.scheme?gc:sc;continue;case ac:if("/"!=i||"/"!=o[f+1]){c=sc;continue}c=lc,f++;break;case uc:if("/"==i){c=hc;break}c=wc;continue;case sc:if(t.scheme=n.scheme,i==gs)t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.query=n.query;else if("/"==i||"\\"==i&&Ys(t))c=cc;else if("?"==i)t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.query="",c=Ec;else{if("#"!=i){t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.path.pop(),c=wc;continue}t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.query=n.query,t.fragment="",c=xc}break;case cc:if(!Ys(t)||"/"!=i&&"\\"!=i){if("/"!=i){t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,c=wc;continue}c=hc}else c=lc;break;case fc:if(c=lc,"/"!=i||"/"!=l.charAt(f+1))continue;f++;break;case lc:if("/"!=i&&"\\"!=i){c=hc;continue}break;case hc:if("@"==i){h&&(l="%40"+l),h=!0,a=pr(l);for(var v=0;v<a.length;v++){var g=a[v];if(":"!=g||d){var y=Hs(g,Vs);d?t.password+=y:t.username+=y}else d=!0}l=""}else if(i==gs||"/"==i||"?"==i||"#"==i||"\\"==i&&Ys(t)){if(h&&""==l)return"Invalid authority";f-=pr(l).length+1,l="",c=pc}else l+=i;break;case pc:case dc:if(r&&"file"==t.scheme){c=mc;continue}if(":"!=i||p){if(i==gs||"/"==i||"?"==i||"#"==i||"\\"==i&&Ys(t)){if(Ys(t)&&""==l)return js;if(r&&""==l&&(Js(t)||null!==t.port))return;if(u=Ds(t,l))return u;if(l="",c=bc,r)return;continue}"["==i?p=!0:"]"==i&&(p=!1),l+=i}else{if(""==l)return js;if(u=Ds(t,l))return u;if(l="",c=vc,r==dc)return}break;case vc:if(!Ts.test(i)){if(i==gs||"/"==i||"?"==i||"#"==i||"\\"==i&&Ys(t)||r){if(""!=l){var m=parseInt(l,10);if(m>65535)return Ps;t.port=Ys(t)&&m===Xs[t.scheme]?null:m,l=""}if(r)return;c=bc;continue}return Ps}l+=i;break;case gc:if(t.scheme="file","/"==i||"\\"==i)c=yc;else{if(!n||"file"!=n.scheme){c=wc;continue}if(i==gs)t.host=n.host,t.path=n.path.slice(),t.query=n.query;else if("?"==i)t.host=n.host,t.path=n.path.slice(),t.query="",c=Ec;else{if("#"!=i){tc(o.slice(f).join(""))||(t.host=n.host,t.path=n.path.slice(),ec(t)),c=wc;continue}t.host=n.host,t.path=n.path.slice(),t.query=n.query,t.fragment="",c=xc}}break;case yc:if("/"==i||"\\"==i){c=mc;break}n&&"file"==n.scheme&&!tc(o.slice(f).join(""))&&(Zs(n.path[0],!0)?t.path.push(n.path[0]):t.host=n.host),c=wc;continue;case mc:if(i==gs||"/"==i||"\\"==i||"?"==i||"#"==i){if(!r&&Zs(l))c=wc;else if(""==l){if(t.host="",r)return;c=bc}else{if(u=Ds(t,l))return u;if("localhost"==t.host&&(t.host=""),r)return;l="",c=bc}continue}l+=i;break;case bc:if(Ys(t)){if(c=wc,"/"!=i&&"\\"!=i)continue}else if(r||"?"!=i)if(r||"#"!=i){if(i!=gs&&(c=wc,"/"!=i))continue}else t.fragment="",c=xc;else t.query="",c=Ec;break;case wc:if(i==gs||"/"==i||"\\"==i&&Ys(t)||!r&&("?"==i||"#"==i)){if(".."===(s=(s=l).toLowerCase())||"%2e."===s||".%2e"===s||"%2e%2e"===s?(ec(t),"/"==i||"\\"==i&&Ys(t)||t.path.push("")):rc(l)?"/"==i||"\\"==i&&Ys(t)||t.path.push(""):("file"==t.scheme&&!t.path.length&&Zs(l)&&(t.host&&(t.host=""),l=l.charAt(0)+":"),t.path.push(l)),l="","file"==t.scheme&&(i==gs||"?"==i||"#"==i))for(;t.path.length>1&&""===t.path[0];)t.path.shift();"?"==i?(t.query="",c=Ec):"#"==i&&(t.fragment="",c=xc)}else l+=Hs(i,$s);break;case Sc:"?"==i?(t.query="",c=Ec):"#"==i?(t.fragment="",c=xc):i!=gs&&(t.path[0]+=Hs(i,Ks));break;case Ec:r||"#"!=i?i!=gs&&("'"==i&&Ys(t)?t.query+="%27":t.query+="#"==i?"%23":Hs(i,Ks)):(t.fragment="",c=xc);break;case xc:i!=gs&&(t.fragment+=Hs(i,Gs))}f++}},Oc=function(t){var e,r,n=Nr(this,Oc,"URL"),o=arguments.length>1?arguments[1]:void 0,i=String(t),u=Es(n,{type:"URL"});if(void 0!==o)if(o instanceof Oc)e=xs(o);else if(r=Ac(e={},String(o)))throw TypeError(r);if(r=Ac(u,i,null,e))throw TypeError(r);var s=u.searchParams=new ws,c=Ss(s);c.updateSearchParams(u.query),c.updateURL=function(){u.query=String(s)||null},a||(n.href=jc.call(n),n.origin=Pc.call(n),n.protocol=Ic.call(n),n.username=kc.call(n),n.password=Tc.call(n),n.host=Lc.call(n),n.hostname=Uc.call(n),n.port=_c.call(n),n.pathname=Mc.call(n),n.search=Nc.call(n),n.searchParams=Cc.call(n),n.hash=Fc.call(n))},Rc=Oc.prototype,jc=function(){var t=xs(this),e=t.scheme,r=t.username,n=t.password,o=t.host,i=t.port,a=t.path,u=t.query,s=t.fragment,c=e+":";return null!==o?(c+="//",Js(t)&&(c+=r+(n?":"+n:"")+"@"),c+=Ws(o),null!==i&&(c+=":"+i)):"file"==e&&(c+="//"),c+=t.cannotBeABaseURL?a[0]:a.length?"/"+a.join("/"):"",null!==u&&(c+="?"+u),null!==s&&(c+="#"+s),c},Pc=function(){var t=xs(this),e=t.scheme,r=t.port;if("blob"==e)try{return new URL(e.path[0]).origin}catch(t){return"null"}return"file"!=e&&Ys(t)?e+"://"+Ws(t.host)+(null!==r?":"+r:""):"null"},Ic=function(){return xs(this).scheme+":"},kc=function(){return xs(this).username},Tc=function(){return xs(this).password},Lc=function(){var t=xs(this),e=t.host,r=t.port;return null===e?"":null===r?Ws(e):Ws(e)+":"+r},Uc=function(){var t=xs(this).host;return null===t?"":Ws(t)},_c=function(){var t=xs(this).port;return null===t?"":String(t)},Mc=function(){var t=xs(this),e=t.path;return t.cannotBeABaseURL?e[0]:e.length?"/"+e.join("/"):""},Nc=function(){var t=xs(this).query;return t?"?"+t:""},Cc=function(){return xs(this).searchParams},Fc=function(){var t=xs(this).fragment;return t?"#"+t:""},Bc=function(t,e){return{get:t,set:e,configurable:!0,enumerable:!0}};if(a&&Wt(Rc,{href:Bc(jc,(function(t){var e=xs(this),r=String(t),n=Ac(e,r);if(n)throw TypeError(n);Ss(e.searchParams).updateSearchParams(e.query)})),origin:Bc(Pc),protocol:Bc(Ic,(function(t){var e=xs(this);Ac(e,String(t)+":",nc)})),username:Bc(kc,(function(t){var e=xs(this),r=pr(String(t));if(!Qs(e)){e.username="";for(var n=0;n<r.length;n++)e.username+=Hs(r[n],Vs)}})),password:Bc(Tc,(function(t){var e=xs(this),r=pr(String(t));if(!Qs(e)){e.password="";for(var n=0;n<r.length;n++)e.password+=Hs(r[n],Vs)}})),host:Bc(Lc,(function(t){var e=xs(this);e.cannotBeABaseURL||Ac(e,String(t),pc)})),hostname:Bc(Uc,(function(t){var e=xs(this);e.cannotBeABaseURL||Ac(e,String(t),dc)})),port:Bc(_c,(function(t){var e=xs(this);Qs(e)||(""==(t=String(t))?e.port=null:Ac(e,t,vc))})),pathname:Bc(Mc,(function(t){var e=xs(this);e.cannotBeABaseURL||(e.path=[],Ac(e,t+"",bc))})),search:Bc(Nc,(function(t){var e=xs(this);""==(t=String(t))?e.query=null:("?"==t.charAt(0)&&(t=t.slice(1)),e.query="",Ac(e,t,Ec)),Ss(e.searchParams).updateSearchParams(e.query)})),searchParams:Bc(Cc),hash:Bc(Fc,(function(t){var e=xs(this);""!=(t=String(t))?("#"==t.charAt(0)&&(t=t.slice(1)),e.fragment="",Ac(e,t,xc)):e.fragment=null}))}),rt(Rc,"toJSON",(function(){return jc.call(this)}),{enumerable:!0}),rt(Rc,"toString",(function(){return jc.call(this)}),{enumerable:!0}),bs){var Dc=bs.createObjectURL,qc=bs.revokeObjectURL;Dc&&rt(Oc,"createObjectURL",(function(t){return Dc.apply(bs,arguments)})),qc&&rt(Oc,"revokeObjectURL",(function(t){return qc.apply(bs,arguments)}))}Ne(Oc,"URL"),Lt({global:!0,forced:!_u,sham:!a},{URL:Oc}),Lt({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return URL.prototype.toString.call(this)}}),Lt({target:"WeakMap",stat:!0},{from:rn}),Lt({target:"WeakMap",stat:!0},{of:nn}),Lt({target:"WeakMap",proto:!0,real:!0,forced:q},{deleteAll:function(){return on.apply(this,arguments)}}),Lt({target:"WeakMap",proto:!0,real:!0,forced:q},{upsert:fn}),Fr("WeakSet",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),bo),Lt({target:"WeakSet",proto:!0,real:!0,forced:q},{addAll:function(){return Xi.apply(this,arguments)}}),Lt({target:"WeakSet",proto:!0,real:!0,forced:q},{deleteAll:function(){return on.apply(this,arguments)}}),Lt({target:"WeakSet",stat:!0},{from:rn}),Lt({target:"WeakSet",stat:!0},{of:nn});var zc,Wc,Kc,Gc=o.Promise,$c=/(iphone|ipod|ipad).*applewebkit/i.test(Zi),Vc=o.location,Hc=o.setImmediate,Xc=o.clearImmediate,Yc=o.process,Jc=o.MessageChannel,Qc=o.Dispatch,Zc=0,tf={},ef=function(t){if(tf.hasOwnProperty(t)){var e=tf[t];delete tf[t],e()}},rf=function(t){return function(){ef(t)}},nf=function(t){ef(t.data)},of=function(t){o.postMessage(t+"",Vc.protocol+"//"+Vc.host)};Hc&&Xc||(Hc=function(t){for(var e=[],r=1;arguments.length>r;)e.push(arguments[r++]);return tf[++Zc]=function(){("function"==typeof t?t:Function(t)).apply(void 0,e)},zc(Zc),Zc},Xc=function(t){delete tf[t]},"process"==h(Yc)?zc=function(t){Yc.nextTick(rf(t))}:Qc&&Qc.now?zc=function(t){Qc.now(rf(t))}:Jc&&!$c?(Kc=(Wc=new Jc).port2,Wc.port1.onmessage=nf,zc=te(Kc.postMessage,Kc,1)):!o.addEventListener||"function"!=typeof postMessage||o.importScripts||i(of)||"file:"===Vc.protocol?zc="onreadystatechange"in x("script")?function(t){Kt.appendChild(x("script")).onreadystatechange=function(){Kt.removeChild(this),ef(t)}}:function(t){setTimeout(rf(t),0)}:(zc=of,o.addEventListener("message",nf,!1)));var af,uf,sf,cf,ff,lf,hf,pf,df={set:Hc,clear:Xc},vf=R.f,gf=df.set,yf=o.MutationObserver||o.WebKitMutationObserver,mf=o.process,bf=o.Promise,wf="process"==h(mf),Sf=vf(o,"queueMicrotask"),Ef=Sf&&Sf.value;Ef||(af=function(){var t,e;for(wf&&(t=mf.domain)&&t.exit();uf;){e=uf.fn,uf=uf.next;try{e()}catch(t){throw uf?cf():sf=void 0,t}}sf=void 0,t&&t.enter()},wf?cf=function(){mf.nextTick(af)}:yf&&!$c?(ff=!0,lf=document.createTextNode(""),new yf(af).observe(lf,{characterData:!0}),cf=function(){lf.data=ff=!ff}):bf&&bf.resolve?(hf=bf.resolve(void 0),pf=hf.then,cf=function(){pf.call(hf,af)}):cf=function(){gf.call(o,af)});var xf,Af,Of,Rf,jf=Ef||function(t){var e={fn:t,next:void 0};sf&&(sf.next=e),uf||(uf=e,cf()),sf=e},Pf=function(t){var e,r;this.promise=new t((function(t,n){if(void 0!==e||void 0!==r)throw TypeError("Bad Promise constructor");e=t,r=n})),this.resolve=Zt(e),this.reject=Zt(r)},If={f:function(t){return new Pf(t)}},kf=function(t,e){if(j(t),y(e)&&e.constructor===t)return e;var r=If.f(t);return(0,r.resolve)(e),r.promise},Tf=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},Lf=df.set,Uf=qt("species"),_f="Promise",Mf=et.get,Nf=et.set,Cf=et.getterFor(_f),Ff=Gc,Bf=o.TypeError,Df=o.document,qf=o.process,zf=it("fetch"),Wf=If.f,Kf=Wf,Gf="process"==h(qf),$f=!!(Df&&Df.createEvent&&o.dispatchEvent),Vf="unhandledrejection",Hf=kt(_f,(function(){if(F(Ff)===String(Ff)){if(66===na)return!0;if(!Gf&&"function"!=typeof PromiseRejectionEvent)return!0}if(na>=51&&/native code/.test(Ff))return!1;var t=Ff.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[Uf]=e,!(t.then((function(){}))instanceof e)})),Xf=Hf||!mr((function(t){Ff.all(t).catch((function(){}))})),Yf=function(t){var e;return!(!y(t)||"function"!=typeof(e=t.then))&&e},Jf=function(t,e,r){if(!e.notified){e.notified=!0;var n=e.reactions;jf((function(){for(var o=e.value,i=1==e.state,a=0;n.length>a;){var u,s,c,f=n[a++],l=i?f.ok:f.fail,h=f.resolve,p=f.reject,d=f.domain;try{l?(i||(2===e.rejection&&el(t,e),e.rejection=1),!0===l?u=o:(d&&d.enter(),u=l(o),d&&(d.exit(),c=!0)),u===f.promise?p(Bf("Promise-chain cycle")):(s=Yf(u))?s.call(u,h,p):h(u)):p(o)}catch(t){d&&!c&&d.exit(),p(t)}}e.reactions=[],e.notified=!1,r&&!e.rejection&&Zf(t,e)}))}},Qf=function(t,e,r){var n,i;$f?((n=Df.createEvent("Event")).promise=e,n.reason=r,n.initEvent(t,!1,!0),o.dispatchEvent(n)):n={promise:e,reason:r},(i=o["on"+t])?i(n):t===Vf&&function(t,e){var r=o.console;r&&r.error&&(1===arguments.length?r.error(t):r.error(t,e))}("Unhandled promise rejection",r)},Zf=function(t,e){Lf.call(o,(function(){var r,n=e.value;if(tl(e)&&(r=Tf((function(){Gf?qf.emit("unhandledRejection",n,t):Qf(Vf,t,n)})),e.rejection=Gf||tl(e)?2:1,r.error))throw r.value}))},tl=function(t){return 1!==t.rejection&&!t.parent},el=function(t,e){Lf.call(o,(function(){Gf?qf.emit("rejectionHandled",t):Qf("rejectionhandled",t,e.value)}))},rl=function(t,e,r,n){return function(o){t(e,r,o,n)}},nl=function(t,e,r,n){e.done||(e.done=!0,n&&(e=n),e.value=r,e.state=2,Jf(t,e,!0))},ol=function t(e,r,n,o){if(!r.done){r.done=!0,o&&(r=o);try{if(e===n)throw Bf("Promise can't be resolved itself");var i=Yf(n);i?jf((function(){var o={done:!1};try{i.call(n,rl(t,e,o,r),rl(nl,e,o,r))}catch(t){nl(e,o,t,r)}})):(r.value=n,r.state=1,Jf(e,r,!1))}catch(t){nl(e,{done:!1},t,r)}}};Hf&&(Ff=function(t){Nr(this,Ff,_f),Zt(t),xf.call(this);var e=Mf(this);try{t(rl(ol,this,e),rl(nl,this,e))}catch(t){nl(this,e,t)}},(xf=function(t){Nf(this,{type:_f,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=Br(Ff.prototype,{then:function(t,e){var r=Cf(this),n=Wf(cn(this,Ff));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=Gf?qf.domain:void 0,r.parent=!0,r.reactions.push(n),0!=r.state&&Jf(this,r,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),Af=function(){var t=new xf,e=Mf(t);this.promise=t,this.resolve=rl(ol,t,e),this.reject=rl(nl,t,e)},If.f=Wf=function(t){return t===Ff||t===Of?new Af(t):Kf(t)},"function"==typeof Gc&&(Rf=Gc.prototype.then,rt(Gc.prototype,"then",(function(t,e){var r=this;return new Ff((function(t,e){Rf.call(r,t,e)})).then(t,e)}),{unsafe:!0}),"function"==typeof zf&&Lt({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return kf(Ff,zf.apply(o,arguments))}}))),Lt({global:!0,wrap:!0,forced:Hf},{Promise:Ff}),Ne(Ff,_f,!1),qr(_f),Of=it(_f),Lt({target:_f,stat:!0,forced:Hf},{reject:function(t){var e=Wf(this);return e.reject.call(void 0,t),e.promise}}),Lt({target:_f,stat:!0,forced:Hf},{resolve:function(t){return kf(this,t)}}),Lt({target:_f,stat:!0,forced:Xf},{all:function(t){var e=this,r=Wf(e),n=r.resolve,o=r.reject,i=Tf((function(){var r=Zt(e.resolve),i=[],a=0,u=1;Mr(t,(function(t){var s=a++,c=!1;i.push(void 0),u++,r.call(e,t).then((function(t){c||(c=!0,i[s]=t,--u||n(i))}),o)})),--u||n(i)}));return i.error&&o(i.value),r.promise},race:function(t){var e=this,r=Wf(e),n=r.reject,o=Tf((function(){var o=Zt(e.resolve);Mr(t,(function(t){o.call(e,t).then(r.resolve,n)}))}));return o.error&&n(o.value),r.promise}}),Lt({target:"Promise",stat:!0},{allSettled:function(t){var e=this,r=If.f(e),n=r.resolve,o=r.reject,i=Tf((function(){var r=Zt(e.resolve),o=[],i=0,a=1;Mr(t,(function(t){var u=i++,s=!1;o.push(void 0),a++,r.call(e,t).then((function(t){s||(s=!0,o[u]={status:"fulfilled",value:t},--a||n(o))}),(function(t){s||(s=!0,o[u]={status:"rejected",reason:t},--a||n(o))}))})),--a||n(o)}));return i.error&&o(i.value),r.promise}});var il=!!Gc&&i((function(){Gc.prototype.finally.call({then:function(){}},(function(){}))}));Lt({target:"Promise",proto:!0,real:!0,forced:il},{finally:function(t){var e=cn(this,it("Promise")),r="function"==typeof t;return this.then(r?function(r){return kf(e,t()).then((function(){return r}))}:t,r?function(r){return kf(e,t()).then((function(){throw r}))}:t)}}),"function"!=typeof Gc||Gc.prototype.finally||rt(Gc.prototype,"finally",it("Promise").prototype.finally);var al=et.set,ul=et.getterFor("AggregateError"),sl=function(t,e){var r=this;if(!(r instanceof sl))return new sl(t,e);ze&&(r=ze(new Error(e),ke(r)));var n=[];return Mr(t,n.push,n),a?al(r,{errors:n,type:"AggregateError"}):r.errors=n,void 0!==e&&k(r,"message",String(e)),r};sl.prototype=Xt(Error.prototype,{constructor:f(5,sl),message:f(5,""),name:f(5,"AggregateError")}),a&&I.f(sl.prototype,"errors",{get:function(){return ul(this).errors},configurable:!0}),Lt({global:!0},{AggregateError:sl}),Lt({target:"Promise",stat:!0},{try:function(t){var e=If.f(this),r=Tf(t);return(r.error?e.reject:e.resolve)(r.value),e.promise}});var cl="No one promise resolved";Lt({target:"Promise",stat:!0},{any:function(t){var e=this,r=If.f(e),n=r.resolve,o=r.reject,i=Tf((function(){var r=Zt(e.resolve),i=[],a=0,u=1,s=!1;Mr(t,(function(t){var c=a++,f=!1;i.push(void 0),u++,r.call(e,t).then((function(t){f||s||(s=!0,n(t))}),(function(t){f||s||(f=!0,i[c]=t,--u||o(new(it("AggregateError"))(i,cl)))}))})),--u||o(new(it("AggregateError"))(i,cl))}));return i.error&&o(i.value),r.promise}}),re("Promise","finally");var fl="URLSearchParams"in self,ll="Symbol"in self&&"iterator"in Symbol,hl="FileReader"in self&&"Blob"in self&&function(){try{return new Blob,!0}catch(t){return!1}}(),pl="FormData"in self,dl="ArrayBuffer"in self;if(dl)var vl=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],gl=ArrayBuffer.isView||function(t){return t&&vl.indexOf(Object.prototype.toString.call(t))>-1};function yl(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function ml(t){return"string"!=typeof t&&(t=String(t)),t}function bl(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return ll&&(e[Symbol.iterator]=function(){return e}),e}function wl(t){this.map={},t instanceof wl?t.forEach((function(t,e){this.append(e,t)}),this):Array.isArray(t)?t.forEach((function(t){this.append(t[0],t[1])}),this):t&&Object.getOwnPropertyNames(t).forEach((function(e){this.append(e,t[e])}),this)}function Sl(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function El(t){return new Promise((function(e,r){t.onload=function(){e(t.result)},t.onerror=function(){r(t.error)}}))}function xl(t){var e=new FileReader,r=El(e);return e.readAsArrayBuffer(t),r}function Al(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function Ol(){return this.bodyUsed=!1,this._initBody=function(t){var e;this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:hl&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:pl&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:fl&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():dl&&hl&&(e=t)&&DataView.prototype.isPrototypeOf(e)?(this._bodyArrayBuffer=Al(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):dl&&(ArrayBuffer.prototype.isPrototypeOf(t)||gl(t))?this._bodyArrayBuffer=Al(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):fl&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},hl&&(this.blob=function(){var t=Sl(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?Sl(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(xl)}),this.text=function(){var t=Sl(this);if(t)return t;if(this._bodyBlob)return function(t){var e=new FileReader,r=El(e);return e.readAsText(t),r}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),r=new Array(e.length),n=0;n<e.length;n++)r[n]=String.fromCharCode(e[n]);return r.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},pl&&(this.formData=function(){return this.text().then(Pl)}),this.json=function(){return this.text().then(JSON.parse)},this}wl.prototype.append=function(t,e){t=yl(t),e=ml(e);var r=this.map[t];this.map[t]=r?r+", "+e:e},wl.prototype.delete=function(t){delete this.map[yl(t)]},wl.prototype.get=function(t){return t=yl(t),this.has(t)?this.map[t]:null},wl.prototype.has=function(t){return this.map.hasOwnProperty(yl(t))},wl.prototype.set=function(t,e){this.map[yl(t)]=ml(e)},wl.prototype.forEach=function(t,e){for(var r in this.map)this.map.hasOwnProperty(r)&&t.call(e,this.map[r],r,this)},wl.prototype.keys=function(){var t=[];return this.forEach((function(e,r){t.push(r)})),bl(t)},wl.prototype.values=function(){var t=[];return this.forEach((function(e){t.push(e)})),bl(t)},wl.prototype.entries=function(){var t=[];return this.forEach((function(e,r){t.push([r,e])})),bl(t)},ll&&(wl.prototype[Symbol.iterator]=wl.prototype.entries);var Rl=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function jl(t,e){var r,n,o=(e=e||{}).body;if(t instanceof jl){if(t.bodyUsed)throw new TypeError("Already read");this.url=t.url,this.credentials=t.credentials,e.headers||(this.headers=new wl(t.headers)),this.method=t.method,this.mode=t.mode,this.signal=t.signal,o||null==t._bodyInit||(o=t._bodyInit,t.bodyUsed=!0)}else this.url=String(t);if(this.credentials=e.credentials||this.credentials||"same-origin",!e.headers&&this.headers||(this.headers=new wl(e.headers)),this.method=(n=(r=e.method||this.method||"GET").toUpperCase(),Rl.indexOf(n)>-1?n:r),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&o)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(o)}function Pl(t){var e=new FormData;return t.trim().split("&").forEach((function(t){if(t){var r=t.split("="),n=r.shift().replace(/\+/g," "),o=r.join("=").replace(/\+/g," ");e.append(decodeURIComponent(n),decodeURIComponent(o))}})),e}function Il(t,e){e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new wl(e.headers),this.url=e.url||"",this._initBody(t)}jl.prototype.clone=function(){return new jl(this,{body:this._bodyInit})},Ol.call(jl.prototype),Ol.call(Il.prototype),Il.prototype.clone=function(){return new Il(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new wl(this.headers),url:this.url})},Il.error=function(){var t=new Il(null,{status:0,statusText:""});return t.type="error",t};var kl=[301,302,303,307,308];Il.redirect=function(t,e){if(-1===kl.indexOf(e))throw new RangeError("Invalid status code");return new Il(null,{status:e,headers:{location:t}})};var Tl=self.DOMException;try{new Tl}catch(t){(Tl=function(t,e){this.message=t,this.name=e;var r=Error(t);this.stack=r.stack}).prototype=Object.create(Error.prototype),Tl.prototype.constructor=Tl}function Ll(t,e){return new Promise((function(r,n){var o=new jl(t,e);if(o.signal&&o.signal.aborted)return n(new Tl("Aborted","AbortError"));var i=new XMLHttpRequest;function a(){i.abort()}i.onload=function(){var t,e,n={status:i.status,statusText:i.statusText,headers:(t=i.getAllResponseHeaders()||"",e=new wl,t.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach((function(t){var r=t.split(":"),n=r.shift().trim();if(n){var o=r.join(":").trim();e.append(n,o)}})),e)};n.url="responseURL"in i?i.responseURL:n.headers.get("X-Request-URL"),r(new Il("response"in i?i.response:i.responseText,n))},i.onerror=function(){n(new TypeError("Network request failed"))},i.ontimeout=function(){n(new TypeError("Network request failed"))},i.onabort=function(){n(new Tl("Aborted","AbortError"))},i.open(o.method,o.url,!0),"include"===o.credentials?i.withCredentials=!0:"omit"===o.credentials&&(i.withCredentials=!1),"responseType"in i&&hl&&(i.responseType="blob"),o.headers.forEach((function(t,e){i.setRequestHeader(e,t)})),o.signal&&(o.signal.addEventListener("abort",a),i.onreadystatechange=function(){4===i.readyState&&o.signal.removeEventListener("abort",a)}),i.send(void 0===o._bodyInit?null:o._bodyInit)}))}Ll.polyfill=!0,self.fetch||(self.fetch=Ll,self.Headers=wl,self.Request=jl,self.Response=Il);var Ul=Object.getOwnPropertySymbols,_l=Object.prototype.hasOwnProperty,Ml=Object.prototype.propertyIsEnumerable;function Nl(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}var Cl=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map((function(t){return e[t]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(t){n[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,n,o=Nl(t),i=1;i<arguments.length;i++){for(var a in r=Object(arguments[i]))_l.call(r,a)&&(o[a]=r[a]);if(Ul){n=Ul(r);for(var u=0;u<n.length;u++)Ml.call(r,n[u])&&(o[n[u]]=r[n[u]])}}return o};Object.assign=Cl}()}},function(t){var e,r=(e=2589,t(t.s=e));_N_E=r}]); \ No newline at end of file
diff --git a/build/static/chunks/webpack-f6b94a473b4a21f6bdce.js b/build/static/chunks/webpack-f6b94a473b4a21f6bdce.js
new file mode 100644
index 0000000..28fe764
--- /dev/null
+++ b/build/static/chunks/webpack-f6b94a473b4a21f6bdce.js
@@ -0,0 +1 @@
+!function(){"use strict";var e={},n={};function t(r){var o=n[r];if(void 0!==o)return o.exports;var i=n[r]={id:r,loaded:!1,exports:{}},u=!0;try{e[r](i,i.exports,t),u=!1}finally{u&&delete n[r]}return i.loaded=!0,i.exports}t.m=e,function(){var e=[];t.O=function(n,r,o,i){if(!r){var u=1/0;for(f=0;f<e.length;f++){r=e[f][0],o=e[f][1],i=e[f][2];for(var c=!0,a=0;a<r.length;a++)(!1&i||u>=i)&&Object.keys(t.O).every((function(e){return t.O[e](r[a])}))?r.splice(a--,1):(c=!1,i<u&&(u=i));c&&(e.splice(f--,1),n=o())}return n}i=i||0;for(var f=e.length;f>0&&e[f-1][2]>i;f--)e[f]=e[f-1];e[f]=[r,o,i]}}(),t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,{a:n}),n},t.d=function(e,n){for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},t.f={},t.e=function(e){return Promise.all(Object.keys(t.f).reduce((function(n,r){return t.f[r](e,n),n}),[]))},t.u=function(e){return"static/chunks/"+e+".2dee5d830195ddd06029.js"},t.miniCssF=function(e){return"static/css/120f2e2270820d49a21f.css"},t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},function(){var e={},n="_N_E:";t.l=function(r,o,i,u){if(e[r])e[r].push(o);else{var c,a;if(void 0!==i)for(var f=document.getElementsByTagName("script"),l=0;l<f.length;l++){var d=f[l];if(d.getAttribute("src")==r||d.getAttribute("data-webpack")==n+i){c=d;break}}c||(a=!0,(c=document.createElement("script")).charset="utf-8",c.timeout=120,t.nc&&c.setAttribute("nonce",t.nc),c.setAttribute("data-webpack",n+i),c.src=r),e[r]=[o];var s=function(n,t){c.onerror=c.onload=null,clearTimeout(p);var o=e[r];if(delete e[r],c.parentNode&&c.parentNode.removeChild(c),o&&o.forEach((function(e){return e(t)})),n)return n(t)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=s.bind(null,c.onerror),c.onload=s.bind(null,c.onload),a&&document.head.appendChild(c)}}}(),t.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},t.p="/_next/",function(){var e={272:0};t.f.j=function(n,r){var o=t.o(e,n)?e[n]:void 0;if(0!==o)if(o)r.push(o[2]);else if(272!=n){var i=new Promise((function(t,r){o=e[n]=[t,r]}));r.push(o[2]=i);var u=t.p+t.u(n),c=new Error;t.l(u,(function(r){if(t.o(e,n)&&(0!==(o=e[n])&&(e[n]=void 0),o)){var i=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;c.message="Loading chunk "+n+" failed.\n("+i+": "+u+")",c.name="ChunkLoadError",c.type=i,c.request=u,o[1](c)}}),"chunk-"+n,n)}else e[n]=0},t.O.j=function(n){return 0===e[n]};var n=function(n,r){var o,i,u=r[0],c=r[1],a=r[2],f=0;for(o in c)t.o(c,o)&&(t.m[o]=c[o]);if(a)var l=a(t);for(n&&n(r);f<u.length;f++)i=u[f],t.o(e,i)&&e[i]&&e[i][0](),e[u[f]]=0;return t.O(l)},r=self.webpackChunk_N_E=self.webpackChunk_N_E||[];r.forEach(n.bind(null,0)),r.push=n.bind(null,r.push.bind(r))}()}(); \ No newline at end of file
diff --git a/build/static/css/120f2e2270820d49a21f.css b/build/static/css/120f2e2270820d49a21f.css
new file mode 100644
index 0000000..cd39780
--- /dev/null
+++ b/build/static/css/120f2e2270820d49a21f.css
@@ -0,0 +1 @@
+body,html{padding:0;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}a{color:inherit;text-decoration:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box} \ No newline at end of file