{"version":3,"file":"2.Bijkdr2h.js","sources":["../../../../../../node_modules/svelte/src/internal/client/dom/blocks/each.js","../../../../../../node_modules/gojs/release/go.mjs","../../../../../../src/lib/components/Diagram.svelte","../../../../../../node_modules/three/build/three.core.js","../../../../../../node_modules/three/build/three.module.js","../../../../../../node_modules/three/examples/jsm/controls/OrbitControls.js","../../../../../../src/lib/components/ThreeCamera.svelte","../../../../../../src/lib/components/DiagramSet.svelte","../../../../../../src/lib/components/NodeInfo.svelte","../../../../../../src/routes/+page.svelte"],"sourcesContent":["/** @import { EachItem, EachState, Effect, MaybeSource, Source, TemplateNode, TransitionManager, Value } from '#client' */\nimport {\n\tEACH_INDEX_REACTIVE,\n\tEACH_IS_ANIMATED,\n\tEACH_IS_CONTROLLED,\n\tEACH_ITEM_IMMUTABLE,\n\tEACH_ITEM_REACTIVE,\n\tHYDRATION_END,\n\tHYDRATION_START_ELSE\n} from '../../../../constants.js';\nimport {\n\thydrate_next,\n\thydrate_node,\n\thydrating,\n\tremove_nodes,\n\tset_hydrate_node,\n\tset_hydrating\n} from '../hydration.js';\nimport {\n\tclear_text_content,\n\tcreate_text,\n\tget_first_child,\n\tget_next_sibling\n} from '../operations.js';\nimport {\n\tblock,\n\tbranch,\n\tdestroy_effect,\n\trun_out_transitions,\n\tpause_children,\n\tpause_effect,\n\tresume_effect\n} from '../../reactivity/effects.js';\nimport { source, mutable_source, internal_set } from '../../reactivity/sources.js';\nimport { array_from, is_array } from '../../../shared/utils.js';\nimport { INERT } from '../../constants.js';\nimport { queue_micro_task } from '../task.js';\nimport { active_effect, active_reaction } from '../../runtime.js';\nimport { DEV } from 'esm-env';\n\n/**\n * The row of a keyed each block that is currently updating. We track this\n * so that `animate:` directives have something to attach themselves to\n * @type {EachItem | null}\n */\nexport let current_each_item = null;\n\n/** @param {EachItem | null} item */\nexport function set_current_each_item(item) {\n\tcurrent_each_item = item;\n}\n\n/**\n * @param {any} _\n * @param {number} i\n */\nexport function index(_, i) {\n\treturn i;\n}\n\n/**\n * Pause multiple effects simultaneously, and coordinate their\n * subsequent destruction. Used in each blocks\n * @param {EachState} state\n * @param {EachItem[]} items\n * @param {null | Node} controlled_anchor\n * @param {Map} items_map\n */\nfunction pause_effects(state, items, controlled_anchor, items_map) {\n\t/** @type {TransitionManager[]} */\n\tvar transitions = [];\n\tvar length = items.length;\n\n\tfor (var i = 0; i < length; i++) {\n\t\tpause_children(items[i].e, transitions, true);\n\t}\n\n\tvar is_controlled = length > 0 && transitions.length === 0 && controlled_anchor !== null;\n\t// If we have a controlled anchor, it means that the each block is inside a single\n\t// DOM element, so we can apply a fast-path for clearing the contents of the element.\n\tif (is_controlled) {\n\t\tvar parent_node = /** @type {Element} */ (\n\t\t\t/** @type {Element} */ (controlled_anchor).parentNode\n\t\t);\n\t\tclear_text_content(parent_node);\n\t\tparent_node.append(/** @type {Element} */ (controlled_anchor));\n\t\titems_map.clear();\n\t\tlink(state, items[0].prev, items[length - 1].next);\n\t}\n\n\trun_out_transitions(transitions, () => {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tvar item = items[i];\n\t\t\tif (!is_controlled) {\n\t\t\t\titems_map.delete(item.k);\n\t\t\t\tlink(state, item.prev, item.next);\n\t\t\t}\n\t\t\tdestroy_effect(item.e, !is_controlled);\n\t\t}\n\t});\n}\n\n/**\n * @template V\n * @param {Element | Comment} node The next sibling node, or the parent node if this is a 'controlled' block\n * @param {number} flags\n * @param {() => V[]} get_collection\n * @param {(value: V, index: number) => any} get_key\n * @param {(anchor: Node, item: MaybeSource, index: MaybeSource) => void} render_fn\n * @param {null | ((anchor: Node) => void)} fallback_fn\n * @returns {void}\n */\nexport function each(node, flags, get_collection, get_key, render_fn, fallback_fn = null) {\n\tvar anchor = node;\n\n\t/** @type {EachState} */\n\tvar state = { flags, items: new Map(), first: null };\n\n\tvar is_controlled = (flags & EACH_IS_CONTROLLED) !== 0;\n\n\tif (is_controlled) {\n\t\tvar parent_node = /** @type {Element} */ (node);\n\n\t\tanchor = hydrating\n\t\t\t? set_hydrate_node(/** @type {Comment | Text} */ (get_first_child(parent_node)))\n\t\t\t: parent_node.appendChild(create_text());\n\t}\n\n\tif (hydrating) {\n\t\thydrate_next();\n\t}\n\n\t/** @type {Effect | null} */\n\tvar fallback = null;\n\n\tvar was_empty = false;\n\n\tblock(() => {\n\t\tvar collection = get_collection();\n\n\t\tvar array = is_array(collection)\n\t\t\t? collection\n\t\t\t: collection == null\n\t\t\t\t? []\n\t\t\t\t: array_from(collection);\n\n\t\tvar length = array.length;\n\n\t\tif (was_empty && length === 0) {\n\t\t\t// ignore updates if the array is empty,\n\t\t\t// and it already was empty on previous run\n\t\t\treturn;\n\t\t}\n\t\twas_empty = length === 0;\n\n\t\t/** `true` if there was a hydration mismatch. Needs to be a `let` or else it isn't treeshaken out */\n\t\tlet mismatch = false;\n\n\t\tif (hydrating) {\n\t\t\tvar is_else = /** @type {Comment} */ (anchor).data === HYDRATION_START_ELSE;\n\n\t\t\tif (is_else !== (length === 0)) {\n\t\t\t\t// hydration mismatch — remove the server-rendered DOM and start over\n\t\t\t\tanchor = remove_nodes();\n\n\t\t\t\tset_hydrate_node(anchor);\n\t\t\t\tset_hydrating(false);\n\t\t\t\tmismatch = true;\n\t\t\t}\n\t\t}\n\n\t\t// this is separate to the previous block because `hydrating` might change\n\t\tif (hydrating) {\n\t\t\t/** @type {EachItem | null} */\n\t\t\tvar prev = null;\n\n\t\t\t/** @type {EachItem} */\n\t\t\tvar item;\n\n\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\tif (\n\t\t\t\t\thydrate_node.nodeType === 8 &&\n\t\t\t\t\t/** @type {Comment} */ (hydrate_node).data === HYDRATION_END\n\t\t\t\t) {\n\t\t\t\t\t// The server rendered fewer items than expected,\n\t\t\t\t\t// so break out and continue appending non-hydrated items\n\t\t\t\t\tanchor = /** @type {Comment} */ (hydrate_node);\n\t\t\t\t\tmismatch = true;\n\t\t\t\t\tset_hydrating(false);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tvar value = array[i];\n\t\t\t\tvar key = get_key(value, i);\n\t\t\t\titem = create_item(\n\t\t\t\t\thydrate_node,\n\t\t\t\t\tstate,\n\t\t\t\t\tprev,\n\t\t\t\t\tnull,\n\t\t\t\t\tvalue,\n\t\t\t\t\tkey,\n\t\t\t\t\ti,\n\t\t\t\t\trender_fn,\n\t\t\t\t\tflags,\n\t\t\t\t\tget_collection\n\t\t\t\t);\n\t\t\t\tstate.items.set(key, item);\n\n\t\t\t\tprev = item;\n\t\t\t}\n\n\t\t\t// remove excess nodes\n\t\t\tif (length > 0) {\n\t\t\t\tset_hydrate_node(remove_nodes());\n\t\t\t}\n\t\t}\n\n\t\tif (!hydrating) {\n\t\t\tvar effect = /** @type {Effect} */ (active_reaction);\n\t\t\treconcile(\n\t\t\t\tarray,\n\t\t\t\tstate,\n\t\t\t\tanchor,\n\t\t\t\trender_fn,\n\t\t\t\tflags,\n\t\t\t\t(effect.f & INERT) !== 0,\n\t\t\t\tget_key,\n\t\t\t\tget_collection\n\t\t\t);\n\t\t}\n\n\t\tif (fallback_fn !== null) {\n\t\t\tif (length === 0) {\n\t\t\t\tif (fallback) {\n\t\t\t\t\tresume_effect(fallback);\n\t\t\t\t} else {\n\t\t\t\t\tfallback = branch(() => fallback_fn(anchor));\n\t\t\t\t}\n\t\t\t} else if (fallback !== null) {\n\t\t\t\tpause_effect(fallback, () => {\n\t\t\t\t\tfallback = null;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (mismatch) {\n\t\t\t// continue in hydration mode\n\t\t\tset_hydrating(true);\n\t\t}\n\n\t\t// When we mount the each block for the first time, the collection won't be\n\t\t// connected to this effect as the effect hasn't finished running yet and its deps\n\t\t// won't be assigned. However, it's possible that when reconciling the each block\n\t\t// that a mutation occurred and it's made the collection MAYBE_DIRTY, so reading the\n\t\t// collection again can provide consistency to the reactive graph again as the deriveds\n\t\t// will now be `CLEAN`.\n\t\tget_collection();\n\t});\n\n\tif (hydrating) {\n\t\tanchor = hydrate_node;\n\t}\n}\n\n/**\n * Add, remove, or reorder items output by an each block as its input changes\n * @template V\n * @param {Array} array\n * @param {EachState} state\n * @param {Element | Comment | Text} anchor\n * @param {(anchor: Node, item: MaybeSource, index: number | Source) => void} render_fn\n * @param {number} flags\n * @param {boolean} is_inert\n * @param {(value: V, index: number) => any} get_key\n * @param {() => V[]} get_collection\n * @returns {void}\n */\nfunction reconcile(array, state, anchor, render_fn, flags, is_inert, get_key, get_collection) {\n\tvar is_animated = (flags & EACH_IS_ANIMATED) !== 0;\n\tvar should_update = (flags & (EACH_ITEM_REACTIVE | EACH_INDEX_REACTIVE)) !== 0;\n\n\tvar length = array.length;\n\tvar items = state.items;\n\tvar first = state.first;\n\tvar current = first;\n\n\t/** @type {undefined | Set} */\n\tvar seen;\n\n\t/** @type {EachItem | null} */\n\tvar prev = null;\n\n\t/** @type {undefined | Set} */\n\tvar to_animate;\n\n\t/** @type {EachItem[]} */\n\tvar matched = [];\n\n\t/** @type {EachItem[]} */\n\tvar stashed = [];\n\n\t/** @type {V} */\n\tvar value;\n\n\t/** @type {any} */\n\tvar key;\n\n\t/** @type {EachItem | undefined} */\n\tvar item;\n\n\t/** @type {number} */\n\tvar i;\n\n\tif (is_animated) {\n\t\tfor (i = 0; i < length; i += 1) {\n\t\t\tvalue = array[i];\n\t\t\tkey = get_key(value, i);\n\t\t\titem = items.get(key);\n\n\t\t\tif (item !== undefined) {\n\t\t\t\titem.a?.measure();\n\t\t\t\t(to_animate ??= new Set()).add(item);\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (i = 0; i < length; i += 1) {\n\t\tvalue = array[i];\n\t\tkey = get_key(value, i);\n\t\titem = items.get(key);\n\n\t\tif (item === undefined) {\n\t\t\tvar child_anchor = current ? /** @type {TemplateNode} */ (current.e.nodes_start) : anchor;\n\n\t\t\tprev = create_item(\n\t\t\t\tchild_anchor,\n\t\t\t\tstate,\n\t\t\t\tprev,\n\t\t\t\tprev === null ? state.first : prev.next,\n\t\t\t\tvalue,\n\t\t\t\tkey,\n\t\t\t\ti,\n\t\t\t\trender_fn,\n\t\t\t\tflags,\n\t\t\t\tget_collection\n\t\t\t);\n\n\t\t\titems.set(key, prev);\n\n\t\t\tmatched = [];\n\t\t\tstashed = [];\n\n\t\t\tcurrent = prev.next;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (should_update) {\n\t\t\tupdate_item(item, value, i, flags);\n\t\t}\n\n\t\tif ((item.e.f & INERT) !== 0) {\n\t\t\tresume_effect(item.e);\n\t\t\tif (is_animated) {\n\t\t\t\titem.a?.unfix();\n\t\t\t\t(to_animate ??= new Set()).delete(item);\n\t\t\t}\n\t\t}\n\n\t\tif (item !== current) {\n\t\t\tif (seen !== undefined && seen.has(item)) {\n\t\t\t\tif (matched.length < stashed.length) {\n\t\t\t\t\t// more efficient to move later items to the front\n\t\t\t\t\tvar start = stashed[0];\n\t\t\t\t\tvar j;\n\n\t\t\t\t\tprev = start.prev;\n\n\t\t\t\t\tvar a = matched[0];\n\t\t\t\t\tvar b = matched[matched.length - 1];\n\n\t\t\t\t\tfor (j = 0; j < matched.length; j += 1) {\n\t\t\t\t\t\tmove(matched[j], start, anchor);\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (j = 0; j < stashed.length; j += 1) {\n\t\t\t\t\t\tseen.delete(stashed[j]);\n\t\t\t\t\t}\n\n\t\t\t\t\tlink(state, a.prev, b.next);\n\t\t\t\t\tlink(state, prev, a);\n\t\t\t\t\tlink(state, b, start);\n\n\t\t\t\t\tcurrent = start;\n\t\t\t\t\tprev = b;\n\t\t\t\t\ti -= 1;\n\n\t\t\t\t\tmatched = [];\n\t\t\t\t\tstashed = [];\n\t\t\t\t} else {\n\t\t\t\t\t// more efficient to move earlier items to the back\n\t\t\t\t\tseen.delete(item);\n\t\t\t\t\tmove(item, current, anchor);\n\n\t\t\t\t\tlink(state, item.prev, item.next);\n\t\t\t\t\tlink(state, item, prev === null ? state.first : prev.next);\n\t\t\t\t\tlink(state, prev, item);\n\n\t\t\t\t\tprev = item;\n\t\t\t\t}\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tmatched = [];\n\t\t\tstashed = [];\n\n\t\t\twhile (current !== null && current.k !== key) {\n\t\t\t\t// If the each block isn't inert and an item has an effect that is already inert,\n\t\t\t\t// skip over adding it to our seen Set as the item is already being handled\n\t\t\t\tif (is_inert || (current.e.f & INERT) === 0) {\n\t\t\t\t\t(seen ??= new Set()).add(current);\n\t\t\t\t}\n\t\t\t\tstashed.push(current);\n\t\t\t\tcurrent = current.next;\n\t\t\t}\n\n\t\t\tif (current === null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\titem = current;\n\t\t}\n\n\t\tmatched.push(item);\n\t\tprev = item;\n\t\tcurrent = item.next;\n\t}\n\n\tif (current !== null || seen !== undefined) {\n\t\tvar to_destroy = seen === undefined ? [] : array_from(seen);\n\n\t\twhile (current !== null) {\n\t\t\t// If the each block isn't inert, then inert effects are currently outroing and will be removed once the transition is finished\n\t\t\tif (is_inert || (current.e.f & INERT) === 0) {\n\t\t\t\tto_destroy.push(current);\n\t\t\t}\n\t\t\tcurrent = current.next;\n\t\t}\n\n\t\tvar destroy_length = to_destroy.length;\n\n\t\tif (destroy_length > 0) {\n\t\t\tvar controlled_anchor = (flags & EACH_IS_CONTROLLED) !== 0 && length === 0 ? anchor : null;\n\n\t\t\tif (is_animated) {\n\t\t\t\tfor (i = 0; i < destroy_length; i += 1) {\n\t\t\t\t\tto_destroy[i].a?.measure();\n\t\t\t\t}\n\n\t\t\t\tfor (i = 0; i < destroy_length; i += 1) {\n\t\t\t\t\tto_destroy[i].a?.fix();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tpause_effects(state, to_destroy, controlled_anchor, items);\n\t\t}\n\t}\n\n\tif (is_animated) {\n\t\tqueue_micro_task(() => {\n\t\t\tif (to_animate === undefined) return;\n\t\t\tfor (item of to_animate) {\n\t\t\t\titem.a?.apply();\n\t\t\t}\n\t\t});\n\t}\n\n\t/** @type {Effect} */ (active_effect).first = state.first && state.first.e;\n\t/** @type {Effect} */ (active_effect).last = prev && prev.e;\n}\n\n/**\n * @param {EachItem} item\n * @param {any} value\n * @param {number} index\n * @param {number} type\n * @returns {void}\n */\nfunction update_item(item, value, index, type) {\n\tif ((type & EACH_ITEM_REACTIVE) !== 0) {\n\t\tinternal_set(item.v, value);\n\t}\n\n\tif ((type & EACH_INDEX_REACTIVE) !== 0) {\n\t\tinternal_set(/** @type {Value} */ (item.i), index);\n\t} else {\n\t\titem.i = index;\n\t}\n}\n\n/**\n * @template V\n * @param {Node} anchor\n * @param {EachState} state\n * @param {EachItem | null} prev\n * @param {EachItem | null} next\n * @param {V} value\n * @param {unknown} key\n * @param {number} index\n * @param {(anchor: Node, item: V | Source, index: number | Value) => void} render_fn\n * @param {number} flags\n * @param {() => V[]} get_collection\n * @returns {EachItem}\n */\nfunction create_item(\n\tanchor,\n\tstate,\n\tprev,\n\tnext,\n\tvalue,\n\tkey,\n\tindex,\n\trender_fn,\n\tflags,\n\tget_collection\n) {\n\tvar previous_each_item = current_each_item;\n\tvar reactive = (flags & EACH_ITEM_REACTIVE) !== 0;\n\tvar mutable = (flags & EACH_ITEM_IMMUTABLE) === 0;\n\n\tvar v = reactive ? (mutable ? mutable_source(value) : source(value)) : value;\n\tvar i = (flags & EACH_INDEX_REACTIVE) === 0 ? index : source(index);\n\n\tif (DEV && reactive) {\n\t\t// For tracing purposes, we need to link the source signal we create with the\n\t\t// collection + index so that tracing works as intended\n\t\t/** @type {Value} */ (v).debug = () => {\n\t\t\tvar collection_index = typeof i === 'number' ? index : i.v;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-expressions\n\t\t\tget_collection()[collection_index];\n\t\t};\n\t}\n\n\t/** @type {EachItem} */\n\tvar item = {\n\t\ti,\n\t\tv,\n\t\tk: key,\n\t\ta: null,\n\t\t// @ts-expect-error\n\t\te: null,\n\t\tprev,\n\t\tnext\n\t};\n\n\tcurrent_each_item = item;\n\n\ttry {\n\t\titem.e = branch(() => render_fn(anchor, v, i), hydrating);\n\n\t\titem.e.prev = prev && prev.e;\n\t\titem.e.next = next && next.e;\n\n\t\tif (prev === null) {\n\t\t\tstate.first = item;\n\t\t} else {\n\t\t\tprev.next = item;\n\t\t\tprev.e.next = item.e;\n\t\t}\n\n\t\tif (next !== null) {\n\t\t\tnext.prev = item;\n\t\t\tnext.e.prev = item.e;\n\t\t}\n\n\t\treturn item;\n\t} finally {\n\t\tcurrent_each_item = previous_each_item;\n\t}\n}\n\n/**\n * @param {EachItem} item\n * @param {EachItem | null} next\n * @param {Text | Element | Comment} anchor\n */\nfunction move(item, next, anchor) {\n\tvar end = item.next ? /** @type {TemplateNode} */ (item.next.e.nodes_start) : anchor;\n\n\tvar dest = next ? /** @type {TemplateNode} */ (next.e.nodes_start) : anchor;\n\tvar node = /** @type {TemplateNode} */ (item.e.nodes_start);\n\n\twhile (node !== end) {\n\t\tvar next_node = /** @type {TemplateNode} */ (get_next_sibling(node));\n\t\tdest.before(node);\n\t\tnode = next_node;\n\t}\n}\n\n/**\n * @param {EachState} state\n * @param {EachItem | null} prev\n * @param {EachItem | null} next\n */\nfunction link(state, prev, next) {\n\tif (prev === null) {\n\t\tstate.first = next;\n\t} else {\n\t\tprev.next = next;\n\t\tprev.e.next = next && next.e;\n\t}\n\n\tif (next !== null) {\n\t\tnext.prev = prev;\n\t\tnext.e.prev = prev && prev.e;\n\t}\n}\n","/*\n * GoJS v3.0.15 JavaScript Library for HTML Diagrams, https://gojs.net\n * GoJS and Northwoods Software are registered trademarks of Northwoods Software Corporation, https://nwoods.com.\n * Copyright (C) 1998-2024 by Northwoods Software Corporation. All Rights Reserved.\n * THIS SOFTWARE IS LICENSED. THE LICENSE AGREEMENT IS AT: https://gojs.net/3.0.15/license.html.\n * DO NOT MODIFY THIS FILE. DO NOT DISTRIBUTE A MODIFIED COPY OF THE CONTENTS OF THIS FILE.\n */\n(function() {const root=typeof globalThis==\"object\"&&globalThis||typeof global==\"object\"&&global.global===global&&global||typeof self==\"object\"&&self.self===self&&self||{};root.requestAnimationFrame===void 0&&(root.setImmediate===void 0?root.requestAnimationFrame=w=>root.setTimeout(w,0):root.requestAnimationFrame=root.setImmediate);class Util{static or=root.navigator!==void 0&&root.navigator.platform!==void 0&&root.navigator.platform.match(/(iPhone|iPod|iPad|Mac)/i)!==null;static Nk(t,i,e){let s=-1;return function(){const n=this,o=arguments;s!==-1&&Util.Ig(s),s=Util.Oh(()=>{s=-1,e||t.apply(n,o)},i),e&&!s&&t.apply(n,o)}}static Oh(t,i){return root.setTimeout(t,i)}static Ig(t){root.clearTimeout(t)}static en(t){return root.document.createElement(t)}static o(t){throw new Error(t)}static T(t,i){let e=\"The object is frozen, so its properties cannot be set: \"+t.toString();i!==void 0&&(e+=\" to value: \"+i),Util.o(e)}static WI(t,i,e,s){}static i(t,i,e,s){}static JI(t,i,e){}static $I(t,i,e){}static we(t,i,e,s){}static _(t,i,e,s){let n=Util.LD(e);s!==void 0&&(n+=\".\"+s),Util.o(n+\" is not in the range \"+i+\": \"+t)}static ve(t){}static rr(t,i){}static ei(t){root.console&&root.console.log(t)}static wt(t){return typeof t==\"object\"&&t!==null}static ZI(t,i,e){}static nu(t,i,e){Array.isArray(t)?i>=t.length?t.push(e):t.splice(i,0,e):Util.o(\"Cannot insert an object into an HTMLCollection or NodeList: \"+e+\" at \"+i)}static tc(t,i){Array.isArray(t)?i>=t.length?t.pop():t.splice(i,1):Util.o(\"Cannot remove an object from an HTMLCollection or NodeList at \"+i)}static Ck=[];static nt(){const t=Util.Ck.pop();return t===void 0?[]:t}static tt(t){t.length=0,Util.Ck.push(t)}static QI=Object.freeze([]);static LD(t){return t===null?\"*\":typeof t==\"string\"?t:typeof t==\"function\"?t.name:\"\"}static sn(t){return typeof t==\"function\"?t.className?t.className:t.name:Util.wt(t)&&t.constructor?Util.sn(t.constructor):typeof t}static Ih(t,i){return i==null||i===\"\"?null:Util.wt(t)&&i in t||t[i]?t[i]:null}static toString(t){let i=t;return Util.wt(t)&&(t.text?i=t.text:t.name?i=t.name:t.key!==void 0?i=t.key:t.id!==void 0?i=t.id:t.constructor===Object&&(t.Text?i=t.Text:t.Name?i=t.Name:t.Key!==void 0?i=t.Key:t.Id!==void 0?i=t.Id:t.ID!==void 0&&(i=t.ID))),i===void 0?\"undefined\":i===null?\"null\":i.toString()}static fw(t,i){if(t.hasOwnProperty(i))return!0;let e=Object.getPrototypeOf(t);for(;e&&e!==Function;){if(e.hasOwnProperty(i))return!0;const s=e._I;if(s&&s[i])return!0;e=Object.getPrototypeOf(e)}return!1}static AD(t){const i=[];let e=0;for(e=0;e<256;e++)i[e]=e;let s=0,n=0;for(e=0;e<256;e++)s=(s+i[e]+119)%256,n=i[e],i[e]=i[s],i[s]=n;e=0,s=0;let o=\"\";for(let r=0;r>4)+i.charAt(r&15)]=String.fromCharCode(r);t.length%2&&(t=\"0\"+t);const s=[];let n=0;for(let r=0;r0){const n=i[0];return this.key=0,this.value=n,n}else return null}any(t){const i=this.Wt;i.lr=null;const e=i.ht;this.Dt=-1;const s=i.r,n=s.length,o=this.Ls;for(let r=0;r=0?(this.key=i,this.value=t.r[i],!0):(this.dl(),!1)}hasNext(){return this.next()}first(){const t=this.Wt;this.Gt=t.ht;const i=t.r,e=i.length-1;if(this.Dt=e,e>=0){const s=i[e];return this.key=e,this.value=s,s}else return null}any(t){const i=this.Wt;i.hr=null;const e=i.ht,s=i.r,n=s.length;this.Dt=n;for(let o=n-1;o>=0;o--){const r=s[o];if(t(r))return!0;i.ht!==e&&Util.ve(i)}return!1}all(t){const i=this.Wt;i.hr=null;const e=i.ht,s=i.r,n=s.length;this.Dt=n;for(let o=n-1;o>=0;o--){const r=s[o];if(!t(r))return!1;i.ht!==e&&Util.ve(i)}return!0}each(t){const i=this.Wt;i.hr=null;const e=i.ht,s=i.r,n=s.length;this.Dt=n;for(let o=n-1;o>=0;o--){const r=s[o];t(r),i.ht!==e&&Util.ve(i)}return this}map(t){const i=this.Wt;i.hr=null;const e=i.ht,s=[],n=i.r,o=n.length;this.Dt=o;for(let l=o-1;l>=0;l--){const h=n[l];s.push(t(h)),i.ht!==e&&Util.ve(i)}const r=new List;return r.r=s,r.Oe(),r.iterator}filter(t){const i=this.Wt;i.hr=null;const e=i.ht,s=[],n=i.r,o=n.length;this.Dt=o;for(let l=o-1;l>=0;l--){const h=n[l];t(h)&&s.push(h),i.ht!==e&&Util.ve(i)}const r=new List;return r.r=s,r.Oe(),r.iterator}get count(){return this.Wt.r.length}dl(){this.key=-1,this.value=null,this.Gt=-1,this.Wt.hr=this}toString(){return\"ListIteratorBackwards(\"+this.Dt+\"/\"+this.Wt.count+\")\"}}class List{h;r;ht;lr;hr;constructor(t){GSet.ji(this),this.h=!1,this.r=[],this.ht=0,this.lr=null,this.hr=null,t!==void 0&&this.addAll(t)}[Symbol.iterator](){return this.r.values()}Oe(){let t=this.ht;t++,t>999999999&&(t=0),this.ht=t}g(){return this.h=!0,this}ot(){return this.h=!1,this}toString(){return\"List()#\"+GSet.as(this)}add(t){return this.h&&Util.T(this,t),this.r.push(t),this.Oe(),this}push(t){this.add(t)}addAll(t){if(t===null)return this;this.h&&Util.T(this);const i=this.r;if(Array.isArray(t)){const e=t.length;for(let s=0;s=i.length)&&Util._(t,\"0 <= i < length\",List,\"elt:i\"),i[t]}get(t){return this.elt(t)}setElt(t,i){const e=this.r;(t<0||t>=e.length)&&Util._(t,\"0 <= i < length\",List,\"setElt:i\"),this.h&&Util.T(this,t),e[t]=i}set(t,i){this.setElt(t,i)}first(){const t=this.r;return t.length===0?null:t[0]}last(){const t=this.r,i=t.length;return i>0?t[i-1]:null}pop(){this.h&&Util.T(this);const t=this.r;return t.length>0?t.pop():null}any(t){const i=this.r,e=this.ht,s=i.length;for(let n=0;n= 0\",List,\"insertAt:i\"),this.h&&Util.T(this,t);const e=this.r;t>=e.length?e.push(i):e.splice(t,0,i),this.Oe()}remove(t){return this.delete(t)}delete(t){if(t===null)return!1;this.h&&Util.T(this,t);const i=this.r,e=i.indexOf(t);return e===-1?!1:(e===i.length-1?i.pop():i.splice(e,1),this.Oe(),!0)}removeAt(t){const i=this.r;(t<0||t>=i.length)&&Util._(t,\"0 <= i < length\",List,\"removeAt:i\"),this.h&&Util.T(this,t),t===i.length-1?i.pop():i.splice(t,1),this.Oe()}removeRange(t,i){const e=this.r,s=e.length;if(t<0)t=0;else if(t>=s)return this;if(i<0)return this;if(i>=s&&(i=s-1),t>i)return this;this.h&&Util.T(this);let n=t,o=i+1;for(;o0&&(t.r=Array.prototype.slice.call(i)),t}toArray(){const t=this.r,i=this.count,e=new Array(i);for(let s=0;s=n-1)&&Util._(i,\"0 <= from < length\",List,\"sortRange:from\"),o===2){const r=s[i],l=s[i+1];return t(r,l)>0&&(s[i]=l,s[i+1]=r,this.Oe()),this}if(i===0)if(e>=n)s.sort(t);else{const r=s.slice(0,e);r.sort(t);for(let l=0;l=n){const r=s.slice(i);r.sort(t);for(let l=i;li.add(t(e))),i.iterator}filter(t){const i=new List;return this.ko.w.forEach(e=>{t(e)&&i.add(e)}),i.iterator}get count(){return this.ko.count}dl(){this.key=null,this.value=null,this.si=null}toString(){return\"SetIterator\"}}class GSet{h;w;constructor(t){this.h=!1,this.w=new Set,t!==void 0&&this.addAll(t)}[Symbol.iterator](){return this.w.values()}values(){return this.w.values()}g(){return this.h=!0,this}ot(){return this.h=!1,this}toString(){return\"Set()#\"+GSet.as(this)}add(t){return t===null?this:(this.w.add(t),this)}addAll(t){if(t===null)return this;if(Array.isArray(t)){const i=t.length;for(let e=0;et.add(i)),t}toArray(){return Array.from(this.w)}toList(){const t=new List;return this.w.forEach(i=>t.add(i)),t}get count(){return this.w.size}get size(){return this.w.size}get iterator(){return this.w.size<=0?EmptyIterator.instance:new SetIterator(this)}entries(){return this.w.entries()}keys(){return this.w.keys()}forEach(t,i){return this.w.forEach(t,i)}static Eg=1;static ji(t){t.__gohashid=GSet.Eg++}static as(t){return t.__gohashid}}class MapKeySetIterator{Z;si;constructor(t){this.Z=t,this.si=t.w.keys()}[Symbol.iterator](){return this.Z.w.keys()}key;value;get iterator(){return this}reset(){const t=this.Z;this.si=t.w.keys()}next(){const t=this.si.next();return this.value=t.value,this.key=t.value,!t.done}hasNext(){return this.next()}first(){return this.Z.w.size===0?null:(this.si=this.Z.w.keys(),this.si.next().value)}any(t){for(const i of this.Z.w)if(t(i[0]))return!0;return!1}all(t){for(const i of this.Z.w)if(!t(i[0]))return!1;return!0}each(t){for(const i of this.Z.w)t(i[0]);return this}map(t){const i=this.Z,e=new List;for(const s of i.w)e.add(t(s[0]));return e.iterator}filter(t){const i=this.Z,e=new List;for(const s of i.w){const n=s[0];t(n)&&e.add(n)}return e.iterator}get count(){return this.Z.size}dl(){this.key=null,this.value=null,this.si=null}toString(){return\"MapKeySetIterator\"}}class MapKeySet extends GSet{Z;constructor(t){super(),GSet.ji(this),this.h=!0,this.Z=t}[Symbol.iterator](){return this.w.keys()}values(){return this.w.keys()}g(){return this}ot(){return this}toString(){return\"MapKeySet(\"+this.Z.toString()+\")\"}add(t){Util.o(\"This Set is read-only: \"+this.toString())}has(t){return this.Z.has(t)}contains(t){return this.has(t)}delete(t){Util.o(\"This Set is read-only: \"+this.toString())}remove(t){return this.delete(t)}clear(){Util.o(\"This Set is read-only: \"+this.toString())}first(){return this.Z.w.size===0?null:this.Z.w.keys().next().value}any(t){for(const i of this.Z.w)if(t(i[0]))return!0;return!1}all(t){for(const i of this.Z.w)if(!t(i[0]))return!1;return!0}each(t){for(const i of this.Z.w)t(i[0]);return this}map(t){const i=new GSet;for(const e of this.Z.w)i.add(t(e[0]));return i}filter(t){const i=new GSet;for(const e of this.Z.w){const s=e[0];t(s)&&i.add(s)}return i}copy(){return new MapKeySet(this.Z)}toSet(){const t=new GSet,i=this.Z.w;for(const e of i)t.add(e[0]);return t}toArray(){const t=this.Z.w,i=new Array(t.size);let e=0;for(const s of t)i[e]=s[0],e++;return i}toList(){const t=new List,i=this.Z.w;for(const e of i)t.add(e[0]);return t}get count(){return this.Z.size}get size(){return this.Z.size}get iterator(){return this.Z.size<=0?EmptyIterator.instance:new MapKeySetIterator(this.Z)}}class MapValueSetIterator{Z;si;constructor(t){this.Z=t,this.si=t.w.values()}[Symbol.iterator](){return this.Z.w.values()}key;value;get iterator(){return this}reset(){const t=this.Z;this.si=t.w.values()}next(){const t=this.si.next();return this.value=t.value,this.key=t.value,!t.done}hasNext(){return this.next()}first(){return this.Z.w.size===0?null:(this.si=this.Z.w.values(),this.si.next().value)}any(t){for(const i of this.Z.w)if(t(i[1]))return!0;return!1}all(t){for(const i of this.Z.w)if(!t(i[1]))return!1;return!0}each(t){for(const i of this.Z.w)t(i[1]);return this}map(t){const i=this.Z,e=new List;for(const s of i.w)e.add(t(s[1]));return e.iterator}filter(t){const i=this.Z,e=new List;for(const s of i.w){const n=s[1];t(n)&&e.add(n)}return e.iterator}get count(){return this.Z.size}dl(){this.key=null,this.value=null,this.si=null}toString(){return\"MapValueSetIterator\"}}class KeyValuePair{constructor(t,i){this.key=t,this.value=i}toString(){return\"{\"+this.key+\":\"+this.value+\"}\"}key;value}class MapIterator{Z;si;constructor(t){this.Z=t,this.si=t.w.entries()}[Symbol.iterator](){return this.Z.w.entries()}key;value;get iterator(){return this}reset(){const t=this.Z;this.si=t.w.entries()}next(){const t=this.si.next();return t.done?(this.key=null,this.value=null,!1):(this.key=t.value[0],this.value=t.value[1],!0)}hasNext(){return this.next()}first(){if(this.Z.w.size===0)return null;this.si=this.Z.w.entries();const t=this.si.next().value;return this.key=t[0],this.value=t[1],new KeyValuePair(t[0],t[1])}any(t){return this.Z.any(t)}all(t){return this.Z.all(t)}each(t){return this.Z.each(t),this}map(t){const i=new List;let e=null;return this.Z.w.forEach((s,n)=>{e===null?e=new KeyValuePair(n,s):(e.key=n,e.value=s),i.add(t(e))}),i.iterator}filter(t){const i=new List;let e=null;return this.Z.w.forEach((s,n)=>{e===null?e=new KeyValuePair(n,s):(e.key=n,e.value=s),t(e)&&(i.add(e),e=null)}),i.iterator}get count(){return this.Z.size}dl(){this.key=null,this.value=null,this.si=null}toString(){return\"MapIterator\"}}class GMap{h;w;constructor(t){GSet.ji(this),this.h=!1,this.w=new Map,t!==void 0&&this.addAll(t)}[Symbol.iterator](){return this.w.entries()}entries(){return this.w.entries()}g(){return this.h=!0,this}ot(){return this.h=!1,this}toString(){return\"Map()#\"+GSet.as(this)}set(t,i){return this.h&&Util.T(this,t),this.w.set(t,i),this}add(t,i){return this.set(t,i)}addAll(t){if(t===null)return this;if(this.h&&Util.T(this),Array.isArray(t)){const i=t.length;for(let e=0;ei.x.toFixed(t)+\" \"+i.y.toFixed(t)}toString(){return\"Point(\"+this.x+\",\"+this.y+\")\"}equals(t){return t instanceof Point?this.b===t.x&&this.k===t.y:!1}equalTo(t,i){return this.b===t&&this.k===i}equalsApprox(t){return Geo.u(this.b,t.x)&&Geo.u(this.k,t.y)}add(t){return this.b+=t.x,this.k+=t.y,this}subtract(t){return this.b-=t.x,this.k-=t.y,this}offset(t,i){return this.b+=t,this.k+=i,this}rotate(t){if(t===0)return this;const i=this.b,e=this.k;if(i===0&&e===0)return this;let s=0,n=0;if(t>=360?t-=360:t<0&&(t+=360),t===90)s=0,n=1;else if(t===180)s=-1,n=0;else if(t===270)s=0,n=-1;else{const o=t*Math.PI/180;s=Math.cos(o),n=Math.sin(o)}return this.b=s*i-n*e,this.k=n*i+s*e,this}scale(t,i){return this.b*=t,this.k*=i,this}distanceSquaredPoint(t){const i=t.x-this.b,e=t.y-this.k;return i*i+e*e}distanceSquared(t,i){const e=t-this.b,s=i-this.k;return e*e+s*s}normalize(){const t=this.b,i=this.k,e=Math.sqrt(t*t+i*i);return e>0&&(this.b=t/e,this.k=i/e),this}directionPoint(t){return this.$N(t.x-this.b,t.y-this.k)}direction(t,i){return this.$N(t-this.b,i-this.k)}$N(t,i){if(t===0)return i>0?90:i<0?270:0;if(i===0)return t>0?0:180;{if(isNaN(t)||isNaN(i))return 0;let e=Math.atan(Math.abs(i/t))*180/Math.PI;return t<0?i<0?e+=180:e=180-e:i<0&&(e=360-e),e}}static compareWithLineSegment(t,i,e,s,n,o){return Geo.ou(t,i,e,s,n,o)}compareWithLineSegmentPoint(t,i){return Geo.ou(t.x,t.y,i.x,i.y,this.x,this.y)}static intersectingLineSegments(t,i,e,s,n,o,r,l){return Geo.ru(t,i,e,s,n,o,r,l)}projectOntoLineSegment(t,i,e,s){return Geo.gl(t,i,e,s,this.b,this.k,this),this}projectOntoLineSegmentPoint(t,i){return Geo.gl(t.x,t.y,i.x,i.y,this.b,this.k,this),this}snapToGrid(t,i,e,s){return Geo.Bg(this.b,this.k,t,i,e,s,this),this}snapToGridPoint(t,i){return Geo.Bg(this.b,this.k,t.x,t.y,i.width,i.height,this),this}setRectSpot(t,i){return this.b=t.x+i.x*t.width+i.offsetX,this.k=t.y+i.y*t.height+i.offsetY,this}setSpot(t,i,e,s,n){return this.b=t+n.x*e+n.offsetX,this.k=i+n.y*s+n.offsetY,this}D(t){return t.xt(this),this}Ie(t){return t.ts(this),this}static distanceLineSegmentSquared(t,i,e,s,n,o){let r=n-e,l=o-s;const h=r*r+l*l,a=e-t,c=s-i,f=-a*r-c*l;if(f<=0||f>=h)return r=n-t,l=o-i,Math.min(a*a+c*c,r*r+l*l);{const u=r*c-l*a;return u*u/h}}static distanceSquared(t,i,e,s){const n=e-t,o=s-i;return n*n+o*o}static direction(t,i,e,s){const n=e-t,o=s-i;if(n===0)return o>0?90:o<0?270:0;if(o===0)return n>0?0:180;{if(isNaN(n)||isNaN(o))return 0;let r=Math.atan(Math.abs(o/n))*180/Math.PI;return n<0?o<0?r+=180:r=180-r:o<0&&(r=360-r),r}}get x(){return this.b}set x(t){this.b=t}get y(){return this.k}set y(t){this.k=t}isReal(){return isFinite(this.x)&&isFinite(this.y)}static Po=new Point(0,0).it();static ZN=new Point(-1/0,-1/0).it();static QN=new Point(1/0,1/0).it();static _N=new Point(6,6).it();static Ak=new Point(NaN,NaN).it();static Tk=[];static l(){const t=Point.Tk.pop();return t===void 0?new Point:t}static X(t,i){const e=Point.Tk.pop();return e===void 0?new Point(t,i):(e.x=t,e.y=i,e)}static s(t){Point.Tk.push(t)}}class Size{j;H;h;constructor(t,i){t===void 0?(this.j=0,this.H=0):typeof t==\"number\"&&(t>=0||isNaN(t))&&typeof i==\"number\"&&(i>=0||isNaN(i))?(this.j=t,this.H=i):Util.o(\"Invalid arguments to Size constructor: \"+t+\", \"+i),this.h=!1}a(t){return this.j=t.j,this.H=t.H,this}e(t,i){return this.j=t,this.H=i,this}setTo(t,i){return this.j=t,this.H=i,this}set(t){return this.j=t.j,this.H=t.H,this}copy(){const t=new Size;return t.j=this.j,t.H=this.H,t}it(){return this.h=!0,Object.freeze(this),this}N(){return this.h||Object.isFrozen(this)?this:this.copy().g()}g(){return this.h=!0,this}ot(){return Object.isFrozen(this)&&Util.o(\"cannot thaw constant: \"+this),this.h=!1,this}dw(t){}static parse(t){if(typeof t==\"string\"){const i=t.split(\" \");let e=0,s=0;for(;i[e]===\"\";)e++;let n=i[e++];n&&(s=parseFloat(n));let o=0;for(;i[e]===\"\";)e++;return n=i[e++],n&&(o=parseFloat(n)),new Size(s,o)}else return new Size}static stringify(t){return t.width.toString()+\" \"+t.height.toString()}static stringifyFixed(t){return Util.i(t,\"number\",Size,\"stringifyFixed:digits\"),i=>i.width.toFixed(t)+\" \"+i.height.toFixed(t)}toString(){return\"Size(\"+this.width+\",\"+this.height+\")\"}equals(t){return t instanceof Size?this.j===t.width&&this.H===t.height:!1}equalTo(t,i){return this.j===t&&this.H===i}equalsApprox(t){return Geo.u(this.j,t.width)&&Geo.u(this.H,t.height)}inflate(t,i){const e=this.width+t;this.j=e>=0?e:0;const s=this.height+i;return this.H=s>=0?s:0,this}get width(){return this.j}set width(t){t<0&&Util._(t,\">= 0\",Size,\"width\"),this.j=t}get height(){return this.H}set height(t){t<0&&Util._(t,\">= 0\",Size,\"height\"),this.H=t}isReal(){return isFinite(this.width)&&isFinite(this.height)}static lu=new Size(0,0).it();static Dk=new Size(1,1).it();static tC=new Size(6,6).it();static hu=new Size(8,8).it();static iC=new Size(10,10).it();static eC=new Size(1/0,1/0).it();static gw=new Size(NaN,NaN).it();static sC=[];static l(){const t=Size.sC.pop();return t===void 0?new Size:t}static s(t){Size.sC.push(t)}}class Rect{b;k;j;H;h;constructor(t,i,e,s){if(t===void 0)this.b=0,this.k=0,this.j=0,this.H=0;else if(typeof t==\"number\"&&typeof i==\"number\"&&typeof e==\"number\"&&(e>=0||isNaN(e))&&typeof s==\"number\"&&(s>=0||isNaN(s)))this.b=t,this.k=i,this.j=e,this.H=s;else if(t instanceof Point){const n=t.x,o=t.y;if(i instanceof Point){const r=i.x,l=i.y;this.b=Math.min(n,r),this.k=Math.min(o,l),this.j=Math.abs(n-r),this.H=Math.abs(o-l)}else i instanceof Size?(this.b=n,this.k=o,this.j=i.width,this.H=i.height):Util.o(\"Incorrect second argument supplied to Rect constructor \"+i)}else Util.o(\"Invalid arguments to Rect constructor: \"+t+\", \"+i+\", \"+e+\", \"+s);this.h=!1}a(t){return this.b=t.b,this.k=t.k,this.j=t.j,this.H=t.H,this}e(t,i,e,s){return this.b=t,this.k=i,this.j=e,this.H=s,this}En(t,i){return this.j=t,this.H=i,this}setTo(t,i,e,s){return this.b=t,this.k=i,this.j=e,this.H=s,this}set(t){return this.b=t.b,this.k=t.k,this.j=t.j,this.H=t.H,this}setPoint(t){return this.b=t.x,this.k=t.y,this}setSize(t){return this.j=t.width,this.H=t.height,this}copy(){const t=new Rect;return t.b=this.b,t.k=this.k,t.j=this.j,t.H=this.H,t}it(){return this.h=!0,Object.freeze(this),this}N(){return this.h||Object.isFrozen(this)?this:this.copy().g()}g(){return this.h=!0,this}ot(){return Object.isFrozen(this)&&Util.o(\"cannot thaw constant: \"+this),this.h=!1,this}dw(t){}static parse(t){if(typeof t==\"string\"){const i=t.split(\" \");let e=0,s=0;for(;i[e]===\"\";)e++;let n=i[e++];n&&(s=parseFloat(n));let o=0;for(;i[e]===\"\";)e++;n=i[e++],n&&(o=parseFloat(n));let r=0;for(;i[e]===\"\";)e++;n=i[e++],n&&(r=parseFloat(n));let l=0;for(;i[e]===\"\";)e++;return n=i[e++],n&&(l=parseFloat(n)),new Rect(s,o,r,l)}else return new Rect}static stringify(t){return t.x.toString()+\" \"+t.y.toString()+\" \"+t.width.toString()+\" \"+t.height.toString()}static stringifyFixed(t){return Util.i(t,\"number\",Rect,\"stringifyFixed:digits\"),i=>i.x.toFixed(t)+\" \"+i.y.toFixed(t)+\" \"+i.width.toFixed(t)+\" \"+i.height.toFixed(t)}toString(){return\"Rect(\"+this.x+\",\"+this.y+\",\"+this.width+\",\"+this.height+\")\"}equals(t){return t instanceof Rect?this.b===t.x&&this.k===t.y&&this.j===t.width&&this.H===t.height:!1}equalTo(t,i,e,s){return this.b===t&&this.k===i&&this.j===e&&this.H===s}equalsApprox(t){return Geo.u(this.b,t.x)&&Geo.u(this.k,t.y)&&Geo.u(this.j,t.width)&&Geo.u(this.H,t.height)}equalsApproxTo(t,i,e,s){return Geo.u(this.b,t)&&Geo.u(this.k,i)&&Geo.u(this.j,e)&&Geo.u(this.H,s)}equalsApproxClose(t){return Geo.K(this.b,t.x)&&Geo.K(this.k,t.y)&&Geo.K(this.j,t.width)&&Geo.K(this.H,t.height)}containsPoint(t){return this.b<=t.x&&this.b+this.j>=t.x&&this.k<=t.y&&this.k+this.H>=t.y}containsRect(t){return this.b<=t.x&&t.x+t.width<=this.b+this.j&&this.k<=t.y&&t.y+t.height<=this.k+this.H}contains(t,i,e,s){return e===void 0&&(e=0),s===void 0&&(s=0),this.b<=t&&t+e<=this.b+this.j&&this.k<=i&&i+s<=this.k+this.H}offset(t,i){return this.b+=t,this.k+=i,this}inflate(t,i){return this.mw(i,t,i,t)}addMargin(t){return this.mw(t.top,t.right,t.bottom,t.left)}subtractMargin(t){return this.mw(-t.top,-t.right,-t.bottom,-t.left)}grow(t,i,e,s){return this.mw(t,i,e,s)}mw(t,i,e,s){const n=this.j;i+s<=-n?(this.b+=n/2,this.j=0):(this.b-=s,this.j+=i+s);const o=this.H;return t+e<=-o?(this.k+=o/2,this.H=0):(this.k-=t,this.H+=t+e),this}intersectRect(t){return this.nC(t.x,t.y,t.width,t.height)}intersect(t,i,e,s){return this.nC(t,i,e,s)}nC(t,i,e,s){const n=Math.max(this.b,t),o=Math.max(this.k,i),r=Math.min(this.b+this.j,t+e),l=Math.min(this.k+this.H,i+s);return this.b=n,this.k=o,this.j=Math.max(0,r-n),this.H=Math.max(0,l-o),this}intersectsRect(t){return this.intersects(t.x,t.y,t.width,t.height)}intersects(t,i,e,s){let n=this.j;const o=this.b;if(n!==1/0&&e!==1/0&&(n+=o,e+=t,isNaN(e)||isNaN(n)||o>e||t>n))return!1;let r=this.H;const l=this.k;return!(r!==1/0&&s!==1/0&&(r+=l,s+=i,isNaN(s)||isNaN(r)||l>s||i>r))}intersectsRectPlus(t,i){let e=this.j,s=t.width+i+i;const n=this.b,o=t.x-i;if(e+=n,s+=o,n>s||o>e)return!1;let r=this.H,l=t.height+i+i;const h=this.k,a=t.y-i;return r+=h,l+=a,!(h>l||a>r)}unionPoint(t){return this.unionNoCheck(t.x,t.y,0,0)}unionRect(t){return this.unionNoCheck(t.b,t.k,t.j,t.H)}union(t,i,e,s){return e===void 0&&(e=0),s===void 0&&(s=0),this.unionNoCheck(t,i,e,s)}unionNoCheck(t,i,e,s){const n=Math.min(this.b,t),o=Math.min(this.k,i),r=Math.max(this.b+this.j,t+e),l=Math.max(this.k+this.H,i+s);return this.b=n,this.k=o,this.j=r-n,this.H=l-o,this}setSpot(t,i,e){return this.b=t-e.offsetX-e.x*this.j,this.k=i-e.offsetY-e.y*this.H,this}static contains(t,i,e,s,n,o,r,l){return r===void 0&&(r=0),l===void 0&&(l=0),t<=n&&n+r<=t+e&&i<=o&&o+l<=i+s}static intersects(t,i,e,s,n,o,r,l){let h=e,a=r;const c=t,f=n;if(h+=c,a+=f,c>a||f>h)return!1;let u=s,d=l;const m=i,g=o;return u+=m,d+=g,!(m>d||g>u)}static intersectsLineSegment(t,i,e,s,n,o,r,l){return Geo.oC(t,i,e,s,n,o,r,l)}get x(){return this.b}set x(t){this.b=t}get y(){return this.k}set y(t){this.k=t}get width(){return this.j}set width(t){t<0&&Util._(t,\">= 0\",Rect,\"width\"),this.j=t}get height(){return this.H}set height(t){t<0&&Util._(t,\">= 0\",Rect,\"height\"),this.H=t}get left(){return this.b}set left(t){this.b=t}get top(){return this.k}set top(t){this.k=t}get right(){return this.b+this.j}set right(t){this.b+=t-(this.b+this.j)}get bottom(){return this.k+this.H}set bottom(t){this.k+=t-(this.k+this.H)}get position(){return new Point(this.b,this.k)}set position(t){this.b=t.x,this.k=t.y}get size(){return new Size(this.j,this.H)}set size(t){this.j=t.width,this.H=t.height}get center(){return new Point(this.b+this.j/2,this.k+this.H/2)}set center(t){this.b=t.x-this.j/2,this.k=t.y-this.H/2}get centerX(){return this.b+this.j/2}set centerX(t){this.b=t-this.j/2}get centerY(){return this.k+this.H/2}set centerY(t){this.k=t-this.H/2}isReal(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)}isEmpty(){return this.width===0&&this.height===0}static pw=new Rect(0,0,0,0).it();static DD=new Rect(NaN,NaN,NaN,NaN).it();static Fk=[];static l(){const t=Rect.Fk.pop();return t===void 0?new Rect:t}static X(t,i,e,s){const n=Rect.Fk.pop();return n===void 0?new Rect(t,i,e,s):n.e(t,i,e,s)}static s(t){Rect.Fk.push(t)}}class Margin{nn;on;rn;ln;h;constructor(t,i,e,s){t===void 0?(this.nn=0,this.on=0,this.rn=0,this.ln=0):i===void 0?(i=t,e=t,s=t,this.top=t,this.right=i,this.bottom=e,this.left=s):e===void 0?(e=t,s=i,this.top=t,this.right=i,this.bottom=e,this.left=s):s!==void 0?(this.top=t,this.right=i,this.bottom=e,this.left=s):Util.o(\"Invalid arguments to Margin constructor: \"+t+\", \"+i+\", \"+e+\", \"+s),this.h=!1}a(t){return this.nn=t.nn,this.on=t.on,this.rn=t.rn,this.ln=t.ln,this}setTo(t,i,e,s){return this.nn=t,this.on=i,this.rn=e,this.ln=s,this}set(t){return this.nn=t.nn,this.on=t.on,this.rn=t.rn,this.ln=t.ln,this}copy(){const t=new Margin;return t.nn=this.nn,t.on=this.on,t.rn=this.rn,t.ln=this.ln,t}it(){return this.h=!0,Object.freeze(this),this}N(){return this.h||Object.isFrozen(this)?this:this.copy().g()}g(){return this.h=!0,this}ot(){return Object.isFrozen(this)&&Util.o(\"cannot thaw constant: \"+this),this.h=!1,this}dw(t){}static parse(t){if(typeof t==\"string\"){const i=t.split(\" \");let e=0,s=NaN;for(;i[e]===\"\";)e++;let n=i[e++];if(n&&(s=parseFloat(n)),isNaN(s))return new Margin;let o=NaN;for(;i[e]===\"\";)e++;if(n=i[e++],n&&(o=parseFloat(n)),isNaN(o))return new Margin(s);let r=NaN;for(;i[e]===\"\";)e++;if(n=i[e++],n&&(r=parseFloat(n)),isNaN(r))return new Margin(s,o);let l=NaN;for(;i[e]===\"\";)e++;return n=i[e++],n&&(l=parseFloat(n)),isNaN(l)?new Margin(s,o):new Margin(s,o,r,l)}else return new Margin}static stringify(t){return t.top.toString()+\" \"+t.right.toString()+\" \"+t.bottom.toString()+\" \"+t.left.toString()}static stringifyFixed(t){return Util.i(t,\"number\",Margin,\"stringifyFixed:digits\"),i=>i.top.toFixed(t)+\" \"+i.right.toFixed(t)+\" \"+i.bottom.toFixed(t)+\" \"+i.left.toFixed(t)}toString(){return\"Margin(\"+this.top+\",\"+this.right+\",\"+this.bottom+\",\"+this.left+\")\"}equals(t){return t instanceof Margin?this.nn===t.top&&this.on===t.right&&this.rn===t.bottom&&this.ln===t.left:!1}equalTo(t,i,e,s){return this.nn===t&&this.on===i&&this.rn===e&&this.ln===s}equalsApprox(t){return Geo.u(this.nn,t.top)&&Geo.u(this.on,t.right)&&Geo.u(this.rn,t.bottom)&&Geo.u(this.ln,t.left)}get top(){return this.nn}set top(t){this.nn=t}get right(){return this.on}set right(t){this.on=t}get bottom(){return this.rn}set bottom(t){this.rn=t}get left(){return this.ln}set left(t){this.ln=t}isReal(){return isFinite(this.top)&&isFinite(this.right)&&isFinite(this.bottom)&&isFinite(this.left)}static Ug=new Margin(0,0,0,0).it();static rC=new Margin(2,2,2,2).it();static lC=[];static l(){const t=Margin.lC.pop();return t===void 0?new Margin:t}static s(t){Margin.lC.push(t)}}class Spot{b;k;As;Ts;h;constructor(t,i,e,s){t===void 0?(this.b=0,this.k=0,this.As=0,this.Ts=0):(i===void 0&&(i=0),e===void 0&&(e=0),s===void 0&&(s=0),this.x=t,this.y=i,this.offsetX=e,this.offsetY=s),this.h=!1}a(t){return this.b=t.b,this.k=t.k,this.As=t.As,this.Ts=t.Ts,this}setTo(t,i,e,s){return this.b=t,this.k=i,this.As=e,this.Ts=s,this}set(t){return this.b=t.b,this.k=t.k,this.As=t.As,this.Ts=t.Ts,this}copy(){const t=new Spot;return t.b=this.b,t.k=this.k,t.As=this.As,t.Ts=this.Ts,t}it(){return this.h=!0,Object.freeze(this),this}N(){return this.h||Object.isFrozen(this)?this:this.copy().g()}g(){return this.h=!0,this}ot(){return Object.isFrozen(this)&&Util.o(\"cannot thaw constant: \"+this),this.h=!1,this}dw(t){}Ee(t){return this.b=NaN,this.k=NaN,this.As=t,this}tE(t,i){(isNaN(t)||t>1||t<0)&&Util._(t,\"0 <= \"+i+\" <= 1\",Spot,i)}iE(t,i){(isNaN(t)||t===1/0||t===-1/0)&&Util._(t,\"real number, not NaN or Infinity\",Spot,i)}static parse(t){if(typeof t==\"string\"){if(t=t.trim(),t===\"None\")return Spot.None;if(t===\"TopLeft\")return Spot.TopLeft;if(t===\"Top\"||t===\"TopCenter\"||t===\"MiddleTop\")return Spot.TopCenter;if(t===\"TopRight\")return Spot.TopRight;if(t===\"Left\"||t===\"LeftCenter\"||t===\"MiddleLeft\")return Spot.LeftCenter;if(t===\"Center\")return Spot.Center;if(t===\"Right\"||t===\"RightCenter\"||t===\"MiddleRight\")return Spot.RightCenter;if(t===\"BottomLeft\")return Spot.BottomLeft;if(t===\"Bottom\"||t===\"BottomCenter\"||t===\"MiddleBottom\")return Spot.BottomCenter;if(t===\"BottomRight\")return Spot.BottomRight;if(t===\"TopSide\")return Spot.TopSide;if(t===\"LeftSide\")return Spot.LeftSide;if(t===\"RightSide\")return Spot.RightSide;if(t===\"BottomSide\")return Spot.BottomSide;if(t===\"TopBottomSides\")return Spot.TopBottomSides;if(t===\"LeftRightSides\")return Spot.LeftRightSides;if(t===\"TopLeftSides\")return Spot.TopLeftSides;if(t===\"TopRightSides\")return Spot.TopRightSides;if(t===\"BottomLeftSides\")return Spot.BottomLeftSides;if(t===\"BottomRightSides\")return Spot.BottomRightSides;if(t===\"NotTopSide\")return Spot.NotTopSide;if(t===\"NotLeftSide\")return Spot.NotLeftSide;if(t===\"NotRightSide\")return Spot.NotRightSide;if(t===\"NotBottomSide\")return Spot.NotBottomSide;if(t===\"AllSides\")return Spot.AllSides;if(t===\"Default\")return Spot.Default;const i=t.split(\" \");let e=0,s=0;for(;i[e]===\"\";)e++;let n=i[e++];n!==void 0&&n.length>0&&(s=parseFloat(n));let o=0;for(;i[e]===\"\";)e++;n=i[e++],n!==void 0&&n.length>0&&(o=parseFloat(n));let r=0;for(;i[e]===\"\";)e++;n=i[e++],n!==void 0&&n.length>0&&(r=parseFloat(n));let l=0;for(;i[e]===\"\";)e++;return n=i[e++],n!==void 0&&n.length>0&&(l=parseFloat(n)),new Spot(s,o,r,l)}else return new Spot}static stringify(t){return t.isSpot()?t.x.toString()+\" \"+t.y.toString()+\" \"+t.offsetX.toString()+\" \"+t.offsetY.toString():t.toString()}static stringifyFixed(t){return Util.i(t,\"number\",Spot,\"stringifyFixed:digits\"),i=>i.x.toFixed(t)+\" \"+i.y.toFixed(t)+\" \"+i.offsetX.toFixed(t)+\" \"+i.offsetY.toFixed(t)}toString(){return this.isSpot()?this.As===0&&this.Ts===0?\"Spot(\"+this.x+\",\"+this.y+\")\":\"Spot(\"+this.x+\",\"+this.y+\",\"+this.offsetX+\",\"+this.offsetY+\")\":this.equals(Spot.None)?\"None\":this.equals(Spot.TopLeft)?\"TopLeft\":this.equals(Spot.TopCenter)?\"Top\":this.equals(Spot.TopRight)?\"TopRight\":this.equals(Spot.LeftCenter)?\"Left\":this.equals(Spot.Center)?\"Center\":this.equals(Spot.RightCenter)?\"Right\":this.equals(Spot.BottomLeft)?\"BottomLeft\":this.equals(Spot.BottomCenter)?\"Bottom\":this.equals(Spot.BottomRight)?\"BottomRight\":this.equals(Spot.TopSide)?\"TopSide\":this.equals(Spot.LeftSide)?\"LeftSide\":this.equals(Spot.RightSide)?\"RightSide\":this.equals(Spot.BottomSide)?\"BottomSide\":this.equals(Spot.TopBottomSides)?\"TopBottomSides\":this.equals(Spot.LeftRightSides)?\"LeftRightSides\":this.equals(Spot.TopLeftSides)?\"TopLeftSides\":this.equals(Spot.TopRightSides)?\"TopRightSides\":this.equals(Spot.BottomLeftSides)?\"BottomLeftSides\":this.equals(Spot.BottomRightSides)?\"BottomRightSides\":this.equals(Spot.NotTopSide)?\"NotTopSide\":this.equals(Spot.NotLeftSide)?\"NotLeftSide\":this.equals(Spot.NotRightSide)?\"NotRightSide\":this.equals(Spot.NotBottomSide)?\"NotBottomSide\":this.equals(Spot.AllSides)?\"AllSides\":this.equals(Spot.Default)?\"Default\":\"None\"}equals(t){return t instanceof Spot?(this.b===t.x||isNaN(this.b)&&isNaN(t.x))&&(this.k===t.y||isNaN(this.k)&&isNaN(t.y))&&this.As===t.offsetX&&this.Ts===t.offsetY:!1}opposite(){return new Spot(.5-(this.b-.5),.5-(this.k-.5),-this.As,-this.Ts)}includesSide(t){if(!this.isSide())return!1;if(!t.isSide())if(t.equals(Spot.Left))t=Spot.LeftSide;else if(t.equals(Spot.Right))t=Spot.RightSide;else if(t.equals(Spot.Top))t=Spot.TopSide;else if(t.equals(Spot.Bottom))t=Spot.BottomSide;else return!1;const i=this.Ts,e=t.offsetY;return(i&e)===e}get x(){return this.b}set x(t){this.b=t}get y(){return this.k}set y(t){this.k=t}get offsetX(){return this.As}set offsetX(t){this.As=t}get offsetY(){return this.Ts}set offsetY(t){this.Ts=t}isSpot(){return!isNaN(this.x)&&!isNaN(this.y)}isNoSpot(){return isNaN(this.x)||isNaN(this.y)}isSide(){return isNaN(this.x)&&isNaN(this.y)&&this.offsetX===1&&this.offsetY!==0}isNone(){return isNaN(this.x)&&isNaN(this.y)&&this.offsetX===0&&this.offsetY===0}isDefault(){return isNaN(this.x)&&isNaN(this.y)&&this.offsetX===-1&&this.offsetY===0}static None=new Spot(0,0,0,0).Ee(0).it();static Default=new Spot(0,0,-1,0).Ee(-1).it();static TopLeft=new Spot(0,0,0,0).it();static TopCenter=new Spot(.5,0,0,0).it();static TopRight=new Spot(1,0,0,0).it();static LeftCenter=new Spot(0,.5,0,0).it();static Center=new Spot(.5,.5,0,0).it();static RightCenter=new Spot(1,.5,0,0).it();static BottomLeft=new Spot(0,1,0,0).it();static BottomCenter=new Spot(.5,1,0,0).it();static BottomRight=new Spot(1,1,0,0).it();static MiddleTop=Spot.TopCenter;static MiddleLeft=Spot.LeftCenter;static MiddleRight=Spot.RightCenter;static MiddleBottom=Spot.BottomCenter;static Top=Spot.TopCenter;static Left=Spot.LeftCenter;static Right=Spot.RightCenter;static Bottom=Spot.BottomCenter;static TopSide=new Spot(0,0,1,1).Ee(1).it();static LeftSide=new Spot(0,0,1,2).Ee(1).it();static RightSide=new Spot(0,0,1,4).Ee(1).it();static BottomSide=new Spot(0,0,1,8).Ee(1).it();static TopBottomSides=new Spot(0,0,1,9).Ee(1).it();static LeftRightSides=new Spot(0,0,1,6).Ee(1).it();static TopLeftSides=new Spot(0,0,1,3).Ee(1).it();static TopRightSides=new Spot(0,0,1,5).Ee(1).it();static BottomLeftSides=new Spot(0,0,1,10).Ee(1).it();static BottomRightSides=new Spot(0,0,1,12).Ee(1).it();static NotTopSide=new Spot(0,0,1,14).Ee(1).it();static NotLeftSide=new Spot(0,0,1,13).Ee(1).it();static NotRightSide=new Spot(0,0,1,11).Ee(1).it();static NotBottomSide=new Spot(0,0,1,7).Ee(1).it();static AllSides=new Spot(0,0,1,15).Ee(1).it();static Rk=new Spot(.156,.156).it();static vk=new Spot(.844,.844).it();static hC=[];static l(){const t=Spot.hC.pop();return t===void 0?new Spot:t}static s(t){Spot.hC.push(t)}}class Transform{m11;m12;m21;m22;dx;dy;constructor(){this.m11=1,this.m12=0,this.m21=0,this.m22=1,this.dx=0,this.dy=0}set(t){return this.m11=t.m11,this.m12=t.m12,this.m21=t.m21,this.m22=t.m22,this.dx=t.dx,this.dy=t.dy,this}setTo(t,i,e,s,n,o){return this.m11=t,this.m12=i,this.m21=e,this.m22=s,this.dx=n,this.dy=o,this}copy(){const t=new Transform;return t.m11=this.m11,t.m12=this.m12,t.m21=this.m21,t.m22=this.m22,t.dx=this.dx,t.dy=this.dy,t}toString(){return\"Transform(\"+this.m11+\",\"+this.m12+\",\"+this.m21+\",\"+this.m22+\",\"+this.dx+\",\"+this.dy+\")\"}equals(t){return this.m11===t.m11&&this.m12===t.m12&&this.m21===t.m21&&this.m22===t.m22&&this.dx===t.dx&&this.dy===t.dy}Ok(){return this.dx===0&&this.dy===0&&this.m11===1&&this.m12===0&&this.m21===0&&this.m22===1}vi(){return this.m11=1,this.m12=0,this.m21=0,this.m22=1,this.dx=0,this.dy=0,this}ic(t){const i=this.m11*t.m11+this.m21*t.m12,e=this.m12*t.m11+this.m22*t.m12,s=this.m11*t.m21+this.m21*t.m22,n=this.m12*t.m21+this.m22*t.m22;return this.dx=this.m11*t.dx+this.m21*t.dy+this.dx,this.dy=this.m12*t.dx+this.m22*t.dy+this.dy,this.m11=i,this.m12=e,this.m21=s,this.m22=n,this}aC(t){const i=1/(t.m11*t.m22-t.m12*t.m21),e=t.m22*i,s=-t.m12*i,n=-t.m21*i,o=t.m11*i,r=i*(t.m21*t.dy-t.m22*t.dx),l=i*(t.m12*t.dx-t.m11*t.dy),h=this.m11*e+this.m21*s,a=this.m12*e+this.m22*s,c=this.m11*n+this.m21*o,f=this.m12*n+this.m22*o;return this.dx=this.m11*r+this.m21*l+this.dx,this.dy=this.m12*r+this.m22*l+this.dy,this.m11=h,this.m12=a,this.m21=c,this.m22=f,this}yw(){const t=1/(this.m11*this.m22-this.m12*this.m21),i=this.m22*t,e=-this.m12*t,s=-this.m21*t,n=this.m11*t,o=t*(this.m21*this.dy-this.m22*this.dx),r=t*(this.m12*this.dx-this.m11*this.dy);return this.m11=i,this.m12=e,this.m21=s,this.m22=n,this.dx=o,this.dy=r,this}cs(t,i,e){if(t>=360?t-=360:t<0&&(t+=360),t===0)return this;this.Ds(i,e);let s=0,n=0;if(t===90)s=0,n=1;else if(t===180)s=-1,n=0;else if(t===270)s=0,n=-1;else{const a=t*Math.PI/180;s=Math.cos(a),n=Math.sin(a)}const o=this.m11*s+this.m21*n,r=this.m12*s+this.m22*n,l=this.m11*-n+this.m21*s,h=this.m12*-n+this.m22*s;return this.m11=o,this.m12=r,this.m21=l,this.m22=h,this.Ds(-i,-e),this}Ds(t,i){return this.dx+=this.m11*t+this.m21*i,this.dy+=this.m12*t+this.m22*i,this}et(t,i){return i===void 0&&(i=t),this.m11*=t,this.m12*=t,this.m21*=i,this.m22*=i,this}FD(){if(this.m11===1&&this.m12===0)return 0;let t=Math.atan2(this.m12,this.m11)*180/Math.PI;return t<0&&(t+=360),t}xt(t){const i=t.x,e=t.y;return t.e(i*this.m11+e*this.m21+this.dx,i*this.m12+e*this.m22+this.dy)}ts(t){const i=1/(this.m11*this.m22-this.m12*this.m21),e=this.m22*i,s=-this.m12*i,n=-this.m21*i,o=this.m11*i,r=t.x-this.dx,l=t.y-this.dy;return t.e(r*e+l*n,r*s+l*o)}ww(t){const i=1/(this.m11*this.m22-this.m12*this.m21),e=this.m22*i,s=-this.m12*i,n=-this.m21*i,o=this.m11*i,r=i*(this.m21*this.dy-this.m22*this.dx),l=i*(this.m12*this.dx-this.m11*this.dy),h=t.x*1.25,a=t.y*1.2;return t.e(h*e+a*n+r,h*s+a*o+l)}Vg(t){const i=t.x,e=t.y,s=i+t.width,n=e+t.height,o=this.m11,r=this.m12,l=this.m21,h=this.m22,a=this.dx,c=this.dy,f=i*o+e*l+a,u=i*r+e*h+c,d=s*o+e*l+a,m=s*r+e*h+c,g=i*o+n*l+a,p=i*r+n*h+c,y=s*o+n*l+a,x=s*r+n*h+c;let k=f,b=f,P=u,M=u;return k=Math.min(k,d),b=Math.max(b,d),P=Math.min(P,m),M=Math.max(M,m),k=Math.min(k,g),b=Math.max(b,g),P=Math.min(P,p),M=Math.max(M,p),k=Math.min(k,y),b=Math.max(b,y),P=Math.min(P,x),M=Math.max(M,x),t.e(k,P,b-k,M-P),t}static cC=[];static l(){const t=Transform.cC.pop();return t===void 0?new Transform:t}static s(t){Transform.cC.push(t)}static Ik=\"54a702f3e53909c447824c6706603faf4c\"}const Geo={RD:\"7da71ca0ad381e90\",Bn:4*((Math.sqrt(2)-1)/3),fC:null,xw:w=>{if(w<=0)return 0;let t=Geo.fC;if(t===null){t=[];for(let i=0;i<=2e3;i++)t[i]=Math.sqrt(i);Geo.fC=t}if(w<1){const i=1/w;return i<=2e3?1/t[i|0]:Math.sqrt(w)}else return w<=2e3?t[w|0]:Math.sqrt(w)},u:(w,t)=>{const i=w-t;return i<.5&&i>-.5},K:(w,t)=>{const i=w-t;return i<5e-8&&i>-5e-8},Oi:(w,t,i,e,s,n,o)=>{s<=0&&(s=1e-6);let r=0,l=0,h=0,a=0;if(wu-d)if(w-i>s||i-w>s){const g=(e-t)/(i-w)*(n-w)+t;if(g-s<=o&&o<=g+s)return!0}else return!0;else if(t-e>s||e-t>s){const g=(i-w)/(e-t)*(o-t)+w;if(g-s<=n&&n<=g+s)return!0}else return!0}return!1},bw:(w,t,i,e,s,n,o,r,l,h,a,c)=>{if(!Geo.Oi(w,t,o,r,c,i,e)||!Geo.Oi(w,t,o,r,c,s,n)){const f=(w+i)/2,u=(t+e)/2,d=(i+s)/2,m=(e+n)/2,g=(s+o)/2,p=(n+r)/2,y=(f+d)/2,x=(u+m)/2,k=(d+g)/2,b=(m+p)/2,P=(y+k)/2,M=(x+b)/2;return Geo.bw(w,t,f,u,y,x,P,M,l,h,a,c)||Geo.bw(P,M,k,b,g,p,o,r,l,h,a,c)}else return Geo.Oi(w,t,o,r,c,h,a)},uC:(w,t,i,e,s,n,o,r,l)=>{const h=(w+i)/2,a=(t+e)/2,c=(i+s)/2,f=(e+n)/2,u=(s+o)/2,d=(n+r)/2,m=(h+c)/2,g=(a+f)/2,p=(c+u)/2,y=(f+d)/2;return l.e((m+p)/2,(g+y)/2),l},vD:(w,t,i,e,s,n,o,r)=>{const l=(w+i)/2,h=(t+e)/2,a=(i+s)/2,c=(e+n)/2,f=(s+o)/2,u=(n+r)/2,d=(l+a)/2,m=(h+c)/2,g=(a+f)/2,p=(c+u)/2;return Point.direction(d,m,g,p)},au:(w,t,i,e,s,n,o,r,l,h)=>{if(!Geo.Oi(w,t,o,r,l,i,e)||!Geo.Oi(w,t,o,r,l,s,n)){const a=(w+i)/2,c=(t+e)/2,f=(i+s)/2,u=(e+n)/2,d=(s+o)/2,m=(n+r)/2,g=(a+f)/2,p=(c+u)/2,y=(f+d)/2,x=(u+m)/2,k=(g+y)/2,b=(p+x)/2;Geo.au(w,t,a,c,g,p,k,b,l,h),Geo.au(k,b,y,x,d,m,o,r,l,h)}else h.unionNoCheck(w,t,0,0),h.unionNoCheck(o,r,0,0);return h},Un:(w,t,i,e,s,n,o,r,l,h)=>{if(!Geo.Oi(w,t,o,r,l,i,e)||!Geo.Oi(w,t,o,r,l,s,n)){const a=(w+i)/2,c=(t+e)/2,f=(i+s)/2,u=(e+n)/2,d=(s+o)/2,m=(n+r)/2,g=(a+f)/2,p=(c+u)/2,y=(f+d)/2,x=(u+m)/2,k=(g+y)/2,b=(p+x)/2;Geo.Un(w,t,a,c,g,p,k,b,l,h),Geo.Un(k,b,y,x,d,m,o,r,l,h)}else h.length===0&&(h.push(w),h.push(t)),h.push(o),h.push(r);return h},Ek:(w,t,i,e,s,n,o,r,l,h)=>{if(Geo.Oi(w,t,s,n,h,i,e))return Geo.Oi(w,t,s,n,h,r,l);{const a=(w+i)/2,c=(t+e)/2,f=(i+s)/2,u=(e+n)/2,d=(a+f)/2,m=(c+u)/2;return Geo.Ek(w,t,a,c,d,m,o,r,l,h)||Geo.Ek(d,m,f,u,s,n,o,r,l,h)}},eE:(w,t,i,e,s,n,o)=>{const r=(w+i)/2,l=(t+e)/2,h=(i+s)/2,a=(e+n)/2;return o.e((r+h)/2,(l+a)/2),o},Bk:(w,t,i,e,s,n,o,r)=>{if(Geo.Oi(w,t,s,n,o,i,e))r.unionNoCheck(w,t,0,0),r.unionNoCheck(s,n,0,0);else{const l=(w+i)/2,h=(t+e)/2,a=(i+s)/2,c=(e+n)/2,f=(l+a)/2,u=(h+c)/2;Geo.Bk(w,t,l,h,f,u,o,r),Geo.Bk(f,u,a,c,s,n,o,r)}return r},zg:(w,t,i,e,s,n,o,r)=>{if(Geo.Oi(w,t,s,n,o,i,e))r.length===0&&(r.push(w),r.push(t)),r.push(s),r.push(n);else{const l=(w+i)/2,h=(t+e)/2,a=(i+s)/2,c=(e+n)/2,f=(l+a)/2,u=(h+c)/2;Geo.zg(w,t,l,h,f,u,o,r),Geo.zg(f,u,a,c,s,n,o,r)}return r},Xg:(w,t,i,e,s,n,o,r,l,h,a,c,f,u)=>{if(!Geo.Oi(w,t,o,r,f,i,e)||!Geo.Oi(w,t,o,r,f,s,n)){const d=(w+i)/2,m=(t+e)/2,g=(i+s)/2,p=(e+n)/2,y=(s+o)/2,x=(n+r)/2,k=(d+g)/2,b=(m+p)/2,P=(g+y)/2,M=(p+x)/2,L=(k+P)/2,C=(b+M)/2;let S=1/0,N=!1,T=0,A=0;if(Geo.Xg(w,t,d,m,k,b,L,C,l,h,a,c,f,u)){const D=(u.x-l)*(u.x-l)+(u.y-h)*(u.y-h);D{let u=0;if(!Geo.Oi(w,t,o,r,f,i,e)||!Geo.Oi(w,t,o,r,f,s,n)){const d=(w+i)/2,m=(t+e)/2,g=(i+s)/2,p=(e+n)/2,y=(s+o)/2,x=(n+r)/2,k=(d+g)/2,b=(m+p)/2,P=(g+y)/2,M=(p+x)/2,L=(k+P)/2,C=(b+M)/2;u+=Geo.Kg(w,t,d,m,k,b,L,C,l,h,a,c,f),u+=Geo.Kg(L,C,P,M,y,x,o,r,l,h,a,c,f)}else{const d=(w-o)*(h-c)-(t-r)*(l-a);if(d===0)return u;const m=((w*r-t*o)*(l-a)-(w-o)*(l*c-h*a))/d,g=((w*r-t*o)*(h-c)-(t-r)*(l*c-h*a))/d;if(m>=a)return u;let p=0,y=0;if((l>a?l-a:a-l)<(h>c?h-c:c-h)){if(ty)return u}else if(wy)return u;d>0?u++:d<0&&u--}return u},gl:(w,t,i,e,s,n,o)=>{if(Geo.K(w,i)){let r=0,l=0;tl?(o.e(w,l),!1):(o.e(w,h),!0)}else if(Geo.K(t,e)){let r=0,l=0;wl?(o.e(l,t),!1):(o.e(h,t),!0)}else{const r=(i-w)*(i-w)+(e-t)*(e-t),l=((w-s)*(w-i)+(t-n)*(t-e))/r;if(l<-5e-6)return o.e(w,t),!1;if(l>1.000005)return o.e(i,e),!1;{const h=w+l*(i-w),a=t+l*(e-t);return o.e(h,a),!0}}},Vn:(w,t,i,e,s,n,o,r,l)=>{if(Geo.u(w,i)&&Geo.u(t,e))return l.e(w,t),!1;if(Geo.K(s,o)){if(Geo.K(w,i))return Geo.gl(w,t,i,e,s,n,l),!1;{const a=(e-t)/(i-w)*(s-w)+t;return Geo.gl(w,t,i,e,s,a,l)}}else{const h=(r-n)/(o-s);if(Geo.K(w,i)){const a=h*(w-s)+n;let c=0,f=0;return tf?(l.e(w,f),!1):(l.e(w,a),!0)}else{const a=(e-t)/(i-w);if(Geo.K(h,a))return Geo.gl(w,t,i,e,s,n,l),!1;{const c=(a*w-h*s+n-t)/(a-h);if(Geo.K(a,0)){let f=0,u=0;return wu?(l.e(u,t),!1):(l.e(c,t),!0)}else{const f=a*(c-w)+t;return Geo.gl(w,t,i,e,c,f,l)}}}}},sE:(w,t,i,e,s)=>Geo.Vn(i.x,i.y,e.x,e.y,w.x,w.y,t.x,t.y,s),nE:(w,t,i,e,s,n,o,r,l,h)=>{let a=1/0;function c(P,M){const L=(P-w)*(P-w)+(M-t)*(M-t);Lw?i-w:w-i)<.5){const P=1-(i-k)*(i-k)/(y*y);if(P<0)return l;const M=Math.sqrt(P),L=x*M+b,C=-x*M+b;c(i,L),c(i,C)}else{const P=(e-t)/(i-w),M=1/(y*y)+P*P/(x*x),L=2*P*(t-P*w)/(x*x)-2*P*b/(x*x)-2*k/(y*y),C=2*P*w*b/(x*x)-2*t*b/(x*x)+b*b/(x*x)+k*k/(y*y)-1+(t-P*w)*(t-P*w)/(x*x),S=L*L-4*M*C;if(S<0)return l;const N=Math.sqrt(S),T=(-L+N)/(2*M);c(T,P*T-P*w+t);const A=(-L-N)/(2*M);c(A,P*A-P*w+t)}return l},ml:(w,t,i,e,s,n,o,r,l)=>{let h=1e21,a=w,c=t;if(Geo.Vn(w,t,w,e,s,n,o,r,l)){const f=(l.x-s)*(l.x-s)+(l.y-n)*(l.y-n);fGeo.oC(w.x,w.y,w.width,w.height,t.x,t.y,i.x,i.y),oC:(w,t,i,e,s,n,o,r)=>{const l=w,h=w+i,a=t,c=t+e;if(s===o){let f=0,u=0;return n=a}if(n===r){let f=0,u=0;return s=l}return!!(Rect.contains(w,t,i,e,s,n)||Rect.contains(w,t,i,e,o,r)||Geo.ru(l,a,h,a,s,n,o,r)||Geo.ru(h,a,h,c,s,n,o,r)||Geo.ru(h,c,l,c,s,n,o,r)||Geo.ru(l,c,l,a,s,n,o,r))},ru:(w,t,i,e,s,n,o,r)=>w===i&&t===e&&s===o&&n===r?w===s&&t===n:Geo.ou(w,t,i,e,s,n)*Geo.ou(w,t,i,e,o,r)<=0&&Geo.ou(s,n,o,r,w,t)*Geo.ou(s,n,o,r,i,e)<=0,ou:(w,t,i,e,s,n)=>{const o=i-w,r=e-t;let l=s-w,h=n-t,a=l*r-h*o;return a===0&&(a=l*o+h*r,a>0&&(l-=o,h-=r,a=l*o+h*r,a<0&&(a=0))),a},Yg:w=>(w<0&&(w+=360),w>=360&&(w-=360),w),dC:(w,t,i,e,s,n)=>{const o=Math.PI;n||(e=e*(o/180),s=s*(o/180));const r=e>s?-1:1,l=1e-5,h=o*2,a=[],c=o/2;let f=e,u=Math.min(h,Math.abs(s-e));if(ul;){const d=f+r*Math.min(u,c);a.push(Geo.OD(i,f,d,w,t)),u-=Math.abs(d-f),f=d}return a},OD:(w,t,i,e,s)=>{const n=(i-t)/2,o=w*Math.cos(n),r=w*Math.sin(n),l=o,h=-r,a=l*l+h*h,c=a+l*o+h*r,f=4/3*(Math.sqrt(2*a*c)-c)/(l*r-h*o),u=l-f*h,d=h+f*l,m=u,g=-d,p=n+t,y=Math.cos(p),x=Math.sin(p);return[e+w*Math.cos(t),s+w*Math.sin(t),e+u*y-d*x,s+u*x+d*y,e+m*y-g*x,s+m*x+g*y,e+w*Math.cos(i),s+w*Math.sin(i)]},Bg:(w,t,i,e,s,n,o)=>{const r=s,l=n,h=Math.floor((w-i)/r)*r+i,a=Math.floor((t-e)/l)*l+e;let c=h;h+r-w{let i=Math.max(w,t),e=Math.min(w,t),s=1,n=1;do s=i%e,n=e,i=e,e=s;while(s>0);return n},ID:(w,t,i,e)=>{const s=i<0,n=e<0;let o=0,r=0,l=0;w{let o=0;if(e>0)if(i>0){const r=w*w,l=t*t,h=w*i,a=t*e;let c=-l+a,f=-l+Math.sqrt(h*h+a*a),u=c;const d=9999999999;for(let p=0;p0)c=u;else if(k<0)f=u;else break}s=r*i/(u+r),n=l*e/(u+l);const m=s-i,g=n-e;o=Math.sqrt(m*m+g*g)}else s=0,n=t,o=Math.abs(e-t);else{const r=w*w-t*t,l=w*i;if(l(w[w.Line=1]=\"Line\",w[w.Rectangle=2]=\"Rectangle\",w[w.Ellipse=3]=\"Ellipse\",w[w.Path=4]=\"Path\",w))(GeometryType||{}),GeometryStretch=(w=>(w[w.None=0]=\"None\",w[w.Default=1]=\"Default\",w[w.Fill=2]=\"Fill\",w[w.Uniform=6]=\"Uniform\",w))(GeometryStretch||{});class Geometry{n;Hg;qg;ec;cu;fu;zn;Xn;Kn;$;xe;be;Qi;_i;Fs;sc;nc;constructor(t){GSet.ji(this),this.n=2,t===void 0&&(t=4),this.$=t,this.xe=0,this.be=0,this.Qi=0,this._i=0,t===4?this.Fs=new List:this.Fs=Geometry.Pw,this.Hg=this.Fs.ht,this.qg=new Rect().g(),this.ec=null,this.cu=null,this.fu=NaN,this.zn=Spot.TopLeft,this.Xn=Spot.BottomRight,this.sc=NaN,this.nc=NaN,this.Kn=2}copy(){const t=new Geometry;if(t.n=this.n&-2,t.$=this.$,t.xe=this.xe,t.be=this.be,t.Qi=this.Qi,t._i=this._i,this.$===4){const i=this.Fs.r,e=t.Fs;for(let s=0;si.toString(t)}li(t){t in GeometryType?this.type=t:Util.rr(this,t)}toString(t){t===void 0&&(t=-1);const i=s=>s===0?\"0\":s.toFixed(t);let e;switch(this.type){case 1:return t<0?\"M\"+this.startX.toString()+\" \"+this.startY.toString()+\"L\"+this.endX.toString()+\" \"+this.endY.toString():\"M\"+i(this.startX)+\" \"+i(this.startY)+\"L\"+i(this.endX)+\" \"+i(this.endY);case 2:return e=new Rect(this.startX,this.startY,0,0),e.union(this.endX,this.endY,0,0),t<0?\"M\"+e.x.toString()+\" \"+e.y.toString()+\"H\"+e.right.toString()+\"V\"+e.bottom.toString()+\"H\"+e.left.toString()+\"z\":\"M\"+i(e.x)+\" \"+i(e.y)+\"H\"+i(e.right)+\"V\"+i(e.bottom)+\"H\"+i(e.left)+\"z\";case 3:if(e=new Rect(this.startX,this.startY,0,0),e.union(this.endX,this.endY,0,0),t<0){const r=e.left.toString()+\" \"+(e.y+e.height/2).toString(),l=e.right.toString()+\" \"+(e.y+e.height/2).toString();return\"M\"+r+\"A\"+(e.width/2).toString()+\" \"+(e.height/2).toString()+\" 0 0 1 \"+l+\"A\"+(e.width/2).toString()+\" \"+(e.height/2).toString()+\" 0 0 1 \"+r}else{const r=i(e.left)+\" \"+i(e.y+e.height/2),l=i(e.right)+\" \"+i(e.y+e.height/2);return\"M\"+r+\"A\"+i(e.width/2)+\" \"+i(e.height/2)+\" 0 0 1 \"+l+\"A\"+i(e.width/2)+\" \"+i(e.height/2)+\" 0 0 1 \"+r}case 4:let s=\"\";const n=this.figures.r,o=n.length;for(let r=0;r0&&(s+=\" x \"),l.isFilled&&(s+=\"F \"),s+=l.toString(t)}return s;default:return GeometryType[this.type]}}static fillPath(t){typeof t!=\"string\"&&Util.we(t,\"string\",Geometry,\"fillPath:str\");const i=t.split(/[Xx]/),e=i.length;let s=\"\";for(let n=0;n=k-1||o[r+1].match(N)!==null?!0:(u=!1,!1)}function m(){return r++,o[r]}function g(A){let D=parseFloat(m()),F=parseFloat(m());l===l.toLowerCase()&&(D=f.x+D,F=f.y+F),A.e(D,F)}function p(){return g(f),f}function y(){return g(c),c}function x(){const A=h.toLowerCase();return A===\"c\"||A===\"s\"||A===\"q\"||A===\"t\"?new Point(2*f.x-c.x,2*f.y-c.y):new Point(f.x,f.y)}const k=o.length,b=GeoStream.pC(null);let P=!1,M=!1,L=!1,C=!0,S=null;const N=new RegExp(\"[\"+Geometry.Wg+\"]\");for(;!(r>=k-1);){if(h=l,l=m(),l===\"\")continue;u=!0;let A=!1;switch(l.toUpperCase()){case\"X\":C=!0,P=!1,M=!1;break;case\"M\":for(S=p(),b.Pi===null||C===!0?(b.uu(S.x,S.y,P,!1,!M,L),C=!1):b.BD(S.x,S.y),a.a(f);!d();)S=p(),b.fr(S.x,S.y);break;case\"L\":for(;!d();)S=p(),b.fr(S.x,S.y);u&&(A=!0);break;case\"H\":for(;!d();)f.e((l===l.toLowerCase()?f.x:0)+parseFloat(m()),f.y),b.fr(f.x,f.y);break;case\"V\":for(;!d();)f.e(f.x,(l===l.toLowerCase()?f.y:0)+parseFloat(m())),b.fr(f.x,f.y);u&&(A=!0);break;case\"C\":for(;!d();){const D=new Point;g(D);const F=y(),R=p();b.ur(D.x,D.y,F.x,F.y,R.x,R.y)}u&&(A=!0);break;case\"S\":for(;!d();){const D=x(),F=y(),R=p();b.ur(D.x,D.y,F.x,F.y,R.x,R.y)}u&&(A=!0);break;case\"Q\":for(;!d();){const D=y(),F=p();b.Mw(D.x,D.y,F.x,F.y)}u&&(A=!0);break;case\"T\":for(;!d();){const D=x();c.a(D);const F=p();b.Mw(D.x,D.y,F.x,F.y),c.a(F)}u&&(A=!0);break;case\"B\":for(;!d();){const D=parseFloat(m()),F=parseFloat(m());let R=parseFloat(m()),v=parseFloat(m());const O=parseFloat(m());let B=O,X=!1;d()||(B=parseFloat(m()),d()||(X=parseFloat(m())!==0)),l===l.toLowerCase()&&(R+=f.x,v+=f.y),b.UD(D,F,R,v,O,B,X)}u&&(A=!0);break;case\"A\":for(;!d();){const D=Math.abs(parseFloat(m())),F=Math.abs(parseFloat(m())),R=parseFloat(m());let v=!1,O=!1,B=0,X=0;const E=m();E.length===1?(v=!!parseFloat(E),O=!!parseFloat(m()),B=parseFloat(m()),X=parseFloat(m())):E.length===2?(v=!!parseFloat(E[0]),O=!!parseFloat(E[1]),B=parseFloat(m()),X=parseFloat(m())):(v=!!parseFloat(E[0]),O=!!parseFloat(E[1]),B=parseFloat(E.slice(2)),X=parseFloat(m())),l===l.toLowerCase()&&(B=f.x+B,X=f.y+X),f.e(B,X),b.VD(D,F,R,v,O,B,X)}u&&(A=!0);break;case\"Z\":b.zD(),f.a(a);break;case\"F\":{let D=\"\",F=1;for(;o[r+F];){if(o[r+F]===\"0\"){L=!0,F++;continue}if(o[r+F].match(/[Uu]/)!==null){F++;continue}if(o[r+F].match(N)===null){F++;continue}D=o[r+F];break}D.match(/[Mm]/)?P=!0:b.XD();break}case\"U\":{let D=\"\",F=1;for(;o[r+F];){if(o[r+F].match(/[Ff]/)!==null){F++;continue}if(o[r+F].match(N)===null){F++;continue}D=o[r+F];break}D.match(/[Mm]/)?M=!0:b.KD(!1);break}default:if(l===\"0\"||l===\"1\")break;Util.ei(\"Unknown geometry command: \"+l);break}if(A){Util.ei(`Bad geometry command: ${l}, next token: ${m()},\nstring: ${t}`);break}}const T=b.Jg;if(GeoStream.yC(b),i){const A=T.figures.iterator;for(;A.next();){const D=A.value;D.isFilled=!0}}return T}static wC(t,i){const e=t.length,s=Point.l();for(let n=0;n=t)return 0;if((n>r?n-r:r-n)<(o>l?o-l:l-o)){if(ol)return 0}else if(co)return 0}else if(nr)return 0}else if(an)return 0;return h>0?1:-1}bC(t,i,e){const s=this.figures.r,n=s.length;for(let o=0;o1&&(t=1),i===void 0&&(i=new Point),this.type===1)return i.e(this.startX+t*(this.endX-this.startX),this.startY+t*(this.endY-this.startY)),i;const e=this.flattenedSegments,s=this.flattenedLengths,n=this.flattenedTotalLength,o=e.length,r=n*t;let l=0;for(let h=0;h=r){const d=r-l,m=u===0?0:d/u,g=e[h],p=g[f*2],y=g[f*2+1],x=g[f*2+2],k=g[f*2+3];return i.e(p+(x-p)*m,y+(k-y)*m),i}l+=u}}return i}getAngleAlongPath(t){if(t<0?t=0:t>1&&(t=1),this.type===1)return Math.atan2(this.endY-this.startY,this.endX-this.startX)*180/Math.PI;const i=this.flattenedSegments,e=this.flattenedLengths,s=this.flattenedTotalLength,n=i.length,o=s*t;let r=0;for(let l=0;l=o){const u=i[l],d=u[c*2],m=u[c*2+1],g=u[c*2+2],p=u[c*2+3];return Math.abs(g-d)<1&&Math.abs(p-m)<1?0:Math.abs(g-d)<1?p-m>=0?90:270:Math.abs(p-m)<1?g-d>=0?0:180:Math.atan2(p-m,g-d)*180/Math.PI}r+=f}}return NaN}getPointAndAngleAlongPath(t,i){if(t<0?t=0:t>1&&(t=1),i===void 0&&(i=[]),i.length=3,this.type===1)return i[0]=this.startX+t*(this.endX-this.startX),i[1]=this.startY+t*(this.endY-this.startY),i[2]=Math.atan2(this.endY-this.startY,this.endX-this.startX)*180/Math.PI,i;const e=this.flattenedSegments,s=this.flattenedLengths,n=this.flattenedTotalLength,o=e.length,r=n*t;let l=0;for(let h=0;h=r){const d=r-l,m=u===0?0:d/u,g=e[h],p=g[f*2],y=g[f*2+1],x=g[f*2+2],k=g[f*2+3];i[0]=p+(x-p)*m,i[1]=y+(k-y)*m;let b;return Math.abs(x-p)<1&&Math.abs(k-y)<1?b=0:Math.abs(x-p)<1?b=k-y>=0?90:270:Math.abs(k-y)<1?b=x-p>=0?0:180:b=Math.atan2(k-y,x-p)*180/Math.PI,i[2]=b,i}l+=u}}return i}getFractionForPoint(t){if(this.type===1){const i=this.startX,e=this.startY,s=this.endX,n=this.endY;if(i===s&&e===n)return 0;{const o=t.x,r=t.y;let l=0,h=0;if(i===s)return e=h?h===e?0:1:Math.abs(r-e)/(h-l);if(e===n)return i=h?h===i?0:1:Math.abs(o-i)/(h-l);{const a=(s-i)*(s-i)+(n-e)*(n-e),c=Point.l();Geo.gl(i,e,s,n,o,r,c);const f=c.x,u=c.y;return Point.s(c),Math.sqrt(((f-i)*(f-i)+(u-e)*(u-e))/a)}}}else if(this.type===2){const i=this.startX,e=this.startY,s=this.endX,n=this.endY;if(i===s&&e===n)return 0;{const o=s-i,r=n-e,l=o*2+r*2;let h=t.x,a=t.y;h=Math.min(Math.max(h,i),s),a=Math.min(Math.max(a,e),n);const c=Math.abs(h-i),f=Math.abs(h-s),u=Math.abs(a-e),d=Math.abs(a-n),m=Math.min(c,f,u,d);if(m===u)return h/l;if(m===f)return(o+a)/l;if(m===d)return(o*2+r-h)/l;if(m===c)return(o*2+r*2-a)/l}}else{const i=this.flattenedSegments,e=this.flattenedLengths,s=this.flattenedTotalLength,n=Point.l();let o=1/0,r=0,l=0;const h=i.length;let a=0,c=0;for(let u=0;u1?1:f}return 0}get flattenedSegments(){return this.kC(),this.ec}kC(){if(this.ec===null){const t=this.ec=[],i=this.cu=[];this.jD(t,i)}}get flattenedLengths(){return this.kC(),this.cu}get flattenedTotalLength(){let t=this.fu;if(isNaN(t)){if(this.type===1){const i=Math.abs(this.endX-this.startX),e=Math.abs(this.endY-this.startY);t=Math.sqrt(i*i+e*e)}else if(this.type===2){const i=Math.abs(this.endX-this.startX),e=Math.abs(this.endY-this.startY);t=i*2+e*2}else{const i=this.flattenedLengths,e=i.length;t=0;for(let s=0;s=4&&(t.push(e),i.push(this.Xk(e))),e=[],e.push(d.endX),e.push(d.endY),r=d.endX,l=d.endY,h=r,a=l;break;case 2:e.push(d.endX),e.push(d.endY),r=d.endX,l=d.endY;break;case 3:Geo.Un(r,l,d.point1X,d.point1Y,d.point2X,d.point2Y,d.endX,d.endY,.5,e),r=d.endX,l=d.endY;break;case 4:Geo.zg(r,l,d.point1X,d.point1Y,d.endX,d.endY,.5,e),r=d.endX,l=d.endY;break;case 5:{const m=d.So(o),g=m.length;if(g===0){e.push(d.centerX),e.push(d.centerY),r=d.centerX,l=d.centerY;break}for(let p=0;p=4&&(t.push(e),i.push(this.Xk(e)))}}}get type(){return this.$}set type(t){this.$!==t&&(this.h&&Util.T(this,t),this.$=t,t===4?this.Fs=new List:(Geometry.Pw===null&&(Geometry.Pw=new List().g()),this.Fs=Geometry.Pw),this.bt=!0)}get startX(){return this.xe}set startX(t){this.xe!==t&&(this.h&&Util.T(this,t),this.xe=t,this.bt=!0)}get startY(){return this.be}set startY(t){this.be!==t&&(this.h&&Util.T(this,t),this.be=t,this.bt=!0)}get endX(){return this.Qi}set endX(t){this.Qi!==t&&(this.h&&Util.T(this,t),this.Qi=t,this.bt=!0)}get endY(){return this._i}set endY(t){this._i!==t&&(this.h&&Util.T(this,t),this._i=t,this.bt=!0)}get figures(){return this.Fs}set figures(t){this.Fs!==t&&(this.h&&Util.T(this,t),this.Fs=t,this.bt=!0)}add(t){return this.Fs.add(t),this}setSpots(t,i,e,s,n,o,r,l){return this.h&&Util.T(this),this.zn=new Spot(t,i,n,o).g(),this.Xn=new Spot(e,s,r,l).g(),this}get spot1(){return this.zn}set spot1(t){this.h&&Util.T(this,t),this.zn=t.N()}get spot2(){return this.Xn}set spot2(t){this.h&&Util.T(this,t),this.Xn=t.N()}get defaultStretch(){return this.Kn}set defaultStretch(t){this.Kn=t}get bounds(){return this.Uk()&&this.Sw(),this.qg}}Geometry.stringify=Geometry.stringify;Geometry.stringifyFixed=Geometry.stringifyFixed;Geometry.fillPath=Geometry.fillPath;Geometry.parse=Geometry.parse;class PathFigure{n;xe;be;oc;$g;Be;constructor(t,i,e,s,n){e===void 0&&(e=!0),s===void 0&&(s=!0),n===void 0&&(n=!1),this.n=2|(e?4:0)|(s?8:0)|(n?16:0),t!==void 0?this.xe=t:this.xe=0,i!==void 0?this.be=i:this.be=0,this.oc=new List,this.$g=this.oc.ht,this.Be=null}copy(){const t=new PathFigure;t.n=this.n&-2,t.xe=this.xe,t.be=this.be;const i=this.oc.r,e=i.length,s=t.oc;for(let n=0;no===0?\"0\":o.toFixed(t);i=\"M\"+n(this.startX)+\" \"+n(this.startY)}const e=this.segments.r,s=e.length;for(let n=0;n(w[w.Move=1]=\"Move\",w[w.Line=2]=\"Line\",w[w.Bezier=3]=\"Bezier\",w[w.QuadraticBezier=4]=\"QuadraticBezier\",w[w.Arc=5]=\"Arc\",w[w.SvgArc=6]=\"SvgArc\",w))(SegmentType||{});class PathSegment{$;n;Qi;_i;hn;pl;yl;dr;Rs;constructor(t,i,e,s,n,o,r,l){if(GSet.ji(this),t===void 0&&(t=2),this.$=t,this.n=2,i!==void 0?this.Qi=i:this.Qi=0,e!==void 0?this._i=e:this._i=0,s===void 0&&(s=0),n===void 0&&(n=0),o===void 0&&(o=0),r===void 0&&(r=0),t===6){let h=o;h=h%360,h<0&&(h+=360),this.hn=h,this.pl=0,this.yl=Math.max(s,0),this.dr=Math.max(n,0),typeof r==\"boolean\"?r&&(this.isLargeArc=!0):typeof r==\"number\"&&r&&(this.isLargeArc=!0),l&&(this.isClockwiseArc=!0)}else this.hn=s,this.pl=n,t===5&&(o=Math.max(o,0)),this.yl=o,typeof r==\"number\"?(t===5&&(r=Math.max(r,0)),this.dr=r):this.dr=0;this.Rs=null}copy(){const t=new PathSegment;return t.$=this.$,t.n=this.n&-2,t.Qi=this.Qi,t._i=this._i,t.hn=this.hn,t.pl=this.pl,t.yl=this.yl,t.dr=this.dr,t}equalsApprox(t){if(!(t instanceof PathSegment)||this.type!==t.type||this.isClosed!==t.isClosed)return!1;switch(this.type){case 1:case 2:return Geo.u(this.endX,t.endX)&&Geo.u(this.endY,t.endY);case 3:return Geo.u(this.endX,t.endX)&&Geo.u(this.endY,t.endY)&&Geo.u(this.point1X,t.point1X)&&Geo.u(this.point1Y,t.point1Y)&&Geo.u(this.point2X,t.point2X)&&Geo.u(this.point2Y,t.point2Y);case 4:return Geo.u(this.endX,t.endX)&&Geo.u(this.endY,t.endY)&&Geo.u(this.point1X,t.point1X)&&Geo.u(this.point1Y,t.point1Y);case 5:return Geo.u(this.startAngle,t.startAngle)&&Geo.u(this.sweepAngle,t.sweepAngle)&&Geo.u(this.centerX,t.centerX)&&Geo.u(this.centerY,t.centerY)&&Geo.u(this.radiusX,t.radiusX)&&Geo.u(this.radiusY,t.radiusY);case 6:return this.isClockwiseArc===t.isClockwiseArc&&this.isLargeArc===t.isLargeArc&&Geo.u(this.xAxisRotation,t.xAxisRotation)&&Geo.u(this.endX,t.endX)&&Geo.u(this.endY,t.endY)&&Geo.u(this.radiusX,t.radiusX)&&Geo.u(this.radiusY,t.radiusY);default:return!1}}li(t){t in SegmentType?this.type=t:Util.rr(this,t)}toString(t){t===void 0&&(t=-1);const i=s=>s===0?\"0\":s.toFixed(t);let e=\"\";switch(this.type){case 1:t<0?e=\"M\"+this.endX.toString()+\" \"+this.endY.toString():e=\"M\"+i(this.endX)+\" \"+i(this.endY);break;case 2:t<0?e=\"L\"+this.endX.toString()+\" \"+this.endY.toString():e=\"L\"+i(this.endX)+\" \"+i(this.endY);break;case 3:t<0?e=\"C\"+this.point1X.toString()+\" \"+this.point1Y.toString()+\" \"+this.point2X.toString()+\" \"+this.point2Y.toString()+\" \"+this.endX.toString()+\" \"+this.endY.toString():e=\"C\"+i(this.point1X)+\" \"+i(this.point1Y)+\" \"+i(this.point2X)+\" \"+i(this.point2Y)+\" \"+i(this.endX)+\" \"+i(this.endY);break;case 4:t<0?e=\"Q\"+this.point1X.toString()+\" \"+this.point1Y.toString()+\" \"+this.endX.toString()+\" \"+this.endY.toString():e=\"Q\"+i(this.point1X)+\" \"+i(this.point1Y)+\" \"+i(this.endX)+\" \"+i(this.endY);break;case 5:t<0?e=\"B\"+this.startAngle.toString()+\" \"+this.sweepAngle.toString()+\" \"+this.centerX.toString()+\" \"+this.centerY.toString()+\" \"+this.radiusX.toString()+\" \"+this.radiusY.toString():e=\"B\"+i(this.startAngle)+\" \"+i(this.sweepAngle)+\" \"+i(this.centerX)+\" \"+i(this.centerY)+\" \"+i(this.radiusX)+\" \"+i(this.radiusY);break;case 6:t<0?e=\"A\"+this.radiusX.toString()+\" \"+this.radiusY.toString()+\" \"+this.xAxisRotation.toString()+\" \"+(this.isLargeArc?1:0)+\" \"+(this.isClockwiseArc?1:0)+\" \"+this.endX.toString()+\" \"+this.endY.toString():e=\"A\"+i(this.radiusX)+\" \"+i(this.radiusY)+\" \"+i(this.xAxisRotation)+\" \"+(this.isLargeArc?1:0)+\" \"+(this.isClockwiseArc?1:0)+\" \"+i(this.endX)+\" \"+i(this.endY);break;default:e=SegmentType[this.type]}return e+(this.isClosed?\"z\":\"\")}static Move=1;static Line=2;static Bezier=3;static QuadraticBezier=4;static Arc=5;static SvgArc=6;get h(){return(this.n&1)!==0}set h(t){t?this.n|=1:this.n&=-2}get bt(){return(this.n&2)!==0}set bt(t){t?this.n|=2:this.n&=-3}g(){return this.h=!0,this}ot(){return this.h=!1,this}close(){return this.isClosed=!0,this}So(t){if(this.Rs!==null&&t.bt===!1)return this.Rs;const i=this.radiusX;let e=this.radiusY;if(e===void 0&&(e=i),i===0||e===0)return this.Rs=[],this.Rs;const s=this.hn,n=this.pl,o=Geo.dC(0,0,i1&&(o*=Math.sqrt(p),r*=Math.sqrt(p));let y=(h===a?-1:1)*Math.sqrt((o*o*r*r-o*o*g*g-r*r*m*m)/(o*o*g*g+r*r*m*m));isNaN(y)&&(y=0);let x=y*o*g/r,k=y*-r*m/o;isNaN(x)&&(x=0),isNaN(k)&&(k=0);const b=(s+c)/2+u*x-d*k,P=(n+f)/2+d*x+u*k,M=(V,U)=>Math.sqrt(V*V+U*U),L=(V,U,Y,G)=>(V*Y+U*G)/(M(V,U)*M(Y,G)),C=(V,U,Y,G)=>(V*G=1&&(F=0),!a&&F>0&&(F=F-2*Math.PI),a&&F<0&&(F=F+2*Math.PI);const v=o>r?o:r,O=o>r?1:o/r,B=o>r?r/o:1,X=Geo.dC(0,0,v,S,S+F,!0),E=Transform.l();return E.vi(),E.Ds(b,P),E.cs(this.hn,0,0),E.et(O,B),Geometry.wC(X,E),Transform.s(E),this.Rs=X,this.Rs}get isClosed(){return(this.n&8)!==0}set isClosed(t){this.isClosed!==t&&(t?this.n|=8:this.n&=-9,this.bt=!0)}get type(){return this.$}set type(t){this.h&&Util.T(this,t),this.$=t,this.bt=!0}get endX(){return this.Qi}set endX(t){this.h&&Util.T(this,t),this.Qi=t,this.bt=!0}get endY(){return this._i}set endY(t){this.h&&Util.T(this,t),this._i=t,this.bt=!0}get point1X(){return this.hn}set point1X(t){this.h&&Util.T(this,t),this.hn=t,this.bt=!0}get point1Y(){return this.pl}set point1Y(t){this.h&&Util.T(this,t),this.pl=t,this.bt=!0}get point2X(){return this.yl}set point2X(t){this.h&&Util.T(this,t),this.yl=t,this.bt=!0}get point2Y(){return this.dr}set point2Y(t){this.h&&Util.T(this,t),this.dr=t,this.bt=!0}get centerX(){return this.hn}set centerX(t){this.h&&Util.T(this,t),this.hn=t,this.bt=!0}get centerY(){return this.pl}set centerY(t){this.h&&Util.T(this,t),this.pl=t,this.bt=!0}get radiusX(){return this.yl}set radiusX(t){t<0&&Util._(t,\">= zero\",PathSegment,\"radiusX\"),this.h&&Util.T(this,t),this.yl=t,this.bt=!0}get radiusY(){return this.dr}set radiusY(t){t<0&&Util._(t,\">= zero\",PathSegment,\"radiusY\"),this.h&&Util.T(this,t),this.dr=t,this.bt=!0}get startAngle(){return this.Qi}set startAngle(t){this.h&&Util.T(this,t),t=t%360,t<0&&(t+=360),this.Qi=t,this.bt=!0}get sweepAngle(){return this._i}set sweepAngle(t){this.h&&Util.T(this,t),t>360&&(t=360),t<-360&&(t=-360),this._i=t,this.bt=!0}get isClockwiseArc(){return(this.n&4)!==0}set isClockwiseArc(t){this.h&&Util.T(this,t),t?this.n|=4:this.n&=-5,this.bt=!0}get isLargeArc(){return(this.n&16)!==0}set isLargeArc(t){this.h&&Util.T(this,t),t?this.n|=16:this.n&=-17,this.bt=!0}get xAxisRotation(){return this.hn}set xAxisRotation(t){this.h&&Util.T(this,t),t=t%360,t<0&&(t+=360),this.hn=t,this.bt=!0}}class InputEvent{p;Cw;Lw;Zg;Qg;_g;tm;im;em;sm;nm;om;rm;lm;No;hm;am;cm;ke;constructor(){this.p=null,this.Cw=new Point(0,0).g(),this.Lw=new Point(0,0).g(),this.Zg=0,this.Qg=0,this._g=1,this.tm=\"\",this.im=\"\",this.em=!1,this.sm=!1,this.nm=0,this.om=0,this.rm=!1,this.lm=!1,this.No=!1,this.hm=null,this.am=0,this.cm=null,this.ke=null}copy(){const t=new InputEvent;return this.clone(t)}clone(t){return t.p=this.p,t.Cw.a(this.viewPoint),t.Lw.a(this.documentPoint),t.Zg=this.Zg,t.Qg=this.Qg,t._g=this._g,t.tm=this.tm,t.im=this.im,t.em=this.em,t.sm=this.sm,t.nm=this.nm,t.om=this.om,t.rm=this.rm,t.lm=this.lm,t.No=this.No,t.hm=this.hm,t.am=this.am,t.cm=this.cm,t.ke=this.ke,t}toString(){let t=\"^\";return this.modifiers!==0&&(t+=\"M:\"+this.modifiers),this.button!==0&&(t+=\"B:\"+this.button),this.key!==\"\"&&(t+=\"K:\"+this.key),this.clickCount!==0&&(t+=\"C:\"+this.clickCount),this.delta!==0&&(t+=\"D:\"+this.delta),this.handled&&(t+=\"h\"),this.bubbles&&(t+=\"b\"),this.documentPoint!==null&&(t+=\"@\"+this.documentPoint.toString()),t}get diagram(){return this.p}set diagram(t){this.p=t}get viewPoint(){return this.Cw}set viewPoint(t){this.Cw.a(t)}get documentPoint(){return this.Lw}set documentPoint(t){this.Lw.a(t)}getMultiTouchViewPoint(t,i){const e=this.diagram;return e===null||e.PC(this.event,t,i),i}getMultiTouchDocumentPoint(t,i){const e=this.diagram;return e===null||(e.PC(this.event,t,i),i.a(e.transformViewToDoc(i))),i}get modifiers(){return this.Zg}set modifiers(t){this.Zg=t}get button(){return this.Qg}set button(t){if(this.Qg=t,this.event===null)switch(t){case 0:this.buttons=1;return;case 1:this.buttons=4;return;case 2:this.buttons=2;return}}get buttons(){return this._g}set buttons(t){this._g=t}get key(){return this.tm}set key(t){this.tm=t}get code(){return this.im}set code(t){this.im=t}get down(){return this.em}set down(t){this.em=t}get up(){return this.sm}set up(t){this.sm=t}get clickCount(){return this.nm}set clickCount(t){this.nm=t}get delta(){return this.om}set delta(t){this.om=t}get isMultiTouch(){return this.rm}set isMultiTouch(t){this.rm=t}get handled(){return this.lm}set handled(t){this.lm=t}get bubbles(){return this.No}set bubbles(t){this.No=t}get event(){return this.hm}set event(t){this.hm=t}get isTouchEvent(){const t=this.event;return t===null?!1:t.pointerType===\"touch\"||t.pointerType===\"pen\"}get timestamp(){return this.am}set timestamp(t){this.am=t}get targetDiagram(){return this.cm}set targetDiagram(t){this.cm=t}get targetObject(){return this.ke}set targetObject(t){this.ke=t}get control(){return(this.modifiers&1)!==0}set control(t){this.modifiers=t?this.modifiers|1:this.modifiers&-2}get shift(){return(this.modifiers&4)!==0}set shift(t){this.modifiers=t?this.modifiers|4:this.modifiers&-5}get alt(){return(this.modifiers&2)!==0}set alt(t){this.modifiers=t?this.modifiers|2:this.modifiers&-3}get meta(){return(this.modifiers&8)!==0}set meta(t){this.modifiers=t?this.modifiers|8:this.modifiers&-9}get left(){const t=this.event;return t!==null&&(t.type===\"mousedown\"||t.type===\"mouseup\"||t.type===\"pointerdown\"||t.type===\"pointerup\")?this.button===0:(this.buttons&1)!==0}set left(t){t?this.buttons|=1:this.buttons&=-2}get right(){const t=this.event;return t!==null&&(t.type===\"mousedown\"||t.type===\"mouseup\"||t.type===\"pointerdown\"||t.type===\"pointerup\")?this.button===2:(this.buttons&2)!==0}set right(t){t?this.buttons|=2:this.buttons&=-3}get middle(){const t=this.event;return t!==null&&(t.type===\"mousedown\"||t.type===\"mouseup\"||t.type===\"pointerdown\"||t.type===\"pointerup\")?this.button===1:(this.buttons&4)!==0}set middle(t){t?this.buttons|=4:this.buttons&=-5}get commandKey(){const t=this.code,i=this.key;return\"cxvyzagCXVYZAG\".includes(i)?i.toLowerCase():t===\"KeyC\"?\"c\":t===\"KeyX\"?\"x\":t===\"KeyV\"?\"v\":t===\"KeyY\"?\"y\":t===\"KeyZ\"?\"z\":t===\"KeyA\"?\"a\":t===\"KeyG\"?\"g\":t!==\"\"?t:i}}class DiagramEvent{p;St;fm;um;constructor(){this.p=null,this.St=\"\",this.fm=null,this.um=null}copy(){const t=new DiagramEvent;return t.p=this.p,t.St=this.St,t.fm=this.fm,t.um=this.um,t}toString(){let t=\"*\"+this.name;return this.subject!==null&&(t+=\":\"+this.subject.toString()),this.parameter!==null&&(t+=\"(\"+this.parameter.toString()+\")\"),t}get diagram(){return this.p}set diagram(t){this.p=t}get name(){return this.St}set name(t){this.St=t}get subject(){return this.fm}set subject(t){this.fm=t}get parameter(){return this.um}set parameter(t){this.um=t}}var ChangeType=(w=>(w[w.Transaction=1]=\"Transaction\",w[w.Property=2]=\"Property\",w[w.Insert=3]=\"Insert\",w[w.Remove=4]=\"Remove\",w))(ChangeType||{});class ChangedEvent{du;dm;an;Mi;p;gu;rc;lc;hc;ac;constructor(){this.du=2,this.dm=\"\",this.an=\"\",this.Mi=null,this.p=null,this.gu=null,this.rc=null,this.lc=null,this.hc=null,this.ac=null}static Transaction=1;static Property=2;static Insert=3;static Remove=4;clear(){this.Mi=null,this.p=null,this.gu=null,this.rc=null,this.lc=null,this.hc=null,this.ac=null}copy(){const t=new ChangedEvent;t.du=this.du,t.dm=this.dm,t.an=this.an,t.Mi=this.Mi,t.p=this.p,t.gu=this.gu;let i=this.rc;return Util.wt(i)&&typeof i.copyFrozen==\"function\"?t.rc=i.copyFrozen():t.rc=i,i=this.lc,Util.wt(i)&&typeof i.copyFrozen==\"function\"?t.lc=i.copyFrozen():t.lc=i,i=this.hc,Util.wt(i)&&typeof i.copyFrozen==\"function\"?t.hc=i.copyFrozen():t.hc=i,i=this.ac,Util.wt(i)&&typeof i.copyFrozen==\"function\"?t.ac=i.copyFrozen():t.ac=i,t}li(t){t in ChangeType?this.change=t:Util.rr(this,t)}toString(){let t=\"\";return this.change===1?t+=\"* \":this.change===2?t+=this.model!==null?\"!m\":\"!d\":t+=(this.model!==null?\"!m\":\"!d\")+this.change,this.propertyName&&typeof this.propertyName==\"string\"&&(t+=\" \"+this.propertyName),this.modelChange&&this.modelChange!==this.propertyName&&(t+=\" \"+this.modelChange),t+=\": \",this.change===1?this.oldValue!==null&&(t+=\" \"+this.oldValue):(this.object!==null&&(t+=Util.toString(this.object)),this.oldValue!==null&&(t+=\" old: \"+Util.toString(this.oldValue)),this.oldParam!==null&&(t+=\" \"+this.oldParam),this.newValue!==null&&(t+=\" new: \"+Util.toString(this.newValue)),this.newParam!==null&&(t+=\" \"+this.newParam)),t}getValue(t){return t?this.oldValue:this.newValue}getParam(t){return t?this.oldParam:this.newParam}canUndo(){return this.model!==null||this.diagram!==null}undo(){this.canUndo()&&(this.model!==null?this.model.changeState(this,!0):this.diagram!==null&&this.diagram.MC(this,!0))}canRedo(){return this.model!==null||this.diagram!==null}redo(){this.canRedo()&&(this.model!==null?this.model.changeState(this,!1):this.diagram!==null&&this.diagram.MC(this,!1))}get model(){return this.Mi}set model(t){this.Mi=t}get diagram(){return this.p}set diagram(t){this.p=t}get change(){return this.du}set change(t){this.du=t}get modelChange(){return this.dm}set modelChange(t){this.dm=t}get propertyName(){return this.an}set propertyName(t){this.an=t}get isTransactionFinished(){return this.du===1&&(this.an===\"CommittedTransaction\"||this.an===\"FinishedUndo\"||this.an===\"FinishedRedo\")}get object(){return this.gu}set object(t){this.gu=t}get oldValue(){return this.rc}set oldValue(t){this.rc=t}get oldParam(){return this.lc}set oldParam(t){this.lc=t}get newValue(){return this.hc}set newValue(t){this.hc=t}get newParam(){return this.ac}set newParam(t){this.ac=t}}class Transaction{SC;St;Kk;constructor(){this.SC=new List().g(),this.St=\"\",this.Kk=!1}toString(t){let i=\"Transaction: \"+this.name+\" \"+this.changes.count.toString()+(this.isComplete?\"\":\", incomplete\");if(t!==void 0&&t>0){const e=this.changes.count;for(let s=0;s=0;i--){const e=t.elt(i);e!==null&&e.clear()}t.clear(),t.g()}canUndo(){return this.isComplete}undo(){if(this.canUndo())for(let t=this.changes.count-1;t>=0;t--){const i=this.changes.elt(t);i!==null&&i.undo()}}canRedo(){return this.isComplete}redo(){if(!this.canRedo())return;const t=this.changes.count;for(let i=0;i=t;e--){const s=i.elt(e);s!==null&&s.undo(),i.ot(),i.removeAt(e)}i.g()}optimize(){if(!this.isComplete)return;const t=this.changes;t.ot();const i=new GMap;for(let s=0;s0&&t.setElt(r,null),o.set(n.propertyName,s))}let e=0;for(let s=0;se&&t.setElt(e,n),e++)}for(;t.length>e;)t.pop();t.g()}get changes(){return this.SC}get name(){return this.St}set name(t){this.St=t}get isComplete(){return this.Kk}set isComplete(t){this.Kk=t}}class UndoManager{Aw;Ii;NC;vs;Yk;gm;Yn;Gk;jk;cn;cc;Tw;Os;Dw;Fw;mm;Rw;constructor(t){this.Aw=new GSet,this.Ii=!1,this.NC=new List().g(),this.vs=-1,this.Yk=999,this.Os=!1,this.gm=null,this.Yn=0,this.Gk=!1,this.jk=23,this.cn=new List().g(),this.cc=new List,this.Tw=!0,this.Dw=!1,this.Fw=!1,this.mm=!1,this.Rw=!1,t&&Object.assign(this,t)}toString(t){let i=\"UndoManager \"+this.historyIndex+\"<\"+this.history.count+\"<=\"+this.maxHistoryLength;i+=\"[\";let e=this.nestedTransactionNames.count;for(let s=0;s0&&(i+=\" \"),i+=this.nestedTransactionNames.elt(s);if(i+=\"]\",t!==void 0&&t>0){e=this.history.count;for(let s=0;s=0;i--){const e=t.elt(i);e!==null&&e.clear()}t.clear(),this.vs=-1,t.g(),this.Os=!1,this.gm=null,this.Yn=0,this.cn.ot(),this.cn.clear(),this.cn.g(),this.cc.clear(),this.Dw=!1,this.Fw=!1,this.mm=!1,this.Rw=!1}copyProperties(t){this.isEnabled=t.isEnabled,this.maxHistoryLength=t.maxHistoryLength,this.pm=t.pm}addModel(t){this.Aw.add(t)}removeModel(t){this.Aw.delete(t)}startTransaction(t){if(t===void 0&&(t=\"\"),t===null&&(t=\"\"),this.isUndoingRedoing)return!1;this.Tw===!0&&(this.Tw=!1,this.Yn++,this.wl||this.t(\"StartingFirstTransaction\",t,this.currentTransaction),this.Yn>0&&this.Yn--),this.isEnabled&&(this.cn.ot(),this.cn.add(t),this.cn.g(),this.currentTransaction===null?this.cc.add(0):this.cc.add(this.currentTransaction.changes.count)),this.Yn++;const i=this.transactionLevel===1;return i&&(this.wl||this.t(\"StartedTransaction\",t,this.currentTransaction)),i}commitTransaction(t){return t===void 0&&(t=\"\"),this.CC(!0,t)}rollbackTransaction(){return this.CC(!1,\"\")}CC(t,i){if(this.isUndoingRedoing)return!1;this.pm&&this.transactionLevel<1&&Util.ei(\"Ending transaction without having started a transaction: \"+i);const e=this.transactionLevel===1;let s=this.currentTransaction;e&&t&&(this.wl||this.t(\"CommittingTransaction\",i,s));let n=0;if(this.transactionLevel>0&&(this.Yn--,this.isEnabled)){const o=this.cn.count;o>0&&(i===\"\"&&(i=this.cn.elt(0)),this.cn.ot(),this.cn.removeAt(o-1),this.cn.g());const r=this.cc.count;r>0&&(n=this.cc.elt(r-1),this.cc.removeAt(r-1))}if(e){if(t){if(this.mm=!1,s===null&&i!==\"\"&&(s=this.currentTransaction),this.isEnabled&&s!==null){const o=s;o.isComplete||(o.isComplete=!0,o.name=i),this.discardHistoryAfterIndex();const r=this.history;r.ot();const l=this.maxHistoryLength;if(l>=0){if(l===0)r.clear();else if(r.count>=l){const h=r.elt(0);h!==null&&h.clear(),r.removeAt(0),this.vs--}}l!==0&&(r.count===0||r.get(r.count-1)!==o)&&(r.add(o),this.vs++),r.g(),s=o}this.wl||this.t(\"CommittedTransaction\",i,s)}else{this.Os=!0;try{this.isEnabled&&s!==null&&(s.isComplete=!0,s.undo())}finally{this.wl||this.t(\"RolledBackTransaction\",i,s),this.Os=!1}s!==null&&s.clear()}return this.gm=null,this.vw&&this.clear(),this.vw=!1,this.Ow=!1,!0}else return this.isEnabled&&!t&&s!==null&&s.HD(n),!1}discardHistoryAfterIndex(){if(this.isUndoingRedoing||!this.canRedo())return;const t=this.history;t.ot();for(let i=t.count-1;i>this.historyIndex;i--){const e=t.elt(i);e!==null&&e.clear(),t.removeAt(i),this.mm=!0}t.g()}oE(t){this.Yn+=t,this.Yn<0&&(this.Yn=0)}canUndo(){if(!this.isEnabled||this.transactionLevel>0)return!1;const t=this.transactionToUndo;return!!(t!==null&&t.canUndo())}undo(){if(!this.canUndo())return;const t=this.transactionToUndo;try{this.Os=!0,this.t(\"StartingUndo\",\"Undo\",t),this.vs--,t.undo()}catch(i){Util.ei(\"undo error: \"+i.toString())}finally{this.t(\"FinishedUndo\",\"Undo\",t),this.Os=!1}}canRedo(){if(!this.isEnabled||this.transactionLevel>0)return!1;const t=this.transactionToRedo;return!!(t!==null&&t.canRedo())}redo(){if(!this.canRedo())return;const t=this.transactionToRedo;try{this.Os=!0,this.t(\"StartingRedo\",\"Redo\",t),this.vs++,t.redo()}catch(i){Util.ei(\"redo error: \"+i.toString())}finally{this.t(\"FinishedRedo\",\"Redo\",t),this.Os=!1}}t(t,i,e){e===void 0&&(e=null);const s=new ChangedEvent;s.change=1,s.propertyName=t,s.object=e,s.oldValue=i;const n=this.models;for(;n.next();){const o=n.value;s.model=o,o.Iw(s)}}handleChanged(t){if(this.isEnabled&&!this.isUndoingRedoing&&!this.skipsEvent(t)){let i=this.currentTransaction;i===null&&(i=new Transaction,this.gm=i);const e=t.copy(),s=i.changes;if(s.ot(),s.add(e),s.g(),this.pm&&this.jk>0&&this.transactionLevel<=0&&!this.Tw){const n=t.diagram;if(n!==null&&n.Bh===!1)return;Util.ei(\"Change not within a transaction: \"+e.toString()),this.jk--}}}skipsEvent(t){if(t===null||t.change===1)return!0;const i=t.object;if(i===null)return!1;if(i.layer!==void 0){const e=i.layer;if(e!==null&&e.isTemporary)return!0}else if(i.isTemporary)return!0;return!1}get models(){return this.Aw.iterator}get isEnabled(){return this.Ii}set isEnabled(t){this.Ii=t}get transactionToUndo(){return this.historyIndex>=0&&this.historyIndex<=this.history.count-1?this.history.elt(this.historyIndex):null}get transactionToRedo(){return this.historyIndex0}get pm(){return this.Gk}set pm(t){this.Gk=t}get nestedTransactionNames(){return this.cn}get vw(){return this.Dw}set vw(t){this.Dw=t}get Ow(){return this.Fw}set Ow(t){this.Fw=t}get wl(){return this.Rw}set wl(t){this.Rw=t}get isJustDiscarded(){return this.mm}}class Tool{p;St;Ii;Hk;qk;ym;LC;constructor(){GSet.ji(this),this.p=Diagram.wm(),this.St=\"\",this.Ii=!0,this.Hk=!1,this.qk=null,this.LC=new InputEvent,this.ym=-1}get diagram(){return this.p}set diagram(t){t instanceof Diagram&&(this.p=t)}toString(){return this.name!==\"\"?this.name+\" Tool\":Util.sn(this.constructor)}updateAdornments(t){}canStart(){return this.isEnabled}doStart(){}doActivate(){this.isActive=!0}doDeactivate(){this.isActive=!1}doStop(){}doCancel(){this.transactionResult=null,this.stopTool()}stopTool(){const t=this.diagram;t.currentTool===this&&(t.currentTool=null,t.currentCursor=\"\")}doMouseDown(){!this.isActive&&this.canStart()&&this.doActivate()}doMouseMove(){}doMouseUp(){this.stopTool()}doMouseWheel(){}canStartMultiTouch(){return!0}standardPinchZoomStart(){const t=this.diagram,i=t.lastInput,e=i.getMultiTouchViewPoint(0,Point.X(NaN,NaN)),s=i.getMultiTouchViewPoint(1,Point.X(NaN,NaN));if(!e.isReal()||!s.isReal()){Point.s(e),Point.s(s);return}if(this.doCancel(),t.getInputOption(\"hasGestureZoom\")){t.Wk=t.scale;const n=s.x-e.x,o=s.y-e.y,r=Math.sqrt(n*n+o*o);t.Jk=r,i.bubbles=!1}Point.s(e),Point.s(s)}standardPinchZoomMove(){const t=this.diagram,i=t.lastInput,e=i.getMultiTouchViewPoint(0,Point.X(NaN,NaN)),s=i.getMultiTouchViewPoint(1,Point.X(NaN,NaN));if(!e.isReal()||!s.isReal()){Point.s(e),Point.s(s);return}if(this.doCancel(),t.getInputOption(\"hasGestureZoom\")){const n=s.x-e.x,o=s.y-e.y,l=Math.sqrt(n*n+o*o)/t.Jk,h=new Point((Math.min(s.x,e.x)+Math.max(s.x,e.x))/2,(Math.min(s.y,e.y)+Math.max(s.y,e.y))/2),a=t.Wk*l,c=t.commandHandler;if(a!==t.scale&&c.canResetZoom(a)){const f=t.zoomPoint;t.zoomPoint=h,c.resetZoom(a),t.zoomPoint=f}i.bubbles=!1}Point.s(e),Point.s(s)}doKeyDown(){this.diagram.lastInput.code===\"Escape\"&&this.doCancel()}doKeyUp(){}startTransaction(t){return t===void 0&&(t=this.name),this.transactionResult=null,this.diagram.startTransaction(t)}stopTransaction(){const t=this.diagram;return this.transactionResult===null?t.rollbackTransaction():t.commitTransaction(this.transactionResult)}standardMouseSelect(){const t=this.diagram;if(!t.allowSelect)return;const i=t.lastInput,e=t.findPartAt(i.documentPoint,!1);if(e!==null){if(Util.or?i.meta:i.control){t.v(\"ChangingSelection\",t.selection);let s=e;for(;s!==null&&!s.canSelect();)s=s.containingGroup;s!==null&&(s.isSelected=!s.isSelected),t.v(\"ChangedSelection\",t.selection)}else if(i.shift){if(!e.isSelected){t.v(\"ChangingSelection\",t.selection);let s=e;for(;s!==null&&!s.canSelect();)s=s.containingGroup;s!==null&&(s.isSelected=!0),t.v(\"ChangedSelection\",t.selection)}}else if(!e.isSelected){let s=e;for(;s!==null&&!s.canSelect();)s=s.containingGroup;s!==null&&t.select(s)}}else i.left&&!(Util.or?i.meta:i.control)&&!i.shift&&t.clearSelection()}standardMouseClick(t,i){t===void 0&&(t=null),i===void 0&&(i=o=>!o.layer.isTemporary);const e=this.diagram,s=e.lastInput,n=e.findObjectAt(s.documentPoint,t,i);return s.targetObject=n,this.qD(n,s,e),s.handled}qD(t,i,e){if(i.handled=!1,t!==null&&!t.isEnabledObject())return;let s=0;i.left?i.clickCount===1?s=1:i.clickCount===2?s=2:s=1:i.right&&i.clickCount===1&&(s=3);let n=\"ObjectSingleClicked\";if(t!==null){switch(s){case 1:n=\"ObjectSingleClicked\";break;case 2:n=\"ObjectDoubleClicked\";break;case 3:n=\"ObjectContextClicked\";break}s!==0&&e.v(n,t)}else{switch(s){case 1:n=\"BackgroundSingleClicked\";break;case 2:n=\"BackgroundDoubleClicked\";break;case 3:n=\"BackgroundContextClicked\";break}s!==0&&e.v(n)}if(t!==null)for(;t!==null;){let o=null;switch(s){case 1:o=t.click;break;case 2:o=t.doubleClick?t.doubleClick:t.click;break;case 3:o=t.contextClick;break}if(o!==null&&(o(i,t),i.handled))break;t=t.panel}else{let o=null;switch(s){case 1:o=e.click;break;case 2:o=e.doubleClick?e.doubleClick:e.click;break;case 3:o=e.contextClick;break}o!==null&&o(i)}}standardMouseOver(){const t=this.diagram,i=t.lastInput;if(t.animationManager.wi===!0)return;const e=t.skipsUndoManager;t.skipsUndoManager=!0;let s=t.viewportBounds.containsPoint(i.documentPoint)?t.findObjectAt(i.documentPoint,null,null):null;i.event&&(i.event.type===\"pointercancel\"||i.event.type===\"pointerout\")&&(s=null),i.targetObject=s;let n=!1;if(s!==t.fc){let o=t.fc;const r=o;for(t.fc=s,this.doCurrentObjectChanged(o,s),i.handled=!1;o!==null;){const l=o.mouseLeave;if(l!==null&&(s===o||s!==null&&s.isContainedBy(o)||(l(i,o,s),n=!0,i.handled)))break;o=o.panel}for(o=r,i.handled=!1;s!==null;){const l=s.mouseEnter;if(l!==null&&(o===s||o!==null&&o.isContainedBy(s)||(l(i,s,o),n=!0,i.handled)))break;s=s.panel}s=t.fc}if(s!==null){let o=s,r=\"\";for(;o!==null&&(r=o.cursor,r===\"\");)o=o.panel;for(t.currentCursor=r,i.handled=!1,o=s;o!==null;){const l=o.mouseOver;if(l!==null&&(l(i,o),n=!0,i.handled))break;o=o.panel}}else{this.doUpdateCursor(null);const o=t.mouseOver;o!==null&&(o(i),n=!0)}n&&t.requestUpdate(),t.skipsUndoManager=e}doUpdateCursor(t){const i=this.diagram;i&&(i.currentCursor=\"\")}doCurrentObjectChanged(t,i){}standardMouseWheel(){const t=this.diagram,i=t.lastInput;let e=i.delta;if(e===0||!t.documentBounds.isReal())return;const s=t.commandHandler,n=t.toolManager.mouseWheelBehavior;if(s!==null&&(n===2&&!i.shift||n===1&&i.control)){if(e>0?s.canIncreaseZoom():s.canDecreaseZoom()){const o=t.zoomPoint;t.zoomPoint=i.viewPoint,e>0?s.increaseZoom():s.decreaseZoom(),t.zoomPoint=o}i.bubbles=!1}else if(n===2&&i.shift||n===1&&!i.control){const o=t.position.copy(),r=i.event,l=r.deltaMode;let h=r.deltaX,a=r.deltaY,c=\"pixel\";if((h!==0||a!==0)&&!i.shift){switch(l){case 0:c=\"pixel\";break;case 1:c=\"line\";break;case 2:c=\"page\";break}if(h!==0&&t.allowHorizontalScroll){const f=t.scrollHorizontalLineChange;h=h*(f/16),t.scroll(c,h>0?\"right\":\"left\",Math.abs(h))}if(a!==0&&t.allowVerticalScroll){const f=t.scrollVerticalLineChange;a=a*(f/16),t.scroll(c,a>0?\"down\":\"up\",Math.abs(a))}}else!i.shift&&t.allowVerticalScroll?(e=e*3*t.scrollVerticalLineChange,t.scroll(c,e>0?\"up\":\"down\",Math.abs(e))):i.shift&&t.allowHorizontalScroll&&(e=e*3*t.scrollHorizontalLineChange,t.scroll(c,e>0?\"left\":\"right\",Math.abs(e)));this.doWheelChange(t,o,i)}}doWheelChange(t,i,e){(!t.position.equals(i)||e.event.wheelDeltaX!==0)&&(e.bubbles=!1)}standardWaitAfter(t,i){i===void 0&&(i=this.diagram.lastInput),this.cancelWaitAfter();const e=this,s=i.clone(this.LC);this.ym=Util.Oh(()=>e.doWaitAfter(s),t)}cancelWaitAfter(){this.ym!==-1&&Util.Ig(this.ym),this.ym=-1}doWaitAfter(t){}findToolHandleAt(t,i){const s=this.diagram.findObjectAt(t,n=>{for(;n!==null&&!(n.panel instanceof Adornment);)n=n.panel;return n});return s===null?null:s.part.category===i?s:null}isBeyondDragSize(t,i){const e=this.diagram;t===void 0&&(t=e.firstInput.viewPoint),i===void 0&&(i=e.lastInput.viewPoint);const s=e.toolManager.dragSize;let n=s.width,o=s.height;return e.firstInput.isTouchEvent&&(n+=6,o+=6),Math.abs(i.x-t.x)>n||Math.abs(i.y-t.y)>o}get name(){return this.St}set name(t){Util.i(t,\"string\",Tool,\"name\"),this.St=t}get isEnabled(){return this.Ii}set isEnabled(t){Util.i(t,\"boolean\",Tool,\"isEnabled\"),this.Ii=t}get isActive(){return this.Hk}set isActive(t){Util.i(t,\"boolean\",Tool,\"isActive\"),this.Hk=t}get transactionResult(){return this.qk}set transactionResult(t){t!==null&&Util.i(t,\"string\",Tool,\"transactionResult\"),this.qk=t}}var WheelMode=(w=>(w[w.Scroll=1]=\"Scroll\",w[w.Zoom=2]=\"Zoom\",w[w.None=3]=\"None\",w))(WheelMode||{}),GestureMode=(w=>(w[w.Zoom=1]=\"Zoom\",w[w.Cancel=2]=\"Cancel\",w[w.None=3]=\"None\",w))(GestureMode||{});class ToolManager extends Tool{AC;TC;DC;$k;Zk;Qk;_k;tP;iP;eP;xm;Uh;constructor(t){super(),this.name=\"ToolManager\",this.AC=new List,this.TC=new List,this.DC=new List,this.$k=850,this.Zk=850,this.Qk=new Size(2,2).it(),this._k=5e3,this.tP=1,this.iP=1,this.eP=null,this.xm=null,this.Uh=-1,t&&Object.assign(this,t)}static WheelScroll=1;static WheelZoom=2;static WheelNone=3;static GestureZoom=1;static GestureCancel=2;static GestureNone=3;get mouseWheelBehavior(){return this.tP}set mouseWheelBehavior(t){this.tP=t}get gestureBehavior(){return this.iP}set gestureBehavior(t){this.iP=t}initializeStandardTools(){}updateAdornments(t){const i=this.currentToolTip;if(i instanceof Adornment&&this.xm===t){const e=i.adornedObject;(t!==null?e.part===t:e===null)?this.showToolTip(i,e):this.hideToolTip()}}doMouseDown(){const t=this.diagram,i=t.lastInput;if(i.isTouchEvent&&this.gestureBehavior===2&&(i.bubbles=!1),i.isMultiTouch){if(this.cancelWaitAfter(),this.gestureBehavior===3){i.bubbles=!0;return}if(this.gestureBehavior===2)return;if(t.currentTool.canStartMultiTouch()){t.currentTool.standardPinchZoomStart();return}}const e=t.undoManager,s=this.mouseDownTools.length;for(let n=0;n0&&s!==1/0){const n=this;this.Uh=Util.Oh(()=>n.hideToolTip(),s)}}positionToolTip(t,i){if(t.hasPlaceholder())return;const e=t,s=this.diagram,n=s.lastInput.documentPoint.copy(),o=e.measuredBounds,r=s.viewportBounds;s.lastInput.isTouchEvent&&(n.x-=o.width),n.x+o.width>r.right&&(n.x-=o.width+5/s.scale),n.xr.bottom?n.y-=o.height+5/s.scale:n.y+=20/s.scale,n.y30&&t.Bw(),t.Uw(this.draggedParts),t.yu=!0,this.startTransaction(\"Drag\"),this.startPoint=t.firstInput.documentPoint,t.isMouseCaptured=!0,t.allowDragOut&&this.JD()}mP(t){if(!this.dragsLink)return;const i=this.diagram,e=i.model.gc(),s=t.first();e&&t.count===1&&s instanceof Link&&this.mayDragLink(s)?(this.draggedLink=s,this.draggedLink.canRelinkFrom()&&this.draggedLink.canRelinkTo()&&this.draggedLink.clearAdornments(),this.fn=i.toolManager.findTool(\"Relinking\"),this.fn===null&&(this.fn=new RelinkingTool,this.fn.diagram=i),this.fn.originalLink=this.draggedLink):(this.draggedLink=null,this.fn=null)}mayDragLink(t){const i=this.diagram;return i!==null&&i.allowRelink}computeEffectiveCollection(t,i){return this.diagram.commandHandler.computeEffectiveCollection(t,i)}Is(t){return t===void 0?new DraggingInfo(Point.Po):this.isGridSnapEnabled?new DraggingInfo(new Point(Math.round(t.x*1e3)/1e3,Math.round(t.y*1e3)/1e3)):new DraggingInfo(t.copy())}doDeactivate(){this.isActive=!1;const t=this.diagram;this.diagram.layout.isRealtime=this.gP,t.yu=!1,t.xl=!0,t.cacheGroupExternalLinks(!1),t.stopAutoScroll(),this.pP(),t.km(this.draggedParts),this.pu=null,this.currentPart=null,this.draggedParts=null,this.isDragOutStarted=!1,this.mu=!1,DraggingTool.$D(),this.RC(),this.uc.e(NaN,NaN),DraggingTool.zh!==null&&(DraggingTool.zh.currentCursor=\"\"),DraggingTool.zh=null,DraggingTool.yt=null,this.bl(),t.isMouseCaptured=!1,t.currentCursor=\"\",t.dc=!1,this.stopTransaction(),t.yP(!0)}stopTransaction(){const t=this.diagram,i=super.stopTransaction();return i&&t.undoManager.transactionToUndo!==null&&t.undoManager.transactionToUndo.optimize(),i}pP(){const t=this.diagram,i=t.skipsUndoManager;t.skipsUndoManager=!0;const e=t.lastInput;this.vC(e,null),t.skipsUndoManager=i,this.gr.length=0}OC(){this.bl(),this.wP();const t=this.diagram;this.uc.isReal()&&(t.position=this.uc),t.stopAutoScroll()}doCancel(){this.bl(),this.wP();const t=this.diagram;this.uc.isReal()&&(t.position=this.uc),this.stopTool()}doKeyDown(){const t=this.diagram,i=t.lastInput;this.isActive&&(i.code===\"Escape\"?this.doCancel():i.code!==t.previousInput.code&&this.doMouseMove())}doKeyUp(){this.isActive&&this.doMouseMove()}ZD(t,i){let e=1/0,s=1/0,n=-1/0,o=-1/0;const r=t.iterator;for(;r.next();){const l=r.value;if(!l.isVisible())continue;const h=l.location,a=h.x,c=h.y;isNaN(a)||isNaN(c)||(an&&(n=a),c>o&&(o=c))}return e===1/0?i.e(0,0,0,0):i.e(e,s,n-e,o-s),i}xP(t){if(this.copiedParts!==null)return;const i=this.diagram;if(t&&(i.isReadOnly||i.isModelReadOnly)||this.draggedParts===null)return;const e=i.undoManager;e.isEnabled&&e.isInTransaction?e.currentTransaction!==null&&e.currentTransaction.changes.count>0&&(i.undoManager.rollbackTransaction(),i.startTransaction(\"Drag\")):this.wP(),i.skipsUndoManager=!t,i.partManager.addsToTemporaryLayer=!t,this.startPoint=i.firstInput.documentPoint;const s=this.copiesEffectiveCollection?this.draggedParts.toKeySet():i.selection,n=i.copyParts(s,i,!0),o=new GMap,r=this.draggedParts.iterator;for(;r.next();){const h=r.key;if(h.Pe()&&h.canCopy()){const a=n.get(h);if(a===null)continue;a.location=h.location,a.ensureBounds(),o.set(a,this.Is(a.location))}}const l=n.iterator;for(;l.next();){const h=l.value;h instanceof Link&&h.canCopy()&&o.set(h,this.Is())}if(this.copiedParts=o,this.mP(o.toKeySet()),this.draggedLink!==null){const h=this.draggedLink,a=h.routeBounds;h.mr(this.startPoint.x-(a.x+a.width/2),this.startPoint.y-(a.y+a.height/2))}this.doUpdateCursor(null)}bl(){const t=this.diagram;if(this.copiedParts!==null){if(t.removeParts(this.copiedParts.toKeySet(),!1),this.copiedParts=null,this.draggedParts!==null){const i=this.draggedParts.iterator;for(;i.next();)if(i.key instanceof Link){const s=i.value;s.point=new Point(0,0)}}this.doUpdateCursor(null)}t.skipsUndoManager=!1,t.partManager.addsToTemporaryLayer=!1,this.startPoint=t.firstInput.documentPoint}RC(){this.draggedLink!==null&&(this.dragsLink&&this.fn!==null&&(this.fn.stopDraggingMouseMove(),this.fn.originalLink=null),this.draggedLink=null,this.fn=null)}mc(t,i){const e=this.diagram,s=this.startPoint,n=Point.l();n.a(e.lastInput.documentPoint),this.moveParts(t,n.subtract(s),i),Point.s(n),e.getRenderingHint(\"temporaryPixelRatio\")===!0&&e.kl===null&&e.avgSpf>30&&(e.Bw(),e.wu())}moveParts(t,i,e){e===void 0&&(e=!1);const s=this.diagram;s!==null&&s.bP(t,i,this.dragOptions,e)}wP(){if(this.draggedParts===null)return;const t=this.diagram;let i=this.draggedParts.iterator;for(;i.next();){const e=i.key;e.Pe()&&(e.location=i.value.point)}for(i=this.draggedParts.iterator;i.next();){const e=i.key;if(e instanceof Link&&e.suspendsRouting){const s=i.value.point;this.draggedParts.set(e,this.Is()),e.mr(-s.x,-s.y)}}t.maybeUpdate()}QD(t){if(t===null)return!0;const i=t.part;return!!(i===null||i instanceof Adornment||i.layer.isTemporary||this.draggedParts&&this.draggedParts.has(i)||this.copiedParts&&this.copiedParts.has(i))}kP(t){const i=this.diagram;this.dragsLink&&(this.draggedLink!==null&&(this.draggedLink.fromNode=null,this.draggedLink.toNode=null),this.IC(!1));const e=this.findDragOverObject(t),s=i.lastInput;s.targetObject=e,this.doUpdateCursor(e);const n=i.skipsUndoManager;let o=!1;try{if(i.skipsUndoManager=!0,o=this.vC(s,e),!this.isActive&&DraggingTool.yt===null)return;const r=e!==null?e.part:null;if(r===null||i.handlesDragDropForTopLevelParts&&r.isTopLevel&&!(r instanceof Group)){const l=i.mouseDragOver;l!==null&&(l(s),o=!0)}if(!this.isActive&&DraggingTool.yt===null||(this.doDragOver(t,e),!this.isActive&&DraggingTool.yt===null))return}finally{i.skipsUndoManager=n,o&&i.maybeUpdate()}this.pu=e,!i.isReadOnly&&(i.allowMove||i.allowCopy)&&(i.allowHorizontalScroll||i.allowVerticalScroll)&&i.doAutoScroll(s.viewPoint)}findDragOverObject(t){return this.diagram.PP(t,null,i=>!this.QD(i))}doUpdateCursor(t){const i=this.diagram;(t===null||this.pu!==t)&&(!this.diagram.currentTool.isActive||this.mayCopy()?i.currentCursor=this.copyCursor:this.mayMove()?i.currentCursor=this.moveCursor:this.mayDragOut()&&(i.currentCursor=this.nodropCursor))}vC(t,i){let e=!1,s=this.gr.length;const n=s>0?this.gr[0]:null;if(i===n)return!1;t.handled=!1;for(let r=0;rs.findValidLinkablePort(a,i)),r=Point.l();let l=1/0,h=null;for(const a=o.iterator;a.next();){const c=a.value;if(c.part===null)continue;const u=c.getDocumentPoint(Spot.Center,r),d=t.distanceSquaredPoint(u);dh.suspendsRouting=!1)}if(this.doDropOnto(t,e),!this.isActive&&DraggingTool.yt===null)return;const o=Rect.l(),r=i.selection.iterator;for(;r.next();){const l=r.value;l instanceof Node&&this.tF(i,l,o)}Rect.s(o)}_D(t,i){const e=this.diagram,s=i.part;if(e.handlesDragDropForTopLevelParts&&s.isTopLevel&&!(s instanceof Group)){const n=e.mouseDrop;n!==null&&n(t)}}tF(t,i,e){if(!i.canAvoid())return;let s=!1;e=i.getAvoidableRect(e),t.viewportBounds.containsRect(e)&&(s=!0);const n=this.copiedParts||this.draggedParts,o=t.NP(e,l=>l.part,l=>l instanceof Link,!0,l=>l instanceof Link,s);if(o.count===0)return;const r=o.iterator;for(;r.next();){const l=r.value;n.has(l)&&n.has(i)||!l.isMemberOf(i)&&l.isAvoiding&&l.invalidateRoute()}}doDropOnto(t,i){}doMouseMove(){if(!this.isActive)return;const t=this.diagram,i=t.lastInput;if(this.simulatedMouseMove(i.event,i.documentPoint,i.targetDiagram))return;this.currentPart!==null&&this.draggedParts!==null&&(this.mayCopy()?(this.xP(!1),t.Uw(this.copiedParts),this.mc(this.copiedParts,!1),t.km(this.copiedParts)):this.mayMove()?(this.bl(),this.mc(this.draggedParts,!0)):this.mayDragOut()?(this.xP(!1),this.mc(this.copiedParts,!1)):this.bl(),this.kP(t.lastInput.documentPoint))}doMouseUp(){if(!this.isActive)return;const t=this.diagram,i=t.lastInput;if(this.simulatedMouseUp(i.event,i.documentPoint,i.targetDiagram))return;let e=!1;const s=this.mayCopy();if(s&&this.copiedParts!==null?(this.bl(),this.xP(!0),t.Uw(this.copiedParts),this.mc(this.copiedParts,!1),t.km(this.copiedParts),this.copiedParts!==null&&(t.v(\"ChangingSelection\",t.selection),t.clearSelection(!0),this.copiedParts.iteratorKeys.each(n=>{n.isSelected=!0}))):(e=!0,this.bl(),this.mayMove()&&(this.mc(this.draggedParts,!0),this.kP(t.lastInput.documentPoint))),this.mu=!0,this.UC(t.lastInput.documentPoint),this.isActive){const n=s?this.copiedParts.toKeySet():this.draggedParts.toKeySet();this.copiedParts=null,e&&this.iF(),t.invalidateDocumentBounds(),t.km(this.draggedParts),this.transactionResult=s?\"Copy\":\"Move\",t.v(s?\"SelectionCopied\":\"SelectionMoved\",n)}this.stopTool(),s&&t.v(\"ChangedSelection\",t.selection)}simulatedMouseMove(t,i,e){if(DraggingTool.yt===null)return!1;const s=DraggingTool.yt.diagram;e instanceof Diagram||(e=null);const n=DraggingTool.zh;if(e!==n){if(n!==null&&n!==s){n.stopAutoScroll(),DraggingTool.yt.isDragOutStarted=!1;const r=n.toolManager.findTool(\"Dragging\");r!==null&&r.doSimulatedDragLeave()}if(DraggingTool.zh=e,e!==null&&e!==s){DraggingTool.yt.OC();const r=e.toolManager.findTool(\"Dragging\");r!==null&&(r.VC(),r.doSimulatedDragEnter())}this.doUpdateCursor(null)}if(e===null||e===s||!e.allowDrop||e.isReadOnly||!e.allowInsert)return!1;const o=e.toolManager.findTool(\"Dragging\");if(o!==null){let r=i;t!==null&&(t.targetTouches!==void 0&&(t.targetTouches.length>0?t=t.targetTouches[0]:t.changedTouches.length>0&&(t=t.changedTouches[0])),r=e.getMouse(t)),e.lastInput.documentPoint=r,e.lastInput.viewPoint=e.transformDocToView(r),e.lastInput.down=!1,e.lastInput.up=!1,o.doSimulatedDragOver()}return!0}simulatedMouseUp(t,i,e){if(DraggingTool.yt===null)return!1;const s=DraggingTool.zh,n=DraggingTool.yt.diagram;if(e===null)return DraggingTool.yt.doCancel(),!0;if(e!==s){const o=s.toolManager.findTool(\"Dragging\");if(s!==null&&s!==n&&o!==null)return s.stopAutoScroll(),DraggingTool.yt.isDragOutStarted=!1,o.doSimulatedDragLeave(),!1;DraggingTool.zh=e;const r=e.toolManager.findTool(\"Dragging\");r!==null&&(DraggingTool.yt.OC(),r.VC(),r.doSimulatedDragEnter())}if(e!==this.diagram){let o=i;t!==null?(t.targetTouches!==void 0&&(t.targetTouches.length>0?t=t.targetTouches[0]:t.changedTouches.length>0&&(t=t.changedTouches[0])),o=e.getMouse(t)):o===null&&(o=new Point),e.lastInput.documentPoint=o,e.lastInput.viewPoint=e.transformDocToView(o),e.lastInput.down=!1,e.lastInput.up=!0;const r=e.toolManager.findTool(\"Dragging\");r!==null&&r.doSimulatedDrop();const l=DraggingTool.yt;if(l!==null){const h=l.mayCopy();l.transactionResult=h?\"Copy\":\"Move\",l.stopTool()}return!0}return!1}iF(){if(this.draggedParts===null)return;const t=this.draggedParts.iterator;for(;t.next();){const i=t.key;if(i instanceof Node){const e=i.containingGroup;e!==null&&e.hasPlaceholder()&&!this.draggedParts.has(e)&&e.placeholder.c()}}}mayCopy(){if(!this.isCopyEnabled)return!1;const t=this.diagram;if(t.isReadOnly||t.isModelReadOnly||!t.allowInsert||!t.allowCopy||!(Util.or?t.lastInput.alt:t.lastInput.control))return!1;const i=t.selection.iterator;for(;i.next();)if(i.value.canCopy())return!0;return!!(this.draggedLink!==null&&this.dragsLink&&this.draggedLink.canCopy())}mayDragOut(){if(!this.isCopyEnabled)return!1;const t=this.diagram;if(!t.allowDragOut||!t.allowCopy||t.allowMove)return!1;const i=t.selection.iterator;for(;i.next();)if(i.value.canCopy())return!0;return!!(this.draggedLink!==null&&this.dragsLink&&this.draggedLink.canCopy())}mayMove(){const t=this.diagram;if(t.isReadOnly||!t.allowMove)return!1;const i=t.selection.iterator;for(;i.next();)if(i.value.canMove())return!0;return!!(this.draggedLink!==null&&this.dragsLink&&this.draggedLink.canMove())}VC(){DraggingTool.Vw.has(this)||DraggingTool.Vw.add(this)}static $D(){if(DraggingTool.Vw.count>0){const t=DraggingTool.Vw,i=t.length;for(let e=0;e{n.isSelected=!0,s.add(n)})),this.UC(t.lastInput.documentPoint),t.invalidateDocumentBounds(),this.copiedParts!==null&&(this.transactionResult=\"ExternalCopy\"),this.copiedParts=null,t.doFocus(),t.dc=!1,t.v(\"ExternalObjectsDropped\",s,e),this.stopTransaction(),t.v(\"ChangedSelection\",t.selection)}t.animationManager.xu=!1}zC(t,i,e){if(this.copiedParts!==null)return;const s=this.diagram;if(s.isReadOnly||s.isModelReadOnly)return;s.skipsUndoManager=!i,s.partManager.addsToTemporaryLayer=!i,this.startPoint=e.documentPoint;const n=s.copyParts(t,s,!0),o=Rect.l();this.ZD(t,o);const r=o.x+o.width/2,l=o.y+o.height/2;Rect.s(o);const h=this.bm,a=new GMap,c=Point.l(),f=t.iterator;for(;f.next();){const d=f.value;if(d instanceof Link&&d.canCopy()){const m=n.get(d);if(m===null)continue;m.points=d.points,m.mr(h.x-r,h.y-l),m.suspendsRouting=!0,a.set(m,this.Is())}}const u=t.iterator;for(;u.next();){const d=u.value;if(d.Pe()&&d.canCopy()){const m=n.get(d);if(m===null)continue;const g=d.location;c.e(h.x-(r-g.x),h.y-(l-g.y)),m.location=c,m.ensureBounds(),a.set(m,this.Is(c))}}if(Point.s(c),this.copiedParts=a,this.mP(a.toKeySet()),this.draggedLink!==null){const d=this.draggedLink,m=d.routeBounds;d.mr(this.startPoint.x-(m.x+m.width/2),this.startPoint.y-(m.y+m.height/2))}this.doUpdateCursor(null)}JD(){this.isDragOutStarted=!0,this.mu=!1,DraggingTool.yt=this,DraggingTool.zh=this.diagram,this.doSimulatedDragOut()}doSimulatedDragOut(){const t=this.diagram;t.dc=!1,!this.mayCopy()&&!this.mayMove()?t.currentCursor=this.nodropCursor:t.currentCursor=\"\",this.pu=null}computeMove(t,i,e,s){const n=this.diagram;return n!==null?n.computeMove(t,i,this.dragOptions,s):new Point}static Vw=new List;static yt=null;static zh=null}ToolManager.prototype.doCancel=function(){DraggingTool.yt!==null&&DraggingTool.yt.doCancel(),Tool.prototype.doCancel.call(this)};class LinkingBaseTool extends Tool{CP;LP;Pl;AP;TP;Xh;DP;Kh;FP;RP;vP;OP;IP;EP;XC;BP;Ml;UP;constructor(){super(),this.CP=100,this.LP=!1,this.Pl=\"pointer\",this.AP=new Link({layerName:\"Tool\"}).add(new Shape({isPanelMain:!0,stroke:\"blue\"}).theme(\"stroke\",\"tempLink\"),new Shape({toArrow:\"Standard\",fill:\"blue\",stroke:\"blue\"}).theme(\"fill\",\"tempLink\").theme(\"stroke\",\"tempLink\")).Vt(),this.Xh=new Shape(\"Rectangle\",{portId:\"\",fill:null,stroke:\"magenta\",strokeWidth:2,desiredSize:Size.Dk}).theme(\"stroke\",\"tempPort\"),this.TP=new Node({selectable:!1,layerName:\"Tool\"}).add(this.Xh).Vt(),this.Kh=new Shape(\"Rectangle\",{portId:\"\",fill:null,stroke:\"magenta\",strokeWidth:2,desiredSize:Size.Dk}).theme(\"stroke\",\"tempPort\"),this.DP=new Node({selectable:!1,layerName:\"Tool\"}).add(this.Kh).Vt(),this.FP=null,this.RP=null,this.vP=null,this.OP=null,this.IP=null,this.EP=!0,this.XC=new GMap,this.BP=null,this.Ml=null,this.UP=null}doStop(){this.diagram.stopAutoScroll(),this.originalLink=null,this.originalFromNode=null,this.originalFromPort=null,this.originalToNode=null,this.originalToPort=null,this.validPortsCache.clear(),this.targetPort=null}get portGravity(){return this.CP}set portGravity(t){Util.i(t,\"number\",LinkingBaseTool,\"portGravity\"),t>=0&&(this.CP=t)}get isUnconnectedLinkValid(){return this.LP}set isUnconnectedLinkValid(t){Util.i(t,\"boolean\",LinkingBaseTool,\"isUnconnectedLinkValid\"),this.LP=t}get linkingCursor(){return this.Pl}set linkingCursor(t){this.Pl=t}get temporaryLink(){return this.AP}set temporaryLink(t){t.Vt(),this.AP=t}get temporaryFromNode(){return this.TP}set temporaryFromNode(t){t.Vt(),this.TP=t,t&&(this.Xh=t.port)}get temporaryFromPort(){return this.Xh}set temporaryFromPort(t){if(this.Xh!==null){const i=this.Xh.panel;if(i!==null){const e=i.L.indexOf(this.Xh);i.removeAt(e),i.insertAt(e,t)}}this.Xh=t}get temporaryToNode(){return this.DP}set temporaryToNode(t){t.Vt(),this.DP=t,t&&(this.Kh=t.port)}get temporaryToPort(){return this.Kh}set temporaryToPort(t){if(this.Kh!==null){const i=this.Kh.panel;if(i!==null){const e=i.L.indexOf(this.Kh);i.removeAt(e),i.insertAt(e,t)}}this.Kh=t}get originalLink(){return this.FP}set originalLink(t){this.FP=t}get originalFromNode(){return this.RP}set originalFromNode(t){this.RP=t}get originalFromPort(){return this.vP}set originalFromPort(t){this.vP=t}get originalToNode(){return this.OP}set originalToNode(t){this.OP=t}get originalToPort(){return this.IP}set originalToPort(t){this.IP=t}get isForwards(){return this.EP}set isForwards(t){this.EP=t}get validPortsCache(){return this.XC}get targetPort(){return this.BP}set targetPort(t){this.BP=t}copyPortProperties(t,i,e,s,n){if(t===null||i===null||e===null||s===null)return;const o=i.getDocumentScale(),r=Size.l();r.width=i.naturalBounds.width*o,r.height=i.naturalBounds.height*o,s.desiredSize=r,Size.s(r),n?(s.toSpot=i.toSpot,s.toEndSegmentLength=i.toEndSegmentLength):(s.fromSpot=i.fromSpot,s.fromEndSegmentLength=i.fromEndSegmentLength),e.locationSpot=Spot.Center;const l=Point.l();e.location=i.getDocumentPoint(Spot.Center,l),Point.s(l),s.angle=i.getDocumentAngle(),this.portTargeted!==null&&this.portTargeted(t,i,e,s,n)}setNoTargetPortProperties(t,i,e){i!==null&&(i.desiredSize=Size.Dk,i.fromSpot=Spot.None,i.toSpot=Spot.None),t!==null&&(t.location=this.diagram.lastInput.documentPoint),this.portTargeted!==null&&this.portTargeted(null,null,t,i,e)}doMouseDown(){this.isActive&&this.doMouseMove()}doMouseMove(){if(this.isActive){const t=this.diagram;if(this.targetPort=this.findTargetPort(this.isForwards),this.targetPort!==null&&this.targetPort.part instanceof Node){const i=this.targetPort.part;this.isForwards?this.copyPortProperties(i,this.targetPort,this.temporaryToNode,this.temporaryToPort,!0):this.copyPortProperties(i,this.targetPort,this.temporaryFromNode,this.temporaryFromPort,!1)}else this.isForwards?this.setNoTargetPortProperties(this.temporaryToNode,this.temporaryToPort,!0):this.setNoTargetPortProperties(this.temporaryFromNode,this.temporaryFromPort,!1);(t.allowHorizontalScroll||t.allowVerticalScroll)&&t.doAutoScroll(t.lastInput.viewPoint)}}findValidLinkablePort(t,i){if(t===null)return null;const e=t.part;if(!(e instanceof Node))return null;for(;t!==null;){const s=i?t.toLinkable:t.fromLinkable;if(s===!0&&(t.portId!==null||t instanceof Node)&&(i?this.isValidTo(e,t):this.isValidFrom(e,t)))return t;if(s===!1)return null;t=t.panel}return null}findTargetPort(t){const i=this.diagram,e=i.lastInput.documentPoint;let s=this.portGravity;s<=0&&(s=.1);const n=this,o=i.findObjectsNear(e,s,a=>n.findValidLinkablePort(a,t),null,!0);let r=1/0,l=null;const h=o.iterator;for(;h.next();){const a=h.value,c=a.part;if(!(c instanceof Node))continue;const f=a.getDocumentPoint(Spot.Center,Point.l()),u=e.x-f.x,d=e.y-f.y;Point.s(f);const m=u*u+d*d;if(m=e)return!1}return!0}isValidTo(t,i){if(t===null||i===null)return this.isUnconnectedLinkValid;if(this.diagram.currentTool===this&&(t.layer!==null&&!t.layer.allowLink||i.toLinkable!==!0))return!1;const e=i.toMaxLinks;if(e<1/0){if(this.originalLink!==null&&t===this.originalToNode&&i===this.originalToPort)return!0;let s=i.portId;if(s===null&&(s=\"\"),t.findLinksInto(s).count>=e)return!1}return!0}isInSameNode(t,i){if(t===null||i===null)return!1;if(t===i)return!0;const e=t.part,s=i.part;return e!==null&&e===s}isLinked(t,i){if(t===null||i===null)return!1;const e=t.part;if(!(e instanceof Node))return!1;let s=t.portId;s===null&&(s=\"\");const n=i.part;if(!(n instanceof Node))return!1;let o=i.portId;o===null&&(o=\"\");const r=n.findLinksInto(o);for(;r.next();){const l=r.value;if(l.fromNode===e&&l.fromPortId===s)return!0}return!1}isValidLink(t,i,e,s){if(!this.isValidFrom(t,i)||!this.isValidTo(e,s)||i!==null&&s!==null&&(!(i.fromLinkableSelfNode&&s.toLinkableSelfNode)&&this.isInSameNode(i,s)||!(i.fromLinkableDuplicates&&s.toLinkableDuplicates)&&this.isLinked(i,s))||this.originalLink!==null&&(t!==null&&this.isLabelDependentOnLink(t,this.originalLink)||e!==null&&this.isLabelDependentOnLink(e,this.originalLink))||t!==null&&e!==null&&(t.data===null&&e.data!==null||t.data!==null&&e.data===null)||!this.isValidCycle(t,e,this.originalLink))return!1;let n;return t!==null&&(n=t.linkValidation,n!==null&&!n(t,i,e,s,this.originalLink))||e!==null&&(n=e.linkValidation,n!==null&&!n(t,i,e,s,this.originalLink))?!1:(n=this.linkValidation,n!==null?n(t,i,e,s,this.originalLink):!0)}isLabelDependentOnLink(t,i){if(t===null)return!1;const e=t.labeledLink;if(e===null)return!1;if(e===i)return!0;const s=new GSet;return s.add(t),this.VP(e,i,s)}VP(t,i,e){if(t===i)return!0;const s=t.fromNode;if(s!==null&&s.isLinkLabel&&(e.add(s),this.VP(s.labeledLink,i,e)))return!0;const n=t.toNode;return!!(n!==null&&n.isLinkLabel&&(e.add(n),this.VP(n.labeledLink,i,e)))}isValidCycle(t,i,e){if(e===void 0&&(e=null),t===null||i===null)return this.isUnconnectedLinkValid;const s=this.diagram;let n=1;if(s&&(s.model.pc()?n=s.isTreePathToChildren?5:6:n=s.validCycle),n===1)return!0;if(n===5){const o=e||this.temporaryLink;if(o!==null&&!o.isTreeLink)return!0;const r=i.linksConnected;for(;r.next();){const l=r.value;if(l!==e&&l.isTreeLink&&l.toNode===i)return!1}return!this.bu(t,i,e,!0)}else if(n===6){const o=e||this.temporaryLink;if(o!==null&&!o.isTreeLink)return!0;const r=t.linksConnected;for(;r.next();){const l=r.value;if(l!==e&&l.isTreeLink&&l.fromNode===t)return!1}return!this.bu(t,i,e,!0)}else{if(n===2)return!this.eF(t,i,e);if(n===3)return!this.bu(t,i,e,!1);if(n===4)return!this.sF(t,i,e)}return!0}bu(t,i,e,s){if(t===i)return!0;if(t===null||i===null)return!1;const n=t.linksConnected;for(;n.next();){const o=n.value;if(o===e||s&&!o.isTreeLink||o.toNode!==t)continue;const r=o.fromNode;if(r!==t&&this.bu(r,i,e,s))return!0}return!1}eF(t,i,e){if(t===i)return!0;const s=new GSet;return s.add(i),this.KC(s,t,i,e)}KC(t,i,e,s){if(i===e)return!0;if(i===null||e===null||t.has(i))return!1;t.add(i);const n=i.linksConnected;for(;n.next();){const o=n.value;if(o===s||o.toNode!==i)continue;const r=o.fromNode;if(r!==i&&this.KC(t,r,e,s))return!0}return!1}sF(t,i,e){if(t===i)return!0;const s=new GSet;return s.add(i),this.YC(s,t,i,e)}YC(t,i,e,s){if(i===e)return!0;if(i===null||e===null||t.has(i))return!1;t.add(i);const n=i.linksConnected;for(;n.next();){const o=n.value;if(o===s)continue;const r=o.fromNode,l=o.toNode,h=r===i?l:r;if(h!==i&&this.YC(t,h,e,s))return!0}return!1}get linkValidation(){return this.Ml}set linkValidation(t){t!==null&&Util.i(t,\"function\",LinkingBaseTool,\"linkValidation\"),this.Ml=t}get portTargeted(){return this.UP}set portTargeted(t){t!==null&&Util.i(t,\"function\",LinkingBaseTool,\"portTargeted\"),this.UP=t}}var LinkingDirection=(w=>(w[w.Either=1]=\"Either\",w[w.ForwardsOnly=2]=\"ForwardsOnly\",w[w.BackwardsOnly=3]=\"BackwardsOnly\",w))(LinkingDirection||{});class LinkingTool extends LinkingBaseTool{zP;XP;S;KP;constructor(t){super(),this.name=\"Linking\",this.zP={},this.XP=null,this.S=1,this.KP=null,t&&Object.assign(this,t)}static Either=1;static ForwardsOnly=2;static BackwardsOnly=3;get archetypeLinkData(){return this.zP}set archetypeLinkData(t){t!==null&&Util.i(t,\"object\",LinkingTool,\"archetypeLinkData\"),this.zP=t}get archetypeLabelNodeData(){return this.XP}set archetypeLabelNodeData(t){t!==null&&Util.i(t,\"object\",LinkingTool,\"archetypeLabelNodeData\"),this.XP=t}get direction(){return this.S}set direction(t){this.S=t}get startObject(){return this.KP}set startObject(t){this.KP=t}canStart(){if(!this.isEnabled)return!1;const t=this.diagram;return t.isReadOnly||t.isModelReadOnly||!t.allowLink||!t.model.zw()||!t.lastInput.left||t.currentTool!==this&&!this.isBeyondDragSize()?!1:this.findLinkablePort()!==null}findLinkablePort(){const t=this.diagram;let i=this.startObject;if(i===null&&(i=t.findObjectAt(t.firstInput.documentPoint,null,null)),i===null)return null;const e=i.part;if(!(e instanceof Node))return null;const s=this.direction;if(s===1||s===2){const n=this.findValidLinkablePort(i,!1);if(n!==null)return this.isForwards=!0,n;if(this.startObject===e){const o=e.port;if(this.findValidLinkablePort(o,!1))return this.isForwards=!0,o}}if(s===1||s===3){const n=this.findValidLinkablePort(i,!0);if(n!==null)return this.isForwards=!1,n;if(this.startObject===e){const o=e.port;if(this.findValidLinkablePort(o,!0))return this.isForwards=!1,o}}return null}doActivate(){const t=this.diagram,i=this.findLinkablePort();if(i===null){this.stopTool();return}if(this.startTransaction(this.name),t.isMouseCaptured=!0,t.currentCursor=this.linkingCursor,this.isForwards){this.temporaryToNode!==null&&(this.temporaryToNode.location=t.lastInput.documentPoint),this.originalFromPort=i;const e=this.originalFromPort.part;e instanceof Node&&(this.originalFromNode=e),this.copyPortProperties(this.originalFromNode,this.originalFromPort,this.temporaryFromNode,this.temporaryFromPort,!1)}else{this.temporaryFromNode!==null&&(this.temporaryFromNode.location=t.lastInput.documentPoint),this.originalToPort=i;const e=this.originalToPort.part;e instanceof Node&&(this.originalToNode=e),this.copyPortProperties(this.originalToNode,this.originalToPort,this.temporaryToNode,this.temporaryToPort,!0)}t.add(this.temporaryFromNode),this.temporaryFromNode&&this.temporaryFromNode.ensureBounds(),t.add(this.temporaryToNode),this.temporaryToNode&&this.temporaryToNode.ensureBounds(),this.temporaryLink!==null&&(this.temporaryFromNode!==null&&(this.temporaryLink.fromNode=this.temporaryFromNode),this.temporaryToNode!==null&&(this.temporaryLink.toNode=this.temporaryToNode),this.temporaryLink.isTreeLink=this.isNewTreeLink(),this.temporaryLink.invalidateRoute(),t.add(this.temporaryLink)),this.isActive=!0}doDeactivate(){this.isActive=!1;const t=this.diagram;t.remove(this.temporaryLink),t.remove(this.temporaryFromNode),t.remove(this.temporaryToNode),t.isMouseCaptured=!1,t.currentCursor=\"\",this.stopTransaction()}doStop(){super.doStop(),this.startObject=null}doMouseUp(){if(this.isActive){const t=this.diagram;this.transactionResult=null;let i=null,e=null,s=null,n=null,o=null;try{this.targetPort=this.findTargetPort(this.isForwards);const r=this.targetPort;if(r!==null){const l=r.part;l instanceof Node&&(this.isForwards?(this.originalFromNode!==null&&(i=this.originalFromNode,e=this.originalFromPort),s=l,n=r):(i=l,e=r,this.originalToNode!==null&&(s=this.originalToNode,n=this.originalToPort)))}else this.isForwards?this.originalFromNode!==null&&this.isUnconnectedLinkValid&&(i=this.originalFromNode,e=this.originalFromPort):this.originalToNode!==null&&this.isUnconnectedLinkValid&&(s=this.originalToNode,n=this.originalToPort);i!==null||s!==null?(o=this.insertLink(i,e,s,n),o!==null?(r===null&&(this.isForwards?o.defaultToPoint=t.lastInput.documentPoint:o.defaultFromPoint=t.lastInput.documentPoint),t.allowSelect&&(t.v(\"ChangingSelection\",t.selection),t.clearSelection(!0),o.isSelected=!0),this.transactionResult=this.name,t.v(\"LinkDrawn\",o)):this.doNoLink(i,e,s,n)):this.isForwards?this.doNoLink(this.originalFromNode,this.originalFromPort,null,null):this.doNoLink(null,null,this.originalToNode,this.originalToPort)}finally{this.stopTool(),o&&t.allowSelect&&t.v(\"ChangedSelection\",t.selection)}}}isNewTreeLink(){const t=this.archetypeLinkData;if(t===null)return!0;if(t instanceof Link)return t.isTreeLink;const i=this.diagram;if(i===null)return!0;const e=i.partManager.getLinkCategoryForData(t),s=i.partManager.findLinkTemplateForCategory(e);return s!==null?s.isTreeLink:!0}insertLink(t,i,e,s){return this.diagram.partManager.insertLink(t,i,e,s)}doNoLink(t,i,e,s){}}class RelinkingTool extends LinkingBaseTool{GC;jC;YP;GP;fs;jP;constructor(t){super(),this.name=\"Relinking\",this.fromHandleArchetype=new Shape(\"Diamond\",{desiredSize:Size.hu,fill:\"lightblue\",stroke:\"dodgerblue\",cursor:this.linkingCursor,segmentIndex:0}).theme(\"fill\",\"adornmentFill\").theme(\"stroke\",\"adornmentStroke\"),this.toHandleArchetype=new Shape(\"Diamond\",{desiredSize:Size.hu,fill:\"lightblue\",stroke:\"dodgerblue\",cursor:this.linkingCursor,segmentIndex:-1}).theme(\"fill\",\"adornmentFill\").theme(\"stroke\",\"adornmentStroke\"),this.fs=null,this.jP=new Rect,t&&Object.assign(this,t)}updateAdornments(t){if(t===null||!(t instanceof Link))return;let i=\"RelinkFrom\",e=null;if(t.isSelected&&!this.diagram.isReadOnly){const s=t.selectionObject;s!==null&&t.canRelinkFrom()&&t.actualBounds.isReal()&&t.isVisible()&&s.actualBounds.isReal()&&s.isVisibleObject()&&(e=t.findAdornment(i),e===null&&(e=this.makeAdornment(s,!1),t.addAdornment(i,e)))}if(e===null&&t.removeAdornment(i),i=\"RelinkTo\",e=null,t.isSelected&&!this.diagram.isReadOnly){const s=t.selectionObject;s!==null&&t.canRelinkTo()&&t.actualBounds.isReal()&&t.isVisible()&&s.actualBounds.isReal()&&s.isVisibleObject()&&(e=t.findAdornment(i),e===null?(e=this.makeAdornment(s,!0),t.addAdornment(i,e)):e.c())}e===null&&t.removeAdornment(i)}makeAdornment(t,i){let e=i?this.GP:this.YP;return e&&(e=e.copy(),e.adornedObject=t),e}get fromHandleArchetype(){return this.GC}set fromHandleArchetype(t){this.GC=t,t!==null?this.YP=new Adornment(Panel.Link).add(t).Vt():this.YP=null}get toHandleArchetype(){return this.jC}set toHandleArchetype(t){this.jC=t,t!==null?this.GP=new Adornment(Panel.Link).add(t).Vt():this.GP=null}get handle(){return this.fs}set handle(t){if(t!==null&&!(t.part instanceof Adornment))throw new Error(\"new handle is not in an Adornment: \"+t);this.fs=t}canStart(){if(!this.isEnabled)return!1;const t=this.diagram;if(t.isReadOnly||t.isModelReadOnly||!t.allowRelink||!t.model.zw()||!t.lastInput.left)return!1;let e=this.findToolHandleAt(t.firstInput.documentPoint,\"RelinkFrom\");return e===null&&(e=this.findToolHandleAt(t.firstInput.documentPoint,\"RelinkTo\")),e!==null}doActivate(){const t=this.diagram;if(this.originalLink===null){let i=this.handle;if(i===null&&(i=this.findToolHandleAt(t.firstInput.documentPoint,\"RelinkFrom\"),i===null&&(i=this.findToolHandleAt(t.firstInput.documentPoint,\"RelinkTo\"))),i===null)return;const e=i.part;if(!(e instanceof Adornment)||!(e.adornedPart instanceof Link))return;this.handle=i,this.isForwards=e===null||e.category===\"RelinkTo\",this.originalLink=e.adornedPart}this.startTransaction(this.name),t.isMouseCaptured=!0,t.currentCursor=this.linkingCursor,this.originalFromPort=this.originalLink.fromPort,this.originalFromNode=this.originalLink.fromNode,this.originalToPort=this.originalLink.toPort,this.originalToNode=this.originalLink.toNode,this.jP.set(this.originalLink.actualBounds),this.originalLink!==null&&this.originalLink.pointsCount>0&&(this.originalLink.fromNode===null&&(this.temporaryFromPort!==null&&(this.temporaryFromPort.desiredSize=Size.lu),this.temporaryFromNode!==null&&(this.temporaryFromNode.location=this.originalLink.getPoint(0))),this.originalLink.toNode===null&&(this.temporaryToPort!==null&&(this.temporaryToPort.desiredSize=Size.lu),this.temporaryToNode!==null&&(this.temporaryToNode.location=this.originalLink.getPoint(this.originalLink.pointsCount-1)))),this.copyPortProperties(this.originalFromNode,this.originalFromPort,this.temporaryFromNode,this.temporaryFromPort,!1),this.copyPortProperties(this.originalToNode,this.originalToPort,this.temporaryToNode,this.temporaryToPort,!0),t.add(this.temporaryFromNode),t.add(this.temporaryToNode),this.temporaryLink!==null&&(this.temporaryFromNode!==null&&(this.temporaryLink.fromNode=this.temporaryFromNode),this.temporaryToNode!==null&&(this.temporaryLink.toNode=this.temporaryToNode),this.copyLinkProperties(this.originalLink,this.temporaryLink),this.temporaryLink.invalidateRoute(),t.add(this.temporaryLink)),this.isActive=!0}copyLinkProperties(t,i){if(t===null||i===null)return;i.adjusting=t.adjusting,i.corner=t.corner;let e=t.curve;(e===11||e===10)&&(e=0),i.curve=e,i.curviness=t.curviness,i.isTreeLink=t.isTreeLink,i.points=t.points,i.routing=t.routing,i.smoothness=t.smoothness,i.fromSpot=t.fromSpot,i.fromEndSegmentLength=t.fromEndSegmentLength,i.fromShortLength=t.fromShortLength,i.toSpot=t.toSpot,i.toEndSegmentLength=t.toEndSegmentLength,i.toShortLength=t.toShortLength}doDeactivate(){this.isActive=!1;const t=this.diagram;t.remove(this.temporaryLink),t.remove(this.temporaryFromNode),t.remove(this.temporaryToNode),t.isMouseCaptured=!1,t.currentCursor=\"\",this.stopTransaction()}doStop(){super.doStop(),this.handle=null}doMouseUp(){if(this.isActive){const t=this.diagram;this.transactionResult=null;let i=this.originalFromNode,e=this.originalFromPort,s=this.originalToNode,n=this.originalToPort,o=this.originalLink;try{if(this.targetPort=this.findTargetPort(this.isForwards),this.targetPort!==null){const r=this.targetPort.part;r instanceof Node&&(this.isForwards?(s=r,n=this.targetPort):(i=r,e=this.targetPort))}else this.isUnconnectedLinkValid?this.isForwards?(s=null,n=null):(i=null,e=null):o=null;o!==null?(this.reconnectLink(o,this.isForwards?s:i,this.isForwards?n:e,this.isForwards),this.targetPort===null&&(this.isForwards?o.defaultToPoint=t.lastInput.documentPoint:o.defaultFromPoint=t.lastInput.documentPoint,o.invalidateRoute()),this.transactionResult=this.name,t.v(\"LinkRelinked\",o,this.isForwards?this.originalToPort:this.originalFromPort)):this.doNoRelink(this.originalLink,this.isForwards),this.originalLink.invalidateOtherJumpOvers(this.jP)}finally{this.stopTool()}}}reconnectLink(t,i,e,s){const n=e!==null&&e.portId!==null?e.portId:\"\";return s?(t.toNode=i,t.toPortId=n):(t.fromNode=i,t.fromPortId=n),!0}doNoRelink(t,i){}doDraggingMouseMove(t,i,e,s){t!==null?(this.copyPortProperties(t,i,this.temporaryFromNode,this.temporaryFromPort,!1),this.diagram.add(this.temporaryFromNode)):this.diagram.remove(this.temporaryFromNode),e!==null?(this.copyPortProperties(e,s,this.temporaryToNode,this.temporaryToPort,!0),this.diagram.add(this.temporaryToNode)):this.diagram.remove(this.temporaryToNode)}stopDraggingMouseMove(){this.diagram.remove(this.temporaryFromNode),this.diagram.remove(this.temporaryToNode)}}var ReshapingBehavior=(w=>(w[w.None=0]=\"None\",w[w.Horizontal=1]=\"Horizontal\",w[w.Vertical=2]=\"Vertical\",w[w.All=3]=\"All\",w))(ReshapingBehavior||{});class LinkReshapingTool extends Tool{yr;HP;qP;fs;Xw;WP;Pm;constructor(t){super(),this.name=\"LinkReshaping\",this.yr=new Shape(\"Rectangle\",{desiredSize:Size.tC,fill:\"lightblue\",stroke:\"dodgerblue\"}).theme(\"fill\",\"adornmentFill\").theme(\"stroke\",\"adornmentStroke\"),this.HP=new Shape(\"Diamond\",{desiredSize:Size.hu,fill:\"lightblue\",stroke:\"dodgerblue\",cursor:\"move\"}).theme(\"fill\",\"adornmentFill\").theme(\"stroke\",\"adornmentStroke\"),this.qP=3,this.fs=null,this.Xw=null,this.WP=new Point,this.Pm=new List,t&&Object.assign(this,t)}static None=0;static Horizontal=1;static Vertical=2;static All=3;getReshapingBehavior(t){return t?t.wr:0}setReshapingBehavior(t,i){t.wr=i}updateAdornments(t){if(t===null||!(t instanceof Link))return;let i=null;if(t.isSelected&&!this.diagram.isReadOnly){const e=t.path;e!==null&&t.canReshape()&&t.actualBounds.isReal()&&t.isVisible()&&e.actualBounds.isReal()&&e.isVisibleObject()&&(i=t.findAdornment(this.name),(i===null||i.JP!==t.pointsCount||i.$P!==t.resegmentable)&&(i=this.makeAdornment(e),i!==null&&(i.JP=t.pointsCount,i.$P=t.resegmentable,t.addAdornment(this.name,i))))}i===null&&t.removeAdornment(this.name)}makeAdornment(t){const i=t.part,e=i.points,s=i.pointsCount,n=i.isOrthogonal;let o=null;if(e!==null&&s>1){o=new Adornment,o.type=Panel.Link;const r=i.firstPickIndex,l=i.lastPickIndex,h=n?1:0;if(i.resegmentable&&i.computeCurve()!==9)for(let a=r+h;ae.firstPickIndex+1&&s0))this.nF(t,i);else if(t instanceof Panel){const e=t.elements;for(;e.next();){const s=e.value;this.updateResizeHandles(s,i)}}}}nF(t,i){let e=t.alignment;e.isNoSpot()&&(e=Spot.Center);let s=i;if(e.x<=0)e.y<=0?s+=225:e.y>=1?s+=135:s+=180;else if(e.x>=1)e.y<=0?s+=315:e.y>=1&&(s+=45);else if(e.y<=0)s+=270;else if(e.y>=1)s+=90;else return;s<0?s+=360:s>=360&&(s-=360),s<22.5?t.cursor=\"e-resize\":s<67.5?t.cursor=\"se-resize\":s<112.5?t.cursor=\"s-resize\":s<157.5?t.cursor=\"sw-resize\":s<202.5?t.cursor=\"w-resize\":s<247.5?t.cursor=\"nw-resize\":s<292.5?t.cursor=\"n-resize\":s<337.5?t.cursor=\"ne-resize\":t.cursor=\"e-resize\"}get handleArchetype(){return this.yr}set handleArchetype(t){this.yr=t}get handle(){return this.fs}set handle(t){if(t!==null&&!(t.part instanceof Adornment))throw new Error(\"new handle is not in an Adornment: \"+t);this.fs=t}get adornedObject(){return this.us}set adornedObject(t){if(t!==null&&t.part instanceof Adornment)throw new Error(\"new handle must not be in an Adornment: \"+t);this.us=t}canStart(){if(!this.isEnabled)return!1;const t=this.diagram;return t.isReadOnly||!t.allowResize||!t.lastInput.left?!1:this.findToolHandleAt(t.firstInput.documentPoint,this.name)!==null}doActivate(){const t=this.diagram;this.handle===null&&(this.handle=this.findToolHandleAt(t.firstInput.documentPoint,this.name)),this.handle!==null&&(this.adornedObject=this.handle.part.adornedObject,this.adornedObject!==null&&(t.isMouseCaptured=!0,t.animationManager.stopAnimation(),t.yu=!0,this.startTransaction(this.name),this.Mm.set(this.adornedObject.getDocumentPoint(this.handle.alignment.opposite())),this.wc.set(this.adornedObject.part.location),this._P.set(this.adornedObject.desiredSize),this.Gw=this.computeCellSize(),this.Kw=this.computeMinSize(),this.Yw=this.computeMaxSize(),this.isActive=!0))}doDeactivate(){const t=this.diagram;t.yu=!1,t.xl=!0,this.stopTransaction(),this.handle=null,this.us=null,t.isMouseCaptured=!1,this.isActive=!1}stopTransaction(){const t=this.diagram,i=super.stopTransaction();return i&&t.undoManager.transactionToUndo!==null&&t.undoManager.transactionToUndo.optimize(),i}doCancel(){this.adornedObject!==null&&(this.adornedObject.desiredSize=this.originalDesiredSize,this.adornedObject.part.location=this.originalLocation),this.stopTool()}doMouseMove(){const t=this.diagram;if(!this.isActive)return;const i=this.Kw,e=this.Yw,s=this.Gw,n=t.lastInput.documentPoint,o=this.adornedObject.getLocalPoint(n,Point.l()),r=this.computeReshape(),l=this.computeResize(o,this.handle.alignment,i,e,s,r);this.resize(l),t.maybeUpdate(),Point.s(o)}doMouseUp(){const t=this.diagram;if(this.isActive){const i=this.Kw,e=this.Yw,s=this.Gw,n=this.adornedObject.getLocalPoint(t.lastInput.documentPoint,Point.l()),o=this.computeReshape(),r=this.computeResize(n,this.handle.alignment,i,e,s,o);this.resize(r),Point.s(n),t.invalidateDocumentBounds(),this.transactionResult=this.name,t.v(\"PartResized\",this.adornedObject,this.originalDesiredSize)}this.stopTool()}resize(t){const i=this.diagram,e=this.adornedObject;if(e===null)return;e.desiredSize=t.size;const s=e.part;s.ensureBounds();const n=e.getDocumentPoint(this.handle.alignment.opposite());if(s instanceof Group){const o=new List;o.add(s);let r;!this.dragsMembers&&!s.hasPlaceholder()&&(r=new DraggingOptions,r.dragsMembers=!1),i.moveParts(o,this.oppositePoint.copy().subtract(n),!0,r)}else s.location=s.location.copy().subtract(n).add(this.oppositePoint);i.maybeUpdate()}computeResize(t,i,e,s,n,o){i.isNoSpot()&&(i=Spot.Center);const r=this.adornedObject.naturalBounds,l=r.x,h=r.y,a=r.x+r.width,c=r.y+r.height;let f=1;if(!o){let m=r.width,g=r.height;m<=0&&(m=1),g<=0&&(g=1),f=g/m}const u=Point.l();Geo.Bg(t.x,t.y,l,h,n.width,n.height,u);const d=r.copy();return i.x<=0?i.y<=0?(d.x=Math.max(u.x,a-s.width),d.x=Math.min(d.x,a-e.width),d.width=Math.max(a-d.x,e.width),d.y=Math.max(u.y,c-s.height),d.y=Math.min(d.y,c-e.height),d.height=Math.max(c-d.y,e.height),o||(d.height/d.width>=1?(d.height=Math.max(Math.min(f*d.width,s.height),e.height),d.width=d.height/f):(d.width=Math.max(Math.min(d.height/f,s.width),e.width),d.height=f*d.width),d.x=a-d.width,d.y=c-d.height)):i.y>=1?(d.x=Math.max(u.x,a-s.width),d.x=Math.min(d.x,a-e.width),d.width=Math.max(a-d.x,e.width),d.height=Math.max(Math.min(u.y-h,s.height),e.height),o||(d.height/d.width>=1?(d.height=Math.max(Math.min(f*d.width,s.height),e.height),d.width=d.height/f):(d.width=Math.max(Math.min(d.height/f,s.width),e.width),d.height=f*d.width),d.x=a-d.width)):(d.x=Math.max(u.x,a-s.width),d.x=Math.min(d.x,a-e.width),d.width=a-d.x,o||(d.height=Math.max(Math.min(f*d.width,s.height),e.height),d.width=d.height/f,d.y=h+.5*(c-h-d.height))):i.x>=1?i.y<=0?(d.width=Math.max(Math.min(u.x-l,s.width),e.width),d.y=Math.max(u.y,c-s.height),d.y=Math.min(d.y,c-e.height),d.height=Math.max(c-d.y,e.height),o||(d.height/d.width>=1?(d.height=Math.max(Math.min(f*d.width,s.height),e.height),d.width=d.height/f):(d.width=Math.max(Math.min(d.height/f,s.width),e.width),d.height=f*d.width),d.y=c-d.height)):i.y>=1?(d.width=Math.max(Math.min(u.x-l,s.width),e.width),d.height=Math.max(Math.min(u.y-h,s.height),e.height),o||(d.height/d.width>=1?(d.height=Math.max(Math.min(f*d.width,s.height),e.height),d.width=d.height/f):(d.width=Math.max(Math.min(d.height/f,s.width),e.width),d.height=f*d.width))):(d.width=Math.max(Math.min(u.x-l,s.width),e.width),o||(d.height=Math.max(Math.min(f*d.width,s.height),e.height),d.width=d.height/f,d.y=h+.5*(c-h-d.height))):i.y<=0?(d.y=Math.max(u.y,c-s.height),d.y=Math.min(d.y,c-e.height),d.height=c-d.y,o||(d.width=Math.max(Math.min(d.height/f,s.width),e.width),d.height=f*d.width,d.x=l+.5*(a-l-d.width))):i.y>=1&&(d.height=Math.max(Math.min(u.y-h,s.height),e.height),o||(d.width=Math.max(Math.min(d.height/f,s.width),e.width),d.height=f*d.width,d.x=l+.5*(a-l-d.width))),Point.s(u),d}computeReshape(){let t=0;return this.adornedObject instanceof Shape&&(t=this.adornedObject.tM()),!(t===6||this.diagram.lastInput.shift)}computeMinSize(){const t=this.adornedObject.minSize.copy(),i=this.minSize;return!isNaN(i.width)&&i.width>t.width&&(t.width=i.width),!isNaN(i.height)&&i.height>t.height&&(t.height=i.height),t}computeMaxSize(){const t=this.adornedObject.maxSize.copy(),i=this.maxSize;return!isNaN(i.width)&&i.width0&&(t.width=n.width),!isNaN(n.height)&&n.height>0&&(t.height=n.height)}let e=this.cellSize;isNaN(t.width)&&!isNaN(e.width)&&e.width>0&&(t.width=e.width),isNaN(t.height)&&!isNaN(e.height)&&e.height>0&&(t.height=e.height);const s=this.diagram;if((isNaN(t.width)||isNaN(t.height))&&s){const n=s.grid;n!==null&&n.visible&&this.isGridSnapEnabled&&(e=n.gridCellSize,isNaN(t.width)&&!isNaN(e.width)&&e.width>0&&(t.width=e.width),isNaN(t.height)&&!isNaN(e.height)&&e.height>0&&(t.height=e.height))}return(isNaN(t.width)||t.width===0||t.width===1/0)&&(t.width=1),(isNaN(t.height)||t.height===0||t.height===1/0)&&(t.height=1),t}get minSize(){return this.xr}set minSize(t){if(!this.xr.equals(t)){let e=t.width;isNaN(e)&&(e=0);let s=t.height;isNaN(s)&&(s=0),this.xr.e(e,s)}}get maxSize(){return this.br}set maxSize(t){if(!this.br.equals(t)){let e=t.width;isNaN(e)&&(e=1/0);let s=t.height;isNaN(s)&&(s=1/0),this.br.e(e,s)}}get cellSize(){return this.Co}set cellSize(t){this.Co.equals(t)||this.Co.a(t)}get isGridSnapEnabled(){return this.yc}set isGridSnapEnabled(t){Util.i(t,\"boolean\",ResizingTool,\"isGridSnapEnabled\"),this.yc=t}get dragsMembers(){return this.QP}set dragsMembers(t){Util.i(t,\"boolean\",ResizingTool,\"dragsMembers\"),this.QP=t}get oppositePoint(){return this.Mm}set oppositePoint(t){this.Mm.equals(t)||this.Mm.a(t)}get originalDesiredSize(){return this._P}get originalLocation(){return this.wc}}class RotatingTool extends Tool{iM;eM;us;yr;jw;fs;sM;Sm;wc;nM;oM;constructor(t){super(),this.name=\"Rotating\",this.iM=45,this.eM=2,this.wc=new Point,this.us=null,this.handleArchetype=new Shape(\"Ellipse\",{desiredSize:Size.hu,fill:\"lightblue\",stroke:\"dodgerblue\",strokeWidth:1,cursor:\"pointer\"}).theme(\"fill\",\"adornmentFill\").theme(\"stroke\",\"adornmentStroke\"),this.fs=null,this.sM=0,this.Sm=new Point(NaN,NaN),this.nM=0,this.oM=50,t&&Object.assign(this,t)}updateAdornments(t){if(t!==null){if(t.Nl()){const i=t.rotateObject;if(i===t||i===t.path||i.isPanelMain)return}if(t.isSelected&&!this.diagram.isReadOnly){const i=t.rotateObject;if(i!==null&&t.canRotate()&&t.actualBounds.isReal()&&t.isVisible()&&i.actualBounds.isReal()&&i.isVisibleObject()){let e=t.findAdornment(this.name);if((e===null||e.adornedObject!==i)&&(e=this.makeAdornment(i)),e!==null){e.angle=i.getDocumentAngle(),e.hasPlaceholder()||(e.location=this.computeAdornmentLocation(i)),t.addAdornment(this.name,e);return}}}t.removeAdornment(this.name)}}makeAdornment(t){let i=null;const e=t.part.rotateAdornmentTemplate;return e!==null?i=e.copy():this.jw!==null&&(i=this.jw.copy()),i===null?null:(i.adornedObject=t,i)}get handleArchetype(){return this.yr}set handleArchetype(t){this.yr=t,t!==null?this.jw=new Adornment(Panel.Position,{locationSpot:Spot.Center}).add(t).Vt():this.jw=null}get handle(){return this.fs}set handle(t){if(t!==null&&!(t.part instanceof Adornment))throw new Error(\"new handle is not in an Adornment: \"+t);this.fs=t}get adornedObject(){return this.us}set adornedObject(t){if(t!==null&&t.part instanceof Adornment)throw new Error(\"new handle must not be in an Adornment: \"+t);this.us=t}canStart(){if(!this.isEnabled)return!1;const t=this.diagram;return t.isReadOnly||!t.allowRotate||!t.lastInput.left?!1:this.findToolHandleAt(t.firstInput.documentPoint,this.name)!==null}doActivate(){const t=this.diagram;if(this.adornedObject===null){if(this.handle===null&&(this.handle=this.findToolHandleAt(t.firstInput.documentPoint,this.name)),this.handle===null)return;this.adornedObject=this.handle.part.adornedObject}this.adornedObject!==null&&(t.isMouseCaptured=!0,t.delaysLayout=!0,this.startTransaction(this.name),this.sM=this.adornedObject.angle,this.Sm=this.computeRotationPoint(this.adornedObject),this.wc=this.adornedObject.part.location.copy(),this.isActive=!0)}computeRotationPoint(t){const i=t.part,e=i.locationObject;return i.rotationSpot.isSpot()?t.getDocumentPoint(i.rotationSpot):t===i||t===e?e.getDocumentPoint(i.locationSpot):t.getDocumentPoint(Spot.Center)}computeAdornmentLocation(t){let i=this.rotationPoint;i.isReal()||(i=this.computeRotationPoint(t));const e=t.getLocalPoint(i);let s=this.handleAngle;s<0?s+=360:s>=360&&(s-=360),s=Math.round(Math.round(s/45)*45);const n=this.handleDistance;return s===0?e.x=t.naturalBounds.width+n:s===45?(e.x=t.naturalBounds.width+n,e.y=t.naturalBounds.height+n):s===90?e.y=t.naturalBounds.height+n:s===135?(e.x=-n,e.y=t.naturalBounds.height+n):s===180?e.x=-n:s===225?(e.x=-n,e.y=-n):s===270?e.y=-n:s===315&&(e.x=t.naturalBounds.width+n,e.y=-n),t.getDocumentPoint(e)}doDeactivate(){const t=this.diagram;this.stopTransaction(),this.handle=null,this.us=null,this.Sm=new Point(NaN,NaN),t.isMouseCaptured=!1,this.isActive=!1}stopTransaction(){const t=this.diagram,i=super.stopTransaction();return i&&t.undoManager.transactionToUndo!==null&&t.undoManager.transactionToUndo.optimize(),i}doCancel(){const t=this.diagram;t.delaysLayout=!1,this.rotate(this.originalAngle),this.stopTool()}doMouseMove(){const t=this.diagram;if(this.isActive){const i=this.computeRotate(t.lastInput.documentPoint);this.rotate(i)}}doMouseUp(){const t=this.diagram;if(this.isActive){t.delaysLayout=!1;const i=this.computeRotate(t.lastInput.documentPoint);this.rotate(i),t.invalidateDocumentBounds(),this.transactionResult=this.name,t.v(\"PartRotated\",this.adornedObject,this.originalAngle)}this.stopTool()}rotate(t){const i=this.adornedObject;if(i===null)return;i.angle=t;const e=i.part;e.ensureBounds();const s=e.locationObject,n=e.rotateObject;if(s===n||s.isContainedBy(n)){const o=this.wc.copy();e.location=o.subtract(this.rotationPoint).rotate(t-this.originalAngle).add(this.rotationPoint)}this.diagram.maybeUpdate()}computeRotate(t){let i=this.rotationPoint.directionPoint(t)-this.handleAngle;const e=this.adornedObject.panel;e!==null&&(i-=e.getDocumentAngle()),i>=360?i-=360:i<0&&(i+=360);const s=Math.min(Math.abs(this.snapAngleMultiple),180),n=Math.min(Math.abs(this.snapAngleEpsilon),s/2);return!this.diagram.lastInput.shift&&s>0&&n>0&&(i%ss-n&&(i=(Math.floor(i/s)+1)*s)),i>=360?i-=360:i<0&&(i+=360),i}get snapAngleMultiple(){return this.iM}set snapAngleMultiple(t){Util.i(t,\"number\",RotatingTool,\"snapAngleMultiple\"),this.iM=t}get snapAngleEpsilon(){return this.eM}set snapAngleEpsilon(t){Util.i(t,\"number\",RotatingTool,\"snapAngleEpsilon\"),this.eM=t}get originalAngle(){return this.sM}get rotationPoint(){return this.Sm}set rotationPoint(t){this.Sm=t.copy()}get handleAngle(){return this.nM}set handleAngle(t){Util.i(t,\"number\",RotatingTool,\"handleAngle\"),this.nM=t}get handleDistance(){return this.oM}set handleDistance(t){Util.i(t,\"number\",RotatingTool,\"handleDistance\"),this.oM=t}}class ClickSelectingTool extends Tool{constructor(t){super(),this.name=\"ClickSelecting\",t&&Object.assign(this,t)}canStart(){return!(!this.isEnabled||this.isBeyondDragSize())}doMouseUp(){this.isActive&&(this.standardMouseSelect(),this.standardMouseClick()||this.diagram.lastInput.isTouchEvent&&this.diagram.toolManager.doToolTip()),this.stopTool()}}class ActionTool extends Tool{xc;constructor(t){super(),this.name=\"Action\",this.xc=null,t&&Object.assign(this,t)}canStart(){if(!this.isEnabled)return!1;const t=this.diagram,i=t.lastInput,e=t.findObjectAt(i.documentPoint,s=>{for(;s.panel!==null;){if(s.isActionable)return s;s=s.panel}return s});return e!==null&&e.isActionable?(this.xc=e,t.fc=t.findObjectAt(i.documentPoint,null,null),!0):!1}doMouseDown(){if(!this.isActive)this.canStart()&&this.doActivate();else{const i=this.diagram.lastInput,e=this.xc;if(e===null)return;i.targetObject=e,e.actionDown!==null&&e.actionDown(i,e)}}doMouseMove(){if(this.isActive){const i=this.diagram.lastInput,e=this.xc;if(e===null)return;i.targetObject=e,e.actionMove!==null&&e.actionMove(i,e)}}doMouseUp(){if(this.isActive){const i=this.diagram.lastInput,e=this.xc;if(e===null)return;i.targetObject=e,e.actionUp!==null&&e.actionUp(i,e),this.standardMouseClick(s=>{for(;s.panel!==null;){if(s.isActionable&&s===e)return s;s=s.panel}return s},s=>s===e)}this.stopTool()}doCancel(){const i=this.diagram.lastInput,e=this.xc;e!==null&&(i.targetObject=e,e.actionCancel!==null&&e.actionCancel(i,e),this.stopTool())}doStop(){this.xc=null}}class ClickCreatingTool extends Tool{Cl;rM;yc;lM;constructor(t){super(),this.name=\"ClickCreating\",this.Cl=null,this.rM=!0,this.yc=!1,this.lM=new Point(0,0),t&&Object.assign(this,t)}canStart(){if(!this.isEnabled||this.archetypeNodeData===null)return!1;const t=this.diagram;if(t.isReadOnly||t.isModelReadOnly||!t.allowInsert||!t.lastInput.left||this.isBeyondDragSize())return!1;if(this.isDoubleClick){if(t.lastInput.clickCount===1&&(this.lM=t.lastInput.viewPoint.copy()),t.lastInput.clickCount!==2||this.isBeyondDragSize(this.lM))return!1}else if(t.lastInput.clickCount!==1)return!1;return!(t.currentTool!==this&&t.findPartAt(t.lastInput.documentPoint,!0)!==null)}doMouseUp(){const t=this.diagram;this.isActive&&this.insertPart(t.lastInput.documentPoint),this.stopTool()}insertPart(t){const i=this.diagram,e=this.archetypeNodeData;if(e===null)return null;let s=null;try{if(i.v(\"ChangingSelection\",i.selection),this.startTransaction(this.name),e instanceof Part)e.Pe()&&(e.Vt(),s=e.copy(),s!==null&&i.add(s));else if(e!==null){const n=i.model.copyNodeData(e);Util.wt(n)&&(i.model.addNodeData(n),s=i.findPartForData(n))}if(s!==null){const n=Point.X(t.x,t.y);this.isGridSnapEnabled&&this.diagram.hM(s,t,n),s.location=n,i.allowSelect&&(i.clearSelection(!0),s.isSelected=!0),Point.s(n)}i.invalidateDocumentBounds(),this.transactionResult=this.name,i.v(\"PartCreated\",s)}finally{this.stopTransaction(),i.v(\"ChangedSelection\",i.selection)}return s}get archetypeNodeData(){return this.Cl}set archetypeNodeData(t){t!==null&&Util.i(t,\"object\",ClickCreatingTool,\"archetypeNodeData\"),this.Cl=t}get isDoubleClick(){return this.rM}set isDoubleClick(t){Util.i(t,\"boolean\",ClickCreatingTool,\"isDoubleClick\"),this.rM=t}get isGridSnapEnabled(){return this.yc}set isGridSnapEnabled(t){Util.i(t,\"boolean\",ClickCreatingTool,\"isGridSnapEnabled\"),this.yc=t}}class DragSelectingTool extends Tool{Vh;aM;Ll;constructor(t){super(),this.name=\"DragSelecting\",this.Vh=175,this.aM=!1,this.Ll=new Part({layerName:\"Tool\",selectable:!1}).add(new Shape(\"Rectangle\",{name:\"SHAPE\",fill:null,stroke:\"magenta\"}).theme(\"stroke\",\"dragSelect\")).Vt(),t&&Object.assign(this,t)}canStart(){if(!this.isEnabled)return!1;const t=this.diagram;if(!t.allowSelect)return!1;const i=t.lastInput;return!(!i.left||t.currentTool!==this&&(!this.isBeyondDragSize()||i.timestamp-t.firstInput.timestamp{const e=i.diagram;e!==null&&e.Si(root.document,\"scroll\",i.cM,!1),i.stopTool()},t&&Object.assign(this,t)}canStart(){if(!this.isEnabled)return!1;const t=this.diagram;return!(!t.allowHorizontalScroll&&!t.allowVerticalScroll||!t.lastInput.left||t.currentTool!==this&&!this.isBeyondDragSize())}doActivate(){const t=this.diagram;this.No?(t.lastInput.bubbles=!0,t.zt(root.document,\"scroll\",this.cM,!1)):(t.currentCursor=\"move\",t.isMouseCaptured=!0,this.Hw.a(t.position)),this.isActive=!0}doDeactivate(){const t=this.diagram;t.currentCursor=\"\",t.isMouseCaptured=!1,this.isActive=!1}doCancel(){const t=this.diagram;t.position=this.Hw,t.isMouseCaptured=!1,this.stopTool()}doMouseMove(){this.qC()}doMouseUp(){this.qC(),this.stopTool()}qC(){const t=this.diagram;if(this.isActive&&t){if(this.No){t.lastInput.bubbles=!0;return}const i=t.position,e=t.firstInput.documentPoint,s=t.lastInput.documentPoint;let n=i.x+e.x-s.x,o=i.y+e.y-s.y;t.allowHorizontalScroll||(n=i.x),t.allowVerticalScroll||(o=i.y),t.position=this.HC.e(n,o)}}get bubbles(){return this.No}set bubbles(t){Util.i(t,\"boolean\",PanningTool,\"bubbles\"),this.No=t}get originalPosition(){return this.Hw}}class HTMLInfo{qw;Ww;fM;uM;constructor(t){this.qw=null,this.Ww=null,this.fM=null,this.uM=null,t&&Object.assign(this,t)}get mainElement(){return this.fM}set mainElement(t){this.fM=t}get show(){return this.qw}set show(t){this.qw!==t&&(t!==null&&Util.i(t,\"function\",HTMLInfo,\"show\"),this.qw=t)}get hide(){return this.Ww}set hide(t){this.Ww!==t&&(t!==null&&Util.i(t,\"function\",HTMLInfo,\"hide\"),this.Ww=t)}get valueFunction(){return this.uM}set valueFunction(t){this.uM=t}}class ContextMenuButtonInfo{hi;Nm;kc;constructor(t,i,e){this.hi=t,this.Nm=i,this.kc=e}}class ContextMenuTool extends Tool{dM;Jw;gM;mM;$w;Zw;Cm;constructor(t){super(),this.name=\"ContextMenu\",this.dM=null,this.Jw=null,this.gM=null,this.mM=new Point,this.$w=null,this.Cm=!1;const i=this;this.Zw=()=>i.stopTool(),t&&Object.assign(this,t)}oF(){const t=new HTMLInfo;t.show=(r,l,h)=>h.showDefaultContextMenu(),t.hide=(r,l)=>l.hideDefaultContextMenu(),ContextMenuTool.ku=t;const i=this;this.Zw=()=>i.stopTool();const e=Util.en(\"div\"),s=Util.en(\"div\");e.style.cssText=\"top: 0px;z-index:10002;position: fixed;display: none;text-align: center;left: 25%;width: 50%;background-color: #F5F5F5;padding: 16px;border: 16px solid #444;border-radius: 10px;margin-top: 10px\",s.style.cssText=\"z-index:10001;position: fixed;display: none;top: 0;left: 0;width: 100%;height: 100%;background-color: black;opacity: 0.8;\";const n=Util.en(\"style\");root.document.getElementsByTagName(\"head\")[0].appendChild(n),n.sheet.insertRule(\".goCXul { list-style: none; }\",0),n.sheet.insertRule(\".goCXli {font:700 1.5em Helvetica, Arial, sans-serif;position: relative;min-width: 60px; }\",0),n.sheet.insertRule(\".goCXa {color: #444;display: inline-block;padding: 4px;text-decoration: none;margin: 2px;border: 1px solid gray;border-radius: 10px; }\",0);const o=this.diagram;o!==null&&(o.zt(e,\"contextmenu\",ContextMenuTool.Yh,!1),o.zt(e,\"selectstart\",ContextMenuTool.Yh,!1),o.zt(s,\"contextmenu\",ContextMenuTool.Yh,!1)),e.className=\"goCXforeground\",s.className=\"goCXbackground\",root.document.body&&(root.document.body.appendChild(e),root.document.body.appendChild(s)),ContextMenuTool.Lm=e,ContextMenuTool.Am=s,ContextMenuTool.pM=!0}static ku=null;static pM=!1;static Am=null;static Lm=null;static Yh(t){return t.preventDefault(),!1}canStart(){if(!this.isEnabled)return!1;const t=this.diagram;return this.isBeyondDragSize()||!t.lastInput.right||t.lastInput.clickCount>1?!1:!!(t.lastInput.isTouchEvent&&this.defaultTouchContextMenu!==null||this.findObjectWithContextMenu()!==null)}doStart(){const t=this.diagram;this.mM.set(t.firstInput.documentPoint)}doStop(){this.hideContextMenu(),this.currentObject=null,this.Cm=!1}findObjectWithContextMenu(t){t===void 0&&(t=null);const i=this.diagram,e=i.lastInput;let s=null;if(t instanceof Diagram||(t instanceof GraphObject?s=t:s=i.findObjectAt(e.documentPoint,null,n=>!n.layer.isTemporary)),s!==null){let n=s;for(;n!==null;){if(n.contextMenu!==null)return n;n=n.panel}if(i.lastInput.isTouchEvent&&this.defaultTouchContextMenu)return s.part}else if(i.contextMenu!==null)return i;return null}doActivate(){}doMouseDown(){if(super.doMouseDown(),this.isActive&&this.currentContextMenu instanceof Adornment){const t=this.diagram.toolManager.findTool(\"Action\");t!==null&&t.canStart()&&(t.doActivate(),t.doMouseDown(),t.doDeactivate())}this.diagram.toolManager.mouseDownTools.has(this)&&this.doContextClick()}doMouseUp(){if(this.isActive&&this.currentContextMenu instanceof Adornment){const t=this.diagram.toolManager.findTool(\"Action\");t!==null&&t.canStart()&&(t.doActivate(),t.doCancel(),t.doDeactivate())}this.doContextClick()}doContextClick(){const t=this.diagram;if(!this.isActive)this.canStart()&&(this.openMenu(!0),this.isActive||this.stopTool());else{const i=this.currentContextMenu;if(i===null)return;let e=null;i instanceof HTMLInfo||(e=t.findObjectAt(t.lastInput.documentPoint,null,null),e!==null&&e.isContainedBy(i)&&this.standardMouseClick(null,null)),this.maybeStopTool(e)}}maybeStopTool(t){this.stopTool(),this.canStart()&&(this.diagram.currentTool=this,this.doMouseUp())}openMenu(t,i){if(i===void 0&&(i=null),this.Cm)return;this.Cm=!0,t&&this.standardMouseSelect();const e=this.standardMouseClick();if(this.Cm=!1,!e){this.isActive=!0;const s=ContextMenuTool.ku;if(i===null&&(i=this.findObjectWithContextMenu()),i!==null){const n=i.contextMenu;n!==null?(this.currentObject=i instanceof GraphObject?i:null,this.showContextMenu(n,this.currentObject)):s!==null&&this.showContextMenu(s,this.currentObject)}else s!==null&&this.showContextMenu(s,null);this.currentContextMenu instanceof Adornment&&!this.currentContextMenu.visible&&this.stopTool()}}doMouseMove(){const t=this.diagram.toolManager.findTool(\"Action\");t!==null&&t.doMouseMove(),this.isActive&&this.diagram.toolManager.doMouseMove()}showContextMenu(t,i){const e=this.diagram;if(t!==this.currentContextMenu&&this.hideContextMenu(),t instanceof Adornment){const s=t;s.layerName=\"Tool\",s.selectable=!1,s.scale=1/e.scale,s.category=this.name,s.hasPlaceholder()&&(s.placeholder.scale=e.scale);const n=s.diagram;n!==null&&n!==e&&n.remove(s),e.add(s),i!==null?s.adornedObject=i:s.data=e.model,s.ensureBounds(),this.positionContextMenu(s,i)}else t instanceof HTMLInfo&&t.show(i,e,this);this.currentContextMenu=t}positionContextMenu(t,i){if(t.hasPlaceholder())return;const e=t,s=this.diagram,n=s.lastInput.documentPoint.copy(),o=e.measuredBounds,r=s.viewportBounds;s.lastInput.isTouchEvent&&(n.x-=o.width),n.x+o.width>r.right&&(n.x-=o.width+5/s.scale),n.xr.bottom&&(n.y-=o.height+5/s.scale),n.ye.commandHandler.copySelection(),e=>e.commandHandler.canCopySelection())),i.add(new ContextMenuButtonInfo(\"Cut\",e=>e.commandHandler.cutSelection(),e=>e.commandHandler.canCutSelection())),i.add(new ContextMenuButtonInfo(\"Delete\",e=>e.commandHandler.deleteSelection(),e=>e.commandHandler.canDeleteSelection())),i.add(new ContextMenuButtonInfo(\"Paste\",e=>e.commandHandler.pasteSelection(t.mouseDownPoint),e=>e.commandHandler.canPasteSelection(t.mouseDownPoint))),i.add(new ContextMenuButtonInfo(\"Select All\",e=>e.commandHandler.selectAll(),e=>e.commandHandler.canSelectAll())),i.add(new ContextMenuButtonInfo(\"Undo\",e=>e.commandHandler.undo(),e=>e.commandHandler.canUndo())),i.add(new ContextMenuButtonInfo(\"Redo\",e=>e.commandHandler.redo(),e=>e.commandHandler.canRedo())),i.add(new ContextMenuButtonInfo(\"Scroll To Part\",e=>e.commandHandler.scrollToPart(),e=>e.commandHandler.canScrollToPart())),i.add(new ContextMenuButtonInfo(\"Zoom To Fit\",e=>e.commandHandler.zoomToFit(),e=>e.commandHandler.canZoomToFit())),i.add(new ContextMenuButtonInfo(\"Reset Zoom\",e=>e.commandHandler.resetZoom(),e=>e.commandHandler.canResetZoom())),i.add(new ContextMenuButtonInfo(\"Group Selection\",e=>e.commandHandler.groupSelection(),e=>e.commandHandler.canGroupSelection())),i.add(new ContextMenuButtonInfo(\"Ungroup Selection\",e=>e.commandHandler.ungroupSelection(),e=>e.commandHandler.canUngroupSelection())),i.add(new ContextMenuButtonInfo(\"Edit Text\",e=>e.commandHandler.editTextBlock(),e=>e.commandHandler.canEditTextBlock())),i}showDefaultContextMenu(){const t=this.diagram;this.$w===null&&(this.$w=this.rF()),ContextMenuTool.Lm.innerHTML=\"\",ContextMenuTool.Am.addEventListener(\"pointerdown\",this.Zw,!1);const i=this,e=Util.en(\"ul\");e.className=\"goCXul\",ContextMenuTool.Lm.appendChild(e),e.innerHTML=\"\";const s=this.$w.iterator;for(;s.next();){const n=s.value,o=n.Nm,r=n.kc;if(typeof o!=\"function\"||typeof r==\"function\"&&!r(t))continue;const l=Util.en(\"li\");l.className=\"goCXli\";const h=Util.en(\"a\");h.className=\"goCXa\",h.href=\"#\",h.Nm=n.Nm,h.addEventListener(\"pointerdown\",function(a){return this.Nm(t),i.stopTool(),a.preventDefault(),!1},!1),h.textContent=n.hi,l.appendChild(h),e.appendChild(l)}ContextMenuTool.Lm.style.display=\"block\",ContextMenuTool.Am.style.display=\"block\"}hideDefaultContextMenu(){if(this.currentContextMenu===null||this.currentContextMenu!==ContextMenuTool.ku)return;ContextMenuTool.Lm.style.display=\"none\",ContextMenuTool.Am.style.display=\"none\";const t=this.diagram;t!==null&&t.Si(ContextMenuTool.Am,\"pointerdown\",this.Zw,!1),this.currentContextMenu=null}get currentContextMenu(){return this.dM}set currentContextMenu(t){this.dM=t,this.Jw=t instanceof Adornment?t.adornedPart:null}get defaultTouchContextMenu(){return ContextMenuTool.pM===!1&&ContextMenuTool.ku===null&&Diagram.isUsingDOM()&&this.oF(),ContextMenuTool.ku}set defaultTouchContextMenu(t){t===null&&(ContextMenuTool.pM=!0),ContextMenuTool.ku=t}get currentObject(){return this.gM}set currentObject(t){this.gM=t}get mouseDownPoint(){return this.mM}}var TextEditingAccept=(w=>(w[w.LostFocus=1]=\"LostFocus\",w[w.MouseDown=2]=\"MouseDown\",w[w.Tab=3]=\"Tab\",w[w.Enter=4]=\"Enter\",w))(TextEditingAccept||{}),TextEditingStarting=(w=>(w[w.SingleClick=1]=\"SingleClick\",w[w.SingleClickSelected=2]=\"SingleClickSelected\",w[w.DoubleClick=3]=\"DoubleClick\",w))(TextEditingStarting||{}),TextEditingState=(w=>(w[w.None=1]=\"None\",w[w.Active=2]=\"Active\",w[w.Editing=3]=\"Editing\",w[w.Validating=4]=\"Validating\",w[w.Invalid=5]=\"Invalid\",w[w.Validated=6]=\"Validated\",w))(TextEditingState||{});class TextEditingTool extends Tool{Me;yM;wM;Al;Gt;xM;bM;kM;Qw;_w;constructor(t){super(),this.name=\"TextEditing\",this.Me=new TextBlock,this.yM=null,this.wM=2,this.Al=null,this.Gt=1,this.xM=1,this.bM=!0,this.kM=null,this.Qw=new HTMLInfo,this._w=null,this.lF(this.Qw),t&&Object.assign(this,t)}static LostFocus=1;static MouseDown=2;static Tab=3;static Enter=4;static SingleClick=1;static SingleClickSelected=2;static DoubleClick=3;static StateNone=1;static StateActive=2;static StateEditing=3;static StateValidating=4;static StateInvalid=5;static StateValidated=6;lF(t){if(!Diagram.isUsingDOM())return;const i=Util.en(\"textarea\");this._w=i;const e=this;i.addEventListener(\"input\",function(s){if(e.textBlock===null)return;const n=e.measureTemporaryTextBlock(this.value),o=this.textScale;this.style.width=20+Math.max(e.textBlock.measuredBounds.width,n.measuredBounds.width)*o+\"px\",this.rows=Math.max(e.textBlock.lineCount,n.lineCount)},!1),i.addEventListener(\"keydown\",function(s){if(s.isComposing||e.textBlock===null)return;const n=s.key;if(n===\"Enter\"){e.textBlock.isMultiline===!1&&s.preventDefault(),e.acceptText(4);return}else if(n===\"Tab\"){e.acceptText(3),s.preventDefault();return}else n===\"Escape\"&&(e.doCancel(),e.diagram!==null&&e.diagram.doFocus())},!1),i.addEventListener(\"focus\",function(s){e.hF(s)},!1),i.addEventListener(\"blur\",function(s){e.aF(s)},!1),t.valueFunction=()=>i.value,t.mainElement=i,t.show=(s,n,o)=>{if(!(s instanceof TextBlock)||!n||!n.div||!(o instanceof TextEditingTool))return;if(o.state===5){i.style.border=\"3px solid red\",i.focus();return}const r=s.getDocumentPoint(Spot.Center),l=n.position,h=n.scale;let a=s.getDocumentScale()*h;a{s.div&&s.div.removeChild(i)}}get textBlock(){return this.yM}set textBlock(t){this.yM=t}get currentTextEditor(){return this.kM}set currentTextEditor(t){this.kM=t}get defaultTextEditor(){return this.Qw}set defaultTextEditor(t){this.Qw=t}get starting(){return this.wM}set starting(t){this.wM=t}canStart(){if(!this.isEnabled)return!1;const t=this.diagram;if(t===null||t.isReadOnly||TextEditingTool.Pc&&TextEditingTool.Pc!==this&&(TextEditingTool.Pc.acceptText(2),TextEditingTool.Pc&&TextEditingTool.Pc!==this)||!t.lastInput.left||this.isBeyondDragSize())return!1;const i=t.lastInput.documentPoint,e=t.findObjectAt(i);if(e===null||!(e instanceof TextBlock)||!e.editable||!e.part.canEdit())return!1;const s=e.part;return!(s===null||this.starting===2&&!s.isSelected||this.starting===3&&t.lastInput.clickCount<2)}doStart(){TextEditingTool.Pc=this,this.textBlock!==null&&this.doActivate()}doActivate(){if(this.isActive)return;const t=this.diagram;if(t===null)return;let i=this.textBlock;if(i===null&&(i=t.findObjectAt(t.lastInput.documentPoint)),i===null||!(i instanceof TextBlock)||(this.textBlock=i,i.part===null))return;t.animationManager.stopAnimation(),this.isActive=!0,this.Gt=2;let s=this.defaultTextEditor;i.textEditor!==null&&(s=i.textEditor),this.Me=this.textBlock.copy();const n=new Rect(this.textBlock.getDocumentPoint(Spot.TopLeft),this.textBlock.getDocumentPoint(Spot.BottomRight));t.scrollToRect(n),s.show(i,t,this),this.currentTextEditor=s}doCancel(){this.stopTool()}doMouseUp(){this.canStart()&&this.doActivate()}doMouseDown(){this.isActive&&this.acceptText(2)}acceptText(t){switch(t){case 2:this.Gt===6?this.currentTextEditor instanceof HTMLElement&&this.currentTextEditor.focus():(this.Gt===2||this.Gt===5||this.Gt===3)&&(this.Gt=4,this.WC());break;case 1:case 4:case 3:if(t===4&&this.textBlock.isMultiline===!0)return;(this.Gt===2||this.Gt===5||this.Gt===3)&&(this.Gt=4,this.WC());break}}WC(){const t=this.textBlock,i=this.diagram,e=this.currentTextEditor;if(t!==null&&e!==null){const s=t.text;let n=\"\";if(e.valueFunction!==null&&(n=e.valueFunction()),!this.isValidText(t,s,n)){this.Gt=5,this.doError(s,n);return}this.startTransaction(this.name),this.Gt=6,this.transactionResult=this.name,t.text=n,this.doSuccess(s,n),i!==null&&i.v(\"TextEdited\",t,s),this.stopTransaction(),this.stopTool(),i!==null&&i.doFocus()}}doError(t,i){const e=this.textBlock;e.errorFunction!==null&&e.errorFunction(this,t,i);const s=this.currentTextEditor;s&&s.show(e,this.diagram,this)}doSuccess(t,i){const e=this.textBlock;e.textEdited!==null&&e.textEdited(e,t,i)}doDeactivate(){const t=this.diagram;t!==null&&(this.Gt=1,this.currentTextEditor!==null&&this.currentTextEditor.hide(t,this),this.textBlock=null,this.isActive=!1)}doStop(){TextEditingTool.Pc=null}hF(t){if(this.currentTextEditor===null||this.state===1)return;const i=this._w;this.Gt===2&&(this.Gt=3),typeof i.select==\"function\"&&this.selectsTextOnActivate&&(i.select(),i.setSelectionRange(0,9999))}aF(t){if(this.currentTextEditor===null||this.state===1)return;const i=this._w;typeof i.focus==\"function\"&&i.focus(),typeof i.select==\"function\"&&this.selectsTextOnActivate&&(i.select(),i.setSelectionRange(0,9999))}isValidText(t,i,e){const s=this.textValidation;if(s!==null&&!s(t,i,e))return!1;const n=t.textValidation;return!(n!==null&&!n(t,i,e))}get textValidation(){return this.Al}set textValidation(t){t!==null&&Util.i(t,\"function\",TextEditingTool,\"textValidation\"),this.Al=t}get minimumEditorScale(){return this.xM}set minimumEditorScale(t){t!==null&&Util.i(t,\"number\",TextEditingTool,\"minimumEditorScale\"),this.xM=t}get selectsTextOnActivate(){return this.bM}set selectsTextOnActivate(t){t!==null&&Util.i(t,\"boolean\",TextEditingTool,\"selectsTextOnActivate\"),this.bM=t}get state(){return this.Gt}set state(t){this.Gt!==t&&(this.Gt=t)}measureTemporaryTextBlock(t){const i=this.Me;return i.text=t,i.ut(this.textBlock.Tl,1/0),i}static Pc=null}var AnimationStyle=(w=>(w[w.Default=1]=\"Default\",w[w.AnimateLocations=2]=\"AnimateLocations\",w[w.None=3]=\"None\",w))(AnimationStyle||{});class AnimationManager{p;Ni;Ii;kr;Gn;Lo;PM;MM;Tm;wi;Mc;un;Dm;Gh;tx;Fm;ix;Sc;xu;Rm;constructor(t){this.p=Diagram.wm(),this.Ni=!1,this.Tm=!1,this.wi=!1,this.Mc=!1,this.ix=!0,this.Sc=1,this.xu=!1,this.Ii=!0,this.kr=!0,this.Lo=600,this.PM=!1,this.MM=!1,this.Gn=new GSet,this.un=new Animation,this.Dm=new Animation,this.un.ds=this,this.Gh=new GSet,this.tx=new GSet,this.Fm=new GSet,this.Rm=new GSet,t&&Object.assign(this,t)}Ao(t){this.p=t}lE(){return this.p}canStart(t){return!0}Dl(t){return!this.Ii||!this.canStart(t)?!1:(this.Gn.add(t),this.defaultAnimation.isAnimating&&this.stopAnimation(),this.p.Ci(),this.wi=!0,!0)}getBundleAnimation(){return this.Dm}SM(){if(!this.Ii||(this.Dm.ce.count>0&&this.Dm.start(),!this.wi))return;const t=this.un,i=this.p,e=this.Gn.has(\"Model\");if(e&&(this.Mc=!0,this.Sc===1?(t.isViewportUnconstrained=!0,t.ce.clear(),t.add(i,\"position\",i.position.copy().offset(0,-200),i.position),t.add(i,\"opacity\",0,1)):this.Sc===3&&t.ce.clear(),this.Sc===2&&i.ex.equals(i.at)?this.ix=!0:this.ix=!1,i.v(\"InitialAnimationStarting\",this)),e&&!this.kr||t.ce.count===0){this.Gn.clear(),this.wi=!1,t.ce.clear(),t.sx(i),this.Mc=!1,i.C();return}this.Gn.clear(),i.Pr=!1;const s=t.ce.get(i);i.autoScale!==1&&s!==null&&(delete s.ni.scale,delete s.gs.scale);const n=this;root.requestAnimationFrame(()=>{n.wi===!1||t.Ni||(i.getRenderingHint(\"temporaryPixelRatio\")&&i.Bw(),i.NM(),n.wi=!1,t.start(),t.Ni&&(n.Pu(),i.invalidateDocumentBounds(),t.JC(0),i.pr(!0),n.Mu(),i.v(\"AnimationStarting\",n)))})}CM(){return this.Gn.has(\"Trigger\")&&this.Gn.count===1}$C(t,i,e,s){this.isTicking||this.CM()||t instanceof Link&&(t.fromNode!==null||t.toNode!==null)||this.un.add(t,\"position\",i,e,s)}nx(t){return this.un.nx(t)}LM(t){return this.un.LM(t)}cF(t){const i=this.Gh,e=this;function s(){if(e.Fm.count>0&&(i.addAll(e.Fm),e.Fm.clear(),e.Ni=!0),e.Ni===!1||i.count===0)return;e.tx.addAll(i);const n=e.tx.iterator;for(;n.next();){const o=n.value;o.Ni!==!1&&(o.fF()?o.ZC(!1):o.Nc=!0)}if(e.tx.clear(),e.Ni===!1){root.requestAnimationFrame(s);return}e.Pu(),e.p.pr(),e.Mu(),root.requestAnimationFrame(s)}this.Ni?this.uF(t):(this.Ni=!0,i.add(t),root.requestAnimationFrame(()=>s()))}uF(t){this.Fm.add(t)}dF(){const t=this.Gh.iterator;for(;t.next();)t.value.Nc=!1}Pu(){if(this.Tm)return;const t=this.p;this.PM=t.skipsUndoManager,this.MM=t.fe,t.skipsUndoManager=!0,t.fe=!0,this.Tm=!0}Mu(){const t=this.p;t.skipsUndoManager=this.PM,t.fe=this.MM,this.Tm=!1}stopAnimation(t){const i=this.un;if(this.wi===!0&&(this.wi=!1,this.Mc=!1,this.Gn.clear(),i.gF()&&this.p.requestUpdate()),!this.Ni){i.ce.clear(),i.sx(this.p);return}if(i.Su(!0),i.sx(null),t===!0){const e=this.Gh.toArray();for(let s=0;s{!i.isAnimating&&i.runCount===1/0&&i.start()})}get duration(){return this.Lo}set duration(t){Util.i(t,\"number\",AnimationManager,\"duration\"),t<1&&Util._(t,\">= 1\",AnimationManager,\"duration\"),this.Lo=t}get isAnimating(){return this.Ni}get isTicking(){return this.Tm}get isInitial(){return this.kr}set isInitial(t){Util.i(t,\"boolean\",AnimationManager,\"isInitial\"),this.kr=t}get defaultAnimation(){return this.un}get activeAnimations(){return this.Gh}get initialAnimationStyle(){return this.Sc}set initialAnimationStyle(t){this.Sc=t}static ox=new GMap;static defineAnimationEffect(t,i){AnimationManager.ox.set(t,i)}static DM(t,i,e,s,n){t===null&&(t=[0,0,0,0]),i===null&&(i=[0,0,0,0]);let o=t[0],r=t[1];const l=t[2],h=t[3];let a=i[0],c=i[1];const f=i[2],u=i[3];l===0||l===100?(o=a,r=c):(f===0||f===100)&&(a=o,c=r),Math.abs(a-o)>180&&(a>o?o+=360:a+=360);const d=n(e,o,a-o,s)%360,m=n(e,r,c-r,s),g=n(e,l,f-l,s),p=n(e,h,u-h,s);return\"hsla(\"+d+\", \"+m+\"%, \"+g+\"%, \"+p+\")\"}static{const t=AnimationManager.ox,i=(e,s,n,o,r,l)=>{e.position=new Point(o(r,s.x,n.x-s.x,l),o(r,s.y,n.y-s.y,l))};t.set(\"position:diagram\",i),t.set(\"position\",i),t.set(\"position:part\",(e,s,n,o,r,l)=>{r{r{r{const h=e.actualBounds,a=n.actualBounds,c=a.x+a.width/2-h.width/2,f=a.y+a.height/2-h.height/2;r{e.desiredSize=new Size(o(r,s.width,n.width-s.width,l),o(r,s.height,n.height-s.height,l))}),t.set(\"width\",(e,s,n,o,r,l)=>{e.width=o(r,s,n-s,l)}),t.set(\"height\",(e,s,n,o,r,l)=>{e.height=o(r,s,n-s,l)}),t.set(\"fill\",(e,s,n,o,r,l)=>{e.fill=AnimationManager.DM(s,n,r,l,o)}),t.set(\"stroke\",(e,s,n,o,r,l)=>{e.stroke=AnimationManager.DM(s,n,r,l,o)}),t.set(\"strokeWidth\",(e,s,n,o,r,l)=>{e.strokeWidth=o(r,s,n-s,l)}),t.set(\"strokeDashOffset\",(e,s,n,o,r,l)=>{e.strokeDashOffset=o(r,s,n-s,l)}),t.set(\"background\",(e,s,n,o,r,l)=>{e.background=AnimationManager.DM(s,n,r,l,o)}),t.set(\"opacity\",(e,s,n,o,r,l)=>{e.opacity=o(r,s,n-s,l)}),t.set(\"scale\",(e,s,n,o,r,l)=>{e.scale=o(r,s,n-s,l)}),t.set(\"angle\",(e,s,n,o,r,l)=>{e.angle=o(r,s,n-s,l)})}static Default=1;static AnimateLocations=2;static None=3}class Animation{rx;vm;Ni;Nu;Lo;ms;iL;Ac;ce;lx;ni;jn;Cu;Tc;hx;ax;Nc;FM;cx;ds;p;RM;vM;OM;constructor(t){this.p=null,this.ds=null,this.FM=null,this.cx=null,this.RM=!1,this.Ni=!1,this.Nc=!1,this.ni=0,this.jn=0,this.rx=Animation.EaseInOutQuad,this.vm=Animation.EaseInOutQuad,this.Cu=!1,this.Tc=!1,this.hx=1,this.ax=0,this.Lo=NaN,this.ms=NaN,this.vM=0,this.Nu=null,this.iL=Point.Po,this.ce=new GMap,this.lx=new GMap,this.Ac=new GSet,this.OM=1,t&&Object.assign(this,t)}suspend(){this.Nc=!0}advanceTo(t,i){i&&(this.Nc=!1),this.Cu&&t>=this.ms&&(this.Tc=!0,t=t-this.ms),this.vM=t,this.ZC(!0),this.ds.Pu(),this.p.pr(),this.ds.Mu(),this.p.redraw()}sx(t){if(this.lx.clear(),this.Tc=!1,this.ax=0,this.ms=NaN,this.Ac.count>0&&this.Ac.clear(),t!==null){const i=t.links;for(;i.next();)i.value.Mr=null}}gF(){return this.ce.count>0}start(){if(this.ce.count===0)return this;if(this.Ni)return this;let t=this.p;const i=this.ce.iterator;for(;i.next();){const s=i.key;t===null&&(s instanceof Diagram?t=s:s instanceof GraphObject&&(t=s.diagram))}if(t!==null)this.p=t,this.ds=t.animationManager;else return this;const e=this.ds;return e.isEnabled===!1?this:(this.ms=isNaN(this.Lo)?e.duration:this.Lo,this.vm=this.rx,e.Mc&&e.Sc===1&&this===e.defaultAnimation&&(this.vm=Animation.EaseOutExpo,this.ms=isNaN(this.Lo)?e.duration===600?900:e.duration:this.Lo),this.OM=t.scrollMode,this.isViewportUnconstrained&&(t.jh=2),e.Pu(),this.Ac.each(s=>{s.data=null,t.add(s)}),e.Mu(),this.Ni=!0,this.ni=+new Date,this.jn=this.ni+this.ms,e.cF(this),this)}addTemporaryPart(t,i){return t.Pe()?(this.Ac.add(t),this.p=i,this):this}add(t,i,e,s,n){if(this.p===null&&(t instanceof Diagram?this.p=t:t instanceof GraphObject&&t.diagram!==null&&(this.p=t.diagram)),t instanceof Part){if(!t.isAnimated)return this;i===\"position\"&&(i=\"position:part\")}return this.AM(t,i,e,s,n),this}AM(t,i,e,s,n){const o=this.ce;let r,l,h;if(t instanceof Diagram&&i===\"position\"&&(i=\"position:diagram\"),(i===\"fill\"||i===\"stroke\"||i===\"background\")&&(Brush.To(e),Brush.IM(),e=[Brush.Ei.n0,Brush.Ei.n1,Brush.Ei.n2,Brush.Ei.n3],Brush.To(s),Brush.IM(),s=[Brush.Ei.n0,Brush.Ei.n1,Brush.Ei.n2,Brush.Ei.n3]),o.has(t))r=o.get(t),l=r.ni,h=r.gs,l[i]===void 0&&(l[i]=this.Lu(e)),h[i]=this.Lu(s);else{if(i===\"position\"&&e.equalsApprox(s))return;l={},h={},l[i]=this.Lu(e),h[i]=this.Lu(s),r=new AnimationState(l,h,n),o.set(t,r)}const a=l[i];a instanceof Point&&!a.isReal()&&a.a(this.iL),n&&i.indexOf(\"position:\")===0&&t instanceof Part?r.fx.location=this.Lu(t.location):n&&(r.fx[i]=this.Lu(e))}Lu(t){return t instanceof Point||t instanceof Size?t.copy():t}mF(t){const i=this.ce;if(i.has(t)){const e=i.get(t);e.ux=!0}}nx(t){if(!this.Ni)return!1;const i=this.ce.get(t);return i!==null&&i.ux}LM(t){if(!this.Ni)return!1;const i=this.ce.get(t);return i!==null&&!!(i.ni.position||i.ni[\"position:part\"]||i.ni.location)}fF(){if(this.Ac.count>0)return!0;const t=this.ce.iterator;for(;t.next();){const i=t.key;if(i instanceof GraphObject&&i.diagram!==null||i instanceof Diagram)return!0}return!1}ZC(t){if(this.Nc&&!t)return;const i=this.ds;if(this.Ni===!1)return;const e=+new Date;let s=e>this.jn?this.ms:e-this.ni;t&&(s=this.vM,sthis.jn&&(this.Cu&&!this.Tc?(this.ni=+new Date,this.jn=this.ni+this.ms,this.Tc=!0):this.Su(!1))}JC(t){const i=this.ms,e=this.ce.iterator,s=this.Tc;for(;e.next();){const n=e.key;if(n instanceof GraphObject&&n.diagram===null)continue;const o=e.value,r=s?o.gs:o.ni,l=s?o.ni:o.gs,h=AnimationManager.ox;for(const a in l)a===\"position\"&&(l[\"position:placeholder\"]||l[\"position:nodeCollapse\"])||h.get(a)!==null&&h.get(a)(n,r[a],l[a],this.vm,t,i,this)}}stop(){return this.Ni?(this.Su(!0),this):this}Su(t){if(this.cx!==null&&this.cx.pF(this.FM),!this.Ni)return;const i=this.p,e=this.ds;e.Mc=!1,this.Ni=!1,this.Nc=!1,e.Pu();const s=this.ce,n=this.Ac.iterator;for(;n.next();)i.remove(n.value);const o=this.Cu,r=s.iterator,l=AnimationManager.ox;for(;r.next();){const a=r.key,c=r.value,f=o?c.gs:c.ni,u=o?c.ni:c.gs,d=c.fx;for(const m in u)if(l.get(m)!==null){let g=m;c.gx&&(g===\"position:nodeCollapse\"||g===\"position:placeholder\")&&(g=\"position\"),l.get(g)(a,f[m],d[m]!==void 0?d[m]:c.gx?f[m]:u[m],this.vm,this.ms,this.ms,this)}c.gx&&d.location!==void 0&&a instanceof Part&&(a.location=d.location),c.ux&&a instanceof Part&&a.Bi(!1)}this.ax++;const h=!t&&this.hx>this.ax;if(!h&&(this===e.Dm||this===e.defaultAnimation)&&this.ce.clear(),i.mx.clear(),i.yP(!1),i.invalidateDocumentBounds(),i.C(),i.pr(!0),e.defaultAnimation===this){const a=e.Rm.iterator;for(;a.next();)a.value.yF();e.Rm.clear()}if(i.pr(!0),this.isViewportUnconstrained&&(i.scrollMode=this.OM),e.Mu(),h){this.Tc=!1,this.start();return}this.sx(null),i.eL(),e.Su(this),this.Nu&&this.Nu(this),i.requestUpdate()}Cc(t,i){const e=i.actualBounds;let s=null;if(i instanceof Group&&(s=i.placeholder),s!==null&&s.visible){const n=s.getDocumentPoint(Spot.TopLeft),o=s.padding;n.x+=o.left,n.y+=o.top,this.add(t,\"position\",n,t.position,!1)}else this.add(t,\"position\",new Point(e.x+e.width/2,e.y+e.height/2),t.position,!1);this.add(t,\"scale\",.01,t.scale,!1),t instanceof Group&&this.wF(t,i)}wF(t,i){const e=t.memberParts;for(;e.next();){const s=e.value;s instanceof Node&&this.Cc(s,i)}}Lc(t,i){if(!t.isVisible())return;let e=null;if(i instanceof Group&&(e=i.placeholder),e!==null&&e.visible){const s=e.getDocumentPoint(Spot.TopLeft),n=e.padding;s.x+=n.left,s.y+=n.top,this.add(t,\"position:placeholder\",t.position,s,!0)}else this.add(t,\"position:nodeCollapse\",t.position,i,!0);this.add(t,\"scale\",t.scale,.01,!0),this.mF(t),t instanceof Group&&this.xF(t,i)}xF(t,i){const e=t.memberParts;for(;e.next();){const s=e.value;s instanceof Node&&this.Lc(s,i)}}get duration(){return this.Lo}set duration(t){Util.i(t,\"number\",Animation,\"duration\"),t<1&&Util._(t,\">= 1\",Animation,\"duration\"),this.Lo=t}get reversible(){return this.Cu}set reversible(t){this.Cu=t}get runCount(){return this.hx}set runCount(t){t>0?this.hx=t:Util.o(\"Animation.runCount value must be a positive integer.\")}get finished(){return this.Nu}set finished(t){this.Nu!==t&&(t!==null&&Util.i(t,\"function\",Animation,\"finished\"),this.Nu=t)}get easing(){return this.rx}set easing(t){this.rx=t}get isViewportUnconstrained(){return this.RM}set isViewportUnconstrained(t){this.RM=t}get isAnimating(){return this.Ni}getTemporaryState(t){let i=this.lx.get(t);return i===null&&(i={},this.lx.set(t,i)),i}static EaseLinear=(t,i,e,s)=>e*t/s+i;static EaseInOutQuad=(t,i,e,s)=>(t/=s/2,t<1?e/2*t*t+i:-e/2*(--t*(t-2)-1)+i);static EaseInQuad=(t,i,e,s)=>e*(t/=s)*t+i;static EaseOutQuad=(t,i,e,s)=>-e*(t/=s)*(t-2)+i;static EaseInExpo=(t,i,e,s)=>t===0?i:e*Math.pow(2,10*(t/s-1))+i;static EaseOutExpo=(t,i,e,s)=>t===s?i+e:e*(-Math.pow(2,-10*t/s)+1)+i}class AnimationState{ni;gs;fx;gx;ux;constructor(t,i,e){this.ni=t,this.gs=i,this.fx={},this.gx=e,this.ux=!1}}var TriggerStart=(w=>(w[w.Default=1]=\"Default\",w[w.Immediate=2]=\"Immediate\",w[w.Bundled=3]=\"Bundled\",w))(TriggerStart||{});class AnimationTrigger{ke;an;Au;Dc;constructor(t,i,e){this.ke=null,this.an=t,this.Au=e||1,this.Dc=null,i!==void 0&&(this.Dc=i,e===void 0&&(this.Au=2))}copy(){const t=new AnimationTrigger(this.an);t.Au=this.Au;const i=this.Dc;if(i!==null){const e={};i.duration!==void 0&&(e.duration=i.duration),i.finished!==void 0&&(e.finished=i.finished),i.easing!==void 0&&(e.easing=i.easing),t.Dc=e}return t}get propertyName(){return this.an}set propertyName(t){this.an=t}get animationSettings(){return this.Dc}set animationSettings(t){this.Dc=t}bF(t){const i=this.Dc;i!==null&&(i.duration&&(t.duration=i.duration),i.finished&&(t.finished=i.finished),i.easing&&(t.easing=i.easing))}get startCondition(){return this.Au}set startCondition(t){this.Au=t}static Default=1;static Immediate=2;static Bundled=3}class Layer{p;St;Jt;Sr;Fl;Rl;vl;Ol;Il;El;Bl;Ul;Vl;zl;Xl;Kl;kc;Yl;px;Om;Tu;At;constructor(t){GSet.ji(this),this.p=null,this.At=new List,this.St=\"\",this.Jt=1,this.Sr=!1,this.Fl=!0,this.Rl=!0,this.vl=!0,this.Ol=!0,this.Il=!0,this.El=!0,this.Bl=!0,this.Ul=!0,this.Vl=!0,this.zl=!0,this.Xl=!0,this.Kl=!0,this.kc=!0,this.Yl=!0,this.px=!0,this.Om=!1,this.Tu=[],t&&Object.assign(this,t)}kF(){const t=this.At;for(let i=0;i0&&(h+=e+\" Parts \"),s>0&&(h+=s+\" Nodes \"),n>0&&(h+=n+\" Groups \"),o>0&&(h+=o+\" Links \"),r>0&&(h+=r+\" Adornments \"),t>1){const a=this.At.iterator;for(;a.next();){const c=a.value;h+=`\n `+c.toString();const f=c.data;f!==null&&GSet.as(f)&&(h+=\" #\"+GSet.as(f)),c instanceof Node?h+=\" \"+Util.toString(f):c instanceof Link&&(h+=\" \"+Util.toString(c.fromNode)+\" \"+Util.toString(c.toNode))}}return i+\" \"+this.At.count+\": \"+h}findObjectAt(t,i,e){if(i===void 0&&(i=null),e===void 0&&(e=null),this.Yl===!1)return null;let s=!1;this.diagram!==null&&this.diagram.viewportBounds.containsPoint(t)&&(s=!0);const n=Point.l(),o=this.At.r,r=o.length;for(let l=r;l--;){const h=o[l];if(s===!0&&h.Sl()===!1||!h.isVisible())continue;n.a(t),n.Ie(h.Es);let a=h.sL(n,i,e);if(a!==null&&(i!==null&&(a=i(a)),a!==null&&(e===null||e(a))))return Point.s(n),a}return Point.s(n),null}findObjectsAt(t,i,e,s){if(i===void 0&&(i=null),e===void 0&&(e=null),!(s instanceof List)&&!(s instanceof GSet)&&(s=new GSet),this.Yl===!1)return s;let n=!1;this.diagram!==null&&this.diagram.viewportBounds.containsPoint(t)&&(n=!0);const o=Point.l(),r=this.At.r,l=r.length;for(let h=l;h--;){const a=r[h];if(n===!0&&a.Sl()===!1||!a.isVisible())continue;o.a(t),o.Ie(a.Es);let c=a;a.nL(o,i,e,s)&&(i!==null&&(c=i(c)),c!==null&&(e===null||e(c))&&s.add(c))}return Point.s(o),s}findObjectsIn(t,i,e,s,n){if(i===void 0&&(i=null),e===void 0&&(e=null),s===void 0&&(s=!1),!(n instanceof List)&&!(n instanceof GSet)&&(n=new GSet),this.Yl===!1)return n;let o=!1;this.diagram!==null&&this.diagram.viewportBounds.containsRect(t)&&(o=!0);const r=this.At.r,l=r.length;for(let h=l;h--;){const a=r[h];if(o===!0&&a.Sl()===!1||!a.isVisible())continue;let c=a;a.Im(t,i,e,s,n)&&(i!==null&&(c=i(c)),c!==null&&(e===null||e(c))&&n.add(c))}return n}NP(t,i,e,s,n,o,r){if(this.Yl===!1)return n;const l=this.At.r,h=l.length;for(let a=h;a--;){const c=l[a];if(r===!0&&c.Sl()===!1||!o(c)||!c.isVisible())continue;let f=c;c.Im(t,i,e,s,n)&&(i!==null&&(f=i(f)),f!==null&&(e===null||e(f))&&n.add(f))}return n}findObjectsNear(t,i,e,s,n,o){if(e===void 0&&(e=null),s===void 0&&(s=null),n===void 0&&(n=!0),n!==!1&&n!==!0&&((n instanceof List||n instanceof GSet)&&(o=n),n=!0),!(o instanceof List)&&!(o instanceof GSet)&&(o=new GSet),this.Yl===!1)return o;let r=!1;this.diagram!==null&&this.diagram.viewportBounds.containsPoint(t)&&(r=!0);const l=Point.l(),h=Point.l(),a=this.At.r,c=a.length;for(let f=c;f--;){const u=a[f];if(r===!0&&u.Sl()===!1||!u.isVisible())continue;l.a(t),l.Ie(u.Es),h.e(t.x+i,t.y),h.Ie(u.Es);let d=u;u.oL(l,h,e,s,n,o)&&(e!==null&&(d=e(d)),d!==null&&(s===null||s(d))&&o.add(d))}return Point.s(l),Point.s(h),o}BM(){return this.At.r}Bs(t,i){if(!this.visible)return;const e=this.At.r,s=e.length;if(s===0)return;const n=Util.nt(),o=Util.nt();for(let r=0;r0&&o.push(l))}for(let r=0;re.Bm||a.height*n>e.Bm?i.Ui(t,e):this.NF(t,i,e),c&&(t.restore(),t.clearContextCache(!0))}NF(t,i,e){if(t instanceof SVGContext){i.Ui(t,e);return}const s=i.actualBounds,n=i.naturalBounds;if(s.width===0||s.height===0||isNaN(s.x)||isNaN(s.y)||!i.isVisible())return;const o=i.D;if(i.background===null){i.dn(t,\"rgba(0,0,0,0.3)\",!0,!1,n,s),t.fillRect(s.x,s.y,s.width,s.height);return}if(t.transform(o.m11,o.m12,o.m21,o.m22,o.dx,o.dy),i.dn(t,i.background,!0,!1,n,s),t.fillRect(0,0,n.width/2,n.height/2),!o.Ok()){const r=1/(o.m11*o.m22-o.m12*o.m21);t.transform(o.m22*r,-o.m12*r,-o.m21*r,o.m11*r,r*(o.m21*o.dy-o.m22*o.dx),r*(o.m12*o.dx-o.m11*o.dy))}}SF(t,i,e,s){const n=2/s,o=4/s;for(let r=0;r=s.count)t=s.count;else if(s.elt(t)===i)return-1;s.insertAt(t,i),i.Um(e);const n=this.diagram;return n!==null&&(e?n.C():n.qh(i)),this.yx(t,i),t}te(t,i,e){if(!e&&i.layer!==this&&i.layer!==null)return i.layer.te(t,i,e);const s=this.At;if(t<0||t>=s.length){if(t=s.indexOf(i),t<0)return-1}else if(s.elt(t)!==i&&(t=s.indexOf(i),t<0))return-1;i.Vm(e),s.removeAt(t);const n=this.diagram;return n!==null&&(e?n.C():n.te(i)),i.EM(null),t}yx(t,i){t=this.CF(t,i),i instanceof Group&&this.LF(t,i),i.svg!==null&&i.svg.remove()}CF(t,i){const e=i.zOrder;if(isNaN(e))return t;const s=this.At,n=s.count;if(n<=1)return t;if(t<0&&(t=s.indexOf(i)),t<0)return-1;let o=t-1,r=NaN;for(;o>=0&&(r=s.elt(o).zOrder,!!isNaN(r));)o--;let l=t+1,h=NaN;for(;le)for(;;){if(o===-1||r<=e)return o++,o===t?t:(s.removeAt(t),s.insertAt(o,i),o);for(r=NaN;--o>=0&&(r=s.elt(o).zOrder,!!isNaN(r)););}else if(!isNaN(h)&&h=e)return l--,l===t?t:(s.removeAt(t),s.insertAt(l,i),l);for(h=NaN;++l=0)||e<0&&r.containingGroup===i&&(e=o,t>=0))break}if(!(e<0)&&e1)&&Util._(t,\"0 <= value <= 1\",Layer,\"opacity\"),this.Jt=t;const e=this.diagram;e!==null&&e.C(),this.t(\"opacity\",i,t)}}get isViewportAligned(){return this.Om}set isViewportAligned(t){const i=this.Om;i!==t&&(this.Om=t,this.diagram&&(this.lL(),this.diagram.C()),this.t(\"isViewportAligned\",i,t),t&&(this.isInDocumentBounds=!1))}lL(){if(!this.Om)return;const t=this.diagram,i=this.At.r,e=i.length,s=t.kt,n=t.Pt;for(let o=0;o(w[w.None=1]=\"None\",w[w.Uniform=2]=\"Uniform\",w[w.UniformToFill=3]=\"UniformToFill\",w))(AutoScale||{}),CycleMode=(w=>(w[w.All=1]=\"All\",w[w.NotDirected=2]=\"NotDirected\",w[w.NotDirectedFast=3]=\"NotDirectedFast\",w[w.NotUndirected=4]=\"NotUndirected\",w[w.DestinationTree=5]=\"DestinationTree\",w[w.SourceTree=6]=\"SourceTree\",w))(CycleMode||{}),ScrollMode=(w=>(w[w.Document=1]=\"Document\",w[w.Infinite=2]=\"Infinite\",w))(ScrollMode||{}),CollapsePolicy=(w=>(w[w.TreeParent=1]=\"TreeParent\",w[w.AllParents=2]=\"AllParents\",w[w.AnyParents=3]=\"AnyParents\",w))(CollapsePolicy||{});class Diagram{ds;di;zM;wx;Nr;Ru;xx;bx;kx;Px;Mx;Sx;Fc;jh;Nx;Cx;Lx;Gl;Rc;Cr;zm;Ax;Tx;vu;Hn;Lr;Wh;Do;Xm;vc;Km;Oc;Ou;Ar;qn;XM;KM;Dx;Fx;YM;Rx;GM;jM;HM;vx;Ym;Tr;Dr;Fr;Rr;vr;Or;Ox;Ir;Ix;Er;Br;Ur;Vr;Ex;qM;Fo;WM;Bx;Ux;JM;Mi;$M;ZM;QM;vs;Ro;Ii;Vx;Fl;Rl;zx;Xx;vl;Ol;Il;Kx;El;Bl;Ul;Vl;zl;Xl;Kl;Yx;Gx;_M;Iu;Eu;jx;Hx;qx;Wx;Gm;Jx;$x;Zx;Zt;tS;Qx;iS;Bu;gn;Wn;ie;Jn;hL;jl;eS;sS;jm;_x;Uu;Hm;tb;zr;Hl;Jh;nS;oS;qm;ib;eb;is;Vu;Wm;zu;ql;Ic;Jm;Xr;$h;rS;$m;qt;D;Ue;Pr;Vi;ps;lS;Wl;Kr;xl;Yr;Zh;Ec;hS;Xu;Qh;Ku;jt;Jl;at;et;Yu;kt;Pt;dt;Bc;Ew;sb;_h;Uc;nb;ob;rb;DF;FF;zi;kl;Bm;Zm;aS;cS;aL;Qm;RF;vF;OF;lb;IF;EF;BF;ta;cL;$l;ia;ea;sa;na;wu;Yh;Qt;Tt;Vc;Wk;Jk;fc;Jt;static hb=null;static fL=new GMap;static fS;static uS=null;yu;ab;cb;fb;ub;db;_m;dS;t0;i0;e0;ex;gS;gb;zc;constructor(t,i){if(Diagram.uw||(Diagram.Ik(),Diagram.uw=!0),GSet.ji(this),Diagram.uL(this),this.qt=!0,this.Tt=null,this.kt=0,this.Pt=0,this.dt=null,Diagram.isUsingDOM()){const s=this,n=()=>{s.Si(root.document,\"DOMContentLoaded\",n,!1),s.setRTL()};root.document.body!==null?this.setRTL():s.zt(root.document,\"DOMContentLoaded\",n,!1)}this.Bc=null,Diagram.mS(\"Model\",PartManager);const e=this;return this.$M=s=>e.partManager.doModelDataChanged(s),this.ZM=s=>e.partManager.doModelChanged(s),this.nb=null,this.ob=null,this.dL(),this.model=Model.initDiagramModel(),this.gb=null,this.themeManager=new ThemeManager,this.Fo=!0,this.gL(),this.layout=new Layout,this.Fo=!1,this.RF=null,this.vF=null,this.OF=null,this.lb=null,this.IF=null,this.EF=null,this.BF=null,this.ta=null,this.cL=null,this.$l=null,this.ia=null,this.ea=null,this.sa=null,this.na=null,this.wu=()=>{},this.Yh=null,this.zu=!1,this.Vc=new DiagramHelper(this),t!==void 0&&(typeof t==\"string\"||root.Element&&t instanceof Element?this.pS(t):i=t),i&&this.setProperties(i),this.qt=!1,this.requestUpdate(),this}WD(){return this.dt!==null}get renderer(){return this.Ic}set renderer(t){if(this instanceof Overview)return;t===\"\"&&(t=\"default\");const i=t.toLowerCase(),e=this.Ic;if(i===e)return;this.Ic=i;let s=null;i===\"default\"||i===\"canvas\"?(s=this.ql.get(\"svg\"),s!==null&&s.Ft.remove(),this.dt&&(this.Qt=this.dt.ai),this.Qt.clearContextCache(!0)):i===\"svg\"?(this.ql.has(\"svg\")?s=this.ql.get(\"svg\"):(s=new SVGSurface(this,root.document),this.addRenderer(\"svg\",s)),this.div!==null&&this.div.appendChild(s.Ft),this.Qt=s.ai,this.dt&&(this.dt.ai.setTransform(this.zi,0,0,this.zi,0,0),this.dt.ai.clearRect(0,0,this.kt,this.Pt))):i===\"debug\"&&(this.ql.has(\"SVG\")||(s=new SVGSurface(this,root.document),this.addRenderer(\"SVG\",s),s.Ft.style.backgroundColor=\"whitesmoke\",this.div!==null&&this.div.after(s.Ft))),this.qt||this.redraw()}dL(){this.zc=new List,this.setupRouters(),this.ds=new AnimationManager,this.ds.Ao(this),this.di=17,this.zM=!1,this.Yu=!1,this.wx=\"default\",this.jt=new List,this.ql=new GMap,this.Ic=\"default\",this.resetRenderingHints(),this.UF(),this.Jt=1,this.at=new Point(NaN,NaN).g(),this.ex=new Point(NaN,NaN),this.et=1,this.$m=1,this.xx=new Point(NaN,NaN).g(),this.bx=NaN,this.kx=1e-4,this.Px=100,this.D=new Transform,this.Mx=new Point(NaN,NaN).g(),this.Sx=new Rect(NaN,NaN,NaN,NaN).g(),this.Fc=new Margin(0,0,0,0).g(),this.jh=1,this.Nx=!1,this.Cx=null,this.Lx=null,this.Gl=1,this.Rc=Spot.Default,this.Cr=1,this.zm=Spot.Default,this.Ax=Spot.None,this.Tx=Spot.None,this.Ue=!0,this.vu=!1,this.Hn=new Set,this.Lr=new GSet,this.Wh=new GSet,this.Do=!1,this.Jl=new GMap,this.Xu=!0,this.Xm=250,this.vc=-1,this.Km=new Margin(16,16,16,16).g(),this.Pr=!1,this.Oc=!1,this.Ou=!0,this.Jm=new InputEvent,this.Jm.diagram=this,this.Xr=new InputEvent,this.Xr.diagram=this,this.$h=new InputEvent,this.$h.diagram=this,this.Ar=null,this.qn=null,this.Ew=!1,this.VF(),this.Yr=new GSet,this.Dx=!0,this.Fx=1,this.YM=!1,this.Rx=1,this.vx=\"auto\",this.Ym=\"auto\",this.Tr=null,this.Dr=null,this.Fr=null,this.Rr=null,this.vr=null,this.Or=null,this.Ox=null,this.Ir=null,this.Ix=!1,this.Er=null,this.Br=null,this.Ur=null,this.Vr=null,this.Ex=!1,this.sb={},this._h=[null,null],this.Fo=!1,this.WM=!1,this.Bx=!1,this.Ux=!1,this.JM=!0,this.ps=!1,this.Qh=!1,this.QM=!0,this.vs=-2,this.Wl=new GMap,this.Ku=new List,this.Ro=!1,this.Ii=!0,this.Vx=!0,this.Fl=!0,this.Rl=!0,this.zx=!1,this.Xx=!0,this.vl=!0,this.Ol=!0,this.Il=!0,this.Kx=!0,this.El=!0,this.Bl=!0,this.Ul=!0,this.Vl=!0,this.zl=!0,this.Xl=!0,this.Kl=!0,this.Yx=!0,this.Gx=!0,this._M=!1,this.Uc=!1,this.Iu=!0,this.Eu=!0,this.jx=!0,this.Hx=!0,this.qx=16,this.Wx=16,this.Gm=!1,this.Jx=!1,this.$x=0,this.Zx=0,this.Zt=new Margin(5).g(),this.tS=new GSet().g(),this.Qx=999999999,this.iS=new GSet().g(),this.Zh=!0,this.Bu=!0,this.Ec=!0,this.gn=!1,this.Wn=!1,this.Kr=!0,this.xl=!1,this.Jn=!1,this.hL=new GSet,this.hS=new GSet,this.jl=null,this.eS=new Size(8,8),this.sS=999,this.jm=!1,this.Wk=1,this.Jk=0,this.Vi={scale:1,position:new Point,bounds:new Rect,canvasSize:new Size,newCanvasSize:new Size,isScroll:!1},this.Vi.canvasSize=this.Vi.canvasSize,this.Vi.newCanvasSize=this.Vi.newCanvasSize,this.Vi.isScroll=!1,this._x=new Rect(NaN,NaN,NaN,NaN).g(),this.Uu=new Size(NaN,NaN).g(),this.Hm=new Rect(NaN,NaN,NaN,NaN).g(),this.tb=!1,this.zF(),this.is=null,this.Vu=!1,this.fc=null,this.partManager=new PartManager,this.toolManager=new ToolManager,this.toolManager.initializeStandardTools(),this.defaultTool=this.toolManager,this.currentTool=this.defaultTool,this.cb=null,this.fb=new DraggingOptions,this.ub=null,this.db=null,this.ab=!1,this.yu=!1,this.commandHandler=new CommandHandler,this.i0=null,this.e0=Point.Ak,this.gS=!1,this.zi=1,this.kl=null,this.Bm=1,this._m=0,this.dS=[0,0,0,0,0],this.t0=0,this.Zm=1,this.aS=0,this.cS=new Point,this.aL=500,this.Wm=new Point,this.Qm=!1}static mL=root.document!==void 0;static isUsingDOM(){return Diagram.mL}static useDOM(t){Diagram.mL=t?root.document!==void 0:!1}static Ve=new WeakMap;clear(){this.animationManager.stopAnimation(),this.model.clear(),Diagram.pL(),this.yL(!1),this.Ku.clear(),this.wL(),this.jl=null,this.invalidateDocumentBounds(),this.ensureBounds(),this.C()}yL(t){this.animationManager.stopAnimation(!0),this.tS=new GSet().g(),this.iS=new GSet().g();const i=this.skipsUndoManager,e=this.Mi!==null&&this.Mi!==void 0;e&&(this.skipsUndoManager=!0);let s=null;this.is!==null&&(s=this.is.part,s!==null&&this.remove(s));const n=[],o=this.jt.length;if(t){for(let r=0;rt?new Margin(t/2):1.5)),this.ib=this.qm,this.eb=new Adornment(Panel.Link).add(new Shape({isPanelMain:!0,fill:null,stroke:\"dodgerblue\",strokeWidth:3}).theme(\"stroke\",\"selection\").theme(\"strokeWidth\",\"selection\"))}setRTL(t){let i=t===void 0?this.div:t;i===null&&(i=root.document.body);const e=Util.en(\"div\");e.dir=\"rtl\",e.style.cssText=\"font-size: 14px; width: 1px; height: 1px; position: absolute; top: -1000px; overflow: scroll;\",e.textContent=\"A\",i.appendChild(e);let s=\"reverse\";e.scrollLeft>0?s=\"default\":(e.scrollLeft=1,e.scrollLeft===0&&(s=\"negative\")),i.removeChild(e),this.wx=s}setScrollWidth(t){let i=t===void 0?this.div:t;i===null&&(i=root.document.body);let e=0;if(Diagram.isUsingDOM()){let s=Diagram.uS,n=Diagram.fS;s===null&&(Diagram.uS=Util.en(\"p\"),s=Diagram.uS,s.style.width=\"100%\",s.style.height=\"200px\",s.style.boxSizing=\"content-box\",Diagram.fS=Util.en(\"div\"),n=Diagram.fS,n.style.position=\"absolute\",n.style.visibility=\"hidden\",n.style.width=\"200px\",n.style.height=\"150px\",n.style.boxSizing=\"content-box\",n.appendChild(s)),n.style.overflow=\"hidden\",i.appendChild(n);const o=s.offsetWidth;n.style.overflow=\"scroll\";let r=s.offsetWidth;o===r&&(r=n.clientWidth),i.removeChild(n),e=o-r,e===0&&!Util.or&&(e=11)}this.di=e,this.zM=!0}li(t){t in AutoScale?this.autoScale=t:Util.rr(this,t)}toString(t){t===void 0&&(t=0);let i=\"\";this.div&&this.div.id&&(i=this.div.id);let e='Diagram \"'+i+'\"';if(t<=0)return e;const s=this.jt.iterator;for(;s.next();){const n=s.value;e+=`\n `+n.toString(t-1)}return e}static uL(t){Diagram.hb=t}static wm(){return Diagram.hb}static fromDiv(t){let i=t;if(typeof t==\"string\"&&(i=root.document.getElementById(t)),i instanceof HTMLDivElement){const e=Diagram.Ve.get(i);if(e)return e}return null}get div(){return this.Tt}set div(t){if(this.Tt!==t){const i=this.Tt;if(i!==null){if(Diagram.Ve.delete(i),i.goDiagram=void 0,i.go=void 0,i.innerHTML=\"\",this.dt!==null){const s=this.dt.Ft;this.Si(s,\"pointermove\",this.ia,!1),this.Si(s,\"pointerdown\",this.$l,!1),this.Si(s,\"pointerup\",this.ea,!1),this.Si(s,\"pointerout\",this.sa,!1),this.Si(s,\"pointercancel\",this.na,!1),this.dt.dispose()}this.Bc&&(this.Bc.disconnect(),this.Bc=null);const e=this.toolManager;e!==null&&(e.mouseDownTools.each(s=>s.cancelWaitAfter()),e.mouseMoveTools.each(s=>s.cancelWaitAfter()),e.mouseUpTools.each(s=>s.cancelWaitAfter())),e.cancelWaitAfter(),this.currentTool.doCancel(),this.dt=null,this.Si(root,\"resize\",this.lb,!1),this.Si(root,\"wheel\",this.ta,!0),Diagram.wm()===this&&Diagram.uL(null)}else this.$l===null&&(this.Jn=!1);if(this.Tt=null,t!==null){const e=Diagram.Ve.get(t);e&&(e.div=null),this.pS(t),this.wu(),this.themeManager&&this.themeManager.XF()}else this.themeManager&&this.themeManager.KF()}}setupRouters(){this.zc.push(new AvoidsNodesRouter)}pS(t){const i=this;if(!Diagram.isUsingDOM())return;t==null&&Util.o(\"Diagram setup requires an argument DIV.\"),i.Tt!==null&&Util.o(\"Diagram has already completed setup.\"),typeof t==\"string\"?i.Tt=root.document.getElementById(t):t instanceof HTMLDivElement?i.Tt=t:Util.o(\"No DIV or DIV id supplied: \"+t),i.Tt===null&&Util.o(\"Invalid DIV id; could not get element with id: \"+t);const e=Diagram.Ve.get(i.Tt);if(e&&e!==this&&Util.o(\"Invalid div id; div already has a Diagram associated with it.\"),!i.Bc&&root.ResizeObserver){const c=root.ResizeObserver,f=Util.Nk(()=>i.requestUpdate(),250,!1);i.Bc=new c(()=>f()),i.Bc.observe(i.Tt)}root.getComputedStyle(i.Tt,null).position===\"static\"&&(i.Tt.style.position=\"relative\");let s=5;const n=\"rgba(2\"+s+\"5, 255, 255, 0)\";s--,i.Tt.style[\"-webkit-tap-highlight-color\"]=n,i.Tt.innerHTML=\"\",Diagram.Ve.set(i.Tt,i),i.Tt.goDiagram=i,i.Tt.go=root.go;const o=new CanvasSurface(i);o.style!==void 0&&(o.style.position=\"absolute\",o.style.top=\"0px\",o.style.left=\"0px\",root.getComputedStyle(i.Tt,null).getPropertyValue(\"direction\")===\"rtl\"&&(i.Yu=!0),o.style.zIndex=\"2\",o.style.userSelect=\"none\",o.style.MozUserSelect=\"none\",o.style.touchAction=\"none\",o.style.letterSpacing=\"normal !important\",o.style.wordSpacing=\"normal !important\",o.style.lang=\"unknown\"),i.dt=o,i.Qt=o.ai;const r=i.Qt;i.zi=i.computePixelRatio(),i.viewSize.isReal()||(i.kt=i.Tt.clientWidth||1,i.Pt=i.Tt.clientHeight||1),i.xL(i.kt,i.Pt);const l=i;i.Tt.insertBefore(o.Ft,i.Tt.firstChild);const h=new CanvasSurface(null);if(h.width=1,h.height=1,i.DF=h,i.FF=h.ai,Diagram.isUsingDOM()){const c=Util.en(\"div\"),f=Util.en(\"div\");c.style.position=\"absolute\",c.style.overflow=\"auto\",c.style.width=i.kt+\"px\",c.style.height=i.Pt+\"px\",c.style.zIndex=\"1\",f.style.position=\"absolute\",f.style.width=\"1px\",f.style.height=\"1px\",i.Tt.appendChild(c),c.appendChild(f),c.onscroll=Diagram.YF,c.addEventListener(\"pointerdown\",Diagram.GF),c.p=i,c.jF=!0,c.HF=!0,i.nb=c,i.ob=f}i.wu=Util.Nk(()=>{i.kl=null,i.C()},300,!1),i.lb=Util.Nk(()=>{i.NM()},250,!1),i.Yh=c=>(c.preventDefault(),!1),i.ta=c=>{if(!l.isEnabled)return;const f=l.Xc(c,!0);f.bubbles=!0;let u=0,d=0;f.delta=0,c.deltaX!==void 0?(c.deltaX!==0&&(u=c.deltaX>0?1:-1),c.deltaY!==0&&(d=c.deltaY>0?1:-1),f.delta=Math.abs(c.deltaX)>Math.abs(c.deltaY)?-u:-d):c.wheelDeltaX!==void 0?(c.wheelDeltaX!==0&&(u=c.wheelDeltaX>0?-1:1),c.wheelDeltaY!==0&&(d=c.wheelDeltaY>0?-1:1),f.delta=Math.abs(c.wheelDeltaX)>Math.abs(c.wheelDeltaY)?-u:-d):c.wheelDelta!==void 0&&c.wheelDelta!==0&&(f.delta=c.wheelDelta>0?1:-1),l.doMouseWheel(),l.oa(f,c)},i.cL=c=>{if(!l.isEnabled)return;i.Uc=!1,l.Xc(c,!0);const f=l.currentTool;f.cancelWaitAfter(),f.standardMouseOver()},i.$l=c=>{if(!l.isEnabled)return;i.Uc=!0;const f=l.sb;f[c.pointerId]===void 0&&(f[c.pointerId]=c);const u=l._h;let d=!1;if(u[0]!==null&&(u[0].pointerId===c.pointerId||u[0].pointerType!==c.pointerType))u[0]=c;else if(u[1]!==null&&u[1].pointerId===c.pointerId)u[1]=c,d=!0;else if(u[0]===null)u[0]=c;else if(u[1]===null)u[1]=c,d=!0;else{c.preventDefault();return}const m=c.pointerType===\"touch\"||c.pointerType===\"pen\";m&&(l.Ew=!1,l.Qm=!0);const g=l.qF(c,c,d),p=l.cS,y=m?25:10;if(c.timeStamp-l.aSy||Math.abs(p.y-c.screenY)>y)?l.Zm++:l.Zm=1,g.clickCount=l.Zm,l.aS=c.timeStamp,l.cS.setTo(c.screenX,c.screenY),l.doMouseDown(),c.button===1){c.preventDefault();return}l.oa(g,c)},i.ia=c=>{if(!l.isEnabled)return;i.Uc=!0;const f=l._h;if(f[0]!==null&&(f[0].pointerId===c.pointerId||f[0].pointerType!==c.pointerType))f[0]=c;else if(f[1]!==null&&f[1].pointerId===c.pointerId){f[1]=c;return}else if(f[0]===null)f[0]=c;else return;if(f[0].pointerId!==c.pointerId)return;const u=l.WF(c,c,f[1]!==null);l.doMouseMove(),l.oa(u,c)},i.ea=c=>{if(!l.isEnabled)return;i.Uc=!0;const f=c.pointerType===\"touch\"||c.pointerType===\"pen\",u=l.sb;if(f&&l.Ew){delete u[c.pointerId],c.preventDefault();return}const d=l._h;if(d[0]!==null&&(d[0].pointerId===c.pointerId||d[0].pointerType!==c.pointerType))d[0]=null;else if(d[1]!==null&&d[1].pointerId===c.pointerId){d[1]=null;return}else return;const m=l.yS(c,!1,!0,!1,!0,!1);let g=root.document.elementFromPoint(c.clientX,c.clientY)||null;g!==null&&g.shadowRoot!==void 0&&g.shadowRoot!==null&&(g=g.shadowRoot.elementFromPoint(c.clientX,c.clientY)),g!==null&&g.p instanceof Diagram&&g.p!==l&&g.p.o0(c,m),g===null&&(g=c.target),l.o0(c,m),m.clickCount=l.Zm,m.targetDiagram=l.wS(c,g),m.targetObject=null,l.doMouseUp(),l.oa(m,c),f&&(l.Qm=!1)},i.sa=c=>{if(!l.isEnabled)return;i.Uc=!1;const f=l.sb;f[c.pointerId]&&delete f[c.pointerId];const u=l._h;if(u[0]!==null&&u[0].pointerId===c.pointerId&&(u[0]=null),u[1]!==null&&u[1].pointerId===c.pointerId&&(u[1]=null),c.pointerType===\"touch\"||c.pointerType===\"pen\")return;const d=l.currentTool;d.cancelWaitAfter(),d.standardMouseOver()},i.na=c=>{const f=l._h;f[0]!==null&&f[0].pointerId===c.pointerId?(f[0]=null,l.Qm=!1):f[1]!==null&&f[1].pointerId===c.pointerId&&(f[1]=null)};const a=r;if(i.rb=a.U[Util.Cs(\"7eba17a4ca3b1a8346\")][Util.Cs(\"78a118b7\")](a.U,Diagram.Gu,s,s),r.clearContextCache(!0),i.JF(),this.Ic===\"svg\"){const c=this.ql.get(\"svg\");this.Tt.appendChild(c.Ft),this.Qt=c.ai}}addEventListener(t,i,e,s){t.addEventListener(i,e,{capture:s,passive:!1})}zt(t,i,e,s){t.addEventListener(i,e,{capture:s,passive:!1})}removeEventListener(t,i,e,s){t.removeEventListener(i,e,{capture:s})}Si(t,i,e,s){t.removeEventListener(i,e,{capture:s})}JF(){const t=this;let i=this.dt.Ft;i instanceof HTMLCanvasElement||(i=t.div),this.zt(i,\"pointerdown\",t.$l,!1),this.zt(i,\"pointermove\",t.ia,!1),this.zt(i,\"pointerup\",t.ea,!1),this.zt(i,\"pointerout\",t.sa,!1),this.zt(i,\"pointercancel\",t.na,!1),this.zt(i,\"pointerenter\",t.$F,!1),this.zt(i,\"pointerleave\",t.ZF,!1),this.zt(i,\"wheel\",t.ta,!1),this.zt(i,\"keydown\",t.QF,!1),this.zt(i,\"keyup\",t._F,!1),this.zt(i,\"blur\",t.tR,!1),this.zt(i,\"focus\",t.iR,!1),this.zt(i,\"selectstart\",e=>(e.preventDefault(),!1),!1),this.zt(i,\"contextmenu\",e=>(e.preventDefault(),!1),!1),this.zt(root,\"resize\",t.lb,!1)}Bw(){this._m>30&&(this.kl=1)}yP(t){this.kl!==null&&(this.kl=null,t&&this.wu(),this._m=0,this.dS=[0,0,0,0,0],this.t0=0)}computePixelRatio(){return this.kl!==null?this.kl:root.devicePixelRatio||1}get avgSpf(){return this._m}doMouseDown(){this.currentTool.doMouseDown()}doMouseMove(){this.currentTool.doMouseMove()}doMouseUp(){this.currentTool.doMouseUp()}doMouseWheel(){this.currentTool.doMouseWheel()}doKeyDown(){this.currentTool.doKeyDown()}doKeyUp(){this.currentTool.doKeyUp()}doFocus(){this.focus()}focus(){if(this.dt)if(this.scrollsPageOnFocus)this.dt.focus();else{const t=root.scrollX,i=root.scrollY;this.dt.focus(),root.scrollTo(t,i)}}iR(t){const i=Diagram.Ve.get(this);i&&i.v(\"GainedFocus\")}tR(t){const i=Diagram.Ve.get(this);i&&i.v(\"LostFocus\")}NM(){if(this.dt===null)return;const i=this.Tt;if(i===null||i.clientWidth===0||i.clientHeight===0)return;this.zM||this.setScrollWidth();const e=this.Wn?this.di:0,s=this.gn?this.di:0,n=this.zi;if(this.zi=this.computePixelRatio(),this.zi!==n&&(this.vu=!0,this.requestUpdate()),i.clientWidth!==this.kt+e||i.clientHeight!==this.Pt+s){this.ra(),this.Ue=!0;const o=this.layout;o!==null&&o.isViewportSized&&this.autoScale===1&&(this.Oc=!0,o.invalidateLayout()),this.ps||this.requestUpdate()}}gL(){let t=0,i=new Layer;i.name=\"Grid\",i.allowSelect=!1,i.pickable=!1,i.isTemporary=!0,i.isInDocumentBounds=!1,this.Gr(i,t++),i=new Layer,i.name=\"ViewportBackground\",i.isViewportAligned=!0,i.isTemporary=!0,i.isInDocumentBounds=!1,this.Gr(i,t++),i=new Layer,i.name=\"Background\",this.Gr(i,t++),i=new Layer,i.name=\"\",this.Gr(i,t++),i=new Layer,i.name=\"Foreground\",this.Gr(i,t++),i=new Layer,i.name=\"ViewportForeground\",i.isViewportAligned=!0,i.isTemporary=!0,i.isInDocumentBounds=!1,this.Gr(i,t++),i=new Layer,i.name=\"Adornment\",i.isTemporary=!0,i.isInDocumentBounds=!1,this.Gr(i,t++),i=new Layer,i.name=\"Tool\",i.isTemporary=!0,i.isInDocumentBounds=!0,this.Gr(i,t++)}bL(){const t=new Panel(Panel.Grid,{name:\"GRID\"}).add(new Shape(\"LineH\",{stroke:\"lightgray\",strokeWidth:.5,interval:1}).theme(\"stroke\",\"gridMinor\"),new Shape(\"LineV\",{stroke:\"lightgray\",strokeWidth:.5,interval:1}).theme(\"stroke\",\"gridMinor\"),new Shape(\"LineH\",{stroke:\"gray\",strokeWidth:.5,interval:5}).theme(\"stroke\",\"gridMajor\"),new Shape(\"LineV\",{stroke:\"gray\",strokeWidth:.5,interval:5}).theme(\"stroke\",\"gridMajor\"),new Shape(\"LineH\",{stroke:\"gray\",strokeWidth:1,interval:10}).theme(\"stroke\",\"gridMajor\"),new Shape(\"LineV\",{stroke:\"gray\",strokeWidth:1,interval:10}).theme(\"stroke\",\"gridMajor\")),i=new Part({layerName:\"Grid\",zOrder:0,isInDocumentBounds:!1,isAnimated:!1,pickable:!1,locationObjectName:\"GRID\"}).add(t);return this.add(i),this.partManager.parts.delete(i),t.visible=!1,t}static YF(){const t=Diagram.Ve.get(this.parentElement||this);if(t){if(t.Jx){t.Jx=!1;return}if(!t.isEnabled){t.kL();return}t.diagramScroll(this)}}static GF(t){if(!this.p.isEnabled){this.p.updateScroll();return}this.p.$x=t.target.scrollTop,this.p.Zx=t.target.scrollLeft}diagramScroll(t){if(this.dt===null)return;const i=this.nb,e=this.ob;this.Gm=!0;let s=this.documentBounds,n=this.viewportBounds;const o=this.Fc;let r=s.x-o.left,l=s.y-o.top;const h=s.width+o.left+o.right,a=s.height+o.top+o.bottom;let c=s.right+o.right,f=s.bottom+o.bottom,u=n.x,d=n.y;const m=n.width,g=n.height;let p=n.right,y=n.bottom;const x=this.scale;let k,b=t.scrollLeft;if(this.Yu)switch(this.wx){case\"negative\":b=b+t.scrollWidth-t.clientWidth;break;case\"reverse\":b=t.scrollWidth-b-t.clientWidth;break}const P=b;if(mp)){const M=i.scrollWidth-this.kt;this.position=k.e(-M+P-this.kt/x+c,this.position.y)}if(t.HF&&this.allowVerticalScroll&&(ly)){const M=i.scrollHeight-this.Pt;this.position=k.e(this.position.x,-M+t.scrollTop-this.Pt/x+f)}Point.s(k),this.Ql(),this.Gm=!1,this.Bu=!1,s=this.documentBounds,n=this.viewportBounds,c=s.right,p=n.right,f=s.bottom,y=n.bottom,r=s.x,u=n.x,l=s.y,d=n.y,m>=h&&r>=u&&c<=p&&(e.style.width=\"1px\"),g>=a&&l>=d&&f<=y&&(e.style.height=\"1px\")}computeBounds(t){return t===void 0&&(t=new Rect),this.Ci(),this.PL(t)}PL(t){if(this.fixedBounds.isReal())return t.a(this.fixedBounds),t.addMargin(this.Zt),t;let i=!0;const e=this.jt.r,s=e.length;for(let n=0;ni&&(a=i),athis.maxScale&&(a=this.maxScale),a):t===3?(a=0,h>l?a=(r-this.di)/n:a=(o-this.di)/s,a>i&&(a=i),athis.maxScale&&(a=this.maxScale),a):this.scale}zoomToFit(){const t=this.jh;this.jh=1,this.scale=this.ju(2),t!==1&&(this.Us(!1),this.xS(this.documentBounds,this.kt/this.et,this.Pt/this.et,this.Rc,!1)),this.jh=t}zoomToRect(t,i){i===void 0&&(i=2);const e=t.width,s=t.height;if(e===0||s===0||isNaN(e)&&isNaN(s))return;let n=1;if(i===2||i===3)if(isNaN(e))n=this.viewportBounds.height*this.scale/s;else if(isNaN(s))n=this.viewportBounds.width*this.scale/e;else{const o=this.kt,r=this.Pt;i===3?r/s>o/e?n=(r-(this.gn?this.di:0))/s:n=(o-(this.Wn?this.di:0))/e:n=Math.min(r/s,o/e)}this.scale=n,this.position=new Point(t.x,t.y)}get eR(){return this.qt}set eR(t){this.qt=t}alignDocument(t,i){this.ensureBounds();const e=this.documentBounds,s=this.viewportBounds;this.position=new Point(e.x+(t.x*e.width+t.offsetX)-(i.x*s.width-i.offsetX),e.y+(t.y*e.height+t.offsetY)-(i.y*s.height-i.offsetY))}focusObject(t){if(t instanceof GraphObject){this.i0=t;const i=Point.l();this.e0=this.transformDocToView(t.getDocumentPoint(Spot.TopLeft,i)),Point.s(i)}else this.i0=null,this.e0=Point.Ak}xS(t,i,e,s,n){const o=Point.X(this.at.x,this.at.y);let r=o.x,l=o.y;if(this.i0!==null){let h=Point.l();h=this.i0.getDocumentPoint(Spot.TopLeft,h),r=h.x-this.e0.x/this.scale,l=h.y-this.e0.y/this.scale,s=Spot.None,Point.s(h)}if(n||this.scrollMode===1){s.isSpot()&&(i>t.width&&(r=t.x+(s.x*t.width+s.offsetX)-(s.x*i-s.offsetX)),e>t.height&&(l=t.y+(s.y*t.height+s.offsetY)-(s.y*e-s.offsetY)));const h=this.Fc,a=i-t.width;if(it.left?r=t.left:rt.top?l=t.top:ls.part,s=>s.canSelect());if(e instanceof Part)return e}else{const e=this.PP(t,s=>s.part);if(e instanceof Part)return e}return null}findObjectAt(t,i,e){i===void 0&&(i=null),e===void 0&&(e=null),this.Ci();const s=this.jt.iteratorBackwards;for(;s.next();){const n=s.value;if(!n.visible)continue;const o=n.findObjectAt(t,i,e);if(o!==null)return o}return null}PP(t,i,e){i===void 0&&(i=null),e===void 0&&(e=null),this.Ci();const s=this.jt.iteratorBackwards;for(;s.next();){const n=s.value;if(!n.visible||n.isTemporary)continue;const o=n.findObjectAt(t,i,e);if(o!==null)return o}return null}findPartsAt(t,i,e){return i===void 0&&(i=!0),this.nR(t,s=>s.part,i?s=>s instanceof Part&&s.canSelect():null,e)}nR(t,i,e,s){i===void 0&&(i=null),e===void 0&&(e=null),!(s instanceof List)&&!(s instanceof GSet)&&(s=new GSet),this.Ci();const n=this.jt.iteratorBackwards;for(;n.next();){const o=n.value;!o.visible||o.isTemporary||o.findObjectsAt(t,i,e,s)}return s}findObjectsAt(t,i,e,s){i===void 0&&(i=null),e===void 0&&(e=null),!(s instanceof List)&&!(s instanceof GSet)&&(s=new GSet),this.Ci();const n=this.jt.iteratorBackwards;for(;n.next();){const o=n.value;o.visible&&o.findObjectsAt(t,i,e,s)}return s}findPartsIn(t,i,e,s){return i===void 0&&(i=!1),e===void 0&&(e=!0),this.oR(t,null,n=>n instanceof Part&&(!e||n.canSelect()),i,s)}findObjectsIn(t,i,e,s,n){i===void 0&&(i=null),e===void 0&&(e=null),s===void 0&&(s=!1),!(n instanceof List)&&!(n instanceof GSet)&&(n=new GSet),this.Ci();const o=this.jt.iteratorBackwards;for(;o.next();){const r=o.value;r.visible&&r.findObjectsIn(t,i,e,s,n)}return n}NP(t,i,e,s,n,o){const r=new GSet;this.Ci();const l=this.jt.iteratorBackwards;for(;l.next();){const h=l.value;h.visible&&h.NP(t,i,e,s,r,n,o)}return r}oR(t,i,e,s,n){i===void 0&&(i=null),e===void 0&&(e=null),s===void 0&&(s=!1),!(n instanceof List)&&!(n instanceof GSet)&&(n=new GSet),this.Ci();const o=this.jt.iteratorBackwards;for(;o.next();){const r=o.value;!r.visible||r.isTemporary||r.findObjectsIn(t,i,e,s,n)}return n}findPartsNear(t,i,e,s,n){return e===void 0&&(e=!0),s===void 0&&(s=!0),this.rR(t,i,null,o=>o instanceof Part&&(!s||o.canSelect()),e,n)}findObjectsNear(t,i,e,s,n,o){e===void 0&&(e=null),s===void 0&&(s=null),n===void 0&&(n=!0),n!==!1&&n!==!0&&((n instanceof List||n instanceof GSet)&&(o=n),n=!0),!(o instanceof List)&&!(o instanceof GSet)&&(o=new GSet),this.Ci();const r=this.jt.iteratorBackwards;for(;r.next();){const l=r.value;l.visible&&l.findObjectsNear(t,i,e,s,n,o)}return o}rR(t,i,e,s,n,o){e===void 0&&(e=null),s===void 0&&(s=null),n===void 0&&(n=!0),n!==!1&&n!==!0&&((n instanceof List||n instanceof GSet)&&(o=n),n=!0),!(o instanceof List)&&!(o instanceof GSet)&&(o=new GSet),this.Ci();const r=this.jt.iteratorBackwards;for(;r.next();){const l=r.value;!l.visible||l.isTemporary||l.findObjectsNear(t,i,e,s,n,o)}return o}acceptEvent(t){return this.Xc(t,t instanceof MouseEvent)}Xc(t,i){const e=this.Xr;this.Xr=this.$h,this.$h=e,e.diagram=this,e.event=t,i?this.o0(t,e):(e.viewPoint=this.Xr.viewPoint,e.documentPoint=this.Xr.documentPoint);let s=0;const n=t;return n.ctrlKey&&(s+=1),n.altKey&&(s+=2),n.shiftKey&&(s+=4),n.metaKey&&(s+=8),e.modifiers=s,e.button=n.button,n.buttons!==void 0&&(e.buttons=n.buttons),Util.or&&n.button===0&&n.ctrlKey&&(e.button=2),e.down=!1,e.up=!1,e.clickCount=1,e.delta=0,e.handled=!1,e.bubbles=!1,e.timestamp=t.timeStamp,e.isMultiTouch=!1,e.targetDiagram=this.wS(t,t.target),e.targetObject=null,e}wS(t,i){if(i===null)return null;const e=Diagram.Ve.get(i);if(e)return e;let s=t.path;if(!s&&typeof t.composedPath==\"function\"&&(s=t.composedPath()),s&&s[0]){const n=Diagram.Ve.get(s[0]);if(n)return n}return null}qF(t,i,e){const s=this.yS(t,!0,!1,!1,!0,e);return this.o0(i,s),s.targetDiagram=this.wS(t,t.target),s.targetObject=null,e||s.clone(this.Jm),s}WF(t,i,e){const s=this.yS(t,!1,!1,!1,!1,e);let n=root.document.elementFromPoint(i.clientX,i.clientY)||null;n!==null&&n.shadowRoot!==void 0&&n.shadowRoot!==null&&(n=n.shadowRoot.elementFromPoint(i.clientX,i.clientY));let o=this,r=t;if(n){const l=Diagram.Ve.get(n);l&&(r=i,o=l)}return s.targetDiagram=o,this.o0(r,s),s.targetObject=null,s}yS(t,i,e,s,n,o){const r=this.Xr;this.Xr=this.$h,this.$h=r,r.diagram=this,r.clickCount=1,r.delta=0;let l=0;return t.ctrlKey&&(l+=1),t.altKey&&(l+=2),t.shiftKey&&(l+=4),t.metaKey&&(l+=8),r.modifiers=l,r.event=t,r.timestamp=t.timeStamp,r.button=e?this.firstInput.button:t.button,r.buttons=t.buttons,Util.or&&t.button===0&&t.ctrlKey&&(r.button=2),r.down=i,r.up=e,r.handled=s,r.bubbles=n,r.isMultiTouch=o,r}oa(t,i){return t.bubbles?!0:(i.stopPropagation!==void 0&&i.stopPropagation(),i.cancelable!==!1&&i.preventDefault(),i.cancelBubble=!0,!1)}QF(t){const i=Diagram.Ve.get(this);if(!i||!i.isEnabled)return!1;const e=i.Xc(t,!1);return e.key=t.key,e.code=t.code,e.down=!0,i.doKeyDown(),i.oa(e,t)}_F(t){const i=Diagram.Ve.get(this);if(!i||!i.isEnabled)return!1;const e=i.Xc(t,!1);return e.key=t.key,e.code=t.code,e.up=!0,i.doKeyUp(),i.oa(e,t)}$F(t){const i=Diagram.Ve.get(this);if(!i||!i.isEnabled)return!1;const e=i.Xc(t,!0);return i.mouseEnter!==null&&i.mouseEnter(e),i.currentTool.standardMouseOver(),i.oa(e,t)}ZF(t){const i=Diagram.Ve.get(this);if(!i||!i.isEnabled)return!1;const e=i.Xc(t,!0);return i.mouseLeave!==null&&i.mouseLeave(e),i.oa(e,t)}getMouse(t){const i=this.dt;if(i===null)return new Point(0,0);const e=i.getBoundingClientRect(),s=(t.clientX-e.left)*(this.kt/e.width),n=(t.clientY-e.top)*(this.Pt/e.height);return new Point(s,n).Ie(this.D)}o0(t,i){const e=this.dt;let s=0,n=0;if(e!==null){const r=e.getBoundingClientRect();s=(t.clientX-r.left)*(this.kt/r.width),n=(t.clientY-r.top)*(this.Pt/r.height)}i.viewPoint.e(s,n);const o=Point.X(s,n);this.D.ts(o),i.documentPoint.a(o),Point.s(o)}PC(t,i,e){let s;if(this._h[0]!==null)s=this._h[i];else return;const n=this.dt;if(n!==null){const o=n.getBoundingClientRect();e.e((s.clientX-o.left)*(this.kt/o.width),(s.clientY-o.top)*(this.Pt/o.height))}}invalidateDocumentBounds(){this.Zh||(this.Zh=!0,this.requestUpdate(!1))}lR(){this.ps||this.Ci(),this.ensureBounds()}redraw(){this.qt||this.ps||(this.C(),this.maybeUpdate())}isUpdateRequested(){return this.Pr}delayInitialization(t){t===void 0&&(t=null);const i=this.animationManager,e=i.isEnabled;i.stopAnimation(),i.isEnabled=!1,this.pr(),this.Jn=!1,this.ex=new Point(NaN,NaN),i.isEnabled=e,this.ps=!0;const s=this;t!==null&&Util.Oh(()=>{s.ps=!1,i.Dl(\"Model\"),t(s)},1)}requestUpdate(t){if(t===void 0&&(t=!1),this.Pr===!0||this.qt||t===!1&&this.ps)return;this.Pr=!0;const i=this;root.requestAnimationFrame(()=>{i.Pr&&i.maybeUpdate()})}maybeUpdate(){this.Ou&&!this.Pr||(this.Ou&&(this.Ou=!1),this.pr())}bS(t,i){!this.Bu||this.qt||this.animationManager.defaultAnimation.isAnimating||this.kL()||(t&&this.Ci(),i&&this.Us(!1))}pr(t){if(this.ps||(this.Pr=!1,this.Tt===null&&!this.Uu.isReal()))return;this.ps=!0;const i=this.animationManager,e=this.Ku;if(!i.isAnimating&&e.length!==0){const c=e.r,f=c.length;for(let u=0;u0&&(s.each(c=>c.kS()),s.clear());let n=!1,o=!1;i.defaultAnimation.isAnimating&&(o=!0,n=this.skipsUndoManager,this.skipsUndoManager=!0),i.wi||this.NM(),t||this.bS(!1,!0);const r=!this.undoManager.isUndoingRedoing&&(this.xl||this.zc.count!==0&&this.Lr.size!==0),l=!this.Jn||this.Kr;this.Ci(!0);let h=!1;(l||r)&&(this.Jn?this.PS(!this.Oc,r):(this.startTransaction(\"Initial Layout\"),i.isEnabled===!1&&i.stopAnimation(),this.PS(!1,r)),h=l),this.Oc=!1,this.xl=!1,this.Ci(),this.is!==null&&(this.is.visible&&!this.Vu&&(this._l(),this.Vu=!0),!this.is.visible&&this.Vu&&(this.Vu=!1)),this.Bx||this.lR(),t||this.bS(!0,!1);let a=!1;if(h){const c=Rect.l();c.a(this.viewportBounds),this.Jn||(this.Jn=!0,a=!0,this.skipsUndoManager||(this.undoManager.vw=!0),this.undoManager.Ow=!0,this.hR()),this.aR(),this.Ci(!1),t||this.bS(!0,!0),Rect.s(c)}else if(i.Mc&&i.ix){if(this.Cr!==1)this.scale=this.ju(this.Cr);else if(this.Gl!==1)this.scale=this.ju(this.Gl);else{const c=this.initialScale;isFinite(c)&&c>0&&(this.scale=c)}this.Us(!0)}h&&a&&this.commitTransaction(\"Initial Layout\"),t||this.Ui(this.Qt),o&&(this.skipsUndoManager=n),this.ps=!1}get Bh(){return this.Jn}hR(){if(this.Cr!==1)this.scale=this.ju(this.Cr);else if(this.Gl!==1)this.scale=this.ju(this.Gl);else{const i=this.initialScale;isFinite(i)&&i>0&&(this.scale=i)}this.Us(!0);const t=this.jt.r;this.Bs(t,t.length,this,this.viewportBounds),this.v(\"InitialLayoutCompleted\"),this.ex.a(this.at),this._l()}aR(){this.v(\"LayoutCompleted\")}r0(t){this.Hn.add(t)}addInvalidRoute(t){this.Do?this.Wh.add(t):this.Lr.add(t)}Ci(t){if(this.Hn.size!==0&&!(!this.ps&&this.animationManager.isTicking)){if(this.ps||(this.xl=!0),t){this.ML(this.Hn);return}for(let i=0;i<23&&this.Hn.size!==0;i++){const e=new Set(this.Hn);this.Hn.clear(),this.kS(e,this.Hn)}this.nodes.each(i=>{i instanceof Group&&i.SL(!1)})}}ML(t,i){for(const e of t)!e.Pe()||e instanceof Group||(e.jr()?(e.ut(1/0,1/0),e.Xt()):i&&i.add(e));for(const e of t)if(e instanceof Group){if(!e.isVisible())continue;this.yb(e)}}kS(t,i){this.ML(t,i);for(const e of t){if(!(e instanceof Link))continue;const s=e;s.isVisible()&&(s.jr()?(s.ut(1/0,1/0),s.Xt()):i.add(s))}for(const e of t)e instanceof Adornment&&e.isVisible()&&(e.jr()?(e.ut(1/0,1/0),e.Xt()):i.add(e))}l0(t){const i=t instanceof Diagram,e=i?t.links:t.memberParts,s=this.Hn;if(i)this.Ci(!0);else{for(;e.next();){const n=e.value;s.has(n)&&(!n.Pe()||n instanceof Group||n.jr()&&(n.ut(1/0,1/0),n.Xt()))}for(e.reset();e.next();){const n=e.value;if(s.has(n)&&n instanceof Group){if(!n.isVisible())continue;this.yb(n)}}e.reset()}for(;e.next();){const n=e.value;n instanceof Link&&s.has(n)&&n.isVisible()&&n.jr()&&(n.ut(1/0,1/0),n.Xt())}}yb(t){const i=Util.nt(),e=Util.nt(),s=t.memberParts;for(;s.next();){const o=s.value;o.isVisible()&&(o instanceof Group?(o.vo()||o.es()||o.th())&&this.yb(o):o instanceof Link?o.fromNode===t||o.toNode===t?e.push(o):i.push(o):(o.ut(1/0,1/0),o.Xt()))}let n=i.length;for(let o=0;ob.Fu())}else for(let x=0;x0){const a=n.substring(0,h);e?o=t.findObject(a):(o=t[a],o==null&&(o=t.toolManager[a])),Util.wt(o)?r=n.substring(h+1):Util.o(\"Unable to find object named: \"+a+\" in \"+t.toString()+\" when trying to set property: \"+n)}}if(r[0]!==\"_\"&&!Util.fw(o,r))if(s&&r===\"ModelChanged\"){t.addModelChangedListener(i[r]);continue}else if(s&&r===\"Changed\"){t.addChangedListener(i[r]);continue}else if(s&&Util.fw(t.toolManager,r))o=t.toolManager;else if(s&&t.NL(r)){t.addDiagramListener(r,i[r]);continue}else if(t instanceof Model&&r===\"Changed\"){t.addChangedListener(i[r]);continue}else Util.o('Trying to set undefined property \"'+r+'\" on object: '+o.toString());const l=i[n];o[r]=l,r[0]===\"_\"&&o instanceof GraphObject&&o.addCopyProperty(r)}}eL(){if(this.Jl.count!==0&&!(this.undoManager.transactionLevel>1)){for(;this.Jl.count>0;){const t=this.Jl;this.Jl=new GMap;const i=t.iterator;for(;i.next();){const e=i.key;e.invalidateOtherJumpOvers(i.value),e.ee()}}this.C()}}C(t){if(t===void 0)this.Ue=!0,this.requestUpdate();else{const i=this.viewportBounds;t.isReal()&&i.intersectsRect(t)&&(this.Ue=!0,this.requestUpdate())}this.v(\"InvalidateDraw\")}invalidateViewport(t,i){if(this.Ue===!0)return;if(this.Ue=!0,this.Ic===\"svg\"){this.maybeUpdate();return}this.getRenderingHint(\"temporaryPixelRatio\")===!0?(this.Bw(),this.maybeUpdate(),this.yP(!0)):this.maybeUpdate()}ra(){this.Bu=!0}Ql(){this.Ec=!0}h0(){this.vu!==!1&&(this.vu=!1,this.xL(this.kt,this.Pt))}xL(t,i){this.Zl();const e=this.zi,s=t*e,n=i*e;this.dt.resize(s,n,t,i)&&(this.Ue=!0,this.Qt.clearContextCache(!0))}kL(){const t=this.dt;if(t===null||this.Uu.isReal())return!0;const i=this.kt,e=this.Pt,s=this.Tt;let n=!1,o=this.Wn?this.di:0,r=this.gn?this.di:0,l=s.clientWidth||i+o,h=s.clientHeight||e+r;const a=this.viewportBounds,c=a.x,f=a.y,u=a.width,d=a.height;if((l!==i+o||h!==e+r)&&(this.Wn=!1,this.gn=!1,o=0,r=0,this.kt=l,this.Pt=h,this.vu=!0,n=!0,this.Zl()),!this.Jn||!this.viewportBounds.isReal())return!0;const m=this.nb,g=this.ob;if(this.Bu=!1,!n&&!this.Wn&&!this.gn&&!this.Iu&&!this.Eu)return!0;const p=this.documentBounds;let y=0,x=0,k=0,b=0;const P=a.width,M=a.height,L=this.Fc;this.contentAlignment.isSpot()?(p.width>P&&(y=L.left,x=L.right),p.height>M&&(k=L.top,b=L.bottom)):(y=L.left,x=L.right,k=L.top,b=L.bottom);const C=p.width+y+x,S=p.height+k+b,N=this.scale,T=N;let A=C>l/N,D=S>h/N;if(!n&&!this.Wn&&!this.gn&&!A&&!D)return!0;const F=p.x-y,R=a.x,v=p.right+x;let O=a.right+o;const B=p.y-k,X=a.y,E=p.bottom+b;let V=a.bottom+r,U=\"1px\",Y=\"1px\";if(this.scrollMode===1&&(A||D)){if(A&&this.hasHorizontalScrollbar&&this.allowHorizontalScroll){let z=1;F+1O+1&&(z=Math.max((v-O)*N+this.kt,z)),P+o+1V+1&&(z=Math.max((E-V)*N+this.Pt,z)),M+r+1O+1&&(W=Math.max((v-O)*N+this.kt,W)),P+1V+1&&(W=Math.max((E-V)*N+z,W)),M+1O+1&&(J=this.position.x*N)),this.Yu)switch(this.wx){case\"negative\":J=-(m.scrollWidth-J-m.clientWidth);break;case\"reverse\":J=m.scrollWidth-J-m.clientWidth;break}if(m.scrollLeft=J,this.hasVerticalScrollbar&&this.allowVerticalScroll&&(M+1V+1&&(m.scrollTop=this.position.y*N)),l=this.kt,h=this.Pt,m.style.width=l+(this.Wn?this.di:0)+\"px\",m.style.height=h+(this.gn?this.di:0)+\"px\",i!==l||e!==h||this.animationManager.wi){const z=Rect.X(c,f,u,d);return this.onViewportBoundsChanged(z,this.viewportBounds,T,n),Rect.s(z),!1}return!0}add(t){const i=t.diagram;if(i===this)return;i!==null&&Util.o(\"Cannot add part \"+t.toString()+\" to \"+this.toString()+\". It is already a part of \"+i.toString());let e=this.findLayer(t.layerName);if(e===null&&(e=this.findLayer(\"\")),e===null&&Util.o('Cannot add a Part when unable find a Layer named \"'+t.layerName+'\" and there is no default Layer'),t.layer===e)return;const s=e.qh(99999999,t,t.diagram===this);s>=0&&this.raiseChangedEvent(3,\"parts\",e,null,t,null,s),e.isTemporary||this.invalidateDocumentBounds(),t.invalidateLayout(1);const n=t.layerChanged;n!==null&&n(t,null,e)}qh(t){this.partManager.qh(t);const i=this;t.Hr(s=>i.CL(s)),t.data||t.Oo(),t.hasPlaceholder()&&t.c(),t.data!==null&&t.Hr(s=>i.partManager.SS(s,null)),(t.es()===!0||t.th()===!0)&&this.r0(t),t.LL(!0,this),t.AL()?(t.actualBounds.isReal()&&this.C(t.Hh(t.actualBounds)),this.invalidateDocumentBounds()):t.isVisible()&&t.actualBounds.isReal()&&this.C(t.Hh(t.actualBounds)),this.requestUpdate()}te(t){t.clearAdornments(),this.partManager.te(t);const i=this;t.data!==null&&t.Hr(s=>i.partManager.NS(s,i)),this.Hn.delete(t),t instanceof Link&&this.Lr.delete(t),t.AL()?(t.actualBounds.isReal()&&this.C(t.Hh(t.actualBounds)),this.invalidateDocumentBounds()):t.isVisible()&&t.actualBounds.isReal()&&this.C(t.Hh(t.actualBounds)),this.requestUpdate()}remove(t){this.CS(t,!0)}CS(t,i){const e=t.layer;if(e===null||e.diagram!==this)return;t.isSelected=!1,t.isHighlighted=!1,t.invalidateLayout(2),i&&t.Kc();const s=e.te(-1,t,!1);s>=0&&this.raiseChangedEvent(4,\"parts\",e,t,null,s,null);const n=t.layerChanged;n!==null&&n(t,e,null)}removeParts(t,i){if(i===void 0&&(i=!1),Array.isArray(t)){const e=t.length;for(let s=0;s=0&&i.elt(e).isTemporary;)e--;return i.insertAt(e+1,t),this.Mi!==null&&this.raiseChangedEvent(3,\"layers\",this,null,t,null,e+1),this.C(),this.invalidateDocumentBounds(),this}addLayerBefore(t,i){this.LS(t,i),t.Ao(this);const e=this.jt,s=e.indexOf(t);s>=0&&(e.delete(t),this.Mi!==null&&this.raiseChangedEvent(4,\"layers\",this,t,null,s,null));const n=e.count;let o;for(o=0;o=0&&(e.delete(t),this.Mi!==null&&this.raiseChangedEvent(4,\"layers\",this,t,null,s,null));const n=e.count;let o;for(o=0;othis.maxScale&&(i=this.maxScale);const c=Point.X(this.at.x+l/t-l/i,this.at.y+h/t-h/i);this.position=c,Point.s(c),this.et=i,this.Zl(),this.qt=!1,this.onViewportBoundsChanged(n,this.viewportBounds,t,!1),this.Us(!1),e.tL(t,this.et),this.C()}sR(){const t=this.jt.r;for(let i=0;i{r.isAvoiding&&r.actualBounds.intersectsRect(i)&&r.invalidateRoute()})}_l(t){const i=this.is;if(i===null||!i.visible||i.layer===null)return;const e=t!==void 0?t:this._x;if(!e.isReal())return;const s=e.width,n=e.height;if(i.scale=1,i.angle=0,i.layer.isViewportAligned)i.width=s*this.scale,i.height=n*this.scale,i.part.alignment=Spot.TopLeft;else{i.xi===null&&(i.xi=new GridPanelSettings);const o=i.xi.Yc;if(!o.isReal())return;i.width=s+o.width*2,i.height=n+o.height*2;const r=Point.l();Geo.Bg(e.x,e.y,0,0,o.width,o.height,r),r.offset(-o.width,-o.height),i.part.location=r,Point.s(r)}}clearSelection(t){t===void 0&&(t=!1);const i=this.selection;if(i.count===0)return;t||this.v(\"ChangingSelection\",i);const e=i.toArray(),s=e.length;for(let n=0;n1)&&(this.v(\"ChangingSelection\",this.selection),this.clearSelection(!0),t.isSelected=!0,this.v(\"ChangedSelection\",this.selection))}selectCollection(t){if(this.v(\"ChangingSelection\",this.selection),this.clearSelection(!0),Array.isArray(t)){const i=t.length;for(let e=0;e0){const i=t.toArray(),e=i.length;for(let s=0;s1)&&(this.clearHighlighteds(),t.isHighlighted=!0)}highlightCollection(t){const i=new GSet().addAll(t),s=this.highlighteds.copy().removeAll(i).iterator;for(;s.next();){const o=s.value;o.isHighlighted=!1}const n=i.iterator;for(;n.next();){const o=n.value;o instanceof Part||Util.o(\"Diagram.highlightCollection given something that is not a Part: \"+o),o.isHighlighted=!0}}scroll(t,i,e){e===void 0&&(e=1);const s=i===\"up\"||i===\"down\";let n=0;const o=Point.l();if(t===\"pixel\")n=e;else if(t===\"line\")n=e*(s?this.scrollVerticalLineChange:this.scrollHorizontalLineChange);else if(t===\"page\"){let l=s?this.viewportBounds.height:this.viewportBounds.width;if(l*=this.scale,l!==0){const h=Math.max(l-(s?this.scrollVerticalLineChange:this.scrollHorizontalLineChange),0);n=e*h}}else if(t===\"document\"){const l=this.documentBounds,h=this.viewportBounds;i===\"up\"?this.position=o.e(h.x,l.y):i===\"left\"?this.position=o.e(l.x,h.y):i===\"down\"?this.position=o.e(h.x,l.bottom-h.height):i===\"right\"&&(this.position=o.e(l.right-h.width,h.y)),Point.s(o);return}else Util.o(\"scrolling unit must be 'pixel', 'line', 'page', or 'document', not: \"+t);n/=this.scale;const r=this.position;i===\"up\"?this.position=o.e(r.x,r.y-n):i===\"down\"?this.position=o.e(r.x,r.y+n):i===\"left\"?this.position=o.e(r.x-n,r.y):i===\"right\"?this.position=o.e(r.x+n,r.y):Util.o(\"scrolling direction must be 'up', 'down', 'left', or 'right', not: \"+i),Point.s(o)}scrollToRect(t){const i=this.viewportBounds;if(i.containsRect(t))return;const e=t.center;e.x-=i.width/2,e.y-=i.height/2,this.position=e}centerRect(t){const i=this.viewportBounds,e=t.center;e.x-=i.width/2,e.y-=i.height/2,this.position=e}transformDocToView(t){return t.copy().D(this.D)}transformViewToDoc(t){return t.copy().Ie(this.D)}TF(t){return t.Ie(this.D)}static None=1;static Uniform=2;static UniformToFill=3;static CycleAll=1;static CycleNotDirected=2;static CycleNotDirectedFast=3;static CycleNotUndirected=4;static CycleDestinationTree=5;static CycleSourceTree=6;static DocumentScroll=1;static InfiniteScroll=2;static TreeParentCollapsed=1;static AllParentsCollapsed=2;static AnyParentsCollapsed=3;get opacity(){return this.Jt}set opacity(t){const i=this.Jt;i!==t&&(Util.i(t,\"number\",Diagram,\"opacity\"),(t<0||t>1)&&Util._(t,\"0 <= value <= 1\",Diagram,\"opacity\"),this.Jt=t,this.t(\"opacity\",i,t),this.C())}get validCycle(){return this.Rx}set validCycle(t){const i=this.Rx;i!==t&&(this.Rx=t,this.t(\"validCycle\",i,t))}get layers(){return this.jt.iterator}get isModelReadOnly(){const t=this.Mi;return t===null?!1:t.isReadOnly}set isModelReadOnly(t){const i=this.Mi;i!==null&&(i.isReadOnly=t)}get isReadOnly(){return this.Ro}set isReadOnly(t){const i=this.Ro;i!==t&&(Util.i(t,\"boolean\",Diagram,\"isReadOnly\"),this.Ro=t,this.t(\"isReadOnly\",i,t))}get isEnabled(){return this.Ii}set isEnabled(t){const i=this.Ii;i!==t&&(Util.i(t,\"boolean\",Diagram,\"isEnabled\"),this.Ii=t,this.t(\"isEnabled\",i,t))}get allowClipboard(){return this.Vx}set allowClipboard(t){const i=this.Vx;i!==t&&(Util.i(t,\"boolean\",Diagram,\"allowClipboard\"),this.Vx=t,this.t(\"allowClipboard\",i,t))}get allowCopy(){return this.Fl}set allowCopy(t){const i=this.Fl;i!==t&&(Util.i(t,\"boolean\",Diagram,\"allowCopy\"),this.Fl=t,this.t(\"allowCopy\",i,t))}get allowDelete(){return this.Rl}set allowDelete(t){const i=this.Rl;i!==t&&(Util.i(t,\"boolean\",Diagram,\"allowDelete\"),this.Rl=t,this.t(\"allowDelete\",i,t))}get allowDragOut(){return this.zx}set allowDragOut(t){const i=this.zx;i!==t&&(Util.i(t,\"boolean\",Diagram,\"allowDragOut\"),this.zx=t,this.t(\"allowDragOut\",i,t))}get allowDrop(){return this.Xx}set allowDrop(t){const i=this.Xx;i!==t&&(Util.i(t,\"boolean\",Diagram,\"allowDrop\"),this.Xx=t,this.t(\"allowDrop\",i,t))}get allowTextEdit(){return this.vl}set allowTextEdit(t){const i=this.vl;i!==t&&(Util.i(t,\"boolean\",Diagram,\"allowTextEdit\"),this.vl=t,this.t(\"allowTextEdit\",i,t))}get allowGroup(){return this.Ol}set allowGroup(t){const i=this.Ol;i!==t&&(Util.i(t,\"boolean\",Diagram,\"allowGroup\"),this.Ol=t,this.t(\"allowGroup\",i,t))}get allowUngroup(){return this.Il}set allowUngroup(t){const i=this.Il;i!==t&&(Util.i(t,\"boolean\",Diagram,\"allowUngroup\"),this.Il=t,this.t(\"allowUngroup\",i,t))}get allowInsert(){return this.Kx}set allowInsert(t){const i=this.Kx;i!==t&&(Util.i(t,\"boolean\",Diagram,\"allowInsert\"),this.Kx=t,this.t(\"allowInsert\",i,t))}get allowLink(){return this.El}set allowLink(t){const i=this.El;i!==t&&(Util.i(t,\"boolean\",Diagram,\"allowLink\"),this.El=t,this.t(\"allowLink\",i,t))}get allowRelink(){return this.Bl}set allowRelink(t){const i=this.Bl;i!==t&&(Util.i(t,\"boolean\",Diagram,\"allowRelink\"),this.Bl=t,this.t(\"allowRelink\",i,t))}get allowMove(){return this.Ul}set allowMove(t){const i=this.Ul;i!==t&&(Util.i(t,\"boolean\",Diagram,\"allowMove\"),this.Ul=t,this.t(\"allowMove\",i,t))}get allowReshape(){return this.Vl}set allowReshape(t){const i=this.Vl;i!==t&&(Util.i(t,\"boolean\",Diagram,\"allowReshape\"),this.Vl=t,this.t(\"allowReshape\",i,t))}get allowResize(){return this.zl}set allowResize(t){const i=this.zl;i!==t&&(Util.i(t,\"boolean\",Diagram,\"allowResize\"),this.zl=t,this.t(\"allowResize\",i,t))}get allowRotate(){return this.Xl}set allowRotate(t){const i=this.Xl;i!==t&&(Util.i(t,\"boolean\",Diagram,\"allowRotate\"),this.Xl=t,this.t(\"allowRotate\",i,t))}get allowSelect(){return this.Kl}set allowSelect(t){const i=this.Kl;i!==t&&(Util.i(t,\"boolean\",Diagram,\"allowSelect\"),this.Kl=t,this.t(\"allowSelect\",i,t))}get allowUndo(){return this.Yx}set allowUndo(t){const i=this.Yx;i!==t&&(Util.i(t,\"boolean\",Diagram,\"allowUndo\"),this.Yx=t,this.t(\"allowUndo\",i,t))}get allowZoom(){return this.Gx}set allowZoom(t){const i=this.Gx;i!==t&&(Util.i(t,\"boolean\",Diagram,\"allowZoom\"),this.Gx=t,this.t(\"allowZoom\",i,t))}get hasVerticalScrollbar(){return this.Eu}set hasVerticalScrollbar(t){const i=this.Eu;i!==t&&(Util.i(t,\"boolean\",Diagram,\"hasVerticalScrollbar\"),this.Eu=t,this.ra(),this.C(),this.t(\"hasVerticalScrollbar\",i,t),this.Us(!1))}get hasHorizontalScrollbar(){return this.Iu}set hasHorizontalScrollbar(t){const i=this.Iu;i!==t&&(Util.i(t,\"boolean\",Diagram,\"hasHorizontalScrollbar\"),this.Iu=t,this.ra(),this.C(),this.t(\"hasHorizontalScrollbar\",i,t),this.Us(!1))}get allowHorizontalScroll(){return this.jx}set allowHorizontalScroll(t){const i=this.jx;i!==t&&(Util.i(t,\"boolean\",Diagram,\"allowHorizontalScroll\"),this.jx=t,this.t(\"allowHorizontalScroll\",i,t),this.Us(!1))}get allowVerticalScroll(){return this.Hx}set allowVerticalScroll(t){const i=this.Hx;i!==t&&(Util.i(t,\"boolean\",Diagram,\"allowVerticalScroll\"),this.Hx=t,this.t(\"allowVerticalScroll\",i,t),this.Us(!1))}get scrollHorizontalLineChange(){return this.qx}set scrollHorizontalLineChange(t){const i=this.qx;i!==t&&(Util.i(t,\"number\",Diagram,\"scrollHorizontalLineChange\"),t<0&&Util._(t,\">= 0\",Diagram,\"scrollHorizontalLineChange\"),this.qx=t,this.t(\"scrollHorizontalLineChange\",i,t))}get scrollVerticalLineChange(){return this.Wx}set scrollVerticalLineChange(t){const i=this.Wx;i!==t&&(Util.i(t,\"number\",Diagram,\"scrollVerticalLineChange\"),t<0&&Util._(t,\">= 0\",Diagram,\"scrollVerticalLineChange\"),this.Wx=t,this.t(\"scrollVerticalLineChange\",i,t))}get lastInput(){return this.$h}set lastInput(t){this.$h=t}get previousInput(){return this.Xr}set previousInput(t){this.Xr=t}get firstInput(){return this.Jm}set firstInput(t){this.Jm=t}get currentCursor(){return this.vx}set currentCursor(t){if(t===\"\"&&(t=this.Ym),this.vx!==t){Util.i(t,\"string\",Diagram,\"currentCursor\");const e=this.dt,s=this.Tt;if(e===null||s===null)return;this.vx=t;const n=e.style.cursor;e.style.cursor=t,s.style.cursor=t,e.style.cursor===n&&(e.style.cursor=\"-webkit-\"+t,s.style.cursor=\"-webkit-\"+t,e.style.cursor===n&&(e.style.cursor=\"-moz-\"+t,s.style.cursor=\"-moz-\"+t,e.style.cursor===n&&(e.style.cursor=t,s.style.cursor=t)))}}get defaultCursor(){return this.Ym}set defaultCursor(t){t===\"\"&&(t=\"auto\");const i=this.Ym;i!==t&&(Util.i(t,\"string\",Diagram,\"defaultCursor\"),this.Ym=t,this.t(\"defaultCursor\",i,t))}get click(){return this.Tr}set click(t){const i=this.Tr;i!==t&&(t!==null&&Util.i(t,\"function\",Diagram,\"click\"),this.Tr=t,this.t(\"click\",i,t))}get doubleClick(){return this.Dr}set doubleClick(t){const i=this.Dr;i!==t&&(t!==null&&Util.i(t,\"function\",Diagram,\"doubleClick\"),this.Dr=t,this.t(\"doubleClick\",i,t))}get contextClick(){return this.Fr}set contextClick(t){const i=this.Fr;i!==t&&(t!==null&&Util.i(t,\"function\",Diagram,\"contextClick\"),this.Fr=t,this.t(\"contextClick\",i,t))}get mouseOver(){return this.Rr}set mouseOver(t){const i=this.Rr;i!==t&&(t!==null&&Util.i(t,\"function\",Diagram,\"mouseOver\"),this.Rr=t,this.t(\"mouseOver\",i,t))}get mouseHover(){return this.vr}set mouseHover(t){const i=this.vr;i!==t&&(t!==null&&Util.i(t,\"function\",Diagram,\"mouseHover\"),this.vr=t,this.t(\"mouseHover\",i,t))}get mouseHold(){return this.Or}set mouseHold(t){const i=this.Or;i!==t&&(t!==null&&Util.i(t,\"function\",Diagram,\"mouseHold\"),this.Or=t,this.t(\"mouseHold\",i,t))}get mouseDragOver(){return this.Ox}set mouseDragOver(t){const i=this.Ox;i!==t&&(t!==null&&Util.i(t,\"function\",Diagram,\"mouseDragOver\"),this.Ox=t,this.t(\"mouseDragOver\",i,t))}get mouseDrop(){return this.Ir}set mouseDrop(t){const i=this.Ir;i!==t&&(this.Ir=t,this.t(\"mouseDrop\",i,t))}get handlesDragDropForTopLevelParts(){return this.Ix}set handlesDragDropForTopLevelParts(t){const i=this.Ix;i!==t&&(Util.i(t,\"boolean\",Diagram,\"handlesDragDropForTopLevelParts\"),this.Ix=t,this.t(\"handlesDragDropForTopLevelParts\",i,t))}get mouseEnter(){return this.Er}set mouseEnter(t){const i=this.Er;i!==t&&(t!==null&&Util.i(t,\"function\",Diagram,\"mouseEnter\"),this.Er=t,this.t(\"mouseEnter\",i,t))}get mouseLeave(){return this.Br}set mouseLeave(t){const i=this.Br;i!==t&&(t!==null&&Util.i(t,\"function\",Diagram,\"mouseLeave\"),this.Br=t,this.t(\"mouseLeave\",i,t))}get toolTip(){return this.Ur}set toolTip(t){const i=this.Ur;i!==t&&(this.Ur=t,this.t(\"toolTip\",i,t))}get contextMenu(){return this.Vr}set contextMenu(t){const i=this.Vr;i!==t&&(this.Vr=t,this.t(\"contextMenu\",i,t))}get commandHandler(){return this.qM}set commandHandler(t){this.qM!==t&&(this.qM=t,t.Ao(this))}get toolManager(){return this.GM}set toolManager(t){this.GM!==t&&(this.GM=t,t.diagram=this)}get defaultTool(){return this.jM}set defaultTool(t){const i=this.jM;i!==t&&(this.jM=t,t.diagram=this,this.currentTool===i&&(this.currentTool=t))}get currentTool(){return this.HM}set currentTool(t){const i=this.HM;i&&(i.isActive&&i.doDeactivate(),i.cancelWaitAfter(),i.doStop()),t===null&&(t=this.defaultTool),t!==null&&(this.HM=t,t.diagram=this,t.doStart())}get selection(){return this.tS}get maxSelectionCount(){return this.Qx}set maxSelectionCount(t){const i=this.Qx;if(i!==t)if(Util.i(t,\"number\",Diagram,\"maxSelectionCount\"),t>=0&&!isNaN(t)){if(this.Qx=t,this.t(\"maxSelectionCount\",i,t),!this.undoManager.isUndoingRedoing){const e=this.selection.count-t;if(e>0){this.v(\"ChangingSelection\",this.selection);const s=this.selection.toArray();for(let n=0;n= 0\",Diagram,\"maxSelectionCount\")}get nodeSelectionAdornmentTemplate(){return this.qm}set nodeSelectionAdornmentTemplate(t){const i=this.qm;i!==t&&(this.qm=t.Vt(),this.t(\"nodeSelectionAdornmentTemplate\",i,t))}get groupSelectionAdornmentTemplate(){return this.ib}set groupSelectionAdornmentTemplate(t){const i=this.ib;i!==t&&(this.ib=t.Vt(),this.t(\"groupSelectionAdornmentTemplate\",i,t))}get linkSelectionAdornmentTemplate(){return this.eb}set linkSelectionAdornmentTemplate(t){const i=this.eb;i!==t&&(this.eb=t.Vt(),this.t(\"linkSelectionAdornmentTemplate\",i,t))}get highlighteds(){return this.iS}get isModified(){const t=this.undoManager;return t.isEnabled?t.currentTransaction!==null?!0:this.zu&&this.vs!==t.historyIndex:this.zu}set isModified(t){if(this.zu!==t){Util.i(t,\"boolean\",Diagram,\"isModified\"),this.zu=t;const e=this.undoManager;!t&&e.isEnabled&&(this.vs=e.historyIndex),t||this.EL()}}EL(){const t=this.isModified;this.QM!==t&&(this.QM=t,this.v(\"Modified\"))}get model(){return this.Mi}set model(t){const i=this.Mi;if(i!==t){this.currentTool.doCancel(),i&&i.undoManager!==t.undoManager&&i.undoManager.isInTransaction&&Util.o(\"Do not replace a Diagram.model while a transaction is in progress.\"),this.animationManager.stopAnimation(!0);const e=this.yL(!0);this.Jn=!1,this.Ou=!0,this.vs=-2,this.Pr=!1;const s=this.qt;this.qt=!0,this.animationManager.Dl(\"Model\"),i&&(this.qn!==null&&this.qn.each(n=>i.removeChangedListener(n)),i.removeChangedListener(this.ZM)),this.Mi=t,this.partManager=this.uR(this.Mi.type),this.initializePartManager(this.partManager);for(let n=0;nt.addChangedListener(n)),this.qt=s,this.invalidateDocumentBounds(),this.qt||this.C(),i&&t.undoManager.copyProperties(i.undoManager)}}get themeManager(){return this.gb}set themeManager(t){const i=this.gb;i!==t&&(i!==null&&i.removeDiagram(this),this.gb=t,t!==null&&t.addDiagram(this))}initializePartManager(t){}static mS(t,i){Diagram.fL.set(t,i)}static get licenseKey(){return Diagram.TS.last()}static set licenseKey(t){Diagram.TS.add(t.replace(/\\s/g,\"\"))}static get version(){return Diagram.dR}static TS=new List;static dR=\"3.0.15\";uR(t){const i=Diagram.fL.get(t);return i!==null?new i:new PartManager}get Y(){return this.JM}set Y(t){this.JM=t}get mx(){return this.hL}gR(t){if(t.model!==this.model)return;const i=t.change,e=t.propertyName;if(i===1&&e[0]===\"S\"){if(e===\"StartingFirstTransaction\"){const s=this,n=this.toolManager;n.mouseDownTools.each(o=>o.diagram=s),n.mouseMoveTools.each(o=>o.diagram=s),n.mouseUpTools.each(o=>o.diagram=s),this.routers.each(o=>o.diagram=s),!this.ps&&!this.Jn&&(this.Oc=!0,this.Ou&&(this.Pr=!0))}else if(e===\"StartingUndo\"||e===\"StartingRedo\"){const s=this.animationManager;this.skipsUndoManager||(s.defaultAnimation.isAnimating&&s.stopAnimation(),s.getBundleAnimation().isAnimating&&s.getBundleAnimation().stop()),this.v(\"ChangingSelection\",this.selection)}else if(e===\"StartedTransaction\"){const s=this.animationManager;s.defaultAnimation.isAnimating&&!this.skipsUndoManager&&s.stopAnimation()}return}if(this.Y){this.Y=!1;try{if(t.modelChange===\"\"&&i===1){(e===\"FinishedUndo\"||e===\"FinishedRedo\")&&(this.v(\"ChangedSelection\",this.selection),this.Ci());const s=this.animationManager;e===\"RolledBackTransaction\"&&s.stopAnimation(),this.eL(),this.Oc=!0,this.maybeUpdate(),(this.undoManager.transactionLevel===0||this.undoManager.transactionLevel===1)&&s.SM(),e===\"CommittedTransaction\"&&this.undoManager.isJustDiscarded&&(this.vs=Math.min(this.vs,this.undoManager.historyIndex-1)),(e===\"CommittedTransaction\"||e===\"RolledBackTransaction\")&&this.undoManager.Ow&&setTimeout(()=>{this.isModified=!1},1);const n=t.isTransactionFinished;if(n&&(this.EL(),this.mx.clear(),this.animationManager.dF()),!this.Ex&&n&&this.lastInput.targetDiagram){this.Ex=!0;const o=this;Util.Oh(()=>{o.currentTool.standardMouseOver(),o.Ex=!1},10)}}}finally{this.Y=!0}}}get fe(){return this.WM}set fe(t){this.WM=t}get dc(){return this.Bx}set dc(t){this.Bx=t}CL(t){const i=t.L.r;for(const e of i)e instanceof Picture&&this.DS(e)}DS(t){const i=t.element;if(i===null||!(i instanceof HTMLImageElement)||(i.ss instanceof GSet&&i.ss.add(this),t.mR(),!i.f0))return;const e=i.getAttribute(\"src\")||\"\",s=this.Wl.get(e);if(s===null){Picture.BL(t,i);const n=[];n.push(t),this.Wl.set(e,n)}else{for(let n=0;n0?(this.kx=t,this.t(\"minScale\",i,t),t>this.scale&&(this.scale=t)):Util._(t,\"> 0\",Diagram,\"minScale\"))}get maxScale(){return this.Px}set maxScale(t){const i=this.Px;i!==t&&(t>0?(this.Px=t,this.t(\"maxScale\",i,t),t 0\",Diagram,\"maxScale\"))}get zoomPoint(){return this.Mx}set zoomPoint(t){this.Mx.equals(t)||(t=t.N(),this.Mx=t)}get contentAlignment(){return this.Rc}set contentAlignment(t){const i=this.Rc;i.equals(t)||(t=t.N(),this.Rc=t,this.t(\"contentAlignment\",i,t),this.Us(!1))}get initialContentAlignment(){return this.zm}set initialContentAlignment(t){const i=this.zm;i.equals(t)||(t=t.N(),this.zm=t,this.t(\"initialContentAlignment\",i,t))}get padding(){return this.Zt}set padding(t){typeof t==\"number\"&&(t=new Margin(t));const i=this.Zt;i.equals(t)||(t=t.N(),this.Zt=t,this.invalidateDocumentBounds(),this.t(\"padding\",i,t))}get partManager(){return this.rS}set partManager(t){const i=this.rS;i!==t&&(t.diagram!==null&&Util.o(\"Cannot share PartManagers between Diagrams: \"+t.toString()),i&&i.Ao(null),this.rS=t,t.Ao(this))}get nodes(){return this.partManager.nodes.iterator}get links(){return this.partManager.links.iterator}get parts(){return this.partManager.parts.iterator}findTopLevelNodesAndLinks(){const t=new GSet,i=this.nodes;for(;i.next();){const s=i.value;s.isTopLevel&&t.add(s)}const e=this.links;for(;e.next();){const s=e.value;s.isTopLevel&&t.add(s)}return t.iterator}findTopLevelGroups(){return this.Yr.iterator}get routers(){return this.zc}doLinkRouting(t){this.Do=!0;const i=this.zc.r;for(let e=0;e0){const l=this.computePartsBounds(n.memberParts,!1);l.inflate(20,20),s.kb(l)}const o=Rect.l(),r=n.memberParts;for(;r.next();){const l=r.value;l instanceof Node&&this.ES(l,e,o)}Rect.s(o)}s.ha=n,s.vS=e,s.Io=!1}else t&&s.YL();return s}get avoidanceCellSize(){return this.eS}set avoidanceCellSize(t){this.jl=null,this.eS=new Size(Math.max(1,t.width),Math.max(1,t.height))}get avoidanceLimit(){return this.sS}set avoidanceLimit(t){this.sS=Math.max(1,t)}KL(t){return t.canAvoid()?t:t.containingGroup!==null?this.KL(t.containingGroup):null}ES(t,i,e){if(t===i||!t.isVisible())return;const s=t.canAvoid();if(s){const n=t.getAvoidableRect(e);this.jl.wR(n.x,n.y,n.width,n.height)}if(t instanceof Group&&(!s||t.avoidableMembers)){const n=t.memberParts;for(;n.next();){const o=n.value;o instanceof Node&&this.ES(o,i,e)}}}BS(t){this.jl!==null&&!this.jl.Io&&(t===void 0||t.canAvoid())&&(this.jl.Io=!0)}get autoScrollInterval(){return this.Xm}set autoScrollInterval(t){const i=this.Xm;i!==t&&(this.Xm=t,this.t(\"autoScrollInterval\",i,t))}get autoScrollRegion(){return this.Km}set autoScrollRegion(t){typeof t==\"number\"&&(t=new Margin(t));const i=this.Km;i.equals(t)||(t=t.N(),this.Km=t,this.invalidateDocumentBounds(),this.t(\"autoScrollRegion\",i,t))}doAutoScroll(t){this.Wm.a(t),this.computeAutoScrollPosition(this.Wm).equalsApprox(this.position)?this.stopAutoScroll():this.GL()}GL(){if(this.vc!==-1)return;const t=this.Xm,i=this;this.vc=Util.Oh(()=>{if(i.vc===-1||(i.stopAutoScroll(),i.lastInput.event===null))return;const s=i.computeAutoScrollPosition(i.Wm);if(s.equalsApprox(i.position))return;i.position=s,i.lastInput.documentPoint=i.transformViewToDoc(i.Wm),i.doMouseMove(),i.Zh=!0;const n=Rect.l();i.computeBounds(n),n.unionRect(i.documentBounds),i.UL(n),Rect.s(n),i.Ue=!0,i.maybeUpdate(),i.GL()},t)}stopAutoScroll(){this.vc!==-1&&(Util.Ig(this.vc),this.vc=-1)}computeAutoScrollPosition(t){let i=this.position;const e=this.Km;if(e.top<=0&&e.left<=0&&e.right<=0&&e.bottom<=0)return i;const s=this.viewportBounds,n=this.scale,o=Rect.X(0,0,s.width*n,s.height*n),r=Point.X(0,0);if(t.x>=o.x&&t.xo.x+o.width-e.right&&this.allowHorizontalScroll){let l=Math.max(this.scrollHorizontalLineChange,1);l=l|0,r.x+=l,t.x>o.x+o.width-e.right/2&&(r.x+=l),t.x>o.x+o.width-e.right/4&&(r.x+=4*l)}if(t.y>=o.y&&t.yo.y+o.height-e.bottom&&this.allowVerticalScroll){let l=Math.max(this.scrollVerticalLineChange,1);l=l|0,r.y+=l,t.y>o.y+o.height-e.bottom/2&&(r.y+=l),t.y>o.y+o.height-e.bottom/4&&(r.y+=4*l)}return r.equalsApprox(Point.Po)||(i=new Point(i.x+r.x/n,i.y+r.y/n)),Rect.s(o),Point.s(r),i}makeSvg(t){this.ql.has(\"SVG\")||this.addRenderer(\"SVG\",new SVGSurface(this,root.document));const i=new SVGSurface(this,root.document,!0);t===void 0&&(t={});const e=this;function s(n,o){const r=e.jL(n,\"SVG\",i),l=r!==null?r.svg:null;return typeof o==\"function\"?(o(l),null):l}return this.HL(s,t)}makeSVG(t){return this.makeSvg(t)}addRenderer(t,i){this.ql.set(t,i)}removeRenderer(t){this.ql.delete(t)}cacheGroupExternalLinks(t){this.gS=t,t||this.nodes.each(i=>{i instanceof Group&&(i.d0=null)})}HL(t,i){const e=i.callback;let s=!0;const o=this.Wl.iterator;for(;o.next();)if(!o.value[0].mn){s=!1;break}if(typeof e!=\"function\"||s)return t(i,e,this);const r=this;function l(){const c=+new Date;for(s=!0,o.reset();o.next();)if(!o.value[0].mn){s=!1;break}if(s||c-a>h){t(i,e,r);return}root.requestAnimationFrame(l)}const h=i.callbackTimeout||300,a=+new Date;return root.requestAnimationFrame(()=>l()),null}makeImage(t){return Diagram.isUsingDOM()?(t===void 0&&(t={}),t.returnType=\"Image\",this.makeImageData(t)):null}makeImageData(t){return t===void 0&&(t={}),this.HL(this.xR,t)}static img=\"image\";xR(t,i,e){const s=e.jL(t,\"canvas\",null);if(s===null)return null;const n=s.U.canvas;let o=null;if(n!==null){let r=t.returnType;switch(r===void 0?r=\"string\":r=r.toLowerCase(),r){case Diagram.img+\"data\":o=s.getImageData(0,0,n.width,n.height);break;case Diagram.img:const h=(t.document||document).createElement(\"img\");h.src=n.toDataURL(t.type,t.details),o=h;break;case\"blob\":{const a=n;return typeof i!=\"function\"&&(o=\"\",Util.o('Error: Diagram.makeImageData called with \"returnType: toBlob\", but no required \"callback\" function property defined.')),typeof a.toBlob==\"function\"?(a.toBlob(i,t.type,t.details),\"toBlob\"):(i(null),null)}case\"string\":default:o=n.toDataURL(t.type,t.details)}}return typeof i==\"function\"?(i(o),null):o}static bR=!1;jL(t,i,e){if(this.animationManager.stopAnimation(),this.maybeUpdate(),this.dt===null)return null;typeof t!=\"object\"&&Util.o(\"properties argument must be an Object.\");let n=!1,o=t.size||null,r=t.scale||null;t.scale!==void 0&&isNaN(t.scale)&&(r=\"NaN\");let l=t.maxSize;t.maxSize===void 0&&(n=!0,i===\"SVG\"?l=new Size(1/0,1/0):l=new Size(2e3,2e3));const h=t.position||null;let a=t.parts||null;Array.isArray(a)&&(a=new List(a));let c=t.padding===void 0?1:t.padding;const f=t.background||null;let u=t.omitTemporary;u===void 0&&(u=!0);const d=t.document||document,m=t.elementFinished||null;let g=t.showTemporary;g===void 0&&(g=!u);let p=t.showGrid;p===void 0&&(p=g),o!==null&&isNaN(o.width)&&isNaN(o.height)&&(o=null),typeof c==\"number\"?c=new Margin(c):c instanceof Margin||Util.o(\"MakeImage padding must be a Margin or a number.\"),c.left=Math.max(c.left,0),c.right=Math.max(c.right,0),c.top=Math.max(c.top,0),c.bottom=Math.max(c.bottom,0),this.Qt.clearContextCache(!0);const y=new CanvasSurface(null,d,void 0,!0),x=y.ai;if(!(o||r||a||h))return y.width=this.kt+Math.ceil(c.left+c.right),y.height=this.Pt+Math.ceil(c.top+c.bottom),i===\"SVG\"?e===null?null:(e.resize(y.width,y.height,y.width,y.height),e.aa=d,e.Hu=m,this.wb(e.ai,c,new Size(y.width,y.height),this.et,this.at,a,f,g,p),e.ai):(this.Xu=!1,this.wb(x,c,new Size(y.width,y.height),this.et,this.at,a,f,g,p),this.Xu=!0,y.ai);const k=this.$m,b=this.documentBounds.copy();if(b.subtractMargin(this.Zt),g){const A=this.jt.r,D=A.length;for(let F=0;Fk?(r=k,N=b.width,T=b.height):(N=l.width,T=l.height)):(N=b.width*r,T=b.height*r):(r=k,N=b.width,T=b.height),c!==null?(N+=M,T+=L):c=new Margin(0),l!==null){let A=l.width,D=l.height;i!==\"SVG\"&&n&&Diagram.bR,isNaN(A)&&(A=2e3),isNaN(D)&&(D=2e3),isFinite(A)&&(N=Math.min(N,A)),isFinite(D)&&(T=Math.min(T,D))}return y.width=Math.ceil(N),y.height=Math.ceil(T),i===\"SVG\"?e===null?null:(e.resize(y.width,y.height,y.width,y.height),e.aa=d,e.Hu=m,this.wb(e.ai,c,new Size(Math.ceil(N),Math.ceil(T)),r,P,a,f,g,p),e.ai):(this.Xu=!1,this.wb(x,c,new Size(Math.ceil(N),Math.ceil(T)),r,P,a,f,g,p),this.Xu=!0,y.ai)}static Gu=null;static qL=\"5da73c80a36555d4038e4972187c3cae51fd22\";static uw=!1;static Ik=()=>{if(Diagram.qL[5]===void 0&&(Transform.prototype.ts=Transform.prototype.ww),!Diagram.isUsingDOM())return;const t=root.document.createElement(\"canvas\"),i=t.getContext(\"2d\"),e=Util.Cs(\"7ca11abfd022028846\");i[e]=Util.Cs(\"398c3597c01238\");const s=\"7ca11abfd7330390\",n=[Diagram.qL,Util.uw+\"4ae6247590da4bb21c324ba3a84e385776\",Transform.Ik+\"fb236cdfda5de14c134ba1a95a2d4c7cc6f93c1387\",Geo.za],o=10,r=0;for(let l=1;l<5;l++)i[Util.Cs(s)](Util.Cs(n[l-1]),o,l*15+r);i[e]=Util.Cs(\"39f046ebb36e4b\");for(let l=1;l<5;l++)i[Util.Cs(s)](Util.Cs(n[l-1]),o,l*15+r);(n.length!==4||n[0][0]!==\"5\"||n[3][0]!==\"7\")&&(Transform.prototype.ts=Transform.prototype.ww),Diagram.Gu=t}}class DiagramHelper{WL;JL;US;Ne;constructor(t){if(this.WL=null,this.JL=\"63ad05bbe23a1786468a4c741b6d2\",this.US=\"@onz\",this.JL===this._tk){this.US=!0,this.Ne=this.US;return}this.Ne=null}kR(t,i){let e=\"f\";const s=root[Util.Cs(\"76a715b2f73f148a\")][Util.Cs(\"72ba13b5\")]||\"\",n=Util.Cs;if(this.Ne=!0,!Diagram.isUsingDOM())return;let o=Diagram[n(\"76a115b6ed251eaf4692\")];if(!o){const l=s[n(\"76ad18b4f73e\")];for(let a=s[n(\"73a612b6fb191d\")](n(\"35e7\"))+2;a=0&&ha[0]||h[0]===a[0]&&h[1]>=a[1]))continue;const c=\"73a612b6fb191d\",f=root[n(\"74a900bae4370f8b51\")][n(\"6fbb13a1c2311e8a57\")].toLowerCase(),u=f[n(c)](n(\"3aad1ab6e022098b4dc4\")),d=n(l[2]);if(u>-1){const S=f[n(c)](d.toLowerCase()+\"/\");if(this.Ne=!(S>-1&&S=0&&g-1),!this.Ne))return;const p=root[Util.Cs(\"76a715b2f73f148a\")][Util.Cs(\"69ad17a1e03e\")],y=p[n(c)](n(\"7fb002b6ed25128b4da25b2e\"));if(y>-1&&(this.Ne=!(p[n(c)](d)>y),!this.Ne))return;const x=d;if(x[0]!==\"#\")continue;const k=root.document.createElement(\"div\");let b=l[0].replace(/[A-Za-z]/g,\"\");for(;b.length<4;)b+=\"9\";const P=b;b=b.substring(b.length-4);let M=\"\";const L=[\"gsh\",\"gsf\"],C=[\"Header\",\"Background\",\"Display\",\"Feedback\"];if(M+=L[parseInt(b.substring(0,1),10)%2],M+=C[parseInt(b.substring(0,1),10)%4],k[n(\"79a417a0f0181a8946\")]=M,root.document[n(\"78a712aa\")]){root.document[n(\"78a712aa\")][n(\"7bb806b6ed32388c4a875b\")](k);const S=root.getComputedStyle(k).getPropertyValue(n(\"78a704b7e62456904c9b12701b6532a8\")),N=root.getComputedStyle(k).getPropertyValue(n(\"75b817b0ea2202\"));if(root.document[n(\"78a712aa\")][n(\"68ad1bbcf533388c4a875b\")](k),!S)continue;const T=root[n(\"77a902b0eb1b1e804a8a\")],A=\"0.\"+parseInt(P,10)%100;if(N===A||S.indexOf(parseInt(x[1]+x[2],16))!==-1&&S.indexOf(parseInt(x[3]+x[4],16))!==-1){this.Ne=!1;return}else if(T&&T(n(\"32ae19a1e0331fc94084537c067a67fa59f1386b89d006\")).matches){M=\".\"+M;for(let D=0;D{const s=this.observed;if(s===null)return;const n=s.viewportBounds,o=this.lastInput.documentPoint;s.position=new Point(o.x-n.width/2,o.y-n.height/2)},this.XS=s=>{this.invalidateDocumentBounds(),this.m0()},this.KS=s=>{this.observed!==null&&(this.invalidateDocumentBounds(),this.C())},this.Cb=s=>{this.updateDelay<1?this.C():this.g0||(this.g0=!0,setTimeout(()=>this.redraw(),this.updateDelay))},this.YS=s=>{this.observed!==null&&this.m0()},this.autoScale=2,this.qt=!1,i&&Object.assign(this,i),this}setupRouters(){}computePixelRatio(){return 1}redraw(){this.g0&&this.updateDelay>=1&&(this.g0=!1,this.PR()),super.redraw()}Ui(){if(this.Tt===null&&Util.o(\"No div specified\"),this.dt===null&&Util.o(\"No canvas specified\"),this.dt instanceof SVGSurface||(this.box.VM(),!this.Ue))return;const t=this.observed;if(t===null||t.animationManager.defaultAnimation.isAnimating||!t.Bh)return;this.h0();const i=this.dt,e=this.Qt;if(e.clearContextCache(!0),e.setTransform(1,0,0,1,0,0),e.clearRect(0,0,i.width,i.height),this.updateDelay<1)this.ZL();else if(this.jc!==null){e.drawImage(this.jc.Ft,0,0);const o=this.D;e.scale(this.zi,this.zi),e.transform(o.m11,o.m12,o.m21,o.m22,o.dx,o.dy),e.commitTransform()}const s=this.jt.r,n=s.length;for(let o=0;on.canDelete())}t.removeParts(i,!0),t.v(\"SelectionDeleted\",i)}finally{t.commitTransaction(\"Delete\"),t.v(\"ChangedSelection\",t.selection),t.currentCursor=\"\"}}canDeleteSelection(){const t=this.diagram;return!(t.isReadOnly||t.isModelReadOnly||!t.allowDelete||t.selection.count===0)}copySelection(){const t=this.diagram;try{const i=new GSet,e=t.selection.iterator;for(;e.next();){const s=e.value;Part.sh(i,s,!0,this.copiesTree?1/0:0,this.copiesConnectedLinks,n=>n.canCopy())}this.copyToClipboard(i)}finally{}}canCopySelection(){const t=this.diagram;return!(!t.allowCopy||!t.allowClipboard||t.selection.count===0)}cutSelection(){this.copySelection(),this.deleteSelection()}canCutSelection(){const t=this.diagram;return!(t.isReadOnly||t.isModelReadOnly||!t.allowCopy||!t.allowDelete||!t.allowClipboard||t.selection.count===0)}copyToClipboard(t){const i=this.diagram;let e=null;if(t===null)Diagram.pL();else{const s=i.model;let n=!1,o=!1,r=null;try{s.pc()&&(n=s.copiesParentKeyOfNodeData,s.copiesParentKeyOfNodeData=this.copiesParentKey),(s.gc()||s.qu())&&(o=s.copiesGroupKeyOfNodeData,s.copiesGroupKeyOfNodeData=this.copiesGroupKey),r=i.copyParts(t,null,!0)}finally{s.pc()&&(s.copiesParentKeyOfNodeData=n),(s.gc()||s.qu())&&(s.copiesGroupKeyOfNodeData=o),e=new List,e.addAll(r.iteratorValues),Diagram.s0=e,Diagram.mb=i.model.dataFormat}}i.v(\"ClipboardChanged\",e)}pasteFromClipboard(){const t=new GSet,i=Diagram.s0;if(i===null)return t;const e=this.diagram;if(Diagram.mb!==e.model.dataFormat)return t;const s=e.model;let n=!1,o=!1,r=null;try{s.pc()&&(n=s.copiesParentKeyOfNodeData,s.copiesParentKeyOfNodeData=this.copiesParentKey),(s.gc()||s.qu())&&(o=s.copiesGroupKeyOfNodeData,s.copiesGroupKeyOfNodeData=this.copiesGroupKey),r=e.copyParts(i,e,!1)}finally{s.pc()&&(s.copiesParentKeyOfNodeData=n),(s.gc()||s.qu())&&(s.copiesGroupKeyOfNodeData=o);const l=r.iterator;for(;l.next();){const h=l.value,a=l.key;h.location.isReal()||(a.location.isReal()?h.location=a.location:!h.position.isReal()&&a.position.isReal()&&(h.position=a.position)),t.add(h)}}return t}pasteSelection(t){t===void 0&&(t=null);const i=this.diagram;try{i.currentCursor=\"wait\",i.v(\"ChangingSelection\",i.selection),i.startTransaction(\"Paste\");const e=this.pasteFromClipboard();e.count>0&&i.clearSelection(!0);const s=e.iterator;for(;s.next();){const n=s.value;n.isSelected=!0}if(t!==null){const n=i.computePartsBounds(i.selection);if(n.isReal()){const o=this.computeEffectiveCollection(i.selection,i.fb);i.bP(o,new Point(t.x-n.centerX,t.y-n.centerY),i.fb,!1)}}i.v(\"ClipboardPasted\",e)}finally{i.commitTransaction(\"Paste\"),i.v(\"ChangedSelection\",i.selection),i.currentCursor=\"\"}}canPasteSelection(t){const i=this.diagram;return!(i.isReadOnly||i.isModelReadOnly||!i.allowInsert||!i.allowClipboard||Diagram.s0===null||Diagram.s0.count===0||Diagram.mb!==i.model.dataFormat)}undo(){this.diagram.undoManager.undo()}canUndo(){const t=this.diagram;return t.isReadOnly||t.isModelReadOnly?!1:t.allowUndo&&t.undoManager.canUndo()}redo(){this.diagram.undoManager.redo()}canRedo(){const t=this.diagram;return t.isReadOnly||t.isModelReadOnly?!1:t.allowUndo&&t.undoManager.canRedo()}decreaseZoom(t){t===void 0&&(t=1/this.zoomFactor);const i=this.diagram;if(i.autoScale!==1)return;const e=i.scale*t;ei.maxScale||(i.scale=e)}canDecreaseZoom(t){t===void 0&&(t=1/this.zoomFactor);const i=this.diagram;if(i.autoScale!==1)return!1;const e=i.scale*t;return ei.maxScale?!1:i.allowZoom}increaseZoom(t){t===void 0&&(t=this.zoomFactor);const i=this.diagram;if(i.autoScale!==1)return;const e=i.scale*t;ei.maxScale||(i.scale=e)}canIncreaseZoom(t){t===void 0&&(t=this.zoomFactor);const i=this.diagram;if(i.autoScale!==1)return!1;const e=i.scale*t;return ei.maxScale?!1:i.allowZoom}resetZoom(t){t===void 0&&(t=this.defaultScale);const i=this.diagram;ti.maxScale||(i.scale=t)}canResetZoom(t){t===void 0&&(t=this.defaultScale);const i=this.diagram;return ti.maxScale?!1:i.allowZoom}zoomToFit(){const t=this.diagram,i=t.animationManager;i.stopAnimation(),t.redraw();const e=t.position,s=t.scale;i.Dl(\"Zoom To Fit\"),this.isZoomToFitRestoreEnabled&&s===this.Ab&&!isNaN(this.Lb)&&t.documentBounds.equals(this.Tb)?(t.scale=this.Lb,t.position=this._S,this.Ab=NaN,this.Tb=Rect.pw):(this.Lb=s,this._S=e.copy(),t.zoomToFit(),this.Ab=t.scale,this.Tb=t.documentBounds.copy()),i.SM()}canZoomToFit(){return this.diagram.allowZoom}scrollToPart(t){t===void 0&&(t=null);const i=this.diagram;if(i.ensureBounds(),t===null){try{this.Eo!==null&&(this.Eo.next()?t=this.Eo.value:this.Eo=null)}catch{this.Eo=null}t===null&&(i.highlighteds.count>0?this.Eo=i.highlighteds.iterator:i.selection.count>0&&(this.Eo=i.selection.iterator),this.Eo!==null&&this.Eo.next()&&(t=this.Eo.value))}if(t!==null){const e=i.animationManager;e.Dl(\"Scroll To Part\");const s=this.scrollToPartPause;if(s>0){const n=this.Hc(t,[t]);if(n.length===1)i.startTransaction(),i.centerRect(t.actualBounds),i.commitTransaction(\"Scroll To Part\");else{const o=()=>{i.startTransaction();let l=n.pop();for(;n.length>0&&l instanceof Node&&l.isTreeExpanded&&(!(l instanceof Group)||l.isSubGraphExpanded);)l=n.pop();n.length>0?(l instanceof Part&&i.scrollToRect(l.actualBounds),l instanceof Node&&!l.isTreeExpanded&&(l.isTreeExpanded=!0),l instanceof Group&&!l.isSubGraphExpanded&&(l.isSubGraphExpanded=!0)):(l instanceof Part&&i.centerRect(l.actualBounds),i.removeDiagramListener(\"LayoutCompleted\",r)),i.commitTransaction(\"Scroll To Part\")},r=()=>{Util.Oh(o,(e.isEnabled?e.duration:0)+s)};i.addDiagramListener(\"LayoutCompleted\",r),o()}}else{const n=i.position.copy();i.centerRect(t.actualBounds),n.equalsApprox(i.position)&&e.stopAnimation()}}}Hc(t,i){if(t.isVisible())return i;if(t instanceof Adornment)this.Hc(t.adornedPart,i);else if(t instanceof Link){const e=t.fromNode;e!==null&&this.Hc(e,i);const s=t.toNode;s!==null&&this.Hc(s,i)}else{if(t instanceof Node){const s=t.labeledLink;s!==null&&this.Hc(s,i);const n=t.findTreeParentNode();n!==null&&(!n.isTreeExpanded&&!n.wasTreeExpanded&&i.push(n),this.Hc(n,i))}const e=t.containingGroup;e!==null&&(!e.isSubGraphExpanded&&!e.wasSubGraphExpanded&&i.push(e),this.Hc(e,i))}return i}canScrollToPart(t){if(t===void 0&&(t=null),t!==null&&!(t instanceof Part))return!1;const i=this.diagram;return i.selection.count===0&&i.highlighteds.count===0?!1:i.allowHorizontalScroll&&i.allowVerticalScroll}collapseTree(t){t===void 0&&(t=null);const i=this.diagram,e=\"Collapse Tree\";try{i.startTransaction(e),i.animationManager.Dl(e);const n=new List;if(t!==null&&t.isTreeExpanded)t.collapseTree(),n.add(t);else if(t===null){const o=i.selection.iterator;for(;o.next();){const r=o.value;r instanceof Node&&r.isTreeExpanded&&(r.collapseTree(),n.add(r))}}i.v(\"TreeCollapsed\",n)}finally{i.commitTransaction(e)}}canCollapseTree(t){t===void 0&&(t=null);const i=this.diagram;if(i.isReadOnly)return!1;if(t!==null){if(!(t instanceof Node)||!t.isTreeExpanded)return!1;if(t.findTreeChildrenLinks().count>0)return!0}else{const e=i.selection.iterator;for(;e.next();){const s=e.value;if(s instanceof Node){if(!s.isTreeExpanded)continue;if(s.findTreeChildrenLinks().count>0)return!0}}}return!1}expandTree(t){t===void 0&&(t=null);const i=this.diagram,e=\"Expand Tree\";try{i.startTransaction(e),i.animationManager.Dl(e);const n=new List;if(t!==null&&!t.isTreeExpanded)t.expandTree(),n.add(t);else if(t===null){const o=i.selection.iterator;for(;o.next();){const r=o.value;r instanceof Node&&(r.isTreeExpanded||(r.expandTree(),n.add(r)))}}i.v(\"TreeExpanded\",n)}finally{i.commitTransaction(e)}}canExpandTree(t){t===void 0&&(t=null);const i=this.diagram;if(i.isReadOnly)return!1;if(t!==null){if(!(t instanceof Node)||t.isTreeExpanded)return!1;if(t.findTreeChildrenLinks().count>0)return!0}else{const e=i.selection.iterator;for(;e.next();){const s=e.value;if(s instanceof Node){if(s.isTreeExpanded)continue;if(s.findTreeChildrenLinks().count>0)return!0}}}return!1}groupSelection(){const t=this.diagram,i=t.model;if(!i.qc())return;const e=this.archetypeGroupData;if(e===null)return;let s=null;try{t.currentCursor=\"wait\",t.v(\"ChangingSelection\",t.selection),t.startTransaction(\"Group\");const n=new List,o=t.selection.iterator;for(;o.next();){const h=o.value;h.Pe()&&h.canGroup()&&n.add(h)}const r=new List,l=n.iterator;for(;l.next();){const h=l.value;let a=!1;const c=n.iterator;for(;c.next();){const f=c.value;if(h.isMemberOf(f)){a=!0;break}}a||r.add(h)}if(r.count>0){let h=r.first().containingGroup;if(h!==null)for(;h!==null;){let a=!1;const c=r.iterator;for(;c.next();)if(!c.value.isMemberOf(h)){a=!0;break}if(a)h=h.containingGroup;else break}if(e instanceof Group)e.Vt(),s=e.copy(),s!==null&&t.add(s);else if(i.isGroupForData(e)){const a=i.copyNodeData(e);Util.wt(a)&&(i.addNodeData(a),s=t.findNodeForData(a))}if(s!==null){h!==null&&this.isValidMember(h,s)&&(s.containingGroup=h);const a=r.iterator;for(;a.next();){const c=a.value;this.isValidMember(s,c)&&(c.containingGroup=s)}t.clearSelection(!0),s.isSelected=!0}}t.v(\"SelectionGrouped\",s)}finally{t.commitTransaction(\"Group\"),t.v(\"ChangedSelection\",t.selection),t.currentCursor=\"\"}}canGroupSelection(){const t=this.diagram;if(t.isReadOnly||t.isModelReadOnly||!t.allowInsert||!t.allowGroup||!t.model.qc()||this.archetypeGroupData===null)return!1;const e=t.selection.iterator;for(;e.next();){const s=e.value;if(s.Pe()&&s.canGroup())return!0}return!1}e2(t){const i=Util.nt();if(Array.isArray(t))t.forEach(n=>{n instanceof Link||n instanceof Part&&i.push(n)});else{const n=t.iterator;for(;n.next();){const o=n.value;o instanceof Link||o instanceof Part&&i.push(o)}}const e=new GSet,s=i.length;for(let n=0;n0){i.clearSelection(!0);const o=s.iterator;for(;o.next();){const r=o.value;r.expandSubGraph();const l=r.containingGroup,h=l!==null&&l.data!==null?e.getKeyForNodeData(l.data):void 0;n.addAll(r.memberParts);const a=n.iterator;for(;a.next();){const c=a.value;if(c.isSelected=!0,c instanceof Link)continue;const f=c.data;f!==null?e.setGroupForData(f,h):c.containingGroup=l}i.remove(r)}}i.v(\"SelectionUngrouped\",s,n)}finally{i.commitTransaction(\"Ungroup\"),i.v(\"ChangedSelection\",i.selection),i.currentCursor=\"\"}}canUngroupSelection(t){t===void 0&&(t=null);const i=this.diagram;if(i.isReadOnly||i.isModelReadOnly||!i.allowDelete||!i.allowUngroup||!i.model.qc())return!1;if(t!==null){if(!(t instanceof Group))return!1;if(t.canUngroup())return!0}else{const s=i.selection.iterator;for(;s.next();){const n=s.value;if(n instanceof Group&&n.canUngroup())return!0}}return!1}addTopLevelParts(t,i){const e=this.e2(t);let s=!0;const n=e.iterator;for(;n.next();){const o=n.value;o.containingGroup!==null&&(!i||this.isValidMember(null,o)?o.containingGroup=null:s=!1)}return s}collapseSubGraph(t){t===void 0&&(t=null);const i=this.diagram,e=\"Collapse SubGraph\";try{i.startTransaction(e),i.animationManager.Dl(e);const n=new List;if(t!==null&&t.isSubGraphExpanded)t.collapseSubGraph(),n.add(t);else if(t===null){const o=i.selection.iterator;for(;o.next();){const r=o.value;r instanceof Group&&r.isSubGraphExpanded&&(r.collapseSubGraph(),n.add(r))}}i.v(\"SubGraphCollapsed\",n)}finally{i.commitTransaction(e)}}canCollapseSubGraph(t){t===void 0&&(t=null);const i=this.diagram;if(i.isReadOnly)return!1;if(t!==null)return!(!(t instanceof Group)||!t.isSubGraphExpanded);{const e=i.selection.iterator;for(;e.next();){const s=e.value;if(s instanceof Group&&s.isSubGraphExpanded)return!0}}return!1}expandSubGraph(t){t===void 0&&(t=null);const i=this.diagram,e=\"Expand SubGraph\",s=new List;try{if(i.startTransaction(e),i.animationManager.Dl(e),t!==null&&!t.isSubGraphExpanded)t.expandSubGraph(),s.add(t);else if(t===null){const o=i.selection.iterator;for(;o.next();){const r=o.value;r instanceof Group&&(r.isSubGraphExpanded||(r.expandSubGraph(),s.add(r)))}}i.v(\"SubGraphExpanded\",s)}finally{for(const n of s)this.QL(i,n);t&&this.QL(i,t),i.commitTransaction(e)}}QL(t,i){for(const e of i.memberParts)e instanceof Node&&t.Cc(e,i)}canExpandSubGraph(t){t===void 0&&(t=null);const i=this.diagram;if(i.isReadOnly)return!1;if(t!==null)return!(!(t instanceof Group)||t.isSubGraphExpanded);{const e=i.selection.iterator;for(;e.next();){const s=e.value;if(s instanceof Group&&!s.isSubGraphExpanded)return!0}}return!1}editTextBlock(t){t===void 0&&(t=null);const i=this.diagram,e=i.toolManager.findTool(\"TextEditing\");if(e!==null){if(t===null){let s=null;const n=i.selection.iterator;for(;n.next();){const o=n.value;if(o.canEdit()){s=o;break}}if(s===null)return;t=s.findInVisualTree(o=>o instanceof TextBlock&&o.editable)}t!==null&&(i.currentTool=null,e.textBlock=t,i.currentTool=e)}}canEditTextBlock(t){t===void 0&&(t=null);const i=this.diagram;if(i.isReadOnly||i.isModelReadOnly||!i.allowTextEdit||i.toolManager.findTool(\"TextEditing\")===null)return!1;if(t!==null){if(!(t instanceof TextBlock))return!1;const e=t.part;if(e!==null&&e.canEdit())return!0}else{const e=i.selection.iterator;for(;e.next();){const s=e.value;if(s.canEdit()&&(t=s.findInVisualTree(n=>n instanceof TextBlock&&n.editable),t!==null))return!0}}return!1}showContextMenu(t){const i=this.diagram,e=i.toolManager.findTool(\"ContextMenu\");if(e===null)return;t===void 0&&(i.selection.count>0?t=i.selection.first():t=i);const s=e.findObjectWithContextMenu(t);if(s!==null){const n=i.lastInput;let o=null;if(s instanceof GraphObject)o=s.getDocumentPoint(Spot.Center);else if(!i.viewportBounds.containsPoint(n.documentPoint)){const r=i.viewportBounds;o=new Point(r.x+r.width/2,r.y+r.height/2)}if(o!==null){const r=new InputEvent;r.diagram=i,r.viewPoint=i.transformDocToView(o),r.documentPoint=o,r.button=2,r.up=!0,i.lastInput=r}i.currentTool=e,e.openMenu(!1,s)}}canShowContextMenu(t){const i=this.diagram,e=i.toolManager.findTool(\"ContextMenu\");return!(e===null||(t===void 0&&(i.selection.count>0?t=i.selection.first():t=i),e.findObjectWithContextMenu(t)===null))}get copiesClipboardData(){return this.GS}set copiesClipboardData(t){Util.i(t,\"boolean\",CommandHandler,\"copiesClipboardData\"),this.GS=t}get copiesConnectedLinks(){return this.jS}set copiesConnectedLinks(t){Util.i(t,\"boolean\",CommandHandler,\"copiesConnectedLinks\"),this.jS=t}get deletesConnectedLinks(){return this.HS}set deletesConnectedLinks(t){Util.i(t,\"boolean\",CommandHandler,\"deletesConnectedLinks\"),this.HS=t}get copiesTree(){return this.qS}set copiesTree(t){Util.i(t,\"boolean\",CommandHandler,\"copiesTree\"),this.qS=t}get deletesTree(){return this.WS}set deletesTree(t){Util.i(t,\"boolean\",CommandHandler,\"deletesTree\"),this.WS=t}get copiesParentKey(){return this.JS}set copiesParentKey(t){Util.i(t,\"boolean\",CommandHandler,\"copiesParentKey\"),this.JS=t}get copiesGroupKey(){return this.$S}set copiesGroupKey(t){Util.i(t,\"boolean\",CommandHandler,\"copiesGroupKey\"),this.$S=t}get archetypeGroupData(){return this.ZS}set archetypeGroupData(t){t!==null&&Util.i(t,\"object\",CommandHandler,\"archetypeGroupData\");const i=this.diagram;this.ZS=t}get memberValidation(){return this.eh}set memberValidation(t){t!==null&&Util.i(t,\"function\",CommandHandler,\"memberValidation\"),this.eh=t}get defaultScale(){return this.diagram.defaultScale}set defaultScale(t){this.diagram.defaultScale=t}get zoomFactor(){return this.QS}set zoomFactor(t){t>1||Util.o(\"zoomFactor must be larger than 1.0, not: \"+t),this.QS=t}get isZoomToFitRestoreEnabled(){return this.t2}set isZoomToFitRestoreEnabled(t){Util.i(t,\"boolean\",CommandHandler,\"isZoomToFitRestoreEnabled\"),this.t2=t}get scrollToPartPause(){return this.i2}set scrollToPartPause(t){this.i2=t}computeEffectiveCollection(t,i){const e=this.diagram,s=e.toolManager.findTool(\"Dragging\"),n=e.currentTool===s;i===void 0&&(i=e.c0());const o=new GMap;if(t===null)return o;let r=t.iterator;for(;r.next();){const l=r.value;e.qr(o,l,n,i)}if(e.draggedLink!==null&&i.dragsLink)return o;for(r=t.iterator;r.next();){const l=r.value;if(l instanceof Link){const h=l.fromNode;if(h!==null&&!o.has(h))o.delete(l);else{const a=l.toNode;a!==null&&!o.has(a)&&o.delete(l)}}}return o}}var Stretch=(w=>(w[w.None=0]=\"None\",w[w.Default=1]=\"Default\",w[w.Vertical=4]=\"Vertical\",w[w.Horizontal=5]=\"Horizontal\",w[w.Fill=2]=\"Fill\",w))(Stretch||{}),Orientation=(w=>(w[w.None=0]=\"None\",w[w.Along=21]=\"Along\",w[w.Plus90=22]=\"Plus90\",w[w.Minus90=23]=\"Minus90\",w[w.Opposite=24]=\"Opposite\",w[w.Upright=25]=\"Upright\",w[w.Plus90Upright=26]=\"Plus90Upright\",w[w.Minus90Upright=27]=\"Minus90Upright\",w[w.Upright45=28]=\"Upright45\",w))(Orientation||{}),Flip=(w=>(w[w.None=0]=\"None\",w[w.Vertical=1]=\"Vertical\",w[w.Horizontal=2]=\"Horizontal\",w[w.Both=3]=\"Both\",w))(Flip||{});class GraphObject{n;Wu;Ju;Bo;f;nh;q;at;se;Jt;$u;Vs;Ct;ze;Jr;oh;bi;ca;et;Kt;$r;Li;Xi;Zu;ri;Wc;Bt;oi;Zr;Db;rh;Qu;constructor(){GSet.ji(this),this.n=30723,this.Jt=1,this.$u=\"\",this.Vs=null,this.Ct=null,this.at=new Point(NaN,NaN).g(),this.ze=Size.gw,this.Jr=new Transform,this.oh=new Transform,this.bi=null,this.ca=1,this.et=1,this.Kt=0,this.$r=Margin.Ug,this.se=new Rect(NaN,NaN,NaN,NaN).g(),this.Li=new Rect(NaN,NaN,NaN,NaN).g(),this.Xi=new Rect(0,0,NaN,NaN).g(),this.Zu=null,this.Wu=null,this.q=null,this.ri=Spot.Default,this.Wc=Spot.Default,this.Ju=0,this.Bo=0,this.Bt=null,this.f=null,this.nh=null,this.oi=null,this.Db=null,this.rh=null,this.Zr=null,this.Qu=null}cloneProtected(t){t.n=(this.n|2048|4096)&-32769,t.Jt=this.Jt,t.$u=this.$u,t.Ct=this.Ct,t.at.a(this.at),t.ze=this.ze.N(),this.bi!==null?t.bi=this.bi.copy():t.bi=null,t.et=this.et,t.Kt=this.Kt,t.$r=this.$r.N(),t.se.a(this.se),t.Li.a(this.Li),t.Xi.a(this.Xi),t.Wu=this.Wu,this.q!==null&&(t.q=this.q.copy()),t.ri=this.ri.N(),t.Wc=this.Wc.N(),t.Ju=this.Ju,t.Bo=this.Bo,this.Bt!==null&&(t.Bt=this.Bt.copy()),this.f!==null&&(this.f.gi?t.f=this.f:t.f=this.f.copy()),this.nh!==null&&(t.nh=this.nh.slice()),this.oi!==null&&(t.oi=this.oi.copy())}addCopyProperty(t){let i=this.nh;if(!Array.isArray(i))i=[],this.nh=i;else for(let e=0;e{d.data!==null&&d.s2()&&d.updateTargetBindings(i)})}}}}pF(t){this.Qu.delete(t)}Oo(){if(this.diagram===null)return;if(this.findBindingPanel()===null&&this.Ai!==null){const i=this.Ai.iterator;for(;i.next();){const e=i.value;if(!e.isToTheme)continue;let s=null;const n=e.sourceName;e.isToObject&&(s=this._L(n));let o=this;const r=e.targetId;r!==-1&&(o=this.p0(r),o===null)||(n===\"/\"?s=o.part:n===\".\"?s=o:n===\"..\"&&(s=o.panel),e.updateTarget(o,s))}}}ya(t,i){const e=this.findBindingPanel();if(e!==null){const s=this.Ai.iterator;for(;s.next();){const n=s.value;let o=null;if(n.isToObject){if(o=n.tA(e,this),o===null)continue;n.updateSource(this,o,i,null)}else if(n.isToModel){const r=t.diagram;r!==null&&!r.fe&&n.updateSource(this,r.model.modelData,i,e)}else if(!n.isToTheme){const r=e.data;if(r===null)continue;const l=t.diagram;l!==null&&!l.fe&&n.updateSource(this,r,i,e)}if(o===this){const r=n.targetId,l=e.p0(r);l!==null&&n.updateTarget(l,o,i)}}}}p0(t){return this.$n===t?this:null}_L(t){let i;return t===\"\"?i=this:t===\"/\"?i=this:t===\".\"?i=this:t===\"..\"?i=this:i=this.part.findObject(t),i}get $n(){return this.f!==null?this.f.$n:-1}set $n(t){this.$n!==t&&(this.f===null&&(this.f=new GraphObjectTemplateSettings),this.f.$n=t)}get Ai(){return this.f!==null?this.f.Ai:null}set Ai(t){this.Ai!==t&&(this.f===null&&(this.f=new GraphObjectTemplateSettings),this.f.Ai=t)}get Zn(){return this.f!==null?this.f.Zn:null}set Zn(t){this.Zn!==t&&(this.f===null&&(this.f=new GraphObjectTemplateSettings),this.f.Zn=t)}raiseChanged(t,i,e){this.raiseChangedEvent(2,t,this,i,e)}t(t,i,e){this.raiseChangedEvent(2,t,this,i,e)}Qn(t,i,e,s){const n=this.se;if(n.e(t,i,e,s),this.et!==1||this.Kt!==0){this.bi===null&&(this.bi=new Transform);const o=this.bi;o.vi(),this.y0(o,t,i,e,s),o.Vg(n)}}iA(t,i,e){return this.pickable===!1?!1:(e.ic(this.D),i?this.intersectsRect(t,e):this.containedInRect(t,e))}eA(t,i,e){if(this.pickable===!1)return!1;const s=this.naturalBounds,n=t.distanceSquaredPoint(i);return e?Point.distanceLineSegmentSquared(t.x,t.y,0,0,0,s.height)<=n||Point.distanceLineSegmentSquared(t.x,t.y,0,s.height,s.width,s.height)<=n||Point.distanceLineSegmentSquared(t.x,t.y,s.width,s.height,s.width,0)<=n||Point.distanceLineSegmentSquared(t.x,t.y,s.width,0,0,0)<=n:t.distanceSquared(0,0)<=n&&t.distanceSquared(0,s.height)<=n&&t.distanceSquared(s.width,0)<=n&&t.distanceSquared(s.width,s.height)<=n}pn(){return!0}containsPoint(t){const i=Point.l();i.a(t),this.D.xt(i);const e=this.actualBounds;if(!e.isReal())return Point.s(i),!1;const s=this.diagram;if(s!==null&&s.Qm){const o=s.getInputOption(\"extraTouchThreshold\"),r=s.getInputOption(\"extraTouchArea\"),l=r/2,h=this.naturalBounds,a=this.getDocumentScale()*s.scale,c=1/a;if(h.width*ae&&(f=t),isFinite(i)&&i>s&&(u=i);break;case 5:isFinite(t)&&t>e&&(f=t),u=0,d&&(i=1/0);break;case 4:isFinite(i)&&i>s&&(u=i),f=0,d&&(t=1/0);break}const g=this.maxSize,p=this.minSize;f>g.width&&p.widthg.height&&p.heightu.height||this.mi>u.width)&&(r=!0)}}}r?this.n|=256:this.n&=-257,this.Li.isReal()||Util.o(\"Non-real actualBounds has been set. Object \"+this+\", actualBounds: \"+this.Li.toString()),this.ed(o,this.Li),this._n(!1),Rect.s(o)}ah(t,i,e,s){}commonArrange(t,i,e,s){if(this.Li.e(t,i,e,s),this.desiredSize.isReal())return;const n=this.se,o=this.$r,r=o.right+o.left,l=o.top+o.bottom,h=n.width+r,a=n.height+l;e+=r,s+=l;let c=this.zs(!0);switch(h===e&&a===s&&(c=0),c){case 0:(h>e||a>s)&&(this.ue(!0),this.ut(h>e?e:h,a>s?s:a,0,0));break;case 2:this.ue(!0),this.ut(e,s,0,0);break;case 5:this.ue(!0),this.ut(e,a,0,0);break;case 4:this.ue(!0),this.ut(h,s,0,0);break}}ed(t,i){const e=this.part;e!==null&&e.diagram!==null&&((e.selectionObject===this||e.resizeObject===this||e.rotateObject===this)&&e.o2(!0),this.C(),!t.equalsApproxClose(i)&&(e.ch(),this.k0(e)))}k0(t){this.portId!==null&&(t.o2(!0),t instanceof Node&&t.sA(this))}get shadowVisible(){return this.f!==null?this.f.P0:null}set shadowVisible(t){const i=this.shadowVisible;i!==t&&(this.Ht(),this.f.P0=t,this.Ke(!0),this.C(),this.t(\"shadowVisible\",i,t))}NR(t,i){const e=this.naturalBounds,s=this.oh,n=s.m11,o=s.m21,r=s.dx,l=s.m12,h=s.m22,a=s.dy;let c=0,f=0,u=c,d=f;c=u*n+d*o+r,f=u*l+d*h+a;let m=c,g=f,p=0,y=0;u=e.width+i,d=0,c=u*n+d*o+r,f=u*l+d*h+a;let x=Math.min(m,c),k=Math.min(g,f);p=Math.max(m+p,c)-x,y=Math.max(g+y,f)-k,m=x,g=k,u=e.width+i,d=e.height+i,c=u*n+d*o+r,f=u*l+d*h+a,x=Math.min(m,c),k=Math.min(g,f),p=Math.max(m+p,c)-x,y=Math.max(g+y,f)-k,m=x,g=k,u=0,d=e.height+i,c=u*n+d*o+r,f=u*l+d*h+a,x=Math.min(m,c),k=Math.min(g,f),p=Math.max(m+p,c)-x,y=Math.max(g+y,f)-k,m=x,g=k;const b=t.viewportBounds,P=b.x,M=b.y,L=b.width,C=b.height;return m>L+P||P>p+m||g>C+M||M>y+g}Ui(t,i){if(this.CR(t,i)||!this.visible)return;const e=this.opacity;if(e===0)return;let s=1;e!==1&&(s=t.globalAlpha,t.globalAlpha=s*e);let n=\"\";this.filter!==\"\"&&(n=t.filter,t.filter=this.filter);const o=this.D,r=this.panel;this.w0()===!0&&this.Fb();const l=this.part;let h=!1,a=0;if(l&&i.getRenderingHint(\"drawShadows\")&&(h=l.isShadowed,h)){const g=l.shadowOffset;a=Math.max(g.y,g.x)*i.scale*i.zi}const c=this instanceof Panel&&this.Qr(),f=this.Li;if(c&&(this.nA(h,t,!1,r),this.LR(t,i),this.oA(h,t,!1,r),this.rA(h,t,!1)),c||!c&&(f.width===0||f.height===0||isNaN(f.x)||isNaN(f.y))){e!==1&&(t.globalAlpha=s),this.filter!==\"\"&&(t.filter=n);return}const u=this.Xs();if(!i.Qh&&u&&this.NR(i,a)){e!==1&&(t.globalAlpha=s),this.filter!==\"\"&&(t.filter=n);return}let d=(this.n&256)!==0;if(t.clipInsteadOfFill&&(d=!1),this instanceof TextBlock&&(t.font=this.font),d){const g=r.pn()?r.naturalBounds:r.actualBounds;let p=Math.max(f.x,g.x),y=Math.max(f.y,g.y),x=Math.min(f.right,g.right)-p,k=Math.min(f.bottom,g.bottom)-y;const b=this.oi;if(b!==null&&(p=b.x,y=b.y,x=b.width,k=b.height),p>f.width+f.x||f.x>g.width+g.x){e!==1&&(t.globalAlpha=s),this.filter!==\"\"&&(t.filter=n);return}t.save(),t.beginPath(),t.rect(p,y,x,k),t.clip()}if(u){if(!l.isVisible()){e!==1&&(t.globalAlpha=s),this.filter!==\"\"&&(t.filter=n);return}if(h){const g=l.shadowOffset;t.shadowsSet(g.x*i.scale*this.scale*i.zi,g.y*i.scale*this.scale*i.zi,l.shadowBlur),t.shadowsOn(),t.shadowColor=l.shadowColor}}const m=this.naturalBounds;if(t.transform(o.m11,o.m12,o.m21,o.m22,o.dx,o.dy),this.nA(h,t,u,r),this.Ct!==null&&(t.commitTransform(),this.Rb(t,m,f)),this.oA(h,t,u,r),this.fh(t,i),this.rA(h,t,u),d&&(t.restore(),t.clearContextCache(this instanceof Panel)),!o.Ok()){const g=1/(o.m11*o.m22-o.m12*o.m21);t.transform(o.m22*g,-o.m12*g,-o.m21*g,o.m11*g,g*(o.m21*o.dy-o.m22*o.dx),g*(o.m12*o.dx-o.m11*o.dy))}e!==1&&(t.globalAlpha=s),this.filter!==\"\"&&(t.filter=n)}nA(t,i,e,s){t&&this.shadowVisible===!0?i.shadowsOn():t&&this.shadowVisible===!1&&i.shadowsOff(),t&&this.vb(s)&&this.shadowVisible===null&&i.shadowsOff()}oA(t,i,e,s){t&&(this.Ct!==null||this.vb(s))?(this.Ob(!0),this.shadowVisible===null&&i.shadowsOff()):this.Ob(!1)}rA(t,i,e){t&&this.l2()===!0&&i.shadowsOn(),e&&t&&i.shadowsOff()}AR(t,i,e){const s=this.part;let n=!1;s&&t.getRenderingHint(\"drawShadows\")&&(n=s.isShadowed),i.clipInsteadOfFill&&(n=!1),this.Xs()&&n&&i.shadowsOn(),n&&this.shadowVisible===!0?i.shadowsOn():n&&this.shadowVisible===!1&&i.shadowsOff();const o=this.panel;if(n&&this.vb(o)&&this.shadowVisible===null&&i.shadowsOff(),i._r){const r=t.computePixelRatio(),l=`drop-shadow(${i.shadowOffsetX/r}px ${i.shadowOffsetY/r}px ${i.shadowBlur/r/2}px ${i.shadowColor})`;this.background!==null&&e.Ct.setAttributeNS(null,\"filter\",l)}return n&&(this.Ct!==null||this.vb(o))?(this.Ob(!0),this.shadowVisible===null&&i.shadowsOff()):this.Ob(!1),n}TR(t,i,e,s){if(e._r){const n=i.computePixelRatio(),o=`drop-shadow(${e.shadowOffsetX/n}px ${e.shadowOffsetY/n}px ${e.shadowBlur/n/2}px ${e.shadowColor})`;this.h2(t,o)}s&&this.l2()===!0&&e.shadowsOn(),this.Xs()&&e.shadowsOff()}vb(t){return t===null?!1:(t.Qr()&&(t=t.panel),t.l2()||(t.type===Panel.Auto||t.type===Panel.Spot)&&t.findMainElement()!==this)}h2(t,i){}Rb(t,i,e){const s=this.x0(),n=i.x,o=i.y,r=i.width+s,l=i.height+s;this.dn(t,this.Ct,!0,!1,i,e),this.Ct instanceof Brush&&this.Ct.type===3?(t.beginPath(),t.rect(n-s/2,o-s/2,r,l),t.fillContext(this.Ct,!1,null)):t.fillRect(n-s/2,o-s/2,r,l)}lA(t,i){let e=t.DR(this);const s=t.rh!==null?t.rh:t.svg;if(e!==-1)if(e===0)if(s.Ct)s.Ct.after(i);else if(t.type===Panel.Table){const n=s.getElementsByClassName(\"gojs-ts\"),o=n.length!==0?n[0]:null;o!==null&&o.after(i)}else s.prepend(i);else{for(;e!==0&&!t.elt(e-1).isVisibleObject();)e--;if(e===0)s.prepend(i);else{const n=t.elt(e-1).svg;n!==null?n.after(i):s.appendChild(i)}}}CR(t,i){if(!(t instanceof SVGContext))return!1;if(!this.visible||this.opacity===0)return this.svg!==null&&this.svg.parentNode!==null&&this.svg.remove(),!0;const e=this.Li;if(this.Xs()&&(!this.isVisible()||e.width===0||e.height===0||isNaN(e.x)||isNaN(e.y)))return this.svg!==null&&this.svg.parentNode!==null&&this.svg.remove(),!0;const s=this.panel,n=this.sd(t);if(this._c(t,i,n))return this.hA(this.svg),this.svg.parentElement!==null?(this.Xs()&&(t.lastDrawnPart=this.svg),!0):(this.Xs()?(t.lastDrawnPart!==null?t.lastDrawnPart.after(this.svg):t.diagramGroup.prepend(this.svg),t.lastDrawnPart=this.svg):s&&this.lA(s,this.svg),!0);if(this.Ke(!1),this.Xs()&&this.isShadowed){const m=this.shadowOffset;t.shadowsSet(m.x*i.scale*this.scale*i.zi,m.y*i.scale*this.scale*i.zi,this.shadowBlur),t.shadowsOn(),t.shadowColor=this.shadowColor}this instanceof TextBlock&&(t.font=this.font),t.currentElement=null;const o=this.D,r=this instanceof Panel,l=this instanceof Panel?this.Qr():!1,h=this.svg;if(this.w0()===!0&&this.Fb(),t.setCurrentTransform(1,0,0,1,0,0),t.outerGroup=!1,n)if(t.outerGroup=!0,r&&l)t.newGroup(1,0,0,1,0,0),this.svg=t.lastCreatedElement;else if(r&&this.isClipping){const m=this.findMainElement();let g=0,p=0;m!==null&&(g=m.actualBounds.x,p=m.actualBounds.y),t.newGroup(o.m11,o.m12,o.m21,o.m22,o.dx+g,o.dy+p),this.svg=t.lastCreatedElement,m!==null&&t.createOrUpdateClipGroup(this,m.actualBounds),t.currentElement=t.lastCreatedElement}else r?(t.newGroup(o.m11,o.m12,o.m21,o.m22,o.dx,o.dy),this.svg=t.lastCreatedElement):t.newGroup(1,0,0,1,0,0);const a=this.naturalBounds;r||t.setCurrentTransform(o.m11,o.m12,o.m21,o.m22,o.dx,o.dy),this.background!==null&&(r?(l&&t.setCurrentTransform(o.m11,o.m12,o.m21,o.m22,o.dx,o.dy),this.Rb(t,a,e),l&&t.setCurrentTransform(1,0,0,1,0,0)):(t.setCurrentTransform(o.m11,o.m12,o.m21,o.m22,o.dx,o.dy),this.Rb(t,a,e)),t.currentElement.Ct=t.lastCreatedElement,t.currentElement.prepend(t.lastCreatedElement));const c=this.AR(i,t,t.currentElement);this.fh(t,i),r&&t.endGroup(),t.outerGroup&&t.endGroup();const f=t.surface.Hu,u=r?this.svg:t.currentElement;if(h!==null&&u!==h&&h.parentNode===this.panel.svg){const m=this.svg.getAttribute(\"filter\");return m!==null&&u.setAttribute(\"filter\",m),h.replaceWith(u),this.svg=u,u!==null&&this.M0(t,s,e,u),!0}if(this.svg=u,f!==null&&u===null&&t.dummyGroup(),u===null)return!0;this.M0(t,s,e,u),this.TR(u,i,t,c);const d=this.Xs()?this.opacity*t.globalAlpha:this.opacity;if(d!==1&&u.setAttributeNS(null,\"opacity\",d.toString()),this.filter!==\"\"&&u.setAttributeNS(null,\"filter\",this.filter),this.Xs()){if(h!==null&&u!==h&&h.parentNode===t.diagramGroup){const m=h.getAttribute(\"filter\");m!==null&&u.setAttribute(\"filter\",m),h.replaceWith(u)}else t.lastDrawnPart?t.lastDrawnPart.after(u):t.diagramGroup.prepend(u);t.lastDrawnPart=u}else s!==null&&this.lA(s,u);return f!==null&&f(this,u),this.hA(u),!0}hA(t){const i=this,e=t.dataset;i instanceof GraphObject&&(i.portId!==null&&(e.portId=i.portId),i instanceof Panel&&(isNaN(i.itemIndex)||(e.itemIndex=i.itemIndex.toString()),i instanceof Part&&(e.className=Util.sn(i),i.key!==void 0&&(e.key=i.key.toString()),i.containingGroup!==null&&(e.group=i.containingGroup.key.toString()),i instanceof Link&&(i.fromNode!==null&&i.fromNode.key!==void 0&&(e.fromKey=i.fromNode.key.toString()),i.fromPortId!==\"\"&&(e.fromPortId=i.fromPortId),i.toNode!==null&&i.toNode.key!==void 0&&(e.toKey=i.toNode.key.toString()),i.toPortId!==\"\"&&(e.toPortId=i.toPortId)))))}M0(t,i,e,s){let n=(this.n&256)!==0;if(t.clipInsteadOfFill&&(n=!1),!n){s.removeAttributeNS(null,\"clip-path\");return}const o=i.pn()?i.naturalBounds:i.actualBounds;let r=Math.max(e.x,o.x),l=Math.max(e.y,o.y),h=Math.min(e.right,o.right)-r,a=Math.min(e.bottom,o.bottom)-l;const c=this.oi;c!==null&&(r=c.x,l=c.y,h=c.width,a=c.height);const f=new Rect(r,l,Math.max(h,0),Math.max(a,0));this instanceof Panel&&this.D.copy().yw().Vg(f),s.setAttributeNS(null,\"clip-path\",`path(' M ${f.x},${f.y} L ${f.width+f.x} ${f.y} L ${f.width+f.x} ${f.height+f.y} L ${f.x} ${f.height+f.y} z') view-box`)}FR(){if(this.svg===null)return;const t=this.svg.innerHTML.match(/url\\(#((CLIP|GRAD).+?)\\)/g),i=this.svg.ownerDocument;if(t!==null)for(const e of t){const s=i.getElementById(e.split(\"#\")[1].slice(0,-1));s!==null&&s.remove()}this.svg.remove()}LR(t,i){const e=this.Li,s=this.Xi,n=this.Ct;n!==null&&t.commitTransform(),n!==null&&(this.dn(t,n,!0,!1,s,e),n instanceof Brush&&n.type===3?(t.beginPath(),t.rect(e.x,e.y,e.width,e.height),t.fillContext(n,!1,null)):t.fillRect(e.x,e.y,e.width,e.height)),this.fh(t,i)}fh(t,i){}tf(){this.Ke(!0)}_c(t,i,e){const s=this.svg;if(this.RR()){if(this.tf(),this.Ke(!1),s===null)return!1;const c=s.getAttribute(\"clip-path\");if(c!==null&&c.includes(\"url\")){const u=t.svg.getElementById(c.split(\"#\")[1].slice(0,-1));u!==null&&u.remove()}return s.getAttribute(\"filter\")&&s.removeAttribute(\"filter\"),!1}if(s===null)return!1;if(!this.visible)return s.remove(),!1;if(s.nodeName!==\"g\"&&e||s.nodeName===\"g\"&&!e)return!1;const n=this.D,o=\"matrix(\"+n.m11+\", \"+n.m12+\", \"+n.m21+\", \"+n.m22+\", \"+n.dx+\", \"+n.dy+\")\",r=this instanceof Panel,l=r?this.Qr():!1;if(!(r&&l))if(this instanceof Picture){const c=this.Ib;t.setCurrentTransform(n.m11,n.m12,n.m21,n.m22,n.dx,n.dy),c!==null&&t.amendImageTransform(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7]),e?s.lastElementChild.setAttributeNS(null,\"transform\",t.getCurrentTransform()):s.setAttributeNS(null,\"transform\",t.getCurrentTransform())}else if(e&&!r)if(this instanceof Shape){const c=s.getElementsByTagName(\"path\");for(let f=0;f=.1;){if(g){for(l=o[d++%h],l-=r;l<0;)l+=o[d++%h],m=!m;g=!1}else l=o[d++%h];l>u&&(l=u);let p=Math.sqrt(l*l/(1+f*f));a<0&&(p=-p),i+=p,e+=f*p,m?t.lineTo(i,e):t.moveTo(i,e),u-=l,m=!m}}dn(t,i,e,s,n,o){let r=1,l=1;if(typeof i==\"string\"){e?t.fillStyle=i:t.strokeStyle=i;return}else if(i.type===1){e?t.fillStyle=i.color:t.strokeStyle=i.color;return}let h;const a=this.x0();r=n.width,l=n.height,s?(r=o.width,l=o.height):e||(r+=a,l+=a);const c=t instanceof CanvasSurfaceContext;if(c&&i.yn&&(i.type===4||i.ef===r&&i.Eb===l))h=i.yn;else{let f=0,u=0,d=0,m=0,g=0,p=0,y=0,x=0;if(s?(y=o.x,x=o.y):e||(y-=a/2,x-=a/2),f=i.start.x*r+i.start.offsetX+y,u=i.start.y*l+i.start.offsetY+x,d=i.end.x*r+i.end.offsetX+y,m=i.end.y*l+i.end.offsetY+x,i.type===2)h=t.createLinearGradient(f,u,d,m);else if(i.type===3)p=isNaN(i.endRadius)?Math.max(r,l)/2:i.endRadius,isNaN(i.startRadius)?(g=0,p=Math.max(r,l)/2):g=i.startRadius,h=t.createRadialGradient(f,u,g,d,m,p);else if(i.type===4)try{h=t.createPattern(i.pattern,\"repeat\")}catch{h=null}else Util.we(i.type,\"Brush type\");if(i.type!==4){const k=i.colorStops;if(k!==null){const b=k.iterator;for(;b.next();)h.addColorStop(b.key,b.value)}}if(c&&(i.yn=h,h!==null&&(i.ef=r,i.Eb=l),h===null&&i.type===4&&i.ef!==-1)){i.ef=-1;const k=this.diagram;k!==null&&i.ef===-1&&Util.Oh(()=>{k.redraw()},600)}}e?t.fillStyle=h:t.strokeStyle=h}isContainedBy(t){return t instanceof Panel?this.vR(this,t):!1}vR(t,i){if(t===i||i===null)return!1;let e=t.panel;for(;e!==null;){if(e===i)return!0;e=e.panel}return!1}isVisibleObject(){if(!this.visible)return!1;const t=this.panel;return t!==null?t.isVisibleObject():!0}isEnabledObject(){let t=this instanceof Panel?this:this.panel;for(;t!==null&&t.isEnabled;)t=t.panel;return t===null}get enabledChanged(){return this.f!==null?this.f.S0:null}set enabledChanged(t){const i=this.enabledChanged;i!==t&&(t!==null&&Util.i(t,\"function\",GraphObject,\"enabledChanged\"),this.Ht(),this.f.S0=t,this.t(\"enabledChanged\",i,t))}Fb(){if(this.Bb()===!0){const t=this.Jr;if(t.vi(),!this.Li.isReal()||!this.se.isReal()){this.nd(!1);return}if(t.Ds(this.Li.x-this.se.x,this.Li.y-this.se.y),this.scale!==1||this.angle!==0){const i=this.naturalBounds;this.y0(t,i.x,i.y,i.width,i.height)}this.nd(!1),this.wa(!0)}if(this.w0()===!0){const t=this.panel;if(t===null)this.oh.set(this.Jr),this.ca=this.scale;else if(t.Es!==null){const i=this.oh;i.vi(),t.pn()?i.ic(t.oh):t.panel!==null&&i.ic(t.panel.oh),i.ic(this.Jr),this.ca=this.scale*t.ca}this.wa(!1)}}y0(t,i,e,s,n){if(this.et!==1&&t.et(this.et),this.Kt===0)return;const o=Point.l();o.setSpot(i,e,s,n,Spot.Center),t.cs(this.Kt,o.x,o.y),Point.s(o)}c(t){if(this.vo())return;t===void 0&&(t=!1),this.ue(!0),this._n(!0);const i=this.panel;i!==null&&!t&&i.c()}sf(){this.vo()||(this.ue(!0),this._n(!0))}nf(t){if(this.es())return;const i=this.panel;!t&&i!==null&&i.c(),this._n(!0)}Qc(){this.Bb()===!1&&(this.nd(!0),this.wa(!0))}a2(){this.wa(!0)}C(){const t=this.part;t!==null&&t.C()}zs(t){const i=this.stretch,e=this.panel;if(e===null)return this.Vo(i===1?0:i,t);if(e.type===Panel.Table)return this.N0(e.getRowDefinition(this.row),e.getColumnDefinition(this.column),t);if(e.type===Panel.Auto&&e.findMainElement()===this)return this.Vo(2,t);if(i===1){if(e.type===Panel.Spot&&e.findMainElement()===this)return this.Vo(2,t);const s=e.defaultStretch;return s===1?this.Vo(0,t):this.Vo(s,t)}return this.Vo(i,t)}N0(t,i,e){const s=this.stretch;if(s!==1)return this.Vo(s,e);let n=null,o=null;switch(t.stretch){case 1:case 5:break;case 4:o=!0;break;case 2:o=!0;break}switch(i.stretch){case 1:case 4:break;case 5:n=!0;break;case 2:n=!0;break}const r=this.panel.defaultStretch;return n===null&&(n=r===5||r===2),o===null&&(o=r===4||r===2),n===!0&&o===!0?this.Vo(2,e):n===!0?this.Vo(5,e):o===!0?this.Vo(4,e):this.Vo(0,e)}Vo(t,i){if(i)return t;if(t===0)return 0;const e=this.desiredSize;if(e.isReal())return 0;const s=!isNaN(e.width),n=!isNaN(e.height),o=this.angle;if(s)if(o!==90&&o!==270){if(t===5)return 0;if(t===2)return 4}else{if(t===4)return 0;if(t===2)return 5}if(n)if(o!==90&&o!==270){if(t===4)return 0;if(t===2)return 5}else{if(t===5)return 0;if(t===2)return 4}return t}get segmentOrientation(){return this.Bt!==null?this.Bt.C0:0}set segmentOrientation(t){const i=this.segmentOrientation;i!==t&&(this.Bt===null&&(this.Bt=new LinkElementSettings),this.Bt.C0=t,this.c(),this.t(\"segmentOrientation\",i,t),t===0&&(this.angle=0))}OR(){this.segmentOrientation=21}get segmentIndex(){return this.Bt!==null?this.Bt.L0:-1/0}set segmentIndex(t){t=Math.round(t);const i=this.segmentIndex;i!==t&&(this.Bt===null&&(this.Bt=new LinkElementSettings),this.Bt.L0=t,this.c(),this.t(\"segmentIndex\",i,t))}get segmentFraction(){return this.Bt!==null?this.Bt.A0:0}set segmentFraction(t){isNaN(t)||t<0?t=0:t>1&&(t=1);const i=this.segmentFraction;i!==t&&(this.Bt===null&&(this.Bt=new LinkElementSettings),this.Bt.A0=t,this.c(),this.t(\"segmentFraction\",i,t))}get segmentOffset(){return this.Bt!==null?this.Bt.T0:Point.Po}set segmentOffset(t){const i=this.segmentOffset;i.equals(t)||(t=t.N(),this.Bt===null&&(this.Bt=new LinkElementSettings),this.Bt.T0=t,this.c(),this.t(\"segmentOffset\",i,t))}get stretch(){return this.f!==null?this.f.to:1}set stretch(t){const i=this.stretch;i!==t&&(this.Ht(),this.f.to=t,this.c(),this.t(\"stretch\",i,t))}get name(){return this.f!==null?this.f.St:\"\"}set name(t){const i=this.name;i!==t&&(this.Ht(),this.f.St=t,this.part!==null&&this.part.D0(),this.t(\"name\",i,t))}get opacity(){return this.Jt}set opacity(t){const i=this.Jt;if(i!==t){Util.i(t,\"number\",GraphObject,\"opacity\"),(t<0||t>1)&&Util._(t,\"0 <= value <= 1\",GraphObject,\"opacity\"),this.Jt=t,this.t(\"opacity\",i,t);const e=this.diagram,s=this.part;e!==null&&s!==null&&e.C(s.Hh(s.actualBounds))}}get filter(){return this.$u}set filter(t){const i=this.$u;if(i!==t){this.$u=t,this.Ke(!0),this.t(\"filter\",i,t);const e=this.diagram,s=this.part;e!==null&&s!==null&&e.C(s.Hh(s.actualBounds))}}get visible(){return(this.n&1)!==0}set visible(t){const i=(this.n&1)!==0;if(i!==t){this.n=this.n^1,this.tf(),this.t(\"visible\",i,t);const e=this.panel;e!==null?e.c():this.Xs()&&this.Bi(t),this.C(),this.aA()}}get pickable(){return(this.n&2)!==0}set pickable(t){const i=(this.n&2)!==0;i!==t&&(this.n=this.n^2,this.t(\"pickable\",i,t))}get fromLinkableDuplicates(){return(this.n&4)!==0}set fromLinkableDuplicates(t){const i=(this.n&4)!==0;i!==t&&(this.n=this.n^4,this.t(\"fromLinkableDuplicates\",i,t))}get fromLinkableSelfNode(){return(this.n&8)!==0}set fromLinkableSelfNode(t){const i=(this.n&8)!==0;i!==t&&(this.n=this.n^8,this.t(\"fromLinkableSelfNode\",i,t))}get toLinkableDuplicates(){return(this.n&16)!==0}set toLinkableDuplicates(t){const i=(this.n&16)!==0;i!==t&&(this.n=this.n^16,this.t(\"toLinkableDuplicates\",i,t))}get toLinkableSelfNode(){return(this.n&32)!==0}set toLinkableSelfNode(t){const i=(this.n&32)!==0;i!==t&&(this.n=this.n^32,this.t(\"toLinkableSelfNode\",i,t))}get isPanelMain(){return(this.n&64)!==0}set isPanelMain(t){const i=(this.n&64)!==0;i!==t&&(this.n=this.n^64,this.c(),this.t(\"isPanelMain\",i,t))}get isActionable(){return(this.n&128)!==0}set isActionable(t){const i=(this.n&128)!==0;i!==t&&(this.n=this.n^128,this.t(\"isActionable\",i,t))}get background(){return this.Ct}set background(t){const i=this.Ct;i!==t&&(t!==null&&Brush.od(t,\"GraphObject.background\"),t instanceof Brush&&t.g(),this.Ct=t,this.C(),this.t(\"background\",i,t))}l2(){return(this.n&512)!==0}Ob(t){t?this.n|=512:this.n&=-513}$c(){return(this.n&1024)!==0}c2(t){t?this.n|=1024:this.n&=-1025}Bb(){return(this.n&2048)!==0}nd(t){t?this.n|=2048:this.n&=-2049}w0(){return(this.n&4096)!==0}wa(t){t?this.n|=4096:this.n&=-4097}vo(){return(this.n&8192)!==0}ue(t){t?this.n|=8192:this.n&=-8193}es(){return(this.n&16384)!==0}_n(t){t?this.n|=16384:this.n&=-16385}RR(){return(this.n&32768)!==0}Ke(t){t?this.n|=32768:this.n&=-32769}get part(){if(this.Xs())return this;if(this.Zr!==null)return this.Zr;let t=this;for(t=t.panel;t;){if(t instanceof Part)return this.Zr=t,t;t=t.panel}return null}get svg(){return this.Db}set svg(t){this.Db=t}Fu(){this.svg=null}get panel(){return this.Vs}xa(t){this.Vs=t,this.svg!==null&&this.svg.remove()}get layer(){const t=this.part;return t!==null?t.layer:null}get diagram(){const t=this.part;return t!==null?t.diagram:null}get position(){return this.at}set position(t){const i=t.x,e=t.y,s=this.at,n=s.x,o=s.y;n!==i&&(!isNaN(n)||!isNaN(i))||o!==e&&(!isNaN(o)||!isNaN(e))?(t=t.copy(),this.f2(t,n,o)&&this.t(\"position\",new Point(n,o),t)):this.u2()}u2(){}f2(t,i,e){return this.at=t,this.nf(),!0}bc(t,i,e){this.at.x===t&&this.at.y===i||(this.at.e(t,i),this.Qc())}get actualBounds(){return this.Li}get scale(){return this.et}set scale(t){const i=this.et;i!==t&&(t<=0&&Util.o(\"GraphObject.scale for \"+this+\" must be greater than zero, not: \"+t),this.et=t,this.c(),this.t(\"scale\",i,t))}get angle(){return this.Kt}set angle(t){const i=this.Kt;if(i!==t){if(t=t%360,t<0&&(t+=360),i===t)return;this.Kt=t,this.aA(),this.c(),this.t(\"angle\",i,t)}}get desiredSize(){return this.ze}set desiredSize(t){const i=t.width,e=t.height,s=this.ze,n=s.width,o=s.height;if((n!==i&&(!isNaN(n)||!isNaN(i))||o!==e&&(!isNaN(o)||!isNaN(e)))&&(t=t.N(),this.ze=t,this.c(),this instanceof Shape&&this.ee(),this.t(\"desiredSize\",s,t),this.$c())){const r=this.part;r!==null&&(this.ya(r,\"width\"),this.ya(r,\"height\"))}}get width(){return this.ze.width}set width(t){const i=this.ze.width;if(i!==t&&(!isNaN(i)||!isNaN(t))){const e=this.ze,s=new Size(t,this.ze.height).g();if(this.ze=s,this.c(),this instanceof Shape&&this.ee(),this.t(\"desiredSize\",e,s),this.$c()){const n=this.part;n!==null&&this.ya(n,\"width\")}}}get height(){return this.ze.height}set height(t){const i=this.ze.height;if(i!==t&&(!isNaN(i)||!isNaN(t))){const e=this.ze,s=new Size(this.ze.width,t).g();if(this.ze=s,this.c(),this instanceof Shape&&this.ee(),this.t(\"desiredSize\",e,s),this.$c()){const n=this.part;n!==null&&this.ya(n,\"height\")}}}get minSize(){return this.f!==null?this.f.xr:Size.lu}set minSize(t){const i=this.minSize;i.equals(t)||(t=t.copy(),isNaN(t.width)&&(t.width=0),isNaN(t.height)&&(t.height=0),t.g(),this.Ht(),this.f.xr=t,this.c(),this.t(\"minSize\",i,t))}get maxSize(){return this.f!==null?this.f.br:Size.eC}set maxSize(t){const i=this.maxSize;i.equals(t)||(t=t.copy(),isNaN(t.width)&&(t.width=1/0),isNaN(t.height)&&(t.height=1/0),t.g(),this.Ht(),this.f.br=t,this.c(),this.t(\"maxSize\",i,t))}get measuredBounds(){return this.se}get naturalBounds(){return this.Xi}x0(){return 0}get margin(){return this.$r}set margin(t){typeof t==\"number\"&&(t=new Margin(t));const i=this.$r;i.equals(t)||(t=t.N(),this.$r=t,this.c(),this.t(\"margin\",i,t))}get D(){return this.Bb()===!0&&this.Fb(),this.Jr}get Es(){return this.w0()===!0&&this.Fb(),this.oh}trigger(t,i,e){let s=null;return typeof t==\"string\"?s=new AnimationTrigger(t,i,e):s=t,s.ke=this,this.ys===null&&(this.ys=new GMap),this.ys.set(s.propertyName,s),this}get ys(){return this.f!==null?this.f.ys:null}set ys(t){this.ys!==t&&(this.Ht(),this.f.ys=t)}get wr(){return this.f!==null?this.f.wr:0}set wr(t){this.wr!==t&&(this.Ht(),this.f.wr=t)}get alignment(){return this.ri}set alignment(t){const i=this.ri;i.equals(t)||(t.isNoSpot()&&!t.isDefault()&&Util.o(\"GraphObject.alignment for \"+this+\" must be a real Spot or Spot.Default, not: \"+t),t=t.N(),this.ri=t,this.nf(),this.t(\"alignment\",i,t))}get column(){return this.Bo}set column(t){t=Math.round(t);const i=this.Bo;i!==t&&(t<0&&Util._(t,\">= 0\",GraphObject,\"column\"),this.Bo=t,this.c(),this.t(\"column\",i,t),this.svg!==null&&this.svg.remove())}get columnSpan(){return this.f!==null?this.f.F0:1}set columnSpan(t){t=Math.round(t);const i=this.columnSpan;i!==t&&(t<1&&Util._(t,\">= 1\",GraphObject,\"columnSpan\"),this.Ht(),this.f.F0=t,this.c(),this.t(\"columnSpan\",i,t))}get row(){return this.Ju}set row(t){t=Math.round(t);const i=this.Ju;i!==t&&(t<0&&Util._(t,\">= 0\",GraphObject,\"row\"),this.Ju=t,this.c(),this.t(\"row\",i,t),this.svg!==null&&this.svg.remove())}get rowSpan(){return this.f!==null?this.f.R0:1}set rowSpan(t){t=Math.round(t);const i=this.rowSpan;i!==t&&(t<1&&Util._(t,\">= 1\",GraphObject,\"rowSpan\"),this.Ht(),this.f.R0=t,this.c(),this.t(\"rowSpan\",i,t))}get spanAllocation(){return this.f!==null?this.f.v0:null}set spanAllocation(t){const i=this.spanAllocation;i!==t&&(t!==null&&Util.i(t,\"function\",GraphObject,\"spanAllocation\"),this.Ht(),this.f.v0=t,this.c(),this.t(\"spanAllocation\",i,t))}get alignmentFocus(){return this.Wc}set alignmentFocus(t){const i=this.Wc;i.equals(t)||(t=t.N(),this.Wc=t,this.c(),this.t(\"alignmentFocus\",i,t))}get portId(){return this.Wu}set portId(t){const i=this.Wu;if(i!==t){const e=this.part;e!==null&&!(e instanceof Node)&&Util.o(\"Cannot set portID on a Link: \"+t);const s=e;i!==null&&s!==null&&s.d2(this),this.Wu=t,t!==null&&s!==null&&(s.wn=!0,s.cA(this)),this.t(\"portId\",i,t)}}ba(){const t=this.part;if(t instanceof Node&&(this.portId!==null||this===t.port)){const i=t.diagram;i!==null&&!i.undoManager.isUndoingRedoing&&t.sA(this)}}aA(){const t=this.diagram;t===null||t.undoManager.isUndoingRedoing||(this instanceof Panel?this instanceof Node?this.invalidateConnectedLinks():this.walkVisualTreeFrom(this,i=>{i.ba()}):this.ba())}get toSpot(){return this.q!==null?this.q.ua:Spot.None}set toSpot(t){const i=this.toSpot;i.equals(t)||(t=t.N(),this.Xe(),this.q.ua=t,this.t(\"toSpot\",i,t),this.ba())}get toEndSegmentLength(){return this.q!==null?this.q.ga:10}set toEndSegmentLength(t){const i=this.toEndSegmentLength;i!==t&&(t<0&&Util._(t,\">= 0\",GraphObject,\"toEndSegmentLength\"),this.Xe(),this.q.ga=t,this.t(\"toEndSegmentLength\",i,t),this.ba())}get toShortLength(){return this.q!==null?this.q.pa:0}set toShortLength(t){const i=this.toShortLength;i!==t&&(this.Xe(),this.q.pa=t,this.t(\"toShortLength\",i,t),this.ba())}get toLinkable(){return this.q!==null?this.q.O0:null}set toLinkable(t){const i=this.toLinkable;i!==t&&(this.Xe(),this.q.O0=t,this.t(\"toLinkable\",i,t))}get toMaxLinks(){return this.q!==null?this.q.I0:1/0}set toMaxLinks(t){const i=this.toMaxLinks;i!==t&&(t<0&&Util._(t,\">= 0\",GraphObject,\"toMaxLinks\"),this.Xe(),this.q.I0=t,this.t(\"toMaxLinks\",i,t))}get fromSpot(){return this.q!==null?this.q.fa:Spot.None}set fromSpot(t){const i=this.fromSpot;i.equals(t)||(t=t.N(),this.Xe(),this.q.fa=t,this.t(\"fromSpot\",i,t),this.ba())}get fromEndSegmentLength(){return this.q!==null?this.q.da:10}set fromEndSegmentLength(t){const i=this.fromEndSegmentLength;i!==t&&(t<0&&Util._(t,\">= 0\",GraphObject,\"fromEndSegmentLength\"),this.Xe(),this.q.da=t,this.t(\"fromEndSegmentLength\",i,t),this.ba())}get fromShortLength(){return this.q!==null?this.q.ma:0}set fromShortLength(t){const i=this.fromShortLength;i!==t&&(this.Xe(),this.q.ma=t,this.t(\"fromShortLength\",i,t),this.ba())}get fromLinkable(){return this.q!==null?this.q.E0:null}set fromLinkable(t){const i=this.fromLinkable;i!==t&&(this.Xe(),this.q.E0=t,this.t(\"fromLinkable\",i,t))}get fromMaxLinks(){return this.q!==null?this.q.B0:1/0}set fromMaxLinks(t){const i=this.fromMaxLinks;i!==t&&(t<0&&Util._(t,\">= 0\",GraphObject,\"fromMaxLinks\"),this.Xe(),this.q.B0=t,this.t(\"fromMaxLinks\",i,t))}get cursor(){return this.f!==null?this.f.Pl:\"\"}set cursor(t){const i=this.cursor;i!==t&&(Util.i(t,\"string\",GraphObject,\"cursor\"),this.Ht(),this.f.Pl=t,this.t(\"cursor\",i,t))}get click(){return this.f!==null?this.f.Tr:null}set click(t){const i=this.click;i!==t&&(t!==null&&Util.i(t,\"function\",GraphObject,\"click\"),this.Ht(),this.f.Tr=t,this.t(\"click\",i,t))}get doubleClick(){return this.f!==null?this.f.Dr:null}set doubleClick(t){const i=this.doubleClick;i!==t&&(t!==null&&Util.i(t,\"function\",GraphObject,\"doubleClick\"),this.Ht(),this.f.Dr=t,this.t(\"doubleClick\",i,t))}get contextClick(){return this.f!==null?this.f.Fr:null}set contextClick(t){const i=this.contextClick;i!==t&&(t!==null&&Util.i(t,\"function\",GraphObject,\"contextClick\"),this.Ht(),this.f.Fr=t,this.t(\"contextClick\",i,t))}get mouseEnter(){return this.f!==null?this.f.Er:null}set mouseEnter(t){const i=this.mouseEnter;i!==t&&(t!==null&&Util.i(t,\"function\",GraphObject,\"mouseEnter\"),this.Ht(),this.f.Er=t,this.t(\"mouseEnter\",i,t))}get mouseLeave(){return this.f!==null?this.f.Br:null}set mouseLeave(t){const i=this.mouseLeave;i!==t&&(t!==null&&Util.i(t,\"function\",GraphObject,\"mouseLeave\"),this.Ht(),this.f.Br=t,this.t(\"mouseLeave\",i,t))}get mouseOver(){return this.f!==null?this.f.Rr:null}set mouseOver(t){const i=this.mouseOver;i!==t&&(t!==null&&Util.i(t,\"function\",GraphObject,\"mouseOver\"),this.Ht(),this.f.Rr=t,this.t(\"mouseOver\",i,t))}get mouseHover(){return this.f!==null?this.f.vr:null}set mouseHover(t){const i=this.mouseHover;i!==t&&(t!==null&&Util.i(t,\"function\",GraphObject,\"mouseHover\"),this.Ht(),this.f.vr=t,this.t(\"mouseHover\",i,t))}get mouseHold(){return this.f!==null?this.f.Or:null}set mouseHold(t){const i=this.mouseHold;i!==t&&(t!==null&&Util.i(t,\"function\",GraphObject,\"mouseHold\"),this.Ht(),this.f.Or=t,this.t(\"mouseHold\",i,t))}get mouseDragEnter(){return this.f!==null?this.f.U0:null}set mouseDragEnter(t){const i=this.mouseDragEnter;i!==t&&(t!==null&&Util.i(t,\"function\",GraphObject,\"mouseDragEnter\"),this.Ht(),this.f.U0=t,this.t(\"mouseDragEnter\",i,t))}get mouseDragLeave(){return this.f!==null?this.f.V0:null}set mouseDragLeave(t){const i=this.mouseDragLeave;i!==t&&(t!==null&&Util.i(t,\"function\",GraphObject,\"mouseDragLeave\"),this.Ht(),this.f.V0=t,this.t(\"mouseDragLeave\",i,t))}get mouseDrop(){return this.f!==null?this.f.Ir:null}set mouseDrop(t){const i=this.mouseDrop;i!==t&&(t!==null&&Util.i(t,\"function\",GraphObject,\"mouseDrop\"),this.Ht(),this.f.Ir=t,this.t(\"mouseDrop\",i,t))}get actionDown(){return this.f!==null?this.f.z0:null}set actionDown(t){const i=this.actionDown;i!==t&&(t!==null&&Util.i(t,\"function\",GraphObject,\"actionDown\"),this.Ht(),this.f.z0=t,this.t(\"actionDown\",i,t))}get actionMove(){return this.f!==null?this.f.X0:null}set actionMove(t){const i=this.actionMove;i!==t&&(t!==null&&Util.i(t,\"function\",GraphObject,\"actionMove\"),this.Ht(),this.f.X0=t,this.t(\"actionMove\",i,t))}get actionUp(){return this.f!==null?this.f.K0:null}set actionUp(t){const i=this.actionUp;i!==t&&(t!==null&&Util.i(t,\"function\",GraphObject,\"actionUp\"),this.Ht(),this.f.K0=t,this.t(\"actionUp\",i,t))}get actionCancel(){return this.f!==null?this.f.Y0:null}set actionCancel(t){const i=this.actionCancel;i!==t&&(t!==null&&Util.i(t,\"function\",GraphObject,\"actionCancel\"),this.Ht(),this.f.Y0=t,this.t(\"actionCancel\",i,t))}get toolTip(){return this.f!==null?this.f.Ur:null}set toolTip(t){const i=this.toolTip;i!==t&&(this.Ht(),this.f.Ur=t,this.t(\"toolTip\",i,t))}get contextMenu(){return this.f!==null?this.f.Vr:null}set contextMenu(t){const i=this.contextMenu;i!==t&&(this.Ht(),this.f.Vr=t,this.t(\"contextMenu\",i,t))}findBindingPanel(){let t=this instanceof Panel?this:this.panel;for(;t!==null;){if(t.g2())return t;t=t.panel}return null}bind(t,i,e,s){return this.of(t,i,e,s),this}bindTwoWay(t,i,e,s){return this.of(t,i,e,s).makeTwoWay(),this}bindModel(t,i,e,s){return this.of(t,i,e,s).ofModel(),this}bindObject(t,i,e,s,n){return this.of(t,i,e,s).ofObject(n),this}theme(t,i,e,s,n){return this.uh(t,i,e,s,n),this}themeData(t,i,e,s,n){return this.uh(t,i,e,s,n).ofData(),this}themeObject(t,i,e,s,n,o){return this.uh(t,i,e,s,n).ofObject(o),this}themeModel(t,i,e,s,n){return this.uh(t,i,e,s,n).ofModel(),this}of(t,i,e,s){let n=null;return typeof t==\"string\"?n=new Binding(t,i,e,s):n=t,this.G0(n),n}uh(t,i,e,s,n){let o=null;return typeof t==\"string\"?o=new ThemeBinding(t,i,e,s,n):o=t,this.G0(o),o}G0(t){t.ke=this;const i=this.findBindingPanel();i!==null&&i.fA()&&Util.o(\"Cannot add a Binding to a template that has already been copied: \"+t),this.Ai===null&&(this.Ai=new List),this.Ai.add(t)}set(t){return Object.assign(this,t),this}attach(t){return GraphObject.m2(this,t),this}apply(t){return t(this),this}setProperties(t){return Diagram.a0(this,t),this}static build(t,i,...e){const s=GraphObject.j0.get(t);if(typeof s==\"function\"){const n=s([t].concat(e));if(n instanceof GraphObject)return i&&n.setProperties(i),n}Util.o('GraphObject.build invoked object builder \"'+t+'\", but it did not return an Object')}static make(t,...i){let e=arguments,s=null,n=null;if(typeof t==\"function\")n=t;else if(typeof t==\"string\"){const r=GraphObject.j0.get(t);typeof r==\"function\"?(e=Array.prototype.slice.call(e),s=r(e),Util.wt(s)||Util.o('GraphObject.make invoked object builder \"'+t+'\", but it did not return an Object')):n=root.go[t]}s===null&&((n==null||!n.constructor)&&Util.o(\"GraphObject.make requires a class function or GoJS class name or name of an object builder, not: \"+t),s=new n);let o=1;if(s instanceof Diagram&&e.length>1){const r=s,l=e[1];(typeof l==\"string\"||l instanceof HTMLDivElement)&&(r.pS(l),o++)}for(let r=o;r{const i=\"#f5f5f5\",e=\"#737373\",s=\"#d4d4d4\",n=\"#737373\",o=\"#a3a3a3\",r=2.76142374915397,l=2.761423749153969,h=new Panel(Panel.Auto,{isActionable:!0,enabledChanged:(a,c)=>{if(a instanceof Panel){const f=a.findObject(\"ButtonBorder\");if(f!==null)if(a._buttonFillNormal===void 0&&(a._buttonFillNormal=f.fill),c){let u=null;a.layer!==null&&a.diagram!==null&&a.isVisibleObject()&&(u=a.layer.findObjectAt(a.diagram.lastInput.documentPoint)),u===a||u!==null&&u.isContainedBy(a)?f.fill=a._buttonFillOver:f.fill=a._buttonFillNormal}else f.fill=a._buttonFillDisabled}},cursor:\"pointer\"}).attach({_buttonFillNormal:void 0,_buttonStrokeNormal:void 0,_buttonFillOver:s,_buttonStrokeOver:n,_buttonFillDisabled:o}).add(new Shape(\"RoundedRectangle\",{name:\"ButtonBorder\",spot1:new Spot(0,0,r,l),spot2:new Spot(1,1,-r,-l),parameter1:2,fill:i,stroke:e}));return h.mouseEnter=(a,c,f)=>{if(!c.isEnabledObject()||!(c instanceof Panel))return;const u=c.findObject(\"ButtonBorder\");u instanceof Shape&&(c._buttonFillNormal===void 0&&(c._buttonFillNormal=u.fill),u.fill=c._buttonFillOver,c._buttonStrokeNormal===void 0&&(c._buttonStrokeNormal=u.stroke),u.stroke=c._buttonStrokeOver)},h.mouseLeave=(a,c,f)=>{if(!c.isEnabledObject()||!(c instanceof Panel))return;const u=c.findObject(\"ButtonBorder\");u instanceof Shape&&(c._buttonFillNormal!==void 0&&(u.fill=c._buttonFillNormal),c._buttonStrokeNormal!==void 0&&(u.stroke=c._buttonStrokeNormal))},h}),GraphObject.defineBuilder(\"TreeExpanderButton\",t=>{const i=GraphObject.build(\"Button\");return i.attach({_treeExpandedFigure:\"MinusLine\",_treeCollapsedFigure:\"PlusLine\",visible:!1}),i.add(new Shape(\"MinusLine\",{name:\"ButtonIcon\",stroke:\"#0a0a0a\",strokeWidth:2,desiredSize:Size.hu}).bindObject(\"figure\",\"isTreeExpanded\",(e,s)=>{const n=s.panel;return e?n._treeExpandedFigure:n._treeCollapsedFigure})),i.bindObject(\"visible\",\"isTreeLeaf\",e=>!e),i.click=(e,s)=>{let n=s.part;if(n instanceof Adornment&&(n=n.adornedPart),!(n instanceof Node))return;const o=n.diagram;if(o===null)return;const r=o.commandHandler;if(n.isTreeExpanded){if(!r.canCollapseTree(n))return}else if(!r.canExpandTree(n))return;e.handled=!0,n.isTreeExpanded?r.collapseTree(n):r.expandTree(n)},i}),GraphObject.defineBuilder(\"SubGraphExpanderButton\",t=>{const i=GraphObject.build(\"Button\");return i.attach({_subGraphExpandedFigure:\"MinusLine\",_subGraphCollapsedFigure:\"PlusLine\"}),i.add(new Shape(\"MinusLine\",{name:\"ButtonIcon\",stroke:\"#0a0a0a\",strokeWidth:2,desiredSize:Size.hu}).bindObject(\"figure\",\"isSubGraphExpanded\",(e,s)=>{const n=s.panel;return e?n._subGraphExpandedFigure:n._subGraphCollapsedFigure})),i.click=(e,s)=>{let n=s.part;if(n instanceof Adornment&&(n=n.adornedPart),!(n instanceof Group))return;const o=n.diagram;if(o===null)return;const r=o.commandHandler;if(n.isSubGraphExpanded){if(!r.canCollapseSubGraph(n))return}else if(!r.canExpandSubGraph(n))return;e.handled=!0,n.isSubGraphExpanded?r.collapseSubGraph(n):r.expandSubGraph(n)},i}),GraphObject.defineBuilder(\"ToolTip\",t=>new Adornment(Panel.Auto,{isShadowed:!0,shadowColor:\"rgba(0, 0, 0, .4)\",shadowOffset:new Point(0,2)}).add(new Shape(\"RoundedRectangle\",{name:\"Border\",parameter1:1,fill:\"#f5f5f5\",strokeWidth:0,spot1:new Spot(0,0,4,6),spot2:new Spot(1,1,-4,-4)}))),GraphObject.defineBuilder(\"ContextMenu\",t=>new Adornment(Panel.Vertical,{background:\"#f5f5f5\",isShadowed:!0,shadowColor:\"rgba(0, 0, 0, .4)\",shadowOffset:new Point(0,2)}).bindObject(\"background\",\"\",i=>i.adornedPart!==null&&i.hasPlaceholder()?null:\"#f5f5f5\")),GraphObject.defineBuilder(\"ContextMenuButton\",t=>{const i=GraphObject.build(\"Button\");i.stretch=5;const e=i.findObject(\"ButtonBorder\");return e instanceof Shape&&(e.figure=\"Rectangle\",e.strokeWidth=0,e.spot1=new Spot(0,0,4,6),e.spot2=new Spot(1,1,-4,-4)),i}),GraphObject.defineBuilder(\"PanelExpanderButton\",t=>{const i=GraphObject.takeBuilderArgument(t,\"COLLAPSIBLE\"),e=GraphObject.build(\"Button\");e.attach({_buttonExpandedFigure:\"M0 0 M0 6 L4 2 8 6 M8 8\",_buttonCollapsedFigure:\"M0 0 M0 2 L4 6 8 2 M8 8\",\"ButtonBorder.fill\":\"rgba(0, 0, 0, 0)\",_buttonFillNormal:\"rgba(0, 0, 0, 0)\",\"ButtonBorder.stroke\":null,_buttonStrokeNormal:null,_buttonFillOver:\"rgba(0, 0, 0, .2)\",_buttonStrokeOver:null}),e.add(new Shape({name:\"ButtonIcon\",strokeWidth:2}).bindObject(\"geometryString\",\"visible\",n=>n?e._buttonExpandedFigure:e._buttonCollapsedFigure,void 0,i));const s=e.findObject(\"ButtonBorder\");return s instanceof Shape&&(s.stroke=null,s.fill=\"rgba(0, 0, 0, 0)\"),e.click=(n,o)=>{if(!(o instanceof Panel))return;const r=o.diagram;if(r===null||r.isReadOnly)return;let l=o.findBindingPanel();if(l===null&&(l=o.part),l!==null){const h=l.findObject(i);h!==null&&(n.handled=!0,r.startTransaction(\"Collapse/Expand Panel\"),h.visible=!h.visible,r.commitTransaction(\"Collapse/Expand Panel\"))}},e}),GraphObject.defineBuilder(\"CheckBoxButton\",t=>{const i=GraphObject.takeBuilderArgument(t),e=GraphObject.build(\"Button\",{desiredSize:new Size(14,14)});e.attach({\"ButtonBorder.spot1\":new Spot(0,0,1,1),\"ButtonBorder.spot2\":new Spot(1,1,-1,-1)});const s=new Shape({name:\"ButtonIcon\",geometryString:\"M0 0 M0 8.85 L4.9 13.75 16.2 2.45 M16.2 16.2\",strokeWidth:2,stretch:2,geometryStretch:6,visible:!1});return i!==\"\"&&s.bindTwoWay(\"visible\",i),e.add(s),e.click=(n,o)=>{if(!(o instanceof Panel))return;const r=n.diagram;if(r===null||r.isReadOnly||i!==\"\"&&r.model.isReadOnly)return;n.handled=!0;const l=o.findObject(\"ButtonIcon\");r.startTransaction(\"checkbox\"),l!==null&&(l.visible=!l.visible),typeof o._doClick==\"function\"&&o._doClick(n,o),r.commitTransaction(\"checkbox\")},e}),GraphObject.defineBuilder(\"CheckBox\",t=>{const i=GraphObject.takeBuilderArgument(t),e=GraphObject.build(\"CheckBoxButton\",{name:\"Button\",isActionable:!1,margin:new Margin(0,1,0,0)},i),s=new Panel(\"Horizontal\",{isActionable:!0,cursor:e.cursor,margin:new Margin(1),mouseEnter:e.mouseEnter,mouseLeave:e.mouseLeave,click:e.click}).attach({_buttonFillNormal:e._buttonFillNormal,_buttonStrokeNormal:e._buttonStrokeNormal,_buttonFillOver:e._buttonFillOver,_buttonStrokeOver:e._buttonStrokeOver,_buttonFillDisabled:e._buttonFillDisabled,_buttonClick:e.click});return s.add(e),e.mouseEnter=null,e.mouseLeave=null,e.click=null,s})}}class GraphObjectTemplateSettings{gi;St;$n;Ai;Zn;Ks;Pl;Tr;Dr;Fr;Er;Br;Rr;vr;Or;U0;V0;Ir;z0;X0;K0;Y0;Ur;Vr;S0;v0;ys;xr;br;to;R0;F0;wr;P0;H0;q0;constructor(){this.gi=!1,this.St=\"\",this.$n=-1,this.Ai=null,this.Zn=null,this.Ks=null,this.Pl=\"\",this.Tr=null,this.Dr=null,this.Fr=null,this.Er=null,this.Br=null,this.Rr=null,this.vr=null,this.Or=null,this.U0=null,this.V0=null,this.Ir=null,this.z0=null,this.X0=null,this.K0=null,this.Y0=null,this.Ur=null,this.Vr=null,this.S0=null,this.v0=null,this.ys=null,this.xr=Size.lu,this.br=Size.eC,this.to=1,this.R0=1,this.F0=1,this.wr=0,this.P0=null,this.H0=null,this.q0=\"category\"}copy(){const t=new GraphObjectTemplateSettings;return t.St=this.St,t.$n=this.$n,t.Ai=this.Ai,t.Ks=this.Ks,t.Pl=this.Pl,t.Tr=this.Tr,t.Dr=this.Dr,t.Fr=this.Fr,t.Er=this.Er,t.Br=this.Br,t.Rr=this.Rr,t.vr=this.vr,t.Or=this.Or,t.U0=this.U0,t.V0=this.V0,t.Ir=this.Ir,t.z0=this.z0,t.X0=this.X0,t.K0=this.K0,t.Y0=this.Y0,t.Ur=this.Ur,t.Vr=this.Vr,t.S0=this.S0,t.v0=this.v0,t.ys=this.ys,t.xr=this.xr.N(),t.br=this.br.N(),t.to=this.to,t.R0=this.R0,t.F0=this.F0,t.wr=this.wr,t.P0=this.P0,t.H0=this.H0,t.q0=this.q0,t}}class STransform{m;constructor(){this.m=[1,0,0,1,0,0]}copy(){const t=new STransform;return t.m[0]=this.m[0],t.m[1]=this.m[1],t.m[2]=this.m[2],t.m[3]=this.m[3],t.m[4]=this.m[4],t.m[5]=this.m[5],t}translate(t,i){this.m[4]+=this.m[0]*t+this.m[2]*i,this.m[5]+=this.m[1]*t+this.m[3]*i}scale(t,i){this.m[0]*=t,this.m[1]*=t,this.m[2]*=i,this.m[3]*=i}rotate(t,i,e){if(t>=360?t-=360:t<0&&(t+=360),t===0)return;this.translate(i,e);let s=0,n=0;if(t===90)s=0,n=1;else if(t===180)s=-1,n=0;else if(t===270)s=0,n=-1;else{const a=t*Math.PI/180;s=Math.cos(a),n=Math.sin(a)}const o=this.m[0]*s+this.m[2]*n,r=this.m[1]*s+this.m[3]*n,l=this.m[0]*-n+this.m[2]*s,h=this.m[1]*-n+this.m[3]*s;this.m[0]=o,this.m[1]=r,this.m[2]=l,this.m[3]=h,this.translate(-i,-e)}}class SGradient{type;x1;y1;r1;x2;y2;r2;colors;pattern;constructor(t){this.type=t,this.x1=0,this.y1=0,this.r1=0,this.x2=0,this.y2=0,this.r2=0,this.colors=[],this.pattern=null}addColorStop(t,i){this.colors.push({offset:t,color:i})}}class SVGSurface{Ft;ai;aa;Hu;p2;constructor(t,i,e){const s=i===void 0?root.document:i;this.aa=s,this.p2=\"http://www.w3.org/2000/svg\";const n=\"http://www.w3.org/2000/xmlns/\";s!==void 0&&(this.Ft=this.makeElement(\"svg\",{width:\"1px\",height:\"1px\",viewBox:\"0 0 1 1\"}),this.style.display=\"block\",this.style.letterSpacing=\"normal\",this.style.wordSpacing=\"normal\",e||(this.style.position=\"absolute\"),this.Ft.setAttributeNS(n,\"xmlns\",this.p2),this.Ft.setAttributeNS(n,\"xmlns:xlink\",\"http://www.w3.org/1999/xlink\")),this.Hu=null,this.ai=new SVGContext(this,e)}resize(t,i,e,s){return this.width!==t||this.height!==i?(this.width=t,this.height=i,this.style.width=e+\"px\",this.style.height=s+\"px\",this.Ft.setAttributeNS(null,\"width\",e+\"px\"),this.Ft.setAttributeNS(null,\"height\",s+\"px\"),this.Ft.setAttributeNS(null,\"viewBox\",\"0 0 \"+e+\" \"+s),this.ai.w2.firstElementChild.setAttributeNS(null,\"width\",e+\"px\"),this.ai.w2.firstElementChild.setAttributeNS(null,\"height\",s+\"px\"),!0):!1}makeElement(t,i,e){const s=this.aa.createElementNS(this.p2,t);if(Util.wt(i))for(const n in i)s.setAttributeNS(n===\"href\"?\"http://www.w3.org/1999/xlink\":\"\",n,i[n]);return e!==void 0&&(s.textContent=e),s}getBoundingClientRect(){return this.Ft.getBoundingClientRect()}focus(){this.Ft.focus()}get width(){return this.Ft.width.baseVal.value}set width(t){this.Ft.setAttribute(\"width\",t+\"px\")}get height(){return this.Ft.height.baseVal.value}set height(t){this.Ft.setAttribute(\"height\",t+\"px\")}dispose(){this.aa=null}get style(){return this.Ft.style}}class SVGContext{rf;lf;xn;Ti;Ye;fillStyle;font;globalAlpha;lineCap;lineDashOffset;lineJoin;lineWidth;miterLimit;shadowBlur;shadowColor;shadowOffsetX;shadowOffsetY;strokeStyle;textAlign;imageSmoothingEnabled;clipInsteadOfFill;lastCreatedElement;hf;af;surface;svg;w2;uA;Vb;zo;dh;ka;currentElement;clipPathGroup;diagramGroup;lastDrawnPart;currentPath;outerGroup;pathAttributes;_r;Sr;filter;partClipRect;constructor(t,i){this.surface=t,this.svg=t.Ft,this.hf=[],this.af=[],this.fillStyle=\"#000000\",this.font=\"10px sans-serif\",this.globalAlpha=1,this.lineCap=\"butt\",this.lineDashOffset=0,this.lineJoin=\"miter\",this.lineWidth=1,this.miterLimit=10,this.shadowBlur=0,this.shadowColor=\"rgba(0, 0, 0, 0)\",this.shadowOffsetX=0,this.shadowOffsetY=0,this._r=!1,this.strokeStyle=\"#000000\",this.textAlign=\"start\",this.clipInsteadOfFill=!1,this.rf=0,this.lf=0,this.xn=0,this.lastCreatedElement=null,this.currentElement=null,this.Ti=[],this.pathAttributes={},this.Vb=!1,this.zo=null,this.dh=0,this.Ye=new STransform,this.clipPathGroup=this.newGroup2(),this.diagramGroup=this.newGroup2(\"gojs-diagram\"),this.lastDrawnPart=null,this.currentPath=null;const e=GSet.Eg++,s=this.makeElement(\"clipPath\",{id:\"mainClip\"+e}),n={x:0,y:0,width:t.width,height:t.height};s.appendChild(this.makeElement(\"rect\",n)),this.w2=s,this.svg.appendChild(this.clipPathGroup),this.clipPathGroup.appendChild(this.diagramGroup),this.svg.appendChild(s),this.clipPathGroup.setAttributeNS(null,\"clip-path\",\"url(#mainClip\"+e+\")\"),this.uA={},this.Sr=!!i,this.filter=\"\",this.partClipRect=null}setDiagramPosScale(t,i,e,s,n,o){this.diagramGroup===void 0?this.newGroup(t,i,e,s,n,o):this.diagramGroup.setAttribute(\"transform\",\"matrix(\"+t+\", \"+i+\", \"+e+\", \"+s+\", \"+n+\", \"+o+\")\")}resetInnerSVG(){this.diagramGroup!==null&&(this.diagramGroup.innerHTML=\"\")}arc(t,i,e,s,n,o,r,l){const h=2*Math.PI,a=1e-6,c=h-a,f=e*Math.cos(s),u=e*Math.sin(s),d=t+f,m=i+u,g=o?0:1;let p=o?s-n:n-s;(Math.abs(r-d)>a||Math.abs(l-m)>a)&&this.Ti.push([\"L\",d,+m]),p<0&&(p=p%h+h),p>c?(this.Ti.push([\"A\",e,e,0,1,g,t-f,i-u]),this.Ti.push([\"A\",e,e,0,1,g,d,m])):p>a&&this.Ti.push([\"A\",e,e,0,+(p>=Math.PI),g,t+e*Math.cos(n),i+e*Math.sin(n)])}beginPath(){this.Ti=[],this.pathAttributes={stroke:\"none\",fill:\"none\"}}endPath(t){this.UR(this.Ti,this.Ye,t||0)}bezierCurveTo(t,i,e,s,n,o){this.Ti.push([\"C\",t,i,e,s,n,o])}clearRect(t,i,e,s){}clip(){this.pathAttributes.clipPath=!0}closePath(){this.Ti.push([\"z\"])}createLinearGradient(t,i,e,s){const n=new SGradient(\"linear\");return n.x1=t,n.y1=i,n.x2=e,n.y2=s,n}createPattern(t,i){let e=\"\";t instanceof HTMLCanvasElement&&(e=t.toDataURL()),t instanceof HTMLImageElement&&(e=t.getAttribute(\"src\"));const s=this.uA;if(s[e])return\"url(#\"+s[e]+\")\";const n=\"PATTERN\"+GSet.Eg++,o={width:t.width,height:t.height,id:n,patternUnits:\"userSpaceOnUse\"},r={x:0,y:0,width:t.width,height:t.height,href:e},l=this.makeElement(\"pattern\",o);return l.appendChild(this.makeElement(Diagram.img,r)),this.svg.appendChild(l),s[e]=n,\"url(#\"+n+\")\"}createRadialGradient(t,i,e,s,n,o){const r=new SGradient(\"radial\");return r.x1=t,r.y1=i,r.r1=e,r.x2=s,r.y2=n,r.r2=o,r}amendImageTransform(t,i,e,s,n,o,r,l){const h=r/e,a=l/s;(n!==0||o!==0)&&this.Ye.translate(n,o),(h!==1||a!==1)&&this.Ye.scale(h,a),(t!==0||i!==0)&&this.Ye.translate(-t,-i)}drawImage(t,i,e,s,n,o,r,l,h){let a=\"\";t instanceof HTMLCanvasElement&&(a=t.toDataURL()),t instanceof HTMLImageElement&&(a=t.getAttribute(\"src\"));const c=t instanceof HTMLImageElement?t.naturalWidth:t.width,f=t instanceof HTMLImageElement?t.naturalHeight:t.height;s===void 0&&(o=i,r=e,l=s=c,h=n=f),s=s||0,n=n||0,o=o||0,r=r||0,l=l||0,h=h||0,this.amendImageTransform(i,e,s,n,o,r,l,h);const u={x:0,y:0,width:c||s,height:f||n,href:a};!Geo.K(s,l)||!Geo.K(n,h)?u.preserveAspectRatio=\"none\":a.toLowerCase().indexOf(\".svg\")===-1&&a.toLowerCase().indexOf(\"data:image/svg\")===-1&&(u.preserveAspectRatio=\"xMidYMid slice\"),(i!==0||e!==0||s!==c||n!==f)&&(s+=i,n+=e,u[\"clip-path\"]=`path('M ${i},${e} L ${s} ${e} L ${s} ${n} L ${i} ${n} z')`),this.processCommon(Diagram.img,u,this.Ye),this.rd(Diagram.img,u)}fill(t,i){t&&(this.pathAttributes[\"fill-rule\"]=\"evenodd\"),this.setFill(this.pathAttributes)}fillContext(t,i,e){this.clipInsteadOfFill?this.clip():this.fill(i,e)}createOrUpdateClipGroup(t,i){const e=this.newGroup(1,0,0,1,-i.x,-i.y);e.setAttributeNS(null,\"class\",\"spotClip\"),t.rh=e}fillRect(t,i,e,s){this.addRect(\"fill\",[t,i,e,s],this.Ye)}fillBackground(t,i,e,s){const n={x:t,y:i,width:e,height:s};this.processCommon(\"fill\",n,this.Ye),this.setFill(n),this.svg.prepend(this.makeElement(\"rect\",n))}fillText(t,i,e){this.addText(\"fill\",[t,i,e],this.Ye)}lineTo(t,i){this.Ti.push([\"L\",t,i])}moveTo(t,i){this.Ti.push([\"M\",t,i])}quadraticCurveTo(t,i,e,s){this.Ti.push([\"Q\",t,i,e,s])}rect(t,i,e,s){this.Ti.push([\"M\",t,i],[\"L\",t+e,i],[\"L\",t+e,i+s],[\"L\",t,i+s],[\"z\"])}restore(){this.Ye=this.hf.pop(),this.Ti=this.hf.pop();const t=this.hf.pop();this.fillStyle=t.fillStyle,this.font=t.font,this.globalAlpha=t.globalAlpha,this.lineCap=t.lineCap,this.lineDashOffset=t.lineDashOffset,this.lineJoin=t.lineJoin,this.lineWidth=t.lineWidth,this.miterLimit=t.miterLimit,this.shadowBlur=t.shadowBlur,this.shadowColor=t.shadowColor,this.shadowOffsetX=t.shadowOffsetX,this.shadowOffsetY=t.shadowOffsetY,this.strokeStyle=t.strokeStyle,this.textAlign=t.textAlign,this.partClipRect=t.partClipRect}save(){const t={fillStyle:this.fillStyle,font:this.font,globalAlpha:this.globalAlpha,lineCap:this.lineCap,lineDashOffset:this.lineDashOffset,lineJoin:this.lineJoin,lineWidth:this.lineWidth,miterLimit:this.miterLimit,shadowBlur:this.shadowBlur,shadowColor:this.shadowColor,shadowOffsetX:this.shadowOffsetX,shadowOffsetY:this.shadowOffsetY,strokeStyle:this.strokeStyle,textAlign:this.textAlign,partClipRect:this.partClipRect};this.hf.push(t);const i=[];for(let e=0;eh.offset>a.offset?1:-1);for(let h=0;h1&&this.af[this.af.length-2].setAttributeNS(null,\"clip-path\",'path(\"'+s+'\") view-box');return}if(n.d=s,this.processCommon(\"\",n,i),this.currentPath!==null){const r=this.currentPath;if(r.nodeName!==\"g\")for(const l in n)l!==\"transform\"&&r.setAttributeNS(null,l,n[l]);else{const l=r.getElementsByTagName(\"path\");for(const h in n)h!==\"transform\"&&l[e].setAttributeNS(null,h,n[h])}}else this.rd(\"path\",n)}VR(t){const i=[];for(let e=0;es?(this.scale(s/n,1),this.translate((n-s)/2,0)):s>n&&(this.scale(1,n/s),this.translate(0,(s-n)/2)),this.fillOrClip(i,e),n>s?(this.translate(-(n-s)/2,0),this.scale(1/(s/n),1)):s>n&&(this.translate(0,-(s-n)/2),this.scale(1,1/(n/s))),!0}strokeContext(){this.clipInsteadOfFill||this.stroke()}fillOrClip(t,i){this.clipInsteadOfFill?this.clip(i):this.fill(t,i)}shadowsSet(t,i,e){this.rf=t,this.lf=i,this.xn=e}shadowsOff(){this._r=!1,this.shadowOffsetX=0,this.shadowOffsetY=0,this.shadowBlur=0}shadowsOn(){this._r=!0,this.shadowOffsetX=this.rf,this.shadowOffsetY=this.lf,this.shadowBlur=this.xn}enableDash(t,i){const e=this.U;e.setLineDash!==void 0&&(e.setLineDash(t),e.lineDashOffset=i)}disableDash(){const t=this.U;t.setLineDash!==void 0&&(t.setLineDash(CanvasSurfaceContext.EmptyArray),t.lineDashOffset=0)}clearContextCache(t){t&&(this.zb=\"\"),this.Xb=\"\",this.Kb=\"\"}removePartFromView(t){}static EmptyArray=Object.freeze([])}var BrushType=(w=>(w[w.Solid=1]=\"Solid\",w[w.Linear=2]=\"Linear\",w[w.Radial=3]=\"Radial\",w[w.Pattern=4]=\"Pattern\",w))(BrushType||{}),ColorSpace=(w=>(w[w.Lab=1]=\"Lab\",w[w.HSL=2]=\"HSL\",w[w.Oklch=3]=\"Oklch\",w))(ColorSpace||{});class ColorNumbers{n0;n1;n2;n3;constructor(){this.n0=0,this.n1=0,this.n2=0,this.n3=0}}class Brush{h;$;Pa;ni;gs;W0;J0;bn;$0;yn;ef;Eb;constructor(t,i){if(GSet.ji(this),this.h=!1,t===void 0)this.$=1,this.Pa=\"black\";else if(typeof t==\"string\"){const s=Util.Ih(BrushType,t);s!==null?(this.$=s,this.Pa=\"black\"):(this.$=1,this.Pa=t)}else this.$=t,this.Pa=\"black\";const e=this.$;if(e===2?(this.ni=Spot.TopCenter,this.gs=Spot.BottomCenter):e===3?(this.ni=Spot.Center,this.gs=Spot.Center):(this.ni=Spot.None,this.gs=Spot.None),this.W0=0,this.J0=NaN,this.bn=null,this.$0=null,this.yn=null,this.ef=0,this.Eb=0,i){const s={};for(const n in i)isFinite(parseFloat(n))?this.addColorStop(parseFloat(n),i[n]):s[n]=i[n];Object.assign(this,s)}}copy(){const t=new Brush;return t.$=this.$,t.Pa=this.Pa,t.ni=this.ni.N(),t.gs=this.gs.N(),t.W0=this.W0,t.J0=this.J0,this.bn!==null&&(t.bn=this.bn.copy()),t.$0=this.$0,t}g(){return this.h=!0,this.bn!==null&&this.bn.g(),this}ot(){return Object.isFrozen(this)&&Util.o(\"cannot thaw constant: \"+this),this.h=!1,this.bn!==null&&this.bn.ot(),this}li(t){t in BrushType?this.type=t:Util.rr(this,t)}toString(){let t=\"Brush(\";if(this.type===1)t+=this.color;else if(this.type===2?t+=\"Linear \":this.type===3?t+=\"Radial \":this.type===4?t+=\"Pattern \":t+=\"(unknown) \",t+=this.start+\" \"+this.end,this.colorStops!==null){const i=this.colorStops.iterator;for(;i.next();){const e=i.key,s=i.value;t+=\" \"+e+\":\"+s}}return t+=\")\",t}addColorStop(t,i){return this.h&&Util.T(this),(typeof t!=\"number\"||!isFinite(t)||t>1||t<0)&&Util._(t,\"0 <= loc <= 1\",Brush,\"addColorStop:loc\"),Util.i(i,\"string\",Brush,\"addColorStop:color\"),this.bn===null&&(this.bn=new GMap),this.bn.set(t,i),this.$===1&&(this.type=2),this.yn=null,this}get type(){return this.$}set type(t){this.h&&Util.T(this,t),this.$=t,this.start.isNoSpot()&&(t===2?this.start=Spot.TopCenter:t===3&&(this.start=Spot.Center)),this.end.isNoSpot()&&(t===2?this.end=Spot.BottomCenter:t===3&&(this.end=Spot.Center)),this.yn=null}get color(){return this.Pa}set color(t){this.h&&Util.T(this,t),this.Pa=t,this.yn=null}get start(){return this.ni}set start(t){this.h&&Util.T(this,t),this.ni=t.N(),this.yn=null}get end(){return this.gs}set end(t){this.h&&Util.T(this,t),this.gs=t.N(),this.yn=null}get startRadius(){return this.W0}set startRadius(t){this.h&&Util.T(this,t),t<0&&Util._(t,\">= zero\",Brush,\"startRadius\"),this.W0=t,this.yn=null}get endRadius(){return this.J0}set endRadius(t){this.h&&Util.T(this,t),t<0&&Util._(t,\">= zero\",Brush,\"endRadius\"),this.J0=t,this.yn=null}get colorStops(){return this.bn}set colorStops(t){this.h&&Util.T(this,t),this.bn=t,this.yn=null}get pattern(){return this.$0}set pattern(t){this.h&&Util.T(this,t),this.$0=t,this.yn=null}static randomColor(t,i){t===void 0&&(t=128),i===void 0&&(i=Math.max(t,255));const e=Math.abs(i-t);let s=Math.floor(t+Math.random()*e).toString(16),n=Math.floor(t+Math.random()*e).toString(16),o=Math.floor(t+Math.random()*e).toString(16);return s.length<2&&(s=\"0\"+s),n.length<2&&(n=\"0\"+n),o.length<2&&(o=\"0\"+o),\"#\"+s+n+o}static isValidColor(t){return root.CSS?root.CSS.supports(\"color\",t):!0}static lighten(t){return Brush.lightenBy(t)}lightenBy(t,i){this.h&&Util.T(this);const e=t===void 0||typeof t!=\"number\"?.2:t,s=i===void 0?3:i;if(this.type===1)Brush.To(this.color),this.color=Brush.ld(e,s);else if((this.type===2||this.type===3)&&this.colorStops!==null){const n=this.colorStops.iterator;for(;n.next();)Brush.To(n.value),this.addColorStop(n.key,Brush.ld(e,s))}return this}static lightenBy(t,i,e){const s=i===void 0||typeof i!=\"number\"?.2:i,n=e===void 0?3:e;return Brush.To(t),Brush.ld(s,n)}static darken(t){return Brush.darkenBy(t)}darkenBy(t,i){this.h&&Util.T(this);const e=t===void 0||typeof t!=\"number\"?.2:t,s=i===void 0?3:i;if(this.type===1)Brush.To(this.color),this.color=Brush.ld(-e,s);else if((this.type===2||this.type===3)&&this.colorStops!==null){const n=this.colorStops.iterator;for(;n.next();)Brush.To(n.value),this.addColorStop(n.key,Brush.ld(-e,s))}return this}static darkenBy(t,i,e){const s=i===void 0||typeof i!=\"number\"?.2:i,n=e===void 0?3:e;return Brush.To(t),Brush.ld(-s,n)}static mix(t,i,e){Brush.To(t);const s=Brush.G.n0,n=Brush.G.n1,o=Brush.G.n2,r=Brush.G.n3;Brush.To(i),e===void 0&&(e=.5);const l=Math.round((Brush.G.n0-s)*e+s),h=Math.round((Brush.G.n1-n)*e+n),a=Math.round((Brush.G.n2-o)*e+o),c=Math.round((Brush.G.n3-r)*e+r);return`rgba(${l}, ${h}, ${a}, ${c})`}isDark(){if(this.type===1)return Brush.isDark(this.color);if((this.type===2||this.type===3)&&this.colorStops!==null){const t=this.colorStops;if(this.type===3)return Brush.isDark(t.first().value);if(t.get(.5)!==null)return Brush.isDark(t.get(.5));if(t.count===2){const l=t.toArray();return Brush.isDark(Brush.mix(l[0].value,l[1].value))}const i=t.iterator;let e=-1,s=-1,n=1,o=1;for(;i.next();){const l=i.key,h=Math.abs(.5-i.key);n>o&&h=n&&hs){let l=e;e=s,s=l,l=n,n=o,o=l}const r=s-e;return Brush.isDark(Brush.mix(t.get(e),t.get(s),1-o/r))}return!1}static isDark(t){return t?t instanceof Brush?t.isDark():(Brush.To(t),(299*Brush.G.n0+587*Brush.G.n1+114*Brush.G.n2)/1e3<128):!1}static ld(t,i){switch(i){case 1:return Brush.zR(),Brush.io.n0=Math.min(100,Math.max(0,Brush.io.n0+100*t)),Brush.XR(),\"rgba(\"+Brush.G.n0+\", \"+Brush.G.n1+\", \"+Brush.G.n2+\", \"+Brush.G.n3+\")\";case 2:return Brush.IM(),Brush.Ei.n2=Math.min(100,Math.max(0,Brush.Ei.n2+100*t)),\"hsla(\"+Brush.Ei.n0+\", \"+Brush.Ei.n1+\"%, \"+Brush.Ei.n2+\"%, \"+Brush.Ei.n3+\")\";case 3:return Brush.KR(),Brush.eo.n0=Math.min(100,Math.max(0,Brush.eo.n0+100*t)),Brush.YR(),\"rgba(\"+Brush.G.n0+\", \"+Brush.G.n1+\", \"+Brush.G.n2+\", \"+Brush.G.n3+\")\";default:Util.o(\"Unknown color space: \"+i)}}static To(t){const i=Brush.tl;if(i===null)return;i.clearRect(0,0,1,1),i.fillStyle=\"#000000\";const e=i.fillStyle;if(i.fillStyle=t,i.fillStyle!==e){i.fillRect(0,0,1,1);const s=i.getImageData(0,0,1,1).data;Brush.G.n0=s[0],Brush.G.n1=s[1],Brush.G.n2=s[2],Brush.G.n3=s[3]/255}else{i.fillStyle=\"#FFFFFF\";const s=i.fillStyle;i.fillStyle=t,i.fillStyle,Brush.G.n0=0,Brush.G.n1=0,Brush.G.n2=0,Brush.G.n3=1}}static IM(){const t=Brush.G.n0/255,i=Brush.G.n1/255,e=Brush.G.n2/255,s=Math.max(t,i,e),n=Math.min(t,i,e),o=s-n;let r,l;const h=(s+n)/2;if(o===0)r=l=0;else{switch(s){case t:r=(i-e)/o%6;break;case i:r=(e-t)/o+2;break;case e:r=(t-i)/o+4;break}r*=60,r<0&&(r+=360),l=o/(1-Math.abs(2*h-1))}Brush.Ei.n0=Math.round(r),Brush.Ei.n1=Math.round(l*100),Brush.Ei.n2=Math.round(h*100),Brush.Ei.n3=Brush.G.n3}static dE(){const t=Brush.Ei.n0,i=Brush.Ei.n1/100,e=Brush.Ei.n2/100;let s,n,o;const r=(1-Math.abs(2*e-1))*i,l=t/60,h=r*(1-Math.abs(l%2-1));l>=0&&l<1?(s=r,n=h,o=0):l>=1&&l<2?(s=h,n=r,o=0):l>=2&&l<3?(s=0,n=r,o=h):l>=3&&l<4?(s=0,n=h,o=r):l>=4&&l<5?(s=h,n=0,o=r):l>=5&&l<6&&(s=r,n=0,o=h);const a=e-.5*r;s+=a,n+=a,o+=a,Brush.G.n0=Math.round(s*255),Brush.G.n1=Math.round(n*255),Brush.G.n2=Math.round(o*255),Brush.G.n3=Brush.Ei.n3}static zR(){Brush.dA(),Brush.GR()}static XR(){Brush.jR(),Brush.gA()}static b2(t){return t/=255,t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}static k2(t){return t<=.0031308?t*12.92:1.055*Math.pow(t,1/2.4)-.055}static dA(){const t=Brush.b2(Brush.G.n0),i=Brush.b2(Brush.G.n1),e=Brush.b2(Brush.G.n2);Brush.Rt.n0=.4124564*t+.3575761*i+.1804375*e,Brush.Rt.n1=.2126729*t+.7151522*i+.072175*e,Brush.Rt.n2=.0193339*t+.119192*i+.9503041*e,Brush.Rt.n3=Brush.G.n3}static gA(){const t=3.2404542*Brush.Rt.n0+-1.5371385*Brush.Rt.n1+-.4985314*Brush.Rt.n2,i=-.969266*Brush.Rt.n0+1.8760108*Brush.Rt.n1+.041556*Brush.Rt.n2,e=.0556434*Brush.Rt.n0+-.2040259*Brush.Rt.n1+1.0572252*Brush.Rt.n2;Brush.G.n0=Brush.k2(t)*255,Brush.G.n1=Brush.k2(i)*255,Brush.G.n2=Brush.k2(e)*255,Brush.G.n3=Brush.Rt.n3,Brush.G.n0=Math.round(Brush.G.n0),Brush.G.n0>255?Brush.G.n0=255:Brush.G.n0<0&&(Brush.G.n0=0),Brush.G.n1=Math.round(Brush.G.n1),Brush.G.n1>255?Brush.G.n1=255:Brush.G.n1<0&&(Brush.G.n1=0),Brush.G.n2=Math.round(Brush.G.n2),Brush.G.n2>255?Brush.G.n2=255:Brush.G.n2<0&&(Brush.G.n2=0)}static P2=216/24389;static Yb=24389/27;static hd=[95.047,100,108.883];static M2(t){return t>Brush.P2?Math.pow(t,1/3):(Brush.Yb*t+16)/116}static GR(){const t=Brush.M2(Brush.Rt.n0*100/Brush.hd[0]),i=Brush.M2(Brush.Rt.n1*100/Brush.hd[1]),e=Brush.M2(Brush.Rt.n2*100/Brush.hd[2]);Brush.io.n0=116*i-16,Brush.io.n1=500*(t-i),Brush.io.n2=200*(i-e),Brush.io.n3=Brush.Rt.n3}static mA(t){const i=t*t*t;return i>Brush.P2?i:(116*t-16)/Brush.Yb}static jR(){const t=(Brush.io.n0+16)/116,i=Brush.io.n1/500+t,e=t-Brush.io.n2/200;Brush.Rt.n0=Brush.hd[0]/100*Brush.mA(i),Brush.Rt.n1=Brush.hd[1]/100*(Brush.io.n0>Brush.Yb*Brush.P2?Math.pow(t,3):Brush.io.n0/Brush.Yb),Brush.Rt.n2=Brush.hd[2]/100*Brush.mA(e),Brush.Rt.n3=Brush.io.n3}static HR(){let t=.8190224*Brush.Rt.n0+.3619062*Brush.Rt.n1+-.1288737*Brush.Rt.n2,i=.03298366*Brush.Rt.n0+.9292868*Brush.Rt.n1+.03614466*Brush.Rt.n2,e=.04817719*Brush.Rt.n0+.2642395*Brush.Rt.n1+.6335478*Brush.Rt.n2;t=Math.cbrt(t),i=Math.cbrt(i),e=Math.cbrt(e),Brush.ci.n0=.2104542*t+.7936177*i+-.004072046*e,Brush.ci.n1=1.977998*t+-2.428592*i+.4505937*e,Brush.ci.n2=.02590403*t+.7827717*i+-.8086757*e,Brush.ci.n3=Brush.Rt.n3,Brush.ci.n0*=100}static qR(){Brush.ci.n0/=100;let t=.9999999*Brush.ci.n0+.3963377*Brush.ci.n1+.2158037*Brush.ci.n2,i=1.000000009*Brush.ci.n0+-.1055613*Brush.ci.n1+-.06385417*Brush.ci.n2,e=1.00000005*Brush.ci.n0+-.08948418*Brush.ci.n1+-1.291485*Brush.ci.n2;t=t**3,i=i**3,e=e**3,Brush.Rt.n0=1.2268798*t+-.5578149*i+.281391*e,Brush.Rt.n1=-.04057576*t+1.112286*i+-.07171106*e,Brush.Rt.n2=-.07637294*t+-.4214933*i+1.586924*e,Brush.Rt.n3=Brush.ci.n3}static WR(){const t=Math.atan2(Brush.ci.n2,Brush.ci.n1)*180/Math.PI;Brush.eo.n0=Brush.ci.n0,Brush.eo.n1=Math.sqrt(Brush.ci.n1**2+Brush.ci.n2**2),Brush.eo.n2=t>=0?t:t+360,Brush.eo.n3=Brush.ci.n3}static JR(){Brush.ci.n0=Brush.eo.n0,Brush.ci.n1=Brush.eo.n1*Math.cos(Brush.eo.n2*Math.PI/180),Brush.ci.n2=Brush.eo.n1*Math.sin(Brush.eo.n2*Math.PI/180),Brush.ci.n3=Brush.eo.n3}static KR(){Brush.dA(),Brush.HR(),Brush.WR()}static YR(){Brush.JR(),Brush.qR(),Brush.gA()}static od(t,i){typeof t==\"string\"||t instanceof Brush||Util.o(\"Value for \"+i+\" must be a color string or a Brush, not \"+t)}static Solid=1;static Linear=2;static Radial=3;static Pattern=4;static Lab=1;static HSL=2;static tl=Diagram.isUsingDOM()?new CanvasSurface(null,void 0,{willReadFrequently:!0}).ai:null;static G=new ColorNumbers;static Ei=new ColorNumbers;static Rt=new ColorNumbers;static io=new ColorNumbers;static ci=new ColorNumbers;static eo=new ColorNumbers}class PanelLayout{St=\"Base\";static Layouts=new GMap;static definePanelLayout(t,i){i.name=t,PanelLayout.Layouts.set(t,i)}get name(){return this.St}set name(t){this.St=t}constructor(){}get classType(){return Panel}measure(t,i,e,s,n,o,r){}measureElement(t,i,e,s,n){t.ut(i,e,s,n)}arrange(t,i,e){}arrangeElement(t,i,e,s,n,o){t.Xt(i,e,s,n,o)}remeasureObject(t){t.sf()}Ui(t,i,e){}}class PanelLayoutPosition extends PanelLayout{constructor(){super()}measure(t,i,e,s,n,o,r){const l=s.length,h=t.Xo();for(let a=0;a0&&(S=Math.max(Math.abs(k.x*o+k.offsetX-(M.x*o+M.offsetX))-g,0)),r>0&&(N=Math.max(Math.abs(k.y*r+k.offsetY-(M.y*r+M.offsetY))-g,0));const T=Size.l();T.e(0,0);const A=t.Xo();for(let v=0;v1,ot=it.columnSpan>1;(ct||ot)&&!(Ky&&(S=Math.max(y-dt,0)),b.Di=b.Di+S,b.actual=b.st+S,y=Math.max(y-(S+(mt?dt:0)),0)}if(it.columnSpan===1&&(N===0||N===4)){b=t.getColumnDefinition(j);const dt=b.computeEffectiveSpacing(),mt=b.st===0;S=Math.max(ut-b.actual,0),S+(mt?dt:0)>p&&(S=Math.max(p-dt,0)),b.Di=b.Di+S,b.actual=b.st+S,p=Math.max(p-(S+(mt?dt:0)),0)}(ct||ot)&&it.sf()}}}Util.tt(f);let A=0,D=0;l=t.columnCount;for(let K=0;K=t.rowCount);Z++)b=t.getRowDefinition(I.row+Z),S=0,N===2||N===4?S=Math.max(b.minimum,V[I.row+Z]===0?b.maximum:Math.min(V[I.row+Z],b.maximum)):S=Math.max(b.minimum,isNaN(b.ge)?b.maximum:Math.min(b.ge,b.maximum)),E.height+=S,_+=b.minimum;for(let Z=1;Z=t.columnCount);Z++)b=t.getColumnDefinition(I.column+Z),S=0,N===2||N===5?S=Math.max(b.minimum,U[I.column+Z]===0?b.maximum:Math.min(U[I.column+Z],b.maximum)):S=Math.max(b.minimum,isNaN(b.ge)?b.maximum:Math.min(b.ge,b.maximum)),E.width+=S,et+=b.minimum;X.width+=E.width,X.height+=E.height;const tt=I.margin,it=tt.right+tt.left,ct=tt.top+tt.bottom;I.ut(X.width,X.height,et,_);const ot=I.measuredBounds,lt=Math.max(ot.width+it,0),st=Math.max(ot.height+ct,0);let nt=0;for(let Z=0;Z=t.rowCount);Z++)b=t.getRowDefinition(I.row+Z),nt+=b.total||0;if(nt=t.rowCount);at++){b=t.getRowDefinition(I.row+at);const ut=b.st||0,gt=rt(I,b,ft);b.actual=Math.min(b.maximum,ut+gt),b.st!==ut&&(Z-=b.st-ut)}}for(;Z>0;){const rt=b.st||0;if(isNaN(b.height)&&b.maximum>rt&&(b.actual=Math.min(b.maximum,rt+Z),b.st!==rt&&(Z-=b.st-rt)),b.index===0)break;b=t.getRowDefinition(b.index-1)}}let ht=0;for(let Z=0;Z=t.columnCount);Z++)b=t.getColumnDefinition(I.column+Z),ht+=b.total||0;if(ht=t.columnCount);at++){b=t.getColumnDefinition(I.column+at);const ut=b.st||0,gt=rt(I,b,ft);b.actual=Math.min(b.maximum,ut+gt),b.st!==ut&&(Z-=b.st-ut)}}for(;Z>0;){const rt=b.st||0;if(isNaN(b.width)&&b.maximum>rt&&(b.actual=Math.min(b.maximum,rt+Z),b.st!==rt&&(Z-=b.st-rt)),b.index===0)break;b=t.getColumnDefinition(b.index-1)}}}Util.tt(u),Size.s(E),Size.s(X),V!==void 0&&Util.tt(V),U!==void 0&&Util.tt(U);let Y=0,G=0;const H=t.desiredSize,J=t.maxSize;N=t.zs(!0),A=0,D=0;let z=0,W=0;l=t.columnCount;for(let K=0;K0){for(;p!==c&&(u[p]===void 0||u[p].st===0);)p++;p=Math.max(Math.min(p,c-1),0),m=-u[p].position}let y=Math.min(t.leftIndex,f-1);if(d.length>0){for(;y!==f&&(d[y]===void 0||d[y].st===0);)y++;y=Math.max(Math.min(y,f-1),0),g=-d[y].position}let x=0,k=0;for(;x!==c&&u[x]===void 0;)x++;for(;k!==c&&d[k]===void 0;)k++;const b=t.part;let P=t.getRowDefinition(x),M=t.getColumnDefinition(k);for(let C=0;C=t.rowCount);st++){const nt=t.getRowDefinition(C+st);nt.st!==0&&(L.height+=nt.total)}for(let st=1;st=t.columnCount);st++){const nt=t.getColumnDefinition(N+st);nt.st!==0&&(L.width+=nt.total)}const O=T.st+L.width,B=S.st+L.height;let X=h,E=a;const V=O,U=B,Y=h,G=a;let H=O,J=B;h+O>e.width&&(H=Math.max(e.width-h,0)),a+B>e.height&&(J=Math.max(e.height-a,0));let z=R.alignment,W=0,q=0,Q=0,K=0;if(z.isDefault()){z=t.defaultAlignment,z.isSpot()||(z=Spot.Center),W=z.x,q=z.y,Q=z.offsetX,K=z.offsetY;const st=T.alignment,nt=S.alignment;st.isSpot()&&(W=st.x,Q=st.offsetX),nt.isSpot()&&(q=nt.y,K=nt.offsetY)}else W=z.x,q=z.y,Q=z.offsetX,K=z.offsetY;(isNaN(W)||isNaN(q))&&(W=.5,q=.5,Q=0,K=0);let I=v.width,j=v.height;const $=R.margin,et=$.left+$.right,_=$.top+$.bottom,tt=R.N0(S,T,!1);isNaN(R.desiredSize.width)&&(tt===2||tt===5)&&(I=Math.max(O-et,0)),isNaN(R.desiredSize.height)&&(tt===2||tt===4)&&(j=Math.max(B-_,0));const it=R.maxSize,ct=R.minSize;I=Math.min(it.width,I),j=Math.min(it.height,j),I=Math.max(ct.width,I),j=Math.max(ct.height,j);const ot=I+et,lt=j+_;X+=V*W-ot*W+Q+$.left,E+=U*q-lt*q+K+$.top,R.visible&&(Rect.contains(Y,G,H,J,X,E,v.width,v.height)?R.Xt(X,E,I,j):R.Xt(X,E,I,j,new Rect(Y,G,H,J)))}}}Size.s(L);for(let C=0;C0&&(b.figure===\"LineV\"||b.figure===\"LineH\")){if(i.lineWidth=b.strokeWidth,t.dn(i,b.stroke,!1,!1,l,h),i.beginPath(),b.figure===\"LineV\"){const D=Math.floor((m-o)/o);for(let F=D;F<=D+f;F++){const R=F*o+m;0<=R&&R<=a&&this.jb(F,P,L,N)&&(i.moveTo(R,0),i.lineTo(R,c))}}else if(b.figure===\"LineH\"){const D=Math.floor((g-r)/r);for(let F=D;F<=D+u;F++){const R=F*r+g;0<=R&&R<=c&&this.jb(F,P,L,N)&&(i.moveTo(0,R),i.lineTo(a,R))}}i.stroke(),i.endPath()}else if(b.fill!==null){if(t.dn(i,b.fill,!0,!1,l,h),b.figure===\"BarV\"){let D=b.width;isNaN(D)&&(D=o);const F=Math.floor((m-o)/o);for(let R=F;R<=F+f;R++){const v=R*o+m;0<=v+D&&v<=a&&this.jb(R,P,L,N)&&i.fillRect(v,0,D,c)}}else if(b.figure===\"BarH\"){let D=b.height;isNaN(D)&&(D=r);const F=Math.floor((g-r)/r);for(let R=F;R<=F+u;R++){const v=R*r+g;0<=v+D&&v<=c&&this.jb(R,P,L,N)&&i.fillRect(0,v,a,D)}}}T&&i.disableDash(),C!==1&&(i.globalAlpha=S)}}jb(t,i,e,s){if(i<0)return t%i===e;if(t%i!==e)return!1;const n=s.length;for(let o=0;ol&&r.push(d)}}t.xi.Z0=i}L2(t){return t===\"LineV\"||t===\"BarV\"}$R(t){let i=1,e=1;const s=t.L.r,n=s.length;for(let l=0;l=g){const z=Point.l();c.yA(z),O=c.midAngle,A!==0&&(v=c.computeAngle(L,A,O),L.Kt=v,L.ue(!0),L._n(!0)),F=z.x-u.x,R=z.y-u.y,Point.s(z)}else{let z,W,q=0;if(S>=0?(z=m.elt(S),W=S0?m.elt(q-1):z),O=0,z.equalsApprox(W)){let Q,K;S>=0?(Q=S>0?m.elt(S-1):z,K=S1?m.elt(q-2):W);const I=Q.distanceSquaredPoint(z),j=W.distanceSquaredPoint(K);I>j+10?O=S>=0?Q.directionPoint(z):z.directionPoint(Q):j>I+10?O=S>=0?W.directionPoint(K):K.directionPoint(W):O=S>=0?Q.directionPoint(K):K.directionPoint(Q)}else O=S>=0?z.directionPoint(W):W.directionPoint(z);A!==0&&(v=c.computeAngle(L,A,O),L.Kt=v,L.ue(!0),L._n(!0)),F=z.x+(W.x-z.x)*N-u.x,R=z.y+(W.y-z.y)*N-u.y}L.ut(1/0,1/0,0,0),C=L.measuredBounds;const B=L.naturalBounds;let X=0;L instanceof Shape&&(X=L.strokeWidth);const E=B.width+X,V=B.height+X;k.vi(),k.Ds(-C.x,-C.y),k.et(L.scale,L.scale),k.cs(A===0?L.angle:O,E/2,V/2),(A===22||A===26)&&k.cs(90,E/2,V/2),(A===23||A===27)&&k.cs(-90,E/2,V/2),A===28&&(O>45&&O<135||O>225&&O<315)&&k.cs(-O,E/2,V/2);const U=new Rect(0,0,E,V);b.setRectSpot(U,T),k.xt(b);const Y=-b.x+X/2*L.scale,G=-b.y+X/2*L.scale;P.a(D);const H=isNaN(D.x),J=isNaN(D.y);if(H||J){const z=E/2+3,W=V/2+3,q=O>=45&&O<=135,Q=O>=225&&O<=315;A===0&&(q||Q)?(P.x=J?z:D.y,P.y=H?W:D.x,q?S>=0||isNaN(S)&&N<.5||H&&(P.y=-W):Q&&((S>=0||isNaN(S)&&N<.5)&&H&&(P.y=-W),J&&(P.x=-z))):(H&&(S>=0||isNaN(S)&&N<.5?P.x=z:P.x=-z),J&&(P.y=-W),P.rotate(O))}else P.rotate(O);F+=P.x,R+=P.y,U.e(F+Y,R+G,C.width,C.height),x.push(U),d.unionRect(U)}if(h!==null){const M=h.labelNodes;for(;M.next();)M.value.ut(1/0,1/0)}t.Ko=d,t.position.e(u.x+d.x,u.y+d.y),n.En(d.width||0,d.height||0),Transform.s(k),Point.s(b),Point.s(P)}arrange(t,i,e){const s=i.length;if(!(t instanceof Adornment||t instanceof Link))return;let n=t,o=null;t instanceof Adornment&&(o=t,n=o.adornedPart);const r=t,l=t instanceof Adornment?null:n.path,h=t.cf;if(h.length!==0){let u=0;if(l!==null&&u=2&&r instanceof Link){const u=r.labelNodes;for(;u.next();){const d=u.value;r._R(d,c,a)}}o!==null?o.ad(!1):n.ad(!1);const f=t.wA(Point.l());t.location.e(t.position.x+f.x,t.position.y+f.y),Point.s(f)}measureLinkPath(t,i,e,s){if(s.vo()===!1)return;let n=s.strokeWidth;if(n===0&&t instanceof Adornment&&t.type===Panel.Link&&t.adornedObject instanceof Shape&&(n=t.adornedObject.strokeWidth),n=n*s.et,t instanceof Link&&t.ct!==null){const o=t.geometry.bounds;s.Qn(o.x-n/2,o.y-n/2,o.width+n,o.height+n)}else if(t instanceof Adornment&&t.adornedPart.ct!==null){const o=t.adornedPart.ct.bounds;s.Qn(o.x-n/2,o.y-n/2,o.width+n,o.height+n)}else s.Qn(-(n/2),-(n/2),i+n,e+n);s.tv(),s.ue(!1)}}PanelLayout.definePanelLayout(\"Link\",new PanelLayoutLink);class PanelLayoutGraduated extends PanelLayout{constructor(){super()}measure(t,i,e,s,n,o,r){const l=t.findMainElement();t.He=[];const h=l.margin,a=h.right+h.left,c=h.top+h.bottom;l.ut(i,e,o,r);const f=l.measuredBounds,u=f.width,d=f.height,m=Math.max(u+a,0),g=Math.max(d+c,0),p=new Rect(-h.left,-h.top,m,g);t.He.push(p),n.a(p),this.determineGraduatedMarks(t,l);const y=t.ws;if(y===null)return;const x=s.length;for(let k=0;k45&&f<135||f>225&&f<315)&&P.cs(-f,k/2,b/2);const M=Rect.X(0,0,k,b),L=Point.l();L.setRectSpot(M,o),P.xt(L);const C=-L.x,S=-L.y,N=Point.l();N.a(l),isNaN(N.x)&&(N.x=k/2+3),isNaN(N.y)&&(N.y=-(b/2+3)),N.rotate(f),a+=N.x+C,c+=N.y+S;const T=new Rect(a,c,y.width,y.height),A=new Rect(y.x,y.y,y.width,y.height),D=new Rect(x.x,x.y,x.width,x.height);p.labelAngle=u,p.lineCount=n.lineCount,p.lines=n.getMetrics(),p.actualBounds=T,p.measuredBounds=A,p.naturalBounds=D,g===0?h.a(T):h.unionRect(T),Point.s(N),Point.s(L),Rect.s(M),Transform.s(P)}t.He!==null&&t.He.push(h),s.unionNoCheck(h.x,h.y,h.width,h.height)}determineGraduatedMarks(t,i){const e=i.geometry,s=i.strokeWidth,n=e.flattenedSegments,o=e.flattenedLengths,r=e.flattenedTotalLength,l=n.length;let h=0,a=0;const c=Util.nt();for(let x=0;xt.graduatedMin+S){const F=Math.floor((N-t.graduatedMin)/S);N-=F*S}const T=f[x],A=N,D=t.graduatedMax*1e-6;for(let F=1;N<=t.graduatedMax+D;F++){if(this.ev(t,N-t.graduatedTickBase,T)&&(N>t.graduatedMax&&(N=t.graduatedMax),(k.graduatedSkip===null||k instanceof TextBlock&&!k.graduatedSkip(N,k)||k instanceof Shape&&!k.graduatedSkip(N,k))&&(m=(N-t.graduatedMin)*r/t.graduatedRange,m>r&&(m=r),g<=m&&m<=p))){let R=c[L][C],v=o[L][C];for(;LM&&C.4995)return t;let o=t;if(i<.5?n>0?o=s[n-1]:Geo.K(e[0],e[e.length-2])&&Geo.K(e[1],e[e.length-1])&&(o=s[s.length-1]):i>.5&&(n+1180&&(t.9995)return(t+o)/2%360;if(r<10){const l=1-Math.abs(.5-i);return(t*l+o*(1-l))%360}}return t}iv(t){if(t.ns===null){const i=[],e=t.L.r,s=e.length;for(let n=0;nl&&r.push(c)}}t.ns=i}return t.ns}ev(t,i,e){const s=e.length;for(let n=0;n-l)return!1}return!0}Ui(t,i,e){const s=e.Qh;e.Qh=!0;const n=t.naturalBounds,o=n.width,r=n.height,l=i instanceof SVGContext;i.save(),i.beginPath(),i.rect(-1,-1,o+1,r+1),i.clip(),i.endPath();const h=t.findMainElement();h.Ui(i,e);let a=t.getDocumentScale()*e.scale;a<=0&&(a=1);const c=h.actualBounds,f=t.L.r,u=t.ws,d=f.length;for(let m=0;m(w[w.Uniform=6]=\"Uniform\",w[w.UniformToFill=7]=\"UniformToFill\",w))(ViewboxStretch||{});class Panel extends GraphObject{$;L;Zt;cd;Kn;il;so;Ko;T2;O;fd;lt;xi;_t;ud;mh;Ys;constructor(t,i){if(super(),this.$=null,t===void 0)this.$=Panel.Position;else if(typeof t==\"string\"){const e=PanelLayout.Layouts.get(t);e!==null&&(this.$=e)}else t instanceof PanelLayout?this.$=t:t&&(this.$=Panel.Position,i=t);this.$===null&&Util.o(\"Panel type not specified or PanelLayout not loaded: \"+t),this.n|=4194304|(this.$===Panel.Grid?1048576:0),this.L=new List,this.Zt=Margin.Ug,this.cd=Spot.Default,this.Kn=1,this.il=null,this.so=\"\",this.Ko=new Rect(NaN,NaN,NaN,NaN),this.T2=null,this.O=null,this.fd=6,this.xi=null,this.lt=null,this._t=null,this.ud=NaN,this.mh=null,this.Ys=null,i&&Object.assign(this,i)}cloneProtected(t){super.cloneProtected(t),t.$=this.$,t.Zt=this.Zt.N(),t.cd=this.cd.N(),t.Kn=this.Kn,t.so=this.so,t.Ko.a(this.Ko),this.O!==null&&(t.O=this.O.copy(t)),t.fd=this.fd,this.lt!==null&&(t.lt=this.lt.copy()),this.xi!==null&&(t.xi=this.xi.copy()),t._t=this._t,t.ud=this.ud,t.mh=this.mh}Uo(t){super.Uo(t),t.L=this.L;const i=t.L.r,e=i.length;for(let s=0;s= 0\",Panel,\"padding\"),t=new Margin(t)):(t.left<0&&Util._(t.left,\">= 0\",Panel,\"padding:value.left\"),t.right<0&&Util._(t.right,\">= 0\",Panel,\"padding:value.right\"),t.top<0&&Util._(t.top,\">= 0\",Panel,\"padding:value.top\"),t.bottom<0&&Util._(t.bottom,\">= 0\",Panel,\"padding:value.bottom\"));const i=this.Zt;i.equals(t)||(t=t.N(),this.Zt=t,this.c(),this.t(\"padding\",i,t))}get defaultAlignment(){return this.cd}set defaultAlignment(t){const i=this.cd;i.equals(t)||(t=t.N(),this.cd=t,this.c(),this.t(\"defaultAlignment\",i,t))}get defaultStretch(){return this.Kn}set defaultStretch(t){const i=this.Kn;i!==t&&(this.Kn=t,this.c(),this.t(\"defaultStretch\",i,t))}get defaultSeparatorPadding(){return this.O!==null?this.O.Q0:Margin.Ug}set defaultSeparatorPadding(t){typeof t==\"number\"&&(t=new Margin(t));const i=this.defaultSeparatorPadding;i.equals(t)||(t=t.N(),this.O===null&&(this.O=new TablePanelSettings),this.O.Q0=t,this.c(),this.t(\"defaultSeparatorPadding\",i,t))}get defaultRowSeparatorStroke(){return this.O!==null?this.O._0:null}set defaultRowSeparatorStroke(t){const i=this.defaultRowSeparatorStroke;i!==t&&(t===null||typeof t==\"string\"||t instanceof Brush)&&(t instanceof Brush&&t.g(),this.O===null&&(this.O=new TablePanelSettings),this.O._0=t,this.C(),this.t(\"defaultRowSeparatorStroke\",i,t))}get defaultRowSeparatorStrokeWidth(){return this.O!==null?this.O.tp:1}set defaultRowSeparatorStrokeWidth(t){const i=this.defaultRowSeparatorStrokeWidth;i!==t&&isFinite(t)&&t>=0&&(this.O===null&&(this.O=new TablePanelSettings),this.O.tp=t,this.c(),this.t(\"defaultRowSeparatorStrokeWidth\",i,t))}get defaultRowSeparatorDashArray(){return this.O!==null?this.O.ip:null}set defaultRowSeparatorDashArray(t){const i=this.defaultRowSeparatorDashArray;if(i!==t){if(t!==null&&!Array.isArray(t)&&Util.we(t,\"Array\",Panel,\"defaultRowSeparatorDashArray:value\"),t!==null){const e=t.length;let s=0;for(let n=0;n=0)||!isFinite(o))&&Util.o(\"defaultRowSeparatorDashArray value \"+o+\" at index \"+n+\" must be a positive number or zero.\"),s+=o}if(s===0){if(i===null)return;t=null}}this.O===null&&(this.O=new TablePanelSettings),this.O.ip=t,this.C(),this.t(\"defaultRowSeparatorDashArray\",i,t)}}get defaultColumnSeparatorStroke(){return this.O!==null?this.O.ep:null}set defaultColumnSeparatorStroke(t){const i=this.defaultColumnSeparatorStroke;i!==t&&(t===null||typeof t==\"string\"||t instanceof Brush)&&(t instanceof Brush&&t.g(),this.O===null&&(this.O=new TablePanelSettings),this.O.ep=t,this.C(),this.t(\"defaultColumnSeparatorStroke\",i,t))}get defaultColumnSeparatorStrokeWidth(){return this.O!==null?this.O.sp:1}set defaultColumnSeparatorStrokeWidth(t){const i=this.defaultColumnSeparatorStrokeWidth;i!==t&&isFinite(t)&&t>=0&&(this.O===null&&(this.O=new TablePanelSettings),this.O.sp=t,this.c(),this.t(\"defaultColumnSeparatorStrokeWidth\",i,t))}get defaultColumnSeparatorDashArray(){return this.O!==null?this.O.np:null}set defaultColumnSeparatorDashArray(t){const i=this.defaultColumnSeparatorDashArray;if(i!==t){if(t!==null&&!Array.isArray(t)&&Util.we(t,\"Array\",Panel,\"defaultColumnSeparatorDashArray:value\"),t!==null){const e=t.length;let s=0;for(let n=0;n=0)||!isFinite(o))&&Util.o(\"defaultColumnSeparatorDashArray value \"+o+\" at index \"+n+\" must be a positive number or zero.\"),s+=o}if(s===0){if(i===null)return;t=null}}this.O===null&&(this.O=new TablePanelSettings),this.O.np=t,this.C(),this.t(\"defaultColumnSeparatorDashArray\",i,t)}}get gh(){return this.O!==null?this.O.gh:null}set gh(t){this.O===null&&(this.O=new TablePanelSettings),this.O.gh=t}get viewboxStretch(){return this.fd}set viewboxStretch(t){const i=this.fd;i!==t&&(this.fd=t,this.c(),this.t(\"viewboxStretch\",i,t))}get gridCellSize(){return this.xi!==null?this.xi.dd:Size.iC}set gridCellSize(t){this.xi===null&&(this.xi=new GridPanelSettings);const i=this.xi.dd;if(!i.equals(t)){(!t.isReal()||t.width===0||t.height===0)&&Util.o(\"Invalid Panel.gridCellSize: \"+t),this.xi.dd=t.N();const e=this.diagram;e!==null&&this===e.grid&&e._l(),this.C(),this.t(\"gridCellSize\",i,t)}}get gridOrigin(){return this.xi!==null?this.xi.gd:Point.Po}set gridOrigin(t){this.xi===null&&(this.xi=new GridPanelSettings);const i=this.xi.gd;if(!i.equals(t)){t.isReal()||Util.o(\"Invalid Panel.gridOrigin: \"+t),this.xi.gd=t.N();const e=this.diagram;e!==null&&this===e.grid&&e._l(),this.C(),this.t(\"gridOrigin\",i,t)}}get graduatedMin(){return this.lt!==null?this.lt.op:0}set graduatedMin(t){const i=this.graduatedMin;if(i!==t&&(this.lt===null&&(this.lt=new GradPanelSettings),this.lt.op=t,this.c(),this.t(\"graduatedMin\",i,t),this.$c())){const e=this.part;e!==null&&this.ya(e,\"graduatedRange\")}}get graduatedMax(){return this.lt!==null?this.lt.rp:100}set graduatedMax(t){const i=this.graduatedMax;if(i!==t&&(this.lt===null&&(this.lt=new GradPanelSettings),this.lt.rp=t,this.c(),this.t(\"graduatedMax\",i,t),this.$c())){const e=this.part;e!==null&&this.ya(e,\"graduatedRange\")}}get graduatedRange(){return this.graduatedMax-this.graduatedMin}get graduatedTickUnit(){return this.lt!==null?this.lt.lp:10}set graduatedTickUnit(t){const i=this.graduatedTickUnit;i!==t&&t>0&&(this.lt===null&&(this.lt=new GradPanelSettings),this.lt.lp=t,this.c(),this.t(\"graduatedTickUnit\",i,t))}get graduatedTickBase(){return this.lt!==null?this.lt.hp:0}set graduatedTickBase(t){const i=this.graduatedTickBase;i!==t&&(this.lt===null&&(this.lt=new GradPanelSettings),this.lt.hp=t,this.c(),this.t(\"graduatedTickBase\",i,t))}get ws(){return this.lt!==null?this.lt.ws:null}set ws(t){this.lt!==null?this.lt.ws=t:t!==null&&(this.lt=new GradPanelSettings,this.lt.ws=t)}get He(){return this.lt!==null?this.lt.He:null}set He(t){this.lt!==null?this.lt.He=t:t!==null&&(this.lt=new GradPanelSettings,this.lt.He=t)}get ns(){return this.lt!==null?this.lt.ns:null}set ns(t){this.lt!==null?this.lt.ns=t:t!==null&&(this.lt=new GradPanelSettings,this.lt.ns=t)}get Me(){return this.lt!==null?this.lt.Me:null}set Me(t){this.lt!==null?this.lt.Me=t:t!==null&&(this.lt=new GradPanelSettings,this.lt.Me=t)}k0(t){super.k0(t);const i=this.L.r,e=i.length;for(let s=0;s0?this.Ge:null,s=this.columnCount>0?this.je:null;e!==null&&this.Hb(t,i,!0,e,!0),s!==null&&this.Hb(t,i,!1,s,!0),e!==null&&this.bA(t,!0,e),s!==null&&this.bA(t,!1,s),e!==null&&this.Hb(t,i,!0,e,!1),s!==null&&this.Hb(t,i,!1,s,!1)}bA(t,i,e){const s=e.length,n=this.actualBounds,o=this.naturalBounds;let r=!0;for(let l=0;lo.height)continue}else if(h.position>o.width)continue;let a=h.separatorStrokeWidth;isNaN(a)&&(a=i?this.defaultRowSeparatorStrokeWidth:this.defaultColumnSeparatorStrokeWidth);let c=h.separatorStroke;if(c===null&&(c=i?this.defaultRowSeparatorStroke:this.defaultColumnSeparatorStroke),a===0||c===null)continue;this.dn(t,c,!1,!1,o,n);let f=!1,u=h.separatorDashArray;u===null&&(u=i?this.defaultRowSeparatorDashArray:this.defaultColumnSeparatorDashArray),u!==null&&(f=!0,t.enableDash(u,0)),t.beginPath();const d=h.position+a;i?d>o.height&&(a-=d-o.height):d>o.width&&(a-=d-o.width);let m=h.position+a/2;t.lineWidth=a;const g=this.Zt;if(i){m+=g.top;const p=g.left,y=o.width-g.right;t.moveTo(p,m),t.lineTo(y,m)}else{m+=g.left;const p=g.top,y=o.height-g.bottom;t.moveTo(m,p),t.lineTo(m,y)}t.stroke(),t.endPath(),f&&t.disableDash()}}Hb(t,i,e,s,n){const o=s.length,r=this.actualBounds,l=this.naturalBounds,h=this.kA(!0),a=this.kA(!1);for(let c=0;cu)continue;let d=f.computeEffectiveSpacing(),m=f.separatorStrokeWidth;isNaN(m)&&(m=e?this.defaultRowSeparatorStrokeWidth:this.defaultColumnSeparatorStrokeWidth);let g=f.separatorStroke;g===null&&(g=e?this.defaultRowSeparatorStroke:this.defaultColumnSeparatorStroke),(g===null||f.index===(e?h:a))&&(m=0),d-=m;const p=f.position+m;let y=d+f.actual;if(p+y>u&&(y=u-p),y<=0)continue;const x=this.Zt;this.dn(t,f.background,!0,!1,l,r),e?t.fillRect(x.left,p+x.top,r.width-(x.left+x.right),y):t.fillRect(p+x.left,x.top,y,r.height-(x.top+x.bottom))}}kA(t){const i=t?this.rowCount:this.columnCount;for(let e=0;ex&&n.set(S),Point.s(S)),Point.s(M),o&&n.D(r),k}}Fu(){const t=this.L.r,i=t.length;for(let e=0;ee||h>s)&&(this.c(),this.ut(l>e?e:l,h>s?s:h,0,0));break;case 2:this.c(!0),this.ut(e+c,s+f,0,0);break;case 5:this.c(!0),this.ut(e+c,h+f,0,0);break;case 4:this.c(!0),this.ut(l+c,s+f,0,0);break}}this.$.arrange(this,n,this.Ko)}hh(t){const i=this.naturalBounds,e=this.Xo();if(Rect.contains(0,0,i.width,i.height,t.x,t.y)){const s=this.L.r,n=s.length,o=Point.X(0,0);for(let r=n;r--;){const l=s[r];if(!(!l.visible&&l!==e)&&(o.set(t).Ie(l.D),l.containsPoint(o)))return Point.s(o),!0}return Point.s(o),this.Ct!==null}return!1}p0(t){if(this.$n===t)return this;const i=this.L.r,e=i.length;for(let s=0;sd.width||u.y>d.height||u.x+u.width<0||u.y+u.height<0)continue;let m=f;const g=f instanceof Panel?f:null,p=Transform.l();p.set(r),(g!==null?g.Im(t,i,e,s,n,p):m.iA(t,s,p))&&(i!==null&&(m=i(m)),m!==null&&(e===null||e(m))&&n.add(m)),Transform.s(p)}}return o===void 0&&Transform.s(r),s}return o===void 0&&Transform.s(r),!1}F2(t,i,e){const s=this.L.r,n=s.length;for(let o=n;o--;){const r=s[o];if(!r.visible)continue;const l=r.actualBounds,h=this.naturalBounds;if(l.x>h.width||l.y>h.height||l.x+l.width<0||l.y+l.height<0)continue;r instanceof Panel&&r.F2(t,i,e);let a=r;t!==null&&(a=t(a)),a!==null&&(i===null||i(a))&&e.add(a)}}oL(t,i,e,s,n,o){if(this.pickable===!1)return!1;e===void 0&&(e=null),s===void 0&&(s=null);const r=this.naturalBounds,l=this.pn(),h=l?t:Point.X(t.x,t.y).Ie(this.D),a=l?i:Point.X(i.x,i.y).Ie(this.D),c=h.distanceSquaredPoint(a),f=h.x>0&&h.x0&&h.yP.width||b.y>P.height||b.x+b.width<0||b.y+b.height<0))continue;if(k.pn()){const C=k.D;d.set(t).Ie(C),m.set(i).Ie(C)}else d.set(t),m.set(i);let M=k;const L=k instanceof Panel?k:null;(L!==null?L.oL(d,m,e,s,n,o):M.eA(d,m,n))&&(e!==null&&(M=e(M)),M!==null&&(s===null||s(M))&&o.add(M))}Point.s(d),Point.s(m)}return n?f:u}return!1}N2(t){let i=null;if(t instanceof Shape){i=t.spot1,i===Spot.Default&&(i=null);const e=t.geometry;e!==null&&i===null&&(i=e.spot1)}return i===null&&(i=Spot.TopLeft),i}C2(t){let i=null;if(t instanceof Shape){i=t.spot2,i===Spot.Default&&(i=null);const e=t.geometry;e!==null&&i===null&&(i=e.spot2)}return i===null&&(i=Spot.BottomRight),i}add(...t){for(let i=0;i=s.count&&t>=s.count)return;s.removeAt(r),n=r}else Util.o(\"element \"+i.toString()+\" has panel \"+e.toString()+\" but is not contained by it.\")}(t<0||t>s.count)&&(t=s.count),s.insertAt(t,i),(t===0||i.isPanelMain)&&(this.il=null),this.vo()||this.c(),i.c(!1),i.portId!==null?this.wn=!0:i instanceof Panel&&i.wn===!0&&(this.wn=!0),this.ns=null,this.isEnabledObject()||this.qb(i,!1);const o=this.part;if(o!==null){o.D0(),o.uf(),this.wn&&o instanceof Node&&(o.wn=!0),o.wn&&o instanceof Node&&(o.ne=null);const r=this.diagram;if(r!==null&&r.undoManager.isUndoingRedoing)return;n!==-1&&o.raiseChangedEvent(4,\"elements\",this,i,null,n,null),o.raiseChangedEvent(3,\"elements\",this,null,i,null,t)}}get wn(){return(this.n&8388608)!==0}set wn(t){(this.n&8388608)!==0!==t&&(this.n=this.n^8388608)}s2(){return(this.n&16777216)!==0}R2(t){t?this.n|=16777216:this.n&=-16777217}hv(t){t.xa(this),t.Zr=null;const i=this.L,e=i.count;i.insertAt(e,t);const s=this.part;if(s!==null){s.D0(),t.portId!==null&&s instanceof Node&&(s.wn=!0);const n=this.diagram;if(n!==null&&n.undoManager.isUndoingRedoing)return;s.raiseChangedEvent(3,\"elements\",this,null,t,null,e)}}DR(t){const i=this.L.r,e=i.length;let s=-1;for(let n=0;n=0&&this.te(t,!0)}te(t,i){const e=this.L,s=e.elt(t);if(s.Zr=null,s.xa(null),this.Ys!==null){const o=s.data;typeof o==\"object\"&&this.Ys.delete(o)}e.removeAt(t),this.ue(!1),this.c(),this.il===s&&(this.il=null),this.ns=null;const n=this.part;if(n!==null){n.D0(),n.uf(),n.invalidateAdornments(),n instanceof Node&&(s instanceof Panel?s.walkVisualTreeFrom(s,(r,l)=>n.d2(l,i)):n.d2(s,i));const o=this.diagram;if(o!==null&&o.undoManager.isUndoingRedoing)return;n.raiseChangedEvent(4,\"elements\",this,s,null,t,null)}}get Ge(){return this.O===null&&(this.O=new TablePanelSettings),this.O.Ge}get rowCount(){return this.O===null?0:this.Ge.length}getRowDefinition(t){t<0&&Util._(t,\">= 0\",Panel,\"getRowDefinition:idx\"),t=Math.round(t);const i=this.Ge;if(i[t]===void 0){const e=new RowColumnDefinition;e.xa(this),e.isRow=!0,e.index=t,i[t]=e,this.raiseChangedEvent(3,\"rowdefs\",this,null,e,null,t)}return i[t]}removeRowDefinition(t){if(t<0&&Util._(t,\">= 0\",Panel,\"removeRowDefinition:idx\"),this.rowCount===0)return;t=Math.round(t);const i=this.Ge,e=i[t];if(e){i[t]=void 0;let s=i.length-1;for(;s>=0&&i[s--]===void 0;)i.length--;this.raiseChangedEvent(4,\"rowdefs\",this,e,null,t,null),this.c()}}vL(t,i){const e=this.Ge;if(!(t<0)){if(e[t]=i instanceof RowColumnDefinition?i:void 0,!i){let s=e.length-1;for(;s>=0&&e[s--]===void 0;)e.length--}this.c()}}get je(){return this.O===null&&(this.O=new TablePanelSettings),this.O.je}get columnCount(){return this.O===null?0:this.je.length}getColumnDefinition(t){t<0&&Util._(t,\">= 0\",Panel,\"getColumnDefinition:idx\"),t=Math.round(t);const i=this.je;if(i[t]===void 0){const e=new RowColumnDefinition;e.xa(this),e.isRow=!1,e.index=t,i[t]=e,this.raiseChangedEvent(3,\"coldefs\",this,null,e,null,t)}return i[t]}removeColumnDefinition(t){if(t<0&&Util._(t,\">= 0\",Panel,\"removeColumnDefinition:idx\"),this.columnCount===0)return;t=Math.round(t);const i=this.je,e=i[t];if(e){i[t]=void 0;let s=i.length-1;for(;s>=0&&i[s--]===void 0;)i.length--;this.raiseChangedEvent(4,\"coldefs\",this,e,null,t,null),this.c()}}OL(t,i){const e=this.je;if(!(t<0)){if(e[t]=i instanceof RowColumnDefinition?i:void 0,!i){let s=e.length-1;for(;s>=0&&e[s--]===void 0;)e.length--}this.c()}}addRowColumnDefinition(t){let i=null;return t.isRow?i=this.getRowDefinition(t.index):t.isRow||(i=this.getColumnDefinition(t.index)),i&&i.Ub(t),this}addRowDefinition(t,i){const e=this.getRowDefinition(t);return e&&e.Ub(new RowColumnDefinition(i)),this}addColumnDefinition(t,i){const e=this.getColumnDefinition(t);return e&&e.Ub(new RowColumnDefinition(i)),this}get rowSizing(){return this.O!==null?this.O.cp:3}set rowSizing(t){const i=this.rowSizing;i!==t&&(this.O===null&&(this.O=new TablePanelSettings),this.O.cp=t,this.c(),this.t(\"rowSizing\",i,t))}get columnSizing(){return this.O!==null?this.O.fp:3}set columnSizing(t){const i=this.columnSizing;i!==t&&(this.O===null&&(this.O=new TablePanelSettings),this.O.fp=t,this.c(),this.t(\"columnSizing\",i,t))}get topIndex(){return this.O!==null?this.O.dp:0}set topIndex(t){const i=this.topIndex;i!==t&&((!isFinite(t)||t<0)&&Util.o(\"Panel.topIndex must be greater than zero and a real number, not: \"+t),this.O===null&&(this.O=new TablePanelSettings),this.O.dp=t,this.c(),this.t(\"topIndex\",i,t))}get leftIndex(){return this.O!==null?this.O.gp:0}set leftIndex(t){const i=this.leftIndex;i!==t&&((!isFinite(t)||t<0)&&Util.o(\"Panel.leftIndex must be greater than zero and a real number, not: \"+t),this.O===null&&(this.O=new TablePanelSettings),this.O.gp=t,this.c(),this.t(\"leftIndex\",i,t))}findRowForLocalY(t){if(t<0||this.type!==Panel.Table||this.rowCount===0)return-1;let i=0;const e=this.Ge,s=e.length;let n=this.topIndex;for(;n{o.lh();const r=o.Ai;if(r!==null){o.c2(!1);const l=r.iterator;for(;l.next();){const h=l.value;h.mode===2&&o.c2(!0);const a=h.sourceName;if(h.isToObject){a===\"/\"&&n.R2(!0);const c=h.tA(n,o);c!==null&&(i.add(c),c.Zn===null&&(c.Zn=new List),c.Zn.add(h))}t.add(h)}}if(o instanceof Panel&&o.type===Panel.Table){if(o.rowCount>0){const l=o.Ge,h=l.length;for(let a=0;a0){const l=o.je,h=l.length;for(let a=0;a0&&o instanceof Panel){const h=r.substring(0,l),a=r.substring(l+1),c=o.findObject(h);c!==null?(o=c,n.targetProperty=a):(Util.ei('Warning: unable to find GraphObject named \"'+h+'\" for Binding: '+n.toString()),o=null)}if(o instanceof RowColumnDefinition){const h=GSet.as(o.panel);n.targetId=h===void 0?-1:h,o.panel.$n=n.targetId}else if(o instanceof GraphObject){const h=GSet.as(o);n.targetId=h===void 0?-1:h,o.$n=n.targetId}else Util.o(\"Unknown type of binding target: \"+o);n.check(o)}}return t.g(),this instanceof Part&&this.Pe()&&this.ensureBounds(),this}static gE=!1;copyTemplate(t){t===void 0&&(t=!1);const i=this.copy();return i.av(e=>{e instanceof Panel&&(e.Ks=null,e._t=null);const s=e.Ai;s!==null&&(e.Ai=null,s.each(o=>e.bind(o.copy())));const n=e.ys;n!==null&&(e.ys=null,n.each(o=>e.trigger(o.value.copy())))}),t&&i.Vt(),i}updateTargetBindings(t){const i=this.Ks;if(i===null)return;t===void 0&&(t=\"\");const e=i.iterator;for(;e.next();){const s=e.value,n=this.CA(s,t);if(n===null)continue;const{data:o,elt:r}=n;s.isToTheme&&this.diagram===null||r!==void 0&&s.updateTarget(r,o)}}Oo(){if(this.diagram!==null)if(this.g2()){const t=this.Ks.iterator;for(;t.next();){const i=t.value;if(!i.isToTheme)continue;const e=this.CA(i);if(e===null)continue;const{data:s,elt:n}=e;n!==void 0&&i.updateTarget(n,s)}}else{const t=this.L.r,i=t.length;for(let e=0;e0;let r=0;for(;n0){const i=this.L.elt(0);if(i.isPanelMain&&i instanceof Panel&&i.Qr())return 1}return 0}rebuildItemElements(){const t=this.ap();for(;this.L.length>t;)this.te(this.L.length-1,!1);this.LA(null,this.itemArray)}LA(t,i){const e=this.ap(),s=i;if(s===null||s.length===0){for(;this.L.length>e;)this.te(this.L.length-1,!1);return}if(this.L.length<=e){const n=s.length;for(let o=0;o(w[w.Default=1]=\"Default\",w[w.None=2]=\"None\",w[w.ProportionalExtra=3]=\"ProportionalExtra\",w))(Sizing||{});class RowColumnDefinition{Vs;mp;Dt;Ma;Sa;ri;at;pd;to;Yo;yd;wd;Na;Ct;xd;Gs;st;Di;ge;constructor(t){GSet.ji(this),this.Vs=null,this.mp=!0,this.Dt=0,this.ge=NaN,this.Ma=0,this.Sa=1/0,this.ri=Spot.Default,this.st=0,this.Di=0,this.at=0,this.Gs=null,this.pd=1,this.to=1,this.Yo=null,this.yd=null,this.wd=NaN,this.Na=null,this.Ct=null,this.xd=!1,t&&(Object.assign(this,t),t.column!==void 0?(this.isRow=!1,this.index=t.column):t.row!==void 0&&(this.isRow=!0,this.index=t.row))}copy(){const t=new RowColumnDefinition;return t.mp=this.mp,t.Dt=this.Dt,t.ge=this.ge,t.Ma=this.Ma,t.Sa=this.Sa,t.ri=this.ri,t.st=this.st,t.Di=this.Di,t.at=this.at,t.to=this.to,t.pd=this.pd,this.Yo===null?t.Yo=null:t.Yo=this.Yo.N(),t.yd=this.yd,t.wd=this.wd,t.Na=null,this.Na!==null&&(t.separatorDashArray=this.separatorDashArray.slice()),t.Ct=this.Ct,t.xd=this.xd,t.Gs=this.Gs,t}Ub(t){t.isRow?this.height=t.height:this.width=t.width,this.minimum=t.minimum,this.maximum=t.maximum,this.alignment=t.alignment,this.stretch=t.stretch,this.sizing=t.sizing,this.Yo=t.separatorPadding===null?null:t.separatorPadding.N(),this.separatorStroke=t.separatorStroke,this.separatorStrokeWidth=t.separatorStrokeWidth,this.Na=null,t.separatorDashArray&&(this.Na=t.separatorDashArray.slice()),this.background=t.background,this.coversSeparators=t.coversSeparators,this.Gs=t.Gs}li(t){t in Sizing?this.sizing=t:Util.rr(this,t)}toString(){return\"RowColumnDefinition \"+(this.isRow?\"(Row \":\"(Column \")+this.index+\") #\"+GSet.as(this)}static Default=1;static None=2;static ProportionalExtra=3;xa(t){this.Vs=t}computeEffectiveSpacingTop(t){let i=0;const e=this.Vs;if(this.index!==t){let n=this.separatorStroke;n===null&&e!==null&&(n=this.isRow?e.defaultRowSeparatorStroke:e.defaultColumnSeparatorStroke),n!==null&&(i=this.separatorStrokeWidth,isNaN(i)&&(e!==null?i=this.isRow?e.defaultRowSeparatorStrokeWidth:e.defaultColumnSeparatorStrokeWidth:i=0))}let s=this.Yo;if(s===null)if(e!==null)s=e.defaultSeparatorPadding;else return i;return i+(this.isRow?s.top:s.left)}computeEffectiveSpacing(){let t=0;const i=this.Vs;let e=0;const s=this.isRow;if(i!==null&&i.type===Panel.Table){const o=s?i.Ge.length:i.je.length;for(let r=0;r= 0\",RowColumnDefinition,\"height\"),this.ge=t,this.actual=this.st,this.panel!==null&&this.panel.c(),this.t(\"height\",i,t))}get width(){return this.ge}set width(t){const i=this.ge;i!==t&&(t<0&&Util._(t,\">= 0\",RowColumnDefinition,\"width\"),this.ge=t,this.actual=this.st,this.panel!==null&&this.panel.c(),this.t(\"width\",i,t))}get minimum(){return this.Ma}set minimum(t){const i=this.Ma;i!==t&&((t<0||!isFinite(t))&&Util._(t,\">= 0\",RowColumnDefinition,\"minimum\"),this.Ma=t,this.actual=this.st,this.panel!==null&&this.panel.c(),this.t(\"minimum\",i,t))}get maximum(){return this.Sa}set maximum(t){const i=this.Sa;i!==t&&(t<0&&Util._(t,\">= 0\",RowColumnDefinition,\"maximum\"),this.Sa=t,this.actual=this.st,this.panel!==null&&this.panel.c(),this.t(\"maximum\",i,t))}get alignment(){return this.ri}set alignment(t){const i=this.ri;i.equals(t)||(this.ri=t.N(),this.panel!==null&&this.panel.c(),this.t(\"alignment\",i,t))}get stretch(){return this.to}set stretch(t){const i=this.to;i!==t&&(this.to=t,this.panel!==null&&this.panel.c(),this.t(\"stretch\",i,t))}get separatorPadding(){return this.Yo}set separatorPadding(t){typeof t==\"number\"&&(t=new Margin(t));const i=this.Yo;(t===null||i===null||!i.equals(t))&&(t!==null&&(t=t.N()),this.Yo=t,this.panel!==null&&this.panel.c(),this.t(\"separatorPadding\",i,t))}get separatorStroke(){return this.yd}set separatorStroke(t){const i=this.yd;i!==t&&(t!==null&&Brush.od(t,\"RowColumnDefinition.separatorStroke\"),t instanceof Brush&&t.g(),this.yd=t,this.panel!==null&&this.panel.c(),this.t(\"separatorStroke\",i,t))}get separatorStrokeWidth(){return this.wd}set separatorStrokeWidth(t){const i=this.wd;i!==t&&(this.wd=t,this.panel!==null&&this.panel.c(),this.t(\"separatorStrokeWidth\",i,t))}get separatorDashArray(){return this.Na}set separatorDashArray(t){const i=this.Na;if(i!==t){if(t!==null&&!Array.isArray(t)&&Util.we(t,\"Array\",RowColumnDefinition,\"separatorDashArray:value\"),t!==null){const e=t.length;let s=0;for(let n=0;n=0)||!isFinite(o))&&Util.o(\"separatorDashArray value \"+o+\" at index \"+n+\" must be a positive number or zero.\"),s+=o}if(s===0){if(i===null)return;t=null}}this.Na=t,this.panel!==null&&this.panel.C(),this.t(\"separatorDashArray\",i,t)}}get background(){return this.Ct}set background(t){const i=this.Ct;i!==t&&(t!==null&&Brush.od(t,\"RowColumnDefinition.background\"),t instanceof Brush&&t.g(),this.Ct=t,this.panel!==null&&this.panel.C(),this.t(\"background\",i,t))}get coversSeparators(){return this.xd}set coversSeparators(t){const i=this.xd;i!==t&&(Util.i(t,\"boolean\",RowColumnDefinition,\"coversSeparators\"),this.xd=t,this.panel!==null&&this.panel.C(),this.t(\"coversSeparators\",i,t))}get sizing(){return this.pd}set sizing(t){const i=this.pd;i!==t&&(this.pd=t,this.panel!==null&&this.panel.c(),this.t(\"sizing\",i,t))}Gb(){if(this.sizing===1){const t=this.Vs;return this.isRow?t.rowSizing:t.columnSizing}return this.sizing}get actual(){return this.st}set actual(t){isNaN(this.ge)?this.st=Math.max(Math.min(this.Sa,t),this.Ma):this.st=Math.max(Math.min(this.Sa,this.ge),this.Ma)}get measured(){return this.Di}set measured(t){this.Di=t}get total(){return this.st+this.computeEffectiveSpacing()}get position(){return this.at}set position(t){this.at=t}bind(t,i,e,s){return this.of(t,i,e,s),this}bindTwoWay(t,i,e,s){const n=this.of(t,i,e,s);return s===void 0&&n.makeTwoWay(),this}theme(t,i,e,s,n){return this.uh(t,i,e,s,n),this}themeData(t,i,e,s,n){return this.uh(t,i,e,s,n).ofData(),this}themeObject(t,i,e,s,n,o){return this.uh(t,i,e,s,n).ofObject(o),this}themeModel(t,i,e,s,n){return this.uh(t,i,e,s,n).ofModel(),this}of(t,i,e,s){let n=null;return typeof t==\"string\"?n=new Binding(t,i,e,s):n=t,this.G0(n),n}uh(t,i,e,s,n){let o=null;return typeof t==\"string\"?o=new ThemeBinding(t,i,e,s,n):o=t,this.G0(o),o}G0(t){t.ke=this;const i=this.panel;if(i!==null){const e=i.findBindingPanel();e!==null&&e.fA()&&Util.o(\"Cannot add a Binding to a RowColumnDefinition that is already frozen: \"+t+\" on \"+i)}this.Gs===null&&(this.Gs=new List),this.Gs.add(t)}}class Shape extends GraphObject{ct;xs;bd;Ca;Hi;Go;zo;Lt;kd;Pd;J;constructor(t,i){super(),this.ct=null,this.xs=null,this.bd=\"None\",this.Ca=\"black\",this.Hi=\"black\",this.Go=1,this.zo=null,this.Lt=null,this.kd=NaN,this.Pd=NaN,this.J=null,typeof t==\"string\"?this.figure=t:t&&Object.assign(this,t),i&&Object.assign(this,i)}cloneProtected(t){super.cloneProtected(t),t.ct=this.ct,t.xs=this.xs,t.bd=this.bd,t.Ca=this.Ca,t.Hi=this.Hi,t.Go=this.Go,this.zo!==null&&(t.zo=this.zo.slice()),this.Lt!==null&&(this.Lt.gi?t.Lt=this.Lt:t.Lt=this.Lt.copy()),t.kd=this.kd,t.Pd=this.Pd,this.J!==null&&(t.J=this.J.copy())}La(){this.Lt===null?this.Lt=new ShapeTemplateSettings:this.Lt.gi&&(this.Lt=this.Lt.copy())}lh(){super.lh(),this.Lt!==null&&(this.Lt.gi=!0)}li(t){t in GeometryStretch?this.geometryStretch=t:super.li(t)}toString(){return\"Shape(\"+(this.figure!==\"None\"?this.figure:this.toArrow!==\"None\"?this.toArrow:this.fromArrow)+\")#\"+GSet.as(this)}pv(t,i){const e=this.pathPattern;e.ut(1/0,1/0);const s=e.measuredBounds;e.Xt(0,0,s.width,s.height);const n=this.geometry;t.save(),t.beginPath();const o=Util.nt();if(n.type===1)o.push(n.startX),o.push(n.startY),o.push(n.endX),o.push(n.endY),this.Md(t,i,o,e);else if(n.type===4){const r=n.figures.iterator;for(;r.next();){const l=r.value;o.length=0,o.push(l.startX),o.push(l.startY);let h=l.startX,a=l.startY,c=h,f=a;const u=l.segments.r,d=u.length;for(let m=0;m=.1;){if(S===0&&(M?(b=k,b-=P,y-=P,M=!1):b=k,b===0&&(b=1)),b>y){b=y,Util.tt(x);return}b>p?(S=b-p,b=p):S=0;let N=Math.sqrt(b*b/(1+m*m));if(u<0&&(N=-N),h+=N,a+=m*N,t.translate(h,a),t.rotate(g),t.translate(-(r/2),-(l/2)),S===0&&s.fh(t,i),t.translate(r/2,l/2),t.rotate(-g),t.translate(-h,-a),y-=b,p-=b,S!==0){if(L++,L===x.length){Util.tt(x);return}C=x[L],u=C[0],g=C[1],m=C[2],p=C[3],b=S}}Util.tt(x)}fh(t,i){const e=t instanceof SVGContext;let s=this.Hi;const n=this.Ca;if(s===null&&n===null)return;const o=this.ct;if(o===null)return;t.commitTransform();const r=this.actualBounds,l=this.naturalBounds;n!==null&&this.dn(t,n,!0,!1,l,r);const h=this.part;let a=this.Go;s!==null&&a===0&&h!==null&&(this.isPanelMain||h.findMainElement()===this)&&(a=h.wv()),a===0&&(s=null),s!==null&&a!==0&&(this.dn(t,s,!1,!1,l,r),t.lineWidth=a,t.lineJoin=this.strokeJoin,t.lineCap=this.strokeCap,t.miterLimit=this.strokeMiterLimit);let c=!1;h&&i.getRenderingHint(\"drawShadows\")&&(c=h.isShadowed),t._r===!1&&(c=!1);let f=!0;s!==null&&(n===null||n===\"transparent\")&&(f=!1);let u=!1;const d=this.strokeDashArray;if(d!==null&&(u=!0,t.enableDash(d,this.strokeDashOffset)),o.type===1)t.beginPath(),t.moveTo(o.startX,o.startY),t.lineTo(o.endX,o.endY),s!==null&&t.strokeContext(),t.endPath();else if(o.type===2){const m=o.startX,g=o.startY,p=o.endX,y=o.endY,x=Math.min(m,p),k=Math.min(g,y),b=Math.abs(p-m),P=Math.abs(y-g);t.beginPath(),t.rect(x,k,b,P),n!==null&&t.fillContext(n,!1,null),s!==null&&(f&&c&&t.shadowsOff(),t.strokeContext(),f&&c&&t.shadowsOn()),t.endPath()}else if(o.type===3){const m=o.startX,g=o.startY,p=o.endX,y=o.endY,x=Math.abs(p-m)/2,k=Math.abs(y-g)/2,b=Math.min(m,p)+x,P=Math.min(g,y)+k;t.beginPath(),t.moveTo(b,P-k),t.bezierCurveTo(b+Geo.Bn*x,P-k,b+x,P-Geo.Bn*k,b+x,P),t.bezierCurveTo(b+x,P+Geo.Bn*k,b+Geo.Bn*x,P+k,b,P+k),t.bezierCurveTo(b-Geo.Bn*x,P+k,b-x,P+Geo.Bn*k,b-x,P),t.bezierCurveTo(b-x,P-Geo.Bn*k,b-Geo.Bn*x,P-k,b,P-k),t.closePath(),n!==null&&t.fillContext(n,!1,null),s!==null&&(f&&c&&t.shadowsOff(),t.strokeContext(),f&&c&&t.shadowsOn()),t.endPath()}else if(o.type===4){const m=o.figures,g=m.length;for(let p=0;p1||this.pathPattern!==null?!0:super.sd(t)}h2(t,i){if(t.nodeName!==\"g\")t.setAttributeNS(null,\"filter\",i);else{const e=t.getElementsByTagName(\"path\");for(let s=0;s1,i);Util.o(\"Unknown Geometry type: \"+e.type)}}td(t,i,e,s){const n=this.desiredSize,o=this.Go;t=Math.max(t,0),i=Math.max(i,0);let r;if(this.xs!==null)r=this.geometry.bounds;else{const g=this.figure;let p=Shape.E2[g];if(p===void 0){let y=Geo.Mo[g];typeof y==\"string\"&&(y=Geo.Mo[y]),typeof y==\"function\"?(p=y(null,100,100),Shape.E2[g]=p):Util.o(\"Unsupported Figure: \"+g)}r=p.bounds}let l=r.width,h=r.height,a=r.width,c=r.height;switch(this.zs(!0)){case 0:e=0,s=0;break;case 2:a=Math.max(t-o,0),c=Math.max(i-o,0);break;case 5:a=Math.max(t-o,0),s=0;break;case 4:e=0,c=Math.max(i-o,0);break}isFinite(n.width)&&(a=n.width),isFinite(n.height)&&(c=n.height);const u=this.maxSize,d=this.minSize;e=Math.max(e-o,d.width),s=Math.max(s-o,d.height),a=Math.min(u.width,a),c=Math.min(u.height,c),a=isFinite(a)?Math.max(e,a):Math.max(l,e),c=isFinite(c)?Math.max(s,c):Math.max(h,s);const m=this.tM();switch(m){case 0:break;case 2:l=a,h=c;break;case 6:{let g=Math.min(a/l,c/h);isFinite(g)||(g=1),l=l*g,h=h*g;break}default:Util.o(m+\" is not a valid geometryStretch.\")}if(this.xs!==null){l===0&&(l=.001),h===0&&(h=.001);const p=(this.xs!==null?this.xs:this.ct).GD(l,h);this.ct=p}else(this.ct===null||!Geo.K(this.ct.sc,t-o)||!Geo.K(this.ct.nc,i-o))&&(this.ct=Shape.xv(this,l,h));r=this.ct.bounds,t===1/0||i===1/0?this.Qn(r.x-o/2,r.y-o/2,t===0&&l===0?0:r.width+o,i===0&&h===0?0:r.height+o):this.Qn(-(o/2),-(o/2),a+o,c+o),n.isReal()?(a=n.width,c=n.height,a=Math.min(u.width,a),c=Math.min(u.height,c),a=Math.max(d.width,a),c=Math.max(d.height,c),this.Xi.e(0,0,a,c)):this.Xi.a(r)}tM(){const t=this.geometryStretch;return this.xs!==null?t===1?2:t:t===1?Shape.E2[this.figure].defaultStretch:t}ah(t,i,e,s){this.commonArrange(t,i,e,s)}getNearestIntersectionPoint(t,i,e){return this.Zc(t.x,t.y,i.x,i.y,e)}Zc(t,i,e,s,n){const o=this.D,r=1/(o.m11*o.m22-o.m12*o.m21),l=o.m22*r,h=-o.m12*r,a=-o.m21*r,c=o.m11*r,f=r*(o.m21*o.dy-o.m22*o.dx),u=r*(o.m12*o.dx-o.m11*o.dy),d=t*l+i*a+f,m=t*h+i*c+u,g=e*l+s*a+f,p=e*h+s*c+u,y=this.Go/2;let x=this.ct;x===null&&(this.ut(1/0,1/0),x=this.ct);const k=x.bounds;let b=!1;if(x.type===1)if(this.strokeWidth<=1.5)b=Geo.Vn(x.startX,x.startY,x.endX,x.endY,d,m,g,p,n);else{let P=0,M=0;if(x.startX===x.endX)P=y,M=0;else{const T=(x.endY-x.startY)/(x.endX-x.startX);M=y/Math.sqrt(1+T*T),P=M*T}const L=Util.nt();let C=new Point;Geo.Vn(x.startX+P,x.startY+M,x.endX+P,x.endY+M,d,m,g,p,C)&&L.push(C),C=new Point,Geo.Vn(x.startX-P,x.startY-M,x.endX-P,x.endY-M,d,m,g,p,C)&&L.push(C),C=new Point,Geo.Vn(x.startX+P,x.startY+M,x.startX-P,x.startY-M,d,m,g,p,C)&&L.push(C),C=new Point,Geo.Vn(x.endX+P,x.endY+M,x.endX-P,x.endY-M,d,m,g,p,C)&&L.push(C);const S=L.length;if(S===0)return Util.tt(L),!1;b=!0;let N=1/0;for(let T=0;T0&&k.contains(D,F)&&(S.x=D,S.y=F,this.containsPoint(S)))for(N!==0&&Math.abs(N)<.5?(T*=.5/N,N=.5):T!==0&&Math.abs(T)<.5&&(N*=.5/T,T=.5),D-=N,F-=T;k.contains(D,F);)D-=N,F-=T;const R=.6;n.x=g,n.y=p;for(let X=0;Xe?t-e:e-t)<(i>s?i-s:s-i)){const f=if||Geo.K(h.y,f))&&(h.yf||Geo.K(h.x,f))&&(h.x=a&&h<=c}else{let a=0,c=0;return s=a&&l<=c}}Pv(t,i){if(this.containedInRect(t,i)||i===void 0&&(i=this.D,t.containsRect(this.actualBounds)))return!0;const e=t.left,s=t.right,n=t.top,o=t.bottom,r=Point.l(),l=Point.l(),h=Point.l(),a=Transform.l();a.set(i),a.aC(this.D),a.yw(),l.x=s,l.y=n,l.D(a),r.x=e,r.y=n,r.D(a);let c=!1;return this.Aa(r,l,h)?c=!0:(r.x=s,r.y=o,r.D(a),this.Aa(r,l,h)?c=!0:(l.x=e,l.y=o,l.D(a),this.Aa(r,l,h)?c=!0:(r.x=e,r.y=n,r.D(a),this.Aa(r,l,h)&&(c=!0)))),Transform.s(a),Point.s(r),Point.s(l),Point.s(h),c}eA(t,i,e){if(e&&this.fill!==null&&this.hh(t,!0))return!0;let s=t.distanceSquaredPoint(i);const n=s;this.strokeWidth>1.5&&(s=this.strokeWidth/2+Math.sqrt(s),s*=s);let o=this.ct;if(o===null&&(this.ut(1/0,1/0),o=this.ct,o===null))return!1;if(!e){const f=o.bounds,u=f.x,d=f.y,m=f.x+f.width,g=f.y+f.height;if(Point.distanceSquared(t.x,t.y,u,d)<=s&&Point.distanceSquared(t.x,t.y,m,d)<=s&&Point.distanceSquared(t.x,t.y,u,g)<=s&&Point.distanceSquared(t.x,t.y,m,g)<=s)return!0}function r(f,u){const d=f.length;for(let m=0;ms)return!0;return!1}const l=o.startX,h=o.startY,a=o.endX,c=o.endY;if(o.type===1){const f=Point.distanceLineSegmentSquared(t.x,t.y,l,h,a,c),u=(a-l)*(t.x-l)+(c-h)*(t.y-h),d=(l-a)*(t.x-a)+(h-c)*(t.y-c),m=u>=0&&d>=0?s:n;return f<=m}else if(o.type===2){let f=!1;return e&&(f=Point.distanceLineSegmentSquared(t.x,t.y,l,h,l,c)<=s||Point.distanceLineSegmentSquared(t.x,t.y,l,h,a,h)<=s||Point.distanceLineSegmentSquared(t.x,t.y,a,h,a,c)<=s||Point.distanceLineSegmentSquared(t.x,t.y,l,c,a,c)<=s),f}else if(o.type===3){const f=(l+a)/2,u=(h+c)/2,d=t.x-f,m=t.y-u,g=Math.abs(a-l)/2,p=Math.abs(c-h)/2;if(g===0||p===0)return Point.distanceLineSegmentSquared(t.x,t.y,l,h,a,c)<=s;if(e){const y=Geo.ID(g,p,d,m);return y*y<=s}else return!(Point.distanceSquared(d,m,-g,0)>=s||Point.distanceSquared(d,m,0,-p)>=s||Point.distanceSquared(d,m,0,p)>=s||Point.distanceSquared(d,m,g,0)>=s)}else if(o.type===4){const f=o.bounds,u=f.x,d=f.y,m=f.x+f.width,g=f.y+f.height;if(t.x>m&&t.xg&&t.ys&&Point.distanceLineSegmentSquared(t.x,t.y,u,d,m,d)>s&&Point.distanceLineSegmentSquared(t.x,t.y,m,g,u,g)>s&&Point.distanceLineSegmentSquared(t.x,t.y,m,g,m,d)>s)return!1;const p=Math.sqrt(s);if(e){if(this.fill===null?o.bC(t.x,t.y,p):o.Vk(t,p,!0,!1))return!0}else{const y=o.figures;for(let x=0;xs)return!1;const M=k.segments.r,L=M.length;for(let C=0;Cs)return!1;break;case 3:{const N=Util.nt();Geo.Un(b,P,S.point1X,S.point1Y,S.point2X,S.point2Y,S.endX,S.endY,.8,N);const T=r(N,t);if(Util.tt(N),T||(b=S.endX,P=S.endY,t.distanceSquared(b,P)>s))return!1;break}case 4:{const N=Util.nt();Geo.zg(b,P,S.point1X,S.point1Y,S.endX,S.endY,.8,N);const T=r(N,t);if(Util.tt(N),T||(b=S.endX,P=S.endY,t.distanceSquared(b,P)>s))return!1;break}case 5:case 6:{const N=S.type===5?S.So(k):S.Eh(k,b,P),T=N.length;if(T===0){if(b=S.type===5?S.centerX:S.endX,P=S.type===5?S.centerY:S.endY,t.distanceSquared(b,P)>s)return!1;break}let A=null;const D=Util.nt();for(let F=0;F=0){this.Go=t,this.c();const e=this.part;e!==null&&e.uf(),this.t(\"strokeWidth\",i,t)}else Util._(t,\"value >= 0\",Shape,\"strokeWidth:value\")}x0(){return this.Go}get strokeCap(){return this.Lt!==null?this.Lt.pp:\"butt\"}set strokeCap(t){const i=this.strokeCap;i!==t&&(typeof t==\"string\"&&(t===\"butt\"||t===\"round\"||t===\"square\")?(this.La(),this.Lt.pp=t,this.C(),this.t(\"strokeCap\",i,t)):Util._(t,'\"butt\", \"round\", or \"square\"',Shape,\"strokeCap\"))}get strokeJoin(){return this.Lt!==null?this.Lt.yp:\"miter\"}set strokeJoin(t){const i=this.strokeJoin;i!==t&&(typeof t==\"string\"&&(t===\"miter\"||t===\"bevel\"||t===\"round\")?(this.La(),this.Lt.yp=t,this.C(),this.t(\"strokeJoin\",i,t)):Util._(t,'\"miter\", \"bevel\", or \"round\"',Shape,\"strokeJoin\"))}get strokeMiterLimit(){return this.Lt!==null?this.Lt.wp:10}set strokeMiterLimit(t){const i=this.strokeMiterLimit;if(i!==t&&t>=1){this.La(),this.Lt.wp=t,this.C();const e=this.part;e!==null&&e.uf(),this.t(\"strokeMiterLimit\",i,t)}}get strokeDashArray(){return this.zo}set strokeDashArray(t){const i=this.zo;if(i!==t){if(t!==null&&!Array.isArray(t)&&Util.we(t,\"Array\",Shape,\"strokeDashArray:value\"),t!==null){const e=t.length;let s=0;for(let n=0;n=0)||!isFinite(o))&&Util.o(\"strokeDashArray:value \"+o+\" at index \"+n+\" must be a positive number or zero.\"),s+=o}if(s===0){if(i===null)return;t=null}}this.zo=t,this.C(),this.t(\"strokeDashArray\",i,t)}}get strokeDashOffset(){return this.Lt!==null?this.Lt.dh:0}set strokeDashOffset(t){const i=this.strokeDashOffset;i!==t&&t>=0&&(this.La(),this.Lt.dh=t,this.C(),this.t(\"strokeDashOffset\",i,t))}get figure(){return this.bd}set figure(t){const i=this.bd;if(i!==t){let e=Geo.Mo[t];if(typeof e==\"function\"?e=t:(e=Geo.Mo[t.toLowerCase()],e||Util.o(\"Unknown Shape.figure: \"+t)),i!==e){const s=this.part;s!==null&&s.uf(),this.bd=e,this.xs=null,this.ee(),this.c(),this.t(\"figure\",i,e)}}}get toArrow(){return this.Bt!==null?this.Bt.xp:\"None\"}set toArrow(t){const i=this.toArrow;if(t===!0?t=\"Standard\":t===!1&&(t=\"\"),i!==t){const e=Shape.DA(t);e===null?Util.o(\"Unknown Shape.toArrow: \"+t):i!==e&&(this.Bt===null&&(this.Bt=new LinkElementSettings),this.Bt.xp=e,this.xs=null,this.ee(),this.c(),this.FA(e),this.t(\"toArrow\",i,e))}}get fromArrow(){return this.Bt!==null?this.Bt.bp:\"None\"}set fromArrow(t){const i=this.fromArrow;if(t===!0?t=\"Standard\":t===!1&&(t=\"\"),i!==t){const e=Shape.DA(t);e===null?Util.o(\"Unknown Shape.fromArrow: \"+t):i!==e&&(this.Bt===null&&(this.Bt=new LinkElementSettings),this.Bt.bp=e,this.xs=null,this.ee(),this.c(),this.FA(e),this.t(\"fromArrow\",i,e))}}FA(t){const i=this.diagram;if(i!==null&&i.undoManager.isUndoingRedoing)return;this.OR();const e=Spot.MiddleRight;this.toArrow!==\"None\"?(this.segmentIndex=-1,this.alignmentFocus=e):this.fromArrow!==\"None\"&&(this.segmentIndex=0,this.alignmentFocus=new Spot(1-e.x,e.y))}get spot1(){return this.Lt!==null?this.Lt.zn:Spot.Default}set spot1(t){const i=this.spot1;i.equals(t)||(t=t.N(),this.La(),this.Lt.zn=t,this.c(),this.t(\"spot1\",i,t))}get spot2(){return this.Lt!==null?this.Lt.Xn:Spot.Default}set spot2(t){const i=this.spot2;i.equals(t)||(t=t.N(),this.La(),this.Lt.Xn=t,this.c(),this.t(\"spot2\",i,t))}get parameter1(){return this.kd}set parameter1(t){const i=this.kd;i!==t&&(this.kd=t,this.ee(),this.c(),this.t(\"parameter1\",i,t))}get parameter2(){return this.Pd}set parameter2(t){const i=this.Pd;i!==t&&(this.Pd=t,this.ee(),this.c(),this.t(\"parameter2\",i,t))}get naturalBounds(){return this.Xi}tv(){const t=this.desiredSize;if(!t.isReal()&&this.ct!==null){const i=this.ct.bounds;this.Xi.a(i)}else this.Xi.e(0,0,t.width,t.height)}get pathPattern(){return this.Lt!==null?this.Lt.kp:null}set pathPattern(t){const i=this.pathPattern;i!==t&&(this.La(),this.Lt.kp=t,this.C(),this.t(\"pathPattern\",i,t))}get geometryStretch(){return this.Lt!==null?this.Lt.Pp:1}set geometryStretch(t){const i=this.geometryStretch;i!==t&&(this.La(),this.Lt.Pp=t,this.c(),this.t(\"geometryStretch\",i,t))}get interval(){return this.J!==null?this.J.gf:1}set interval(t){const i=this.interval;if(t=Math.round(t),i!==t&&t!==0&&isFinite(t)){this.J===null&&(this.J=new GradElementSettings),this.J.gf=t;const e=this.diagram;e!==null&&this.panel===e.grid&&e._l(),this.c();const s=this.panel;s!==null&&(s.ns=null),this.t(\"interval\",i,t)}}get graduatedStart(){return this.J!==null?this.J.mf:0}set graduatedStart(t){const i=this.graduatedStart;i!==t&&(t<0?t=0:t>1&&(t=1),this.J===null&&(this.J=new GradElementSettings),this.J.mf=t,this.c(),this.t(\"graduatedStart\",i,t))}get graduatedEnd(){return this.J!==null?this.J.pf:1}set graduatedEnd(t){const i=this.graduatedEnd;i!==t&&(t<0?t=0:t>1&&(t=1),this.J===null&&(this.J=new GradElementSettings),this.J.pf=t,this.c(),this.t(\"graduatedEnd\",i,t))}get graduatedSkip(){return this.J!==null?this.J.yf:null}set graduatedSkip(t){const i=this.graduatedSkip;i!==t&&(t!==null&&Util.i(t,\"function\",Shape,\"graduatedSkip\"),this.J===null&&(this.J=new GradElementSettings),this.J.yf=t,this.c(),this.t(\"graduatedSkip\",i,t))}static xv(t,i,e){let n=null;if(t.toArrow!==\"None\")n=Shape.no[t.toArrow];else if(t.fromArrow!==\"None\")n=Shape.no[t.fromArrow];else{let o=Geo.Mo[t.figure];typeof o==\"string\"&&(o=Geo.Mo[o]),o===void 0&&Util.o(\"Unknown Shape.figure: \"+t.figure),n=o(t,i,e),n.sc=i,n.nc=e}if(n===null){const o=Geo.Mo.Rectangle;typeof o==\"function\"&&(n=o(t,i,e))}return n}static getFigureGenerators(){const t=new GMap;for(const i in Geo.Mo){if(i===i.toLowerCase())continue;const e=Geo.Mo[i];t.set(i,e)}return t.g(),t}static defineFigureGenerator(t,i){Util.i(t,\"string\",Shape,\"defineFigureGenerator:name\"),typeof i==\"string\"||Util.i(i,\"function\",Shape,\"defineFigureGenerator:func\");const e=t.toLowerCase(),s=Geo.Mo;s[t]=i,s[e]=t}static getArrowheadGeometries(){const t=new GMap;for(const i in Geo.Gg)if(Shape.no[i]===void 0){const e=Geometry.parse(Geo.Gg[i],!1);Shape.no[i]=e;const s=i.toLowerCase();s!==i&&(Shape.no[s]=i)}for(const i in Shape.no){if(i===i.toLowerCase())continue;const e=Shape.no[i];e instanceof Geometry&&t.set(i,e)}return t.g(),t}static defineArrowheadGeometry(t,i){Util.i(t,\"string\",Shape,\"defineArrowheadGeometry:name\");let e=null;typeof i==\"string\"?(Util.i(i,\"string\",Shape,\"defineArrowheadGeometry:pathstr\"),e=Geometry.parse(i,!1)):e=i;const s=t.toLowerCase();(s===\"none\"||t===s)&&Util.o(\"Shape.defineArrowheadGeometry name must not be empty or None or all-lower-case: \"+t);const n=Shape.no;n[t]=e,n[s]=t}static no=new PropertyCollection;static E2=new PropertyCollection;static DA(t){let i=Shape.no[t];if(i===void 0){const e=t.toLowerCase();if(e===\"none\")return\"None\";if(i=Shape.no[e],i===void 0){let s=null;for(const n in Geo.Gg)if(n.toLowerCase()===e){s=n;break}if(s!==null){const n=Geometry.parse(Geo.Gg[s],!1);return Shape.no[s]=n,e!==s&&(Shape.no[e]=s),s}}}return typeof i==\"string\"?i:i instanceof Geometry?t:null}}class ShapeTemplateSettings{gi;pp;yp;wp;dh;kp;Pp;zn;Xn;constructor(){this.gi=!1,this.pp=\"butt\",this.yp=\"miter\",this.wp=10,this.dh=0,this.kp=null,this.Pp=1,this.zn=Spot.Default,this.Xn=Spot.Default}copy(){const t=new ShapeTemplateSettings;return t.pp=this.pp,t.yp=this.yp,t.wp=this.wp,t.dh=this.dh,t.kp=this.kp,t.Pp=this.Pp,t.zn=this.zn.N(),t.Xn=this.Xn.N(),t}}var Wrap=(w=>(w[w.None=0]=\"None\",w[w.Fit=1]=\"Fit\",w[w.DesiredSize=2]=\"DesiredSize\",w[w.BreakAll=3]=\"BreakAll\",w))(Wrap||{}),TextOverflow=(w=>(w[w.Clip=0]=\"Clip\",w[w.Ellipsis=1]=\"Ellipsis\",w))(TextOverflow||{}),TextFormat=(w=>(w[w.Trim=0]=\"Trim\",w[w.None=1]=\"None\",w))(TextFormat||{});class TextBlock extends GraphObject{hi;Hi;kn;Ce;mi;b0;Sd;J;W;Tl;oo;Pn;Le;Fi;Mn;constructor(t,i){return super(),this.n|=2097152,this.hi=\"\",this.Hi=\"black\",this.kn=\"13px sans-serif\",this.Ce=0,this.mi=0,this.b0=0,this.Sd=null,this.J=null,this.W=null,this.Tl=0,this.oo=null,this.Pn=0,this.Le=null,this.Fi=null,this.Mn=null,typeof t==\"string\"?this.text=t:t&&Object.assign(this,t),i&&Object.assign(this,i),this}cloneProtected(t){super.cloneProtected(t),t.hi=this.hi,t.Hi=this.Hi,t.kn=this.kn,t.Ce=this.Ce,t.mi=this.mi,t.b0=this.b0,t.Sd=this.Sd,this.J!==null&&(t.J=this.J.copy()),this.W!==null&&(this.W.gi?t.W=this.W:t.W=this.W.copy()),t.Tl=this.Tl,t.oo=this.oo,t.Pn=this.Pn,t.Le=this.Le,t.Fi=this.Fi,t.Mn=this.Mn}Sn(){this.W===null?this.W=new TextBlockTemplateSettings:this.W.gi&&(this.W=this.W.copy())}lh(){super.lh(),this.W!==null&&(this.W.gi=!0)}lv(t){this.n=t.n|2048|4096,this.Jt=t.opacity,this.Ct=t.background,this.ze=t.desiredSize.N(),this.minSize=t.minSize.N(),this.maxSize=t.maxSize.N(),t.bi!==null?this.bi=t.bi.copy():this.bi=null,this.et=t.scale,this.Kt=t.angle,this.stretch=t.stretch,this.$r=t.margin.N(),this.ri=t.alignment.N(),this.Wc=t.alignmentFocus.N(),this.segmentFraction=t.segmentFraction,this.segmentOffset=t.segmentOffset.N(),this.segmentOrientation=t.segmentOrientation,t.oi!==null&&(this.oi=t.oi.copy()),this.shadowVisible=t.shadowVisible,this.hi=t.hi,this.Hi=t.Hi,this.kn=t.kn,this.J!==null&&(this.J=t.J.copy()),t.W!==null&&(t.W.gi?this.W=t.W:this.W=t.W.copy()),this.Tl=t.Tl}ov(t){if(this.hi=t.text||\"\",this.Kt=t.labelAngle||0,this.Ce=t.lineCount||0,this.Mv(t.lines),t.naturalBounds&&(this.Xi=t.naturalBounds),t.actualBounds){const i=t.actualBounds;this.Xt(i.x,i.y,i.width,i.height)}}li(t){t in Wrap?this.wrap=t:super.li(t)}toString(){return this.hi.length>22?'TextBlock(\"'+this.hi.substring(0,20)+'\"...)':'TextBlock(\"'+this.hi+'\")'}static getEllipsis(){return TextBlock.Mp}static setEllipsis(t){TextBlock.Mp=t,TextBlock.Zb=new PropertyCollection,TextBlock.B2=0}static getBaseline(){return TextBlock.Qb}static setBaseline(t){TextBlock.Qb=t}static Qb=null;static getUnderline(){return TextBlock._b}static setUnderline(t){TextBlock._b=t}static _b=null;static None=0;static WrapFit=1;static WrapDesiredSize=2;static WrapBreakAll=3;static OverflowClip=0;static OverflowEllipsis=1;static FormatTrim=0;static FormatNone=1;c(){super.c()}get font(){return this.kn}set font(t){const i=this.kn;i!==t&&(this.kn=t,this.oo=null,this.c(),this.t(\"font\",i,t))}static isValidFont(t){return root.CSS?root.CSS.supports(\"font\",t):!0}get text(){return this.hi}set text(t){const i=this.hi;t!=null?t=t.toString():t=\"\",i!==t&&(this.hi=t,this.c(),this.t(\"text\",i,t),this.Ke(!0))}get textAlign(){return this.W!==null?this.W.Sp:\"start\"}set textAlign(t){const i=this.textAlign;i!==t&&(t===\"start\"||t===\"end\"||t===\"left\"||t===\"right\"||t===\"center\")&&(this.Sn(),this.W.Sp=t,this.C(),this.t(\"textAlign\",i,t))}get flip(){return this.W!==null?this.W.ro:0}set flip(t){const i=this.flip;i!==t&&(this.Sn(),this.W.ro=t,this.C(),this.t(\"flip\",i,t))}get verticalAlignment(){return this.W!==null?this.W.el:Spot.Top}set verticalAlignment(t){const i=this.verticalAlignment;i.equals(t)||(t=t.N(),this.Sn(),this.W.el=t,this.nf(),this.t(\"verticalAlignment\",i,t))}get naturalBounds(){if(!this.Xi.isReal()){const t=Size.l();this.U2(this.hi,999999,t);let i=t.width;Size.s(t);let e=this.RA(i);const s=this.desiredSize;isNaN(s.width)||(i=s.width),isNaN(s.height)||(e=s.height),this.Xi.En(i,e)}return this.Xi}get isMultiline(){return(this.n&2097152)!==0}set isMultiline(t){const i=(this.n&2097152)!==0;i!==t&&(this.n=this.n^2097152,this.c(),this.t(\"isMultiline\",i,t))}get isUnderline(){return(this.n&4194304)!==0}set isUnderline(t){const i=(this.n&4194304)!==0;i!==t&&(this.n=this.n^4194304,this.Ke(!0),this.C(),this.t(\"isUnderline\",i,t))}get isStrikethrough(){return(this.n&8388608)!==0}set isStrikethrough(t){const i=(this.n&8388608)!==0;i!==t&&(this.n=this.n^8388608,this.Ke(!0),this.C(),this.t(\"isStrikethrough\",i,t))}get wrap(){return this.W!==null?this.W.Np:2}set wrap(t){const i=this.wrap;i!==t&&(this.Sn(),this.W.Np=t,this.c(),this.t(\"wrap\",i,t))}get overflow(){return this.W!==null?this.W.Cp:0}set overflow(t){const i=this.overflow;i!==t&&(this.Sn(),this.W.Cp=t,this.c(),this.t(\"overflow\",i,t))}get isOverflowed(){return(this.n&16777216)!==0}V2(t){t?this.n|=16777216:this.n&=-16777217}get stroke(){return this.Hi}set stroke(t){const i=this.Hi;i!==t&&(t!==null&&Brush.od(t,\"TextBlock.stroke\"),t instanceof Brush&&t.g(),this.Hi=t,typeof t!=\"string\"&&this.tf(),this.C(),this.t(\"stroke\",i,t))}get lineCount(){return this.Ce}get lineHeight(){return this.Lp()}get editable(){return(this.n&1048576)!==0}set editable(t){const i=(this.n&1048576)!==0;i!==t&&(this.n=this.n^1048576,this.t(\"editable\",i,t))}get A2(){return(this.n&33554432)!==0}set A2(t){this.n=this.n^33554432}get textEditor(){return this.W!==null?this.W.Ap:null}set textEditor(t){const i=this.textEditor;i!==t&&(this.Sn(),this.W.Ap=t,this.t(\"textEditor\",i,t))}get errorFunction(){return this.W!==null?this.W.os:null}set errorFunction(t){const i=this.errorFunction;i!==t&&(t!==null&&Util.i(t,\"function\",TextBlock,\"errorFunction\"),this.Sn(),this.W.os=t,this.t(\"errorFunction\",i,t))}get interval(){return this.J!==null?this.J.gf:1}set interval(t){const i=this.interval;if(t=Math.round(t),i!==t&&t!==0&&isFinite(t)){this.J===null&&(this.J=new GradElementSettings),this.J.gf=t,this.c();const e=this.panel;e!==null&&(e.ns=null),this.t(\"interval\",i,t)}}get graduatedStart(){return this.J!==null?this.J.mf:0}set graduatedStart(t){const i=this.graduatedStart;i!==t&&(t<0?t=0:t>1&&(t=1),this.J===null&&(this.J=new GradElementSettings),this.J.mf=t,this.c(),this.t(\"graduatedStart\",i,t))}get graduatedEnd(){return this.J!==null?this.J.pf:1}set graduatedEnd(t){const i=this.graduatedEnd;i!==t&&(t<0?t=0:t>1&&(t=1),this.J===null&&(this.J=new GradElementSettings),this.J.pf=t,this.c(),this.t(\"graduatedEnd\",i,t))}get graduatedFunction(){return this.J!==null?this.J.Tp:null}set graduatedFunction(t){const i=this.graduatedFunction;i!==t&&(t!==null&&Util.i(t,\"function\",TextBlock,\"graduatedFunction\"),this.J===null&&(this.J=new GradElementSettings),this.J.Tp=t,this.c(),this.t(\"graduatedFunction\",i,t))}get graduatedSkip(){return this.J!==null?this.J.yf:null}set graduatedSkip(t){const i=this.graduatedSkip;i!==t&&(t!==null&&Util.i(t,\"function\",TextBlock,\"graduatedSkip\"),this.J===null&&(this.J=new GradElementSettings),this.J.yf=t,this.c(),this.t(\"graduatedSkip\",i,t))}fh(t,i){if(this.Hi===null||this.hi.length===0||this.kn===null)return;const e=this.naturalBounds,s=this.actualBounds,n=e.width,o=e.height,r=this.Lp();let l=t.textAlign=this.textAlign;const h=i.Yu;l===\"start\"?l=h?\"right\":\"left\":l===\"end\"&&(l=h?\"left\":\"right\");const a=this.isUnderline,c=this.isStrikethrough;this.dn(t,this.Hi,!0,!1,e,s),(a||c)&&this.dn(t,this.Hi,!1,!1,e,s);const f=0;let u=0;const d=n;let m=!1;i.Qt===t&&!(i.Qt instanceof SVGContext)&&!this.A2&&i.getRenderingHint(\"textGreeking\")===!0&&r*this.ca*i.scale<3&&(m=!0);const g=this.spacingAbove,p=this.spacingBelow;switch(this.flip){case 0:break;case 2:t.translate(n,0),t.scale(-1,1);break;case 1:t.translate(0,o),t.scale(1,-1);break;case 3:t.translate(n,o),t.scale(-1,-1);break}t.commitTransform();const y=this.Ce,k=(g+r+p)*y;if(o>k){const b=this.verticalAlignment;u=b.y*o-b.y*k+b.offsetY}if(y===1&&this.Mn!==null){let b=this.mi;b>d&&(b=d),u+=g,this.vA(this.Mn,t,f,u,d,r,b,m,l,a,c)}else if(this.Le!==null&&this.Fi!==null)for(let b=0;bd&&(P=d),u+=g,this.vA(this.Fi[b],t,f,u,d,r,P,m,l,a,c),u+=r+p}switch(this.flip){case 0:break;case 2:t.scale(-1,1),t.translate(-n,0);break;case 1:t.scale(1,-1),t.translate(0,-o);break;case 3:t.scale(-1,-1),t.translate(-n,-o);break}}vA(t,i,e,s,n,o,r,l,h,a,c){let f=0;if(l){h===\"left\"?f=0:h===\"right\"?f=n-r:h===\"center\"&&(f=(n-r)/2);const m=i.globalAlpha;i.globalAlpha=m/2,i.fillRect(e+f,s+o/4,r,o/2),i.globalAlpha=m;return}h===\"left\"?f=0:h===\"right\"?f=n:h===\"center\"&&(f=n/2);const u=TextBlock.Qb!==null?TextBlock.Qb(this,o):o*.75;i.fillText(t,e+f,s+u);let d=o/20|0;if(d===0&&(d=1),h===\"right\"?f-=r:h===\"center\"&&(f-=r/2),a){const m=TextBlock._b!==null?TextBlock._b(this,o):o*.8;this.OA(e+f,s+m,e+f+r,s+m,d,i),i instanceof SVGContext&&i.lastCreatedElement.classList.add(\"gojs-td\")}if(c){let m=s+o-o/2.2|0;d%2!==0&&(m+=.5),this.OA(e+f,m,e+f+r,m,d,i),i instanceof SVGContext&&i.lastCreatedElement.classList.add(\"gojs-td\")}}OA(t,i,e,s,n,o){o.beginPath(),o.lineWidth=n,o.moveTo(t,i),o.lineTo(e,s),o.stroke(),o.endPath()}_c(t,i,e){if(!super._c(t,i,e))return!1;if(this.dn(t,this.Hi,!0,!1,this.naturalBounds,this.actualBounds),e){if(this.svg.getElementsByTagName(\"text\").length===0)return!0;const n=this.svg.getElementsByClassName(\"gojs-td\");for(let o=0;o1||this.isUnderline||this.isStrikethrough?!0:super.sd(t)}h2(t,i){if(t.nodeName!==\"g\")t.setAttributeNS(null,\"filter\",i);else{const e=t.getElementsByTagName(\"text\");for(let s=0;sthis.maxLines&&(this.n|=16777216))}U2(t,i,e){const s=this.formatting===0;s&&(t=t.trim());let n=0,o=0,r=0;const l=this.kn,h=this.spacingAbove+this.spacingBelow,a=Math.max(0,this.Lp()+h),c=this.overflow===1?this.EA(l):0;if(this.Ce>=this.maxLines){e!==null&&e.e(0,a);return}let f=t;if(this.wrap===0){if(this.Pn=1,o=this.getStringWidth(t),c===0||o<=i){this.mi=Math.max(this.mi,o),this.Nn(t,this.mi),e!==null&&e.e(o,a);return}let d=this.Nd(f);f=f.substring(d.length);let m=this.Nd(f);for(o=this.getStringWidth(d+m),r=0;m.length>0&&o<=i;){d+=m,f=f.substring(m.length),m=this.Nd(f),r=o;let g=d+m;s&&(g=g.trim()),o=this.getStringWidth(g)}for(s&&(m=m.trim()),d+=m,i=Math.max(1,i-c);this.getStringWidth(d)>i&&d.length>1;)d=d.substring(0,d.length-1);this.V2(!0),d+=TextBlock.Mp,r=this.getStringWidth(d),this.mi=r,this.Nn(d,r),e!==null&&e.e(r,a);return}let u=0;for(f.length===0&&(u=1,this.Nn(f,0));f.length>0;){let d=this.Nd(f);for(f=f.substring(d.length);this.getStringWidth(d)>i;){let p=1;for(o=this.getStringWidth(d.substring(0,p)),r=0;o<=i;)p++,r=o,o=this.getStringWidth(d.substring(0,p));let y=0;p===1?(y=o,n=Math.max(n,o)):(y=r,n=Math.max(n,r)),p--,p<1&&(p=1);const x=d.substring(0,p);if(this.Nn(x,y),u++,d=d.substring(p),this.Ce+u>this.maxLines)break}let m=this.Nd(f);for(o=this.getStringWidth(d+m),r=0;m.length>0&&o<=i;){d+=m,f=f.substring(m.length),m=this.Nd(f),r=o;let p=d+m;s&&(p=p.trim()),o=this.getStringWidth(p)}if(s&&(d=d.trim()),d===\"\")continue;d[d.length-1]===\"\\xAD\"&&(d=d.substring(0,d.length-1)+\"\\u2010\");let g=0;if(m.length===0?(g=o,n=Math.max(n,o)):(r=this.getStringWidth(d),g=r,n=Math.max(n,r)),this.Nn(d,g),u++,this.Ce+u>this.maxLines)break}this.Pn=Math.min(this.maxLines,u),this.mi=Math.max(this.mi,n),e!==null&&e.e(this.mi,a*this.Pn)}Lv(t,i){if(this.mi===0||this.Le===null||this.Fi===null||this.overflow!==1)return;const e=this.kn,s=this.overflow===1?this.EA(e):0,n=this.spacingAbove+this.spacingBelow,o=Math.max(0,this.Lp()+n),r=Math.min(this.maxLines-1,Math.max(Math.floor(i/o+.01)-1,0));if(r+1>=this.Fi.length)return;this.V2(!0);let l=this.Fi[r];const h=Math.max(1,t-s);for(;this.getStringWidth(l)>h&&l.length>1;)l=l.substring(0,l.length-1);l+=TextBlock.Mp;const a=this.getStringWidth(l);this.Fi[r]=l,this.Fi=this.Fi.slice(0,r+1),this.Le[r]=a,this.Le=this.Le.slice(0,r+1),this.Pn=this.Fi.length,this.mi=Math.max(this.mi,a),this.Ce=this.Pn,this.Ce===1&&(this.Mn=this.Fi[0])}Nd(t){if(this.wrap===3)return t.substring(0,1);let i=t.length,e=0;const s=TextBlock.Av;for(;e=t.length?t:t.substring(0,e)}getStringWidth(t){return TextBlock.tl===null?t.length*8:TextBlock.tl.measureText(t).width}Lp(){if(this.oo!==null)return this.oo;const t=this.kn;let i=0;return TextBlock.tl===null?(i=16,this.oo=i,i):(TextBlock.z2[t]!==void 0&&TextBlock.BA<5e3?i=TextBlock.z2[t]:(i=TextBlock.tl.measureText(\"M\").width*1.3,TextBlock.z2[t]=i,TextBlock.BA++),this.oo=i,i)}EA(t){if(TextBlock.tl===null)return 6;let i=0;return TextBlock.Zb[t]!==void 0&&TextBlock.B2<5e3?i=TextBlock.Zb[t]:(i=TextBlock.tl.measureText(TextBlock.Mp).width,TextBlock.Zb[t]=i,TextBlock.B2++),i}t1(t,i){return t.indexOf(`\n`,i)}RA(t){let i=this.hi.replace(/\\r\\n/g,`\n`).replace(/\\r/g,`\n`);const e=this.spacingAbove+this.spacingBelow,s=Math.max(0,this.Lp()+e);if(i.length===0)return this.mi=0,this.Ce=1,s;if(!this.isMultiline){const h=this.t1(i,0);h>=0&&(i=i.substring(0,h))}let n=0;this.Ce=0;let o=0,r=-1,l=!1;for(;!l;){if(r=this.t1(i,o),r===-1&&(r=i.length,l=!0),o<=r){const h=i.substring(o,r);if(this.wrap!==0){this.Pn=0;const a=Size.l();this.U2(h,t,a),n+=a.height,Size.s(a),this.Ce+=this.Pn}else this.U2(h,t,null),n+=s,this.Ce++;this.Ce===this.maxLines&&(l=!0)}o=r+1}return this.b0=n,n}Cv(){let t=this.hi.replace(/\\r\\n/g,`\n`).replace(/\\r/g,`\n`);if(t.length===0)return 8;if(this.isMultiline){let i=0,e=0,s=!1;for(;!s;){let n=this.t1(t,e);n===-1&&(n=t.length,s=!0);let o=t.substring(e,n);this.formatting===0&&(o=o.trim()),i=Math.max(i,this.getStringWidth(o)),e=n+1}return i}else{const i=this.t1(t,0);return i>=0&&(t=t.substring(0,i)),this.getStringWidth(t)}}get textValidation(){return this.W!==null?this.W.Al:null}set textValidation(t){const i=this.textValidation;i!==t&&(t!==null&&Util.i(t,\"function\",TextBlock,\"textValidation\"),this.Sn(),this.W.Al=t,this.t(\"textValidation\",i,t))}get textEdited(){return this.W!==null?this.W.Dp:null}set textEdited(t){const i=this.textEdited;i!==t&&(t!==null&&Util.i(t,\"function\",TextBlock,\"textEdited\"),this.Sn(),this.W.Dp=t,this.t(\"textEdited\",i,t))}get spacingAbove(){return this.W!==null?this.W.Fp:0}set spacingAbove(t){const i=this.spacingAbove;i!==t&&(this.Sn(),this.W.Fp=t,this.c(),this.t(\"spacingAbove\",i,t))}get spacingBelow(){return this.W!==null?this.W.Rp:0}set spacingBelow(t){const i=this.spacingBelow;i!==t&&(this.Sn(),this.W.Rp=t,this.c(),this.t(\"spacingBelow\",i,t))}get formatting(){return this.W!==null?this.W.vp:0}set formatting(t){const i=this.formatting;i!==t&&(this.Sn(),this.W.vp=t,this.c(),this.t(\"formatting\",i,t))}get maxLines(){return this.W!==null?this.W.Op:1/0}set maxLines(t){const i=this.maxLines;i!==t&&(t=Math.floor(t),t<=0&&Util._(t,\"> 0\",TextBlock,\"maxLines\"),this.Sn(),this.W.Op=t,this.c(),this.t(\"maxLines\",i,t))}getMetrics(){return[this.mi,this.Tl,this.oo,this.Pn,this.Le,this.Fi,this.Mn]}Mv(t){t!==void 0&&(this.mi=t[0],this.Tl=t[1],this.oo=t[2],this.Pn=t[3],this.Le=t[4],this.Fi=t[5],this.Mn=t[6])}get metrics(){return{arrSize:this.Le!==null?this.Le:[this.mi],arrText:this.Fi!==null?this.Fi:[this.Mn],maxLineWidth:this.mi,fontHeight:this.oo}}get choices(){return this.Sd}set choices(t){const i=this.Sd;i!==t&&(this.Sd=t,this.t(\"choices\",i,t))}static Av=new RegExp(\"[ \\u200B\\xAD]\");static z2=new PropertyCollection;static BA=0;static Zb=new PropertyCollection;static B2=0;static Mp=\"...\";static IA=\"\";static tl=Diagram.isUsingDOM()?new CanvasSurface(null).ai:null}class TextBlockTemplateSettings{gi;os;ro;vp;Op;Cp;Fp;Rp;Sp;Dp;Ap;Al;el;Np;constructor(){this.gi=!1,this.os=null,this.ro=0,this.vp=0,this.Op=1/0,this.Cp=0,this.Fp=0,this.Rp=0,this.Sp=\"start\",this.Dp=null,this.Ap=null,this.Al=null,this.el=Spot.Top,this.Np=2}copy(){const t=new TextBlockTemplateSettings;return t.os=this.os,t.ro=this.ro,t.vp=this.vp,t.Op=this.Op,t.Cp=this.Cp,t.Fp=this.Fp,t.Rp=this.Rp,t.Sp=this.Sp,t.Dp=this.Dp,t.Ap=this.Ap,t.Al=this.Al,t.el=this.el,t.Np=this.Np,t}}class GradElementSettings{gf;mf;pf;Tp;yf;constructor(){this.gf=1,this.mf=0,this.pf=1,this.Tp=null,this.yf=null}copy(){const t=new GradElementSettings;return t.gf=this.gf,t.mf=this.mf,t.pf=this.pf,t.Tp=this.Tp,t.yf=this.yf,t}}var ImageStretch=(w=>(w[w.None=0]=\"None\",w[w.Fill=2]=\"Fill\",w[w.Uniform=6]=\"Uniform\",w[w.UniformToFill=7]=\"UniformToFill\",w))(ImageStretch||{});class Picture extends GraphObject{sl;yt;nl;wf;os;ol;xf;ro;bf;kf;Ib;constructor(t,i){super(),this.n|=2097152,this.sl=null,this.yt=\"\",this.nl=Rect.DD,this.wf=2,this.os=null,this.ol=null,this.xf=Spot.Center,this.ro=0,this.bf=null,this.kf=null,this.Ib=null,typeof t==\"string\"?this.source=t:t&&Object.assign(this,t),i&&Object.assign(this,i)}cloneProtected(t){super.cloneProtected(t),t.yt=this.yt,t.element=this.sl,t.nl=this.nl.N(),t.wf=this.wf,t.ro=this.ro,t.os=this.os,t.ol=this.ol,t.xf=this.xf.N(),t.kf=this.kf}li(t){t in ImageStretch?this.imageStretch=t:super.li(t)}toString(){return\"Picture(\"+this.source+\")#\"+GSet.as(this)}get Pf(){return(this.n&1048576)!==0}set Pf(t){this.Pf!==t&&(this.n=this.n^1048576)}get Ip(){return(this.n&2097152)!==0}set Ip(t){this.Ip!==t&&(this.n=this.n^2097152)}get mn(){return(this.n&4194304)!==0}set mn(t){this.mn!==t&&(this.n=this.n^4194304)}static clearCache(t){t===void 0&&(t=\"\"),Util.i(t,\"string\",Picture,\"clearCache:url\"),t!==\"\"?Picture.Ep[t]&&(delete Picture.Ep[t],Picture.i1--):(Picture.Ep=new PropertyCollection,Picture.i1=0)}static BL(t,i){i.UA||(i.e1=e=>{Picture.Tv(i,e),t.desiredSize.isReal()||(t.ue(!1),t.c())},i.s1=e=>Picture.Dv(i,e),i.addEventListener(\"load\",i.e1),i.addEventListener(\"error\",i.s1),i.UA=!0)}static yR(t){t.e1&&t.removeEventListener(\"load\",t.e1),t.s1&&t.removeEventListener(\"error\",t.s1),delete t.e1,delete t.s1,delete t.UA}get element(){return this.sl}set element(t){const i=this.sl;if(this.Ke(!0),i!==t){this.Pf=t instanceof HTMLCanvasElement;const e=t instanceof HTMLImageElement;t!==null&&!(e||t instanceof HTMLVideoElement||this.Pf)&&Util.o(\"Picture.element must be an instance of Image, Canvas, or Video, not: \"+t);const s=this.diagram;s!==null&&s.FS(this),this.sl=t,t!==null&&e&&t.ss===void 0&&(t.ss=new GSet),s!==null&&e&&s.DS(this),this.t(\"element\",i,t),this.C()}}mR(){const t=this.sl;if(t===null)return;const i=this.desiredSize.isReal();(this.Pf||t.complete===!0)&&(t.f0&&(t.Bp instanceof Event&&this.os!==null?this.os(this,t.Bp):t.mn===!0&&!t.Bp&&this.ol!==null&&t.X2&&this.ol(this,t.X2)),t.mn=!0),t.mn&&i&&this.diagram!==null&&this.diagram.Ku.add(this)}Fv(){if(this.sl===null){this.bf=!1;return}const t=new CanvasSurface(null).ai;try{t.drawImage(this.sl,0,0)}catch{this.Ip=!1}try{t.getImageData(0,0,1,1).data[3]&&(this.bf=!1),this.bf=!1}catch{this.bf=!0}}get source(){return this.yt}set source(t){const i=this.yt;if(i!==t){this.Ke(!0),Util.i(t,\"string\",Picture,\"source\"),this.yt=t;let e=Picture.Ep;if(!Diagram.isUsingDOM()){this.t(\"source\",i,t);return}let s=null;if(e[t]!==void 0)s=e[t];else if(t!==\"\"){Picture.i1>30&&(Picture.clearCache(),e=Picture.Ep),s=Util.en(\"img\"),s.f0=!0,Picture.BL(this,s);const n=this.kf;n!==null&&(s.crossOrigin=n(this)),s.src=t,e[t]=s,Picture.i1++}this.element=s,s!==null&&s.__goCache===void 0&&(s.__goCache=new PictureCacheArray),this.c(),this.C(),this.t(\"source\",i,t)}}static Tv(t,i){t.mn=!0,t.Bp=!1;let e;const s=t.ss.copy();if(s==null)return;const n=s.iterator;for(;n.next();){const o=n.value;o.C();const r=t.getAttribute(\"src\")||\"\",l=o.Wl.get(r);if(l===null)continue;const h=l.length;for(let a=0;a=o.width&&(r=r+p.offsetX+(d*p.x-o.width*p.x)),m>=o.height&&(l=l+p.offsetY+(m*p.y-o.height*p.y)),a=Math.min(o.width,d),c=Math.min(o.height,m);break;case 2:d=o.width,m=o.height;break;case 6:case 7:let A=0;g===6?(A=Math.min(o.height/m,o.width/d),d*=A,m*=A):g===7&&(A=Math.max(o.height/m,o.width/d),d*=A,m*=A,d>=o.width&&(r=(r+p.offsetX+(d*p.x-o.width*p.x)/d)*a),m>=o.height&&(l=(l+p.offsetY+(m*p.y-o.height*p.y)/m)*c),a*=1/(d/o.width),c*=1/(m/o.height),d=o.width,m=o.height);break}const y=a*c,x=this.getDocumentScale()*i.scale,k=d*x,b=m*x,P=k*b,M=y/P,L=e.__goCache;let C=null;const S=Picture.Rv;if(!n){if(e.mn&&L!==void 0&&P>4&&M>S*S){L.Ot===null&&(L.VA(4,f,u,e),L.VA(16,f,u,e));const A=L.Ot,D=A.length;for(let F=0;F0){const c=this.Ot[this.Ot.length-1];h=c.yt,a=c.Cd}o.setTransform(r*a,0,0,r*a,0,0),o.commitTransform(),o.drawImage(h,0,0),this.Ot.push(l)}}class PictureCacheInstance{yt;Cd;constructor(t,i){this.yt=t,this.Cd=i}}class GeoStream{Pi;Jg;constructor(){this.Jg=new Geometry,this.Pi=null}vi(t){t!==null?(t.ot(),this.Jg=t,t.figures.clear()):this.Jg=new Geometry,this.Pi=null}uu(t,i,e,s,n,o){if(s!==void 0&&s===!0){const r=new PathSegment(1);r.endX=t,r.endY=i,this.Pi.segments.add(r)}else this.Pi=new PathFigure,this.Pi.startX=t,this.Pi.startY=i,this.Pi.isFilled=e,this.Pi.isEvenOdd=o||!1,this.Jg.figures.add(this.Pi);n!==void 0&&(this.Pi.isShadowed=n)}zD(){const t=this.Pi.segments.length;t>0&&this.Pi.segments.elt(t-1).close()}XD(){this.Pi.segments.length>0&&(this.Pi.isFilled=!0)}KD(t){this.Pi.isShadowed=t}mE(t){this.Pi.isEvenOdd=t}BD(t,i,e){e===void 0&&(e=!1);const s=new PathSegment(1);s.endX=t,s.endY=i,e&&s.close(),this.Pi.segments.add(s)}fr(t,i,e){e===void 0&&(e=!1);const s=new PathSegment(2);s.endX=t,s.endY=i,e&&s.close(),this.Pi.segments.add(s)}ur(t,i,e,s,n,o,r){r===void 0&&(r=!1);const l=new PathSegment(3);l.point1X=t,l.point1Y=i,l.point2X=e,l.point2Y=s,l.endX=n,l.endY=o,r&&l.close(),this.Pi.segments.add(l)}Mw(t,i,e,s,n){n===void 0&&(n=!1);const o=new PathSegment(4);o.point1X=t,o.point1Y=i,o.endX=e,o.endY=s,n&&o.close(),this.Pi.segments.add(o)}UD(t,i,e,s,n,o,r){o===void 0&&(o=0),r===void 0&&(r=!1);const l=new PathSegment(5);l.startAngle=t,l.sweepAngle=i,l.centerX=e,l.centerY=s,l.radiusX=n,o!==0?l.radiusY=o:l.radiusY=n,r&&l.close(),this.Pi.segments.add(l)}VD(t,i,e,s,n,o,r,l){l===void 0&&(l=!1);const h=new PathSegment(6,o,r,t,i,e,s,n);l&&h.close(),this.Pi.segments.add(h)}static K2=null;static pC(t){const i=GeoStream.K2;if(i!==null)return GeoStream.K2=null,i.vi(t),i;{const e=new GeoStream;return e.vi(t),e}}static yC(t){GeoStream.K2=t}}{const w=function(n,o){const r=n.toLowerCase(),l=Geo.Mo;l[n]=o,l[r]=n};w(\"Rectangle\",(n,o,r)=>{const l=\"r\"+o+\",\"+r;let h=Geo.ar[l];return h!==void 0||(h=new Geometry(2),h.endX=o,h.endY=r,Geo.cr{const l=\"s\"+o+\",\"+r;let h=Geo.ar[l];return h!==void 0||(h=new Geometry(2),h.endX=o,h.endY=r,h.defaultStretch=6,Geo.cr{(isNaN(l)||l<0)&&(l=5),isNaN(h)&&(h=15);const a=\"rr\"+o+\",\"+r+\",\"+l+\",\"+h;let c=Geo.ar[a];if(c!==void 0)return c;let f=l;(h&1)===1?(f=Math.min(f,(h&2)===2?o/3:o),f=Math.min(f,(h&8)===8?r/3:r)):f=0;const u=new PathFigure(f,0,!0);c=new Geometry().add(u);const d=Spot.TopLeft.copy(),m=Spot.BottomRight.copy();if((h&2)===2){let g=l;g=Math.min(g,(h&1)===1?o/3:o),g=Math.min(g,(h&4)===4?r/3:r);const p=g*Geo.Bn;u.add(new PathSegment(2,o-g,0)).add(new PathSegment(3,o,g,o-p,0,o,p)),d.offsetY=p,m.offsetX=-p}else u.add(new PathSegment(2,o,0));if((h&4)===4){let g=l;g=Math.min(g,(h&8)===8?o/3:o),g=Math.min(g,(h&2)===2?r/3:r);const p=g*Geo.Bn;u.add(new PathSegment(2,o,r-g)).add(new PathSegment(3,o-g,r,o,r-p,o-p,r)),m.offsetX=-p,m.offsetY=-p}else u.add(new PathSegment(2,o,r));if((h&8)===8){let g=l;g=Math.min(g,(h&4)===4?o/3:o),g=Math.min(g,(h&1)===1?r/3:r);const p=g*Geo.Bn;u.add(new PathSegment(2,g,r)).add(new PathSegment(3,0,r-g,p,r,0,r-p)),d.offsetX=p,m.offsetY=-p}else u.add(new PathSegment(2,0,r));if((h&1)===1){const g=f*Geo.Bn;u.add(new PathSegment(2,0,f)).add(new PathSegment(3,f,0,0,g,g,0).close()),d.offsetX=g,d.offsetY=g}else u.add(new PathSegment(2,0,0).close());return c.spot1=d,c.spot2=m,Geo.cr{const l=n?n.parameter1:NaN,h=n?n.parameter2:NaN;return t(n,o,r,l,h)}),w(\"Border\",\"RoundedRectangle\"),w(\"RoundedTopRectangle\",(n,o,r)=>{const l=n?n.parameter1:NaN;return t(n,o,r,l,3)}),w(\"RoundedBottomRectangle\",(n,o,r)=>{const l=n?n.parameter1:NaN;return t(n,o,r,l,12)}),w(\"RoundedLeftRectangle\",(n,o,r)=>{const l=n?n.parameter1:NaN;return t(n,o,r,l,9)}),w(\"RoundedRightRectangle\",(n,o,r)=>{const l=n?n.parameter1:NaN;return t(n,o,r,l,6)}),w(\"Ellipse\",(n,o,r)=>{const l=\"e\"+o+\",\"+r;let h=Geo.ar[l];return h!==void 0||(h=new Geometry(3),h.endX=o,h.endY=r,h.spot1=Spot.Rk,h.spot2=Spot.vk,Geo.cr{const l=\"c\"+o+\",\"+r;let h=Geo.ar[l];return h!==void 0||(h=new Geometry(3),h.endX=o,h.endY=r,h.spot1=Spot.Rk,h.spot2=Spot.vk,h.defaultStretch=6,Geo.crnew Geometry().add(new PathFigure(0,0).add(new PathSegment(2,o,.5*r)).add(new PathSegment(2,0,r).close())).setSpots(0,.25,.5,.75)),w(\"TriangleDown\",(n,o,r)=>new Geometry().add(new PathFigure(0,0).add(new PathSegment(2,o,0)).add(new PathSegment(2,.5*o,r).close())).setSpots(.25,0,.75,.5)),w(\"TriangleLeft\",(n,o,r)=>new Geometry().add(new PathFigure(o,r).add(new PathSegment(2,0,.5*r)).add(new PathSegment(2,o,0).close())).setSpots(.5,.25,1,.75)),w(\"TriangleUp\",(n,o,r)=>new Geometry().add(new PathFigure(o,r).add(new PathSegment(2,0,r)).add(new PathSegment(2,.5*o,0).close())).setSpots(.25,.5,.75,1)),w(\"Triangle\",\"TriangleUp\"),w(\"Diamond\",(n,o,r)=>new Geometry().add(new PathFigure(.5*o,0).add(new PathSegment(2,0,.5*r)).add(new PathSegment(2,.5*o,r)).add(new PathSegment(2,o,.5*r).close())).setSpots(.25,.25,.75,.75)),w(\"LineH\",(n,o,r)=>{const l=new Geometry(1);return l.startX=0,l.startY=r/2,l.endX=o,l.endY=r/2,l}),w(\"LineV\",(n,o,r)=>{const l=new Geometry(1);return l.startX=o/2,l.startY=0,l.endX=o/2,l.endY=r,l}),w(\"None\",\"Rectangle\"),w(\"BarH\",\"Rectangle\"),w(\"BarV\",\"Rectangle\"),w(\"MinusLine\",\"LineH\"),w(\"PlusLine\",(n,o,r)=>new Geometry().add(new PathFigure(0,r/2,!1).add(new PathSegment(2,o,r/2)).add(new PathSegment(1,o/2,0)).add(new PathSegment(2,o/2,r)))),w(\"XLine\",(n,o,r)=>new Geometry().add(new PathFigure(0,r,!1).add(new PathSegment(2,o,0)).add(new PathSegment(1,0,0)).add(new PathSegment(2,o,r)))),w(\"LineRight\",(n,o,r)=>new Geometry().add(new PathFigure(.25*o,0,!1).add(new PathSegment(2,.75*o,.5*r)).add(new PathSegment(2,.25*o,r)))),w(\"LineDown\",(n,o,r)=>new Geometry().add(new PathFigure(0,.25*r,!1).add(new PathSegment(2,.5*o,.75*r)).add(new PathSegment(2,o,.25*r)))),w(\"LineLeft\",(n,o,r)=>new Geometry().add(new PathFigure(.75*o,0,!1).add(new PathSegment(2,.25*o,.5*r)).add(new PathSegment(2,.75*o,r)))),w(\"LineUp\",(n,o,r)=>new Geometry().add(new PathFigure(0,.75*r,!1).add(new PathSegment(2,.5*o,.25*r)).add(new PathSegment(2,o,.75*r)))),w(\"Capsule\",(n,o,r)=>{const l=new Geometry;if(or){const h=r/2,a=new PathFigure(h,0,!0);l.add(a),a.add(new PathSegment(2,o-h,0)),a.add(new PathSegment(5,270,180,o-h,h,h,h)),a.add(new PathSegment(2,h,r)),a.add(new PathSegment(5,90,180,h,h,h,h));const c=isFinite(n.parameter1)?n.parameter1:r*.156;return l.spot1=new Spot(0,0,c,0),l.spot2=new Spot(1,1,-c,0),l}else return l.type=3,l.endX=o,l.endY=r,l.spot1=Spot.Rk,l.spot2=Spot.vk,l});const i=(n,o)=>new PathFigure(n,o,!1,!1),e=(n,o,r)=>n.add(new PathSegment(2,o,r)),s=(n,o,r)=>n.add(new PathSegment(1,o,r));w(\"Borders\",(n,o,r)=>{let l=n?n.parameter1:NaN;isNaN(l)?l=10:l=l&15;const h=new Geometry;let a;return l===10?(a=i(o,0),e(a,o,r),s(a,0,r),e(a,0,0)):l===5?(a=i(0,0),e(a,o,0),s(a,o,r),e(a,0,r)):l===1?(a=i(0,0),e(a,o,0),s(a,o,r)):l===2?(a=i(o,0),e(a,o,r)):l===4?(a=i(o,r),e(a,0,r)):l===8?(a=i(0,r),e(a,0,0),s(a,o,r)):l===3?(a=i(0,0),e(a,o,0),e(a,o,r)):l===6?(a=i(o,0),e(a,o,r),e(a,0,r)):l===12?(a=i(o,r),e(a,0,r),e(a,0,0)):l===9?(a=i(0,r),e(a,0,0),e(a,o,0)):l===7?(a=i(0,0),e(a,o,0),e(a,o,r),e(a,0,r)):l===14?(a=i(o,0),e(a,o,r),e(a,0,r),e(a,0,0)):l===13?(a=i(o,r),e(a,0,r),e(a,0,0),e(a,o,0)):l===11?(a=i(0,r),e(a,0,0),e(a,o,0),e(a,o,r)):l===15?(a=i(0,0),e(a,o,0),e(a,o,r),e(a,0,r),a.add(new PathSegment(2,0,0).close())):(a=i(0,0),s(a,o,r)),h.add(a),h})}Geo.Gg={\"\":\"\",Standard:\"F1 m 0,0 l 8,4 -8,4 2,-4 z\",Backward:\"F1 m 8,0 l -2,4 2,4 -8,-4 z\",Triangle:\"F1 m 0,0 l 8,4.62 -8,4.62 z\",BackwardTriangle:\"F1 m 8,4 l 0,4 -8,-4 8,-4 0,4 z\",Boomerang:\"F1 m 0,0 l 8,4 -8,4 4,-4 -4,-4 z\",BackwardBoomerang:\"F1 m 8,0 l -8,4 8,4 -4,-4 4,-4 z\",SidewaysV:\"m 0,0 l 8,4 -8,4 0,-1 6,-3 -6,-3 0,-1 z\",BackwardV:\"m 8,0 l -8,4 8,4 0,-1 -6,-3 6,-3 0,-1 z\",OpenTriangle:\"m 0,0 l 8,4 -8,4\",BackwardOpenTriangle:\"m 8,0 l -8,4 8,4\",OpenTriangleLine:\"m 0,0 l 8,4 -8,4 m 8.5,0 l 0,-8\",BackwardOpenTriangleLine:\"m 8,0 l -8,4 8,4 m -8.5,0 l 0,-8\",OpenTriangleTop:\"m 0,0 l 8,4 m 0,4\",BackwardOpenTriangleTop:\"m 8,0 l -8,4 m 0,4\",OpenTriangleBottom:\"m 0,8 l 8,-4\",BackwardOpenTriangleBottom:\"m 0,4 l 8,4\",HalfTriangleTop:\"F1 m 0,0 l 0,4 8,0 z m 0,8\",BackwardHalfTriangleTop:\"F1 m 8,0 l 0,4 -8,0 z m 0,8\",HalfTriangleBottom:\"F1 m 0,4 l 0,4 8,-4 z\",BackwardHalfTriangleBottom:\"F1 m 8,4 l 0,4 -8,-4 z\",ForwardSemiCircle:\"m 4,0 b 270 180 0 4 4\",BackwardSemiCircle:\"m 4,8 b 90 180 0 -4 4\",Feather:\"m 0,0 l 3,4 -3,4\",BackwardFeather:\"m 3,0 l -3,4 3,4\",DoubleFeathers:\"m 0,0 l 3,4 -3,4 m 3,-8 l 3,4 -3,4\",BackwardDoubleFeathers:\"m 3,0 l -3,4 3,4 m 3,-8 l -3,4 3,4\",TripleFeathers:\"m 0,0 l 3,4 -3,4 m 3,-8 l 3,4 -3,4 m 3,-8 l 3,4 -3,4\",BackwardTripleFeathers:\"m 3,0 l -3,4 3,4 m 3,-8 l -3,4 3,4 m 3,-8 l -3,4 3,4\",ForwardSlash:\"m 0,8 l 5,-8\",BackSlash:\"m 0,0 l 5,8\",DoubleForwardSlash:\"m 0,8 l 4,-8 m -2,8 l 4,-8\",DoubleBackSlash:\"m 0,0 l 4,8 m -2,-8 l 4,8\",TripleForwardSlash:\"m 0,8 l 4,-8 m -2,8 l 4,-8 m -2,8 l 4,-8\",TripleBackSlash:\"m 0,0 l 4,8 m -2,-8 l 4,8 m -2,-8 l 4,8\",Fork:\"m 0,4 l 8,0 m -8,0 l 8,-4 m -8,4 l 8,4\",BackwardFork:\"m 8,4 l -8,0 m 8,0 l -8,-4 m 8,4 l -8,4\",LineFork:\"m 0,0 l 0,8 m 0,-4 l 8,0 m -8,0 l 8,-4 m -8,4 l 8,4\",BackwardLineFork:\"m 8,4 l -8,0 m 8,0 l -8,-4 m 8,4 l -8,4 m 8,-8 l 0,8\",CircleFork:\"F1 m 6,4 b 0 360 -3 0 3 z m 0,0 l 6,0 m -6,0 l 6,-4 m -6,4 l 6,4\",BackwardCircleFork:\"F1 m 0,4 l 6,0 m -6,-4 l 6,4 m -6,4 l 6,-4 m 6,0 b 0 360 -3 0 3\",CircleLineFork:\"F1 m 6,4 b 0 360 -3 0 3 z m 1,-4 l 0,8 m 0,-4 l 6,0 m -6,0 l 6,-4 m -6,4 l 6,4\",BackwardCircleLineFork:\"F1 m 0,4 l 6,0 m -6,-4 l 6,4 m -6,4 l 6,-4 m 0,-4 l 0,8 m 7,-4 b 0 360 -3 0 3\",Circle:\"F1 m 8,4 b 0 360 -4 0 4 z\",Block:\"F1 m 0,0 l 0,8 8,0 0,-8 z\",StretchedDiamond:\"F1 m 0,3 l 5,-3 5,3 -5,3 -5,-3 z\",Diamond:\"F1 m 0,4 l 4,-4 4,4 -4,4 -4,-4 z\",Chevron:\"F1 m 0,0 l 5,0 3,4 -3,4 -5,0 3,-4 -3,-4 z\",StretchedChevron:\"F1 m 0,0 l 8,0 3,4 -3,4 -8,0 3,-4 -3,-4 z\",NormalArrow:\"F1 m 0,2 l 4,0 0,-2 4,4 -4,4 0,-2 -4,0 z\",X:\"m 0,0 l 8,8 m 0,-8 l -8,8\",TailedNormalArrow:\"F1 m 0,0 l 2,0 1,2 3,0 0,-2 2,4 -2,4 0,-2 -3,0 -1,2 -2,0 1,-4 -1,-4 z\",DoubleTriangle:\"F1 m 0,0 l 4,4 -4,4 0,-8 z m 4,0 l 4,4 -4,4 0,-8 z\",BigEndArrow:\"F1 m 0,0 l 5,2 0,-2 3,4 -3,4 0,-2 -5,2 0,-8 z\",ConcaveTailArrow:\"F1 m 0,2 h 4 v -2 l 4,4 -4,4 v -2 h -4 l 2,-2 -2,-2 z\",RoundedTriangle:\"F1 m 0,1 a 1,1 0 0 1 1,-1 l 7,3 a 0.5,1 0 0 1 0,2 l -7,3 a 1,1 0 0 1 -1,-1 l 0,-6 z\",SimpleArrow:\"F1 m 1,2 l -1,-2 2,0 1,2 -1,2 -2,0 1,-2 5,0 0,-2 2,2 -2,2 0,-2 z\",AccelerationArrow:\"F1 m 0,0 l 0,8 0.2,0 0,-8 -0.2,0 z m 2,0 l 0,8 1,0 0,-8 -1,0 z m 3,0 l 2,0 2,4 -2,4 -2,0 0,-8 z\",BoxArrow:\"F1 m 0,0 l 4,0 0,2 2,0 0,-2 2,4 -2,4 0,-2 -2,0 0,2 -4,0 0,-8 z\",TriangleLine:\"F1 m 8,4 l -8,-4 0,8 8,-4 z m 0.5,4 l 0,-8\",CircleEndedArrow:\"F1 m 10,4 l -2,-3 0,2 -2,0 0,2 2,0 0,2 2,-3 z m -4,0 b 0 360 -3 0 3 z\",DynamicWidthArrow:\"F1 m 0,3 l 2,0 2,-1 2,-2 2,4 -2,4 -2,-2 -2,-1 -2,0 0,-2 z\",EquilibriumArrow:\"m 0,3 l 8,0 -3,-3 m 3,5 l -8,0 3,3\",FastForward:\"F1 m 0,0 l 3.5,4 0,-4 3.5,4 0,-4 1,0 0,8 -1,0 0,-4 -3.5,4 0,-4 -3.5,4 0,-8 z\",Kite:\"F1 m 0,4 l 2,-4 6,4 -6,4 -2,-4 z\",HalfArrowTop:\"F1 m 0,0 l 4,4 4,0 -8,-4 z m 0,8\",HalfArrowBottom:\"F1 m 0,8 l 4,-4 4,0 -8,4 z\",OpposingDirectionDoubleArrow:\"F1 m 0,4 l 2,-4 0,2 4,0 0,-2 2,4 -2,4 0,-2 -4,0 0,2 -2,-4 z\",PartialDoubleTriangle:\"F1 m 0,0 4,3 0,-3 4,4 -4,4 0,-3 -4,3 0,-8 z\",LineCircle:\"F1 m 0,0 l 0,8 m 7 -4 b 0 360 -3 0 3 z\",DoubleLineCircle:\"F1 m 0,0 l 0,8 m 2,-8 l 0,8 m 7 -4 b 0 360 -3 0 3 z\",TripleLineCircle:\"F1 m 0,0 l 0,8 m 2,-8 l 0,8 m 2,-8 l 0,8 m 7 -4 b 0 360 -3 0 3 z\",CircleLine:\"F1 m 6 4 b 0 360 -3 0 3 z m 1,-4 l 0,8\",DiamondCircle:\"F1 m 8,4 l -4,4 -4,-4 4,-4 4,4 m 8,0 b 0 360 -4 0 4 z\",PlusCircle:\"F1 m 8,4 b 0 360 -4 0 4 l -8 0 z m -4 -4 l 0 8\",OpenRightTriangleTop:\"m 8,0 l 0,4 -8,0 m 0,4\",OpenRightTriangleBottom:\"m 8,8 l 0,-4 -8,0\",Line:\"m 0,0 l 0,8\",DoubleLine:\"m 0,0 l 0,8 m 2,0 l 0,-8\",TripleLine:\"m 0,0 l 0,8 m 2,0 l 0,-8 m 2,0 l 0,8\",PentagonArrow:\"F1 m 8,4 l -4,-4 -4,0 0,8 4,0 4,-4 z\"};var LayoutConditions=(w=>(w[w.None=0]=\"None\",w[w.Added=1]=\"Added\",w[w.Removed=2]=\"Removed\",w[w.Shown=4]=\"Shown\",w[w.Hidden=8]=\"Hidden\",w[w.NodeSized=16]=\"NodeSized\",w[w.GroupLayout=32]=\"GroupLayout\",w[w.NodeReplaced=64]=\"NodeReplaced\",w[w.Standard=127]=\"Standard\",w[w.All=16777215]=\"All\",w))(LayoutConditions||{});class Part extends Panel{P;jo;F;rl;ll;Ho;hi;qo;ph;js;Wo;Ld;UM;zA;Up;Vp;constructor(t,i){let e;t===void 0||t instanceof PanelLayout||typeof t==\"string\"?e=t:t&&(i=t),super(e),this.P=2408959,this.jo=\"\",this.F=null,this.rl=\"\",this.ll=null,this.Ho=null,this.hi=\"\",this.qo=null,this.ph=null,this.js=new Point(NaN,NaN).g(),this.Wo=null,this.Ld=NaN,this.UM=-1,this.zA=new Rect,this.Up=null,this.Vp=NaN,i&&Object.assign(this,i)}cloneProtected(t){super.cloneProtected(t),t.P=this.P&-4097|16384|32768,t.jo=this.jo,this.F!==null&&(this.F.gi?t.F=this.F:t.F=this.F.copy()),t.rl=this.rl,t.Ho=null,t.hi=this.hi,t.js.a(this.js),t.Ld=this.Ld}Uo(t){super.Uo(t),t.ch(),t.ll=null,t.Wo=null,t.Up=null}toString(){let t=Util.sn(this.constructor)+\"#\"+GSet.as(this);return this.data!==null&&(t+=\"(\"+Util.toString(this.data)+\")\"),t}static LayoutNone=0;static LayoutAdded=1;static LayoutRemoved=2;static LayoutShown=4;static LayoutHidden=8;static LayoutNodeSized=16;static LayoutGroupLayout=32;static LayoutNodeReplaced=64;static LayoutStandard=127;static LayoutAll=16777215;qi(){this.F===null?this.F=new PartTemplateSettings:this.F.gi&&(this.F=this.F.copy())}lh(){super.lh(),this.F!==null&&(this.F.gi=!0)}Jc(t,i,e,s,n,o,r){const l=this.diagram;l!==null&&(t===3&&i===\"elements\"?n instanceof Panel?n.Hr(h=>{l.partManager.SS(h,l)}):n instanceof Picture&&l.DS(n):t===4&&i===\"elements\"&&(n instanceof Panel?n.Hr(h=>l.partManager.NS(h,l)):n instanceof Picture&&l.FS(n)),l.raiseChangedEvent(t,i,e,s,n,o,r))}updateTargetBindings(t){if(super.updateTargetBindings(t),this.data===null)return;const i=this.L.r,e=i.length;for(let n=0;n{r.data!==null&&r.updateTargetBindings()})}const s=this.adornments;for(;s.next();)s.value.updateTargetBindings(t)}Oo(){if(super.Oo(),this.g2()){const i=this.L.r,e=i.length;for(let s=0;so.Oo())}}const t=this.adornments;for(;t.next();)t.value.Oo()}updateRelationshipsFromData(){this.data!==null&&this.diagram?.partManager.updateRelationshipsFromData(this)}get key(){const t=this.diagram;if(t!==null)return t.model.getKeyForNodeData(this.data)}get adornments(){return this.Ho===null?EmptyIterator.instance:this.Ho.iteratorValues}findAdornment(t){const i=this.Ho;return i===null?null:i.get(t)}addAdornment(t,i){if(i===null)return;let e=null,s=this.Ho;if(s!==null&&(e=s.get(t)),e!==i){if(e!==null){const o=e.diagram;o!==null&&o.remove(e)}s===null&&(s=new GMap,this.Ho=s),i.jo!==t&&(i.category=t),s.set(t,i);const n=this.diagram;if(n!==null){n.add(i);const o=i.adornedObject;if(o!==null){const r=o.findBindingPanel();r!==null&&(i.data=r.data)}}}}removeAdornment(t){const i=this.Ho;if(i===null)return;const e=i.get(t);if(e!==null){const s=e.diagram;s!==null&&(s.remove(e),e.data=null)}i.delete(t),i.count===0&&(this.Ho=null)}clearAdornments(){const t=this.Ho;if(t===null)return;const i=Util.nt(),e=t.iterator;for(;e.next();){const n=e.key;i.push(n)}const s=i.length;for(let n=0;n{e.isEnabled&&e.updateAdornments(i)}),t.toolManager.updateAdornments(i)}EM(t){this.qo=t,t===null&&this.FR()}get layer(){return this.qo}get diagram(){const t=this.qo;return t==null?null:t.diagram}get layerName(){return this.rl}set layerName(t){const i=this.rl;if(i===t)return;Util.i(t,\"string\",Part,\"layerName\");let e=this.diagram;if(e!==null&&(e.findLayer(t)===null||e.partManager.addsToTemporaryLayer))return;this.rl=t,e!==null&&e.invalidateDocumentBounds(),this.t(\"layerName\",i,t);const s=this.layer;if(s===null||s.name===t||(e=s.diagram,e===null))return;const n=e.findLayer(t);if(n===null||n===s)return;let o=s.te(-1,this,!0);o>=0&&e.raiseChangedEvent(4,\"parts\",s,this,null,o,!0),o=n.qh(99999999,this,!0),s.visible!==n.visible&&this.Bi(n.visible),o>=0&&e.raiseChangedEvent(3,\"parts\",n,null,this,!0,o);const r=this.layerChanged;if(r===null)return;const l=e.Y;e.Y=!0,r(this,s,n),e.Y=l}get layerChanged(){return this.F!==null?this.F.zp:null}set layerChanged(t){const i=this.layerChanged;i!==t&&(t!==null&&Util.i(t,\"function\",Part,\"layerChanged\"),this.qi(),this.F.zp=t,this.t(\"layerChanged\",i,t))}get zOrder(){return this.Ld}set zOrder(t){const i=this.Ld;if(i===t)return;Util.i(t,\"number\",Part,\"zOrder\"),this.Ld=t;const e=this.layer;e!==null&&e.yx(-1,this),this.t(\"zOrder\",i,t);const s=this.diagram;s!==null&&s.C()}Iv(){const t=this.layer;t!==null&&t.yx(-1,this)}o1(){if(this.th()!==!1)return;this.Y2(!0),this.Qc();const t=this.diagram;t!==null&&(t.r0(this),t.requestUpdate())}YA(){if(this.P|=2097152,this.th()===!1)return;const t=this.position,i=this.location;(!i.isReal()||!t.isReal())&&this.GA(t,i);const e=this.Li,s=Rect.l().a(e);e.ot(),e.x=t.x,e.y=t.y,e.g(),this.ed(s,e),Rect.s(s),this.Y2(!1),this.Qc()}Qn(t,i,e,s){const n=this.se;n.e(t,i,e,s),this.bi===null&&(this.bi=new Transform);const o=this.bi;o.vi(),this.y0(o,t,i,e,s),this.bi=o,o.Ok()||o.Vg(n)}y0(t,i,e,s,n){if(this.et!==1&&t.et(this.et),this.Kt===0)return;let o=Spot.Center;this.locationSpot.isSpot()&&(o=this.locationSpot);const r=Point.l();if(this.locationObject!==this){const l=this.locationObject,h=l.naturalBounds;r.setSpot(h.x,h.y,h.width,h.height,o),l.bi!==null&&l.bi.xt(r),r.offset(-l.measuredBounds.x,-l.measuredBounds.y);let a=l.panel;for(;a!==null&&a!==this;)a.bi!==null&&a.bi.xt(r),r.offset(-a.measuredBounds.x,-a.measuredBounds.y),a=a.panel}else r.setSpot(i,e,s,n,o);t.cs(this.Kt,r.x,r.y),Point.s(r)}get locationObject(){if(this.Wo===null)if(this instanceof Adornment&&this.type!==Panel.Link&&this.hasPlaceholder())this.Wo=this.placeholder;else{const t=this.locationObjectName;if(t!==\"\"){const i=this.findObject(t);i!==null?this.Wo=i:this.Wo=this}else this.Wo=this}return this.Wo.visible?this.Wo:this}get minLocation(){return this.F!==null?this.F.Xp:Point.ZN}set minLocation(t){const i=this.minLocation;i.equals(t)||(t=t.N(),this.qi(),this.F.Xp=t,this.t(\"minLocation\",i,t))}get maxLocation(){return this.F!==null?this.F.Kp:Point.QN}set maxLocation(t){const i=this.maxLocation;i.equals(t)||(t=t.N(),this.qi(),this.F.Kp=t,this.t(\"maxLocation\",i,t))}get locationObjectName(){return this.F!==null?this.F.Yp:\"\"}set locationObjectName(t){const i=this.locationObjectName;i!==t&&(this.qi(),this.F.Yp=t,this.Wo=null,this.c(),this.t(\"locationObjectName\",i,t))}get locationSpot(){return this.F!==null?this.F.Gp:Spot.TopLeft}set locationSpot(t){const i=this.locationSpot;i.equals(t)||(t=t.N(),this.qi(),this.F.Gp=t,this.c(),this.t(\"locationSpot\",i,t))}move(t,i){i===!0?this.location=t:this.position=t}moveTo(t,i,e){const s=Point.X(t,i);this.move(s,e),Point.s(s)}isVisible(){if(!this.visible)return!1;const t=this.layer;if(t!==null){if(!t.visible)return!1;const e=t.diagram;if(e!==null&&e.animationManager.nx(this))return!0}const i=this.containingGroup;return!(i!==null&&(!i.isSubGraphExpanded||!i.isVisible()))}Bi(t){const i=this.diagram;t?(this.invalidateLayout(4),this.invalidateAdornments(),i!==null&&i.r0(this)):(this.invalidateLayout(8),this.clearAdornments()),this.ch(),i!==null&&(i.invalidateDocumentBounds(),i.C())}findObject(t){if(this.name===t)return this;let i=this.Up;if(i===null&&(this.Up=i=new GMap),i.get(t)!==null)return i.get(t);const e=super.findObject(t);return e!==null?(i.set(t,e),e):(i.set(t,null),null)}D0(){this.Up=null}getRelativePoint(t,i,e){e===void 0&&(e=new Point);const s=i.isNoSpot()?Spot.Center:i,n=t.naturalBounds;if(e.e(n.width*s.x+s.offsetX,n.height*s.y+s.offsetY),t===null||t===this)return e;t.D.xt(e);let o=t.panel;for(;o!==null&&o!==this;)o.D.xt(e),o=o.panel;return this.bi!==null&&this.bi.xt(e),e.offset(-this.se.x,-this.se.y),e}getDocumentBounds(t){return t===void 0&&(t=new Rect),t.a(this.actualBounds)}ensureBounds(){this.ut(1/0,1/0),this.Xt()}wA(t){const i=this.locationSpot,e=this.locationObject;let s=e.naturalBounds;s.isReal()||(s=Rect.pw);const n=e instanceof Shape?e.strokeWidth:0;if(t.setSpot(0,0,s.width+n,s.height+n,i),e!==this){t.offset(-n/2,-n/2),e.D.xt(t);let o=e.panel;for(;o!==null&&o!==this;)o.D.xt(t),o=o.panel}return this.bi!==null&&this.bi.xt(t),t.offset(-this.se.x,-this.se.y),t}Hh(t,i){const e=i===void 0?this.zA:i,s=this.Ev(),n=s*2;if(!this.isShadowed)return e.e(t.x-1-s,t.y-1-s,t.width+2+n,t.height+2+n),e;let o=t.x,r=t.y,l=t.width,h=t.height;const a=this.shadowBlur,c=this.shadowOffset;return l+=a,h+=a,o-=a/2,r-=a/2,c.x>0?l+=c.x:(o+=c.x,l-=c.x),c.y>0?h+=c.y:(r+=c.y,h-=c.y),e.e(o-1,r-1,l+2,h+2),e}wv(){return this.type===Panel.Link&&this instanceof Adornment&&this.category===\"Selection\"&&this.adornedObject instanceof Shape&&this.adornedPart.findMainElement()===this.adornedObject?this.adornedObject.strokeWidth:0}Ev(){return isNaN(this.Vp)&&(this.Vp=this.NA()),this.Vp}uf(){this.Vp=NaN}Xt(){if(this.es()===!1){this.YA();return}this._n(!1);const t=this.Li,i=Rect.l();i.a(t);const e=this.Sl();this.ah(0,0,this.se.width,this.se.height);const s=this.position;this.GA(s,this.location),t.ot(),t.x=s.x,t.y=s.y,t.g(),this.ed(i,t),i.equals(t)?this.Bs(e):this.Pe()&&(!Geo.u(i.width,t.width)||!Geo.u(i.height,t.height))&&this.UM>=0&&this.invalidateLayout(16),Rect.s(i),this.Y2(!1)}ed(t,i){const e=this.diagram;if(e===null)return;let s=!1;if(e.Zh===!1&&t.isReal()){const n=Rect.l();n.a(e.documentBounds),n.subtractMargin(e.padding),t.x>n.x&&t.y>n.y&&t.rightn.x&&i.y>n.y&&i.right=o)return}}this.P=this.P^4096;let s=!1;if(e!==null){s=e.skipsUndoManager,e.skipsUndoManager=!0;const o=e.selection;o.ot(),t?o.add(this):o.delete(this),o.g()}this.t(\"isSelected\",i,t),this.invalidateAdornments();const n=this.selectionChanged;n!==null&&n(this),e!==null&&(e.requestUpdate(),e.skipsUndoManager=s)}}get isHighlighted(){return(this.P&524288)!==0}set isHighlighted(t){const i=(this.P&524288)!==0;if(i!==t){this.P=this.P^524288;const e=this.diagram;if(e!==null){const n=e.highlighteds;n.ot(),t?n.add(this):n.delete(this),n.g()}this.t(\"isHighlighted\",i,t),this.C();const s=this.highlightedChanged;s!==null&&s(this)}}get isShadowed(){return(this.P&8192)!==0}set isShadowed(t){const i=(this.P&8192)!==0;i!==t&&(this.P=this.P^8192,this.Ke(!0),this.t(\"isShadowed\",i,t),this.C())}XA(){return(this.P&16384)!==0}KA(t){t?this.P|=16384:this.P&=-16385}th(){return(this.P&32768)!==0}Y2(t){t?this.P|=32768:this.P&=-32769}Bv(){return(this.P&65536)!==0}o2(t){t?this.P|=65536:this.P&=-65537}Sl(){return(this.P&131072)!==0}Bs(t){t?this.P|=131072:this.P&=-131073}JA(){return(this.P&1048576)!==0}l1(t){t?this.P|=1048576:this.P&=-1048577}get isAnimated(){return(this.P&262144)!==0}set isAnimated(t){const i=(this.P&262144)!==0;i!==t&&(this.P=this.P^262144,this.t(\"isAnimated\",i,t))}get highlightedChanged(){return this.F!==null?this.F.jp:null}set highlightedChanged(t){const i=this.highlightedChanged;i!==t&&(t!==null&&Util.i(t,\"function\",Part,\"highlightedChanged\"),this.qi(),this.F.jp=t,this.t(\"highlightedChanged\",i,t))}get selectionObjectName(){return this.F!==null?this.F.Hp:\"\"}set selectionObjectName(t){const i=this.selectionObjectName;i!==t&&(this.qi(),this.F.Hp=t,this.ll=null,this.t(\"selectionObjectName\",i,t))}get selectionAdornmentTemplate(){return this.F!==null?this.F.qp:null}set selectionAdornmentTemplate(t){const i=this.selectionAdornmentTemplate;i!==t&&(t!==null&&t.Vt(),this.qi(),this.F.qp=t,this.t(\"selectionAdornmentTemplate\",i,t))}get selectionObject(){if(this.ll===null){const t=this.selectionObjectName;if(t!==null&&t!==\"\"){const i=this.findObject(t);i!==null?this.ll=i:this.ll=this}else if(this instanceof Link){const i=this.path;i!==null?this.ll=i:this.ll=this}else this.ll=this}return this.ll}get selectionChanged(){return this.F!==null?this.F.Wp:null}set selectionChanged(t){const i=this.selectionChanged;i!==t&&(t!==null&&Util.i(t,\"function\",Part,\"selectionChanged\"),this.qi(),this.F.Wp=t,this.t(\"selectionChanged\",i,t))}get resizeAdornmentTemplate(){return this.F!==null?this.F.Jp:null}set resizeAdornmentTemplate(t){const i=this.resizeAdornmentTemplate;i!==t&&(this.qi(),this.F.Jp=t.Vt(),this.t(\"resizeAdornmentTemplate\",i,t))}get resizeObjectName(){return this.F!==null?this.F.$p:\"\"}set resizeObjectName(t){const i=this.resizeObjectName;i!==t&&(this.qi(),this.F.$p=t,this.t(\"resizeObjectName\",i,t))}get resizeObject(){const t=this.resizeObjectName;if(t!==\"\"){const i=this.findObject(t);if(i!==null)return i}return this}get resizeCellSize(){return this.F!==null?this.F.Zp:Size.gw}set resizeCellSize(t){const i=this.resizeCellSize;i.equals(t)||(t=t.N(),this.qi(),this.F.Zp=t,this.t(\"resizeCellSize\",i,t))}get rotateAdornmentTemplate(){return this.F!==null?this.F.Qp:null}set rotateAdornmentTemplate(t){const i=this.rotateAdornmentTemplate;i!==t&&(this.qi(),this.F.Qp=t.Vt(),this.t(\"rotateAdornmentTemplate\",i,t))}get rotateObjectName(){return this.F!==null?this.F._p:\"\"}set rotateObjectName(t){const i=this.rotateObjectName;i!==t&&(this.qi(),this.F._p=t,this.t(\"rotateObjectName\",i,t))}get rotateObject(){const t=this.rotateObjectName;if(t!==\"\"){const i=this.findObject(t);if(i!==null)return i}return this}get rotationSpot(){return this.F!==null?this.F.ty:Spot.Default}set rotationSpot(t){const i=this.rotationSpot;i.equals(t)||(t=t.N(),this.qi(),this.F.ty=t,this.t(\"rotationSpot\",i,t))}get text(){return this.hi}set text(t){const i=this.hi;i!==t&&(this.hi=t,this.t(\"text\",i,t))}get containingGroup(){return this.ph}set containingGroup(t){if(this.Pe()){const i=this.ph;if(i!==t){t!==null&&(this===t||t.isMemberOf(this))&&(this===t&&Util.o(\"Cannot make a Group a member of itself: \"+this.toString()),Util.o(\"Cannot make a Group indirectly contain itself: \"+this.toString()+\" already contains \"+t.toString())),this.invalidateLayout(2);const e=this.diagram;if(i!==null?i.j2(this):this instanceof Group&&e!==null&&e.Yr.delete(this),this.ph=t,t!==null?t.H2(this):this instanceof Group&&e!==null&&e.Yr.add(this),this.invalidateLayout(1),e!==null&&e.Y){const n=this.data,o=e.model;if(n!==null&&o.qc()){const r=t!==null?t.data:null;o.setGroupForData(n,o.getKeyForNodeData(r))}}const s=this.containingGroupChanged;if(s!==null){let n=!0;e!==null&&(n=e.Y,e.Y=!0),s(this,i,t),e!==null&&(e.Y=n)}if(this instanceof Group){const n=new GSet;Part.sh(n,this,!0,0,!0);const o=n.iterator;for(;o.next();){const r=o.value;if(r instanceof Node){const l=r.linksConnected;for(;l.next();)l.value.Ad()}}}if(this instanceof Node){const n=this.linksConnected;for(;n.next();)n.value.Ad();const o=this.labeledLink;o!==null&&o.Ad()}this.t(\"containingGroup\",i,t),t!==null&&t.Iv()}}else Util.o(\"cannot set the Part.containingGroup of a Link or Adornment\")}ch(){const t=this.containingGroup;t!==null&&(t.hasPlaceholder()&&t.placeholder.c(),t.c(),t.invalidateConnectedLinks())}C(){const t=this.diagram;t!==null&&!this.es()&&!this.th()&&this.isVisible()&&this.Li.isReal()&&t.C(this.Hh(this.Li))}c(){if(this.vo())return;super.c();const t=this.diagram;t!==null&&(t.r0(this),this instanceof Node&&this.labeledLink!==null&&this.labeledLink.nf(),t.requestUpdate(!0))}nf(t){if(this.es())return;const i=this.diagram;i!==null&&(i.r0(this),this instanceof Node&&this.invalidateConnectedLinks(),i.requestUpdate()),this._n(!0)}Um(t){if(!t){const i=this.ph;i!==null&&i.H2(this)}}Vm(t){if(!t){const i=this.ph;i!==null&&i.j2(this)}}Kc(){const t=this.data;if(t!==null){const i=this.diagram;if(i!==null){const e=i.model;e!==null&&e.removeNodeData(t)}}}get containingGroupChanged(){return this.F!==null?this.F.iy:null}set containingGroupChanged(t){const i=this.containingGroupChanged;i!==t&&(t!==null&&Util.i(t,\"function\",Part,\"containingGroupChanged\"),this.qi(),this.F.iy=t,this.t(\"containingGroupChanged\",i,t))}findSubGraphLevel(){return this.q2(this)}q2(t){const i=t.containingGroup;if(i!==null)return 1+this.q2(i);if(t instanceof Node){const e=t.labeledLink;if(e!==null)return this.q2(e)}return 0}findTopLevelPart(){return this.W2(this)}W2(t){const i=t.containingGroup;if(i!==null)return this.W2(i);if(t instanceof Node){const e=t.labeledLink;if(e!==null)return this.W2(e)}return t}get isTopLevel(){return!(this.containingGroup!==null||this instanceof Node&&this.labeledLink!==null)}isMemberOf(t){return t instanceof Group?this.J2(this,t):!1}J2(t,i){if(t===i||i===null)return!1;const e=t.containingGroup;if(e!==null&&(e===i||this.J2(e,i)))return!0;if(t instanceof Node){const s=t.labeledLink;if(s!==null)return this.J2(s,i)}return!1}findCommonContainingGroup(t){if(t===null)return null;if(this===t)return this.containingGroup;let i=this;for(;i!==null;){if(i instanceof Group&&i.l1(!0),i instanceof Node){const s=i.labeledLink;s!==null&&(i=s)}i=i.containingGroup}let e=null;for(i=t;i!==null;){if(i.JA()){e=i;break}if(i instanceof Node){const s=i.labeledLink;s!==null&&(i=s)}i=i.containingGroup}for(i=this;i!==null;){if(i instanceof Group&&i.l1(!1),i instanceof Node){const s=i.labeledLink;s!==null&&(i=s)}i=i.containingGroup}return e}get layoutConditions(){return this.F!==null?this.F.ey:127}set layoutConditions(t){const i=this.layoutConditions;i!==t&&(this.qi(),this.F.ey=t,this.t(\"layoutConditions\",i,t))}canLayout(){if(!this.isLayoutPositioned||!this.isVisible())return!1;const t=this.layer;return!(t!==null&&t.isTemporary||this instanceof Node&&this.isLinkLabel)}Vv(t){if(!this.isLayoutPositioned||!(t&this.layoutConditions))return!1;const i=this.layer;if(i!==null&&i.isTemporary||this instanceof Node&&this.isLinkLabel)return!1;const e=this.diagram;return!(e!==null&&e.undoManager.isUndoingRedoing)}invalidateLayout(t){if(t===void 0&&(t=16777215),!this.Vv(t))return;const i=this.ph;if(i!==null){const e=i.layout;e!==null?e.invalidateLayout():i.invalidateLayout(t)}else{const e=this.diagram;if(e!==null){const s=e.layout;s!==null&&s.invalidateLayout()}}}AL(){if(!this.isVisible())return!1;const t=this.layer;return!(t!==null&&t.isTemporary)}static sh(t,i,e,s,n,o){if(o===void 0&&(o=null),!t.has(i)&&!(o!==null&&!o(i))&&!(i instanceof Adornment)){if(t.add(i),i instanceof Node){if(e&&i instanceof Group){const r=i.memberParts;for(;r.next();){const l=r.value;Part.sh(t,l,e,s,n,o)}}if(n!==!1){const r=i.linksConnected;for(;r.next();){const l=r.value;if(t.has(l))continue;const h=l.fromNode,a=l.toNode,c=h===null||t.has(h),f=a===null||t.has(a);(n?c&&f:c||f)&&Part.sh(t,l,e,s,n,o)}}if(s>1){const r=i.findTreeChildrenNodes();for(;r.next();){const l=r.value;Part.sh(t,l,e,s-1,n,o)}}}else if(i instanceof Link){const r=i.labelNodes;for(;r.next();){const l=r.value;Part.sh(t,l,e,s,n,o)}}}}get dragComputation(){return this.F!==null?this.F.sy:null}set dragComputation(t){const i=this.dragComputation;i!==t&&(t!==null&&Util.i(t,\"function\",Part,\"dragComputation\"),this.qi(),this.F.sy=t,this.t(\"dragComputation\",i,t))}get shadowOffset(){return this.F!==null?this.F.ny:Point._N}set shadowOffset(t){const i=this.shadowOffset;i.equals(t)||(t=t.N(),this.qi(),this.F.ny=t,this.C(),this.t(\"shadowOffset\",i,t))}get shadowColor(){return this.F!==null?this.F.oy:\"gray\"}set shadowColor(t){const i=this.shadowColor;i!==t&&(this.qi(),this.F.oy=t,this.C(),this.t(\"shadowColor\",i,t))}get shadowBlur(){return this.F!==null?this.F.xn:4}set shadowBlur(t){const i=this.shadowBlur;i!==t&&(this.qi(),this.F.xn=t,this.C(),this.t(\"shadowBlur\",i,t))}}class PartTemplateSettings{gi;zp;iy;qp;Hp;Wp;jp;Jp;$p;Zp;Qp;_p;ty;Yp;Gp;Xp;Kp;sy;ey;ny;oy;xn;constructor(){this.gi=!1,this.zp=null,this.iy=null,this.qp=null,this.Hp=\"\",this.Wp=null,this.jp=null,this.Jp=null,this.$p=\"\",this.Zp=Size.gw,this.Qp=null,this._p=\"\",this.ty=Spot.Default,this.Yp=\"\",this.Gp=Spot.TopLeft,this.Xp=Point.ZN,this.Kp=Point.QN,this.sy=null,this.ey=127,this.ny=Point._N,this.oy=\"gray\",this.xn=4}copy(){const t=new PartTemplateSettings;return t.zp=this.zp,t.iy=this.iy,t.qp=this.qp,t.Hp=this.Hp,t.Wp=this.Wp,t.jp=this.jp,t.Jp=this.Jp,t.$p=this.$p,t.Zp=this.Zp.N(),t.Qp=this.Qp,t._p=this._p,t.ty=this.ty.N(),t.Yp=this.Yp,t.Gp=this.Gp.N(),t.Xp=this.Xp.N(),t.Kp=this.Kp.N(),t.sy=this.sy,t.ey=this.ey,t.ny=this.ny.N(),t.oy=this.oy,t.xn=this.xn,t}}class Adornment extends Part{us;It;JP;$P;cf;constructor(t,i){let e;t===void 0||t instanceof PanelLayout||typeof t==\"string\"?e=t:t&&(i=t),super(e),this.P&=-257,this.rl=\"Adornment\",this.us=null,this.JP=0,this.$P=!1,this.It=null,this.cf=null,i&&Object.assign(this,i)}toString(){const t=this.adornedPart;return\"Adornment(\"+this.category+\")\"+(t!==null?t.toString():\"\")}updateRelationshipsFromData(){}ad(t){const i=this.adornedObject,e=i?.part;if(!(e instanceof Link)||!(i instanceof Shape))return;const s=e.path;let n=s.geometry;e.ad(t),n=s.geometry;const o=this.L.r,r=o.length;for(let l=0;lh instanceof Placeholder);l instanceof Placeholder&&this.It===null&&(this.It=l)}}else t===4&&i===\"elements\"&&this.It!==null&&(s===this.It?this.It=null:s instanceof Panel&&this.It.isContainedBy(s)&&(this.It=null));super.Jc(t,i,e,s,n,o,r)}updateAdornments(){}Kc(){}}var PortSpreading=(w=>(w[w.None=0]=\"None\",w[w.Evenly=1]=\"Evenly\",w[w.Packed=2]=\"Packed\",w))(PortSpreading||{});class Node extends Part{E;gt;Mf;hl;yh;ne;ti;constructor(t,i){let e;t===void 0||t instanceof PanelLayout||typeof t==\"string\"?e=t:t&&(i=t),super(e),this.E=13,this.gt=null,this.ti=new List,this.Mf=null,this.hl=null,this.ne=null,this.yh=!1,i&&Object.assign(this,i)}cloneProtected(t){super.cloneProtected(t),t.E=this.E,this.gt!==null&&(this.gt.gi?t.gt=this.gt:t.gt=this.gt.copy())}Uo(t){super.Uo(t),t.invalidateConnectedLinks(),t.hl=this.hl,t.ne=null}static SpreadingNone=0;static SpreadingEvenly=1;static SpreadingPacked=2;al(){this.gt===null?this.gt=new NodeTemplateSettings:this.gt.gi&&(this.gt=this.gt.copy())}lh(){super.lh(),this.gt!==null&&(this.gt.gi=!0)}$A(t){t!==null&&(this.hl===null&&(this.hl=new GSet),this.hl.add(t))}ZA(t){t!==null&&this.hl!==null&&this.hl.delete(t)}QA(t,i,e){if(t===null||this.hl===null)return null;const s=this.hl.iterator;for(;s.next();){const n=s.value;if(n.ry===this&&n.h1===t&&n.$2===i&&n.Z2===e||n.ry===t&&n.h1===this&&n.$2===e&&n.Z2===i)return n}return null}invalidateLinkBundle(t,i,e){i==null&&(i=\"\"),e==null&&(e=\"\");const s=this.QA(t,i,e);s!==null&&s.Td()}Jc(t,i,e,s,n,o,r){t===3&&i===\"elements\"?this.ne=null:t===4&&i===\"elements\"&&(this.ne=null),super.Jc(t,i,e,s,n,o,r)}invalidateConnectedLinks(t){const i=this.linksConnected;for(;i.next();){const e=i.value;t!==void 0&&t.has(e)||(this.Wi(e.fromPort),this.Wi(e.toPort),e.invalidateRoute())}}sA(t){const i=this.linksConnected;for(;i.next();){const e=i.value;e.fromPort!==t&&e.toPort!==t||(this.Wi(e.fromPort),this.Wi(e.toPort),e.invalidateRoute())}}Wi(t){if(t===null)return;const i=t.Zu;i!==null&&i.Td();const e=t.part,s=e.containingGroup;s!==null&&!e.isVisible()&&s.Wi(s.port)}jr(){return!0}get portSpreading(){return this.gt!==null?this.gt.ly:1}set portSpreading(t){const i=this.portSpreading;if(i!==t){this.al(),this.gt.ly=t,this.t(\"portSpreading\",i,t);const e=this.diagram;if(e!==null&&e.undoManager.isUndoingRedoing)return;this.invalidateConnectedLinks()}}get avoidable(){return(this.E&8)!==0}set avoidable(t){const i=(this.E&8)!==0;if(i!==t){this.E=this.E^8;const e=this.diagram;e!==null&&e.BS(this),this.t(\"avoidable\",i,t)}}get avoidableMargin(){return this.gt!==null?this.gt.hy:Margin.rC}set avoidableMargin(t){typeof t==\"number\"&&(t=new Margin(t));const i=this.avoidableMargin;if(!i.equals(t)){t=t.N(),this.al(),this.gt.hy=t;const e=this.diagram;e!==null&&e.BS(this),this.t(\"avoidableMargin\",i,t)}}canAvoid(){return this.avoidable&&!this.isLinkLabel}getAvoidableRect(t){return t.set(this.actualBounds),t.addMargin(this.avoidableMargin),t}findVisibleNode(){let t=this;for(;t!==null&&!t.isVisible();)t=t.containingGroup;return t}isVisible(){if(!super.isVisible())return!1;let t=!0,i=1;const e=this.diagram;if(e!==null){if(e.animationManager.nx(this))return!0;t=e.isTreePathToChildren,i=e.treeCollapsePolicy}if(i===1){const n=this.findTreeParentNode();if(n!==null&&!n.isTreeExpanded)return!1}else if(i===2){const n=t?this.findLinksInto():this.findLinksOutOf();let o=!1,r=!1;for(;n.next();){const l=n.value;if(l.isTreeLink){o=!0;const h=t?l.fromNode:l.toNode;if(h&&h.isTreeExpanded){r=!0;break}}}if(o&&!r)return!1}else if(i===3){const n=t?this.findLinksInto():this.findLinksOutOf();let o=!1,r=!1;for(;n.next();){const l=n.value;if(l.isTreeLink){o=!0;const h=t?l.fromNode:l.toNode;if(h&&!h.isTreeExpanded){r=!0;break}}}if(o&&r)return!1}const s=this.labeledLink;return s!==null?s.isVisible():!0}Bi(t){super.Bi(t);const i=this.linksConnected;for(;i.next();){const e=i.value;if(t&&this.containingGroup!==null){const s=e.getOtherNode(this);s!==null&&!s.isMemberOf(this.containingGroup)&&e.invalidateRoute()}e.Bi(t)}}get linksConnected(){return this.ti.iterator}findExternalTreeLinksConnected(){const t=new GSet,i=new GSet;return this._A(this,t,i),i.iterator}_A(t,i,e){if(t===null||i.has(t))return;i.add(t);let s=!0;const n=this.diagram;n!==null&&(s=n.isTreePathToChildren),t.linksConnected.each(o=>{o.isTreeLink?(s?o.fromNode===t:o.toNode===t)&&this._A(s?o.toNode:o.fromNode,i,e):e.add(o)})}findLinksConnected(t){if(t===void 0&&(t=null),t===null)return this.ti.iterator;const i=new ListIterator(this.ti),e=this;return i.predicate=s=>s.fromNode===e&&s.fromPortId===t||s.toNode===e&&s.toPortId===t,i}findLinksOutOf(t){t===void 0&&(t=null);const i=new ListIterator(this.ti),e=this;return i.predicate=s=>s.fromNode!==e?!1:t===null?!0:s.fromPortId===t,i}findLinksInto(t){t===void 0&&(t=null);const i=new ListIterator(this.ti),e=this;return i.predicate=s=>s.toNode!==e?!1:t===null?!0:s.toPortId===t,i}findNodesConnected(t){t===void 0&&(t=null);let i=null,e=null;const s=this.ti.iterator;for(;s.next();){const n=s.value;if(n.fromNode===this){if(t===null||n.fromPortId===t){const o=n.toNode;i!==null?i.add(o):e!==null&&e!==o?(i=new GSet,i.add(e),i.add(o)):e=o}}else if(n.toNode===this&&(t===null||n.toPortId===t)){const o=n.fromNode;i!==null?i.add(o):e!==null&&e!==o?(i=new GSet,i.add(e),i.add(o)):e=o}}return i!==null?i.iterator:e!==null?new SingletonIterator(e):EmptyIterator.instance}findNodesOutOf(t){t===void 0&&(t=null);let i=null,e=null;const s=this.ti.iterator;for(;s.next();){const n=s.value;if(n.fromNode===this&&(t===null||n.fromPortId===t)){const o=n.toNode;i!==null?i.add(o):e!==null&&e!==o?(i=new GSet,i.add(e),i.add(o)):e=o}}return i!==null?i.iterator:e!==null?new SingletonIterator(e):EmptyIterator.instance}findNodesInto(t){t===void 0&&(t=null);let i=null,e=null;const s=this.ti.iterator;for(;s.next();){const n=s.value;if(n.toNode===this&&(t===null||n.toPortId===t)){const o=n.fromNode;i!==null?i.add(o):e!==null&&e!==o?(i=new GSet,i.add(e),i.add(o)):e=o}}return i!==null?i.iterator:e!==null?new SingletonIterator(e):EmptyIterator.instance}findLinksBetween(t,i,e){i===void 0&&(i=null),e===void 0&&(e=null);const s=new ListIterator(this.ti),n=this;return s.predicate=o=>o.fromNode===n&&o.toNode===t&&(i===null||o.fromPortId===i)&&(e===null||o.toPortId===e)||o.fromNode===t&&o.toNode===n&&(e===null||o.fromPortId===e)&&(i===null||o.toPortId===i),s}findLinksTo(t,i,e){i===void 0&&(i=null),e===void 0&&(e=null);const s=new ListIterator(this.ti),n=this;return s.predicate=o=>!(o.fromNode!==n||o.toNode!==t||i!==null&&o.fromPortId!==i||e!==null&&o.toPortId!==e),s}get linkConnected(){return this.gt!==null?this.gt.ay:null}set linkConnected(t){const i=this.linkConnected;i!==t&&(t!==null&&Util.i(t,\"function\",Node,\"linkConnected\"),this.al(),this.gt.ay=t,this.t(\"linkConnected\",i,t))}get linkDisconnected(){return this.gt!==null?this.gt.cy:null}set linkDisconnected(t){const i=this.linkDisconnected;i!==t&&(t!==null&&Util.i(t,\"function\",Node,\"linkDisconnected\"),this.al(),this.gt.cy=t,this.t(\"linkDisconnected\",i,t))}get linkValidation(){return this.gt!==null?this.gt.Ml:null}set linkValidation(t){const i=this.linkValidation;i!==t&&(t!==null&&Util.i(t,\"function\",Node,\"linkValidation\"),this.al(),this.gt.Ml=t,this.t(\"linkValidation\",i,t))}a1(t,i){this.Wi(i);const e=this.ti.has(t);if(e||this.ti.add(t),!e||t.fromNode===t.toNode){const s=this.linkConnected;if(s!==null){let n=!0;const o=this.diagram;o!==null&&(n=o.Y,o.Y=!0),s(this,t,i),o!==null&&(o.Y=n)}}if(!e){if(!t.isTreeLink)return;const s=t.fromNode,n=t.toNode;if(s!==null&&n!==null&&s!==n){let o=!0;const r=this.diagram;r!==null&&(o=r.isTreePathToChildren);const l=o?n:s,h=o?s:n;if(l.yh||(l.yh=h),h.isTreeLeaf){if(r!==null&&r.undoManager.isUndoingRedoing)return;o?s===h&&(h.isTreeLeaf=!1):n===h&&(h.isTreeLeaf=!1)}}}}c1(t,i){this.Wi(i);const e=this.ti.delete(t);let s=null;if(e||t.toNode===t.fromNode){const n=this.linkDisconnected;if(s=this.diagram,n!==null){let o=!0;s!==null&&(o=s.Y,s.Y=!0),n(this,t,i),s!==null&&(s.Y=o)}}if(e){if(!t.isTreeLink)return;let n=!0;s!==null&&(n=s.isTreePathToChildren);const o=n?t.toNode:t.fromNode,r=n?t.fromNode:t.toNode;if(o!==null&&(o.yh=!1),r!==null&&!r.isTreeLeaf)if(r.ti.count===0){if(r.yh=null,s!==null&&s.undoManager.isUndoingRedoing)return;r.isTreeLeaf=!0}else r.u0()}}u0(){if(this.yh=!1,this.ti.count===0)return;let t=!0;const i=this.diagram;if(i!==null&&i.undoManager.isUndoingRedoing)return;i!==null&&(t=i.isTreePathToChildren);const e=this.ti.iterator;for(;e.next();){const s=e.value;if(s.isTreeLink){if(t){if(s.fromNode===this){this.isTreeLeaf=!1;return}}else if(s.toNode===this){this.isTreeLeaf=!1;return}}}this.isTreeLeaf=!0}updateRelationshipsFromData(){const t=this.diagram;t!==null&&t.partManager.updateRelationshipsFromData(this)}Um(t){if(super.Um(t),!t){this.u0();const i=this.Mf;i!==null&&i.tT(this)}}Vm(t){if(super.Vm(t),!t){const i=this.Mf;i!==null&&i.iT(this)}}Kc(){if(this.ti.count>0){const t=this.diagram;if(t!==null){const i=t.commandHandler!==null?t.commandHandler.deletesConnectedLinks:!0,s=this.ti.copy().iterator;for(;s.next();){const n=s.value;i?t.remove(n):(n.fromNode===this&&(n.fromNode=null),n.toNode===this&&(n.toNode=null))}}}this.labeledLink=null,super.Kc()}get isLinkLabel(){return this.Mf!==null}get labeledLink(){return this.Mf}set labeledLink(t){const i=this.Mf;if(i!==t){const e=this.diagram,s=this.data;if(i!==null){if(i.iT(this),e!==null&&s!==null&&!e.undoManager.isUndoingRedoing){const n=i.data,o=e.model;if(n!==null&&o.Ta()){const r=o.getKeyForNodeData(s);r!==void 0&&o.removeLabelKeyForLinkData(n,r)}}this.containingGroup=null}if(this.Mf=t,t!==null){if(t.tT(this),e!==null&&s!==null&&!e.undoManager.isUndoingRedoing){const n=t.data,o=e.model;if(n!==null&&o.Ta()){const r=o.getKeyForNodeData(s);r!==void 0&&o.addLabelKeyForLinkData(n,r)}}this.containingGroup=t.containingGroup}this.nf(),this.t(\"labeledLink\",i,t)}}findVisiblePort(t){let i=t;for(;i!==null&&(!i.actualBounds.isReal()||!i.isVisibleObject());)i=i.panel;return i===null?this.port:i}findPort(t){if(this.ne===null){if(t===\"\"&&this.wn===!1)return this;this.eT()}let i=this.ne.get(t);return i!==null||t!==\"\"&&(i=this.ne.get(\"\"),i!==null)?i:this}get port(){return this.findPort(\"\")}get ports(){return this.ne===null&&this.eT(),this.ne.iteratorValues}eT(){this.ne===null?this.ne=new GMap:this.ne.clear(),this.walkVisualTreeFrom(this,(t,i)=>t.cA(i)),this.ne.count===0&&this.ne.set(\"\",this)}cA(t){const i=t.portId;i!==null&&this.ne!==null&&this.ne.set(i,t)}d2(t,i){const e=t.portId;if(e!==null){this.ne!==null&&this.ne.delete(e);const s=this.diagram;if(s!==null&&i){let n=null;const o=this.findLinksConnected(e);for(;o.next();){const r=o.value;n===null&&(n=Util.nt()),n.push(r)}if(n!==null){for(let r=0;r!(!n.isTreeLink||n.fromNode!==s):e.predicate=n=>!(!n.isTreeLink||n.toNode!==s),e}findTreeChildrenNodes(){let t=!0;const i=this.diagram;i!==null&&(t=i.isTreePathToChildren);let e=null,s=null;const n=this.ti.iterator;if(t)for(;n.next();){const o=n.value;if(o.isTreeLink&&o.fromNode===this){const r=o.toNode;e!==null?e.add(r):s!==null&&s!==r?(e=new List,e.add(s),e.add(r)):s=r}}else for(;n.next();){const o=n.value;if(o.isTreeLink&&o.toNode===this){const r=o.fromNode;e!==null?e.add(r):s!==null&&s!==r?(e=new List,e.add(s),e.add(r)):s=r}}return e!==null?e.iterator:s!==null?new SingletonIterator(s):EmptyIterator.instance}findTreeParts(t){t===void 0&&(t=1/0),Util.i(t,\"number\",Node,\"findTreeParts:level\");const i=new GSet;return Part.sh(i,this,!1,t,!0),i}collapseTree(t){t===void 0&&(t=1),t<1&&(t=1);const i=this.diagram;if(i===null||i.isCollapsingExpanding)return;i.isCollapsingExpanding=!0;const e=new GSet;e.add(this),this.sT(e,i.isTreePathToChildren,t,i,this,i.treeCollapsePolicy===1),i.isCollapsingExpanding=!1}sT(t,i,e,s,n,o){if(e>1){const r=i?this.findLinksOutOf():this.findLinksInto();for(;r.next();){const l=r.value;if(!l.isTreeLink)continue;const h=l.getOtherNode(this);h!==null&&h!==this&&!t.has(h)&&(t.add(h),h.sT(t,i,e-1,s,n,o))}}else this.nT(t,i,s,n,o)}nT(t,i,e,s,n){const o=s===this?!0:this.isTreeExpanded,r=i?this.findLinksOutOf():this.findLinksInto();for(;r.next();){const l=r.value;if(!l.isTreeLink)continue;const h=l.getOtherNode(this);if(h!==null&&h!==this){const a=t.has(h);if(a||t.add(h),o){const c=i?h.findNodesInto():h.findNodesOutOf(),f=this;c.all(u=>u===f||!u.isTreeExpanded)&&e.Lc(h,s),h.ch(),h.Bi(!1)}h.isTreeExpanded&&(h.wasTreeExpanded=h.isTreeExpanded,a||h.nT(t,i,e,s,n))}}this.isTreeExpanded=!1}expandTree(t){t===void 0&&(t=2),t<2&&(t=2);const i=this.diagram;if(i===null||i.isCollapsingExpanding)return;i.isCollapsingExpanding=!0;const e=new GSet;e.add(this),this.oT(e,i.isTreePathToChildren,t,i,this,i.treeCollapsePolicy===1),i.isCollapsingExpanding=!1}oT(t,i,e,s,n,o){const r=n===this?!1:this.isTreeExpanded,l=i?this.findLinksOutOf():this.findLinksInto();for(;l.next();){const h=l.value;if(!h.isTreeLink)continue;r||h.Se||h.invalidateRoute();const a=h.getOtherNode(this);if(a!==null&&a!==this&&!t.has(a)){if(t.add(a),!r){a.Bi(!0),a.ch();const c=i?a.findNodesInto():a.findNodesOutOf(),f=this;c.all(u=>u===f||!u.isTreeExpanded)&&s.Cc(a,n)}(e>2||a.wasTreeExpanded)&&(a.wasTreeExpanded=!1,a.oT(t,i,e-1,s,n,o))}}this.isTreeExpanded=!0}get isTreeExpanded(){return(this.E&1)!==0}set isTreeExpanded(t){const i=(this.E&1)!==0;if(i!==t){this.E=this.E^1;const e=this.diagram;this.t(\"isTreeExpanded\",i,t);const s=this.treeExpandedChanged;if(s!==null){let n=!0;e!==null&&(n=e.Y,e.Y=!0),s(this),e!==null&&(e.Y=n)}if(e!==null&&e.undoManager.isUndoingRedoing){this.Bi(t);return}t?this.expandTree():this.collapseTree()}}get wasTreeExpanded(){return(this.E&2)!==0}set wasTreeExpanded(t){const i=(this.E&2)!==0;i!==t&&(this.E=this.E^2,this.t(\"wasTreeExpanded\",i,t))}get treeExpandedChanged(){return this.gt!==null?this.gt.fy:null}set treeExpandedChanged(t){const i=this.treeExpandedChanged;i!==t&&(t!==null&&Util.i(t,\"function\",Node,\"treeExpandedChanged\"),this.al(),this.gt.fy=t,this.t(\"treeExpandedChanged\",i,t))}get isTreeLeaf(){return(this.E&4)!==0}set isTreeLeaf(t){const i=(this.E&4)!==0;i!==t&&(this.E=this.E^4,this.t(\"isTreeLeaf\",i,t))}get isTreeRoot(){return this.findTreeParentLink()===null}}class NodeTemplateSettings{gi;ay;cy;Ml;fy;hy;ly;uy;gy;eh;my;constructor(){this.gi=!1,this.ay=null,this.cy=null,this.Ml=null,this.fy=null,this.hy=Margin.rC,this.ly=1,this.uy=null,this.gy=null,this.eh=null,this.my=null}copy(){const t=new NodeTemplateSettings;return t.ay=this.ay,t.cy=this.cy,t.Ml=this.Ml,t.fy=this.fy,t.hy=this.hy.N(),t.ly=this.ly,t.uy=this.uy,t.gy=this.gy,t.eh=this.eh,t.my=this.my,t}}var LinkAdjusting=(w=>(w[w.None=0]=\"None\",w[w.End=17]=\"End\",w[w.Scale=18]=\"Scale\",w[w.Stretch=19]=\"Stretch\",w))(LinkAdjusting||{}),Routing=(w=>(w[w.Normal=1]=\"Normal\",w[w.Orthogonal=2]=\"Orthogonal\",w[w.AvoidsNodes=6]=\"AvoidsNodes\",w[w.AvoidsNodesStraight=7]=\"AvoidsNodesStraight\",w))(Routing||{}),Curve=(w=>(w[w.None=0]=\"None\",w[w.Bezier=9]=\"Bezier\",w[w.JumpGap=10]=\"JumpGap\",w[w.JumpOver=11]=\"JumpOver\",w))(Curve||{});class Link extends Part{Nt;lo;ho;Dd;ao;co;Fd;Sf;Rd;vd;Od;Da;Id;Hs;ki;cl;Mr;Nf;Jo;Q2;_2;f1;tN;iN;py;u1;ct;$o;static Fa=null;static Ra=null;cf;eN;sN;constructor(t){super(Panel.Link),this.Nt=8,this.lo=null,this.ho=\"\",this.Dd=null,this.ao=null,this.co=\"\",this.Fd=null,this.Sf=0,this.Rd=0,this.vd=0,this.Od=NaN,this.Da=1,this.Id=.5,this.Hs=null,this.ki=new List().g(),this.cl=null,this.Mr=null,this.Nf=new Rect,this.ct=new Geometry,this.Jo=null,this.$o=null,this.Q2=null,this._2=null,this.eN=0,this.sN=0,this.f1=new Point,this.tN=null,this.iN=null,this.py=null,this.u1=NaN,this.q=null,this.cf=[],t&&Object.assign(this,t)}cloneProtected(t){super.cloneProtected(t),t.Nt=this.Nt&-113,t.ho=this.ho,t.Dd=this.Dd,t.co=this.co,t.Fd=this.Fd,t.Sf=this.Sf,t.Rd=this.Rd,t.vd=this.vd,t.Od=this.Od,t.Da=this.Da,t.Id=this.Id,this.q!==null&&(t.q=this.q.copy())}Uo(t){super.Uo(t),this.ho=t.ho,this.co=t.co,t.cl=null,t.invalidateRoute(),t.$o=this.$o;const i=t.fromPort;i!==null&&t.fromNode.Wi(i);const e=t.toPort;e!==null&&t.toNode.Wi(e)}li(t){t in Routing||t in Curve||t in LinkAdjusting?Link.nN(t)?this.routing=t:t===9||t===10||t===11?this.curve=t:t===17||t===18||t===19?this.adjusting=t:t===1||t===0||Util.o(\"Unknown Link enum value for a Link property: \"+t):super.li(t)}static Normal=1;static Orthogonal=2;static AvoidsNodes=6;static AvoidsNodesStraight=7;static None=0;static Bezier=9;static JumpGap=10;static JumpOver=11;static End=17;static Scale=18;static Stretch=19;static OrientAlong=21;static OrientPlus90=22;static OrientMinus90=23;static OrientOpposite=24;static OrientUpright=25;static OrientPlus90Upright=26;static OrientMinus90Upright=27;static OrientUpright45=28;static Xv=8;static Kv=16;static Yv=14;static va=8;Xe(){this.q===null&&(this.q=new LinkSettings)}_R(t,i,e){const s=t.segmentIndex,n=t.segmentFraction;let o=t.alignmentFocus;const r=t.segmentOrientation,l=t.segmentOffset;let h=0,a=0,c=0,f=0;if(isNaN(s)){const C=this.ct,S=Util.nt();C.getPointAndAngleAlongPath(n,S);const N=Point.X(S[0],S[1]);if(N.add(this.getPoint(0)),C.type===1)N.offset(-C.startX,-C.startY);else{const T=C.figures.first();N.offset(-T.startX,-T.startY)}f=S[2],r!==0&&(c=this.computeAngle(t,r,f),t.angle=c),h=N.x,a=N.y,Point.s(N),Util.tt(S)}else if(s<-i||s>=i){const C=Point.l();this.yA(C),f=this.midAngle,r!==0&&(c=this.computeAngle(t,r,f),t.angle=c),h=C.x,a=C.y,Point.s(C)}else{let C,S,N=0;if(s>=0?(C=e.r[s],S=s0?e.r[N-1]:C),C.equalsApprox(S)){let T,A;s>=0?(T=s>0?e.r[s-1]:C,A=s1?e.r[N-2]:S);const D=T.distanceSquaredPoint(C),F=S.distanceSquaredPoint(A);D>F+10?f=s>=0?T.directionPoint(C):C.directionPoint(T):F>D+10?f=s>=0?S.directionPoint(A):A.directionPoint(S):f=s>=0?T.directionPoint(A):A.directionPoint(T)}else f=s>=0?C.directionPoint(S):S.directionPoint(C);r!==0&&(c=this.computeAngle(t,r,f),t.angle=c),h=C.x+(S.x-C.x)*n,a=C.y+(S.y-C.y)*n}if(o.isNone()){t.location=new Point(h,a);return}else o.isNoSpot()&&(o=Spot.Center);const u=Transform.l();u.vi(),u.et(t.scale,t.scale),u.cs(t.angle,0,0);const d=t.naturalBounds,m=Rect.X(0,0,d.width,d.height),g=Point.l();g.setRectSpot(m,o),u.xt(g);let p=-g.x,y=-g.y;const x=d.width,k=d.height,b=Point.l();b.a(l);const P=isNaN(l.x),M=isNaN(l.y);if(P||M){const C=x/2+3,S=k/2+3,N=f>=45&&f<=135,T=f>=225&&f<=315;r===0&&(N||T)?(b.x=M?C:l.y,b.y=P?S:l.x,N?s>=0||isNaN(s)&&n<.5||P&&(b.y=-S):T&&((s>=0||isNaN(s)&&n<.5)&&P&&(b.y=-S),M&&(b.x=-C))):(P&&(s>=0||isNaN(s)&&n<.5?b.x=C:b.x=-C),M&&(b.y=-S),b.rotate(f))}else b.rotate(f);h+=b.x,a+=b.y,u.Vg(m),p+=m.x,y+=m.y;const L=Point.X(h+p,a+y);t.move(L),Point.s(L),Point.s(b),Point.s(g),Rect.s(m),Transform.s(u)}jr(){let t=this.fromNode;if(t!==null){const e=t.findVisibleNode();if(e!==null&&(t=e),t.es()||t.th())return!1}let i=this.toNode;if(i!==null){const e=i.findVisibleNode();if(e!==null&&(i=e),i.es()||i.th())return!1}return!0}f2(t,i,e){return!1}u2(){}Pe(){return!1}computeAngle(t,i,e){return Link.computeAngle(i,e)}static computeAngle(t,i){let e=0;switch(t){default:case 0:e=0;break;case 21:e=i;break;case 22:e=i+90;break;case 23:e=i-90;break;case 24:e=i+180;break;case 25:e=Geo.Yg(i),e>90&&e<270&&(e-=180);break;case 26:e=Geo.Yg(i+90),e>90&&e<270&&(e-=180);break;case 27:e=Geo.Yg(i-90),e>90&&e<270&&(e-=180);break;case 28:if(e=Geo.Yg(i),e>45&&e<135||e>225&&e<315)return 0;e>90&&e<270&&(e-=180);break}return Geo.Yg(e)}get fromNode(){return this.lo}set fromNode(t){const i=this.lo;if(i!==t){const e=this.fromPort;i!==null&&(this.ao!==i&&i.c1(this,e),this.yy(),this.invalidateLayout(2)),this.lo=t,t!==null&&this.Bi(t.isVisible()),this.Jo=null,this.invalidateRoute();const s=this.diagram;s!==null&&s.Y&&s.partManager.setFromNodeForLink(this,t,i);const n=this.fromPort,o=this.fromPortChanged;if(o!==null){let r=!0;s!==null&&(r=s.Y,s.Y=!0),o(this,e,n),s!==null&&(s.Y=r)}t!==null&&(this.ao!==t&&t.a1(this,n),this.wy(),this.invalidateLayout(1)),this.t(\"fromNode\",i,t),this.Ad()}}get fromPortId(){return this.ho}set fromPortId(t){const i=this.ho;if(i!==t){const e=this.fromPort;e!==null&&this.fromNode.Wi(e),this.yy(),this.ho=t;const s=this.fromPort;s!==null&&this.fromNode.Wi(s);const n=this.diagram;if(n!==null){const o=this.data,r=n.model;o!==null&&r.Ta()&&r.setFromPortIdForLinkData(o,t)}if(e!==s){this.Jo=null,this.invalidateRoute();const o=this.fromPortChanged;if(o!==null){let r=!0;n!==null&&(r=n.Y,n.Y=!0),o(this,e,s),n!==null&&(n.Y=r)}}this.wy(),this.t(\"fromPortId\",i,t)}}get fromPort(){const t=this.lo;if(t===null)return null;const i=this.ho;return t.findPort(i)}get fromPortChanged(){return this.Dd}set fromPortChanged(t){const i=this.Dd;i!==t&&(t!==null&&Util.i(t,\"function\",Link,\"fromPortChanged\"),this.Dd=t,this.t(\"fromPortChanged\",i,t))}get toNode(){return this.ao}set toNode(t){const i=this.ao;if(i!==t){const e=this.toPort;i!==null&&(this.lo!==i&&i.c1(this,e),this.yy(),this.invalidateLayout(2)),this.ao=t,t!==null&&this.Bi(t.isVisible()),this.Jo=null,this.invalidateRoute();const s=this.diagram;s!==null&&s.Y&&s.partManager.setToNodeForLink(this,t,i);const n=this.toPort,o=this.toPortChanged;if(o!==null){let r=!0;s!==null&&(r=s.Y,s.Y=!0),o(this,e,n),s!==null&&(s.Y=r)}t!==null&&(this.lo!==t&&t.a1(this,n),this.wy(),this.invalidateLayout(1)),this.t(\"toNode\",i,t),this.Ad()}}get toPortId(){return this.co}set toPortId(t){const i=this.co;if(i!==t){const e=this.toPort;e!==null&&this.toNode.Wi(e),this.yy(),this.co=t;const s=this.toPort;s!==null&&this.toNode.Wi(s);const n=this.diagram;if(n!==null){const o=this.data,r=n.model;o!==null&&r.Ta()&&r.setToPortIdForLinkData(o,t)}if(e!==s){this.Jo=null,this.invalidateRoute();const o=this.toPortChanged;if(o!==null){let r=!0;n!==null&&(r=n.Y,n.Y=!0),o(this,e,s),n!==null&&(n.Y=r)}}this.wy(),this.t(\"toPortId\",i,t)}}get toPort(){const t=this.ao;if(t===null)return null;const i=this.co;return t.findPort(i)}get toPortChanged(){return this.Fd}set toPortChanged(t){const i=this.Fd;i!==t&&(t!==null&&Util.i(t,\"function\",Link,\"toPortChanged\"),this.Fd=t,this.t(\"toPortChanged\",i,t))}get fromSpot(){return this.q!==null?this.q.fa:Spot.Default}set fromSpot(t){const i=this.fromSpot;if(!i.equals(t)){if(t=t.N(),this.Xe(),this.q.fa=t,this.t(\"fromSpot\",i,t),i.isSide()||t.isSide()){const e=this.fromNode;e!==null&&e.Wi(this.fromPort)}this.invalidateRoute()}}get fromEndSegmentLength(){return this.q!==null?this.q.da:NaN}set fromEndSegmentLength(t){const i=this.fromEndSegmentLength;if(i!==t){if(t<0&&Util._(t,\">= 0\",Link,\"fromEndSegmentLength\"),this.Xe(),this.q.da=t,this.t(\"fromEndSegmentLength\",i,t),this.computeSpot(!0,this.fromPort).isSide()){const e=this.fromNode;e!==null&&e.Wi(this.fromPort)}this.invalidateRoute()}}get fromShortLength(){return this.q!==null?this.q.ma:NaN}set fromShortLength(t){const i=this.fromShortLength;i!==t&&(this.Xe(),this.q.ma=t,this.ee(),this.t(\"fromShortLength\",i,t))}get toSpot(){return this.q!==null?this.q.ua:Spot.Default}set toSpot(t){const i=this.toSpot;if(!i.equals(t)){if(t=t.N(),this.Xe(),this.q.ua=t,this.t(\"toSpot\",i,t),i.isSide()||t.isSide()){const e=this.toNode;e!==null&&e.Wi(this.toPort)}this.invalidateRoute()}}get toEndSegmentLength(){return this.q!==null?this.q.ga:NaN}set toEndSegmentLength(t){const i=this.toEndSegmentLength;if(i!==t){if(t<0&&Util._(t,\">= 0\",Link,\"toEndSegmentLength\"),this.Xe(),this.q.ga=t,this.t(\"toEndSegmentLength\",i,t),this.computeSpot(!1,this.toPort).isSide()){const e=this.toNode;e!==null&&e.Wi(this.toPort)}this.invalidateRoute()}}get toShortLength(){return this.q!==null?this.q.pa:NaN}set toShortLength(t){const i=this.toShortLength;i!==t&&(this.Xe(),this.q.pa=t,this.ee(),this.t(\"toShortLength\",i,t))}Ad(){const t=this.fromNode,i=this.toNode;let e=null;if(t!==null?i!==null?e=t.findCommonContainingGroup(i):e=t.containingGroup:i!==null?e=i.containingGroup:e=null,this.Gv(e),this.isLabeledLink){const s=this.labelNodes;for(;s.next();){const n=s.value;n.containingGroup=e}}}Gv(t){const i=this.ph;if(i!==t){i!==null&&i.j2(this),this.ph=t,t!==null&&t.H2(this);const e=this.containingGroupChanged;if(e!==null){let s=!0;const n=this.diagram;n!==null&&(s=n.Y,n.Y=!0),e(this,i,t),n!==null&&(n.Y=s)}this.Se&&(this.tN===i||this.iN===i)&&this.invalidateRoute()}}ch(){const t=this.containingGroup;t!==null&&this.fromNode!==t&&this.toNode!==t&&t.computesBoundsIncludingLinks&&super.ch()}getOtherNode(t){const i=this.fromNode;return t===i?this.toNode:i}getOtherPort(t){const i=this.fromPort;return t===i?this.toPort:i}get isLabeledLink(){return this.Hs===null?!1:this.Hs.count>0}get labelNodes(){return this.Hs===null?EmptyIterator.instance:this.Hs.iterator}tT(t){this.Hs===null&&(this.Hs=new GSet),this.Hs.add(t),this.c()}iT(t){this.Hs!==null&&(this.Hs.delete(t),this.c())}Um(t){if(super.Um(t),this.Oa()&&this.invalidateOtherJumpOvers(this.actualBounds),!t){const i=this.lo;let e=null;i!==null&&(e=this.fromPort,i.a1(this,e));const s=this.ao;let n=null;s!==null&&(n=this.toPort,(s!==i||n!==e)&&s.a1(this,n)),this.wy()}}Vm(t){if(super.Vm(t),this.Oa()&&this.invalidateOtherJumpOvers(this.actualBounds),!t){const i=this.lo;let e=null;i!==null&&(e=this.fromPort,i.c1(this,e));const s=this.ao;let n=null;s!==null&&(n=this.toPort,(s!==i||n!==e)&&s.c1(this,n)),this.yy()}}Kc(){if(this.Se=!0,this.Hs!==null){const i=this.diagram;if(i!==null){const s=this.Hs.copy().iterator;for(;s.next();){const n=s.value;i.remove(n)}}}if(this.data!==null){const i=this.diagram;i!==null&&i.partManager.oN(this)}}updateRelationshipsFromData(){if(this.data===null)return;const i=this.diagram;i!==null&&i.partManager.updateRelationshipsFromData(this)}move(t,i){const e=i?this.location:this.position;let s=e.x;isNaN(s)&&(s=0);let n=e.y;isNaN(n)&&(n=0);const o=t.x-s,r=t.y-n;if(i===!0)super.move(t,!1);else{const h=Point.X(e.x+o,e.y+r);super.move(h,!1),Point.s(h)}this.mr(o,r);const l=this.labelNodes;for(;l.next();){const h=l.value,a=h.position;h.moveTo(a.x+o,a.y+r)}}get relinkableFrom(){return(this.Nt&1)!==0}set relinkableFrom(t){const i=(this.Nt&1)!==0;i!==t&&(this.Nt=this.Nt^1,this.t(\"relinkableFrom\",i,t),this.invalidateAdornments())}get relinkableTo(){return(this.Nt&2)!==0}set relinkableTo(t){const i=(this.Nt&2)!==0;i!==t&&(this.Nt=this.Nt^2,this.t(\"relinkableTo\",i,t),this.invalidateAdornments())}canRelinkFrom(){if(!this.relinkableFrom)return!1;const t=this.layer;if(t===null)return!0;if(!t.allowRelink)return!1;const i=t.diagram;return!(i!==null&&!i.allowRelink)}canRelinkTo(){if(!this.relinkableTo)return!1;const t=this.layer;if(t===null)return!0;if(!t.allowRelink)return!1;const i=t.diagram;return!(i!==null&&!i.allowRelink)}get resegmentable(){return(this.Nt&4)!==0}set resegmentable(t){const i=(this.Nt&4)!==0;i!==t&&(this.Nt=this.Nt^4,this.t(\"resegmentable\",i,t),this.invalidateAdornments())}get isTreeLink(){return(this.Nt&8)!==0}set isTreeLink(t){const i=(this.Nt&8)!==0;i!==t&&(this.Nt=this.Nt^8,this.t(\"isTreeLink\",i,t),this.fromNode!==null&&this.fromNode.u0(),this.toNode!==null&&this.toNode.u0())}get path(){const t=this.findMainElement();return t instanceof Shape?t:null}get routeBounds(){return this.updateRoute(),this.jv(this.Nf)}jv(t){let i=1/0,e=1/0;const s=this.pointsCount;if(s===0)return t.e(NaN,NaN,0,0),t;if(s===1){const n=this.getPoint(0);i=Math.min(n.x,i),e=Math.min(n.y,e),t.e(n.x,n.y,0,0)}else if(s===2){const n=this.getPoint(0),o=this.getPoint(1);i=Math.min(n.x,o.x),e=Math.min(n.y,o.y),t.e(n.x,n.y,0,0),t.unionPoint(o)}else if(this.computeCurve()===9&&s>=3&&!this.isOrthogonal){let n=this.getPoint(0);if(i=n.x,e=n.y,t.e(i,e,0,0),s===3){const o=this.getPoint(1);i=Math.min(o.x,i),e=Math.min(o.y,e);const r=this.getPoint(2);i=Math.min(r.x,i),e=Math.min(r.y,e),Geo.au(n.x,n.y,o.x,o.y,o.x,o.y,r.x,r.y,.5,t)}else for(let o=3;o=s&&(o=s-1);const l=this.getPoint(o-1),h=this.getPoint(o);Geo.au(n.x,n.y,r.x,r.y,l.x,l.y,h.x,h.y,.5,t),i=Math.min(h.x,i),e=Math.min(h.y,e),n=h}}else{const n=this.getPoint(0),o=this.getPoint(1);i=Math.min(n.x,o.x),e=Math.min(n.y,o.y),t.e(n.x,n.y,0,0),t.unionPoint(o);for(let r=2;r=15||this.computeCurve()===9)){this.ct.getPointAlongPath(.5,t),t.add(this.getPoint(0));const a=this.ct.figures.first();return t.offset(-a.startX,-a.startY),t}if(this.computeCurve()===9){if(i===3){const f=this.getPoint(0),u=this.getPoint(1),d=this.getPoint(2);return Geo.uC(f.x,f.y,u.x,u.y,u.x,u.y,d.x,d.y,t),t}const a=(i-1)/3|0,c=(a/2|0)*3;if(a%2===1){const f=this.getPoint(c),u=this.getPoint(c+1),d=this.getPoint(c+2),m=this.getPoint(c+3);return Geo.uC(f.x,f.y,u.x,u.y,d.x,d.y,m.x,m.y,t),t}else return t.a(this.getPoint(c)),t}const e=this.flattenedLengths,s=this.flattenedTotalLength;let n=0,o=0,r=0;for(;ns/2));)n+=r,o++;const l=this.getPoint(o),h=this.getPoint(o+1);if(Math.abs(l.x-h.x)<1)l.y>h.y?t.e(l.x,l.y-(s/2-n)):t.e(l.x,l.y+(s/2-n));else if(Math.abs(l.y-h.y)<1)l.x>h.x?t.e(l.x-(s/2-n),l.y):t.e(l.x+(s/2-n),l.y);else{const a=(s/2-n)/r,c=a*(h.x-l.x),f=a*(h.y-l.y);t.e(l.x+c,l.y+f)}return t}get midAngle(){return this.updateRoute(),this.computeMidAngle()}computeMidAngle(){const t=this.pointsCount;if(t<2)return NaN;if(t===2){const h=this.getPoint(0),a=this.getPoint(1);return h.directionPoint(a)}if(this.isOrthogonal&&(this.computeCorner()>=15||this.computeCurve()===9))return this.ct.getAngleAlongPath(.5);if(this.computeCurve()===9&&t>=4){const h=(t-1)/3|0;let a=(h/2|0)*3;if(h%2===1){a=Math.floor(a);const c=this.getPoint(a),f=this.getPoint(a+1),u=this.getPoint(a+2),d=this.getPoint(a+3);return Geo.vD(c.x,c.y,f.x,f.y,u.x,u.y,d.x,d.y)}else if(a>0&&a+1e/2));)s+=o,n++;const r=this.getPoint(n),l=this.getPoint(n+1);if(Math.abs(r.x-l.x)<1&&Math.abs(r.y-l.y)<1){if(n>0&&n+2l.y?270:90;if(Math.abs(r.y-l.y)<1)return r.x>l.x?180:0}return r.directionPoint(l)}Hv(){if(this.py===null){this.Se||this.d1();const t=this.py=[];this.qv(t)}}get flattenedLengths(){return this.Hv(),this.py}get flattenedTotalLength(){let t=this.u1;if(isNaN(t)){const i=this.flattenedLengths,e=i.length;t=0;for(let s=0;s=3){let g=this.getLinkPoint(i,e,r,!0,!1,s,n),p=this.getLinkPoint(s,n,l,!1,!1,i,e);m=this.adjustPoints(0,g,o-1,p),m&&(g=this.getLinkPoint(i,e,r,!0,!1,s,n),p=this.getLinkPoint(s,n,l,!1,!1,i,e),this.adjustPoints(0,g,o-1,p))}m||(this.clearPoints(),u?this.Wv(i,e,r,s,n,l):this.Jv(i,e,r,s,n,l))}else{const m=this.isAvoiding;d&&(f&&m||c)&&this.clearPoints();const g=c?this.computeCurviness():0,p=this.getLinkPoint(i,e,r,!0,f,s,n);let y=0,x=0,k=0;if(f||!h||c){let N=this.computeEndSegmentLength(i,e,r,!0);if(k=this.getLinkDirection(i,e,p,r,!0,f,s,n),c&&(h||r.equals(l)||!f&&r.x+l.x===1&&r.y+l.y===1)&&(k-=f?90:30,g<0&&(k-=180)),k<0?k+=360:k>=360&&(k-=360),c&&(N+=Math.abs(g)*(f?1:2)),k===0?y=N:k===90?x=N:k===180?y=-N:k===270?x=-N:(y=N*Math.cos(k*Math.PI/180),x=N*Math.sin(k*Math.PI/180)),r.isNoSpot()&&c){const T=e.getDocumentPoint(Spot.Center,Point.l()),A=Point.X(T.x+y*1e3,T.y+x*1e3);this.getLinkPointFromPoint(i,e,T,A,!0,p),Point.s(T),Point.s(A)}}const b=this.getLinkPoint(s,n,l,!1,f,i,e);let P=0,M=0,L=0;if(f||!a||c){let N=this.computeEndSegmentLength(s,n,l,!1);if(L=this.getLinkDirection(s,n,b,l,!1,f,i,e),c&&(a||r.equals(l)||!f&&r.x+l.x===1&&r.y+l.y===1)&&(L+=f?0:30,g<0&&(L+=180)),L<0?L+=360:L>=360&&(L-=360),c&&(N+=Math.abs(g)*(f?1:2)),L===0?P=N:L===90?M=N:L===180?P=-N:L===270?M=-N:(P=N*Math.cos(L*Math.PI/180),M=N*Math.sin(L*Math.PI/180)),l.isNoSpot()&&c){const T=n.getDocumentPoint(Spot.Center,Point.l()),A=Point.X(T.x+P*1e3,T.y+M*1e3);this.getLinkPointFromPoint(s,n,T,A,!1,b),Point.s(T),Point.s(A)}}let C=p;(f||!h||c)&&(C=new Point(p.x+y,p.y+x));let S=b;(f||!a||c)&&(S=new Point(b.x+P,b.y+M)),!d&&!f&&h&&o>3&&this.adjustPoints(0,p,o-2,S)?this.setPoint(o-1,b):!d&&!f&&a&&o>3&&this.adjustPoints(1,C,o-1,b)?this.setPoint(0,p):!d&&(f?o>=6:o>4)&&this.adjustPoints(1,C,o-2,S)?(this.setPoint(0,p),this.setPoint(o-1,b)):(this.clearPoints(),this.addPoint(p),(f||!h||c)&&this.addPoint(C),f&&this.addOrthoPoints(C,k,S,L,i,s),(f||!a||c)&&this.addPoint(S),this.addPoint(b))}return t.addInvalidRoute(this),!0}lN(t,i){return Math.abs(i.x-t.x)>Math.abs(i.y-t.y)?(i.x>=t.x?i.x=t.x+9e9:i.x=t.x-9e9,i.y=t.y):(i.y>=t.y?i.y=t.y+9e9:i.y=t.y-9e9,i.x=t.x),i}getLinkPointFromPoint(t,i,e,s,n,o){if(o===void 0&&(o=new Point),t===null||i===null)return o.a(e),o;if(!t.isVisible()){const u=t.findVisibleNode();u!==null&&u!==t&&(t=u,i=t.port)}let r=0,l=0,h=0,a=0,c=null,f=i.panel;if(f!==null&&!f.pn()&&(f=f.panel),f===null)r=s.x,l=s.y,h=e.x,a=e.y;else{c=f.Es;const u=1/(c.m11*c.m22-c.m12*c.m21),d=c.m22*u,m=-c.m12*u,g=-c.m21*u,p=c.m11*u,y=u*(c.m21*c.dy-c.m22*c.dx),x=u*(c.m12*c.dx-c.m11*c.dy);r=s.x*d+s.y*g+y,l=s.x*m+s.y*p+x,h=e.x*d+e.y*g+y,a=e.x*m+e.y*p+x}return i.Zc(r,l,h,a,o),c!==null&&o.D(c),o}$v(t,i){const e=t.Zu;return e!==null?e.rT(i):null}m1(t){let i=t.Zu;return i===null&&(i=new Knot,i.Zo=t,i.de=t.part,t.Zu=i),i.rT(this)}getLinkPoint(t,i,e,s,n,o,r,l){if(l===void 0&&(l=new Point),e.isSpot()&&!this.Ed(e))return i.getDocumentPoint(e,l),l;if(e.isSide()){const c=this.m1(i);if(c!==null){const f=c.Bd;if(l.a(f),n&&this.routing===7){const u=this.m1(r);if(u!==null&&c.Cf=g.y&&y.y<=g.y+g.height?l.y=y.y:(e.includesSide(Spot.TopSide)||e.includesSide(Spot.BottomSide))&&y.x>=g.x&&y.x<=g.x+g.width&&(l.x=y.x),Point.s(d),Point.s(m)}}return l}}const h=i.getDocumentPoint(this.p1(e,s),Point.l());let a=null;if(this.pointsCount>(n?6:2))a=s?this.getPoint(1):this.getPoint(this.pointsCount-2),n&&(a=this.lN(h,a.copy()));else{const c=this.computeSpot(!s,r),f=Point.l();a=r.getDocumentPoint(this.p1(c,!s),f),n&&(a=this.lN(h,a)),Point.s(f)}return this.getLinkPointFromPoint(t,i,h,a,s,l),Point.s(h),l}getLinkDirection(t,i,e,s,n,o,r,l){let h=this.Zv(t,i,e,s,n,o,r,l);if(r&&s.isNoSpot()&&r.isMemberOf(t)&&(h+=180,h>=360&&(h-=360)),this.Ed(s))return h;const a=i.getDocumentAngle();return a===0||(45<=a&&a<135?h+=90:135<=a&&a<225?h+=180:225<=a&&a<315&&(h+=270),h>=360&&(h-=360)),h}Zv(t,i,e,s,n,o,r,l){if(s.isSpot())return s.x>s.y?s.x>1-s.y?0:s.x<1-s.y?270:315:s.x1-s.y?90:s.x<1-s.y?180:135:s.x<.5?225:s.x>.5?45:0;if(s.isSide()){const f=this.m1(i);if(f!==null)switch(f.me){case 1:return 270;case 2:return 180;default:case 4:return 0;case 8:return 90}}const h=i.getDocumentPoint(Spot.Center,Point.l());let a=null;if(this.pointsCount>(o?6:2))a=n?this.getPoint(1):this.getPoint(this.pointsCount-2),o?a=this.lN(h,a.copy()):a=e;else{const f=Point.l();a=l.getDocumentPoint(Spot.Center,f),Point.s(f)}let c=0;return Math.abs(a.x-h.x)>Math.abs(a.y-h.y)?a.x>=h.x?c=0:c=180:a.y>=h.y?c=90:c=270,Point.s(h),c}computeEndSegmentLength(t,i,e,s){if(i!==null&&e.isSide()){const o=this.m1(i);if(o!==null)return o.w1}let n=NaN;return s?n=this.fromEndSegmentLength:n=this.toEndSegmentLength,i!==null&&isNaN(n)&&(s?n=i.fromEndSegmentLength:n=i.toEndSegmentLength),isNaN(n)&&(n=10),n}computeSpot(t,i){return i===void 0&&(i=null),t?this.Qv(i||this.fromPort):this._v(i||this.toPort)}Qv(t){if(t===null)return Spot.Center;let i=this.fromSpot;return i.isDefault()&&(i=t.fromSpot),i===Spot.Default?Spot.None:i}_v(t){if(t===null)return Spot.Center;let i=this.toSpot;return i.isDefault()&&(i=t.toSpot),i===Spot.Default?Spot.None:i}Ed(t){return t===Spot.None||t.x===.5&&t.y===.5}p1(t,i){return t.x===.5&&t.y===.5?t:Spot.Center}computeOtherPoint(t,i){if(this.computeAdjusting()!==0&&this.pointsCount>4)return this.computeMidPoint(new Point);{const e=this.$v(i,this);return e!==null?e.Bd:i.getDocumentPoint(Spot.Center)}}computeShortLength(t){if(t){let i=this.fromShortLength;if(isNaN(i)){const e=this.fromPort;e!==null&&(i=e.fromShortLength)}return isNaN(i)?0:i}else{let i=this.toShortLength;if(isNaN(i)){const e=this.toPort;e!==null&&(i=e.toShortLength)}return isNaN(i)?0:i}}Im(t,i,e,s,n,o){if(this.pickable===!1)return!1;i===void 0&&(i=null),e===void 0&&(e=null);let r=o;if(o===void 0&&(r=Transform.l(),r.vi()),r.ic(this.D),this.containedInRect(t,r))return this.F2(i,e,n),o===void 0&&Transform.s(r),!0;if(this.intersectsRect(t,r)){let l=!1;if(!this.ff){const h=this.L.r,a=h.length;for(let c=a;c--;){const f=h[c];if(!f.visible&&f!==this.locationObject)continue;const u=f.actualBounds,d=this.naturalBounds;if(u.x>d.width||u.y>d.height||u.x+u.width<0||u.y+u.height<0)continue;const m=f,g=Transform.l();if(g.set(r),m instanceof Panel?l=m.Im(t,i,e,s,n,g):this.path===m?m instanceof Shape&&(l=m.kv(t,s,g)):l=m.iA(t,s,g),l){let p=m;i!==null&&(p=i(m)),p&&(e===null||e(p))&&n.add(p)}Transform.s(g)}}return o===void 0&&Transform.s(r),l||this.background!==null}return o===void 0&&Transform.s(r),!1}get isOrthogonal(){return(this.Da&2)===2}static nN(t){return(t&2)===2}get isAvoiding(){return(this.Da&4)===4}computeCurve(){if(this.Jo===null){const t=this.fromPort,i=t!==null&&t===this.toPort,e=this.isOrthogonal;this.Jo=i&&!e}return this.Jo?9:this.curve}computeCorner(){if(this.curve===9)return 0;let t=this.corner;return(isNaN(t)||t<0)&&(t=10),t}findMidLabel(){const t=this.path,i=this.L.r,e=i.length;for(let n=0;n0?g-=f:g+=f;else{const p=-h/a;let y=Math.sqrt(f*f/(p*p+1));c<0&&(y=-y),m=(a<0?-1:1)*y+u,g=p*(m-u)+d}this.addPoint(r),this.addPointAt(m,g),this.addPoint(l)}else{this.addPoint(r),this.addPoint(l);const h=Rect.l();i.getDocumentBounds(h);const a=h.containsPoint(l);n.getDocumentBounds(h);const c=h.containsPoint(r);if(a||c){const f=i.getDocumentPoint(this.p1(e,!0),new Point);this.setPoint(0,this.getLinkPointFromPoint(t,i,f,l,!0,f));const u=n.getDocumentPoint(this.p1(o,!1),new Point);this.setPoint(1,this.getLinkPointFromPoint(s,n,u,r,!1,u))}Rect.s(h)}}Wv(t,i,e,s,n,o){const r=this.getLinkPoint(t,i,e,!0,!1,s,n),l=this.getLinkPoint(s,n,o,!1,!1,t,i),h=l.x-r.x,a=l.y-r.y,c=this.computeCurviness();let f=0,u=0,d=r.x+h/3,m=r.y+a/3,g=d,p=m;Geo.u(a,0)?h>0?p-=c:p+=c:(f=-h/a,u=Math.sqrt(c*c/(f*f+1)),c<0&&(u=-u),g=(a<0?-1:1)*u+d,p=f*(g-d)+m),d=r.x+2*h/3,m=r.y+2*a/3;let y=d,x=m;Geo.u(a,0)?h>0?x-=c:x+=c:(y=(a<0?-1:1)*u+d,x=f*(y-d)+m),this.clearPoints(),this.addPoint(r),this.addPointAt(g,p),this.addPointAt(y,x),this.addPoint(l),this.setPoint(0,this.getLinkPoint(t,i,e,!0,!1,s,n)),this.setPoint(3,this.getLinkPoint(s,n,o,!1,!1,t,i))}adjustPoints(t,i,e,s){let n=this.computeAdjusting();if(this.isOrthogonal){if(n===18)return!1;n===19&&(n=17)}switch(n){case 18:return this.tO(t,i,e,s);case 19:return this.iO(t,i,e,s);case 17:return this.eO(t,i,e,s);default:return!1}}tO(t,i,e,s){const n=this.getPoint(t),o=this.getPoint(e);if(n.equalsApprox(i)&&o.equalsApprox(s))return!0;const r=n.x,l=n.y,h=o.x,a=o.y;let c=h-r,f=a-l;const u=Math.sqrt(c*c+f*f);if(Geo.K(u,0))return!0;let d=0;Geo.K(c,0)?f<0?d=-Math.PI/2:d=Math.PI/2:(d=Math.atan(f/Math.abs(c)),c<0&&(d=Math.PI-d));const m=i.x,g=i.y,p=s.x,y=s.y,x=p-m,k=y-g,b=Math.sqrt(x*x+k*k);let P=0;Geo.K(x,0)?k<0?P=-Math.PI/2:P=Math.PI/2:(P=Math.atan(k/Math.abs(x)),x<0&&(P=Math.PI-P));const M=b/u,L=P-d;this.setPoint(t,i);for(let C=t+1;C0&&(C=-C);const S=f+P*(d-f),N=u+P*(m-u);if(g!==0){const T=S+C/p,A=N-(T-S)/g;this.setPointAt(y,T,A)}else this.setPointAt(y,S,N+C)}return this.setPoint(e,s),!0}eO(t,i,e,s){if(this.isOrthogonal){let n=this.getPoint(t),o=this.getPoint(t+1),r=this.getPoint(t+2),l=o.x,h=o.y;const a=l,c=h;Geo.u(n.y,o.y)?Geo.u(o.x,r.x)?h=i.y:Geo.u(o.y,r.y)&&(l=i.x):Geo.u(n.x,o.x)&&(Geo.u(o.y,r.y)?l=i.x:Geo.u(o.x,r.x)&&(h=i.y)),this.setPointAt(t+1,l,h),n=this.getPoint(e),o=this.getPoint(e-1),r=this.getPoint(e-2);let f=o.x,u=o.y;const d=f,m=u;if(Geo.u(n.y,o.y)?Geo.u(o.x,r.x)?u=s.y:Geo.u(o.y,r.y)&&(f=s.x):Geo.u(n.x,o.x)&&(Geo.u(o.y,r.y)?f=s.x:Geo.u(o.x,r.x)&&(u=s.y)),this.setPointAt(e-1,f,u),this.FL())return this.setPointAt(t+1,a,c),this.setPointAt(e-1,d,m),!1}return this.setPoint(t,i),this.setPoint(e,s),!0}addOrthoPoints(t,i,e,s,n,o){i<0?i+=360:i>=360&&(i-=360),s<0?s+=360:s>=360&&(s-=360);const c=s;i>=315||i<45?i=0:45<=i&&i<135?i=90:135<=i&&i<225?i=180:i=270,s>=315||s<45?s=0:45<=s&&s<135?s=90:135<=s&&s<225?s=180:s=270;const f=t,u=e,d=n.actualBounds.copy(),m=o.actualBounds.copy();if(!d.isReal()||!m.isReal())return;d.inflate(Link.va,Link.va),m.inflate(Link.va,Link.va),d.unionPoint(t),m.unionPoint(e);const g=Point.l(),p=Point.l();i===0?u.x>f.x||s===270&&u.yf.x||s===90&&u.y>f.y&&m.right>f.x?(g.e(u.x,f.y),p.e(u.x,(f.y+u.y)/2),s===180?(g.x=this.computeMidOrthoPosition(f.x,f.y,u.x,u.y,!1),p.x=g.x,p.y=u.y):s===270&&u.yf.y?(f.xm.bottom)?g.x=this.computeMidOrthoPosition(f.x,f.y,u.x,u.y,!1):g.x=m.right,p.x=g.x,p.y=u.y):s===0&&f.xm.top&&f.yd.bottom)&&(s===180&&(m.containsPoint(f)||d.containsPoint(u))?g.y=this.computeMidOrthoPosition(f.x,f.y,u.x,u.y,!0):u.yf.y&&(s===180||s===270)&&(g.y=this.computeMidOrthoPosition(f.x,d.bottom,u.x,Math.min(u.y,m.top),!0)),p.x=u.x,p.y=g.y),g.y>d.top&&g.y=d.left&&u.x<=f.x||f.x<=m.right&&f.x>=u.x?(s===90||s===270)&&(g.e(Math.max((f.x+u.x)/2,f.x),f.y),p.e(g.x,u.y)):(s===270||(s===0||s===180)&&u.yf.y&&m.leftf.y?(f.x>m.right?g.x=this.computeMidOrthoPosition(f.x,f.y,m.right,u.y,!1):f.x>m.left&&(s===270&&f.ym.bottom)?g.x=this.computeMidOrthoPosition(f.x,f.y,u.x,u.y,!1):g.x=m.left,p.x=g.x,p.y=u.y):s===180&&f.x>m.right&&f.y>m.top&&f.yd.bottom)&&(s===0&&(m.containsPoint(f)||d.containsPoint(u))?g.y=this.computeMidOrthoPosition(f.x,f.y,u.x,u.y,!0):u.yf.y&&(s===0||s===270)&&(g.y=this.computeMidOrthoPosition(f.x,d.bottom,u.x,Math.min(u.y,m.top),!0)),p.x=u.x,p.y=g.y),g.y>d.top&&g.y=f.x||f.x>=m.left&&f.x<=u.x?(s===90||s===270)&&(g.e(Math.min((f.x+u.x)/2,f.x),f.y),p.e(g.x,u.y)):(s===270||(s===0||s===180)&&u.yf.y||s===180&&u.xf.y||s===0&&u.x>f.x&&m.bottom>f.y?(g.e(f.x,u.y),p.e((f.x+u.x)/2,u.y),s===270?(g.y=this.computeMidOrthoPosition(f.x,f.y,u.x,u.y,!0),p.x=u.x,p.y=g.y):s===180&&u.xf.x?(f.ym.right)?g.y=this.computeMidOrthoPosition(f.x,f.y,u.x,u.y,!0):g.y=m.bottom,p.x=u.x,p.y=g.y):s===90&&f.ym.left&&f.xd.right)&&(s===270&&(m.containsPoint(f)||d.containsPoint(u))?g.x=this.computeMidOrthoPosition(f.x,f.y,u.x,u.y,!1):u.xf.x&&(s===270||s===180)&&(g.x=this.computeMidOrthoPosition(d.right,f.y,Math.min(u.x,m.left),u.y,!1)),p.x=g.x,p.y=u.y),g.x>d.left&&g.x=d.top&&u.y<=f.y||f.y<=m.bottom&&f.y>=u.y?(s===0||s===180)&&(g.e(f.x,Math.max((f.y+u.y)/2,f.y)),p.e(u.x,g.y)):(s===180||(s===90||s===270)&&u.xf.x&&m.top=f.x?(f.y>m.bottom?g.y=this.computeMidOrthoPosition(f.x,f.y,u.x,m.bottom,!0):f.y>m.top&&(s===180&&f.xm.right)?g.y=this.computeMidOrthoPosition(f.x,f.y,u.x,u.y,!0):g.y=m.top,p.x=u.x,p.y=g.y):s===270&&f.y>m.bottom&&f.x>m.left&&f.xd.right)&&(s===90&&(m.containsPoint(f)||d.containsPoint(u))?g.x=this.computeMidOrthoPosition(f.x,f.y,u.x,u.y,!1):u.xf.x&&(s===90||s===180)&&(g.x=this.computeMidOrthoPosition(d.right,f.y,Math.min(u.x,m.left),u.y,!1)),p.x=g.x,p.y=u.y),g.x>d.left&&g.x=f.y||f.y>=m.top&&f.y<=u.y?(s===0||s===180)&&(g.e(f.x,Math.min((f.y+u.y)/2,f.y)),p.e(u.x,g.y)):(s===180||(s===90||s===270)&&u.x=3&&!Geo.K(this.smoothness,0))if(i===3){let c=this.getPoint(1);n=Math.min(r.x,c.x),o=Math.min(r.y,c.y),c=this.getPoint(2),n=Math.min(n,c.x),o=Math.min(o,c.y)}else if(this.isOrthogonal){for(let c=0;c=i&&(c=i-1);const f=this.getPoint(c);l.x=Math.min(f.x,l.x),l.y=Math.min(f.y,l.y)}n=l.x,o=l.y}else{for(let c=0;c=3&&!Geo.K(this.smoothness,0))if(i===3){const f=this.getPoint(1),u=f.x-n,d=f.y-o;let m=this.getPoint(2).copy();m.x-=n,m.y-=o,this.computeShortLength(!1)!==0&&(m=this.Lf(m,!1,l)),c.ur(u,d,u,d,m.x,m.y)}else if(this.isOrthogonal){const f=Point.X(n,o),u=Point.l();u.a(this.getPoint(1));const d=Point.X(n,o),m=Point.X(n,o);let g=this.getPoint(0),p=null;const y=this.smoothness/3;for(let P=1;P=i&&(f=i-1);const d=this.getPoint(f-1);let m=this.getPoint(f);f===i-1&&this.computeShortLength(!1)!==0&&(m=this.Lf(m.copy(),!1,Point.Po)),c.ur(u.x-n,u.y-o,d.x-n,d.y-o,m.x-n,m.y-o)}else{const f=Point.l();f.a(this.getPoint(0));const u=Point.l();u.a(f);const d=this.computeCorner();let m=1,g=0;for(;m1);let p=this.getPoint(m);if(m>=i-1){if(!f.equals(p))this.computeShortLength(!1)!==0&&(p=this.Lf(p.copy(),!1,Point.Po)),this.Nn(c,-n,-o,f,p,e);else if(g===0)for(m=1;mr?f>a?(n.x=h-u,n.y=a-u,o.x=h+d,o.y=a+d):(n.x=h-u,n.y=a+u,o.x=h+d,o.y=a-d):f>a?(n.x=h+u,n.y=a-u,o.x=h-d,o.y=a+d):(n.x=h+u,n.y=a+u,o.x=h-d,o.y=a-d)),Geo.K(r,h)&&Geo.K(a,f)&&(a>l?c>h?(n.x=h-u,n.y=a-u,o.x=h+d,o.y=a+d):(n.x=h+u,n.y=a-u,o.x=h-d,o.y=a+d):c>h?(n.x=h-u,n.y=a+u,o.x=h+d,o.y=a-d):(n.x=h+u,n.y=a+u,o.x=h-d,o.y=a-d)),Geo.K(r,h)&&Geo.K(h,c)||Geo.K(l,a)&&Geo.K(a,f)){const m=.5*(r+c),g=.5*(l+f);n.x=m,n.y=g,o.x=m,o.y=g}}Lf(t,i,e){const s=this.pointsCount;if(s<2)return t;if(i){const n=this.getPoint(1),o=n.x-e.x,r=n.y-e.y,l=this.b1(t.x,t.y,o,r);if(l===0)return t;const h=s===2?l*.5:l;let a=this.computeShortLength(!0);a>h&&(a=h);const c=a*(o-t.x)/l,f=a*(r-t.y)/l;t.x+=c,t.y+=f}else{const n=this.getPoint(s-2),o=n.x-e.x,r=n.y-e.y,l=this.b1(t.x,t.y,o,r);if(l===0)return t;const h=s===2?l*.5:l;let a=this.computeShortLength(!1);a>h&&(a=h);const c=a*(t.x-o)/l,f=a*(t.y-r)/l;t.x-=c,t.y-=f}return t}hN(t,i,e){const s=this.pointsCount;let n=t;for(;Geo.K(t.x,n.x)&&Geo.K(t.y,n.y);){if(i>=s)return s-1;n=this.getPoint(i++)}if(!Geo.K(t.x,n.x)&&!Geo.K(t.y,n.y))return i-1;let o=n;for(;Geo.K(t.x,n.x)&&Geo.K(n.x,o.x)&&(!e||(t.y>=n.y?n.y>=o.y:n.y<=o.y))||Geo.K(t.y,n.y)&&Geo.K(n.y,o.y)&&(!e||(t.x>=n.x?n.x>=o.x:n.x<=o.x));){if(i>=s)return s-1;o=this.getPoint(i++)}return i-2}oO(t,i,e,s,n,o,r,l,h,a){if(Geo.u(s.y,n.y)&&Geo.u(n.x,o.x)){let c=Math.min(h,Math.abs(n.x-l.x)/2);const f=Math.min(c,Math.abs(o.y-n.y)/2);if(c=f,Geo.u(c,0)){this.Nn(t,i,e,s,n,a),r.a(n);return}let u=n.x;const d=n.y,m=u;let g=d;n.x>s.x?(u=n.x-c,o.y>n.y?g=n.y+f:g=n.y-f):(u=n.x+c,o.y>n.y?g=n.y+f:g=n.y-f);const p=Point.X(u,d);this.Nn(t,i,e,s,p,a),Point.s(p),t.Mw(n.x+i,n.y+e,m+i,g+e),r.e(m,g)}else if(Geo.u(s.x,n.x)&&Geo.u(n.y,o.y)){let c=Math.min(h,Math.abs(n.y-l.y)/2);const f=Math.min(c,Math.abs(o.x-n.x)/2);if(c=f,Geo.u(f,0)){this.Nn(t,i,e,s,n,a),r.a(n);return}const u=n.x;let d=n.y,m=u;const g=d;n.y>s.y?(d=n.y-c,o.x>n.x?m=n.x+f:m=n.x-f):(d=n.y+c,o.x>n.x?m=n.x+f:m=n.x-f);const p=Point.X(u,d);this.Nn(t,i,e,s,p,a),Point.s(p),t.Mw(n.x+i,n.y+e,m+i,g+e),r.e(m,g)}else this.Nn(t,i,e,s,n,a),r.a(n)}computeJumpLength(){return 10}Nn(t,i,e,s,n,o){if(o||!this.Oa())t.fr(n.x+i,n.y+e);else{const r=this.computeJumpLength(),l=r/2,h=[];let a=0;this.isVisible()&&(a=this.rO(s,n,h));let c=s.x,f=s.y;if(a>0){if(Geo.u(s.y,n.y))if(s.x=0;){const d=Math.min(s.x,Math.max(h[u--]+l,n.x+r));t.fr(d+i,n.y+e),c=d+i,f=n.y+e;let m=Math.max(d-r,n.x);for(;u>=0;){const x=h[u];if(x>m-r)u--,m=Math.max(x-l,n.x);else break}const g=n.y-r+e,p=m+i,y=n.y+e;this.curve===10?t.uu(p,y,!1,!1):t.ur(c,g,p,g,p,y),c=p,f=y}}else if(Geo.u(s.x,n.x))if(s.y=0;){const d=Math.min(s.y,Math.max(h[u--]+l,n.y+r));t.fr(n.x+i,d+e),c=n.x+i,f=d+e;let m=Math.max(d-r,n.y);for(;u>=0;){const x=h[u];if(x>m-r)u--,m=Math.max(x-l,n.y);else break}const g=n.x-r+i,p=n.x+i,y=m+e;this.curve===10?t.uu(p,y,!1,!1):t.ur(g,f,g,y,p,y),c=p,f=y}}}t.fr(n.x+i,n.y+e)}}rO(t,i,e){const s=this.diagram;if(s===null||t.equals(i))return 0;const n=s.layers;for(;n.next();){const o=n.value;if(o!==null&&o.visible){const r=o.BM(),l=r.length;for(let h=0;h0&&e.sort((u,d)=>u-d),e.length;if(!a.isVisible()||!a.Oa())continue;const c=a.routeBounds;if(!c.isReal()||!this.routeBounds.intersectsRect(c)||this.usesSamePort(a))continue;const f=a.path;f!==null&&f.isVisibleObject()&&this.lO(t,i,e,a)}}}return e.length>0&&e.sort((o,r)=>o-r),e.length}lO(t,i,e,s){const n=Geo.u(t.y,i.y),o=s.pointsCount;let r=s.getPoint(0);const l=Point.l();for(let h=1;hr.x&&c.x>=a.x||a.xr.y&&c.y>=a.y||a.yc&&Math.min(a,f)o&&!Geo.u(a,f))return n.x=o,n.y=c,!0}else if(Geo.u(r,h)&&Geo.u(a,f)&&Math.min(o,l)a&&Math.min(c,u)r&&!Geo.u(c,u))return n.x=a,n.y=r,!0;return n.x=0,n.y=0,!1}get firstPickIndex(){return this.pointsCount<=2?0:this.isOrthogonal||!this.Ed(this.computeSpot(!0))?1:0}get lastPickIndex(){const t=this.pointsCount;return t===0?0:t<=2?t-1:this.isOrthogonal||!this.Ed(this.computeSpot(!1))?t-2:t-1}Oa(){const t=this.curve;return t===11||t===10}g1(t){if(t||this.Oa()){const i=this.diagram;i!==null&&!i.animationManager.isTicking&&!i.Jl.has(this)&&(this.Nf.width!==0||this.Nf.height!==0)&&i.Jl.set(this,this.Nf.copy())}}invalidateOtherJumpOvers(t){const i=this.layer;if(i===null||!i.visible||i.isTemporary)return;const e=i.diagram;if(e===null||e.animationManager.isTicking)return;let s=!1;const n=e.layers;for(;n.next();){const o=n.value;if(o.visible){if(o===i){s=!0;let r=!1;const l=o.BM(),h=l.length;for(let a=0;a0&&e>0){const s=this.getPoint(0),n=t.getPoint(0);if(s.equalsApprox(n))return!0;const o=this.getPoint(i-1),r=t.getPoint(e-1);if(o.equalsApprox(r)||s.equalsApprox(r)||o.equalsApprox(n))return!0}else if(this.fromNode===t.fromNode||this.toNode===t.toNode||this.fromNode===t.toNode||this.toNode===t.fromNode)return!0;return!1}isVisible(){if(!super.isVisible())return!1;const t=this.containingGroup;let i=!0;const e=this.diagram;e!==null&&(i=e.isTreePathToChildren);const s=this.fromNode;if(s!==null){if(this.isTreeLink&&i&&!s.isTreeExpanded)return!1;if(s===t)return!0;let o=s;for(;o!==null;){if(o.labeledLink===this)return!0;o=o.containingGroup}const r=s.findVisibleNode();if(r===null||r===t)return!1}const n=this.toNode;if(n!==null){if(this.isTreeLink&&!i&&!n.isTreeExpanded)return!1;if(n===t)return!0;let o=n;for(;o!==null;){if(o.labeledLink===this)return!0;o=o.containingGroup}const r=n.findVisibleNode();if(r===null||r===t)return!1}return!0}Bi(t){if(super.Bi(t),t&&this.g1(!1),this.$o!==null&&this.$o.Td(),this.Hs!==null){const e=this.Hs.iterator;for(;e.next();)e.value.Bi(t)}}get adjusting(){return this.Sf}set adjusting(t){const i=this.Sf;i!==t&&(this.Sf=t,this.t(\"adjusting\",i,t))}computeAdjusting(){return this.isAvoiding&&this.diagram!==null&&this.diagram.animationManager.defaultAnimation.isAnimating?17:this.Sf}get corner(){return this.Rd}set corner(t){const i=this.Rd;i!==t&&(this.Rd=t,this.ee(),this.t(\"corner\",i,t))}get curve(){return this.vd}set curve(t){const i=this.vd;i!==t&&(this.vd=t,this.invalidateRoute(),this.ee(),this.g1(i===10||i===11||t===10||t===11),this.t(\"curve\",i,t))}get curviness(){return this.Od}set curviness(t){const i=this.Od;i!==t&&(this.Od=t,this.invalidateRoute(),this.ee(),this.t(\"curviness\",i,t))}get routing(){return this.Da}set routing(t){const i=this.Da;i!==t&&(this.Da=t,this.isAvoiding&&this.diagram!==null&&(this.diagram.jm=!0),this.Jo=null,this.invalidateRoute(),this.g1(Link.nN(i)||Link.nN(t)),this.t(\"routing\",i,t))}get smoothness(){return this.Id}set smoothness(t){const i=this.Id;i!==t&&(this.Id=t,this.ee(),this.t(\"smoothness\",i,t))}wy(){const t=this.lo;if(t===null)return;const i=this.ao;if(i===null||!isNaN(this.curviness))return;const e=this.ho,s=this.co;let n=null,o=null;const r=t.ti.r,l=r.length;for(let h=0;h=0&&(Util.tc(t.qs,i),t.Td())}}Nl(){return!0}get key(){const t=this.diagram;if(!(t===null||!t.model.Ta()))return t.model.getKeyForLinkData(this.data)}}class LinkBundle{Io;Os;ry;$2;h1;Z2;qs;constructor(t,i,e,s){GSet.ji(this),this.Io=!1,this.Os=!1,this.ry=t,this.$2=i,this.h1=e,this.Z2=s,this.qs=[]}Td(){if(!this.Io){const t=this.qs;if(t.length>0){const i=t[0].diagram;i!==null&&(i.hS.add(this),this.Os=i.undoManager.isUndoingRedoing)}}this.Io=!0}kS(){if(this.Io){this.Io=!1;const t=this.qs;if(t.length>0){const i=t[0],e=i.diagram,s=e===null||e.Bh&&!this.Os;this.Os=!1,i.arrangeBundledLinks(t,s),t.length===1&&(i.$o=null,t.length=0)}t.length===0&&(this.ry.ZA(this),this.h1.ZA(this))}}}class PositionArray{oe;re;Ia;Ea;pi;yi;Ot;xh;bh;ha;vS;Io;by;Gc;OS;IS;constructor(t){GSet.ji(this),this.ha=null,this.vS=null,this.Io=!0,this.by=!1,this.oe=1,this.re=1,this.Ia=-1,this.Ea=-1,this.pi=t.width,this.yi=t.height,this.Ot=null,this.xh=0,this.bh=0,this.Gc=11,this.OS=this.Gc*2,this.IS=this.Gc*2}static Ws=0;static Ba=1;static Ud=999999;static aN=PositionArray.Ud+1;static cN=PositionArray.Ud+2;kb(t){if(t.width<=0||t.height<=0)return;const i=t.x,e=t.y,s=t.x+t.width,n=t.y+t.height;this.oe=Math.floor((i-this.pi)/this.pi)*this.pi,this.re=Math.floor((e-this.yi)/this.yi)*this.yi,this.Ia=Math.ceil((s+2*this.pi)/this.pi)*this.pi,this.Ea=Math.ceil((n+2*this.yi)/this.yi)*this.yi;const o=1+(Math.ceil((this.Ia-this.oe)/this.pi)|0),r=1+(Math.ceil((this.Ea-this.re)/this.yi)|0);if(this.Ot===null||this.xh0&&t!==this.pi&&(this.pi=t,this.kb(this.bounds))}get cellHeight(){return this.yi}set cellHeight(t){t>0&&t!==this.yi&&(this.yi=t,this.kb(this.bounds))}Vd(t,i){return this.oe<=t&&t<=this.Ia&&this.re<=i&&i<=this.Ea}fo(t,i){if(!this.Vd(t,i))return PositionArray.aN;t-=this.oe,t/=this.pi,i-=this.re,i/=this.yi;const e=t|0,s=i|0;return this.Ot[e][s]}wR(t,i,e,s){if(!this.Vd(t,i))return;const n=(t-this.oe)/this.pi|0,o=(i-this.re)/this.yi|0,r=(t+e-this.oe)/this.pi|0,l=(i+s-this.re)/this.yi|0,h=Math.min(r,this.xh),a=Math.min(l,this.bh);for(let c=n;c<=h;c++){const f=this.Ot[c];if(f.fill)f.fill(PositionArray.Ws,o,a+1);else for(let u=o;u<=a;u++)f[u]=PositionArray.Ws}}aO(t){if(this.Ot!==null)for(let i=0;i<=this.xh;i++){const e=this.Ot[i];if(e.fill)e.fill(t);else for(let s=0;s<=this.bh;s++)e[s]=t}}YL(){if(this.Ot!==null)for(let t=0;t<=this.xh;t++){const i=this.Ot[t];for(let e=0;e<=this.bh;e++)i[e]>=PositionArray.Ba&&(i[e]=PositionArray.aN)}}cO(t,i){return this.fo(t,i)===PositionArray.Ws}isUnoccupied(t,i,e,s){if(t>this.Ia||t+ethis.Ea||i+sthis.Ia||ithis.Ea||ethis.Ea||ithis.Ia||e=PositionArray.Ba&&h=a)break;this.Ot[t][i]=h,h+=1,s?i+=e:t+=e}return s?i:t}uo(t,i,e,s,n,o,r,l){if(to||il)return;const h=this.fO(t,i,e,s,n,o,r,l);if(s)if(e>0)for(let a=i+e;ah;a+=e)this.uo(t,a,1,!s,n,o,r,l),this.uo(t,a,-1,!s,n,o,r,l);else if(e>0)for(let a=t+e;ah;a+=e)this.uo(a,i,1,!s,n,o,r,l),this.uo(a,i,-1,!s,n,o,r,l)}k1(t,i,e,s,n,o,r,l,h,a){let c=t|0,f=i|0,u=PositionArray.Ws,d=PositionArray.Ba;for(this.Ot[c][f]=d;u===PositionArray.Ws&&c>r&&ch&&fr&&ch&&f=0;v-=2){F=A[v+2],R=A[v+3];const O=A[v],B=A[v+1];for(;O>F?F++:OR?R++:Bs)d--;else break;else if(m>n)m--;else break;const g=c[d][m];if(g===0||g===PositionArray.cN)break;f=d,u=m}for(;;){let d=e,m=f,g=u;e===0?gn&&(d=270,g--):e===90?ms&&(d=180,m--):e===180?gn&&(d=270,g--):ms&&(d=180,m--);const p=c[m][g];if(d!==e&&p!==0&&p!==PositionArray.cN){if(o.push(f),o.push(u),this.aT(f,u,d,s,n,o))return!0;o.pop(),o.pop()}if(c[f][u]=PositionArray.cN,e===0){if(f===t)return!1;f--}else if(e===90){if(u===i)return!1;u--}else if(e===180){if(f===t)return!1;f++}else{if(u===i)return!1;u++}}}}class Knot{de;Zo;rs;zd;constructor(){GSet.ji(this),this.de=null,this.Zo=null,this.rs=[],this.zd=!1}toString(){const t=this.rs;let i=this.de.toString()+\" \"+t.length.toString()+\":\";for(let e=0;e180?270:90;case 6:return o>90&&o<=270?180:0}const r=Math.atan2(t.height,t.width)*180/Math.PI;switch(n){case 3:return o>r&&o<=180+r?180:270;case 5:return o>180-r&&o<=360-r?270:0;case 12:return o>r&&o<=180+r?90:0;case 10:return o>180-r&&o<=360-r?180:90;case 7:return o>90&&o<=180+r?180:o>180+r&&o<=360-r?270:0;case 13:return o>180&&o<=360-r?270:o>r&&o<=180?90:0;case 14:return o>r&&o<=180-r?90:o>180-r&&o<=270?180:0;case 11:return o>180-r&&o<=180+r?180:o>180+r?270:90}return s&&n!==15&&(o-=15,o<0&&(o+=360)),o>r&&o<180-r?90:o>=180-r&&o<=180+r?180:o>180+r&&o<360-r?270:0}Td(){this.rs.length=0}rT(t){let i=this.rs;i.length===0&&(this.dO(),i=this.rs);for(let e=0;e=360&&(M-=360);const L=this.uO(h,y,M,g.isOrthogonal);let C=0;L===0?(C=4,M>180&&(M-=360)):L===90?(C=8,M>270&&(M-=360)):L===180?C=2:(C=1,M<90&&(M+=360));let S=this.rs[o];S===void 0?(S=new LinkInfo(g,M,C),this.rs[o]=S):(S.qe=g,S.Kt=M,S.me=C),S.M1.set(P),o++}Point.s(a),this.gO();const u=this.rs.length;let d=-1,m=0;for(o=0;o=0;o--){const g=this.rs[o];g!==void 0&&(g.me!==d&&(d=g.me,m=g.Xd+1),g.Cf=m)}this.mO(this.rs),this.pO(this.rs),this.zd=t,Rect.s(h)}return this.rs}yO(t,i){return t===i?0:t===null?-1:i===null?1:t.mei.me?1:t.Kti.Kt?1:0}gO(){this.rs.sort(Knot.prototype.yO)}mO(t){const i=this.Zo,e=this.de.portSpreading,s=Point.l(),n=Point.l(),o=Point.l(),r=Point.l();i.getDocumentPoint(Spot.TopLeft,s),i.getDocumentPoint(Spot.TopRight,n),i.getDocumentPoint(Spot.BottomRight,o),i.getDocumentPoint(Spot.BottomLeft,r);let l=0,h=0,a=0,c=0;if(e===2)for(let x=0;xMath.abs(p)?(d=Math.abs(p)/a,a=Math.abs(p)):d=1;break;case 2:c>Math.abs(y)?(d=Math.abs(y)/c,c=Math.abs(y)):d=1;break;case 1:l>Math.abs(p)?(d=Math.abs(p)/l,l=Math.abs(p)):d=1;break;default:case 4:h>Math.abs(y)?(d=Math.abs(y)/h,h=Math.abs(y)):d=1;break}u=0}const b=k.Bd;if(e===2){let P=k.qe.computeThickness();switch(P*=d,b.set(m),f){case 8:b.x=m.x+p/2+a/2-u-P/2;break;case 2:b.y=m.y+y/2+c/2-u-P/2;break;case 1:b.x=m.x+p/2-l/2+u+P/2;break;default:case 4:b.y=m.y+y/2-h/2+u+P/2;break}u+=P}else{let P=.5;e===1&&(P=(k.Xd+1)/(k.Cf+1)),b.x=m.x+p*P,b.y=m.y+y*P}}Point.s(s),Point.s(n),Point.s(o),Point.s(r)}pO(t){for(let i=0;ie instanceof Placeholder);i instanceof Placeholder?t.It=i:t.It=null,this.ie!==null?(t.ie=this.ie.copy(),t.ie.group=t):(t.ie!==null&&(t.ie.group=null),t.ie=null),this.oi!==null&&(t.oi=this.oi.copy())}Uo(t){super.Uo(t);const i=t.findSubGraphParts(),e=t.memberParts;for(;e.next();){const s=e.value;if(s.c(),s.invalidateLayout(8),s.clearAdornments(),s instanceof Node)s.invalidateConnectedLinks(i);else if(s instanceof Link){const n=s.labelNodes;for(;n.next();)n.value.invalidateConnectedLinks(i)}}}Jc(t,i,e,s,n,o,r){if(t===3&&i===\"elements\"){if(n instanceof Placeholder)this.It===null?this.It=n:this.It!==n&&Util.o(\"Cannot insert a second Placeholder into the visual tree of a Group.\");else if(n instanceof Panel){const l=n.findInVisualTree(h=>h instanceof Placeholder);l instanceof Placeholder&&(this.It===null?this.It=l:this.It!==l&&Util.o(\"Cannot insert a second Placeholder into the visual tree of a Group.\"))}}else t===4&&i===\"elements\"&&this.It!==null&&(s===this.It?this.It=null:s instanceof Panel&&this.It.isContainedBy(s)&&(this.It=null));super.Jc(t,i,e,s,n,o,r)}ed(t,i){if(super.ed(t,i),this.isClipping&&this.type!==Panel.Spot&&this.isSubGraphExpanded){let e=this.resizeObject;e instanceof Panel&&(e=e.findMainElement()),this.oi===null&&(this.oi=new Rect),e.getDocumentBounds(this.oi),e instanceof Shape&&this.oi.inflate(-e.strokeWidth,-e.strokeWidth)}}ah(t,i,e,s){this.hasPlaceholder()&&(this.Wo=this.placeholder),super.ah(t,i,e,s)}ensureBounds(){this.isSubGraphExpanded&&this.memberParts.each(i=>{i.ensureBounds()}),super.ensureBounds()}jr(){if(!super.jr())return!1;const t=this.memberParts;for(;t.next();){const i=t.value;if(i instanceof Node){if(!i.isVisible())continue;if(i.es())return!1}else if(i instanceof Link){if(!i.isVisible())continue;if(i.es()&&i.fromNode!==this&&i.toNode!==this)return!1}}return!0}hasPlaceholder(){return this.It!==null&&this.It.isVisibleObject()&&this.isSubGraphExpanded}get placeholder(){return this.It}get computesBoundsAfterDrag(){return(this.E&2048)!==0}set computesBoundsAfterDrag(t){const i=(this.E&2048)!==0;i!==t&&(Util.i(t,\"boolean\",Group,\"computesBoundsAfterDrag\"),this.E=this.E^2048,this.t(\"computesBoundsAfterDrag\",i,t))}get computesBoundsIncludingLinks(){return(this.E&4096)!==0}set computesBoundsIncludingLinks(t){Util.i(t,\"boolean\",Group,\"computesBoundsIncludingLinks\");const i=(this.E&4096)!==0;i!==t&&(this.E=this.E^4096,this.t(\"computesBoundsIncludingLinks\",i,t))}get computesBoundsIncludingLocation(){return(this.E&8192)!==0}set computesBoundsIncludingLocation(t){Util.i(t,\"boolean\",Group,\"computesBoundsIncludingLocation\");const i=(this.E&8192)!==0;i!==t&&(this.E=this.E^8192,this.t(\"computesBoundsIncludingLocation\",i,t))}get handlesDragDropForMembers(){return(this.E&16384)!==0}set handlesDragDropForMembers(t){Util.i(t,\"boolean\",Group,\"handlesDragDropForMembers\");const i=(this.E&16384)!==0;i!==t&&(this.E=this.E^16384,this.t(\"handlesDragDropForMembers\",i,t))}get avoidableMembers(){return(this.E&131072)!==0}set avoidableMembers(t){Util.i(t,\"boolean\",Group,\"avoidableMembers\");const i=(this.E&131072)!==0;i!==t&&(this.E=this.E^131072,this.t(\"avoidableMembers\",i,t))}get memberParts(){return this.Kd.iterator}H2(t){if(this.Kd.add(t)){t instanceof Group&&this.la.add(t);const e=this.memberAdded;if(e!==null){let s=!0;const n=this.diagram;n!==null&&(s=n.Y,n.Y=!0),e(this,t),n!==null&&(n.Y=s)}(!this.isVisible()||!this.isSubGraphExpanded)&&t.Bi(!1)}if(t instanceof Link&&!this.computesBoundsIncludingLinks)return;let i=this.It;i===null&&(i=this),i.c()}j2(t){if(this.Kd.delete(t)){t instanceof Group&&this.la.delete(t);const e=this.memberRemoved;if(e!==null){let s=!0;const n=this.diagram;n!==null&&(s=n.Y,n.Y=!0),e(this,t),n!==null&&(n.Y=s)}(!this.isVisible()||!this.isSubGraphExpanded)&&t.Bi(!0)}if(t instanceof Link&&!this.computesBoundsIncludingLinks)return;let i=this.It;i===null&&(i=this),i.c()}Kc(){if(this.Kd.count>0){const t=this.diagram;if(t!==null){const e=this.Kd.copy().iterator;for(;e.next();){const s=e.value;t.remove(s)}}}super.Kc()}get layout(){return this.ie}set layout(t){const i=this.ie;if(i!==t){t!==null&&t.diagram!==null&&t.diagram.layout===t&&Util.o(\"A layout cannot be both the Diagram.layout and a Group.layout: \"+t),i!==null&&(i.diagram=null,i.group=null),this.ie=t;const e=this.diagram;t!==null&&(t.diagram=e,t.group=this),e!==null&&(e.Kr=!0),this.t(\"layout\",i,t),e!==null&&e.requestUpdate()}}get memberAdded(){return this.gt!==null?this.gt.uy:null}set memberAdded(t){const i=this.memberAdded;i!==t&&(t!==null&&Util.i(t,\"function\",Group,\"memberAdded\"),this.al(),this.gt.uy=t,this.t(\"memberAdded\",i,t))}get memberRemoved(){return this.gt!==null?this.gt.gy:null}set memberRemoved(t){const i=this.memberRemoved;i!==t&&(t!==null&&Util.i(t,\"function\",Group,\"memberRemoved\"),this.al(),this.gt.gy=t,this.t(\"memberRemoved\",i,t))}get memberValidation(){return this.gt!==null?this.gt.eh:null}set memberValidation(t){const i=this.memberValidation;i!==t&&(t!==null&&Util.i(t,\"function\",Group,\"memberValidation\"),this.al(),this.gt.eh=t,this.t(\"memberValidation\",i,t))}canAddMembers(t){const i=this.diagram;if(i===null)return!1;const e=i.commandHandler,n=e.e2(t).iterator;for(;n.next();){const o=n.value;if(!e.isValidMember(this,o))return!1}return!0}addMembers(t,i){const e=this.diagram;if(e===null)return!1;const s=e.commandHandler,n=s.e2(t);let o=!0;const r=n.iterator;for(;r.next();){const l=r.value;!i||s.isValidMember(this,l)?l.containingGroup=this:o=!1}return o}get ungroupable(){return(this.E&256)!==0}set ungroupable(t){const i=(this.E&256)!==0;i!==t&&(Util.i(t,\"boolean\",Group,\"ungroupable\"),this.E=this.E^256,this.t(\"ungroupable\",i,t))}canUngroup(){if(!this.ungroupable)return!1;const t=this.layer;if(t===null||!t.allowUngroup)return!1;const i=t.diagram;return!(i!==null&&!i.allowUngroup)}invalidateConnectedLinks(t){const i=this.xO();if(super.invalidateConnectedLinks(t),i)return;this.SL(!0);const e=this.findExternalLinksConnected();for(;e.next();){const s=e.value;if(t!==void 0&&t.has(s))continue;const n=s.fromNode;if(n!==null&&n!==this&&n.isMemberOf(this)&&!n.isVisible())n.Wi(s.fromPort),n.Wi(s.toPort),s.invalidateRoute();else{const o=s.toNode;o!==null&&o!==this&&o.isMemberOf(this)&&!o.isVisible()&&(o.Wi(s.fromPort),o.Wi(s.toPort),s.invalidateRoute())}}}findExternalLinksConnected(){const t=this.diagram!==null&&this.diagram.gS;if(t&&this.d0!==null)return this.d0.iterator;const i=this.findSubGraphParts();i.add(this);const e=new GSet,s=i.iterator;for(;s.next();){const n=s.value;if(!(n instanceof Node))continue;const o=n.linksConnected;for(;o.next();){const r=o.value;i.has(r)||e.add(r)}}return t&&(this.d0=e),e.iterator}findExternalNodesConnected(){const t=this.findSubGraphParts();t.add(this);const i=new GSet,e=t.iterator;for(;e.next();){const s=e.value;if(!(s instanceof Node))continue;const n=s.linksConnected;for(;n.next();){const o=n.value,r=o.fromNode;r!==null&&(!t.has(r)||r===this)&&i.add(r);const l=o.toNode;l!==null&&(!t.has(l)||l===this)&&i.add(l)}}return i.iterator}pE(){function t(e,s){e!==null&&(s.add(e),t(e.containingGroup,s))}const i=new GSet;return t(this,i),i}findSubGraphParts(){const t=new GSet;return Part.sh(t,this,!0,0,!0),t.delete(this),t}Bi(t){super.Bi(t);const i=this.memberParts;for(;i.next();)i.value.Bi(t)}collapseSubGraph(){const t=this.diagram;if(t===null||t.isCollapsingExpanding)return;t.isCollapsingExpanding=!0;const i=this.findSubGraphParts();this.cT(i,t,this),t.isCollapsingExpanding=!1}cT(t,i,e){const s=this.memberParts;for(;s.next();){const n=s.value;if(n.Bi(!1),n instanceof Group&&n.isSubGraphExpanded&&(n.wasSubGraphExpanded=n.isSubGraphExpanded,n.cT(t,i,e)),n instanceof Node)n.invalidateConnectedLinks(t),i.Lc(n,e);else if(n instanceof Link){const o=n.labelNodes;for(;o.next();)o.value.invalidateConnectedLinks(t)}}this.isSubGraphExpanded=!1}expandSubGraph(){const t=this.diagram;if(t===null||t.isCollapsingExpanding)return;t.isCollapsingExpanding=!0;const i=this.findSubGraphParts();this.fT(i,t,this),t.isCollapsingExpanding=!1}fT(t,i,e){const s=this.memberParts;for(;s.next();){const n=s.value;if(n.Bi(!0),n instanceof Group&&n.wasSubGraphExpanded&&(n.wasSubGraphExpanded=!1,n.fT(t,i,e)),n instanceof Node)n.invalidateConnectedLinks(t);else if(n instanceof Link){const o=n.labelNodes;for(;o.next();)o.value.invalidateConnectedLinks(t)}}this.isSubGraphExpanded=!0}get isSubGraphExpanded(){return(this.E&512)!==0}set isSubGraphExpanded(t){const i=(this.E&512)!==0;if(i!==t){Util.i(t,\"boolean\",Group,\"isSubGraphExpanded\"),this.E=this.E^512;const e=this.diagram;this.t(\"isSubGraphExpanded\",i,t);const s=this.subGraphExpandedChanged;if(s!==null){let n=!0;e!==null&&(n=e.Y,e.Y=!0),s(this),e!==null&&(e.Y=n)}if(e!==null&&e.undoManager.isUndoingRedoing){this.It!==null&&this.It.c(),this.memberParts.each(n=>n.updateAdornments());return}t?this.expandSubGraph():this.collapseSubGraph()}}get wasSubGraphExpanded(){return(this.E&1024)!==0}set wasSubGraphExpanded(t){const i=(this.E&1024)!==0;i!==t&&(Util.i(t,\"boolean\",Group,\"wasSubGraphExpanded\"),this.E=this.E^1024,this.t(\"wasSubGraphExpanded\",i,t))}get subGraphExpandedChanged(){return this.gt!==null?this.gt.my:null}set subGraphExpandedChanged(t){const i=this.subGraphExpandedChanged;i!==t&&(t!==null&&Util.i(t,\"function\",Group,\"subGraphExpandedChanged\"),this.al(),this.gt.my=t,this.t(\"subGraphExpandedChanged\",i,t))}move(t,i){i===void 0&&(i=!1);const e=i?this.location:this.position,s=e.x,n=e.y,o=t.x,r=t.y;if((s===o||isNaN(s)&&isNaN(o))&&(n===r||isNaN(n)&&isNaN(r)))return;const l=o-(isNaN(s)?0:s),h=r-(isNaN(n)?0:n),a=Point.l();super.move(t,i);const c=new GSet,u=this.findSubGraphParts().iterator;for(;u.next();){const d=u.value;d instanceof Link&&(d.suspendsRouting&&c.add(d),!(!d.Se&&(d.fromNode===this||d.toNode===this))&&(d.suspendsRouting=!0))}for(u.reset();u.next();){const d=u.value;if(d.Nl()||d instanceof Node&&d.isLinkLabel)continue;const m=d.position,g=d.location;m.isReal()?(a.x=m.x+l,a.y=m.y+h,d.position=a):g.isReal()&&(a.x=g.x+l,a.y=g.y+h,d.location=a)}for(u.reset();u.next();){const d=u.value;if(!(d instanceof Link)||(d.suspendsRouting=c.has(d),!d.Se&&(d.fromNode===this||d.toNode===this)))continue;const m=d.position;a.x=m.x+l,a.y=m.y+h,a.isReal()?d.move(a):d.invalidateRoute()}Point.s(a)}xO(){return(this.E&65536)!==0}SL(t){(this.E&65536)!==0!==t&&(this.E=this.E^65536)}get Wr(){return(this.E&32768)!==0}set Wr(t){(this.E&32768)!==0!==t&&(this.E=this.E^32768)}}class Placeholder extends GraphObject{Zt;Yd;constructor(t){super(),this.Zt=Margin.Ug,this.Yd=new Rect(NaN,NaN,NaN,NaN),t&&Object.assign(this,t)}cloneProtected(t){super.cloneProtected(t),t.Zt=this.Zt.N(),t.Yd=this.Yd.copy()}hh(t){if(this.background===null)return!1;const i=this.naturalBounds;return Rect.contains(0,0,i.width,i.height,t.x,t.y)}td(t,i,e,s){const n=this.part;if((n===null||!(n instanceof Group)&&!(n instanceof Adornment))&&Util.o(\"Placeholder is not inside a Group or Adornment.\"),n instanceof Group){const o=this.computeBorder(this.Yd),r=this.minSize,l=isFinite(r.width)?Math.max(r.width,o.width):o.width,h=isFinite(r.height)?Math.max(r.height,o.height):o.height,a=this.Xi;a.En(l||0,h||0),this.Qn(0,0,a.width,a.height);const c=n.memberParts;let f=!1;for(;c.next();)if(c.value.isVisible()){f=!0;break}const u=n.diagram;if(f&&u!==null&&!u.animationManager.LM(n)&&!isNaN(o.x)&&!isNaN(o.y)){const d=Point.l();d.setRectSpot(o,n.locationSpot),n.location=d,Point.s(d)}}else{const o=n,r=this.Xi,l=this.Zt,h=l.left+l.right,a=l.top+l.bottom,c=o.adornedObject,f=c.getDocumentAngle();o.angle=f;let u=0;c instanceof Shape&&(u=c.strokeWidth);const d=c.getDocumentScale(),m=c.naturalBounds,g=(m.width+u)*d,p=(m.height+u)*d;if(o.type!==Panel.Link){const y=o.category===\"Selection\"?Spot.TopLeft:o.locationSpot,x=c.getDocumentPoint(y,Point.l());o.location=x,Point.s(x)}if(!isNaN(g)&&!isNaN(p))r.En(g+h||0,p+a||0),this.Qn(-l.left,-l.top,r.width,r.height);else{const y=c.getDocumentPoint(Spot.TopLeft,Point.l()),x=Rect.X(y.x,y.y,0,0);x.unionPoint(c.getDocumentPoint(Spot.BottomRight,y)),x.unionPoint(c.getDocumentPoint(Spot.TopRight,y)),x.unionPoint(c.getDocumentPoint(Spot.BottomLeft,y)),r.En(x.width+h||0,x.height+a||0),this.Qn(-l.left,-l.top,r.width,r.height),Point.s(y),Rect.s(x)}}}ah(t,i,e,s){this.actualBounds.e(t,i,e,s)}computeBorder(t){const i=this.part,e=i.diagram,s=e===null||!e.animationManager.isAnimating;if(e!==null&&i instanceof Group&&!i.layer.isTemporary&&i.computesBoundsAfterDrag&&this.Yd.isReal()){const l=e.toolManager.findTool(\"Dragging\");if(l===e.currentTool){const h=l.computeBorder(i,this.Yd,t);if(h!==null)return h}}const n=Rect.l(),o=this.computeMemberBounds(n),r=this.Zt;return i instanceof Group&&!i.isSubGraphExpanded?t.e(o.x-r.left,o.y-r.top,0,0):t.e(o.x-r.left,o.y-r.top,Math.max(o.width+r.left+r.right,0),Math.max(o.height+r.top+r.bottom,0)),Rect.s(n),s&&i instanceof Group&&i.computesBoundsIncludingLocation&&i.location.isReal()&&t.unionPoint(i.location),t}computeMemberBounds(t){if(!(this.part instanceof Group))return t.e(0,0,0,0),t;const i=this.part;let e=1/0,s=1/0,n=-1/0,o=-1/0;const r=i.memberParts;for(;r.next();){const l=r.value;if(!l.isVisible()||l instanceof Link&&(!i.computesBoundsIncludingLinks||l.vo()||l.fromNode===i||l.toNode===i))continue;const h=l.actualBounds;h.leftn&&(n=h.right),h.bottom>o&&(o=h.bottom)}if(!isFinite(e)||!isFinite(s)){const l=i.location;t.e(l.x,l.y,0,0)}else t.e(e,s,n-e,o-s);return t}get padding(){return this.Zt}set padding(t){typeof t==\"number\"&&(t=new Margin(t));const i=this.Zt;i.equals(t)||(t=t.N(),this.Zt=t,this.t(\"padding\",i,t),this.c())}}class Layout{p;ha;Gd;kr;jd;Hd;Do;fl;qd;Wd;go;constructor(t){GSet.ji(this),this.p=null,this.ha=null,this.Gd=!0,this.kr=!0,this.jd=!1,this.Hd=new Point(0,0).g(),this.Do=!0,this.fl=null,this.qd=null,this.Wd=!1,this.go=null,t&&Object.assign(this,t)}cloneProtected(t){t.Gd=this.Gd,t.kr=this.kr,t.jd=this.jd,t.Hd.a(this.Hd),t.Do=this.Do,t.fl=this.fl,t.qd=this.qd,t.Wd=!0}copy(){const t=new this.constructor;return this.cloneProtected(t),t}li(t){Util.rr(this,t)}toString(){let t=Util.sn(this.constructor);return t+=\"(\",this.group!==null&&(t+=\" in \"+this.group),this.diagram!==null&&(t+=\" for \"+this.diagram),t+=\")\",t}get diagram(){return this.p}set diagram(t){this.p=t}get group(){return this.ha}set group(t){this.ha!==t&&(this.ha=t,t!==null&&(this.p=t.diagram))}get isOngoing(){return this.Gd}set isOngoing(t){this.Gd!==t&&(Util.i(t,\"boolean\",Layout,\"isOngoing\"),this.Gd=t)}get isInitial(){return this.kr}set isInitial(t){Util.i(t,\"boolean\",Layout,\"isInitial\"),this.kr=t,t||(this.Wd=!0)}get isViewportSized(){return this.jd}set isViewportSized(t){this.jd!==t&&(Util.i(t,\"boolean\",Layout,\"isViewportSized\"),this.jd=t,t&&this.invalidateLayout())}get isRouting(){return this.Do}set isRouting(t){this.Do!==t&&(Util.i(t,\"boolean\",Layout,\"isRouting\"),this.Do=t)}get isRealtime(){return this.fl}set isRealtime(t){this.fl!==t&&(t!==null&&Util.i(t,\"boolean\",Layout,\"isRealtime\"),this.fl=t)}get isValidLayout(){return this.Wd}set isValidLayout(t){if(this.Wd!==t&&(Util.i(t,\"boolean\",Layout,\"isValidLayout\"),this.Wd=t,!t)){const i=this.diagram;i!==null&&(i.Kr=!0)}}invalidateLayout(){if(this.isValidLayout){const t=this.diagram;if(t===null||t.undoManager.isUndoingRedoing)return;const i=t.animationManager;if(i.isTicking)return;i.defaultAnimation.isAnimating&&i.stopAnimation(),(this.isOngoing&&t.Bh||this.isInitial&&!t.Bh)&&(this.isValidLayout=!1,t.requestUpdate())}}get network(){return this.go}set network(t){this.go!==t&&(this.go=t,t!==null&&(t.layout=this))}createNetwork(){return new LayoutNetwork(this)}makeNetwork(t){const i=this.createNetwork();return t instanceof Diagram?(i.addParts(t.nodes,!0),i.addParts(t.links,!0)):t instanceof Group?i.addParts(t.memberParts):i.addParts(t.iterator),i}updateParts(){this.isValidLayout=!0;let t=this.diagram;if(t===null&&this.network!==null){const i=this.network.vertexes.iterator;for(;i.next();){const s=i.value.node;if(s!==null&&(t=s.diagram,t!==null))break}}try{t!==null&&t.startTransaction(\"Layout\"),this.commitLayout()}finally{t!==null&&t.commitTransaction(\"Layout\")}}commitLayout(){if(this.network===null)return;const t=this.network.vertexes.iterator;for(;t.next();)t.value.commit();if(this.isRouting){const i=this.network.edges.iterator;for(;i.next();)i.value.commit()}}doLayout(t){const i=new GSet;if(t instanceof Diagram?(this.kh(i,t.nodes,!0,this.Wr,!0,!1,!0),this.kh(i,t.parts,!0,this.Wr,!0,!1,!0)):t instanceof Group?this.kh(i,t.memberParts,!1,this.Wr,!0,!1,!0):i.addAll(t.iterator),i.count>0){const s=this.diagram;s!==null&&s.startTransaction(\"Layout\"),this.doMinimalNoNetworkLayout(i),s!==null&&s.commitTransaction(\"Layout\")}this.isValidLayout=!0}doMinimalNoNetworkLayout(t){const i=t.count,e=Math.ceil(Math.sqrt(i));this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin);const s=this.arrangementOrigin.x,n=this.arrangementOrigin.y;let o=s,r=n,l=0,h=0;const a=t.iterator;for(;a.next();){const c=a.value;c.ensureBounds();const f=c.measuredBounds,u=f.width,d=f.height;c.moveTo(o,r),c instanceof Group&&(c.Wr=!1),o+=Math.max(u,50)+20,h=Math.max(h,Math.max(d,50)),l>=e-1?(l=0,o=s,r+=h+20,h=0):l++}}doMinimalNetworkLayout(){const t=this.network.vertexes.count,i=Math.ceil(Math.sqrt(t));this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin);const e=this.arrangementOrigin.x,s=this.arrangementOrigin.y;let n=e,o=s,r=0,l=0;const h=this.network.vertexes.iterator;for(;h.next();){const a=h.value.node;if(a===null||a instanceof Link||(a.ensureBounds(),!this.Wr(a)))continue;const c=a.measuredBounds,f=c.width,u=c.height;a.moveTo(n,o),a instanceof Group&&(a.Wr=!1),n+=Math.max(f,50)+20,l=Math.max(l,Math.max(u,50)),r>=i-1?(r=0,n=e,o+=l+20,l=0):r++}}Wr(t){return!!(!t.location.isReal()&&!t.position.isReal()||t instanceof Group&&t.Wr)}kh(t,i,e,s,n,o,r){const l=i.iterator;for(;l.next();){const h=l.value;if(!(e&&!h.isTopLevel)&&!(s!==null&&!s(h))&&h.canLayout())if(n&&h instanceof Node){if(h.isLinkLabel)continue;h instanceof Group&&h.layout===null?this.kh(t,h.memberParts,!1,s,n,o,r):(h.ensureBounds(),t.add(h))}else o&&h instanceof Link?t.add(h):r&&h.Pe()&&!(h instanceof Node)&&(h.ensureBounds(),t.add(h))}}getLayoutBounds(t,i){const e=this.boundsComputation;return e!==null?(i||(i=new Rect),e(t,this,i)):!i&&t.margin.equalTo(0,0,0,0)?t.actualBounds:(i||(i=new Rect),i.set(t.actualBounds),i.addMargin(t.margin),i)}get boundsComputation(){return this.qd}set boundsComputation(t){this.qd!==t&&(t!==null&&Util.i(t,\"function\",Layout,\"boundsComputation\"),this.qd=t,this.invalidateLayout())}collectParts(t){const i=new GSet;return t instanceof Diagram?(this.kh(i,t.nodes,!0,null,!0,!0,!0),this.kh(i,t.links,!0,null,!0,!0,!0),this.kh(i,t.parts,!0,null,!0,!0,!0)):t instanceof Group?this.kh(i,t.memberParts,!1,null,!0,!0,!0):this.kh(i,t.iterator,!1,null,!0,!0,!0),i}get arrangementOrigin(){return this.Hd}set arrangementOrigin(t){this.Hd.equals(t)||(this.Hd.a(t),this.invalidateLayout())}initialOrigin(t){const i=this.group;if(i!==null)if(i.hasPlaceholder()){const e=i.placeholder,s=e.getDocumentPoint(Spot.TopLeft);(isNaN(s.x)||isNaN(s.y))&&s.set(t);const n=e.padding;return s.x+=n.left,s.y+=n.top,s}else{const e=i.position.copy();return(isNaN(e.x)||isNaN(e.y))&&e.set(t),e}return t}}class LayoutNetwork{ie;mo;Cn;ky;Py;constructor(t){GSet.ji(this),this.ie=t,this.mo=new GSet,this.Cn=new GSet,this.ky=new GMap,this.Py=new GMap}clear(){if(this.mo){const t=this.mo.iterator;for(;t.next();)t.value.clear()}if(this.Cn){const t=this.Cn.iterator;for(;t.next();)t.value.clear()}this.mo=new GSet,this.Cn=new GSet,this.ky=new GMap,this.Py=new GMap}toString(t){t===void 0&&(t=0);let i=\"LayoutNetwork\"+(this.layout!==null?\"(\"+this.layout.toString()+\")\":\"\");if(t<=0)return i;if(i+=\" vertexes: \"+this.mo.count+\" edges: \"+this.Cn.count,t>1){const e=this.mo.iterator;for(;e.next();){const n=e.value;i+=`\n `+n.toString(t-1)}const s=this.Cn.iterator;for(;s.next();){const n=s.value;i+=`\n `+n.toString(t-1)}}return i}get layout(){return this.ie}set layout(t){t!==null&&(this.ie=t)}get vertexes(){return this.mo}get edges(){return this.Cn}createVertex(){return new LayoutVertex(this)}createEdge(){return new LayoutEdge(this)}addParts(t,i,e){if(t===null)return;i===void 0&&(i=!1),Util.i(i,\"boolean\",LayoutNetwork,\"addParts:toplevelonly\"),e===void 0&&(e=null),e===null&&(e=n=>{if(n instanceof Node)return!n.isLinkLabel;if(n instanceof Link){const o=n.fromNode;if(o===null||o.isLinkLabel)return!1;const r=n.toNode;return!(r===null||r.isLinkLabel)}return!1});const s=t.iterator;for(;s.next();){const n=s.value;if(n instanceof Node&&!(i&&!n.isTopLevel)&&n.canLayout()&&e(n))if(n instanceof Group&&n.layout===null)this.addParts(n.memberParts,!1);else{if(this.findVertex(n)!==null)continue;const o=this.createVertex();o.node=n,this.addVertex(o)}}for(s.reset();s.next();){const n=s.value;if(!(n instanceof Link)||i&&!n.isTopLevel||!n.canLayout()||!e(n)||this.findEdge(n)!==null)continue;const o=n.fromNode,r=n.toNode;if(o===null||r===null||o===r)continue;const l=this.findGroupVertex(o),h=this.findGroupVertex(r);this.linkVertexes(l,h,n)}}findGroupVertex(t){if(t===null)return null;const i=t.findVisibleNode();if(i===null)return null;let e=this.findVertex(i);if(e!==null)return e;let s=i.containingGroup;for(;s!==null;){if(e=this.findVertex(s),e!==null)return e;s=s.containingGroup}return null}addVertex(t){if(t===null)return;this.mo.add(t);const i=t.node;i!==null&&this.ky.set(i,t),t.network=this}addNode(t){if(t===null)return null;let i=this.findVertex(t);return i===null&&(i=this.createVertex(),i.node=t,this.addVertex(i)),i}deleteVertex(t){if(t!==null&&this.uT(t)){let i=t.Qo;for(let e=i.count-1;e>=0;e--){const s=i.elt(e);this.deleteEdge(s)}i=t._o;for(let e=i.count-1;e>=0;e--){const s=i.elt(e);this.deleteEdge(s)}}}uT(t){if(t===null)return!1;const i=this.mo.delete(t);if(i){const e=t.node;e!==null&&this.ky.delete(e)}return i}deleteNode(t){if(t===null)return;const i=this.findVertex(t);i!==null&&this.deleteVertex(i)}findVertex(t){return t===null?null:this.ky.get(t)}addEdge(t){if(t===null)return;this.fN(t);const i=t.toVertex;i!==null&&i.addSourceEdge(t);const e=t.fromVertex;e!==null&&e.addDestinationEdge(t)}fN(t){if(t===null)return;this.Cn.add(t);const i=t.link;i!==null&&this.findEdge(i)===null&&this.Py.set(i,t),t.network=this}addLink(t){if(t===null)return null;const i=t.fromNode,e=t.toNode;let s=this.findEdge(t);return s===null?(s=this.createEdge(),s.link=t,i!==null&&(s.fromVertex=this.addNode(i)),e!==null&&(s.toVertex=this.addNode(e)),this.addEdge(s)):(i!==null?s.fromVertex=this.addNode(i):s.fromVertex=null,e!==null?s.toVertex=this.addNode(e):s.toVertex=null),s}deleteEdge(t){if(t===null)return;const i=t.toVertex;i!==null&&i.deleteSourceEdge(t);const e=t.fromVertex;e!==null&&e.deleteDestinationEdge(t),this.uN(t)}uN(t){if(t===null)return!1;const i=this.Cn.delete(t);if(i){const e=t.link;e!==null&&this.Py.delete(e)}return i}deleteLink(t){if(t===null)return;const i=this.findEdge(t);i!==null&&this.deleteEdge(i)}findEdge(t){return t===null?null:this.Py.get(t)}linkVertexes(t,i,e){if(t===null||i===null)return null;if(t.network===this&&i.network===this){const s=this.createEdge();return s.link=e,s.fromVertex=t,s.toVertex=i,this.addEdge(s),s}return null}reverseEdge(t){if(t===null)return;const i=t.fromVertex,e=t.toVertex;i===null||e===null||(i.deleteDestinationEdge(t),e.deleteSourceEdge(t),t.reverseEdge(),i.addSourceEdge(t),e.addDestinationEdge(t))}deleteSelfEdges(){const t=Util.nt(),i=this.Cn.iterator;for(;i.next();){const s=i.value;s.fromVertex===s.toVertex&&t.push(s)}const e=t.length;for(let s=0;s0||t._o.count>0)}splitIntoSubNetworks(t){t===void 0&&(t=!0),t&&(this.deleteArtificialVertexes(),this.deleteUselessEdges(),this.deleteSelfEdges());const i=new List;let e=!0;for(;e;){e=!1;const s=this.mo.iterator;for(;s.next();){const n=s.value;if(this.isSingleton(n))continue;const o=this.layout.createNetwork();i.add(o),this.bO(o,n),e=!0;break}}return i.sort((s,n)=>s===null||n===null||s===n?0:n.vertexes.count-s.vertexes.count),i}bO(t,i){if(i===null)return;const e=new List;for(e.add(i);e.count>0;){const s=e.first();if(e.removeAt(0),s.network===t)continue;this.uT(s),t.addVertex(s);let n=s.sourceEdges;for(;n.next();){const o=n.value;o.network!==t&&(this.uN(o),t.fN(o),e.add(o.fromVertex))}for(n=s.destinationEdges;n.next();){const o=n.value;o.network!==t&&(this.uN(o),t.fN(o),e.add(o.toVertex))}}}findAllParts(){const t=new GSet,i=this.mo.iterator;for(;i.next();){const s=i.value;t.add(s.node)}const e=this.Cn.iterator;for(;e.next();){const s=e.value;t.add(s.link)}return t}}class LayoutVertex{go;_t;de;Ae;We;Qo;_o;constructor(t){GSet.ji(this),this.go=t,this.Ae=new Rect(0,0,10,10).g(),this.We=new Point(5,5).g(),this._t=null,this.de=null,this.Qo=new List,this._o=new List}clear(){this._t=null,this.de=null,this.Qo=new List,this._o=new List}toString(t){t===void 0&&(t=0);let i=\"LayoutVertex#\"+GSet.as(this);if(t>0&&(i+=this.node!==null?\"(\"+this.node.toString()+\")\":\"\",t>1)){let e=\"\",s=!0,n=this.Qo.iterator;for(;n.next();){const r=n.value;s?s=!1:e+=\",\",e+=r.toString(0)}let o=\"\";for(s=!0,n=this._o.iterator;n.next();){const r=n.value;s?s=!1:o+=\",\",o+=r.toString(0)}i+=\" sources: \"+e+\" destinations: \"+o}return i}get po(){return this.Qo.JN}get tr(){return this._o.JN}get data(){return this._t}set data(t){if(this._t=t,t!==null&&t.bounds){const i=t.bounds,e=i.x,s=i.y,n=i.width,o=i.height;this.We.e(n/2,o/2),this.Ae.e(e,s,n,o)}}get node(){return this.de}set node(t){if(this.de!==t){this.de=t,t.ensureBounds();const i=this.network.layout,e=Rect.l(),s=i.getLayoutBounds(t,e);let n=s.x,o=s.y;const r=s.width,l=s.height;if(isNaN(n)&&(n=0),isNaN(o)&&(o=0),this.Ae.e(n,o,r,l),Rect.s(e),!(t instanceof Group)){const h=t.locationObject.getDocumentPoint(Spot.Center);if(h.isReal()){this.We.e(h.x-n,h.y-o);return}}this.We.e(r/2,l/2)}}get bounds(){return this.Ae}set bounds(t){this.Ae.equals(t)||this.Ae.a(t)}get focus(){return this.We}set focus(t){this.We.equals(t)||this.We.a(t)}get centerX(){return this.Ae.x+this.We.x}set centerX(t){const i=this.Ae;i.x+this.We.x!==t&&(i.ot(),i.x=t-this.We.x,i.g())}get centerY(){return this.Ae.y+this.We.y}set centerY(t){const i=this.Ae;i.y+this.We.y!==t&&(i.ot(),i.y=t-this.We.y,i.g())}get focusX(){return this.We.x}set focusX(t){const i=this.We;i.x!==t&&(i.ot(),i.x=t,i.g())}get focusY(){return this.We.y}set focusY(t){const i=this.We;i.y!==t&&(i.ot(),i.y=t,i.g())}get x(){return this.Ae.x}set x(t){const i=this.Ae;i.x!==t&&(i.ot(),i.x=t,i.g())}get y(){return this.Ae.y}set y(t){const i=this.Ae;i.y!==t&&(i.ot(),i.y=t,i.g())}get width(){return this.Ae.width}set width(t){const i=this.Ae;i.width!==t&&(i.ot(),i.width=t,i.g())}get height(){return this.Ae.height}set height(t){const i=this.Ae;i.height!==t&&(i.ot(),i.height=t,i.g())}commit(){const t=this._t;if(t!==null){const e=this.bounds,s=t.bounds;Util.wt(s)?(s.x=e.x,s.y=e.y,s.width=e.width,s.height=e.height):t.bounds=e.copy();return}const i=this.node;if(i!==null){const e=this.bounds;if(!(i instanceof Group)){const s=Rect.l();i.ensureBounds();const n=this.network.layout.getLayoutBounds(i,s),o=i.locationObject.getDocumentPoint(Spot.Center);if(n.isReal()&&o.isReal()){i.moveTo(e.x+this.focusX-(o.x-n.x)+i.margin.left,e.y+this.focusY-(o.y-n.y+i.margin.top)),Rect.s(s);return}Rect.s(s)}i.moveTo(e.x+i.margin.left,e.y+i.margin.top)}}addSourceEdge(t){t!==null&&(this.Qo.has(t)||this.Qo.add(t))}deleteSourceEdge(t){t!==null&&this.Qo.delete(t)}addDestinationEdge(t){t!==null&&(this._o.has(t)||this._o.add(t))}deleteDestinationEdge(t){t!==null&&this._o.delete(t)}get network(){return this.go}set network(t){this.go=t}get sourceVertexes(){const t=new GSet,i=this.sourceEdges;for(;i.next();){const e=i.value;t.add(e.fromVertex)}return t.iterator}get destinationVertexes(){const t=new GSet,i=this.destinationEdges;for(;i.next();){const e=i.value;t.add(e.toVertex)}return t.iterator}get vertexes(){const t=new GSet;let i=this.sourceEdges;for(;i.next();){const e=i.value;t.add(e.fromVertex)}for(i=this.destinationEdges;i.next();){const e=i.value;t.add(e.toVertex)}return t.iterator}get sourceEdges(){return this.Qo.iterator}get destinationEdges(){return this._o.iterator}get edges(){const t=new List;let i=this.sourceEdges;for(;i.next();){const e=i.value;t.add(e)}for(i=this.destinationEdges;i.next();){const e=i.value;t.add(e)}return t.iterator}get edgesCount(){return this.Qo.count+this._o.count}static standardComparer(t,i){const e=t.de,s=i.de;if(e)if(s){const n=e.text,o=s.text;return no?1:0}else return 1;else return s!==null?-1:0}static smartComparer(t,i){if(t!==null)if(i!==null){const e=t.de,s=i.de;if(e!==null)if(s!==null){const n=e.text.toLocaleLowerCase(),o=s.text.toLocaleLowerCase(),r=n.split(/([+-]?[.]?\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?)/),l=o.split(/([+-]?[.]?\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?)/);let h=0;for(;h0&&(i+=this.qe!==null?\"(\"+this.qe.toString()+\")\":\"\",t>1&&(i+=\" \"+(this.Je?this.Je.toString():\"null\")+\" --> \"+(this.$e?this.$e.toString():\"null\"))),i}reverseEdge(){const t=this.Je;this.Je=this.$e,this.$e=t}commit(){}getOtherVertex(t){return this.$e===t?this.Je:this.Je===t?this.$e:null}get network(){return this.go}set network(t){this.go=t}get data(){return this._t}set data(t){this._t!==t&&(this._t=t)}get link(){return this.qe}set link(t){this.qe!==t&&(this.qe=t)}get fromVertex(){return this.Je}set fromVertex(t){this.Je!==t&&(this.Je=t)}get toVertex(){return this.$e}set toVertex(t){this.$e!==t&&(this.$e=t)}}var GridAlignment=(w=>(w[w.Position=0]=\"Position\",w[w.Location=1]=\"Location\",w))(GridAlignment||{}),GridArrangement=(w=>(w[w.LeftToRight=10]=\"LeftToRight\",w[w.RightToLeft=11]=\"RightToLeft\",w))(GridArrangement||{}),GridSorting=(w=>(w[w.Forwards=20]=\"Forwards\",w[w.Reverse=21]=\"Reverse\",w[w.Ascending=22]=\"Ascending\",w[w.Descending=23]=\"Descending\",w))(GridSorting||{});class GridLayout extends Layout{Jd;$d;Co;Ln;ri;Ki;pe;ye;constructor(t){super(),this.isViewportSized=!0,this.Jd=NaN,this.$d=NaN,this.Co=new Size(NaN,NaN).g(),this.Ln=new Size(10,10).g(),this.ri=1,this.Ki=10,this.pe=22,this.ye=GridLayout.standardComparer,t&&Object.assign(this,t)}cloneProtected(t){super.cloneProtected(t),t.Jd=this.Jd,t.$d=this.$d,t.Co.a(this.Co),t.Ln.a(this.Ln),t.ri=this.ri,t.Ki=this.Ki,t.pe=this.pe,t.ye=this.ye}li(t){t in GridSorting?this.sorting=t:t in GridArrangement?this.arrangement=t:t in GridAlignment?this.alignment=t:super.li(t)}doLayout(t){this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin);const i=this.collectParts(t),e=this.diagram,n=i.copy().iterator;for(;n.next();){const m=n.value;if(m.Nl()&&(m.fromNode!==null||m.toNode!==null)){i.delete(m);continue}if(m.ensureBounds(),m instanceof Group){const g=m.memberParts;for(;g.next();){const p=g.value;i.delete(p)}}}const o=i.toArray();if(o.length===0)return;switch(this.sorting){case 20:break;case 21:o.reverse();break;case 22:o.sort(this.comparer);break;case 23:o.sort(this.comparer),o.reverse();break}let r=this.wrappingColumn;isNaN(r)&&(r=0);let l=this.wrappingWidth;if(isNaN(l)&&e!==null){const m=e.viewportBounds,g=e.padding;l=Math.max(m.width-g.left-g.right,0)}else l=Math.max(this.wrappingWidth,0);r<=0&&l<=0&&(r=1);let h=this.spacing.width;isFinite(h)||(h=0);let a=this.spacing.height;isFinite(a)||(a=0),e!==null&&e.startTransaction(\"Layout\");const c=[];switch(this.alignment){case 0:this.kO(o,l,r,h,a,c);break;case 1:this.PO(o,l,r,h,a,c);break}let f=0,u=0,d=0;for(let m=0;m0&&m>e-1||i>0&&m>0&&L-c>i)&&(o.push(new Rect(0,d,i+s,g)),m=0,u=c,d+=g,g=0),g=Math.max(g,M);let C=0;switch(a){case 11:C=-x.width;break;default:C=0;break}switch(y.moveTo(u+C+y.margin.left,d+y.margin.top),a){case 11:u-=P;break;default:u+=P;break}m++}o.push(new Rect(0,d,i+s,g)),Rect.s(r)}PO(t,i,e,s,n,o){const r=Rect.l();let l=Math.max(this.cellSize.width,1),h=0,a=0,c=0;const f=Point.l();for(let C=0;C=h&&(i-=h);let x=0,k=0;const b=Math.max(this.cellSize.height,1);c=0;let P=0,M=!0;const L=Point.l();for(let C=0;C0)switch(u){case 11:{let D=(g-d-(N.width-T.x))/l;Geo.K(Math.round(D),D)?D=Math.round(D):D=Math.floor(D),g=D*l+d;break}default:{let D=(g-d+T.x)/l;Geo.K(Math.round(D),D)?D=Math.round(D):D=Math.ceil(D),g=D*l+d;break}}else switch(u){case 11:x=g+T.x+N.width;break;default:x=g-T.x;break}let A=0;switch(u){case 11:A=-(g+T.x)+x;break;default:A=g+N.width-T.x-x;break}if(e>0&&y>e-1||i>0&&y>0&&A>i){o.push(new Rect(0,M?p-c:p,i+s,P+c+n));for(let D=0;Dk&&(S.width+=S.x-k,S.x=k)}Rect.s(r)}commitLayers(t,i){}get wrappingWidth(){return this.Jd}set wrappingWidth(t){this.Jd!==t&&(Util.i(t,\"number\",GridLayout,\"wrappingWidth\"),(t>0||isNaN(t))&&(this.Jd=t,this.isViewportSized=isNaN(t),this.invalidateLayout()))}get wrappingColumn(){return this.$d}set wrappingColumn(t){this.$d!==t&&(Util.i(t,\"number\",GridLayout,\"wrappingColumn\"),(t>0||isNaN(t))&&(this.$d=t,this.invalidateLayout()))}get cellSize(){return this.Co}set cellSize(t){this.Co.equals(t)||(this.Co.a(t),this.invalidateLayout())}get spacing(){return this.Ln}set spacing(t){this.Ln.equals(t)||(this.Ln.a(t),this.invalidateLayout())}get alignment(){return this.ri}set alignment(t){this.ri!==t&&(t===1||t===0)&&(this.ri=t,this.invalidateLayout())}get arrangement(){return this.Ki}set arrangement(t){this.Ki!==t&&(t===10||t===11)&&(this.Ki=t,this.invalidateLayout())}get sorting(){return this.pe}set sorting(t){this.pe!==t&&(t===20||t===21||t===22||t===23)&&(this.pe=t,this.invalidateLayout())}get comparer(){return this.ye}set comparer(t){this.ye!==t&&(Util.i(t,\"function\",GridLayout,\"comparer\"),this.ye=t,this.invalidateLayout())}static standardComparer(t,i){const e=t.text,s=i.text;return es?1:0}static smartComparer(t,i){if(t!==null)if(i!==null){const e=t.text.toLocaleLowerCase(),s=i.text.toLocaleLowerCase(),n=e.split(/([+-]?[.]?\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?)/),o=s.split(/([+-]?[.]?\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?)/);let r=0;for(;r{e.containsNodeData(s)&&this.pT(s,!1)}),t.forEach(s=>{e.containsNodeData(s)&&this.S1(s)}),i!==!1&&this.diagram.bb(!1)}pT(t,i){if(t==null||this.diagram.undoManager.isUndoingRedoing||this.yo.has(t))return null;i===void 0&&(i=!0);const e=this.MO(t);return e!==null&&i&&this.S1(t),e}MO(t){if(t==null||this.p.undoManager.isUndoingRedoing||this.yo.has(t))return null;const i=this.SO(t),e=this.findTemplateForNodeData(t,i);if(e!==null){e.Vt();const s=e.copy();if(s!==null){const n=this.diagram.fe;return this.diagram.fe=!0,s.jo=i,s._t=t,this.My&&(s.rl=\"Tool\"),this.diagram.add(s),s._t=null,s.data=t,this.diagram.fe=n,s}}return null}insertLink(t,i,e,s){return null}S1(t){}SO(t){return this.p.model.getCategoryForNodeData(t)}static yT=!1;static wT=!1;findTemplateForNodeData(t,i){const e=this.p,s=e.model,n=s.qc()&&s.isGroupForData(t);let o=null;return n?(o=e.groupTemplateMap.get(i),o===null&&(o=e.groupTemplateMap.get(\"\"),o===null&&(PartManager.wT||(PartManager.wT=!0,Util.ei('No Group template found for category \"'+i+'\"'),Util.ei(\" Using default group template\")),o=e.lS))):(o=e.nodeTemplateMap.get(i),o===null&&(o=e.nodeTemplateMap.get(\"\"),o===null&&(PartManager.yT||(PartManager.yT=!0,Util.ei('No Node template found for category \"'+i+'\"'),Util.ei(\" Using default node template\")),o=e.nS))),o}getLinkCategoryForData(t){return\"\"}setLinkCategoryForData(t,i){}setFromNodeForLink(t,i,e){}setToNodeForLink(t,i,e){}static xT=!1;findLinkTemplateForCategory(t){const i=this.p;let e=i.linkTemplateMap.get(t);return e===null&&(e=i.linkTemplateMap.get(\"\"),e===null&&(PartManager.xT||(PartManager.xT=!0,Util.ei('No Link template found for category \"'+t+'\"'),Util.ei(\" Using default link template\")),e=i.oS)),e}uv(t,i,e){t instanceof Link?(i!==null&&this.gT(i,t),e!==null&&this.dT(e,t)):t instanceof Part&&(i!==null&&this.yo.delete(i),e!==null&&this.yo.set(e,t))}mT(){const t=this.diagram.model;this.gN(t.nodeDataArray)}gN(t){t.forEach(i=>{this.N1(i)})}N1(t){const i=this.findPartForData(t);i!==null&&(this.diagram.CS(i,!1),this.mN(i))}mN(t){}oN(t){}findPartForKey(t){if(t==null)return null;const i=this.p.model.findNodeDataForKey(t);return i!==null?this.yo.get(i):null}findNodeForKey(t){if(t==null)return null;const i=this.p.model.findNodeDataForKey(t);if(i===null)return null;const e=this.yo.get(i);return e instanceof Node?e:null}findLinkForKey(t){return null}findPartForData(t){if(t===null)return null;let i=this.yo.get(t);return i!==null||(i=this.ul.get(t)),i}findNodeForData(t){if(t===null)return null;const i=this.yo.get(t);return i instanceof Node?i:null}findLinkForData(t,i){return t===null?null:this.ul.get(t)}findNodesByExample(...t){const i=new GSet,e=this.Zd.iterator;for(;e.next();){const s=e.value,n=s.data;if(n!==null)for(let o=0;o{o.data!==null&&!i.has(o.data)&&s.push(o.data)}),this.parts.each(o=>{o.data!==null&&!i.has(o.data)&&s.push(o.data)}),s.forEach(o=>t.kT(o,!1));for(let o=0;o0){for(let o=0;oi.CL(s));const e=t.mh;if(Array.isArray(e)){const s=this.Ua.get(e);if(s===null){const n=[];n.push(t),this.Ua.set(e,n)}else{for(let n=0;ni.pR(s));const e=t.mh;if(Array.isArray(e)){const s=this.Ua.get(e);if(s!==null){for(let n=0;n0&&i.removeParts(l,!1),h.count>0){const c=h.iterator;for(;c.next();){const f=c.key,u=c.value;s.set(f,u)}}}if(i!==null&&this.p!==null){const o=i.model,r=o.afterCopyFunction;if(r!==null){const l=new GMap;s.each(a=>{a.key.data!==null&&l.set(a.key.data,a.value.data)});const h=this.p.model;r(l,o,h)}}const n=s.iterator;for(;n.next();)n.value.updateTargetBindings();return s}C1(t,i,e,s){if(t===null||s&&!t.canCopy())return null;if(e.has(t))return e.get(t);const n=this.yN(t,i);if(!(n instanceof Part))return null;if(n.isSelected=!1,n.isHighlighted=!1,e.set(t,n),t instanceof Node){const o=t.linksConnected;for(;o.next();){const r=o.value;if(r.fromNode===t){const l=e.get(r);l!==null&&(l.fromNode=n)}if(r.toNode===t){const l=e.get(r);l!==null&&(l.toNode=n)}}if(t instanceof Group&&n instanceof Group){const r=t.memberParts;for(;r.next();){const l=r.value,h=this.C1(l,i,e,s);h instanceof Link||h!==null&&(h.containingGroup=n)}}}else if(t instanceof Link&&n instanceof Link){const o=t.fromNode;if(o!==null){const h=e.get(o);h!==null&&(n.fromNode=h)}const r=t.toNode;if(r!==null){const h=e.get(r);h!==null&&(n.toNode=h)}const l=t.labelNodes;for(;l.next();){const h=l.value,a=this.C1(h,i,e,s);a!==null&&a instanceof Node&&(a.labeledLink=n)}}return n}yN(t,i){let e=null;const s=t.data;if(s!==null&&i!==null){const n=i.model;if(!(t instanceof Link)){const o=n.copyNodeData(s);Util.wt(o)&&(n.addNodeData(o),e=i.findPartForData(o))}}else if(t.Vt(),e=t.copy(),e!==null){const n=this.p;if(i!==null)i.add(e);else if(s!==null&&n!==null&&n.commandHandler!==null&&n.commandHandler.copiesClipboardData){const o=n.model;let r=null;e instanceof Link||(r=o.copyNodeData(s)),Util.wt(r)&&(e.data=r)}}return e}get nodes(){return this.Zd}get links(){return this.qs}get parts(){return this.At}get diagram(){return this.p}get addsToTemporaryLayer(){return this.My}set addsToTemporaryLayer(t){this.My=t}get preservesRebuildLocations(){return this.dN}set preservesRebuildLocations(t){this.dN=t}}class GraphLinksPartManager extends PartManager{AS(){const t=this.diagram.model;this.Sy(t.nodeDataArray),this.ST(t.linkDataArray)}Sy(t){super.Sy(t,!1);const i=this.links.iterator;for(;i.next();)i.value.Ad();this.diagram.bb(!1)}ST(t){t.forEach(i=>{this.NT(i)}),this.diagram.bb(!1)}NT(t){if(t==null||this.diagram.undoManager.isUndoingRedoing||this.ul.has(t))return null;const i=this.getLinkCategoryForData(t),e=this.findLinkTemplateForCategory(i);if(e!==null){e.Vt();const s=e.copy();if(s!==null){const n=this.diagram.fe;this.diagram.fe=!0,s.jo=i,s._t=t;const o=this.diagram.model,r=o.L1(t,!0);r!==\"\"&&(s.fromPortId=r);const l=o.Te(t,!0);if(l!==void 0){const f=this.findNodeForKey(l);f instanceof Node&&(s.fromNode=f)}const h=o.L1(t,!1);h!==\"\"&&(s.toPortId=h);const a=o.Te(t,!1);if(a!==void 0){const f=this.findNodeForKey(a);f instanceof Node&&(s.toNode=f)}const c=o.getLabelKeysForLinkData(t);return Array.isArray(c)&&c.forEach(f=>{const u=this.findNodeForKey(f);u!==null&&(u.labeledLink=s)}),this.My&&(s.rl=\"Tool\"),this.diagram.add(s),s._t=null,s.data=t,this.diagram.fe=n,s}}return null}mT(){const t=this.diagram.model;this.CT(t.linkDataArray),this.gN(t.nodeDataArray)}CT(t){t.forEach(i=>{this.N1(i)})}getLinkCategoryForData(t){return this.diagram.model.getCategoryForLinkData(t)}setLinkCategoryForData(t,i){return this.diagram.model.setCategoryForLinkData(t,i)}setFromNodeForLink(t,i){const e=this.diagram.model,s=i!==null?i.data:null;e.setFromKeyForLinkData(t.data,e.getKeyForNodeData(s))}setToNodeForLink(t,i){const e=this.diagram.model,s=i!==null?i.data:null;e.setToKeyForLinkData(t.data,e.getKeyForNodeData(s))}oN(t){this.diagram.model.removeLinkData(t.data)}findPartForKey(t){const i=super.findPartForKey(t);if(i===null){const s=this.diagram.model.findLinkDataForKey(t);if(s!==null)return this.ul.get(s)}return i}findLinkForKey(t){if(t==null)return null;const e=this.diagram.model.findLinkDataForKey(t);return e!==null?this.ul.get(e):null}doModelChanged(t){if(super.doModelChanged(t),!this.diagram)return;const i=this.diagram;if(t.model!==i.model)return;const e=t.change;if(i.Y){i.Y=!1;try{const s=t.modelChange;if(s!==\"\"){if(e===2){if(s===\"linkFromKey\"){const n=t.object,o=this.findLinkForData(n);if(o!==null){const r=t.newValue,l=this.findNodeForKey(r);o.fromNode=l}}else if(s===\"linkToKey\"){const n=t.object,o=this.findLinkForData(n);if(o!==null){const r=t.newValue,l=this.findNodeForKey(r);o.toNode=l}}else if(s===\"linkFromPortId\"){const n=t.object,o=this.findLinkForData(n);if(o!==null){const r=t.newValue;typeof r==\"string\"&&(o.fromPortId=r)}}else if(s===\"linkToPortId\"){const n=t.object,o=this.findLinkForData(n);if(o!==null){const r=t.newValue;typeof r==\"string\"&&(o.toPortId=r)}}else if(s===\"nodeGroupKey\"){const n=t.object,o=this.findPartForData(n);if(o!==null){const r=t.newValue;if(r!==void 0){const l=this.findNodeForKey(r);l instanceof Group?o.containingGroup=l:o.containingGroup=null}else o.containingGroup=null}}else if(s===\"linkLabelKeys\"){const n=t.object,o=this.findLinkForData(n);if(o!==null){const r=t.oldValue,l=t.newValue;Array.isArray(r)&&r.forEach(h=>{if(l.indexOf(h)>=0)return;const a=this.findNodeForKey(h);a!==null&&(a.labeledLink=null)}),Array.isArray(l)&&l.forEach(h=>{const a=this.findNodeForKey(h);a!==null&&(a.labeledLink=o)})}}else if(s===\"linkCategory\"){const n=t.object,o=this.findLinkForData(n),r=t.newValue;o!==null&&typeof r==\"string\"&&(o.category=r)}else if(s===\"linkDataArray\"){const n=t.oldValue;this.CT(n);const o=t.newValue;this.ST(o)}i.isModified=!0}else if(e===3){const n=t.newValue;if(s===\"linkDataArray\"&&typeof n==\"object\"&&n!==null)this.NT(n);else if(s===\"linkLabelKeys\"&&t.model.isKeyType(n)){const o=t.object,r=this.findLinkForData(o),l=this.findNodeForKey(n);r!==null&&l!==null&&(l.labeledLink=r)}i.isModified=!0}else if(e===4){const n=t.oldValue;if(s===\"linkDataArray\"&&typeof n==\"object\"&&n!==null)this.N1(n);else if(s===\"linkLabelKeys\"&&t.model.isKeyType(n)){const o=this.findNodeForKey(n);o!==null&&(o.labeledLink=null)}i.isModified=!0}}else if(e===2){const n=t.propertyName,o=t.object,r=i.model;o===r&&(n===\"linkFromKeyProperty\"||n===\"linkToKeyProperty\"||n===\"linkFromPortIdProperty\"||n===\"linkToPortIdProperty\"||n===\"linkLabelKeysProperty\"||n===\"nodeIsGroupProperty\"||n===\"nodeGroupKeyProperty\"||n===\"linkCategoryProperty\")&&(i.undoManager.isUndoingRedoing||this.rebuildParts()),i.isModified=!0}}finally{i.Y=!0}}}MT(){const t=this.diagram.model,i=new GSet,e=t.linkDataArray;e.forEach(n=>{i.add(n)});const s=[];this.links.each(n=>{n.data!==null&&!i.has(n.data)&&s.push(n.data)}),s.forEach(n=>{t.LT(n,!1)}),e.forEach(n=>{this.findLinkForData(n)===null&&t.AT(n,!1)})}updateRelationshipsFromData(t){const i=t.data;if(i===null)return;const e=t.diagram;if(e===null)return;const s=e.model;if(t instanceof Link){let n=s.Te(i,!0),o=e.findNodeForKey(n);t.fromNode=o,n=s.Te(i,!1),o=e.findNodeForKey(n),t.toNode=o;const r=s.getLabelKeysForLinkData(i);if(r.length>0||t.labelNodes.count>0){if(r.length===1&&t.labelNodes.count===1){const f=r[0],u=t.labelNodes.first();if(s.getKeyForNodeData(u.data)===f)return}const l=new GSet().addAll(r),h=new GSet;t.labelNodes.each(f=>{if(f.data!==null){const u=s.getKeyForNodeData(f.data);u!==void 0&&h.add(u)}});const a=h.copy();a.removeAll(l);const c=l.copy();if(c.removeAll(h),a.count>0||c.count>0){const f=t;a.each(u=>{const d=e.findNodeForKey(u);d!==null&&d.labeledLink===f&&(d.labeledLink=null)}),c.each(u=>{const d=e.findNodeForKey(u);d!==null&&d.labeledLink!==f&&(d.labeledLink=f)})}}}else if(!(t instanceof Adornment)){const n=s.getGroupKeyForNodeData(i),o=e.findPartForKey(n);(o===null||o instanceof Group)&&(t.containingGroup=o)}}S1(t){const i=this.diagram.model,e=i.getKeyForNodeData(t);if(e!==void 0){const s=i.Cy(e),n=this.findPartForData(t);if(s!==null&&n!==null){const r=s.iterator;for(;r.next();){const l=r.value;if(i.containsNodeData(l)){if(n instanceof Group&&i.getGroupKeyForNodeData(l)===e){const h=this.findPartForData(l);h!==null&&(h.containingGroup=n)}}else{const h=this.findLinkForData(l);if(h!==null&&n instanceof Node){i.Te(l,!0)===e&&(h.fromNode=n),i.Te(l,!1)===e&&(h.toNode=n);const a=i.getLabelKeysForLinkData(l);Array.isArray(a)&&a.some(c=>c===e?(n.labeledLink=h,!0):!1)}}}i.Js(e)}const o=i.getGroupKeyForNodeData(t);if(o!==void 0){const r=this.findNodeForKey(o);r instanceof Group&&(n.containingGroup=r)}}}mN(t){const i=this.diagram.model;if(t instanceof Node){const e=i.getKeyForNodeData(t.data);if(e!==void 0){const s=t.linksConnected;for(;s.next();){const n=s.value;i.$s(e,n.data)}if(t.isLinkLabel){const n=t.labeledLink;n!==null&&i.$s(e,n.data)}if(t instanceof Group){const n=t.memberParts;for(;n.next();){const r=n.value.data;i.containsNodeData(r)&&i.$s(e,r)}}}}}yN(t,i){let e=super.yN(t,i);if(t instanceof Link){const s=t.data;if(s!==null&&i!==null){const n=i.model,o=n.copyLinkData(s);typeof o==\"object\"&&o!==null&&(n.addLinkData(o),e=i.findLinkForData(o))}else if(e!==null){const n=this.diagram;if(s!==null&&n!==null&&n.commandHandler!==null&&n.commandHandler.copiesClipboardData){const r=n.model.copyLinkData(s);typeof r==\"object\"&&r!==null&&(e.data=r)}}}return e}insertLink(t,i,e,s){const n=this.diagram,o=n.model,r=n.toolManager.findTool(\"Linking\");let l=\"\";t!==null&&(i===null&&(i=t),l=i.portId,l===null&&(l=\"\"));let h=\"\";e!==null&&(s===null&&(s=e),h=s.portId,h===null&&(h=\"\"));const a=r.archetypeLinkData;if(a instanceof Link){a.Vt();const c=a.copy();if(c!==null){c.fromNode=t,c.fromPortId=l,c.toNode=e,c.toPortId=h,n.add(c);const f=r.archetypeLabelNodeData;if(f instanceof Node){f.Vt();const u=f.copy();u!==null&&(u.labeledLink=c,n.add(u))}return c}}else if(a!==null){const c=o.copyLinkData(a);if(typeof c==\"object\"&&c!==null){t!==null&&o.Qd(c,o.getKeyForNodeData(t.data),!0),o._d(c,l,!0),e!==null&&o.Qd(c,o.getKeyForNodeData(e.data),!1),o._d(c,h,!1),o.addLinkData(c);const f=r.archetypeLabelNodeData;if(f!==null&&!(f instanceof Node)){const d=o.copyNodeData(f);if(typeof d==\"object\"&&d!==null){o.addNodeData(d);const m=o.getKeyForNodeData(d);m!==void 0&&o.addLabelKeyForLinkData(c,m)}}return n.findLinkForData(c)}}return null}}class TreePartManager extends PartManager{Ph=null;A1(t,i){if(t===null||i===null||i.findTreeParentLink()!==null)return null;const e=this.diagram.toolManager.findTool(\"Linking\");let s=t,n=i;if(this.diagram.isTreePathToChildren){if(e!==null&&e.bu(s,n,null,!0))return null}else if(s=i,n=t,e!==null&&e.bu(s,n,null,!0))return null;const o=this.getLinkCategoryForData(i.data),r=this.findLinkTemplateForCategory(o);if(r!==null){r.Vt();const l=r.copy();if(l!==null){const h=this.diagram.fe;return this.diagram.fe=!0,l.jo=o,l._t=i.data,l.fromNode=s,l.toNode=n,this.diagram.add(l),l._t=null,l.data=i.data,this.diagram.fe=h,l}}return null}getLinkCategoryForData(t){return this.diagram.model.getParentLinkCategoryForNodeData(t)}setLinkCategoryForData(t,i){this.diagram.model.setParentLinkCategoryForNodeData(t,i)}setFromNodeForLink(t,i,e){const s=this.diagram.model;e===void 0&&(e=null);const n=i!==null?i.data:null;if(this.diagram.isTreePathToChildren)s.setParentKeyForNodeData(t.data,s.getKeyForNodeData(n));else{const o=this.Ph;this.Ph=t,e!==null&&s.setParentKeyForNodeData(e.data,void 0);const r=t.toNode!==null?t.toNode.data:null;s.setParentKeyForNodeData(n,s.getKeyForNodeData(r)),this.Ph=o}}setToNodeForLink(t,i,e){const s=this.diagram.model;e===void 0&&(e=null);const n=i!==null?i.data:null;if(this.diagram.isTreePathToChildren){const o=this.Ph;this.Ph=t,e!==null&&s.setParentKeyForNodeData(e.data,void 0);const r=t.fromNode!==null?t.fromNode.data:null;s.setParentKeyForNodeData(n,s.getKeyForNodeData(r)),this.Ph=o}else s.setParentKeyForNodeData(t.data,s.getKeyForNodeData(n))}oN(t){this.diagram.model.setParentKeyForNodeData(t.data,void 0)}findLinkForKey(t){if(t==null)return null;const e=this.diagram.model.findNodeDataForKey(t);return e!==null?this.ul.get(e):null}doModelChanged(t){if(super.doModelChanged(t),!this.diagram)return;const i=this.diagram;if(t.model!==i.model)return;const e=t.change;if(i.Y){i.Y=!1;try{const s=t.modelChange;if(s!==\"\"){if(e===2){if(s===\"nodeParentKey\"){const n=t.object,o=t.newValue,r=this.findNodeForKey(o),l=this.findNodeForData(n);if(this.Ph!==null)r!==null&&(this.Ph.data=n,this.Ph.category=this.getLinkCategoryForData(n));else if(l!==null){const h=l.findTreeParentLink();h!==null?r===null?i.remove(h):i.isTreePathToChildren?h.fromNode=r:h.toNode=r:this.A1(r,l)}}else if(s===\"parentLinkCategory\"){const n=t.object,o=this.findNodeForData(n),r=t.newValue;if(o!==null&&typeof r==\"string\"){const l=o.findTreeParentLink();l!==null&&(l.category=r)}}i.isModified=!0}}else if(e===2){const n=t.propertyName,o=t.object,r=i.model;o===r&&n===\"nodeParentKeyProperty\"&&(i.undoManager.isUndoingRedoing||this.rebuildParts()),i.isModified=!0}}finally{i.Y=!0}}}updateRelationshipsFromData(t){const i=t.data;if(i===null)return;const e=t.diagram;if(e===null)return;const s=e.model;if(t instanceof Node){const n=s.getParentKeyForNodeData(i),o=e.findNodeForKey(n),r=t.findTreeParentNode();if(o!==r){const l=t.findTreeParentLink();o!==null?l!==null?e.isTreePathToChildren?l.fromNode=o:l.toNode=o:this.A1(o,t):l!==null&&e.CS(l,!1)}}}Ny(t,i){if(super.Ny(t,i),typeof i==\"string\"&&this.findPartForData(t)!==null){const s=this.findLinkForData(t);s!==null&&s.updateTargetBindings(i)}}S1(t){const i=this.diagram.model,e=i.getKeyForNodeData(t);if(e!==void 0){const s=i.Cy(e),n=this.findPartForData(t);if(s!==null&&n!==null){const r=s.iterator;for(;r.next();){const l=r.value;if(i.containsNodeData(l)&&n instanceof Node&&i.getParentKeyForNodeData(l)===e){const h=this.findNodeForData(l);this.A1(n,h)}}i.Js(e)}const o=i.getParentKeyForNodeData(t);if(o!==void 0&&n instanceof Node){const r=this.findNodeForKey(o);this.A1(r,n)}}}mN(t){const i=this.diagram.model;if(t instanceof Node){const e=i.getKeyForNodeData(t.data),s=this.findLinkForData(t.data);if(s!==null){s.isSelected=!1,s.isHighlighted=!1;const r=s.layer;if(r!==null){const l=r.te(-1,s,!1);l>=0&&this.diagram.raiseChangedEvent(4,\"parts\",r,s,null,l,null);const h=s.layerChanged;h!==null&&h(s,r,null)}}const n=this.diagram.isTreePathToChildren,o=t.linksConnected;for(;o.next();){const r=o.value,h=(n?r.toNode:r.fromNode).data;i.containsNodeData(h)&&i.$s(e,h)}}}insertLink(t,i,e,s){const n=this.diagram.model;let o=t,r=e;if(this.diagram.isTreePathToChildren||(o=e,r=t),o!==null&&r!==null){const l=o.data,h=r.data;return n.setParentKeyForNodeData(h,n.getKeyForNodeData(l)),r.findTreeParentLink()}return null}}var BindingMode=(w=>(w[w.OneWay=1]=\"OneWay\",w[w.TwoWay=2]=\"TwoWay\",w))(BindingMode||{});class Binding{n;wN;Va;Af;Mh;Tf;Df;Ff;T1;ke;md;df;constructor(t,i,e,s){GSet.ji(this),t===void 0?t=\"\":Util.i(t,\"string\",Binding,\"constructor:targetprop\"),i===void 0?i=t:Util.i(i,\"string\",Binding,\"constructor:sourceprop\"),e===void 0?e=null:e!==null&&Util.i(e,\"function\",Binding,\"constructor:conv\"),this.wN=-1,this.ke=null,this.Va=t,this.md=0,this.df=0,this.Af=null,this.Mh=i,this.Tf=e,s===void 0?(this.Df=1,this.Ff=null):(this.Df=2,this.Ff=s),this.T1=new GSet,this.n=2}copy(){const t=new this.constructor;return this.cloneProtected(t),t}cloneProtected(t){t.Va=this.Va,t.md=this.md,t.df=this.df,t.Af=this.Af,t.Mh=this.Mh,t.Tf=this.Tf,t.Df=this.Df,t.Ff=this.Ff,t.n=this.n&-2}static OneWay=1;static TwoWay=2;static parseEnum(t,i){return Util.i(t,\"function\",Binding,\"parseEnum:ctor\"),e=>{let s=parseInt(e);return isNaN(s)&&(s=Util.Ih(t,e),s===null)?i:s}}li(t){t in BindingMode?this.mode=t:Util.rr(this,t)}static toString(t){return Util.toString(t)}toString(){return\"Binding(\"+this.targetProperty+\":\"+this.sourceProperty+(this.targetId!==-1?\" \"+this.targetId:\"\")+\" \"+BindingMode[this.mode]+\")\"}g(){return this.n=this.n|1,this}ot(){return this.n=this.n&-2,this}get targetId(){return this.wN}set targetId(t){this.h&&Util.T(this),Util.i(t,\"number\",Binding,\"targetId\"),this.wN=t}get targetProperty(){return this.Va}set targetProperty(t){this.h&&Util.T(this),Util.i(t,\"string\",Binding,\"targetProperty\"),this.Va=t}get sourceProperty(){return this.Mh}set sourceProperty(t){this.h&&Util.T(this),Util.i(t,\"string\",Binding,\"sourceProperty\"),this.Mh=t}get h(){return(this.n&1)!==0}get isToData(){return(this.n&2)!==0}get isToObject(){return(this.n&4)!==0}get isToModel(){return(this.n&8)!==0}get isToTheme(){return(this.n&16)!==0}get xN(){return this.isToTheme&&!(this.isToData||this.isToObject||this.isToModel)}_u(){return!1}get sourceName(){return this.Af}set sourceName(t){this.h&&Util.T(this),t!==null&&Util.i(t,\"string\",Binding,\"sourceName\"),this.Af=t,t!==null?this.n=this.n&-3|4:this.n=this.n|2}get converter(){return this.Tf}set converter(t){this.h&&Util.T(this),t!==null&&Util.i(t,\"function\",Binding,\"converter\"),this.Tf=t}get backConverter(){return this.Ff}set backConverter(t){this.h&&Util.T(this),t!==null&&Util.i(t,\"function\",Binding,\"backConverter\"),this.Ff=t}get mode(){return this.Df}set mode(t){this.h&&Util.T(this),this.isToTheme&&t===2&&Util.o(\"Theme Bindings cannot be TwoWay.\"),this.Df=t}makeTwoWay(t){return this.isToTheme&&Util.o(\"Theme Bindings cannot be TwoWay.\"),this.mode=2,t&&(Util.i(t,\"function\",Binding,\"makeTwoWay\"),this.backConverter=t),this}ofObject(t){return this.h&&Util.T(this),t===void 0&&(t=\"\"),this.sourceName=t,this}ofModel(){return this.h&&Util.T(this),this.n=this.n&-3&-5|8,this.Af=null,this}tA(t,i){const e=this.sourceName;let s=null;return e===null||e===\"\"?s=t:e===\"/\"?s=i.part:e===\".\"?s=i:e===\"..\"?s=i.panel:s=t.findObject(e),s}check(t){const i=this.Va,e=this.Mh,s=this.Tf;(this._u()&&s===null&&this.Sh===null&&i===\"\"||s===null&&i===\"\")&&Util.ei(\"Binding error: target property is the empty string: \"+this.toString()),this._u()&&this.xN&&e===\"\"&&s===null&&this.Sh===null&&Util.ei(\"Binding error: theme bindings require a source property when not using a converter: \"+this.toString()),t&&typeof i==\"string\"&&(typeof t.setAttribute!=\"function\"&&i.length>0&&i[0]!==\"_\"&&!Util.fw(t,i)?Util.ei(\"Binding error: undefined target property: \"+i+\" on \"+t.toString()):i===\"name\"&&t instanceof GraphObject&&Util.ei(\"Binding error: cannot modify GraphObject.name on \"+t.toString()))}updateTarget(t,i,e){const s=this.Mh;if(e!==void 0&&s!==\"\"&&s!==e)return;const n=this.Va,o=this.Tf;let r=i;if(s!==\"\"&&!this.xN&&(r=Model.vt(i,s)),r===void 0)return;const l=t.diagram?.themeManager??t.panel?.diagram?.themeManager;if(o===null){if(n!==\"\"){if(this._u()&&(r=this.TT(l,r,t,n),r===void 0))return;Model.rt(t,n,r)}}else try{if(n!==\"\"){let h=o(r,t);if(this._u()&&(h=this.TT(l,h,t,n),h===void 0))return;Model.rt(t,n,h)}else o(r,t)}catch{}}updateSource(t,i,e,s){if(this.Df!==2)return;const n=this.Va;if(e!==void 0&&n!==e)return;const o=this.Mh,r=this.Ff;let l=t;if(n!==\"\"&&(l=Model.vt(t,n)),l!==void 0&&!this.T1.has(t))try{this.T1.add(t);const h=s!==null?s.diagram:null,a=h!==null?h.model:null;if(r===null){if(o!==\"\")a!==null?a.setDataProperty(i,o,l):Model.rt(i,o,l);else if(a!==null&&s!==null&&s.itemIndex>=0&&s.panel!==null&&Array.isArray(s.panel.itemArray)){const c=s.itemIndex,f=s.panel.itemArray;a.removeArrayItem(f,c),a.insertArrayItem(f,c,l)}}else try{if(o!==\"\"){const c=r(l,i,a);a!==null?a.setDataProperty(i,o,c):Model.rt(i,o,c)}else{const c=r(l,i,a);if(c!==void 0&&a!==null&&s!==null&&s.itemIndex>=0&&s.panel!==null&&Array.isArray(s.panel.itemArray)){const f=s.itemIndex,u=s.panel.itemArray;a.removeArrayItem(u,f),a.insertArrayItem(u,f,c)}}}catch{}}finally{this.T1.delete(t)}}}class ThemeBinding extends Binding{Ly;Sh;za;constructor(t,i,e,s,n){super(t,i,s),e==null&&(e=\"\"),n===void 0&&(n=null),this.Ly=e,this.Sh=n,this.za=null,this.n=16}cloneProtected(t){super.cloneProtected(t),t.Ly=this.Ly,t.Sh=this.Sh,t.za=this.za}_u(){return!0}get themeSource(){return this.Ly}set themeSource(t){this.h&&Util.T(this),t!==null&&Util.i(t,\"string\",ThemeBinding,\"themeSource\"),this.Ly=t,this.za=null,t!==null?this.n=this.n|16:this.n=this.n&-17}get themeConverter(){return this.Sh}set themeConverter(t){this.h&&Util.T(this),t!==null&&Util.i(t,\"function\",ThemeBinding,\"themeConverter\"),this.Sh=t}ofData(){return this.h&&Util.T(this),this.n=this.n|2,this.Af=null,this}TT(t,i,e,s){if(!t||(this.xN&&(i=this.Mh),!i&&i!==0))return;let n=this.themeSource;this.za!==null?n=this.za:typeof n==\"string\"&&n.includes(\".\")&&(this.za=n.split(\".\"),n=this.za);let o=t.findValue(i,n,s);return o===void 0&&Util.ei(`Theme warning: ${i} could not be found when setting target property ${s}.`),typeof this.Sh==\"function\"&&(o=this.Sh(o,e)),o}}class Model{St;tg;Ro;D1;De;Rf;vf;ig;eg;sg;ng;Xa;ir;F1;Fo;R1;ii;Nh;og=new GSet;rg=new GSet;Ay;constructor(t,i){if(GSet.ji(this),this.St=\"\",this.tg=\"\",this.Ro=!1,this.D1={},this.De=[],this.ii=new GMap,this.Nh=\"key\",this.Rf=null,this.vf=null,this.ig=!1,this.eg=!1,this.sg=!1,this.ng=null,this.Xa=\"category\",this.ir=new GMap,this.Ay=100,this.F1=new List,this.Fo=!1,this.R1=null,this.undoManager=new UndoManager,t!==void 0&&(Array.isArray(t)?this.nodeDataArray=t:i=t),i){Object.assign(this,i);const e=i.Changed;e&&(delete this.Changed,this.addChangedListener(e))}}cloneProtected(t){t.St=this.St,t.tg=this.tg,t.Ro=this.Ro,t.Nh=this.Nh,t.Rf=this.Rf,t.vf=this.vf,t.ig=this.ig,t.eg=this.eg,t.sg=this.sg,t.Ay=this.Ay,t.ng=this.ng,t.Xa=this.Xa}copy(){const t=new this.constructor;return this.cloneProtected(t),t}clear(){this.De=[],this.ii.clear(),this.ir.clear(),this.undoManager.clear()}toString(t){if(t===void 0&&(t=0),t>1)return this.toJson();{let i=(this.name!==\"\"?this.name:\"\")+\" Model\";if(t>0){i+=`\n node data:`;const e=this.nodeDataArray,s=e.length;for(let n=0;n{if(u.model===e){if(u.modelChange===\"nodeDataArray\")u.change===3?n.add(u.newValue):u.change===4&&r.add(u.oldValue);else if(e.containsNodeData(u.object))o.add(u.object);else if(u.change===2&&(e.modelData===u.object||u.propertyName===\"modelData\"))s=!0;else if(u.object!==null)if(l&&l.has(u.object))l.get(u.object).each(m=>{e.containsNodeData(m)&&o.add(m)});else{if(u.object instanceof Model||e.Ta()&&e.containsLinkData(u.object))return;e.FT(u.object).each(m=>{o.add(m)})}}});const h=this.rg;h.clear(),n.each(u=>{h.add(e.getKeyForNodeData(u)),i||o.add(u)});const a=this.og;a.clear(),r.each(u=>{a.add(e.getKeyForNodeData(u)),i&&o.add(u)});const c=e.cloneDeep(o.toArray());let f=null;return s&&(f===null&&(f={}),f.modelData=this.cloneDeep(this.modelData)),h.count>0&&(f===null&&(f={}),i?f.removedNodeKeys=h.toArray():f.insertedNodeKeys=h.toArray()),c.length>0&&(f===null&&(f={}),f.modifiedNodeData=c),a.count>0&&(f===null&&(f={}),i?f.insertedNodeKeys=a.toArray():f.removedNodeKeys=a.toArray()),a.clear(),h.clear(),f}cloneDeep(t){return this.lg(t,!0)}lg(t,i,e,s,n){if(!Util.wt(t))return t;n||(n=[]);const o=Object.isExtensible(t);if(e||(e=new GMap),o){const h=e.get(t);if(h)return h}else{s||(s=new GMap);const h=s.iterator;for(;h.next();){const a=h.key;if(h.value===t){const f=e.get(a);if(f)return f}}}function r(h,a){if(o)h.__gohashid===void 0&&n.push(h),e.set(h,a);else{const c=GSet.Eg++;e.set(c,a),s.set(c,t)}}let l;if(Array.isArray(t)){l=[],r(t,l);for(let h=0;h{delete h.__gohashid}),l}Fe(t){return JSON.stringify(t).replace(/[\\u007F-\\uFFFF]/g,e=>{const s=\"0000\"+e.charCodeAt(0).toString(16);return\"\\\\u\"+s.substring(s.length-4)})}hg(){let t=\"\";return this.name!==\"\"&&(t+=`,\n \"name\": `+this.Fe(this.name)),this.dataFormat!==\"\"&&(t+=`,\n \"dataFormat\": `+this.Fe(this.dataFormat)),this.isReadOnly&&(t+=`,\n \"isReadOnly\": `+this.isReadOnly),this.nodeKeyProperty!==\"key\"&&typeof this.nodeKeyProperty==\"string\"&&(t+=`,\n \"nodeKeyProperty\": `+this.Fe(this.nodeKeyProperty)),this.copiesArrays&&(t+=`,\n \"copiesArrays\": true`),this.copiesArrayObjects&&(t+=`,\n \"copiesArrayObjects\": true`),this.copiesKey&&(t+=`,\n \"copiesKey\": true`),this.pointsDigits!==100&&(t+=`,\n \"pointsDigits\": `+this.pointsDigits.toString()),this.nodeCategoryProperty!==\"category\"&&typeof this.nodeCategoryProperty==\"string\"&&(t+=`,\n \"nodeCategoryProperty\": `+this.Fe(this.nodeCategoryProperty)),t}Ty(t){t.name&&(this.name=t.name),t.dataFormat&&(this.dataFormat=t.dataFormat),t.isReadOnly&&(this.isReadOnly=!0),t.nodeKeyProperty&&(this.nodeKeyProperty=t.nodeKeyProperty),t.copiesArrays&&(this.copiesArrays=!0),t.copiesArrayObjects&&(this.copiesArrayObjects=!0),t.copiesKey!==void 0&&(this.copiesKey=t.copiesKey),t.pointsDigits!==void 0&&(this.pointsDigits=parseInt(t.pointsDigits)),t.nodeCategoryProperty&&(this.nodeCategoryProperty=t.nodeCategoryProperty)}RT(){const t=this.modelData;return`,\n \"modelData\": `+this.vT(t)}OT(t){const i=t.modelData;Util.wt(i)&&(this.replaceJsonObjects(i),this.modelData=i)}kN(){const t=this.modelData;let i=!1;for(const s in t)if(!this.v1(t,s,t[s])){i=!0;break}let e=\"\";return i&&(e=this.RT()),e+`,\n \"nodeDataArray\": `+this.Ch(this.nodeDataArray,!0)}PN(t){this.OT(t);const i=t.nodeDataArray;Array.isArray(i)&&(this.replaceJsonObjects(i),this.nodeDataArray=i)}MN(t,i,e){if(t===i)return!0;if(typeof t!=typeof i||typeof t==\"function\"||typeof i==\"function\")return!1;if(Array.isArray(t)&&Array.isArray(i)){if(e.get(t)===i)return!0;if(e.set(t,i),t.length!==i.length)return!1;for(let s=0;s{const o=n.part;if(!o)return;const r=o.data;if(s===r)return;let l=i.get(s);l===null?(l=new GSet,l.add(r),i.set(s,l)):l.add(r)};i===null&&(i=new GMap,t.changes.each(s=>{if(s.diagram!==null){const n=s.change;if(n===2){const o=s.object.panel;if(o){const r=o.data;r&&e(r,o)}}else if(n===3||n===4){const o=s.object,r=o.itemArray;r&&e(r,o)}}}),this.Ka=i)}FT(t){const i=new GSet;for(let e=0;e{if(f.model===e){if(f.modelChange===\"nodeDataArray\")f.change===3?n.add(f.newValue):f.change===4&&r.add(f.oldValue);else if(e.containsNodeData(f.object))o.add(f.object);else if(f.change===2&&(e.modelData===f.object||f.propertyName===\"modelData\"))s=!0;else if(f.object!==null)if(l&&l.has(f.object))l.get(f.object).each(d=>{e.containsNodeData(d)&&o.add(d)});else{if(f.object instanceof Model||e.Ta()&&e.containsLinkData(f.object))return;e.FT(f.object).each(d=>{o.add(d)})}}});const h=this.rg;h.clear(),n.each(f=>{h.add(e.getKeyForNodeData(f)),i||o.add(f)});const a=this.og;a.clear(),r.each(f=>{a.add(e.getKeyForNodeData(f)),i&&o.add(f)});let c=\"\";return s&&(c+=this.RT()),h.count>0&&(c+=(i?this.ET:this.IT)+this.Ch(h.toArray(),!0)),o.count>0&&(c+=this.LO+this.Ch(o.toArray(),!0)),a.count>0&&(c+=(i?this.IT:this.ET)+this.Ch(a.toArray(),!0)),a.clear(),h.clear(),c}Dy(t){(t.name!==void 0&&t.name!==this.name||t.dataFormat!==void 0&&t.dataFormat!==this.dataFormat||t.isReadOnly!==void 0&&t.isReadOnly!==this.isReadOnly||t.nodeKeyProperty!==void 0&&t.nodeKeyProperty!==this.nodeKeyProperty||t.copiesArrays!==void 0&&t.copiesArrays!==this.copiesArrays||t.copiesArrayObjects!==void 0&&t.copiesArrayObjects!==this.copiesArrayObjects||t.copiesKey!==void 0&&t.copiesKey!==this.copiesKey||t.nodeCategoryProperty!==void 0&&t.nodeCategoryProperty!==this.nodeCategoryProperty)&&Util.o(\"applyIncrementalJson cannot change Model properties\"),this.OT(t);const i=t.insertedNodeKeys,e=t.modifiedNodeData,s=new GMap;if(Array.isArray(e))for(let o=0;o1&&s.add(`\n`);for(let n=0;n0&&(s.add(\",\"),i&&s.add(`\n`)),s.add(this.writeJsonValue(o)))}return i&&e>1&&s.add(`\n`),s.add(\"]\"),s.toString()}v1(t,i,e){return e===void 0||i===\"__gohashid\"||i[0]===\"_\"||typeof e==\"function\"}Yi(t){return isNaN(t)?\"NaN\":t===1/0?\"9e9999\":t===-1/0?\"-9e9999\":t}vT(t){const i=t;if(i instanceof Point)t={class:\"go.Point\",x:this.Yi(i.x),y:this.Yi(i.y)};else if(i instanceof Size)t={class:\"go.Size\",width:this.Yi(i.width),height:this.Yi(i.height)};else if(i instanceof Rect)t={class:\"go.Rect\",x:this.Yi(i.x),y:this.Yi(i.y),width:this.Yi(i.width),height:this.Yi(i.height)};else if(i instanceof Margin)t={class:\"go.Margin\",top:this.Yi(i.top),right:this.Yi(i.right),bottom:this.Yi(i.bottom),left:this.Yi(i.left)};else if(i instanceof Spot)i.isSpot()?t={class:\"go.Spot\",x:this.Yi(i.x),y:this.Yi(i.y),offsetX:this.Yi(i.offsetX),offsetY:this.Yi(i.offsetY)}:t={class:\"go.Spot\",enum:i.toString()};else if(i instanceof Brush){if(t={class:\"go.Brush\",type:BrushType[i.type]},i.type===1?t.color=i.color:(i.type===2||i.type===3)&&(t.start=i.start,t.end=i.end,i.type===3&&(i.startRadius!==0&&(t.startRadius=this.Yi(i.startRadius)),isNaN(i.endRadius)||(t.endRadius=this.Yi(i.endRadius)))),i.colorStops!==null){const n={},o=i.colorStops.iterator;for(;o.next();){const r=o.key,l=o.value;n[r]=l}t.colorStops=n}}else if(i instanceof Geometry)t={class:\"go.Geometry\",type:GeometryType[i.type]},i.startX!==0&&(t.startX=this.Yi(i.startX)),i.startY!==0&&(t.startY=this.Yi(i.startY)),i.endX!==0&&(t.endX=this.Yi(i.endX)),i.endY!==0&&(t.endY=this.Yi(i.endY)),i.spot1.equals(Spot.TopLeft)||(t.spot1=i.spot1),i.spot2.equals(Spot.BottomRight)||(t.spot2=i.spot2),i.type===4&&(t.path=Geometry.stringify(i));else if(Model.I1(Util.sn(i))!==null)return Util.ei(\"ERROR: trying to convert a GraphObject or Diagram or Model or Tool or Layout or UndoManager or other unknown data type into JSON text: \"+i.toString()),\"{}\";let e=\"{\",s=!0;for(const n in t){const o=Model.vt(t,n);if(!this.v1(t,n,o))if(s?s=!1:e+=\",\",e+=this.Fe(n)+\":\",n===\"points\"&&o instanceof List){const r=o;let l=\"[\";const h=r.iterator;for(;h.next();){const a=h.value;l.length>1&&(l+=\",\"),l+=this.BT(a.x),l+=\",\",l+=this.BT(a.y)}l+=\"]\",e+=l}else e+=this.writeJsonValue(o)}return e+=\"}\",e}BT(t){if(t===1/0)return\"9e9999\";if(t===-1/0)return\"-9e9999\";if(isNaN(t))return\"0\";const i=this.pointsDigits;return i>16?t.toString():t.toFixed(i)}get pointsDigits(){return this.Ay}set pointsDigits(t){t<0?t=0:t>100&&(t=100),this.Ay=t}Gi(t){return typeof t==\"number\"?t:t===\"NaN\"?NaN:t===\"9e9999\"?1/0:t===\"-9e9999\"?-1/0:parseFloat(t)}TO(t){if(typeof t!=\"object\")return t;let i=t.class||\"\";if(typeof i!=\"string\"||i===\"\")return t;if(i===\"NaN\")return NaN;if(i===\"Date\")return new Date(t.value);if(i.indexOf(\"go.\")!==0)return t;i=i.substring(3);let e=t;if(i===\"Point\")e=new Point(this.Gi(t.x),this.Gi(t.y));else if(i===\"Size\")e=new Size(this.Gi(t.width),this.Gi(t.height));else if(i===\"Rect\")e=new Rect(this.Gi(t.x),this.Gi(t.y),this.Gi(t.width),this.Gi(t.height));else if(i===\"Margin\")e=new Margin(this.Gi(t.top),this.Gi(t.right),this.Gi(t.bottom),this.Gi(t.left));else if(i===\"Spot\")typeof t.enum==\"string\"?e=Spot.parse(t.enum):e=new Spot(this.Gi(t.x),this.Gi(t.y),this.Gi(t.offsetX),this.Gi(t.offsetY));else if(i===\"Brush\"){const s=new Brush;s.type=Util.Ih(BrushType,t.type)??1,typeof t.color==\"string\"&&(s.color=t.color),t.start instanceof Spot&&(s.start=t.start),t.end instanceof Spot&&(s.end=t.end),typeof t.startRadius==\"number\"&&(s.startRadius=this.Gi(t.startRadius)),typeof t.endRadius==\"number\"&&(s.endRadius=this.Gi(t.endRadius));const n=t.colorStops;if(Util.wt(n))for(const o in n){const r=parseFloat(o);s.addColorStop(r,n[o])}e=s}else if(i===\"Geometry\"){let s=null;typeof t.path==\"string\"?s=Geometry.parse(t.path):s=new Geometry,s.type=Util.Ih(GeometryType,t.type)??1,typeof t.startX==\"number\"&&(s.startX=this.Gi(t.startX)),typeof t.startY==\"number\"&&(s.startY=this.Gi(t.startY)),typeof t.endX==\"number\"&&(s.endX=this.Gi(t.endX)),typeof t.endY==\"number\"&&(s.endY=this.Gi(t.endY)),t.spot1 instanceof Spot&&(s.spot1=t.spot1),t.spot2 instanceof Spot&&(s.spot2=t.spot2),e=s}else if(i===\"EnumValue\"){let s=t.classType;s.indexOf(\"go.\")===0&&(s=s.substring(3));const n=Model.I1(s);typeof n==\"function\"&&(e=Util.Ih(n,t.name))}return e}get name(){return this.St}set name(t){const i=this.St;i!==t&&(Util.i(t,\"string\",Model,\"name\"),this.St=t,this.t(\"name\",i,t))}get dataFormat(){return this.tg}set dataFormat(t){const i=this.tg;i!==t&&(Util.i(t,\"string\",Model,\"dataFormat\"),this.tg=t,this.t(\"dataFormat\",i,t))}get isReadOnly(){return this.Ro}set isReadOnly(t){const i=this.Ro;i!==t&&(Util.i(t,\"boolean\",Model,\"isReadOnly\"),this.Ro=t,this.t(\"isReadOnly\",i,t))}get modelData(){return this.D1}set modelData(t){const i=this.D1;i!==t&&(Util.i(t,\"object\",Model,\"modelData\"),this.D1=t,this.t(\"modelData\",i,t),this.updateTargetBindings(t))}addChangedListener(t){return Util.i(t,\"function\",Model,\"addChangedListener:listener\"),this.F1.add(t),this}removeChangedListener(t){Util.i(t,\"function\",Model,\"removeChangedListener:listener\"),this.F1.delete(t)}Iw(t){this.skipsUndoManager||this.undoManager.handleChanged(t);const i=this.F1,e=i.length;for(let s=0;s0&&Util.o(\"Cannot set Model.nodeKeyProperty when there is existing node data\"),this.Nh=t,this.t(\"nodeKeyProperty\",i,t))}An(t,i,e){typeof t!=\"string\"&&typeof t!=\"function\"&&Util.we(t,\"string or function\",i,e)}getKeyForNodeData(t){if(t===null)return;const i=this.Nh;if(i===\"\")return;const e=Model.vt(t,i);if(e!==void 0){if(this.isKeyType(e))return e;Util.o(\"Key value for node data \"+t+\" is not a number or a string: \"+e)}}setKeyForNodeData(t,i){if((i==null||!this.isKeyType(i))&&Util.we(i,\"number or string\",Model,\"setKeyForNodeData:key\"),t===null)return;const e=this.Nh;if(e===\"\")return;if(!this.containsNodeData(t)){Model.rt(t,e,i);return}const s=Model.vt(t,e);if(s!==i){if(this.findNodeDataForKey(i)!==null)return;Model.rt(t,e,i),s!==void 0&&this.ii.delete(s),this.ii.set(i,t),this.Et(\"nodeKey\",2,e,t,s,i),typeof e==\"string\"&&this.updateTargetBindings(t,e),this.Fy(s,i)}}get makeUniqueKeyFunction(){return this.Rf}set makeUniqueKeyFunction(t){const i=this.Rf;i!==t&&(t!==null&&Util.i(t,\"function\",Model,\"makeUniqueKeyFunction\"),this.Rf=t,this.t(\"makeUniqueKeyFunction\",i,t))}isKeyType(t){return typeof t==\"number\"||typeof t==\"string\"}containsNodeData(t){if(t===null)return!1;const i=this.getKeyForNodeData(t);return i===void 0?!1:this.ii.get(i)===t}findNodeDataForKey(t){return t===null&&Util.o(\"Model.findNodeDataForKey:key must not be null\"),t===void 0||!this.isKeyType(t)?null:this.ii.get(t)}get nodeDataArray(){return this.De}set nodeDataArray(t){const i=this.De;if(i!==t){this.ii.clear(),this.NN();const e=t.length;for(let o=0;o=2)return this.toJson();{let i=(this.name!==\"\"?this.name:\"\")+\" GraphLinksModel\";if(t>0){i+=`\n node data:`;let e=this.nodeDataArray,s=e.length,n=0;for(n=0;n\"+this.Te(o,!1)}}return i}}bN(t,i){if(this.linkKeyProperty===\"\"){const f=this.skipsUndoManager;this.skipsUndoManager=!0,this.linkKeyProperty=\"key\",this.skipsUndoManager=f}let e=super.bN(t,i);const s=this,n=new GSet,o=new GSet,r=new GSet,l=this.Ka;t.changes.each(f=>{if(f.model===s){if(f.modelChange===\"linkDataArray\")f.change===3?n.add(f.newValue):f.change===4&&r.add(f.oldValue);else if(s.containsLinkData(f.object))o.add(f.object);else if(f.object!==null)if(f.object!==null&&l&&l.has(f.object))l.get(f.object).each(d=>{s.containsLinkData(d)&&o.add(d)});else{if(f.object instanceof Model||s.containsNodeData(f.object))return;s.VT(f.object).each(d=>o.add(d))}}});const h=this.rg;h.clear(),n.each(f=>{h.add(s.getKeyForLinkData(f)),i||o.add(f)});const a=this.og;a.clear(),r.each(f=>{a.add(s.getKeyForLinkData(f)),i&&o.add(f)});const c=s.cloneDeep(o.toArray());return h.count>0&&(e===null&&(e={}),i?e.removedLinkKeys=h.toArray():e.insertedLinkKeys=h.toArray()),c.length>0&&(e===null&&(e={}),e.modifiedLinkData=c),a.count>0&&(e===null&&(e={}),i?e.insertedLinkKeys=a.toArray():e.removedLinkKeys=a.toArray()),a.clear(),h.clear(),e}hg(){const t=super.hg();let i=\"\";return this.linkCategoryProperty!==\"category\"&&typeof this.linkCategoryProperty==\"string\"&&(i+=`,\n \"linkCategoryProperty\": `+this.Fe(this.linkCategoryProperty)),this.linkKeyProperty!==\"\"&&typeof this.linkKeyProperty==\"string\"&&(i+=`,\n \"linkKeyProperty\": `+this.Fe(this.linkKeyProperty)),this.linkFromKeyProperty!==\"from\"&&typeof this.linkFromKeyProperty==\"string\"&&(i+=`,\n \"linkFromKeyProperty\": `+this.Fe(this.linkFromKeyProperty)),this.linkToKeyProperty!==\"to\"&&typeof this.linkToKeyProperty==\"string\"&&(i+=`,\n \"linkToKeyProperty\": `+this.Fe(this.linkToKeyProperty)),this.linkFromPortIdProperty!==\"\"&&typeof this.linkFromPortIdProperty==\"string\"&&(i+=`,\n \"linkFromPortIdProperty\": `+this.Fe(this.linkFromPortIdProperty)),this.linkToPortIdProperty!==\"\"&&typeof this.linkToPortIdProperty==\"string\"&&(i+=`,\n \"linkToPortIdProperty\": `+this.Fe(this.linkToPortIdProperty)),this.linkLabelKeysProperty!==\"\"&&typeof this.linkLabelKeysProperty==\"string\"&&(i+=`,\n \"linkLabelKeysProperty\": `+this.Fe(this.linkLabelKeysProperty)),this.nodeIsGroupProperty!==\"isGroup\"&&typeof this.nodeIsGroupProperty==\"string\"&&(i+=`,\n \"nodeIsGroupProperty\": `+this.Fe(this.nodeIsGroupProperty)),this.nodeGroupKeyProperty!==\"group\"&&typeof this.nodeGroupKeyProperty==\"string\"&&(i+=`,\n \"nodeGroupKeyProperty\": `+this.Fe(this.nodeGroupKeyProperty)),t+i}Ty(t){super.Ty(t),t.linkKeyProperty&&(this.linkKeyProperty=t.linkKeyProperty),t.linkFromKeyProperty&&(this.linkFromKeyProperty=t.linkFromKeyProperty),t.linkToKeyProperty&&(this.linkToKeyProperty=t.linkToKeyProperty),t.linkFromPortIdProperty&&(this.linkFromPortIdProperty=t.linkFromPortIdProperty),t.linkToPortIdProperty&&(this.linkToPortIdProperty=t.linkToPortIdProperty),t.linkCategoryProperty&&(this.linkCategoryProperty=t.linkCategoryProperty),t.linkLabelKeysProperty&&(this.linkLabelKeysProperty=t.linkLabelKeysProperty),t.nodeIsGroupProperty&&(this.nodeIsGroupProperty=t.nodeIsGroupProperty),t.nodeGroupKeyProperty&&(this.nodeGroupKeyProperty=t.nodeGroupKeyProperty)}kN(){const t=super.kN(),i=`,\n \"linkDataArray\": `+this.Ch(this.linkDataArray,!0);return t+i}PN(t){super.PN(t);const i=t.linkDataArray;Array.isArray(i)&&(this.replaceJsonObjects(i),this.linkDataArray=i)}zT=`,\n \"insertedLinkKeys\": `;FO=`,\n \"modifiedLinkData\": `;XT=`,\n \"removedLinkKeys\": `;VT(t){const i=new GSet;for(let e=0;e{if(f.model===s){if(f.modelChange===\"linkDataArray\")f.change===3?n.add(f.newValue):f.change===4&&r.add(f.oldValue);else if(s.containsLinkData(f.object))o.add(f.object);else if(f.object!==null)if(f.object!==null&&l&&l.has(f.object))l.get(f.object).each(d=>{s.containsLinkData(d)&&o.add(d)});else{if(f.object instanceof Model||s.containsNodeData(f.object))return;s.VT(f.object).each(d=>o.add(d))}}});const h=this.rg;h.clear(),n.each(f=>{h.add(s.getKeyForLinkData(f)),i||o.add(f)});const a=this.og;a.clear(),r.each(f=>{a.add(s.getKeyForLinkData(f)),i&&o.add(f)});let c=e;return h.count>0&&(c+=(i?this.XT:this.zT)+this.Ch(h.toArray(),!0)),o.count>0&&(c+=this.FO+this.Ch(o.toArray(),!0)),a.count>0&&(c+=(i?this.zT:this.XT)+this.Ch(a.toArray(),!0)),a.clear(),h.clear(),c}Dy(t){(t.linkCategoryProperty!==void 0&&t.linkCategoryProperty!==this.linkCategoryProperty||t.linkKeyProperty!==void 0&&t.linkKeyProperty!==this.linkKeyProperty||t.linkFromKeyProperty!==void 0&&t.linkFromKeyProperty!==this.linkFromKeyProperty||t.linkToKeyProperty!==void 0&&t.linkToKeyProperty!==this.linkToKeyProperty||t.linkFromPortIdProperty!==void 0&&t.linkFromPortIdProperty!==this.linkFromPortIdProperty||t.linkToPortIdProperty!==void 0&&t.linkToPortIdProperty!==this.linkToPortIdProperty||t.linkLabelKeysProperty!==void 0&&t.linkLabelKeysProperty!==this.linkLabelKeysProperty||t.nodeIsGroupProperty!==void 0&&t.nodeIsGroupProperty!==this.nodeIsGroupProperty||t.nodeGroupKeyProperty!==void 0&&t.nodeGroupKeyProperty!==this.nodeGroupKeyProperty)&&Util.o(\"applyIncrementalJson cannot change Model properties\"),super.Dy(t);const i=t.insertedLinkKeys;if(Array.isArray(i)){const n=i.length;for(let o=0;o=0&&s.splice(e,1)):s.indexOf(t.newValue)<0&&s.splice(e,0,t.newValue));return}}else if(t.change===4){let e=t.oldParam;if(t.modelChange===\"linkDataArray\"){const s=t.oldValue;if(Util.wt(s)&&typeof e==\"number\"){const n=this.getKeyForLinkData(s);i?(this.er.add(s),this.Ze[e]!==s&&this.Ze.splice(e,0,s),n!==void 0&&this.fi.set(n,s)):(this.er.delete(s),this.Ze[e]===s&&this.Ze.splice(e,1),n!==void 0&&this.fi.delete(n))}return}else if(t.modelChange===\"linkLabelKeys\"){const s=this.getLabelKeysForLinkData(t.object);Array.isArray(s)&&typeof e==\"number\"&&(i?s.indexOf(t.newValue)<0&&s.splice(e,0,t.newValue):(e=s.indexOf(t.newValue),e>=0&&s.splice(e,1)));return}}super.changeState(t,i)}}get archetypeNodeData(){return this.Cl}set archetypeNodeData(t){const i=this.Cl;i!==t&&(t!==null&&Util.i(t,\"object\",GraphLinksModel,\"archetypeNodeData\"),this.Cl=t,this.t(\"archetypeNodeData\",i,t))}CN(t){if(t===void 0)return;const i=this.Cl;if(i!==null){let e=this.findNodeDataForKey(t);e===null&&(e=this.copyNodeData(i),Model.rt(e,this.nodeKeyProperty,t),this.addNodeData(e))}return t}get linkFromKeyProperty(){return this.wo}set linkFromKeyProperty(t){const i=this.wo;i!==t&&(this.An(t,GraphLinksModel,\"linkFromKeyProperty\"),this.wo=t,this.t(\"linkFromKeyProperty\",i,t))}getFromKeyForLinkData(t){return this.Te(t,!0)}setFromKeyForLinkData(t,i){this.Qd(t,i,!0)}get linkToKeyProperty(){return this.xo}set linkToKeyProperty(t){const i=this.xo;i!==t&&(this.An(t,GraphLinksModel,\"linkToKeyProperty\"),this.xo=t,this.t(\"linkToKeyProperty\",i,t))}getToKeyForLinkData(t){return this.Te(t,!1)}setToKeyForLinkData(t,i){this.Qd(t,i,!1)}Te(t,i){if(t===null)return;const e=i?this.wo:this.xo;if(e===\"\")return;const s=Model.vt(t,e);if(s!==void 0){if(this.isKeyType(s))return s;Util.o((i?\"FromKey\":\"ToKey\")+\" value for link data \"+t+\" is not a number or a string: \"+s)}}Qd(t,i,e){if(i===null&&(i=void 0),i!==void 0&&!this.isKeyType(i)&&Util.we(i,\"number or string\",GraphLinksModel,e?\"setFromKeyForLinkData:key\":\"setToKeyForLinkData:key\"),t===null)return;const s=e?this.wo:this.xo;if(s===\"\")return;if(i=this.CN(i),!this.containsLinkData(t)){Model.rt(t,s,i);return}const n=Model.vt(t,s);n!==i&&(this.Js(n,t),Model.rt(t,s,i),this.findNodeDataForKey(i)===null&&this.$s(i,t),this.Et(e?\"linkFromKey\":\"linkToKey\",2,s,t,n,i),typeof s==\"string\"&&this.updateTargetBindings(t,s))}get linkFromPortIdProperty(){return this.Ya}set linkFromPortIdProperty(t){const i=this.Ya;i!==t&&(this.An(t,GraphLinksModel,\"linkFromPortIdProperty\"),this.Ya=t,this.t(\"linkFromPortIdProperty\",i,t))}getFromPortIdForLinkData(t){return this.L1(t,!0)}setFromPortIdForLinkData(t,i){this._d(t,i,!0)}get linkToPortIdProperty(){return this.Ga}set linkToPortIdProperty(t){const i=this.Ga;i!==t&&(this.An(t,GraphLinksModel,\"linkToPortIdProperty\"),this.Ga=t,this.t(\"linkToPortIdProperty\",i,t))}getToPortIdForLinkData(t){return this.L1(t,!1)}setToPortIdForLinkData(t,i){this._d(t,i,!1)}L1(t,i){if(t===null)return\"\";const e=i?this.Ya:this.Ga;if(e===\"\")return\"\";const s=Model.vt(t,e);return s===void 0?\"\":s}_d(t,i,e){if(Util.i(i,\"string\",GraphLinksModel,e?\"setFromPortIdForLinkData:portname\":\"setToPortIdForLinkData:portname\"),t===null)return;const s=e?this.Ya:this.Ga;if(s===\"\")return;if(!this.containsLinkData(t)){Model.rt(t,s,i);return}let n=Model.vt(t,s);n===void 0&&(n=\"\"),n!==i&&(Model.rt(t,s,i),this.Et(e?\"linkFromPortId\":\"linkToPortId\",2,s,t,n,i),typeof s==\"string\"&&this.updateTargetBindings(t,s))}get linkLabelKeysProperty(){return this.Zs}set linkLabelKeysProperty(t){const i=this.Zs;i!==t&&(this.An(t,GraphLinksModel,\"linkLabelKeysProperty\"),this.Zs=t,this.t(\"linkLabelKeysProperty\",i,t))}getLabelKeysForLinkData(t){if(t===null)return GraphLinksModel.EmptyArray;const i=this.Zs;if(i===\"\")return GraphLinksModel.EmptyArray;const e=Model.vt(t,i);return e===void 0?GraphLinksModel.EmptyArray:e}setLabelKeysForLinkData(t,i){if(t===null)return;const e=this.Zs;if(e===\"\")return;if(!this.containsLinkData(t)){Model.rt(t,e,i);return}let s=Model.vt(t,e);if(s===void 0&&(s=GraphLinksModel.EmptyArray),s!==i){if(Array.isArray(s)){const o=s.length;for(let r=0;r=0)return;n=s.length,s.push(i),this.containsLinkData(t)&&(this.findNodeDataForKey(i)===null&&this.$s(i,t),this.Et(\"linkLabelKeys\",3,e,t,null,i,null,n))}else Util.o(e+\" property is not an Array; cannot addLabelKeyForLinkData: \"+t)}removeLabelKeyForLinkData(t,i){if(i==null||(this.isKeyType(i)||Util.we(i,\"number or string\",GraphLinksModel,\"removeLabelKeyForLinkData:key\"),t===null))return;const e=this.Zs;if(e===\"\")return;const s=Model.vt(t,e);if(Array.isArray(s)){const n=s.indexOf(i);if(n<0)return;s.splice(n,1),this.containsLinkData(t)&&(this.Js(i,t),this.Et(\"linkLabelKeys\",4,e,t,i,null,n,null))}else s!==void 0&&Util.o(e+\" property is not an Array; cannot removeLabelKeyforLinkData: \"+t)}get linkDataArray(){return this.Ze}set linkDataArray(t){const i=this.Ze;if(i!==t){this.fi.clear();const e=t.length;for(let n=0;nnew GraphLinksModel;Model.initDiagramModel=Model.initDiagramModel=()=>new GraphLinksModel;class TreeModel extends Model{Dn;dg;Ha;constructor(t,i){if(super(),this.Dn=\"parent\",this.dg=!1,this.Ha=\"parentLinkCategory\",t!==void 0&&(Array.isArray(t)?this.nodeDataArray=t:i=t),i){Object.assign(this,i);const e=i.Changed;e&&(delete this.Changed,this.addChangedListener(e))}}cloneProtected(t){super.cloneProtected(t),t.Dn=this.Dn,t.dg=this.dg,t.Ha=this.Ha}toString(t){if(t===void 0&&(t=0),t>=2)return this.toJson();{let i=(this.name!==\"\"?this.name:\"\")+\" TreeModel\";if(t>0){i+=`\n node data:`;const e=this.nodeDataArray,s=e.length;for(let n=0;n(w[w.ConstantSpacing=0]=\"ConstantSpacing\",w[w.ConstantDistance=1]=\"ConstantDistance\",w[w.ConstantAngle=2]=\"ConstantAngle\",w[w.Packed=3]=\"Packed\",w))(CircularArrangement||{}),CircularDirection=(w=>(w[w.Clockwise=10]=\"Clockwise\",w[w.Counterclockwise=11]=\"Counterclockwise\",w[w.BidirectionalLeft=12]=\"BidirectionalLeft\",w[w.BidirectionalRight=13]=\"BidirectionalRight\",w))(CircularDirection||{}),CircularSorting=(w=>(w[w.Forwards=20]=\"Forwards\",w[w.Reverse=21]=\"Reverse\",w[w.Ascending=22]=\"Ascending\",w[w.Descending=23]=\"Descending\",w[w.Optimized=24]=\"Optimized\",w))(CircularSorting||{}),CircularNodeDiameterFormula=(w=>(w[w.Pythagorean=30]=\"Pythagorean\",w[w.Circular=31]=\"Circular\",w))(CircularNodeDiameterFormula||{});class CircularLayout extends Layout{le;Bf;B1;gg;U1;Ah;TN;DN;FN;bs;vy;Oy;qa;Iy;YT;mg;pg;yg;Uf;Ki;S;pe;ye;Ln;wg;constructor(t){super(),this.le=0,this.Bf=0,this.B1=0,this.gg=360,this.U1=0,this.Ah=0,this.TN=new Point,this.DN=30,this.FN=0,this.bs=0,this.vy=0,this.Oy=new VertexArrangement,this.qa=0,this.Iy=0,this.YT=600,this.mg=NaN,this.pg=1,this.yg=0,this.Uf=360,this.Ki=0,this.S=10,this.pe=24,this.ye=LayoutVertex.standardComparer,this.Ln=6,this.wg=30,t&&Object.assign(this,t)}cloneProtected(t){super.cloneProtected(t),t.mg=this.mg,t.pg=this.pg,t.yg=this.yg,t.Uf=this.Uf,t.Ki=this.Ki,t.S=this.S,t.pe=this.pe,t.ye=this.ye,t.Ln=this.Ln,t.wg=this.wg}li(t){t in CircularSorting?this.sorting=t:t in CircularDirection?this.direction=t:t in CircularArrangement?this.arrangement=t:t in CircularNodeDiameterFormula?this.nodeDiameterFormula=t:super.li(t)}createNetwork(){return new CircularNetwork(this)}OO(t,i,e){t=this.IO(t);let s=this.U1,n=this.DN,o=this.le,r=this.Bf,l=this.B1,h=this.gg,a=this.Ah,c=this.FN,f=this.bs,u=this.vy;if(s=this.arrangement,n=this.nodeDiameterFormula,o=this.radius,(!isFinite(o)||o<=0)&&(o=NaN),r=this.aspectRatio,(!isFinite(r)||r<=0)&&(r=1),l=this.startAngle,isFinite(l)||(l=0),h=this.sweepAngle,(!isFinite(h)||h>360||h<1)&&(h=360),a=this.spacing,isFinite(a)||(a=NaN),s===3&&n===31?s=0:s===3&&n!==31&&(n=31,s=this.arrangement),(this.direction===12||this.direction===13)&&this.sorting!==24){for(let g=0;!(g>=t.length||(i.add(t.elt(g)),g+1>=t.length));g+=2)e.add(t.elt(g+1));this.direction===12?(this.arrangement===3&&i.reverse(),t=new List,t.addAll(i),t.addAll(e)):(this.arrangement===3&&e.reverse(),t=new List,t.addAll(e),t.addAll(i))}const d=t.length;c=0;let m=0;for(let g=0;g1?(o=y,f=o*r):(f=y,o=f)}else o=this.V1(u*(h>=360?d:d-1),r,l*Math.PI/180,h*Math.PI/180)}else o=this.V1(c+(h>=360?d:d-1)*(s!==3?a:a*1.6),r,l*Math.PI/180,h*Math.PI/180);f=o*r}else{f=o*r;const g=this.RN(o,f,l*Math.PI/180,h*Math.PI/180);if(isNaN(a))s===0&&(a=(g-c)/(h>=360?d:d-1));else if(s===0){const p=(g-c)/(h>=360?d:d-1);p=360?d:d-1),r,l*Math.PI/180,h*Math.PI/180),f=o*r):a=p}else{let p=-1/0;for(let k=0;k=360?d:d-1),r,l*Math.PI/180,h*Math.PI/180);x>o?(o=x,f=o*r,u=y):u=g/(h>=360?d:d-1)}}return this.U1=s,this.DN=n,this.le=o,this.Bf=r,this.B1=l,this.gg=h,this.Ah=a,this.FN=c,this.bs=f,this.vy=u,t}doLayout(t){this.network===null&&(this.network=this.makeNetwork(t)),this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin);const i=this.network.vertexes;if(i.count<=1){if(i.count===1){const u=i.first();u.centerX=0,u.centerY=0}this.updateParts(),this.network=null,this.isValidLayout=!0;return}let e=new List;e.addAll(i.iterator);const s=new List,n=new List;e=this.OO(e,s,n);const o=this.U1,r=this.le,l=this.B1,h=this.gg,a=this.Ah,c=this.bs,f=this.vy;if((this.direction===12||this.direction===13)&&o===3)this.GT(e,h,l-h/2,10);else if(this.direction===12||this.direction===13){let u=0;switch(o){case 1:u=this.z1(r,c,l,f)*180/Math.PI;break;case 0:{let d=0,m=0;const g=s.first();g!==null&&(d=g.Th(Math.PI/2));const p=n.first();p!==null&&(m=p.Th(Math.PI/2)),u=this.z1(r,c,l,a+(d+m)/2)*180/Math.PI;break}case 2:u=h/e.length;break}if(this.direction===12){switch(o){case 1:this.Ey(s,h/2,l,11);break;case 0:this.By(s,h/2,l,11);break;case 2:this.Uy(s,h/2,l,11);break}switch(o){case 1:this.Ey(n,h/2,l+u,10);break;case 0:this.By(n,h/2,l+u,10);break;case 2:this.Uy(n,h/2,l+u,10);break}}else{switch(o){case 1:this.Ey(n,h/2,l,11);break;case 0:this.By(n,h/2,l,11);break;case 2:this.Uy(n,h/2,l,11);break}switch(o){case 1:this.Ey(s,h/2,l+u,10);break;case 0:this.By(s,h/2,l+u,10);break;case 2:this.Uy(s,h/2,l+u,10);break}}}else switch(o){case 1:this.Ey(e,h,l,this.direction);break;case 0:this.By(e,h,l,this.direction);break;case 2:this.Uy(e,h,l,this.direction);break;case 3:this.GT(e,h,l,this.direction);break}this.updateParts(),this.network=null,this.isValidLayout=!0}Uy(t,i,e,s){const n=this.gg,o=this.le,r=this.bs,l=e*Math.PI/180,h=i*Math.PI/180,a=t.length;for(let c=0;c=360?a:a-1):-(c*h)/a),u=t.elt(c),d=o*Math.tan(f)/r,m=Math.sqrt((o*o+r*r*d*d)/(1+d*d));u.centerX=m*Math.cos(f),u.centerY=m*Math.sin(f),u.actualAngle=f*180/Math.PI}}By(t,i,e,s){const n=this.le,o=this.bs,r=this.Ah;let l=e*Math.PI/180;const h=t.length;for(let a=0;a180&&(n-=360),n*=Math.PI/180,this.Iy=n,this.jT(t,i,e,s)}else this.HT(t,i,e,s);this.Oy.commit(t)}HT(t,i,e,s){const n=this.le,o=this.bs,r=this.Ah,l=this.Bf;let h=n*Math.cos(e*Math.PI/180),a=o*Math.sin(e*Math.PI/180);const c=t.toArray();if(c.length===3){c[0].centerX=n,c[0].centerY=0,c[1].centerX=c[0].centerX-c[0].width/2-c[1].width/2-r,c[1].y=c[0].y,c[2].centerX=(c[0].centerX+c[1].centerX)/2,c[2].y=c[0].y-c[2].height-r;return}else if(c.length===4){c[0].centerX=n,c[0].centerY=0,c[2].centerX=-c[0].centerX,c[2].centerY=c[0].centerY,c[1].centerX=0,c[1].y=Math.min(c[0].y,c[2].y)-c[1].height-r,c[3].centerX=0,c[3].y=Math.max(c[0].y+c[0].height+r,c[2].y+c[2].height+r);return}const f=Point.l();for(let b=0;b=c.length-1));b++)this.qT(h,a,c,b,s,f)||this.WT(h,a,c,b,s,f),h=f.x,a=f.y;if(Point.s(f),this.qa++,this.qa>23)return;const u=c[0].centerX,d=c[0].centerY,m=c[c.length-1].centerX,g=c[c.length-1].centerY;let p=Math.abs(u-m)-((c[0].width+c[c.length-1].width)/2+r);const y=Math.abs(d-g)-((c[0].height+c[c.length-1].height)/2+r);let x=0;if(Math.abs(y)<1){const b=Math.abs(u-m),P=(c[0].width+c[c.length-1].width)/2;b0?x=y:Math.abs(p)<1?x=0:x=p;let k=!1;Math.abs(m)>Math.abs(g)?k=m>0!=d>g:k=g>0!=u1&&(this.qa<8?this.le-=x/(2*Math.PI):c.length<5&&x>10?this.le/=2:this.le-=x>0?1.7:-2.3,this.bs=this.le*l,this.HT(t,i,e,s))}jT(t,i,e,s){const n=this.le,o=this.bs,r=this.Bf;let l=n*Math.cos(e*Math.PI/180),h=o*Math.sin(e*Math.PI/180);const a=Point.l(),c=t.toArray();for(let m=0;m=c.length-1));m++)this.qT(l,h,c,m,s,a)||this.WT(l,h,c,m,s,a),l=a.x,h=a.y;if(Point.s(a),this.qa++,this.qa>23)return;const f=Math.atan2(h,l);let u=s===10?this.Iy-f:f-this.Iy;u=Math.abs(u)1&&(this.qa<8?this.le-=d/(2*Math.PI):this.le-=d>0?1.7:-2.3,this.bs=this.le*r,this.jT(t,i,e,s))}qT(t,i,e,s,n,o){const r=this.Ah,l=this.le,h=this.bs;let a=0,c=0;const f=(e[s].width+e[s+1].width)/2+r;let u=!1;if(i>=0!=(n===10)){if(a=t+f,a>l){if(a=t-f,a<-l)return o.x=a,o.y=c,!1;u=!0}}else if(a=t-f,a<-l){if(a=t+f,a>l)return o.x=a,o.y=c,!1;u=!0}return c=Math.sqrt(1-Math.min(1,a*a/(l*l)))*h,i<0!==u&&(c=-c),Math.abs(i-c)>(e[s].height+e[s+1].height)/2?(o.x=a,o.y=c,!1):(o.x=a,o.y=c,!0)}WT(t,i,e,s,n,o){const r=this.Ah,l=this.le,h=this.bs;let a=0,c=0;const f=(e[s].height+e[s+1].height)/2+r;let u=!1;if(t>=0!=(n===10)){if(c=i-f,c<-h){if(c=i+f,c>h)return o.x=a,o.y=c,!1;u=!0}}else if(c=i+f,c>h){if(c=i-f,c<-h)return o.x=a,o.y=c,!1;u=!0}return a=Math.sqrt(1-Math.min(1,c*c/(h*h)))*l,t<0!==u&&(a=-a),Math.abs(t-a)>(e[s].width+e[s+1].width)/2?(o.x=a,o.y=c,!1):(o.x=a,o.y=c,!0)}commitLayout(){this.commitNodes(),this.isRouting&&this.commitLinks()}commitNodes(){const t=this.group!==null&&this.group.hasPlaceholder(),i=t?this.group.location.copy():null;let e=this.actualCenter;t?e=new Point(0,0):(e.x=this.arrangementOrigin.x+this.le,e.y=this.arrangementOrigin.y+this.bs);const s=this.network.vertexes.iterator;for(;s.next();){const n=s.value;n.x+=e.x,n.y+=e.y,n.commit()}if(t){this.group.ensureBounds();const n=this.group.position.copy(),o=this.group.location.copy(),r=i.subtract(o.subtract(n));this.group.move(r),this.TN=r.subtract(n)}}commitLinks(){const t=this.network.edges.iterator;for(;t.next();)t.value.commit()}RN(t,i,e,s){const n=this.YT;if(Math.abs(this.Bf-1)<.001)return e!==void 0&&s!==void 0?s*t:2*Math.PI*t;const o=t>i?Math.sqrt(t*t-i*i)/t:Math.sqrt(i*i-t*t)/i;let r=0,l=0;e!==void 0&&s!==void 0?l=s/(n+1):l=Math.PI/(2*(n+1));let h=0;for(let a=0;a<=n;a++){e!==void 0&&s!==void 0?h=e+a*s/n:h=a*Math.PI/(2*n);const c=Math.sin(h);r+=Math.sqrt(1-o*o*c*c)*l}return e!==void 0&&s!==void 0?(t>i?t:i)*r:4*(t>i?t:i)*r}V1(t,i,e,s){let n=0;return e!==void 0&&s!==void 0?n=this.RN(1,i,e,s):n=this.RN(1,i),t/n}z1(t,i,e,s){if(Math.abs(this.Bf-1)<.001)return s/t;const n=t>i?Math.sqrt(t*t-i*i)/t:Math.sqrt(i*i-t*t)/i;let o=0;const r=2*Math.PI/(this.network.vertexes.count*700);t>i&&(e+=Math.PI/2);for(let l=0;;l++){const h=e+l*r,a=Math.sin(h);if(o+=(t>i?t:i)*Math.sqrt(1-n*n*a*a)*r,o>=s)return l*r}}IO(t){switch(this.sorting){case 20:break;case 21:t.reverse();break;case 22:t.sort(this.comparer);break;case 23:t.sort(this.comparer),t.reverse();break;case 24:return this.UO(this.VO(t));default:Util.o(\"Invalid sorting type.\")}return t}VO(t){const i=[];for(let s=0;sn&&(n=u,o=c)}else for(let c=0;cn&&(n=f,o=c)}e.add(t.elt(o)),i[o]=-1;const r=t.elt(o);let l=0;const h=r.sourceEdges;for(;h.next();){const f=h.value.fromVertex;l=t.indexOf(f),!(l<0)&&i[l]>=0&&i[l]++}const a=r.destinationEdges;for(;a.next();){const f=a.value.toVertex;l=t.indexOf(f),!(l<0)&&i[l]>=0&&i[l]++}}return e}UO(t){const i=[];for(let f=0;f=0){const C=Math.abs(x-(L>=x?L+1:L));b+=C=x&&M++,L>=x&&L++,M>L){const C=L;L=M,M=C}L-M<(s.length+2)/2==(M=0&&(n.push(f),o.push(x))}h++}let a=!1;const c=s.length;for(;;){a=!0;for(let f=0;f=0){let g=0;for(let p=0;pm?x-m:m-x,b=c-k;g+=xb?1:-1}s.splice(g<0?m:m+1,0,u),r.splice(f,1),f--}else a=!1}if(a)break;s.push(r[0]),r.splice(0,1)}for(let f=0;f0||isNaN(t))&&(this.mg=t,this.invalidateLayout()))}get aspectRatio(){return this.pg}set aspectRatio(t){this.pg!==t&&(Util.i(t,\"number\",CircularLayout,\"aspectRatio\"),t>0&&(this.pg=t,this.invalidateLayout()))}get startAngle(){return this.yg}set startAngle(t){this.yg!==t&&(Util.i(t,\"number\",CircularLayout,\"startAngle\"),this.yg=t,this.invalidateLayout())}get sweepAngle(){return this.Uf}set sweepAngle(t){this.Uf!==t&&(Util.i(t,\"number\",CircularLayout,\"sweepAngle\"),t>0&&t<=360?this.Uf=t:this.Uf=360,this.invalidateLayout())}get arrangement(){return this.Ki}set arrangement(t){this.Ki!==t&&(t===3||t===0||t===1||t===2)&&(this.Ki=t,this.invalidateLayout())}get direction(){return this.S}set direction(t){this.S!==t&&(t===10||t===11||t===12||t===13)&&(this.S=t,this.invalidateLayout())}get sorting(){return this.pe}set sorting(t){this.pe!==t&&(this.pe=t,this.invalidateLayout())}get comparer(){return this.ye}set comparer(t){this.ye!==t&&(Util.i(t,\"function\",CircularLayout,\"comparer\"),this.ye=t,this.invalidateLayout())}get spacing(){return this.Ln}set spacing(t){this.Ln!==t&&(Util.i(t,\"number\",CircularLayout,\"spacing\"),this.Ln=t,this.invalidateLayout())}get nodeDiameterFormula(){return this.wg}set nodeDiameterFormula(t){this.wg!==t&&(t===30||t===31)&&(this.wg=t,this.invalidateLayout())}get actualXRadius(){return this.le}get actualYRadius(){return this.bs}get actualSpacing(){return this.Ah}get actualCenter(){return this.TN}static ConstantSpacing=0;static ConstantDistance=1;static ConstantAngle=2;static Packed=3;static Clockwise=10;static Counterclockwise=11;static BidirectionalLeft=12;static BidirectionalRight=13;static Forwards=20;static Reverse=21;static Ascending=22;static Descending=23;static Optimized=24;static Pythagorean=30;static Circular=31}class VertexArrangement{Vf;Wa;zf;constructor(){this.Vf=-1/0,this.Wa=null,this.zf=null}EO(t,i){if(t>0&&this.Vf<0||Math.abs(t)0)){this.Vf=t,this.Wa=[],this.zf=[];for(let e=0;e0){for(this.network.deleteSelfEdges(),i=this.network.vertexes.iterator;i.next();){const o=i.value;o.charge=this.electricalCharge(o),o.mass=this.gravitationalMass(o)}const s=this.network.edges.iterator;for(;s.next();){const o=s.value;o.stiffness=this.springStiffness(o),o.length=this.springLength(o)}if(this.vN(),this.Dh=0,this.needsPrelayout()){const o=this.network,r=o.splitIntoSubNetworks(!1);let l=r.iterator;for(;l.next();){const h=l.value;this.doConnectedSubnetLayout(h)}for(l=r.iterator,this.XO(l,o),l=r.iterator;l.next();){const h=l.value,a=h.vertexes.iterator;for(;a.next();){const f=a.value;o.addVertex(f)}const c=h.edges.iterator;for(;c.next();){const f=c.value;o.addEdge(f)}}}else this.JT(this.network,this.maxIterations);this.updateParts()}this.maxIterations=e,this.isValidLayout=!0}needsPrelayout(){if(this.network.vertexes.count<3)return!1;let t=0,i=0;const e=this.network.vertexes.first().bounds,s=this.network.vertexes.iterator;for(;s.next();){const n=s.value,o=n.bounds;if(isNaN(n.x)||isNaN(n.y)||o.intersectsRect(e)&&(t++,t>2))return!0;if(i>10)return!1;i++}return!1}doConnectedSubnetLayout(t){let i=t.vertexes.iterator;for(;i.next();){const l=i.value;l.hierarchicalVertexes.add(l)}let e=t,s=this.Hf;if(isNaN(s)&&(s=t.edges.count/t.vertexes.count),sMath.max(100,Math.sqrt(s*t.vertexes.count));)e=this.coarsenNetwork(e);let n=0;i=e.vertexes.iterator;let o=this.randomNumberGenerator;for(o===null&&(this.randomNumberGenerator=o=new RandomNumberGenerator(0));i.next();){i.value.idInCluster=n++;const l=10*(o.random()-.5),h=10*(o.random()-.5);this.isFixed(i.value)||(i.value.x=l,i.value.y=h);const a=i.value.hierarchicalVertexes.iterator;for(;a.next();)this.isFixed(a.value)||(a.value.x=l,a.value.y=h)}const r=this.computePairwiseDistances(e);this.KO(e,r,this.maxPrelayoutIterations,t.vertexes.count),this.JT(t,this.maxIterations)}computePairwiseDistances(t){const i=t.vertexes.count,e=new Array(i);for(let r=0;r0;){const l=o.shift(),h=l.vertexes.iterator;for(;h.next();){const a=h.value;n.has(a.idInCluster)||(n.set(a.idInCluster,n.get(l.idInCluster)+1),o.push(a))}}for(let l=0;l=0;m--)if(t[m].y>c.y&&t[m].x-c.xc.x&&t[m].y-c.ya+f){const u=s+o-h,d=n-a-f;return Geo.xw(u*u+d*d)}else if(n+rh+c)if(n>a+f){const u=s-h-c,d=n-a-f;return Geo.xw(u*u+d*d)}else if(n+ra+f?n-(a+f):n+rr-o;l?i.sort((m,g)=>m===null||g===null||m===g?0:m.centerX-g.centerX):i.sort((m,g)=>m===null||g===null||m===g?0:m.centerY-g.centerY);const h=this.Xf;let a=0,c=0,f=0;for(let m=0;mh||C-x>h){if(l)break;continue}if(k-S>h||S-k>h){if(!l)break;continue}const N=this.ON(g,P),T=2*g.charge,A=2*P.charge;if(N>1)a=T*A/(N*N),c=a*(x-C)/N,f=a*(k-S)/N;else{let D=this.randomNumberGenerator;D===null&&(this.randomNumberGenerator=D=new RandomNumberGenerator(0));const F=D.random(),R=D.random();if(x>C)c=Math.abs(P.bounds.right-g.bounds.x),c=T*A*(1+c)*F;else if(xS)f=Math.abs(P.bounds.bottom-g.bounds.y),f=T*A*(1+f)*R;else if(x1&&(a=.1*m.stiffness*(S-m.length),c=a*.5*(g.width+p.height)*(k-L)/S,f=a*.5*(g.width+p.height)*(b-C)/S),g.forceX-=c,g.forceY-=f,p.forceX+=c,p.forceY+=f}let d=0;for(let m=0;mthis.epsilonDistance*this.epsilonDistance}KO(t,i,e,s){const n=this.Dh+e,o=Math.sqrt(s);this.Vy=this.Ja*t.vertexes.count;const r=t.vertexes.toArray();let l=0,h=0,a=0;for(;this.Dh0){r[c].forceX=this.Vy*r[c].forceX/f,r[c].forceY=this.Vy*r[c].forceY/f,this.isFixed(r[c])||(r[c].x+=r[c].forceX,r[c].y+=r[c].forceY);const u=r[c].hierarchicalVertexes.iterator;for(;u.next();){const d=u.value;this.isFixed(d)||(d.centerX+=r[c].forceX,d.centerY+=r[c].forceY)}}l+=f*f}if(l>=h){if(a++,a>=5)break}else a=0;this.Vy*=.95}}moveVertex(t){let i=t.forceX,e=t.forceY;const s=this.moveLimit;return i<-s?i=-s:i>s&&(i=s),e<-s?e=-s:e>s&&(e=s),t.centerX+=i,t.centerY+=e,i*i+e*e}shouldInteract(t,i){return!0}moveFixedVertex(t){}commitLayout(){this.zy(),this.commitNodes(),this.isRouting&&this.commitLinks()}zy(){if(!this.setsPortSpots)return;const t=this.network.edges.iterator;for(;t.next();){const e=t.value.link;e!==null&&(e.fromSpot=Spot.Default,e.toSpot=Spot.Default)}}commitNodes(){let t=0,i=0;if(this.arrangesToOrigin){const n=Rect.l();this.Sw(this.network,n);const o=this.arrangementOrigin;t=o.x-n.x,i=o.y-n.y,Rect.s(n)}const e=Rect.l(),s=this.network.vertexes.iterator;for(;s.next();){const n=s.value;(t!==0||i!==0)&&(e.a(n.bounds),e.x+=t,e.y+=i,n.bounds=e),n.commit()}Rect.s(e)}commitLinks(){const t=this.network.edges.iterator;for(;t.next();)t.value.commit()}springStiffness(t){const i=t.stiffness;return isNaN(i)?this.Kf:i}springLength(t){const i=t.length;return isNaN(i)?this.Yf:i}electricalCharge(t){const i=t.charge;return isNaN(i)?this.Gf:i}electricalFieldX(t,i){return 0}electricalFieldY(t,i){return 0}gravitationalMass(t){const i=t.mass;return isNaN(i)?this.jf:i}gravitationalFieldX(t,i){return 0}gravitationalFieldY(t,i){return 0}isFixed(t){return t.isFixed}get currentIteration(){return this.Dh}get arrangementSpacing(){return this.ks}set arrangementSpacing(t){this.ks.equals(t)||(this.ks.a(t),this.invalidateLayout())}get arrangesToOrigin(){return this.xg}set arrangesToOrigin(t){this.xg!==t&&(Util.i(t,\"boolean\",ForceDirectedLayout,\"arrangesToOrigin\"),this.xg=t,this.invalidateLayout())}get setsPortSpots(){return this.Fn}set setsPortSpots(t){this.Fn!==t&&(Util.i(t,\"boolean\",ForceDirectedLayout,\"setsPortSpots\"),this.Fn=t,this.invalidateLayout())}get comments(){return this.Re}set comments(t){this.Re!==t&&(Util.i(t,\"boolean\",ForceDirectedLayout,\"comments\"),this.Re=t,this.invalidateLayout())}get maxPrelayoutIterations(){return this.bg}set maxPrelayoutIterations(t){this.bg!==t&&(Util.i(t,\"number\",ForceDirectedLayout,\"maxPrelayoutIterations\"),t>=0&&(this.bg=t,this.invalidateLayout()))}get maxIterations(){return this.kg}set maxIterations(t){this.kg!==t&&(Util.i(t,\"number\",ForceDirectedLayout,\"maxIterations\"),t>=0&&(this.kg=t,this.invalidateLayout()))}get epsilonDistance(){return this.Pg}set epsilonDistance(t){this.Pg!==t&&(Util.i(t,\"number\",ForceDirectedLayout,\"epsilonDistance\"),t>0&&(this.Pg=t,this.invalidateLayout()))}get infinityDistance(){return this.Xf}set infinityDistance(t){this.Xf!==t&&(Util.i(t,\"number\",ForceDirectedLayout,\"infinityDistance\"),t>1&&(this.Xf=t,this.invalidateLayout()))}get moveLimit(){return this.Mg}set moveLimit(t){this.Mg!==t&&(Util.i(t,\"number\",ForceDirectedLayout,\"moveLimit\"),this.Mg=t,this.invalidateLayout())}get randomNumberGenerator(){return this.Sg}set randomNumberGenerator(t){this.Sg!==t&&(t!==null&&typeof t.random!=\"function\"&&Util.o('ForceDirectedLayout.randomNumberGenerator must have a \"random()\" function on it: '+t),this.Sg=t)}get defaultSpringStiffness(){return this.Kf}set defaultSpringStiffness(t){this.Kf!==t&&(Util.i(t,\"number\",ForceDirectedLayout,\"defaultSpringStiffness\"),this.Kf=t,this.invalidateLayout())}get defaultSpringLength(){return this.Yf}set defaultSpringLength(t){this.Yf!==t&&(Util.i(t,\"number\",ForceDirectedLayout,\"defaultSpringLength\"),this.Yf=t,this.invalidateLayout())}get defaultElectricalCharge(){return this.Gf}set defaultElectricalCharge(t){this.Gf!==t&&(Util.i(t,\"number\",ForceDirectedLayout,\"defaultElectricalCharge\"),this.Gf=t,this.invalidateLayout())}get defaultGravitationalMass(){return this.jf}set defaultGravitationalMass(t){this.jf!==t&&(Util.i(t,\"number\",ForceDirectedLayout,\"defaultGravitationalMass\"),this.jf=t,this.invalidateLayout())}get defaultCommentSpringLength(){return this.Ng}set defaultCommentSpringLength(t){this.Ng!==t&&(Util.i(t,\"number\",ForceDirectedLayout,\"defaultCommentSpringLength\"),this.Ng=t,this.invalidateLayout())}get defaultCommentElectricalCharge(){return this.Cg}set defaultCommentElectricalCharge(t){this.Cg!==t&&(Util.i(t,\"number\",ForceDirectedLayout,\"defaultCommentElectricalCharge\"),this.Cg=t,this.invalidateLayout())}get prelayoutQuality(){return this.Hf}set prelayoutQuality(t){this.Hf!==t&&(Util.i(t,\"number\",ForceDirectedLayout,\"prelayoutQuality\"),this.Hf=t,this.invalidateLayout())}get prelayoutSpread(){return this.Ja}set prelayoutSpread(t){this.Ja!==t&&(Util.i(t,\"number\",ForceDirectedLayout,\"prelayoutSpread\"),this.Ja=t,this.invalidateLayout())}}class ForceDirectedNetwork extends LayoutNetwork{constructor(t){super(t)}createVertex(){return new ForceDirectedVertex(this)}createEdge(){return new ForceDirectedEdge(this)}}class ForceDirectedVertex extends LayoutVertex{K1;Y1;G1;j1;H1;hierarchicalVertexes;idInCluster;constructor(t){super(t),this.K1=!1,this.Y1=NaN,this.G1=NaN,this.j1=0,this.H1=0,this.hierarchicalVertexes=new List,this.idInCluster=-1}get isFixed(){return this.K1}set isFixed(t){this.K1!==t&&(Util.i(t,\"boolean\",ForceDirectedVertex,\"isFixed\"),this.K1=t)}get charge(){return this.Y1}set charge(t){this.Y1!==t&&(Util.i(t,\"number\",ForceDirectedVertex,\"charge\"),this.Y1=t)}get mass(){return this.G1}set mass(t){this.G1!==t&&(Util.i(t,\"number\",ForceDirectedVertex,\"mass\"),this.G1=t)}get forceX(){return this.j1}set forceX(t){this.j1!==t&&(Util.i(t,\"number\",ForceDirectedVertex,\"forceX\"),this.j1=t)}get forceY(){return this.H1}set forceY(t){this.H1!==t&&(Util.i(t,\"number\",ForceDirectedVertex,\"forceY\"),this.H1=t)}}class ForceDirectedEdge extends LayoutEdge{q1;W1;constructor(t){super(t),this.q1=NaN,this.W1=NaN}get stiffness(){return this.q1}set stiffness(t){this.q1!==t&&(Util.i(t,\"number\",ForceDirectedEdge,\"stiffness\"),this.q1=t)}get length(){return this.W1}set length(t){this.W1!==t&&(Util.i(t,\"number\",ForceDirectedEdge,\"length\"),this.W1=t)}}class RandomNumberGenerator{I;R;Q;M;A;seed;constructor(t){t===void 0&&(t=42),this.seed=t,this.A=48271,this.M=2147483647,this.Q=this.M/this.A,this.R=this.M%this.A,this.I=1/this.M,this.random()}random(){const t=this.seed/this.Q,i=this.seed%this.Q,e=this.A*i-this.R*t;return e>0?this.seed=e:this.seed=e+this.M,this.seed*this.I}}var LayeredDigraphCycleRemove=(w=>(w[w.DepthFirst=0]=\"DepthFirst\",w[w.Greedy=1]=\"Greedy\",w[w.FromLayers=2]=\"FromLayers\",w))(LayeredDigraphCycleRemove||{}),LayeredDigraphLayering=(w=>(w[w.OptimalLinkLength=10]=\"OptimalLinkLength\",w[w.LongestPathSink=11]=\"LongestPathSink\",w[w.LongestPathSource=12]=\"LongestPathSource\",w))(LayeredDigraphLayering||{}),LayeredDigraphInit=(w=>(w[w.DepthFirstOut=20]=\"DepthFirstOut\",w[w.DepthFirstIn=21]=\"DepthFirstIn\",w[w.Naive=22]=\"Naive\",w))(LayeredDigraphInit||{}),LayeredDigraphAggressive=(w=>(w[w.None=30]=\"None\",w[w.Less=31]=\"Less\",w[w.More=32]=\"More\",w))(LayeredDigraphAggressive||{}),LayeredDigraphPack=(w=>(w[w.None=0]=\"None\",w[w.Expand=1]=\"Expand\",w[w.Straighten=2]=\"Straighten\",w[w.Median=4]=\"Median\",w[w.MaybeExpand=8]=\"MaybeExpand\",w[w.All=15]=\"All\",w))(LayeredDigraphPack||{}),LayeredDigraphAlign=(w=>(w[w.None=0]=\"None\",w[w.UpperLeft=1]=\"UpperLeft\",w[w.UpperRight=2]=\"UpperRight\",w[w.LowerLeft=4]=\"LowerLeft\",w[w.LowerRight=8]=\"LowerRight\",w[w.All=15]=\"All\",w))(LayeredDigraphAlign||{});class LayeredDigraphLayout extends Layout{Ps;Ji;S;qf;Wf;Jf;$a;$f;sr;Zf;Fn;Mt;Xy;Yt;Lg;Ms;ui;Qs;Ss;Ns;Ut;Ag;Za;Tg;_s;Qf;nr;Rn;vn;IN;constructor(t){super(),this.Ps=25,this.Ji=25,this.S=0,this.qf=0,this.Wf=10,this.Jf=20,this.$a=4,this.$f=31,this.sr=15,this.Zf=10,this.Fn=!0,this.Mt=-1,this.Xy=-1,this.Yt=-1,this.Lg=0,this.Ms=0,this.ui=null,this.Qs=null,this.Ss=null,this.Ns=null,this.Ut=null,this.Ag=0,this.Za=null,this.Tg=null,this._s=0,this.Qf=null,this.nr=new Point,this.Rn=[],this.Rn.length=100,this.vn=15,this.IN=0,t&&Object.assign(this,t)}cloneProtected(t){super.cloneProtected(t),t.Ps=this.Ps,t.Ji=this.Ji,t.S=this.S,t.qf=this.qf,t.Wf=this.Wf,t.Jf=this.Jf,t.$a=this.$a,t.$f=this.$f,t.sr=this.sr,t.Zf=this.Zf,t.Fn=this.Fn,t.vn=this.vn}li(t){t in LayeredDigraphAggressive?this.aggressiveOption=t:t in LayeredDigraphCycleRemove?this.cycleRemoveOption=t:t in LayeredDigraphInit?this.initializeOption=t:t in LayeredDigraphLayering?this.layeringOption=t:super.li(t)}createNetwork(){return new LayeredDigraphNetwork(this)}doLayout(t){this.network===null&&(this.network=this.makeNetwork(t)),this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin),this.GO(),this.network.vertexes.count>0&&(this.network.deleteSelfEdges(),this.cycleRemoveOption!==2&&this.removeCycles(),this.jO(),this.cycleRemoveOption===2&&this.removeCycles(),this.HO(),this.qO(),this.WO(),this.reduceCrossings(),this.straightenAndPack(),this.updateParts()),this.network=null,this.isValidLayout=!0}linkMinLength(t){return 1}linkLengthWeight(t){return 1}linkStraightenWeight(t){const i=t.fromVertex.node||t.fromVertex.data,e=t.toVertex.node||t.toVertex.data;return i===null&&e===null?8:i===null||e===null?4:1}nodeMinLayerSpace(t,i){return t.node===null&&t.data===null?0:this.S===90||this.S===270?i?t.focus.y+10:t.bounds.height-t.focus.y+10:i?t.focus.x+10:t.bounds.width-t.focus.x+10}nodeMinColumnSpace(t,i){if(t.node===null&&t.data===null)return 0;const e=i?t.J1:t.$1;if(e!==null)return e;const s=this.S;return s===90||s===270?i?t.J1=t.focus.x/this.Ji+1|0:t.$1=(t.bounds.width-t.focus.x)/this.Ji+1|0:i?t.J1=t.focus.y/this.Ji+1|0:t.$1=(t.bounds.height-t.focus.y)/this.Ji+1|0}$i(){this.Za===null&&(this.Za=[]);let t=0;const i=this.network.vertexes.iterator;for(;i.next();){const e=i.value;this.Za[t]=e.layer,t++,this.Za[t]=e.column,t++,this.Za[t]=e.index,t++}return this.Za}Qe(t){let i=0;const e=this.network.vertexes.iterator;for(;e.next();){const s=e.value;s.layer=t[i],i++,s.column=t[i],i++,s.index=t[i],i++}}ZT(t,i){const e=this.Fh(t),s=this.ui[t];(this.Tg===null||this.Tg.length=0){for(c=e[o].po,f=0;fk||d===k&&g>P)&&r++,bd||k===d&&P>g)&&r++)}if(i<=0){for(c=e[o].tr,f=0;fk||d===k&&m>b)&&r++,Pd||k===d&&b>m)&&r++)}for(n[o*s+o]=r,a=o+1;a=0){for(p=e[o].po,M=e[a].po,f=0;f=0&&(h=s[r].tr);let a,c=0,f=0;if(l!==null)for(let u=0;u=0&&(h=r.tr);let a=0,c=0;const f=r.near;f!==null&&f.layer===r.layer&&(a+=f.column-1,c++);let u;if(l!==null)for(let d=0;d=0&&(h=r.tr);let a=0;const c=[],f=r.near;f!==null&&f.layer===r.layer&&(c[a]=f.column-1,a++);let u;if(l!==null)for(let d=0;dm-g);const d=a>>1;a&1?n[o]=c[d]:n[o]=c[d-1]+c[d]>>1}}return this.Rh(t,e),n}Gy(t,i,e,s,n){if(t.component===e){t.component=i;let o=0,r=0;if(s){const l=t.destinationEdges;for(;l.next();){const h=l.value,a=h.toVertex;o=t.layer-a.layer,r=this.linkMinLength(h),o===r&&this.Gy(a,i,e,s,n)}}if(n){const l=t.sourceEdges;for(;l.next();){const h=l.value,a=h.fromVertex;o=a.layer-t.layer,r=this.linkMinLength(h),o===r&&this.Gy(a,i,e,s,n)}}}}EN(t,i,e,s,n){if(t.component===e){if(t.component=i,s){const o=t.destinationEdges;for(;o.next();){const l=o.value.toVertex;this.EN(l,i,e,s,n)}}if(n){const o=t.sourceEdges;for(;o.next();){const l=o.value.fromVertex;this.EN(l,i,e,s,n)}}}}removeCycles(){const t=this.network.edges.iterator;for(;t.next();){const i=t.value;i.rev=!1}switch(this.qf){default:case 1:this.$O();break;case 0:this.ZO();break;case 2:this.QO();break}}QO(){const t=this.network,i=t.vertexes.iterator;let e=1/0;for(;i.next();){const s=i.value;e=Math.min(e,s.layer)}if(e<1/0){if(e<0)for(i.reset();i.next();){const r=i.value;r.layer-=e}const s=[];for(i.reset();i.next();){const r=i.value,l=s[r.layer];l===void 0?s[r.layer]=[r]:l.push(r)}let n=0;for(let r=0;r0)for(let h=0;hh.index&&(t.reverseEdge(r),r.rev=!0)}}_O(t){const i=t.vertexes.iterator;for(;i.next();){const e=i.value;if(e.Zi)return e}return null}_T(t){const i=t.vertexes.iterator;for(;i.next();){const e=i.value;if(e.Zi){let s=!0;const n=e.destinationEdges;for(;n.next();)if(n.value.toVertex.Zi){s=!1;break}if(s)return e}}return null}tD(t){const i=t.vertexes.iterator;for(;i.next();){const e=i.value;if(e.Zi){let s=!0;const n=e.sourceEdges;for(;n.next();)if(n.value.fromVertex.Zi){s=!1;break}if(s)return e}}return null}tI(t){let i=null,e=0;const s=this.network.vertexes.iterator;for(;s.next();){const n=s.value;if(n.Zi){let o=0;const r=n.destinationEdges;for(;r.next();)r.value.toVertex.Zi&&o++;let l=0;const h=n.sourceEdges;for(;h.next();)h.value.fromVertex.Zi&&l++;(i===null||ec&&this.Gy(h,e,-1,!0,!1)}for(this.Gy(t,s,-1,!0,!0);t.component!==e;){let r=0,l=1/0,h=0,a=null;const c=this.network.vertexes.iterator;for(;c.next();){const f=c.value;if(f.component===s){let u=0,d=!1;const m=f.po;o=m.length;for(let p=0;p0){for(i.reset();i.next();){const f=i.value;f.component===s&&(f.layer+=l)}t.component=e}else a.component=e}}nI(t){const i=this.network.vertexes.iterator;for(;i.next();){const n=i.value;n.component=-1}const e=0,s=1;for(this.Gy(t,s,-1,!0,!1);t.component!==e;){let n=0,o=1/0,r=0,l=null;const h=this.network.vertexes.iterator;for(;h.next();){const a=h.value;if(a.component===s){let c=0,f=!1;const u=a.po;let d=u.length;for(let g=0;gr)&&!f&&(l=a,r=c)}}if(n<0){for(i.reset();i.next();){const a=i.value;a.component===s&&(a.layer-=o)}t.component=e}else l.component=e}}HO(){const t=this.network,i=[],e=t.edges.iterator;for(;e.next();){const s=e.value;s.valid=!1,i.push(s)}for(let s=0;sb&&f>0){for(n.valid=!1,y=t.createVertex(),y.node=null,y.Q1=2,y.layer=f-1,x&&kb&&f>0;)y=t.createVertex(),y.node=null,y.Q1=3,y.layer=f-1,x&&kt[this.Ms]&&(this.Xy=t[e]-1,this.Ms=e),t[e]{o.index=this.ui[s],this.ui[s]++})}}hI(){let t=null;const i=this.network.vertexes.iterator;for(;i.next();){const e=i.value;if(e.near&&(t===null&&(t=new Map),e.layer===e.near.layer)){const s=t.get(e.near)||[];s.push(e),t.set(e.near,s)}}for(let e=this.Mt;e>=0;e--)for(i.reset();i.next();){const s=i.value;s.layer===e&&s.index===-1&&this.lD(s,t)}}lD(t,i){if(t.near)return;const e=t.layer;if(t.index=this.ui[e],this.ui[e]++,i){const o=i.get(t);Array.isArray(o)&&o.forEach(r=>{r.index=this.ui[e],this.ui[e]++})}const s=t.tr;let n=!0;for(;n;){n=!1;for(let o=0;ol.portFromColOffset&&(n=!0,s[o]=l,s[o+1]=r)}}for(let o=0;o{a.index=this.ui[e],this.ui[e]++})}const s=t.po;let n=!0,o=0;for(;n;)for(n=!1,o=0;oa.portToColOffset&&(n=!0,s[o]=a,s[o+1]=h)}let r,l;for(o=0;o=0;s--)this.tk(s,-1),this.ls(s,-1,!1,-1);n=this.countCrossings(),n=0;s--)this.tk(s,0),this.ls(s,0,!1,0);n=this.countCrossings(),n=0;r--)for(l=0;l<=r;l++){for(o=!0;o;)for(o=!1,s=r;s>=l;s--)o=this.ls(s,-1,!1,-1)||o;for(n=this.countCrossings(),n>=t?this.Qe(i):(t=n,i=this.$i()),o=!0;o;)for(o=!1,s=r;s>=l;s--)o=this.ls(s,1,!1,1)||o;for(n=this.countCrossings(),n>=t?this.Qe(i):(t=n,i=this.$i()),o=!0;o;)for(o=!1,s=l;s<=r;s++)o=this.ls(s,1,!1,1)||o;for(n>=t?this.Qe(i):(t=n,i=this.$i()),o=!0;o;)for(o=!1,s=l;s<=r;s++)o=this.ls(s,-1,!1,-1)||o;for(n>=t?this.Qe(i):(t=n,i=this.$i()),o=!0;o;)for(o=!1,s=r;s>=l;s--)o=this.ls(s,0,!1,0)||o;for(n>=t?this.Qe(i):(t=n,i=this.$i()),o=!0;o;)for(o=!1,s=l;s<=r;s++)o=this.ls(s,0,!1,0)||o;n>=t?this.Qe(i):(t=n,i=this.$i())}break;default:case 31:for(r=this.Mt,l=0,h=t+1;(a=this.countCrossings())=l;s--)o=this.ls(s,-1,!1,-1)||o;for(n=this.countCrossings(),n>=t?this.Qe(i):(t=n,i=this.$i()),o=!0;o;)for(o=!1,s=r;s>=l;s--)o=this.ls(s,1,!1,1)||o;for(n=this.countCrossings(),n>=t?this.Qe(i):(t=n,i=this.$i()),o=!0;o;)for(o=!1,s=l;s<=r;s++)o=this.ls(s,1,!1,1)||o;for(n>=t?this.Qe(i):(t=n,i=this.$i()),o=!0;o;)for(o=!1,s=l;s<=r;s++)o=this.ls(s,-1,!1,-1)||o;for(n>=t?this.Qe(i):(t=n,i=this.$i()),o=!0;o;)for(o=!1,s=r;s>=l;s--)o=this.ls(s,0,!1,0)||o;for(n>=t?this.Qe(i):(t=n,i=this.$i()),o=!0;o;)for(o=!1,s=l;s<=r;s++)o=this.ls(s,0,!1,0)||o;n>=t?this.Qe(i):(t=n,i=this.$i())}break}this.Qe(i)}tk(t,i){let e=0,s=!1;const n=this.Fh(t),o=this.ui[t],r=this.QT(t,i),l=this.Yy(t,i);for(e=0;e0)for(h=[],l=0;ll+1&&(m+=4*(v-l),g+=4*(v-(l+1)))}}const E=n[l].destinationEdges.iterator;if(e&&s>=0)for(;E.next();){const q=E.value;O=q.toVertex,q.valid&&O.layer!==t&&(N=this.linkStraightenWeight(q),T=q.portFromColOffset,A=q.portToColOffset,F=O.column,C+=(Math.abs(p+T-(F+A))+1)*N,S+=(Math.abs(L+T-(F+A))+1)*N)}for(E.reset();E.next();){const q=E.value;if(O=q.toVertex,q.valid&&O.layer===t){for(B=0;Bl+1&&(m+=4*(v-(l+1)),g+=4*(v-l))}}const U=n[l+1].destinationEdges.iterator;if(e&&s>=0)for(;U.next();){const q=U.value;O=q.toVertex,q.valid&&O.layer!==t&&(N=this.linkStraightenWeight(q),T=q.portFromColOffset,A=q.portToColOffset,F=O.column,C+=(Math.abs(y+T-(F+A))+1)*N,S+=(Math.abs(M+T-(F+A))+1)*N)}for(U.reset();U.next();){const q=U.value;if(O=q.toVertex,q.valid&&O.layer===t){for(B=0;B1e3&&s&&(e=!1),e){const n=[];let o=0;for(o=0;o<=this.Mt;o++)n[o]=0;let r=0;const l=this.network.vertexes.iterator;for(;l.next();){const a=l.value;t=a.layer,r=a.column;const c=this.nodeMinColumnSpace(a,!1);n[t]=Math.max(n[t],r+c)}const h=8;for(l.reset();l.next();){const a=l.value;t=a.layer,r=a.column,a.column=((this.Yt-n[t])*h>>1)+r*h}this.Yt*=h}if(this.sr&2){i=!0;let n=0;for(;i&&n=0;t--)i=this.Dg(t,-1)||i;i=this.Dg(this.Ms,0)||i,n++}}if(this.sr&4){for(t=this.Ms+1;t<=this.Mt;t++)this.UN(t,1);for(t=this.Ms-1;t>=0;t--)this.UN(t,-1);this.UN(this.Ms,0)}if(e&&(this.aD(-1),this.aD(1)),this.sr&2){i=!0;let n=0;for(;i&&n=0;t--)i=this.Dg(t,0)||i;n++}}}Dg(t,i){let e=!1;for(;this.fI(t,i);)e=!0;return e}fI(t,i){let e=0;const s=this.Fh(t),n=this.ui[t],o=this.Yy(t,-1);if(i>0)for(e=0;ec+this.nodeMinColumnSpace(s[e-1],!1)?u=a-1:u=a;let d=0;e+1>=n||s[e+1].column-a-1>f+this.nodeMinColumnSpace(s[e+1],!0)?d=a+1:d=a;let m=0,g=0,p=0,y=0,x=0,k=0;if(i<=0){const S=s[e].sourceEdges.iterator;for(;S.next();){const N=S.value,T=N.fromVertex;if(N.valid&&T.layer!==t){y=this.linkStraightenWeight(N),x=N.portFromColOffset,k=N.portToColOffset;const A=T.column;m+=(Math.abs(a+k-(A+x))+1)*y,g+=(Math.abs(u+k-(A+x))+1)*y,p+=(Math.abs(d+k-(A+x))+1)*y}}}if(i>=0){const S=s[e].destinationEdges.iterator;for(;S.next();){const N=S.value,T=N.toVertex;if(N.valid&&T.layer!==t){y=this.linkStraightenWeight(N),x=N.portFromColOffset,k=N.portToColOffset;const A=T.column;m+=(Math.abs(a+x-(A+k))+1)*y,g+=(Math.abs(u+x-(A+k))+1)*y,p+=(Math.abs(d+x-(A+k))+1)*y}}}let b=0,P=0,M=0;const L=o[s[e].index],C=r[s[e].index];L!==-1&&(b+=Math.abs(L-a),P+=Math.abs(L-u),M+=Math.abs(L-d)),C!==-1&&(b+=Math.abs(C-a),P+=Math.abs(C-u),M+=Math.abs(C-d)),g=r[e]?u=p:g<=r[e]&&(u=g)),u!==a&&(l=!0,h=!0,s[e].column=u)}return this.Rh(t,s),this.Ky(),l}uI(){for(let t=0;t<=this.Yt;t++)for(;this.dI(t,1););this.Ky()}dI(t,i){let e=!0;const s=this.network.vertexes.iterator;for(;s.next();){const o=s.value,r=this.nodeMinColumnSpace(o,!0),l=this.nodeMinColumnSpace(o,!1);if(o.column-r<=t&&o.column+l>=t){e=!1;break}}let n=!1;if(e){if(i>0)for(s.reset();s.next();){const o=s.value;o.column>t&&(o.column-=1,n=!0)}if(i<0)for(s.reset();s.next();){const o=s.value;o.column0&&(e=t+1),i<0&&(e=t-1);let s=0;const n=[],o=[];for(s=0;s<=this.Mt;s++)n[s]=!1,o[s]=!1;const r=this.network.vertexes.iterator;for(;r.next();){const a=r.value,c=a.column-this.nodeMinColumnSpace(a,!0),f=a.column+this.nodeMinColumnSpace(a,!1);c<=t&&f>=t&&(n[a.layer]=!0),c<=e&&f>=e&&(o[a.layer]=!0)}let l=!0,h=!1;for(s=0;s<=this.Mt;s++)l=l&&!(n[s]&&o[s]);if(l){if(i>0)for(r.reset();r.next();){const a=r.value;a.column>t&&(a.column-=1,h=!0)}if(i<0)for(r.reset();r.next();){const a=r.value;a.column0)for(i=0;i<=this.Yt;i++)for(e=this.$i(),s=this.Z1(!0),n=s+1;ss?this.Qe(e):o=0;i--)for(e=this.$i(),s=this.Z1(!0),n=s+1;ss?this.Qe(e):o0)for(e.reset();e.next();){const c=e.value;c.column-this.nodeMinColumnSpace(c,!0)<=t&&(c.component=this._s)}if(i<0)for(e.reset();e.next();){const c=e.value;c.column+this.nodeMinColumnSpace(c,!1)>=t&&(c.component=this._s)}for(this._s++,e.reset();e.next();){const c=e.value;c.component===-1&&(this.EN(c,this._s,-1,!0,!0),this._s++)}let s=0;const n=[];for(s=0;s0)for(let f=0;f0;f--)o[c*(this.Yt+1)+f]!==-1&&o[c*(this.Yt+1)+f-1]!==-1&&o[c*(this.Yt+1)+f]!==o[c*(this.Yt+1)+f-1]&&(n[o[c*(this.Yt+1)+f]*this._s+o[c*(this.Yt+1)+f-1]]=!0)}const r=[];for(s=0;s0)for(e.reset();e.next();){const c=e.value;r[c.component]&&(c.column-=1,a=!0)}if(i<0)for(e.reset();e.next();){const c=e.value;r[c.component]&&(c.column+=1,a=!0)}return a}cI(){const t=Util.nt(),i=this.Qf.length;for(let u=0;u<=i;u++)t[u]=[];const e=this.network.vertexes.iterator;for(;e.next();){const u=e.value,d=i-u.layer,m=t[d];m[u.index]=u}const s=new GSet;this.pI(t,s);let n=null,o=null,r=null,l=null;const h=(this.vn&1)!==0,a=(this.vn&2)!==0,c=(this.vn&4)!==0,f=(this.vn&8)!==0;h&&(this.el(t,s,!0),n=this.ik(t,!0,!1)),t.reverse(),c&&(this.el(t,s,!1),r=this.ik(t,!1,!1));for(const u of t)u.reverse();f&&(this.el(t,s,!1),l=this.ik(t,!1,!0)),t.reverse(),a&&(this.el(t,s,!0),o=this.ik(t,!0,!0)),Util.tt(t),this.yI(n,o,r,l),this.network.vertexes.each(u=>{const d=u,m=Util.nt();h&&m.push(n.get(d)),a&&m.push(o.get(d)),c&&m.push(r.get(d)),f&&m.push(l.get(d)),m.sort((k,b)=>k-b);const g=m.length,p=Math.floor((g-1)/2),y=Math.ceil((g-1)/2),x=(m[p]+m[y])/2;Util.tt(m),d.he=x})}pI(t,i){const e=t.length;for(let s=1;sf)&&i.add(m)}o++}n=f}}}}wI(t){if(t.node===null){const i=t.getProperSourceVertexes();if(i.length>0)return i[0].node===null}return!1}el(t,i,e){this.xI(t);for(const s of t){let n=-1;for(const o of s){const r=e?o.getProperSourceVertexes():o.getProperDestinationVertexes(),l=r.length;if(l>0){r.sort((a,c)=>a.vh-c.vh);const h=(l-1)/2;for(let a=Math.floor(h),c=Math.ceil(h);a<=c;a++)if(o.On===o){const f=r[a];let u;e?u=f.getDestinationEdge(o):u=o.getDestinationEdge(f),!i.has(u)&&n0){const c=this.dD(a,t),f=s?c.width:c.height,u=a._e.tu+a.he+a.In-(c.he+c.In+f+this.columnSpacing);c._e.tu=Math.min(c._e.tu,u)}h=a.vh+1}while(l0){const s=this.dD(e,i),n=s.Qa;this.uD(n,i),t._e===t&&(t._e=n._e);const o=this.S===90||this.S===270?s.width:s.height;if(t._e===n._e){const r=n.he+s.In+o-e.In+this.columnSpacing;t.he=Math.max(t.he,r)}}e=e.On}while(e!==t);for(;e.On!==t;)e=e.On,e.he=t.he,e._e=t._e}dD(t,i){const e=t.fD,s=t.vh;return s<1&&Util.o(\"Could not determine previous vertex in layer\"),i[e][s-1]}yI(...t){let i=-1;const e=Util.nt(),s=Util.nt();let n=1/0;for(let o=0;o<4;o++){if(!t[o])continue;const r=this.kI(t[o],e,s,o);r{r.set(h.key,h.value+l)})}Util.tt(e),Util.tt(s)}kI(t,i,e,s){if(!t||t.count===0)return i[s]=0,e[s]=0,1/0;let n=1/0,o=-1/0;return t.each(r=>{const l=r.key,h=r.value,a=this.S===90||this.S===270?l.width:l.height;ho&&(o=h+a)}),i[s]=n,e[s]=o,o-n}commitLayout(){this.zy(),this.commitNodes(),this.VN(),this.isRouting&&this.commitLinks()}zy(){if(!this.setsPortSpots)return;const t=this._1(!0),i=this._1(!1),e=this.network.edges.iterator;for(;e.next();){const n=e.value.link;n!==null&&(n.fromSpot=t,n.toSpot=i)}}_1(t){return this.S===270?t?Spot.MiddleTop:Spot.MiddleBottom:this.S===90?t?Spot.MiddleBottom:Spot.MiddleTop:this.S===180?t?Spot.MiddleLeft:Spot.MiddleRight:t?Spot.MiddleRight:Spot.MiddleLeft}commitNodes(){this.Qs=[],this.Ss=[],this.Ns=[],this.Ut=[];for(let d=0;d<=this.Mt;d++)this.Qs[d]=0,this.Ss[d]=0,this.Ns[d]=0,this.Ut[d]=0;const t=this.network.vertexes.iterator;for(;t.next();){const d=t.value,m=d.layer;this.Qs[m]=Math.max(this.Qs[m],this.nodeMinLayerSpace(d,!0)),this.Ss[m]=Math.max(this.Ss[m],this.nodeMinLayerSpace(d,!1))}let i=0;const e=this.Ps;for(let d=0;d<=this.Mt;d++){let m=e;this.Qs[d]+this.Ss[d]<=0&&(m=0),d>0&&(i+=m/2),this.S===90||this.S===0?(i+=this.Ss[d],this.Ns[d]=i,i+=this.Qs[d]):(i+=this.Qs[d],this.Ns[d]=i,i+=this.Ss[d]),d=0;n--)this.S===270?n===0?e.push(new Rect(0,0,s,Math.abs(this.Ut[0]))):e.push(new Rect(0,this.Ut[n-1],s,Math.abs(this.Ut[n-1]-this.Ut[n]))):this.S===90?n===0?e.push(new Rect(0,this.Ut[0],s,Math.abs(this.Ut[0]-t))):e.push(new Rect(0,this.Ut[n],s,Math.abs(this.Ut[n-1]-this.Ut[n]))):this.S===180?n===0?e.push(new Rect(0,0,Math.abs(this.Ut[0]),s)):e.push(new Rect(this.Ut[n-1],0,Math.abs(this.Ut[n-1]-this.Ut[n]),s)):n===0?e.push(new Rect(this.Ut[0],0,Math.abs(this.Ut[0]-t),s)):e.push(new Rect(this.Ut[n],0,Math.abs(this.Ut[n-1]-this.Ut[n]),s));this.commitLayers(e,this.nr)}commitLayers(t,i){}commitLinks(){const t=this.network.edges.iterator;let i;for(;t.next();)i=t.value.link,i!==null&&(i.startRoute(),i.clearPoints(),i.commitRoute());for(t.reset();t.next();)i=t.value.link,i!==null&&i.updateRoute();for(t.reset();t.next();){const e=t.value;if(i=e.link,i===null||i.pointsCount===0)continue;i.startRoute();const s=i;let n=s.fromNode,o=s.toNode,r=s.fromPort,l=s.toPort;if(n!==null){const N=n.findVisibleNode();N!==null&&N!==n&&(n=N,r=N.port)}if(o!==null){const N=o.findVisibleNode();N!==null&&N!==o&&(o=N,l=N.port)}const h=i.computeSpot(!0,r),a=i.computeSpot(!1,l);let c=e.fromVertex,f=e.toVertex;if(e.valid){if(i.curve===9&&i.pointsCount===4)if(c.column===f.column&&this.alignOption===0){const N=i.getLinkPoint(n,r,h,!0,!1,o,l),T=i.getLinkPoint(o,l,a,!1,!1,n,r);N.isReal()||N.set(n.actualBounds.center),T.isReal()||T.set(o.actualBounds.center),i.clearPoints(),i.addPointAt(N.x,N.y),i.addPointAt((2*N.x+T.x)/3,(2*N.y+T.y)/3),i.addPointAt((N.x+2*T.x)/3,(N.y+2*T.y)/3),i.addPointAt(T.x,T.y)}else{let N=!1,T=!1;if(r!==null&&h===Spot.None&&(N=!0),l!==null&&a===Spot.None&&(T=!0),N||T){let A=null;N&&(A=i.getLinkPointFromPoint(n,r,r.getDocumentPoint(Spot.Center),i.getPoint(3),!0),A.isReal()||A.set(n.actualBounds.center),i.setPointAt(0,A.x,A.y));let D=null;if(T&&(D=i.getLinkPointFromPoint(o,l,l.getDocumentPoint(Spot.Center),i.getPoint(0),!1),D.isReal()||D.set(o.actualBounds.center),i.setPointAt(3,D.x,D.y)),A){const F=i.getPoint(2);i.setPointAt(1,(A.x*2+F.x)/3,(A.y*2+F.y)/3)}if(D){const F=i.getPoint(1);i.setPointAt(2,(D.x*2+F.x)/3,(D.y*2+F.y)/3)}}}i.commitRoute();continue}if(c.layer===f.layer){i.commitRoute();continue}let u=!1,d=!1;const m=this.Ps;let g=0,p=i.firstPickIndex+1;if(i.isOrthogonal)d=!0,g=i.pointsCount,g>4&&i.points.removeRange(2,g-3);else if(i.curve===9)u=!0,g=i.pointsCount,g>4&&i.points.removeRange(2,g-3),g===4&&(p=2);else{g=i.pointsCount;const N=h===Spot.None,T=a===Spot.None;g>2&&N&&T?i.points.removeRange(1,g-2):g>3&&N&&!T?i.points.removeRange(1,g-3):g>3&&!N&&T?i.points.removeRange(2,g-2):g>4&&!N&&!T&&i.points.removeRange(2,g-3)}let y,x,k=0,b=0,P=0,M=0,L=0,C=0,S=0;if(e.rev){let N=0;for(;f!==null&&c!==f;){y=null,x=null;const T=f.sourceEdges.iterator;for(;T.next();){const A=T.value;if(A.link===e.link&&(y=A.fromVertex,x=A.toVertex,y.node===null))break}if(y===null)break;if(y!==c)if(k=i.getPoint(p-1).x,b=i.getPoint(p-1).y,P=y.centerX,M=y.centerY,d)this.S===180||this.S===0?p===i.firstPickIndex+1?(i.insertPointAt(p++,k,b),i.insertPointAt(p++,k,M)):(x!==null?x.centerY:b)!==M&&(L=this.Ut[y.layer-1]+this.nr.x,i.insertPointAt(p++,L,b),i.insertPointAt(p++,L,M)):p===i.firstPickIndex+1?(i.insertPointAt(p++,k,b),i.insertPointAt(p++,P,b)):(x!==null?x.centerX:k)!==P&&(L=this.Ut[y.layer-1]+this.nr.y,i.insertPointAt(p++,k,L),i.insertPointAt(p++,P,L));else if(p===i.firstPickIndex+1)if(C=Math.max(10,this.Qs[f.layer]),S=Math.max(10,this.Ss[f.layer]),u)this.S===180?P<=f.bounds.x?(N=f.bounds.x,i.insertPointAt(p++,N-C,M),i.insertPointAt(p++,N,M),i.insertPointAt(p++,N+S,M)):(i.insertPointAt(p++,P-C,M),i.insertPointAt(p++,P,M),i.insertPointAt(p++,P+S,M)):this.S===90?M>=f.bounds.bottom?(N=f.bounds.y+f.bounds.height,i.insertPointAt(p++,P,N+S),i.insertPointAt(p++,P,N),i.insertPointAt(p++,P,N-C)):(i.insertPointAt(p++,P,M+S),i.insertPointAt(p++,P,M),i.insertPointAt(p++,P,M-C)):this.S===270?M<=f.bounds.y?(N=f.bounds.y,i.insertPointAt(p++,P,N-C),i.insertPointAt(p++,P,N),i.insertPointAt(p++,P,N+S)):(i.insertPointAt(p++,P,M-C),i.insertPointAt(p++,P,M),i.insertPointAt(p++,P,M+S)):this.S===0&&(P>=f.bounds.right?(N=f.bounds.x+f.bounds.width,i.insertPointAt(p++,N+S,M),i.insertPointAt(p++,N,M),i.insertPointAt(p++,N-C,M)):(i.insertPointAt(p++,P+S,M),i.insertPointAt(p++,P,M),i.insertPointAt(p++,P-C,M)));else{i.insertPointAt(p++,k,b);let A=0;this.S===180||this.S===0?((this.S===180?P>=f.bounds.right:P<=f.bounds.x)&&(A=(this.S===0?-C:S)/2),i.insertPointAt(p++,k+A,M)):((this.S===270?M>=f.bounds.bottom:M<=f.bounds.y)&&(A=(this.S===90?-C:S)/2),i.insertPointAt(p++,P,b+A)),i.insertPointAt(p++,P,M)}else C=Math.max(10,this.Qs[y.layer]),S=Math.max(10,this.Ss[y.layer]),u?this.S===180?(i.insertPointAt(p++,P-C-m,M),i.insertPointAt(p++,Math.min(P-C+m/2,P),M),i.insertPointAt(p++,P,M),i.insertPointAt(p++,P,M),i.insertPointAt(p++,Math.max(P+S-m/2,P),M),i.insertPointAt(p++,P+S+m,M)):this.S===90?(i.insertPointAt(p++,P,M+S+m),i.insertPointAt(p++,P,Math.max(M+S-m/2,M)),i.insertPointAt(p++,P,M),i.insertPointAt(p++,P,M),i.insertPointAt(p++,P,Math.min(M-C+m/2,M)),i.insertPointAt(p++,P,M-C-m)):this.S===270?(i.insertPointAt(p++,P,M-C-m),i.insertPointAt(p++,P,Math.min(M-C+m/2,M)),i.insertPointAt(p++,P,M),i.insertPointAt(p++,P,M),i.insertPointAt(p++,P,Math.max(M+S-m/2,M)),i.insertPointAt(p++,P,M+S+m)):(i.insertPointAt(p++,P+S+m,M),i.insertPointAt(p++,Math.max(P+S-m/2,P),M),i.insertPointAt(p++,P,M),i.insertPointAt(p++,P,M),i.insertPointAt(p++,Math.min(P-C+m/2,P),M),i.insertPointAt(p++,P-C-m,M)):(this.S===180||this.S===90||this.S,i.insertPointAt(p++,P,M));f=y}if(l===null||h!==Spot.None||d)if(k=i.getPoint(p-1).x,b=i.getPoint(p-1).y,P=i.getPoint(p).x,M=i.getPoint(p).y,d){const T=this.Ss[c.layer];let A=0;this.S===180||this.S===0?(A=b,A>=c.bounds.y&&A<=c.bounds.bottom&&(this.S===180?P>=c.bounds.x:P<=c.bounds.right)&&(N=c.centerX+(this.S===180?-T:T),A=c.bounds.x&&A<=c.bounds.right&&(this.S===270?M>=c.bounds.y:M<=c.bounds.bottom)&&(N=c.centerY+(this.S===270?-T:T),A=c.bounds.x?(N=c.bounds.x+c.bounds.width,i.setPointAt(p-2,N,b),i.setPointAt(p-1,N+S,b)):this.S===90&&M<=c.bounds.bottom?(N=c.bounds.y,i.setPointAt(p-2,k,N),i.setPointAt(p-1,k,N-C)):this.S===270&&M>=c.bounds.y?(N=c.bounds.y+c.bounds.height,i.setPointAt(p-2,k,N),i.setPointAt(p-1,k,N+S)):this.S===0&&P<=c.bounds.right&&(N=c.bounds.x,i.setPointAt(p-2,N,b),i.setPointAt(p-1,N-C,b));else{C=Math.max(10,this.Qs[c.layer]),S=Math.max(10,this.Ss[c.layer]);let T=0;this.S===180||this.S===0?((this.S===180?P<=c.bounds.x:P>=c.bounds.right)&&(T=(this.S===0?S:-C)/2),i.insertPointAt(p++,P+T,b)):((this.S===270?M<=c.bounds.y:M>=c.bounds.bottom)&&(T=(this.S===90?S:-C)/2),i.insertPointAt(p++,k,M+T)),i.insertPointAt(p++,P,M)}}else{for(;c!==null&&c!==f;){y=null,x=null;const N=c.destinationEdges.iterator;for(;N.next();){const T=N.value;if(T.link===e.link&&(y=T.toVertex,x=T.fromVertex,x.node!==null&&(x=null),y.node===null))break}if(y===null)break;y!==f&&(k=i.getPoint(p-1).x,b=i.getPoint(p-1).y,P=y.centerX,M=y.centerY,d?this.S===180||this.S===0?(x!==null?x.centerY:b)!==M&&(L=this.Ut[y.layer]+this.nr.x,p===i.firstPickIndex+1&&(this.S===0?L=Math.max(L,k):L=Math.min(L,k)),i.insertPointAt(p++,L,b),i.insertPointAt(p++,L,M)):(x!==null?x.centerX:k)!==P&&(L=this.Ut[y.layer]+this.nr.y,p===i.firstPickIndex+1&&(this.S===90?L=Math.max(L,b):L=Math.min(L,b)),i.insertPointAt(p++,k,L),i.insertPointAt(p++,P,L)):(C=Math.max(10,this.Qs[y.layer]),S=Math.max(10,this.Ss[y.layer]),u?this.S===180?(i.insertPointAt(p++,P+S+m,M),i.insertPointAt(p++,Math.max(P+S-m/2,P),M),i.insertPointAt(p++,P,M),i.insertPointAt(p++,P,M),i.insertPointAt(p++,Math.min(P-C+m/2,P),M),i.insertPointAt(p++,P-C-m,M)):this.S===90?(i.insertPointAt(p++,P,M-C-m),i.insertPointAt(p++,P,Math.min(M-C+m/2,M)),i.insertPointAt(p++,P,M),i.insertPointAt(p++,P,M),i.insertPointAt(p++,P,Math.max(M+S-m/2,M)),i.insertPointAt(p++,P,M+S+m)):this.S===270?(i.insertPointAt(p++,P,M+S+m),i.insertPointAt(p++,P,Math.max(M+S-m/2,M)),i.insertPointAt(p++,P,M),i.insertPointAt(p++,P,M),i.insertPointAt(p++,P,Math.min(M-C+m/2,M)),i.insertPointAt(p++,P,M-C-m)):(i.insertPointAt(p++,P-C-m,M),i.insertPointAt(p++,Math.min(P-C+m/2,P),M),i.insertPointAt(p++,P,M),i.insertPointAt(p++,P,M),i.insertPointAt(p++,Math.max(P+S-m/2,P),M),i.insertPointAt(p++,P+S+m,M)):this.S===180?(i.insertPointAt(p++,P+S,M),i.insertPointAt(p++,P-C,M)):this.S===90?(i.insertPointAt(p++,P,M-C),i.insertPointAt(p++,P,M+S)):this.S===270?(i.insertPointAt(p++,P,M+S),i.insertPointAt(p++,P,M-C)):(i.insertPointAt(p++,P-C,M),i.insertPointAt(p++,P+S,M)))),c=y}d&&(k=i.getPoint(p-1).x,b=i.getPoint(p-1).y,P=i.getPoint(p).x,M=i.getPoint(p).y,this.S===180||this.S===0?b!==M&&(this.S===0?L=Math.min(Math.max((P+k)/2,this.Ut[f.layer]+this.nr.x),P):L=Math.max(Math.min((P+k)/2,this.Ut[f.layer]+this.nr.x),P),i.insertPointAt(p++,L,b),i.insertPointAt(p++,L,M)):k!==P&&(this.S===90?L=Math.min(Math.max((M+b)/2,this.Ut[f.layer]+this.nr.y),M):L=Math.max(Math.min((M+b)/2,this.Ut[f.layer]+this.nr.y),M),i.insertPointAt(p++,k,L),i.insertPointAt(p++,P,L)))}if(s!==null&&u&&i.pointsCount>=4){if(r!==null){const N=h===Spot.None?i.getLinkPointFromPoint(n,r,r.getDocumentPoint(Spot.Center),i.getPoint(3),!0):i.getPoint(0);if(h===Spot.None){const T=i.getPoint(2),A=i.getPoint(3);this.direction===90||this.direction===270?(i.setPointAt(1,(N.x+T.x)/2,T.y),i.setPointAt(2,A.x,(T.y+A.y)/2)):(i.setPointAt(1,T.x,(N.y+T.y)/2),i.setPointAt(2,(T.x+A.x)/2,A.y))}N.isReal()||N.set(n.actualBounds.center),i.setPointAt(0,N.x,N.y)}if(l!==null){const N=a===Spot.None?i.getLinkPointFromPoint(o,l,l.getDocumentPoint(Spot.Center),i.getPoint(i.pointsCount-4),!1):i.getPoint(i.pointsCount-1);if(a===Spot.None){const T=i.getPoint(i.pointsCount-3),A=i.getPoint(i.pointsCount-4);this.direction===90||this.direction===270?(i.setPointAt(i.pointsCount-2,(N.x+T.x)/2,T.y),i.setPointAt(i.pointsCount-2,A.x,(T.y+A.y)/2)):(i.setPointAt(i.pointsCount-2,T.x,(N.y+T.y)/2),i.setPointAt(i.pointsCount-3,(T.x+A.x)/2,A.y))}N.isReal()||N.set(o.actualBounds.center),i.setPointAt(i.pointsCount-1,N.x,N.y)}}i.commitRoute(),e.commit()}}GO(){this.Xy=-1,this.Lg=0,this.Ms=0,this.Za=null,this.Tg=null,this.Qf=null;for(let t=0;t=this.Rn.length){const n=[];for(let o=0;o=0&&(this.Ps=t,this.invalidateLayout()))}get columnSpacing(){return this.Ji}set columnSpacing(t){this.Ji!==t&&(Util.i(t,\"number\",LayeredDigraphLayout,\"columnSpacing\"),t>0&&(this.Ji=t,this.invalidateLayout()))}get direction(){return this.S}set direction(t){this.S!==t&&(Util.i(t,\"number\",LayeredDigraphLayout,\"direction\"),t===0||t===90||t===180||t===270?(this.S=t,this.invalidateLayout()):Util.o(\"LayeredDigraphLayout.direction must be 0, 90, 180, or 270\"))}get cycleRemoveOption(){return this.qf}set cycleRemoveOption(t){this.qf!==t&&(t===1||t===0||t===2)&&(this.qf=t,this.invalidateLayout())}get layeringOption(){return this.Wf}set layeringOption(t){this.Wf!==t&&(t===10||t===11||t===12)&&(this.Wf=t,this.invalidateLayout())}get initializeOption(){return this.Jf}set initializeOption(t){this.Jf!==t&&(t===20||t===21||t===22)&&(this.Jf=t,this.invalidateLayout())}get iterations(){return this.$a}set iterations(t){this.$a!==t&&t>=0&&(this.$a=t,this.invalidateLayout())}get aggressiveOption(){return this.$f}set aggressiveOption(t){this.$f!==t&&(t===30||t===31||t===32)&&(this.$f=t,this.invalidateLayout())}get packOption(){return this.sr}set packOption(t){this.sr!==t&&(Util.i(t,\"number\",LayeredDigraphLayout,\"packOption\"),t>=0&&t<8&&(this.sr=t,this.invalidateLayout()))}get packIterations(){return this.Zf}set packIterations(t){this.Zf=t}get alignOption(){return this.vn}set alignOption(t){this.vn!==t&&(Util.i(t,\"number\",LayeredDigraphLayout,\"align\"),t>=0&&t<16&&(this.vn=t,this.invalidateLayout()))}get setsPortSpots(){return this.Fn}set setsPortSpots(t){this.Fn!==t&&(Util.i(t,\"boolean\",LayeredDigraphLayout,\"setsPortSpots\"),this.Fn=t,this.invalidateLayout())}get maxLayer(){return this.Mt}get maxIndex(){return this.Xy}get maxColumn(){return this.Yt}get minIndexLayer(){return this.Lg}get maxIndexLayer(){return this.Ms}static CycleDepthFirst=0;static CycleGreedy=1;static CycleFromLayers=2;static LayerOptimalLinkLength=10;static LayerLongestPathSink=11;static LayerLongestPathSource=12;static InitDepthFirstOut=20;static InitDepthFirstIn=21;static InitNaive=22;static AggressiveNone=30;static AggressiveLess=31;static AggressiveMore=32;static PackNone=0;static PackExpand=1;static PackStraighten=2;static PackMedian=4;static PackAll=15;static AlignNone=0;static AlignUpperLeft=1;static AlignUpperRight=2;static AlignLowerLeft=4;static AlignLowerRight=8;static AlignAll=15}class LayeredDigraphNetwork extends LayoutNetwork{constructor(t){super(t)}createVertex(){return new LayeredDigraphVertex(this)}createEdge(){return new LayeredDigraphEdge(this)}}class LayeredDigraphVertex extends LayoutVertex{qo;Bo;Dt;ek;sk;Zi;_f;jn;Q1;J1;$1;Qa;On;fD;vh;_e;tu;he;In;jy=null;Hy=null;qy=null;Wy=null;constructor(t){super(t),this.qo=-1,this.Bo=-1,this.Dt=-1,this.ek=NaN,this.sk=null,this.Zi=!1,this._f=NaN,this.jn=NaN,this.Q1=0,this.J1=null,this.$1=null}static gD(t,i){return t.index-i.index}getProperSourceEdges(){if(!this.qy){const t=[];for(const i of this.po){const e=i;e.valid&&t.push(e)}this.qy=t}return this.qy}getProperDestinationEdges(){if(!this.Wy){const t=[];for(const i of this.tr){const e=i;e.valid&&t.push(e)}this.Wy=t}return this.Wy}getDestinationEdge(t){const i=this.getProperDestinationEdges();for(const e of i)if(e.toVertex===t)return e;Util.o(\"Unable to find destination edge to given vertex\")}getProperSourceVertexes(){if(!this.jy){const t=[];for(const i of this.po){const e=i;!e.valid||e.fromVertex.layer<=e.toVertex.layer||t.push(e.fromVertex)}t.sort(LayeredDigraphVertex.gD),this.jy=t}return this.jy}getProperDestinationVertexes(){if(!this.Hy){const t=[];for(const i of this.tr){const e=i;!e.valid||e.fromVertex.layer<=e.toVertex.layer||t.push(e.toVertex)}t.sort(LayeredDigraphVertex.gD),this.Hy=t}return this.Hy}addSourceEdge(t){super.addSourceEdge(t),this.jy=null,this.qy=null}deleteSourceEdge(t){super.deleteSourceEdge(t),this.jy=null,this.qy=null}addDestinationEdge(t){super.addDestinationEdge(t),this.Hy=null,this.Wy=null}deleteDestinationEdge(t){super.deleteDestinationEdge(t),this.Hy=null,this.Wy=null}get layer(){return this.qo}set layer(t){this.qo!==t&&(Util.i(t,\"number\",LayeredDigraphVertex,\"layer\"),this.qo=t)}get column(){return this.Bo}set column(t){this.Bo!==t&&(Util.i(t,\"number\",LayeredDigraphVertex,\"column\"),this.Bo=t)}get index(){return this.Dt}set index(t){this.Dt!==t&&(Util.i(t,\"number\",LayeredDigraphVertex,\"index\"),this.Dt=t)}get component(){return this.ek}set component(t){this.ek!==t&&(Util.i(t,\"number\",LayeredDigraphVertex,\"component\"),this.ek=t)}get near(){return this.sk}set near(t){this.sk!==t&&(this.sk=t)}}class LayeredDigraphEdge extends LayoutEdge{Zi;nk;ok;rk;lk;hk;ak;constructor(t){super(t),this.Zi=!1,this.nk=!1,this.ok=!1,this.rk=NaN,this.lk=NaN,this.hk=0,this.ak=0}get fromVertex(){return this.Je}set fromVertex(t){this.Je!==t&&(this.Je=t)}get toVertex(){return this.$e}set toVertex(t){this.$e!==t&&(this.$e=t)}get valid(){return this.Zi}set valid(t){this.Zi!==t&&(Util.i(t,\"boolean\",LayeredDigraphEdge,\"valid\"),this.Zi=t)}get rev(){return this.nk}set rev(t){this.nk!==t&&(Util.i(t,\"boolean\",LayeredDigraphEdge,\"rev\"),this.nk=t)}get forest(){return this.ok}set forest(t){this.ok!==t&&(Util.i(t,\"boolean\",LayeredDigraphEdge,\"forest\"),this.ok=t)}get portFromPos(){return this.rk}set portFromPos(t){this.rk!==t&&(Util.i(t,\"number\",LayeredDigraphEdge,\"portFromPos\"),this.rk=t)}get portToPos(){return this.lk}set portToPos(t){this.lk!==t&&(Util.i(t,\"number\",LayeredDigraphEdge,\"portToPos\"),this.lk=t)}get portFromColOffset(){return this.hk}set portFromColOffset(t){this.hk!==t&&(Util.i(t,\"number\",LayeredDigraphEdge,\"portFromColOffset\"),this.hk=t)}get portToColOffset(){return this.ak}set portToColOffset(t){this.ak!==t&&(Util.i(t,\"number\",LayeredDigraphEdge,\"portToColOffset\"),this.ak=t)}}var TreePath=(w=>(w[w.Default=0]=\"Default\",w[w.Destination=1]=\"Destination\",w[w.Source=2]=\"Source\",w))(TreePath||{}),TreeSorting=(w=>(w[w.Forwards=10]=\"Forwards\",w[w.Reverse=11]=\"Reverse\",w[w.Ascending=12]=\"Ascending\",w[w.Descending=13]=\"Descending\",w))(TreeSorting||{}),TreeAlignment=(w=>(w[w.CenterSubtrees=20]=\"CenterSubtrees\",w[w.CenterChildren=21]=\"CenterChildren\",w[w.Start=22]=\"Start\",w[w.End=23]=\"End\",w[w.Bus=24]=\"Bus\",w[w.BusBranching=25]=\"BusBranching\",w[w.TopLeftBus=26]=\"TopLeftBus\",w[w.BottomRightBus=27]=\"BottomRightBus\",w[w.Custom=28]=\"Custom\",w))(TreeAlignment||{}),TreeCompaction=(w=>(w[w.None=30]=\"None\",w[w.Block=31]=\"Block\",w))(TreeCompaction||{}),TreeStyle=(w=>(w[w.Layered=40]=\"Layered\",w[w.LastParents=41]=\"LastParents\",w[w.Alternating=42]=\"Alternating\",w[w.RootOnly=43]=\"RootOnly\",w))(TreeStyle||{}),TreeArrangement=(w=>(w[w.Vertical=50]=\"Vertical\",w[w.Horizontal=51]=\"Horizontal\",w[w.FixedRoots=52]=\"FixedRoots\",w))(TreeArrangement||{}),TreeLayerStyle=(w=>(w[w.Individual=60]=\"Individual\",w[w.Siblings=61]=\"Siblings\",w[w.Uniform=62]=\"Uniform\",w))(TreeLayerStyle||{});class TreeLayout extends Layout{Ri;Ti;iu;Fg;zN;Re;Ki;ks;V;z;ck;hs;constructor(t){super(),this.Ri=new GSet,this.Ti=0,this.hs=1,this.iu=40,this.Fg=60,this.zN=[],this.Re=!0,this.Ki=50,this.ks=new Size(10,10).g();const i=new TreeNetwork(this);this.V=new TreeVertex(i),this.z=new TreeVertex(i),this.ck=[],t&&Object.assign(this,t)}cloneProtected(t){super.cloneProtected(t),t.Ti=this.Ti,t.iu=this.iu,t.Fg=this.Fg,t.Re=this.Re,t.Ki=this.Ki,t.ks.a(this.ks),t.V.copyInheritedPropertiesFrom(this.V),t.z.copyInheritedPropertiesFrom(this.z)}li(t){t in TreeAlignment?this.alignment=t:t in TreeArrangement?this.arrangement=t:t in TreeCompaction?this.compaction=t:t in TreePath?this.path=t:t in TreeSorting?this.sorting=t:t in TreeStyle?this.treeStyle=t:super.li(t)}createNetwork(){return new TreeNetwork(this)}makeNetwork(t){const i=this.createNetwork(),e=s=>{if(s instanceof Node)return!s.isLinkLabel&&s.category!==\"Comment\";if(s instanceof Link){const n=s.fromNode;if(n===null||n.isLinkLabel||n.category===\"Comment\")return!1;const o=s.toNode;return!(o===null||o.isLinkLabel||o.category===\"Comment\")}return!1};return t instanceof Diagram?(i.addParts(t.nodes,!0,e),i.addParts(t.links,!0,e)):t instanceof Group?i.addParts(t.memberParts,!1,e):i.addParts(t.iterator,!1,e),i}doLayout(t){this.network===null&&(this.network=this.makeNetwork(t)),this.arrangement!==52&&(this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin));let i=this.diagram;i===null&&t instanceof Diagram&&(i=t),this.path===0&&i!==null?this.hs=i.isTreePathToChildren?1:2:this.hs=this.path===0?1:this.path,this.network.vertexes.count>0&&(this.LI(),this.AI(),this.TI(),this.DI(),this.vN(),this.FI(),this.arrangeTrees(),this.updateParts()),this.network=null,this.Ri=new GSet,this.isValidLayout=!0}LI(){this.network.deleteSelfEdges();const t=this.network.vertexes.iterator;for(;t.next();){const n=t.value;n.initialized=!1,n.level=0,n.parent=null,n.children=[]}if(this.Ri.count>0){const n=new GSet,o=this.Ri.iterator;for(;o.next();){const r=o.value;if(r instanceof Node){const l=this.network.findVertex(r);l!==null&&n.add(l)}else r instanceof TreeVertex&&n.add(r)}this.Ri=n}this.Ri.count===0&&this.findRoots();const i=this.Ri.copy().iterator;for(;i.next();){const n=i.value;n.initialized||(n.initialized=!0,this.XN(n))}let e=this.network.vertexes,s=null;for(;s=this.RI(e),s.count>0;){const n=this.mD(s);n!==null&&this.Ri.add(n),n.initialized=!0,this.XN(n),e=s}}RI(t){const i=new GSet,e=t.iterator;for(;e.next();){const s=e.value;s.initialized||i.add(s)}return i}findRoots(){const t=this.network.vertexes,i=t.iterator;for(;i.next();){const e=i.value;switch(this.hs){case 1:e.sourceEdges.count===0&&this.Ri.add(e);break;case 2:e.destinationEdges.count===0&&this.Ri.add(e);break;default:Util.o(\"Unhandled path value \"+this.hs.toString())}}if(this.Ri.count===0){const e=this.mD(t);e!==null&&this.Ri.add(e)}}mD(t){let i=999999,e=null;const s=t.iterator;for(;s.next();){const n=s.value;switch(this.hs){case 1:n.sourceEdges.count0){const s=new List,n=t.destinationVertexes;for(;n.next();){const o=n.value;this.pD(t,o)&&s.add(o)}s.count>0&&(t.children=s.toArray())}break;case 2:if(t.sourceEdges.count>0){const s=new List,n=t.sourceVertexes;for(;n.next();){const o=n.value;this.pD(t,o)&&s.add(o)}s.count>0&&(t.children=s.toArray())}break;default:Util.o(\"Unhandled path value\"+this.hs.toString())}const i=t.children,e=i.length;for(let s=0;st.level?!1:(this.OI(i.parent,i),!0):!0}vI(t,i){if(i===null)return!1;let e=i.parent;for(;e!==null&&e!==t;)e=e.parent;return e===t}OI(t,i){if(t===null||i===null)return;const e=t.children;let s=0;for(let n=0;n0){const n=new Array(e.length-s);let o=0;for(let r=0;r0?s+1:0}II(t){switch(this.iu){default:case 40:return t.parent!==null?t.parent:this.V;case 43:return t.parent===null?this.V:t.parent.parent===null?this.z:t.parent;case 42:return t.parent!==null?t.parent.parent!==null?t.parent.parent:this.z:this.V;case 41:{let i=!0;if(t.childrenCount===0)i=!1;else{const e=t.children,s=e.length;for(let n=0;n0){i=!1;break}}return i&&t.parent!==null?this.z:t.parent!==null?t.parent:this.V}}}initializeTreeVertexValues(t){const i=this.II(t);if(t.copyInheritedPropertiesFrom(i),t.parent!==null&&t.parent.alignment===25){let e=t.angle;const s=t.parent.children;let n=0;for(;n135&&!l||a&&f)if(t.commentMargin>=0){g.e(t.bounds.x-t.commentMargin-k.width,t.bounds.y+u),x.move(g);const b=x.findLinksInto();for(;b.next();){const P=b.value;P.fromSpot=Spot.MiddleLeft,P.toSpot=Spot.MiddleRight}}else{g.e(t.bounds.x+t.focus.x*2-t.commentMargin,t.bounds.y+u),x.move(g);const b=x.findLinksInto();for(;b.next();){const P=b.value;P.fromSpot=Spot.MiddleRight,P.toSpot=Spot.MiddleLeft}}else if(t.commentMargin>=0){g.e(t.bounds.x+t.focus.x*2+t.commentMargin,t.bounds.y+u),x.move(g);const b=x.findLinksInto();for(;b.next();){const P=b.value;P.fromSpot=Spot.MiddleRight,P.toSpot=Spot.MiddleLeft}}else{g.e(t.bounds.x+t.commentMargin-k.width,t.bounds.y+u),x.move(g);const b=x.findLinksInto();for(;b.next();){const P=b.value;P.fromSpot=Spot.MiddleLeft,P.toSpot=Spot.MiddleRight}}t.commentSpacing>=0?u+=k.height+t.commentSpacing:u+=t.commentSpacing-k.height}else{if(o>135&&!l||!a&&f)if(t.commentMargin>=0){g.e(t.bounds.x+u,t.bounds.y-t.commentMargin-k.height),x.move(g);const b=x.findLinksInto();for(;b.next();){const P=b.value;P.fromSpot=Spot.MiddleTop,P.toSpot=Spot.MiddleBottom}}else{g.e(t.bounds.x+u,t.bounds.y+t.focus.y*2-t.commentMargin),x.move(g);const b=x.findLinksInto();for(;b.next();){const P=b.value;P.fromSpot=Spot.MiddleBottom,P.toSpot=Spot.MiddleTop}}else if(t.commentMargin>=0){g.e(t.bounds.x+u,t.bounds.y+t.focus.y*2+t.commentMargin),x.move(g);const b=x.findLinksInto();for(;b.next();){const P=b.value;P.fromSpot=Spot.MiddleBottom,P.toSpot=Spot.MiddleTop}}else{g.e(t.bounds.x+u,t.bounds.y+t.commentMargin-k.height),x.move(g);const b=x.findLinksInto();for(;b.next();){const P=b.value;P.fromSpot=Spot.MiddleTop,P.toSpot=Spot.MiddleBottom}}t.commentSpacing>=0?u+=k.width+t.commentSpacing:u+=t.commentSpacing-k.width}}Point.s(g);const p=u-t.commentSpacing-(h?e.height:e.width);if(this.hs===1){const y=t.destinationEdges;for(;y.next();){const k=y.value.link;k!==null&&!k.isAvoiding&&(k.fromEndSegmentLength=p>0?p:NaN)}}else{const y=t.sourceEdges;for(;y.next();){const k=y.value.link;k!==null&&!k.isAvoiding&&(k.toEndSegmentLength=p>0?p:NaN)}}}}FI(){if(this.layerStyle===62){const i=[];let e=this.network.vertexes.iterator;for(;e.next();){const s=e.value;let n=s.parent;n===null&&(n=s);const o=n.angle===0||n.angle===180;let r=i[s.level];r===void 0&&(r=0),i[s.level]=Math.max(r,o?s.width:s.height)}for(let s=0;s=0)for(let o=0;o135&&n.reverse(),this.Jy(r))if(o>1)for(let R=0;R0&&S>0&&M+u+O.width>c&&(M135?-b-g:b+g);const B=S===0?m:u;this.fk(v,0,L),v.B.e(M+B,L),k=Math.max(k,M+B+O.width),b=Math.max(b,P+(C===0?0:g)+O.height),M+=B+O.width}else{c>0&&S>0&&L+u+O.height>c&&(L135?-k-g:k+g);const B=S===0?m:u;this.fk(v,M,0),v.B.e(M,L+B),b=Math.max(b,L+B+O.height),k=Math.max(k,P+(C===0?0:g)+O.width),L+=B+O.height}S++}C>0&&(e?(b+=Math.max(0,f),M0&&(h||this.eu(t,p,0,0,o-1),k+=p)):(k+=Math.max(0,f),L0&&(h||this.eu(t,0,p,0,o-1),b+=p)));let D=0,F=0;switch(r){case 20:e?D+=k/2-t.focus.x-d/2:F+=b/2-t.focus.y-d/2;break;default:case 21:if(C>0)e?D+=k/2-t.focus.x-d/2:F+=b/2-t.focus.y-d/2;else{const v=o;if(e){const O=n[0].B.x+n[0].ft.x,B=n[v-1].B.x+n[v-1].ft.x+n[v-1].focus.x*2;D+=O+(B-O)/2-t.focus.x-d/2}else{const O=n[0].B.y+n[0].ft.y,B=n[v-1].B.y+n[v-1].ft.y+n[v-1].focus.y*2;F+=O+(B-O)/2-t.focus.y-d/2}}break;case 22:e?(D-=d,k+=d):(F-=d,b+=d);break;case 23:e?(D+=k-t.width+d,k+=d):(F+=b-t.height+d,b+=d);break;case 24:case 25:e?o>1?D+=T+u/2-t.focus.x:D+=n[0].focus.x-t.focus.x+n[0].ft.x:o>1?F+=T+u/2-t.focus.y:F+=n[0].focus.y-t.focus.y+n[0].ft.y;break;case 26:e?D+=k+u/2-t.focus.x:F+=b+u/2-t.focus.y;break;case 27:break;case 28:const R=this.customAlignment(t,D,F,k,b);D=R[0],F=R[1],k=R[2],b=R[3];break}for(let R=0;R135?(a?-b:-v.mt.height)+v.ft.y-f:x+f+v.ft.y)):v.B.e(v.B.x+(i>135?(a?-k:-v.mt.width)+v.ft.x-f:y+f+v.ft.x),v.B.y+v.ft.y-F)}e?(k=this.YN(t,k,D),D<0&&(D=0),i>135&&(F+=b+f),b=Math.max(Math.max(b,x),b+x+f)):(i>135&&(D+=k+f),k=Math.max(Math.max(k,y),k+y+f),b=this.GN(t,b,F),F<0&&(F=0)),t.ft.e(D,F),t.mt.e(k,b)}customAlignment(t,i,e,s,n){return[i,e,s,n]}kD(t,i,e,s,n,o){const r=i.length;if(r===0)return new Rect(e,0,n,o);if(r===1){const p=i[0];return n=p.mt.width,o=p.mt.height,new Rect(e,0,n,o)}const l=t.nodeSpacing,h=t.rowSpacing,c=this.orthoAngle(t)===90;let f=0,u=0,d=0;for(let p=0;p1&&p===r-1)continue;const y=i[p],x=y.mt,k=f===0?0:h;if(c){const b=this.computeBusNodeSpacing(y)-l;y.B.e(e-(x.width+b),d+k),n=Math.max(n,x.width+b),o=Math.max(o,d+k+x.height),d+=k+x.height}else{const b=this.computeBusNodeSpacing(y)-l;y.B.e(u+k,e-(x.height+b)),o=Math.max(o,x.height+b),n=Math.max(n,u+k+x.width),u+=k+x.width}f++}f=0;const m=u,g=d;c?(u=e+l,d=0):(u=0,d=e+l);for(let p=0;p1&&r%2===1){const p=i[r-1],y=p.mt,x=this.computeBusLastRowSpacing(p,c?Math.max(Math.abs(g),Math.abs(d)):Math.max(Math.abs(m),Math.abs(u)));if(c){p.B.e(e+l/2-p.focus.x-p.ft.x,o+x);const k=e+l/2-p.focus.x-p.ft.x;n=Math.max(n,k+y.width),k<0&&(n-=k),o=Math.max(o,Math.max(g,d)+x+y.height),p.B.x<0&&(e=this.uk(t,p.B.x,!1,e,l))}else{p.B.e(n+x,e+l/2-p.focus.y-p.ft.y),n=Math.max(n,Math.max(m,u)+x+y.width);const k=e+l/2-p.focus.y-p.ft.y;o=Math.max(o,k+y.height),k<0&&(o-=k),p.B.y<0&&(e=this.uk(t,p.B.y,!0,e,l))}}return new Rect(e,0,n,o)}PD(t,i,e,s,n,o){const r=i.length;if(r===0)return new Rect(e,0,n,o);if(r===1){const p=i[0];return n=p.mt.width,o=p.mt.height,new Rect(e,0,n,o)}const l=t.nodeSpacing,h=t.rowSpacing,c=this.orthoAngle(t)===270;let f=0,u=0,d=0;for(let p=0;p1&&p===r-1)continue;const y=i[p],x=y.mt,k=f===0?0:h;if(c){const b=this.computeBusNodeSpacing(y)-l;d-=k+x.height,y.B.e(e-(x.width+b),d),n=Math.max(n,x.width+b),o=Math.max(o,Math.abs(d))}else{const b=this.computeBusNodeSpacing(y)-l;u-=k+x.width,y.B.e(u,e-(x.height+b)),o=Math.max(o,x.height+b),n=Math.max(n,Math.abs(u))}f++}f=0;const m=u,g=d;c?(u=e+l,d=0):(u=0,d=e+l);for(let p=0;p1&&r%2===1){const p=i[r-1],y=p.mt,x=this.computeBusLastRowSpacing(p,c?Math.max(Math.abs(g),Math.abs(d)):Math.max(Math.abs(m),Math.abs(u)));if(c){p.B.e(e+l/2-p.focus.x-p.ft.x,-o-y.height-x);const k=e+l/2-p.focus.x-p.ft.x;n=Math.max(n,k+y.width),k<0&&(n-=k),o=Math.max(o,Math.abs(Math.min(g,d))+x+y.height),p.B.x<0&&(e=this.uk(t,p.B.x,!1,e,l))}else{p.B.e(-n-y.width-x,e+l/2-p.focus.y-p.ft.y),n=Math.max(n,Math.abs(Math.min(m,u))+x+y.width);const k=e+l/2-p.focus.y-p.ft.y;o=Math.max(o,k+y.height),k<0&&(o-=k),p.B.y<0&&(e=this.uk(t,p.B.y,!0,e,l))}}for(let p=0;ps&&(s=e+t.width),e<0&&(s-=e),s;case 22:return t.width>i?t.width:i;case 23:return t.focus.x*2>i?t.width:i+t.width-t.focus.x*2;case 24:case 25:const n=Math.min(0,e),o=Math.max(i,e+t.width);return Math.max(t.width,o-n);case 26:return t.width-t.focus.x+t.nodeSpacing/2+i;case 27:return Math.max(t.width,t.focus.x+t.nodeSpacing/2+i);default:return i}}GN(t,i,e){switch(t.alignment){case 21:case 20:let s=i;return e+t.height>s&&(s=e+t.height),e<0&&(s-=e),s;case 22:return t.height>i?t.height:i;case 23:return t.focus.y*2>i?t.height:i+t.height-t.focus.y*2;case 24:case 25:const n=Math.min(0,e),o=Math.max(i,e+t.height);return Math.max(t.height,o-n);case 26:return t.height-t.focus.y+t.nodeSpacing/2+i;case 27:return Math.max(t.height,t.focus.y+t.nodeSpacing/2+i);default:return i}}jN(t,i,e){switch(t){case 20:i/=2,e/=2;break;case 21:i/=2,e/=2;break;case 22:i=0,e=0;break;case 23:break;default:Util.o(\"Unhandled alignment value \"+t.toString())}return new Point(i,e)}_a(t,i,e,s,n,o){const r=this.jN(i,e,s);this.eu(t,r.x,r.y,n,o)}eu(t,i,e,s,n){if(i===0&&e===0)return;const o=t.children;for(let r=s;r<=n;r++){const h=o[r].B;h.x+=i,h.y+=e}}fk(t,i,e){const s=t.parent;switch(this.hs){case 1:{const n=t.sourceEdges;for(;n.next();){const o=n.value;o.fromVertex===s&&o.relativePoint.e(i,e)}break}case 2:{const n=t.destinationEdges;for(;n.next();){const o=n.value;o.toVertex===s&&o.relativePoint.e(i,e)}break}default:Util.o(\"Unhandled path value \"+this.hs.toString())}}EI(t){if(t.childrenCount===0){const U=t.parent;let Y=!1,G=0,H=21;U!==null&&(G=U.angle,H=U.alignment,Y=this.isBusAlignment(H));const J=this.KN(t);t.B.e(0,0),t.mt.e(t.width,t.height),t.parent!==null&&t.comments!==null&&((G===180||G===270)&&!Y||J)?G===180&&!Y||(G===90||G===270)&&J?t.ft.e(t.width-t.focus.x*2,0):t.ft.e(0,t.height-t.focus.y*2):t.ft.e(0,0),t.Rg=null,t.vg=null;return}const i=this.orthoAngle(t),e=i===90||i===270;let s=0;const n=t.children,o=n.length;for(let U=0;U135&&n.reverse(),this.Jy(r))if(o>1)for(let U=0;U0&&A>0&&S+u+G.width>c&&(S135?-k-m:k+m),this.fk(Y,0,N);let H=0;if(A===0)P=Y.Rg,M=Y.vg,L=G.width,C=G.height,(P===null||M===null||i!==this.orthoAngle(Y))&&(P=this.ae(2),M=this.ae(2),P[0].e(0,0),P[1].e(0,C),M[0].e(L,0),M[1].e(L,C));else{const J=Util.nt(),z=this.MD(t,Y,P,M,L,C,J);H=z.x,P=J[0],M=J[1],L=z.width,C=z.height,Util.tt(J),S0&&A>0&&N+u+G.height>c&&(N135?-x-m:x+m),this.fk(Y,S,0);let H=0;if(A===0)P=Y.Rg,M=Y.vg,L=G.width,C=G.height,(P===null||M===null||i!==this.orthoAngle(Y))&&(P=this.ae(2),M=this.ae(2),P[0].e(0,0),P[1].e(L,0),M[0].e(0,C),M[1].e(L,C));else{const J=Util.nt(),z=this.MD(t,Y,P,M,L,C,J);H=z.x,P=J[0],M=J[1],L=z.width,C=z.height,Util.tt(J),N0&&(e?(k+=Math.max(0,f),S0&&(h||this.eu(t,g,0,0,o-1),x+=g)):(x+=Math.max(0,f),N0&&(h||this.eu(t,0,g,0,o-1),k+=g)));let v=0,O=0;switch(r){case 20:e?v+=x/2-t.focus.x-d/2:O+=k/2-t.focus.y-d/2;break;default:case 21:if(T>0)e?v+=x/2-t.focus.x-d/2:O+=k/2-t.focus.y-d/2;else{const Y=o;if(e){const G=n[0].B.x+n[0].ft.x,H=n[Y-1].B.x+n[Y-1].ft.x+n[Y-1].focus.x*2;v+=G+(H-G)/2-t.focus.x-d/2}else{const G=n[0].B.y+n[0].ft.y,H=n[Y-1].B.y+n[Y-1].ft.y+n[Y-1].focus.y*2;O+=G+(H-G)/2-t.focus.y-d/2}}break;case 22:e?(v-=d,x+=d):(O-=d,k+=d);break;case 23:e?(v+=x-t.width+d,x+=d):(O+=k-t.height+d,k+=d);break;case 24:e?o>1?v+=F+u/2-t.focus.x:v+=n[0].focus.x-t.focus.x+n[0].ft.x:o>1?O+=F+u/2-t.focus.y:O+=n[0].focus.y-t.focus.y+n[0].ft.y;break;case 26:e?v+=x+u/2-t.focus.x:O+=k+u/2-t.focus.y;break;case 27:break;case 28:const U=this.customAlignment(t,v,O,x,k);v=U[0],O=U[1],x=U[2],k=U[3];break}for(let U=0;U135?(a?-k:-Y.mt.height)+Y.ft.y-f:y+f+Y.ft.y)):Y.B.e(Y.B.x+(i>135?(a?-x:-Y.mt.width)+Y.ft.x-f:p+f+Y.ft.x),Y.B.y+Y.ft.y-O)}let B=0,X=0;if(a)e?(x=this.YN(t,x,v),v<0&&(v=0),i>135&&(O+=k+f),k+=y+f,r===27&&(B+=u/2+t.focus.x),X+=y+f):(i>135&&(v+=x+f),x+=p+f,k=this.GN(t,k,O),O<0&&(O=0),r===27&&(X+=u/2+t.focus.y),B+=p+f);else if(e){if(t.comments===null){if(p>x){const U=this.jN(r,p-x,0);B=U.x,X=U.y,x=p,v=0}}else x=this.YN(t,x,v);v<0&&(B-=v,v=0),i>135&&(O+=k+f),k=Math.max(Math.max(k,y),k+y+f),X+=y+f}else{if(i>135&&(v+=x+f),x=Math.max(Math.max(x,p),x+p+f),t.comments===null){if(y>k){const U=this.jN(r,0,y-k);B=U.x,X=U.y,k=y,O=0}}else k=this.GN(t,k,O);O<0&&(X-=O,O=0),B+=p+f}let E,V;if(T>0)E=this.ae(4),V=this.ae(4),e?(E[2].e(0,y+f),E[3].e(E[2].x,k),V[2].e(x,E[2].y),V[3].e(V[2].x,E[3].y)):(E[2].e(p+f,0),E[3].e(x,E[2].y),V[2].e(E[2].x,k),V[3].e(E[3].x,V[2].y));else{E=this.ae(P.length+2),V=this.ae(M.length+2);for(let U=0;UE[0].x?E[2].a(E[1]):E[1].a(E[2])),E[3].yE[0].x?E[3].a(E[2]):E[2].a(E[3])),V[0].e(v+p,0),V[1].e(V[0].x,y),V[2].yE[0].y?E[2].a(E[1]):E[1].a(E[2])),E[3].xE[0].y?E[3].a(E[2]):E[2].a(E[3])),V[0].e(0,O+y),V[1].e(p,V[0].y),V[2].xl;){const a=i[o++];s[r++].e(a.x,a.y+e)}const h=this.ae(r);for(n=0;nl;){const a=i[o++];s[r++].e(a.x+e,a.y)}const h=this.ae(r);for(n=0;nl;){const a=t[n++];s[r++].e(a.x,a.y)}const h=this.ae(r);for(n=0;nl;){const a=t[n++];s[r++].e(a.x,a.y)}const h=this.ae(r);for(n=0;nh&&r.xr.x&&ha&&r.yr.y&&a0){const n=Math.min(1,t.layerSpacingParentOverlap);s-=e?t.height*n:t.width*n}return s<(e?-t.height:-t.width)&&(s=e?-t.height:-t.width),s}computeNodeIndent(t){const i=this.orthoAngle(t),e=i===90||i===270;let s=t.nodeIndent;if(t.nodeIndentPastParent>0){const n=Math.min(1,t.nodeIndentPastParent);s+=e?t.width*n:t.height*n}return s=Math.max(0,s),s}get roots(){return this.Ri}set roots(t){this.Ri!==t&&(this.Ri=t,this.invalidateLayout())}get path(){return this.Ti}set path(t){this.Ti!==t&&(this.Ti=t,this.invalidateLayout())}get treeStyle(){return this.iu}set treeStyle(t){this.iu!==t&&(t===40||t===42||t===41||t===43)&&(this.iu=t,this.invalidateLayout())}get layerStyle(){return this.Fg}set layerStyle(t){this.Fg!==t&&(t===60||t===61||t===62)&&(this.Fg=t,this.invalidateLayout())}get comments(){return this.Re}set comments(t){this.Re!==t&&(Util.i(t,\"boolean\",TreeLayout,\"comments\"),this.Re=t,this.invalidateLayout())}get arrangement(){return this.Ki}set arrangement(t){this.Ki!==t&&(t===50||t===51||t===52)&&(this.Ki=t,this.invalidateLayout())}get arrangementSpacing(){return this.ks}set arrangementSpacing(t){this.ks.equals(t)||(this.ks.a(t),this.invalidateLayout())}get rootDefaults(){return this.V}set rootDefaults(t){this.V!==t&&(this.V=t,this.invalidateLayout())}get alternateDefaults(){return this.z}set alternateDefaults(t){this.z!==t&&(this.z=t,this.invalidateLayout())}get sorting(){return this.V.sorting}set sorting(t){this.V.sorting!==t&&(this.V.sorting=t,this.invalidateLayout())}get comparer(){return this.V.comparer}set comparer(t){this.V.comparer!==t&&(Util.i(t,\"function\",TreeLayout,\"comparer\"),this.V.comparer=t,this.invalidateLayout())}get angle(){return this.V.angle}set angle(t){this.V.angle!==t&&(Util.i(t,\"number\",TreeLayout,\"angle\"),t===0||t===90||t===180||t===270?(this.V.angle=t,this.invalidateLayout()):Util.o(\"TreeLayout.angle must be 0, 90, 180, or 270\"))}get alignment(){return this.V.alignment}set alignment(t){this.V.alignment!==t&&(this.V.alignment=t,this.invalidateLayout())}get nodeIndent(){return this.V.nodeIndent}set nodeIndent(t){this.V.nodeIndent!==t&&(Util.i(t,\"number\",TreeLayout,\"nodeIndent\"),t>=0&&(this.V.nodeIndent=t,this.invalidateLayout()))}get nodeIndentPastParent(){return this.V.nodeIndentPastParent}set nodeIndentPastParent(t){this.V.nodeIndentPastParent!==t&&(Util.i(t,\"number\",TreeLayout,\"nodeIndentPastParent\"),t>=0&&t<=1&&(this.V.nodeIndentPastParent=t,this.invalidateLayout()))}get nodeSpacing(){return this.V.nodeSpacing}set nodeSpacing(t){this.V.nodeSpacing!==t&&(Util.i(t,\"number\",TreeLayout,\"nodeSpacing\"),this.V.nodeSpacing=t,this.invalidateLayout())}get layerSpacing(){return this.V.layerSpacing}set layerSpacing(t){this.V.layerSpacing!==t&&(Util.i(t,\"number\",TreeLayout,\"layerSpacing\"),this.V.layerSpacing=t,this.invalidateLayout())}get layerSpacingParentOverlap(){return this.V.layerSpacingParentOverlap}set layerSpacingParentOverlap(t){this.V.layerSpacingParentOverlap!==t&&(Util.i(t,\"number\",TreeLayout,\"layerSpacingParentOverlap\"),t>=0&&t<=1&&(this.V.layerSpacingParentOverlap=t,this.invalidateLayout()))}get compaction(){return this.V.compaction}set compaction(t){this.V.compaction!==t&&(t===30||t===31)&&(this.V.compaction=t,this.invalidateLayout())}get breadthLimit(){return this.V.breadthLimit}set breadthLimit(t){this.V.breadthLimit!==t&&(Util.i(t,\"number\",TreeLayout,\"breadthLimit\"),t>=0&&(this.V.breadthLimit=t,this.invalidateLayout()))}get rowSpacing(){return this.V.rowSpacing}set rowSpacing(t){this.V.rowSpacing!==t&&(Util.i(t,\"number\",TreeLayout,\"rowSpacing\"),this.V.rowSpacing=t,this.invalidateLayout())}get rowIndent(){return this.V.rowIndent}set rowIndent(t){this.V.rowIndent!==t&&(Util.i(t,\"number\",TreeLayout,\"rowIndent\"),t>=0&&(this.V.rowIndent=t,this.invalidateLayout()))}get commentSpacing(){return this.V.commentSpacing}set commentSpacing(t){this.V.commentSpacing!==t&&(Util.i(t,\"number\",TreeLayout,\"commentSpacing\"),this.V.commentSpacing=t,this.invalidateLayout())}get commentMargin(){return this.V.commentMargin}set commentMargin(t){this.V.commentMargin!==t&&(Util.i(t,\"number\",TreeLayout,\"commentMargin\"),this.V.commentMargin=t,this.invalidateLayout())}get setsPortSpot(){return this.V.setsPortSpot}set setsPortSpot(t){this.V.setsPortSpot!==t&&(Util.i(t,\"boolean\",TreeLayout,\"setsPortSpot\"),this.V.setsPortSpot=t,this.invalidateLayout())}get portSpot(){return this.V.portSpot}set portSpot(t){this.V.portSpot.equals(t)||(this.V.portSpot=t,this.invalidateLayout())}get setsChildPortSpot(){return this.V.setsChildPortSpot}set setsChildPortSpot(t){this.V.setsChildPortSpot!==t&&(Util.i(t,\"boolean\",TreeLayout,\"setsChildPortSpot\"),this.V.setsChildPortSpot=t,this.invalidateLayout())}get childPortSpot(){return this.V.childPortSpot}set childPortSpot(t){this.V.childPortSpot.equals(t)||(this.V.childPortSpot=t,this.invalidateLayout())}get alternateSorting(){return this.z.sorting}set alternateSorting(t){this.z.sorting!==t&&(this.z.sorting=t,this.invalidateLayout())}get alternateComparer(){return this.z.comparer}set alternateComparer(t){this.z.comparer!==t&&(Util.i(t,\"function\",TreeLayout,\"alternateComparer\"),this.z.comparer=t,this.invalidateLayout())}get alternateAngle(){return this.z.angle}set alternateAngle(t){this.z.angle!==t&&(Util.i(t,\"number\",TreeLayout,\"alternateAngle\"),(t===0||t===90||t===180||t===270)&&(this.z.angle=t,this.invalidateLayout()))}get alternateAlignment(){return this.z.alignment}set alternateAlignment(t){this.z.alignment!==t&&(this.z.alignment=t,this.invalidateLayout())}get alternateNodeIndent(){return this.z.nodeIndent}set alternateNodeIndent(t){this.z.nodeIndent!==t&&(Util.i(t,\"number\",TreeLayout,\"alternateNodeIndent\"),t>=0&&(this.z.nodeIndent=t,this.invalidateLayout()))}get alternateNodeIndentPastParent(){return this.z.nodeIndentPastParent}set alternateNodeIndentPastParent(t){this.z.nodeIndentPastParent!==t&&(Util.i(t,\"number\",TreeLayout,\"alternateNodeIndentPastParent\"),t>=0&&t<=1&&(this.z.nodeIndentPastParent=t,this.invalidateLayout()))}get alternateNodeSpacing(){return this.z.nodeSpacing}set alternateNodeSpacing(t){this.z.nodeSpacing!==t&&(Util.i(t,\"number\",TreeLayout,\"alternateNodeSpacing\"),this.z.nodeSpacing=t,this.invalidateLayout())}get alternateLayerSpacing(){return this.z.layerSpacing}set alternateLayerSpacing(t){this.z.layerSpacing!==t&&(Util.i(t,\"number\",TreeLayout,\"alternateLayerSpacing\"),this.z.layerSpacing=t,this.invalidateLayout())}get alternateLayerSpacingParentOverlap(){return this.z.layerSpacingParentOverlap}set alternateLayerSpacingParentOverlap(t){this.z.layerSpacingParentOverlap!==t&&(Util.i(t,\"number\",TreeLayout,\"alternateLayerSpacingParentOverlap\"),t>=0&&t<=1&&(this.z.layerSpacingParentOverlap=t,this.invalidateLayout()))}get alternateCompaction(){return this.z.compaction}set alternateCompaction(t){this.z.compaction!==t&&(t===30||t===31)&&(this.z.compaction=t,this.invalidateLayout())}get alternateBreadthLimit(){return this.z.breadthLimit}set alternateBreadthLimit(t){this.z.breadthLimit!==t&&(Util.i(t,\"number\",TreeLayout,\"alternateBreadthLimit\"),t>=0&&(this.z.breadthLimit=t,this.invalidateLayout()))}get alternateRowSpacing(){return this.z.rowSpacing}set alternateRowSpacing(t){this.z.rowSpacing!==t&&(Util.i(t,\"number\",TreeLayout,\"alternateRowSpacing\"),this.z.rowSpacing=t,this.invalidateLayout())}get alternateRowIndent(){return this.z.rowIndent}set alternateRowIndent(t){this.z.rowIndent!==t&&(Util.i(t,\"number\",TreeLayout,\"alternateRowIndent\"),t>=0&&(this.z.rowIndent=t,this.invalidateLayout()))}get alternateCommentSpacing(){return this.z.commentSpacing}set alternateCommentSpacing(t){this.z.commentSpacing!==t&&(Util.i(t,\"number\",TreeLayout,\"alternateCommentSpacing\"),this.z.commentSpacing=t,this.invalidateLayout())}get alternateCommentMargin(){return this.z.commentMargin}set alternateCommentMargin(t){this.z.commentMargin!==t&&(Util.i(t,\"number\",TreeLayout,\"alternateCommentMargin\"),this.z.commentMargin=t,this.invalidateLayout())}get alternateSetsPortSpot(){return this.z.setsPortSpot}set alternateSetsPortSpot(t){this.z.setsPortSpot!==t&&(Util.i(t,\"boolean\",TreeLayout,\"alternateSetsPortSpot\"),this.z.setsPortSpot=t,this.invalidateLayout())}get alternatePortSpot(){return this.z.portSpot}set alternatePortSpot(t){this.z.portSpot.equals(t)||(this.z.portSpot=t,this.invalidateLayout())}get alternateSetsChildPortSpot(){return this.z.setsChildPortSpot}set alternateSetsChildPortSpot(t){this.z.setsChildPortSpot!==t&&(Util.i(t,\"boolean\",TreeLayout,\"alternateSetsChildPortSpot\"),this.z.setsChildPortSpot=t,this.invalidateLayout())}get alternateChildPortSpot(){return this.z.childPortSpot}set alternateChildPortSpot(t){this.z.childPortSpot.equals(t)||(this.z.childPortSpot=t,this.invalidateLayout())}static PathDefault=0;static PathDestination=1;static PathSource=2;static SortingForwards=10;static SortingReverse=11;static SortingAscending=12;static SortingDescending=13;static AlignmentCenterSubtrees=20;static AlignmentCenterChildren=21;static AlignmentStart=22;static AlignmentEnd=23;static AlignmentBus=24;static AlignmentBusBranching=25;static AlignmentTopLeftBus=26;static AlignmentBottomRightBus=27;static CompactionNone=30;static CompactionBlock=31;static StyleLayered=40;static StyleLastParents=41;static StyleAlternating=42;static StyleRootOnly=43;static ArrangementVertical=50;static ArrangementHorizontal=51;static ArrangementFixedRoots=52;static LayerIndividual=60;static LayerSiblings=61;static LayerUniform=62}class TreeNetwork extends LayoutNetwork{constructor(t){super(t)}createVertex(){return new TreeVertex(this)}createEdge(){return new TreeEdge(this)}}class TreeVertex extends LayoutVertex{B;mt;ft;gk;mk;pk;yk;wk;xk;bk;Re;Rg;vg;pe;ye;Kt;ri;$y;Zy;Qy;Ps;_y;tw;iw;ew;sw;nw;ow;rw;lw;hw;aw;constructor(t){super(t),this.gk=!1,this.mk=null,this.pk=[],this.yk=0,this.wk=0,this.xk=0,this.bk=0,this.Re=null,this.B=new Point(0,0),this.mt=new Size(0,0),this.ft=new Point(0,0),this.Rg=null,this.vg=null,this.pe=10,this.ye=LayoutVertex.standardComparer,this.Kt=0,this.ri=21,this.$y=0,this.Zy=0,this.Qy=20,this.Ps=50,this._y=0,this.tw=31,this.iw=0,this.ew=25,this.sw=10,this.nw=10,this.ow=20,this.rw=!0,this.lw=Spot.Default,this.hw=!0,this.aw=Spot.Default}copyInheritedPropertiesFrom(t){t!==null&&(this.pe=t.sorting,this.ye=t.comparer,this.Kt=t.angle,this.ri=t.alignment,this.$y=t.nodeIndent,this.Zy=t.nodeIndentPastParent,this.Qy=t.nodeSpacing,this.Ps=t.layerSpacing,this._y=t.layerSpacingParentOverlap,this.tw=t.compaction,this.iw=t.breadthLimit,this.ew=t.rowSpacing,this.sw=t.rowIndent,this.nw=t.commentSpacing,this.ow=t.commentMargin,this.rw=t.setsPortSpot,this.lw=t.portSpot,this.hw=t.setsChildPortSpot,this.aw=t.childPortSpot)}get initialized(){return this.gk}set initialized(t){this.gk!==t&&(Util.i(t,\"boolean\",TreeVertex,\"initialized\"),this.gk=t)}get parent(){return this.mk}set parent(t){this.mk!==t&&(this.mk=t)}get children(){return this.pk}set children(t){if(this.pk!==t){if(t!==null&&!Array.isArray(t)&&Util.we(t,\"Array\",TreeVertex,\"children:value\"),t!==null){const i=t.length;for(let e=0;e4;)t.removePoint(2);u=t.getPoint(1),d=t.getPoint(2)}else{for(f=1;t.pointsCount>3;)t.removePoint(1);u=t.getPoint(0),d=t.getPoint(t.pointsCount-1)}const m=t.getPoint(t.pointsCount-1);let g=0;r===0?(e.alignment===23?(g=o.bottom+n.y,n.y===0&&u.y>m.y+e.rowIndent&&(g=Math.min(g,Math.max(u.y,g-i.computeNodeIndent(e))))):e.alignment===22?(g=o.top+n.y,n.y===0&&u.ym.x+e.rowIndent&&(g=Math.min(g,Math.max(u.x,g-i.computeNodeIndent(e))))):e.alignment===22?(g=o.left+n.x,n.x===0&&u.xm.y+e.rowIndent&&(g=Math.min(g,Math.max(u.y,g-i.computeNodeIndent(e))))):e.alignment===22?(g=o.top+n.y,n.y===0&&u.ym.x+e.rowIndent&&(g=Math.min(g,Math.max(u.x,g-i.computeNodeIndent(e))))):e.alignment===22?(g=o.left+n.x,n.x===0&&u.x{const i=t.matches?\"dark\":\"light\";i!==this.Og&&(this.Og=i,this.Mk===\"system\"&&this.cw())};constructor(t){t&&Object.assign(this,t),t?.themeMap||(this.su.set(\"light\",{colors:{...Themes.Light.colors},fonts:{...Themes.Light.fonts},numbers:{...Themes.Light.numbers},margins:{...Themes.Light.margins},arrowheads:{...Themes.Light.arrowheads}}),this.su.set(\"dark\",{colors:{...Themes.Dark.colors},fonts:{...Themes.Dark.fonts},numbers:{...Themes.Dark.numbers},margins:{...Themes.Dark.margins},arrowheads:{...Themes.Dark.arrowheads}})),root.matchMedia&&(this.Og=root.matchMedia(\"(prefers-color-scheme: dark)\").matches?\"dark\":\"light\")}get themeMap(){return this.su}set themeMap(t){this.su!==t&&(this.su=t,this.cw())}get defaultTheme(){return this.Pk}set defaultTheme(t){this.Pk!==t&&(Util.i(t,\"string\",ThemeManager,\"defaultTheme\"),this.Pk=t,this.cw())}get currentTheme(){return this.Mk}set currentTheme(t){this.Mk!==t&&(Util.i(t,\"string\",ThemeManager,\"currentTheme\"),this.Mk=t,this.cw())}get changesDivBackground(){return this.Sk}set changesDivBackground(t){if(this.Sk!==t&&(this.Sk=t,t))for(const e of this.ss)e.setDivBackground(this.findValue(\"div\",\"\",\"fill\")),e.v(\"ThemeChanged\",this)}get preferredColorScheme(){return this.Og}addDiagram(t){return this.ss.add(t),this.qN(t),this}removeDiagram(t){return this.ss.delete(t),this.qN(t),this}XF(){this.ss.size===0&&root.matchMedia&&root.matchMedia(\"(prefers-color-scheme: dark)\")?.addEventListener(\"change\",this.ND)}KF(){this.ss.size===0&&root.matchMedia&&root.matchMedia(\"(prefers-color-scheme: dark)\")?.removeEventListener(\"change\",this.ND)}set(t,i){t===\"\"&&(t=this.Pk),t===\"system\"&&(t=this.Og);let e=this.su.get(t);return e?e=this.CD(e,i):e=i,this.su.set(t,e),this.cw(),this}findValue(t,i,e){return this.getValue(this.findTheme(this.currentTheme),t,i,e)||this.getValue(this.findTheme(this.defaultTheme),t,i,e)}getValue(t,i,e,s){if(!t)return;e==null&&(e=\"\");let n=t;const o=l=>{if(n===void 0||l===\"\")return;if(typeof l==\"number\"||!(Array.isArray(l)||l.includes(\".\")))return n[l];const h=Array.isArray(l)?l:l.split(\".\");for(let a=0;a{if(!(e!==\"\"&&(n=o(e),n===void 0)))return Array.isArray(n)&&typeof i==\"number\"?n=n[i%n.length]:n=o(i),n};if(n=r(),n===void 0&&typeof s==\"string\"&&s.length>0){let l=t.targetPropertyMap?.get(s);if(l?n=t[l]:(l=ThemeManager.jI.get(s),n=l?t[l]:t.colors),n=r(),n!==void 0)return n}return n}findTheme(t){return this.themeMap.get(t===\"system\"?this.Og:t)}qN(t){const i=t.skipsUndoManager;t.skipsUndoManager=!0,t.updateAllThemeBindings(),this.Sk&&t.setDivBackground(this.findValue(\"div\",\"\",\"fill\")),t.skipsUndoManager=i,t.v(\"ThemeChanged\",this)}cw(){for(const t of this.ss)this.qN(t)}CD(t,i){for(const e in i)if(Util.fw(i,e))try{i[e].constructor===Object?t[e]=this.CD(t[e]??{},i[e]):t[e]=i[e]}catch{delete t[e]}return t}static jI=new Map([[\"background\",\"colors\"],[\"defaultColumnSeparatorStroke\",\"colors\"],[\"defaultRowSeparatorStroke\",\"colors\"],[\"shadowColor\",\"colors\"],[\"fill\",\"colors\"],[\"stroke\",\"colors\"],[\"font\",\"fonts\"],[\"angle\",\"numbers\"],[\"fromEndSegmentLength\",\"numbers\"],[\"fromShortLength\",\"numbers\"],[\"height\",\"numbers\"],[\"opacity\",\"numbers\"],[\"scale\",\"numbers\"],[\"toEndSegmentLength\",\"numbers\"],[\"toShortLength\",\"numbers\"],[\"width\",\"numbers\"],[\"defaultColumnSeparatorStrokeWidth\",\"numbers\"],[\"defaultRowSeparatorStrokeWidth\",\"numbers\"],[\"shadowBlur\",\"numbers\"],[\"corner\",\"numbers\"],[\"curviness\",\"numbers\"],[\"smoothness\",\"numbers\"],[\"parameter1\",\"numbers\"],[\"parameter2\",\"numbers\"],[\"strokeWidth\",\"numbers\"],[\"strokeDashOffset\",\"numbers\"],[\"maxLines\",\"numbers\"],[\"spacingAbove\",\"numbers\"],[\"spacingBelow\",\"numbers\"],[\"position\",\"points\"],[\"shadowOffset\",\"points\"],[\"desiredSize\",\"sizes\"],[\"maxSize\",\"sizes\"],[\"minSize\",\"sizes\"],[\"margin\",\"margins\"],[\"defaultSeparatorPadding\",\"margins\"],[\"padding\",\"margins\"],[\"alignment\",\"spots\"],[\"alignmentFocus\",\"spots\"],[\"fromSpot\",\"spots\"],[\"toSpot\",\"spots\"],[\"defaultAlignment\",\"spots\"],[\"spot1\",\"spots\"],[\"spot2\",\"spots\"],[\"verticalAlignment\",\"spots\"],[\"imageAlignment\",\"spots\"],[\"fromArrow\",\"arrowheads\"],[\"toArrow\",\"arrowheads\"]])}class Router{St;p;Ii;fl;constructor(){this.p=Diagram.wm(),this.St=\"\",this.Ii=!0,this.fl=!0}get name(){return this.St}set name(t){this.St=t}get isEnabled(){return this.Ii}set isEnabled(t){this.Ii=t}get isRealtime(){return this.fl}set isRealtime(t){this.fl=t}get diagram(){return this.p}set diagram(t){this.p!==t&&(this.p=t,t.xl=!0,t.requestUpdate())}invalidateRouter(){this.p!==null&&(this.p.xl=!0,this.p.requestUpdate())}canRoute(t){if(!this.isEnabled)return!1;const i=this.diagram;return!(i&&(!this.isRealtime&&i.yu||i.animationManager.isTicking))}routeLinks(t,i){}toString(){return this.name!==\"\"?this.name+\" Router\":Util.sn(this.constructor)}}class AvoidsNodesRouter extends Router{constructor(t){super(),this.name=\"AvoidsNodes\",t&&Object.assign(this,t)}canRoute(t){return(t instanceof Diagram?t.jm:t.diagram.jm)?super.canRoute(t):!1}routeLinks(t,i){const e=i instanceof Diagram?null:i,s=t.iterator,n=this.diagram.getPositions(!0,e,null);for(;s.next();){const o=s.value;if(!o.isAvoiding||o.containingGroup!==e||o.toNode===null||o.fromNode===null||o.pointsCount<4)continue;o.startRoute();const r=o.pointsCount,l=o.getPoint(1),h=o.getPoint(r-2),a=o.fromNode.actualBounds.copy();a.inflate(Link.va,Link.va),a.unionPoint(o.getPoint(0));const c=o.toNode.actualBounds.copy();c.inflate(Link.va,Link.va),c.unionPoint(o.getPoint(r-1)),this.HI(o,a,c,n)&&this.qI(o,l,o.eN,h,o.sN,a,c,n),o.commitRoute()}}HI(t,i,e,s){const n=t.diagram,o=t.pointsCount;if(n===null||t.fromNode===t.toNode||t.layer.isTemporary||i.containsPoint(t.getPoint(o-1))&&!t.toNode.isMemberOf(t.fromNode)||e.containsPoint(t.getPoint(0))&&!t.fromNode.isMemberOf(t.toNode)||!t.isOrthogonal)return!1;if(t.segmentIndex===17)return!0;const r=t.getPoint(1),l=t.getPoint(o-2),h=t.getPoint(2);if(!s.isUnoccupied(Math.min(r.x,h.x),Math.min(r.y,h.y),Math.abs(r.x-h.x),Math.abs(r.y-h.y)))return!0;for(let c=2;c=PositionArray.Ud&&(l.YL(),d.inflate(l.cellWidth*l.OS,l.cellHeight*l.IS),l.hT(i,e,s,n,d,!1),m=l.fo(s.x,s.y)),!l.by&&mPositionArray.Ba&&i.fo(g,p)!==u-1&&(i.fo(d-c,m)===u-1?(n=180,g=d-c,p=m):i.fo(d+c,m)===u-1?(n=0,g=d+c,p=m):i.fo(d,m-f)===u-1?(n=270,g=d,p=m-f):i.fo(d,m+f)===u-1&&(n=90,g=d,p=m+f));u>PositionArray.Ba&&i.fo(g,p)===u-1;)d=g,m=p,n===0?g+=c:n===90?p+=f:n===180?g-=c:p-=f,u-=1;if(o?u>PositionArray.Ba&&(n===180||n===0?d=Math.floor(d/c)*c+c/2:(n===90||n===270)&&(m=Math.floor(m/f)*f+f/2)):(d=Math.floor(d/c)*c+c/2,m=Math.floor(m/f)*f+f/2),u>PositionArray.Ba){let y=n,x=d,k=m;if(n===0?(y=90,k+=f):n===90?(y=180,x-=c):n===180?(y=270,k-=f):n===270&&(y=0,x+=c),i.fo(x,k)===u-1)this.WN(t,i,x,k,y,!1);else{let P=d,M=m;n===0?(y=270,M-=f):n===90?(y=0,P+=c):n===180?(y=90,M+=f):n===270&&(y=180,P-=c),i.fo(P,M)===u-1&&this.WN(t,i,P,M,y,!1)}}t.insertPointAt(t.pointsCount-2,d,m)}}ToolManager.prototype.initializeStandardTools=function(){this.$t(\"Action\",new ActionTool,this.mouseDownTools),this.$t(\"Relinking\",new RelinkingTool,this.mouseDownTools),this.$t(\"LinkReshaping\",new LinkReshapingTool,this.mouseDownTools),this.$t(\"Rotating\",new RotatingTool,this.mouseDownTools),this.$t(\"Resizing\",new ResizingTool,this.mouseDownTools),this.$t(\"Linking\",new LinkingTool,this.mouseMoveTools),this.$t(\"Dragging\",new DraggingTool,this.mouseMoveTools),this.$t(\"DragSelecting\",new DragSelectingTool,this.mouseMoveTools),this.$t(\"Panning\",new PanningTool,this.mouseMoveTools),this.$t(\"ContextMenu\",new ContextMenuTool,this.mouseUpTools),this.$t(\"TextEditing\",new TextEditingTool,this.mouseUpTools),this.$t(\"ClickCreating\",new ClickCreatingTool,this.mouseUpTools),this.$t(\"ClickSelecting\",new ClickSelectingTool,this.mouseUpTools)};Diagram.mS(\"GraphLinksModel\",GraphLinksPartManager);Diagram.mS(\"TreeModel\",TreePartManager);const oldGo=root.go,go={get version(){return Diagram.version},Group,List,Set:GSet,Map:GMap,Point,Size,Rect,Margin,Spot,Geometry,PathFigure,PathSegment,InputEvent,DiagramEvent,ChangedEvent,Model,GraphLinksModel,TreeModel,Binding,ThemeBinding,Transaction,UndoManager,CommandHandler,Tool,DraggingTool,DraggingInfo,DraggingOptions,LinkingBaseTool,LinkingTool,RelinkingTool,LinkReshapingTool,ResizingTool,RotatingTool,ClickSelectingTool,ActionTool,ClickCreatingTool,HTMLInfo,ContextMenuTool,DragSelectingTool,PanningTool,TextEditingTool,ToolManager,Animation,AnimationManager,AnimationTrigger,Layer,Diagram,Palette,Overview,Brush,GraphObject,Panel,RowColumnDefinition,Shape,TextBlock,Picture,Part,Adornment,Node,Link,Placeholder,Layout,LayoutNetwork,LayoutVertex,LayoutEdge,GridLayout,PanelLayout,CircularLayout,CircularNetwork,CircularVertex,CircularEdge,ForceDirectedLayout,ForceDirectedNetwork,ForceDirectedVertex,ForceDirectedEdge,LayeredDigraphLayout,LayeredDigraphNetwork,LayeredDigraphVertex,LayeredDigraphEdge,TreeLayout,TreeNetwork,TreeVertex,TreeEdge,Themes,ThemeManager,Router,AnimationStyle,AutoScale,CycleMode,Flip,TextFormat,ImageStretch,LayoutConditions,LinkAdjusting,Curve,Routing,Orientation,TextOverflow,PortSpreading,ScrollMode,CollapsePolicy,Sizing,TriggerStart,Stretch,ViewboxStretch,Wrap,BrushType,ColorSpace,GeometryStretch,GeometryType,SegmentType,BindingMode,ChangeType,CircularArrangement,CircularDirection,CircularNodeDiameterFormula,CircularSorting,GridAlignment,GridArrangement,GridSorting,LayeredDigraphAggressive,LayeredDigraphAlign,LayeredDigraphCycleRemove,LayeredDigraphInit,LayeredDigraphLayering,LayeredDigraphPack,TreeAlignment,TreeArrangement,TreeCompaction,TreeLayerStyle,TreePath,TreeSorting,TreeStyle,GestureMode,LinkingDirection,ReshapingBehavior,TextEditingAccept,TextEditingStarting,TextEditingState,WheelMode};for(const w in go){const t=go[w];typeof t==\"function\"&&(t.className=w)}typeof oldGo==\"object\"&&oldGo.version&&Util.ei(\"WARNING: a `go` object on the root object is already defined. \"+(\"Debug\"in oldGo?\"debug \":\"\")+\"version: \"+oldGo.version+\", replaced with version: \"+go.version);Diagram.prototype.go=go;root.go=go;\n})();\n\n\n export default (typeof global !== \"undefined\") ? global.go : self.go;\n export const go = (typeof global !== \"undefined\") ? global.go : self.go;\n export const Group = go.Group;\n export const List = go.List;\n const GSet = go.Set;\n export { GSet as Set };\n const GMap = go.Map;\n export { GMap as Map };\n export const Point = go.Point;\n export const Size = go.Size;\n export const Rect = go.Rect;\n export const Margin = go.Margin;\n export const Spot = go.Spot;\n export const Geometry = go.Geometry;\n export const PathFigure = go.PathFigure;\n export const PathSegment = go.PathSegment;\n export const InputEvent = go.InputEvent;\n export const DiagramEvent = go.DiagramEvent;\n export const ChangedEvent = go.ChangedEvent;\n export const Model = go.Model;\n export const GraphLinksModel = go.GraphLinksModel;\n export const TreeModel = go.TreeModel;\n export const Binding = go.Binding;\n export const ThemeBinding = go.ThemeBinding;\n export const Transaction = go.Transaction;\n export const UndoManager = go.UndoManager;\n export const CommandHandler = go.CommandHandler;\n export const Tool = go.Tool;\n export const DraggingTool = go.DraggingTool;\n export const DraggingInfo = go.DraggingInfo;\n export const DraggingOptions = go.DraggingOptions;\n export const LinkingBaseTool = go.LinkingBaseTool;\n export const LinkingTool = go.LinkingTool;\n export const RelinkingTool = go.RelinkingTool;\n export const LinkReshapingTool = go.LinkReshapingTool;\n export const ResizingTool = go.ResizingTool;\n export const RotatingTool = go.RotatingTool;\n export const ClickSelectingTool = go.ClickSelectingTool;\n export const ActionTool = go.ActionTool;\n export const ClickCreatingTool = go.ClickCreatingTool;\n export const HTMLInfo = go.HTMLInfo;\n export const ContextMenuTool = go.ContextMenuTool;\n export const DragSelectingTool = go.DragSelectingTool;\n export const PanningTool = go.PanningTool;\n export const TextEditingTool = go.TextEditingTool;\n export const ToolManager = go.ToolManager;\n export const Animation = go.Animation;\n export const AnimationManager = go.AnimationManager;\n export const AnimationTrigger = go.AnimationTrigger;\n export const Layer = go.Layer;\n export const Diagram = go.Diagram;\n export const Palette = go.Palette;\n export const Overview = go.Overview;\n export const Brush = go.Brush;\n export const GraphObject = go.GraphObject;\n export const Panel = go.Panel;\n export const RowColumnDefinition = go.RowColumnDefinition;\n export const Shape = go.Shape;\n export const TextBlock = go.TextBlock;\n export const Picture = go.Picture;\n export const Part = go.Part;\n export const Adornment = go.Adornment;\n export const Node = go.Node;\n export const Link = go.Link;\n export const Placeholder = go.Placeholder;\n export const Layout = go.Layout;\n export const LayoutNetwork = go.LayoutNetwork;\n export const LayoutVertex = go.LayoutVertex;\n export const LayoutEdge = go.LayoutEdge;\n export const GridLayout = go.GridLayout;\n export const PanelLayout = go.PanelLayout;\n export const CircularLayout = go.CircularLayout;\n export const CircularNetwork = go.CircularNetwork;\n export const CircularVertex = go.CircularVertex;\n export const CircularEdge = go.CircularEdge;\n export const ForceDirectedLayout = go.ForceDirectedLayout;\n export const ForceDirectedNetwork = go.ForceDirectedNetwork;\n export const ForceDirectedVertex = go.ForceDirectedVertex;\n export const ForceDirectedEdge = go.ForceDirectedEdge;\n export const LayeredDigraphLayout = go.LayeredDigraphLayout;\n export const LayeredDigraphNetwork = go.LayeredDigraphNetwork;\n export const LayeredDigraphVertex = go.LayeredDigraphVertex;\n export const LayeredDigraphEdge = go.LayeredDigraphEdge;\n export const TreeLayout = go.TreeLayout;\n export const TreeNetwork = go.TreeNetwork;\n export const TreeVertex = go.TreeVertex;\n export const TreeEdge = go.TreeEdge;\n export const Themes = go.Themes;\n export const ThemeManager = go.ThemeManager;\n export const Router = go.Router;\n export const version = go.version;\n\n export const AnimationStyle = go.AnimationStyle;\n export const AutoScale = go.AutoScale;\n export const Curve = go.Curve;\n export const CycleMode = go.CycleMode;\n export const Flip = go.Flip;\n export const ImageStretch = go.ImageStretch;\n export const LayoutConditions = go.LayoutConditions;\n export const LinkAdjusting = go.LinkAdjusting;\n export const Orientation = go.Orientation;\n export const PortSpreading = go.PortSpreading;\n export const Routing = go.Routing;\n export const ScrollMode = go.ScrollMode;\n export const CollapsePolicy = go.CollapsePolicy;\n export const Sizing = go.Sizing;\n export const TriggerStart = go.TriggerStart;\n export const Stretch = go.Stretch;\n export const TextFormat = go.TextFormat;\n export const TextOverflow = go.TextOverflow;\n export const ViewboxStretch = go.ViewboxStretch;\n export const Wrap = go.Wrap;\n export const BrushType = go.BrushType;\n export const ColorSpace = go.ColorSpace;\n export const GeometryStretch = go.GeometryStretch;\n export const GeometryType = go.GeometryType;\n export const SegmentType = go.SegmentType;\n export const BindingMode = go.BindingMode;\n export const ChangeType = go.ChangeType;\n export const CircularArrangement = go.CircularArrangement;\n export const CircularDirection = go.CircularDirection;\n export const CircularNodeDiameterFormula = go.CircularNodeDiameterFormula;\n export const CircularSorting = go.CircularSorting;\n export const GridAlignment = go.GridAlignment;\n export const GridArrangement = go.GridArrangement;\n export const GridSorting = go.GridSorting;\n export const LayeredDigraphAggressive = go.LayeredDigraphAggressive;\n export const LayeredDigraphAlign = go.LayeredDigraphAlign;\n export const LayeredDigraphCycleRemove = go.LayeredDigraphCycleRemove;\n export const LayeredDigraphInit = go.LayeredDigraphInit;\n export const LayeredDigraphLayering = go.LayeredDigraphLayering;\n export const LayeredDigraphPack = go.LayeredDigraphPack;\n export const TreeAlignment = go.TreeAlignment;\n export const TreeArrangement = go.TreeArrangement;\n export const TreeCompaction = go.TreeCompaction;\n export const TreeLayerStyle = go.TreeLayerStyle;\n export const TreePath = go.TreePath;\n export const TreeSorting = go.TreeSorting;\n export const TreeStyle = go.TreeStyle;\n export const GestureMode = go.GestureMode;\n export const LinkingDirection = go.LinkingDirection;\n export const ReshapingBehavior = go.ReshapingBehavior;\n export const TextEditingAccept = go.TextEditingAccept;\n export const TextEditingStarting = go.TextEditingStarting;\n export const TextEditingState = go.TextEditingState;\n export const WheelMode = go.WheelMode;\n ","\r\n\r\n
\r\n {axis1}/{axis2}\r\n
\r\n
\r\n","/**\n * @license\n * Copyright 2010-2024 Three.js Authors\n * SPDX-License-Identifier: MIT\n */\nconst REVISION = '172';\n\nconst MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };\nconst TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };\nconst CullFaceNone = 0;\nconst CullFaceBack = 1;\nconst CullFaceFront = 2;\nconst CullFaceFrontBack = 3;\nconst BasicShadowMap = 0;\nconst PCFShadowMap = 1;\nconst PCFSoftShadowMap = 2;\nconst VSMShadowMap = 3;\nconst FrontSide = 0;\nconst BackSide = 1;\nconst DoubleSide = 2;\nconst NoBlending = 0;\nconst NormalBlending = 1;\nconst AdditiveBlending = 2;\nconst SubtractiveBlending = 3;\nconst MultiplyBlending = 4;\nconst CustomBlending = 5;\nconst AddEquation = 100;\nconst SubtractEquation = 101;\nconst ReverseSubtractEquation = 102;\nconst MinEquation = 103;\nconst MaxEquation = 104;\nconst ZeroFactor = 200;\nconst OneFactor = 201;\nconst SrcColorFactor = 202;\nconst OneMinusSrcColorFactor = 203;\nconst SrcAlphaFactor = 204;\nconst OneMinusSrcAlphaFactor = 205;\nconst DstAlphaFactor = 206;\nconst OneMinusDstAlphaFactor = 207;\nconst DstColorFactor = 208;\nconst OneMinusDstColorFactor = 209;\nconst SrcAlphaSaturateFactor = 210;\nconst ConstantColorFactor = 211;\nconst OneMinusConstantColorFactor = 212;\nconst ConstantAlphaFactor = 213;\nconst OneMinusConstantAlphaFactor = 214;\nconst NeverDepth = 0;\nconst AlwaysDepth = 1;\nconst LessDepth = 2;\nconst LessEqualDepth = 3;\nconst EqualDepth = 4;\nconst GreaterEqualDepth = 5;\nconst GreaterDepth = 6;\nconst NotEqualDepth = 7;\nconst MultiplyOperation = 0;\nconst MixOperation = 1;\nconst AddOperation = 2;\nconst NoToneMapping = 0;\nconst LinearToneMapping = 1;\nconst ReinhardToneMapping = 2;\nconst CineonToneMapping = 3;\nconst ACESFilmicToneMapping = 4;\nconst CustomToneMapping = 5;\nconst AgXToneMapping = 6;\nconst NeutralToneMapping = 7;\nconst AttachedBindMode = 'attached';\nconst DetachedBindMode = 'detached';\n\nconst UVMapping = 300;\nconst CubeReflectionMapping = 301;\nconst CubeRefractionMapping = 302;\nconst EquirectangularReflectionMapping = 303;\nconst EquirectangularRefractionMapping = 304;\nconst CubeUVReflectionMapping = 306;\nconst RepeatWrapping = 1000;\nconst ClampToEdgeWrapping = 1001;\nconst MirroredRepeatWrapping = 1002;\nconst NearestFilter = 1003;\nconst NearestMipmapNearestFilter = 1004;\nconst NearestMipMapNearestFilter = 1004;\nconst NearestMipmapLinearFilter = 1005;\nconst NearestMipMapLinearFilter = 1005;\nconst LinearFilter = 1006;\nconst LinearMipmapNearestFilter = 1007;\nconst LinearMipMapNearestFilter = 1007;\nconst LinearMipmapLinearFilter = 1008;\nconst LinearMipMapLinearFilter = 1008;\nconst UnsignedByteType = 1009;\nconst ByteType = 1010;\nconst ShortType = 1011;\nconst UnsignedShortType = 1012;\nconst IntType = 1013;\nconst UnsignedIntType = 1014;\nconst FloatType = 1015;\nconst HalfFloatType = 1016;\nconst UnsignedShort4444Type = 1017;\nconst UnsignedShort5551Type = 1018;\nconst UnsignedInt248Type = 1020;\nconst UnsignedInt5999Type = 35902;\nconst AlphaFormat = 1021;\nconst RGBFormat = 1022;\nconst RGBAFormat = 1023;\nconst LuminanceFormat = 1024;\nconst LuminanceAlphaFormat = 1025;\nconst DepthFormat = 1026;\nconst DepthStencilFormat = 1027;\nconst RedFormat = 1028;\nconst RedIntegerFormat = 1029;\nconst RGFormat = 1030;\nconst RGIntegerFormat = 1031;\nconst RGBIntegerFormat = 1032;\nconst RGBAIntegerFormat = 1033;\n\nconst RGB_S3TC_DXT1_Format = 33776;\nconst RGBA_S3TC_DXT1_Format = 33777;\nconst RGBA_S3TC_DXT3_Format = 33778;\nconst RGBA_S3TC_DXT5_Format = 33779;\nconst RGB_PVRTC_4BPPV1_Format = 35840;\nconst RGB_PVRTC_2BPPV1_Format = 35841;\nconst RGBA_PVRTC_4BPPV1_Format = 35842;\nconst RGBA_PVRTC_2BPPV1_Format = 35843;\nconst RGB_ETC1_Format = 36196;\nconst RGB_ETC2_Format = 37492;\nconst RGBA_ETC2_EAC_Format = 37496;\nconst RGBA_ASTC_4x4_Format = 37808;\nconst RGBA_ASTC_5x4_Format = 37809;\nconst RGBA_ASTC_5x5_Format = 37810;\nconst RGBA_ASTC_6x5_Format = 37811;\nconst RGBA_ASTC_6x6_Format = 37812;\nconst RGBA_ASTC_8x5_Format = 37813;\nconst RGBA_ASTC_8x6_Format = 37814;\nconst RGBA_ASTC_8x8_Format = 37815;\nconst RGBA_ASTC_10x5_Format = 37816;\nconst RGBA_ASTC_10x6_Format = 37817;\nconst RGBA_ASTC_10x8_Format = 37818;\nconst RGBA_ASTC_10x10_Format = 37819;\nconst RGBA_ASTC_12x10_Format = 37820;\nconst RGBA_ASTC_12x12_Format = 37821;\nconst RGBA_BPTC_Format = 36492;\nconst RGB_BPTC_SIGNED_Format = 36494;\nconst RGB_BPTC_UNSIGNED_Format = 36495;\nconst RED_RGTC1_Format = 36283;\nconst SIGNED_RED_RGTC1_Format = 36284;\nconst RED_GREEN_RGTC2_Format = 36285;\nconst SIGNED_RED_GREEN_RGTC2_Format = 36286;\nconst LoopOnce = 2200;\nconst LoopRepeat = 2201;\nconst LoopPingPong = 2202;\nconst InterpolateDiscrete = 2300;\nconst InterpolateLinear = 2301;\nconst InterpolateSmooth = 2302;\nconst ZeroCurvatureEnding = 2400;\nconst ZeroSlopeEnding = 2401;\nconst WrapAroundEnding = 2402;\nconst NormalAnimationBlendMode = 2500;\nconst AdditiveAnimationBlendMode = 2501;\nconst TrianglesDrawMode = 0;\nconst TriangleStripDrawMode = 1;\nconst TriangleFanDrawMode = 2;\nconst BasicDepthPacking = 3200;\nconst RGBADepthPacking = 3201;\nconst RGBDepthPacking = 3202;\nconst RGDepthPacking = 3203;\nconst TangentSpaceNormalMap = 0;\nconst ObjectSpaceNormalMap = 1;\n\n// Color space string identifiers, matching CSS Color Module Level 4 and WebGPU names where available.\nconst NoColorSpace = '';\nconst SRGBColorSpace = 'srgb';\nconst LinearSRGBColorSpace = 'srgb-linear';\n\nconst LinearTransfer = 'linear';\nconst SRGBTransfer = 'srgb';\n\nconst ZeroStencilOp = 0;\nconst KeepStencilOp = 7680;\nconst ReplaceStencilOp = 7681;\nconst IncrementStencilOp = 7682;\nconst DecrementStencilOp = 7683;\nconst IncrementWrapStencilOp = 34055;\nconst DecrementWrapStencilOp = 34056;\nconst InvertStencilOp = 5386;\n\nconst NeverStencilFunc = 512;\nconst LessStencilFunc = 513;\nconst EqualStencilFunc = 514;\nconst LessEqualStencilFunc = 515;\nconst GreaterStencilFunc = 516;\nconst NotEqualStencilFunc = 517;\nconst GreaterEqualStencilFunc = 518;\nconst AlwaysStencilFunc = 519;\n\nconst NeverCompare = 512;\nconst LessCompare = 513;\nconst EqualCompare = 514;\nconst LessEqualCompare = 515;\nconst GreaterCompare = 516;\nconst NotEqualCompare = 517;\nconst GreaterEqualCompare = 518;\nconst AlwaysCompare = 519;\n\nconst StaticDrawUsage = 35044;\nconst DynamicDrawUsage = 35048;\nconst StreamDrawUsage = 35040;\nconst StaticReadUsage = 35045;\nconst DynamicReadUsage = 35049;\nconst StreamReadUsage = 35041;\nconst StaticCopyUsage = 35046;\nconst DynamicCopyUsage = 35050;\nconst StreamCopyUsage = 35042;\n\nconst GLSL1 = '100';\nconst GLSL3 = '300 es';\n\nconst WebGLCoordinateSystem = 2000;\nconst WebGPUCoordinateSystem = 2001;\n\n/**\n * https://github.com/mrdoob/eventdispatcher.js/\n */\n\nclass EventDispatcher {\n\n\taddEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) this._listeners = {};\n\n\t\tconst listeners = this._listeners;\n\n\t\tif ( listeners[ type ] === undefined ) {\n\n\t\t\tlisteners[ type ] = [];\n\n\t\t}\n\n\t\tif ( listeners[ type ].indexOf( listener ) === - 1 ) {\n\n\t\t\tlisteners[ type ].push( listener );\n\n\t\t}\n\n\t}\n\n\thasEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) return false;\n\n\t\tconst listeners = this._listeners;\n\n\t\treturn listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1;\n\n\t}\n\n\tremoveEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) return;\n\n\t\tconst listeners = this._listeners;\n\t\tconst listenerArray = listeners[ type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tconst index = listenerArray.indexOf( listener );\n\n\t\t\tif ( index !== - 1 ) {\n\n\t\t\t\tlistenerArray.splice( index, 1 );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tdispatchEvent( event ) {\n\n\t\tif ( this._listeners === undefined ) return;\n\n\t\tconst listeners = this._listeners;\n\t\tconst listenerArray = listeners[ event.type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tevent.target = this;\n\n\t\t\t// Make a copy, in case listeners are removed while iterating.\n\t\t\tconst array = listenerArray.slice( 0 );\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i ++ ) {\n\n\t\t\t\tarray[ i ].call( this, event );\n\n\t\t\t}\n\n\t\t\tevent.target = null;\n\n\t\t}\n\n\t}\n\n}\n\nconst _lut = [ '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f', 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf', 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf', 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df', 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff' ];\n\nlet _seed = 1234567;\n\n\nconst DEG2RAD = Math.PI / 180;\nconst RAD2DEG = 180 / Math.PI;\n\n// http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\nfunction generateUUID() {\n\n\tconst d0 = Math.random() * 0xffffffff | 0;\n\tconst d1 = Math.random() * 0xffffffff | 0;\n\tconst d2 = Math.random() * 0xffffffff | 0;\n\tconst d3 = Math.random() * 0xffffffff | 0;\n\tconst uuid = _lut[ d0 & 0xff ] + _lut[ d0 >> 8 & 0xff ] + _lut[ d0 >> 16 & 0xff ] + _lut[ d0 >> 24 & 0xff ] + '-' +\n\t\t\t_lut[ d1 & 0xff ] + _lut[ d1 >> 8 & 0xff ] + '-' + _lut[ d1 >> 16 & 0x0f | 0x40 ] + _lut[ d1 >> 24 & 0xff ] + '-' +\n\t\t\t_lut[ d2 & 0x3f | 0x80 ] + _lut[ d2 >> 8 & 0xff ] + '-' + _lut[ d2 >> 16 & 0xff ] + _lut[ d2 >> 24 & 0xff ] +\n\t\t\t_lut[ d3 & 0xff ] + _lut[ d3 >> 8 & 0xff ] + _lut[ d3 >> 16 & 0xff ] + _lut[ d3 >> 24 & 0xff ];\n\n\t// .toLowerCase() here flattens concatenated strings to save heap memory space.\n\treturn uuid.toLowerCase();\n\n}\n\nfunction clamp( value, min, max ) {\n\n\treturn Math.max( min, Math.min( max, value ) );\n\n}\n\n// compute euclidean modulo of m % n\n// https://en.wikipedia.org/wiki/Modulo_operation\nfunction euclideanModulo( n, m ) {\n\n\treturn ( ( n % m ) + m ) % m;\n\n}\n\n// Linear mapping from range to range \nfunction mapLinear( x, a1, a2, b1, b2 ) {\n\n\treturn b1 + ( x - a1 ) * ( b2 - b1 ) / ( a2 - a1 );\n\n}\n\n// https://www.gamedev.net/tutorials/programming/general-and-gameplay-programming/inverse-lerp-a-super-useful-yet-often-overlooked-function-r5230/\nfunction inverseLerp( x, y, value ) {\n\n\tif ( x !== y ) {\n\n\t\treturn ( value - x ) / ( y - x );\n\n\t} else {\n\n\t\treturn 0;\n\n\t}\n\n}\n\n// https://en.wikipedia.org/wiki/Linear_interpolation\nfunction lerp( x, y, t ) {\n\n\treturn ( 1 - t ) * x + t * y;\n\n}\n\n// http://www.rorydriscoll.com/2016/03/07/frame-rate-independent-damping-using-lerp/\nfunction damp( x, y, lambda, dt ) {\n\n\treturn lerp( x, y, 1 - Math.exp( - lambda * dt ) );\n\n}\n\n// https://www.desmos.com/calculator/vcsjnyz7x4\nfunction pingpong( x, length = 1 ) {\n\n\treturn length - Math.abs( euclideanModulo( x, length * 2 ) - length );\n\n}\n\n// http://en.wikipedia.org/wiki/Smoothstep\nfunction smoothstep( x, min, max ) {\n\n\tif ( x <= min ) return 0;\n\tif ( x >= max ) return 1;\n\n\tx = ( x - min ) / ( max - min );\n\n\treturn x * x * ( 3 - 2 * x );\n\n}\n\nfunction smootherstep( x, min, max ) {\n\n\tif ( x <= min ) return 0;\n\tif ( x >= max ) return 1;\n\n\tx = ( x - min ) / ( max - min );\n\n\treturn x * x * x * ( x * ( x * 6 - 15 ) + 10 );\n\n}\n\n// Random integer from interval\nfunction randInt( low, high ) {\n\n\treturn low + Math.floor( Math.random() * ( high - low + 1 ) );\n\n}\n\n// Random float from interval\nfunction randFloat( low, high ) {\n\n\treturn low + Math.random() * ( high - low );\n\n}\n\n// Random float from <-range/2, range/2> interval\nfunction randFloatSpread( range ) {\n\n\treturn range * ( 0.5 - Math.random() );\n\n}\n\n// Deterministic pseudo-random float in the interval [ 0, 1 ]\nfunction seededRandom( s ) {\n\n\tif ( s !== undefined ) _seed = s;\n\n\t// Mulberry32 generator\n\n\tlet t = _seed += 0x6D2B79F5;\n\n\tt = Math.imul( t ^ t >>> 15, t | 1 );\n\n\tt ^= t + Math.imul( t ^ t >>> 7, t | 61 );\n\n\treturn ( ( t ^ t >>> 14 ) >>> 0 ) / 4294967296;\n\n}\n\nfunction degToRad( degrees ) {\n\n\treturn degrees * DEG2RAD;\n\n}\n\nfunction radToDeg( radians ) {\n\n\treturn radians * RAD2DEG;\n\n}\n\nfunction isPowerOfTwo( value ) {\n\n\treturn ( value & ( value - 1 ) ) === 0 && value !== 0;\n\n}\n\nfunction ceilPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.ceil( Math.log( value ) / Math.LN2 ) );\n\n}\n\nfunction floorPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.floor( Math.log( value ) / Math.LN2 ) );\n\n}\n\nfunction setQuaternionFromProperEuler( q, a, b, c, order ) {\n\n\t// Intrinsic Proper Euler Angles - see https://en.wikipedia.org/wiki/Euler_angles\n\n\t// rotations are applied to the axes in the order specified by 'order'\n\t// rotation by angle 'a' is applied first, then by angle 'b', then by angle 'c'\n\t// angles are in radians\n\n\tconst cos = Math.cos;\n\tconst sin = Math.sin;\n\n\tconst c2 = cos( b / 2 );\n\tconst s2 = sin( b / 2 );\n\n\tconst c13 = cos( ( a + c ) / 2 );\n\tconst s13 = sin( ( a + c ) / 2 );\n\n\tconst c1_3 = cos( ( a - c ) / 2 );\n\tconst s1_3 = sin( ( a - c ) / 2 );\n\n\tconst c3_1 = cos( ( c - a ) / 2 );\n\tconst s3_1 = sin( ( c - a ) / 2 );\n\n\tswitch ( order ) {\n\n\t\tcase 'XYX':\n\t\t\tq.set( c2 * s13, s2 * c1_3, s2 * s1_3, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'YZY':\n\t\t\tq.set( s2 * s1_3, c2 * s13, s2 * c1_3, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'ZXZ':\n\t\t\tq.set( s2 * c1_3, s2 * s1_3, c2 * s13, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'XZX':\n\t\t\tq.set( c2 * s13, s2 * s3_1, s2 * c3_1, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'YXY':\n\t\t\tq.set( s2 * c3_1, c2 * s13, s2 * s3_1, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'ZYZ':\n\t\t\tq.set( s2 * s3_1, s2 * c3_1, c2 * s13, c2 * c13 );\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tconsole.warn( 'THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: ' + order );\n\n\t}\n\n}\n\nfunction denormalize( value, array ) {\n\n\tswitch ( array.constructor ) {\n\n\t\tcase Float32Array:\n\n\t\t\treturn value;\n\n\t\tcase Uint32Array:\n\n\t\t\treturn value / 4294967295.0;\n\n\t\tcase Uint16Array:\n\n\t\t\treturn value / 65535.0;\n\n\t\tcase Uint8Array:\n\n\t\t\treturn value / 255.0;\n\n\t\tcase Int32Array:\n\n\t\t\treturn Math.max( value / 2147483647.0, - 1.0 );\n\n\t\tcase Int16Array:\n\n\t\t\treturn Math.max( value / 32767.0, - 1.0 );\n\n\t\tcase Int8Array:\n\n\t\t\treturn Math.max( value / 127.0, - 1.0 );\n\n\t\tdefault:\n\n\t\t\tthrow new Error( 'Invalid component type.' );\n\n\t}\n\n}\n\nfunction normalize( value, array ) {\n\n\tswitch ( array.constructor ) {\n\n\t\tcase Float32Array:\n\n\t\t\treturn value;\n\n\t\tcase Uint32Array:\n\n\t\t\treturn Math.round( value * 4294967295.0 );\n\n\t\tcase Uint16Array:\n\n\t\t\treturn Math.round( value * 65535.0 );\n\n\t\tcase Uint8Array:\n\n\t\t\treturn Math.round( value * 255.0 );\n\n\t\tcase Int32Array:\n\n\t\t\treturn Math.round( value * 2147483647.0 );\n\n\t\tcase Int16Array:\n\n\t\t\treturn Math.round( value * 32767.0 );\n\n\t\tcase Int8Array:\n\n\t\t\treturn Math.round( value * 127.0 );\n\n\t\tdefault:\n\n\t\t\tthrow new Error( 'Invalid component type.' );\n\n\t}\n\n}\n\nconst MathUtils = {\n\tDEG2RAD: DEG2RAD,\n\tRAD2DEG: RAD2DEG,\n\tgenerateUUID: generateUUID,\n\tclamp: clamp,\n\teuclideanModulo: euclideanModulo,\n\tmapLinear: mapLinear,\n\tinverseLerp: inverseLerp,\n\tlerp: lerp,\n\tdamp: damp,\n\tpingpong: pingpong,\n\tsmoothstep: smoothstep,\n\tsmootherstep: smootherstep,\n\trandInt: randInt,\n\trandFloat: randFloat,\n\trandFloatSpread: randFloatSpread,\n\tseededRandom: seededRandom,\n\tdegToRad: degToRad,\n\tradToDeg: radToDeg,\n\tisPowerOfTwo: isPowerOfTwo,\n\tceilPowerOfTwo: ceilPowerOfTwo,\n\tfloorPowerOfTwo: floorPowerOfTwo,\n\tsetQuaternionFromProperEuler: setQuaternionFromProperEuler,\n\tnormalize: normalize,\n\tdenormalize: denormalize\n};\n\nclass Vector2 {\n\n\tconstructor( x = 0, y = 0 ) {\n\n\t\tVector2.prototype.isVector2 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.x;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.x = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.y;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.y = value;\n\n\t}\n\n\tset( x, y ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ];\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ];\n\n\t\treturn this;\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = clamp( this.x, min.x, max.x );\n\t\tthis.y = clamp( this.y, min.y, max.y );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = clamp( this.x, minVal, maxVal );\n\t\tthis.y = clamp( this.y, minVal, maxVal );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( clamp( length, min, max ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = Math.trunc( this.x );\n\t\tthis.y = Math.trunc( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y;\n\n\t}\n\n\tcross( v ) {\n\n\t\treturn this.x * v.y - this.y * v.x;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tangle() {\n\n\t\t// computes the angle in radians with respect to the positive x-axis\n\n\t\tconst angle = Math.atan2( - this.y, - this.x ) + Math.PI;\n\n\t\treturn angle;\n\n\t}\n\n\tangleTo( v ) {\n\n\t\tconst denominator = Math.sqrt( this.lengthSq() * v.lengthSq() );\n\n\t\tif ( denominator === 0 ) return Math.PI / 2;\n\n\t\tconst theta = this.dot( v ) / denominator;\n\n\t\t// clamp, to handle numerical problems\n\n\t\treturn Math.acos( clamp( theta, - 1, 1 ) );\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y;\n\t\treturn dx * dx + dy * dy;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\n\t\treturn this;\n\n\t}\n\n\trotateAround( center, angle ) {\n\n\t\tconst c = Math.cos( angle ), s = Math.sin( angle );\n\n\t\tconst x = this.x - center.x;\n\t\tconst y = this.y - center.y;\n\n\t\tthis.x = x * c - y * s + center.x;\n\t\tthis.y = x * s + y * c + center.y;\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\n\t}\n\n}\n\nclass Matrix3 {\n\n\tconstructor( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {\n\n\t\tMatrix3.prototype.isMatrix3 = true;\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t];\n\n\t\tif ( n11 !== undefined ) {\n\n\t\t\tthis.set( n11, n12, n13, n21, n22, n23, n31, n32, n33 );\n\n\t\t}\n\n\t}\n\n\tset( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 1 ] = n21; te[ 2 ] = n31;\n\t\tte[ 3 ] = n12; te[ 4 ] = n22; te[ 5 ] = n32;\n\t\tte[ 6 ] = n13; te[ 7 ] = n23; te[ 8 ] = n33;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ];\n\t\tte[ 3 ] = me[ 3 ]; te[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ];\n\t\tte[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ]; te[ 8 ] = me[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrix3Column( this, 0 );\n\t\tyAxis.setFromMatrix3Column( this, 1 );\n\t\tzAxis.setFromMatrix3Column( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix4( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 4 ], me[ 8 ],\n\t\t\tme[ 1 ], me[ 5 ], me[ 9 ],\n\t\t\tme[ 2 ], me[ 6 ], me[ 10 ]\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 3 ], a13 = ae[ 6 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 4 ], a23 = ae[ 7 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 5 ], a33 = ae[ 8 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 3 ], b13 = be[ 6 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 4 ], b23 = be[ 7 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 5 ], b33 = be[ 8 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31;\n\t\tte[ 3 ] = a11 * b12 + a12 * b22 + a13 * b32;\n\t\tte[ 6 ] = a11 * b13 + a12 * b23 + a13 * b33;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31;\n\t\tte[ 4 ] = a21 * b12 + a22 * b22 + a23 * b32;\n\t\tte[ 7 ] = a21 * b13 + a22 * b23 + a23 * b33;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31;\n\t\tte[ 5 ] = a31 * b12 + a32 * b22 + a33 * b32;\n\t\tte[ 8 ] = a31 * b13 + a32 * b23 + a33 * b33;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 3 ] *= s; te[ 6 ] *= s;\n\t\tte[ 1 ] *= s; te[ 4 ] *= s; te[ 7 ] *= s;\n\t\tte[ 2 ] *= s; te[ 5 ] *= s; te[ 8 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst a = te[ 0 ], b = te[ 1 ], c = te[ 2 ],\n\t\t\td = te[ 3 ], e = te[ 4 ], f = te[ 5 ],\n\t\t\tg = te[ 6 ], h = te[ 7 ], i = te[ 8 ];\n\n\t\treturn a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g;\n\n\t}\n\n\tinvert() {\n\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ],\n\t\t\tn12 = te[ 3 ], n22 = te[ 4 ], n32 = te[ 5 ],\n\t\t\tn13 = te[ 6 ], n23 = te[ 7 ], n33 = te[ 8 ],\n\n\t\t\tt11 = n33 * n22 - n32 * n23,\n\t\t\tt12 = n32 * n13 - n33 * n12,\n\t\t\tt13 = n23 * n12 - n22 * n13,\n\n\t\t\tdet = n11 * t11 + n21 * t12 + n31 * t13;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n31 * n23 - n33 * n21 ) * detInv;\n\t\tte[ 2 ] = ( n32 * n21 - n31 * n22 ) * detInv;\n\n\t\tte[ 3 ] = t12 * detInv;\n\t\tte[ 4 ] = ( n33 * n11 - n31 * n13 ) * detInv;\n\t\tte[ 5 ] = ( n31 * n12 - n32 * n11 ) * detInv;\n\n\t\tte[ 6 ] = t13 * detInv;\n\t\tte[ 7 ] = ( n21 * n13 - n23 * n11 ) * detInv;\n\t\tte[ 8 ] = ( n22 * n11 - n21 * n12 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\ttranspose() {\n\n\t\tlet tmp;\n\t\tconst m = this.elements;\n\n\t\ttmp = m[ 1 ]; m[ 1 ] = m[ 3 ]; m[ 3 ] = tmp;\n\t\ttmp = m[ 2 ]; m[ 2 ] = m[ 6 ]; m[ 6 ] = tmp;\n\t\ttmp = m[ 5 ]; m[ 5 ] = m[ 7 ]; m[ 7 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tgetNormalMatrix( matrix4 ) {\n\n\t\treturn this.setFromMatrix4( matrix4 ).invert().transpose();\n\n\t}\n\n\ttransposeIntoArray( r ) {\n\n\t\tconst m = this.elements;\n\n\t\tr[ 0 ] = m[ 0 ];\n\t\tr[ 1 ] = m[ 3 ];\n\t\tr[ 2 ] = m[ 6 ];\n\t\tr[ 3 ] = m[ 1 ];\n\t\tr[ 4 ] = m[ 4 ];\n\t\tr[ 5 ] = m[ 7 ];\n\t\tr[ 6 ] = m[ 2 ];\n\t\tr[ 7 ] = m[ 5 ];\n\t\tr[ 8 ] = m[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetUvTransform( tx, ty, sx, sy, rotation, cx, cy ) {\n\n\t\tconst c = Math.cos( rotation );\n\t\tconst s = Math.sin( rotation );\n\n\t\tthis.set(\n\t\t\tsx * c, sx * s, - sx * ( c * cx + s * cy ) + cx + tx,\n\t\t\t- sy * s, sy * c, - sy * ( - s * cx + c * cy ) + cy + ty,\n\t\t\t0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\t//\n\n\tscale( sx, sy ) {\n\n\t\tthis.premultiply( _m3.makeScale( sx, sy ) );\n\n\t\treturn this;\n\n\t}\n\n\trotate( theta ) {\n\n\t\tthis.premultiply( _m3.makeRotation( - theta ) );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( tx, ty ) {\n\n\t\tthis.premultiply( _m3.makeTranslation( tx, ty ) );\n\n\t\treturn this;\n\n\t}\n\n\t// for 2D Transforms\n\n\tmakeTranslation( x, y ) {\n\n\t\tif ( x.isVector2 ) {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, x.x,\n\t\t\t\t0, 1, x.y,\n\t\t\t\t0, 0, 1\n\n\t\t\t);\n\n\t\t} else {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, x,\n\t\t\t\t0, 1, y,\n\t\t\t\t0, 0, 1\n\n\t\t\t);\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotation( theta ) {\n\n\t\t// counterclockwise\n\n\t\tconst c = Math.cos( theta );\n\t\tconst s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\tc, - s, 0,\n\t\t\ts, c, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeScale( x, y ) {\n\n\t\tthis.set(\n\n\t\t\tx, 0, 0,\n\t\t\t0, y, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\t//\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\n\t\treturn array;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().fromArray( this.elements );\n\n\t}\n\n}\n\nconst _m3 = /*@__PURE__*/ new Matrix3();\n\nfunction arrayNeedsUint32( array ) {\n\n\t// assumes larger values usually on last\n\n\tfor ( let i = array.length - 1; i >= 0; -- i ) {\n\n\t\tif ( array[ i ] >= 65535 ) return true; // account for PRIMITIVE_RESTART_FIXED_INDEX, #24565\n\n\t}\n\n\treturn false;\n\n}\n\nconst TYPED_ARRAYS = {\n\tInt8Array: Int8Array,\n\tUint8Array: Uint8Array,\n\tUint8ClampedArray: Uint8ClampedArray,\n\tInt16Array: Int16Array,\n\tUint16Array: Uint16Array,\n\tInt32Array: Int32Array,\n\tUint32Array: Uint32Array,\n\tFloat32Array: Float32Array,\n\tFloat64Array: Float64Array\n};\n\nfunction getTypedArray( type, buffer ) {\n\n\treturn new TYPED_ARRAYS[ type ]( buffer );\n\n}\n\nfunction createElementNS( name ) {\n\n\treturn document.createElementNS( 'http://www.w3.org/1999/xhtml', name );\n\n}\n\nfunction createCanvasElement() {\n\n\tconst canvas = createElementNS( 'canvas' );\n\tcanvas.style.display = 'block';\n\treturn canvas;\n\n}\n\nconst _cache = {};\n\nfunction warnOnce( message ) {\n\n\tif ( message in _cache ) return;\n\n\t_cache[ message ] = true;\n\n\tconsole.warn( message );\n\n}\n\nfunction probeAsync( gl, sync, interval ) {\n\n\treturn new Promise( function ( resolve, reject ) {\n\n\t\tfunction probe() {\n\n\t\t\tswitch ( gl.clientWaitSync( sync, gl.SYNC_FLUSH_COMMANDS_BIT, 0 ) ) {\n\n\t\t\t\tcase gl.WAIT_FAILED:\n\t\t\t\t\treject();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase gl.TIMEOUT_EXPIRED:\n\t\t\t\t\tsetTimeout( probe, interval );\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tresolve();\n\n\t\t\t}\n\n\t\t}\n\n\t\tsetTimeout( probe, interval );\n\n\t} );\n\n}\n\nfunction toNormalizedProjectionMatrix( projectionMatrix ) {\n\n\tconst m = projectionMatrix.elements;\n\n\t// Convert [-1, 1] to [0, 1] projection matrix\n\tm[ 2 ] = 0.5 * m[ 2 ] + 0.5 * m[ 3 ];\n\tm[ 6 ] = 0.5 * m[ 6 ] + 0.5 * m[ 7 ];\n\tm[ 10 ] = 0.5 * m[ 10 ] + 0.5 * m[ 11 ];\n\tm[ 14 ] = 0.5 * m[ 14 ] + 0.5 * m[ 15 ];\n\n}\n\nfunction toReversedProjectionMatrix( projectionMatrix ) {\n\n\tconst m = projectionMatrix.elements;\n\tconst isPerspectiveMatrix = m[ 11 ] === - 1;\n\n\t// Reverse [0, 1] projection matrix\n\tif ( isPerspectiveMatrix ) {\n\n\t\tm[ 10 ] = - m[ 10 ] - 1;\n\t\tm[ 14 ] = - m[ 14 ];\n\n\t} else {\n\n\t\tm[ 10 ] = - m[ 10 ];\n\t\tm[ 14 ] = - m[ 14 ] + 1;\n\n\t}\n\n}\n\nconst LINEAR_REC709_TO_XYZ = /*@__PURE__*/ new Matrix3().set(\n\t0.4123908, 0.3575843, 0.1804808,\n\t0.2126390, 0.7151687, 0.0721923,\n\t0.0193308, 0.1191948, 0.9505322\n);\n\nconst XYZ_TO_LINEAR_REC709 = /*@__PURE__*/ new Matrix3().set(\n\t3.2409699, - 1.5373832, - 0.4986108,\n\t- 0.9692436, 1.8759675, 0.0415551,\n\t0.0556301, - 0.2039770, 1.0569715\n);\n\nfunction createColorManagement() {\n\n\tconst ColorManagement = {\n\n\t\tenabled: true,\n\n\t\tworkingColorSpace: LinearSRGBColorSpace,\n\n\t\t/**\n\t\t * Implementations of supported color spaces.\n\t\t *\n\t\t * Required:\n\t\t *\t- primaries: chromaticity coordinates [ rx ry gx gy bx by ]\n\t\t *\t- whitePoint: reference white [ x y ]\n\t\t *\t- transfer: transfer function (pre-defined)\n\t\t *\t- toXYZ: Matrix3 RGB to XYZ transform\n\t\t *\t- fromXYZ: Matrix3 XYZ to RGB transform\n\t\t *\t- luminanceCoefficients: RGB luminance coefficients\n\t\t *\n\t\t * Optional:\n\t\t * - outputColorSpaceConfig: { drawingBufferColorSpace: ColorSpace }\n\t\t * - workingColorSpaceConfig: { unpackColorSpace: ColorSpace }\n\t\t *\n\t\t * Reference:\n\t\t * - https://www.russellcottrell.com/photo/matrixCalculator.htm\n\t\t */\n\t\tspaces: {},\n\n\t\tconvert: function ( color, sourceColorSpace, targetColorSpace ) {\n\n\t\t\tif ( this.enabled === false || sourceColorSpace === targetColorSpace || ! sourceColorSpace || ! targetColorSpace ) {\n\n\t\t\t\treturn color;\n\n\t\t\t}\n\n\t\t\tif ( this.spaces[ sourceColorSpace ].transfer === SRGBTransfer ) {\n\n\t\t\t\tcolor.r = SRGBToLinear( color.r );\n\t\t\t\tcolor.g = SRGBToLinear( color.g );\n\t\t\t\tcolor.b = SRGBToLinear( color.b );\n\n\t\t\t}\n\n\t\t\tif ( this.spaces[ sourceColorSpace ].primaries !== this.spaces[ targetColorSpace ].primaries ) {\n\n\t\t\t\tcolor.applyMatrix3( this.spaces[ sourceColorSpace ].toXYZ );\n\t\t\t\tcolor.applyMatrix3( this.spaces[ targetColorSpace ].fromXYZ );\n\n\t\t\t}\n\n\t\t\tif ( this.spaces[ targetColorSpace ].transfer === SRGBTransfer ) {\n\n\t\t\t\tcolor.r = LinearToSRGB( color.r );\n\t\t\t\tcolor.g = LinearToSRGB( color.g );\n\t\t\t\tcolor.b = LinearToSRGB( color.b );\n\n\t\t\t}\n\n\t\t\treturn color;\n\n\t\t},\n\n\t\tfromWorkingColorSpace: function ( color, targetColorSpace ) {\n\n\t\t\treturn this.convert( color, this.workingColorSpace, targetColorSpace );\n\n\t\t},\n\n\t\ttoWorkingColorSpace: function ( color, sourceColorSpace ) {\n\n\t\t\treturn this.convert( color, sourceColorSpace, this.workingColorSpace );\n\n\t\t},\n\n\t\tgetPrimaries: function ( colorSpace ) {\n\n\t\t\treturn this.spaces[ colorSpace ].primaries;\n\n\t\t},\n\n\t\tgetTransfer: function ( colorSpace ) {\n\n\t\t\tif ( colorSpace === NoColorSpace ) return LinearTransfer;\n\n\t\t\treturn this.spaces[ colorSpace ].transfer;\n\n\t\t},\n\n\t\tgetLuminanceCoefficients: function ( target, colorSpace = this.workingColorSpace ) {\n\n\t\t\treturn target.fromArray( this.spaces[ colorSpace ].luminanceCoefficients );\n\n\t\t},\n\n\t\tdefine: function ( colorSpaces ) {\n\n\t\t\tObject.assign( this.spaces, colorSpaces );\n\n\t\t},\n\n\t\t// Internal APIs\n\n\t\t_getMatrix: function ( targetMatrix, sourceColorSpace, targetColorSpace ) {\n\n\t\t\treturn targetMatrix\n\t\t\t\t.copy( this.spaces[ sourceColorSpace ].toXYZ )\n\t\t\t\t.multiply( this.spaces[ targetColorSpace ].fromXYZ );\n\n\t\t},\n\n\t\t_getDrawingBufferColorSpace: function ( colorSpace ) {\n\n\t\t\treturn this.spaces[ colorSpace ].outputColorSpaceConfig.drawingBufferColorSpace;\n\n\t\t},\n\n\t\t_getUnpackColorSpace: function ( colorSpace = this.workingColorSpace ) {\n\n\t\t\treturn this.spaces[ colorSpace ].workingColorSpaceConfig.unpackColorSpace;\n\n\t\t}\n\n\t};\n\n\t/******************************************************************************\n\t * sRGB definitions\n\t */\n\n\tconst REC709_PRIMARIES = [ 0.640, 0.330, 0.300, 0.600, 0.150, 0.060 ];\n\tconst REC709_LUMINANCE_COEFFICIENTS = [ 0.2126, 0.7152, 0.0722 ];\n\tconst D65 = [ 0.3127, 0.3290 ];\n\n\tColorManagement.define( {\n\n\t\t[ LinearSRGBColorSpace ]: {\n\t\t\tprimaries: REC709_PRIMARIES,\n\t\t\twhitePoint: D65,\n\t\t\ttransfer: LinearTransfer,\n\t\t\ttoXYZ: LINEAR_REC709_TO_XYZ,\n\t\t\tfromXYZ: XYZ_TO_LINEAR_REC709,\n\t\t\tluminanceCoefficients: REC709_LUMINANCE_COEFFICIENTS,\n\t\t\tworkingColorSpaceConfig: { unpackColorSpace: SRGBColorSpace },\n\t\t\toutputColorSpaceConfig: { drawingBufferColorSpace: SRGBColorSpace }\n\t\t},\n\n\t\t[ SRGBColorSpace ]: {\n\t\t\tprimaries: REC709_PRIMARIES,\n\t\t\twhitePoint: D65,\n\t\t\ttransfer: SRGBTransfer,\n\t\t\ttoXYZ: LINEAR_REC709_TO_XYZ,\n\t\t\tfromXYZ: XYZ_TO_LINEAR_REC709,\n\t\t\tluminanceCoefficients: REC709_LUMINANCE_COEFFICIENTS,\n\t\t\toutputColorSpaceConfig: { drawingBufferColorSpace: SRGBColorSpace }\n\t\t},\n\n\t} );\n\n\treturn ColorManagement;\n\n}\n\nconst ColorManagement = /*@__PURE__*/ createColorManagement();\n\nfunction SRGBToLinear( c ) {\n\n\treturn ( c < 0.04045 ) ? c * 0.0773993808 : Math.pow( c * 0.9478672986 + 0.0521327014, 2.4 );\n\n}\n\nfunction LinearToSRGB( c ) {\n\n\treturn ( c < 0.0031308 ) ? c * 12.92 : 1.055 * ( Math.pow( c, 0.41666 ) ) - 0.055;\n\n}\n\nlet _canvas;\n\nclass ImageUtils {\n\n\tstatic getDataURL( image ) {\n\n\t\tif ( /^data:/i.test( image.src ) ) {\n\n\t\t\treturn image.src;\n\n\t\t}\n\n\t\tif ( typeof HTMLCanvasElement === 'undefined' ) {\n\n\t\t\treturn image.src;\n\n\t\t}\n\n\t\tlet canvas;\n\n\t\tif ( image instanceof HTMLCanvasElement ) {\n\n\t\t\tcanvas = image;\n\n\t\t} else {\n\n\t\t\tif ( _canvas === undefined ) _canvas = createElementNS( 'canvas' );\n\n\t\t\t_canvas.width = image.width;\n\t\t\t_canvas.height = image.height;\n\n\t\t\tconst context = _canvas.getContext( '2d' );\n\n\t\t\tif ( image instanceof ImageData ) {\n\n\t\t\t\tcontext.putImageData( image, 0, 0 );\n\n\t\t\t} else {\n\n\t\t\t\tcontext.drawImage( image, 0, 0, image.width, image.height );\n\n\t\t\t}\n\n\t\t\tcanvas = _canvas;\n\n\t\t}\n\n\t\tif ( canvas.width > 2048 || canvas.height > 2048 ) {\n\n\t\t\tconsole.warn( 'THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons', image );\n\n\t\t\treturn canvas.toDataURL( 'image/jpeg', 0.6 );\n\n\t\t} else {\n\n\t\t\treturn canvas.toDataURL( 'image/png' );\n\n\t\t}\n\n\t}\n\n\tstatic sRGBToLinear( image ) {\n\n\t\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t\tconst canvas = createElementNS( 'canvas' );\n\n\t\t\tcanvas.width = image.width;\n\t\t\tcanvas.height = image.height;\n\n\t\t\tconst context = canvas.getContext( '2d' );\n\t\t\tcontext.drawImage( image, 0, 0, image.width, image.height );\n\n\t\t\tconst imageData = context.getImageData( 0, 0, image.width, image.height );\n\t\t\tconst data = imageData.data;\n\n\t\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\t\tdata[ i ] = SRGBToLinear( data[ i ] / 255 ) * 255;\n\n\t\t\t}\n\n\t\t\tcontext.putImageData( imageData, 0, 0 );\n\n\t\t\treturn canvas;\n\n\t\t} else if ( image.data ) {\n\n\t\t\tconst data = image.data.slice( 0 );\n\n\t\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\t\tif ( data instanceof Uint8Array || data instanceof Uint8ClampedArray ) {\n\n\t\t\t\t\tdata[ i ] = Math.floor( SRGBToLinear( data[ i ] / 255 ) * 255 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// assuming float\n\n\t\t\t\t\tdata[ i ] = SRGBToLinear( data[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tdata: data,\n\t\t\t\twidth: image.width,\n\t\t\t\theight: image.height\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied.' );\n\t\t\treturn image;\n\n\t\t}\n\n\t}\n\n}\n\nlet _sourceId = 0;\n\nclass Source {\n\n\tconstructor( data = null ) {\n\n\t\tthis.isSource = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _sourceId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.data = data;\n\t\tthis.dataReady = true;\n\n\t\tthis.version = 0;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( ! isRootObject && meta.images[ this.uuid ] !== undefined ) {\n\n\t\t\treturn meta.images[ this.uuid ];\n\n\t\t}\n\n\t\tconst output = {\n\t\t\tuuid: this.uuid,\n\t\t\turl: ''\n\t\t};\n\n\t\tconst data = this.data;\n\n\t\tif ( data !== null ) {\n\n\t\t\tlet url;\n\n\t\t\tif ( Array.isArray( data ) ) {\n\n\t\t\t\t// cube texture\n\n\t\t\t\turl = [];\n\n\t\t\t\tfor ( let i = 0, l = data.length; i < l; i ++ ) {\n\n\t\t\t\t\tif ( data[ i ].isDataTexture ) {\n\n\t\t\t\t\t\turl.push( serializeImage( data[ i ].image ) );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\turl.push( serializeImage( data[ i ] ) );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// texture\n\n\t\t\t\turl = serializeImage( data );\n\n\t\t\t}\n\n\t\t\toutput.url = url;\n\n\t\t}\n\n\t\tif ( ! isRootObject ) {\n\n\t\t\tmeta.images[ this.uuid ] = output;\n\n\t\t}\n\n\t\treturn output;\n\n\t}\n\n}\n\nfunction serializeImage( image ) {\n\n\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t// default images\n\n\t\treturn ImageUtils.getDataURL( image );\n\n\t} else {\n\n\t\tif ( image.data ) {\n\n\t\t\t// images of DataTexture\n\n\t\t\treturn {\n\t\t\t\tdata: Array.from( image.data ),\n\t\t\t\twidth: image.width,\n\t\t\t\theight: image.height,\n\t\t\t\ttype: image.data.constructor.name\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.Texture: Unable to serialize Texture.' );\n\t\t\treturn {};\n\n\t\t}\n\n\t}\n\n}\n\nlet _textureId = 0;\n\nclass Texture extends EventDispatcher {\n\n\tconstructor( image = Texture.DEFAULT_IMAGE, mapping = Texture.DEFAULT_MAPPING, wrapS = ClampToEdgeWrapping, wrapT = ClampToEdgeWrapping, magFilter = LinearFilter, minFilter = LinearMipmapLinearFilter, format = RGBAFormat, type = UnsignedByteType, anisotropy = Texture.DEFAULT_ANISOTROPY, colorSpace = NoColorSpace ) {\n\n\t\tsuper();\n\n\t\tthis.isTexture = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _textureId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\n\t\tthis.source = new Source( image );\n\t\tthis.mipmaps = [];\n\n\t\tthis.mapping = mapping;\n\t\tthis.channel = 0;\n\n\t\tthis.wrapS = wrapS;\n\t\tthis.wrapT = wrapT;\n\n\t\tthis.magFilter = magFilter;\n\t\tthis.minFilter = minFilter;\n\n\t\tthis.anisotropy = anisotropy;\n\n\t\tthis.format = format;\n\t\tthis.internalFormat = null;\n\t\tthis.type = type;\n\n\t\tthis.offset = new Vector2( 0, 0 );\n\t\tthis.repeat = new Vector2( 1, 1 );\n\t\tthis.center = new Vector2( 0, 0 );\n\t\tthis.rotation = 0;\n\n\t\tthis.matrixAutoUpdate = true;\n\t\tthis.matrix = new Matrix3();\n\n\t\tthis.generateMipmaps = true;\n\t\tthis.premultiplyAlpha = false;\n\t\tthis.flipY = true;\n\t\tthis.unpackAlignment = 4;\t// valid values: 1, 2, 4, 8 (see http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml)\n\n\t\tthis.colorSpace = colorSpace;\n\n\t\tthis.userData = {};\n\n\t\tthis.version = 0;\n\t\tthis.onUpdate = null;\n\n\t\tthis.renderTarget = null; // assign texture to a render target\n\t\tthis.isRenderTargetTexture = false; // indicates whether a texture belongs to a render target or not\n\t\tthis.pmremVersion = 0; // indicates whether this texture should be processed by PMREMGenerator or not (only relevant for render target textures)\n\n\t}\n\n\tget image() {\n\n\t\treturn this.source.data;\n\n\t}\n\n\tset image( value = null ) {\n\n\t\tthis.source.data = value;\n\n\t}\n\n\tupdateMatrix() {\n\n\t\tthis.matrix.setUvTransform( this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.source = source.source;\n\t\tthis.mipmaps = source.mipmaps.slice( 0 );\n\n\t\tthis.mapping = source.mapping;\n\t\tthis.channel = source.channel;\n\n\t\tthis.wrapS = source.wrapS;\n\t\tthis.wrapT = source.wrapT;\n\n\t\tthis.magFilter = source.magFilter;\n\t\tthis.minFilter = source.minFilter;\n\n\t\tthis.anisotropy = source.anisotropy;\n\n\t\tthis.format = source.format;\n\t\tthis.internalFormat = source.internalFormat;\n\t\tthis.type = source.type;\n\n\t\tthis.offset.copy( source.offset );\n\t\tthis.repeat.copy( source.repeat );\n\t\tthis.center.copy( source.center );\n\t\tthis.rotation = source.rotation;\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\t\tthis.matrix.copy( source.matrix );\n\n\t\tthis.generateMipmaps = source.generateMipmaps;\n\t\tthis.premultiplyAlpha = source.premultiplyAlpha;\n\t\tthis.flipY = source.flipY;\n\t\tthis.unpackAlignment = source.unpackAlignment;\n\t\tthis.colorSpace = source.colorSpace;\n\n\t\tthis.renderTarget = source.renderTarget;\n\t\tthis.isRenderTargetTexture = source.isRenderTargetTexture;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\tthis.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( ! isRootObject && meta.textures[ this.uuid ] !== undefined ) {\n\n\t\t\treturn meta.textures[ this.uuid ];\n\n\t\t}\n\n\t\tconst output = {\n\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Texture',\n\t\t\t\tgenerator: 'Texture.toJSON'\n\t\t\t},\n\n\t\t\tuuid: this.uuid,\n\t\t\tname: this.name,\n\n\t\t\timage: this.source.toJSON( meta ).uuid,\n\n\t\t\tmapping: this.mapping,\n\t\t\tchannel: this.channel,\n\n\t\t\trepeat: [ this.repeat.x, this.repeat.y ],\n\t\t\toffset: [ this.offset.x, this.offset.y ],\n\t\t\tcenter: [ this.center.x, this.center.y ],\n\t\t\trotation: this.rotation,\n\n\t\t\twrap: [ this.wrapS, this.wrapT ],\n\n\t\t\tformat: this.format,\n\t\t\tinternalFormat: this.internalFormat,\n\t\t\ttype: this.type,\n\t\t\tcolorSpace: this.colorSpace,\n\n\t\t\tminFilter: this.minFilter,\n\t\t\tmagFilter: this.magFilter,\n\t\t\tanisotropy: this.anisotropy,\n\n\t\t\tflipY: this.flipY,\n\n\t\t\tgenerateMipmaps: this.generateMipmaps,\n\t\t\tpremultiplyAlpha: this.premultiplyAlpha,\n\t\t\tunpackAlignment: this.unpackAlignment\n\n\t\t};\n\n\t\tif ( Object.keys( this.userData ).length > 0 ) output.userData = this.userData;\n\n\t\tif ( ! isRootObject ) {\n\n\t\t\tmeta.textures[ this.uuid ] = output;\n\n\t\t}\n\n\t\treturn output;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\ttransformUv( uv ) {\n\n\t\tif ( this.mapping !== UVMapping ) return uv;\n\n\t\tuv.applyMatrix3( this.matrix );\n\n\t\tif ( uv.x < 0 || uv.x > 1 ) {\n\n\t\t\tswitch ( this.wrapS ) {\n\n\t\t\t\tcase RepeatWrapping:\n\n\t\t\t\t\tuv.x = uv.x - Math.floor( uv.x );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ClampToEdgeWrapping:\n\n\t\t\t\t\tuv.x = uv.x < 0 ? 0 : 1;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MirroredRepeatWrapping:\n\n\t\t\t\t\tif ( Math.abs( Math.floor( uv.x ) % 2 ) === 1 ) {\n\n\t\t\t\t\t\tuv.x = Math.ceil( uv.x ) - uv.x;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tuv.x = uv.x - Math.floor( uv.x );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( uv.y < 0 || uv.y > 1 ) {\n\n\t\t\tswitch ( this.wrapT ) {\n\n\t\t\t\tcase RepeatWrapping:\n\n\t\t\t\t\tuv.y = uv.y - Math.floor( uv.y );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ClampToEdgeWrapping:\n\n\t\t\t\t\tuv.y = uv.y < 0 ? 0 : 1;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MirroredRepeatWrapping:\n\n\t\t\t\t\tif ( Math.abs( Math.floor( uv.y ) % 2 ) === 1 ) {\n\n\t\t\t\t\t\tuv.y = Math.ceil( uv.y ) - uv.y;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tuv.y = uv.y - Math.floor( uv.y );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.flipY ) {\n\n\t\t\tuv.y = 1 - uv.y;\n\n\t\t}\n\n\t\treturn uv;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) {\n\n\t\t\tthis.version ++;\n\t\t\tthis.source.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n\tset needsPMREMUpdate( value ) {\n\n\t\tif ( value === true ) {\n\n\t\t\tthis.pmremVersion ++;\n\n\t\t}\n\n\t}\n\n}\n\nTexture.DEFAULT_IMAGE = null;\nTexture.DEFAULT_MAPPING = UVMapping;\nTexture.DEFAULT_ANISOTROPY = 1;\n\nclass Vector4 {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tVector4.prototype.isVector4 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.z;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.z = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.w;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.w = value;\n\n\t}\n\n\tset( x, y, z, w ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\t\tthis.z = scalar;\n\t\tthis.w = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetW( w ) {\n\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tcase 2: this.z = value; break;\n\t\t\tcase 3: this.w = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tcase 2: return this.z;\n\t\t\tcase 3: return this.w;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z, this.w );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\t\tthis.z = v.z;\n\t\tthis.w = ( v.w !== undefined ) ? v.w : 1;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\t\tthis.z += v.z;\n\t\tthis.w += v.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\t\tthis.z += s;\n\t\tthis.w += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\t\tthis.z = a.z + b.z;\n\t\tthis.w = a.w + b.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\t\tthis.z += v.z * s;\n\t\tthis.w += v.w * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\t\tthis.z -= v.z;\n\t\tthis.w -= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\t\tthis.z -= s;\n\t\tthis.w -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\t\tthis.z = a.z - b.z;\n\t\tthis.w = a.w - b.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\t\tthis.z *= v.z;\n\t\tthis.w *= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\t\tthis.w *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z, w = this.w;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] * w;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] * w;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] * w;\n\t\tthis.w = e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] * w;\n\n\t\treturn this;\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\t\tthis.z /= v.z;\n\t\tthis.w /= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tsetAxisAngleFromQuaternion( q ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm\n\n\t\t// q is assumed to be normalized\n\n\t\tthis.w = 2 * Math.acos( q.w );\n\n\t\tconst s = Math.sqrt( 1 - q.w * q.w );\n\n\t\tif ( s < 0.0001 ) {\n\n\t\t\tthis.x = 1;\n\t\t\tthis.y = 0;\n\t\t\tthis.z = 0;\n\n\t\t} else {\n\n\t\t\tthis.x = q.x / s;\n\t\t\tthis.y = q.y / s;\n\t\t\tthis.z = q.z / s;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetAxisAngleFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tlet angle, x, y, z; // variables for result\n\t\tconst epsilon = 0.01,\t\t// margin to allow for rounding errors\n\t\t\tepsilon2 = 0.1,\t\t// margin to distinguish between 0 and 180 degrees\n\n\t\t\tte = m.elements,\n\n\t\t\tm11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],\n\t\t\tm21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],\n\t\t\tm31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\tif ( ( Math.abs( m12 - m21 ) < epsilon ) &&\n\t\t ( Math.abs( m13 - m31 ) < epsilon ) &&\n\t\t ( Math.abs( m23 - m32 ) < epsilon ) ) {\n\n\t\t\t// singularity found\n\t\t\t// first check for identity matrix which must have +1 for all terms\n\t\t\t// in leading diagonal and zero in other terms\n\n\t\t\tif ( ( Math.abs( m12 + m21 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m13 + m31 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m23 + m32 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m11 + m22 + m33 - 3 ) < epsilon2 ) ) {\n\n\t\t\t\t// this singularity is identity matrix so angle = 0\n\n\t\t\t\tthis.set( 1, 0, 0, 0 );\n\n\t\t\t\treturn this; // zero angle, arbitrary axis\n\n\t\t\t}\n\n\t\t\t// otherwise this singularity is angle = 180\n\n\t\t\tangle = Math.PI;\n\n\t\t\tconst xx = ( m11 + 1 ) / 2;\n\t\t\tconst yy = ( m22 + 1 ) / 2;\n\t\t\tconst zz = ( m33 + 1 ) / 2;\n\t\t\tconst xy = ( m12 + m21 ) / 4;\n\t\t\tconst xz = ( m13 + m31 ) / 4;\n\t\t\tconst yz = ( m23 + m32 ) / 4;\n\n\t\t\tif ( ( xx > yy ) && ( xx > zz ) ) {\n\n\t\t\t\t// m11 is the largest diagonal term\n\n\t\t\t\tif ( xx < epsilon ) {\n\n\t\t\t\t\tx = 0;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tx = Math.sqrt( xx );\n\t\t\t\t\ty = xy / x;\n\t\t\t\t\tz = xz / x;\n\n\t\t\t\t}\n\n\t\t\t} else if ( yy > zz ) {\n\n\t\t\t\t// m22 is the largest diagonal term\n\n\t\t\t\tif ( yy < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\ty = Math.sqrt( yy );\n\t\t\t\t\tx = xy / y;\n\t\t\t\t\tz = yz / y;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// m33 is the largest diagonal term so base result on this\n\n\t\t\t\tif ( zz < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tz = Math.sqrt( zz );\n\t\t\t\t\tx = xz / z;\n\t\t\t\t\ty = yz / z;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.set( x, y, z, angle );\n\n\t\t\treturn this; // return 180 deg rotation\n\n\t\t}\n\n\t\t// as we have reached here there are no singularities so we can handle normally\n\n\t\tlet s = Math.sqrt( ( m32 - m23 ) * ( m32 - m23 ) +\n\t\t\t( m13 - m31 ) * ( m13 - m31 ) +\n\t\t\t( m21 - m12 ) * ( m21 - m12 ) ); // used to normalize\n\n\t\tif ( Math.abs( s ) < 0.001 ) s = 1;\n\n\t\t// prevent divide by zero, should not happen if matrix is orthogonal and should be\n\t\t// caught by singularity test above, but I've left it in just in case\n\n\t\tthis.x = ( m32 - m23 ) / s;\n\t\tthis.y = ( m13 - m31 ) / s;\n\t\tthis.z = ( m21 - m12 ) / s;\n\t\tthis.w = Math.acos( ( m11 + m22 + m33 - 1 ) / 2 );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixPosition( m ) {\n\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 12 ];\n\t\tthis.y = e[ 13 ];\n\t\tthis.z = e[ 14 ];\n\t\tthis.w = e[ 15 ];\n\n\t\treturn this;\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\t\tthis.z = Math.min( this.z, v.z );\n\t\tthis.w = Math.min( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\t\tthis.z = Math.max( this.z, v.z );\n\t\tthis.w = Math.max( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = clamp( this.x, min.x, max.x );\n\t\tthis.y = clamp( this.y, min.y, max.y );\n\t\tthis.z = clamp( this.z, min.z, max.z );\n\t\tthis.w = clamp( this.w, min.w, max.w );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = clamp( this.x, minVal, maxVal );\n\t\tthis.y = clamp( this.y, minVal, maxVal );\n\t\tthis.z = clamp( this.z, minVal, maxVal );\n\t\tthis.w = clamp( this.w, minVal, maxVal );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( clamp( length, min, max ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\t\tthis.z = Math.floor( this.z );\n\t\tthis.w = Math.floor( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\t\tthis.z = Math.ceil( this.z );\n\t\tthis.w = Math.ceil( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\t\tthis.z = Math.round( this.z );\n\t\tthis.w = Math.round( this.w );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = Math.trunc( this.x );\n\t\tthis.y = Math.trunc( this.y );\n\t\tthis.z = Math.trunc( this.z );\n\t\tthis.w = Math.trunc( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\t\tthis.z = - this.z;\n\t\tthis.w = - this.w;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z ) + Math.abs( this.w );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\t\tthis.z += ( v.z - this.z ) * alpha;\n\t\tthis.w += ( v.w - this.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\t\tthis.z = v1.z + ( v2.z - v1.z ) * alpha;\n\t\tthis.w = v1.w + ( v2.w - v1.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) && ( v.w === this.w ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\t\tthis.z = array[ offset + 2 ];\n\t\tthis.w = array[ offset + 3 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\t\tarray[ offset + 2 ] = this.z;\n\t\tarray[ offset + 3 ] = this.w;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\t\tthis.z = attribute.getZ( index );\n\t\tthis.w = attribute.getW( index );\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\t\tthis.z = Math.random();\n\t\tthis.w = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\t\tyield this.z;\n\t\tyield this.w;\n\n\t}\n\n}\n\n/*\n In options, we can specify:\n * Texture parameters for an auto-generated target texture\n * depthBuffer/stencilBuffer: Booleans to indicate if we should generate these buffers\n*/\nclass RenderTarget extends EventDispatcher {\n\n\tconstructor( width = 1, height = 1, options = {} ) {\n\n\t\tsuper();\n\n\t\tthis.isRenderTarget = true;\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t\tthis.depth = 1;\n\n\t\tthis.scissor = new Vector4( 0, 0, width, height );\n\t\tthis.scissorTest = false;\n\n\t\tthis.viewport = new Vector4( 0, 0, width, height );\n\n\t\tconst image = { width: width, height: height, depth: 1 };\n\n\t\toptions = Object.assign( {\n\t\t\tgenerateMipmaps: false,\n\t\t\tinternalFormat: null,\n\t\t\tminFilter: LinearFilter,\n\t\t\tdepthBuffer: true,\n\t\t\tstencilBuffer: false,\n\t\t\tresolveDepthBuffer: true,\n\t\t\tresolveStencilBuffer: true,\n\t\t\tdepthTexture: null,\n\t\t\tsamples: 0,\n\t\t\tcount: 1\n\t\t}, options );\n\n\t\tconst texture = new Texture( image, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace );\n\n\t\ttexture.flipY = false;\n\t\ttexture.generateMipmaps = options.generateMipmaps;\n\t\ttexture.internalFormat = options.internalFormat;\n\n\t\tthis.textures = [];\n\n\t\tconst count = options.count;\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tthis.textures[ i ] = texture.clone();\n\t\t\tthis.textures[ i ].isRenderTargetTexture = true;\n\t\t\tthis.textures[ i ].renderTarget = this;\n\n\t\t}\n\n\t\tthis.depthBuffer = options.depthBuffer;\n\t\tthis.stencilBuffer = options.stencilBuffer;\n\n\t\tthis.resolveDepthBuffer = options.resolveDepthBuffer;\n\t\tthis.resolveStencilBuffer = options.resolveStencilBuffer;\n\n\t\tthis._depthTexture = null;\n\t\tthis.depthTexture = options.depthTexture;\n\n\t\tthis.samples = options.samples;\n\n\t}\n\n\tget texture() {\n\n\t\treturn this.textures[ 0 ];\n\n\t}\n\n\tset texture( value ) {\n\n\t\tthis.textures[ 0 ] = value;\n\n\t}\n\n\tset depthTexture( current ) {\n\n\t\tif ( this._depthTexture !== null ) this._depthTexture.renderTarget = null;\n\t\tif ( current !== null ) current.renderTarget = this;\n\n\t\tthis._depthTexture = current;\n\n\t}\n\n\tget depthTexture() {\n\n\t\treturn this._depthTexture;\n\n\t}\n\n\tsetSize( width, height, depth = 1 ) {\n\n\t\tif ( this.width !== width || this.height !== height || this.depth !== depth ) {\n\n\t\t\tthis.width = width;\n\t\t\tthis.height = height;\n\t\t\tthis.depth = depth;\n\n\t\t\tfor ( let i = 0, il = this.textures.length; i < il; i ++ ) {\n\n\t\t\t\tthis.textures[ i ].image.width = width;\n\t\t\t\tthis.textures[ i ].image.height = height;\n\t\t\t\tthis.textures[ i ].image.depth = depth;\n\n\t\t\t}\n\n\t\t\tthis.dispose();\n\n\t\t}\n\n\t\tthis.viewport.set( 0, 0, width, height );\n\t\tthis.scissor.set( 0, 0, width, height );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.width = source.width;\n\t\tthis.height = source.height;\n\t\tthis.depth = source.depth;\n\n\t\tthis.scissor.copy( source.scissor );\n\t\tthis.scissorTest = source.scissorTest;\n\n\t\tthis.viewport.copy( source.viewport );\n\n\t\tthis.textures.length = 0;\n\n\t\tfor ( let i = 0, il = source.textures.length; i < il; i ++ ) {\n\n\t\t\tthis.textures[ i ] = source.textures[ i ].clone();\n\t\t\tthis.textures[ i ].isRenderTargetTexture = true;\n\t\t\tthis.textures[ i ].renderTarget = this;\n\n\t\t}\n\n\t\t// ensure image object is not shared, see #20328\n\n\t\tconst image = Object.assign( {}, source.texture.image );\n\t\tthis.texture.source = new Source( image );\n\n\t\tthis.depthBuffer = source.depthBuffer;\n\t\tthis.stencilBuffer = source.stencilBuffer;\n\n\t\tthis.resolveDepthBuffer = source.resolveDepthBuffer;\n\t\tthis.resolveStencilBuffer = source.resolveStencilBuffer;\n\n\t\tif ( source.depthTexture !== null ) this.depthTexture = source.depthTexture.clone();\n\n\t\tthis.samples = source.samples;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\nclass WebGLRenderTarget extends RenderTarget {\n\n\tconstructor( width = 1, height = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.isWebGLRenderTarget = true;\n\n\t}\n\n}\n\nclass DataArrayTexture extends Texture {\n\n\tconstructor( data = null, width = 1, height = 1, depth = 1 ) {\n\n\t\tsuper( null );\n\n\t\tthis.isDataArrayTexture = true;\n\n\t\tthis.image = { data, width, height, depth };\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t\tthis.layerUpdates = new Set();\n\n\t}\n\n\taddLayerUpdate( layerIndex ) {\n\n\t\tthis.layerUpdates.add( layerIndex );\n\n\t}\n\n\tclearLayerUpdates() {\n\n\t\tthis.layerUpdates.clear();\n\n\t}\n\n}\n\nclass WebGLArrayRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( width = 1, height = 1, depth = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.isWebGLArrayRenderTarget = true;\n\n\t\tthis.depth = depth;\n\n\t\tthis.texture = new DataArrayTexture( null, width, height, depth );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\nclass Data3DTexture extends Texture {\n\n\tconstructor( data = null, width = 1, height = 1, depth = 1 ) {\n\n\t\t// We're going to add .setXXX() methods for setting properties later.\n\t\t// Users can still set in Data3DTexture directly.\n\t\t//\n\t\t//\tconst texture = new THREE.Data3DTexture( data, width, height, depth );\n\t\t// \ttexture.anisotropy = 16;\n\t\t//\n\t\t// See #14839\n\n\t\tsuper( null );\n\n\t\tthis.isData3DTexture = true;\n\n\t\tthis.image = { data, width, height, depth };\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\nclass WebGL3DRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( width = 1, height = 1, depth = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.isWebGL3DRenderTarget = true;\n\n\t\tthis.depth = depth;\n\n\t\tthis.texture = new Data3DTexture( null, width, height, depth );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\nclass Quaternion {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tthis.isQuaternion = true;\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._w = w;\n\n\t}\n\n\tstatic slerpFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t ) {\n\n\t\t// fuzz-free, array-based Quaternion SLERP operation\n\n\t\tlet x0 = src0[ srcOffset0 + 0 ],\n\t\t\ty0 = src0[ srcOffset0 + 1 ],\n\t\t\tz0 = src0[ srcOffset0 + 2 ],\n\t\t\tw0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 + 0 ],\n\t\t\ty1 = src1[ srcOffset1 + 1 ],\n\t\t\tz1 = src1[ srcOffset1 + 2 ],\n\t\t\tw1 = src1[ srcOffset1 + 3 ];\n\n\t\tif ( t === 0 ) {\n\n\t\t\tdst[ dstOffset + 0 ] = x0;\n\t\t\tdst[ dstOffset + 1 ] = y0;\n\t\t\tdst[ dstOffset + 2 ] = z0;\n\t\t\tdst[ dstOffset + 3 ] = w0;\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( t === 1 ) {\n\n\t\t\tdst[ dstOffset + 0 ] = x1;\n\t\t\tdst[ dstOffset + 1 ] = y1;\n\t\t\tdst[ dstOffset + 2 ] = z1;\n\t\t\tdst[ dstOffset + 3 ] = w1;\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1 ) {\n\n\t\t\tlet s = 1 - t;\n\t\t\tconst cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1,\n\t\t\t\tdir = ( cos >= 0 ? 1 : - 1 ),\n\t\t\t\tsqrSin = 1 - cos * cos;\n\n\t\t\t// Skip the Slerp for tiny steps to avoid numeric problems:\n\t\t\tif ( sqrSin > Number.EPSILON ) {\n\n\t\t\t\tconst sin = Math.sqrt( sqrSin ),\n\t\t\t\t\tlen = Math.atan2( sin, cos * dir );\n\n\t\t\t\ts = Math.sin( s * len ) / sin;\n\t\t\t\tt = Math.sin( t * len ) / sin;\n\n\t\t\t}\n\n\t\t\tconst tDir = t * dir;\n\n\t\t\tx0 = x0 * s + x1 * tDir;\n\t\t\ty0 = y0 * s + y1 * tDir;\n\t\t\tz0 = z0 * s + z1 * tDir;\n\t\t\tw0 = w0 * s + w1 * tDir;\n\n\t\t\t// Normalize in case we just did a lerp:\n\t\t\tif ( s === 1 - t ) {\n\n\t\t\t\tconst f = 1 / Math.sqrt( x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0 );\n\n\t\t\t\tx0 *= f;\n\t\t\t\ty0 *= f;\n\t\t\t\tz0 *= f;\n\t\t\t\tw0 *= f;\n\n\t\t\t}\n\n\t\t}\n\n\t\tdst[ dstOffset ] = x0;\n\t\tdst[ dstOffset + 1 ] = y0;\n\t\tdst[ dstOffset + 2 ] = z0;\n\t\tdst[ dstOffset + 3 ] = w0;\n\n\t}\n\n\tstatic multiplyQuaternionsFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1 ) {\n\n\t\tconst x0 = src0[ srcOffset0 ];\n\t\tconst y0 = src0[ srcOffset0 + 1 ];\n\t\tconst z0 = src0[ srcOffset0 + 2 ];\n\t\tconst w0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 ];\n\t\tconst y1 = src1[ srcOffset1 + 1 ];\n\t\tconst z1 = src1[ srcOffset1 + 2 ];\n\t\tconst w1 = src1[ srcOffset1 + 3 ];\n\n\t\tdst[ dstOffset ] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1;\n\t\tdst[ dstOffset + 1 ] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1;\n\t\tdst[ dstOffset + 2 ] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1;\n\t\tdst[ dstOffset + 3 ] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1;\n\n\t\treturn dst;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget w() {\n\n\t\treturn this._w;\n\n\t}\n\n\tset w( value ) {\n\n\t\tthis._w = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tset( x, y, z, w ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._w = w;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._w );\n\n\t}\n\n\tcopy( quaternion ) {\n\n\t\tthis._x = quaternion.x;\n\t\tthis._y = quaternion.y;\n\t\tthis._z = quaternion.z;\n\t\tthis._w = quaternion.w;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromEuler( euler, update = true ) {\n\n\t\tconst x = euler._x, y = euler._y, z = euler._z, order = euler._order;\n\n\t\t// http://www.mathworks.com/matlabcentral/fileexchange/\n\t\t// \t20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/\n\t\t//\tcontent/SpinCalc.m\n\n\t\tconst cos = Math.cos;\n\t\tconst sin = Math.sin;\n\n\t\tconst c1 = cos( x / 2 );\n\t\tconst c2 = cos( y / 2 );\n\t\tconst c3 = cos( z / 2 );\n\n\t\tconst s1 = sin( x / 2 );\n\t\tconst s2 = sin( y / 2 );\n\t\tconst s3 = sin( z / 2 );\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tconsole.warn( 'THREE.Quaternion: .setFromEuler() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tif ( update === true ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromAxisAngle( axis, angle ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm\n\n\t\t// assumes axis is normalized\n\n\t\tconst halfAngle = angle / 2, s = Math.sin( halfAngle );\n\n\t\tthis._x = axis.x * s;\n\t\tthis._y = axis.y * s;\n\t\tthis._z = axis.z * s;\n\t\tthis._w = Math.cos( halfAngle );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = m.elements,\n\n\t\t\tm11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],\n\t\t\tm21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],\n\t\t\tm31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ],\n\n\t\t\ttrace = m11 + m22 + m33;\n\n\t\tif ( trace > 0 ) {\n\n\t\t\tconst s = 0.5 / Math.sqrt( trace + 1.0 );\n\n\t\t\tthis._w = 0.25 / s;\n\t\t\tthis._x = ( m32 - m23 ) * s;\n\t\t\tthis._y = ( m13 - m31 ) * s;\n\t\t\tthis._z = ( m21 - m12 ) * s;\n\n\t\t} else if ( m11 > m22 && m11 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m11 - m22 - m33 );\n\n\t\t\tthis._w = ( m32 - m23 ) / s;\n\t\t\tthis._x = 0.25 * s;\n\t\t\tthis._y = ( m12 + m21 ) / s;\n\t\t\tthis._z = ( m13 + m31 ) / s;\n\n\t\t} else if ( m22 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m22 - m11 - m33 );\n\n\t\t\tthis._w = ( m13 - m31 ) / s;\n\t\t\tthis._x = ( m12 + m21 ) / s;\n\t\t\tthis._y = 0.25 * s;\n\t\t\tthis._z = ( m23 + m32 ) / s;\n\n\t\t} else {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m33 - m11 - m22 );\n\n\t\t\tthis._w = ( m21 - m12 ) / s;\n\t\t\tthis._x = ( m13 + m31 ) / s;\n\t\t\tthis._y = ( m23 + m32 ) / s;\n\t\t\tthis._z = 0.25 * s;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromUnitVectors( vFrom, vTo ) {\n\n\t\t// assumes direction vectors vFrom and vTo are normalized\n\n\t\tlet r = vFrom.dot( vTo ) + 1;\n\n\t\tif ( r < Number.EPSILON ) {\n\n\t\t\t// vFrom and vTo point in opposite directions\n\n\t\t\tr = 0;\n\n\t\t\tif ( Math.abs( vFrom.x ) > Math.abs( vFrom.z ) ) {\n\n\t\t\t\tthis._x = - vFrom.y;\n\t\t\t\tthis._y = vFrom.x;\n\t\t\t\tthis._z = 0;\n\t\t\t\tthis._w = r;\n\n\t\t\t} else {\n\n\t\t\t\tthis._x = 0;\n\t\t\t\tthis._y = - vFrom.z;\n\t\t\t\tthis._z = vFrom.y;\n\t\t\t\tthis._w = r;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// crossVectors( vFrom, vTo ); // inlined to avoid cyclic dependency on Vector3\n\n\t\t\tthis._x = vFrom.y * vTo.z - vFrom.z * vTo.y;\n\t\t\tthis._y = vFrom.z * vTo.x - vFrom.x * vTo.z;\n\t\t\tthis._z = vFrom.x * vTo.y - vFrom.y * vTo.x;\n\t\t\tthis._w = r;\n\n\t\t}\n\n\t\treturn this.normalize();\n\n\t}\n\n\tangleTo( q ) {\n\n\t\treturn 2 * Math.acos( Math.abs( clamp( this.dot( q ), - 1, 1 ) ) );\n\n\t}\n\n\trotateTowards( q, step ) {\n\n\t\tconst angle = this.angleTo( q );\n\n\t\tif ( angle === 0 ) return this;\n\n\t\tconst t = Math.min( 1, step / angle );\n\n\t\tthis.slerp( q, t );\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\treturn this.set( 0, 0, 0, 1 );\n\n\t}\n\n\tinvert() {\n\n\t\t// quaternion is assumed to have unit length\n\n\t\treturn this.conjugate();\n\n\t}\n\n\tconjugate() {\n\n\t\tthis._x *= - 1;\n\t\tthis._y *= - 1;\n\t\tthis._z *= - 1;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w );\n\n\t}\n\n\tnormalize() {\n\n\t\tlet l = this.length();\n\n\t\tif ( l === 0 ) {\n\n\t\t\tthis._x = 0;\n\t\t\tthis._y = 0;\n\t\t\tthis._z = 0;\n\t\t\tthis._w = 1;\n\n\t\t} else {\n\n\t\t\tl = 1 / l;\n\n\t\t\tthis._x = this._x * l;\n\t\t\tthis._y = this._y * l;\n\t\t\tthis._z = this._z * l;\n\t\t\tthis._w = this._w * l;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( this, q );\n\n\t}\n\n\tpremultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( q, this );\n\n\t}\n\n\tmultiplyQuaternions( a, b ) {\n\n\t\t// from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm\n\n\t\tconst qax = a._x, qay = a._y, qaz = a._z, qaw = a._w;\n\t\tconst qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w;\n\n\t\tthis._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n\t\tthis._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n\t\tthis._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n\t\tthis._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tslerp( qb, t ) {\n\n\t\tif ( t === 0 ) return this;\n\t\tif ( t === 1 ) return this.copy( qb );\n\n\t\tconst x = this._x, y = this._y, z = this._z, w = this._w;\n\n\t\t// http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/\n\n\t\tlet cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z;\n\n\t\tif ( cosHalfTheta < 0 ) {\n\n\t\t\tthis._w = - qb._w;\n\t\t\tthis._x = - qb._x;\n\t\t\tthis._y = - qb._y;\n\t\t\tthis._z = - qb._z;\n\n\t\t\tcosHalfTheta = - cosHalfTheta;\n\n\t\t} else {\n\n\t\t\tthis.copy( qb );\n\n\t\t}\n\n\t\tif ( cosHalfTheta >= 1.0 ) {\n\n\t\t\tthis._w = w;\n\t\t\tthis._x = x;\n\t\t\tthis._y = y;\n\t\t\tthis._z = z;\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta;\n\n\t\tif ( sqrSinHalfTheta <= Number.EPSILON ) {\n\n\t\t\tconst s = 1 - t;\n\t\t\tthis._w = s * w + t * this._w;\n\t\t\tthis._x = s * x + t * this._x;\n\t\t\tthis._y = s * y + t * this._y;\n\t\t\tthis._z = s * z + t * this._z;\n\n\t\t\tthis.normalize(); // normalize calls _onChangeCallback()\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sinHalfTheta = Math.sqrt( sqrSinHalfTheta );\n\t\tconst halfTheta = Math.atan2( sinHalfTheta, cosHalfTheta );\n\t\tconst ratioA = Math.sin( ( 1 - t ) * halfTheta ) / sinHalfTheta,\n\t\t\tratioB = Math.sin( t * halfTheta ) / sinHalfTheta;\n\n\t\tthis._w = ( w * ratioA + this._w * ratioB );\n\t\tthis._x = ( x * ratioA + this._x * ratioB );\n\t\tthis._y = ( y * ratioA + this._y * ratioB );\n\t\tthis._z = ( z * ratioA + this._z * ratioB );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tslerpQuaternions( qa, qb, t ) {\n\n\t\treturn this.copy( qa ).slerp( qb, t );\n\n\t}\n\n\trandom() {\n\n\t\t// sets this quaternion to a uniform random unit quaternnion\n\n\t\t// Ken Shoemake\n\t\t// Uniform random rotations\n\t\t// D. Kirk, editor, Graphics Gems III, pages 124-132. Academic Press, New York, 1992.\n\n\t\tconst theta1 = 2 * Math.PI * Math.random();\n\t\tconst theta2 = 2 * Math.PI * Math.random();\n\n\t\tconst x0 = Math.random();\n\t\tconst r1 = Math.sqrt( 1 - x0 );\n\t\tconst r2 = Math.sqrt( x0 );\n\n\t\treturn this.set(\n\t\t\tr1 * Math.sin( theta1 ),\n\t\t\tr1 * Math.cos( theta1 ),\n\t\t\tr2 * Math.sin( theta2 ),\n\t\t\tr2 * Math.cos( theta2 ),\n\t\t);\n\n\t}\n\n\tequals( quaternion ) {\n\n\t\treturn ( quaternion._x === this._x ) && ( quaternion._y === this._y ) && ( quaternion._z === this._z ) && ( quaternion._w === this._w );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis._x = array[ offset ];\n\t\tthis._y = array[ offset + 1 ];\n\t\tthis._z = array[ offset + 2 ];\n\t\tthis._w = array[ offset + 3 ];\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this._x;\n\t\tarray[ offset + 1 ] = this._y;\n\t\tarray[ offset + 2 ] = this._z;\n\t\tarray[ offset + 3 ] = this._w;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis._x = attribute.getX( index );\n\t\tthis._y = attribute.getY( index );\n\t\tthis._z = attribute.getZ( index );\n\t\tthis._w = attribute.getW( index );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.toArray();\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this._x;\n\t\tyield this._y;\n\t\tyield this._z;\n\t\tyield this._w;\n\n\t}\n\n}\n\nclass Vector3 {\n\n\tconstructor( x = 0, y = 0, z = 0 ) {\n\n\t\tVector3.prototype.isVector3 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\n\t}\n\n\tset( x, y, z ) {\n\n\t\tif ( z === undefined ) z = this.z; // sprite.scale.set(x,y)\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\t\tthis.z = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tcase 2: this.z = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tcase 2: return this.z;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\t\tthis.z = v.z;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\t\tthis.z += v.z;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\t\tthis.z += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\t\tthis.z = a.z + b.z;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\t\tthis.z += v.z * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\t\tthis.z -= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\t\tthis.z -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\t\tthis.z = a.z - b.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\t\tthis.z *= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyVectors( a, b ) {\n\n\t\tthis.x = a.x * b.x;\n\t\tthis.y = a.y * b.y;\n\t\tthis.z = a.z * b.z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyEuler( euler ) {\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromEuler( euler ) );\n\n\t}\n\n\tapplyAxisAngle( axis, angle ) {\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromAxisAngle( axis, angle ) );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 5 ] * y + e[ 8 ] * z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\treturn this.applyMatrix3( m ).normalize();\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tconst w = 1 / ( e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] );\n\n\t\tthis.x = ( e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] ) * w;\n\t\tthis.y = ( e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] ) * w;\n\t\tthis.z = ( e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] ) * w;\n\n\t\treturn this;\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\t// quaternion q is assumed to have unit length\n\n\t\tconst vx = this.x, vy = this.y, vz = this.z;\n\t\tconst qx = q.x, qy = q.y, qz = q.z, qw = q.w;\n\n\t\t// t = 2 * cross( q.xyz, v );\n\t\tconst tx = 2 * ( qy * vz - qz * vy );\n\t\tconst ty = 2 * ( qz * vx - qx * vz );\n\t\tconst tz = 2 * ( qx * vy - qy * vx );\n\n\t\t// v + q.w * t + cross( q.xyz, t );\n\t\tthis.x = vx + qw * tx + qy * tz - qz * ty;\n\t\tthis.y = vy + qw * ty + qz * tx - qx * tz;\n\t\tthis.z = vz + qw * tz + qx * ty - qy * tx;\n\n\t\treturn this;\n\n\t}\n\n\tproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.matrixWorldInverse ).applyMatrix4( camera.projectionMatrix );\n\n\t}\n\n\tunproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.projectionMatrixInverse ).applyMatrix4( camera.matrixWorld );\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\t// input: THREE.Matrix4 affine matrix\n\t\t// vector interpreted as a direction\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z;\n\n\t\treturn this.normalize();\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\t\tthis.z /= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\t\tthis.z = Math.min( this.z, v.z );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\t\tthis.z = Math.max( this.z, v.z );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = clamp( this.x, min.x, max.x );\n\t\tthis.y = clamp( this.y, min.y, max.y );\n\t\tthis.z = clamp( this.z, min.z, max.z );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = clamp( this.x, minVal, maxVal );\n\t\tthis.y = clamp( this.y, minVal, maxVal );\n\t\tthis.z = clamp( this.z, minVal, maxVal );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( clamp( length, min, max ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\t\tthis.z = Math.floor( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\t\tthis.z = Math.ceil( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\t\tthis.z = Math.round( this.z );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = Math.trunc( this.x );\n\t\tthis.y = Math.trunc( this.y );\n\t\tthis.z = Math.trunc( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\t\tthis.z = - this.z;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y + this.z * v.z;\n\n\t}\n\n\t// TODO lengthSquared?\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\t\tthis.z += ( v.z - this.z ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\t\tthis.z = v1.z + ( v2.z - v1.z ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tcross( v ) {\n\n\t\treturn this.crossVectors( this, v );\n\n\t}\n\n\tcrossVectors( a, b ) {\n\n\t\tconst ax = a.x, ay = a.y, az = a.z;\n\t\tconst bx = b.x, by = b.y, bz = b.z;\n\n\t\tthis.x = ay * bz - az * by;\n\t\tthis.y = az * bx - ax * bz;\n\t\tthis.z = ax * by - ay * bx;\n\n\t\treturn this;\n\n\t}\n\n\tprojectOnVector( v ) {\n\n\t\tconst denominator = v.lengthSq();\n\n\t\tif ( denominator === 0 ) return this.set( 0, 0, 0 );\n\n\t\tconst scalar = v.dot( this ) / denominator;\n\n\t\treturn this.copy( v ).multiplyScalar( scalar );\n\n\t}\n\n\tprojectOnPlane( planeNormal ) {\n\n\t\t_vector$c.copy( this ).projectOnVector( planeNormal );\n\n\t\treturn this.sub( _vector$c );\n\n\t}\n\n\treflect( normal ) {\n\n\t\t// reflect incident vector off plane orthogonal to normal\n\t\t// normal is assumed to have unit length\n\n\t\treturn this.sub( _vector$c.copy( normal ).multiplyScalar( 2 * this.dot( normal ) ) );\n\n\t}\n\n\tangleTo( v ) {\n\n\t\tconst denominator = Math.sqrt( this.lengthSq() * v.lengthSq() );\n\n\t\tif ( denominator === 0 ) return Math.PI / 2;\n\n\t\tconst theta = this.dot( v ) / denominator;\n\n\t\t// clamp, to handle numerical problems\n\n\t\treturn Math.acos( clamp( theta, - 1, 1 ) );\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z;\n\n\t\treturn dx * dx + dy * dy + dz * dz;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y ) + Math.abs( this.z - v.z );\n\n\t}\n\n\tsetFromSpherical( s ) {\n\n\t\treturn this.setFromSphericalCoords( s.radius, s.phi, s.theta );\n\n\t}\n\n\tsetFromSphericalCoords( radius, phi, theta ) {\n\n\t\tconst sinPhiRadius = Math.sin( phi ) * radius;\n\n\t\tthis.x = sinPhiRadius * Math.sin( theta );\n\t\tthis.y = Math.cos( phi ) * radius;\n\t\tthis.z = sinPhiRadius * Math.cos( theta );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCylindrical( c ) {\n\n\t\treturn this.setFromCylindricalCoords( c.radius, c.theta, c.y );\n\n\t}\n\n\tsetFromCylindricalCoords( radius, theta, y ) {\n\n\t\tthis.x = radius * Math.sin( theta );\n\t\tthis.y = y;\n\t\tthis.z = radius * Math.cos( theta );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixPosition( m ) {\n\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 12 ];\n\t\tthis.y = e[ 13 ];\n\t\tthis.z = e[ 14 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixScale( m ) {\n\n\t\tconst sx = this.setFromMatrixColumn( m, 0 ).length();\n\t\tconst sy = this.setFromMatrixColumn( m, 1 ).length();\n\t\tconst sz = this.setFromMatrixColumn( m, 2 ).length();\n\n\t\tthis.x = sx;\n\t\tthis.y = sy;\n\t\tthis.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixColumn( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 4 );\n\n\t}\n\n\tsetFromMatrix3Column( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 3 );\n\n\t}\n\n\tsetFromEuler( e ) {\n\n\t\tthis.x = e._x;\n\t\tthis.y = e._y;\n\t\tthis.z = e._z;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromColor( c ) {\n\n\t\tthis.x = c.r;\n\t\tthis.y = c.g;\n\t\tthis.z = c.b;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\t\tthis.z = array[ offset + 2 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\t\tarray[ offset + 2 ] = this.z;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\t\tthis.z = attribute.getZ( index );\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\t\tthis.z = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\trandomDirection() {\n\n\t\t// https://mathworld.wolfram.com/SpherePointPicking.html\n\n\t\tconst theta = Math.random() * Math.PI * 2;\n\t\tconst u = Math.random() * 2 - 1;\n\t\tconst c = Math.sqrt( 1 - u * u );\n\n\t\tthis.x = c * Math.cos( theta );\n\t\tthis.y = u;\n\t\tthis.z = c * Math.sin( theta );\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\t\tyield this.z;\n\n\t}\n\n}\n\nconst _vector$c = /*@__PURE__*/ new Vector3();\nconst _quaternion$4 = /*@__PURE__*/ new Quaternion();\n\nclass Box3 {\n\n\tconstructor( min = new Vector3( + Infinity, + Infinity, + Infinity ), max = new Vector3( - Infinity, - Infinity, - Infinity ) ) {\n\n\t\tthis.isBox3 = true;\n\n\t\tthis.min = min;\n\t\tthis.max = max;\n\n\t}\n\n\tset( min, max ) {\n\n\t\tthis.min.copy( min );\n\t\tthis.max.copy( max );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromArray( array ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = array.length; i < il; i += 3 ) {\n\n\t\t\tthis.expandByPoint( _vector$b.fromArray( array, i ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromBufferAttribute( attribute ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = attribute.count; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( _vector$b.fromBufferAttribute( attribute, i ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( points[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCenterAndSize( center, size ) {\n\n\t\tconst halfSize = _vector$b.copy( size ).multiplyScalar( 0.5 );\n\n\t\tthis.min.copy( center ).sub( halfSize );\n\t\tthis.max.copy( center ).add( halfSize );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromObject( object, precise = false ) {\n\n\t\tthis.makeEmpty();\n\n\t\treturn this.expandByObject( object, precise );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( box ) {\n\n\t\tthis.min.copy( box.min );\n\t\tthis.max.copy( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.min.x = this.min.y = this.min.z = + Infinity;\n\t\tthis.max.x = this.max.y = this.max.z = - Infinity;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\t// this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\n\n\t\treturn ( this.max.x < this.min.x ) || ( this.max.y < this.min.y ) || ( this.max.z < this.min.z );\n\n\t}\n\n\tgetCenter( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.addVectors( this.min, this.max ).multiplyScalar( 0.5 );\n\n\t}\n\n\tgetSize( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.subVectors( this.max, this.min );\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tthis.min.min( point );\n\t\tthis.max.max( point );\n\n\t\treturn this;\n\n\t}\n\n\texpandByVector( vector ) {\n\n\t\tthis.min.sub( vector );\n\t\tthis.max.add( vector );\n\n\t\treturn this;\n\n\t}\n\n\texpandByScalar( scalar ) {\n\n\t\tthis.min.addScalar( - scalar );\n\t\tthis.max.addScalar( scalar );\n\n\t\treturn this;\n\n\t}\n\n\texpandByObject( object, precise = false ) {\n\n\t\t// Computes the world-axis-aligned bounding box of an object (including its children),\n\t\t// accounting for both the object's, and children's, world transforms\n\n\t\tobject.updateWorldMatrix( false, false );\n\n\t\tconst geometry = object.geometry;\n\n\t\tif ( geometry !== undefined ) {\n\n\t\t\tconst positionAttribute = geometry.getAttribute( 'position' );\n\n\t\t\t// precise AABB computation based on vertex data requires at least a position attribute.\n\t\t\t// instancing isn't supported so far and uses the normal (conservative) code path.\n\n\t\t\tif ( precise === true && positionAttribute !== undefined && object.isInstancedMesh !== true ) {\n\n\t\t\t\tfor ( let i = 0, l = positionAttribute.count; i < l; i ++ ) {\n\n\t\t\t\t\tif ( object.isMesh === true ) {\n\n\t\t\t\t\t\tobject.getVertexPosition( i, _vector$b );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_vector$b.fromBufferAttribute( positionAttribute, i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_vector$b.applyMatrix4( object.matrixWorld );\n\t\t\t\t\tthis.expandByPoint( _vector$b );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( object.boundingBox !== undefined ) {\n\n\t\t\t\t\t// object-level bounding box\n\n\t\t\t\t\tif ( object.boundingBox === null ) {\n\n\t\t\t\t\t\tobject.computeBoundingBox();\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_box$4.copy( object.boundingBox );\n\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// geometry-level bounding box\n\n\t\t\t\t\tif ( geometry.boundingBox === null ) {\n\n\t\t\t\t\t\tgeometry.computeBoundingBox();\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_box$4.copy( geometry.boundingBox );\n\n\t\t\t\t}\n\n\t\t\t\t_box$4.applyMatrix4( object.matrixWorld );\n\n\t\t\t\tthis.union( _box$4 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tthis.expandByObject( children[ i ], precise );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn point.x >= this.min.x && point.x <= this.max.x &&\n\t\t\tpoint.y >= this.min.y && point.y <= this.max.y &&\n\t\t\tpoint.z >= this.min.z && point.z <= this.max.z;\n\n\t}\n\n\tcontainsBox( box ) {\n\n\t\treturn this.min.x <= box.min.x && box.max.x <= this.max.x &&\n\t\t\tthis.min.y <= box.min.y && box.max.y <= this.max.y &&\n\t\t\tthis.min.z <= box.min.z && box.max.z <= this.max.z;\n\n\t}\n\n\tgetParameter( point, target ) {\n\n\t\t// This can potentially have a divide by zero if the box\n\t\t// has a size dimension of 0.\n\n\t\treturn target.set(\n\t\t\t( point.x - this.min.x ) / ( this.max.x - this.min.x ),\n\t\t\t( point.y - this.min.y ) / ( this.max.y - this.min.y ),\n\t\t\t( point.z - this.min.z ) / ( this.max.z - this.min.z )\n\t\t);\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\t// using 6 splitting planes to rule out intersections.\n\t\treturn box.max.x >= this.min.x && box.min.x <= this.max.x &&\n\t\t\tbox.max.y >= this.min.y && box.min.y <= this.max.y &&\n\t\t\tbox.max.z >= this.min.z && box.min.z <= this.max.z;\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\t// Find the point on the AABB closest to the sphere center.\n\t\tthis.clampPoint( sphere.center, _vector$b );\n\n\t\t// If that point is inside the sphere, the AABB and sphere intersect.\n\t\treturn _vector$b.distanceToSquared( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\t// We compute the minimum and maximum dot product values. If those values\n\t\t// are on the same side (back or front) of the plane, then there is no intersection.\n\n\t\tlet min, max;\n\n\t\tif ( plane.normal.x > 0 ) {\n\n\t\t\tmin = plane.normal.x * this.min.x;\n\t\t\tmax = plane.normal.x * this.max.x;\n\n\t\t} else {\n\n\t\t\tmin = plane.normal.x * this.max.x;\n\t\t\tmax = plane.normal.x * this.min.x;\n\n\t\t}\n\n\t\tif ( plane.normal.y > 0 ) {\n\n\t\t\tmin += plane.normal.y * this.min.y;\n\t\t\tmax += plane.normal.y * this.max.y;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.y * this.max.y;\n\t\t\tmax += plane.normal.y * this.min.y;\n\n\t\t}\n\n\t\tif ( plane.normal.z > 0 ) {\n\n\t\t\tmin += plane.normal.z * this.min.z;\n\t\t\tmax += plane.normal.z * this.max.z;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.z * this.max.z;\n\t\t\tmax += plane.normal.z * this.min.z;\n\n\t\t}\n\n\t\treturn ( min <= - plane.constant && max >= - plane.constant );\n\n\t}\n\n\tintersectsTriangle( triangle ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// compute box center and extents\n\t\tthis.getCenter( _center );\n\t\t_extents.subVectors( this.max, _center );\n\n\t\t// translate triangle to aabb origin\n\t\t_v0$2.subVectors( triangle.a, _center );\n\t\t_v1$7.subVectors( triangle.b, _center );\n\t\t_v2$4.subVectors( triangle.c, _center );\n\n\t\t// compute edge vectors for triangle\n\t\t_f0.subVectors( _v1$7, _v0$2 );\n\t\t_f1.subVectors( _v2$4, _v1$7 );\n\t\t_f2.subVectors( _v0$2, _v2$4 );\n\n\t\t// test against axes that are given by cross product combinations of the edges of the triangle and the edges of the aabb\n\t\t// make an axis testing of each of the 3 sides of the aabb against each of the 3 sides of the triangle = 9 axis of separation\n\t\t// axis_ij = u_i x f_j (u0, u1, u2 = face normals of aabb = x,y,z axes vectors since aabb is axis aligned)\n\t\tlet axes = [\n\t\t\t0, - _f0.z, _f0.y, 0, - _f1.z, _f1.y, 0, - _f2.z, _f2.y,\n\t\t\t_f0.z, 0, - _f0.x, _f1.z, 0, - _f1.x, _f2.z, 0, - _f2.x,\n\t\t\t- _f0.y, _f0.x, 0, - _f1.y, _f1.x, 0, - _f2.y, _f2.x, 0\n\t\t];\n\t\tif ( ! satForAxes( axes, _v0$2, _v1$7, _v2$4, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// test 3 face normals from the aabb\n\t\taxes = [ 1, 0, 0, 0, 1, 0, 0, 0, 1 ];\n\t\tif ( ! satForAxes( axes, _v0$2, _v1$7, _v2$4, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// finally testing the face normal of the triangle\n\t\t// use already existing triangle edge vectors here\n\t\t_triangleNormal.crossVectors( _f0, _f1 );\n\t\taxes = [ _triangleNormal.x, _triangleNormal.y, _triangleNormal.z ];\n\n\t\treturn satForAxes( axes, _v0$2, _v1$7, _v2$4, _extents );\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\treturn target.copy( point ).clamp( this.min, this.max );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.clampPoint( point, _vector$b ).distanceTo( point );\n\n\t}\n\n\tgetBoundingSphere( target ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\ttarget.makeEmpty();\n\n\t\t} else {\n\n\t\t\tthis.getCenter( target.center );\n\n\t\t\ttarget.radius = this.getSize( _vector$b ).length() * 0.5;\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\tintersect( box ) {\n\n\t\tthis.min.max( box.min );\n\t\tthis.max.min( box.max );\n\n\t\t// ensure that if there is no overlap, the result is fully empty, not slightly empty with non-inf/+inf values that will cause subsequence intersects to erroneously return valid values.\n\t\tif ( this.isEmpty() ) this.makeEmpty();\n\n\t\treturn this;\n\n\t}\n\n\tunion( box ) {\n\n\t\tthis.min.min( box.min );\n\t\tthis.max.max( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\t// transform of empty box is an empty box.\n\t\tif ( this.isEmpty() ) return this;\n\n\t\t// NOTE: I am using a binary pattern to specify all 2^3 combinations below\n\t\t_points[ 0 ].set( this.min.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 000\n\t\t_points[ 1 ].set( this.min.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 001\n\t\t_points[ 2 ].set( this.min.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 010\n\t\t_points[ 3 ].set( this.min.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 011\n\t\t_points[ 4 ].set( this.max.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 100\n\t\t_points[ 5 ].set( this.max.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 101\n\t\t_points[ 6 ].set( this.max.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 110\n\t\t_points[ 7 ].set( this.max.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 111\n\n\t\tthis.setFromPoints( _points );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.min.add( offset );\n\t\tthis.max.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\tequals( box ) {\n\n\t\treturn box.min.equals( this.min ) && box.max.equals( this.max );\n\n\t}\n\n}\n\nconst _points = [\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3()\n];\n\nconst _vector$b = /*@__PURE__*/ new Vector3();\n\nconst _box$4 = /*@__PURE__*/ new Box3();\n\n// triangle centered vertices\n\nconst _v0$2 = /*@__PURE__*/ new Vector3();\nconst _v1$7 = /*@__PURE__*/ new Vector3();\nconst _v2$4 = /*@__PURE__*/ new Vector3();\n\n// triangle edge vectors\n\nconst _f0 = /*@__PURE__*/ new Vector3();\nconst _f1 = /*@__PURE__*/ new Vector3();\nconst _f2 = /*@__PURE__*/ new Vector3();\n\nconst _center = /*@__PURE__*/ new Vector3();\nconst _extents = /*@__PURE__*/ new Vector3();\nconst _triangleNormal = /*@__PURE__*/ new Vector3();\nconst _testAxis = /*@__PURE__*/ new Vector3();\n\nfunction satForAxes( axes, v0, v1, v2, extents ) {\n\n\tfor ( let i = 0, j = axes.length - 3; i <= j; i += 3 ) {\n\n\t\t_testAxis.fromArray( axes, i );\n\t\t// project the aabb onto the separating axis\n\t\tconst r = extents.x * Math.abs( _testAxis.x ) + extents.y * Math.abs( _testAxis.y ) + extents.z * Math.abs( _testAxis.z );\n\t\t// project all 3 vertices of the triangle onto the separating axis\n\t\tconst p0 = v0.dot( _testAxis );\n\t\tconst p1 = v1.dot( _testAxis );\n\t\tconst p2 = v2.dot( _testAxis );\n\t\t// actual test, basically see if either of the most extreme of the triangle points intersects r\n\t\tif ( Math.max( - Math.max( p0, p1, p2 ), Math.min( p0, p1, p2 ) ) > r ) {\n\n\t\t\t// points of the projected triangle are outside the projected half-length of the aabb\n\t\t\t// the axis is separating and we can exit\n\t\t\treturn false;\n\n\t\t}\n\n\t}\n\n\treturn true;\n\n}\n\nconst _box$3 = /*@__PURE__*/ new Box3();\nconst _v1$6 = /*@__PURE__*/ new Vector3();\nconst _v2$3 = /*@__PURE__*/ new Vector3();\n\nclass Sphere {\n\n\tconstructor( center = new Vector3(), radius = - 1 ) {\n\n\t\tthis.isSphere = true;\n\n\t\tthis.center = center;\n\t\tthis.radius = radius;\n\n\t}\n\n\tset( center, radius ) {\n\n\t\tthis.center.copy( center );\n\t\tthis.radius = radius;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points, optionalCenter ) {\n\n\t\tconst center = this.center;\n\n\t\tif ( optionalCenter !== undefined ) {\n\n\t\t\tcenter.copy( optionalCenter );\n\n\t\t} else {\n\n\t\t\t_box$3.setFromPoints( points ).getCenter( center );\n\n\t\t}\n\n\t\tlet maxRadiusSq = 0;\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( points[ i ] ) );\n\n\t\t}\n\n\t\tthis.radius = Math.sqrt( maxRadiusSq );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( sphere ) {\n\n\t\tthis.center.copy( sphere.center );\n\t\tthis.radius = sphere.radius;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\treturn ( this.radius < 0 );\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.center.set( 0, 0, 0 );\n\t\tthis.radius = - 1;\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn ( point.distanceToSquared( this.center ) <= ( this.radius * this.radius ) );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn ( point.distanceTo( this.center ) - this.radius );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst radiusSum = this.radius + sphere.radius;\n\n\t\treturn sphere.center.distanceToSquared( this.center ) <= ( radiusSum * radiusSum );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsSphere( this );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\treturn Math.abs( plane.distanceToPoint( this.center ) ) <= this.radius;\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\tconst deltaLengthSq = this.center.distanceToSquared( point );\n\n\t\ttarget.copy( point );\n\n\t\tif ( deltaLengthSq > ( this.radius * this.radius ) ) {\n\n\t\t\ttarget.sub( this.center ).normalize();\n\t\t\ttarget.multiplyScalar( this.radius ).add( this.center );\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\tgetBoundingBox( target ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\t// Empty sphere produces empty bounding box\n\t\t\ttarget.makeEmpty();\n\t\t\treturn target;\n\n\t\t}\n\n\t\ttarget.set( this.center, this.center );\n\t\ttarget.expandByScalar( this.radius );\n\n\t\treturn target;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tthis.center.applyMatrix4( matrix );\n\t\tthis.radius = this.radius * matrix.getMaxScaleOnAxis();\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.center.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\tthis.center.copy( point );\n\n\t\t\tthis.radius = 0;\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\t_v1$6.subVectors( point, this.center );\n\n\t\tconst lengthSq = _v1$6.lengthSq();\n\n\t\tif ( lengthSq > ( this.radius * this.radius ) ) {\n\n\t\t\t// calculate the minimal sphere\n\n\t\t\tconst length = Math.sqrt( lengthSq );\n\n\t\t\tconst delta = ( length - this.radius ) * 0.5;\n\n\t\t\tthis.center.addScaledVector( _v1$6, delta / length );\n\n\t\t\tthis.radius += delta;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tunion( sphere ) {\n\n\t\tif ( sphere.isEmpty() ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\tthis.copy( sphere );\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( this.center.equals( sphere.center ) === true ) {\n\n\t\t\t this.radius = Math.max( this.radius, sphere.radius );\n\n\t\t} else {\n\n\t\t\t_v2$3.subVectors( sphere.center, this.center ).setLength( sphere.radius );\n\n\t\t\tthis.expandByPoint( _v1$6.copy( sphere.center ).add( _v2$3 ) );\n\n\t\t\tthis.expandByPoint( _v1$6.copy( sphere.center ).sub( _v2$3 ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tequals( sphere ) {\n\n\t\treturn sphere.center.equals( this.center ) && ( sphere.radius === this.radius );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _vector$a = /*@__PURE__*/ new Vector3();\nconst _segCenter = /*@__PURE__*/ new Vector3();\nconst _segDir = /*@__PURE__*/ new Vector3();\nconst _diff = /*@__PURE__*/ new Vector3();\n\nconst _edge1 = /*@__PURE__*/ new Vector3();\nconst _edge2 = /*@__PURE__*/ new Vector3();\nconst _normal$1 = /*@__PURE__*/ new Vector3();\n\nclass Ray {\n\n\tconstructor( origin = new Vector3(), direction = new Vector3( 0, 0, - 1 ) ) {\n\n\t\tthis.origin = origin;\n\t\tthis.direction = direction;\n\n\t}\n\n\tset( origin, direction ) {\n\n\t\tthis.origin.copy( origin );\n\t\tthis.direction.copy( direction );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( ray ) {\n\n\t\tthis.origin.copy( ray.origin );\n\t\tthis.direction.copy( ray.direction );\n\n\t\treturn this;\n\n\t}\n\n\tat( t, target ) {\n\n\t\treturn target.copy( this.origin ).addScaledVector( this.direction, t );\n\n\t}\n\n\tlookAt( v ) {\n\n\t\tthis.direction.copy( v ).sub( this.origin ).normalize();\n\n\t\treturn this;\n\n\t}\n\n\trecast( t ) {\n\n\t\tthis.origin.copy( this.at( t, _vector$a ) );\n\n\t\treturn this;\n\n\t}\n\n\tclosestPointToPoint( point, target ) {\n\n\t\ttarget.subVectors( point, this.origin );\n\n\t\tconst directionDistance = target.dot( this.direction );\n\n\t\tif ( directionDistance < 0 ) {\n\n\t\t\treturn target.copy( this.origin );\n\n\t\t}\n\n\t\treturn target.copy( this.origin ).addScaledVector( this.direction, directionDistance );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn Math.sqrt( this.distanceSqToPoint( point ) );\n\n\t}\n\n\tdistanceSqToPoint( point ) {\n\n\t\tconst directionDistance = _vector$a.subVectors( point, this.origin ).dot( this.direction );\n\n\t\t// point behind the ray\n\n\t\tif ( directionDistance < 0 ) {\n\n\t\t\treturn this.origin.distanceToSquared( point );\n\n\t\t}\n\n\t\t_vector$a.copy( this.origin ).addScaledVector( this.direction, directionDistance );\n\n\t\treturn _vector$a.distanceToSquared( point );\n\n\t}\n\n\tdistanceSqToSegment( v0, v1, optionalPointOnRay, optionalPointOnSegment ) {\n\n\t\t// from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteDistRaySegment.h\n\t\t// It returns the min distance between the ray and the segment\n\t\t// defined by v0 and v1\n\t\t// It can also set two optional targets :\n\t\t// - The closest point on the ray\n\t\t// - The closest point on the segment\n\n\t\t_segCenter.copy( v0 ).add( v1 ).multiplyScalar( 0.5 );\n\t\t_segDir.copy( v1 ).sub( v0 ).normalize();\n\t\t_diff.copy( this.origin ).sub( _segCenter );\n\n\t\tconst segExtent = v0.distanceTo( v1 ) * 0.5;\n\t\tconst a01 = - this.direction.dot( _segDir );\n\t\tconst b0 = _diff.dot( this.direction );\n\t\tconst b1 = - _diff.dot( _segDir );\n\t\tconst c = _diff.lengthSq();\n\t\tconst det = Math.abs( 1 - a01 * a01 );\n\t\tlet s0, s1, sqrDist, extDet;\n\n\t\tif ( det > 0 ) {\n\n\t\t\t// The ray and segment are not parallel.\n\n\t\t\ts0 = a01 * b1 - b0;\n\t\t\ts1 = a01 * b0 - b1;\n\t\t\textDet = segExtent * det;\n\n\t\t\tif ( s0 >= 0 ) {\n\n\t\t\t\tif ( s1 >= - extDet ) {\n\n\t\t\t\t\tif ( s1 <= extDet ) {\n\n\t\t\t\t\t\t// region 0\n\t\t\t\t\t\t// Minimum at interior points of ray and segment.\n\n\t\t\t\t\t\tconst invDet = 1 / det;\n\t\t\t\t\t\ts0 *= invDet;\n\t\t\t\t\t\ts1 *= invDet;\n\t\t\t\t\t\tsqrDist = s0 * ( s0 + a01 * s1 + 2 * b0 ) + s1 * ( a01 * s0 + s1 + 2 * b1 ) + c;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// region 1\n\n\t\t\t\t\t\ts1 = segExtent;\n\t\t\t\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// region 5\n\n\t\t\t\t\ts1 = - segExtent;\n\t\t\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( s1 <= - extDet ) {\n\n\t\t\t\t\t// region 4\n\n\t\t\t\t\ts0 = Math.max( 0, - ( - a01 * segExtent + b0 ) );\n\t\t\t\t\ts1 = ( s0 > 0 ) ? - segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t} else if ( s1 <= extDet ) {\n\n\t\t\t\t\t// region 3\n\n\t\t\t\t\ts0 = 0;\n\t\t\t\t\ts1 = Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// region 2\n\n\t\t\t\t\ts0 = Math.max( 0, - ( a01 * segExtent + b0 ) );\n\t\t\t\t\ts1 = ( s0 > 0 ) ? segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// Ray and segment are parallel.\n\n\t\t\ts1 = ( a01 > 0 ) ? - segExtent : segExtent;\n\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t}\n\n\t\tif ( optionalPointOnRay ) {\n\n\t\t\toptionalPointOnRay.copy( this.origin ).addScaledVector( this.direction, s0 );\n\n\t\t}\n\n\t\tif ( optionalPointOnSegment ) {\n\n\t\t\toptionalPointOnSegment.copy( _segCenter ).addScaledVector( _segDir, s1 );\n\n\t\t}\n\n\t\treturn sqrDist;\n\n\t}\n\n\tintersectSphere( sphere, target ) {\n\n\t\t_vector$a.subVectors( sphere.center, this.origin );\n\t\tconst tca = _vector$a.dot( this.direction );\n\t\tconst d2 = _vector$a.dot( _vector$a ) - tca * tca;\n\t\tconst radius2 = sphere.radius * sphere.radius;\n\n\t\tif ( d2 > radius2 ) return null;\n\n\t\tconst thc = Math.sqrt( radius2 - d2 );\n\n\t\t// t0 = first intersect point - entrance on front of sphere\n\t\tconst t0 = tca - thc;\n\n\t\t// t1 = second intersect point - exit point on back of sphere\n\t\tconst t1 = tca + thc;\n\n\t\t// test to see if t1 is behind the ray - if so, return null\n\t\tif ( t1 < 0 ) return null;\n\n\t\t// test to see if t0 is behind the ray:\n\t\t// if it is, the ray is inside the sphere, so return the second exit point scaled by t1,\n\t\t// in order to always return an intersect point that is in front of the ray.\n\t\tif ( t0 < 0 ) return this.at( t1, target );\n\n\t\t// else t0 is in front of the ray, so return the first collision point scaled by t0\n\t\treturn this.at( t0, target );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\treturn this.distanceSqToPoint( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\tdistanceToPlane( plane ) {\n\n\t\tconst denominator = plane.normal.dot( this.direction );\n\n\t\tif ( denominator === 0 ) {\n\n\t\t\t// line is coplanar, return origin\n\t\t\tif ( plane.distanceToPoint( this.origin ) === 0 ) {\n\n\t\t\t\treturn 0;\n\n\t\t\t}\n\n\t\t\t// Null is preferable to undefined since undefined means.... it is undefined\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst t = - ( this.origin.dot( plane.normal ) + plane.constant ) / denominator;\n\n\t\t// Return if the ray never intersects the plane\n\n\t\treturn t >= 0 ? t : null;\n\n\t}\n\n\tintersectPlane( plane, target ) {\n\n\t\tconst t = this.distanceToPlane( plane );\n\n\t\tif ( t === null ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn this.at( t, target );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\t// check if the ray lies on the plane first\n\n\t\tconst distToPoint = plane.distanceToPoint( this.origin );\n\n\t\tif ( distToPoint === 0 ) {\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\tconst denominator = plane.normal.dot( this.direction );\n\n\t\tif ( denominator * distToPoint < 0 ) {\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\t// ray origin is behind the plane (and is pointing behind it)\n\n\t\treturn false;\n\n\t}\n\n\tintersectBox( box, target ) {\n\n\t\tlet tmin, tmax, tymin, tymax, tzmin, tzmax;\n\n\t\tconst invdirx = 1 / this.direction.x,\n\t\t\tinvdiry = 1 / this.direction.y,\n\t\t\tinvdirz = 1 / this.direction.z;\n\n\t\tconst origin = this.origin;\n\n\t\tif ( invdirx >= 0 ) {\n\n\t\t\ttmin = ( box.min.x - origin.x ) * invdirx;\n\t\t\ttmax = ( box.max.x - origin.x ) * invdirx;\n\n\t\t} else {\n\n\t\t\ttmin = ( box.max.x - origin.x ) * invdirx;\n\t\t\ttmax = ( box.min.x - origin.x ) * invdirx;\n\n\t\t}\n\n\t\tif ( invdiry >= 0 ) {\n\n\t\t\ttymin = ( box.min.y - origin.y ) * invdiry;\n\t\t\ttymax = ( box.max.y - origin.y ) * invdiry;\n\n\t\t} else {\n\n\t\t\ttymin = ( box.max.y - origin.y ) * invdiry;\n\t\t\ttymax = ( box.min.y - origin.y ) * invdiry;\n\n\t\t}\n\n\t\tif ( ( tmin > tymax ) || ( tymin > tmax ) ) return null;\n\n\t\tif ( tymin > tmin || isNaN( tmin ) ) tmin = tymin;\n\n\t\tif ( tymax < tmax || isNaN( tmax ) ) tmax = tymax;\n\n\t\tif ( invdirz >= 0 ) {\n\n\t\t\ttzmin = ( box.min.z - origin.z ) * invdirz;\n\t\t\ttzmax = ( box.max.z - origin.z ) * invdirz;\n\n\t\t} else {\n\n\t\t\ttzmin = ( box.max.z - origin.z ) * invdirz;\n\t\t\ttzmax = ( box.min.z - origin.z ) * invdirz;\n\n\t\t}\n\n\t\tif ( ( tmin > tzmax ) || ( tzmin > tmax ) ) return null;\n\n\t\tif ( tzmin > tmin || tmin !== tmin ) tmin = tzmin;\n\n\t\tif ( tzmax < tmax || tmax !== tmax ) tmax = tzmax;\n\n\t\t//return point closest to the ray (positive side)\n\n\t\tif ( tmax < 0 ) return null;\n\n\t\treturn this.at( tmin >= 0 ? tmin : tmax, target );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn this.intersectBox( box, _vector$a ) !== null;\n\n\t}\n\n\tintersectTriangle( a, b, c, backfaceCulling, target ) {\n\n\t\t// Compute the offset origin, edges, and normal.\n\n\t\t// from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteIntrRay3Triangle3.h\n\n\t\t_edge1.subVectors( b, a );\n\t\t_edge2.subVectors( c, a );\n\t\t_normal$1.crossVectors( _edge1, _edge2 );\n\n\t\t// Solve Q + t*D = b1*E1 + b2*E2 (Q = kDiff, D = ray direction,\n\t\t// E1 = kEdge1, E2 = kEdge2, N = Cross(E1,E2)) by\n\t\t// |Dot(D,N)|*b1 = sign(Dot(D,N))*Dot(D,Cross(Q,E2))\n\t\t// |Dot(D,N)|*b2 = sign(Dot(D,N))*Dot(D,Cross(E1,Q))\n\t\t// |Dot(D,N)|*t = -sign(Dot(D,N))*Dot(Q,N)\n\t\tlet DdN = this.direction.dot( _normal$1 );\n\t\tlet sign;\n\n\t\tif ( DdN > 0 ) {\n\n\t\t\tif ( backfaceCulling ) return null;\n\t\t\tsign = 1;\n\n\t\t} else if ( DdN < 0 ) {\n\n\t\t\tsign = - 1;\n\t\t\tDdN = - DdN;\n\n\t\t} else {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t_diff.subVectors( this.origin, a );\n\t\tconst DdQxE2 = sign * this.direction.dot( _edge2.crossVectors( _diff, _edge2 ) );\n\n\t\t// b1 < 0, no intersection\n\t\tif ( DdQxE2 < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst DdE1xQ = sign * this.direction.dot( _edge1.cross( _diff ) );\n\n\t\t// b2 < 0, no intersection\n\t\tif ( DdE1xQ < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// b1+b2 > 1, no intersection\n\t\tif ( DdQxE2 + DdE1xQ > DdN ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// Line intersects triangle, check if ray does.\n\t\tconst QdN = - sign * _diff.dot( _normal$1 );\n\n\t\t// t < 0, no intersection\n\t\tif ( QdN < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// Ray intersects triangle.\n\t\treturn this.at( QdN / DdN, target );\n\n\t}\n\n\tapplyMatrix4( matrix4 ) {\n\n\t\tthis.origin.applyMatrix4( matrix4 );\n\t\tthis.direction.transformDirection( matrix4 );\n\n\t\treturn this;\n\n\t}\n\n\tequals( ray ) {\n\n\t\treturn ray.origin.equals( this.origin ) && ray.direction.equals( this.direction );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nclass Matrix4 {\n\n\tconstructor( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {\n\n\t\tMatrix4.prototype.isMatrix4 = true;\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t];\n\n\t\tif ( n11 !== undefined ) {\n\n\t\t\tthis.set( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 );\n\n\t\t}\n\n\t}\n\n\tset( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 4 ] = n12; te[ 8 ] = n13; te[ 12 ] = n14;\n\t\tte[ 1 ] = n21; te[ 5 ] = n22; te[ 9 ] = n23; te[ 13 ] = n24;\n\t\tte[ 2 ] = n31; te[ 6 ] = n32; te[ 10 ] = n33; te[ 14 ] = n34;\n\t\tte[ 3 ] = n41; te[ 7 ] = n42; te[ 11 ] = n43; te[ 15 ] = n44;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new Matrix4().fromArray( this.elements );\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ]; te[ 3 ] = me[ 3 ];\n\t\tte[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ]; te[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ];\n\t\tte[ 8 ] = me[ 8 ]; te[ 9 ] = me[ 9 ]; te[ 10 ] = me[ 10 ]; te[ 11 ] = me[ 11 ];\n\t\tte[ 12 ] = me[ 12 ]; te[ 13 ] = me[ 13 ]; te[ 14 ] = me[ 14 ]; te[ 15 ] = me[ 15 ];\n\n\t\treturn this;\n\n\t}\n\n\tcopyPosition( m ) {\n\n\t\tconst te = this.elements, me = m.elements;\n\n\t\tte[ 12 ] = me[ 12 ];\n\t\tte[ 13 ] = me[ 13 ];\n\t\tte[ 14 ] = me[ 14 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix3( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 3 ], me[ 6 ], 0,\n\t\t\tme[ 1 ], me[ 4 ], me[ 7 ], 0,\n\t\t\tme[ 2 ], me[ 5 ], me[ 8 ], 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrixColumn( this, 0 );\n\t\tyAxis.setFromMatrixColumn( this, 1 );\n\t\tzAxis.setFromMatrixColumn( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tmakeBasis( xAxis, yAxis, zAxis ) {\n\n\t\tthis.set(\n\t\t\txAxis.x, yAxis.x, zAxis.x, 0,\n\t\t\txAxis.y, yAxis.y, zAxis.y, 0,\n\t\t\txAxis.z, yAxis.z, zAxis.z, 0,\n\t\t\t0, 0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractRotation( m ) {\n\n\t\t// this method does not support reflection matrices\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tconst scaleX = 1 / _v1$5.setFromMatrixColumn( m, 0 ).length();\n\t\tconst scaleY = 1 / _v1$5.setFromMatrixColumn( m, 1 ).length();\n\t\tconst scaleZ = 1 / _v1$5.setFromMatrixColumn( m, 2 ).length();\n\n\t\tte[ 0 ] = me[ 0 ] * scaleX;\n\t\tte[ 1 ] = me[ 1 ] * scaleX;\n\t\tte[ 2 ] = me[ 2 ] * scaleX;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = me[ 4 ] * scaleY;\n\t\tte[ 5 ] = me[ 5 ] * scaleY;\n\t\tte[ 6 ] = me[ 6 ] * scaleY;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = me[ 8 ] * scaleZ;\n\t\tte[ 9 ] = me[ 9 ] * scaleZ;\n\t\tte[ 10 ] = me[ 10 ] * scaleZ;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromEuler( euler ) {\n\n\t\tconst te = this.elements;\n\n\t\tconst x = euler.x, y = euler.y, z = euler.z;\n\t\tconst a = Math.cos( x ), b = Math.sin( x );\n\t\tconst c = Math.cos( y ), d = Math.sin( y );\n\t\tconst e = Math.cos( z ), f = Math.sin( z );\n\n\t\tif ( euler.order === 'XYZ' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - c * f;\n\t\t\tte[ 8 ] = d;\n\n\t\t\tte[ 1 ] = af + be * d;\n\t\t\tte[ 5 ] = ae - bf * d;\n\t\t\tte[ 9 ] = - b * c;\n\n\t\t\tte[ 2 ] = bf - ae * d;\n\t\t\tte[ 6 ] = be + af * d;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YXZ' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce + df * b;\n\t\t\tte[ 4 ] = de * b - cf;\n\t\t\tte[ 8 ] = a * d;\n\n\t\t\tte[ 1 ] = a * f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b;\n\n\t\t\tte[ 2 ] = cf * b - de;\n\t\t\tte[ 6 ] = df + ce * b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZXY' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce - df * b;\n\t\t\tte[ 4 ] = - a * f;\n\t\t\tte[ 8 ] = de + cf * b;\n\n\t\t\tte[ 1 ] = cf + de * b;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = df - ce * b;\n\n\t\t\tte[ 2 ] = - a * d;\n\t\t\tte[ 6 ] = b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZYX' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = be * d - af;\n\t\t\tte[ 8 ] = ae * d + bf;\n\n\t\t\tte[ 1 ] = c * f;\n\t\t\tte[ 5 ] = bf * d + ae;\n\t\t\tte[ 9 ] = af * d - be;\n\n\t\t\tte[ 2 ] = - d;\n\t\t\tte[ 6 ] = b * c;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YZX' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = bd - ac * f;\n\t\t\tte[ 8 ] = bc * f + ad;\n\n\t\t\tte[ 1 ] = f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b * e;\n\n\t\t\tte[ 2 ] = - d * e;\n\t\t\tte[ 6 ] = ad * f + bc;\n\t\t\tte[ 10 ] = ac - bd * f;\n\n\t\t} else if ( euler.order === 'XZY' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - f;\n\t\t\tte[ 8 ] = d * e;\n\n\t\t\tte[ 1 ] = ac * f + bd;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = ad * f - bc;\n\n\t\t\tte[ 2 ] = bc * f - ad;\n\t\t\tte[ 6 ] = b * e;\n\t\t\tte[ 10 ] = bd * f + ac;\n\n\t\t}\n\n\t\t// bottom row\n\t\tte[ 3 ] = 0;\n\t\tte[ 7 ] = 0;\n\t\tte[ 11 ] = 0;\n\n\t\t// last column\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromQuaternion( q ) {\n\n\t\treturn this.compose( _zero, q, _one );\n\n\t}\n\n\tlookAt( eye, target, up ) {\n\n\t\tconst te = this.elements;\n\n\t\t_z.subVectors( eye, target );\n\n\t\tif ( _z.lengthSq() === 0 ) {\n\n\t\t\t// eye and target are in the same position\n\n\t\t\t_z.z = 1;\n\n\t\t}\n\n\t\t_z.normalize();\n\t\t_x.crossVectors( up, _z );\n\n\t\tif ( _x.lengthSq() === 0 ) {\n\n\t\t\t// up and z are parallel\n\n\t\t\tif ( Math.abs( up.z ) === 1 ) {\n\n\t\t\t\t_z.x += 0.0001;\n\n\t\t\t} else {\n\n\t\t\t\t_z.z += 0.0001;\n\n\t\t\t}\n\n\t\t\t_z.normalize();\n\t\t\t_x.crossVectors( up, _z );\n\n\t\t}\n\n\t\t_x.normalize();\n\t\t_y.crossVectors( _z, _x );\n\n\t\tte[ 0 ] = _x.x; te[ 4 ] = _y.x; te[ 8 ] = _z.x;\n\t\tte[ 1 ] = _x.y; te[ 5 ] = _y.y; te[ 9 ] = _z.y;\n\t\tte[ 2 ] = _x.z; te[ 6 ] = _y.z; te[ 10 ] = _z.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 4 ], a13 = ae[ 8 ], a14 = ae[ 12 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 5 ], a23 = ae[ 9 ], a24 = ae[ 13 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 6 ], a33 = ae[ 10 ], a34 = ae[ 14 ];\n\t\tconst a41 = ae[ 3 ], a42 = ae[ 7 ], a43 = ae[ 11 ], a44 = ae[ 15 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 4 ], b13 = be[ 8 ], b14 = be[ 12 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 5 ], b23 = be[ 9 ], b24 = be[ 13 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 6 ], b33 = be[ 10 ], b34 = be[ 14 ];\n\t\tconst b41 = be[ 3 ], b42 = be[ 7 ], b43 = be[ 11 ], b44 = be[ 15 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\n\t\tte[ 4 ] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\n\t\tte[ 8 ] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\n\t\tte[ 12 ] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\n\t\tte[ 5 ] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\n\t\tte[ 9 ] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\n\t\tte[ 13 ] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\n\t\tte[ 6 ] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\n\t\tte[ 10 ] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\n\t\tte[ 14 ] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\n\n\t\tte[ 3 ] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\n\t\tte[ 7 ] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\n\t\tte[ 11 ] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\n\t\tte[ 15 ] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 4 ] *= s; te[ 8 ] *= s; te[ 12 ] *= s;\n\t\tte[ 1 ] *= s; te[ 5 ] *= s; te[ 9 ] *= s; te[ 13 ] *= s;\n\t\tte[ 2 ] *= s; te[ 6 ] *= s; te[ 10 ] *= s; te[ 14 ] *= s;\n\t\tte[ 3 ] *= s; te[ 7 ] *= s; te[ 11 ] *= s; te[ 15 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst n11 = te[ 0 ], n12 = te[ 4 ], n13 = te[ 8 ], n14 = te[ 12 ];\n\t\tconst n21 = te[ 1 ], n22 = te[ 5 ], n23 = te[ 9 ], n24 = te[ 13 ];\n\t\tconst n31 = te[ 2 ], n32 = te[ 6 ], n33 = te[ 10 ], n34 = te[ 14 ];\n\t\tconst n41 = te[ 3 ], n42 = te[ 7 ], n43 = te[ 11 ], n44 = te[ 15 ];\n\n\t\t//TODO: make this more efficient\n\t\t//( based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm )\n\n\t\treturn (\n\t\t\tn41 * (\n\t\t\t\t+ n14 * n23 * n32\n\t\t\t\t - n13 * n24 * n32\n\t\t\t\t - n14 * n22 * n33\n\t\t\t\t + n12 * n24 * n33\n\t\t\t\t + n13 * n22 * n34\n\t\t\t\t - n12 * n23 * n34\n\t\t\t) +\n\t\t\tn42 * (\n\t\t\t\t+ n11 * n23 * n34\n\t\t\t\t - n11 * n24 * n33\n\t\t\t\t + n14 * n21 * n33\n\t\t\t\t - n13 * n21 * n34\n\t\t\t\t + n13 * n24 * n31\n\t\t\t\t - n14 * n23 * n31\n\t\t\t) +\n\t\t\tn43 * (\n\t\t\t\t+ n11 * n24 * n32\n\t\t\t\t - n11 * n22 * n34\n\t\t\t\t - n14 * n21 * n32\n\t\t\t\t + n12 * n21 * n34\n\t\t\t\t + n14 * n22 * n31\n\t\t\t\t - n12 * n24 * n31\n\t\t\t) +\n\t\t\tn44 * (\n\t\t\t\t- n13 * n22 * n31\n\t\t\t\t - n11 * n23 * n32\n\t\t\t\t + n11 * n22 * n33\n\t\t\t\t + n13 * n21 * n32\n\t\t\t\t - n12 * n21 * n33\n\t\t\t\t + n12 * n23 * n31\n\t\t\t)\n\n\t\t);\n\n\t}\n\n\ttranspose() {\n\n\t\tconst te = this.elements;\n\t\tlet tmp;\n\n\t\ttmp = te[ 1 ]; te[ 1 ] = te[ 4 ]; te[ 4 ] = tmp;\n\t\ttmp = te[ 2 ]; te[ 2 ] = te[ 8 ]; te[ 8 ] = tmp;\n\t\ttmp = te[ 6 ]; te[ 6 ] = te[ 9 ]; te[ 9 ] = tmp;\n\n\t\ttmp = te[ 3 ]; te[ 3 ] = te[ 12 ]; te[ 12 ] = tmp;\n\t\ttmp = te[ 7 ]; te[ 7 ] = te[ 13 ]; te[ 13 ] = tmp;\n\t\ttmp = te[ 11 ]; te[ 11 ] = te[ 14 ]; te[ 14 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tsetPosition( x, y, z ) {\n\n\t\tconst te = this.elements;\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\tte[ 12 ] = x.x;\n\t\t\tte[ 13 ] = x.y;\n\t\t\tte[ 14 ] = x.z;\n\n\t\t} else {\n\n\t\t\tte[ 12 ] = x;\n\t\t\tte[ 13 ] = y;\n\t\t\tte[ 14 ] = z;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tinvert() {\n\n\t\t// based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ], n41 = te[ 3 ],\n\t\t\tn12 = te[ 4 ], n22 = te[ 5 ], n32 = te[ 6 ], n42 = te[ 7 ],\n\t\t\tn13 = te[ 8 ], n23 = te[ 9 ], n33 = te[ 10 ], n43 = te[ 11 ],\n\t\t\tn14 = te[ 12 ], n24 = te[ 13 ], n34 = te[ 14 ], n44 = te[ 15 ],\n\n\t\t\tt11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44,\n\t\t\tt12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44,\n\t\t\tt13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44,\n\t\t\tt14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34;\n\n\t\tconst det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44 ) * detInv;\n\t\tte[ 2 ] = ( n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44 ) * detInv;\n\t\tte[ 3 ] = ( n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43 ) * detInv;\n\n\t\tte[ 4 ] = t12 * detInv;\n\t\tte[ 5 ] = ( n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44 ) * detInv;\n\t\tte[ 6 ] = ( n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44 ) * detInv;\n\t\tte[ 7 ] = ( n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43 ) * detInv;\n\n\t\tte[ 8 ] = t13 * detInv;\n\t\tte[ 9 ] = ( n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44 ) * detInv;\n\t\tte[ 10 ] = ( n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44 ) * detInv;\n\t\tte[ 11 ] = ( n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43 ) * detInv;\n\n\t\tte[ 12 ] = t14 * detInv;\n\t\tte[ 13 ] = ( n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34 ) * detInv;\n\t\tte[ 14 ] = ( n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34 ) * detInv;\n\t\tte[ 15 ] = ( n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\tscale( v ) {\n\n\t\tconst te = this.elements;\n\t\tconst x = v.x, y = v.y, z = v.z;\n\n\t\tte[ 0 ] *= x; te[ 4 ] *= y; te[ 8 ] *= z;\n\t\tte[ 1 ] *= x; te[ 5 ] *= y; te[ 9 ] *= z;\n\t\tte[ 2 ] *= x; te[ 6 ] *= y; te[ 10 ] *= z;\n\t\tte[ 3 ] *= x; te[ 7 ] *= y; te[ 11 ] *= z;\n\n\t\treturn this;\n\n\t}\n\n\tgetMaxScaleOnAxis() {\n\n\t\tconst te = this.elements;\n\n\t\tconst scaleXSq = te[ 0 ] * te[ 0 ] + te[ 1 ] * te[ 1 ] + te[ 2 ] * te[ 2 ];\n\t\tconst scaleYSq = te[ 4 ] * te[ 4 ] + te[ 5 ] * te[ 5 ] + te[ 6 ] * te[ 6 ];\n\t\tconst scaleZSq = te[ 8 ] * te[ 8 ] + te[ 9 ] * te[ 9 ] + te[ 10 ] * te[ 10 ];\n\n\t\treturn Math.sqrt( Math.max( scaleXSq, scaleYSq, scaleZSq ) );\n\n\t}\n\n\tmakeTranslation( x, y, z ) {\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, 0, x.x,\n\t\t\t\t0, 1, 0, x.y,\n\t\t\t\t0, 0, 1, x.z,\n\t\t\t\t0, 0, 0, 1\n\n\t\t\t);\n\n\t\t} else {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, 0, x,\n\t\t\t\t0, 1, 0, y,\n\t\t\t\t0, 0, 1, z,\n\t\t\t\t0, 0, 0, 1\n\n\t\t\t);\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationX( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, c, - s, 0,\n\t\t\t0, s, c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationY( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t c, 0, s, 0,\n\t\t\t 0, 1, 0, 0,\n\t\t\t- s, 0, c, 0,\n\t\t\t 0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationZ( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\tc, - s, 0, 0,\n\t\t\ts, c, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationAxis( axis, angle ) {\n\n\t\t// Based on http://www.gamedev.net/reference/articles/article1199.asp\n\n\t\tconst c = Math.cos( angle );\n\t\tconst s = Math.sin( angle );\n\t\tconst t = 1 - c;\n\t\tconst x = axis.x, y = axis.y, z = axis.z;\n\t\tconst tx = t * x, ty = t * y;\n\n\t\tthis.set(\n\n\t\t\ttx * x + c, tx * y - s * z, tx * z + s * y, 0,\n\t\t\ttx * y + s * z, ty * y + c, ty * z - s * x, 0,\n\t\t\ttx * z - s * y, ty * z + s * x, t * z * z + c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeScale( x, y, z ) {\n\n\t\tthis.set(\n\n\t\t\tx, 0, 0, 0,\n\t\t\t0, y, 0, 0,\n\t\t\t0, 0, z, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeShear( xy, xz, yx, yz, zx, zy ) {\n\n\t\tthis.set(\n\n\t\t\t1, yx, zx, 0,\n\t\t\txy, 1, zy, 0,\n\t\t\txz, yz, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tcompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tconst x = quaternion._x, y = quaternion._y, z = quaternion._z, w = quaternion._w;\n\t\tconst x2 = x + x,\ty2 = y + y, z2 = z + z;\n\t\tconst xx = x * x2, xy = x * y2, xz = x * z2;\n\t\tconst yy = y * y2, yz = y * z2, zz = z * z2;\n\t\tconst wx = w * x2, wy = w * y2, wz = w * z2;\n\n\t\tconst sx = scale.x, sy = scale.y, sz = scale.z;\n\n\t\tte[ 0 ] = ( 1 - ( yy + zz ) ) * sx;\n\t\tte[ 1 ] = ( xy + wz ) * sx;\n\t\tte[ 2 ] = ( xz - wy ) * sx;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = ( xy - wz ) * sy;\n\t\tte[ 5 ] = ( 1 - ( xx + zz ) ) * sy;\n\t\tte[ 6 ] = ( yz + wx ) * sy;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = ( xz + wy ) * sz;\n\t\tte[ 9 ] = ( yz - wx ) * sz;\n\t\tte[ 10 ] = ( 1 - ( xx + yy ) ) * sz;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = position.x;\n\t\tte[ 13 ] = position.y;\n\t\tte[ 14 ] = position.z;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tdecompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tlet sx = _v1$5.set( te[ 0 ], te[ 1 ], te[ 2 ] ).length();\n\t\tconst sy = _v1$5.set( te[ 4 ], te[ 5 ], te[ 6 ] ).length();\n\t\tconst sz = _v1$5.set( te[ 8 ], te[ 9 ], te[ 10 ] ).length();\n\n\t\t// if determine is negative, we need to invert one scale\n\t\tconst det = this.determinant();\n\t\tif ( det < 0 ) sx = - sx;\n\n\t\tposition.x = te[ 12 ];\n\t\tposition.y = te[ 13 ];\n\t\tposition.z = te[ 14 ];\n\n\t\t// scale the rotation part\n\t\t_m1$2.copy( this );\n\n\t\tconst invSX = 1 / sx;\n\t\tconst invSY = 1 / sy;\n\t\tconst invSZ = 1 / sz;\n\n\t\t_m1$2.elements[ 0 ] *= invSX;\n\t\t_m1$2.elements[ 1 ] *= invSX;\n\t\t_m1$2.elements[ 2 ] *= invSX;\n\n\t\t_m1$2.elements[ 4 ] *= invSY;\n\t\t_m1$2.elements[ 5 ] *= invSY;\n\t\t_m1$2.elements[ 6 ] *= invSY;\n\n\t\t_m1$2.elements[ 8 ] *= invSZ;\n\t\t_m1$2.elements[ 9 ] *= invSZ;\n\t\t_m1$2.elements[ 10 ] *= invSZ;\n\n\t\tquaternion.setFromRotationMatrix( _m1$2 );\n\n\t\tscale.x = sx;\n\t\tscale.y = sy;\n\t\tscale.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tmakePerspective( left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst te = this.elements;\n\t\tconst x = 2 * near / ( right - left );\n\t\tconst y = 2 * near / ( top - bottom );\n\n\t\tconst a = ( right + left ) / ( right - left );\n\t\tconst b = ( top + bottom ) / ( top - bottom );\n\n\t\tlet c, d;\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tc = - ( far + near ) / ( far - near );\n\t\t\td = ( - 2 * far * near ) / ( far - near );\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tc = - far / ( far - near );\n\t\t\td = ( - far * near ) / ( far - near );\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Matrix4.makePerspective(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\tte[ 0 ] = x;\tte[ 4 ] = 0;\tte[ 8 ] = a; \tte[ 12 ] = 0;\n\t\tte[ 1 ] = 0;\tte[ 5 ] = y;\tte[ 9 ] = b; \tte[ 13 ] = 0;\n\t\tte[ 2 ] = 0;\tte[ 6 ] = 0;\tte[ 10 ] = c; \tte[ 14 ] = d;\n\t\tte[ 3 ] = 0;\tte[ 7 ] = 0;\tte[ 11 ] = - 1;\tte[ 15 ] = 0;\n\n\t\treturn this;\n\n\t}\n\n\tmakeOrthographic( left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst te = this.elements;\n\t\tconst w = 1.0 / ( right - left );\n\t\tconst h = 1.0 / ( top - bottom );\n\t\tconst p = 1.0 / ( far - near );\n\n\t\tconst x = ( right + left ) * w;\n\t\tconst y = ( top + bottom ) * h;\n\n\t\tlet z, zInv;\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tz = ( far + near ) * p;\n\t\t\tzInv = - 2 * p;\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tz = near * p;\n\t\t\tzInv = - 1 * p;\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Matrix4.makeOrthographic(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\tte[ 0 ] = 2 * w;\tte[ 4 ] = 0;\t\tte[ 8 ] = 0; \t\tte[ 12 ] = - x;\n\t\tte[ 1 ] = 0; \t\tte[ 5 ] = 2 * h;\tte[ 9 ] = 0; \t\tte[ 13 ] = - y;\n\t\tte[ 2 ] = 0; \t\tte[ 6 ] = 0;\t\tte[ 10 ] = zInv;\tte[ 14 ] = - z;\n\t\tte[ 3 ] = 0; \t\tte[ 7 ] = 0;\t\tte[ 11 ] = 0;\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\t\tarray[ offset + 9 ] = te[ 9 ];\n\t\tarray[ offset + 10 ] = te[ 10 ];\n\t\tarray[ offset + 11 ] = te[ 11 ];\n\n\t\tarray[ offset + 12 ] = te[ 12 ];\n\t\tarray[ offset + 13 ] = te[ 13 ];\n\t\tarray[ offset + 14 ] = te[ 14 ];\n\t\tarray[ offset + 15 ] = te[ 15 ];\n\n\t\treturn array;\n\n\t}\n\n}\n\nconst _v1$5 = /*@__PURE__*/ new Vector3();\nconst _m1$2 = /*@__PURE__*/ new Matrix4();\nconst _zero = /*@__PURE__*/ new Vector3( 0, 0, 0 );\nconst _one = /*@__PURE__*/ new Vector3( 1, 1, 1 );\nconst _x = /*@__PURE__*/ new Vector3();\nconst _y = /*@__PURE__*/ new Vector3();\nconst _z = /*@__PURE__*/ new Vector3();\n\nconst _matrix$2 = /*@__PURE__*/ new Matrix4();\nconst _quaternion$3 = /*@__PURE__*/ new Quaternion();\n\nclass Euler {\n\n\tconstructor( x = 0, y = 0, z = 0, order = Euler.DEFAULT_ORDER ) {\n\n\t\tthis.isEuler = true;\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget order() {\n\n\t\treturn this._order;\n\n\t}\n\n\tset order( value ) {\n\n\t\tthis._order = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tset( x, y, z, order = this._order ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._order );\n\n\t}\n\n\tcopy( euler ) {\n\n\t\tthis._x = euler._x;\n\t\tthis._y = euler._y;\n\t\tthis._z = euler._z;\n\t\tthis._order = euler._order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m, order = this._order, update = true ) {\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = m.elements;\n\t\tconst m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ];\n\t\tconst m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ];\n\t\tconst m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\n\t\t\t\tthis._y = Math.asin( clamp( m13, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m13 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\n\t\t\t\tthis._x = Math.asin( - clamp( m23, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m23 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\n\t\t\t\tthis._x = Math.asin( clamp( m32, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m32 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = 0;\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\n\t\t\t\tthis._y = Math.asin( - clamp( m31, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m31 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\n\t\t\t\tthis._z = Math.asin( clamp( m21, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m21 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m22 );\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\n\t\t\t\tthis._z = Math.asin( - clamp( m12, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m12 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._y = Math.atan2( m13, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._y = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tconsole.warn( 'THREE.Euler: .setFromRotationMatrix() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tthis._order = order;\n\n\t\tif ( update === true ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromQuaternion( q, order, update ) {\n\n\t\t_matrix$2.makeRotationFromQuaternion( q );\n\n\t\treturn this.setFromRotationMatrix( _matrix$2, order, update );\n\n\t}\n\n\tsetFromVector3( v, order = this._order ) {\n\n\t\treturn this.set( v.x, v.y, v.z, order );\n\n\t}\n\n\treorder( newOrder ) {\n\n\t\t// WARNING: this discards revolution information -bhouston\n\n\t\t_quaternion$3.setFromEuler( this );\n\n\t\treturn this.setFromQuaternion( _quaternion$3, newOrder );\n\n\t}\n\n\tequals( euler ) {\n\n\t\treturn ( euler._x === this._x ) && ( euler._y === this._y ) && ( euler._z === this._z ) && ( euler._order === this._order );\n\n\t}\n\n\tfromArray( array ) {\n\n\t\tthis._x = array[ 0 ];\n\t\tthis._y = array[ 1 ];\n\t\tthis._z = array[ 2 ];\n\t\tif ( array[ 3 ] !== undefined ) this._order = array[ 3 ];\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this._x;\n\t\tarray[ offset + 1 ] = this._y;\n\t\tarray[ offset + 2 ] = this._z;\n\t\tarray[ offset + 3 ] = this._order;\n\n\t\treturn array;\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this._x;\n\t\tyield this._y;\n\t\tyield this._z;\n\t\tyield this._order;\n\n\t}\n\n}\n\nEuler.DEFAULT_ORDER = 'XYZ';\n\nclass Layers {\n\n\tconstructor() {\n\n\t\tthis.mask = 1 | 0;\n\n\t}\n\n\tset( channel ) {\n\n\t\tthis.mask = ( 1 << channel | 0 ) >>> 0;\n\n\t}\n\n\tenable( channel ) {\n\n\t\tthis.mask |= 1 << channel | 0;\n\n\t}\n\n\tenableAll() {\n\n\t\tthis.mask = 0xffffffff | 0;\n\n\t}\n\n\ttoggle( channel ) {\n\n\t\tthis.mask ^= 1 << channel | 0;\n\n\t}\n\n\tdisable( channel ) {\n\n\t\tthis.mask &= ~ ( 1 << channel | 0 );\n\n\t}\n\n\tdisableAll() {\n\n\t\tthis.mask = 0;\n\n\t}\n\n\ttest( layers ) {\n\n\t\treturn ( this.mask & layers.mask ) !== 0;\n\n\t}\n\n\tisEnabled( channel ) {\n\n\t\treturn ( this.mask & ( 1 << channel | 0 ) ) !== 0;\n\n\t}\n\n}\n\nlet _object3DId = 0;\n\nconst _v1$4 = /*@__PURE__*/ new Vector3();\nconst _q1 = /*@__PURE__*/ new Quaternion();\nconst _m1$1 = /*@__PURE__*/ new Matrix4();\nconst _target = /*@__PURE__*/ new Vector3();\n\nconst _position$3 = /*@__PURE__*/ new Vector3();\nconst _scale$2 = /*@__PURE__*/ new Vector3();\nconst _quaternion$2 = /*@__PURE__*/ new Quaternion();\n\nconst _xAxis = /*@__PURE__*/ new Vector3( 1, 0, 0 );\nconst _yAxis = /*@__PURE__*/ new Vector3( 0, 1, 0 );\nconst _zAxis = /*@__PURE__*/ new Vector3( 0, 0, 1 );\n\nconst _addedEvent = { type: 'added' };\nconst _removedEvent = { type: 'removed' };\n\nconst _childaddedEvent = { type: 'childadded', child: null };\nconst _childremovedEvent = { type: 'childremoved', child: null };\n\nclass Object3D extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isObject3D = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _object3DId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'Object3D';\n\n\t\tthis.parent = null;\n\t\tthis.children = [];\n\n\t\tthis.up = Object3D.DEFAULT_UP.clone();\n\n\t\tconst position = new Vector3();\n\t\tconst rotation = new Euler();\n\t\tconst quaternion = new Quaternion();\n\t\tconst scale = new Vector3( 1, 1, 1 );\n\n\t\tfunction onRotationChange() {\n\n\t\t\tquaternion.setFromEuler( rotation, false );\n\n\t\t}\n\n\t\tfunction onQuaternionChange() {\n\n\t\t\trotation.setFromQuaternion( quaternion, undefined, false );\n\n\t\t}\n\n\t\trotation._onChange( onRotationChange );\n\t\tquaternion._onChange( onQuaternionChange );\n\n\t\tObject.defineProperties( this, {\n\t\t\tposition: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: position\n\t\t\t},\n\t\t\trotation: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: rotation\n\t\t\t},\n\t\t\tquaternion: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: quaternion\n\t\t\t},\n\t\t\tscale: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: scale\n\t\t\t},\n\t\t\tmodelViewMatrix: {\n\t\t\t\tvalue: new Matrix4()\n\t\t\t},\n\t\t\tnormalMatrix: {\n\t\t\t\tvalue: new Matrix3()\n\t\t\t}\n\t\t} );\n\n\t\tthis.matrix = new Matrix4();\n\t\tthis.matrixWorld = new Matrix4();\n\n\t\tthis.matrixAutoUpdate = Object3D.DEFAULT_MATRIX_AUTO_UPDATE;\n\n\t\tthis.matrixWorldAutoUpdate = Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE; // checked by the renderer\n\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\tthis.layers = new Layers();\n\t\tthis.visible = true;\n\n\t\tthis.castShadow = false;\n\t\tthis.receiveShadow = false;\n\n\t\tthis.frustumCulled = true;\n\t\tthis.renderOrder = 0;\n\n\t\tthis.animations = [];\n\n\t\tthis.userData = {};\n\n\t}\n\n\tonBeforeShadow( /* renderer, object, camera, shadowCamera, geometry, depthMaterial, group */ ) {}\n\n\tonAfterShadow( /* renderer, object, camera, shadowCamera, geometry, depthMaterial, group */ ) {}\n\n\tonBeforeRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\tonAfterRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tthis.matrix.premultiply( matrix );\n\n\t\tthis.matrix.decompose( this.position, this.quaternion, this.scale );\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\tthis.quaternion.premultiply( q );\n\n\t\treturn this;\n\n\t}\n\n\tsetRotationFromAxisAngle( axis, angle ) {\n\n\t\t// assumes axis is normalized\n\n\t\tthis.quaternion.setFromAxisAngle( axis, angle );\n\n\t}\n\n\tsetRotationFromEuler( euler ) {\n\n\t\tthis.quaternion.setFromEuler( euler, true );\n\n\t}\n\n\tsetRotationFromMatrix( m ) {\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tthis.quaternion.setFromRotationMatrix( m );\n\n\t}\n\n\tsetRotationFromQuaternion( q ) {\n\n\t\t// assumes q is normalized\n\n\t\tthis.quaternion.copy( q );\n\n\t}\n\n\trotateOnAxis( axis, angle ) {\n\n\t\t// rotate object on axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.multiply( _q1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateOnWorldAxis( axis, angle ) {\n\n\t\t// rotate object on axis in world space\n\t\t// axis is assumed to be normalized\n\t\t// method assumes no rotated parent\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.premultiply( _q1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateX( angle ) {\n\n\t\treturn this.rotateOnAxis( _xAxis, angle );\n\n\t}\n\n\trotateY( angle ) {\n\n\t\treturn this.rotateOnAxis( _yAxis, angle );\n\n\t}\n\n\trotateZ( angle ) {\n\n\t\treturn this.rotateOnAxis( _zAxis, angle );\n\n\t}\n\n\ttranslateOnAxis( axis, distance ) {\n\n\t\t// translate object by distance along axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_v1$4.copy( axis ).applyQuaternion( this.quaternion );\n\n\t\tthis.position.add( _v1$4.multiplyScalar( distance ) );\n\n\t\treturn this;\n\n\t}\n\n\ttranslateX( distance ) {\n\n\t\treturn this.translateOnAxis( _xAxis, distance );\n\n\t}\n\n\ttranslateY( distance ) {\n\n\t\treturn this.translateOnAxis( _yAxis, distance );\n\n\t}\n\n\ttranslateZ( distance ) {\n\n\t\treturn this.translateOnAxis( _zAxis, distance );\n\n\t}\n\n\tlocalToWorld( vector ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn vector.applyMatrix4( this.matrixWorld );\n\n\t}\n\n\tworldToLocal( vector ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn vector.applyMatrix4( _m1$1.copy( this.matrixWorld ).invert() );\n\n\t}\n\n\tlookAt( x, y, z ) {\n\n\t\t// This method does not support objects having non-uniformly-scaled parent(s)\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\t_target.copy( x );\n\n\t\t} else {\n\n\t\t\t_target.set( x, y, z );\n\n\t\t}\n\n\t\tconst parent = this.parent;\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_position$3.setFromMatrixPosition( this.matrixWorld );\n\n\t\tif ( this.isCamera || this.isLight ) {\n\n\t\t\t_m1$1.lookAt( _position$3, _target, this.up );\n\n\t\t} else {\n\n\t\t\t_m1$1.lookAt( _target, _position$3, this.up );\n\n\t\t}\n\n\t\tthis.quaternion.setFromRotationMatrix( _m1$1 );\n\n\t\tif ( parent ) {\n\n\t\t\t_m1$1.extractRotation( parent.matrixWorld );\n\t\t\t_q1.setFromRotationMatrix( _m1$1 );\n\t\t\tthis.quaternion.premultiply( _q1.invert() );\n\n\t\t}\n\n\t}\n\n\tadd( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.add( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object === this ) {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object can\\'t be added as a child of itself.', object );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object && object.isObject3D ) {\n\n\t\t\tobject.removeFromParent();\n\t\t\tobject.parent = this;\n\t\t\tthis.children.push( object );\n\n\t\t\tobject.dispatchEvent( _addedEvent );\n\n\t\t\t_childaddedEvent.child = object;\n\t\t\tthis.dispatchEvent( _childaddedEvent );\n\t\t\t_childaddedEvent.child = null;\n\n\t\t} else {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object not an instance of THREE.Object3D.', object );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremove( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.remove( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst index = this.children.indexOf( object );\n\n\t\tif ( index !== - 1 ) {\n\n\t\t\tobject.parent = null;\n\t\t\tthis.children.splice( index, 1 );\n\n\t\t\tobject.dispatchEvent( _removedEvent );\n\n\t\t\t_childremovedEvent.child = object;\n\t\t\tthis.dispatchEvent( _childremovedEvent );\n\t\t\t_childremovedEvent.child = null;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremoveFromParent() {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( parent !== null ) {\n\n\t\t\tparent.remove( this );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclear() {\n\n\t\treturn this.remove( ... this.children );\n\n\t}\n\n\tattach( object ) {\n\n\t\t// adds object as a child of this, while maintaining the object's world transform\n\n\t\t// Note: This method does not support scene graphs having non-uniformly-scaled nodes(s)\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_m1$1.copy( this.matrixWorld ).invert();\n\n\t\tif ( object.parent !== null ) {\n\n\t\t\tobject.parent.updateWorldMatrix( true, false );\n\n\t\t\t_m1$1.multiply( object.parent.matrixWorld );\n\n\t\t}\n\n\t\tobject.applyMatrix4( _m1$1 );\n\n\t\tobject.removeFromParent();\n\t\tobject.parent = this;\n\t\tthis.children.push( object );\n\n\t\tobject.updateWorldMatrix( false, true );\n\n\t\tobject.dispatchEvent( _addedEvent );\n\n\t\t_childaddedEvent.child = object;\n\t\tthis.dispatchEvent( _childaddedEvent );\n\t\t_childaddedEvent.child = null;\n\n\t\treturn this;\n\n\t}\n\n\tgetObjectById( id ) {\n\n\t\treturn this.getObjectByProperty( 'id', id );\n\n\t}\n\n\tgetObjectByName( name ) {\n\n\t\treturn this.getObjectByProperty( 'name', name );\n\n\t}\n\n\tgetObjectByProperty( name, value ) {\n\n\t\tif ( this[ name ] === value ) return this;\n\n\t\tfor ( let i = 0, l = this.children.length; i < l; i ++ ) {\n\n\t\t\tconst child = this.children[ i ];\n\t\t\tconst object = child.getObjectByProperty( name, value );\n\n\t\t\tif ( object !== undefined ) {\n\n\t\t\t\treturn object;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn undefined;\n\n\t}\n\n\tgetObjectsByProperty( name, value, result = [] ) {\n\n\t\tif ( this[ name ] === value ) result.push( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].getObjectsByProperty( name, value, result );\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\tgetWorldPosition( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn target.setFromMatrixPosition( this.matrixWorld );\n\n\t}\n\n\tgetWorldQuaternion( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position$3, target, _scale$2 );\n\n\t\treturn target;\n\n\t}\n\n\tgetWorldScale( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position$3, _quaternion$2, target );\n\n\t\treturn target;\n\n\t}\n\n\tgetWorldDirection( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tconst e = this.matrixWorld.elements;\n\n\t\treturn target.set( e[ 8 ], e[ 9 ], e[ 10 ] ).normalize();\n\n\t}\n\n\traycast( /* raycaster, intersects */ ) {}\n\n\ttraverse( callback ) {\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverse( callback );\n\n\t\t}\n\n\t}\n\n\ttraverseVisible( callback ) {\n\n\t\tif ( this.visible === false ) return;\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverseVisible( callback );\n\n\t\t}\n\n\t}\n\n\ttraverseAncestors( callback ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( parent !== null ) {\n\n\t\t\tcallback( parent );\n\n\t\t\tparent.traverseAncestors( callback );\n\n\t\t}\n\n\t}\n\n\tupdateMatrix() {\n\n\t\tthis.matrix.compose( this.position, this.quaternion, this.scale );\n\n\t\tthis.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.matrixWorldNeedsUpdate || force ) {\n\n\t\t\tif ( this.matrixWorldAutoUpdate === true ) {\n\n\t\t\t\tif ( this.parent === null ) {\n\n\t\t\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\t\tforce = true;\n\n\t\t}\n\n\t\t// make sure descendants are updated if required\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tconst child = children[ i ];\n\n\t\t\tchild.updateMatrixWorld( force );\n\n\t\t}\n\n\t}\n\n\tupdateWorldMatrix( updateParents, updateChildren ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( updateParents === true && parent !== null ) {\n\n\t\t\tparent.updateWorldMatrix( true, false );\n\n\t\t}\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.matrixWorldAutoUpdate === true ) {\n\n\t\t\tif ( this.parent === null ) {\n\n\t\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t\t} else {\n\n\t\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// make sure descendants are updated\n\n\t\tif ( updateChildren === true ) {\n\n\t\t\tconst children = this.children;\n\n\t\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\t\tconst child = children[ i ];\n\n\t\t\t\tchild.updateWorldMatrix( false, true );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\t// meta is a string when called from JSON.stringify\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tconst output = {};\n\n\t\t// meta is a hash used to collect geometries, materials.\n\t\t// not providing it implies that this is the root object\n\t\t// being serialized.\n\t\tif ( isRootObject ) {\n\n\t\t\t// initialize meta obj\n\t\t\tmeta = {\n\t\t\t\tgeometries: {},\n\t\t\t\tmaterials: {},\n\t\t\t\ttextures: {},\n\t\t\t\timages: {},\n\t\t\t\tshapes: {},\n\t\t\t\tskeletons: {},\n\t\t\t\tanimations: {},\n\t\t\t\tnodes: {}\n\t\t\t};\n\n\t\t\toutput.metadata = {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Object',\n\t\t\t\tgenerator: 'Object3D.toJSON'\n\t\t\t};\n\n\t\t}\n\n\t\t// standard Object3D serialization\n\n\t\tconst object = {};\n\n\t\tobject.uuid = this.uuid;\n\t\tobject.type = this.type;\n\n\t\tif ( this.name !== '' ) object.name = this.name;\n\t\tif ( this.castShadow === true ) object.castShadow = true;\n\t\tif ( this.receiveShadow === true ) object.receiveShadow = true;\n\t\tif ( this.visible === false ) object.visible = false;\n\t\tif ( this.frustumCulled === false ) object.frustumCulled = false;\n\t\tif ( this.renderOrder !== 0 ) object.renderOrder = this.renderOrder;\n\t\tif ( Object.keys( this.userData ).length > 0 ) object.userData = this.userData;\n\n\t\tobject.layers = this.layers.mask;\n\t\tobject.matrix = this.matrix.toArray();\n\t\tobject.up = this.up.toArray();\n\n\t\tif ( this.matrixAutoUpdate === false ) object.matrixAutoUpdate = false;\n\n\t\t// object specific properties\n\n\t\tif ( this.isInstancedMesh ) {\n\n\t\t\tobject.type = 'InstancedMesh';\n\t\t\tobject.count = this.count;\n\t\t\tobject.instanceMatrix = this.instanceMatrix.toJSON();\n\t\t\tif ( this.instanceColor !== null ) object.instanceColor = this.instanceColor.toJSON();\n\n\t\t}\n\n\t\tif ( this.isBatchedMesh ) {\n\n\t\t\tobject.type = 'BatchedMesh';\n\t\t\tobject.perObjectFrustumCulled = this.perObjectFrustumCulled;\n\t\t\tobject.sortObjects = this.sortObjects;\n\n\t\t\tobject.drawRanges = this._drawRanges;\n\t\t\tobject.reservedRanges = this._reservedRanges;\n\n\t\t\tobject.visibility = this._visibility;\n\t\t\tobject.active = this._active;\n\t\t\tobject.bounds = this._bounds.map( bound => ( {\n\t\t\t\tboxInitialized: bound.boxInitialized,\n\t\t\t\tboxMin: bound.box.min.toArray(),\n\t\t\t\tboxMax: bound.box.max.toArray(),\n\n\t\t\t\tsphereInitialized: bound.sphereInitialized,\n\t\t\t\tsphereRadius: bound.sphere.radius,\n\t\t\t\tsphereCenter: bound.sphere.center.toArray()\n\t\t\t} ) );\n\n\t\t\tobject.maxInstanceCount = this._maxInstanceCount;\n\t\t\tobject.maxVertexCount = this._maxVertexCount;\n\t\t\tobject.maxIndexCount = this._maxIndexCount;\n\n\t\t\tobject.geometryInitialized = this._geometryInitialized;\n\t\t\tobject.geometryCount = this._geometryCount;\n\n\t\t\tobject.matricesTexture = this._matricesTexture.toJSON( meta );\n\n\t\t\tif ( this._colorsTexture !== null ) object.colorsTexture = this._colorsTexture.toJSON( meta );\n\n\t\t\tif ( this.boundingSphere !== null ) {\n\n\t\t\t\tobject.boundingSphere = {\n\t\t\t\t\tcenter: object.boundingSphere.center.toArray(),\n\t\t\t\t\tradius: object.boundingSphere.radius\n\t\t\t\t};\n\n\t\t\t}\n\n\t\t\tif ( this.boundingBox !== null ) {\n\n\t\t\t\tobject.boundingBox = {\n\t\t\t\t\tmin: object.boundingBox.min.toArray(),\n\t\t\t\t\tmax: object.boundingBox.max.toArray()\n\t\t\t\t};\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tfunction serialize( library, element ) {\n\n\t\t\tif ( library[ element.uuid ] === undefined ) {\n\n\t\t\t\tlibrary[ element.uuid ] = element.toJSON( meta );\n\n\t\t\t}\n\n\t\t\treturn element.uuid;\n\n\t\t}\n\n\t\tif ( this.isScene ) {\n\n\t\t\tif ( this.background ) {\n\n\t\t\t\tif ( this.background.isColor ) {\n\n\t\t\t\t\tobject.background = this.background.toJSON();\n\n\t\t\t\t} else if ( this.background.isTexture ) {\n\n\t\t\t\t\tobject.background = this.background.toJSON( meta ).uuid;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.environment && this.environment.isTexture && this.environment.isRenderTargetTexture !== true ) {\n\n\t\t\t\tobject.environment = this.environment.toJSON( meta ).uuid;\n\n\t\t\t}\n\n\t\t} else if ( this.isMesh || this.isLine || this.isPoints ) {\n\n\t\t\tobject.geometry = serialize( meta.geometries, this.geometry );\n\n\t\t\tconst parameters = this.geometry.parameters;\n\n\t\t\tif ( parameters !== undefined && parameters.shapes !== undefined ) {\n\n\t\t\t\tconst shapes = parameters.shapes;\n\n\t\t\t\tif ( Array.isArray( shapes ) ) {\n\n\t\t\t\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\t\t\t\tconst shape = shapes[ i ];\n\n\t\t\t\t\t\tserialize( meta.shapes, shape );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tserialize( meta.shapes, shapes );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.isSkinnedMesh ) {\n\n\t\t\tobject.bindMode = this.bindMode;\n\t\t\tobject.bindMatrix = this.bindMatrix.toArray();\n\n\t\t\tif ( this.skeleton !== undefined ) {\n\n\t\t\t\tserialize( meta.skeletons, this.skeleton );\n\n\t\t\t\tobject.skeleton = this.skeleton.uuid;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.material !== undefined ) {\n\n\t\t\tif ( Array.isArray( this.material ) ) {\n\n\t\t\t\tconst uuids = [];\n\n\t\t\t\tfor ( let i = 0, l = this.material.length; i < l; i ++ ) {\n\n\t\t\t\t\tuuids.push( serialize( meta.materials, this.material[ i ] ) );\n\n\t\t\t\t}\n\n\t\t\t\tobject.material = uuids;\n\n\t\t\t} else {\n\n\t\t\t\tobject.material = serialize( meta.materials, this.material );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.children.length > 0 ) {\n\n\t\t\tobject.children = [];\n\n\t\t\tfor ( let i = 0; i < this.children.length; i ++ ) {\n\n\t\t\t\tobject.children.push( this.children[ i ].toJSON( meta ).object );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.animations.length > 0 ) {\n\n\t\t\tobject.animations = [];\n\n\t\t\tfor ( let i = 0; i < this.animations.length; i ++ ) {\n\n\t\t\t\tconst animation = this.animations[ i ];\n\n\t\t\t\tobject.animations.push( serialize( meta.animations, animation ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( isRootObject ) {\n\n\t\t\tconst geometries = extractFromCache( meta.geometries );\n\t\t\tconst materials = extractFromCache( meta.materials );\n\t\t\tconst textures = extractFromCache( meta.textures );\n\t\t\tconst images = extractFromCache( meta.images );\n\t\t\tconst shapes = extractFromCache( meta.shapes );\n\t\t\tconst skeletons = extractFromCache( meta.skeletons );\n\t\t\tconst animations = extractFromCache( meta.animations );\n\t\t\tconst nodes = extractFromCache( meta.nodes );\n\n\t\t\tif ( geometries.length > 0 ) output.geometries = geometries;\n\t\t\tif ( materials.length > 0 ) output.materials = materials;\n\t\t\tif ( textures.length > 0 ) output.textures = textures;\n\t\t\tif ( images.length > 0 ) output.images = images;\n\t\t\tif ( shapes.length > 0 ) output.shapes = shapes;\n\t\t\tif ( skeletons.length > 0 ) output.skeletons = skeletons;\n\t\t\tif ( animations.length > 0 ) output.animations = animations;\n\t\t\tif ( nodes.length > 0 ) output.nodes = nodes;\n\n\t\t}\n\n\t\toutput.object = object;\n\n\t\treturn output;\n\n\t\t// extract data from the cache hash\n\t\t// remove metadata on each item\n\t\t// and return as array\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values = [];\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\n\t\t}\n\n\t}\n\n\tclone( recursive ) {\n\n\t\treturn new this.constructor().copy( this, recursive );\n\n\t}\n\n\tcopy( source, recursive = true ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.up.copy( source.up );\n\n\t\tthis.position.copy( source.position );\n\t\tthis.rotation.order = source.rotation.order;\n\t\tthis.quaternion.copy( source.quaternion );\n\t\tthis.scale.copy( source.scale );\n\n\t\tthis.matrix.copy( source.matrix );\n\t\tthis.matrixWorld.copy( source.matrixWorld );\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\n\t\tthis.matrixWorldAutoUpdate = source.matrixWorldAutoUpdate;\n\t\tthis.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate;\n\n\t\tthis.layers.mask = source.layers.mask;\n\t\tthis.visible = source.visible;\n\n\t\tthis.castShadow = source.castShadow;\n\t\tthis.receiveShadow = source.receiveShadow;\n\n\t\tthis.frustumCulled = source.frustumCulled;\n\t\tthis.renderOrder = source.renderOrder;\n\n\t\tthis.animations = source.animations.slice();\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\tif ( recursive === true ) {\n\n\t\t\tfor ( let i = 0; i < source.children.length; i ++ ) {\n\n\t\t\t\tconst child = source.children[ i ];\n\t\t\t\tthis.add( child.clone() );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nObject3D.DEFAULT_UP = /*@__PURE__*/ new Vector3( 0, 1, 0 );\nObject3D.DEFAULT_MATRIX_AUTO_UPDATE = true;\nObject3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE = true;\n\nconst _v0$1 = /*@__PURE__*/ new Vector3();\nconst _v1$3 = /*@__PURE__*/ new Vector3();\nconst _v2$2 = /*@__PURE__*/ new Vector3();\nconst _v3$2 = /*@__PURE__*/ new Vector3();\n\nconst _vab = /*@__PURE__*/ new Vector3();\nconst _vac = /*@__PURE__*/ new Vector3();\nconst _vbc = /*@__PURE__*/ new Vector3();\nconst _vap = /*@__PURE__*/ new Vector3();\nconst _vbp = /*@__PURE__*/ new Vector3();\nconst _vcp = /*@__PURE__*/ new Vector3();\n\nconst _v40 = /*@__PURE__*/ new Vector4();\nconst _v41 = /*@__PURE__*/ new Vector4();\nconst _v42 = /*@__PURE__*/ new Vector4();\n\nclass Triangle {\n\n\tconstructor( a = new Vector3(), b = new Vector3(), c = new Vector3() ) {\n\n\t\tthis.a = a;\n\t\tthis.b = b;\n\t\tthis.c = c;\n\n\t}\n\n\tstatic getNormal( a, b, c, target ) {\n\n\t\ttarget.subVectors( c, b );\n\t\t_v0$1.subVectors( a, b );\n\t\ttarget.cross( _v0$1 );\n\n\t\tconst targetLengthSq = target.lengthSq();\n\t\tif ( targetLengthSq > 0 ) {\n\n\t\t\treturn target.multiplyScalar( 1 / Math.sqrt( targetLengthSq ) );\n\n\t\t}\n\n\t\treturn target.set( 0, 0, 0 );\n\n\t}\n\n\t// static/instance method to calculate barycentric coordinates\n\t// based on: http://www.blackpawn.com/texts/pointinpoly/default.html\n\tstatic getBarycoord( point, a, b, c, target ) {\n\n\t\t_v0$1.subVectors( c, a );\n\t\t_v1$3.subVectors( b, a );\n\t\t_v2$2.subVectors( point, a );\n\n\t\tconst dot00 = _v0$1.dot( _v0$1 );\n\t\tconst dot01 = _v0$1.dot( _v1$3 );\n\t\tconst dot02 = _v0$1.dot( _v2$2 );\n\t\tconst dot11 = _v1$3.dot( _v1$3 );\n\t\tconst dot12 = _v1$3.dot( _v2$2 );\n\n\t\tconst denom = ( dot00 * dot11 - dot01 * dot01 );\n\n\t\t// collinear or singular triangle\n\t\tif ( denom === 0 ) {\n\n\t\t\ttarget.set( 0, 0, 0 );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst invDenom = 1 / denom;\n\t\tconst u = ( dot11 * dot02 - dot01 * dot12 ) * invDenom;\n\t\tconst v = ( dot00 * dot12 - dot01 * dot02 ) * invDenom;\n\n\t\t// barycentric coordinates must always sum to 1\n\t\treturn target.set( 1 - u - v, v, u );\n\n\t}\n\n\tstatic containsPoint( point, a, b, c ) {\n\n\t\t// if the triangle is degenerate then we can't contain a point\n\t\tif ( this.getBarycoord( point, a, b, c, _v3$2 ) === null ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn ( _v3$2.x >= 0 ) && ( _v3$2.y >= 0 ) && ( ( _v3$2.x + _v3$2.y ) <= 1 );\n\n\t}\n\n\tstatic getInterpolation( point, p1, p2, p3, v1, v2, v3, target ) {\n\n\t\tif ( this.getBarycoord( point, p1, p2, p3, _v3$2 ) === null ) {\n\n\t\t\ttarget.x = 0;\n\t\t\ttarget.y = 0;\n\t\t\tif ( 'z' in target ) target.z = 0;\n\t\t\tif ( 'w' in target ) target.w = 0;\n\t\t\treturn null;\n\n\t\t}\n\n\t\ttarget.setScalar( 0 );\n\t\ttarget.addScaledVector( v1, _v3$2.x );\n\t\ttarget.addScaledVector( v2, _v3$2.y );\n\t\ttarget.addScaledVector( v3, _v3$2.z );\n\n\t\treturn target;\n\n\t}\n\n\tstatic getInterpolatedAttribute( attr, i1, i2, i3, barycoord, target ) {\n\n\t\t_v40.setScalar( 0 );\n\t\t_v41.setScalar( 0 );\n\t\t_v42.setScalar( 0 );\n\n\t\t_v40.fromBufferAttribute( attr, i1 );\n\t\t_v41.fromBufferAttribute( attr, i2 );\n\t\t_v42.fromBufferAttribute( attr, i3 );\n\n\t\ttarget.setScalar( 0 );\n\t\ttarget.addScaledVector( _v40, barycoord.x );\n\t\ttarget.addScaledVector( _v41, barycoord.y );\n\t\ttarget.addScaledVector( _v42, barycoord.z );\n\n\t\treturn target;\n\n\t}\n\n\tstatic isFrontFacing( a, b, c, direction ) {\n\n\t\t_v0$1.subVectors( c, b );\n\t\t_v1$3.subVectors( a, b );\n\n\t\t// strictly front facing\n\t\treturn ( _v0$1.cross( _v1$3 ).dot( direction ) < 0 ) ? true : false;\n\n\t}\n\n\tset( a, b, c ) {\n\n\t\tthis.a.copy( a );\n\t\tthis.b.copy( b );\n\t\tthis.c.copy( c );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPointsAndIndices( points, i0, i1, i2 ) {\n\n\t\tthis.a.copy( points[ i0 ] );\n\t\tthis.b.copy( points[ i1 ] );\n\t\tthis.c.copy( points[ i2 ] );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromAttributeAndIndices( attribute, i0, i1, i2 ) {\n\n\t\tthis.a.fromBufferAttribute( attribute, i0 );\n\t\tthis.b.fromBufferAttribute( attribute, i1 );\n\t\tthis.c.fromBufferAttribute( attribute, i2 );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( triangle ) {\n\n\t\tthis.a.copy( triangle.a );\n\t\tthis.b.copy( triangle.b );\n\t\tthis.c.copy( triangle.c );\n\n\t\treturn this;\n\n\t}\n\n\tgetArea() {\n\n\t\t_v0$1.subVectors( this.c, this.b );\n\t\t_v1$3.subVectors( this.a, this.b );\n\n\t\treturn _v0$1.cross( _v1$3 ).length() * 0.5;\n\n\t}\n\n\tgetMidpoint( target ) {\n\n\t\treturn target.addVectors( this.a, this.b ).add( this.c ).multiplyScalar( 1 / 3 );\n\n\t}\n\n\tgetNormal( target ) {\n\n\t\treturn Triangle.getNormal( this.a, this.b, this.c, target );\n\n\t}\n\n\tgetPlane( target ) {\n\n\t\treturn target.setFromCoplanarPoints( this.a, this.b, this.c );\n\n\t}\n\n\tgetBarycoord( point, target ) {\n\n\t\treturn Triangle.getBarycoord( point, this.a, this.b, this.c, target );\n\n\t}\n\n\tgetInterpolation( point, v1, v2, v3, target ) {\n\n\t\treturn Triangle.getInterpolation( point, this.a, this.b, this.c, v1, v2, v3, target );\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn Triangle.containsPoint( point, this.a, this.b, this.c );\n\n\t}\n\n\tisFrontFacing( direction ) {\n\n\t\treturn Triangle.isFrontFacing( this.a, this.b, this.c, direction );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsTriangle( this );\n\n\t}\n\n\tclosestPointToPoint( p, target ) {\n\n\t\tconst a = this.a, b = this.b, c = this.c;\n\t\tlet v, w;\n\n\t\t// algorithm thanks to Real-Time Collision Detection by Christer Ericson,\n\t\t// published by Morgan Kaufmann Publishers, (c) 2005 Elsevier Inc.,\n\t\t// under the accompanying license; see chapter 5.1.5 for detailed explanation.\n\t\t// basically, we're distinguishing which of the voronoi regions of the triangle\n\t\t// the point lies in with the minimum amount of redundant computation.\n\n\t\t_vab.subVectors( b, a );\n\t\t_vac.subVectors( c, a );\n\t\t_vap.subVectors( p, a );\n\t\tconst d1 = _vab.dot( _vap );\n\t\tconst d2 = _vac.dot( _vap );\n\t\tif ( d1 <= 0 && d2 <= 0 ) {\n\n\t\t\t// vertex region of A; barycentric coords (1, 0, 0)\n\t\t\treturn target.copy( a );\n\n\t\t}\n\n\t\t_vbp.subVectors( p, b );\n\t\tconst d3 = _vab.dot( _vbp );\n\t\tconst d4 = _vac.dot( _vbp );\n\t\tif ( d3 >= 0 && d4 <= d3 ) {\n\n\t\t\t// vertex region of B; barycentric coords (0, 1, 0)\n\t\t\treturn target.copy( b );\n\n\t\t}\n\n\t\tconst vc = d1 * d4 - d3 * d2;\n\t\tif ( vc <= 0 && d1 >= 0 && d3 <= 0 ) {\n\n\t\t\tv = d1 / ( d1 - d3 );\n\t\t\t// edge region of AB; barycentric coords (1-v, v, 0)\n\t\t\treturn target.copy( a ).addScaledVector( _vab, v );\n\n\t\t}\n\n\t\t_vcp.subVectors( p, c );\n\t\tconst d5 = _vab.dot( _vcp );\n\t\tconst d6 = _vac.dot( _vcp );\n\t\tif ( d6 >= 0 && d5 <= d6 ) {\n\n\t\t\t// vertex region of C; barycentric coords (0, 0, 1)\n\t\t\treturn target.copy( c );\n\n\t\t}\n\n\t\tconst vb = d5 * d2 - d1 * d6;\n\t\tif ( vb <= 0 && d2 >= 0 && d6 <= 0 ) {\n\n\t\t\tw = d2 / ( d2 - d6 );\n\t\t\t// edge region of AC; barycentric coords (1-w, 0, w)\n\t\t\treturn target.copy( a ).addScaledVector( _vac, w );\n\n\t\t}\n\n\t\tconst va = d3 * d6 - d5 * d4;\n\t\tif ( va <= 0 && ( d4 - d3 ) >= 0 && ( d5 - d6 ) >= 0 ) {\n\n\t\t\t_vbc.subVectors( c, b );\n\t\t\tw = ( d4 - d3 ) / ( ( d4 - d3 ) + ( d5 - d6 ) );\n\t\t\t// edge region of BC; barycentric coords (0, 1-w, w)\n\t\t\treturn target.copy( b ).addScaledVector( _vbc, w ); // edge region of BC\n\n\t\t}\n\n\t\t// face region\n\t\tconst denom = 1 / ( va + vb + vc );\n\t\t// u = va * denom\n\t\tv = vb * denom;\n\t\tw = vc * denom;\n\n\t\treturn target.copy( a ).addScaledVector( _vab, v ).addScaledVector( _vac, w );\n\n\t}\n\n\tequals( triangle ) {\n\n\t\treturn triangle.a.equals( this.a ) && triangle.b.equals( this.b ) && triangle.c.equals( this.c );\n\n\t}\n\n}\n\nconst _colorKeywords = { 'aliceblue': 0xF0F8FF, 'antiquewhite': 0xFAEBD7, 'aqua': 0x00FFFF, 'aquamarine': 0x7FFFD4, 'azure': 0xF0FFFF,\n\t'beige': 0xF5F5DC, 'bisque': 0xFFE4C4, 'black': 0x000000, 'blanchedalmond': 0xFFEBCD, 'blue': 0x0000FF, 'blueviolet': 0x8A2BE2,\n\t'brown': 0xA52A2A, 'burlywood': 0xDEB887, 'cadetblue': 0x5F9EA0, 'chartreuse': 0x7FFF00, 'chocolate': 0xD2691E, 'coral': 0xFF7F50,\n\t'cornflowerblue': 0x6495ED, 'cornsilk': 0xFFF8DC, 'crimson': 0xDC143C, 'cyan': 0x00FFFF, 'darkblue': 0x00008B, 'darkcyan': 0x008B8B,\n\t'darkgoldenrod': 0xB8860B, 'darkgray': 0xA9A9A9, 'darkgreen': 0x006400, 'darkgrey': 0xA9A9A9, 'darkkhaki': 0xBDB76B, 'darkmagenta': 0x8B008B,\n\t'darkolivegreen': 0x556B2F, 'darkorange': 0xFF8C00, 'darkorchid': 0x9932CC, 'darkred': 0x8B0000, 'darksalmon': 0xE9967A, 'darkseagreen': 0x8FBC8F,\n\t'darkslateblue': 0x483D8B, 'darkslategray': 0x2F4F4F, 'darkslategrey': 0x2F4F4F, 'darkturquoise': 0x00CED1, 'darkviolet': 0x9400D3,\n\t'deeppink': 0xFF1493, 'deepskyblue': 0x00BFFF, 'dimgray': 0x696969, 'dimgrey': 0x696969, 'dodgerblue': 0x1E90FF, 'firebrick': 0xB22222,\n\t'floralwhite': 0xFFFAF0, 'forestgreen': 0x228B22, 'fuchsia': 0xFF00FF, 'gainsboro': 0xDCDCDC, 'ghostwhite': 0xF8F8FF, 'gold': 0xFFD700,\n\t'goldenrod': 0xDAA520, 'gray': 0x808080, 'green': 0x008000, 'greenyellow': 0xADFF2F, 'grey': 0x808080, 'honeydew': 0xF0FFF0, 'hotpink': 0xFF69B4,\n\t'indianred': 0xCD5C5C, 'indigo': 0x4B0082, 'ivory': 0xFFFFF0, 'khaki': 0xF0E68C, 'lavender': 0xE6E6FA, 'lavenderblush': 0xFFF0F5, 'lawngreen': 0x7CFC00,\n\t'lemonchiffon': 0xFFFACD, 'lightblue': 0xADD8E6, 'lightcoral': 0xF08080, 'lightcyan': 0xE0FFFF, 'lightgoldenrodyellow': 0xFAFAD2, 'lightgray': 0xD3D3D3,\n\t'lightgreen': 0x90EE90, 'lightgrey': 0xD3D3D3, 'lightpink': 0xFFB6C1, 'lightsalmon': 0xFFA07A, 'lightseagreen': 0x20B2AA, 'lightskyblue': 0x87CEFA,\n\t'lightslategray': 0x778899, 'lightslategrey': 0x778899, 'lightsteelblue': 0xB0C4DE, 'lightyellow': 0xFFFFE0, 'lime': 0x00FF00, 'limegreen': 0x32CD32,\n\t'linen': 0xFAF0E6, 'magenta': 0xFF00FF, 'maroon': 0x800000, 'mediumaquamarine': 0x66CDAA, 'mediumblue': 0x0000CD, 'mediumorchid': 0xBA55D3,\n\t'mediumpurple': 0x9370DB, 'mediumseagreen': 0x3CB371, 'mediumslateblue': 0x7B68EE, 'mediumspringgreen': 0x00FA9A, 'mediumturquoise': 0x48D1CC,\n\t'mediumvioletred': 0xC71585, 'midnightblue': 0x191970, 'mintcream': 0xF5FFFA, 'mistyrose': 0xFFE4E1, 'moccasin': 0xFFE4B5, 'navajowhite': 0xFFDEAD,\n\t'navy': 0x000080, 'oldlace': 0xFDF5E6, 'olive': 0x808000, 'olivedrab': 0x6B8E23, 'orange': 0xFFA500, 'orangered': 0xFF4500, 'orchid': 0xDA70D6,\n\t'palegoldenrod': 0xEEE8AA, 'palegreen': 0x98FB98, 'paleturquoise': 0xAFEEEE, 'palevioletred': 0xDB7093, 'papayawhip': 0xFFEFD5, 'peachpuff': 0xFFDAB9,\n\t'peru': 0xCD853F, 'pink': 0xFFC0CB, 'plum': 0xDDA0DD, 'powderblue': 0xB0E0E6, 'purple': 0x800080, 'rebeccapurple': 0x663399, 'red': 0xFF0000, 'rosybrown': 0xBC8F8F,\n\t'royalblue': 0x4169E1, 'saddlebrown': 0x8B4513, 'salmon': 0xFA8072, 'sandybrown': 0xF4A460, 'seagreen': 0x2E8B57, 'seashell': 0xFFF5EE,\n\t'sienna': 0xA0522D, 'silver': 0xC0C0C0, 'skyblue': 0x87CEEB, 'slateblue': 0x6A5ACD, 'slategray': 0x708090, 'slategrey': 0x708090, 'snow': 0xFFFAFA,\n\t'springgreen': 0x00FF7F, 'steelblue': 0x4682B4, 'tan': 0xD2B48C, 'teal': 0x008080, 'thistle': 0xD8BFD8, 'tomato': 0xFF6347, 'turquoise': 0x40E0D0,\n\t'violet': 0xEE82EE, 'wheat': 0xF5DEB3, 'white': 0xFFFFFF, 'whitesmoke': 0xF5F5F5, 'yellow': 0xFFFF00, 'yellowgreen': 0x9ACD32 };\n\nconst _hslA = { h: 0, s: 0, l: 0 };\nconst _hslB = { h: 0, s: 0, l: 0 };\n\nfunction hue2rgb( p, q, t ) {\n\n\tif ( t < 0 ) t += 1;\n\tif ( t > 1 ) t -= 1;\n\tif ( t < 1 / 6 ) return p + ( q - p ) * 6 * t;\n\tif ( t < 1 / 2 ) return q;\n\tif ( t < 2 / 3 ) return p + ( q - p ) * 6 * ( 2 / 3 - t );\n\treturn p;\n\n}\n\nclass Color {\n\n\tconstructor( r, g, b ) {\n\n\t\tthis.isColor = true;\n\n\t\tthis.r = 1;\n\t\tthis.g = 1;\n\t\tthis.b = 1;\n\n\t\treturn this.set( r, g, b );\n\n\t}\n\n\tset( r, g, b ) {\n\n\t\tif ( g === undefined && b === undefined ) {\n\n\t\t\t// r is THREE.Color, hex or string\n\n\t\t\tconst value = r;\n\n\t\t\tif ( value && value.isColor ) {\n\n\t\t\t\tthis.copy( value );\n\n\t\t\t} else if ( typeof value === 'number' ) {\n\n\t\t\t\tthis.setHex( value );\n\n\t\t\t} else if ( typeof value === 'string' ) {\n\n\t\t\t\tthis.setStyle( value );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthis.setRGB( r, g, b );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.r = scalar;\n\t\tthis.g = scalar;\n\t\tthis.b = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetHex( hex, colorSpace = SRGBColorSpace ) {\n\n\t\thex = Math.floor( hex );\n\n\t\tthis.r = ( hex >> 16 & 255 ) / 255;\n\t\tthis.g = ( hex >> 8 & 255 ) / 255;\n\t\tthis.b = ( hex & 255 ) / 255;\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetRGB( r, g, b, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\tthis.r = r;\n\t\tthis.g = g;\n\t\tthis.b = b;\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetHSL( h, s, l, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\t\th = euclideanModulo( h, 1 );\n\t\ts = clamp( s, 0, 1 );\n\t\tl = clamp( l, 0, 1 );\n\n\t\tif ( s === 0 ) {\n\n\t\t\tthis.r = this.g = this.b = l;\n\n\t\t} else {\n\n\t\t\tconst p = l <= 0.5 ? l * ( 1 + s ) : l + s - ( l * s );\n\t\t\tconst q = ( 2 * l ) - p;\n\n\t\t\tthis.r = hue2rgb( q, p, h + 1 / 3 );\n\t\t\tthis.g = hue2rgb( q, p, h );\n\t\t\tthis.b = hue2rgb( q, p, h - 1 / 3 );\n\n\t\t}\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetStyle( style, colorSpace = SRGBColorSpace ) {\n\n\t\tfunction handleAlpha( string ) {\n\n\t\t\tif ( string === undefined ) return;\n\n\t\t\tif ( parseFloat( string ) < 1 ) {\n\n\t\t\t\tconsole.warn( 'THREE.Color: Alpha component of ' + style + ' will be ignored.' );\n\n\t\t\t}\n\n\t\t}\n\n\n\t\tlet m;\n\n\t\tif ( m = /^(\\w+)\\(([^\\)]*)\\)/.exec( style ) ) {\n\n\t\t\t// rgb / hsl\n\n\t\t\tlet color;\n\t\t\tconst name = m[ 1 ];\n\t\t\tconst components = m[ 2 ];\n\n\t\t\tswitch ( name ) {\n\n\t\t\t\tcase 'rgb':\n\t\t\t\tcase 'rgba':\n\n\t\t\t\t\tif ( color = /^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// rgb(255,0,0) rgba(255,0,0,0.5)\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setRGB(\n\t\t\t\t\t\t\tMath.min( 255, parseInt( color[ 1 ], 10 ) ) / 255,\n\t\t\t\t\t\t\tMath.min( 255, parseInt( color[ 2 ], 10 ) ) / 255,\n\t\t\t\t\t\t\tMath.min( 255, parseInt( color[ 3 ], 10 ) ) / 255,\n\t\t\t\t\t\t\tcolorSpace\n\t\t\t\t\t\t);\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( color = /^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// rgb(100%,0%,0%) rgba(100%,0%,0%,0.5)\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setRGB(\n\t\t\t\t\t\t\tMath.min( 100, parseInt( color[ 1 ], 10 ) ) / 100,\n\t\t\t\t\t\t\tMath.min( 100, parseInt( color[ 2 ], 10 ) ) / 100,\n\t\t\t\t\t\t\tMath.min( 100, parseInt( color[ 3 ], 10 ) ) / 100,\n\t\t\t\t\t\t\tcolorSpace\n\t\t\t\t\t\t);\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'hsl':\n\t\t\t\tcase 'hsla':\n\n\t\t\t\t\tif ( color = /^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// hsl(120,50%,50%) hsla(120,50%,50%,0.5)\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setHSL(\n\t\t\t\t\t\t\tparseFloat( color[ 1 ] ) / 360,\n\t\t\t\t\t\t\tparseFloat( color[ 2 ] ) / 100,\n\t\t\t\t\t\t\tparseFloat( color[ 3 ] ) / 100,\n\t\t\t\t\t\t\tcolorSpace\n\t\t\t\t\t\t);\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tconsole.warn( 'THREE.Color: Unknown color model ' + style );\n\n\t\t\t}\n\n\t\t} else if ( m = /^\\#([A-Fa-f\\d]+)$/.exec( style ) ) {\n\n\t\t\t// hex color\n\n\t\t\tconst hex = m[ 1 ];\n\t\t\tconst size = hex.length;\n\n\t\t\tif ( size === 3 ) {\n\n\t\t\t\t// #ff0\n\t\t\t\treturn this.setRGB(\n\t\t\t\t\tparseInt( hex.charAt( 0 ), 16 ) / 15,\n\t\t\t\t\tparseInt( hex.charAt( 1 ), 16 ) / 15,\n\t\t\t\t\tparseInt( hex.charAt( 2 ), 16 ) / 15,\n\t\t\t\t\tcolorSpace\n\t\t\t\t);\n\n\t\t\t} else if ( size === 6 ) {\n\n\t\t\t\t// #ff0000\n\t\t\t\treturn this.setHex( parseInt( hex, 16 ), colorSpace );\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'THREE.Color: Invalid hex color ' + style );\n\n\t\t\t}\n\n\t\t} else if ( style && style.length > 0 ) {\n\n\t\t\treturn this.setColorName( style, colorSpace );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetColorName( style, colorSpace = SRGBColorSpace ) {\n\n\t\t// color keywords\n\t\tconst hex = _colorKeywords[ style.toLowerCase() ];\n\n\t\tif ( hex !== undefined ) {\n\n\t\t\t// red\n\t\t\tthis.setHex( hex, colorSpace );\n\n\t\t} else {\n\n\t\t\t// unknown color\n\t\t\tconsole.warn( 'THREE.Color: Unknown color ' + style );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.r, this.g, this.b );\n\n\t}\n\n\tcopy( color ) {\n\n\t\tthis.r = color.r;\n\t\tthis.g = color.g;\n\t\tthis.b = color.b;\n\n\t\treturn this;\n\n\t}\n\n\tcopySRGBToLinear( color ) {\n\n\t\tthis.r = SRGBToLinear( color.r );\n\t\tthis.g = SRGBToLinear( color.g );\n\t\tthis.b = SRGBToLinear( color.b );\n\n\t\treturn this;\n\n\t}\n\n\tcopyLinearToSRGB( color ) {\n\n\t\tthis.r = LinearToSRGB( color.r );\n\t\tthis.g = LinearToSRGB( color.g );\n\t\tthis.b = LinearToSRGB( color.b );\n\n\t\treturn this;\n\n\t}\n\n\tconvertSRGBToLinear() {\n\n\t\tthis.copySRGBToLinear( this );\n\n\t\treturn this;\n\n\t}\n\n\tconvertLinearToSRGB() {\n\n\t\tthis.copyLinearToSRGB( this );\n\n\t\treturn this;\n\n\t}\n\n\tgetHex( colorSpace = SRGBColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\treturn Math.round( clamp( _color.r * 255, 0, 255 ) ) * 65536 + Math.round( clamp( _color.g * 255, 0, 255 ) ) * 256 + Math.round( clamp( _color.b * 255, 0, 255 ) );\n\n\t}\n\n\tgetHexString( colorSpace = SRGBColorSpace ) {\n\n\t\treturn ( '000000' + this.getHex( colorSpace ).toString( 16 ) ).slice( - 6 );\n\n\t}\n\n\tgetHSL( target, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\tconst r = _color.r, g = _color.g, b = _color.b;\n\n\t\tconst max = Math.max( r, g, b );\n\t\tconst min = Math.min( r, g, b );\n\n\t\tlet hue, saturation;\n\t\tconst lightness = ( min + max ) / 2.0;\n\n\t\tif ( min === max ) {\n\n\t\t\thue = 0;\n\t\t\tsaturation = 0;\n\n\t\t} else {\n\n\t\t\tconst delta = max - min;\n\n\t\t\tsaturation = lightness <= 0.5 ? delta / ( max + min ) : delta / ( 2 - max - min );\n\n\t\t\tswitch ( max ) {\n\n\t\t\t\tcase r: hue = ( g - b ) / delta + ( g < b ? 6 : 0 ); break;\n\t\t\t\tcase g: hue = ( b - r ) / delta + 2; break;\n\t\t\t\tcase b: hue = ( r - g ) / delta + 4; break;\n\n\t\t\t}\n\n\t\t\thue /= 6;\n\n\t\t}\n\n\t\ttarget.h = hue;\n\t\ttarget.s = saturation;\n\t\ttarget.l = lightness;\n\n\t\treturn target;\n\n\t}\n\n\tgetRGB( target, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\ttarget.r = _color.r;\n\t\ttarget.g = _color.g;\n\t\ttarget.b = _color.b;\n\n\t\treturn target;\n\n\t}\n\n\tgetStyle( colorSpace = SRGBColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\tconst r = _color.r, g = _color.g, b = _color.b;\n\n\t\tif ( colorSpace !== SRGBColorSpace ) {\n\n\t\t\t// Requires CSS Color Module Level 4 (https://www.w3.org/TR/css-color-4/).\n\t\t\treturn `color(${ colorSpace } ${ r.toFixed( 3 ) } ${ g.toFixed( 3 ) } ${ b.toFixed( 3 ) })`;\n\n\t\t}\n\n\t\treturn `rgb(${ Math.round( r * 255 ) },${ Math.round( g * 255 ) },${ Math.round( b * 255 ) })`;\n\n\t}\n\n\toffsetHSL( h, s, l ) {\n\n\t\tthis.getHSL( _hslA );\n\n\t\treturn this.setHSL( _hslA.h + h, _hslA.s + s, _hslA.l + l );\n\n\t}\n\n\tadd( color ) {\n\n\t\tthis.r += color.r;\n\t\tthis.g += color.g;\n\t\tthis.b += color.b;\n\n\t\treturn this;\n\n\t}\n\n\taddColors( color1, color2 ) {\n\n\t\tthis.r = color1.r + color2.r;\n\t\tthis.g = color1.g + color2.g;\n\t\tthis.b = color1.b + color2.b;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.r += s;\n\t\tthis.g += s;\n\t\tthis.b += s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( color ) {\n\n\t\tthis.r = Math.max( 0, this.r - color.r );\n\t\tthis.g = Math.max( 0, this.g - color.g );\n\t\tthis.b = Math.max( 0, this.b - color.b );\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( color ) {\n\n\t\tthis.r *= color.r;\n\t\tthis.g *= color.g;\n\t\tthis.b *= color.b;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tthis.r *= s;\n\t\tthis.g *= s;\n\t\tthis.b *= s;\n\n\t\treturn this;\n\n\t}\n\n\tlerp( color, alpha ) {\n\n\t\tthis.r += ( color.r - this.r ) * alpha;\n\t\tthis.g += ( color.g - this.g ) * alpha;\n\t\tthis.b += ( color.b - this.b ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpColors( color1, color2, alpha ) {\n\n\t\tthis.r = color1.r + ( color2.r - color1.r ) * alpha;\n\t\tthis.g = color1.g + ( color2.g - color1.g ) * alpha;\n\t\tthis.b = color1.b + ( color2.b - color1.b ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpHSL( color, alpha ) {\n\n\t\tthis.getHSL( _hslA );\n\t\tcolor.getHSL( _hslB );\n\n\t\tconst h = lerp( _hslA.h, _hslB.h, alpha );\n\t\tconst s = lerp( _hslA.s, _hslB.s, alpha );\n\t\tconst l = lerp( _hslA.l, _hslB.l, alpha );\n\n\t\tthis.setHSL( h, s, l );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromVector3( v ) {\n\n\t\tthis.r = v.x;\n\t\tthis.g = v.y;\n\t\tthis.b = v.z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst r = this.r, g = this.g, b = this.b;\n\t\tconst e = m.elements;\n\n\t\tthis.r = e[ 0 ] * r + e[ 3 ] * g + e[ 6 ] * b;\n\t\tthis.g = e[ 1 ] * r + e[ 4 ] * g + e[ 7 ] * b;\n\t\tthis.b = e[ 2 ] * r + e[ 5 ] * g + e[ 8 ] * b;\n\n\t\treturn this;\n\n\t}\n\n\tequals( c ) {\n\n\t\treturn ( c.r === this.r ) && ( c.g === this.g ) && ( c.b === this.b );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.r = array[ offset ];\n\t\tthis.g = array[ offset + 1 ];\n\t\tthis.b = array[ offset + 2 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.r;\n\t\tarray[ offset + 1 ] = this.g;\n\t\tarray[ offset + 2 ] = this.b;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.r = attribute.getX( index );\n\t\tthis.g = attribute.getY( index );\n\t\tthis.b = attribute.getZ( index );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.getHex();\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.r;\n\t\tyield this.g;\n\t\tyield this.b;\n\n\t}\n\n}\n\nconst _color = /*@__PURE__*/ new Color();\n\nColor.NAMES = _colorKeywords;\n\nlet _materialId = 0;\n\nclass Material extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isMaterial = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _materialId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'Material';\n\n\t\tthis.blending = NormalBlending;\n\t\tthis.side = FrontSide;\n\t\tthis.vertexColors = false;\n\n\t\tthis.opacity = 1;\n\t\tthis.transparent = false;\n\t\tthis.alphaHash = false;\n\n\t\tthis.blendSrc = SrcAlphaFactor;\n\t\tthis.blendDst = OneMinusSrcAlphaFactor;\n\t\tthis.blendEquation = AddEquation;\n\t\tthis.blendSrcAlpha = null;\n\t\tthis.blendDstAlpha = null;\n\t\tthis.blendEquationAlpha = null;\n\t\tthis.blendColor = new Color( 0, 0, 0 );\n\t\tthis.blendAlpha = 0;\n\n\t\tthis.depthFunc = LessEqualDepth;\n\t\tthis.depthTest = true;\n\t\tthis.depthWrite = true;\n\n\t\tthis.stencilWriteMask = 0xff;\n\t\tthis.stencilFunc = AlwaysStencilFunc;\n\t\tthis.stencilRef = 0;\n\t\tthis.stencilFuncMask = 0xff;\n\t\tthis.stencilFail = KeepStencilOp;\n\t\tthis.stencilZFail = KeepStencilOp;\n\t\tthis.stencilZPass = KeepStencilOp;\n\t\tthis.stencilWrite = false;\n\n\t\tthis.clippingPlanes = null;\n\t\tthis.clipIntersection = false;\n\t\tthis.clipShadows = false;\n\n\t\tthis.shadowSide = null;\n\n\t\tthis.colorWrite = true;\n\n\t\tthis.precision = null; // override the renderer's default precision for this material\n\n\t\tthis.polygonOffset = false;\n\t\tthis.polygonOffsetFactor = 0;\n\t\tthis.polygonOffsetUnits = 0;\n\n\t\tthis.dithering = false;\n\n\t\tthis.alphaToCoverage = false;\n\t\tthis.premultipliedAlpha = false;\n\t\tthis.forceSinglePass = false;\n\n\t\tthis.visible = true;\n\n\t\tthis.toneMapped = true;\n\n\t\tthis.userData = {};\n\n\t\tthis.version = 0;\n\n\t\tthis._alphaTest = 0;\n\n\t}\n\n\tget alphaTest() {\n\n\t\treturn this._alphaTest;\n\n\t}\n\n\tset alphaTest( value ) {\n\n\t\tif ( this._alphaTest > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._alphaTest = value;\n\n\t}\n\n\t// onBeforeRender and onBeforeCompile only supported in WebGLRenderer\n\n\tonBeforeRender( /* renderer, scene, camera, geometry, object, group */ ) {}\n\n\tonBeforeCompile( /* shaderobject, renderer */ ) {}\n\n\tcustomProgramCacheKey() {\n\n\t\treturn this.onBeforeCompile.toString();\n\n\t}\n\n\tsetValues( values ) {\n\n\t\tif ( values === undefined ) return;\n\n\t\tfor ( const key in values ) {\n\n\t\t\tconst newValue = values[ key ];\n\n\t\t\tif ( newValue === undefined ) {\n\n\t\t\t\tconsole.warn( `THREE.Material: parameter '${ key }' has value of undefined.` );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst currentValue = this[ key ];\n\n\t\t\tif ( currentValue === undefined ) {\n\n\t\t\t\tconsole.warn( `THREE.Material: '${ key }' is not a property of THREE.${ this.type }.` );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tif ( currentValue && currentValue.isColor ) {\n\n\t\t\t\tcurrentValue.set( newValue );\n\n\t\t\t} else if ( ( currentValue && currentValue.isVector3 ) && ( newValue && newValue.isVector3 ) ) {\n\n\t\t\t\tcurrentValue.copy( newValue );\n\n\t\t\t} else {\n\n\t\t\t\tthis[ key ] = newValue;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( isRootObject ) {\n\n\t\t\tmeta = {\n\t\t\t\ttextures: {},\n\t\t\t\timages: {}\n\t\t\t};\n\n\t\t}\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Material',\n\t\t\t\tgenerator: 'Material.toJSON'\n\t\t\t}\n\t\t};\n\n\t\t// standard Material serialization\n\t\tdata.uuid = this.uuid;\n\t\tdata.type = this.type;\n\n\t\tif ( this.name !== '' ) data.name = this.name;\n\n\t\tif ( this.color && this.color.isColor ) data.color = this.color.getHex();\n\n\t\tif ( this.roughness !== undefined ) data.roughness = this.roughness;\n\t\tif ( this.metalness !== undefined ) data.metalness = this.metalness;\n\n\t\tif ( this.sheen !== undefined ) data.sheen = this.sheen;\n\t\tif ( this.sheenColor && this.sheenColor.isColor ) data.sheenColor = this.sheenColor.getHex();\n\t\tif ( this.sheenRoughness !== undefined ) data.sheenRoughness = this.sheenRoughness;\n\t\tif ( this.emissive && this.emissive.isColor ) data.emissive = this.emissive.getHex();\n\t\tif ( this.emissiveIntensity !== undefined && this.emissiveIntensity !== 1 ) data.emissiveIntensity = this.emissiveIntensity;\n\n\t\tif ( this.specular && this.specular.isColor ) data.specular = this.specular.getHex();\n\t\tif ( this.specularIntensity !== undefined ) data.specularIntensity = this.specularIntensity;\n\t\tif ( this.specularColor && this.specularColor.isColor ) data.specularColor = this.specularColor.getHex();\n\t\tif ( this.shininess !== undefined ) data.shininess = this.shininess;\n\t\tif ( this.clearcoat !== undefined ) data.clearcoat = this.clearcoat;\n\t\tif ( this.clearcoatRoughness !== undefined ) data.clearcoatRoughness = this.clearcoatRoughness;\n\n\t\tif ( this.clearcoatMap && this.clearcoatMap.isTexture ) {\n\n\t\t\tdata.clearcoatMap = this.clearcoatMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.clearcoatRoughnessMap && this.clearcoatRoughnessMap.isTexture ) {\n\n\t\t\tdata.clearcoatRoughnessMap = this.clearcoatRoughnessMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.clearcoatNormalMap && this.clearcoatNormalMap.isTexture ) {\n\n\t\t\tdata.clearcoatNormalMap = this.clearcoatNormalMap.toJSON( meta ).uuid;\n\t\t\tdata.clearcoatNormalScale = this.clearcoatNormalScale.toArray();\n\n\t\t}\n\n\t\tif ( this.dispersion !== undefined ) data.dispersion = this.dispersion;\n\n\t\tif ( this.iridescence !== undefined ) data.iridescence = this.iridescence;\n\t\tif ( this.iridescenceIOR !== undefined ) data.iridescenceIOR = this.iridescenceIOR;\n\t\tif ( this.iridescenceThicknessRange !== undefined ) data.iridescenceThicknessRange = this.iridescenceThicknessRange;\n\n\t\tif ( this.iridescenceMap && this.iridescenceMap.isTexture ) {\n\n\t\t\tdata.iridescenceMap = this.iridescenceMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.iridescenceThicknessMap && this.iridescenceThicknessMap.isTexture ) {\n\n\t\t\tdata.iridescenceThicknessMap = this.iridescenceThicknessMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.anisotropy !== undefined ) data.anisotropy = this.anisotropy;\n\t\tif ( this.anisotropyRotation !== undefined ) data.anisotropyRotation = this.anisotropyRotation;\n\n\t\tif ( this.anisotropyMap && this.anisotropyMap.isTexture ) {\n\n\t\t\tdata.anisotropyMap = this.anisotropyMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.map && this.map.isTexture ) data.map = this.map.toJSON( meta ).uuid;\n\t\tif ( this.matcap && this.matcap.isTexture ) data.matcap = this.matcap.toJSON( meta ).uuid;\n\t\tif ( this.alphaMap && this.alphaMap.isTexture ) data.alphaMap = this.alphaMap.toJSON( meta ).uuid;\n\n\t\tif ( this.lightMap && this.lightMap.isTexture ) {\n\n\t\t\tdata.lightMap = this.lightMap.toJSON( meta ).uuid;\n\t\t\tdata.lightMapIntensity = this.lightMapIntensity;\n\n\t\t}\n\n\t\tif ( this.aoMap && this.aoMap.isTexture ) {\n\n\t\t\tdata.aoMap = this.aoMap.toJSON( meta ).uuid;\n\t\t\tdata.aoMapIntensity = this.aoMapIntensity;\n\n\t\t}\n\n\t\tif ( this.bumpMap && this.bumpMap.isTexture ) {\n\n\t\t\tdata.bumpMap = this.bumpMap.toJSON( meta ).uuid;\n\t\t\tdata.bumpScale = this.bumpScale;\n\n\t\t}\n\n\t\tif ( this.normalMap && this.normalMap.isTexture ) {\n\n\t\t\tdata.normalMap = this.normalMap.toJSON( meta ).uuid;\n\t\t\tdata.normalMapType = this.normalMapType;\n\t\t\tdata.normalScale = this.normalScale.toArray();\n\n\t\t}\n\n\t\tif ( this.displacementMap && this.displacementMap.isTexture ) {\n\n\t\t\tdata.displacementMap = this.displacementMap.toJSON( meta ).uuid;\n\t\t\tdata.displacementScale = this.displacementScale;\n\t\t\tdata.displacementBias = this.displacementBias;\n\n\t\t}\n\n\t\tif ( this.roughnessMap && this.roughnessMap.isTexture ) data.roughnessMap = this.roughnessMap.toJSON( meta ).uuid;\n\t\tif ( this.metalnessMap && this.metalnessMap.isTexture ) data.metalnessMap = this.metalnessMap.toJSON( meta ).uuid;\n\n\t\tif ( this.emissiveMap && this.emissiveMap.isTexture ) data.emissiveMap = this.emissiveMap.toJSON( meta ).uuid;\n\t\tif ( this.specularMap && this.specularMap.isTexture ) data.specularMap = this.specularMap.toJSON( meta ).uuid;\n\t\tif ( this.specularIntensityMap && this.specularIntensityMap.isTexture ) data.specularIntensityMap = this.specularIntensityMap.toJSON( meta ).uuid;\n\t\tif ( this.specularColorMap && this.specularColorMap.isTexture ) data.specularColorMap = this.specularColorMap.toJSON( meta ).uuid;\n\n\t\tif ( this.envMap && this.envMap.isTexture ) {\n\n\t\t\tdata.envMap = this.envMap.toJSON( meta ).uuid;\n\n\t\t\tif ( this.combine !== undefined ) data.combine = this.combine;\n\n\t\t}\n\n\t\tif ( this.envMapRotation !== undefined ) data.envMapRotation = this.envMapRotation.toArray();\n\t\tif ( this.envMapIntensity !== undefined ) data.envMapIntensity = this.envMapIntensity;\n\t\tif ( this.reflectivity !== undefined ) data.reflectivity = this.reflectivity;\n\t\tif ( this.refractionRatio !== undefined ) data.refractionRatio = this.refractionRatio;\n\n\t\tif ( this.gradientMap && this.gradientMap.isTexture ) {\n\n\t\t\tdata.gradientMap = this.gradientMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.transmission !== undefined ) data.transmission = this.transmission;\n\t\tif ( this.transmissionMap && this.transmissionMap.isTexture ) data.transmissionMap = this.transmissionMap.toJSON( meta ).uuid;\n\t\tif ( this.thickness !== undefined ) data.thickness = this.thickness;\n\t\tif ( this.thicknessMap && this.thicknessMap.isTexture ) data.thicknessMap = this.thicknessMap.toJSON( meta ).uuid;\n\t\tif ( this.attenuationDistance !== undefined && this.attenuationDistance !== Infinity ) data.attenuationDistance = this.attenuationDistance;\n\t\tif ( this.attenuationColor !== undefined ) data.attenuationColor = this.attenuationColor.getHex();\n\n\t\tif ( this.size !== undefined ) data.size = this.size;\n\t\tif ( this.shadowSide !== null ) data.shadowSide = this.shadowSide;\n\t\tif ( this.sizeAttenuation !== undefined ) data.sizeAttenuation = this.sizeAttenuation;\n\n\t\tif ( this.blending !== NormalBlending ) data.blending = this.blending;\n\t\tif ( this.side !== FrontSide ) data.side = this.side;\n\t\tif ( this.vertexColors === true ) data.vertexColors = true;\n\n\t\tif ( this.opacity < 1 ) data.opacity = this.opacity;\n\t\tif ( this.transparent === true ) data.transparent = true;\n\n\t\tif ( this.blendSrc !== SrcAlphaFactor ) data.blendSrc = this.blendSrc;\n\t\tif ( this.blendDst !== OneMinusSrcAlphaFactor ) data.blendDst = this.blendDst;\n\t\tif ( this.blendEquation !== AddEquation ) data.blendEquation = this.blendEquation;\n\t\tif ( this.blendSrcAlpha !== null ) data.blendSrcAlpha = this.blendSrcAlpha;\n\t\tif ( this.blendDstAlpha !== null ) data.blendDstAlpha = this.blendDstAlpha;\n\t\tif ( this.blendEquationAlpha !== null ) data.blendEquationAlpha = this.blendEquationAlpha;\n\t\tif ( this.blendColor && this.blendColor.isColor ) data.blendColor = this.blendColor.getHex();\n\t\tif ( this.blendAlpha !== 0 ) data.blendAlpha = this.blendAlpha;\n\n\t\tif ( this.depthFunc !== LessEqualDepth ) data.depthFunc = this.depthFunc;\n\t\tif ( this.depthTest === false ) data.depthTest = this.depthTest;\n\t\tif ( this.depthWrite === false ) data.depthWrite = this.depthWrite;\n\t\tif ( this.colorWrite === false ) data.colorWrite = this.colorWrite;\n\n\t\tif ( this.stencilWriteMask !== 0xff ) data.stencilWriteMask = this.stencilWriteMask;\n\t\tif ( this.stencilFunc !== AlwaysStencilFunc ) data.stencilFunc = this.stencilFunc;\n\t\tif ( this.stencilRef !== 0 ) data.stencilRef = this.stencilRef;\n\t\tif ( this.stencilFuncMask !== 0xff ) data.stencilFuncMask = this.stencilFuncMask;\n\t\tif ( this.stencilFail !== KeepStencilOp ) data.stencilFail = this.stencilFail;\n\t\tif ( this.stencilZFail !== KeepStencilOp ) data.stencilZFail = this.stencilZFail;\n\t\tif ( this.stencilZPass !== KeepStencilOp ) data.stencilZPass = this.stencilZPass;\n\t\tif ( this.stencilWrite === true ) data.stencilWrite = this.stencilWrite;\n\n\t\t// rotation (SpriteMaterial)\n\t\tif ( this.rotation !== undefined && this.rotation !== 0 ) data.rotation = this.rotation;\n\n\t\tif ( this.polygonOffset === true ) data.polygonOffset = true;\n\t\tif ( this.polygonOffsetFactor !== 0 ) data.polygonOffsetFactor = this.polygonOffsetFactor;\n\t\tif ( this.polygonOffsetUnits !== 0 ) data.polygonOffsetUnits = this.polygonOffsetUnits;\n\n\t\tif ( this.linewidth !== undefined && this.linewidth !== 1 ) data.linewidth = this.linewidth;\n\t\tif ( this.dashSize !== undefined ) data.dashSize = this.dashSize;\n\t\tif ( this.gapSize !== undefined ) data.gapSize = this.gapSize;\n\t\tif ( this.scale !== undefined ) data.scale = this.scale;\n\n\t\tif ( this.dithering === true ) data.dithering = true;\n\n\t\tif ( this.alphaTest > 0 ) data.alphaTest = this.alphaTest;\n\t\tif ( this.alphaHash === true ) data.alphaHash = true;\n\t\tif ( this.alphaToCoverage === true ) data.alphaToCoverage = true;\n\t\tif ( this.premultipliedAlpha === true ) data.premultipliedAlpha = true;\n\t\tif ( this.forceSinglePass === true ) data.forceSinglePass = true;\n\n\t\tif ( this.wireframe === true ) data.wireframe = true;\n\t\tif ( this.wireframeLinewidth > 1 ) data.wireframeLinewidth = this.wireframeLinewidth;\n\t\tif ( this.wireframeLinecap !== 'round' ) data.wireframeLinecap = this.wireframeLinecap;\n\t\tif ( this.wireframeLinejoin !== 'round' ) data.wireframeLinejoin = this.wireframeLinejoin;\n\n\t\tif ( this.flatShading === true ) data.flatShading = true;\n\n\t\tif ( this.visible === false ) data.visible = false;\n\n\t\tif ( this.toneMapped === false ) data.toneMapped = false;\n\n\t\tif ( this.fog === false ) data.fog = false;\n\n\t\tif ( Object.keys( this.userData ).length > 0 ) data.userData = this.userData;\n\n\t\t// TODO: Copied from Object3D.toJSON\n\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values = [];\n\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\n\t\t}\n\n\t\tif ( isRootObject ) {\n\n\t\t\tconst textures = extractFromCache( meta.textures );\n\t\t\tconst images = extractFromCache( meta.images );\n\n\t\t\tif ( textures.length > 0 ) data.textures = textures;\n\t\t\tif ( images.length > 0 ) data.images = images;\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.blending = source.blending;\n\t\tthis.side = source.side;\n\t\tthis.vertexColors = source.vertexColors;\n\n\t\tthis.opacity = source.opacity;\n\t\tthis.transparent = source.transparent;\n\n\t\tthis.blendSrc = source.blendSrc;\n\t\tthis.blendDst = source.blendDst;\n\t\tthis.blendEquation = source.blendEquation;\n\t\tthis.blendSrcAlpha = source.blendSrcAlpha;\n\t\tthis.blendDstAlpha = source.blendDstAlpha;\n\t\tthis.blendEquationAlpha = source.blendEquationAlpha;\n\t\tthis.blendColor.copy( source.blendColor );\n\t\tthis.blendAlpha = source.blendAlpha;\n\n\t\tthis.depthFunc = source.depthFunc;\n\t\tthis.depthTest = source.depthTest;\n\t\tthis.depthWrite = source.depthWrite;\n\n\t\tthis.stencilWriteMask = source.stencilWriteMask;\n\t\tthis.stencilFunc = source.stencilFunc;\n\t\tthis.stencilRef = source.stencilRef;\n\t\tthis.stencilFuncMask = source.stencilFuncMask;\n\t\tthis.stencilFail = source.stencilFail;\n\t\tthis.stencilZFail = source.stencilZFail;\n\t\tthis.stencilZPass = source.stencilZPass;\n\t\tthis.stencilWrite = source.stencilWrite;\n\n\t\tconst srcPlanes = source.clippingPlanes;\n\t\tlet dstPlanes = null;\n\n\t\tif ( srcPlanes !== null ) {\n\n\t\t\tconst n = srcPlanes.length;\n\t\t\tdstPlanes = new Array( n );\n\n\t\t\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\t\t\tdstPlanes[ i ] = srcPlanes[ i ].clone();\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.clippingPlanes = dstPlanes;\n\t\tthis.clipIntersection = source.clipIntersection;\n\t\tthis.clipShadows = source.clipShadows;\n\n\t\tthis.shadowSide = source.shadowSide;\n\n\t\tthis.colorWrite = source.colorWrite;\n\n\t\tthis.precision = source.precision;\n\n\t\tthis.polygonOffset = source.polygonOffset;\n\t\tthis.polygonOffsetFactor = source.polygonOffsetFactor;\n\t\tthis.polygonOffsetUnits = source.polygonOffsetUnits;\n\n\t\tthis.dithering = source.dithering;\n\n\t\tthis.alphaTest = source.alphaTest;\n\t\tthis.alphaHash = source.alphaHash;\n\t\tthis.alphaToCoverage = source.alphaToCoverage;\n\t\tthis.premultipliedAlpha = source.premultipliedAlpha;\n\t\tthis.forceSinglePass = source.forceSinglePass;\n\n\t\tthis.visible = source.visible;\n\n\t\tthis.toneMapped = source.toneMapped;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tonBuild( /* shaderobject, renderer */ ) {\n\n\t\tconsole.warn( 'Material: onBuild() has been removed.' ); // @deprecated, r166\n\n\t}\n\n}\n\nclass MeshBasicMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshBasicMaterial = true;\n\n\t\tthis.type = 'MeshBasicMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // emissive\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.envMapRotation = new Euler();\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.envMapRotation.copy( source.envMapRotation );\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\n// Fast Half Float Conversions, http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n\nconst _tables = /*@__PURE__*/ _generateTables();\n\nfunction _generateTables() {\n\n\t// float32 to float16 helpers\n\n\tconst buffer = new ArrayBuffer( 4 );\n\tconst floatView = new Float32Array( buffer );\n\tconst uint32View = new Uint32Array( buffer );\n\n\tconst baseTable = new Uint32Array( 512 );\n\tconst shiftTable = new Uint32Array( 512 );\n\n\tfor ( let i = 0; i < 256; ++ i ) {\n\n\t\tconst e = i - 127;\n\n\t\t// very small number (0, -0)\n\n\t\tif ( e < - 27 ) {\n\n\t\t\tbaseTable[ i ] = 0x0000;\n\t\t\tbaseTable[ i | 0x100 ] = 0x8000;\n\t\t\tshiftTable[ i ] = 24;\n\t\t\tshiftTable[ i | 0x100 ] = 24;\n\n\t\t\t// small number (denorm)\n\n\t\t} else if ( e < - 14 ) {\n\n\t\t\tbaseTable[ i ] = 0x0400 >> ( - e - 14 );\n\t\t\tbaseTable[ i | 0x100 ] = ( 0x0400 >> ( - e - 14 ) ) | 0x8000;\n\t\t\tshiftTable[ i ] = - e - 1;\n\t\t\tshiftTable[ i | 0x100 ] = - e - 1;\n\n\t\t\t// normal number\n\n\t\t} else if ( e <= 15 ) {\n\n\t\t\tbaseTable[ i ] = ( e + 15 ) << 10;\n\t\t\tbaseTable[ i | 0x100 ] = ( ( e + 15 ) << 10 ) | 0x8000;\n\t\t\tshiftTable[ i ] = 13;\n\t\t\tshiftTable[ i | 0x100 ] = 13;\n\n\t\t\t// large number (Infinity, -Infinity)\n\n\t\t} else if ( e < 128 ) {\n\n\t\t\tbaseTable[ i ] = 0x7c00;\n\t\t\tbaseTable[ i | 0x100 ] = 0xfc00;\n\t\t\tshiftTable[ i ] = 24;\n\t\t\tshiftTable[ i | 0x100 ] = 24;\n\n\t\t\t// stay (NaN, Infinity, -Infinity)\n\n\t\t} else {\n\n\t\t\tbaseTable[ i ] = 0x7c00;\n\t\t\tbaseTable[ i | 0x100 ] = 0xfc00;\n\t\t\tshiftTable[ i ] = 13;\n\t\t\tshiftTable[ i | 0x100 ] = 13;\n\n\t\t}\n\n\t}\n\n\t// float16 to float32 helpers\n\n\tconst mantissaTable = new Uint32Array( 2048 );\n\tconst exponentTable = new Uint32Array( 64 );\n\tconst offsetTable = new Uint32Array( 64 );\n\n\tfor ( let i = 1; i < 1024; ++ i ) {\n\n\t\tlet m = i << 13; // zero pad mantissa bits\n\t\tlet e = 0; // zero exponent\n\n\t\t// normalized\n\t\twhile ( ( m & 0x00800000 ) === 0 ) {\n\n\t\t\tm <<= 1;\n\t\t\te -= 0x00800000; // decrement exponent\n\n\t\t}\n\n\t\tm &= ~ 0x00800000; // clear leading 1 bit\n\t\te += 0x38800000; // adjust bias\n\n\t\tmantissaTable[ i ] = m | e;\n\n\t}\n\n\tfor ( let i = 1024; i < 2048; ++ i ) {\n\n\t\tmantissaTable[ i ] = 0x38000000 + ( ( i - 1024 ) << 13 );\n\n\t}\n\n\tfor ( let i = 1; i < 31; ++ i ) {\n\n\t\texponentTable[ i ] = i << 23;\n\n\t}\n\n\texponentTable[ 31 ] = 0x47800000;\n\texponentTable[ 32 ] = 0x80000000;\n\n\tfor ( let i = 33; i < 63; ++ i ) {\n\n\t\texponentTable[ i ] = 0x80000000 + ( ( i - 32 ) << 23 );\n\n\t}\n\n\texponentTable[ 63 ] = 0xc7800000;\n\n\tfor ( let i = 1; i < 64; ++ i ) {\n\n\t\tif ( i !== 32 ) {\n\n\t\t\toffsetTable[ i ] = 1024;\n\n\t\t}\n\n\t}\n\n\treturn {\n\t\tfloatView: floatView,\n\t\tuint32View: uint32View,\n\t\tbaseTable: baseTable,\n\t\tshiftTable: shiftTable,\n\t\tmantissaTable: mantissaTable,\n\t\texponentTable: exponentTable,\n\t\toffsetTable: offsetTable\n\t};\n\n}\n\n// float32 to float16\n\nfunction toHalfFloat( val ) {\n\n\tif ( Math.abs( val ) > 65504 ) console.warn( 'THREE.DataUtils.toHalfFloat(): Value out of range.' );\n\n\tval = clamp( val, - 65504, 65504 );\n\n\t_tables.floatView[ 0 ] = val;\n\tconst f = _tables.uint32View[ 0 ];\n\tconst e = ( f >> 23 ) & 0x1ff;\n\treturn _tables.baseTable[ e ] + ( ( f & 0x007fffff ) >> _tables.shiftTable[ e ] );\n\n}\n\n// float16 to float32\n\nfunction fromHalfFloat( val ) {\n\n\tconst m = val >> 10;\n\t_tables.uint32View[ 0 ] = _tables.mantissaTable[ _tables.offsetTable[ m ] + ( val & 0x3ff ) ] + _tables.exponentTable[ m ];\n\treturn _tables.floatView[ 0 ];\n\n}\n\nconst DataUtils = {\n\ttoHalfFloat: toHalfFloat,\n\tfromHalfFloat: fromHalfFloat,\n};\n\nconst _vector$9 = /*@__PURE__*/ new Vector3();\nconst _vector2$1 = /*@__PURE__*/ new Vector2();\n\nclass BufferAttribute {\n\n\tconstructor( array, itemSize, normalized = false ) {\n\n\t\tif ( Array.isArray( array ) ) {\n\n\t\t\tthrow new TypeError( 'THREE.BufferAttribute: array should be a Typed Array.' );\n\n\t\t}\n\n\t\tthis.isBufferAttribute = true;\n\n\t\tthis.name = '';\n\n\t\tthis.array = array;\n\t\tthis.itemSize = itemSize;\n\t\tthis.count = array !== undefined ? array.length / itemSize : 0;\n\t\tthis.normalized = normalized;\n\n\t\tthis.usage = StaticDrawUsage;\n\t\tthis.updateRanges = [];\n\t\tthis.gpuType = FloatType;\n\n\t\tthis.version = 0;\n\n\t}\n\n\tonUploadCallback() {}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\taddUpdateRange( start, count ) {\n\n\t\tthis.updateRanges.push( { start, count } );\n\n\t}\n\n\tclearUpdateRanges() {\n\n\t\tthis.updateRanges.length = 0;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\t\tthis.array = new source.array.constructor( source.array );\n\t\tthis.itemSize = source.itemSize;\n\t\tthis.count = source.count;\n\t\tthis.normalized = source.normalized;\n\n\t\tthis.usage = source.usage;\n\t\tthis.gpuType = source.gpuType;\n\n\t\treturn this;\n\n\t}\n\n\tcopyAt( index1, attribute, index2 ) {\n\n\t\tindex1 *= this.itemSize;\n\t\tindex2 *= attribute.itemSize;\n\n\t\tfor ( let i = 0, l = this.itemSize; i < l; i ++ ) {\n\n\t\t\tthis.array[ index1 + i ] = attribute.array[ index2 + i ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcopyArray( array ) {\n\n\t\tthis.array.set( array );\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tif ( this.itemSize === 2 ) {\n\n\t\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t\t_vector2$1.fromBufferAttribute( this, i );\n\t\t\t\t_vector2$1.applyMatrix3( m );\n\n\t\t\t\tthis.setXY( i, _vector2$1.x, _vector2$1.y );\n\n\t\t\t}\n\n\t\t} else if ( this.itemSize === 3 ) {\n\n\t\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t\t_vector$9.fromBufferAttribute( this, i );\n\t\t\t\t_vector$9.applyMatrix3( m );\n\n\t\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.applyMatrix4( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.applyNormalMatrix( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.transformDirection( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tset( value, offset = 0 ) {\n\n\t\t// Matching BufferAttribute constructor, do not normalize the array.\n\t\tthis.array.set( value, offset );\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index, component ) {\n\n\t\tlet value = this.array[ index * this.itemSize + component ];\n\n\t\tif ( this.normalized ) value = denormalize( value, this.array );\n\n\t\treturn value;\n\n\t}\n\n\tsetComponent( index, component, value ) {\n\n\t\tif ( this.normalized ) value = normalize( value, this.array );\n\n\t\tthis.array[ index * this.itemSize + component ] = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetX( index ) {\n\n\t\tlet x = this.array[ index * this.itemSize ];\n\n\t\tif ( this.normalized ) x = denormalize( x, this.array );\n\n\t\treturn x;\n\n\t}\n\n\tsetX( index, x ) {\n\n\t\tif ( this.normalized ) x = normalize( x, this.array );\n\n\t\tthis.array[ index * this.itemSize ] = x;\n\n\t\treturn this;\n\n\t}\n\n\tgetY( index ) {\n\n\t\tlet y = this.array[ index * this.itemSize + 1 ];\n\n\t\tif ( this.normalized ) y = denormalize( y, this.array );\n\n\t\treturn y;\n\n\t}\n\n\tsetY( index, y ) {\n\n\t\tif ( this.normalized ) y = normalize( y, this.array );\n\n\t\tthis.array[ index * this.itemSize + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tgetZ( index ) {\n\n\t\tlet z = this.array[ index * this.itemSize + 2 ];\n\n\t\tif ( this.normalized ) z = denormalize( z, this.array );\n\n\t\treturn z;\n\n\t}\n\n\tsetZ( index, z ) {\n\n\t\tif ( this.normalized ) z = normalize( z, this.array );\n\n\t\tthis.array[ index * this.itemSize + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tgetW( index ) {\n\n\t\tlet w = this.array[ index * this.itemSize + 3 ];\n\n\t\tif ( this.normalized ) w = denormalize( w, this.array );\n\n\t\treturn w;\n\n\t}\n\n\tsetW( index, w ) {\n\n\t\tif ( this.normalized ) w = normalize( w, this.array );\n\n\t\tthis.array[ index * this.itemSize + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetXY( index, x, y ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZ( index, x, y, z ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\t\tthis.array[ index + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZW( index, x, y, z, w ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\t\t\tw = normalize( w, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\t\tthis.array[ index + 2 ] = z;\n\t\tthis.array[ index + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tonUpload( callback ) {\n\n\t\tthis.onUploadCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.array, this.itemSize ).copy( this );\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\titemSize: this.itemSize,\n\t\t\ttype: this.array.constructor.name,\n\t\t\tarray: Array.from( this.array ),\n\t\t\tnormalized: this.normalized\n\t\t};\n\n\t\tif ( this.name !== '' ) data.name = this.name;\n\t\tif ( this.usage !== StaticDrawUsage ) data.usage = this.usage;\n\n\t\treturn data;\n\n\t}\n\n}\n\n//\n\nclass Int8BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int8Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint8BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint8Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint8ClampedBufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint8ClampedArray( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Int16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Int32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Float16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint16Array( array ), itemSize, normalized );\n\n\t\tthis.isFloat16BufferAttribute = true;\n\n\t}\n\n\tgetX( index ) {\n\n\t\tlet x = fromHalfFloat( this.array[ index * this.itemSize ] );\n\n\t\tif ( this.normalized ) x = denormalize( x, this.array );\n\n\t\treturn x;\n\n\t}\n\n\tsetX( index, x ) {\n\n\t\tif ( this.normalized ) x = normalize( x, this.array );\n\n\t\tthis.array[ index * this.itemSize ] = toHalfFloat( x );\n\n\t\treturn this;\n\n\t}\n\n\tgetY( index ) {\n\n\t\tlet y = fromHalfFloat( this.array[ index * this.itemSize + 1 ] );\n\n\t\tif ( this.normalized ) y = denormalize( y, this.array );\n\n\t\treturn y;\n\n\t}\n\n\tsetY( index, y ) {\n\n\t\tif ( this.normalized ) y = normalize( y, this.array );\n\n\t\tthis.array[ index * this.itemSize + 1 ] = toHalfFloat( y );\n\n\t\treturn this;\n\n\t}\n\n\tgetZ( index ) {\n\n\t\tlet z = fromHalfFloat( this.array[ index * this.itemSize + 2 ] );\n\n\t\tif ( this.normalized ) z = denormalize( z, this.array );\n\n\t\treturn z;\n\n\t}\n\n\tsetZ( index, z ) {\n\n\t\tif ( this.normalized ) z = normalize( z, this.array );\n\n\t\tthis.array[ index * this.itemSize + 2 ] = toHalfFloat( z );\n\n\t\treturn this;\n\n\t}\n\n\tgetW( index ) {\n\n\t\tlet w = fromHalfFloat( this.array[ index * this.itemSize + 3 ] );\n\n\t\tif ( this.normalized ) w = denormalize( w, this.array );\n\n\t\treturn w;\n\n\t}\n\n\tsetW( index, w ) {\n\n\t\tif ( this.normalized ) w = normalize( w, this.array );\n\n\t\tthis.array[ index * this.itemSize + 3 ] = toHalfFloat( w );\n\n\t\treturn this;\n\n\t}\n\n\tsetXY( index, x, y ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = toHalfFloat( x );\n\t\tthis.array[ index + 1 ] = toHalfFloat( y );\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZ( index, x, y, z ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = toHalfFloat( x );\n\t\tthis.array[ index + 1 ] = toHalfFloat( y );\n\t\tthis.array[ index + 2 ] = toHalfFloat( z );\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZW( index, x, y, z, w ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\t\t\tw = normalize( w, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = toHalfFloat( x );\n\t\tthis.array[ index + 1 ] = toHalfFloat( y );\n\t\tthis.array[ index + 2 ] = toHalfFloat( z );\n\t\tthis.array[ index + 3 ] = toHalfFloat( w );\n\n\t\treturn this;\n\n\t}\n\n}\n\n\nclass Float32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Float32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nlet _id$1 = 0;\n\nconst _m1 = /*@__PURE__*/ new Matrix4();\nconst _obj = /*@__PURE__*/ new Object3D();\nconst _offset = /*@__PURE__*/ new Vector3();\nconst _box$2 = /*@__PURE__*/ new Box3();\nconst _boxMorphTargets = /*@__PURE__*/ new Box3();\nconst _vector$8 = /*@__PURE__*/ new Vector3();\n\nclass BufferGeometry extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isBufferGeometry = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _id$1 ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'BufferGeometry';\n\n\t\tthis.index = null;\n\t\tthis.indirect = null;\n\t\tthis.attributes = {};\n\n\t\tthis.morphAttributes = {};\n\t\tthis.morphTargetsRelative = false;\n\n\t\tthis.groups = [];\n\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\tthis.drawRange = { start: 0, count: Infinity };\n\n\t\tthis.userData = {};\n\n\t}\n\n\tgetIndex() {\n\n\t\treturn this.index;\n\n\t}\n\n\tsetIndex( index ) {\n\n\t\tif ( Array.isArray( index ) ) {\n\n\t\t\tthis.index = new ( arrayNeedsUint32( index ) ? Uint32BufferAttribute : Uint16BufferAttribute )( index, 1 );\n\n\t\t} else {\n\n\t\t\tthis.index = index;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetIndirect( indirect ) {\n\n\t\tthis.indirect = indirect;\n\n\t\treturn this;\n\n\t}\n\n\tgetIndirect() {\n\n\t\treturn this.indirect;\n\n\t}\n\n\tgetAttribute( name ) {\n\n\t\treturn this.attributes[ name ];\n\n\t}\n\n\tsetAttribute( name, attribute ) {\n\n\t\tthis.attributes[ name ] = attribute;\n\n\t\treturn this;\n\n\t}\n\n\tdeleteAttribute( name ) {\n\n\t\tdelete this.attributes[ name ];\n\n\t\treturn this;\n\n\t}\n\n\thasAttribute( name ) {\n\n\t\treturn this.attributes[ name ] !== undefined;\n\n\t}\n\n\taddGroup( start, count, materialIndex = 0 ) {\n\n\t\tthis.groups.push( {\n\n\t\t\tstart: start,\n\t\t\tcount: count,\n\t\t\tmaterialIndex: materialIndex\n\n\t\t} );\n\n\t}\n\n\tclearGroups() {\n\n\t\tthis.groups = [];\n\n\t}\n\n\tsetDrawRange( start, count ) {\n\n\t\tthis.drawRange.start = start;\n\t\tthis.drawRange.count = count;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tconst position = this.attributes.position;\n\n\t\tif ( position !== undefined ) {\n\n\t\t\tposition.applyMatrix4( matrix );\n\n\t\t\tposition.needsUpdate = true;\n\n\t\t}\n\n\t\tconst normal = this.attributes.normal;\n\n\t\tif ( normal !== undefined ) {\n\n\t\t\tconst normalMatrix = new Matrix3().getNormalMatrix( matrix );\n\n\t\t\tnormal.applyNormalMatrix( normalMatrix );\n\n\t\t\tnormal.needsUpdate = true;\n\n\t\t}\n\n\t\tconst tangent = this.attributes.tangent;\n\n\t\tif ( tangent !== undefined ) {\n\n\t\t\ttangent.transformDirection( matrix );\n\n\t\t\ttangent.needsUpdate = true;\n\n\t\t}\n\n\t\tif ( this.boundingBox !== null ) {\n\n\t\t\tthis.computeBoundingBox();\n\n\t\t}\n\n\t\tif ( this.boundingSphere !== null ) {\n\n\t\t\tthis.computeBoundingSphere();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\t_m1.makeRotationFromQuaternion( q );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateX( angle ) {\n\n\t\t// rotate geometry around world x-axis\n\n\t\t_m1.makeRotationX( angle );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateY( angle ) {\n\n\t\t// rotate geometry around world y-axis\n\n\t\t_m1.makeRotationY( angle );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateZ( angle ) {\n\n\t\t// rotate geometry around world z-axis\n\n\t\t_m1.makeRotationZ( angle );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( x, y, z ) {\n\n\t\t// translate geometry\n\n\t\t_m1.makeTranslation( x, y, z );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\tscale( x, y, z ) {\n\n\t\t// scale geometry\n\n\t\t_m1.makeScale( x, y, z );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\tlookAt( vector ) {\n\n\t\t_obj.lookAt( vector );\n\n\t\t_obj.updateMatrix();\n\n\t\tthis.applyMatrix4( _obj.matrix );\n\n\t\treturn this;\n\n\t}\n\n\tcenter() {\n\n\t\tthis.computeBoundingBox();\n\n\t\tthis.boundingBox.getCenter( _offset ).negate();\n\n\t\tthis.translate( _offset.x, _offset.y, _offset.z );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tconst positionAttribute = this.getAttribute( 'position' );\n\n\t\tif ( positionAttribute === undefined ) {\n\n\t\t\tconst position = [];\n\n\t\t\tfor ( let i = 0, l = points.length; i < l; i ++ ) {\n\n\t\t\t\tconst point = points[ i ];\n\t\t\t\tposition.push( point.x, point.y, point.z || 0 );\n\n\t\t\t}\n\n\t\t\tthis.setAttribute( 'position', new Float32BufferAttribute( position, 3 ) );\n\n\t\t} else {\n\n\t\t\tconst l = Math.min( points.length, positionAttribute.count ); // make sure data do not exceed buffer size\n\n\t\t\tfor ( let i = 0; i < l; i ++ ) {\n\n\t\t\t\tconst point = points[ i ];\n\t\t\t\tpositionAttribute.setXYZ( i, point.x, point.y, point.z || 0 );\n\n\t\t\t}\n\n\t\t\tif ( points.length > positionAttribute.count ) {\n\n\t\t\t\tconsole.warn( 'THREE.BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry.' );\n\n\t\t\t}\n\n\t\t\tpositionAttribute.needsUpdate = true;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tconst position = this.attributes.position;\n\t\tconst morphAttributesPosition = this.morphAttributes.position;\n\n\t\tif ( position && position.isGLBufferAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.', this );\n\n\t\t\tthis.boundingBox.set(\n\t\t\t\tnew Vector3( - Infinity, - Infinity, - Infinity ),\n\t\t\t\tnew Vector3( + Infinity, + Infinity, + Infinity )\n\t\t\t);\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( position !== undefined ) {\n\n\t\t\tthis.boundingBox.setFromBufferAttribute( position );\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\t_box$2.setFromBufferAttribute( morphAttribute );\n\n\t\t\t\t\tif ( this.morphTargetsRelative ) {\n\n\t\t\t\t\t\t_vector$8.addVectors( this.boundingBox.min, _box$2.min );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _vector$8 );\n\n\t\t\t\t\t\t_vector$8.addVectors( this.boundingBox.max, _box$2.max );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _vector$8 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _box$2.min );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _box$2.max );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthis.boundingBox.makeEmpty();\n\n\t\t}\n\n\t\tif ( isNaN( this.boundingBox.min.x ) || isNaN( this.boundingBox.min.y ) || isNaN( this.boundingBox.min.z ) ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.', this );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tconst position = this.attributes.position;\n\t\tconst morphAttributesPosition = this.morphAttributes.position;\n\n\t\tif ( position && position.isGLBufferAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.', this );\n\n\t\t\tthis.boundingSphere.set( new Vector3(), Infinity );\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( position ) {\n\n\t\t\t// first, find the center of the bounding sphere\n\n\t\t\tconst center = this.boundingSphere.center;\n\n\t\t\t_box$2.setFromBufferAttribute( position );\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\t_boxMorphTargets.setFromBufferAttribute( morphAttribute );\n\n\t\t\t\t\tif ( this.morphTargetsRelative ) {\n\n\t\t\t\t\t\t_vector$8.addVectors( _box$2.min, _boxMorphTargets.min );\n\t\t\t\t\t\t_box$2.expandByPoint( _vector$8 );\n\n\t\t\t\t\t\t_vector$8.addVectors( _box$2.max, _boxMorphTargets.max );\n\t\t\t\t\t\t_box$2.expandByPoint( _vector$8 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_box$2.expandByPoint( _boxMorphTargets.min );\n\t\t\t\t\t\t_box$2.expandByPoint( _boxMorphTargets.max );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t_box$2.getCenter( center );\n\n\t\t\t// second, try to find a boundingSphere with a radius smaller than the\n\t\t\t// boundingSphere of the boundingBox: sqrt(3) smaller in the best case\n\n\t\t\tlet maxRadiusSq = 0;\n\n\t\t\tfor ( let i = 0, il = position.count; i < il; i ++ ) {\n\n\t\t\t\t_vector$8.fromBufferAttribute( position, i );\n\n\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$8 ) );\n\n\t\t\t}\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\tconst morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t\t\t\tfor ( let j = 0, jl = morphAttribute.count; j < jl; j ++ ) {\n\n\t\t\t\t\t\t_vector$8.fromBufferAttribute( morphAttribute, j );\n\n\t\t\t\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t\t\t\t_offset.fromBufferAttribute( position, j );\n\t\t\t\t\t\t\t_vector$8.add( _offset );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$8 ) );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.boundingSphere.radius = Math.sqrt( maxRadiusSq );\n\n\t\t\tif ( isNaN( this.boundingSphere.radius ) ) {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.', this );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcomputeTangents() {\n\n\t\tconst index = this.index;\n\t\tconst attributes = this.attributes;\n\n\t\t// based on http://www.terathon.com/code/tangent.html\n\t\t// (per vertex tangents)\n\n\t\tif ( index === null ||\n\t\t\t attributes.position === undefined ||\n\t\t\t attributes.normal === undefined ||\n\t\t\t attributes.uv === undefined ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst positionAttribute = attributes.position;\n\t\tconst normalAttribute = attributes.normal;\n\t\tconst uvAttribute = attributes.uv;\n\n\t\tif ( this.hasAttribute( 'tangent' ) === false ) {\n\n\t\t\tthis.setAttribute( 'tangent', new BufferAttribute( new Float32Array( 4 * positionAttribute.count ), 4 ) );\n\n\t\t}\n\n\t\tconst tangentAttribute = this.getAttribute( 'tangent' );\n\n\t\tconst tan1 = [], tan2 = [];\n\n\t\tfor ( let i = 0; i < positionAttribute.count; i ++ ) {\n\n\t\t\ttan1[ i ] = new Vector3();\n\t\t\ttan2[ i ] = new Vector3();\n\n\t\t}\n\n\t\tconst vA = new Vector3(),\n\t\t\tvB = new Vector3(),\n\t\t\tvC = new Vector3(),\n\n\t\t\tuvA = new Vector2(),\n\t\t\tuvB = new Vector2(),\n\t\t\tuvC = new Vector2(),\n\n\t\t\tsdir = new Vector3(),\n\t\t\ttdir = new Vector3();\n\n\t\tfunction handleTriangle( a, b, c ) {\n\n\t\t\tvA.fromBufferAttribute( positionAttribute, a );\n\t\t\tvB.fromBufferAttribute( positionAttribute, b );\n\t\t\tvC.fromBufferAttribute( positionAttribute, c );\n\n\t\t\tuvA.fromBufferAttribute( uvAttribute, a );\n\t\t\tuvB.fromBufferAttribute( uvAttribute, b );\n\t\t\tuvC.fromBufferAttribute( uvAttribute, c );\n\n\t\t\tvB.sub( vA );\n\t\t\tvC.sub( vA );\n\n\t\t\tuvB.sub( uvA );\n\t\t\tuvC.sub( uvA );\n\n\t\t\tconst r = 1.0 / ( uvB.x * uvC.y - uvC.x * uvB.y );\n\n\t\t\t// silently ignore degenerate uv triangles having coincident or colinear vertices\n\n\t\t\tif ( ! isFinite( r ) ) return;\n\n\t\t\tsdir.copy( vB ).multiplyScalar( uvC.y ).addScaledVector( vC, - uvB.y ).multiplyScalar( r );\n\t\t\ttdir.copy( vC ).multiplyScalar( uvB.x ).addScaledVector( vB, - uvC.x ).multiplyScalar( r );\n\n\t\t\ttan1[ a ].add( sdir );\n\t\t\ttan1[ b ].add( sdir );\n\t\t\ttan1[ c ].add( sdir );\n\n\t\t\ttan2[ a ].add( tdir );\n\t\t\ttan2[ b ].add( tdir );\n\t\t\ttan2[ c ].add( tdir );\n\n\t\t}\n\n\t\tlet groups = this.groups;\n\n\t\tif ( groups.length === 0 ) {\n\n\t\t\tgroups = [ {\n\t\t\t\tstart: 0,\n\t\t\t\tcount: index.count\n\t\t\t} ];\n\n\t\t}\n\n\t\tfor ( let i = 0, il = groups.length; i < il; ++ i ) {\n\n\t\t\tconst group = groups[ i ];\n\n\t\t\tconst start = group.start;\n\t\t\tconst count = group.count;\n\n\t\t\tfor ( let j = start, jl = start + count; j < jl; j += 3 ) {\n\n\t\t\t\thandleTriangle(\n\t\t\t\t\tindex.getX( j + 0 ),\n\t\t\t\t\tindex.getX( j + 1 ),\n\t\t\t\t\tindex.getX( j + 2 )\n\t\t\t\t);\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst tmp = new Vector3(), tmp2 = new Vector3();\n\t\tconst n = new Vector3(), n2 = new Vector3();\n\n\t\tfunction handleVertex( v ) {\n\n\t\t\tn.fromBufferAttribute( normalAttribute, v );\n\t\t\tn2.copy( n );\n\n\t\t\tconst t = tan1[ v ];\n\n\t\t\t// Gram-Schmidt orthogonalize\n\n\t\t\ttmp.copy( t );\n\t\t\ttmp.sub( n.multiplyScalar( n.dot( t ) ) ).normalize();\n\n\t\t\t// Calculate handedness\n\n\t\t\ttmp2.crossVectors( n2, t );\n\t\t\tconst test = tmp2.dot( tan2[ v ] );\n\t\t\tconst w = ( test < 0.0 ) ? - 1.0 : 1.0;\n\n\t\t\ttangentAttribute.setXYZW( v, tmp.x, tmp.y, tmp.z, w );\n\n\t\t}\n\n\t\tfor ( let i = 0, il = groups.length; i < il; ++ i ) {\n\n\t\t\tconst group = groups[ i ];\n\n\t\t\tconst start = group.start;\n\t\t\tconst count = group.count;\n\n\t\t\tfor ( let j = start, jl = start + count; j < jl; j += 3 ) {\n\n\t\t\t\thandleVertex( index.getX( j + 0 ) );\n\t\t\t\thandleVertex( index.getX( j + 1 ) );\n\t\t\t\thandleVertex( index.getX( j + 2 ) );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcomputeVertexNormals() {\n\n\t\tconst index = this.index;\n\t\tconst positionAttribute = this.getAttribute( 'position' );\n\n\t\tif ( positionAttribute !== undefined ) {\n\n\t\t\tlet normalAttribute = this.getAttribute( 'normal' );\n\n\t\t\tif ( normalAttribute === undefined ) {\n\n\t\t\t\tnormalAttribute = new BufferAttribute( new Float32Array( positionAttribute.count * 3 ), 3 );\n\t\t\t\tthis.setAttribute( 'normal', normalAttribute );\n\n\t\t\t} else {\n\n\t\t\t\t// reset existing normals to zero\n\n\t\t\t\tfor ( let i = 0, il = normalAttribute.count; i < il; i ++ ) {\n\n\t\t\t\t\tnormalAttribute.setXYZ( i, 0, 0, 0 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst pA = new Vector3(), pB = new Vector3(), pC = new Vector3();\n\t\t\tconst nA = new Vector3(), nB = new Vector3(), nC = new Vector3();\n\t\t\tconst cb = new Vector3(), ab = new Vector3();\n\n\t\t\t// indexed elements\n\n\t\t\tif ( index ) {\n\n\t\t\t\tfor ( let i = 0, il = index.count; i < il; i += 3 ) {\n\n\t\t\t\t\tconst vA = index.getX( i + 0 );\n\t\t\t\t\tconst vB = index.getX( i + 1 );\n\t\t\t\t\tconst vC = index.getX( i + 2 );\n\n\t\t\t\t\tpA.fromBufferAttribute( positionAttribute, vA );\n\t\t\t\t\tpB.fromBufferAttribute( positionAttribute, vB );\n\t\t\t\t\tpC.fromBufferAttribute( positionAttribute, vC );\n\n\t\t\t\t\tcb.subVectors( pC, pB );\n\t\t\t\t\tab.subVectors( pA, pB );\n\t\t\t\t\tcb.cross( ab );\n\n\t\t\t\t\tnA.fromBufferAttribute( normalAttribute, vA );\n\t\t\t\t\tnB.fromBufferAttribute( normalAttribute, vB );\n\t\t\t\t\tnC.fromBufferAttribute( normalAttribute, vC );\n\n\t\t\t\t\tnA.add( cb );\n\t\t\t\t\tnB.add( cb );\n\t\t\t\t\tnC.add( cb );\n\n\t\t\t\t\tnormalAttribute.setXYZ( vA, nA.x, nA.y, nA.z );\n\t\t\t\t\tnormalAttribute.setXYZ( vB, nB.x, nB.y, nB.z );\n\t\t\t\t\tnormalAttribute.setXYZ( vC, nC.x, nC.y, nC.z );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// non-indexed elements (unconnected triangle soup)\n\n\t\t\t\tfor ( let i = 0, il = positionAttribute.count; i < il; i += 3 ) {\n\n\t\t\t\t\tpA.fromBufferAttribute( positionAttribute, i + 0 );\n\t\t\t\t\tpB.fromBufferAttribute( positionAttribute, i + 1 );\n\t\t\t\t\tpC.fromBufferAttribute( positionAttribute, i + 2 );\n\n\t\t\t\t\tcb.subVectors( pC, pB );\n\t\t\t\t\tab.subVectors( pA, pB );\n\t\t\t\t\tcb.cross( ab );\n\n\t\t\t\t\tnormalAttribute.setXYZ( i + 0, cb.x, cb.y, cb.z );\n\t\t\t\t\tnormalAttribute.setXYZ( i + 1, cb.x, cb.y, cb.z );\n\t\t\t\t\tnormalAttribute.setXYZ( i + 2, cb.x, cb.y, cb.z );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.normalizeNormals();\n\n\t\t\tnormalAttribute.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n\tnormalizeNormals() {\n\n\t\tconst normals = this.attributes.normal;\n\n\t\tfor ( let i = 0, il = normals.count; i < il; i ++ ) {\n\n\t\t\t_vector$8.fromBufferAttribute( normals, i );\n\n\t\t\t_vector$8.normalize();\n\n\t\t\tnormals.setXYZ( i, _vector$8.x, _vector$8.y, _vector$8.z );\n\n\t\t}\n\n\t}\n\n\ttoNonIndexed() {\n\n\t\tfunction convertBufferAttribute( attribute, indices ) {\n\n\t\t\tconst array = attribute.array;\n\t\t\tconst itemSize = attribute.itemSize;\n\t\t\tconst normalized = attribute.normalized;\n\n\t\t\tconst array2 = new array.constructor( indices.length * itemSize );\n\n\t\t\tlet index = 0, index2 = 0;\n\n\t\t\tfor ( let i = 0, l = indices.length; i < l; i ++ ) {\n\n\t\t\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\t\tindex = indices[ i ] * attribute.data.stride + attribute.offset;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tindex = indices[ i ] * itemSize;\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let j = 0; j < itemSize; j ++ ) {\n\n\t\t\t\t\tarray2[ index2 ++ ] = array[ index ++ ];\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn new BufferAttribute( array2, itemSize, normalized );\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.index === null ) {\n\n\t\t\tconsole.warn( 'THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.' );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst geometry2 = new BufferGeometry();\n\n\t\tconst indices = this.index.array;\n\t\tconst attributes = this.attributes;\n\n\t\t// attributes\n\n\t\tfor ( const name in attributes ) {\n\n\t\t\tconst attribute = attributes[ name ];\n\n\t\t\tconst newAttribute = convertBufferAttribute( attribute, indices );\n\n\t\t\tgeometry2.setAttribute( name, newAttribute );\n\n\t\t}\n\n\t\t// morph attributes\n\n\t\tconst morphAttributes = this.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst morphArray = [];\n\t\t\tconst morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes\n\n\t\t\tfor ( let i = 0, il = morphAttribute.length; i < il; i ++ ) {\n\n\t\t\t\tconst attribute = morphAttribute[ i ];\n\n\t\t\t\tconst newAttribute = convertBufferAttribute( attribute, indices );\n\n\t\t\t\tmorphArray.push( newAttribute );\n\n\t\t\t}\n\n\t\t\tgeometry2.morphAttributes[ name ] = morphArray;\n\n\t\t}\n\n\t\tgeometry2.morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t// groups\n\n\t\tconst groups = this.groups;\n\n\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\tconst group = groups[ i ];\n\t\t\tgeometry2.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t}\n\n\t\treturn geometry2;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'BufferGeometry',\n\t\t\t\tgenerator: 'BufferGeometry.toJSON'\n\t\t\t}\n\t\t};\n\n\t\t// standard BufferGeometry serialization\n\n\t\tdata.uuid = this.uuid;\n\t\tdata.type = this.type;\n\t\tif ( this.name !== '' ) data.name = this.name;\n\t\tif ( Object.keys( this.userData ).length > 0 ) data.userData = this.userData;\n\n\t\tif ( this.parameters !== undefined ) {\n\n\t\t\tconst parameters = this.parameters;\n\n\t\t\tfor ( const key in parameters ) {\n\n\t\t\t\tif ( parameters[ key ] !== undefined ) data[ key ] = parameters[ key ];\n\n\t\t\t}\n\n\t\t\treturn data;\n\n\t\t}\n\n\t\t// for simplicity the code assumes attributes are not shared across geometries, see #15811\n\n\t\tdata.data = { attributes: {} };\n\n\t\tconst index = this.index;\n\n\t\tif ( index !== null ) {\n\n\t\t\tdata.data.index = {\n\t\t\t\ttype: index.array.constructor.name,\n\t\t\t\tarray: Array.prototype.slice.call( index.array )\n\t\t\t};\n\n\t\t}\n\n\t\tconst attributes = this.attributes;\n\n\t\tfor ( const key in attributes ) {\n\n\t\t\tconst attribute = attributes[ key ];\n\n\t\t\tdata.data.attributes[ key ] = attribute.toJSON( data.data );\n\n\t\t}\n\n\t\tconst morphAttributes = {};\n\t\tlet hasMorphAttributes = false;\n\n\t\tfor ( const key in this.morphAttributes ) {\n\n\t\t\tconst attributeArray = this.morphAttributes[ key ];\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0, il = attributeArray.length; i < il; i ++ ) {\n\n\t\t\t\tconst attribute = attributeArray[ i ];\n\n\t\t\t\tarray.push( attribute.toJSON( data.data ) );\n\n\t\t\t}\n\n\t\t\tif ( array.length > 0 ) {\n\n\t\t\t\tmorphAttributes[ key ] = array;\n\n\t\t\t\thasMorphAttributes = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( hasMorphAttributes ) {\n\n\t\t\tdata.data.morphAttributes = morphAttributes;\n\t\t\tdata.data.morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t}\n\n\t\tconst groups = this.groups;\n\n\t\tif ( groups.length > 0 ) {\n\n\t\t\tdata.data.groups = JSON.parse( JSON.stringify( groups ) );\n\n\t\t}\n\n\t\tconst boundingSphere = this.boundingSphere;\n\n\t\tif ( boundingSphere !== null ) {\n\n\t\t\tdata.data.boundingSphere = {\n\t\t\t\tcenter: boundingSphere.center.toArray(),\n\t\t\t\tradius: boundingSphere.radius\n\t\t\t};\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\t// reset\n\n\t\tthis.index = null;\n\t\tthis.attributes = {};\n\t\tthis.morphAttributes = {};\n\t\tthis.groups = [];\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\t// used for storing cloned, shared data\n\n\t\tconst data = {};\n\n\t\t// name\n\n\t\tthis.name = source.name;\n\n\t\t// index\n\n\t\tconst index = source.index;\n\n\t\tif ( index !== null ) {\n\n\t\t\tthis.setIndex( index.clone( data ) );\n\n\t\t}\n\n\t\t// attributes\n\n\t\tconst attributes = source.attributes;\n\n\t\tfor ( const name in attributes ) {\n\n\t\t\tconst attribute = attributes[ name ];\n\t\t\tthis.setAttribute( name, attribute.clone( data ) );\n\n\t\t}\n\n\t\t// morph attributes\n\n\t\tconst morphAttributes = source.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst array = [];\n\t\t\tconst morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes\n\n\t\t\tfor ( let i = 0, l = morphAttribute.length; i < l; i ++ ) {\n\n\t\t\t\tarray.push( morphAttribute[ i ].clone( data ) );\n\n\t\t\t}\n\n\t\t\tthis.morphAttributes[ name ] = array;\n\n\t\t}\n\n\t\tthis.morphTargetsRelative = source.morphTargetsRelative;\n\n\t\t// groups\n\n\t\tconst groups = source.groups;\n\n\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\tconst group = groups[ i ];\n\t\t\tthis.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t}\n\n\t\t// bounding box\n\n\t\tconst boundingBox = source.boundingBox;\n\n\t\tif ( boundingBox !== null ) {\n\n\t\t\tthis.boundingBox = boundingBox.clone();\n\n\t\t}\n\n\t\t// bounding sphere\n\n\t\tconst boundingSphere = source.boundingSphere;\n\n\t\tif ( boundingSphere !== null ) {\n\n\t\t\tthis.boundingSphere = boundingSphere.clone();\n\n\t\t}\n\n\t\t// draw range\n\n\t\tthis.drawRange.start = source.drawRange.start;\n\t\tthis.drawRange.count = source.drawRange.count;\n\n\t\t// user data\n\n\t\tthis.userData = source.userData;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\nconst _inverseMatrix$3 = /*@__PURE__*/ new Matrix4();\nconst _ray$3 = /*@__PURE__*/ new Ray();\nconst _sphere$6 = /*@__PURE__*/ new Sphere();\nconst _sphereHitAt = /*@__PURE__*/ new Vector3();\n\nconst _vA$1 = /*@__PURE__*/ new Vector3();\nconst _vB$1 = /*@__PURE__*/ new Vector3();\nconst _vC$1 = /*@__PURE__*/ new Vector3();\n\nconst _tempA = /*@__PURE__*/ new Vector3();\nconst _morphA = /*@__PURE__*/ new Vector3();\n\nconst _intersectionPoint = /*@__PURE__*/ new Vector3();\nconst _intersectionPointWorld = /*@__PURE__*/ new Vector3();\n\nclass Mesh extends Object3D {\n\n\tconstructor( geometry = new BufferGeometry(), material = new MeshBasicMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.isMesh = true;\n\n\t\tthis.type = 'Mesh';\n\n\t\tthis.geometry = geometry;\n\t\tthis.material = material;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tif ( source.morphTargetInfluences !== undefined ) {\n\n\t\t\tthis.morphTargetInfluences = source.morphTargetInfluences.slice();\n\n\t\t}\n\n\t\tif ( source.morphTargetDictionary !== undefined ) {\n\n\t\t\tthis.morphTargetDictionary = Object.assign( {}, source.morphTargetDictionary );\n\n\t\t}\n\n\t\tthis.material = Array.isArray( source.material ) ? source.material.slice() : source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\t\tconst keys = Object.keys( morphAttributes );\n\n\t\tif ( keys.length > 0 ) {\n\n\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tgetVertexPosition( index, target ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst position = geometry.attributes.position;\n\t\tconst morphPosition = geometry.morphAttributes.position;\n\t\tconst morphTargetsRelative = geometry.morphTargetsRelative;\n\n\t\ttarget.fromBufferAttribute( position, index );\n\n\t\tconst morphInfluences = this.morphTargetInfluences;\n\n\t\tif ( morphPosition && morphInfluences ) {\n\n\t\t\t_morphA.set( 0, 0, 0 );\n\n\t\t\tfor ( let i = 0, il = morphPosition.length; i < il; i ++ ) {\n\n\t\t\t\tconst influence = morphInfluences[ i ];\n\t\t\t\tconst morphAttribute = morphPosition[ i ];\n\n\t\t\t\tif ( influence === 0 ) continue;\n\n\t\t\t\t_tempA.fromBufferAttribute( morphAttribute, index );\n\n\t\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t\t_morphA.addScaledVector( _tempA, influence );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_morphA.addScaledVector( _tempA.sub( target ), influence );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\ttarget.add( _morphA );\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst material = this.material;\n\t\tconst matrixWorld = this.matrixWorld;\n\n\t\tif ( material === undefined ) return;\n\n\t\t// test with bounding sphere in world space\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere$6.copy( geometry.boundingSphere );\n\t\t_sphere$6.applyMatrix4( matrixWorld );\n\n\t\t// check distance from ray origin to bounding sphere\n\n\t\t_ray$3.copy( raycaster.ray ).recast( raycaster.near );\n\n\t\tif ( _sphere$6.containsPoint( _ray$3.origin ) === false ) {\n\n\t\t\tif ( _ray$3.intersectSphere( _sphere$6, _sphereHitAt ) === null ) return;\n\n\t\t\tif ( _ray$3.origin.distanceToSquared( _sphereHitAt ) > ( raycaster.far - raycaster.near ) ** 2 ) return;\n\n\t\t}\n\n\t\t// convert ray to local space of mesh\n\n\t\t_inverseMatrix$3.copy( matrixWorld ).invert();\n\t\t_ray$3.copy( raycaster.ray ).applyMatrix4( _inverseMatrix$3 );\n\n\t\t// test with bounding box in local space\n\n\t\tif ( geometry.boundingBox !== null ) {\n\n\t\t\tif ( _ray$3.intersectsBox( geometry.boundingBox ) === false ) return;\n\n\t\t}\n\n\t\t// test for intersections with geometry\n\n\t\tthis._computeIntersections( raycaster, intersects, _ray$3 );\n\n\t}\n\n\t_computeIntersections( raycaster, intersects, rayLocalSpace ) {\n\n\t\tlet intersection;\n\n\t\tconst geometry = this.geometry;\n\t\tconst material = this.material;\n\n\t\tconst index = geometry.index;\n\t\tconst position = geometry.attributes.position;\n\t\tconst uv = geometry.attributes.uv;\n\t\tconst uv1 = geometry.attributes.uv1;\n\t\tconst normal = geometry.attributes.normal;\n\t\tconst groups = geometry.groups;\n\t\tconst drawRange = geometry.drawRange;\n\n\t\tif ( index !== null ) {\n\n\t\t\t// indexed buffer geometry\n\n\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\tfor ( let i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\tconst start = Math.max( group.start, drawRange.start );\n\t\t\t\t\tconst end = Math.min( index.count, Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ) );\n\n\t\t\t\t\tfor ( let j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\t\tconst a = index.getX( j );\n\t\t\t\t\t\tconst b = index.getX( j + 1 );\n\t\t\t\t\t\tconst c = index.getX( j + 2 );\n\n\t\t\t\t\t\tintersection = checkGeometryIntersection( this, groupMaterial, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( j / 3 ); // triangle number in indexed buffer semantics\n\t\t\t\t\t\t\tintersection.face.materialIndex = group.materialIndex;\n\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\t\tconst a = index.getX( i );\n\t\t\t\t\tconst b = index.getX( i + 1 );\n\t\t\t\t\tconst c = index.getX( i + 2 );\n\n\t\t\t\t\tintersection = checkGeometryIntersection( this, material, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\tintersection.faceIndex = Math.floor( i / 3 ); // triangle number in indexed buffer semantics\n\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else if ( position !== undefined ) {\n\n\t\t\t// non-indexed buffer geometry\n\n\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\tfor ( let i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\tconst start = Math.max( group.start, drawRange.start );\n\t\t\t\t\tconst end = Math.min( position.count, Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ) );\n\n\t\t\t\t\tfor ( let j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\t\tconst a = j;\n\t\t\t\t\t\tconst b = j + 1;\n\t\t\t\t\t\tconst c = j + 2;\n\n\t\t\t\t\t\tintersection = checkGeometryIntersection( this, groupMaterial, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( j / 3 ); // triangle number in non-indexed buffer semantics\n\t\t\t\t\t\t\tintersection.face.materialIndex = group.materialIndex;\n\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( position.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\t\tconst a = i;\n\t\t\t\t\tconst b = i + 1;\n\t\t\t\t\tconst c = i + 2;\n\n\t\t\t\t\tintersection = checkGeometryIntersection( this, material, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\tintersection.faceIndex = Math.floor( i / 3 ); // triangle number in non-indexed buffer semantics\n\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nfunction checkIntersection$1( object, material, raycaster, ray, pA, pB, pC, point ) {\n\n\tlet intersect;\n\n\tif ( material.side === BackSide ) {\n\n\t\tintersect = ray.intersectTriangle( pC, pB, pA, true, point );\n\n\t} else {\n\n\t\tintersect = ray.intersectTriangle( pA, pB, pC, ( material.side === FrontSide ), point );\n\n\t}\n\n\tif ( intersect === null ) return null;\n\n\t_intersectionPointWorld.copy( point );\n\t_intersectionPointWorld.applyMatrix4( object.matrixWorld );\n\n\tconst distance = raycaster.ray.origin.distanceTo( _intersectionPointWorld );\n\n\tif ( distance < raycaster.near || distance > raycaster.far ) return null;\n\n\treturn {\n\t\tdistance: distance,\n\t\tpoint: _intersectionPointWorld.clone(),\n\t\tobject: object\n\t};\n\n}\n\nfunction checkGeometryIntersection( object, material, raycaster, ray, uv, uv1, normal, a, b, c ) {\n\n\tobject.getVertexPosition( a, _vA$1 );\n\tobject.getVertexPosition( b, _vB$1 );\n\tobject.getVertexPosition( c, _vC$1 );\n\n\tconst intersection = checkIntersection$1( object, material, raycaster, ray, _vA$1, _vB$1, _vC$1, _intersectionPoint );\n\n\tif ( intersection ) {\n\n\t\tconst barycoord = new Vector3();\n\t\tTriangle.getBarycoord( _intersectionPoint, _vA$1, _vB$1, _vC$1, barycoord );\n\n\t\tif ( uv ) {\n\n\t\t\tintersection.uv = Triangle.getInterpolatedAttribute( uv, a, b, c, barycoord, new Vector2() );\n\n\t\t}\n\n\t\tif ( uv1 ) {\n\n\t\t\tintersection.uv1 = Triangle.getInterpolatedAttribute( uv1, a, b, c, barycoord, new Vector2() );\n\n\t\t}\n\n\t\tif ( normal ) {\n\n\t\t\tintersection.normal = Triangle.getInterpolatedAttribute( normal, a, b, c, barycoord, new Vector3() );\n\n\t\t\tif ( intersection.normal.dot( ray.direction ) > 0 ) {\n\n\t\t\t\tintersection.normal.multiplyScalar( - 1 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst face = {\n\t\t\ta: a,\n\t\t\tb: b,\n\t\t\tc: c,\n\t\t\tnormal: new Vector3(),\n\t\t\tmaterialIndex: 0\n\t\t};\n\n\t\tTriangle.getNormal( _vA$1, _vB$1, _vC$1, face.normal );\n\n\t\tintersection.face = face;\n\t\tintersection.barycoord = barycoord;\n\n\t}\n\n\treturn intersection;\n\n}\n\nclass BoxGeometry extends BufferGeometry {\n\n\tconstructor( width = 1, height = 1, depth = 1, widthSegments = 1, heightSegments = 1, depthSegments = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'BoxGeometry';\n\n\t\tthis.parameters = {\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\tdepth: depth,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\tdepthSegments: depthSegments\n\t\t};\n\n\t\tconst scope = this;\n\n\t\t// segments\n\n\t\twidthSegments = Math.floor( widthSegments );\n\t\theightSegments = Math.floor( heightSegments );\n\t\tdepthSegments = Math.floor( depthSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tlet numberOfVertices = 0;\n\t\tlet groupStart = 0;\n\n\t\t// build each side of the box geometry\n\n\t\tbuildPlane( 'z', 'y', 'x', - 1, - 1, depth, height, width, depthSegments, heightSegments, 0 ); // px\n\t\tbuildPlane( 'z', 'y', 'x', 1, - 1, depth, height, - width, depthSegments, heightSegments, 1 ); // nx\n\t\tbuildPlane( 'x', 'z', 'y', 1, 1, width, depth, height, widthSegments, depthSegments, 2 ); // py\n\t\tbuildPlane( 'x', 'z', 'y', 1, - 1, width, depth, - height, widthSegments, depthSegments, 3 ); // ny\n\t\tbuildPlane( 'x', 'y', 'z', 1, - 1, width, height, depth, widthSegments, heightSegments, 4 ); // pz\n\t\tbuildPlane( 'x', 'y', 'z', - 1, - 1, width, height, - depth, widthSegments, heightSegments, 5 ); // nz\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\tfunction buildPlane( u, v, w, udir, vdir, width, height, depth, gridX, gridY, materialIndex ) {\n\n\t\t\tconst segmentWidth = width / gridX;\n\t\t\tconst segmentHeight = height / gridY;\n\n\t\t\tconst widthHalf = width / 2;\n\t\t\tconst heightHalf = height / 2;\n\t\t\tconst depthHalf = depth / 2;\n\n\t\t\tconst gridX1 = gridX + 1;\n\t\t\tconst gridY1 = gridY + 1;\n\n\t\t\tlet vertexCounter = 0;\n\t\t\tlet groupCount = 0;\n\n\t\t\tconst vector = new Vector3();\n\n\t\t\t// generate vertices, normals and uvs\n\n\t\t\tfor ( let iy = 0; iy < gridY1; iy ++ ) {\n\n\t\t\t\tconst y = iy * segmentHeight - heightHalf;\n\n\t\t\t\tfor ( let ix = 0; ix < gridX1; ix ++ ) {\n\n\t\t\t\t\tconst x = ix * segmentWidth - widthHalf;\n\n\t\t\t\t\t// set values to correct vector component\n\n\t\t\t\t\tvector[ u ] = x * udir;\n\t\t\t\t\tvector[ v ] = y * vdir;\n\t\t\t\t\tvector[ w ] = depthHalf;\n\n\t\t\t\t\t// now apply vector to vertex buffer\n\n\t\t\t\t\tvertices.push( vector.x, vector.y, vector.z );\n\n\t\t\t\t\t// set values to correct vector component\n\n\t\t\t\t\tvector[ u ] = 0;\n\t\t\t\t\tvector[ v ] = 0;\n\t\t\t\t\tvector[ w ] = depth > 0 ? 1 : - 1;\n\n\t\t\t\t\t// now apply vector to normal buffer\n\n\t\t\t\t\tnormals.push( vector.x, vector.y, vector.z );\n\n\t\t\t\t\t// uvs\n\n\t\t\t\t\tuvs.push( ix / gridX );\n\t\t\t\t\tuvs.push( 1 - ( iy / gridY ) );\n\n\t\t\t\t\t// counters\n\n\t\t\t\t\tvertexCounter += 1;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// indices\n\n\t\t\t// 1. you need three indices to draw a single face\n\t\t\t// 2. a single segment consists of two faces\n\t\t\t// 3. so we need to generate six (2*3) indices per segment\n\n\t\t\tfor ( let iy = 0; iy < gridY; iy ++ ) {\n\n\t\t\t\tfor ( let ix = 0; ix < gridX; ix ++ ) {\n\n\t\t\t\t\tconst a = numberOfVertices + ix + gridX1 * iy;\n\t\t\t\t\tconst b = numberOfVertices + ix + gridX1 * ( iy + 1 );\n\t\t\t\t\tconst c = numberOfVertices + ( ix + 1 ) + gridX1 * ( iy + 1 );\n\t\t\t\t\tconst d = numberOfVertices + ( ix + 1 ) + gridX1 * iy;\n\n\t\t\t\t\t// faces\n\n\t\t\t\t\tindices.push( a, b, d );\n\t\t\t\t\tindices.push( b, c, d );\n\n\t\t\t\t\t// increase counter\n\n\t\t\t\t\tgroupCount += 6;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// add a group to the geometry. this will ensure multi material support\n\n\t\t\tscope.addGroup( groupStart, groupCount, materialIndex );\n\n\t\t\t// calculate new start value for groups\n\n\t\t\tgroupStart += groupCount;\n\n\t\t\t// update total number of vertices\n\n\t\t\tnumberOfVertices += vertexCounter;\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new BoxGeometry( data.width, data.height, data.depth, data.widthSegments, data.heightSegments, data.depthSegments );\n\n\t}\n\n}\n\n/**\n * Uniform Utilities\n */\n\nfunction cloneUniforms( src ) {\n\n\tconst dst = {};\n\n\tfor ( const u in src ) {\n\n\t\tdst[ u ] = {};\n\n\t\tfor ( const p in src[ u ] ) {\n\n\t\t\tconst property = src[ u ][ p ];\n\n\t\t\tif ( property && ( property.isColor ||\n\t\t\t\tproperty.isMatrix3 || property.isMatrix4 ||\n\t\t\t\tproperty.isVector2 || property.isVector3 || property.isVector4 ||\n\t\t\t\tproperty.isTexture || property.isQuaternion ) ) {\n\n\t\t\t\tif ( property.isRenderTargetTexture ) {\n\n\t\t\t\t\tconsole.warn( 'UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms().' );\n\t\t\t\t\tdst[ u ][ p ] = null;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tdst[ u ][ p ] = property.clone();\n\n\t\t\t\t}\n\n\t\t\t} else if ( Array.isArray( property ) ) {\n\n\t\t\t\tdst[ u ][ p ] = property.slice();\n\n\t\t\t} else {\n\n\t\t\t\tdst[ u ][ p ] = property;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\treturn dst;\n\n}\n\nfunction mergeUniforms( uniforms ) {\n\n\tconst merged = {};\n\n\tfor ( let u = 0; u < uniforms.length; u ++ ) {\n\n\t\tconst tmp = cloneUniforms( uniforms[ u ] );\n\n\t\tfor ( const p in tmp ) {\n\n\t\t\tmerged[ p ] = tmp[ p ];\n\n\t\t}\n\n\t}\n\n\treturn merged;\n\n}\n\nfunction cloneUniformsGroups( src ) {\n\n\tconst dst = [];\n\n\tfor ( let u = 0; u < src.length; u ++ ) {\n\n\t\tdst.push( src[ u ].clone() );\n\n\t}\n\n\treturn dst;\n\n}\n\nfunction getUnlitUniformColorSpace( renderer ) {\n\n\tconst currentRenderTarget = renderer.getRenderTarget();\n\n\tif ( currentRenderTarget === null ) {\n\n\t\t// https://github.com/mrdoob/three.js/pull/23937#issuecomment-1111067398\n\t\treturn renderer.outputColorSpace;\n\n\t}\n\n\t// https://github.com/mrdoob/three.js/issues/27868\n\tif ( currentRenderTarget.isXRRenderTarget === true ) {\n\n\t\treturn currentRenderTarget.texture.colorSpace;\n\n\t}\n\n\treturn ColorManagement.workingColorSpace;\n\n}\n\n// Legacy\n\nconst UniformsUtils = { clone: cloneUniforms, merge: mergeUniforms };\n\nvar default_vertex = \"void main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\";\n\nvar default_fragment = \"void main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\";\n\nclass ShaderMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isShaderMaterial = true;\n\n\t\tthis.type = 'ShaderMaterial';\n\n\t\tthis.defines = {};\n\t\tthis.uniforms = {};\n\t\tthis.uniformsGroups = [];\n\n\t\tthis.vertexShader = default_vertex;\n\t\tthis.fragmentShader = default_fragment;\n\n\t\tthis.linewidth = 1;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\n\t\tthis.fog = false; // set to use scene fog\n\t\tthis.lights = false; // set to use scene lights\n\t\tthis.clipping = false; // set to use user-defined clipping planes\n\n\t\tthis.forceSinglePass = true;\n\n\t\tthis.extensions = {\n\t\t\tclipCullDistance: false, // set to use vertex shader clipping\n\t\t\tmultiDraw: false // set to use vertex shader multi_draw / enable gl_DrawID\n\t\t};\n\n\t\t// When rendered geometry doesn't include these attributes but the material does,\n\t\t// use these default values in WebGL. This avoids errors when buffer data is missing.\n\t\tthis.defaultAttributeValues = {\n\t\t\t'color': [ 1, 1, 1 ],\n\t\t\t'uv': [ 0, 0 ],\n\t\t\t'uv1': [ 0, 0 ]\n\t\t};\n\n\t\tthis.index0AttributeName = undefined;\n\t\tthis.uniformsNeedUpdate = false;\n\n\t\tthis.glslVersion = null;\n\n\t\tif ( parameters !== undefined ) {\n\n\t\t\tthis.setValues( parameters );\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.fragmentShader = source.fragmentShader;\n\t\tthis.vertexShader = source.vertexShader;\n\n\t\tthis.uniforms = cloneUniforms( source.uniforms );\n\t\tthis.uniformsGroups = cloneUniformsGroups( source.uniformsGroups );\n\n\t\tthis.defines = Object.assign( {}, source.defines );\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\n\t\tthis.fog = source.fog;\n\t\tthis.lights = source.lights;\n\t\tthis.clipping = source.clipping;\n\n\t\tthis.extensions = Object.assign( {}, source.extensions );\n\n\t\tthis.glslVersion = source.glslVersion;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.glslVersion = this.glslVersion;\n\t\tdata.uniforms = {};\n\n\t\tfor ( const name in this.uniforms ) {\n\n\t\t\tconst uniform = this.uniforms[ name ];\n\t\t\tconst value = uniform.value;\n\n\t\t\tif ( value && value.isTexture ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 't',\n\t\t\t\t\tvalue: value.toJSON( meta ).uuid\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isColor ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'c',\n\t\t\t\t\tvalue: value.getHex()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector2 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v2',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector3 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v3',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector4 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v4',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isMatrix3 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'm3',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isMatrix4 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'm4',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\tvalue: value\n\t\t\t\t};\n\n\t\t\t\t// note: the array variants v2v, v3v, v4v, m4v and tv are not supported so far\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( Object.keys( this.defines ).length > 0 ) data.defines = this.defines;\n\n\t\tdata.vertexShader = this.vertexShader;\n\t\tdata.fragmentShader = this.fragmentShader;\n\n\t\tdata.lights = this.lights;\n\t\tdata.clipping = this.clipping;\n\n\t\tconst extensions = {};\n\n\t\tfor ( const key in this.extensions ) {\n\n\t\t\tif ( this.extensions[ key ] === true ) extensions[ key ] = true;\n\n\t\t}\n\n\t\tif ( Object.keys( extensions ).length > 0 ) data.extensions = extensions;\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass Camera extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isCamera = true;\n\n\t\tthis.type = 'Camera';\n\n\t\tthis.matrixWorldInverse = new Matrix4();\n\n\t\tthis.projectionMatrix = new Matrix4();\n\t\tthis.projectionMatrixInverse = new Matrix4();\n\n\t\tthis.coordinateSystem = WebGLCoordinateSystem;\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.matrixWorldInverse.copy( source.matrixWorldInverse );\n\n\t\tthis.projectionMatrix.copy( source.projectionMatrix );\n\t\tthis.projectionMatrixInverse.copy( source.projectionMatrixInverse );\n\n\t\tthis.coordinateSystem = source.coordinateSystem;\n\n\t\treturn this;\n\n\t}\n\n\tgetWorldDirection( target ) {\n\n\t\treturn super.getWorldDirection( target ).negate();\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t}\n\n\tupdateWorldMatrix( updateParents, updateChildren ) {\n\n\t\tsuper.updateWorldMatrix( updateParents, updateChildren );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _v3$1 = /*@__PURE__*/ new Vector3();\nconst _minTarget = /*@__PURE__*/ new Vector2();\nconst _maxTarget = /*@__PURE__*/ new Vector2();\n\n\nclass PerspectiveCamera extends Camera {\n\n\tconstructor( fov = 50, aspect = 1, near = 0.1, far = 2000 ) {\n\n\t\tsuper();\n\n\t\tthis.isPerspectiveCamera = true;\n\n\t\tthis.type = 'PerspectiveCamera';\n\n\t\tthis.fov = fov;\n\t\tthis.zoom = 1;\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\t\tthis.focus = 10;\n\n\t\tthis.aspect = aspect;\n\t\tthis.view = null;\n\n\t\tthis.filmGauge = 35;\t// width of the film (default in millimeters)\n\t\tthis.filmOffset = 0;\t// horizontal film offset (same unit as gauge)\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.fov = source.fov;\n\t\tthis.zoom = source.zoom;\n\n\t\tthis.near = source.near;\n\t\tthis.far = source.far;\n\t\tthis.focus = source.focus;\n\n\t\tthis.aspect = source.aspect;\n\t\tthis.view = source.view === null ? null : Object.assign( {}, source.view );\n\n\t\tthis.filmGauge = source.filmGauge;\n\t\tthis.filmOffset = source.filmOffset;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the FOV by focal length in respect to the current .filmGauge.\n\t *\n\t * The default film gauge is 35, so that the focal length can be specified for\n\t * a 35mm (full frame) camera.\n\t *\n\t * @param {number} focalLength - Values for focal length and film gauge must have the same unit.\n\t */\n\tsetFocalLength( focalLength ) {\n\n\t\t/** see {@link http://www.bobatkins.com/photography/technical/field_of_view.html} */\n\t\tconst vExtentSlope = 0.5 * this.getFilmHeight() / focalLength;\n\n\t\tthis.fov = RAD2DEG * 2 * Math.atan( vExtentSlope );\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\t/**\n\t * Calculates the focal length from the current .fov and .filmGauge.\n\t *\n\t * @returns {number}\n\t */\n\tgetFocalLength() {\n\n\t\tconst vExtentSlope = Math.tan( DEG2RAD * 0.5 * this.fov );\n\n\t\treturn 0.5 * this.getFilmHeight() / vExtentSlope;\n\n\t}\n\n\tgetEffectiveFOV() {\n\n\t\treturn RAD2DEG * 2 * Math.atan(\n\t\t\tMath.tan( DEG2RAD * 0.5 * this.fov ) / this.zoom );\n\n\t}\n\n\tgetFilmWidth() {\n\n\t\t// film not completely covered in portrait format (aspect < 1)\n\t\treturn this.filmGauge * Math.min( this.aspect, 1 );\n\n\t}\n\n\tgetFilmHeight() {\n\n\t\t// film not completely covered in landscape format (aspect > 1)\n\t\treturn this.filmGauge / Math.max( this.aspect, 1 );\n\n\t}\n\n\t/**\n\t * Computes the 2D bounds of the camera's viewable rectangle at a given distance along the viewing direction.\n\t * Sets minTarget and maxTarget to the coordinates of the lower-left and upper-right corners of the view rectangle.\n\t *\n\t * @param {number} distance\n\t * @param {Vector2} minTarget\n\t * @param {Vector2} maxTarget\n\t */\n\tgetViewBounds( distance, minTarget, maxTarget ) {\n\n\t\t_v3$1.set( - 1, - 1, 0.5 ).applyMatrix4( this.projectionMatrixInverse );\n\n\t\tminTarget.set( _v3$1.x, _v3$1.y ).multiplyScalar( - distance / _v3$1.z );\n\n\t\t_v3$1.set( 1, 1, 0.5 ).applyMatrix4( this.projectionMatrixInverse );\n\n\t\tmaxTarget.set( _v3$1.x, _v3$1.y ).multiplyScalar( - distance / _v3$1.z );\n\n\t}\n\n\t/**\n\t * Computes the width and height of the camera's viewable rectangle at a given distance along the viewing direction.\n\t *\n\t * @param {number} distance\n\t * @param {Vector2} target - Vector2 target used to store result where x is width and y is height.\n\t * @returns {Vector2}\n\t */\n\tgetViewSize( distance, target ) {\n\n\t\tthis.getViewBounds( distance, _minTarget, _maxTarget );\n\n\t\treturn target.subVectors( _maxTarget, _minTarget );\n\n\t}\n\n\t/**\n\t * Sets an offset in a larger frustum. This is useful for multi-window or\n\t * multi-monitor/multi-machine setups.\n\t *\n\t * For example, if you have 3x2 monitors and each monitor is 1920x1080 and\n\t * the monitors are in grid like this\n\t *\n\t * +---+---+---+\n\t * | A | B | C |\n\t * +---+---+---+\n\t * | D | E | F |\n\t * +---+---+---+\n\t *\n\t * then for each monitor you would call it like this\n\t *\n\t * const w = 1920;\n\t * const h = 1080;\n\t * const fullWidth = w * 3;\n\t * const fullHeight = h * 2;\n\t *\n\t * --A--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );\n\t * --B--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );\n\t * --C--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );\n\t * --D--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );\n\t * --E--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );\n\t * --F--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );\n\t *\n\t * Note there is no reason monitors have to be the same size or in a grid.\n\t *\n\t * @param {number} fullWidth\n\t * @param {number} fullHeight\n\t * @param {number} x\n\t * @param {number} y\n\t * @param {number} width\n\t * @param {number} height\n\t */\n\tsetViewOffset( fullWidth, fullHeight, x, y, width, height ) {\n\n\t\tthis.aspect = fullWidth / fullHeight;\n\n\t\tif ( this.view === null ) {\n\n\t\t\tthis.view = {\n\t\t\t\tenabled: true,\n\t\t\t\tfullWidth: 1,\n\t\t\t\tfullHeight: 1,\n\t\t\t\toffsetX: 0,\n\t\t\t\toffsetY: 0,\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1\n\t\t\t};\n\n\t\t}\n\n\t\tthis.view.enabled = true;\n\t\tthis.view.fullWidth = fullWidth;\n\t\tthis.view.fullHeight = fullHeight;\n\t\tthis.view.offsetX = x;\n\t\tthis.view.offsetY = y;\n\t\tthis.view.width = width;\n\t\tthis.view.height = height;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tclearViewOffset() {\n\n\t\tif ( this.view !== null ) {\n\n\t\t\tthis.view.enabled = false;\n\n\t\t}\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tupdateProjectionMatrix() {\n\n\t\tconst near = this.near;\n\t\tlet top = near * Math.tan( DEG2RAD * 0.5 * this.fov ) / this.zoom;\n\t\tlet height = 2 * top;\n\t\tlet width = this.aspect * height;\n\t\tlet left = - 0.5 * width;\n\t\tconst view = this.view;\n\n\t\tif ( this.view !== null && this.view.enabled ) {\n\n\t\t\tconst fullWidth = view.fullWidth,\n\t\t\t\tfullHeight = view.fullHeight;\n\n\t\t\tleft += view.offsetX * width / fullWidth;\n\t\t\ttop -= view.offsetY * height / fullHeight;\n\t\t\twidth *= view.width / fullWidth;\n\t\t\theight *= view.height / fullHeight;\n\n\t\t}\n\n\t\tconst skew = this.filmOffset;\n\t\tif ( skew !== 0 ) left += near * skew / this.getFilmWidth();\n\n\t\tthis.projectionMatrix.makePerspective( left, left + width, top, top - height, near, this.far, this.coordinateSystem );\n\n\t\tthis.projectionMatrixInverse.copy( this.projectionMatrix ).invert();\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.fov = this.fov;\n\t\tdata.object.zoom = this.zoom;\n\n\t\tdata.object.near = this.near;\n\t\tdata.object.far = this.far;\n\t\tdata.object.focus = this.focus;\n\n\t\tdata.object.aspect = this.aspect;\n\n\t\tif ( this.view !== null ) data.object.view = Object.assign( {}, this.view );\n\n\t\tdata.object.filmGauge = this.filmGauge;\n\t\tdata.object.filmOffset = this.filmOffset;\n\n\t\treturn data;\n\n\t}\n\n}\n\nconst fov = - 90; // negative fov is not an error\nconst aspect = 1;\n\nclass CubeCamera extends Object3D {\n\n\tconstructor( near, far, renderTarget ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CubeCamera';\n\n\t\tthis.renderTarget = renderTarget;\n\t\tthis.coordinateSystem = null;\n\t\tthis.activeMipmapLevel = 0;\n\n\t\tconst cameraPX = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPX.layers = this.layers;\n\t\tthis.add( cameraPX );\n\n\t\tconst cameraNX = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNX.layers = this.layers;\n\t\tthis.add( cameraNX );\n\n\t\tconst cameraPY = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPY.layers = this.layers;\n\t\tthis.add( cameraPY );\n\n\t\tconst cameraNY = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNY.layers = this.layers;\n\t\tthis.add( cameraNY );\n\n\t\tconst cameraPZ = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPZ.layers = this.layers;\n\t\tthis.add( cameraPZ );\n\n\t\tconst cameraNZ = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNZ.layers = this.layers;\n\t\tthis.add( cameraNZ );\n\n\t}\n\n\tupdateCoordinateSystem() {\n\n\t\tconst coordinateSystem = this.coordinateSystem;\n\n\t\tconst cameras = this.children.concat();\n\n\t\tconst [ cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ ] = cameras;\n\n\t\tfor ( const camera of cameras ) this.remove( camera );\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tcameraPX.up.set( 0, 1, 0 );\n\t\t\tcameraPX.lookAt( 1, 0, 0 );\n\n\t\t\tcameraNX.up.set( 0, 1, 0 );\n\t\t\tcameraNX.lookAt( - 1, 0, 0 );\n\n\t\t\tcameraPY.up.set( 0, 0, - 1 );\n\t\t\tcameraPY.lookAt( 0, 1, 0 );\n\n\t\t\tcameraNY.up.set( 0, 0, 1 );\n\t\t\tcameraNY.lookAt( 0, - 1, 0 );\n\n\t\t\tcameraPZ.up.set( 0, 1, 0 );\n\t\t\tcameraPZ.lookAt( 0, 0, 1 );\n\n\t\t\tcameraNZ.up.set( 0, 1, 0 );\n\t\t\tcameraNZ.lookAt( 0, 0, - 1 );\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tcameraPX.up.set( 0, - 1, 0 );\n\t\t\tcameraPX.lookAt( - 1, 0, 0 );\n\n\t\t\tcameraNX.up.set( 0, - 1, 0 );\n\t\t\tcameraNX.lookAt( 1, 0, 0 );\n\n\t\t\tcameraPY.up.set( 0, 0, 1 );\n\t\t\tcameraPY.lookAt( 0, 1, 0 );\n\n\t\t\tcameraNY.up.set( 0, 0, - 1 );\n\t\t\tcameraNY.lookAt( 0, - 1, 0 );\n\n\t\t\tcameraPZ.up.set( 0, - 1, 0 );\n\t\t\tcameraPZ.lookAt( 0, 0, 1 );\n\n\t\t\tcameraNZ.up.set( 0, - 1, 0 );\n\t\t\tcameraNZ.lookAt( 0, 0, - 1 );\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\tfor ( const camera of cameras ) {\n\n\t\t\tthis.add( camera );\n\n\t\t\tcamera.updateMatrixWorld();\n\n\t\t}\n\n\t}\n\n\tupdate( renderer, scene ) {\n\n\t\tif ( this.parent === null ) this.updateMatrixWorld();\n\n\t\tconst { renderTarget, activeMipmapLevel } = this;\n\n\t\tif ( this.coordinateSystem !== renderer.coordinateSystem ) {\n\n\t\t\tthis.coordinateSystem = renderer.coordinateSystem;\n\n\t\t\tthis.updateCoordinateSystem();\n\n\t\t}\n\n\t\tconst [ cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ ] = this.children;\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\t\tconst currentActiveCubeFace = renderer.getActiveCubeFace();\n\t\tconst currentActiveMipmapLevel = renderer.getActiveMipmapLevel();\n\n\t\tconst currentXrEnabled = renderer.xr.enabled;\n\n\t\trenderer.xr.enabled = false;\n\n\t\tconst generateMipmaps = renderTarget.texture.generateMipmaps;\n\n\t\trenderTarget.texture.generateMipmaps = false;\n\n\t\trenderer.setRenderTarget( renderTarget, 0, activeMipmapLevel );\n\t\trenderer.render( scene, cameraPX );\n\n\t\trenderer.setRenderTarget( renderTarget, 1, activeMipmapLevel );\n\t\trenderer.render( scene, cameraNX );\n\n\t\trenderer.setRenderTarget( renderTarget, 2, activeMipmapLevel );\n\t\trenderer.render( scene, cameraPY );\n\n\t\trenderer.setRenderTarget( renderTarget, 3, activeMipmapLevel );\n\t\trenderer.render( scene, cameraNY );\n\n\t\trenderer.setRenderTarget( renderTarget, 4, activeMipmapLevel );\n\t\trenderer.render( scene, cameraPZ );\n\n\t\t// mipmaps are generated during the last call of render()\n\t\t// at this point, all sides of the cube render target are defined\n\n\t\trenderTarget.texture.generateMipmaps = generateMipmaps;\n\n\t\trenderer.setRenderTarget( renderTarget, 5, activeMipmapLevel );\n\t\trenderer.render( scene, cameraNZ );\n\n\t\trenderer.setRenderTarget( currentRenderTarget, currentActiveCubeFace, currentActiveMipmapLevel );\n\n\t\trenderer.xr.enabled = currentXrEnabled;\n\n\t\trenderTarget.texture.needsPMREMUpdate = true;\n\n\t}\n\n}\n\nclass CubeTexture extends Texture {\n\n\tconstructor( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace ) {\n\n\t\timages = images !== undefined ? images : [];\n\t\tmapping = mapping !== undefined ? mapping : CubeReflectionMapping;\n\n\t\tsuper( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace );\n\n\t\tthis.isCubeTexture = true;\n\n\t\tthis.flipY = false;\n\n\t}\n\n\tget images() {\n\n\t\treturn this.image;\n\n\t}\n\n\tset images( value ) {\n\n\t\tthis.image = value;\n\n\t}\n\n}\n\nclass WebGLCubeRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( size = 1, options = {} ) {\n\n\t\tsuper( size, size, options );\n\n\t\tthis.isWebGLCubeRenderTarget = true;\n\n\t\tconst image = { width: size, height: size, depth: 1 };\n\t\tconst images = [ image, image, image, image, image, image ];\n\n\t\tthis.texture = new CubeTexture( images, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace );\n\n\t\t// By convention -- likely based on the RenderMan spec from the 1990's -- cube maps are specified by WebGL (and three.js)\n\t\t// in a coordinate system in which positive-x is to the right when looking up the positive-z axis -- in other words,\n\t\t// in a left-handed coordinate system. By continuing this convention, preexisting cube maps continued to render correctly.\n\n\t\t// three.js uses a right-handed coordinate system. So environment maps used in three.js appear to have px and nx swapped\n\t\t// and the flag isRenderTargetTexture controls this conversion. The flip is not required when using WebGLCubeRenderTarget.texture\n\t\t// as a cube texture (this is detected when isRenderTargetTexture is set to true for cube textures).\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t\tthis.texture.generateMipmaps = options.generateMipmaps !== undefined ? options.generateMipmaps : false;\n\t\tthis.texture.minFilter = options.minFilter !== undefined ? options.minFilter : LinearFilter;\n\n\t}\n\n\tfromEquirectangularTexture( renderer, texture ) {\n\n\t\tthis.texture.type = texture.type;\n\t\tthis.texture.colorSpace = texture.colorSpace;\n\n\t\tthis.texture.generateMipmaps = texture.generateMipmaps;\n\t\tthis.texture.minFilter = texture.minFilter;\n\t\tthis.texture.magFilter = texture.magFilter;\n\n\t\tconst shader = {\n\n\t\t\tuniforms: {\n\t\t\t\ttEquirect: { value: null },\n\t\t\t},\n\n\t\t\tvertexShader: /* glsl */`\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 \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t`,\n\n\t\t\tfragmentShader: /* glsl */`\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \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`\n\t\t};\n\n\t\tconst geometry = new BoxGeometry( 5, 5, 5 );\n\n\t\tconst material = new ShaderMaterial( {\n\n\t\t\tname: 'CubemapFromEquirect',\n\n\t\t\tuniforms: cloneUniforms( shader.uniforms ),\n\t\t\tvertexShader: shader.vertexShader,\n\t\t\tfragmentShader: shader.fragmentShader,\n\t\t\tside: BackSide,\n\t\t\tblending: NoBlending\n\n\t\t} );\n\n\t\tmaterial.uniforms.tEquirect.value = texture;\n\n\t\tconst mesh = new Mesh( geometry, material );\n\n\t\tconst currentMinFilter = texture.minFilter;\n\n\t\t// Avoid blurred poles\n\t\tif ( texture.minFilter === LinearMipmapLinearFilter ) texture.minFilter = LinearFilter;\n\n\t\tconst camera = new CubeCamera( 1, 10, this );\n\t\tcamera.update( renderer, mesh );\n\n\t\ttexture.minFilter = currentMinFilter;\n\n\t\tmesh.geometry.dispose();\n\t\tmesh.material.dispose();\n\n\t\treturn this;\n\n\t}\n\n\tclear( renderer, color, depth, stencil ) {\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\trenderer.setRenderTarget( this, i );\n\n\t\t\trenderer.clear( color, depth, stencil );\n\n\t\t}\n\n\t\trenderer.setRenderTarget( currentRenderTarget );\n\n\t}\n\n}\n\nclass FogExp2 {\n\n\tconstructor( color, density = 0.00025 ) {\n\n\t\tthis.isFogExp2 = true;\n\n\t\tthis.name = '';\n\n\t\tthis.color = new Color( color );\n\t\tthis.density = density;\n\n\t}\n\n\tclone() {\n\n\t\treturn new FogExp2( this.color, this.density );\n\n\t}\n\n\ttoJSON( /* meta */ ) {\n\n\t\treturn {\n\t\t\ttype: 'FogExp2',\n\t\t\tname: this.name,\n\t\t\tcolor: this.color.getHex(),\n\t\t\tdensity: this.density\n\t\t};\n\n\t}\n\n}\n\nclass Fog {\n\n\tconstructor( color, near = 1, far = 1000 ) {\n\n\t\tthis.isFog = true;\n\n\t\tthis.name = '';\n\n\t\tthis.color = new Color( color );\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\n\t}\n\n\tclone() {\n\n\t\treturn new Fog( this.color, this.near, this.far );\n\n\t}\n\n\ttoJSON( /* meta */ ) {\n\n\t\treturn {\n\t\t\ttype: 'Fog',\n\t\t\tname: this.name,\n\t\t\tcolor: this.color.getHex(),\n\t\t\tnear: this.near,\n\t\t\tfar: this.far\n\t\t};\n\n\t}\n\n}\n\nclass Scene extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isScene = true;\n\n\t\tthis.type = 'Scene';\n\n\t\tthis.background = null;\n\t\tthis.environment = null;\n\t\tthis.fog = null;\n\n\t\tthis.backgroundBlurriness = 0;\n\t\tthis.backgroundIntensity = 1;\n\t\tthis.backgroundRotation = new Euler();\n\n\t\tthis.environmentIntensity = 1;\n\t\tthis.environmentRotation = new Euler();\n\n\t\tthis.overrideMaterial = null;\n\n\t\tif ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {\n\n\t\t\t__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'observe', { detail: this } ) );\n\n\t\t}\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tif ( source.background !== null ) this.background = source.background.clone();\n\t\tif ( source.environment !== null ) this.environment = source.environment.clone();\n\t\tif ( source.fog !== null ) this.fog = source.fog.clone();\n\n\t\tthis.backgroundBlurriness = source.backgroundBlurriness;\n\t\tthis.backgroundIntensity = source.backgroundIntensity;\n\t\tthis.backgroundRotation.copy( source.backgroundRotation );\n\n\t\tthis.environmentIntensity = source.environmentIntensity;\n\t\tthis.environmentRotation.copy( source.environmentRotation );\n\n\t\tif ( source.overrideMaterial !== null ) this.overrideMaterial = source.overrideMaterial.clone();\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tif ( this.fog !== null ) data.object.fog = this.fog.toJSON();\n\n\t\tif ( this.backgroundBlurriness > 0 ) data.object.backgroundBlurriness = this.backgroundBlurriness;\n\t\tif ( this.backgroundIntensity !== 1 ) data.object.backgroundIntensity = this.backgroundIntensity;\n\t\tdata.object.backgroundRotation = this.backgroundRotation.toArray();\n\n\t\tif ( this.environmentIntensity !== 1 ) data.object.environmentIntensity = this.environmentIntensity;\n\t\tdata.object.environmentRotation = this.environmentRotation.toArray();\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass InterleavedBuffer {\n\n\tconstructor( array, stride ) {\n\n\t\tthis.isInterleavedBuffer = true;\n\n\t\tthis.array = array;\n\t\tthis.stride = stride;\n\t\tthis.count = array !== undefined ? array.length / stride : 0;\n\n\t\tthis.usage = StaticDrawUsage;\n\t\tthis.updateRanges = [];\n\n\t\tthis.version = 0;\n\n\t\tthis.uuid = generateUUID();\n\n\t}\n\n\tonUploadCallback() {}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\taddUpdateRange( start, count ) {\n\n\t\tthis.updateRanges.push( { start, count } );\n\n\t}\n\n\tclearUpdateRanges() {\n\n\t\tthis.updateRanges.length = 0;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.array = new source.array.constructor( source.array );\n\t\tthis.count = source.count;\n\t\tthis.stride = source.stride;\n\t\tthis.usage = source.usage;\n\n\t\treturn this;\n\n\t}\n\n\tcopyAt( index1, attribute, index2 ) {\n\n\t\tindex1 *= this.stride;\n\t\tindex2 *= attribute.stride;\n\n\t\tfor ( let i = 0, l = this.stride; i < l; i ++ ) {\n\n\t\t\tthis.array[ index1 + i ] = attribute.array[ index2 + i ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tset( value, offset = 0 ) {\n\n\t\tthis.array.set( value, offset );\n\n\t\treturn this;\n\n\t}\n\n\tclone( data ) {\n\n\t\tif ( data.arrayBuffers === undefined ) {\n\n\t\t\tdata.arrayBuffers = {};\n\n\t\t}\n\n\t\tif ( this.array.buffer._uuid === undefined ) {\n\n\t\t\tthis.array.buffer._uuid = generateUUID();\n\n\t\t}\n\n\t\tif ( data.arrayBuffers[ this.array.buffer._uuid ] === undefined ) {\n\n\t\t\tdata.arrayBuffers[ this.array.buffer._uuid ] = this.array.slice( 0 ).buffer;\n\n\t\t}\n\n\t\tconst array = new this.array.constructor( data.arrayBuffers[ this.array.buffer._uuid ] );\n\n\t\tconst ib = new this.constructor( array, this.stride );\n\t\tib.setUsage( this.usage );\n\n\t\treturn ib;\n\n\t}\n\n\tonUpload( callback ) {\n\n\t\tthis.onUploadCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( data ) {\n\n\t\tif ( data.arrayBuffers === undefined ) {\n\n\t\t\tdata.arrayBuffers = {};\n\n\t\t}\n\n\t\t// generate UUID for array buffer if necessary\n\n\t\tif ( this.array.buffer._uuid === undefined ) {\n\n\t\t\tthis.array.buffer._uuid = generateUUID();\n\n\t\t}\n\n\t\tif ( data.arrayBuffers[ this.array.buffer._uuid ] === undefined ) {\n\n\t\t\tdata.arrayBuffers[ this.array.buffer._uuid ] = Array.from( new Uint32Array( this.array.buffer ) );\n\n\t\t}\n\n\t\t//\n\n\t\treturn {\n\t\t\tuuid: this.uuid,\n\t\t\tbuffer: this.array.buffer._uuid,\n\t\t\ttype: this.array.constructor.name,\n\t\t\tstride: this.stride\n\t\t};\n\n\t}\n\n}\n\nconst _vector$7 = /*@__PURE__*/ new Vector3();\n\nclass InterleavedBufferAttribute {\n\n\tconstructor( interleavedBuffer, itemSize, offset, normalized = false ) {\n\n\t\tthis.isInterleavedBufferAttribute = true;\n\n\t\tthis.name = '';\n\n\t\tthis.data = interleavedBuffer;\n\t\tthis.itemSize = itemSize;\n\t\tthis.offset = offset;\n\n\t\tthis.normalized = normalized;\n\n\t}\n\n\tget count() {\n\n\t\treturn this.data.count;\n\n\t}\n\n\tget array() {\n\n\t\treturn this.data.array;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tthis.data.needsUpdate = value;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tfor ( let i = 0, l = this.data.count; i < l; i ++ ) {\n\n\t\t\t_vector$7.fromBufferAttribute( this, i );\n\n\t\t\t_vector$7.applyMatrix4( m );\n\n\t\t\tthis.setXYZ( i, _vector$7.x, _vector$7.y, _vector$7.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$7.fromBufferAttribute( this, i );\n\n\t\t\t_vector$7.applyNormalMatrix( m );\n\n\t\t\tthis.setXYZ( i, _vector$7.x, _vector$7.y, _vector$7.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$7.fromBufferAttribute( this, i );\n\n\t\t\t_vector$7.transformDirection( m );\n\n\t\t\tthis.setXYZ( i, _vector$7.x, _vector$7.y, _vector$7.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index, component ) {\n\n\t\tlet value = this.array[ index * this.data.stride + this.offset + component ];\n\n\t\tif ( this.normalized ) value = denormalize( value, this.array );\n\n\t\treturn value;\n\n\t}\n\n\tsetComponent( index, component, value ) {\n\n\t\tif ( this.normalized ) value = normalize( value, this.array );\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + component ] = value;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( index, x ) {\n\n\t\tif ( this.normalized ) x = normalize( x, this.array );\n\n\t\tthis.data.array[ index * this.data.stride + this.offset ] = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( index, y ) {\n\n\t\tif ( this.normalized ) y = normalize( y, this.array );\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( index, z ) {\n\n\t\tif ( this.normalized ) z = normalize( z, this.array );\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetW( index, w ) {\n\n\t\tif ( this.normalized ) w = normalize( w, this.array );\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tgetX( index ) {\n\n\t\tlet x = this.data.array[ index * this.data.stride + this.offset ];\n\n\t\tif ( this.normalized ) x = denormalize( x, this.array );\n\n\t\treturn x;\n\n\t}\n\n\tgetY( index ) {\n\n\t\tlet y = this.data.array[ index * this.data.stride + this.offset + 1 ];\n\n\t\tif ( this.normalized ) y = denormalize( y, this.array );\n\n\t\treturn y;\n\n\t}\n\n\tgetZ( index ) {\n\n\t\tlet z = this.data.array[ index * this.data.stride + this.offset + 2 ];\n\n\t\tif ( this.normalized ) z = denormalize( z, this.array );\n\n\t\treturn z;\n\n\t}\n\n\tgetW( index ) {\n\n\t\tlet w = this.data.array[ index * this.data.stride + this.offset + 3 ];\n\n\t\tif ( this.normalized ) w = denormalize( w, this.array );\n\n\t\treturn w;\n\n\t}\n\n\tsetXY( index, x, y ) {\n\n\t\tindex = index * this.data.stride + this.offset;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\n\t\t}\n\n\t\tthis.data.array[ index + 0 ] = x;\n\t\tthis.data.array[ index + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZ( index, x, y, z ) {\n\n\t\tindex = index * this.data.stride + this.offset;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\n\t\t}\n\n\t\tthis.data.array[ index + 0 ] = x;\n\t\tthis.data.array[ index + 1 ] = y;\n\t\tthis.data.array[ index + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZW( index, x, y, z, w ) {\n\n\t\tindex = index * this.data.stride + this.offset;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\t\t\tw = normalize( w, this.array );\n\n\t\t}\n\n\t\tthis.data.array[ index + 0 ] = x;\n\t\tthis.data.array[ index + 1 ] = y;\n\t\tthis.data.array[ index + 2 ] = z;\n\t\tthis.data.array[ index + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tclone( data ) {\n\n\t\tif ( data === undefined ) {\n\n\t\t\tconsole.log( 'THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.' );\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0; i < this.count; i ++ ) {\n\n\t\t\t\tconst index = i * this.data.stride + this.offset;\n\n\t\t\t\tfor ( let j = 0; j < this.itemSize; j ++ ) {\n\n\t\t\t\t\tarray.push( this.data.array[ index + j ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn new BufferAttribute( new this.array.constructor( array ), this.itemSize, this.normalized );\n\n\t\t} else {\n\n\t\t\tif ( data.interleavedBuffers === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers = {};\n\n\t\t\t}\n\n\t\t\tif ( data.interleavedBuffers[ this.data.uuid ] === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers[ this.data.uuid ] = this.data.clone( data );\n\n\t\t\t}\n\n\t\t\treturn new InterleavedBufferAttribute( data.interleavedBuffers[ this.data.uuid ], this.itemSize, this.offset, this.normalized );\n\n\t\t}\n\n\t}\n\n\ttoJSON( data ) {\n\n\t\tif ( data === undefined ) {\n\n\t\t\tconsole.log( 'THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.' );\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0; i < this.count; i ++ ) {\n\n\t\t\t\tconst index = i * this.data.stride + this.offset;\n\n\t\t\t\tfor ( let j = 0; j < this.itemSize; j ++ ) {\n\n\t\t\t\t\tarray.push( this.data.array[ index + j ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// de-interleave data and save it as an ordinary buffer attribute for now\n\n\t\t\treturn {\n\t\t\t\titemSize: this.itemSize,\n\t\t\t\ttype: this.array.constructor.name,\n\t\t\t\tarray: array,\n\t\t\t\tnormalized: this.normalized\n\t\t\t};\n\n\t\t} else {\n\n\t\t\t// save as true interleaved attribute\n\n\t\t\tif ( data.interleavedBuffers === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers = {};\n\n\t\t\t}\n\n\t\t\tif ( data.interleavedBuffers[ this.data.uuid ] === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers[ this.data.uuid ] = this.data.toJSON( data );\n\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tisInterleavedBufferAttribute: true,\n\t\t\t\titemSize: this.itemSize,\n\t\t\t\tdata: this.data.uuid,\n\t\t\t\toffset: this.offset,\n\t\t\t\tnormalized: this.normalized\n\t\t\t};\n\n\t\t}\n\n\t}\n\n}\n\nclass SpriteMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isSpriteMaterial = true;\n\n\t\tthis.type = 'SpriteMaterial';\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.rotation = 0;\n\n\t\tthis.sizeAttenuation = true;\n\n\t\tthis.transparent = true;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.rotation = source.rotation;\n\n\t\tthis.sizeAttenuation = source.sizeAttenuation;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nlet _geometry;\n\nconst _intersectPoint = /*@__PURE__*/ new Vector3();\nconst _worldScale = /*@__PURE__*/ new Vector3();\nconst _mvPosition = /*@__PURE__*/ new Vector3();\n\nconst _alignedPosition = /*@__PURE__*/ new Vector2();\nconst _rotatedPosition = /*@__PURE__*/ new Vector2();\nconst _viewWorldMatrix = /*@__PURE__*/ new Matrix4();\n\nconst _vA = /*@__PURE__*/ new Vector3();\nconst _vB = /*@__PURE__*/ new Vector3();\nconst _vC = /*@__PURE__*/ new Vector3();\n\nconst _uvA = /*@__PURE__*/ new Vector2();\nconst _uvB = /*@__PURE__*/ new Vector2();\nconst _uvC = /*@__PURE__*/ new Vector2();\n\nclass Sprite extends Object3D {\n\n\tconstructor( material = new SpriteMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.isSprite = true;\n\n\t\tthis.type = 'Sprite';\n\n\t\tif ( _geometry === undefined ) {\n\n\t\t\t_geometry = new BufferGeometry();\n\n\t\t\tconst float32Array = new Float32Array( [\n\t\t\t\t- 0.5, - 0.5, 0, 0, 0,\n\t\t\t\t0.5, - 0.5, 0, 1, 0,\n\t\t\t\t0.5, 0.5, 0, 1, 1,\n\t\t\t\t- 0.5, 0.5, 0, 0, 1\n\t\t\t] );\n\n\t\t\tconst interleavedBuffer = new InterleavedBuffer( float32Array, 5 );\n\n\t\t\t_geometry.setIndex( [ 0, 1, 2,\t0, 2, 3 ] );\n\t\t\t_geometry.setAttribute( 'position', new InterleavedBufferAttribute( interleavedBuffer, 3, 0, false ) );\n\t\t\t_geometry.setAttribute( 'uv', new InterleavedBufferAttribute( interleavedBuffer, 2, 3, false ) );\n\n\t\t}\n\n\t\tthis.geometry = _geometry;\n\t\tthis.material = material;\n\n\t\tthis.center = new Vector2( 0.5, 0.5 );\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tif ( raycaster.camera === null ) {\n\n\t\t\tconsole.error( 'THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.' );\n\n\t\t}\n\n\t\t_worldScale.setFromMatrixScale( this.matrixWorld );\n\n\t\t_viewWorldMatrix.copy( raycaster.camera.matrixWorld );\n\t\tthis.modelViewMatrix.multiplyMatrices( raycaster.camera.matrixWorldInverse, this.matrixWorld );\n\n\t\t_mvPosition.setFromMatrixPosition( this.modelViewMatrix );\n\n\t\tif ( raycaster.camera.isPerspectiveCamera && this.material.sizeAttenuation === false ) {\n\n\t\t\t_worldScale.multiplyScalar( - _mvPosition.z );\n\n\t\t}\n\n\t\tconst rotation = this.material.rotation;\n\t\tlet sin, cos;\n\n\t\tif ( rotation !== 0 ) {\n\n\t\t\tcos = Math.cos( rotation );\n\t\t\tsin = Math.sin( rotation );\n\n\t\t}\n\n\t\tconst center = this.center;\n\n\t\ttransformVertex( _vA.set( - 0.5, - 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\t\ttransformVertex( _vB.set( 0.5, - 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\t\ttransformVertex( _vC.set( 0.5, 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\n\t\t_uvA.set( 0, 0 );\n\t\t_uvB.set( 1, 0 );\n\t\t_uvC.set( 1, 1 );\n\n\t\t// check first triangle\n\t\tlet intersect = raycaster.ray.intersectTriangle( _vA, _vB, _vC, false, _intersectPoint );\n\n\t\tif ( intersect === null ) {\n\n\t\t\t// check second triangle\n\t\t\ttransformVertex( _vB.set( - 0.5, 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\t\t\t_uvB.set( 0, 1 );\n\n\t\t\tintersect = raycaster.ray.intersectTriangle( _vA, _vC, _vB, false, _intersectPoint );\n\t\t\tif ( intersect === null ) {\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst distance = raycaster.ray.origin.distanceTo( _intersectPoint );\n\n\t\tif ( distance < raycaster.near || distance > raycaster.far ) return;\n\n\t\tintersects.push( {\n\n\t\t\tdistance: distance,\n\t\t\tpoint: _intersectPoint.clone(),\n\t\t\tuv: Triangle.getInterpolation( _intersectPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2() ),\n\t\t\tface: null,\n\t\t\tobject: this\n\n\t\t} );\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tif ( source.center !== undefined ) this.center.copy( source.center );\n\n\t\tthis.material = source.material;\n\n\t\treturn this;\n\n\t}\n\n}\n\nfunction transformVertex( vertexPosition, mvPosition, center, scale, sin, cos ) {\n\n\t// compute position in camera space\n\t_alignedPosition.subVectors( vertexPosition, center ).addScalar( 0.5 ).multiply( scale );\n\n\t// to check if rotation is not zero\n\tif ( sin !== undefined ) {\n\n\t\t_rotatedPosition.x = ( cos * _alignedPosition.x ) - ( sin * _alignedPosition.y );\n\t\t_rotatedPosition.y = ( sin * _alignedPosition.x ) + ( cos * _alignedPosition.y );\n\n\t} else {\n\n\t\t_rotatedPosition.copy( _alignedPosition );\n\n\t}\n\n\n\tvertexPosition.copy( mvPosition );\n\tvertexPosition.x += _rotatedPosition.x;\n\tvertexPosition.y += _rotatedPosition.y;\n\n\t// transform to world space\n\tvertexPosition.applyMatrix4( _viewWorldMatrix );\n\n}\n\nconst _v1$2 = /*@__PURE__*/ new Vector3();\nconst _v2$1 = /*@__PURE__*/ new Vector3();\n\nclass LOD extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis._currentLevel = 0;\n\n\t\tthis.type = 'LOD';\n\n\t\tObject.defineProperties( this, {\n\t\t\tlevels: {\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: []\n\t\t\t},\n\t\t\tisLOD: {\n\t\t\t\tvalue: true,\n\t\t\t}\n\t\t} );\n\n\t\tthis.autoUpdate = true;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source, false );\n\n\t\tconst levels = source.levels;\n\n\t\tfor ( let i = 0, l = levels.length; i < l; i ++ ) {\n\n\t\t\tconst level = levels[ i ];\n\n\t\t\tthis.addLevel( level.object.clone(), level.distance, level.hysteresis );\n\n\t\t}\n\n\t\tthis.autoUpdate = source.autoUpdate;\n\n\t\treturn this;\n\n\t}\n\n\taddLevel( object, distance = 0, hysteresis = 0 ) {\n\n\t\tdistance = Math.abs( distance );\n\n\t\tconst levels = this.levels;\n\n\t\tlet l;\n\n\t\tfor ( l = 0; l < levels.length; l ++ ) {\n\n\t\t\tif ( distance < levels[ l ].distance ) {\n\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tlevels.splice( l, 0, { distance: distance, hysteresis: hysteresis, object: object } );\n\n\t\tthis.add( object );\n\n\t\treturn this;\n\n\t}\n\n\tremoveLevel( distance ) {\n\n\t\tconst levels = this.levels;\n\n\t\tfor ( let i = 0; i < levels.length; i ++ ) {\n\n\t\t\tif ( levels[ i ].distance === distance ) {\n\n\t\t\t\tconst removedElements = levels.splice( i, 1 );\n\t\t\t\tthis.remove( removedElements[ 0 ].object );\n\n\t\t\t\treturn true;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\tgetCurrentLevel() {\n\n\t\treturn this._currentLevel;\n\n\t}\n\n\n\n\tgetObjectForDistance( distance ) {\n\n\t\tconst levels = this.levels;\n\n\t\tif ( levels.length > 0 ) {\n\n\t\t\tlet i, l;\n\n\t\t\tfor ( i = 1, l = levels.length; i < l; i ++ ) {\n\n\t\t\t\tlet levelDistance = levels[ i ].distance;\n\n\t\t\t\tif ( levels[ i ].object.visible ) {\n\n\t\t\t\t\tlevelDistance -= levelDistance * levels[ i ].hysteresis;\n\n\t\t\t\t}\n\n\t\t\t\tif ( distance < levelDistance ) {\n\n\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn levels[ i - 1 ].object;\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst levels = this.levels;\n\n\t\tif ( levels.length > 0 ) {\n\n\t\t\t_v1$2.setFromMatrixPosition( this.matrixWorld );\n\n\t\t\tconst distance = raycaster.ray.origin.distanceTo( _v1$2 );\n\n\t\t\tthis.getObjectForDistance( distance ).raycast( raycaster, intersects );\n\n\t\t}\n\n\t}\n\n\tupdate( camera ) {\n\n\t\tconst levels = this.levels;\n\n\t\tif ( levels.length > 1 ) {\n\n\t\t\t_v1$2.setFromMatrixPosition( camera.matrixWorld );\n\t\t\t_v2$1.setFromMatrixPosition( this.matrixWorld );\n\n\t\t\tconst distance = _v1$2.distanceTo( _v2$1 ) / camera.zoom;\n\n\t\t\tlevels[ 0 ].object.visible = true;\n\n\t\t\tlet i, l;\n\n\t\t\tfor ( i = 1, l = levels.length; i < l; i ++ ) {\n\n\t\t\t\tlet levelDistance = levels[ i ].distance;\n\n\t\t\t\tif ( levels[ i ].object.visible ) {\n\n\t\t\t\t\tlevelDistance -= levelDistance * levels[ i ].hysteresis;\n\n\t\t\t\t}\n\n\t\t\t\tif ( distance >= levelDistance ) {\n\n\t\t\t\t\tlevels[ i - 1 ].object.visible = false;\n\t\t\t\t\tlevels[ i ].object.visible = true;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis._currentLevel = i - 1;\n\n\t\t\tfor ( ; i < l; i ++ ) {\n\n\t\t\t\tlevels[ i ].object.visible = false;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tif ( this.autoUpdate === false ) data.object.autoUpdate = false;\n\n\t\tdata.object.levels = [];\n\n\t\tconst levels = this.levels;\n\n\t\tfor ( let i = 0, l = levels.length; i < l; i ++ ) {\n\n\t\t\tconst level = levels[ i ];\n\n\t\t\tdata.object.levels.push( {\n\t\t\t\tobject: level.object.uuid,\n\t\t\t\tdistance: level.distance,\n\t\t\t\thysteresis: level.hysteresis\n\t\t\t} );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n}\n\nconst _basePosition = /*@__PURE__*/ new Vector3();\n\nconst _skinIndex = /*@__PURE__*/ new Vector4();\nconst _skinWeight = /*@__PURE__*/ new Vector4();\n\nconst _vector3 = /*@__PURE__*/ new Vector3();\nconst _matrix4 = /*@__PURE__*/ new Matrix4();\nconst _vertex = /*@__PURE__*/ new Vector3();\n\nconst _sphere$5 = /*@__PURE__*/ new Sphere();\nconst _inverseMatrix$2 = /*@__PURE__*/ new Matrix4();\nconst _ray$2 = /*@__PURE__*/ new Ray();\n\nclass SkinnedMesh extends Mesh {\n\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.isSkinnedMesh = true;\n\n\t\tthis.type = 'SkinnedMesh';\n\n\t\tthis.bindMode = AttachedBindMode;\n\t\tthis.bindMatrix = new Matrix4();\n\t\tthis.bindMatrixInverse = new Matrix4();\n\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tthis.boundingBox.makeEmpty();\n\n\t\tconst positionAttribute = geometry.getAttribute( 'position' );\n\n\t\tfor ( let i = 0; i < positionAttribute.count; i ++ ) {\n\n\t\t\tthis.getVertexPosition( i, _vertex );\n\t\t\tthis.boundingBox.expandByPoint( _vertex );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tthis.boundingSphere.makeEmpty();\n\n\t\tconst positionAttribute = geometry.getAttribute( 'position' );\n\n\t\tfor ( let i = 0; i < positionAttribute.count; i ++ ) {\n\n\t\t\tthis.getVertexPosition( i, _vertex );\n\t\t\tthis.boundingSphere.expandByPoint( _vertex );\n\n\t\t}\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.bindMode = source.bindMode;\n\t\tthis.bindMatrix.copy( source.bindMatrix );\n\t\tthis.bindMatrixInverse.copy( source.bindMatrixInverse );\n\n\t\tthis.skeleton = source.skeleton;\n\n\t\tif ( source.boundingBox !== null ) this.boundingBox = source.boundingBox.clone();\n\t\tif ( source.boundingSphere !== null ) this.boundingSphere = source.boundingSphere.clone();\n\n\t\treturn this;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst material = this.material;\n\t\tconst matrixWorld = this.matrixWorld;\n\n\t\tif ( material === undefined ) return;\n\n\t\t// test with bounding sphere in world space\n\n\t\tif ( this.boundingSphere === null ) this.computeBoundingSphere();\n\n\t\t_sphere$5.copy( this.boundingSphere );\n\t\t_sphere$5.applyMatrix4( matrixWorld );\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere$5 ) === false ) return;\n\n\t\t// convert ray to local space of skinned mesh\n\n\t\t_inverseMatrix$2.copy( matrixWorld ).invert();\n\t\t_ray$2.copy( raycaster.ray ).applyMatrix4( _inverseMatrix$2 );\n\n\t\t// test with bounding box in local space\n\n\t\tif ( this.boundingBox !== null ) {\n\n\t\t\tif ( _ray$2.intersectsBox( this.boundingBox ) === false ) return;\n\n\t\t}\n\n\t\t// test for intersections with geometry\n\n\t\tthis._computeIntersections( raycaster, intersects, _ray$2 );\n\n\t}\n\n\tgetVertexPosition( index, target ) {\n\n\t\tsuper.getVertexPosition( index, target );\n\n\t\tthis.applyBoneTransform( index, target );\n\n\t\treturn target;\n\n\t}\n\n\tbind( skeleton, bindMatrix ) {\n\n\t\tthis.skeleton = skeleton;\n\n\t\tif ( bindMatrix === undefined ) {\n\n\t\t\tthis.updateMatrixWorld( true );\n\n\t\t\tthis.skeleton.calculateInverses();\n\n\t\t\tbindMatrix = this.matrixWorld;\n\n\t\t}\n\n\t\tthis.bindMatrix.copy( bindMatrix );\n\t\tthis.bindMatrixInverse.copy( bindMatrix ).invert();\n\n\t}\n\n\tpose() {\n\n\t\tthis.skeleton.pose();\n\n\t}\n\n\tnormalizeSkinWeights() {\n\n\t\tconst vector = new Vector4();\n\n\t\tconst skinWeight = this.geometry.attributes.skinWeight;\n\n\t\tfor ( let i = 0, l = skinWeight.count; i < l; i ++ ) {\n\n\t\t\tvector.fromBufferAttribute( skinWeight, i );\n\n\t\t\tconst scale = 1.0 / vector.manhattanLength();\n\n\t\t\tif ( scale !== Infinity ) {\n\n\t\t\t\tvector.multiplyScalar( scale );\n\n\t\t\t} else {\n\n\t\t\t\tvector.set( 1, 0, 0, 0 ); // do something reasonable\n\n\t\t\t}\n\n\t\t\tskinWeight.setXYZW( i, vector.x, vector.y, vector.z, vector.w );\n\n\t\t}\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tif ( this.bindMode === AttachedBindMode ) {\n\n\t\t\tthis.bindMatrixInverse.copy( this.matrixWorld ).invert();\n\n\t\t} else if ( this.bindMode === DetachedBindMode ) {\n\n\t\t\tthis.bindMatrixInverse.copy( this.bindMatrix ).invert();\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.SkinnedMesh: Unrecognized bindMode: ' + this.bindMode );\n\n\t\t}\n\n\t}\n\n\tapplyBoneTransform( index, vector ) {\n\n\t\tconst skeleton = this.skeleton;\n\t\tconst geometry = this.geometry;\n\n\t\t_skinIndex.fromBufferAttribute( geometry.attributes.skinIndex, index );\n\t\t_skinWeight.fromBufferAttribute( geometry.attributes.skinWeight, index );\n\n\t\t_basePosition.copy( vector ).applyMatrix4( this.bindMatrix );\n\n\t\tvector.set( 0, 0, 0 );\n\n\t\tfor ( let i = 0; i < 4; i ++ ) {\n\n\t\t\tconst weight = _skinWeight.getComponent( i );\n\n\t\t\tif ( weight !== 0 ) {\n\n\t\t\t\tconst boneIndex = _skinIndex.getComponent( i );\n\n\t\t\t\t_matrix4.multiplyMatrices( skeleton.bones[ boneIndex ].matrixWorld, skeleton.boneInverses[ boneIndex ] );\n\n\t\t\t\tvector.addScaledVector( _vector3.copy( _basePosition ).applyMatrix4( _matrix4 ), weight );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn vector.applyMatrix4( this.bindMatrixInverse );\n\n\t}\n\n}\n\nclass Bone extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isBone = true;\n\n\t\tthis.type = 'Bone';\n\n\t}\n\n}\n\nclass DataTexture extends Texture {\n\n\tconstructor( data = null, width = 1, height = 1, format, type, mapping, wrapS, wrapT, magFilter = NearestFilter, minFilter = NearestFilter, anisotropy, colorSpace ) {\n\n\t\tsuper( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace );\n\n\t\tthis.isDataTexture = true;\n\n\t\tthis.image = { data: data, width: width, height: height };\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\nconst _offsetMatrix = /*@__PURE__*/ new Matrix4();\nconst _identityMatrix = /*@__PURE__*/ new Matrix4();\n\nclass Skeleton {\n\n\tconstructor( bones = [], boneInverses = [] ) {\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.bones = bones.slice( 0 );\n\t\tthis.boneInverses = boneInverses;\n\t\tthis.boneMatrices = null;\n\n\t\tthis.boneTexture = null;\n\n\t\tthis.init();\n\n\t}\n\n\tinit() {\n\n\t\tconst bones = this.bones;\n\t\tconst boneInverses = this.boneInverses;\n\n\t\tthis.boneMatrices = new Float32Array( bones.length * 16 );\n\n\t\t// calculate inverse bone matrices if necessary\n\n\t\tif ( boneInverses.length === 0 ) {\n\n\t\t\tthis.calculateInverses();\n\n\t\t} else {\n\n\t\t\t// handle special case\n\n\t\t\tif ( bones.length !== boneInverses.length ) {\n\n\t\t\t\tconsole.warn( 'THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.' );\n\n\t\t\t\tthis.boneInverses = [];\n\n\t\t\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\t\t\tthis.boneInverses.push( new Matrix4() );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcalculateInverses() {\n\n\t\tthis.boneInverses.length = 0;\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst inverse = new Matrix4();\n\n\t\t\tif ( this.bones[ i ] ) {\n\n\t\t\t\tinverse.copy( this.bones[ i ].matrixWorld ).invert();\n\n\t\t\t}\n\n\t\t\tthis.boneInverses.push( inverse );\n\n\t\t}\n\n\t}\n\n\tpose() {\n\n\t\t// recover the bind-time world matrices\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst bone = this.bones[ i ];\n\n\t\t\tif ( bone ) {\n\n\t\t\t\tbone.matrixWorld.copy( this.boneInverses[ i ] ).invert();\n\n\t\t\t}\n\n\t\t}\n\n\t\t// compute the local matrices, positions, rotations and scales\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst bone = this.bones[ i ];\n\n\t\t\tif ( bone ) {\n\n\t\t\t\tif ( bone.parent && bone.parent.isBone ) {\n\n\t\t\t\t\tbone.matrix.copy( bone.parent.matrixWorld ).invert();\n\t\t\t\t\tbone.matrix.multiply( bone.matrixWorld );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tbone.matrix.copy( bone.matrixWorld );\n\n\t\t\t\t}\n\n\t\t\t\tbone.matrix.decompose( bone.position, bone.quaternion, bone.scale );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tupdate() {\n\n\t\tconst bones = this.bones;\n\t\tconst boneInverses = this.boneInverses;\n\t\tconst boneMatrices = this.boneMatrices;\n\t\tconst boneTexture = this.boneTexture;\n\n\t\t// flatten bone matrices to array\n\n\t\tfor ( let i = 0, il = bones.length; i < il; i ++ ) {\n\n\t\t\t// compute the offset between the current and the original transform\n\n\t\t\tconst matrix = bones[ i ] ? bones[ i ].matrixWorld : _identityMatrix;\n\n\t\t\t_offsetMatrix.multiplyMatrices( matrix, boneInverses[ i ] );\n\t\t\t_offsetMatrix.toArray( boneMatrices, i * 16 );\n\n\t\t}\n\n\t\tif ( boneTexture !== null ) {\n\n\t\t\tboneTexture.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new Skeleton( this.bones, this.boneInverses );\n\n\t}\n\n\tcomputeBoneTexture() {\n\n\t\t// layout (1 matrix = 4 pixels)\n\t\t// RGBA RGBA RGBA RGBA (=> column1, column2, column3, column4)\n\t\t// with 8x8 pixel texture max 16 bones * 4 pixels = (8 * 8)\n\t\t// 16x16 pixel texture max 64 bones * 4 pixels = (16 * 16)\n\t\t// 32x32 pixel texture max 256 bones * 4 pixels = (32 * 32)\n\t\t// 64x64 pixel texture max 1024 bones * 4 pixels = (64 * 64)\n\n\t\tlet size = Math.sqrt( this.bones.length * 4 ); // 4 pixels needed for 1 matrix\n\t\tsize = Math.ceil( size / 4 ) * 4;\n\t\tsize = Math.max( size, 4 );\n\n\t\tconst boneMatrices = new Float32Array( size * size * 4 ); // 4 floats per RGBA pixel\n\t\tboneMatrices.set( this.boneMatrices ); // copy current values\n\n\t\tconst boneTexture = new DataTexture( boneMatrices, size, size, RGBAFormat, FloatType );\n\t\tboneTexture.needsUpdate = true;\n\n\t\tthis.boneMatrices = boneMatrices;\n\t\tthis.boneTexture = boneTexture;\n\n\t\treturn this;\n\n\t}\n\n\tgetBoneByName( name ) {\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst bone = this.bones[ i ];\n\n\t\t\tif ( bone.name === name ) {\n\n\t\t\t\treturn bone;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn undefined;\n\n\t}\n\n\tdispose( ) {\n\n\t\tif ( this.boneTexture !== null ) {\n\n\t\t\tthis.boneTexture.dispose();\n\n\t\t\tthis.boneTexture = null;\n\n\t\t}\n\n\t}\n\n\tfromJSON( json, bones ) {\n\n\t\tthis.uuid = json.uuid;\n\n\t\tfor ( let i = 0, l = json.bones.length; i < l; i ++ ) {\n\n\t\t\tconst uuid = json.bones[ i ];\n\t\t\tlet bone = bones[ uuid ];\n\n\t\t\tif ( bone === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.Skeleton: No bone found with UUID:', uuid );\n\t\t\t\tbone = new Bone();\n\n\t\t\t}\n\n\t\t\tthis.bones.push( bone );\n\t\t\tthis.boneInverses.push( new Matrix4().fromArray( json.boneInverses[ i ] ) );\n\n\t\t}\n\n\t\tthis.init();\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Skeleton',\n\t\t\t\tgenerator: 'Skeleton.toJSON'\n\t\t\t},\n\t\t\tbones: [],\n\t\t\tboneInverses: []\n\t\t};\n\n\t\tdata.uuid = this.uuid;\n\n\t\tconst bones = this.bones;\n\t\tconst boneInverses = this.boneInverses;\n\n\t\tfor ( let i = 0, l = bones.length; i < l; i ++ ) {\n\n\t\t\tconst bone = bones[ i ];\n\t\t\tdata.bones.push( bone.uuid );\n\n\t\t\tconst boneInverse = boneInverses[ i ];\n\t\t\tdata.boneInverses.push( boneInverse.toArray() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass InstancedBufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized, meshPerAttribute = 1 ) {\n\n\t\tsuper( array, itemSize, normalized );\n\n\t\tthis.isInstancedBufferAttribute = true;\n\n\t\tthis.meshPerAttribute = meshPerAttribute;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.meshPerAttribute = source.meshPerAttribute;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.meshPerAttribute = this.meshPerAttribute;\n\n\t\tdata.isInstancedBufferAttribute = true;\n\n\t\treturn data;\n\n\t}\n\n}\n\nconst _instanceLocalMatrix = /*@__PURE__*/ new Matrix4();\nconst _instanceWorldMatrix = /*@__PURE__*/ new Matrix4();\n\nconst _instanceIntersects = [];\n\nconst _box3 = /*@__PURE__*/ new Box3();\nconst _identity = /*@__PURE__*/ new Matrix4();\nconst _mesh$1 = /*@__PURE__*/ new Mesh();\nconst _sphere$4 = /*@__PURE__*/ new Sphere();\n\nclass InstancedMesh extends Mesh {\n\n\tconstructor( geometry, material, count ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.isInstancedMesh = true;\n\n\t\tthis.instanceMatrix = new InstancedBufferAttribute( new Float32Array( count * 16 ), 16 );\n\t\tthis.instanceColor = null;\n\t\tthis.morphTexture = null;\n\n\t\tthis.count = count;\n\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tthis.setMatrixAt( i, _identity );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tconst geometry = this.geometry;\n\t\tconst count = this.count;\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tif ( geometry.boundingBox === null ) {\n\n\t\t\tgeometry.computeBoundingBox();\n\n\t\t}\n\n\t\tthis.boundingBox.makeEmpty();\n\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tthis.getMatrixAt( i, _instanceLocalMatrix );\n\n\t\t\t_box3.copy( geometry.boundingBox ).applyMatrix4( _instanceLocalMatrix );\n\n\t\t\tthis.boundingBox.union( _box3 );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tconst geometry = this.geometry;\n\t\tconst count = this.count;\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tif ( geometry.boundingSphere === null ) {\n\n\t\t\tgeometry.computeBoundingSphere();\n\n\t\t}\n\n\t\tthis.boundingSphere.makeEmpty();\n\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tthis.getMatrixAt( i, _instanceLocalMatrix );\n\n\t\t\t_sphere$4.copy( geometry.boundingSphere ).applyMatrix4( _instanceLocalMatrix );\n\n\t\t\tthis.boundingSphere.union( _sphere$4 );\n\n\t\t}\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.instanceMatrix.copy( source.instanceMatrix );\n\n\t\tif ( source.morphTexture !== null ) this.morphTexture = source.morphTexture.clone();\n\t\tif ( source.instanceColor !== null ) this.instanceColor = source.instanceColor.clone();\n\n\t\tthis.count = source.count;\n\n\t\tif ( source.boundingBox !== null ) this.boundingBox = source.boundingBox.clone();\n\t\tif ( source.boundingSphere !== null ) this.boundingSphere = source.boundingSphere.clone();\n\n\t\treturn this;\n\n\t}\n\n\tgetColorAt( index, color ) {\n\n\t\tcolor.fromArray( this.instanceColor.array, index * 3 );\n\n\t}\n\n\tgetMatrixAt( index, matrix ) {\n\n\t\tmatrix.fromArray( this.instanceMatrix.array, index * 16 );\n\n\t}\n\n\tgetMorphAt( index, object ) {\n\n\t\tconst objectInfluences = object.morphTargetInfluences;\n\n\t\tconst array = this.morphTexture.source.data.data;\n\n\t\tconst len = objectInfluences.length + 1; // All influences + the baseInfluenceSum\n\n\t\tconst dataIndex = index * len + 1; // Skip the baseInfluenceSum at the beginning\n\n\t\tfor ( let i = 0; i < objectInfluences.length; i ++ ) {\n\n\t\t\tobjectInfluences[ i ] = array[ dataIndex + i ];\n\n\t\t}\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst raycastTimes = this.count;\n\n\t\t_mesh$1.geometry = this.geometry;\n\t\t_mesh$1.material = this.material;\n\n\t\tif ( _mesh$1.material === undefined ) return;\n\n\t\t// test with bounding sphere first\n\n\t\tif ( this.boundingSphere === null ) this.computeBoundingSphere();\n\n\t\t_sphere$4.copy( this.boundingSphere );\n\t\t_sphere$4.applyMatrix4( matrixWorld );\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere$4 ) === false ) return;\n\n\t\t// now test each instance\n\n\t\tfor ( let instanceId = 0; instanceId < raycastTimes; instanceId ++ ) {\n\n\t\t\t// calculate the world matrix for each instance\n\n\t\t\tthis.getMatrixAt( instanceId, _instanceLocalMatrix );\n\n\t\t\t_instanceWorldMatrix.multiplyMatrices( matrixWorld, _instanceLocalMatrix );\n\n\t\t\t// the mesh represents this single instance\n\n\t\t\t_mesh$1.matrixWorld = _instanceWorldMatrix;\n\n\t\t\t_mesh$1.raycast( raycaster, _instanceIntersects );\n\n\t\t\t// process the result of raycast\n\n\t\t\tfor ( let i = 0, l = _instanceIntersects.length; i < l; i ++ ) {\n\n\t\t\t\tconst intersect = _instanceIntersects[ i ];\n\t\t\t\tintersect.instanceId = instanceId;\n\t\t\t\tintersect.object = this;\n\t\t\t\tintersects.push( intersect );\n\n\t\t\t}\n\n\t\t\t_instanceIntersects.length = 0;\n\n\t\t}\n\n\t}\n\n\tsetColorAt( index, color ) {\n\n\t\tif ( this.instanceColor === null ) {\n\n\t\t\tthis.instanceColor = new InstancedBufferAttribute( new Float32Array( this.instanceMatrix.count * 3 ).fill( 1 ), 3 );\n\n\t\t}\n\n\t\tcolor.toArray( this.instanceColor.array, index * 3 );\n\n\t}\n\n\tsetMatrixAt( index, matrix ) {\n\n\t\tmatrix.toArray( this.instanceMatrix.array, index * 16 );\n\n\t}\n\n\tsetMorphAt( index, object ) {\n\n\t\tconst objectInfluences = object.morphTargetInfluences;\n\n\t\tconst len = objectInfluences.length + 1; // morphBaseInfluence + all influences\n\n\t\tif ( this.morphTexture === null ) {\n\n\t\t\tthis.morphTexture = new DataTexture( new Float32Array( len * this.count ), len, this.count, RedFormat, FloatType );\n\n\t\t}\n\n\t\tconst array = this.morphTexture.source.data.data;\n\n\t\tlet morphInfluencesSum = 0;\n\n\t\tfor ( let i = 0; i < objectInfluences.length; i ++ ) {\n\n\t\t\tmorphInfluencesSum += objectInfluences[ i ];\n\n\t\t}\n\n\t\tconst morphBaseInfluence = this.geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\n\n\t\tconst dataIndex = len * index;\n\n\t\tarray[ dataIndex ] = morphBaseInfluence;\n\n\t\tarray.set( objectInfluences, dataIndex + 1 );\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t\tif ( this.morphTexture !== null ) {\n\n\t\t\tthis.morphTexture.dispose();\n\t\t\tthis.morphTexture = null;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _vector1 = /*@__PURE__*/ new Vector3();\nconst _vector2 = /*@__PURE__*/ new Vector3();\nconst _normalMatrix = /*@__PURE__*/ new Matrix3();\n\nclass Plane {\n\n\tconstructor( normal = new Vector3( 1, 0, 0 ), constant = 0 ) {\n\n\t\tthis.isPlane = true;\n\n\t\t// normal is assumed to be normalized\n\n\t\tthis.normal = normal;\n\t\tthis.constant = constant;\n\n\t}\n\n\tset( normal, constant ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = constant;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponents( x, y, z, w ) {\n\n\t\tthis.normal.set( x, y, z );\n\t\tthis.constant = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromNormalAndCoplanarPoint( normal, point ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = - point.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCoplanarPoints( a, b, c ) {\n\n\t\tconst normal = _vector1.subVectors( c, b ).cross( _vector2.subVectors( a, b ) ).normalize();\n\n\t\t// Q: should an error be thrown if normal is zero (e.g. degenerate plane)?\n\n\t\tthis.setFromNormalAndCoplanarPoint( normal, a );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( plane ) {\n\n\t\tthis.normal.copy( plane.normal );\n\t\tthis.constant = plane.constant;\n\n\t\treturn this;\n\n\t}\n\n\tnormalize() {\n\n\t\t// Note: will lead to a divide by zero if the plane is invalid.\n\n\t\tconst inverseNormalLength = 1.0 / this.normal.length();\n\t\tthis.normal.multiplyScalar( inverseNormalLength );\n\t\tthis.constant *= inverseNormalLength;\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.constant *= - 1;\n\t\tthis.normal.negate();\n\n\t\treturn this;\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.normal.dot( point ) + this.constant;\n\n\t}\n\n\tdistanceToSphere( sphere ) {\n\n\t\treturn this.distanceToPoint( sphere.center ) - sphere.radius;\n\n\t}\n\n\tprojectPoint( point, target ) {\n\n\t\treturn target.copy( point ).addScaledVector( this.normal, - this.distanceToPoint( point ) );\n\n\t}\n\n\tintersectLine( line, target ) {\n\n\t\tconst direction = line.delta( _vector1 );\n\n\t\tconst denominator = this.normal.dot( direction );\n\n\t\tif ( denominator === 0 ) {\n\n\t\t\t// line is coplanar, return origin\n\t\t\tif ( this.distanceToPoint( line.start ) === 0 ) {\n\n\t\t\t\treturn target.copy( line.start );\n\n\t\t\t}\n\n\t\t\t// Unsure if this is the correct method to handle this case.\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst t = - ( line.start.dot( this.normal ) + this.constant ) / denominator;\n\n\t\tif ( t < 0 || t > 1 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn target.copy( line.start ).addScaledVector( direction, t );\n\n\t}\n\n\tintersectsLine( line ) {\n\n\t\t// Note: this tests if a line intersects the plane, not whether it (or its end-points) are coplanar with it.\n\n\t\tconst startSign = this.distanceToPoint( line.start );\n\t\tconst endSign = this.distanceToPoint( line.end );\n\n\t\treturn ( startSign < 0 && endSign > 0 ) || ( endSign < 0 && startSign > 0 );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsPlane( this );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\treturn sphere.intersectsPlane( this );\n\n\t}\n\n\tcoplanarPoint( target ) {\n\n\t\treturn target.copy( this.normal ).multiplyScalar( - this.constant );\n\n\t}\n\n\tapplyMatrix4( matrix, optionalNormalMatrix ) {\n\n\t\tconst normalMatrix = optionalNormalMatrix || _normalMatrix.getNormalMatrix( matrix );\n\n\t\tconst referencePoint = this.coplanarPoint( _vector1 ).applyMatrix4( matrix );\n\n\t\tconst normal = this.normal.applyMatrix3( normalMatrix ).normalize();\n\n\t\tthis.constant = - referencePoint.dot( normal );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.constant -= offset.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tequals( plane ) {\n\n\t\treturn plane.normal.equals( this.normal ) && ( plane.constant === this.constant );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _sphere$3 = /*@__PURE__*/ new Sphere();\nconst _vector$6 = /*@__PURE__*/ new Vector3();\n\nclass Frustum {\n\n\tconstructor( p0 = new Plane(), p1 = new Plane(), p2 = new Plane(), p3 = new Plane(), p4 = new Plane(), p5 = new Plane() ) {\n\n\t\tthis.planes = [ p0, p1, p2, p3, p4, p5 ];\n\n\t}\n\n\tset( p0, p1, p2, p3, p4, p5 ) {\n\n\t\tconst planes = this.planes;\n\n\t\tplanes[ 0 ].copy( p0 );\n\t\tplanes[ 1 ].copy( p1 );\n\t\tplanes[ 2 ].copy( p2 );\n\t\tplanes[ 3 ].copy( p3 );\n\t\tplanes[ 4 ].copy( p4 );\n\t\tplanes[ 5 ].copy( p5 );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( frustum ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tplanes[ i ].copy( frustum.planes[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromProjectionMatrix( m, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst planes = this.planes;\n\t\tconst me = m.elements;\n\t\tconst me0 = me[ 0 ], me1 = me[ 1 ], me2 = me[ 2 ], me3 = me[ 3 ];\n\t\tconst me4 = me[ 4 ], me5 = me[ 5 ], me6 = me[ 6 ], me7 = me[ 7 ];\n\t\tconst me8 = me[ 8 ], me9 = me[ 9 ], me10 = me[ 10 ], me11 = me[ 11 ];\n\t\tconst me12 = me[ 12 ], me13 = me[ 13 ], me14 = me[ 14 ], me15 = me[ 15 ];\n\n\t\tplanes[ 0 ].setComponents( me3 - me0, me7 - me4, me11 - me8, me15 - me12 ).normalize();\n\t\tplanes[ 1 ].setComponents( me3 + me0, me7 + me4, me11 + me8, me15 + me12 ).normalize();\n\t\tplanes[ 2 ].setComponents( me3 + me1, me7 + me5, me11 + me9, me15 + me13 ).normalize();\n\t\tplanes[ 3 ].setComponents( me3 - me1, me7 - me5, me11 - me9, me15 - me13 ).normalize();\n\t\tplanes[ 4 ].setComponents( me3 - me2, me7 - me6, me11 - me10, me15 - me14 ).normalize();\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tplanes[ 5 ].setComponents( me3 + me2, me7 + me6, me11 + me10, me15 + me14 ).normalize();\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tplanes[ 5 ].setComponents( me2, me6, me10, me14 ).normalize();\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tintersectsObject( object ) {\n\n\t\tif ( object.boundingSphere !== undefined ) {\n\n\t\t\tif ( object.boundingSphere === null ) object.computeBoundingSphere();\n\n\t\t\t_sphere$3.copy( object.boundingSphere ).applyMatrix4( object.matrixWorld );\n\n\t\t} else {\n\n\t\t\tconst geometry = object.geometry;\n\n\t\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t\t_sphere$3.copy( geometry.boundingSphere ).applyMatrix4( object.matrixWorld );\n\n\t\t}\n\n\t\treturn this.intersectsSphere( _sphere$3 );\n\n\t}\n\n\tintersectsSprite( sprite ) {\n\n\t\t_sphere$3.center.set( 0, 0, 0 );\n\t\t_sphere$3.radius = 0.7071067811865476;\n\t\t_sphere$3.applyMatrix4( sprite.matrixWorld );\n\n\t\treturn this.intersectsSphere( _sphere$3 );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst planes = this.planes;\n\t\tconst center = sphere.center;\n\t\tconst negRadius = - sphere.radius;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst distance = planes[ i ].distanceToPoint( center );\n\n\t\t\tif ( distance < negRadius ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst plane = planes[ i ];\n\n\t\t\t// corner at max distance\n\n\t\t\t_vector$6.x = plane.normal.x > 0 ? box.max.x : box.min.x;\n\t\t\t_vector$6.y = plane.normal.y > 0 ? box.max.y : box.min.y;\n\t\t\t_vector$6.z = plane.normal.z > 0 ? box.max.z : box.min.z;\n\n\t\t\tif ( plane.distanceToPoint( _vector$6 ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tif ( planes[ i ].distanceToPoint( point ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nfunction ascIdSort( a, b ) {\n\n\treturn a - b;\n\n}\n\nfunction sortOpaque( a, b ) {\n\n\treturn a.z - b.z;\n\n}\n\nfunction sortTransparent( a, b ) {\n\n\treturn b.z - a.z;\n\n}\n\nclass MultiDrawRenderList {\n\n\tconstructor() {\n\n\t\tthis.index = 0;\n\t\tthis.pool = [];\n\t\tthis.list = [];\n\n\t}\n\n\tpush( start, count, z, index ) {\n\n\t\tconst pool = this.pool;\n\t\tconst list = this.list;\n\t\tif ( this.index >= pool.length ) {\n\n\t\t\tpool.push( {\n\n\t\t\t\tstart: - 1,\n\t\t\t\tcount: - 1,\n\t\t\t\tz: - 1,\n\t\t\t\tindex: - 1,\n\n\t\t\t} );\n\n\t\t}\n\n\t\tconst item = pool[ this.index ];\n\t\tlist.push( item );\n\t\tthis.index ++;\n\n\t\titem.start = start;\n\t\titem.count = count;\n\t\titem.z = z;\n\t\titem.index = index;\n\n\t}\n\n\treset() {\n\n\t\tthis.list.length = 0;\n\t\tthis.index = 0;\n\n\t}\n\n}\n\nconst _matrix$1 = /*@__PURE__*/ new Matrix4();\nconst _whiteColor = /*@__PURE__*/ new Color( 1, 1, 1 );\nconst _frustum = /*@__PURE__*/ new Frustum();\nconst _box$1 = /*@__PURE__*/ new Box3();\nconst _sphere$2 = /*@__PURE__*/ new Sphere();\nconst _vector$5 = /*@__PURE__*/ new Vector3();\nconst _forward = /*@__PURE__*/ new Vector3();\nconst _temp = /*@__PURE__*/ new Vector3();\nconst _renderList = /*@__PURE__*/ new MultiDrawRenderList();\nconst _mesh = /*@__PURE__*/ new Mesh();\nconst _batchIntersects = [];\n\n// copies data from attribute \"src\" into \"target\" starting at \"targetOffset\"\nfunction copyAttributeData( src, target, targetOffset = 0 ) {\n\n\tconst itemSize = target.itemSize;\n\tif ( src.isInterleavedBufferAttribute || src.array.constructor !== target.array.constructor ) {\n\n\t\t// use the component getters and setters if the array data cannot\n\t\t// be copied directly\n\t\tconst vertexCount = src.count;\n\t\tfor ( let i = 0; i < vertexCount; i ++ ) {\n\n\t\t\tfor ( let c = 0; c < itemSize; c ++ ) {\n\n\t\t\t\ttarget.setComponent( i + targetOffset, c, src.getComponent( i, c ) );\n\n\t\t\t}\n\n\t\t}\n\n\t} else {\n\n\t\t// faster copy approach using typed array set function\n\t\ttarget.array.set( src.array, targetOffset * itemSize );\n\n\t}\n\n\ttarget.needsUpdate = true;\n\n}\n\n// safely copies array contents to a potentially smaller array\nfunction copyArrayContents( src, target ) {\n\n\tif ( src.constructor !== target.constructor ) {\n\n\t\t// if arrays are of a different type (eg due to index size increasing) then data must be per-element copied\n\t\tconst len = Math.min( src.length, target.length );\n\t\tfor ( let i = 0; i < len; i ++ ) {\n\n\t\t\ttarget[ i ] = src[ i ];\n\n\t\t}\n\n\t} else {\n\n\t\t// if the arrays use the same data layout we can use a fast block copy\n\t\tconst len = Math.min( src.length, target.length );\n\t\ttarget.set( new src.constructor( src.buffer, 0, len ) );\n\n\t}\n\n}\n\nclass BatchedMesh extends Mesh {\n\n\tget maxInstanceCount() {\n\n\t\treturn this._maxInstanceCount;\n\n\t}\n\n\tget instanceCount() {\n\n\t\treturn this._instanceInfo.length - this._availableInstanceIds.length;\n\n\t}\n\n\tget unusedVertexCount() {\n\n\t\treturn this._maxVertexCount - this._nextVertexStart;\n\n\t}\n\n\tget unusedIndexCount() {\n\n\t\treturn this._maxIndexCount - this._nextIndexStart;\n\n\t}\n\n\tconstructor( maxInstanceCount, maxVertexCount, maxIndexCount = maxVertexCount * 2, material ) {\n\n\t\tsuper( new BufferGeometry(), material );\n\n\t\tthis.isBatchedMesh = true;\n\t\tthis.perObjectFrustumCulled = true;\n\t\tthis.sortObjects = true;\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\t\tthis.customSort = null;\n\n\t\t// stores visible, active, and geometry id per instance and reserved buffer ranges for geometries\n\t\tthis._instanceInfo = [];\n\t\tthis._geometryInfo = [];\n\n\t\t// instance, geometry ids that have been set as inactive, and are available to be overwritten\n\t\tthis._availableInstanceIds = [];\n\t\tthis._availableGeometryIds = [];\n\n\t\t// used to track where the next point is that geometry should be inserted\n\t\tthis._nextIndexStart = 0;\n\t\tthis._nextVertexStart = 0;\n\t\tthis._geometryCount = 0;\n\n\t\t// flags\n\t\tthis._visibilityChanged = true;\n\t\tthis._geometryInitialized = false;\n\n\t\t// cached user options\n\t\tthis._maxInstanceCount = maxInstanceCount;\n\t\tthis._maxVertexCount = maxVertexCount;\n\t\tthis._maxIndexCount = maxIndexCount;\n\n\t\t// buffers for multi draw\n\t\tthis._multiDrawCounts = new Int32Array( maxInstanceCount );\n\t\tthis._multiDrawStarts = new Int32Array( maxInstanceCount );\n\t\tthis._multiDrawCount = 0;\n\t\tthis._multiDrawInstances = null;\n\n\t\t// Local matrix per geometry by using data texture\n\t\tthis._matricesTexture = null;\n\t\tthis._indirectTexture = null;\n\t\tthis._colorsTexture = null;\n\n\t\tthis._initMatricesTexture();\n\t\tthis._initIndirectTexture();\n\n\t}\n\n\t_initMatricesTexture() {\n\n\t\t// layout (1 matrix = 4 pixels)\n\t\t// RGBA RGBA RGBA RGBA (=> column1, column2, column3, column4)\n\t\t// with 8x8 pixel texture max 16 matrices * 4 pixels = (8 * 8)\n\t\t// 16x16 pixel texture max 64 matrices * 4 pixels = (16 * 16)\n\t\t// 32x32 pixel texture max 256 matrices * 4 pixels = (32 * 32)\n\t\t// 64x64 pixel texture max 1024 matrices * 4 pixels = (64 * 64)\n\n\t\tlet size = Math.sqrt( this._maxInstanceCount * 4 ); // 4 pixels needed for 1 matrix\n\t\tsize = Math.ceil( size / 4 ) * 4;\n\t\tsize = Math.max( size, 4 );\n\n\t\tconst matricesArray = new Float32Array( size * size * 4 ); // 4 floats per RGBA pixel\n\t\tconst matricesTexture = new DataTexture( matricesArray, size, size, RGBAFormat, FloatType );\n\n\t\tthis._matricesTexture = matricesTexture;\n\n\t}\n\n\t_initIndirectTexture() {\n\n\t\tlet size = Math.sqrt( this._maxInstanceCount );\n\t\tsize = Math.ceil( size );\n\n\t\tconst indirectArray = new Uint32Array( size * size );\n\t\tconst indirectTexture = new DataTexture( indirectArray, size, size, RedIntegerFormat, UnsignedIntType );\n\n\t\tthis._indirectTexture = indirectTexture;\n\n\t}\n\n\t_initColorsTexture() {\n\n\t\tlet size = Math.sqrt( this._maxInstanceCount );\n\t\tsize = Math.ceil( size );\n\n\t\t// 4 floats per RGBA pixel initialized to white\n\t\tconst colorsArray = new Float32Array( size * size * 4 ).fill( 1 );\n\t\tconst colorsTexture = new DataTexture( colorsArray, size, size, RGBAFormat, FloatType );\n\t\tcolorsTexture.colorSpace = ColorManagement.workingColorSpace;\n\n\t\tthis._colorsTexture = colorsTexture;\n\n\t}\n\n\t_initializeGeometry( reference ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst maxVertexCount = this._maxVertexCount;\n\t\tconst maxIndexCount = this._maxIndexCount;\n\t\tif ( this._geometryInitialized === false ) {\n\n\t\t\tfor ( const attributeName in reference.attributes ) {\n\n\t\t\t\tconst srcAttribute = reference.getAttribute( attributeName );\n\t\t\t\tconst { array, itemSize, normalized } = srcAttribute;\n\n\t\t\t\tconst dstArray = new array.constructor( maxVertexCount * itemSize );\n\t\t\t\tconst dstAttribute = new BufferAttribute( dstArray, itemSize, normalized );\n\n\t\t\t\tgeometry.setAttribute( attributeName, dstAttribute );\n\n\t\t\t}\n\n\t\t\tif ( reference.getIndex() !== null ) {\n\n\t\t\t\t// Reserve last u16 index for primitive restart.\n\t\t\t\tconst indexArray = maxVertexCount > 65535\n\t\t\t\t\t? new Uint32Array( maxIndexCount )\n\t\t\t\t\t: new Uint16Array( maxIndexCount );\n\n\t\t\t\tgeometry.setIndex( new BufferAttribute( indexArray, 1 ) );\n\n\t\t\t}\n\n\t\t\tthis._geometryInitialized = true;\n\n\t\t}\n\n\t}\n\n\t// Make sure the geometry is compatible with the existing combined geometry attributes\n\t_validateGeometry( geometry ) {\n\n\t\t// check to ensure the geometries are using consistent attributes and indices\n\t\tconst batchGeometry = this.geometry;\n\t\tif ( Boolean( geometry.getIndex() ) !== Boolean( batchGeometry.getIndex() ) ) {\n\n\t\t\tthrow new Error( 'THREE.BatchedMesh: All geometries must consistently have \"index\".' );\n\n\t\t}\n\n\t\tfor ( const attributeName in batchGeometry.attributes ) {\n\n\t\t\tif ( ! geometry.hasAttribute( attributeName ) ) {\n\n\t\t\t\tthrow new Error( `THREE.BatchedMesh: Added geometry missing \"${ attributeName }\". All geometries must have consistent attributes.` );\n\n\t\t\t}\n\n\t\t\tconst srcAttribute = geometry.getAttribute( attributeName );\n\t\t\tconst dstAttribute = batchGeometry.getAttribute( attributeName );\n\t\t\tif ( srcAttribute.itemSize !== dstAttribute.itemSize || srcAttribute.normalized !== dstAttribute.normalized ) {\n\n\t\t\t\tthrow new Error( 'THREE.BatchedMesh: All attributes must have a consistent itemSize and normalized value.' );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tvalidateInstanceId( instanceId ) {\n\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tif ( instanceId < 0 || instanceId >= instanceInfo.length || instanceInfo[ instanceId ].active === false ) {\n\n\t\t\tthrow new Error( `THREE.BatchedMesh: Invalid instanceId ${instanceId}. Instance is either out of range or has been deleted.` );\n\n\t\t}\n\n\t}\n\n\tvalidateGeometryId( geometryId ) {\n\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tif ( geometryId < 0 || geometryId >= geometryInfoList.length || geometryInfoList[ geometryId ].active === false ) {\n\n\t\t\tthrow new Error( `THREE.BatchedMesh: Invalid geometryId ${geometryId}. Geometry is either out of range or has been deleted.` );\n\n\t\t}\n\n\t}\n\n\n\tsetCustomSort( func ) {\n\n\t\tthis.customSort = func;\n\t\treturn this;\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tconst boundingBox = this.boundingBox;\n\t\tconst instanceInfo = this._instanceInfo;\n\n\t\tboundingBox.makeEmpty();\n\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( instanceInfo[ i ].active === false ) continue;\n\n\t\t\tconst geometryId = instanceInfo[ i ].geometryIndex;\n\t\t\tthis.getMatrixAt( i, _matrix$1 );\n\t\t\tthis.getBoundingBoxAt( geometryId, _box$1 ).applyMatrix4( _matrix$1 );\n\t\t\tboundingBox.union( _box$1 );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tconst boundingSphere = this.boundingSphere;\n\t\tconst instanceInfo = this._instanceInfo;\n\n\t\tboundingSphere.makeEmpty();\n\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( instanceInfo[ i ].active === false ) continue;\n\n\t\t\tconst geometryId = instanceInfo[ i ].geometryIndex;\n\t\t\tthis.getMatrixAt( i, _matrix$1 );\n\t\t\tthis.getBoundingSphereAt( geometryId, _sphere$2 ).applyMatrix4( _matrix$1 );\n\t\t\tboundingSphere.union( _sphere$2 );\n\n\t\t}\n\n\t}\n\n\taddInstance( geometryId ) {\n\n\t\tconst atCapacity = this._instanceInfo.length >= this.maxInstanceCount;\n\n\t\t// ensure we're not over geometry\n\t\tif ( atCapacity && this._availableInstanceIds.length === 0 ) {\n\n\t\t\tthrow new Error( 'THREE.BatchedMesh: Maximum item count reached.' );\n\n\t\t}\n\n\t\tconst instanceInfo = {\n\t\t\tvisible: true,\n\t\t\tactive: true,\n\t\t\tgeometryIndex: geometryId,\n\t\t};\n\n\t\tlet drawId = null;\n\n\t\t// Prioritize using previously freed instance ids\n\t\tif ( this._availableInstanceIds.length > 0 ) {\n\n\t\t\tthis._availableInstanceIds.sort( ascIdSort );\n\n\t\t\tdrawId = this._availableInstanceIds.shift();\n\t\t\tthis._instanceInfo[ drawId ] = instanceInfo;\n\n\t\t} else {\n\n\t\t\tdrawId = this._instanceInfo.length;\n\t\t\tthis._instanceInfo.push( instanceInfo );\n\n\t\t}\n\n\t\tconst matricesTexture = this._matricesTexture;\n\t\t_matrix$1.identity().toArray( matricesTexture.image.data, drawId * 16 );\n\t\tmatricesTexture.needsUpdate = true;\n\n\t\tconst colorsTexture = this._colorsTexture;\n\t\tif ( colorsTexture ) {\n\n\t\t\t_whiteColor.toArray( colorsTexture.image.data, drawId * 4 );\n\t\t\tcolorsTexture.needsUpdate = true;\n\n\t\t}\n\n\t\tthis._visibilityChanged = true;\n\t\treturn drawId;\n\n\t}\n\n\taddGeometry( geometry, reservedVertexCount = - 1, reservedIndexCount = - 1 ) {\n\n\t\tthis._initializeGeometry( geometry );\n\n\t\tthis._validateGeometry( geometry );\n\n\t\tconst geometryInfo = {\n\t\t\t// geometry information\n\t\t\tvertexStart: - 1,\n\t\t\tvertexCount: - 1,\n\t\t\treservedVertexCount: - 1,\n\n\t\t\tindexStart: - 1,\n\t\t\tindexCount: - 1,\n\t\t\treservedIndexCount: - 1,\n\n\t\t\t// draw range information\n\t\t\tstart: - 1,\n\t\t\tcount: - 1,\n\n\t\t\t// state\n\t\t\tboundingBox: null,\n\t\t\tboundingSphere: null,\n\t\t\tactive: true,\n\t\t};\n\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tgeometryInfo.vertexStart = this._nextVertexStart;\n\t\tgeometryInfo.reservedVertexCount = reservedVertexCount === - 1 ? geometry.getAttribute( 'position' ).count : reservedVertexCount;\n\n\t\tconst index = geometry.getIndex();\n\t\tconst hasIndex = index !== null;\n\t\tif ( hasIndex ) {\n\n\t\t\tgeometryInfo.indexStart = this._nextIndexStart;\n\t\t\tgeometryInfo.reservedIndexCount = reservedIndexCount === - 1 ? index.count : reservedIndexCount;\n\n\t\t}\n\n\t\tif (\n\t\t\tgeometryInfo.indexStart !== - 1 &&\n\t\t\tgeometryInfo.indexStart + geometryInfo.reservedIndexCount > this._maxIndexCount ||\n\t\t\tgeometryInfo.vertexStart + geometryInfo.reservedVertexCount > this._maxVertexCount\n\t\t) {\n\n\t\t\tthrow new Error( 'THREE.BatchedMesh: Reserved space request exceeds the maximum buffer size.' );\n\n\t\t}\n\n\t\t// update id\n\t\tlet geometryId;\n\t\tif ( this._availableGeometryIds.length > 0 ) {\n\n\t\t\tthis._availableGeometryIds.sort( ascIdSort );\n\n\t\t\tgeometryId = this._availableGeometryIds.shift();\n\t\t\tgeometryInfoList[ geometryId ] = geometryInfo;\n\n\n\t\t} else {\n\n\t\t\tgeometryId = this._geometryCount;\n\t\t\tthis._geometryCount ++;\n\t\t\tgeometryInfoList.push( geometryInfo );\n\n\t\t}\n\n\t\t// update the geometry\n\t\tthis.setGeometryAt( geometryId, geometry );\n\n\t\t// increment the next geometry position\n\t\tthis._nextIndexStart = geometryInfo.indexStart + geometryInfo.reservedIndexCount;\n\t\tthis._nextVertexStart = geometryInfo.vertexStart + geometryInfo.reservedVertexCount;\n\n\t\treturn geometryId;\n\n\t}\n\n\tsetGeometryAt( geometryId, geometry ) {\n\n\t\tif ( geometryId >= this._geometryCount ) {\n\n\t\t\tthrow new Error( 'THREE.BatchedMesh: Maximum geometry count reached.' );\n\n\t\t}\n\n\t\tthis._validateGeometry( geometry );\n\n\t\tconst batchGeometry = this.geometry;\n\t\tconst hasIndex = batchGeometry.getIndex() !== null;\n\t\tconst dstIndex = batchGeometry.getIndex();\n\t\tconst srcIndex = geometry.getIndex();\n\t\tconst geometryInfo = this._geometryInfo[ geometryId ];\n\t\tif (\n\t\t\thasIndex &&\n\t\t\tsrcIndex.count > geometryInfo.reservedIndexCount ||\n\t\t\tgeometry.attributes.position.count > geometryInfo.reservedVertexCount\n\t\t) {\n\n\t\t\tthrow new Error( 'THREE.BatchedMesh: Reserved space not large enough for provided geometry.' );\n\n\t\t}\n\n\t\t// copy geometry buffer data over\n\t\tconst vertexStart = geometryInfo.vertexStart;\n\t\tconst reservedVertexCount = geometryInfo.reservedVertexCount;\n\t\tgeometryInfo.vertexCount = geometry.getAttribute( 'position' ).count;\n\n\t\tfor ( const attributeName in batchGeometry.attributes ) {\n\n\t\t\t// copy attribute data\n\t\t\tconst srcAttribute = geometry.getAttribute( attributeName );\n\t\t\tconst dstAttribute = batchGeometry.getAttribute( attributeName );\n\t\t\tcopyAttributeData( srcAttribute, dstAttribute, vertexStart );\n\n\t\t\t// fill the rest in with zeroes\n\t\t\tconst itemSize = srcAttribute.itemSize;\n\t\t\tfor ( let i = srcAttribute.count, l = reservedVertexCount; i < l; i ++ ) {\n\n\t\t\t\tconst index = vertexStart + i;\n\t\t\t\tfor ( let c = 0; c < itemSize; c ++ ) {\n\n\t\t\t\t\tdstAttribute.setComponent( index, c, 0 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tdstAttribute.needsUpdate = true;\n\t\t\tdstAttribute.addUpdateRange( vertexStart * itemSize, reservedVertexCount * itemSize );\n\n\t\t}\n\n\t\t// copy index\n\t\tif ( hasIndex ) {\n\n\t\t\tconst indexStart = geometryInfo.indexStart;\n\t\t\tconst reservedIndexCount = geometryInfo.reservedIndexCount;\n\t\t\tgeometryInfo.indexCount = geometry.getIndex().count;\n\n\t\t\t// copy index data over\n\t\t\tfor ( let i = 0; i < srcIndex.count; i ++ ) {\n\n\t\t\t\tdstIndex.setX( indexStart + i, vertexStart + srcIndex.getX( i ) );\n\n\t\t\t}\n\n\t\t\t// fill the rest in with zeroes\n\t\t\tfor ( let i = srcIndex.count, l = reservedIndexCount; i < l; i ++ ) {\n\n\t\t\t\tdstIndex.setX( indexStart + i, vertexStart );\n\n\t\t\t}\n\n\t\t\tdstIndex.needsUpdate = true;\n\t\t\tdstIndex.addUpdateRange( indexStart, geometryInfo.reservedIndexCount );\n\n\t\t}\n\n\t\t// update the draw range\n\t\tgeometryInfo.start = hasIndex ? geometryInfo.indexStart : geometryInfo.vertexStart;\n\t\tgeometryInfo.count = hasIndex ? geometryInfo.indexCount : geometryInfo.vertexCount;\n\n\t\t// store the bounding boxes\n\t\tgeometryInfo.boundingBox = null;\n\t\tif ( geometry.boundingBox !== null ) {\n\n\t\t\tgeometryInfo.boundingBox = geometry.boundingBox.clone();\n\n\t\t}\n\n\t\tgeometryInfo.boundingSphere = null;\n\t\tif ( geometry.boundingSphere !== null ) {\n\n\t\t\tgeometryInfo.boundingSphere = geometry.boundingSphere.clone();\n\n\t\t}\n\n\t\tthis._visibilityChanged = true;\n\t\treturn geometryId;\n\n\t}\n\n\tdeleteGeometry( geometryId ) {\n\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tif ( geometryId >= geometryInfoList.length || geometryInfoList[ geometryId ].active === false ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\t// delete any instances associated with this geometry\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( instanceInfo[ i ].geometryIndex === geometryId ) {\n\n\t\t\t\tthis.deleteInstance( i );\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeometryInfoList[ geometryId ].active = false;\n\t\tthis._availableGeometryIds.push( geometryId );\n\t\tthis._visibilityChanged = true;\n\n\t\treturn this;\n\n\t}\n\n\tdeleteInstance( instanceId ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\n\t\tthis._instanceInfo[ instanceId ].active = false;\n\t\tthis._availableInstanceIds.push( instanceId );\n\t\tthis._visibilityChanged = true;\n\n\t\treturn this;\n\n\t}\n\n\toptimize() {\n\n\t\t// track the next indices to copy data to\n\t\tlet nextVertexStart = 0;\n\t\tlet nextIndexStart = 0;\n\n\t\t// Iterate over all geometry ranges in order sorted from earliest in the geometry buffer to latest\n\t\t// in the geometry buffer. Because draw range objects can be reused there is no guarantee of their order.\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tconst indices = geometryInfoList\n\t\t\t.map( ( e, i ) => i )\n\t\t\t.sort( ( a, b ) => {\n\n\t\t\t\treturn geometryInfoList[ a ].vertexStart - geometryInfoList[ b ].vertexStart;\n\n\t\t\t} );\n\n\t\tconst geometry = this.geometry;\n\t\tfor ( let i = 0, l = geometryInfoList.length; i < l; i ++ ) {\n\n\t\t\t// if a geometry range is inactive then don't copy anything\n\t\t\tconst index = indices[ i ];\n\t\t\tconst geometryInfo = geometryInfoList[ index ];\n\t\t\tif ( geometryInfo.active === false ) {\n\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\t// if a geometry contains an index buffer then shift it, as well\n\t\t\tif ( geometry.index !== null ) {\n\n\t\t\t\tif ( geometryInfo.indexStart !== nextIndexStart ) {\n\n\t\t\t\t\tconst { indexStart, vertexStart, reservedIndexCount } = geometryInfo;\n\t\t\t\t\tconst index = geometry.index;\n\t\t\t\t\tconst array = index.array;\n\n\t\t\t\t\t// shift the index pointers based on how the vertex data will shift\n\t\t\t\t\t// adjusting the index must happen first so the original vertex start value is available\n\t\t\t\t\tconst elementDelta = nextVertexStart - vertexStart;\n\t\t\t\t\tfor ( let j = indexStart; j < indexStart + reservedIndexCount; j ++ ) {\n\n\t\t\t\t\t\tarray[ j ] = array[ j ] + elementDelta;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tindex.array.copyWithin( nextIndexStart, indexStart, indexStart + reservedIndexCount );\n\t\t\t\t\tindex.addUpdateRange( nextIndexStart, reservedIndexCount );\n\n\t\t\t\t\tgeometryInfo.indexStart = nextIndexStart;\n\n\t\t\t\t}\n\n\t\t\t\tnextIndexStart += geometryInfo.reservedIndexCount;\n\n\t\t\t}\n\n\t\t\t// if a geometry needs to be moved then copy attribute data to overwrite unused space\n\t\t\tif ( geometryInfo.vertexStart !== nextVertexStart ) {\n\n\t\t\t\tconst { vertexStart, reservedVertexCount } = geometryInfo;\n\t\t\t\tconst attributes = geometry.attributes;\n\t\t\t\tfor ( const key in attributes ) {\n\n\t\t\t\t\tconst attribute = attributes[ key ];\n\t\t\t\t\tconst { array, itemSize } = attribute;\n\t\t\t\t\tarray.copyWithin( nextVertexStart * itemSize, vertexStart * itemSize, ( vertexStart + reservedVertexCount ) * itemSize );\n\t\t\t\t\tattribute.addUpdateRange( nextVertexStart * itemSize, reservedVertexCount * itemSize );\n\n\t\t\t\t}\n\n\t\t\t\tgeometryInfo.vertexStart = nextVertexStart;\n\n\t\t\t}\n\n\t\t\tnextVertexStart += geometryInfo.reservedVertexCount;\n\t\t\tgeometryInfo.start = geometry.index ? geometryInfo.indexStart : geometryInfo.vertexStart;\n\n\t\t\t// step the next geometry points to the shifted position\n\t\t\tthis._nextIndexStart = geometry.index ? geometryInfo.indexStart + geometryInfo.reservedIndexCount : 0;\n\t\t\tthis._nextVertexStart = geometryInfo.vertexStart + geometryInfo.reservedVertexCount;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// get bounding box and compute it if it doesn't exist\n\tgetBoundingBoxAt( geometryId, target ) {\n\n\t\tif ( geometryId >= this._geometryCount ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// compute bounding box\n\t\tconst geometry = this.geometry;\n\t\tconst geometryInfo = this._geometryInfo[ geometryId ];\n\t\tif ( geometryInfo.boundingBox === null ) {\n\n\t\t\tconst box = new Box3();\n\t\t\tconst index = geometry.index;\n\t\t\tconst position = geometry.attributes.position;\n\t\t\tfor ( let i = geometryInfo.start, l = geometryInfo.start + geometryInfo.count; i < l; i ++ ) {\n\n\t\t\t\tlet iv = i;\n\t\t\t\tif ( index ) {\n\n\t\t\t\t\tiv = index.getX( iv );\n\n\t\t\t\t}\n\n\t\t\t\tbox.expandByPoint( _vector$5.fromBufferAttribute( position, iv ) );\n\n\t\t\t}\n\n\t\t\tgeometryInfo.boundingBox = box;\n\n\t\t}\n\n\t\ttarget.copy( geometryInfo.boundingBox );\n\t\treturn target;\n\n\t}\n\n\t// get bounding sphere and compute it if it doesn't exist\n\tgetBoundingSphereAt( geometryId, target ) {\n\n\t\tif ( geometryId >= this._geometryCount ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// compute bounding sphere\n\t\tconst geometry = this.geometry;\n\t\tconst geometryInfo = this._geometryInfo[ geometryId ];\n\t\tif ( geometryInfo.boundingSphere === null ) {\n\n\t\t\tconst sphere = new Sphere();\n\t\t\tthis.getBoundingBoxAt( geometryId, _box$1 );\n\t\t\t_box$1.getCenter( sphere.center );\n\n\t\t\tconst index = geometry.index;\n\t\t\tconst position = geometry.attributes.position;\n\n\t\t\tlet maxRadiusSq = 0;\n\t\t\tfor ( let i = geometryInfo.start, l = geometryInfo.start + geometryInfo.count; i < l; i ++ ) {\n\n\t\t\t\tlet iv = i;\n\t\t\t\tif ( index ) {\n\n\t\t\t\t\tiv = index.getX( iv );\n\n\t\t\t\t}\n\n\t\t\t\t_vector$5.fromBufferAttribute( position, iv );\n\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, sphere.center.distanceToSquared( _vector$5 ) );\n\n\t\t\t}\n\n\t\t\tsphere.radius = Math.sqrt( maxRadiusSq );\n\t\t\tgeometryInfo.boundingSphere = sphere;\n\n\t\t}\n\n\t\ttarget.copy( geometryInfo.boundingSphere );\n\t\treturn target;\n\n\t}\n\n\tsetMatrixAt( instanceId, matrix ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\n\t\tconst matricesTexture = this._matricesTexture;\n\t\tconst matricesArray = this._matricesTexture.image.data;\n\t\tmatrix.toArray( matricesArray, instanceId * 16 );\n\t\tmatricesTexture.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\tgetMatrixAt( instanceId, matrix ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\t\treturn matrix.fromArray( this._matricesTexture.image.data, instanceId * 16 );\n\n\t}\n\n\tsetColorAt( instanceId, color ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\n\t\tif ( this._colorsTexture === null ) {\n\n\t\t\tthis._initColorsTexture();\n\n\t\t}\n\n\t\tcolor.toArray( this._colorsTexture.image.data, instanceId * 4 );\n\t\tthis._colorsTexture.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\tgetColorAt( instanceId, color ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\t\treturn color.fromArray( this._colorsTexture.image.data, instanceId * 4 );\n\n\t}\n\n\tsetVisibleAt( instanceId, value ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\n\t\tif ( this._instanceInfo[ instanceId ].visible === value ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tthis._instanceInfo[ instanceId ].visible = value;\n\t\tthis._visibilityChanged = true;\n\n\t\treturn this;\n\n\t}\n\n\tgetVisibleAt( instanceId ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\n\t\treturn this._instanceInfo[ instanceId ].visible;\n\n\t}\n\n\tsetGeometryIdAt( instanceId, geometryId ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\t\tthis.validateGeometryId( geometryId );\n\n\t\tthis._instanceInfo[ instanceId ].geometryIndex = geometryId;\n\n\t\treturn this;\n\n\t}\n\n\tgetGeometryIdAt( instanceId ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\n\t\treturn this._instanceInfo[ instanceId ].geometryIndex;\n\n\t}\n\n\tgetGeometryRangeAt( geometryId, target = {} ) {\n\n\t\tthis.validateGeometryId( geometryId );\n\n\t\tconst geometryInfo = this._geometryInfo[ geometryId ];\n\t\ttarget.vertexStart = geometryInfo.vertexStart;\n\t\ttarget.vertexCount = geometryInfo.vertexCount;\n\t\ttarget.reservedVertexCount = geometryInfo.reservedVertexCount;\n\n\t\ttarget.indexStart = geometryInfo.indexStart;\n\t\ttarget.indexCount = geometryInfo.indexCount;\n\t\ttarget.reservedIndexCount = geometryInfo.reservedIndexCount;\n\n\t\ttarget.start = geometryInfo.start;\n\t\ttarget.count = geometryInfo.count;\n\n\t\treturn target;\n\n\t}\n\n\tsetInstanceCount( maxInstanceCount ) {\n\n\t\t// shrink the available instances as much as possible\n\t\tconst availableInstanceIds = this._availableInstanceIds;\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tavailableInstanceIds.sort( ascIdSort );\n\t\twhile ( availableInstanceIds[ availableInstanceIds.length - 1 ] === instanceInfo.length ) {\n\n\t\t\tinstanceInfo.pop();\n\t\t\tavailableInstanceIds.pop();\n\n\t\t}\n\n\t\t// throw an error if it can't be shrunk to the desired size\n\t\tif ( maxInstanceCount < instanceInfo.length ) {\n\n\t\t\tthrow new Error( `BatchedMesh: Instance ids outside the range ${ maxInstanceCount } are being used. Cannot shrink instance count.` );\n\n\t\t}\n\n\t\t// copy the multi draw counts\n\t\tconst multiDrawCounts = new Int32Array( maxInstanceCount );\n\t\tconst multiDrawStarts = new Int32Array( maxInstanceCount );\n\t\tcopyArrayContents( this._multiDrawCounts, multiDrawCounts );\n\t\tcopyArrayContents( this._multiDrawStarts, multiDrawStarts );\n\n\t\tthis._multiDrawCounts = multiDrawCounts;\n\t\tthis._multiDrawStarts = multiDrawStarts;\n\t\tthis._maxInstanceCount = maxInstanceCount;\n\n\t\t// update texture data for instance sampling\n\t\tconst indirectTexture = this._indirectTexture;\n\t\tconst matricesTexture = this._matricesTexture;\n\t\tconst colorsTexture = this._colorsTexture;\n\n\t\tindirectTexture.dispose();\n\t\tthis._initIndirectTexture();\n\t\tcopyArrayContents( indirectTexture.image.data, this._indirectTexture.image.data );\n\n\t\tmatricesTexture.dispose();\n\t\tthis._initMatricesTexture();\n\t\tcopyArrayContents( matricesTexture.image.data, this._matricesTexture.image.data );\n\n\t\tif ( colorsTexture ) {\n\n\t\t\tcolorsTexture.dispose();\n\t\t\tthis._initColorsTexture();\n\t\t\tcopyArrayContents( colorsTexture.image.data, this._colorsTexture.image.data );\n\n\t\t}\n\n\t}\n\n\tsetGeometrySize( maxVertexCount, maxIndexCount ) {\n\n\t\t// Check if we can shrink to the requested vertex attribute size\n\t\tconst validRanges = [ ...this._geometryInfo ].filter( info => info.active );\n\t\tconst requiredVertexLength = Math.max( ...validRanges.map( range => range.vertexStart + range.reservedVertexCount ) );\n\t\tif ( requiredVertexLength > maxVertexCount ) {\n\n\t\t\tthrow new Error( `BatchedMesh: Geometry vertex values are being used outside the range ${ maxIndexCount }. Cannot shrink further.` );\n\n\t\t}\n\n\t\t// Check if we can shrink to the requested index attribute size\n\t\tif ( this.geometry.index ) {\n\n\t\t\tconst requiredIndexLength = Math.max( ...validRanges.map( range => range.indexStart + range.reservedIndexCount ) );\n\t\t\tif ( requiredIndexLength > maxIndexCount ) {\n\n\t\t\t\tthrow new Error( `BatchedMesh: Geometry index values are being used outside the range ${ maxIndexCount }. Cannot shrink further.` );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\t// dispose of the previous geometry\n\t\tconst oldGeometry = this.geometry;\n\t\toldGeometry.dispose();\n\n\t\t// recreate the geometry needed based on the previous variant\n\t\tthis._maxVertexCount = maxVertexCount;\n\t\tthis._maxIndexCount = maxIndexCount;\n\n\t\tif ( this._geometryInitialized ) {\n\n\t\t\tthis._geometryInitialized = false;\n\t\t\tthis.geometry = new BufferGeometry();\n\t\t\tthis._initializeGeometry( oldGeometry );\n\n\t\t}\n\n\t\t// copy data from the previous geometry\n\t\tconst geometry = this.geometry;\n\t\tif ( oldGeometry.index ) {\n\n\t\t\tcopyArrayContents( oldGeometry.index.array, geometry.index.array );\n\n\t\t}\n\n\t\tfor ( const key in oldGeometry.attributes ) {\n\n\t\t\tcopyArrayContents( oldGeometry.attributes[ key ].array, geometry.attributes[ key ].array );\n\n\t\t}\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst batchGeometry = this.geometry;\n\n\t\t// iterate over each geometry\n\t\t_mesh.material = this.material;\n\t\t_mesh.geometry.index = batchGeometry.index;\n\t\t_mesh.geometry.attributes = batchGeometry.attributes;\n\t\tif ( _mesh.geometry.boundingBox === null ) {\n\n\t\t\t_mesh.geometry.boundingBox = new Box3();\n\n\t\t}\n\n\t\tif ( _mesh.geometry.boundingSphere === null ) {\n\n\t\t\t_mesh.geometry.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( ! instanceInfo[ i ].visible || ! instanceInfo[ i ].active ) {\n\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst geometryId = instanceInfo[ i ].geometryIndex;\n\t\t\tconst geometryInfo = geometryInfoList[ geometryId ];\n\t\t\t_mesh.geometry.setDrawRange( geometryInfo.start, geometryInfo.count );\n\n\t\t\t// get the intersects\n\t\t\tthis.getMatrixAt( i, _mesh.matrixWorld ).premultiply( matrixWorld );\n\t\t\tthis.getBoundingBoxAt( geometryId, _mesh.geometry.boundingBox );\n\t\t\tthis.getBoundingSphereAt( geometryId, _mesh.geometry.boundingSphere );\n\t\t\t_mesh.raycast( raycaster, _batchIntersects );\n\n\t\t\t// add batch id to the intersects\n\t\t\tfor ( let j = 0, l = _batchIntersects.length; j < l; j ++ ) {\n\n\t\t\t\tconst intersect = _batchIntersects[ j ];\n\t\t\t\tintersect.object = this;\n\t\t\t\tintersect.batchId = i;\n\t\t\t\tintersects.push( intersect );\n\n\t\t\t}\n\n\t\t\t_batchIntersects.length = 0;\n\n\t\t}\n\n\t\t_mesh.material = null;\n\t\t_mesh.geometry.index = null;\n\t\t_mesh.geometry.attributes = {};\n\t\t_mesh.geometry.setDrawRange( 0, Infinity );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.geometry = source.geometry.clone();\n\t\tthis.perObjectFrustumCulled = source.perObjectFrustumCulled;\n\t\tthis.sortObjects = source.sortObjects;\n\t\tthis.boundingBox = source.boundingBox !== null ? source.boundingBox.clone() : null;\n\t\tthis.boundingSphere = source.boundingSphere !== null ? source.boundingSphere.clone() : null;\n\n\t\tthis._geometryInfo = source._geometryInfo.map( info => ( {\n\t\t\t...info,\n\n\t\t\tboundingBox: info.boundingBox !== null ? info.boundingBox.clone() : null,\n\t\t\tboundingSphere: info.boundingSphere !== null ? info.boundingSphere.clone() : null,\n\t\t} ) );\n\t\tthis._instanceInfo = source._instanceInfo.map( info => ( { ...info } ) );\n\n\t\tthis._maxInstanceCount = source._maxInstanceCount;\n\t\tthis._maxVertexCount = source._maxVertexCount;\n\t\tthis._maxIndexCount = source._maxIndexCount;\n\n\t\tthis._geometryInitialized = source._geometryInitialized;\n\t\tthis._geometryCount = source._geometryCount;\n\t\tthis._multiDrawCounts = source._multiDrawCounts.slice();\n\t\tthis._multiDrawStarts = source._multiDrawStarts.slice();\n\n\t\tthis._matricesTexture = source._matricesTexture.clone();\n\t\tthis._matricesTexture.image.data = this._matricesTexture.image.data.slice();\n\n\t\tif ( this._colorsTexture !== null ) {\n\n\t\t\tthis._colorsTexture = source._colorsTexture.clone();\n\t\t\tthis._colorsTexture.image.data = this._colorsTexture.image.data.slice();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\t// Assuming the geometry is not shared with other meshes\n\t\tthis.geometry.dispose();\n\n\t\tthis._matricesTexture.dispose();\n\t\tthis._matricesTexture = null;\n\n\t\tthis._indirectTexture.dispose();\n\t\tthis._indirectTexture = null;\n\n\t\tif ( this._colorsTexture !== null ) {\n\n\t\t\tthis._colorsTexture.dispose();\n\t\t\tthis._colorsTexture = null;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tonBeforeRender( renderer, scene, camera, geometry, material/*, _group*/ ) {\n\n\t\t// if visibility has not changed and frustum culling and object sorting is not required\n\t\t// then skip iterating over all items\n\t\tif ( ! this._visibilityChanged && ! this.perObjectFrustumCulled && ! this.sortObjects ) {\n\n\t\t\treturn;\n\n\t\t}\n\n\t\t// the indexed version of the multi draw function requires specifying the start\n\t\t// offset in bytes.\n\t\tconst index = geometry.getIndex();\n\t\tconst bytesPerElement = index === null ? 1 : index.array.BYTES_PER_ELEMENT;\n\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tconst multiDrawStarts = this._multiDrawStarts;\n\t\tconst multiDrawCounts = this._multiDrawCounts;\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tconst perObjectFrustumCulled = this.perObjectFrustumCulled;\n\t\tconst indirectTexture = this._indirectTexture;\n\t\tconst indirectArray = indirectTexture.image.data;\n\n\t\t// prepare the frustum in the local frame\n\t\tif ( perObjectFrustumCulled ) {\n\n\t\t\t_matrix$1\n\t\t\t\t.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse )\n\t\t\t\t.multiply( this.matrixWorld );\n\t\t\t_frustum.setFromProjectionMatrix(\n\t\t\t\t_matrix$1,\n\t\t\t\trenderer.coordinateSystem\n\t\t\t);\n\n\t\t}\n\n\t\tlet multiDrawCount = 0;\n\t\tif ( this.sortObjects ) {\n\n\t\t\t// get the camera position in the local frame\n\t\t\t_matrix$1.copy( this.matrixWorld ).invert();\n\t\t\t_vector$5.setFromMatrixPosition( camera.matrixWorld ).applyMatrix4( _matrix$1 );\n\t\t\t_forward.set( 0, 0, - 1 ).transformDirection( camera.matrixWorld ).transformDirection( _matrix$1 );\n\n\t\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\t\tif ( instanceInfo[ i ].visible && instanceInfo[ i ].active ) {\n\n\t\t\t\t\tconst geometryId = instanceInfo[ i ].geometryIndex;\n\n\t\t\t\t\t// get the bounds in world space\n\t\t\t\t\tthis.getMatrixAt( i, _matrix$1 );\n\t\t\t\t\tthis.getBoundingSphereAt( geometryId, _sphere$2 ).applyMatrix4( _matrix$1 );\n\n\t\t\t\t\t// determine whether the batched geometry is within the frustum\n\t\t\t\t\tlet culled = false;\n\t\t\t\t\tif ( perObjectFrustumCulled ) {\n\n\t\t\t\t\t\tculled = ! _frustum.intersectsSphere( _sphere$2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! culled ) {\n\n\t\t\t\t\t\t// get the distance from camera used for sorting\n\t\t\t\t\t\tconst geometryInfo = geometryInfoList[ geometryId ];\n\t\t\t\t\t\tconst z = _temp.subVectors( _sphere$2.center, _vector$5 ).dot( _forward );\n\t\t\t\t\t\t_renderList.push( geometryInfo.start, geometryInfo.count, z, i );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Sort the draw ranges and prep for rendering\n\t\t\tconst list = _renderList.list;\n\t\t\tconst customSort = this.customSort;\n\t\t\tif ( customSort === null ) {\n\n\t\t\t\tlist.sort( material.transparent ? sortTransparent : sortOpaque );\n\n\t\t\t} else {\n\n\t\t\t\tcustomSort.call( this, list, camera );\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0, l = list.length; i < l; i ++ ) {\n\n\t\t\t\tconst item = list[ i ];\n\t\t\t\tmultiDrawStarts[ multiDrawCount ] = item.start * bytesPerElement;\n\t\t\t\tmultiDrawCounts[ multiDrawCount ] = item.count;\n\t\t\t\tindirectArray[ multiDrawCount ] = item.index;\n\t\t\t\tmultiDrawCount ++;\n\n\t\t\t}\n\n\t\t\t_renderList.reset();\n\n\t\t} else {\n\n\t\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\t\tif ( instanceInfo[ i ].visible && instanceInfo[ i ].active ) {\n\n\t\t\t\t\tconst geometryId = instanceInfo[ i ].geometryIndex;\n\n\t\t\t\t\t// determine whether the batched geometry is within the frustum\n\t\t\t\t\tlet culled = false;\n\t\t\t\t\tif ( perObjectFrustumCulled ) {\n\n\t\t\t\t\t\t// get the bounds in world space\n\t\t\t\t\t\tthis.getMatrixAt( i, _matrix$1 );\n\t\t\t\t\t\tthis.getBoundingSphereAt( geometryId, _sphere$2 ).applyMatrix4( _matrix$1 );\n\t\t\t\t\t\tculled = ! _frustum.intersectsSphere( _sphere$2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! culled ) {\n\n\t\t\t\t\t\tconst geometryInfo = geometryInfoList[ geometryId ];\n\t\t\t\t\t\tmultiDrawStarts[ multiDrawCount ] = geometryInfo.start * bytesPerElement;\n\t\t\t\t\t\tmultiDrawCounts[ multiDrawCount ] = geometryInfo.count;\n\t\t\t\t\t\tindirectArray[ multiDrawCount ] = i;\n\t\t\t\t\t\tmultiDrawCount ++;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tindirectTexture.needsUpdate = true;\n\t\tthis._multiDrawCount = multiDrawCount;\n\t\tthis._visibilityChanged = false;\n\n\t}\n\n\tonBeforeShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial/* , group */ ) {\n\n\t\tthis.onBeforeRender( renderer, null, shadowCamera, geometry, depthMaterial );\n\n\t}\n\n}\n\nclass LineBasicMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isLineBasicMaterial = true;\n\n\t\tthis.type = 'LineBasicMaterial';\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\n\t\tthis.linewidth = 1;\n\t\tthis.linecap = 'round';\n\t\tthis.linejoin = 'round';\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.linewidth = source.linewidth;\n\t\tthis.linecap = source.linecap;\n\t\tthis.linejoin = source.linejoin;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _vStart = /*@__PURE__*/ new Vector3();\nconst _vEnd = /*@__PURE__*/ new Vector3();\n\nconst _inverseMatrix$1 = /*@__PURE__*/ new Matrix4();\nconst _ray$1 = /*@__PURE__*/ new Ray();\nconst _sphere$1 = /*@__PURE__*/ new Sphere();\n\nconst _intersectPointOnRay = /*@__PURE__*/ new Vector3();\nconst _intersectPointOnSegment = /*@__PURE__*/ new Vector3();\n\nclass Line extends Object3D {\n\n\tconstructor( geometry = new BufferGeometry(), material = new LineBasicMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.isLine = true;\n\n\t\tthis.type = 'Line';\n\n\t\tthis.geometry = geometry;\n\t\tthis.material = material;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.material = Array.isArray( source.material ) ? source.material.slice() : source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\tcomputeLineDistances() {\n\n\t\tconst geometry = this.geometry;\n\n\t\t// we assume non-indexed geometry\n\n\t\tif ( geometry.index === null ) {\n\n\t\t\tconst positionAttribute = geometry.attributes.position;\n\t\t\tconst lineDistances = [ 0 ];\n\n\t\t\tfor ( let i = 1, l = positionAttribute.count; i < l; i ++ ) {\n\n\t\t\t\t_vStart.fromBufferAttribute( positionAttribute, i - 1 );\n\t\t\t\t_vEnd.fromBufferAttribute( positionAttribute, i );\n\n\t\t\t\tlineDistances[ i ] = lineDistances[ i - 1 ];\n\t\t\t\tlineDistances[ i ] += _vStart.distanceTo( _vEnd );\n\n\t\t\t}\n\n\t\t\tgeometry.setAttribute( 'lineDistance', new Float32BufferAttribute( lineDistances, 1 ) );\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.' );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst threshold = raycaster.params.Line.threshold;\n\t\tconst drawRange = geometry.drawRange;\n\n\t\t// Checking boundingSphere distance to ray\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere$1.copy( geometry.boundingSphere );\n\t\t_sphere$1.applyMatrix4( matrixWorld );\n\t\t_sphere$1.radius += threshold;\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere$1 ) === false ) return;\n\n\t\t//\n\n\t\t_inverseMatrix$1.copy( matrixWorld ).invert();\n\t\t_ray$1.copy( raycaster.ray ).applyMatrix4( _inverseMatrix$1 );\n\n\t\tconst localThreshold = threshold / ( ( this.scale.x + this.scale.y + this.scale.z ) / 3 );\n\t\tconst localThresholdSq = localThreshold * localThreshold;\n\n\t\tconst step = this.isLineSegments ? 2 : 1;\n\n\t\tconst index = geometry.index;\n\t\tconst attributes = geometry.attributes;\n\t\tconst positionAttribute = attributes.position;\n\n\t\tif ( index !== null ) {\n\n\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( let i = start, l = end - 1; i < l; i += step ) {\n\n\t\t\t\tconst a = index.getX( i );\n\t\t\t\tconst b = index.getX( i + 1 );\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, a, b );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.isLineLoop ) {\n\n\t\t\t\tconst a = index.getX( end - 1 );\n\t\t\t\tconst b = index.getX( start );\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, a, b );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\tconst end = Math.min( positionAttribute.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( let i = start, l = end - 1; i < l; i += step ) {\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, i, i + 1 );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.isLineLoop ) {\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, end - 1, start );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\t\tconst keys = Object.keys( morphAttributes );\n\n\t\tif ( keys.length > 0 ) {\n\n\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nfunction checkIntersection( object, raycaster, ray, thresholdSq, a, b ) {\n\n\tconst positionAttribute = object.geometry.attributes.position;\n\n\t_vStart.fromBufferAttribute( positionAttribute, a );\n\t_vEnd.fromBufferAttribute( positionAttribute, b );\n\n\tconst distSq = ray.distanceSqToSegment( _vStart, _vEnd, _intersectPointOnRay, _intersectPointOnSegment );\n\n\tif ( distSq > thresholdSq ) return;\n\n\t_intersectPointOnRay.applyMatrix4( object.matrixWorld ); // Move back to world space for distance calculation\n\n\tconst distance = raycaster.ray.origin.distanceTo( _intersectPointOnRay );\n\n\tif ( distance < raycaster.near || distance > raycaster.far ) return;\n\n\treturn {\n\n\t\tdistance: distance,\n\t\t// What do we want? intersection point on the ray or on the segment??\n\t\t// point: raycaster.ray.at( distance ),\n\t\tpoint: _intersectPointOnSegment.clone().applyMatrix4( object.matrixWorld ),\n\t\tindex: a,\n\t\tface: null,\n\t\tfaceIndex: null,\n\t\tbarycoord: null,\n\t\tobject: object\n\n\t};\n\n}\n\nconst _start = /*@__PURE__*/ new Vector3();\nconst _end = /*@__PURE__*/ new Vector3();\n\nclass LineSegments extends Line {\n\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.isLineSegments = true;\n\n\t\tthis.type = 'LineSegments';\n\n\t}\n\n\tcomputeLineDistances() {\n\n\t\tconst geometry = this.geometry;\n\n\t\t// we assume non-indexed geometry\n\n\t\tif ( geometry.index === null ) {\n\n\t\t\tconst positionAttribute = geometry.attributes.position;\n\t\t\tconst lineDistances = [];\n\n\t\t\tfor ( let i = 0, l = positionAttribute.count; i < l; i += 2 ) {\n\n\t\t\t\t_start.fromBufferAttribute( positionAttribute, i );\n\t\t\t\t_end.fromBufferAttribute( positionAttribute, i + 1 );\n\n\t\t\t\tlineDistances[ i ] = ( i === 0 ) ? 0 : lineDistances[ i - 1 ];\n\t\t\t\tlineDistances[ i + 1 ] = lineDistances[ i ] + _start.distanceTo( _end );\n\n\t\t\t}\n\n\t\t\tgeometry.setAttribute( 'lineDistance', new Float32BufferAttribute( lineDistances, 1 ) );\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.' );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass LineLoop extends Line {\n\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.isLineLoop = true;\n\n\t\tthis.type = 'LineLoop';\n\n\t}\n\n}\n\nclass PointsMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isPointsMaterial = true;\n\n\t\tthis.type = 'PointsMaterial';\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.size = 1;\n\t\tthis.sizeAttenuation = true;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.size = source.size;\n\t\tthis.sizeAttenuation = source.sizeAttenuation;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _inverseMatrix = /*@__PURE__*/ new Matrix4();\nconst _ray = /*@__PURE__*/ new Ray();\nconst _sphere = /*@__PURE__*/ new Sphere();\nconst _position$2 = /*@__PURE__*/ new Vector3();\n\nclass Points extends Object3D {\n\n\tconstructor( geometry = new BufferGeometry(), material = new PointsMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.isPoints = true;\n\n\t\tthis.type = 'Points';\n\n\t\tthis.geometry = geometry;\n\t\tthis.material = material;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.material = Array.isArray( source.material ) ? source.material.slice() : source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst threshold = raycaster.params.Points.threshold;\n\t\tconst drawRange = geometry.drawRange;\n\n\t\t// Checking boundingSphere distance to ray\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere.copy( geometry.boundingSphere );\n\t\t_sphere.applyMatrix4( matrixWorld );\n\t\t_sphere.radius += threshold;\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere ) === false ) return;\n\n\t\t//\n\n\t\t_inverseMatrix.copy( matrixWorld ).invert();\n\t\t_ray.copy( raycaster.ray ).applyMatrix4( _inverseMatrix );\n\n\t\tconst localThreshold = threshold / ( ( this.scale.x + this.scale.y + this.scale.z ) / 3 );\n\t\tconst localThresholdSq = localThreshold * localThreshold;\n\n\t\tconst index = geometry.index;\n\t\tconst attributes = geometry.attributes;\n\t\tconst positionAttribute = attributes.position;\n\n\t\tif ( index !== null ) {\n\n\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( let i = start, il = end; i < il; i ++ ) {\n\n\t\t\t\tconst a = index.getX( i );\n\n\t\t\t\t_position$2.fromBufferAttribute( positionAttribute, a );\n\n\t\t\t\ttestPoint( _position$2, a, localThresholdSq, matrixWorld, raycaster, intersects, this );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\tconst end = Math.min( positionAttribute.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( let i = start, l = end; i < l; i ++ ) {\n\n\t\t\t\t_position$2.fromBufferAttribute( positionAttribute, i );\n\n\t\t\t\ttestPoint( _position$2, i, localThresholdSq, matrixWorld, raycaster, intersects, this );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\t\tconst keys = Object.keys( morphAttributes );\n\n\t\tif ( keys.length > 0 ) {\n\n\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nfunction testPoint( point, index, localThresholdSq, matrixWorld, raycaster, intersects, object ) {\n\n\tconst rayPointDistanceSq = _ray.distanceSqToPoint( point );\n\n\tif ( rayPointDistanceSq < localThresholdSq ) {\n\n\t\tconst intersectPoint = new Vector3();\n\n\t\t_ray.closestPointToPoint( point, intersectPoint );\n\t\tintersectPoint.applyMatrix4( matrixWorld );\n\n\t\tconst distance = raycaster.ray.origin.distanceTo( intersectPoint );\n\n\t\tif ( distance < raycaster.near || distance > raycaster.far ) return;\n\n\t\tintersects.push( {\n\n\t\t\tdistance: distance,\n\t\t\tdistanceToRay: Math.sqrt( rayPointDistanceSq ),\n\t\t\tpoint: intersectPoint,\n\t\t\tindex: index,\n\t\t\tface: null,\n\t\t\tfaceIndex: null,\n\t\t\tbarycoord: null,\n\t\t\tobject: object\n\n\t\t} );\n\n\t}\n\n}\n\nclass Group extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isGroup = true;\n\n\t\tthis.type = 'Group';\n\n\t}\n\n}\n\nclass VideoTexture extends Texture {\n\n\tconstructor( video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {\n\n\t\tsuper( video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\tthis.isVideoTexture = true;\n\n\t\tthis.minFilter = minFilter !== undefined ? minFilter : LinearFilter;\n\t\tthis.magFilter = magFilter !== undefined ? magFilter : LinearFilter;\n\n\t\tthis.generateMipmaps = false;\n\n\t\tconst scope = this;\n\n\t\tfunction updateVideo() {\n\n\t\t\tscope.needsUpdate = true;\n\t\t\tvideo.requestVideoFrameCallback( updateVideo );\n\n\t\t}\n\n\t\tif ( 'requestVideoFrameCallback' in video ) {\n\n\t\t\tvideo.requestVideoFrameCallback( updateVideo );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.image ).copy( this );\n\n\t}\n\n\tupdate() {\n\n\t\tconst video = this.image;\n\t\tconst hasVideoFrameCallback = 'requestVideoFrameCallback' in video;\n\n\t\tif ( hasVideoFrameCallback === false && video.readyState >= video.HAVE_CURRENT_DATA ) {\n\n\t\t\tthis.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n}\n\nclass FramebufferTexture extends Texture {\n\n\tconstructor( width, height ) {\n\n\t\tsuper( { width, height } );\n\n\t\tthis.isFramebufferTexture = true;\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.generateMipmaps = false;\n\n\t\tthis.needsUpdate = true;\n\n\t}\n\n}\n\nclass CompressedTexture extends Texture {\n\n\tconstructor( mipmaps, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, colorSpace ) {\n\n\t\tsuper( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace );\n\n\t\tthis.isCompressedTexture = true;\n\n\t\tthis.image = { width: width, height: height };\n\t\tthis.mipmaps = mipmaps;\n\n\t\t// no flipping for cube textures\n\t\t// (also flipping doesn't work for compressed textures )\n\n\t\tthis.flipY = false;\n\n\t\t// can't generate mipmaps for compressed textures\n\t\t// mips must be embedded in DDS files\n\n\t\tthis.generateMipmaps = false;\n\n\t}\n\n}\n\nclass CompressedArrayTexture extends CompressedTexture {\n\n\tconstructor( mipmaps, width, height, depth, format, type ) {\n\n\t\tsuper( mipmaps, width, height, format, type );\n\n\t\tthis.isCompressedArrayTexture = true;\n\t\tthis.image.depth = depth;\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\tthis.layerUpdates = new Set();\n\n\t}\n\n\taddLayerUpdate( layerIndex ) {\n\n\t\tthis.layerUpdates.add( layerIndex );\n\n\t}\n\n\tclearLayerUpdates() {\n\n\t\tthis.layerUpdates.clear();\n\n\t}\n\n}\n\nclass CompressedCubeTexture extends CompressedTexture {\n\n\tconstructor( images, format, type ) {\n\n\t\tsuper( undefined, images[ 0 ].width, images[ 0 ].height, format, type, CubeReflectionMapping );\n\n\t\tthis.isCompressedCubeTexture = true;\n\t\tthis.isCubeTexture = true;\n\n\t\tthis.image = images;\n\n\t}\n\n}\n\nclass CanvasTexture extends Texture {\n\n\tconstructor( canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {\n\n\t\tsuper( canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\tthis.isCanvasTexture = true;\n\n\t\tthis.needsUpdate = true;\n\n\t}\n\n}\n\nclass DepthTexture extends Texture {\n\n\tconstructor( width, height, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, format = DepthFormat ) {\n\n\t\tif ( format !== DepthFormat && format !== DepthStencilFormat ) {\n\n\t\t\tthrow new Error( 'DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat' );\n\n\t\t}\n\n\t\tif ( type === undefined && format === DepthFormat ) type = UnsignedIntType;\n\t\tif ( type === undefined && format === DepthStencilFormat ) type = UnsignedInt248Type;\n\n\t\tsuper( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\tthis.isDepthTexture = true;\n\n\t\tthis.image = { width: width, height: height };\n\n\t\tthis.magFilter = magFilter !== undefined ? magFilter : NearestFilter;\n\t\tthis.minFilter = minFilter !== undefined ? minFilter : NearestFilter;\n\n\t\tthis.flipY = false;\n\t\tthis.generateMipmaps = false;\n\n\t\tthis.compareFunction = null;\n\n\t}\n\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.compareFunction = source.compareFunction;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tif ( this.compareFunction !== null ) data.compareFunction = this.compareFunction;\n\n\t\treturn data;\n\n\t}\n\n}\n\n/**\n * Extensible curve object.\n *\n * Some common of curve methods:\n * .getPoint( t, optionalTarget ), .getTangent( t, optionalTarget )\n * .getPointAt( u, optionalTarget ), .getTangentAt( u, optionalTarget )\n * .getPoints(), .getSpacedPoints()\n * .getLength()\n * .updateArcLengths()\n *\n * This following curves inherit from THREE.Curve:\n *\n * -- 2D curves --\n * THREE.ArcCurve\n * THREE.CubicBezierCurve\n * THREE.EllipseCurve\n * THREE.LineCurve\n * THREE.QuadraticBezierCurve\n * THREE.SplineCurve\n *\n * -- 3D curves --\n * THREE.CatmullRomCurve3\n * THREE.CubicBezierCurve3\n * THREE.LineCurve3\n * THREE.QuadraticBezierCurve3\n *\n * A series of curves can be represented as a THREE.CurvePath.\n *\n **/\n\nclass Curve {\n\n\tconstructor() {\n\n\t\tthis.type = 'Curve';\n\n\t\tthis.arcLengthDivisions = 200;\n\n\t}\n\n\t// Virtual base class method to overwrite and implement in subclasses\n\t//\t- t [0 .. 1]\n\n\tgetPoint( /* t, optionalTarget */ ) {\n\n\t\tconsole.warn( 'THREE.Curve: .getPoint() not implemented.' );\n\t\treturn null;\n\n\t}\n\n\t// Get point at relative position in curve according to arc length\n\t// - u [0 .. 1]\n\n\tgetPointAt( u, optionalTarget ) {\n\n\t\tconst t = this.getUtoTmapping( u );\n\t\treturn this.getPoint( t, optionalTarget );\n\n\t}\n\n\t// Get sequence of points using getPoint( t )\n\n\tgetPoints( divisions = 5 ) {\n\n\t\tconst points = [];\n\n\t\tfor ( let d = 0; d <= divisions; d ++ ) {\n\n\t\t\tpoints.push( this.getPoint( d / divisions ) );\n\n\t\t}\n\n\t\treturn points;\n\n\t}\n\n\t// Get sequence of points using getPointAt( u )\n\n\tgetSpacedPoints( divisions = 5 ) {\n\n\t\tconst points = [];\n\n\t\tfor ( let d = 0; d <= divisions; d ++ ) {\n\n\t\t\tpoints.push( this.getPointAt( d / divisions ) );\n\n\t\t}\n\n\t\treturn points;\n\n\t}\n\n\t// Get total curve arc length\n\n\tgetLength() {\n\n\t\tconst lengths = this.getLengths();\n\t\treturn lengths[ lengths.length - 1 ];\n\n\t}\n\n\t// Get list of cumulative segment lengths\n\n\tgetLengths( divisions = this.arcLengthDivisions ) {\n\n\t\tif ( this.cacheArcLengths &&\n\t\t\t( this.cacheArcLengths.length === divisions + 1 ) &&\n\t\t\t! this.needsUpdate ) {\n\n\t\t\treturn this.cacheArcLengths;\n\n\t\t}\n\n\t\tthis.needsUpdate = false;\n\n\t\tconst cache = [];\n\t\tlet current, last = this.getPoint( 0 );\n\t\tlet sum = 0;\n\n\t\tcache.push( 0 );\n\n\t\tfor ( let p = 1; p <= divisions; p ++ ) {\n\n\t\t\tcurrent = this.getPoint( p / divisions );\n\t\t\tsum += current.distanceTo( last );\n\t\t\tcache.push( sum );\n\t\t\tlast = current;\n\n\t\t}\n\n\t\tthis.cacheArcLengths = cache;\n\n\t\treturn cache; // { sums: cache, sum: sum }; Sum is in the last element.\n\n\t}\n\n\tupdateArcLengths() {\n\n\t\tthis.needsUpdate = true;\n\t\tthis.getLengths();\n\n\t}\n\n\t// Given u ( 0 .. 1 ), get a t to find p. This gives you points which are equidistant\n\n\tgetUtoTmapping( u, distance ) {\n\n\t\tconst arcLengths = this.getLengths();\n\n\t\tlet i = 0;\n\t\tconst il = arcLengths.length;\n\n\t\tlet targetArcLength; // The targeted u distance value to get\n\n\t\tif ( distance ) {\n\n\t\t\ttargetArcLength = distance;\n\n\t\t} else {\n\n\t\t\ttargetArcLength = u * arcLengths[ il - 1 ];\n\n\t\t}\n\n\t\t// binary search for the index with largest value smaller than target u distance\n\n\t\tlet low = 0, high = il - 1, comparison;\n\n\t\twhile ( low <= high ) {\n\n\t\t\ti = Math.floor( low + ( high - low ) / 2 ); // less likely to overflow, though probably not issue here, JS doesn't really have integers, all numbers are floats\n\n\t\t\tcomparison = arcLengths[ i ] - targetArcLength;\n\n\t\t\tif ( comparison < 0 ) {\n\n\t\t\t\tlow = i + 1;\n\n\t\t\t} else if ( comparison > 0 ) {\n\n\t\t\t\thigh = i - 1;\n\n\t\t\t} else {\n\n\t\t\t\thigh = i;\n\t\t\t\tbreak;\n\n\t\t\t\t// DONE\n\n\t\t\t}\n\n\t\t}\n\n\t\ti = high;\n\n\t\tif ( arcLengths[ i ] === targetArcLength ) {\n\n\t\t\treturn i / ( il - 1 );\n\n\t\t}\n\n\t\t// we could get finer grain at lengths, or use simple interpolation between two points\n\n\t\tconst lengthBefore = arcLengths[ i ];\n\t\tconst lengthAfter = arcLengths[ i + 1 ];\n\n\t\tconst segmentLength = lengthAfter - lengthBefore;\n\n\t\t// determine where we are between the 'before' and 'after' points\n\n\t\tconst segmentFraction = ( targetArcLength - lengthBefore ) / segmentLength;\n\n\t\t// add that fractional amount to t\n\n\t\tconst t = ( i + segmentFraction ) / ( il - 1 );\n\n\t\treturn t;\n\n\t}\n\n\t// Returns a unit vector tangent at t\n\t// In case any sub curve does not implement its tangent derivation,\n\t// 2 points a small delta apart will be used to find its gradient\n\t// which seems to give a reasonable approximation\n\n\tgetTangent( t, optionalTarget ) {\n\n\t\tconst delta = 0.0001;\n\t\tlet t1 = t - delta;\n\t\tlet t2 = t + delta;\n\n\t\t// Capping in case of danger\n\n\t\tif ( t1 < 0 ) t1 = 0;\n\t\tif ( t2 > 1 ) t2 = 1;\n\n\t\tconst pt1 = this.getPoint( t1 );\n\t\tconst pt2 = this.getPoint( t2 );\n\n\t\tconst tangent = optionalTarget || ( ( pt1.isVector2 ) ? new Vector2() : new Vector3() );\n\n\t\ttangent.copy( pt2 ).sub( pt1 ).normalize();\n\n\t\treturn tangent;\n\n\t}\n\n\tgetTangentAt( u, optionalTarget ) {\n\n\t\tconst t = this.getUtoTmapping( u );\n\t\treturn this.getTangent( t, optionalTarget );\n\n\t}\n\n\tcomputeFrenetFrames( segments, closed ) {\n\n\t\t// see http://www.cs.indiana.edu/pub/techreports/TR425.pdf\n\n\t\tconst normal = new Vector3();\n\n\t\tconst tangents = [];\n\t\tconst normals = [];\n\t\tconst binormals = [];\n\n\t\tconst vec = new Vector3();\n\t\tconst mat = new Matrix4();\n\n\t\t// compute the tangent vectors for each segment on the curve\n\n\t\tfor ( let i = 0; i <= segments; i ++ ) {\n\n\t\t\tconst u = i / segments;\n\n\t\t\ttangents[ i ] = this.getTangentAt( u, new Vector3() );\n\n\t\t}\n\n\t\t// select an initial normal vector perpendicular to the first tangent vector,\n\t\t// and in the direction of the minimum tangent xyz component\n\n\t\tnormals[ 0 ] = new Vector3();\n\t\tbinormals[ 0 ] = new Vector3();\n\t\tlet min = Number.MAX_VALUE;\n\t\tconst tx = Math.abs( tangents[ 0 ].x );\n\t\tconst ty = Math.abs( tangents[ 0 ].y );\n\t\tconst tz = Math.abs( tangents[ 0 ].z );\n\n\t\tif ( tx <= min ) {\n\n\t\t\tmin = tx;\n\t\t\tnormal.set( 1, 0, 0 );\n\n\t\t}\n\n\t\tif ( ty <= min ) {\n\n\t\t\tmin = ty;\n\t\t\tnormal.set( 0, 1, 0 );\n\n\t\t}\n\n\t\tif ( tz <= min ) {\n\n\t\t\tnormal.set( 0, 0, 1 );\n\n\t\t}\n\n\t\tvec.crossVectors( tangents[ 0 ], normal ).normalize();\n\n\t\tnormals[ 0 ].crossVectors( tangents[ 0 ], vec );\n\t\tbinormals[ 0 ].crossVectors( tangents[ 0 ], normals[ 0 ] );\n\n\n\t\t// compute the slowly-varying normal and binormal vectors for each segment on the curve\n\n\t\tfor ( let i = 1; i <= segments; i ++ ) {\n\n\t\t\tnormals[ i ] = normals[ i - 1 ].clone();\n\n\t\t\tbinormals[ i ] = binormals[ i - 1 ].clone();\n\n\t\t\tvec.crossVectors( tangents[ i - 1 ], tangents[ i ] );\n\n\t\t\tif ( vec.length() > Number.EPSILON ) {\n\n\t\t\t\tvec.normalize();\n\n\t\t\t\tconst theta = Math.acos( clamp( tangents[ i - 1 ].dot( tangents[ i ] ), - 1, 1 ) ); // clamp for floating pt errors\n\n\t\t\t\tnormals[ i ].applyMatrix4( mat.makeRotationAxis( vec, theta ) );\n\n\t\t\t}\n\n\t\t\tbinormals[ i ].crossVectors( tangents[ i ], normals[ i ] );\n\n\t\t}\n\n\t\t// if the curve is closed, postprocess the vectors so the first and last normal vectors are the same\n\n\t\tif ( closed === true ) {\n\n\t\t\tlet theta = Math.acos( clamp( normals[ 0 ].dot( normals[ segments ] ), - 1, 1 ) );\n\t\t\ttheta /= segments;\n\n\t\t\tif ( tangents[ 0 ].dot( vec.crossVectors( normals[ 0 ], normals[ segments ] ) ) > 0 ) {\n\n\t\t\t\ttheta = - theta;\n\n\t\t\t}\n\n\t\t\tfor ( let i = 1; i <= segments; i ++ ) {\n\n\t\t\t\t// twist a little...\n\t\t\t\tnormals[ i ].applyMatrix4( mat.makeRotationAxis( tangents[ i ], theta * i ) );\n\t\t\t\tbinormals[ i ].crossVectors( tangents[ i ], normals[ i ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\t\t\ttangents: tangents,\n\t\t\tnormals: normals,\n\t\t\tbinormals: binormals\n\t\t};\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.arcLengthDivisions = source.arcLengthDivisions;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Curve',\n\t\t\t\tgenerator: 'Curve.toJSON'\n\t\t\t}\n\t\t};\n\n\t\tdata.arcLengthDivisions = this.arcLengthDivisions;\n\t\tdata.type = this.type;\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tthis.arcLengthDivisions = json.arcLengthDivisions;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass EllipseCurve extends Curve {\n\n\tconstructor( aX = 0, aY = 0, xRadius = 1, yRadius = 1, aStartAngle = 0, aEndAngle = Math.PI * 2, aClockwise = false, aRotation = 0 ) {\n\n\t\tsuper();\n\n\t\tthis.isEllipseCurve = true;\n\n\t\tthis.type = 'EllipseCurve';\n\n\t\tthis.aX = aX;\n\t\tthis.aY = aY;\n\n\t\tthis.xRadius = xRadius;\n\t\tthis.yRadius = yRadius;\n\n\t\tthis.aStartAngle = aStartAngle;\n\t\tthis.aEndAngle = aEndAngle;\n\n\t\tthis.aClockwise = aClockwise;\n\n\t\tthis.aRotation = aRotation;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst twoPi = Math.PI * 2;\n\t\tlet deltaAngle = this.aEndAngle - this.aStartAngle;\n\t\tconst samePoints = Math.abs( deltaAngle ) < Number.EPSILON;\n\n\t\t// ensures that deltaAngle is 0 .. 2 PI\n\t\twhile ( deltaAngle < 0 ) deltaAngle += twoPi;\n\t\twhile ( deltaAngle > twoPi ) deltaAngle -= twoPi;\n\n\t\tif ( deltaAngle < Number.EPSILON ) {\n\n\t\t\tif ( samePoints ) {\n\n\t\t\t\tdeltaAngle = 0;\n\n\t\t\t} else {\n\n\t\t\t\tdeltaAngle = twoPi;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.aClockwise === true && ! samePoints ) {\n\n\t\t\tif ( deltaAngle === twoPi ) {\n\n\t\t\t\tdeltaAngle = - twoPi;\n\n\t\t\t} else {\n\n\t\t\t\tdeltaAngle = deltaAngle - twoPi;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst angle = this.aStartAngle + t * deltaAngle;\n\t\tlet x = this.aX + this.xRadius * Math.cos( angle );\n\t\tlet y = this.aY + this.yRadius * Math.sin( angle );\n\n\t\tif ( this.aRotation !== 0 ) {\n\n\t\t\tconst cos = Math.cos( this.aRotation );\n\t\t\tconst sin = Math.sin( this.aRotation );\n\n\t\t\tconst tx = x - this.aX;\n\t\t\tconst ty = y - this.aY;\n\n\t\t\t// Rotate the point about the center of the ellipse.\n\t\t\tx = tx * cos - ty * sin + this.aX;\n\t\t\ty = tx * sin + ty * cos + this.aY;\n\n\t\t}\n\n\t\treturn point.set( x, y );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.aX = source.aX;\n\t\tthis.aY = source.aY;\n\n\t\tthis.xRadius = source.xRadius;\n\t\tthis.yRadius = source.yRadius;\n\n\t\tthis.aStartAngle = source.aStartAngle;\n\t\tthis.aEndAngle = source.aEndAngle;\n\n\t\tthis.aClockwise = source.aClockwise;\n\n\t\tthis.aRotation = source.aRotation;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.aX = this.aX;\n\t\tdata.aY = this.aY;\n\n\t\tdata.xRadius = this.xRadius;\n\t\tdata.yRadius = this.yRadius;\n\n\t\tdata.aStartAngle = this.aStartAngle;\n\t\tdata.aEndAngle = this.aEndAngle;\n\n\t\tdata.aClockwise = this.aClockwise;\n\n\t\tdata.aRotation = this.aRotation;\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.aX = json.aX;\n\t\tthis.aY = json.aY;\n\n\t\tthis.xRadius = json.xRadius;\n\t\tthis.yRadius = json.yRadius;\n\n\t\tthis.aStartAngle = json.aStartAngle;\n\t\tthis.aEndAngle = json.aEndAngle;\n\n\t\tthis.aClockwise = json.aClockwise;\n\n\t\tthis.aRotation = json.aRotation;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass ArcCurve extends EllipseCurve {\n\n\tconstructor( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) {\n\n\t\tsuper( aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise );\n\n\t\tthis.isArcCurve = true;\n\n\t\tthis.type = 'ArcCurve';\n\n\t}\n\n}\n\n/**\n * Centripetal CatmullRom Curve - which is useful for avoiding\n * cusps and self-intersections in non-uniform catmull rom curves.\n * http://www.cemyuksel.com/research/catmullrom_param/catmullrom.pdf\n *\n * curve.type accepts centripetal(default), chordal and catmullrom\n * curve.tension is used for catmullrom which defaults to 0.5\n */\n\n\n/*\nBased on an optimized c++ solution in\n - http://stackoverflow.com/questions/9489736/catmull-rom-curve-with-no-cusps-and-no-self-intersections/\n - http://ideone.com/NoEbVM\n\nThis CubicPoly class could be used for reusing some variables and calculations,\nbut for three.js curve use, it could be possible inlined and flatten into a single function call\nwhich can be placed in CurveUtils.\n*/\n\nfunction CubicPoly() {\n\n\tlet c0 = 0, c1 = 0, c2 = 0, c3 = 0;\n\n\t/*\n\t * Compute coefficients for a cubic polynomial\n\t * p(s) = c0 + c1*s + c2*s^2 + c3*s^3\n\t * such that\n\t * p(0) = x0, p(1) = x1\n\t * and\n\t * p'(0) = t0, p'(1) = t1.\n\t */\n\tfunction init( x0, x1, t0, t1 ) {\n\n\t\tc0 = x0;\n\t\tc1 = t0;\n\t\tc2 = - 3 * x0 + 3 * x1 - 2 * t0 - t1;\n\t\tc3 = 2 * x0 - 2 * x1 + t0 + t1;\n\n\t}\n\n\treturn {\n\n\t\tinitCatmullRom: function ( x0, x1, x2, x3, tension ) {\n\n\t\t\tinit( x1, x2, tension * ( x2 - x0 ), tension * ( x3 - x1 ) );\n\n\t\t},\n\n\t\tinitNonuniformCatmullRom: function ( x0, x1, x2, x3, dt0, dt1, dt2 ) {\n\n\t\t\t// compute tangents when parameterized in [t1,t2]\n\t\t\tlet t1 = ( x1 - x0 ) / dt0 - ( x2 - x0 ) / ( dt0 + dt1 ) + ( x2 - x1 ) / dt1;\n\t\t\tlet t2 = ( x2 - x1 ) / dt1 - ( x3 - x1 ) / ( dt1 + dt2 ) + ( x3 - x2 ) / dt2;\n\n\t\t\t// rescale tangents for parametrization in [0,1]\n\t\t\tt1 *= dt1;\n\t\t\tt2 *= dt1;\n\n\t\t\tinit( x1, x2, t1, t2 );\n\n\t\t},\n\n\t\tcalc: function ( t ) {\n\n\t\t\tconst t2 = t * t;\n\t\t\tconst t3 = t2 * t;\n\t\t\treturn c0 + c1 * t + c2 * t2 + c3 * t3;\n\n\t\t}\n\n\t};\n\n}\n\n//\n\nconst tmp = /*@__PURE__*/ new Vector3();\nconst px = /*@__PURE__*/ new CubicPoly();\nconst py = /*@__PURE__*/ new CubicPoly();\nconst pz = /*@__PURE__*/ new CubicPoly();\n\nclass CatmullRomCurve3 extends Curve {\n\n\tconstructor( points = [], closed = false, curveType = 'centripetal', tension = 0.5 ) {\n\n\t\tsuper();\n\n\t\tthis.isCatmullRomCurve3 = true;\n\n\t\tthis.type = 'CatmullRomCurve3';\n\n\t\tthis.points = points;\n\t\tthis.closed = closed;\n\t\tthis.curveType = curveType;\n\t\tthis.tension = tension;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst points = this.points;\n\t\tconst l = points.length;\n\n\t\tconst p = ( l - ( this.closed ? 0 : 1 ) ) * t;\n\t\tlet intPoint = Math.floor( p );\n\t\tlet weight = p - intPoint;\n\n\t\tif ( this.closed ) {\n\n\t\t\tintPoint += intPoint > 0 ? 0 : ( Math.floor( Math.abs( intPoint ) / l ) + 1 ) * l;\n\n\t\t} else if ( weight === 0 && intPoint === l - 1 ) {\n\n\t\t\tintPoint = l - 2;\n\t\t\tweight = 1;\n\n\t\t}\n\n\t\tlet p0, p3; // 4 points (p1 & p2 defined below)\n\n\t\tif ( this.closed || intPoint > 0 ) {\n\n\t\t\tp0 = points[ ( intPoint - 1 ) % l ];\n\n\t\t} else {\n\n\t\t\t// extrapolate first point\n\t\t\ttmp.subVectors( points[ 0 ], points[ 1 ] ).add( points[ 0 ] );\n\t\t\tp0 = tmp;\n\n\t\t}\n\n\t\tconst p1 = points[ intPoint % l ];\n\t\tconst p2 = points[ ( intPoint + 1 ) % l ];\n\n\t\tif ( this.closed || intPoint + 2 < l ) {\n\n\t\t\tp3 = points[ ( intPoint + 2 ) % l ];\n\n\t\t} else {\n\n\t\t\t// extrapolate last point\n\t\t\ttmp.subVectors( points[ l - 1 ], points[ l - 2 ] ).add( points[ l - 1 ] );\n\t\t\tp3 = tmp;\n\n\t\t}\n\n\t\tif ( this.curveType === 'centripetal' || this.curveType === 'chordal' ) {\n\n\t\t\t// init Centripetal / Chordal Catmull-Rom\n\t\t\tconst pow = this.curveType === 'chordal' ? 0.5 : 0.25;\n\t\t\tlet dt0 = Math.pow( p0.distanceToSquared( p1 ), pow );\n\t\t\tlet dt1 = Math.pow( p1.distanceToSquared( p2 ), pow );\n\t\t\tlet dt2 = Math.pow( p2.distanceToSquared( p3 ), pow );\n\n\t\t\t// safety check for repeated points\n\t\t\tif ( dt1 < 1e-4 ) dt1 = 1.0;\n\t\t\tif ( dt0 < 1e-4 ) dt0 = dt1;\n\t\t\tif ( dt2 < 1e-4 ) dt2 = dt1;\n\n\t\t\tpx.initNonuniformCatmullRom( p0.x, p1.x, p2.x, p3.x, dt0, dt1, dt2 );\n\t\t\tpy.initNonuniformCatmullRom( p0.y, p1.y, p2.y, p3.y, dt0, dt1, dt2 );\n\t\t\tpz.initNonuniformCatmullRom( p0.z, p1.z, p2.z, p3.z, dt0, dt1, dt2 );\n\n\t\t} else if ( this.curveType === 'catmullrom' ) {\n\n\t\t\tpx.initCatmullRom( p0.x, p1.x, p2.x, p3.x, this.tension );\n\t\t\tpy.initCatmullRom( p0.y, p1.y, p2.y, p3.y, this.tension );\n\t\t\tpz.initCatmullRom( p0.z, p1.z, p2.z, p3.z, this.tension );\n\n\t\t}\n\n\t\tpoint.set(\n\t\t\tpx.calc( weight ),\n\t\t\tpy.calc( weight ),\n\t\t\tpz.calc( weight )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = source.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = source.points[ i ];\n\n\t\t\tthis.points.push( point.clone() );\n\n\t\t}\n\n\t\tthis.closed = source.closed;\n\t\tthis.curveType = source.curveType;\n\t\tthis.tension = source.tension;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.points = [];\n\n\t\tfor ( let i = 0, l = this.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = this.points[ i ];\n\t\t\tdata.points.push( point.toArray() );\n\n\t\t}\n\n\t\tdata.closed = this.closed;\n\t\tdata.curveType = this.curveType;\n\t\tdata.tension = this.tension;\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = json.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = json.points[ i ];\n\t\t\tthis.points.push( new Vector3().fromArray( point ) );\n\n\t\t}\n\n\t\tthis.closed = json.closed;\n\t\tthis.curveType = json.curveType;\n\t\tthis.tension = json.tension;\n\n\t\treturn this;\n\n\t}\n\n}\n\n/**\n * Bezier Curves formulas obtained from\n * https://en.wikipedia.org/wiki/B%C3%A9zier_curve\n */\n\nfunction CatmullRom( t, p0, p1, p2, p3 ) {\n\n\tconst v0 = ( p2 - p0 ) * 0.5;\n\tconst v1 = ( p3 - p1 ) * 0.5;\n\tconst t2 = t * t;\n\tconst t3 = t * t2;\n\treturn ( 2 * p1 - 2 * p2 + v0 + v1 ) * t3 + ( - 3 * p1 + 3 * p2 - 2 * v0 - v1 ) * t2 + v0 * t + p1;\n\n}\n\n//\n\nfunction QuadraticBezierP0( t, p ) {\n\n\tconst k = 1 - t;\n\treturn k * k * p;\n\n}\n\nfunction QuadraticBezierP1( t, p ) {\n\n\treturn 2 * ( 1 - t ) * t * p;\n\n}\n\nfunction QuadraticBezierP2( t, p ) {\n\n\treturn t * t * p;\n\n}\n\nfunction QuadraticBezier( t, p0, p1, p2 ) {\n\n\treturn QuadraticBezierP0( t, p0 ) + QuadraticBezierP1( t, p1 ) +\n\t\tQuadraticBezierP2( t, p2 );\n\n}\n\n//\n\nfunction CubicBezierP0( t, p ) {\n\n\tconst k = 1 - t;\n\treturn k * k * k * p;\n\n}\n\nfunction CubicBezierP1( t, p ) {\n\n\tconst k = 1 - t;\n\treturn 3 * k * k * t * p;\n\n}\n\nfunction CubicBezierP2( t, p ) {\n\n\treturn 3 * ( 1 - t ) * t * t * p;\n\n}\n\nfunction CubicBezierP3( t, p ) {\n\n\treturn t * t * t * p;\n\n}\n\nfunction CubicBezier( t, p0, p1, p2, p3 ) {\n\n\treturn CubicBezierP0( t, p0 ) + CubicBezierP1( t, p1 ) + CubicBezierP2( t, p2 ) +\n\t\tCubicBezierP3( t, p3 );\n\n}\n\nclass CubicBezierCurve extends Curve {\n\n\tconstructor( v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2(), v3 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\tthis.isCubicBezierCurve = true;\n\n\t\tthis.type = 'CubicBezierCurve';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\t\tthis.v3 = v3;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2, v3 = this.v3;\n\n\t\tpoint.set(\n\t\t\tCubicBezier( t, v0.x, v1.x, v2.x, v3.x ),\n\t\t\tCubicBezier( t, v0.y, v1.y, v2.y, v3.y )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\t\tthis.v3.copy( source.v3 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\t\tdata.v3 = this.v3.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\t\tthis.v3.fromArray( json.v3 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass CubicBezierCurve3 extends Curve {\n\n\tconstructor( v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3(), v3 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\tthis.isCubicBezierCurve3 = true;\n\n\t\tthis.type = 'CubicBezierCurve3';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\t\tthis.v3 = v3;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2, v3 = this.v3;\n\n\t\tpoint.set(\n\t\t\tCubicBezier( t, v0.x, v1.x, v2.x, v3.x ),\n\t\t\tCubicBezier( t, v0.y, v1.y, v2.y, v3.y ),\n\t\t\tCubicBezier( t, v0.z, v1.z, v2.z, v3.z )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\t\tthis.v3.copy( source.v3 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\t\tdata.v3 = this.v3.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\t\tthis.v3.fromArray( json.v3 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass LineCurve extends Curve {\n\n\tconstructor( v1 = new Vector2(), v2 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\tthis.isLineCurve = true;\n\n\t\tthis.type = 'LineCurve';\n\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tif ( t === 1 ) {\n\n\t\t\tpoint.copy( this.v2 );\n\n\t\t} else {\n\n\t\t\tpoint.copy( this.v2 ).sub( this.v1 );\n\t\t\tpoint.multiplyScalar( t ).add( this.v1 );\n\n\t\t}\n\n\t\treturn point;\n\n\t}\n\n\t// Line curve is linear, so we can overwrite default getPointAt\n\tgetPointAt( u, optionalTarget ) {\n\n\t\treturn this.getPoint( u, optionalTarget );\n\n\t}\n\n\tgetTangent( t, optionalTarget = new Vector2() ) {\n\n\t\treturn optionalTarget.subVectors( this.v2, this.v1 ).normalize();\n\n\t}\n\n\tgetTangentAt( u, optionalTarget ) {\n\n\t\treturn this.getTangent( u, optionalTarget );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass LineCurve3 extends Curve {\n\n\tconstructor( v1 = new Vector3(), v2 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\tthis.isLineCurve3 = true;\n\n\t\tthis.type = 'LineCurve3';\n\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tif ( t === 1 ) {\n\n\t\t\tpoint.copy( this.v2 );\n\n\t\t} else {\n\n\t\t\tpoint.copy( this.v2 ).sub( this.v1 );\n\t\t\tpoint.multiplyScalar( t ).add( this.v1 );\n\n\t\t}\n\n\t\treturn point;\n\n\t}\n\n\t// Line curve is linear, so we can overwrite default getPointAt\n\tgetPointAt( u, optionalTarget ) {\n\n\t\treturn this.getPoint( u, optionalTarget );\n\n\t}\n\n\tgetTangent( t, optionalTarget = new Vector3() ) {\n\n\t\treturn optionalTarget.subVectors( this.v2, this.v1 ).normalize();\n\n\t}\n\n\tgetTangentAt( u, optionalTarget ) {\n\n\t\treturn this.getTangent( u, optionalTarget );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass QuadraticBezierCurve extends Curve {\n\n\tconstructor( v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\tthis.isQuadraticBezierCurve = true;\n\n\t\tthis.type = 'QuadraticBezierCurve';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2;\n\n\t\tpoint.set(\n\t\t\tQuadraticBezier( t, v0.x, v1.x, v2.x ),\n\t\t\tQuadraticBezier( t, v0.y, v1.y, v2.y )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass QuadraticBezierCurve3 extends Curve {\n\n\tconstructor( v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\tthis.isQuadraticBezierCurve3 = true;\n\n\t\tthis.type = 'QuadraticBezierCurve3';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2;\n\n\t\tpoint.set(\n\t\t\tQuadraticBezier( t, v0.x, v1.x, v2.x ),\n\t\t\tQuadraticBezier( t, v0.y, v1.y, v2.y ),\n\t\t\tQuadraticBezier( t, v0.z, v1.z, v2.z )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass SplineCurve extends Curve {\n\n\tconstructor( points = [] ) {\n\n\t\tsuper();\n\n\t\tthis.isSplineCurve = true;\n\n\t\tthis.type = 'SplineCurve';\n\n\t\tthis.points = points;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst points = this.points;\n\t\tconst p = ( points.length - 1 ) * t;\n\n\t\tconst intPoint = Math.floor( p );\n\t\tconst weight = p - intPoint;\n\n\t\tconst p0 = points[ intPoint === 0 ? intPoint : intPoint - 1 ];\n\t\tconst p1 = points[ intPoint ];\n\t\tconst p2 = points[ intPoint > points.length - 2 ? points.length - 1 : intPoint + 1 ];\n\t\tconst p3 = points[ intPoint > points.length - 3 ? points.length - 1 : intPoint + 2 ];\n\n\t\tpoint.set(\n\t\t\tCatmullRom( weight, p0.x, p1.x, p2.x, p3.x ),\n\t\t\tCatmullRom( weight, p0.y, p1.y, p2.y, p3.y )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = source.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = source.points[ i ];\n\n\t\t\tthis.points.push( point.clone() );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.points = [];\n\n\t\tfor ( let i = 0, l = this.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = this.points[ i ];\n\t\t\tdata.points.push( point.toArray() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = json.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = json.points[ i ];\n\t\t\tthis.points.push( new Vector2().fromArray( point ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nvar Curves = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tArcCurve: ArcCurve,\n\tCatmullRomCurve3: CatmullRomCurve3,\n\tCubicBezierCurve: CubicBezierCurve,\n\tCubicBezierCurve3: CubicBezierCurve3,\n\tEllipseCurve: EllipseCurve,\n\tLineCurve: LineCurve,\n\tLineCurve3: LineCurve3,\n\tQuadraticBezierCurve: QuadraticBezierCurve,\n\tQuadraticBezierCurve3: QuadraticBezierCurve3,\n\tSplineCurve: SplineCurve\n});\n\n/**************************************************************\n *\tCurved Path - a curve path is simply a array of connected\n * curves, but retains the api of a curve\n **************************************************************/\n\nclass CurvePath extends Curve {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'CurvePath';\n\n\t\tthis.curves = [];\n\t\tthis.autoClose = false; // Automatically closes the path\n\n\t}\n\n\tadd( curve ) {\n\n\t\tthis.curves.push( curve );\n\n\t}\n\n\tclosePath() {\n\n\t\t// Add a line curve if start and end of lines are not connected\n\t\tconst startPoint = this.curves[ 0 ].getPoint( 0 );\n\t\tconst endPoint = this.curves[ this.curves.length - 1 ].getPoint( 1 );\n\n\t\tif ( ! startPoint.equals( endPoint ) ) {\n\n\t\t\tconst lineType = ( startPoint.isVector2 === true ) ? 'LineCurve' : 'LineCurve3';\n\t\t\tthis.curves.push( new Curves[ lineType ]( endPoint, startPoint ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// To get accurate point with reference to\n\t// entire path distance at time t,\n\t// following has to be done:\n\n\t// 1. Length of each sub path have to be known\n\t// 2. Locate and identify type of curve\n\t// 3. Get t for the curve\n\t// 4. Return curve.getPointAt(t')\n\n\tgetPoint( t, optionalTarget ) {\n\n\t\tconst d = t * this.getLength();\n\t\tconst curveLengths = this.getCurveLengths();\n\t\tlet i = 0;\n\n\t\t// To think about boundaries points.\n\n\t\twhile ( i < curveLengths.length ) {\n\n\t\t\tif ( curveLengths[ i ] >= d ) {\n\n\t\t\t\tconst diff = curveLengths[ i ] - d;\n\t\t\t\tconst curve = this.curves[ i ];\n\n\t\t\t\tconst segmentLength = curve.getLength();\n\t\t\t\tconst u = segmentLength === 0 ? 0 : 1 - diff / segmentLength;\n\n\t\t\t\treturn curve.getPointAt( u, optionalTarget );\n\n\t\t\t}\n\n\t\t\ti ++;\n\n\t\t}\n\n\t\treturn null;\n\n\t\t// loop where sum != 0, sum > d , sum+1 1 && ! points[ points.length - 1 ].equals( points[ 0 ] ) ) {\n\n\t\t\tpoints.push( points[ 0 ] );\n\n\t\t}\n\n\t\treturn points;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.curves = [];\n\n\t\tfor ( let i = 0, l = source.curves.length; i < l; i ++ ) {\n\n\t\t\tconst curve = source.curves[ i ];\n\n\t\t\tthis.curves.push( curve.clone() );\n\n\t\t}\n\n\t\tthis.autoClose = source.autoClose;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.autoClose = this.autoClose;\n\t\tdata.curves = [];\n\n\t\tfor ( let i = 0, l = this.curves.length; i < l; i ++ ) {\n\n\t\t\tconst curve = this.curves[ i ];\n\t\t\tdata.curves.push( curve.toJSON() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.autoClose = json.autoClose;\n\t\tthis.curves = [];\n\n\t\tfor ( let i = 0, l = json.curves.length; i < l; i ++ ) {\n\n\t\t\tconst curve = json.curves[ i ];\n\t\t\tthis.curves.push( new Curves[ curve.type ]().fromJSON( curve ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass Path extends CurvePath {\n\n\tconstructor( points ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Path';\n\n\t\tthis.currentPoint = new Vector2();\n\n\t\tif ( points ) {\n\n\t\t\tthis.setFromPoints( points );\n\n\t\t}\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.moveTo( points[ 0 ].x, points[ 0 ].y );\n\n\t\tfor ( let i = 1, l = points.length; i < l; i ++ ) {\n\n\t\t\tthis.lineTo( points[ i ].x, points[ i ].y );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tmoveTo( x, y ) {\n\n\t\tthis.currentPoint.set( x, y ); // TODO consider referencing vectors instead of copying?\n\n\t\treturn this;\n\n\t}\n\n\tlineTo( x, y ) {\n\n\t\tconst curve = new LineCurve( this.currentPoint.clone(), new Vector2( x, y ) );\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.set( x, y );\n\n\t\treturn this;\n\n\t}\n\n\tquadraticCurveTo( aCPx, aCPy, aX, aY ) {\n\n\t\tconst curve = new QuadraticBezierCurve(\n\t\t\tthis.currentPoint.clone(),\n\t\t\tnew Vector2( aCPx, aCPy ),\n\t\t\tnew Vector2( aX, aY )\n\t\t);\n\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.set( aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tbezierCurveTo( aCP1x, aCP1y, aCP2x, aCP2y, aX, aY ) {\n\n\t\tconst curve = new CubicBezierCurve(\n\t\t\tthis.currentPoint.clone(),\n\t\t\tnew Vector2( aCP1x, aCP1y ),\n\t\t\tnew Vector2( aCP2x, aCP2y ),\n\t\t\tnew Vector2( aX, aY )\n\t\t);\n\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.set( aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tsplineThru( pts /*Array of Vector*/ ) {\n\n\t\tconst npts = [ this.currentPoint.clone() ].concat( pts );\n\n\t\tconst curve = new SplineCurve( npts );\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.copy( pts[ pts.length - 1 ] );\n\n\t\treturn this;\n\n\t}\n\n\tarc( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) {\n\n\t\tconst x0 = this.currentPoint.x;\n\t\tconst y0 = this.currentPoint.y;\n\n\t\tthis.absarc( aX + x0, aY + y0, aRadius,\n\t\t\taStartAngle, aEndAngle, aClockwise );\n\n\t\treturn this;\n\n\t}\n\n\tabsarc( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) {\n\n\t\tthis.absellipse( aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise );\n\n\t\treturn this;\n\n\t}\n\n\tellipse( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation ) {\n\n\t\tconst x0 = this.currentPoint.x;\n\t\tconst y0 = this.currentPoint.y;\n\n\t\tthis.absellipse( aX + x0, aY + y0, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation );\n\n\t\treturn this;\n\n\t}\n\n\tabsellipse( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation ) {\n\n\t\tconst curve = new EllipseCurve( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation );\n\n\t\tif ( this.curves.length > 0 ) {\n\n\t\t\t// if a previous curve is present, attempt to join\n\t\t\tconst firstPoint = curve.getPoint( 0 );\n\n\t\t\tif ( ! firstPoint.equals( this.currentPoint ) ) {\n\n\t\t\t\tthis.lineTo( firstPoint.x, firstPoint.y );\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.curves.push( curve );\n\n\t\tconst lastPoint = curve.getPoint( 1 );\n\t\tthis.currentPoint.copy( lastPoint );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.currentPoint.copy( source.currentPoint );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.currentPoint = this.currentPoint.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.currentPoint.fromArray( json.currentPoint );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass LatheGeometry extends BufferGeometry {\n\n\tconstructor( points = [ new Vector2( 0, - 0.5 ), new Vector2( 0.5, 0 ), new Vector2( 0, 0.5 ) ], segments = 12, phiStart = 0, phiLength = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'LatheGeometry';\n\n\t\tthis.parameters = {\n\t\t\tpoints: points,\n\t\t\tsegments: segments,\n\t\t\tphiStart: phiStart,\n\t\t\tphiLength: phiLength\n\t\t};\n\n\t\tsegments = Math.floor( segments );\n\n\t\t// clamp phiLength so it's in range of [ 0, 2PI ]\n\n\t\tphiLength = clamp( phiLength, 0, Math.PI * 2 );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst uvs = [];\n\t\tconst initNormals = [];\n\t\tconst normals = [];\n\n\t\t// helper variables\n\n\t\tconst inverseSegments = 1.0 / segments;\n\t\tconst vertex = new Vector3();\n\t\tconst uv = new Vector2();\n\t\tconst normal = new Vector3();\n\t\tconst curNormal = new Vector3();\n\t\tconst prevNormal = new Vector3();\n\t\tlet dx = 0;\n\t\tlet dy = 0;\n\n\t\t// pre-compute normals for initial \"meridian\"\n\n\t\tfor ( let j = 0; j <= ( points.length - 1 ); j ++ ) {\n\n\t\t\tswitch ( j ) {\n\n\t\t\t\tcase 0:\t\t\t\t// special handling for 1st vertex on path\n\n\t\t\t\t\tdx = points[ j + 1 ].x - points[ j ].x;\n\t\t\t\t\tdy = points[ j + 1 ].y - points[ j ].y;\n\n\t\t\t\t\tnormal.x = dy * 1.0;\n\t\t\t\t\tnormal.y = - dx;\n\t\t\t\t\tnormal.z = dy * 0.0;\n\n\t\t\t\t\tprevNormal.copy( normal );\n\n\t\t\t\t\tnormal.normalize();\n\n\t\t\t\t\tinitNormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ( points.length - 1 ):\t// special handling for last Vertex on path\n\n\t\t\t\t\tinitNormals.push( prevNormal.x, prevNormal.y, prevNormal.z );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\t\t\t// default handling for all vertices in between\n\n\t\t\t\t\tdx = points[ j + 1 ].x - points[ j ].x;\n\t\t\t\t\tdy = points[ j + 1 ].y - points[ j ].y;\n\n\t\t\t\t\tnormal.x = dy * 1.0;\n\t\t\t\t\tnormal.y = - dx;\n\t\t\t\t\tnormal.z = dy * 0.0;\n\n\t\t\t\t\tcurNormal.copy( normal );\n\n\t\t\t\t\tnormal.x += prevNormal.x;\n\t\t\t\t\tnormal.y += prevNormal.y;\n\t\t\t\t\tnormal.z += prevNormal.z;\n\n\t\t\t\t\tnormal.normalize();\n\n\t\t\t\t\tinitNormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t\tprevNormal.copy( curNormal );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// generate vertices, uvs and normals\n\n\t\tfor ( let i = 0; i <= segments; i ++ ) {\n\n\t\t\tconst phi = phiStart + i * inverseSegments * phiLength;\n\n\t\t\tconst sin = Math.sin( phi );\n\t\t\tconst cos = Math.cos( phi );\n\n\t\t\tfor ( let j = 0; j <= ( points.length - 1 ); j ++ ) {\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = points[ j ].x * sin;\n\t\t\t\tvertex.y = points[ j ].y;\n\t\t\t\tvertex.z = points[ j ].x * cos;\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// uv\n\n\t\t\t\tuv.x = i / segments;\n\t\t\t\tuv.y = j / ( points.length - 1 );\n\n\t\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t\t\t// normal\n\n\t\t\t\tconst x = initNormals[ 3 * j + 0 ] * sin;\n\t\t\t\tconst y = initNormals[ 3 * j + 1 ];\n\t\t\t\tconst z = initNormals[ 3 * j + 0 ] * cos;\n\n\t\t\t\tnormals.push( x, y, z );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// indices\n\n\t\tfor ( let i = 0; i < segments; i ++ ) {\n\n\t\t\tfor ( let j = 0; j < ( points.length - 1 ); j ++ ) {\n\n\t\t\t\tconst base = j + i * points.length;\n\n\t\t\t\tconst a = base;\n\t\t\t\tconst b = base + points.length;\n\t\t\t\tconst c = base + points.length + 1;\n\t\t\t\tconst d = base + 1;\n\n\t\t\t\t// faces\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( c, d, b );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new LatheGeometry( data.points, data.segments, data.phiStart, data.phiLength );\n\n\t}\n\n}\n\nclass CapsuleGeometry extends LatheGeometry {\n\n\tconstructor( radius = 1, length = 1, capSegments = 4, radialSegments = 8 ) {\n\n\t\tconst path = new Path();\n\t\tpath.absarc( 0, - length / 2, radius, Math.PI * 1.5, 0 );\n\t\tpath.absarc( 0, length / 2, radius, 0, Math.PI * 0.5 );\n\n\t\tsuper( path.getPoints( capSegments ), radialSegments );\n\n\t\tthis.type = 'CapsuleGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tlength: length,\n\t\t\tcapSegments: capSegments,\n\t\t\tradialSegments: radialSegments,\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new CapsuleGeometry( data.radius, data.length, data.capSegments, data.radialSegments );\n\n\t}\n\n}\n\nclass CircleGeometry extends BufferGeometry {\n\n\tconstructor( radius = 1, segments = 32, thetaStart = 0, thetaLength = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CircleGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tsegments: segments,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t\tsegments = Math.max( 3, segments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tconst vertex = new Vector3();\n\t\tconst uv = new Vector2();\n\n\t\t// center point\n\n\t\tvertices.push( 0, 0, 0 );\n\t\tnormals.push( 0, 0, 1 );\n\t\tuvs.push( 0.5, 0.5 );\n\n\t\tfor ( let s = 0, i = 3; s <= segments; s ++, i += 3 ) {\n\n\t\t\tconst segment = thetaStart + s / segments * thetaLength;\n\n\t\t\t// vertex\n\n\t\t\tvertex.x = radius * Math.cos( segment );\n\t\t\tvertex.y = radius * Math.sin( segment );\n\n\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t// normal\n\n\t\t\tnormals.push( 0, 0, 1 );\n\n\t\t\t// uvs\n\n\t\t\tuv.x = ( vertices[ i ] / radius + 1 ) / 2;\n\t\t\tuv.y = ( vertices[ i + 1 ] / radius + 1 ) / 2;\n\n\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t}\n\n\t\t// indices\n\n\t\tfor ( let i = 1; i <= segments; i ++ ) {\n\n\t\t\tindices.push( i, i + 1, 0 );\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new CircleGeometry( data.radius, data.segments, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass CylinderGeometry extends BufferGeometry {\n\n\tconstructor( radiusTop = 1, radiusBottom = 1, height = 1, radialSegments = 32, heightSegments = 1, openEnded = false, thetaStart = 0, thetaLength = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CylinderGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradiusTop: radiusTop,\n\t\t\tradiusBottom: radiusBottom,\n\t\t\theight: height,\n\t\t\tradialSegments: radialSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\topenEnded: openEnded,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t\tconst scope = this;\n\n\t\tradialSegments = Math.floor( radialSegments );\n\t\theightSegments = Math.floor( heightSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tlet index = 0;\n\t\tconst indexArray = [];\n\t\tconst halfHeight = height / 2;\n\t\tlet groupStart = 0;\n\n\t\t// generate geometry\n\n\t\tgenerateTorso();\n\n\t\tif ( openEnded === false ) {\n\n\t\t\tif ( radiusTop > 0 ) generateCap( true );\n\t\t\tif ( radiusBottom > 0 ) generateCap( false );\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\tfunction generateTorso() {\n\n\t\t\tconst normal = new Vector3();\n\t\t\tconst vertex = new Vector3();\n\n\t\t\tlet groupCount = 0;\n\n\t\t\t// this will be used to calculate the normal\n\t\t\tconst slope = ( radiusBottom - radiusTop ) / height;\n\n\t\t\t// generate vertices, normals and uvs\n\n\t\t\tfor ( let y = 0; y <= heightSegments; y ++ ) {\n\n\t\t\t\tconst indexRow = [];\n\n\t\t\t\tconst v = y / heightSegments;\n\n\t\t\t\t// calculate the radius of the current row\n\n\t\t\t\tconst radius = v * ( radiusBottom - radiusTop ) + radiusTop;\n\n\t\t\t\tfor ( let x = 0; x <= radialSegments; x ++ ) {\n\n\t\t\t\t\tconst u = x / radialSegments;\n\n\t\t\t\t\tconst theta = u * thetaLength + thetaStart;\n\n\t\t\t\t\tconst sinTheta = Math.sin( theta );\n\t\t\t\t\tconst cosTheta = Math.cos( theta );\n\n\t\t\t\t\t// vertex\n\n\t\t\t\t\tvertex.x = radius * sinTheta;\n\t\t\t\t\tvertex.y = - v * height + halfHeight;\n\t\t\t\t\tvertex.z = radius * cosTheta;\n\t\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t\t// normal\n\n\t\t\t\t\tnormal.set( sinTheta, slope, cosTheta ).normalize();\n\t\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t\t// uv\n\n\t\t\t\t\tuvs.push( u, 1 - v );\n\n\t\t\t\t\t// save index of vertex in respective row\n\n\t\t\t\t\tindexRow.push( index ++ );\n\n\t\t\t\t}\n\n\t\t\t\t// now save vertices of the row in our index array\n\n\t\t\t\tindexArray.push( indexRow );\n\n\t\t\t}\n\n\t\t\t// generate indices\n\n\t\t\tfor ( let x = 0; x < radialSegments; x ++ ) {\n\n\t\t\t\tfor ( let y = 0; y < heightSegments; y ++ ) {\n\n\t\t\t\t\t// we use the index array to access the correct indices\n\n\t\t\t\t\tconst a = indexArray[ y ][ x ];\n\t\t\t\t\tconst b = indexArray[ y + 1 ][ x ];\n\t\t\t\t\tconst c = indexArray[ y + 1 ][ x + 1 ];\n\t\t\t\t\tconst d = indexArray[ y ][ x + 1 ];\n\n\t\t\t\t\t// faces\n\n\t\t\t\t\tif ( radiusTop > 0 || y !== 0 ) {\n\n\t\t\t\t\t\tindices.push( a, b, d );\n\t\t\t\t\t\tgroupCount += 3;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( radiusBottom > 0 || y !== heightSegments - 1 ) {\n\n\t\t\t\t\t\tindices.push( b, c, d );\n\t\t\t\t\t\tgroupCount += 3;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// add a group to the geometry. this will ensure multi material support\n\n\t\t\tscope.addGroup( groupStart, groupCount, 0 );\n\n\t\t\t// calculate new start value for groups\n\n\t\t\tgroupStart += groupCount;\n\n\t\t}\n\n\t\tfunction generateCap( top ) {\n\n\t\t\t// save the index of the first center vertex\n\t\t\tconst centerIndexStart = index;\n\n\t\t\tconst uv = new Vector2();\n\t\t\tconst vertex = new Vector3();\n\n\t\t\tlet groupCount = 0;\n\n\t\t\tconst radius = ( top === true ) ? radiusTop : radiusBottom;\n\t\t\tconst sign = ( top === true ) ? 1 : - 1;\n\n\t\t\t// first we generate the center vertex data of the cap.\n\t\t\t// because the geometry needs one set of uvs per face,\n\t\t\t// we must generate a center vertex per face/segment\n\n\t\t\tfor ( let x = 1; x <= radialSegments; x ++ ) {\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertices.push( 0, halfHeight * sign, 0 );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormals.push( 0, sign, 0 );\n\n\t\t\t\t// uv\n\n\t\t\t\tuvs.push( 0.5, 0.5 );\n\n\t\t\t\t// increase index\n\n\t\t\t\tindex ++;\n\n\t\t\t}\n\n\t\t\t// save the index of the last center vertex\n\t\t\tconst centerIndexEnd = index;\n\n\t\t\t// now we generate the surrounding vertices, normals and uvs\n\n\t\t\tfor ( let x = 0; x <= radialSegments; x ++ ) {\n\n\t\t\t\tconst u = x / radialSegments;\n\t\t\t\tconst theta = u * thetaLength + thetaStart;\n\n\t\t\t\tconst cosTheta = Math.cos( theta );\n\t\t\t\tconst sinTheta = Math.sin( theta );\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = radius * sinTheta;\n\t\t\t\tvertex.y = halfHeight * sign;\n\t\t\t\tvertex.z = radius * cosTheta;\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormals.push( 0, sign, 0 );\n\n\t\t\t\t// uv\n\n\t\t\t\tuv.x = ( cosTheta * 0.5 ) + 0.5;\n\t\t\t\tuv.y = ( sinTheta * 0.5 * sign ) + 0.5;\n\t\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t\t\t// increase index\n\n\t\t\t\tindex ++;\n\n\t\t\t}\n\n\t\t\t// generate indices\n\n\t\t\tfor ( let x = 0; x < radialSegments; x ++ ) {\n\n\t\t\t\tconst c = centerIndexStart + x;\n\t\t\t\tconst i = centerIndexEnd + x;\n\n\t\t\t\tif ( top === true ) {\n\n\t\t\t\t\t// face top\n\n\t\t\t\t\tindices.push( i, i + 1, c );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// face bottom\n\n\t\t\t\t\tindices.push( i + 1, i, c );\n\n\t\t\t\t}\n\n\t\t\t\tgroupCount += 3;\n\n\t\t\t}\n\n\t\t\t// add a group to the geometry. this will ensure multi material support\n\n\t\t\tscope.addGroup( groupStart, groupCount, top === true ? 1 : 2 );\n\n\t\t\t// calculate new start value for groups\n\n\t\t\tgroupStart += groupCount;\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new CylinderGeometry( data.radiusTop, data.radiusBottom, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass ConeGeometry extends CylinderGeometry {\n\n\tconstructor( radius = 1, height = 1, radialSegments = 32, heightSegments = 1, openEnded = false, thetaStart = 0, thetaLength = Math.PI * 2 ) {\n\n\t\tsuper( 0, radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength );\n\n\t\tthis.type = 'ConeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\theight: height,\n\t\t\tradialSegments: radialSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\topenEnded: openEnded,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new ConeGeometry( data.radius, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass PolyhedronGeometry extends BufferGeometry {\n\n\tconstructor( vertices = [], indices = [], radius = 1, detail = 0 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'PolyhedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tvertices: vertices,\n\t\t\tindices: indices,\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t\t// default buffer data\n\n\t\tconst vertexBuffer = [];\n\t\tconst uvBuffer = [];\n\n\t\t// the subdivision creates the vertex buffer data\n\n\t\tsubdivide( detail );\n\n\t\t// all vertices should lie on a conceptual sphere with a given radius\n\n\t\tapplyRadius( radius );\n\n\t\t// finally, create the uv data\n\n\t\tgenerateUVs();\n\n\t\t// build non-indexed geometry\n\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertexBuffer, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( vertexBuffer.slice(), 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvBuffer, 2 ) );\n\n\t\tif ( detail === 0 ) {\n\n\t\t\tthis.computeVertexNormals(); // flat normals\n\n\t\t} else {\n\n\t\t\tthis.normalizeNormals(); // smooth normals\n\n\t\t}\n\n\t\t// helper functions\n\n\t\tfunction subdivide( detail ) {\n\n\t\t\tconst a = new Vector3();\n\t\t\tconst b = new Vector3();\n\t\t\tconst c = new Vector3();\n\n\t\t\t// iterate over all faces and apply a subdivision with the given detail value\n\n\t\t\tfor ( let i = 0; i < indices.length; i += 3 ) {\n\n\t\t\t\t// get the vertices of the face\n\n\t\t\t\tgetVertexByIndex( indices[ i + 0 ], a );\n\t\t\t\tgetVertexByIndex( indices[ i + 1 ], b );\n\t\t\t\tgetVertexByIndex( indices[ i + 2 ], c );\n\n\t\t\t\t// perform subdivision\n\n\t\t\t\tsubdivideFace( a, b, c, detail );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction subdivideFace( a, b, c, detail ) {\n\n\t\t\tconst cols = detail + 1;\n\n\t\t\t// we use this multidimensional array as a data structure for creating the subdivision\n\n\t\t\tconst v = [];\n\n\t\t\t// construct all of the vertices for this subdivision\n\n\t\t\tfor ( let i = 0; i <= cols; i ++ ) {\n\n\t\t\t\tv[ i ] = [];\n\n\t\t\t\tconst aj = a.clone().lerp( c, i / cols );\n\t\t\t\tconst bj = b.clone().lerp( c, i / cols );\n\n\t\t\t\tconst rows = cols - i;\n\n\t\t\t\tfor ( let j = 0; j <= rows; j ++ ) {\n\n\t\t\t\t\tif ( j === 0 && i === cols ) {\n\n\t\t\t\t\t\tv[ i ][ j ] = aj;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tv[ i ][ j ] = aj.clone().lerp( bj, j / rows );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// construct all of the faces\n\n\t\t\tfor ( let i = 0; i < cols; i ++ ) {\n\n\t\t\t\tfor ( let j = 0; j < 2 * ( cols - i ) - 1; j ++ ) {\n\n\t\t\t\t\tconst k = Math.floor( j / 2 );\n\n\t\t\t\t\tif ( j % 2 === 0 ) {\n\n\t\t\t\t\t\tpushVertex( v[ i ][ k + 1 ] );\n\t\t\t\t\t\tpushVertex( v[ i + 1 ][ k ] );\n\t\t\t\t\t\tpushVertex( v[ i ][ k ] );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tpushVertex( v[ i ][ k + 1 ] );\n\t\t\t\t\t\tpushVertex( v[ i + 1 ][ k + 1 ] );\n\t\t\t\t\t\tpushVertex( v[ i + 1 ][ k ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction applyRadius( radius ) {\n\n\t\t\tconst vertex = new Vector3();\n\n\t\t\t// iterate over the entire buffer and apply the radius to each vertex\n\n\t\t\tfor ( let i = 0; i < vertexBuffer.length; i += 3 ) {\n\n\t\t\t\tvertex.x = vertexBuffer[ i + 0 ];\n\t\t\t\tvertex.y = vertexBuffer[ i + 1 ];\n\t\t\t\tvertex.z = vertexBuffer[ i + 2 ];\n\n\t\t\t\tvertex.normalize().multiplyScalar( radius );\n\n\t\t\t\tvertexBuffer[ i + 0 ] = vertex.x;\n\t\t\t\tvertexBuffer[ i + 1 ] = vertex.y;\n\t\t\t\tvertexBuffer[ i + 2 ] = vertex.z;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction generateUVs() {\n\n\t\t\tconst vertex = new Vector3();\n\n\t\t\tfor ( let i = 0; i < vertexBuffer.length; i += 3 ) {\n\n\t\t\t\tvertex.x = vertexBuffer[ i + 0 ];\n\t\t\t\tvertex.y = vertexBuffer[ i + 1 ];\n\t\t\t\tvertex.z = vertexBuffer[ i + 2 ];\n\n\t\t\t\tconst u = azimuth( vertex ) / 2 / Math.PI + 0.5;\n\t\t\t\tconst v = inclination( vertex ) / Math.PI + 0.5;\n\t\t\t\tuvBuffer.push( u, 1 - v );\n\n\t\t\t}\n\n\t\t\tcorrectUVs();\n\n\t\t\tcorrectSeam();\n\n\t\t}\n\n\t\tfunction correctSeam() {\n\n\t\t\t// handle case when face straddles the seam, see #3269\n\n\t\t\tfor ( let i = 0; i < uvBuffer.length; i += 6 ) {\n\n\t\t\t\t// uv data of a single face\n\n\t\t\t\tconst x0 = uvBuffer[ i + 0 ];\n\t\t\t\tconst x1 = uvBuffer[ i + 2 ];\n\t\t\t\tconst x2 = uvBuffer[ i + 4 ];\n\n\t\t\t\tconst max = Math.max( x0, x1, x2 );\n\t\t\t\tconst min = Math.min( x0, x1, x2 );\n\n\t\t\t\t// 0.9 is somewhat arbitrary\n\n\t\t\t\tif ( max > 0.9 && min < 0.1 ) {\n\n\t\t\t\t\tif ( x0 < 0.2 ) uvBuffer[ i + 0 ] += 1;\n\t\t\t\t\tif ( x1 < 0.2 ) uvBuffer[ i + 2 ] += 1;\n\t\t\t\t\tif ( x2 < 0.2 ) uvBuffer[ i + 4 ] += 1;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction pushVertex( vertex ) {\n\n\t\t\tvertexBuffer.push( vertex.x, vertex.y, vertex.z );\n\n\t\t}\n\n\t\tfunction getVertexByIndex( index, vertex ) {\n\n\t\t\tconst stride = index * 3;\n\n\t\t\tvertex.x = vertices[ stride + 0 ];\n\t\t\tvertex.y = vertices[ stride + 1 ];\n\t\t\tvertex.z = vertices[ stride + 2 ];\n\n\t\t}\n\n\t\tfunction correctUVs() {\n\n\t\t\tconst a = new Vector3();\n\t\t\tconst b = new Vector3();\n\t\t\tconst c = new Vector3();\n\n\t\t\tconst centroid = new Vector3();\n\n\t\t\tconst uvA = new Vector2();\n\t\t\tconst uvB = new Vector2();\n\t\t\tconst uvC = new Vector2();\n\n\t\t\tfor ( let i = 0, j = 0; i < vertexBuffer.length; i += 9, j += 6 ) {\n\n\t\t\t\ta.set( vertexBuffer[ i + 0 ], vertexBuffer[ i + 1 ], vertexBuffer[ i + 2 ] );\n\t\t\t\tb.set( vertexBuffer[ i + 3 ], vertexBuffer[ i + 4 ], vertexBuffer[ i + 5 ] );\n\t\t\t\tc.set( vertexBuffer[ i + 6 ], vertexBuffer[ i + 7 ], vertexBuffer[ i + 8 ] );\n\n\t\t\t\tuvA.set( uvBuffer[ j + 0 ], uvBuffer[ j + 1 ] );\n\t\t\t\tuvB.set( uvBuffer[ j + 2 ], uvBuffer[ j + 3 ] );\n\t\t\t\tuvC.set( uvBuffer[ j + 4 ], uvBuffer[ j + 5 ] );\n\n\t\t\t\tcentroid.copy( a ).add( b ).add( c ).divideScalar( 3 );\n\n\t\t\t\tconst azi = azimuth( centroid );\n\n\t\t\t\tcorrectUV( uvA, j + 0, a, azi );\n\t\t\t\tcorrectUV( uvB, j + 2, b, azi );\n\t\t\t\tcorrectUV( uvC, j + 4, c, azi );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction correctUV( uv, stride, vector, azimuth ) {\n\n\t\t\tif ( ( azimuth < 0 ) && ( uv.x === 1 ) ) {\n\n\t\t\t\tuvBuffer[ stride ] = uv.x - 1;\n\n\t\t\t}\n\n\t\t\tif ( ( vector.x === 0 ) && ( vector.z === 0 ) ) {\n\n\t\t\t\tuvBuffer[ stride ] = azimuth / 2 / Math.PI + 0.5;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Angle around the Y axis, counter-clockwise when looking from above.\n\n\t\tfunction azimuth( vector ) {\n\n\t\t\treturn Math.atan2( vector.z, - vector.x );\n\n\t\t}\n\n\n\t\t// Angle above the XZ plane.\n\n\t\tfunction inclination( vector ) {\n\n\t\t\treturn Math.atan2( - vector.y, Math.sqrt( ( vector.x * vector.x ) + ( vector.z * vector.z ) ) );\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new PolyhedronGeometry( data.vertices, data.indices, data.radius, data.details );\n\n\t}\n\n}\n\nclass DodecahedronGeometry extends PolyhedronGeometry {\n\n\tconstructor( radius = 1, detail = 0 ) {\n\n\t\tconst t = ( 1 + Math.sqrt( 5 ) ) / 2;\n\t\tconst r = 1 / t;\n\n\t\tconst vertices = [\n\n\t\t\t// (±1, ±1, ±1)\n\t\t\t- 1, - 1, - 1,\t- 1, - 1, 1,\n\t\t\t- 1, 1, - 1, - 1, 1, 1,\n\t\t\t1, - 1, - 1, 1, - 1, 1,\n\t\t\t1, 1, - 1, 1, 1, 1,\n\n\t\t\t// (0, ±1/φ, ±φ)\n\t\t\t0, - r, - t, 0, - r, t,\n\t\t\t0, r, - t, 0, r, t,\n\n\t\t\t// (±1/φ, ±φ, 0)\n\t\t\t- r, - t, 0, - r, t, 0,\n\t\t\tr, - t, 0, r, t, 0,\n\n\t\t\t// (±φ, 0, ±1/φ)\n\t\t\t- t, 0, - r, t, 0, - r,\n\t\t\t- t, 0, r, t, 0, r\n\t\t];\n\n\t\tconst indices = [\n\t\t\t3, 11, 7, \t3, 7, 15, \t3, 15, 13,\n\t\t\t7, 19, 17, \t7, 17, 6, \t7, 6, 15,\n\t\t\t17, 4, 8, \t17, 8, 10, \t17, 10, 6,\n\t\t\t8, 0, 16, \t8, 16, 2, \t8, 2, 10,\n\t\t\t0, 12, 1, \t0, 1, 18, \t0, 18, 16,\n\t\t\t6, 10, 2, \t6, 2, 13, \t6, 13, 15,\n\t\t\t2, 16, 18, \t2, 18, 3, \t2, 3, 13,\n\t\t\t18, 1, 9, \t18, 9, 11, \t18, 11, 3,\n\t\t\t4, 14, 12, \t4, 12, 0, \t4, 0, 8,\n\t\t\t11, 9, 5, \t11, 5, 19, \t11, 19, 7,\n\t\t\t19, 5, 14, \t19, 14, 4, \t19, 4, 17,\n\t\t\t1, 12, 14, \t1, 14, 5, \t1, 5, 9\n\t\t];\n\n\t\tsuper( vertices, indices, radius, detail );\n\n\t\tthis.type = 'DodecahedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new DodecahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\nconst _v0 = /*@__PURE__*/ new Vector3();\nconst _v1$1 = /*@__PURE__*/ new Vector3();\nconst _normal = /*@__PURE__*/ new Vector3();\nconst _triangle = /*@__PURE__*/ new Triangle();\n\nclass EdgesGeometry extends BufferGeometry {\n\n\tconstructor( geometry = null, thresholdAngle = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'EdgesGeometry';\n\n\t\tthis.parameters = {\n\t\t\tgeometry: geometry,\n\t\t\tthresholdAngle: thresholdAngle\n\t\t};\n\n\t\tif ( geometry !== null ) {\n\n\t\t\tconst precisionPoints = 4;\n\t\t\tconst precision = Math.pow( 10, precisionPoints );\n\t\t\tconst thresholdDot = Math.cos( DEG2RAD * thresholdAngle );\n\n\t\t\tconst indexAttr = geometry.getIndex();\n\t\t\tconst positionAttr = geometry.getAttribute( 'position' );\n\t\t\tconst indexCount = indexAttr ? indexAttr.count : positionAttr.count;\n\n\t\t\tconst indexArr = [ 0, 0, 0 ];\n\t\t\tconst vertKeys = [ 'a', 'b', 'c' ];\n\t\t\tconst hashes = new Array( 3 );\n\n\t\t\tconst edgeData = {};\n\t\t\tconst vertices = [];\n\t\t\tfor ( let i = 0; i < indexCount; i += 3 ) {\n\n\t\t\t\tif ( indexAttr ) {\n\n\t\t\t\t\tindexArr[ 0 ] = indexAttr.getX( i );\n\t\t\t\t\tindexArr[ 1 ] = indexAttr.getX( i + 1 );\n\t\t\t\t\tindexArr[ 2 ] = indexAttr.getX( i + 2 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tindexArr[ 0 ] = i;\n\t\t\t\t\tindexArr[ 1 ] = i + 1;\n\t\t\t\t\tindexArr[ 2 ] = i + 2;\n\n\t\t\t\t}\n\n\t\t\t\tconst { a, b, c } = _triangle;\n\t\t\t\ta.fromBufferAttribute( positionAttr, indexArr[ 0 ] );\n\t\t\t\tb.fromBufferAttribute( positionAttr, indexArr[ 1 ] );\n\t\t\t\tc.fromBufferAttribute( positionAttr, indexArr[ 2 ] );\n\t\t\t\t_triangle.getNormal( _normal );\n\n\t\t\t\t// create hashes for the edge from the vertices\n\t\t\t\thashes[ 0 ] = `${ Math.round( a.x * precision ) },${ Math.round( a.y * precision ) },${ Math.round( a.z * precision ) }`;\n\t\t\t\thashes[ 1 ] = `${ Math.round( b.x * precision ) },${ Math.round( b.y * precision ) },${ Math.round( b.z * precision ) }`;\n\t\t\t\thashes[ 2 ] = `${ Math.round( c.x * precision ) },${ Math.round( c.y * precision ) },${ Math.round( c.z * precision ) }`;\n\n\t\t\t\t// skip degenerate triangles\n\t\t\t\tif ( hashes[ 0 ] === hashes[ 1 ] || hashes[ 1 ] === hashes[ 2 ] || hashes[ 2 ] === hashes[ 0 ] ) {\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\t}\n\n\t\t\t\t// iterate over every edge\n\t\t\t\tfor ( let j = 0; j < 3; j ++ ) {\n\n\t\t\t\t\t// get the first and next vertex making up the edge\n\t\t\t\t\tconst jNext = ( j + 1 ) % 3;\n\t\t\t\t\tconst vecHash0 = hashes[ j ];\n\t\t\t\t\tconst vecHash1 = hashes[ jNext ];\n\t\t\t\t\tconst v0 = _triangle[ vertKeys[ j ] ];\n\t\t\t\t\tconst v1 = _triangle[ vertKeys[ jNext ] ];\n\n\t\t\t\t\tconst hash = `${ vecHash0 }_${ vecHash1 }`;\n\t\t\t\t\tconst reverseHash = `${ vecHash1 }_${ vecHash0 }`;\n\n\t\t\t\t\tif ( reverseHash in edgeData && edgeData[ reverseHash ] ) {\n\n\t\t\t\t\t\t// if we found a sibling edge add it into the vertex array if\n\t\t\t\t\t\t// it meets the angle threshold and delete the edge from the map.\n\t\t\t\t\t\tif ( _normal.dot( edgeData[ reverseHash ].normal ) <= thresholdDot ) {\n\n\t\t\t\t\t\t\tvertices.push( v0.x, v0.y, v0.z );\n\t\t\t\t\t\t\tvertices.push( v1.x, v1.y, v1.z );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tedgeData[ reverseHash ] = null;\n\n\t\t\t\t\t} else if ( ! ( hash in edgeData ) ) {\n\n\t\t\t\t\t\t// if we've already got an edge here then skip adding a new one\n\t\t\t\t\t\tedgeData[ hash ] = {\n\n\t\t\t\t\t\t\tindex0: indexArr[ j ],\n\t\t\t\t\t\t\tindex1: indexArr[ jNext ],\n\t\t\t\t\t\t\tnormal: _normal.clone(),\n\n\t\t\t\t\t\t};\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// iterate over all remaining, unmatched edges and add them to the vertex array\n\t\t\tfor ( const key in edgeData ) {\n\n\t\t\t\tif ( edgeData[ key ] ) {\n\n\t\t\t\t\tconst { index0, index1 } = edgeData[ key ];\n\t\t\t\t\t_v0.fromBufferAttribute( positionAttr, index0 );\n\t\t\t\t\t_v1$1.fromBufferAttribute( positionAttr, index1 );\n\n\t\t\t\t\tvertices.push( _v0.x, _v0.y, _v0.z );\n\t\t\t\t\tvertices.push( _v1$1.x, _v1$1.y, _v1$1.z );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass Shape extends Path {\n\n\tconstructor( points ) {\n\n\t\tsuper( points );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.type = 'Shape';\n\n\t\tthis.holes = [];\n\n\t}\n\n\tgetPointsHoles( divisions ) {\n\n\t\tconst holesPts = [];\n\n\t\tfor ( let i = 0, l = this.holes.length; i < l; i ++ ) {\n\n\t\t\tholesPts[ i ] = this.holes[ i ].getPoints( divisions );\n\n\t\t}\n\n\t\treturn holesPts;\n\n\t}\n\n\t// get points of shape and holes (keypoints based on segments parameter)\n\n\textractPoints( divisions ) {\n\n\t\treturn {\n\n\t\t\tshape: this.getPoints( divisions ),\n\t\t\tholes: this.getPointsHoles( divisions )\n\n\t\t};\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.holes = [];\n\n\t\tfor ( let i = 0, l = source.holes.length; i < l; i ++ ) {\n\n\t\t\tconst hole = source.holes[ i ];\n\n\t\t\tthis.holes.push( hole.clone() );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.uuid = this.uuid;\n\t\tdata.holes = [];\n\n\t\tfor ( let i = 0, l = this.holes.length; i < l; i ++ ) {\n\n\t\t\tconst hole = this.holes[ i ];\n\t\t\tdata.holes.push( hole.toJSON() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.uuid = json.uuid;\n\t\tthis.holes = [];\n\n\t\tfor ( let i = 0, l = json.holes.length; i < l; i ++ ) {\n\n\t\t\tconst hole = json.holes[ i ];\n\t\t\tthis.holes.push( new Path().fromJSON( hole ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\n/**\n * Port from https://github.com/mapbox/earcut (v2.2.4)\n */\n\nconst Earcut = {\n\n\ttriangulate: function ( data, holeIndices, dim = 2 ) {\n\n\t\tconst hasHoles = holeIndices && holeIndices.length;\n\t\tconst outerLen = hasHoles ? holeIndices[ 0 ] * dim : data.length;\n\t\tlet outerNode = linkedList( data, 0, outerLen, dim, true );\n\t\tconst triangles = [];\n\n\t\tif ( ! outerNode || outerNode.next === outerNode.prev ) return triangles;\n\n\t\tlet minX, minY, maxX, maxY, x, y, invSize;\n\n\t\tif ( hasHoles ) outerNode = eliminateHoles( data, holeIndices, outerNode, dim );\n\n\t\t// if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n\t\tif ( data.length > 80 * dim ) {\n\n\t\t\tminX = maxX = data[ 0 ];\n\t\t\tminY = maxY = data[ 1 ];\n\n\t\t\tfor ( let i = dim; i < outerLen; i += dim ) {\n\n\t\t\t\tx = data[ i ];\n\t\t\t\ty = data[ i + 1 ];\n\t\t\t\tif ( x < minX ) minX = x;\n\t\t\t\tif ( y < minY ) minY = y;\n\t\t\t\tif ( x > maxX ) maxX = x;\n\t\t\t\tif ( y > maxY ) maxY = y;\n\n\t\t\t}\n\n\t\t\t// minX, minY and invSize are later used to transform coords into integers for z-order calculation\n\t\t\tinvSize = Math.max( maxX - minX, maxY - minY );\n\t\t\tinvSize = invSize !== 0 ? 32767 / invSize : 0;\n\n\t\t}\n\n\t\tearcutLinked( outerNode, triangles, dim, minX, minY, invSize, 0 );\n\n\t\treturn triangles;\n\n\t}\n\n};\n\n// create a circular doubly linked list from polygon points in the specified winding order\nfunction linkedList( data, start, end, dim, clockwise ) {\n\n\tlet i, last;\n\n\tif ( clockwise === ( signedArea( data, start, end, dim ) > 0 ) ) {\n\n\t\tfor ( i = start; i < end; i += dim ) last = insertNode( i, data[ i ], data[ i + 1 ], last );\n\n\t} else {\n\n\t\tfor ( i = end - dim; i >= start; i -= dim ) last = insertNode( i, data[ i ], data[ i + 1 ], last );\n\n\t}\n\n\tif ( last && equals( last, last.next ) ) {\n\n\t\tremoveNode( last );\n\t\tlast = last.next;\n\n\t}\n\n\treturn last;\n\n}\n\n// eliminate colinear or duplicate points\nfunction filterPoints( start, end ) {\n\n\tif ( ! start ) return start;\n\tif ( ! end ) end = start;\n\n\tlet p = start,\n\t\tagain;\n\tdo {\n\n\t\tagain = false;\n\n\t\tif ( ! p.steiner && ( equals( p, p.next ) || area( p.prev, p, p.next ) === 0 ) ) {\n\n\t\t\tremoveNode( p );\n\t\t\tp = end = p.prev;\n\t\t\tif ( p === p.next ) break;\n\t\t\tagain = true;\n\n\t\t} else {\n\n\t\t\tp = p.next;\n\n\t\t}\n\n\t} while ( again || p !== end );\n\n\treturn end;\n\n}\n\n// main ear slicing loop which triangulates a polygon (given as a linked list)\nfunction earcutLinked( ear, triangles, dim, minX, minY, invSize, pass ) {\n\n\tif ( ! ear ) return;\n\n\t// interlink polygon nodes in z-order\n\tif ( ! pass && invSize ) indexCurve( ear, minX, minY, invSize );\n\n\tlet stop = ear,\n\t\tprev, next;\n\n\t// iterate through ears, slicing them one by one\n\twhile ( ear.prev !== ear.next ) {\n\n\t\tprev = ear.prev;\n\t\tnext = ear.next;\n\n\t\tif ( invSize ? isEarHashed( ear, minX, minY, invSize ) : isEar( ear ) ) {\n\n\t\t\t// cut off the triangle\n\t\t\ttriangles.push( prev.i / dim | 0 );\n\t\t\ttriangles.push( ear.i / dim | 0 );\n\t\t\ttriangles.push( next.i / dim | 0 );\n\n\t\t\tremoveNode( ear );\n\n\t\t\t// skipping the next vertex leads to less sliver triangles\n\t\t\tear = next.next;\n\t\t\tstop = next.next;\n\n\t\t\tcontinue;\n\n\t\t}\n\n\t\tear = next;\n\n\t\t// if we looped through the whole remaining polygon and can't find any more ears\n\t\tif ( ear === stop ) {\n\n\t\t\t// try filtering points and slicing again\n\t\t\tif ( ! pass ) {\n\n\t\t\t\tearcutLinked( filterPoints( ear ), triangles, dim, minX, minY, invSize, 1 );\n\n\t\t\t\t// if this didn't work, try curing all small self-intersections locally\n\n\t\t\t} else if ( pass === 1 ) {\n\n\t\t\t\tear = cureLocalIntersections( filterPoints( ear ), triangles, dim );\n\t\t\t\tearcutLinked( ear, triangles, dim, minX, minY, invSize, 2 );\n\n\t\t\t\t// as a last resort, try splitting the remaining polygon into two\n\n\t\t\t} else if ( pass === 2 ) {\n\n\t\t\t\tsplitEarcut( ear, triangles, dim, minX, minY, invSize );\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n}\n\n// check whether a polygon node forms a valid ear with adjacent nodes\nfunction isEar( ear ) {\n\n\tconst a = ear.prev,\n\t\tb = ear,\n\t\tc = ear.next;\n\n\tif ( area( a, b, c ) >= 0 ) return false; // reflex, can't be an ear\n\n\t// now make sure we don't have other points inside the potential ear\n\tconst ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n\n\t// triangle bbox; min & max are calculated like this for speed\n\tconst x0 = ax < bx ? ( ax < cx ? ax : cx ) : ( bx < cx ? bx : cx ),\n\t\ty0 = ay < by ? ( ay < cy ? ay : cy ) : ( by < cy ? by : cy ),\n\t\tx1 = ax > bx ? ( ax > cx ? ax : cx ) : ( bx > cx ? bx : cx ),\n\t\ty1 = ay > by ? ( ay > cy ? ay : cy ) : ( by > cy ? by : cy );\n\n\tlet p = c.next;\n\twhile ( p !== a ) {\n\n\t\tif ( p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 &&\n\t\t\tpointInTriangle( ax, ay, bx, by, cx, cy, p.x, p.y ) &&\n\t\t\tarea( p.prev, p, p.next ) >= 0 ) return false;\n\t\tp = p.next;\n\n\t}\n\n\treturn true;\n\n}\n\nfunction isEarHashed( ear, minX, minY, invSize ) {\n\n\tconst a = ear.prev,\n\t\tb = ear,\n\t\tc = ear.next;\n\n\tif ( area( a, b, c ) >= 0 ) return false; // reflex, can't be an ear\n\n\tconst ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n\n\t// triangle bbox; min & max are calculated like this for speed\n\tconst x0 = ax < bx ? ( ax < cx ? ax : cx ) : ( bx < cx ? bx : cx ),\n\t\ty0 = ay < by ? ( ay < cy ? ay : cy ) : ( by < cy ? by : cy ),\n\t\tx1 = ax > bx ? ( ax > cx ? ax : cx ) : ( bx > cx ? bx : cx ),\n\t\ty1 = ay > by ? ( ay > cy ? ay : cy ) : ( by > cy ? by : cy );\n\n\t// z-order range for the current triangle bbox;\n\tconst minZ = zOrder( x0, y0, minX, minY, invSize ),\n\t\tmaxZ = zOrder( x1, y1, minX, minY, invSize );\n\n\tlet p = ear.prevZ,\n\t\tn = ear.nextZ;\n\n\t// look for points inside the triangle in both directions\n\twhile ( p && p.z >= minZ && n && n.z <= maxZ ) {\n\n\t\tif ( p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c &&\n\t\t\tpointInTriangle( ax, ay, bx, by, cx, cy, p.x, p.y ) && area( p.prev, p, p.next ) >= 0 ) return false;\n\t\tp = p.prevZ;\n\n\t\tif ( n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c &&\n\t\t\tpointInTriangle( ax, ay, bx, by, cx, cy, n.x, n.y ) && area( n.prev, n, n.next ) >= 0 ) return false;\n\t\tn = n.nextZ;\n\n\t}\n\n\t// look for remaining points in decreasing z-order\n\twhile ( p && p.z >= minZ ) {\n\n\t\tif ( p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c &&\n\t\t\tpointInTriangle( ax, ay, bx, by, cx, cy, p.x, p.y ) && area( p.prev, p, p.next ) >= 0 ) return false;\n\t\tp = p.prevZ;\n\n\t}\n\n\t// look for remaining points in increasing z-order\n\twhile ( n && n.z <= maxZ ) {\n\n\t\tif ( n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c &&\n\t\t\tpointInTriangle( ax, ay, bx, by, cx, cy, n.x, n.y ) && area( n.prev, n, n.next ) >= 0 ) return false;\n\t\tn = n.nextZ;\n\n\t}\n\n\treturn true;\n\n}\n\n// go through all polygon nodes and cure small local self-intersections\nfunction cureLocalIntersections( start, triangles, dim ) {\n\n\tlet p = start;\n\tdo {\n\n\t\tconst a = p.prev,\n\t\t\tb = p.next.next;\n\n\t\tif ( ! equals( a, b ) && intersects( a, p, p.next, b ) && locallyInside( a, b ) && locallyInside( b, a ) ) {\n\n\t\t\ttriangles.push( a.i / dim | 0 );\n\t\t\ttriangles.push( p.i / dim | 0 );\n\t\t\ttriangles.push( b.i / dim | 0 );\n\n\t\t\t// remove two nodes involved\n\t\t\tremoveNode( p );\n\t\t\tremoveNode( p.next );\n\n\t\t\tp = start = b;\n\n\t\t}\n\n\t\tp = p.next;\n\n\t} while ( p !== start );\n\n\treturn filterPoints( p );\n\n}\n\n// try splitting polygon into two and triangulate them independently\nfunction splitEarcut( start, triangles, dim, minX, minY, invSize ) {\n\n\t// look for a valid diagonal that divides the polygon into two\n\tlet a = start;\n\tdo {\n\n\t\tlet b = a.next.next;\n\t\twhile ( b !== a.prev ) {\n\n\t\t\tif ( a.i !== b.i && isValidDiagonal( a, b ) ) {\n\n\t\t\t\t// split the polygon in two by the diagonal\n\t\t\t\tlet c = splitPolygon( a, b );\n\n\t\t\t\t// filter colinear points around the cuts\n\t\t\t\ta = filterPoints( a, a.next );\n\t\t\t\tc = filterPoints( c, c.next );\n\n\t\t\t\t// run earcut on each half\n\t\t\t\tearcutLinked( a, triangles, dim, minX, minY, invSize, 0 );\n\t\t\t\tearcutLinked( c, triangles, dim, minX, minY, invSize, 0 );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tb = b.next;\n\n\t\t}\n\n\t\ta = a.next;\n\n\t} while ( a !== start );\n\n}\n\n// link every hole into the outer loop, producing a single-ring polygon without holes\nfunction eliminateHoles( data, holeIndices, outerNode, dim ) {\n\n\tconst queue = [];\n\tlet i, len, start, end, list;\n\n\tfor ( i = 0, len = holeIndices.length; i < len; i ++ ) {\n\n\t\tstart = holeIndices[ i ] * dim;\n\t\tend = i < len - 1 ? holeIndices[ i + 1 ] * dim : data.length;\n\t\tlist = linkedList( data, start, end, dim, false );\n\t\tif ( list === list.next ) list.steiner = true;\n\t\tqueue.push( getLeftmost( list ) );\n\n\t}\n\n\tqueue.sort( compareX );\n\n\t// process holes from left to right\n\tfor ( i = 0; i < queue.length; i ++ ) {\n\n\t\touterNode = eliminateHole( queue[ i ], outerNode );\n\n\t}\n\n\treturn outerNode;\n\n}\n\nfunction compareX( a, b ) {\n\n\treturn a.x - b.x;\n\n}\n\n// find a bridge between vertices that connects hole with an outer ring and link it\nfunction eliminateHole( hole, outerNode ) {\n\n\tconst bridge = findHoleBridge( hole, outerNode );\n\tif ( ! bridge ) {\n\n\t\treturn outerNode;\n\n\t}\n\n\tconst bridgeReverse = splitPolygon( bridge, hole );\n\n\t// filter collinear points around the cuts\n\tfilterPoints( bridgeReverse, bridgeReverse.next );\n\treturn filterPoints( bridge, bridge.next );\n\n}\n\n// David Eberly's algorithm for finding a bridge between hole and outer polygon\nfunction findHoleBridge( hole, outerNode ) {\n\n\tlet p = outerNode,\n\t\tqx = - Infinity,\n\t\tm;\n\n\tconst hx = hole.x, hy = hole.y;\n\n\t// find a segment intersected by a ray from the hole's leftmost point to the left;\n\t// segment's endpoint with lesser x will be potential connection point\n\tdo {\n\n\t\tif ( hy <= p.y && hy >= p.next.y && p.next.y !== p.y ) {\n\n\t\t\tconst x = p.x + ( hy - p.y ) * ( p.next.x - p.x ) / ( p.next.y - p.y );\n\t\t\tif ( x <= hx && x > qx ) {\n\n\t\t\t\tqx = x;\n\t\t\t\tm = p.x < p.next.x ? p : p.next;\n\t\t\t\tif ( x === hx ) return m; // hole touches outer segment; pick leftmost endpoint\n\n\t\t\t}\n\n\t\t}\n\n\t\tp = p.next;\n\n\t} while ( p !== outerNode );\n\n\tif ( ! m ) return null;\n\n\t// look for points inside the triangle of hole point, segment intersection and endpoint;\n\t// if there are no points found, we have a valid connection;\n\t// otherwise choose the point of the minimum angle with the ray as connection point\n\n\tconst stop = m,\n\t\tmx = m.x,\n\t\tmy = m.y;\n\tlet tanMin = Infinity, tan;\n\n\tp = m;\n\n\tdo {\n\n\t\tif ( hx >= p.x && p.x >= mx && hx !== p.x &&\n\t\t\t\tpointInTriangle( hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y ) ) {\n\n\t\t\ttan = Math.abs( hy - p.y ) / ( hx - p.x ); // tangential\n\n\t\t\tif ( locallyInside( p, hole ) && ( tan < tanMin || ( tan === tanMin && ( p.x > m.x || ( p.x === m.x && sectorContainsSector( m, p ) ) ) ) ) ) {\n\n\t\t\t\tm = p;\n\t\t\t\ttanMin = tan;\n\n\t\t\t}\n\n\t\t}\n\n\t\tp = p.next;\n\n\t} while ( p !== stop );\n\n\treturn m;\n\n}\n\n// whether sector in vertex m contains sector in vertex p in the same coordinates\nfunction sectorContainsSector( m, p ) {\n\n\treturn area( m.prev, m, p.prev ) < 0 && area( p.next, m, m.next ) < 0;\n\n}\n\n// interlink polygon nodes in z-order\nfunction indexCurve( start, minX, minY, invSize ) {\n\n\tlet p = start;\n\tdo {\n\n\t\tif ( p.z === 0 ) p.z = zOrder( p.x, p.y, minX, minY, invSize );\n\t\tp.prevZ = p.prev;\n\t\tp.nextZ = p.next;\n\t\tp = p.next;\n\n\t} while ( p !== start );\n\n\tp.prevZ.nextZ = null;\n\tp.prevZ = null;\n\n\tsortLinked( p );\n\n}\n\n// Simon Tatham's linked list merge sort algorithm\n// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html\nfunction sortLinked( list ) {\n\n\tlet i, p, q, e, tail, numMerges, pSize, qSize,\n\t\tinSize = 1;\n\n\tdo {\n\n\t\tp = list;\n\t\tlist = null;\n\t\ttail = null;\n\t\tnumMerges = 0;\n\n\t\twhile ( p ) {\n\n\t\t\tnumMerges ++;\n\t\t\tq = p;\n\t\t\tpSize = 0;\n\t\t\tfor ( i = 0; i < inSize; i ++ ) {\n\n\t\t\t\tpSize ++;\n\t\t\t\tq = q.nextZ;\n\t\t\t\tif ( ! q ) break;\n\n\t\t\t}\n\n\t\t\tqSize = inSize;\n\n\t\t\twhile ( pSize > 0 || ( qSize > 0 && q ) ) {\n\n\t\t\t\tif ( pSize !== 0 && ( qSize === 0 || ! q || p.z <= q.z ) ) {\n\n\t\t\t\t\te = p;\n\t\t\t\t\tp = p.nextZ;\n\t\t\t\t\tpSize --;\n\n\t\t\t\t} else {\n\n\t\t\t\t\te = q;\n\t\t\t\t\tq = q.nextZ;\n\t\t\t\t\tqSize --;\n\n\t\t\t\t}\n\n\t\t\t\tif ( tail ) tail.nextZ = e;\n\t\t\t\telse list = e;\n\n\t\t\t\te.prevZ = tail;\n\t\t\t\ttail = e;\n\n\t\t\t}\n\n\t\t\tp = q;\n\n\t\t}\n\n\t\ttail.nextZ = null;\n\t\tinSize *= 2;\n\n\t} while ( numMerges > 1 );\n\n\treturn list;\n\n}\n\n// z-order of a point given coords and inverse of the longer side of data bbox\nfunction zOrder( x, y, minX, minY, invSize ) {\n\n\t// coords are transformed into non-negative 15-bit integer range\n\tx = ( x - minX ) * invSize | 0;\n\ty = ( y - minY ) * invSize | 0;\n\n\tx = ( x | ( x << 8 ) ) & 0x00FF00FF;\n\tx = ( x | ( x << 4 ) ) & 0x0F0F0F0F;\n\tx = ( x | ( x << 2 ) ) & 0x33333333;\n\tx = ( x | ( x << 1 ) ) & 0x55555555;\n\n\ty = ( y | ( y << 8 ) ) & 0x00FF00FF;\n\ty = ( y | ( y << 4 ) ) & 0x0F0F0F0F;\n\ty = ( y | ( y << 2 ) ) & 0x33333333;\n\ty = ( y | ( y << 1 ) ) & 0x55555555;\n\n\treturn x | ( y << 1 );\n\n}\n\n// find the leftmost node of a polygon ring\nfunction getLeftmost( start ) {\n\n\tlet p = start,\n\t\tleftmost = start;\n\tdo {\n\n\t\tif ( p.x < leftmost.x || ( p.x === leftmost.x && p.y < leftmost.y ) ) leftmost = p;\n\t\tp = p.next;\n\n\t} while ( p !== start );\n\n\treturn leftmost;\n\n}\n\n// check if a point lies within a convex triangle\nfunction pointInTriangle( ax, ay, bx, by, cx, cy, px, py ) {\n\n\treturn ( cx - px ) * ( ay - py ) >= ( ax - px ) * ( cy - py ) &&\n ( ax - px ) * ( by - py ) >= ( bx - px ) * ( ay - py ) &&\n ( bx - px ) * ( cy - py ) >= ( cx - px ) * ( by - py );\n\n}\n\n// check if a diagonal between two polygon nodes is valid (lies in polygon interior)\nfunction isValidDiagonal( a, b ) {\n\n\treturn a.next.i !== b.i && a.prev.i !== b.i && ! intersectsPolygon( a, b ) && // doesn't intersect other edges\n ( locallyInside( a, b ) && locallyInside( b, a ) && middleInside( a, b ) && // locally visible\n ( area( a.prev, a, b.prev ) || area( a, b.prev, b ) ) || // does not create opposite-facing sectors\n equals( a, b ) && area( a.prev, a, a.next ) > 0 && area( b.prev, b, b.next ) > 0 ); // special zero-length case\n\n}\n\n// signed area of a triangle\nfunction area( p, q, r ) {\n\n\treturn ( q.y - p.y ) * ( r.x - q.x ) - ( q.x - p.x ) * ( r.y - q.y );\n\n}\n\n// check if two points are equal\nfunction equals( p1, p2 ) {\n\n\treturn p1.x === p2.x && p1.y === p2.y;\n\n}\n\n// check if two segments intersect\nfunction intersects( p1, q1, p2, q2 ) {\n\n\tconst o1 = sign( area( p1, q1, p2 ) );\n\tconst o2 = sign( area( p1, q1, q2 ) );\n\tconst o3 = sign( area( p2, q2, p1 ) );\n\tconst o4 = sign( area( p2, q2, q1 ) );\n\n\tif ( o1 !== o2 && o3 !== o4 ) return true; // general case\n\n\tif ( o1 === 0 && onSegment( p1, p2, q1 ) ) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1\n\tif ( o2 === 0 && onSegment( p1, q2, q1 ) ) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1\n\tif ( o3 === 0 && onSegment( p2, p1, q2 ) ) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2\n\tif ( o4 === 0 && onSegment( p2, q1, q2 ) ) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2\n\n\treturn false;\n\n}\n\n// for collinear points p, q, r, check if point q lies on segment pr\nfunction onSegment( p, q, r ) {\n\n\treturn q.x <= Math.max( p.x, r.x ) && q.x >= Math.min( p.x, r.x ) && q.y <= Math.max( p.y, r.y ) && q.y >= Math.min( p.y, r.y );\n\n}\n\nfunction sign( num ) {\n\n\treturn num > 0 ? 1 : num < 0 ? - 1 : 0;\n\n}\n\n// check if a polygon diagonal intersects any polygon segments\nfunction intersectsPolygon( a, b ) {\n\n\tlet p = a;\n\tdo {\n\n\t\tif ( p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&\n\t\t\tintersects( p, p.next, a, b ) ) return true;\n\t\tp = p.next;\n\n\t} while ( p !== a );\n\n\treturn false;\n\n}\n\n// check if a polygon diagonal is locally inside the polygon\nfunction locallyInside( a, b ) {\n\n\treturn area( a.prev, a, a.next ) < 0 ?\n\t\tarea( a, b, a.next ) >= 0 && area( a, a.prev, b ) >= 0 :\n\t\tarea( a, b, a.prev ) < 0 || area( a, a.next, b ) < 0;\n\n}\n\n// check if the middle point of a polygon diagonal is inside the polygon\nfunction middleInside( a, b ) {\n\n\tlet p = a,\n\t\tinside = false;\n\tconst px = ( a.x + b.x ) / 2,\n\t\tpy = ( a.y + b.y ) / 2;\n\tdo {\n\n\t\tif ( ( ( p.y > py ) !== ( p.next.y > py ) ) && p.next.y !== p.y &&\n\t\t\t( px < ( p.next.x - p.x ) * ( py - p.y ) / ( p.next.y - p.y ) + p.x ) )\n\t\t\tinside = ! inside;\n\t\tp = p.next;\n\n\t} while ( p !== a );\n\n\treturn inside;\n\n}\n\n// link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;\n// if one belongs to the outer ring and another to a hole, it merges it into a single ring\nfunction splitPolygon( a, b ) {\n\n\tconst a2 = new Node( a.i, a.x, a.y ),\n\t\tb2 = new Node( b.i, b.x, b.y ),\n\t\tan = a.next,\n\t\tbp = b.prev;\n\n\ta.next = b;\n\tb.prev = a;\n\n\ta2.next = an;\n\tan.prev = a2;\n\n\tb2.next = a2;\n\ta2.prev = b2;\n\n\tbp.next = b2;\n\tb2.prev = bp;\n\n\treturn b2;\n\n}\n\n// create a node and optionally link it with previous one (in a circular doubly linked list)\nfunction insertNode( i, x, y, last ) {\n\n\tconst p = new Node( i, x, y );\n\n\tif ( ! last ) {\n\n\t\tp.prev = p;\n\t\tp.next = p;\n\n\t} else {\n\n\t\tp.next = last.next;\n\t\tp.prev = last;\n\t\tlast.next.prev = p;\n\t\tlast.next = p;\n\n\t}\n\n\treturn p;\n\n}\n\nfunction removeNode( p ) {\n\n\tp.next.prev = p.prev;\n\tp.prev.next = p.next;\n\n\tif ( p.prevZ ) p.prevZ.nextZ = p.nextZ;\n\tif ( p.nextZ ) p.nextZ.prevZ = p.prevZ;\n\n}\n\nfunction Node( i, x, y ) {\n\n\t// vertex index in coordinates array\n\tthis.i = i;\n\n\t// vertex coordinates\n\tthis.x = x;\n\tthis.y = y;\n\n\t// previous and next vertex nodes in a polygon ring\n\tthis.prev = null;\n\tthis.next = null;\n\n\t// z-order curve value\n\tthis.z = 0;\n\n\t// previous and next nodes in z-order\n\tthis.prevZ = null;\n\tthis.nextZ = null;\n\n\t// indicates whether this is a steiner point\n\tthis.steiner = false;\n\n}\n\nfunction signedArea( data, start, end, dim ) {\n\n\tlet sum = 0;\n\tfor ( let i = start, j = end - dim; i < end; i += dim ) {\n\n\t\tsum += ( data[ j ] - data[ i ] ) * ( data[ i + 1 ] + data[ j + 1 ] );\n\t\tj = i;\n\n\t}\n\n\treturn sum;\n\n}\n\nclass ShapeUtils {\n\n\t// calculate area of the contour polygon\n\n\tstatic area( contour ) {\n\n\t\tconst n = contour.length;\n\t\tlet a = 0.0;\n\n\t\tfor ( let p = n - 1, q = 0; q < n; p = q ++ ) {\n\n\t\t\ta += contour[ p ].x * contour[ q ].y - contour[ q ].x * contour[ p ].y;\n\n\t\t}\n\n\t\treturn a * 0.5;\n\n\t}\n\n\tstatic isClockWise( pts ) {\n\n\t\treturn ShapeUtils.area( pts ) < 0;\n\n\t}\n\n\tstatic triangulateShape( contour, holes ) {\n\n\t\tconst vertices = []; // flat array of vertices like [ x0,y0, x1,y1, x2,y2, ... ]\n\t\tconst holeIndices = []; // array of hole indices\n\t\tconst faces = []; // final array of vertex indices like [ [ a,b,d ], [ b,c,d ] ]\n\n\t\tremoveDupEndPts( contour );\n\t\taddContour( vertices, contour );\n\n\t\t//\n\n\t\tlet holeIndex = contour.length;\n\n\t\tholes.forEach( removeDupEndPts );\n\n\t\tfor ( let i = 0; i < holes.length; i ++ ) {\n\n\t\t\tholeIndices.push( holeIndex );\n\t\t\tholeIndex += holes[ i ].length;\n\t\t\taddContour( vertices, holes[ i ] );\n\n\t\t}\n\n\t\t//\n\n\t\tconst triangles = Earcut.triangulate( vertices, holeIndices );\n\n\t\t//\n\n\t\tfor ( let i = 0; i < triangles.length; i += 3 ) {\n\n\t\t\tfaces.push( triangles.slice( i, i + 3 ) );\n\n\t\t}\n\n\t\treturn faces;\n\n\t}\n\n}\n\nfunction removeDupEndPts( points ) {\n\n\tconst l = points.length;\n\n\tif ( l > 2 && points[ l - 1 ].equals( points[ 0 ] ) ) {\n\n\t\tpoints.pop();\n\n\t}\n\n}\n\nfunction addContour( vertices, contour ) {\n\n\tfor ( let i = 0; i < contour.length; i ++ ) {\n\n\t\tvertices.push( contour[ i ].x );\n\t\tvertices.push( contour[ i ].y );\n\n\t}\n\n}\n\n/**\n * Creates extruded geometry from a path shape.\n *\n * parameters = {\n *\n * curveSegments: , // number of points on the curves\n * steps: , // number of points for z-side extrusions / used for subdividing segments of extrude spline too\n * depth: , // Depth to extrude the shape\n *\n * bevelEnabled: , // turn on bevel\n * bevelThickness: , // how deep into the original shape bevel goes\n * bevelSize: , // how far from shape outline (including bevelOffset) is bevel\n * bevelOffset: , // how far from shape outline does bevel start\n * bevelSegments: , // number of bevel layers\n *\n * extrudePath: // curve to extrude shape along\n *\n * UVGenerator: // object that provides UV generator functions\n *\n * }\n */\n\n\nclass ExtrudeGeometry extends BufferGeometry {\n\n\tconstructor( shapes = new Shape( [ new Vector2( 0.5, 0.5 ), new Vector2( - 0.5, 0.5 ), new Vector2( - 0.5, - 0.5 ), new Vector2( 0.5, - 0.5 ) ] ), options = {} ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'ExtrudeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tshapes: shapes,\n\t\t\toptions: options\n\t\t};\n\n\t\tshapes = Array.isArray( shapes ) ? shapes : [ shapes ];\n\n\t\tconst scope = this;\n\n\t\tconst verticesArray = [];\n\t\tconst uvArray = [];\n\n\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\tconst shape = shapes[ i ];\n\t\t\taddShape( shape );\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( verticesArray, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvArray, 2 ) );\n\n\t\tthis.computeVertexNormals();\n\n\t\t// functions\n\n\t\tfunction addShape( shape ) {\n\n\t\t\tconst placeholder = [];\n\n\t\t\t// options\n\n\t\t\tconst curveSegments = options.curveSegments !== undefined ? options.curveSegments : 12;\n\t\t\tconst steps = options.steps !== undefined ? options.steps : 1;\n\t\t\tconst depth = options.depth !== undefined ? options.depth : 1;\n\n\t\t\tlet bevelEnabled = options.bevelEnabled !== undefined ? options.bevelEnabled : true;\n\t\t\tlet bevelThickness = options.bevelThickness !== undefined ? options.bevelThickness : 0.2;\n\t\t\tlet bevelSize = options.bevelSize !== undefined ? options.bevelSize : bevelThickness - 0.1;\n\t\t\tlet bevelOffset = options.bevelOffset !== undefined ? options.bevelOffset : 0;\n\t\t\tlet bevelSegments = options.bevelSegments !== undefined ? options.bevelSegments : 3;\n\n\t\t\tconst extrudePath = options.extrudePath;\n\n\t\t\tconst uvgen = options.UVGenerator !== undefined ? options.UVGenerator : WorldUVGenerator;\n\n\t\t\t//\n\n\t\t\tlet extrudePts, extrudeByPath = false;\n\t\t\tlet splineTube, binormal, normal, position2;\n\n\t\t\tif ( extrudePath ) {\n\n\t\t\t\textrudePts = extrudePath.getSpacedPoints( steps );\n\n\t\t\t\textrudeByPath = true;\n\t\t\t\tbevelEnabled = false; // bevels not supported for path extrusion\n\n\t\t\t\t// SETUP TNB variables\n\n\t\t\t\t// TODO1 - have a .isClosed in spline?\n\n\t\t\t\tsplineTube = extrudePath.computeFrenetFrames( steps, false );\n\n\t\t\t\t// console.log(splineTube, 'splineTube', splineTube.normals.length, 'steps', steps, 'extrudePts', extrudePts.length);\n\n\t\t\t\tbinormal = new Vector3();\n\t\t\t\tnormal = new Vector3();\n\t\t\t\tposition2 = new Vector3();\n\n\t\t\t}\n\n\t\t\t// Safeguards if bevels are not enabled\n\n\t\t\tif ( ! bevelEnabled ) {\n\n\t\t\t\tbevelSegments = 0;\n\t\t\t\tbevelThickness = 0;\n\t\t\t\tbevelSize = 0;\n\t\t\t\tbevelOffset = 0;\n\n\t\t\t}\n\n\t\t\t// Variables initialization\n\n\t\t\tconst shapePoints = shape.extractPoints( curveSegments );\n\n\t\t\tlet vertices = shapePoints.shape;\n\t\t\tconst holes = shapePoints.holes;\n\n\t\t\tconst reverse = ! ShapeUtils.isClockWise( vertices );\n\n\t\t\tif ( reverse ) {\n\n\t\t\t\tvertices = vertices.reverse();\n\n\t\t\t\t// Maybe we should also check if holes are in the opposite direction, just to be safe ...\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\n\t\t\t\t\tif ( ShapeUtils.isClockWise( ahole ) ) {\n\n\t\t\t\t\t\tholes[ h ] = ahole.reverse();\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\n\t\t\tconst faces = ShapeUtils.triangulateShape( vertices, holes );\n\n\t\t\t/* Vertices */\n\n\t\t\tconst contour = vertices; // vertices has all points but contour has only points of circumference\n\n\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\tconst ahole = holes[ h ];\n\n\t\t\t\tvertices = vertices.concat( ahole );\n\n\t\t\t}\n\n\n\t\t\tfunction scalePt2( pt, vec, size ) {\n\n\t\t\t\tif ( ! vec ) console.error( 'THREE.ExtrudeGeometry: vec does not exist' );\n\n\t\t\t\treturn pt.clone().addScaledVector( vec, size );\n\n\t\t\t}\n\n\t\t\tconst vlen = vertices.length, flen = faces.length;\n\n\n\t\t\t// Find directions for point movement\n\n\n\t\t\tfunction getBevelVec( inPt, inPrev, inNext ) {\n\n\t\t\t\t// computes for inPt the corresponding point inPt' on a new contour\n\t\t\t\t// shifted by 1 unit (length of normalized vector) to the left\n\t\t\t\t// if we walk along contour clockwise, this new contour is outside the old one\n\t\t\t\t//\n\t\t\t\t// inPt' is the intersection of the two lines parallel to the two\n\t\t\t\t// adjacent edges of inPt at a distance of 1 unit on the left side.\n\n\t\t\t\tlet v_trans_x, v_trans_y, shrink_by; // resulting translation vector for inPt\n\n\t\t\t\t// good reading for geometry algorithms (here: line-line intersection)\n\t\t\t\t// http://geomalgorithms.com/a05-_intersect-1.html\n\n\t\t\t\tconst v_prev_x = inPt.x - inPrev.x,\n\t\t\t\t\tv_prev_y = inPt.y - inPrev.y;\n\t\t\t\tconst v_next_x = inNext.x - inPt.x,\n\t\t\t\t\tv_next_y = inNext.y - inPt.y;\n\n\t\t\t\tconst v_prev_lensq = ( v_prev_x * v_prev_x + v_prev_y * v_prev_y );\n\n\t\t\t\t// check for collinear edges\n\t\t\t\tconst collinear0 = ( v_prev_x * v_next_y - v_prev_y * v_next_x );\n\n\t\t\t\tif ( Math.abs( collinear0 ) > Number.EPSILON ) {\n\n\t\t\t\t\t// not collinear\n\n\t\t\t\t\t// length of vectors for normalizing\n\n\t\t\t\t\tconst v_prev_len = Math.sqrt( v_prev_lensq );\n\t\t\t\t\tconst v_next_len = Math.sqrt( v_next_x * v_next_x + v_next_y * v_next_y );\n\n\t\t\t\t\t// shift adjacent points by unit vectors to the left\n\n\t\t\t\t\tconst ptPrevShift_x = ( inPrev.x - v_prev_y / v_prev_len );\n\t\t\t\t\tconst ptPrevShift_y = ( inPrev.y + v_prev_x / v_prev_len );\n\n\t\t\t\t\tconst ptNextShift_x = ( inNext.x - v_next_y / v_next_len );\n\t\t\t\t\tconst ptNextShift_y = ( inNext.y + v_next_x / v_next_len );\n\n\t\t\t\t\t// scaling factor for v_prev to intersection point\n\n\t\t\t\t\tconst sf = ( ( ptNextShift_x - ptPrevShift_x ) * v_next_y -\n\t\t\t\t\t\t\t( ptNextShift_y - ptPrevShift_y ) * v_next_x ) /\n\t\t\t\t\t\t( v_prev_x * v_next_y - v_prev_y * v_next_x );\n\n\t\t\t\t\t// vector from inPt to intersection point\n\n\t\t\t\t\tv_trans_x = ( ptPrevShift_x + v_prev_x * sf - inPt.x );\n\t\t\t\t\tv_trans_y = ( ptPrevShift_y + v_prev_y * sf - inPt.y );\n\n\t\t\t\t\t// Don't normalize!, otherwise sharp corners become ugly\n\t\t\t\t\t// but prevent crazy spikes\n\t\t\t\t\tconst v_trans_lensq = ( v_trans_x * v_trans_x + v_trans_y * v_trans_y );\n\t\t\t\t\tif ( v_trans_lensq <= 2 ) {\n\n\t\t\t\t\t\treturn new Vector2( v_trans_x, v_trans_y );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tshrink_by = Math.sqrt( v_trans_lensq / 2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// handle special case of collinear edges\n\n\t\t\t\t\tlet direction_eq = false; // assumes: opposite\n\n\t\t\t\t\tif ( v_prev_x > Number.EPSILON ) {\n\n\t\t\t\t\t\tif ( v_next_x > Number.EPSILON ) {\n\n\t\t\t\t\t\t\tdirection_eq = true;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( v_prev_x < - Number.EPSILON ) {\n\n\t\t\t\t\t\t\tif ( v_next_x < - Number.EPSILON ) {\n\n\t\t\t\t\t\t\t\tdirection_eq = true;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tif ( Math.sign( v_prev_y ) === Math.sign( v_next_y ) ) {\n\n\t\t\t\t\t\t\t\tdirection_eq = true;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( direction_eq ) {\n\n\t\t\t\t\t\t// console.log(\"Warning: lines are a straight sequence\");\n\t\t\t\t\t\tv_trans_x = - v_prev_y;\n\t\t\t\t\t\tv_trans_y = v_prev_x;\n\t\t\t\t\t\tshrink_by = Math.sqrt( v_prev_lensq );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// console.log(\"Warning: lines are a straight spike\");\n\t\t\t\t\t\tv_trans_x = v_prev_x;\n\t\t\t\t\t\tv_trans_y = v_prev_y;\n\t\t\t\t\t\tshrink_by = Math.sqrt( v_prev_lensq / 2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\treturn new Vector2( v_trans_x / shrink_by, v_trans_y / shrink_by );\n\n\t\t\t}\n\n\n\t\t\tconst contourMovements = [];\n\n\t\t\tfor ( let i = 0, il = contour.length, j = il - 1, k = i + 1; i < il; i ++, j ++, k ++ ) {\n\n\t\t\t\tif ( j === il ) j = 0;\n\t\t\t\tif ( k === il ) k = 0;\n\n\t\t\t\t// (j)---(i)---(k)\n\t\t\t\t// console.log('i,j,k', i, j , k)\n\n\t\t\t\tcontourMovements[ i ] = getBevelVec( contour[ i ], contour[ j ], contour[ k ] );\n\n\t\t\t}\n\n\t\t\tconst holesMovements = [];\n\t\t\tlet oneHoleMovements, verticesMovements = contourMovements.concat();\n\n\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\tconst ahole = holes[ h ];\n\n\t\t\t\toneHoleMovements = [];\n\n\t\t\t\tfor ( let i = 0, il = ahole.length, j = il - 1, k = i + 1; i < il; i ++, j ++, k ++ ) {\n\n\t\t\t\t\tif ( j === il ) j = 0;\n\t\t\t\t\tif ( k === il ) k = 0;\n\n\t\t\t\t\t// (j)---(i)---(k)\n\t\t\t\t\toneHoleMovements[ i ] = getBevelVec( ahole[ i ], ahole[ j ], ahole[ k ] );\n\n\t\t\t\t}\n\n\t\t\t\tholesMovements.push( oneHoleMovements );\n\t\t\t\tverticesMovements = verticesMovements.concat( oneHoleMovements );\n\n\t\t\t}\n\n\n\t\t\t// Loop bevelSegments, 1 for the front, 1 for the back\n\n\t\t\tfor ( let b = 0; b < bevelSegments; b ++ ) {\n\n\t\t\t\t//for ( b = bevelSegments; b > 0; b -- ) {\n\n\t\t\t\tconst t = b / bevelSegments;\n\t\t\t\tconst z = bevelThickness * Math.cos( t * Math.PI / 2 );\n\t\t\t\tconst bs = bevelSize * Math.sin( t * Math.PI / 2 ) + bevelOffset;\n\n\t\t\t\t// contract shape\n\n\t\t\t\tfor ( let i = 0, il = contour.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst vert = scalePt2( contour[ i ], contourMovements[ i ], bs );\n\n\t\t\t\t\tv( vert.x, vert.y, - z );\n\n\t\t\t\t}\n\n\t\t\t\t// expand holes\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\t\t\t\t\toneHoleMovements = holesMovements[ h ];\n\n\t\t\t\t\tfor ( let i = 0, il = ahole.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst vert = scalePt2( ahole[ i ], oneHoleMovements[ i ], bs );\n\n\t\t\t\t\t\tv( vert.x, vert.y, - z );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst bs = bevelSize + bevelOffset;\n\n\t\t\t// Back facing vertices\n\n\t\t\tfor ( let i = 0; i < vlen; i ++ ) {\n\n\t\t\t\tconst vert = bevelEnabled ? scalePt2( vertices[ i ], verticesMovements[ i ], bs ) : vertices[ i ];\n\n\t\t\t\tif ( ! extrudeByPath ) {\n\n\t\t\t\t\tv( vert.x, vert.y, 0 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// v( vert.x, vert.y + extrudePts[ 0 ].y, extrudePts[ 0 ].x );\n\n\t\t\t\t\tnormal.copy( splineTube.normals[ 0 ] ).multiplyScalar( vert.x );\n\t\t\t\t\tbinormal.copy( splineTube.binormals[ 0 ] ).multiplyScalar( vert.y );\n\n\t\t\t\t\tposition2.copy( extrudePts[ 0 ] ).add( normal ).add( binormal );\n\n\t\t\t\t\tv( position2.x, position2.y, position2.z );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Add stepped vertices...\n\t\t\t// Including front facing vertices\n\n\t\t\tfor ( let s = 1; s <= steps; s ++ ) {\n\n\t\t\t\tfor ( let i = 0; i < vlen; i ++ ) {\n\n\t\t\t\t\tconst vert = bevelEnabled ? scalePt2( vertices[ i ], verticesMovements[ i ], bs ) : vertices[ i ];\n\n\t\t\t\t\tif ( ! extrudeByPath ) {\n\n\t\t\t\t\t\tv( vert.x, vert.y, depth / steps * s );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// v( vert.x, vert.y + extrudePts[ s - 1 ].y, extrudePts[ s - 1 ].x );\n\n\t\t\t\t\t\tnormal.copy( splineTube.normals[ s ] ).multiplyScalar( vert.x );\n\t\t\t\t\t\tbinormal.copy( splineTube.binormals[ s ] ).multiplyScalar( vert.y );\n\n\t\t\t\t\t\tposition2.copy( extrudePts[ s ] ).add( normal ).add( binormal );\n\n\t\t\t\t\t\tv( position2.x, position2.y, position2.z );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\n\t\t\t// Add bevel segments planes\n\n\t\t\t//for ( b = 1; b <= bevelSegments; b ++ ) {\n\t\t\tfor ( let b = bevelSegments - 1; b >= 0; b -- ) {\n\n\t\t\t\tconst t = b / bevelSegments;\n\t\t\t\tconst z = bevelThickness * Math.cos( t * Math.PI / 2 );\n\t\t\t\tconst bs = bevelSize * Math.sin( t * Math.PI / 2 ) + bevelOffset;\n\n\t\t\t\t// contract shape\n\n\t\t\t\tfor ( let i = 0, il = contour.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst vert = scalePt2( contour[ i ], contourMovements[ i ], bs );\n\t\t\t\t\tv( vert.x, vert.y, depth + z );\n\n\t\t\t\t}\n\n\t\t\t\t// expand holes\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\t\t\t\t\toneHoleMovements = holesMovements[ h ];\n\n\t\t\t\t\tfor ( let i = 0, il = ahole.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst vert = scalePt2( ahole[ i ], oneHoleMovements[ i ], bs );\n\n\t\t\t\t\t\tif ( ! extrudeByPath ) {\n\n\t\t\t\t\t\t\tv( vert.x, vert.y, depth + z );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tv( vert.x, vert.y + extrudePts[ steps - 1 ].y, extrudePts[ steps - 1 ].x + z );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t/* Faces */\n\n\t\t\t// Top and bottom faces\n\n\t\t\tbuildLidFaces();\n\n\t\t\t// Sides faces\n\n\t\t\tbuildSideFaces();\n\n\n\t\t\t///// Internal functions\n\n\t\t\tfunction buildLidFaces() {\n\n\t\t\t\tconst start = verticesArray.length / 3;\n\n\t\t\t\tif ( bevelEnabled ) {\n\n\t\t\t\t\tlet layer = 0; // steps + 1\n\t\t\t\t\tlet offset = vlen * layer;\n\n\t\t\t\t\t// Bottom faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 2 ] + offset, face[ 1 ] + offset, face[ 0 ] + offset );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tlayer = steps + bevelSegments * 2;\n\t\t\t\t\toffset = vlen * layer;\n\n\t\t\t\t\t// Top faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 0 ] + offset, face[ 1 ] + offset, face[ 2 ] + offset );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Bottom faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 2 ], face[ 1 ], face[ 0 ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// Top faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 0 ] + vlen * steps, face[ 1 ] + vlen * steps, face[ 2 ] + vlen * steps );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tscope.addGroup( start, verticesArray.length / 3 - start, 0 );\n\n\t\t\t}\n\n\t\t\t// Create faces for the z-sides of the shape\n\n\t\t\tfunction buildSideFaces() {\n\n\t\t\t\tconst start = verticesArray.length / 3;\n\t\t\t\tlet layeroffset = 0;\n\t\t\t\tsidewalls( contour, layeroffset );\n\t\t\t\tlayeroffset += contour.length;\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\t\t\t\t\tsidewalls( ahole, layeroffset );\n\n\t\t\t\t\t//, true\n\t\t\t\t\tlayeroffset += ahole.length;\n\n\t\t\t\t}\n\n\n\t\t\t\tscope.addGroup( start, verticesArray.length / 3 - start, 1 );\n\n\n\t\t\t}\n\n\t\t\tfunction sidewalls( contour, layeroffset ) {\n\n\t\t\t\tlet i = contour.length;\n\n\t\t\t\twhile ( -- i >= 0 ) {\n\n\t\t\t\t\tconst j = i;\n\t\t\t\t\tlet k = i - 1;\n\t\t\t\t\tif ( k < 0 ) k = contour.length - 1;\n\n\t\t\t\t\t//console.log('b', i,j, i-1, k,vertices.length);\n\n\t\t\t\t\tfor ( let s = 0, sl = ( steps + bevelSegments * 2 ); s < sl; s ++ ) {\n\n\t\t\t\t\t\tconst slen1 = vlen * s;\n\t\t\t\t\t\tconst slen2 = vlen * ( s + 1 );\n\n\t\t\t\t\t\tconst a = layeroffset + j + slen1,\n\t\t\t\t\t\t\tb = layeroffset + k + slen1,\n\t\t\t\t\t\t\tc = layeroffset + k + slen2,\n\t\t\t\t\t\t\td = layeroffset + j + slen2;\n\n\t\t\t\t\t\tf4( a, b, c, d );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tfunction v( x, y, z ) {\n\n\t\t\t\tplaceholder.push( x );\n\t\t\t\tplaceholder.push( y );\n\t\t\t\tplaceholder.push( z );\n\n\t\t\t}\n\n\n\t\t\tfunction f3( a, b, c ) {\n\n\t\t\t\taddVertex( a );\n\t\t\t\taddVertex( b );\n\t\t\t\taddVertex( c );\n\n\t\t\t\tconst nextIndex = verticesArray.length / 3;\n\t\t\t\tconst uvs = uvgen.generateTopUV( scope, verticesArray, nextIndex - 3, nextIndex - 2, nextIndex - 1 );\n\n\t\t\t\taddUV( uvs[ 0 ] );\n\t\t\t\taddUV( uvs[ 1 ] );\n\t\t\t\taddUV( uvs[ 2 ] );\n\n\t\t\t}\n\n\t\t\tfunction f4( a, b, c, d ) {\n\n\t\t\t\taddVertex( a );\n\t\t\t\taddVertex( b );\n\t\t\t\taddVertex( d );\n\n\t\t\t\taddVertex( b );\n\t\t\t\taddVertex( c );\n\t\t\t\taddVertex( d );\n\n\n\t\t\t\tconst nextIndex = verticesArray.length / 3;\n\t\t\t\tconst uvs = uvgen.generateSideWallUV( scope, verticesArray, nextIndex - 6, nextIndex - 3, nextIndex - 2, nextIndex - 1 );\n\n\t\t\t\taddUV( uvs[ 0 ] );\n\t\t\t\taddUV( uvs[ 1 ] );\n\t\t\t\taddUV( uvs[ 3 ] );\n\n\t\t\t\taddUV( uvs[ 1 ] );\n\t\t\t\taddUV( uvs[ 2 ] );\n\t\t\t\taddUV( uvs[ 3 ] );\n\n\t\t\t}\n\n\t\t\tfunction addVertex( index ) {\n\n\t\t\t\tverticesArray.push( placeholder[ index * 3 + 0 ] );\n\t\t\t\tverticesArray.push( placeholder[ index * 3 + 1 ] );\n\t\t\t\tverticesArray.push( placeholder[ index * 3 + 2 ] );\n\n\t\t\t}\n\n\n\t\t\tfunction addUV( vector2 ) {\n\n\t\t\t\tuvArray.push( vector2.x );\n\t\t\t\tuvArray.push( vector2.y );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tconst shapes = this.parameters.shapes;\n\t\tconst options = this.parameters.options;\n\n\t\treturn toJSON$1( shapes, options, data );\n\n\t}\n\n\tstatic fromJSON( data, shapes ) {\n\n\t\tconst geometryShapes = [];\n\n\t\tfor ( let j = 0, jl = data.shapes.length; j < jl; j ++ ) {\n\n\t\t\tconst shape = shapes[ data.shapes[ j ] ];\n\n\t\t\tgeometryShapes.push( shape );\n\n\t\t}\n\n\t\tconst extrudePath = data.options.extrudePath;\n\n\t\tif ( extrudePath !== undefined ) {\n\n\t\t\tdata.options.extrudePath = new Curves[ extrudePath.type ]().fromJSON( extrudePath );\n\n\t\t}\n\n\t\treturn new ExtrudeGeometry( geometryShapes, data.options );\n\n\t}\n\n}\n\nconst WorldUVGenerator = {\n\n\tgenerateTopUV: function ( geometry, vertices, indexA, indexB, indexC ) {\n\n\t\tconst a_x = vertices[ indexA * 3 ];\n\t\tconst a_y = vertices[ indexA * 3 + 1 ];\n\t\tconst b_x = vertices[ indexB * 3 ];\n\t\tconst b_y = vertices[ indexB * 3 + 1 ];\n\t\tconst c_x = vertices[ indexC * 3 ];\n\t\tconst c_y = vertices[ indexC * 3 + 1 ];\n\n\t\treturn [\n\t\t\tnew Vector2( a_x, a_y ),\n\t\t\tnew Vector2( b_x, b_y ),\n\t\t\tnew Vector2( c_x, c_y )\n\t\t];\n\n\t},\n\n\tgenerateSideWallUV: function ( geometry, vertices, indexA, indexB, indexC, indexD ) {\n\n\t\tconst a_x = vertices[ indexA * 3 ];\n\t\tconst a_y = vertices[ indexA * 3 + 1 ];\n\t\tconst a_z = vertices[ indexA * 3 + 2 ];\n\t\tconst b_x = vertices[ indexB * 3 ];\n\t\tconst b_y = vertices[ indexB * 3 + 1 ];\n\t\tconst b_z = vertices[ indexB * 3 + 2 ];\n\t\tconst c_x = vertices[ indexC * 3 ];\n\t\tconst c_y = vertices[ indexC * 3 + 1 ];\n\t\tconst c_z = vertices[ indexC * 3 + 2 ];\n\t\tconst d_x = vertices[ indexD * 3 ];\n\t\tconst d_y = vertices[ indexD * 3 + 1 ];\n\t\tconst d_z = vertices[ indexD * 3 + 2 ];\n\n\t\tif ( Math.abs( a_y - b_y ) < Math.abs( a_x - b_x ) ) {\n\n\t\t\treturn [\n\t\t\t\tnew Vector2( a_x, 1 - a_z ),\n\t\t\t\tnew Vector2( b_x, 1 - b_z ),\n\t\t\t\tnew Vector2( c_x, 1 - c_z ),\n\t\t\t\tnew Vector2( d_x, 1 - d_z )\n\t\t\t];\n\n\t\t} else {\n\n\t\t\treturn [\n\t\t\t\tnew Vector2( a_y, 1 - a_z ),\n\t\t\t\tnew Vector2( b_y, 1 - b_z ),\n\t\t\t\tnew Vector2( c_y, 1 - c_z ),\n\t\t\t\tnew Vector2( d_y, 1 - d_z )\n\t\t\t];\n\n\t\t}\n\n\t}\n\n};\n\nfunction toJSON$1( shapes, options, data ) {\n\n\tdata.shapes = [];\n\n\tif ( Array.isArray( shapes ) ) {\n\n\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\tconst shape = shapes[ i ];\n\n\t\t\tdata.shapes.push( shape.uuid );\n\n\t\t}\n\n\t} else {\n\n\t\tdata.shapes.push( shapes.uuid );\n\n\t}\n\n\tdata.options = Object.assign( {}, options );\n\n\tif ( options.extrudePath !== undefined ) data.options.extrudePath = options.extrudePath.toJSON();\n\n\treturn data;\n\n}\n\nclass IcosahedronGeometry extends PolyhedronGeometry {\n\n\tconstructor( radius = 1, detail = 0 ) {\n\n\t\tconst t = ( 1 + Math.sqrt( 5 ) ) / 2;\n\n\t\tconst vertices = [\n\t\t\t- 1, t, 0, \t1, t, 0, \t- 1, - t, 0, \t1, - t, 0,\n\t\t\t0, - 1, t, \t0, 1, t,\t0, - 1, - t, \t0, 1, - t,\n\t\t\tt, 0, - 1, \tt, 0, 1, \t- t, 0, - 1, \t- t, 0, 1\n\t\t];\n\n\t\tconst indices = [\n\t\t\t0, 11, 5, \t0, 5, 1, \t0, 1, 7, \t0, 7, 10, \t0, 10, 11,\n\t\t\t1, 5, 9, \t5, 11, 4,\t11, 10, 2,\t10, 7, 6,\t7, 1, 8,\n\t\t\t3, 9, 4, \t3, 4, 2,\t3, 2, 6,\t3, 6, 8,\t3, 8, 9,\n\t\t\t4, 9, 5, \t2, 4, 11,\t6, 2, 10,\t8, 6, 7,\t9, 8, 1\n\t\t];\n\n\t\tsuper( vertices, indices, radius, detail );\n\n\t\tthis.type = 'IcosahedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new IcosahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\nclass OctahedronGeometry extends PolyhedronGeometry {\n\n\tconstructor( radius = 1, detail = 0 ) {\n\n\t\tconst vertices = [\n\t\t\t1, 0, 0, \t- 1, 0, 0,\t0, 1, 0,\n\t\t\t0, - 1, 0, \t0, 0, 1,\t0, 0, - 1\n\t\t];\n\n\t\tconst indices = [\n\t\t\t0, 2, 4,\t0, 4, 3,\t0, 3, 5,\n\t\t\t0, 5, 2,\t1, 2, 5,\t1, 5, 3,\n\t\t\t1, 3, 4,\t1, 4, 2\n\t\t];\n\n\t\tsuper( vertices, indices, radius, detail );\n\n\t\tthis.type = 'OctahedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new OctahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\nclass PlaneGeometry extends BufferGeometry {\n\n\tconstructor( width = 1, height = 1, widthSegments = 1, heightSegments = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'PlaneGeometry';\n\n\t\tthis.parameters = {\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments\n\t\t};\n\n\t\tconst width_half = width / 2;\n\t\tconst height_half = height / 2;\n\n\t\tconst gridX = Math.floor( widthSegments );\n\t\tconst gridY = Math.floor( heightSegments );\n\n\t\tconst gridX1 = gridX + 1;\n\t\tconst gridY1 = gridY + 1;\n\n\t\tconst segment_width = width / gridX;\n\t\tconst segment_height = height / gridY;\n\n\t\t//\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\tfor ( let iy = 0; iy < gridY1; iy ++ ) {\n\n\t\t\tconst y = iy * segment_height - height_half;\n\n\t\t\tfor ( let ix = 0; ix < gridX1; ix ++ ) {\n\n\t\t\t\tconst x = ix * segment_width - width_half;\n\n\t\t\t\tvertices.push( x, - y, 0 );\n\n\t\t\t\tnormals.push( 0, 0, 1 );\n\n\t\t\t\tuvs.push( ix / gridX );\n\t\t\t\tuvs.push( 1 - ( iy / gridY ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfor ( let iy = 0; iy < gridY; iy ++ ) {\n\n\t\t\tfor ( let ix = 0; ix < gridX; ix ++ ) {\n\n\t\t\t\tconst a = ix + gridX1 * iy;\n\t\t\t\tconst b = ix + gridX1 * ( iy + 1 );\n\t\t\t\tconst c = ( ix + 1 ) + gridX1 * ( iy + 1 );\n\t\t\t\tconst d = ( ix + 1 ) + gridX1 * iy;\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new PlaneGeometry( data.width, data.height, data.widthSegments, data.heightSegments );\n\n\t}\n\n}\n\nclass RingGeometry extends BufferGeometry {\n\n\tconstructor( innerRadius = 0.5, outerRadius = 1, thetaSegments = 32, phiSegments = 1, thetaStart = 0, thetaLength = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'RingGeometry';\n\n\t\tthis.parameters = {\n\t\t\tinnerRadius: innerRadius,\n\t\t\touterRadius: outerRadius,\n\t\t\tthetaSegments: thetaSegments,\n\t\t\tphiSegments: phiSegments,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t\tthetaSegments = Math.max( 3, thetaSegments );\n\t\tphiSegments = Math.max( 1, phiSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// some helper variables\n\n\t\tlet radius = innerRadius;\n\t\tconst radiusStep = ( ( outerRadius - innerRadius ) / phiSegments );\n\t\tconst vertex = new Vector3();\n\t\tconst uv = new Vector2();\n\n\t\t// generate vertices, normals and uvs\n\n\t\tfor ( let j = 0; j <= phiSegments; j ++ ) {\n\n\t\t\tfor ( let i = 0; i <= thetaSegments; i ++ ) {\n\n\t\t\t\t// values are generate from the inside of the ring to the outside\n\n\t\t\t\tconst segment = thetaStart + i / thetaSegments * thetaLength;\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = radius * Math.cos( segment );\n\t\t\t\tvertex.y = radius * Math.sin( segment );\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormals.push( 0, 0, 1 );\n\n\t\t\t\t// uv\n\n\t\t\t\tuv.x = ( vertex.x / outerRadius + 1 ) / 2;\n\t\t\t\tuv.y = ( vertex.y / outerRadius + 1 ) / 2;\n\n\t\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t\t}\n\n\t\t\t// increase the radius for next row of vertices\n\n\t\t\tradius += radiusStep;\n\n\t\t}\n\n\t\t// indices\n\n\t\tfor ( let j = 0; j < phiSegments; j ++ ) {\n\n\t\t\tconst thetaSegmentLevel = j * ( thetaSegments + 1 );\n\n\t\t\tfor ( let i = 0; i < thetaSegments; i ++ ) {\n\n\t\t\t\tconst segment = i + thetaSegmentLevel;\n\n\t\t\t\tconst a = segment;\n\t\t\t\tconst b = segment + thetaSegments + 1;\n\t\t\t\tconst c = segment + thetaSegments + 2;\n\t\t\t\tconst d = segment + 1;\n\n\t\t\t\t// faces\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new RingGeometry( data.innerRadius, data.outerRadius, data.thetaSegments, data.phiSegments, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass ShapeGeometry extends BufferGeometry {\n\n\tconstructor( shapes = new Shape( [ new Vector2( 0, 0.5 ), new Vector2( - 0.5, - 0.5 ), new Vector2( 0.5, - 0.5 ) ] ), curveSegments = 12 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'ShapeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tshapes: shapes,\n\t\t\tcurveSegments: curveSegments\n\t\t};\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tlet groupStart = 0;\n\t\tlet groupCount = 0;\n\n\t\t// allow single and array values for \"shapes\" parameter\n\n\t\tif ( Array.isArray( shapes ) === false ) {\n\n\t\t\taddShape( shapes );\n\n\t\t} else {\n\n\t\t\tfor ( let i = 0; i < shapes.length; i ++ ) {\n\n\t\t\t\taddShape( shapes[ i ] );\n\n\t\t\t\tthis.addGroup( groupStart, groupCount, i ); // enables MultiMaterial support\n\n\t\t\t\tgroupStart += groupCount;\n\t\t\t\tgroupCount = 0;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\n\t\t// helper functions\n\n\t\tfunction addShape( shape ) {\n\n\t\t\tconst indexOffset = vertices.length / 3;\n\t\t\tconst points = shape.extractPoints( curveSegments );\n\n\t\t\tlet shapeVertices = points.shape;\n\t\t\tconst shapeHoles = points.holes;\n\n\t\t\t// check direction of vertices\n\n\t\t\tif ( ShapeUtils.isClockWise( shapeVertices ) === false ) {\n\n\t\t\t\tshapeVertices = shapeVertices.reverse();\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0, l = shapeHoles.length; i < l; i ++ ) {\n\n\t\t\t\tconst shapeHole = shapeHoles[ i ];\n\n\t\t\t\tif ( ShapeUtils.isClockWise( shapeHole ) === true ) {\n\n\t\t\t\t\tshapeHoles[ i ] = shapeHole.reverse();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst faces = ShapeUtils.triangulateShape( shapeVertices, shapeHoles );\n\n\t\t\t// join vertices of inner and outer paths to a single array\n\n\t\t\tfor ( let i = 0, l = shapeHoles.length; i < l; i ++ ) {\n\n\t\t\t\tconst shapeHole = shapeHoles[ i ];\n\t\t\t\tshapeVertices = shapeVertices.concat( shapeHole );\n\n\t\t\t}\n\n\t\t\t// vertices, normals, uvs\n\n\t\t\tfor ( let i = 0, l = shapeVertices.length; i < l; i ++ ) {\n\n\t\t\t\tconst vertex = shapeVertices[ i ];\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, 0 );\n\t\t\t\tnormals.push( 0, 0, 1 );\n\t\t\t\tuvs.push( vertex.x, vertex.y ); // world uvs\n\n\t\t\t}\n\n\t\t\t// indices\n\n\t\t\tfor ( let i = 0, l = faces.length; i < l; i ++ ) {\n\n\t\t\t\tconst face = faces[ i ];\n\n\t\t\t\tconst a = face[ 0 ] + indexOffset;\n\t\t\t\tconst b = face[ 1 ] + indexOffset;\n\t\t\t\tconst c = face[ 2 ] + indexOffset;\n\n\t\t\t\tindices.push( a, b, c );\n\t\t\t\tgroupCount += 3;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tconst shapes = this.parameters.shapes;\n\n\t\treturn toJSON( shapes, data );\n\n\t}\n\n\tstatic fromJSON( data, shapes ) {\n\n\t\tconst geometryShapes = [];\n\n\t\tfor ( let j = 0, jl = data.shapes.length; j < jl; j ++ ) {\n\n\t\t\tconst shape = shapes[ data.shapes[ j ] ];\n\n\t\t\tgeometryShapes.push( shape );\n\n\t\t}\n\n\t\treturn new ShapeGeometry( geometryShapes, data.curveSegments );\n\n\t}\n\n}\n\nfunction toJSON( shapes, data ) {\n\n\tdata.shapes = [];\n\n\tif ( Array.isArray( shapes ) ) {\n\n\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\tconst shape = shapes[ i ];\n\n\t\t\tdata.shapes.push( shape.uuid );\n\n\t\t}\n\n\t} else {\n\n\t\tdata.shapes.push( shapes.uuid );\n\n\t}\n\n\treturn data;\n\n}\n\nclass SphereGeometry extends BufferGeometry {\n\n\tconstructor( radius = 1, widthSegments = 32, heightSegments = 16, phiStart = 0, phiLength = Math.PI * 2, thetaStart = 0, thetaLength = Math.PI ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'SphereGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\tphiStart: phiStart,\n\t\t\tphiLength: phiLength,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t\twidthSegments = Math.max( 3, Math.floor( widthSegments ) );\n\t\theightSegments = Math.max( 2, Math.floor( heightSegments ) );\n\n\t\tconst thetaEnd = Math.min( thetaStart + thetaLength, Math.PI );\n\n\t\tlet index = 0;\n\t\tconst grid = [];\n\n\t\tconst vertex = new Vector3();\n\t\tconst normal = new Vector3();\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// generate vertices, normals and uvs\n\n\t\tfor ( let iy = 0; iy <= heightSegments; iy ++ ) {\n\n\t\t\tconst verticesRow = [];\n\n\t\t\tconst v = iy / heightSegments;\n\n\t\t\t// special case for the poles\n\n\t\t\tlet uOffset = 0;\n\n\t\t\tif ( iy === 0 && thetaStart === 0 ) {\n\n\t\t\t\tuOffset = 0.5 / widthSegments;\n\n\t\t\t} else if ( iy === heightSegments && thetaEnd === Math.PI ) {\n\n\t\t\t\tuOffset = - 0.5 / widthSegments;\n\n\t\t\t}\n\n\t\t\tfor ( let ix = 0; ix <= widthSegments; ix ++ ) {\n\n\t\t\t\tconst u = ix / widthSegments;\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = - radius * Math.cos( phiStart + u * phiLength ) * Math.sin( thetaStart + v * thetaLength );\n\t\t\t\tvertex.y = radius * Math.cos( thetaStart + v * thetaLength );\n\t\t\t\tvertex.z = radius * Math.sin( phiStart + u * phiLength ) * Math.sin( thetaStart + v * thetaLength );\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormal.copy( vertex ).normalize();\n\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t// uv\n\n\t\t\t\tuvs.push( u + uOffset, 1 - v );\n\n\t\t\t\tverticesRow.push( index ++ );\n\n\t\t\t}\n\n\t\t\tgrid.push( verticesRow );\n\n\t\t}\n\n\t\t// indices\n\n\t\tfor ( let iy = 0; iy < heightSegments; iy ++ ) {\n\n\t\t\tfor ( let ix = 0; ix < widthSegments; ix ++ ) {\n\n\t\t\t\tconst a = grid[ iy ][ ix + 1 ];\n\t\t\t\tconst b = grid[ iy ][ ix ];\n\t\t\t\tconst c = grid[ iy + 1 ][ ix ];\n\t\t\t\tconst d = grid[ iy + 1 ][ ix + 1 ];\n\n\t\t\t\tif ( iy !== 0 || thetaStart > 0 ) indices.push( a, b, d );\n\t\t\t\tif ( iy !== heightSegments - 1 || thetaEnd < Math.PI ) indices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new SphereGeometry( data.radius, data.widthSegments, data.heightSegments, data.phiStart, data.phiLength, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass TetrahedronGeometry extends PolyhedronGeometry {\n\n\tconstructor( radius = 1, detail = 0 ) {\n\n\t\tconst vertices = [\n\t\t\t1, 1, 1, \t- 1, - 1, 1, \t- 1, 1, - 1, \t1, - 1, - 1\n\t\t];\n\n\t\tconst indices = [\n\t\t\t2, 1, 0, \t0, 3, 2,\t1, 3, 0,\t2, 3, 1\n\t\t];\n\n\t\tsuper( vertices, indices, radius, detail );\n\n\t\tthis.type = 'TetrahedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new TetrahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\nclass TorusGeometry extends BufferGeometry {\n\n\tconstructor( radius = 1, tube = 0.4, radialSegments = 12, tubularSegments = 48, arc = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'TorusGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\ttube: tube,\n\t\t\tradialSegments: radialSegments,\n\t\t\ttubularSegments: tubularSegments,\n\t\t\tarc: arc\n\t\t};\n\n\t\tradialSegments = Math.floor( radialSegments );\n\t\ttubularSegments = Math.floor( tubularSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tconst center = new Vector3();\n\t\tconst vertex = new Vector3();\n\t\tconst normal = new Vector3();\n\n\t\t// generate vertices, normals and uvs\n\n\t\tfor ( let j = 0; j <= radialSegments; j ++ ) {\n\n\t\t\tfor ( let i = 0; i <= tubularSegments; i ++ ) {\n\n\t\t\t\tconst u = i / tubularSegments * arc;\n\t\t\t\tconst v = j / radialSegments * Math.PI * 2;\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = ( radius + tube * Math.cos( v ) ) * Math.cos( u );\n\t\t\t\tvertex.y = ( radius + tube * Math.cos( v ) ) * Math.sin( u );\n\t\t\t\tvertex.z = tube * Math.sin( v );\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal\n\n\t\t\t\tcenter.x = radius * Math.cos( u );\n\t\t\t\tcenter.y = radius * Math.sin( u );\n\t\t\t\tnormal.subVectors( vertex, center ).normalize();\n\n\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t// uv\n\n\t\t\t\tuvs.push( i / tubularSegments );\n\t\t\t\tuvs.push( j / radialSegments );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// generate indices\n\n\t\tfor ( let j = 1; j <= radialSegments; j ++ ) {\n\n\t\t\tfor ( let i = 1; i <= tubularSegments; i ++ ) {\n\n\t\t\t\t// indices\n\n\t\t\t\tconst a = ( tubularSegments + 1 ) * j + i - 1;\n\t\t\t\tconst b = ( tubularSegments + 1 ) * ( j - 1 ) + i - 1;\n\t\t\t\tconst c = ( tubularSegments + 1 ) * ( j - 1 ) + i;\n\t\t\t\tconst d = ( tubularSegments + 1 ) * j + i;\n\n\t\t\t\t// faces\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new TorusGeometry( data.radius, data.tube, data.radialSegments, data.tubularSegments, data.arc );\n\n\t}\n\n}\n\nclass TorusKnotGeometry extends BufferGeometry {\n\n\tconstructor( radius = 1, tube = 0.4, tubularSegments = 64, radialSegments = 8, p = 2, q = 3 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'TorusKnotGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\ttube: tube,\n\t\t\ttubularSegments: tubularSegments,\n\t\t\tradialSegments: radialSegments,\n\t\t\tp: p,\n\t\t\tq: q\n\t\t};\n\n\t\ttubularSegments = Math.floor( tubularSegments );\n\t\tradialSegments = Math.floor( radialSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tconst vertex = new Vector3();\n\t\tconst normal = new Vector3();\n\n\t\tconst P1 = new Vector3();\n\t\tconst P2 = new Vector3();\n\n\t\tconst B = new Vector3();\n\t\tconst T = new Vector3();\n\t\tconst N = new Vector3();\n\n\t\t// generate vertices, normals and uvs\n\n\t\tfor ( let i = 0; i <= tubularSegments; ++ i ) {\n\n\t\t\t// the radian \"u\" is used to calculate the position on the torus curve of the current tubular segment\n\n\t\t\tconst u = i / tubularSegments * p * Math.PI * 2;\n\n\t\t\t// now we calculate two points. P1 is our current position on the curve, P2 is a little farther ahead.\n\t\t\t// these points are used to create a special \"coordinate space\", which is necessary to calculate the correct vertex positions\n\n\t\t\tcalculatePositionOnCurve( u, p, q, radius, P1 );\n\t\t\tcalculatePositionOnCurve( u + 0.01, p, q, radius, P2 );\n\n\t\t\t// calculate orthonormal basis\n\n\t\t\tT.subVectors( P2, P1 );\n\t\t\tN.addVectors( P2, P1 );\n\t\t\tB.crossVectors( T, N );\n\t\t\tN.crossVectors( B, T );\n\n\t\t\t// normalize B, N. T can be ignored, we don't use it\n\n\t\t\tB.normalize();\n\t\t\tN.normalize();\n\n\t\t\tfor ( let j = 0; j <= radialSegments; ++ j ) {\n\n\t\t\t\t// now calculate the vertices. they are nothing more than an extrusion of the torus curve.\n\t\t\t\t// because we extrude a shape in the xy-plane, there is no need to calculate a z-value.\n\n\t\t\t\tconst v = j / radialSegments * Math.PI * 2;\n\t\t\t\tconst cx = - tube * Math.cos( v );\n\t\t\t\tconst cy = tube * Math.sin( v );\n\n\t\t\t\t// now calculate the final vertex position.\n\t\t\t\t// first we orient the extrusion with our basis vectors, then we add it to the current position on the curve\n\n\t\t\t\tvertex.x = P1.x + ( cx * N.x + cy * B.x );\n\t\t\t\tvertex.y = P1.y + ( cx * N.y + cy * B.y );\n\t\t\t\tvertex.z = P1.z + ( cx * N.z + cy * B.z );\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal (P1 is always the center/origin of the extrusion, thus we can use it to calculate the normal)\n\n\t\t\t\tnormal.subVectors( vertex, P1 ).normalize();\n\n\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t// uv\n\n\t\t\t\tuvs.push( i / tubularSegments );\n\t\t\t\tuvs.push( j / radialSegments );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// generate indices\n\n\t\tfor ( let j = 1; j <= tubularSegments; j ++ ) {\n\n\t\t\tfor ( let i = 1; i <= radialSegments; i ++ ) {\n\n\t\t\t\t// indices\n\n\t\t\t\tconst a = ( radialSegments + 1 ) * ( j - 1 ) + ( i - 1 );\n\t\t\t\tconst b = ( radialSegments + 1 ) * j + ( i - 1 );\n\t\t\t\tconst c = ( radialSegments + 1 ) * j + i;\n\t\t\t\tconst d = ( radialSegments + 1 ) * ( j - 1 ) + i;\n\n\t\t\t\t// faces\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\t// this function calculates the current position on the torus curve\n\n\t\tfunction calculatePositionOnCurve( u, p, q, radius, position ) {\n\n\t\t\tconst cu = Math.cos( u );\n\t\t\tconst su = Math.sin( u );\n\t\t\tconst quOverP = q / p * u;\n\t\t\tconst cs = Math.cos( quOverP );\n\n\t\t\tposition.x = radius * ( 2 + cs ) * 0.5 * cu;\n\t\t\tposition.y = radius * ( 2 + cs ) * su * 0.5;\n\t\t\tposition.z = radius * Math.sin( quOverP ) * 0.5;\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new TorusKnotGeometry( data.radius, data.tube, data.tubularSegments, data.radialSegments, data.p, data.q );\n\n\t}\n\n}\n\nclass TubeGeometry extends BufferGeometry {\n\n\tconstructor( path = new QuadraticBezierCurve3( new Vector3( - 1, - 1, 0 ), new Vector3( - 1, 1, 0 ), new Vector3( 1, 1, 0 ) ), tubularSegments = 64, radius = 1, radialSegments = 8, closed = false ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'TubeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tpath: path,\n\t\t\ttubularSegments: tubularSegments,\n\t\t\tradius: radius,\n\t\t\tradialSegments: radialSegments,\n\t\t\tclosed: closed\n\t\t};\n\n\t\tconst frames = path.computeFrenetFrames( tubularSegments, closed );\n\n\t\t// expose internals\n\n\t\tthis.tangents = frames.tangents;\n\t\tthis.normals = frames.normals;\n\t\tthis.binormals = frames.binormals;\n\n\t\t// helper variables\n\n\t\tconst vertex = new Vector3();\n\t\tconst normal = new Vector3();\n\t\tconst uv = new Vector2();\n\t\tlet P = new Vector3();\n\n\t\t// buffer\n\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\t\tconst indices = [];\n\n\t\t// create buffer data\n\n\t\tgenerateBufferData();\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\t// functions\n\n\t\tfunction generateBufferData() {\n\n\t\t\tfor ( let i = 0; i < tubularSegments; i ++ ) {\n\n\t\t\t\tgenerateSegment( i );\n\n\t\t\t}\n\n\t\t\t// if the geometry is not closed, generate the last row of vertices and normals\n\t\t\t// at the regular position on the given path\n\t\t\t//\n\t\t\t// if the geometry is closed, duplicate the first row of vertices and normals (uvs will differ)\n\n\t\t\tgenerateSegment( ( closed === false ) ? tubularSegments : 0 );\n\n\t\t\t// uvs are generated in a separate function.\n\t\t\t// this makes it easy compute correct values for closed geometries\n\n\t\t\tgenerateUVs();\n\n\t\t\t// finally create faces\n\n\t\t\tgenerateIndices();\n\n\t\t}\n\n\t\tfunction generateSegment( i ) {\n\n\t\t\t// we use getPointAt to sample evenly distributed points from the given path\n\n\t\t\tP = path.getPointAt( i / tubularSegments, P );\n\n\t\t\t// retrieve corresponding normal and binormal\n\n\t\t\tconst N = frames.normals[ i ];\n\t\t\tconst B = frames.binormals[ i ];\n\n\t\t\t// generate normals and vertices for the current segment\n\n\t\t\tfor ( let j = 0; j <= radialSegments; j ++ ) {\n\n\t\t\t\tconst v = j / radialSegments * Math.PI * 2;\n\n\t\t\t\tconst sin = Math.sin( v );\n\t\t\t\tconst cos = - Math.cos( v );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormal.x = ( cos * N.x + sin * B.x );\n\t\t\t\tnormal.y = ( cos * N.y + sin * B.y );\n\t\t\t\tnormal.z = ( cos * N.z + sin * B.z );\n\t\t\t\tnormal.normalize();\n\n\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = P.x + radius * normal.x;\n\t\t\t\tvertex.y = P.y + radius * normal.y;\n\t\t\t\tvertex.z = P.z + radius * normal.z;\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction generateIndices() {\n\n\t\t\tfor ( let j = 1; j <= tubularSegments; j ++ ) {\n\n\t\t\t\tfor ( let i = 1; i <= radialSegments; i ++ ) {\n\n\t\t\t\t\tconst a = ( radialSegments + 1 ) * ( j - 1 ) + ( i - 1 );\n\t\t\t\t\tconst b = ( radialSegments + 1 ) * j + ( i - 1 );\n\t\t\t\t\tconst c = ( radialSegments + 1 ) * j + i;\n\t\t\t\t\tconst d = ( radialSegments + 1 ) * ( j - 1 ) + i;\n\n\t\t\t\t\t// faces\n\n\t\t\t\t\tindices.push( a, b, d );\n\t\t\t\t\tindices.push( b, c, d );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction generateUVs() {\n\n\t\t\tfor ( let i = 0; i <= tubularSegments; i ++ ) {\n\n\t\t\t\tfor ( let j = 0; j <= radialSegments; j ++ ) {\n\n\t\t\t\t\tuv.x = i / tubularSegments;\n\t\t\t\t\tuv.y = j / radialSegments;\n\n\t\t\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.path = this.parameters.path.toJSON();\n\n\t\treturn data;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\t// This only works for built-in curves (e.g. CatmullRomCurve3).\n\t\t// User defined curves or instances of CurvePath will not be deserialized.\n\t\treturn new TubeGeometry(\n\t\t\tnew Curves[ data.path.type ]().fromJSON( data.path ),\n\t\t\tdata.tubularSegments,\n\t\t\tdata.radius,\n\t\t\tdata.radialSegments,\n\t\t\tdata.closed\n\t\t);\n\n\t}\n\n}\n\nclass WireframeGeometry extends BufferGeometry {\n\n\tconstructor( geometry = null ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'WireframeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tgeometry: geometry\n\t\t};\n\n\t\tif ( geometry !== null ) {\n\n\t\t\t// buffer\n\n\t\t\tconst vertices = [];\n\t\t\tconst edges = new Set();\n\n\t\t\t// helper variables\n\n\t\t\tconst start = new Vector3();\n\t\t\tconst end = new Vector3();\n\n\t\t\tif ( geometry.index !== null ) {\n\n\t\t\t\t// indexed BufferGeometry\n\n\t\t\t\tconst position = geometry.attributes.position;\n\t\t\t\tconst indices = geometry.index;\n\t\t\t\tlet groups = geometry.groups;\n\n\t\t\t\tif ( groups.length === 0 ) {\n\n\t\t\t\t\tgroups = [ { start: 0, count: indices.count, materialIndex: 0 } ];\n\n\t\t\t\t}\n\n\t\t\t\t// create a data structure that contains all edges without duplicates\n\n\t\t\t\tfor ( let o = 0, ol = groups.length; o < ol; ++ o ) {\n\n\t\t\t\t\tconst group = groups[ o ];\n\n\t\t\t\t\tconst groupStart = group.start;\n\t\t\t\t\tconst groupCount = group.count;\n\n\t\t\t\t\tfor ( let i = groupStart, l = ( groupStart + groupCount ); i < l; i += 3 ) {\n\n\t\t\t\t\t\tfor ( let j = 0; j < 3; j ++ ) {\n\n\t\t\t\t\t\t\tconst index1 = indices.getX( i + j );\n\t\t\t\t\t\t\tconst index2 = indices.getX( i + ( j + 1 ) % 3 );\n\n\t\t\t\t\t\t\tstart.fromBufferAttribute( position, index1 );\n\t\t\t\t\t\t\tend.fromBufferAttribute( position, index2 );\n\n\t\t\t\t\t\t\tif ( isUniqueEdge( start, end, edges ) === true ) {\n\n\t\t\t\t\t\t\t\tvertices.push( start.x, start.y, start.z );\n\t\t\t\t\t\t\t\tvertices.push( end.x, end.y, end.z );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// non-indexed BufferGeometry\n\n\t\t\t\tconst position = geometry.attributes.position;\n\n\t\t\t\tfor ( let i = 0, l = ( position.count / 3 ); i < l; i ++ ) {\n\n\t\t\t\t\tfor ( let j = 0; j < 3; j ++ ) {\n\n\t\t\t\t\t\t// three edges per triangle, an edge is represented as (index1, index2)\n\t\t\t\t\t\t// e.g. the first triangle has the following edges: (0,1),(1,2),(2,0)\n\n\t\t\t\t\t\tconst index1 = 3 * i + j;\n\t\t\t\t\t\tconst index2 = 3 * i + ( ( j + 1 ) % 3 );\n\n\t\t\t\t\t\tstart.fromBufferAttribute( position, index1 );\n\t\t\t\t\t\tend.fromBufferAttribute( position, index2 );\n\n\t\t\t\t\t\tif ( isUniqueEdge( start, end, edges ) === true ) {\n\n\t\t\t\t\t\t\tvertices.push( start.x, start.y, start.z );\n\t\t\t\t\t\t\tvertices.push( end.x, end.y, end.z );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// build geometry\n\n\t\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n}\n\nfunction isUniqueEdge( start, end, edges ) {\n\n\tconst hash1 = `${start.x},${start.y},${start.z}-${end.x},${end.y},${end.z}`;\n\tconst hash2 = `${end.x},${end.y},${end.z}-${start.x},${start.y},${start.z}`; // coincident edge\n\n\tif ( edges.has( hash1 ) === true || edges.has( hash2 ) === true ) {\n\n\t\treturn false;\n\n\t} else {\n\n\t\tedges.add( hash1 );\n\t\tedges.add( hash2 );\n\t\treturn true;\n\n\t}\n\n}\n\nvar Geometries = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tBoxGeometry: BoxGeometry,\n\tCapsuleGeometry: CapsuleGeometry,\n\tCircleGeometry: CircleGeometry,\n\tConeGeometry: ConeGeometry,\n\tCylinderGeometry: CylinderGeometry,\n\tDodecahedronGeometry: DodecahedronGeometry,\n\tEdgesGeometry: EdgesGeometry,\n\tExtrudeGeometry: ExtrudeGeometry,\n\tIcosahedronGeometry: IcosahedronGeometry,\n\tLatheGeometry: LatheGeometry,\n\tOctahedronGeometry: OctahedronGeometry,\n\tPlaneGeometry: PlaneGeometry,\n\tPolyhedronGeometry: PolyhedronGeometry,\n\tRingGeometry: RingGeometry,\n\tShapeGeometry: ShapeGeometry,\n\tSphereGeometry: SphereGeometry,\n\tTetrahedronGeometry: TetrahedronGeometry,\n\tTorusGeometry: TorusGeometry,\n\tTorusKnotGeometry: TorusKnotGeometry,\n\tTubeGeometry: TubeGeometry,\n\tWireframeGeometry: WireframeGeometry\n});\n\nclass ShadowMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isShadowMaterial = true;\n\n\t\tthis.type = 'ShadowMaterial';\n\n\t\tthis.color = new Color( 0x000000 );\n\t\tthis.transparent = true;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass RawShaderMaterial extends ShaderMaterial {\n\n\tconstructor( parameters ) {\n\n\t\tsuper( parameters );\n\n\t\tthis.isRawShaderMaterial = true;\n\n\t\tthis.type = 'RawShaderMaterial';\n\n\t}\n\n}\n\nclass MeshStandardMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshStandardMaterial = true;\n\n\t\tthis.type = 'MeshStandardMaterial';\n\n\t\tthis.defines = { 'STANDARD': '' };\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\t\tthis.roughness = 1.0;\n\t\tthis.metalness = 0.0;\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.roughnessMap = null;\n\n\t\tthis.metalnessMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.envMapRotation = new Euler();\n\t\tthis.envMapIntensity = 1.0;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.flatShading = false;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.defines = { 'STANDARD': '' };\n\n\t\tthis.color.copy( source.color );\n\t\tthis.roughness = source.roughness;\n\t\tthis.metalness = source.metalness;\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.roughnessMap = source.roughnessMap;\n\n\t\tthis.metalnessMap = source.metalnessMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.envMapRotation.copy( source.envMapRotation );\n\t\tthis.envMapIntensity = source.envMapIntensity;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshPhysicalMaterial extends MeshStandardMaterial {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshPhysicalMaterial = true;\n\n\t\tthis.defines = {\n\n\t\t\t'STANDARD': '',\n\t\t\t'PHYSICAL': ''\n\n\t\t};\n\n\t\tthis.type = 'MeshPhysicalMaterial';\n\n\t\tthis.anisotropyRotation = 0;\n\t\tthis.anisotropyMap = null;\n\n\t\tthis.clearcoatMap = null;\n\t\tthis.clearcoatRoughness = 0.0;\n\t\tthis.clearcoatRoughnessMap = null;\n\t\tthis.clearcoatNormalScale = new Vector2( 1, 1 );\n\t\tthis.clearcoatNormalMap = null;\n\n\t\tthis.ior = 1.5;\n\n\t\tObject.defineProperty( this, 'reflectivity', {\n\t\t\tget: function () {\n\n\t\t\t\treturn ( clamp( 2.5 * ( this.ior - 1 ) / ( this.ior + 1 ), 0, 1 ) );\n\n\t\t\t},\n\t\t\tset: function ( reflectivity ) {\n\n\t\t\t\tthis.ior = ( 1 + 0.4 * reflectivity ) / ( 1 - 0.4 * reflectivity );\n\n\t\t\t}\n\t\t} );\n\n\t\tthis.iridescenceMap = null;\n\t\tthis.iridescenceIOR = 1.3;\n\t\tthis.iridescenceThicknessRange = [ 100, 400 ];\n\t\tthis.iridescenceThicknessMap = null;\n\n\t\tthis.sheenColor = new Color( 0x000000 );\n\t\tthis.sheenColorMap = null;\n\t\tthis.sheenRoughness = 1.0;\n\t\tthis.sheenRoughnessMap = null;\n\n\t\tthis.transmissionMap = null;\n\n\t\tthis.thickness = 0;\n\t\tthis.thicknessMap = null;\n\t\tthis.attenuationDistance = Infinity;\n\t\tthis.attenuationColor = new Color( 1, 1, 1 );\n\n\t\tthis.specularIntensity = 1.0;\n\t\tthis.specularIntensityMap = null;\n\t\tthis.specularColor = new Color( 1, 1, 1 );\n\t\tthis.specularColorMap = null;\n\n\t\tthis._anisotropy = 0;\n\t\tthis._clearcoat = 0;\n\t\tthis._dispersion = 0;\n\t\tthis._iridescence = 0;\n\t\tthis._sheen = 0.0;\n\t\tthis._transmission = 0;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tget anisotropy() {\n\n\t\treturn this._anisotropy;\n\n\t}\n\n\tset anisotropy( value ) {\n\n\t\tif ( this._anisotropy > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._anisotropy = value;\n\n\t}\n\n\tget clearcoat() {\n\n\t\treturn this._clearcoat;\n\n\t}\n\n\tset clearcoat( value ) {\n\n\t\tif ( this._clearcoat > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._clearcoat = value;\n\n\t}\n\n\tget iridescence() {\n\n\t\treturn this._iridescence;\n\n\t}\n\n\tset iridescence( value ) {\n\n\t\tif ( this._iridescence > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._iridescence = value;\n\n\t}\n\n\tget dispersion() {\n\n\t\treturn this._dispersion;\n\n\t}\n\n\tset dispersion( value ) {\n\n\t\tif ( this._dispersion > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._dispersion = value;\n\n\t}\n\n\tget sheen() {\n\n\t\treturn this._sheen;\n\n\t}\n\n\tset sheen( value ) {\n\n\t\tif ( this._sheen > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._sheen = value;\n\n\t}\n\n\tget transmission() {\n\n\t\treturn this._transmission;\n\n\t}\n\n\tset transmission( value ) {\n\n\t\tif ( this._transmission > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._transmission = value;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.defines = {\n\n\t\t\t'STANDARD': '',\n\t\t\t'PHYSICAL': ''\n\n\t\t};\n\n\t\tthis.anisotropy = source.anisotropy;\n\t\tthis.anisotropyRotation = source.anisotropyRotation;\n\t\tthis.anisotropyMap = source.anisotropyMap;\n\n\t\tthis.clearcoat = source.clearcoat;\n\t\tthis.clearcoatMap = source.clearcoatMap;\n\t\tthis.clearcoatRoughness = source.clearcoatRoughness;\n\t\tthis.clearcoatRoughnessMap = source.clearcoatRoughnessMap;\n\t\tthis.clearcoatNormalMap = source.clearcoatNormalMap;\n\t\tthis.clearcoatNormalScale.copy( source.clearcoatNormalScale );\n\n\t\tthis.dispersion = source.dispersion;\n\t\tthis.ior = source.ior;\n\n\t\tthis.iridescence = source.iridescence;\n\t\tthis.iridescenceMap = source.iridescenceMap;\n\t\tthis.iridescenceIOR = source.iridescenceIOR;\n\t\tthis.iridescenceThicknessRange = [ ...source.iridescenceThicknessRange ];\n\t\tthis.iridescenceThicknessMap = source.iridescenceThicknessMap;\n\n\t\tthis.sheen = source.sheen;\n\t\tthis.sheenColor.copy( source.sheenColor );\n\t\tthis.sheenColorMap = source.sheenColorMap;\n\t\tthis.sheenRoughness = source.sheenRoughness;\n\t\tthis.sheenRoughnessMap = source.sheenRoughnessMap;\n\n\t\tthis.transmission = source.transmission;\n\t\tthis.transmissionMap = source.transmissionMap;\n\n\t\tthis.thickness = source.thickness;\n\t\tthis.thicknessMap = source.thicknessMap;\n\t\tthis.attenuationDistance = source.attenuationDistance;\n\t\tthis.attenuationColor.copy( source.attenuationColor );\n\n\t\tthis.specularIntensity = source.specularIntensity;\n\t\tthis.specularIntensityMap = source.specularIntensityMap;\n\t\tthis.specularColor.copy( source.specularColor );\n\t\tthis.specularColorMap = source.specularColorMap;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshPhongMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshPhongMaterial = true;\n\n\t\tthis.type = 'MeshPhongMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\t\tthis.specular = new Color( 0x111111 );\n\t\tthis.shininess = 30;\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.envMapRotation = new Euler();\n\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.flatShading = false;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\t\tthis.specular.copy( source.specular );\n\t\tthis.shininess = source.shininess;\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.envMapRotation.copy( source.envMapRotation );\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshToonMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshToonMaterial = true;\n\n\t\tthis.defines = { 'TOON': '' };\n\n\t\tthis.type = 'MeshToonMaterial';\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\t\tthis.gradientMap = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\t\tthis.gradientMap = source.gradientMap;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshNormalMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshNormalMaterial = true;\n\n\t\tthis.type = 'MeshNormalMaterial';\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\n\t\tthis.flatShading = false;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshLambertMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshLambertMaterial = true;\n\n\t\tthis.type = 'MeshLambertMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.envMapRotation = new Euler();\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.flatShading = false;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.envMapRotation.copy( source.envMapRotation );\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshDepthMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshDepthMaterial = true;\n\n\t\tthis.type = 'MeshDepthMaterial';\n\n\t\tthis.depthPacking = BasicDepthPacking;\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.depthPacking = source.depthPacking;\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshDistanceMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshDistanceMaterial = true;\n\n\t\tthis.type = 'MeshDistanceMaterial';\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshMatcapMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshMatcapMaterial = true;\n\n\t\tthis.defines = { 'MATCAP': '' };\n\n\t\tthis.type = 'MeshMatcapMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\tthis.matcap = null;\n\n\t\tthis.map = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.flatShading = false;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.defines = { 'MATCAP': '' };\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.matcap = source.matcap;\n\n\t\tthis.map = source.map;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass LineDashedMaterial extends LineBasicMaterial {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isLineDashedMaterial = true;\n\t\tthis.type = 'LineDashedMaterial';\n\n\t\tthis.scale = 1;\n\t\tthis.dashSize = 3;\n\t\tthis.gapSize = 1;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.scale = source.scale;\n\t\tthis.dashSize = source.dashSize;\n\t\tthis.gapSize = source.gapSize;\n\n\t\treturn this;\n\n\t}\n\n}\n\n// converts an array to a specific type\nfunction convertArray( array, type, forceClone ) {\n\n\tif ( ! array || // let 'undefined' and 'null' pass\n\t\t! forceClone && array.constructor === type ) return array;\n\n\tif ( typeof type.BYTES_PER_ELEMENT === 'number' ) {\n\n\t\treturn new type( array ); // create typed array\n\n\t}\n\n\treturn Array.prototype.slice.call( array ); // create Array\n\n}\n\nfunction isTypedArray( object ) {\n\n\treturn ArrayBuffer.isView( object ) &&\n\t\t! ( object instanceof DataView );\n\n}\n\n// returns an array by which times and values can be sorted\nfunction getKeyframeOrder( times ) {\n\n\tfunction compareTime( i, j ) {\n\n\t\treturn times[ i ] - times[ j ];\n\n\t}\n\n\tconst n = times.length;\n\tconst result = new Array( n );\n\tfor ( let i = 0; i !== n; ++ i ) result[ i ] = i;\n\n\tresult.sort( compareTime );\n\n\treturn result;\n\n}\n\n// uses the array previously returned by 'getKeyframeOrder' to sort data\nfunction sortedArray( values, stride, order ) {\n\n\tconst nValues = values.length;\n\tconst result = new values.constructor( nValues );\n\n\tfor ( let i = 0, dstOffset = 0; dstOffset !== nValues; ++ i ) {\n\n\t\tconst srcOffset = order[ i ] * stride;\n\n\t\tfor ( let j = 0; j !== stride; ++ j ) {\n\n\t\t\tresult[ dstOffset ++ ] = values[ srcOffset + j ];\n\n\t\t}\n\n\t}\n\n\treturn result;\n\n}\n\n// function for parsing AOS keyframe formats\nfunction flattenJSON( jsonKeys, times, values, valuePropertyName ) {\n\n\tlet i = 1, key = jsonKeys[ 0 ];\n\n\twhile ( key !== undefined && key[ valuePropertyName ] === undefined ) {\n\n\t\tkey = jsonKeys[ i ++ ];\n\n\t}\n\n\tif ( key === undefined ) return; // no data\n\n\tlet value = key[ valuePropertyName ];\n\tif ( value === undefined ) return; // no data\n\n\tif ( Array.isArray( value ) ) {\n\n\t\tdo {\n\n\t\t\tvalue = key[ valuePropertyName ];\n\n\t\t\tif ( value !== undefined ) {\n\n\t\t\t\ttimes.push( key.time );\n\t\t\t\tvalues.push.apply( values, value ); // push all elements\n\n\t\t\t}\n\n\t\t\tkey = jsonKeys[ i ++ ];\n\n\t\t} while ( key !== undefined );\n\n\t} else if ( value.toArray !== undefined ) {\n\n\t\t// ...assume THREE.Math-ish\n\n\t\tdo {\n\n\t\t\tvalue = key[ valuePropertyName ];\n\n\t\t\tif ( value !== undefined ) {\n\n\t\t\t\ttimes.push( key.time );\n\t\t\t\tvalue.toArray( values, values.length );\n\n\t\t\t}\n\n\t\t\tkey = jsonKeys[ i ++ ];\n\n\t\t} while ( key !== undefined );\n\n\t} else {\n\n\t\t// otherwise push as-is\n\n\t\tdo {\n\n\t\t\tvalue = key[ valuePropertyName ];\n\n\t\t\tif ( value !== undefined ) {\n\n\t\t\t\ttimes.push( key.time );\n\t\t\t\tvalues.push( value );\n\n\t\t\t}\n\n\t\t\tkey = jsonKeys[ i ++ ];\n\n\t\t} while ( key !== undefined );\n\n\t}\n\n}\n\nfunction subclip( sourceClip, name, startFrame, endFrame, fps = 30 ) {\n\n\tconst clip = sourceClip.clone();\n\n\tclip.name = name;\n\n\tconst tracks = [];\n\n\tfor ( let i = 0; i < clip.tracks.length; ++ i ) {\n\n\t\tconst track = clip.tracks[ i ];\n\t\tconst valueSize = track.getValueSize();\n\n\t\tconst times = [];\n\t\tconst values = [];\n\n\t\tfor ( let j = 0; j < track.times.length; ++ j ) {\n\n\t\t\tconst frame = track.times[ j ] * fps;\n\n\t\t\tif ( frame < startFrame || frame >= endFrame ) continue;\n\n\t\t\ttimes.push( track.times[ j ] );\n\n\t\t\tfor ( let k = 0; k < valueSize; ++ k ) {\n\n\t\t\t\tvalues.push( track.values[ j * valueSize + k ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( times.length === 0 ) continue;\n\n\t\ttrack.times = convertArray( times, track.times.constructor );\n\t\ttrack.values = convertArray( values, track.values.constructor );\n\n\t\ttracks.push( track );\n\n\t}\n\n\tclip.tracks = tracks;\n\n\t// find minimum .times value across all tracks in the trimmed clip\n\n\tlet minStartTime = Infinity;\n\n\tfor ( let i = 0; i < clip.tracks.length; ++ i ) {\n\n\t\tif ( minStartTime > clip.tracks[ i ].times[ 0 ] ) {\n\n\t\t\tminStartTime = clip.tracks[ i ].times[ 0 ];\n\n\t\t}\n\n\t}\n\n\t// shift all tracks such that clip begins at t=0\n\n\tfor ( let i = 0; i < clip.tracks.length; ++ i ) {\n\n\t\tclip.tracks[ i ].shift( - 1 * minStartTime );\n\n\t}\n\n\tclip.resetDuration();\n\n\treturn clip;\n\n}\n\nfunction makeClipAdditive( targetClip, referenceFrame = 0, referenceClip = targetClip, fps = 30 ) {\n\n\tif ( fps <= 0 ) fps = 30;\n\n\tconst numTracks = referenceClip.tracks.length;\n\tconst referenceTime = referenceFrame / fps;\n\n\t// Make each track's values relative to the values at the reference frame\n\tfor ( let i = 0; i < numTracks; ++ i ) {\n\n\t\tconst referenceTrack = referenceClip.tracks[ i ];\n\t\tconst referenceTrackType = referenceTrack.ValueTypeName;\n\n\t\t// Skip this track if it's non-numeric\n\t\tif ( referenceTrackType === 'bool' || referenceTrackType === 'string' ) continue;\n\n\t\t// Find the track in the target clip whose name and type matches the reference track\n\t\tconst targetTrack = targetClip.tracks.find( function ( track ) {\n\n\t\t\treturn track.name === referenceTrack.name\n\t\t\t\t&& track.ValueTypeName === referenceTrackType;\n\n\t\t} );\n\n\t\tif ( targetTrack === undefined ) continue;\n\n\t\tlet referenceOffset = 0;\n\t\tconst referenceValueSize = referenceTrack.getValueSize();\n\n\t\tif ( referenceTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline ) {\n\n\t\t\treferenceOffset = referenceValueSize / 3;\n\n\t\t}\n\n\t\tlet targetOffset = 0;\n\t\tconst targetValueSize = targetTrack.getValueSize();\n\n\t\tif ( targetTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline ) {\n\n\t\t\ttargetOffset = targetValueSize / 3;\n\n\t\t}\n\n\t\tconst lastIndex = referenceTrack.times.length - 1;\n\t\tlet referenceValue;\n\n\t\t// Find the value to subtract out of the track\n\t\tif ( referenceTime <= referenceTrack.times[ 0 ] ) {\n\n\t\t\t// Reference frame is earlier than the first keyframe, so just use the first keyframe\n\t\t\tconst startIndex = referenceOffset;\n\t\t\tconst endIndex = referenceValueSize - referenceOffset;\n\t\t\treferenceValue = referenceTrack.values.slice( startIndex, endIndex );\n\n\t\t} else if ( referenceTime >= referenceTrack.times[ lastIndex ] ) {\n\n\t\t\t// Reference frame is after the last keyframe, so just use the last keyframe\n\t\t\tconst startIndex = lastIndex * referenceValueSize + referenceOffset;\n\t\t\tconst endIndex = startIndex + referenceValueSize - referenceOffset;\n\t\t\treferenceValue = referenceTrack.values.slice( startIndex, endIndex );\n\n\t\t} else {\n\n\t\t\t// Interpolate to the reference value\n\t\t\tconst interpolant = referenceTrack.createInterpolant();\n\t\t\tconst startIndex = referenceOffset;\n\t\t\tconst endIndex = referenceValueSize - referenceOffset;\n\t\t\tinterpolant.evaluate( referenceTime );\n\t\t\treferenceValue = interpolant.resultBuffer.slice( startIndex, endIndex );\n\n\t\t}\n\n\t\t// Conjugate the quaternion\n\t\tif ( referenceTrackType === 'quaternion' ) {\n\n\t\t\tconst referenceQuat = new Quaternion().fromArray( referenceValue ).normalize().conjugate();\n\t\t\treferenceQuat.toArray( referenceValue );\n\n\t\t}\n\n\t\t// Subtract the reference value from all of the track values\n\n\t\tconst numTimes = targetTrack.times.length;\n\t\tfor ( let j = 0; j < numTimes; ++ j ) {\n\n\t\t\tconst valueStart = j * targetValueSize + targetOffset;\n\n\t\t\tif ( referenceTrackType === 'quaternion' ) {\n\n\t\t\t\t// Multiply the conjugate for quaternion track types\n\t\t\t\tQuaternion.multiplyQuaternionsFlat(\n\t\t\t\t\ttargetTrack.values,\n\t\t\t\t\tvalueStart,\n\t\t\t\t\treferenceValue,\n\t\t\t\t\t0,\n\t\t\t\t\ttargetTrack.values,\n\t\t\t\t\tvalueStart\n\t\t\t\t);\n\n\t\t\t} else {\n\n\t\t\t\tconst valueEnd = targetValueSize - targetOffset * 2;\n\n\t\t\t\t// Subtract each value for all other numeric track types\n\t\t\t\tfor ( let k = 0; k < valueEnd; ++ k ) {\n\n\t\t\t\t\ttargetTrack.values[ valueStart + k ] -= referenceValue[ k ];\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttargetClip.blendMode = AdditiveAnimationBlendMode;\n\n\treturn targetClip;\n\n}\n\nconst AnimationUtils = {\n\tconvertArray: convertArray,\n\tisTypedArray: isTypedArray,\n\tgetKeyframeOrder: getKeyframeOrder,\n\tsortedArray: sortedArray,\n\tflattenJSON: flattenJSON,\n\tsubclip: subclip,\n\tmakeClipAdditive: makeClipAdditive\n};\n\n/**\n * Abstract base class of interpolants over parametric samples.\n *\n * The parameter domain is one dimensional, typically the time or a path\n * along a curve defined by the data.\n *\n * The sample values can have any dimensionality and derived classes may\n * apply special interpretations to the data.\n *\n * This class provides the interval seek in a Template Method, deferring\n * the actual interpolation to derived classes.\n *\n * Time complexity is O(1) for linear access crossing at most two points\n * and O(log N) for random access, where N is the number of positions.\n *\n * References:\n *\n * \t\thttp://www.oodesign.com/template-method-pattern.html\n *\n */\n\nclass Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tthis.parameterPositions = parameterPositions;\n\t\tthis._cachedIndex = 0;\n\n\t\tthis.resultBuffer = resultBuffer !== undefined ?\n\t\t\tresultBuffer : new sampleValues.constructor( sampleSize );\n\t\tthis.sampleValues = sampleValues;\n\t\tthis.valueSize = sampleSize;\n\n\t\tthis.settings = null;\n\t\tthis.DefaultSettings_ = {};\n\n\t}\n\n\tevaluate( t ) {\n\n\t\tconst pp = this.parameterPositions;\n\t\tlet i1 = this._cachedIndex,\n\t\t\tt1 = pp[ i1 ],\n\t\t\tt0 = pp[ i1 - 1 ];\n\n\t\tvalidate_interval: {\n\n\t\t\tseek: {\n\n\t\t\t\tlet right;\n\n\t\t\t\tlinear_scan: {\n\n\t\t\t\t\t//- See http://jsperf.com/comparison-to-undefined/3\n\t\t\t\t\t//- slower code:\n\t\t\t\t\t//-\n\t\t\t\t\t//- \t\t\t\tif ( t >= t1 || t1 === undefined ) {\n\t\t\t\t\tforward_scan: if ( ! ( t < t1 ) ) {\n\n\t\t\t\t\t\tfor ( let giveUpAt = i1 + 2; ; ) {\n\n\t\t\t\t\t\t\tif ( t1 === undefined ) {\n\n\t\t\t\t\t\t\t\tif ( t < t0 ) break forward_scan;\n\n\t\t\t\t\t\t\t\t// after end\n\n\t\t\t\t\t\t\t\ti1 = pp.length;\n\t\t\t\t\t\t\t\tthis._cachedIndex = i1;\n\t\t\t\t\t\t\t\treturn this.copySampleValue_( i1 - 1 );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( i1 === giveUpAt ) break; // this loop\n\n\t\t\t\t\t\t\tt0 = t1;\n\t\t\t\t\t\t\tt1 = pp[ ++ i1 ];\n\n\t\t\t\t\t\t\tif ( t < t1 ) {\n\n\t\t\t\t\t\t\t\t// we have arrived at the sought interval\n\t\t\t\t\t\t\t\tbreak seek;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// prepare binary search on the right side of the index\n\t\t\t\t\t\tright = pp.length;\n\t\t\t\t\t\tbreak linear_scan;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t//- slower code:\n\t\t\t\t\t//-\t\t\t\t\tif ( t < t0 || t0 === undefined ) {\n\t\t\t\t\tif ( ! ( t >= t0 ) ) {\n\n\t\t\t\t\t\t// looping?\n\n\t\t\t\t\t\tconst t1global = pp[ 1 ];\n\n\t\t\t\t\t\tif ( t < t1global ) {\n\n\t\t\t\t\t\t\ti1 = 2; // + 1, using the scan for the details\n\t\t\t\t\t\t\tt0 = t1global;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// linear reverse scan\n\n\t\t\t\t\t\tfor ( let giveUpAt = i1 - 2; ; ) {\n\n\t\t\t\t\t\t\tif ( t0 === undefined ) {\n\n\t\t\t\t\t\t\t\t// before start\n\n\t\t\t\t\t\t\t\tthis._cachedIndex = 0;\n\t\t\t\t\t\t\t\treturn this.copySampleValue_( 0 );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( i1 === giveUpAt ) break; // this loop\n\n\t\t\t\t\t\t\tt1 = t0;\n\t\t\t\t\t\t\tt0 = pp[ -- i1 - 1 ];\n\n\t\t\t\t\t\t\tif ( t >= t0 ) {\n\n\t\t\t\t\t\t\t\t// we have arrived at the sought interval\n\t\t\t\t\t\t\t\tbreak seek;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// prepare binary search on the left side of the index\n\t\t\t\t\t\tright = i1;\n\t\t\t\t\t\ti1 = 0;\n\t\t\t\t\t\tbreak linear_scan;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// the interval is valid\n\n\t\t\t\t\tbreak validate_interval;\n\n\t\t\t\t} // linear scan\n\n\t\t\t\t// binary search\n\n\t\t\t\twhile ( i1 < right ) {\n\n\t\t\t\t\tconst mid = ( i1 + right ) >>> 1;\n\n\t\t\t\t\tif ( t < pp[ mid ] ) {\n\n\t\t\t\t\t\tright = mid;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ti1 = mid + 1;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tt1 = pp[ i1 ];\n\t\t\t\tt0 = pp[ i1 - 1 ];\n\n\t\t\t\t// check boundary cases, again\n\n\t\t\t\tif ( t0 === undefined ) {\n\n\t\t\t\t\tthis._cachedIndex = 0;\n\t\t\t\t\treturn this.copySampleValue_( 0 );\n\n\t\t\t\t}\n\n\t\t\t\tif ( t1 === undefined ) {\n\n\t\t\t\t\ti1 = pp.length;\n\t\t\t\t\tthis._cachedIndex = i1;\n\t\t\t\t\treturn this.copySampleValue_( i1 - 1 );\n\n\t\t\t\t}\n\n\t\t\t} // seek\n\n\t\t\tthis._cachedIndex = i1;\n\n\t\t\tthis.intervalChanged_( i1, t0, t1 );\n\n\t\t} // validate_interval\n\n\t\treturn this.interpolate_( i1, t0, t, t1 );\n\n\t}\n\n\tgetSettings_() {\n\n\t\treturn this.settings || this.DefaultSettings_;\n\n\t}\n\n\tcopySampleValue_( index ) {\n\n\t\t// copies a sample value to the result buffer\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\t\t\toffset = index * stride;\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tresult[ i ] = values[ offset + i ];\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\t// Template methods for derived classes:\n\n\tinterpolate_( /* i1, t0, t, t1 */ ) {\n\n\t\tthrow new Error( 'call to abstract method' );\n\t\t// implementations shall return this.resultBuffer\n\n\t}\n\n\tintervalChanged_( /* i1, t0, t1 */ ) {\n\n\t\t// empty\n\n\t}\n\n}\n\n/**\n * Fast and simple cubic spline interpolant.\n *\n * It was derived from a Hermitian construction setting the first derivative\n * at each sample position to the linear slope between neighboring positions\n * over their parameter interval.\n */\n\nclass CubicInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t\tthis._weightPrev = - 0;\n\t\tthis._offsetPrev = - 0;\n\t\tthis._weightNext = - 0;\n\t\tthis._offsetNext = - 0;\n\n\t\tthis.DefaultSettings_ = {\n\n\t\t\tendingStart: ZeroCurvatureEnding,\n\t\t\tendingEnd: ZeroCurvatureEnding\n\n\t\t};\n\n\t}\n\n\tintervalChanged_( i1, t0, t1 ) {\n\n\t\tconst pp = this.parameterPositions;\n\t\tlet iPrev = i1 - 2,\n\t\t\tiNext = i1 + 1,\n\n\t\t\ttPrev = pp[ iPrev ],\n\t\t\ttNext = pp[ iNext ];\n\n\t\tif ( tPrev === undefined ) {\n\n\t\t\tswitch ( this.getSettings_().endingStart ) {\n\n\t\t\t\tcase ZeroSlopeEnding:\n\n\t\t\t\t\t// f'(t0) = 0\n\t\t\t\t\tiPrev = i1;\n\t\t\t\t\ttPrev = 2 * t0 - t1;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase WrapAroundEnding:\n\n\t\t\t\t\t// use the other end of the curve\n\t\t\t\t\tiPrev = pp.length - 2;\n\t\t\t\t\ttPrev = t0 + pp[ iPrev ] - pp[ iPrev + 1 ];\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault: // ZeroCurvatureEnding\n\n\t\t\t\t\t// f''(t0) = 0 a.k.a. Natural Spline\n\t\t\t\t\tiPrev = i1;\n\t\t\t\t\ttPrev = t1;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( tNext === undefined ) {\n\n\t\t\tswitch ( this.getSettings_().endingEnd ) {\n\n\t\t\t\tcase ZeroSlopeEnding:\n\n\t\t\t\t\t// f'(tN) = 0\n\t\t\t\t\tiNext = i1;\n\t\t\t\t\ttNext = 2 * t1 - t0;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase WrapAroundEnding:\n\n\t\t\t\t\t// use the other end of the curve\n\t\t\t\t\tiNext = 1;\n\t\t\t\t\ttNext = t1 + pp[ 1 ] - pp[ 0 ];\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault: // ZeroCurvatureEnding\n\n\t\t\t\t\t// f''(tN) = 0, a.k.a. Natural Spline\n\t\t\t\t\tiNext = i1 - 1;\n\t\t\t\t\ttNext = t0;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst halfDt = ( t1 - t0 ) * 0.5,\n\t\t\tstride = this.valueSize;\n\n\t\tthis._weightPrev = halfDt / ( t0 - tPrev );\n\t\tthis._weightNext = halfDt / ( tNext - t1 );\n\t\tthis._offsetPrev = iPrev * stride;\n\t\tthis._offsetNext = iNext * stride;\n\n\t}\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\n\t\t\to1 = i1 * stride,\t\to0 = o1 - stride,\n\t\t\toP = this._offsetPrev, \toN = this._offsetNext,\n\t\t\twP = this._weightPrev,\twN = this._weightNext,\n\n\t\t\tp = ( t - t0 ) / ( t1 - t0 ),\n\t\t\tpp = p * p,\n\t\t\tppp = pp * p;\n\n\t\t// evaluate polynomials\n\n\t\tconst sP = - wP * ppp + 2 * wP * pp - wP * p;\n\t\tconst s0 = ( 1 + wP ) * ppp + ( - 1.5 - 2 * wP ) * pp + ( - 0.5 + wP ) * p + 1;\n\t\tconst s1 = ( - 1 - wN ) * ppp + ( 1.5 + wN ) * pp + 0.5 * p;\n\t\tconst sN = wN * ppp - wN * pp;\n\n\t\t// combine data linearly\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tresult[ i ] =\n\t\t\t\t\tsP * values[ oP + i ] +\n\t\t\t\t\ts0 * values[ o0 + i ] +\n\t\t\t\t\ts1 * values[ o1 + i ] +\n\t\t\t\t\tsN * values[ oN + i ];\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\nclass LinearInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\n\t\t\toffset1 = i1 * stride,\n\t\t\toffset0 = offset1 - stride,\n\n\t\t\tweight1 = ( t - t0 ) / ( t1 - t0 ),\n\t\t\tweight0 = 1 - weight1;\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tresult[ i ] =\n\t\t\t\t\tvalues[ offset0 + i ] * weight0 +\n\t\t\t\t\tvalues[ offset1 + i ] * weight1;\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\n/**\n *\n * Interpolant that evaluates to the sample value at the position preceding\n * the parameter.\n */\n\nclass DiscreteInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tinterpolate_( i1 /*, t0, t, t1 */ ) {\n\n\t\treturn this.copySampleValue_( i1 - 1 );\n\n\t}\n\n}\n\nclass KeyframeTrack {\n\n\tconstructor( name, times, values, interpolation ) {\n\n\t\tif ( name === undefined ) throw new Error( 'THREE.KeyframeTrack: track name is undefined' );\n\t\tif ( times === undefined || times.length === 0 ) throw new Error( 'THREE.KeyframeTrack: no keyframes in track named ' + name );\n\n\t\tthis.name = name;\n\n\t\tthis.times = convertArray( times, this.TimeBufferType );\n\t\tthis.values = convertArray( values, this.ValueBufferType );\n\n\t\tthis.setInterpolation( interpolation || this.DefaultInterpolation );\n\n\t}\n\n\t// Serialization (in static context, because of constructor invocation\n\t// and automatic invocation of .toJSON):\n\n\tstatic toJSON( track ) {\n\n\t\tconst trackType = track.constructor;\n\n\t\tlet json;\n\n\t\t// derived classes can define a static toJSON method\n\t\tif ( trackType.toJSON !== this.toJSON ) {\n\n\t\t\tjson = trackType.toJSON( track );\n\n\t\t} else {\n\n\t\t\t// by default, we assume the data can be serialized as-is\n\t\t\tjson = {\n\n\t\t\t\t'name': track.name,\n\t\t\t\t'times': convertArray( track.times, Array ),\n\t\t\t\t'values': convertArray( track.values, Array )\n\n\t\t\t};\n\n\t\t\tconst interpolation = track.getInterpolation();\n\n\t\t\tif ( interpolation !== track.DefaultInterpolation ) {\n\n\t\t\t\tjson.interpolation = interpolation;\n\n\t\t\t}\n\n\t\t}\n\n\t\tjson.type = track.ValueTypeName; // mandatory\n\n\t\treturn json;\n\n\t}\n\n\tInterpolantFactoryMethodDiscrete( result ) {\n\n\t\treturn new DiscreteInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\tInterpolantFactoryMethodLinear( result ) {\n\n\t\treturn new LinearInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\tInterpolantFactoryMethodSmooth( result ) {\n\n\t\treturn new CubicInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\tsetInterpolation( interpolation ) {\n\n\t\tlet factoryMethod;\n\n\t\tswitch ( interpolation ) {\n\n\t\t\tcase InterpolateDiscrete:\n\n\t\t\t\tfactoryMethod = this.InterpolantFactoryMethodDiscrete;\n\n\t\t\t\tbreak;\n\n\t\t\tcase InterpolateLinear:\n\n\t\t\t\tfactoryMethod = this.InterpolantFactoryMethodLinear;\n\n\t\t\t\tbreak;\n\n\t\t\tcase InterpolateSmooth:\n\n\t\t\t\tfactoryMethod = this.InterpolantFactoryMethodSmooth;\n\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\tif ( factoryMethod === undefined ) {\n\n\t\t\tconst message = 'unsupported interpolation for ' +\n\t\t\t\tthis.ValueTypeName + ' keyframe track named ' + this.name;\n\n\t\t\tif ( this.createInterpolant === undefined ) {\n\n\t\t\t\t// fall back to default, unless the default itself is messed up\n\t\t\t\tif ( interpolation !== this.DefaultInterpolation ) {\n\n\t\t\t\t\tthis.setInterpolation( this.DefaultInterpolation );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new Error( message ); // fatal, in this case\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconsole.warn( 'THREE.KeyframeTrack:', message );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tthis.createInterpolant = factoryMethod;\n\n\t\treturn this;\n\n\t}\n\n\tgetInterpolation() {\n\n\t\tswitch ( this.createInterpolant ) {\n\n\t\t\tcase this.InterpolantFactoryMethodDiscrete:\n\n\t\t\t\treturn InterpolateDiscrete;\n\n\t\t\tcase this.InterpolantFactoryMethodLinear:\n\n\t\t\t\treturn InterpolateLinear;\n\n\t\t\tcase this.InterpolantFactoryMethodSmooth:\n\n\t\t\t\treturn InterpolateSmooth;\n\n\t\t}\n\n\t}\n\n\tgetValueSize() {\n\n\t\treturn this.values.length / this.times.length;\n\n\t}\n\n\t// move all keyframes either forwards or backwards in time\n\tshift( timeOffset ) {\n\n\t\tif ( timeOffset !== 0.0 ) {\n\n\t\t\tconst times = this.times;\n\n\t\t\tfor ( let i = 0, n = times.length; i !== n; ++ i ) {\n\n\t\t\t\ttimes[ i ] += timeOffset;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// scale all keyframe times by a factor (useful for frame <-> seconds conversions)\n\tscale( timeScale ) {\n\n\t\tif ( timeScale !== 1.0 ) {\n\n\t\t\tconst times = this.times;\n\n\t\t\tfor ( let i = 0, n = times.length; i !== n; ++ i ) {\n\n\t\t\t\ttimes[ i ] *= timeScale;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// removes keyframes before and after animation without changing any values within the range [startTime, endTime].\n\t// IMPORTANT: We do not shift around keys to the start of the track time, because for interpolated keys this will change their values\n\ttrim( startTime, endTime ) {\n\n\t\tconst times = this.times,\n\t\t\tnKeys = times.length;\n\n\t\tlet from = 0,\n\t\t\tto = nKeys - 1;\n\n\t\twhile ( from !== nKeys && times[ from ] < startTime ) {\n\n\t\t\t++ from;\n\n\t\t}\n\n\t\twhile ( to !== - 1 && times[ to ] > endTime ) {\n\n\t\t\t-- to;\n\n\t\t}\n\n\t\t++ to; // inclusive -> exclusive bound\n\n\t\tif ( from !== 0 || to !== nKeys ) {\n\n\t\t\t// empty tracks are forbidden, so keep at least one keyframe\n\t\t\tif ( from >= to ) {\n\n\t\t\t\tto = Math.max( to, 1 );\n\t\t\t\tfrom = to - 1;\n\n\t\t\t}\n\n\t\t\tconst stride = this.getValueSize();\n\t\t\tthis.times = times.slice( from, to );\n\t\t\tthis.values = this.values.slice( from * stride, to * stride );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// ensure we do not get a GarbageInGarbageOut situation, make sure tracks are at least minimally viable\n\tvalidate() {\n\n\t\tlet valid = true;\n\n\t\tconst valueSize = this.getValueSize();\n\t\tif ( valueSize - Math.floor( valueSize ) !== 0 ) {\n\n\t\t\tconsole.error( 'THREE.KeyframeTrack: Invalid value size in track.', this );\n\t\t\tvalid = false;\n\n\t\t}\n\n\t\tconst times = this.times,\n\t\t\tvalues = this.values,\n\n\t\t\tnKeys = times.length;\n\n\t\tif ( nKeys === 0 ) {\n\n\t\t\tconsole.error( 'THREE.KeyframeTrack: Track is empty.', this );\n\t\t\tvalid = false;\n\n\t\t}\n\n\t\tlet prevTime = null;\n\n\t\tfor ( let i = 0; i !== nKeys; i ++ ) {\n\n\t\t\tconst currTime = times[ i ];\n\n\t\t\tif ( typeof currTime === 'number' && isNaN( currTime ) ) {\n\n\t\t\t\tconsole.error( 'THREE.KeyframeTrack: Time is not a valid number.', this, i, currTime );\n\t\t\t\tvalid = false;\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tif ( prevTime !== null && prevTime > currTime ) {\n\n\t\t\t\tconsole.error( 'THREE.KeyframeTrack: Out of order keys.', this, i, currTime, prevTime );\n\t\t\t\tvalid = false;\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tprevTime = currTime;\n\n\t\t}\n\n\t\tif ( values !== undefined ) {\n\n\t\t\tif ( isTypedArray( values ) ) {\n\n\t\t\t\tfor ( let i = 0, n = values.length; i !== n; ++ i ) {\n\n\t\t\t\t\tconst value = values[ i ];\n\n\t\t\t\t\tif ( isNaN( value ) ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.KeyframeTrack: Value is not a valid number.', this, i, value );\n\t\t\t\t\t\tvalid = false;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn valid;\n\n\t}\n\n\t// removes equivalent sequential keys as common in morph target sequences\n\t// (0,0,0,0,1,1,1,0,0,0,0,0,0,0) --> (0,0,1,1,0,0)\n\toptimize() {\n\n\t\t// times or values may be shared with other tracks, so overwriting is unsafe\n\t\tconst times = this.times.slice(),\n\t\t\tvalues = this.values.slice(),\n\t\t\tstride = this.getValueSize(),\n\n\t\t\tsmoothInterpolation = this.getInterpolation() === InterpolateSmooth,\n\n\t\t\tlastIndex = times.length - 1;\n\n\t\tlet writeIndex = 1;\n\n\t\tfor ( let i = 1; i < lastIndex; ++ i ) {\n\n\t\t\tlet keep = false;\n\n\t\t\tconst time = times[ i ];\n\t\t\tconst timeNext = times[ i + 1 ];\n\n\t\t\t// remove adjacent keyframes scheduled at the same time\n\n\t\t\tif ( time !== timeNext && ( i !== 1 || time !== times[ 0 ] ) ) {\n\n\t\t\t\tif ( ! smoothInterpolation ) {\n\n\t\t\t\t\t// remove unnecessary keyframes same as their neighbors\n\n\t\t\t\t\tconst offset = i * stride,\n\t\t\t\t\t\toffsetP = offset - stride,\n\t\t\t\t\t\toffsetN = offset + stride;\n\n\t\t\t\t\tfor ( let j = 0; j !== stride; ++ j ) {\n\n\t\t\t\t\t\tconst value = values[ offset + j ];\n\n\t\t\t\t\t\tif ( value !== values[ offsetP + j ] ||\n\t\t\t\t\t\t\tvalue !== values[ offsetN + j ] ) {\n\n\t\t\t\t\t\t\tkeep = true;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tkeep = true;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// in-place compaction\n\n\t\t\tif ( keep ) {\n\n\t\t\t\tif ( i !== writeIndex ) {\n\n\t\t\t\t\ttimes[ writeIndex ] = times[ i ];\n\n\t\t\t\t\tconst readOffset = i * stride,\n\t\t\t\t\t\twriteOffset = writeIndex * stride;\n\n\t\t\t\t\tfor ( let j = 0; j !== stride; ++ j ) {\n\n\t\t\t\t\t\tvalues[ writeOffset + j ] = values[ readOffset + j ];\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t++ writeIndex;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// flush last keyframe (compaction looks ahead)\n\n\t\tif ( lastIndex > 0 ) {\n\n\t\t\ttimes[ writeIndex ] = times[ lastIndex ];\n\n\t\t\tfor ( let readOffset = lastIndex * stride, writeOffset = writeIndex * stride, j = 0; j !== stride; ++ j ) {\n\n\t\t\t\tvalues[ writeOffset + j ] = values[ readOffset + j ];\n\n\t\t\t}\n\n\t\t\t++ writeIndex;\n\n\t\t}\n\n\t\tif ( writeIndex !== times.length ) {\n\n\t\t\tthis.times = times.slice( 0, writeIndex );\n\t\t\tthis.values = values.slice( 0, writeIndex * stride );\n\n\t\t} else {\n\n\t\t\tthis.times = times;\n\t\t\tthis.values = values;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\tconst times = this.times.slice();\n\t\tconst values = this.values.slice();\n\n\t\tconst TypedKeyframeTrack = this.constructor;\n\t\tconst track = new TypedKeyframeTrack( this.name, times, values );\n\n\t\t// Interpolant argument to constructor is not saved, so copy the factory method directly.\n\t\ttrack.createInterpolant = this.createInterpolant;\n\n\t\treturn track;\n\n\t}\n\n}\n\nKeyframeTrack.prototype.TimeBufferType = Float32Array;\nKeyframeTrack.prototype.ValueBufferType = Float32Array;\nKeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear;\n\n/**\n * A Track of Boolean keyframe values.\n */\nclass BooleanKeyframeTrack extends KeyframeTrack {\n\n\t// No interpolation parameter because only InterpolateDiscrete is valid.\n\tconstructor( name, times, values ) {\n\n\t\tsuper( name, times, values );\n\n\t}\n\n}\n\nBooleanKeyframeTrack.prototype.ValueTypeName = 'bool';\nBooleanKeyframeTrack.prototype.ValueBufferType = Array;\nBooleanKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A Track of keyframe values that represent color.\n */\nclass ColorKeyframeTrack extends KeyframeTrack {}\n\nColorKeyframeTrack.prototype.ValueTypeName = 'color';\n\n/**\n * A Track of numeric keyframe values.\n */\nclass NumberKeyframeTrack extends KeyframeTrack {}\n\nNumberKeyframeTrack.prototype.ValueTypeName = 'number';\n\n/**\n * Spherical linear unit quaternion interpolant.\n */\n\nclass QuaternionLinearInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\n\t\t\talpha = ( t - t0 ) / ( t1 - t0 );\n\n\t\tlet offset = i1 * stride;\n\n\t\tfor ( let end = offset + stride; offset !== end; offset += 4 ) {\n\n\t\t\tQuaternion.slerpFlat( result, 0, values, offset - stride, values, offset, alpha );\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\n/**\n * A Track of quaternion keyframe values.\n */\nclass QuaternionKeyframeTrack extends KeyframeTrack {\n\n\tInterpolantFactoryMethodLinear( result ) {\n\n\t\treturn new QuaternionLinearInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n}\n\nQuaternionKeyframeTrack.prototype.ValueTypeName = 'quaternion';\n// ValueBufferType is inherited\n// DefaultInterpolation is inherited;\nQuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A Track that interpolates Strings\n */\nclass StringKeyframeTrack extends KeyframeTrack {\n\n\t// No interpolation parameter because only InterpolateDiscrete is valid.\n\tconstructor( name, times, values ) {\n\n\t\tsuper( name, times, values );\n\n\t}\n\n}\n\nStringKeyframeTrack.prototype.ValueTypeName = 'string';\nStringKeyframeTrack.prototype.ValueBufferType = Array;\nStringKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A Track of vectored keyframe values.\n */\nclass VectorKeyframeTrack extends KeyframeTrack {}\n\nVectorKeyframeTrack.prototype.ValueTypeName = 'vector';\n\nclass AnimationClip {\n\n\tconstructor( name = '', duration = - 1, tracks = [], blendMode = NormalAnimationBlendMode ) {\n\n\t\tthis.name = name;\n\t\tthis.tracks = tracks;\n\t\tthis.duration = duration;\n\t\tthis.blendMode = blendMode;\n\n\t\tthis.uuid = generateUUID();\n\n\t\t// this means it should figure out its duration by scanning the tracks\n\t\tif ( this.duration < 0 ) {\n\n\t\t\tthis.resetDuration();\n\n\t\t}\n\n\t}\n\n\n\tstatic parse( json ) {\n\n\t\tconst tracks = [],\n\t\t\tjsonTracks = json.tracks,\n\t\t\tframeTime = 1.0 / ( json.fps || 1.0 );\n\n\t\tfor ( let i = 0, n = jsonTracks.length; i !== n; ++ i ) {\n\n\t\t\ttracks.push( parseKeyframeTrack( jsonTracks[ i ] ).scale( frameTime ) );\n\n\t\t}\n\n\t\tconst clip = new this( json.name, json.duration, tracks, json.blendMode );\n\t\tclip.uuid = json.uuid;\n\n\t\treturn clip;\n\n\t}\n\n\tstatic toJSON( clip ) {\n\n\t\tconst tracks = [],\n\t\t\tclipTracks = clip.tracks;\n\n\t\tconst json = {\n\n\t\t\t'name': clip.name,\n\t\t\t'duration': clip.duration,\n\t\t\t'tracks': tracks,\n\t\t\t'uuid': clip.uuid,\n\t\t\t'blendMode': clip.blendMode\n\n\t\t};\n\n\t\tfor ( let i = 0, n = clipTracks.length; i !== n; ++ i ) {\n\n\t\t\ttracks.push( KeyframeTrack.toJSON( clipTracks[ i ] ) );\n\n\t\t}\n\n\t\treturn json;\n\n\t}\n\n\tstatic CreateFromMorphTargetSequence( name, morphTargetSequence, fps, noLoop ) {\n\n\t\tconst numMorphTargets = morphTargetSequence.length;\n\t\tconst tracks = [];\n\n\t\tfor ( let i = 0; i < numMorphTargets; i ++ ) {\n\n\t\t\tlet times = [];\n\t\t\tlet values = [];\n\n\t\t\ttimes.push(\n\t\t\t\t( i + numMorphTargets - 1 ) % numMorphTargets,\n\t\t\t\ti,\n\t\t\t\t( i + 1 ) % numMorphTargets );\n\n\t\t\tvalues.push( 0, 1, 0 );\n\n\t\t\tconst order = getKeyframeOrder( times );\n\t\t\ttimes = sortedArray( times, 1, order );\n\t\t\tvalues = sortedArray( values, 1, order );\n\n\t\t\t// if there is a key at the first frame, duplicate it as the\n\t\t\t// last frame as well for perfect loop.\n\t\t\tif ( ! noLoop && times[ 0 ] === 0 ) {\n\n\t\t\t\ttimes.push( numMorphTargets );\n\t\t\t\tvalues.push( values[ 0 ] );\n\n\t\t\t}\n\n\t\t\ttracks.push(\n\t\t\t\tnew NumberKeyframeTrack(\n\t\t\t\t\t'.morphTargetInfluences[' + morphTargetSequence[ i ].name + ']',\n\t\t\t\t\ttimes, values\n\t\t\t\t).scale( 1.0 / fps ) );\n\n\t\t}\n\n\t\treturn new this( name, - 1, tracks );\n\n\t}\n\n\tstatic findByName( objectOrClipArray, name ) {\n\n\t\tlet clipArray = objectOrClipArray;\n\n\t\tif ( ! Array.isArray( objectOrClipArray ) ) {\n\n\t\t\tconst o = objectOrClipArray;\n\t\t\tclipArray = o.geometry && o.geometry.animations || o.animations;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < clipArray.length; i ++ ) {\n\n\t\t\tif ( clipArray[ i ].name === name ) {\n\n\t\t\t\treturn clipArray[ i ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\tstatic CreateClipsFromMorphTargetSequences( morphTargets, fps, noLoop ) {\n\n\t\tconst animationToMorphTargets = {};\n\n\t\t// tested with https://regex101.com/ on trick sequences\n\t\t// such flamingo_flyA_003, flamingo_run1_003, crdeath0059\n\t\tconst pattern = /^([\\w-]*?)([\\d]+)$/;\n\n\t\t// sort morph target names into animation groups based\n\t\t// patterns like Walk_001, Walk_002, Run_001, Run_002\n\t\tfor ( let i = 0, il = morphTargets.length; i < il; i ++ ) {\n\n\t\t\tconst morphTarget = morphTargets[ i ];\n\t\t\tconst parts = morphTarget.name.match( pattern );\n\n\t\t\tif ( parts && parts.length > 1 ) {\n\n\t\t\t\tconst name = parts[ 1 ];\n\n\t\t\t\tlet animationMorphTargets = animationToMorphTargets[ name ];\n\n\t\t\t\tif ( ! animationMorphTargets ) {\n\n\t\t\t\t\tanimationToMorphTargets[ name ] = animationMorphTargets = [];\n\n\t\t\t\t}\n\n\t\t\t\tanimationMorphTargets.push( morphTarget );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst clips = [];\n\n\t\tfor ( const name in animationToMorphTargets ) {\n\n\t\t\tclips.push( this.CreateFromMorphTargetSequence( name, animationToMorphTargets[ name ], fps, noLoop ) );\n\n\t\t}\n\n\t\treturn clips;\n\n\t}\n\n\t// parse the animation.hierarchy format\n\tstatic parseAnimation( animation, bones ) {\n\n\t\tif ( ! animation ) {\n\n\t\t\tconsole.error( 'THREE.AnimationClip: No animation in JSONLoader data.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst addNonemptyTrack = function ( trackType, trackName, animationKeys, propertyName, destTracks ) {\n\n\t\t\t// only return track if there are actually keys.\n\t\t\tif ( animationKeys.length !== 0 ) {\n\n\t\t\t\tconst times = [];\n\t\t\t\tconst values = [];\n\n\t\t\t\tflattenJSON( animationKeys, times, values, propertyName );\n\n\t\t\t\t// empty keys are filtered out, so check again\n\t\t\t\tif ( times.length !== 0 ) {\n\n\t\t\t\t\tdestTracks.push( new trackType( trackName, times, values ) );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tconst tracks = [];\n\n\t\tconst clipName = animation.name || 'default';\n\t\tconst fps = animation.fps || 30;\n\t\tconst blendMode = animation.blendMode;\n\n\t\t// automatic length determination in AnimationClip.\n\t\tlet duration = animation.length || - 1;\n\n\t\tconst hierarchyTracks = animation.hierarchy || [];\n\n\t\tfor ( let h = 0; h < hierarchyTracks.length; h ++ ) {\n\n\t\t\tconst animationKeys = hierarchyTracks[ h ].keys;\n\n\t\t\t// skip empty tracks\n\t\t\tif ( ! animationKeys || animationKeys.length === 0 ) continue;\n\n\t\t\t// process morph targets\n\t\t\tif ( animationKeys[ 0 ].morphTargets ) {\n\n\t\t\t\t// figure out all morph targets used in this track\n\t\t\t\tconst morphTargetNames = {};\n\n\t\t\t\tlet k;\n\n\t\t\t\tfor ( k = 0; k < animationKeys.length; k ++ ) {\n\n\t\t\t\t\tif ( animationKeys[ k ].morphTargets ) {\n\n\t\t\t\t\t\tfor ( let m = 0; m < animationKeys[ k ].morphTargets.length; m ++ ) {\n\n\t\t\t\t\t\t\tmorphTargetNames[ animationKeys[ k ].morphTargets[ m ] ] = - 1;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t// create a track for each morph target with all zero\n\t\t\t\t// morphTargetInfluences except for the keys in which\n\t\t\t\t// the morphTarget is named.\n\t\t\t\tfor ( const morphTargetName in morphTargetNames ) {\n\n\t\t\t\t\tconst times = [];\n\t\t\t\t\tconst values = [];\n\n\t\t\t\t\tfor ( let m = 0; m !== animationKeys[ k ].morphTargets.length; ++ m ) {\n\n\t\t\t\t\t\tconst animationKey = animationKeys[ k ];\n\n\t\t\t\t\t\ttimes.push( animationKey.time );\n\t\t\t\t\t\tvalues.push( ( animationKey.morphTarget === morphTargetName ) ? 1 : 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttracks.push( new NumberKeyframeTrack( '.morphTargetInfluence[' + morphTargetName + ']', times, values ) );\n\n\t\t\t\t}\n\n\t\t\t\tduration = morphTargetNames.length * fps;\n\n\t\t\t} else {\n\n\t\t\t\t// ...assume skeletal animation\n\n\t\t\t\tconst boneName = '.bones[' + bones[ h ].name + ']';\n\n\t\t\t\taddNonemptyTrack(\n\t\t\t\t\tVectorKeyframeTrack, boneName + '.position',\n\t\t\t\t\tanimationKeys, 'pos', tracks );\n\n\t\t\t\taddNonemptyTrack(\n\t\t\t\t\tQuaternionKeyframeTrack, boneName + '.quaternion',\n\t\t\t\t\tanimationKeys, 'rot', tracks );\n\n\t\t\t\taddNonemptyTrack(\n\t\t\t\t\tVectorKeyframeTrack, boneName + '.scale',\n\t\t\t\t\tanimationKeys, 'scl', tracks );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( tracks.length === 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst clip = new this( clipName, duration, tracks, blendMode );\n\n\t\treturn clip;\n\n\t}\n\n\tresetDuration() {\n\n\t\tconst tracks = this.tracks;\n\t\tlet duration = 0;\n\n\t\tfor ( let i = 0, n = tracks.length; i !== n; ++ i ) {\n\n\t\t\tconst track = this.tracks[ i ];\n\n\t\t\tduration = Math.max( duration, track.times[ track.times.length - 1 ] );\n\n\t\t}\n\n\t\tthis.duration = duration;\n\n\t\treturn this;\n\n\t}\n\n\ttrim() {\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\tthis.tracks[ i ].trim( 0, this.duration );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tvalidate() {\n\n\t\tlet valid = true;\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\tvalid = valid && this.tracks[ i ].validate();\n\n\t\t}\n\n\t\treturn valid;\n\n\t}\n\n\toptimize() {\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\tthis.tracks[ i ].optimize();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\tconst tracks = [];\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\ttracks.push( this.tracks[ i ].clone() );\n\n\t\t}\n\n\t\treturn new this.constructor( this.name, this.duration, tracks, this.blendMode );\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.constructor.toJSON( this );\n\n\t}\n\n}\n\nfunction getTrackTypeForValueTypeName( typeName ) {\n\n\tswitch ( typeName.toLowerCase() ) {\n\n\t\tcase 'scalar':\n\t\tcase 'double':\n\t\tcase 'float':\n\t\tcase 'number':\n\t\tcase 'integer':\n\n\t\t\treturn NumberKeyframeTrack;\n\n\t\tcase 'vector':\n\t\tcase 'vector2':\n\t\tcase 'vector3':\n\t\tcase 'vector4':\n\n\t\t\treturn VectorKeyframeTrack;\n\n\t\tcase 'color':\n\n\t\t\treturn ColorKeyframeTrack;\n\n\t\tcase 'quaternion':\n\n\t\t\treturn QuaternionKeyframeTrack;\n\n\t\tcase 'bool':\n\t\tcase 'boolean':\n\n\t\t\treturn BooleanKeyframeTrack;\n\n\t\tcase 'string':\n\n\t\t\treturn StringKeyframeTrack;\n\n\t}\n\n\tthrow new Error( 'THREE.KeyframeTrack: Unsupported typeName: ' + typeName );\n\n}\n\nfunction parseKeyframeTrack( json ) {\n\n\tif ( json.type === undefined ) {\n\n\t\tthrow new Error( 'THREE.KeyframeTrack: track type undefined, can not parse' );\n\n\t}\n\n\tconst trackType = getTrackTypeForValueTypeName( json.type );\n\n\tif ( json.times === undefined ) {\n\n\t\tconst times = [], values = [];\n\n\t\tflattenJSON( json.keys, times, values, 'value' );\n\n\t\tjson.times = times;\n\t\tjson.values = values;\n\n\t}\n\n\t// derived classes can define a static parse method\n\tif ( trackType.parse !== undefined ) {\n\n\t\treturn trackType.parse( json );\n\n\t} else {\n\n\t\t// by default, we assume a constructor compatible with the base\n\t\treturn new trackType( json.name, json.times, json.values, json.interpolation );\n\n\t}\n\n}\n\nconst Cache = {\n\n\tenabled: false,\n\n\tfiles: {},\n\n\tadd: function ( key, file ) {\n\n\t\tif ( this.enabled === false ) return;\n\n\t\t// console.log( 'THREE.Cache', 'Adding key:', key );\n\n\t\tthis.files[ key ] = file;\n\n\t},\n\n\tget: function ( key ) {\n\n\t\tif ( this.enabled === false ) return;\n\n\t\t// console.log( 'THREE.Cache', 'Checking key:', key );\n\n\t\treturn this.files[ key ];\n\n\t},\n\n\tremove: function ( key ) {\n\n\t\tdelete this.files[ key ];\n\n\t},\n\n\tclear: function () {\n\n\t\tthis.files = {};\n\n\t}\n\n};\n\nclass LoadingManager {\n\n\tconstructor( onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tlet isLoading = false;\n\t\tlet itemsLoaded = 0;\n\t\tlet itemsTotal = 0;\n\t\tlet urlModifier = undefined;\n\t\tconst handlers = [];\n\n\t\t// Refer to #5689 for the reason why we don't set .onStart\n\t\t// in the constructor\n\n\t\tthis.onStart = undefined;\n\t\tthis.onLoad = onLoad;\n\t\tthis.onProgress = onProgress;\n\t\tthis.onError = onError;\n\n\t\tthis.itemStart = function ( url ) {\n\n\t\t\titemsTotal ++;\n\n\t\t\tif ( isLoading === false ) {\n\n\t\t\t\tif ( scope.onStart !== undefined ) {\n\n\t\t\t\t\tscope.onStart( url, itemsLoaded, itemsTotal );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tisLoading = true;\n\n\t\t};\n\n\t\tthis.itemEnd = function ( url ) {\n\n\t\t\titemsLoaded ++;\n\n\t\t\tif ( scope.onProgress !== undefined ) {\n\n\t\t\t\tscope.onProgress( url, itemsLoaded, itemsTotal );\n\n\t\t\t}\n\n\t\t\tif ( itemsLoaded === itemsTotal ) {\n\n\t\t\t\tisLoading = false;\n\n\t\t\t\tif ( scope.onLoad !== undefined ) {\n\n\t\t\t\t\tscope.onLoad();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.itemError = function ( url ) {\n\n\t\t\tif ( scope.onError !== undefined ) {\n\n\t\t\t\tscope.onError( url );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.resolveURL = function ( url ) {\n\n\t\t\tif ( urlModifier ) {\n\n\t\t\t\treturn urlModifier( url );\n\n\t\t\t}\n\n\t\t\treturn url;\n\n\t\t};\n\n\t\tthis.setURLModifier = function ( transform ) {\n\n\t\t\turlModifier = transform;\n\n\t\t\treturn this;\n\n\t\t};\n\n\t\tthis.addHandler = function ( regex, loader ) {\n\n\t\t\thandlers.push( regex, loader );\n\n\t\t\treturn this;\n\n\t\t};\n\n\t\tthis.removeHandler = function ( regex ) {\n\n\t\t\tconst index = handlers.indexOf( regex );\n\n\t\t\tif ( index !== - 1 ) {\n\n\t\t\t\thandlers.splice( index, 2 );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t};\n\n\t\tthis.getHandler = function ( file ) {\n\n\t\t\tfor ( let i = 0, l = handlers.length; i < l; i += 2 ) {\n\n\t\t\t\tconst regex = handlers[ i ];\n\t\t\t\tconst loader = handlers[ i + 1 ];\n\n\t\t\t\tif ( regex.global ) regex.lastIndex = 0; // see #17920\n\n\t\t\t\tif ( regex.test( file ) ) {\n\n\t\t\t\t\treturn loader;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn null;\n\n\t\t};\n\n\t}\n\n}\n\nconst DefaultLoadingManager = /*@__PURE__*/ new LoadingManager();\n\nclass Loader {\n\n\tconstructor( manager ) {\n\n\t\tthis.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager;\n\n\t\tthis.crossOrigin = 'anonymous';\n\t\tthis.withCredentials = false;\n\t\tthis.path = '';\n\t\tthis.resourcePath = '';\n\t\tthis.requestHeader = {};\n\n\t}\n\n\tload( /* url, onLoad, onProgress, onError */ ) {}\n\n\tloadAsync( url, onProgress ) {\n\n\t\tconst scope = this;\n\n\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\tscope.load( url, resolve, onProgress, reject );\n\n\t\t} );\n\n\t}\n\n\tparse( /* data */ ) {}\n\n\tsetCrossOrigin( crossOrigin ) {\n\n\t\tthis.crossOrigin = crossOrigin;\n\t\treturn this;\n\n\t}\n\n\tsetWithCredentials( value ) {\n\n\t\tthis.withCredentials = value;\n\t\treturn this;\n\n\t}\n\n\tsetPath( path ) {\n\n\t\tthis.path = path;\n\t\treturn this;\n\n\t}\n\n\tsetResourcePath( resourcePath ) {\n\n\t\tthis.resourcePath = resourcePath;\n\t\treturn this;\n\n\t}\n\n\tsetRequestHeader( requestHeader ) {\n\n\t\tthis.requestHeader = requestHeader;\n\t\treturn this;\n\n\t}\n\n}\n\nLoader.DEFAULT_MATERIAL_NAME = '__DEFAULT';\n\nconst loading = {};\n\nclass HttpError extends Error {\n\n\tconstructor( message, response ) {\n\n\t\tsuper( message );\n\t\tthis.response = response;\n\n\t}\n\n}\n\nclass FileLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tif ( url === undefined ) url = '';\n\n\t\tif ( this.path !== undefined ) url = this.path + url;\n\n\t\turl = this.manager.resolveURL( url );\n\n\t\tconst cached = Cache.get( url );\n\n\t\tif ( cached !== undefined ) {\n\n\t\t\tthis.manager.itemStart( url );\n\n\t\t\tsetTimeout( () => {\n\n\t\t\t\tif ( onLoad ) onLoad( cached );\n\n\t\t\t\tthis.manager.itemEnd( url );\n\n\t\t\t}, 0 );\n\n\t\t\treturn cached;\n\n\t\t}\n\n\t\t// Check if request is duplicate\n\n\t\tif ( loading[ url ] !== undefined ) {\n\n\t\t\tloading[ url ].push( {\n\n\t\t\t\tonLoad: onLoad,\n\t\t\t\tonProgress: onProgress,\n\t\t\t\tonError: onError\n\n\t\t\t} );\n\n\t\t\treturn;\n\n\t\t}\n\n\t\t// Initialise array for duplicate requests\n\t\tloading[ url ] = [];\n\n\t\tloading[ url ].push( {\n\t\t\tonLoad: onLoad,\n\t\t\tonProgress: onProgress,\n\t\t\tonError: onError,\n\t\t} );\n\n\t\t// create request\n\t\tconst req = new Request( url, {\n\t\t\theaders: new Headers( this.requestHeader ),\n\t\t\tcredentials: this.withCredentials ? 'include' : 'same-origin',\n\t\t\t// An abort controller could be added within a future PR\n\t\t} );\n\n\t\t// record states ( avoid data race )\n\t\tconst mimeType = this.mimeType;\n\t\tconst responseType = this.responseType;\n\n\t\t// start the fetch\n\t\tfetch( req )\n\t\t\t.then( response => {\n\n\t\t\t\tif ( response.status === 200 || response.status === 0 ) {\n\n\t\t\t\t\t// Some browsers return HTTP Status 0 when using non-http protocol\n\t\t\t\t\t// e.g. 'file://' or 'data://'. Handle as success.\n\n\t\t\t\t\tif ( response.status === 0 ) {\n\n\t\t\t\t\t\tconsole.warn( 'THREE.FileLoader: HTTP Status 0 received.' );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// Workaround: Checking if response.body === undefined for Alipay browser #23548\n\n\t\t\t\t\tif ( typeof ReadableStream === 'undefined' || response.body === undefined || response.body.getReader === undefined ) {\n\n\t\t\t\t\t\treturn response;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst callbacks = loading[ url ];\n\t\t\t\t\tconst reader = response.body.getReader();\n\n\t\t\t\t\t// Nginx needs X-File-Size check\n\t\t\t\t\t// https://serverfault.com/questions/482875/why-does-nginx-remove-content-length-header-for-chunked-content\n\t\t\t\t\tconst contentLength = response.headers.get( 'X-File-Size' ) || response.headers.get( 'Content-Length' );\n\t\t\t\t\tconst total = contentLength ? parseInt( contentLength ) : 0;\n\t\t\t\t\tconst lengthComputable = total !== 0;\n\t\t\t\t\tlet loaded = 0;\n\n\t\t\t\t\t// periodically read data into the new stream tracking while download progress\n\t\t\t\t\tconst stream = new ReadableStream( {\n\t\t\t\t\t\tstart( controller ) {\n\n\t\t\t\t\t\t\treadData();\n\n\t\t\t\t\t\t\tfunction readData() {\n\n\t\t\t\t\t\t\t\treader.read().then( ( { done, value } ) => {\n\n\t\t\t\t\t\t\t\t\tif ( done ) {\n\n\t\t\t\t\t\t\t\t\t\tcontroller.close();\n\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\tloaded += value.byteLength;\n\n\t\t\t\t\t\t\t\t\t\tconst event = new ProgressEvent( 'progress', { lengthComputable, loaded, total } );\n\t\t\t\t\t\t\t\t\t\tfor ( let i = 0, il = callbacks.length; i < il; i ++ ) {\n\n\t\t\t\t\t\t\t\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\t\t\t\t\t\t\t\tif ( callback.onProgress ) callback.onProgress( event );\n\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tcontroller.enqueue( value );\n\t\t\t\t\t\t\t\t\t\treadData();\n\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t}, ( e ) => {\n\n\t\t\t\t\t\t\t\t\tcontroller.error( e );\n\n\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn new Response( stream );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new HttpError( `fetch for \"${response.url}\" responded with ${response.status}: ${response.statusText}`, response );\n\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t.then( response => {\n\n\t\t\t\tswitch ( responseType ) {\n\n\t\t\t\t\tcase 'arraybuffer':\n\n\t\t\t\t\t\treturn response.arrayBuffer();\n\n\t\t\t\t\tcase 'blob':\n\n\t\t\t\t\t\treturn response.blob();\n\n\t\t\t\t\tcase 'document':\n\n\t\t\t\t\t\treturn response.text()\n\t\t\t\t\t\t\t.then( text => {\n\n\t\t\t\t\t\t\t\tconst parser = new DOMParser();\n\t\t\t\t\t\t\t\treturn parser.parseFromString( text, mimeType );\n\n\t\t\t\t\t\t\t} );\n\n\t\t\t\t\tcase 'json':\n\n\t\t\t\t\t\treturn response.json();\n\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\tif ( mimeType === undefined ) {\n\n\t\t\t\t\t\t\treturn response.text();\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// sniff encoding\n\t\t\t\t\t\t\tconst re = /charset=\"?([^;\"\\s]*)\"?/i;\n\t\t\t\t\t\t\tconst exec = re.exec( mimeType );\n\t\t\t\t\t\t\tconst label = exec && exec[ 1 ] ? exec[ 1 ].toLowerCase() : undefined;\n\t\t\t\t\t\t\tconst decoder = new TextDecoder( label );\n\t\t\t\t\t\t\treturn response.arrayBuffer().then( ab => decoder.decode( ab ) );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t.then( data => {\n\n\t\t\t\t// Add to cache only on HTTP success, so that we do not cache\n\t\t\t\t// error response bodies as proper responses to requests.\n\t\t\t\tCache.add( url, data );\n\n\t\t\t\tconst callbacks = loading[ url ];\n\t\t\t\tdelete loading[ url ];\n\n\t\t\t\tfor ( let i = 0, il = callbacks.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\t\tif ( callback.onLoad ) callback.onLoad( data );\n\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t.catch( err => {\n\n\t\t\t\t// Abort errors and other errors are handled the same\n\n\t\t\t\tconst callbacks = loading[ url ];\n\n\t\t\t\tif ( callbacks === undefined ) {\n\n\t\t\t\t\t// When onLoad was called and url was deleted in `loading`\n\t\t\t\t\tthis.manager.itemError( url );\n\t\t\t\t\tthrow err;\n\n\t\t\t\t}\n\n\t\t\t\tdelete loading[ url ];\n\n\t\t\t\tfor ( let i = 0, il = callbacks.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\t\tif ( callback.onError ) callback.onError( err );\n\n\t\t\t\t}\n\n\t\t\t\tthis.manager.itemError( url );\n\n\t\t\t} )\n\t\t\t.finally( () => {\n\n\t\t\t\tthis.manager.itemEnd( url );\n\n\t\t\t} );\n\n\t\tthis.manager.itemStart( url );\n\n\t}\n\n\tsetResponseType( value ) {\n\n\t\tthis.responseType = value;\n\t\treturn this;\n\n\t}\n\n\tsetMimeType( value ) {\n\n\t\tthis.mimeType = value;\n\t\treturn this;\n\n\t}\n\n}\n\nclass AnimationLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( JSON.parse( text ) ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tparse( json ) {\n\n\t\tconst animations = [];\n\n\t\tfor ( let i = 0; i < json.length; i ++ ) {\n\n\t\t\tconst clip = AnimationClip.parse( json[ i ] );\n\n\t\t\tanimations.push( clip );\n\n\t\t}\n\n\t\treturn animations;\n\n\t}\n\n}\n\n/**\n * Abstract Base class to block based textures loader (dds, pvr, ...)\n *\n * Sub classes have to implement the parse() method which will be used in load().\n */\n\nclass CompressedTextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst images = [];\n\n\t\tconst texture = new CompressedTexture();\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\n\t\tlet loaded = 0;\n\n\t\tfunction loadTexture( i ) {\n\n\t\t\tloader.load( url[ i ], function ( buffer ) {\n\n\t\t\t\tconst texDatas = scope.parse( buffer, true );\n\n\t\t\t\timages[ i ] = {\n\t\t\t\t\twidth: texDatas.width,\n\t\t\t\t\theight: texDatas.height,\n\t\t\t\t\tformat: texDatas.format,\n\t\t\t\t\tmipmaps: texDatas.mipmaps\n\t\t\t\t};\n\n\t\t\t\tloaded += 1;\n\n\t\t\t\tif ( loaded === 6 ) {\n\n\t\t\t\t\tif ( texDatas.mipmapCount === 1 ) texture.minFilter = LinearFilter;\n\n\t\t\t\t\ttexture.image = images;\n\t\t\t\t\ttexture.format = texDatas.format;\n\t\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\t\tif ( onLoad ) onLoad( texture );\n\n\t\t\t\t}\n\n\t\t\t}, onProgress, onError );\n\n\t\t}\n\n\t\tif ( Array.isArray( url ) ) {\n\n\t\t\tfor ( let i = 0, il = url.length; i < il; ++ i ) {\n\n\t\t\t\tloadTexture( i );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// compressed cubemap texture stored in a single DDS file\n\n\t\t\tloader.load( url, function ( buffer ) {\n\n\t\t\t\tconst texDatas = scope.parse( buffer, true );\n\n\t\t\t\tif ( texDatas.isCubemap ) {\n\n\t\t\t\t\tconst faces = texDatas.mipmaps.length / texDatas.mipmapCount;\n\n\t\t\t\t\tfor ( let f = 0; f < faces; f ++ ) {\n\n\t\t\t\t\t\timages[ f ] = { mipmaps: [] };\n\n\t\t\t\t\t\tfor ( let i = 0; i < texDatas.mipmapCount; i ++ ) {\n\n\t\t\t\t\t\t\timages[ f ].mipmaps.push( texDatas.mipmaps[ f * texDatas.mipmapCount + i ] );\n\t\t\t\t\t\t\timages[ f ].format = texDatas.format;\n\t\t\t\t\t\t\timages[ f ].width = texDatas.width;\n\t\t\t\t\t\t\timages[ f ].height = texDatas.height;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttexture.image = images;\n\n\t\t\t\t} else {\n\n\t\t\t\t\ttexture.image.width = texDatas.width;\n\t\t\t\t\ttexture.image.height = texDatas.height;\n\t\t\t\t\ttexture.mipmaps = texDatas.mipmaps;\n\n\t\t\t\t}\n\n\t\t\t\tif ( texDatas.mipmapCount === 1 ) {\n\n\t\t\t\t\ttexture.minFilter = LinearFilter;\n\n\t\t\t\t}\n\n\t\t\t\ttexture.format = texDatas.format;\n\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\tif ( onLoad ) onLoad( texture );\n\n\t\t\t}, onProgress, onError );\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n}\n\nclass ImageLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tif ( this.path !== undefined ) url = this.path + url;\n\n\t\turl = this.manager.resolveURL( url );\n\n\t\tconst scope = this;\n\n\t\tconst cached = Cache.get( url );\n\n\t\tif ( cached !== undefined ) {\n\n\t\t\tscope.manager.itemStart( url );\n\n\t\t\tsetTimeout( function () {\n\n\t\t\t\tif ( onLoad ) onLoad( cached );\n\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t}, 0 );\n\n\t\t\treturn cached;\n\n\t\t}\n\n\t\tconst image = createElementNS( 'img' );\n\n\t\tfunction onImageLoad() {\n\n\t\t\tremoveEventListeners();\n\n\t\t\tCache.add( url, this );\n\n\t\t\tif ( onLoad ) onLoad( this );\n\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t}\n\n\t\tfunction onImageError( event ) {\n\n\t\t\tremoveEventListeners();\n\n\t\t\tif ( onError ) onError( event );\n\n\t\t\tscope.manager.itemError( url );\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t}\n\n\t\tfunction removeEventListeners() {\n\n\t\t\timage.removeEventListener( 'load', onImageLoad, false );\n\t\t\timage.removeEventListener( 'error', onImageError, false );\n\n\t\t}\n\n\t\timage.addEventListener( 'load', onImageLoad, false );\n\t\timage.addEventListener( 'error', onImageError, false );\n\n\t\tif ( url.slice( 0, 5 ) !== 'data:' ) {\n\n\t\t\tif ( this.crossOrigin !== undefined ) image.crossOrigin = this.crossOrigin;\n\n\t\t}\n\n\t\tscope.manager.itemStart( url );\n\n\t\timage.src = url;\n\n\t\treturn image;\n\n\t}\n\n}\n\nclass CubeTextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( urls, onLoad, onProgress, onError ) {\n\n\t\tconst texture = new CubeTexture();\n\t\ttexture.colorSpace = SRGBColorSpace;\n\n\t\tconst loader = new ImageLoader( this.manager );\n\t\tloader.setCrossOrigin( this.crossOrigin );\n\t\tloader.setPath( this.path );\n\n\t\tlet loaded = 0;\n\n\t\tfunction loadTexture( i ) {\n\n\t\t\tloader.load( urls[ i ], function ( image ) {\n\n\t\t\t\ttexture.images[ i ] = image;\n\n\t\t\t\tloaded ++;\n\n\t\t\t\tif ( loaded === 6 ) {\n\n\t\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\t\tif ( onLoad ) onLoad( texture );\n\n\t\t\t\t}\n\n\t\t\t}, undefined, onError );\n\n\t\t}\n\n\t\tfor ( let i = 0; i < urls.length; ++ i ) {\n\n\t\t\tloadTexture( i );\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n}\n\n/**\n * Abstract Base class to load generic binary textures formats (rgbe, hdr, ...)\n *\n * Sub classes have to implement the parse() method which will be used in load().\n */\n\nclass DataTextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst texture = new DataTexture();\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setPath( this.path );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\t\tloader.load( url, function ( buffer ) {\n\n\t\t\tlet texData;\n\n\t\t\ttry {\n\n\t\t\t\ttexData = scope.parse( buffer );\n\n\t\t\t} catch ( error ) {\n\n\t\t\t\tif ( onError !== undefined ) {\n\n\t\t\t\t\tonError( error );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( error );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( texData.image !== undefined ) {\n\n\t\t\t\ttexture.image = texData.image;\n\n\t\t\t} else if ( texData.data !== undefined ) {\n\n\t\t\t\ttexture.image.width = texData.width;\n\t\t\t\ttexture.image.height = texData.height;\n\t\t\t\ttexture.image.data = texData.data;\n\n\t\t\t}\n\n\t\t\ttexture.wrapS = texData.wrapS !== undefined ? texData.wrapS : ClampToEdgeWrapping;\n\t\t\ttexture.wrapT = texData.wrapT !== undefined ? texData.wrapT : ClampToEdgeWrapping;\n\n\t\t\ttexture.magFilter = texData.magFilter !== undefined ? texData.magFilter : LinearFilter;\n\t\t\ttexture.minFilter = texData.minFilter !== undefined ? texData.minFilter : LinearFilter;\n\n\t\t\ttexture.anisotropy = texData.anisotropy !== undefined ? texData.anisotropy : 1;\n\n\t\t\tif ( texData.colorSpace !== undefined ) {\n\n\t\t\t\ttexture.colorSpace = texData.colorSpace;\n\n\t\t\t}\n\n\t\t\tif ( texData.flipY !== undefined ) {\n\n\t\t\t\ttexture.flipY = texData.flipY;\n\n\t\t\t}\n\n\t\t\tif ( texData.format !== undefined ) {\n\n\t\t\t\ttexture.format = texData.format;\n\n\t\t\t}\n\n\t\t\tif ( texData.type !== undefined ) {\n\n\t\t\t\ttexture.type = texData.type;\n\n\t\t\t}\n\n\t\t\tif ( texData.mipmaps !== undefined ) {\n\n\t\t\t\ttexture.mipmaps = texData.mipmaps;\n\t\t\t\ttexture.minFilter = LinearMipmapLinearFilter; // presumably...\n\n\t\t\t}\n\n\t\t\tif ( texData.mipmapCount === 1 ) {\n\n\t\t\t\ttexture.minFilter = LinearFilter;\n\n\t\t\t}\n\n\t\t\tif ( texData.generateMipmaps !== undefined ) {\n\n\t\t\t\ttexture.generateMipmaps = texData.generateMipmaps;\n\n\t\t\t}\n\n\t\t\ttexture.needsUpdate = true;\n\n\t\t\tif ( onLoad ) onLoad( texture, texData );\n\n\t\t}, onProgress, onError );\n\n\n\t\treturn texture;\n\n\t}\n\n}\n\nclass TextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst texture = new Texture();\n\n\t\tconst loader = new ImageLoader( this.manager );\n\t\tloader.setCrossOrigin( this.crossOrigin );\n\t\tloader.setPath( this.path );\n\n\t\tloader.load( url, function ( image ) {\n\n\t\t\ttexture.image = image;\n\t\t\ttexture.needsUpdate = true;\n\n\t\t\tif ( onLoad !== undefined ) {\n\n\t\t\t\tonLoad( texture );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t\treturn texture;\n\n\t}\n\n}\n\nclass Light extends Object3D {\n\n\tconstructor( color, intensity = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.isLight = true;\n\n\t\tthis.type = 'Light';\n\n\t\tthis.color = new Color( color );\n\t\tthis.intensity = intensity;\n\n\t}\n\n\tdispose() {\n\n\t\t// Empty here in base class; some subclasses override.\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.color.copy( source.color );\n\t\tthis.intensity = source.intensity;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.color = this.color.getHex();\n\t\tdata.object.intensity = this.intensity;\n\n\t\tif ( this.groundColor !== undefined ) data.object.groundColor = this.groundColor.getHex();\n\n\t\tif ( this.distance !== undefined ) data.object.distance = this.distance;\n\t\tif ( this.angle !== undefined ) data.object.angle = this.angle;\n\t\tif ( this.decay !== undefined ) data.object.decay = this.decay;\n\t\tif ( this.penumbra !== undefined ) data.object.penumbra = this.penumbra;\n\n\t\tif ( this.shadow !== undefined ) data.object.shadow = this.shadow.toJSON();\n\t\tif ( this.target !== undefined ) data.object.target = this.target.uuid;\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass HemisphereLight extends Light {\n\n\tconstructor( skyColor, groundColor, intensity ) {\n\n\t\tsuper( skyColor, intensity );\n\n\t\tthis.isHemisphereLight = true;\n\n\t\tthis.type = 'HemisphereLight';\n\n\t\tthis.position.copy( Object3D.DEFAULT_UP );\n\t\tthis.updateMatrix();\n\n\t\tthis.groundColor = new Color( groundColor );\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.groundColor.copy( source.groundColor );\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _projScreenMatrix$1 = /*@__PURE__*/ new Matrix4();\nconst _lightPositionWorld$1 = /*@__PURE__*/ new Vector3();\nconst _lookTarget$1 = /*@__PURE__*/ new Vector3();\n\nclass LightShadow {\n\n\tconstructor( camera ) {\n\n\t\tthis.camera = camera;\n\n\t\tthis.intensity = 1;\n\n\t\tthis.bias = 0;\n\t\tthis.normalBias = 0;\n\t\tthis.radius = 1;\n\t\tthis.blurSamples = 8;\n\n\t\tthis.mapSize = new Vector2( 512, 512 );\n\n\t\tthis.map = null;\n\t\tthis.mapPass = null;\n\t\tthis.matrix = new Matrix4();\n\n\t\tthis.autoUpdate = true;\n\t\tthis.needsUpdate = false;\n\n\t\tthis._frustum = new Frustum();\n\t\tthis._frameExtents = new Vector2( 1, 1 );\n\n\t\tthis._viewportCount = 1;\n\n\t\tthis._viewports = [\n\n\t\t\tnew Vector4( 0, 0, 1, 1 )\n\n\t\t];\n\n\t}\n\n\tgetViewportCount() {\n\n\t\treturn this._viewportCount;\n\n\t}\n\n\tgetFrustum() {\n\n\t\treturn this._frustum;\n\n\t}\n\n\tupdateMatrices( light ) {\n\n\t\tconst shadowCamera = this.camera;\n\t\tconst shadowMatrix = this.matrix;\n\n\t\t_lightPositionWorld$1.setFromMatrixPosition( light.matrixWorld );\n\t\tshadowCamera.position.copy( _lightPositionWorld$1 );\n\n\t\t_lookTarget$1.setFromMatrixPosition( light.target.matrixWorld );\n\t\tshadowCamera.lookAt( _lookTarget$1 );\n\t\tshadowCamera.updateMatrixWorld();\n\n\t\t_projScreenMatrix$1.multiplyMatrices( shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse );\n\t\tthis._frustum.setFromProjectionMatrix( _projScreenMatrix$1 );\n\n\t\tshadowMatrix.set(\n\t\t\t0.5, 0.0, 0.0, 0.5,\n\t\t\t0.0, 0.5, 0.0, 0.5,\n\t\t\t0.0, 0.0, 0.5, 0.5,\n\t\t\t0.0, 0.0, 0.0, 1.0\n\t\t);\n\n\t\tshadowMatrix.multiply( _projScreenMatrix$1 );\n\n\t}\n\n\tgetViewport( viewportIndex ) {\n\n\t\treturn this._viewports[ viewportIndex ];\n\n\t}\n\n\tgetFrameExtents() {\n\n\t\treturn this._frameExtents;\n\n\t}\n\n\tdispose() {\n\n\t\tif ( this.map ) {\n\n\t\t\tthis.map.dispose();\n\n\t\t}\n\n\t\tif ( this.mapPass ) {\n\n\t\t\tthis.mapPass.dispose();\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.camera = source.camera.clone();\n\n\t\tthis.intensity = source.intensity;\n\n\t\tthis.bias = source.bias;\n\t\tthis.radius = source.radius;\n\n\t\tthis.mapSize.copy( source.mapSize );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst object = {};\n\n\t\tif ( this.intensity !== 1 ) object.intensity = this.intensity;\n\t\tif ( this.bias !== 0 ) object.bias = this.bias;\n\t\tif ( this.normalBias !== 0 ) object.normalBias = this.normalBias;\n\t\tif ( this.radius !== 1 ) object.radius = this.radius;\n\t\tif ( this.mapSize.x !== 512 || this.mapSize.y !== 512 ) object.mapSize = this.mapSize.toArray();\n\n\t\tobject.camera = this.camera.toJSON( false ).object;\n\t\tdelete object.camera.matrix;\n\n\t\treturn object;\n\n\t}\n\n}\n\nclass SpotLightShadow extends LightShadow {\n\n\tconstructor() {\n\n\t\tsuper( new PerspectiveCamera( 50, 1, 0.5, 500 ) );\n\n\t\tthis.isSpotLightShadow = true;\n\n\t\tthis.focus = 1;\n\n\t}\n\n\tupdateMatrices( light ) {\n\n\t\tconst camera = this.camera;\n\n\t\tconst fov = RAD2DEG * 2 * light.angle * this.focus;\n\t\tconst aspect = this.mapSize.width / this.mapSize.height;\n\t\tconst far = light.distance || camera.far;\n\n\t\tif ( fov !== camera.fov || aspect !== camera.aspect || far !== camera.far ) {\n\n\t\t\tcamera.fov = fov;\n\t\t\tcamera.aspect = aspect;\n\t\t\tcamera.far = far;\n\t\t\tcamera.updateProjectionMatrix();\n\n\t\t}\n\n\t\tsuper.updateMatrices( light );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.focus = source.focus;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass SpotLight extends Light {\n\n\tconstructor( color, intensity, distance = 0, angle = Math.PI / 3, penumbra = 0, decay = 2 ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.isSpotLight = true;\n\n\t\tthis.type = 'SpotLight';\n\n\t\tthis.position.copy( Object3D.DEFAULT_UP );\n\t\tthis.updateMatrix();\n\n\t\tthis.target = new Object3D();\n\n\t\tthis.distance = distance;\n\t\tthis.angle = angle;\n\t\tthis.penumbra = penumbra;\n\t\tthis.decay = decay;\n\n\t\tthis.map = null;\n\n\t\tthis.shadow = new SpotLightShadow();\n\n\t}\n\n\tget power() {\n\n\t\t// compute the light's luminous power (in lumens) from its intensity (in candela)\n\t\t// by convention for a spotlight, luminous power (lm) = π * luminous intensity (cd)\n\t\treturn this.intensity * Math.PI;\n\n\t}\n\n\tset power( power ) {\n\n\t\t// set the light's intensity (in candela) from the desired luminous power (in lumens)\n\t\tthis.intensity = power / Math.PI;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shadow.dispose();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.distance = source.distance;\n\t\tthis.angle = source.angle;\n\t\tthis.penumbra = source.penumbra;\n\t\tthis.decay = source.decay;\n\n\t\tthis.target = source.target.clone();\n\n\t\tthis.shadow = source.shadow.clone();\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _projScreenMatrix = /*@__PURE__*/ new Matrix4();\nconst _lightPositionWorld = /*@__PURE__*/ new Vector3();\nconst _lookTarget = /*@__PURE__*/ new Vector3();\n\nclass PointLightShadow extends LightShadow {\n\n\tconstructor() {\n\n\t\tsuper( new PerspectiveCamera( 90, 1, 0.5, 500 ) );\n\n\t\tthis.isPointLightShadow = true;\n\n\t\tthis._frameExtents = new Vector2( 4, 2 );\n\n\t\tthis._viewportCount = 6;\n\n\t\tthis._viewports = [\n\t\t\t// These viewports map a cube-map onto a 2D texture with the\n\t\t\t// following orientation:\n\t\t\t//\n\t\t\t// xzXZ\n\t\t\t// y Y\n\t\t\t//\n\t\t\t// X - Positive x direction\n\t\t\t// x - Negative x direction\n\t\t\t// Y - Positive y direction\n\t\t\t// y - Negative y direction\n\t\t\t// Z - Positive z direction\n\t\t\t// z - Negative z direction\n\n\t\t\t// positive X\n\t\t\tnew Vector4( 2, 1, 1, 1 ),\n\t\t\t// negative X\n\t\t\tnew Vector4( 0, 1, 1, 1 ),\n\t\t\t// positive Z\n\t\t\tnew Vector4( 3, 1, 1, 1 ),\n\t\t\t// negative Z\n\t\t\tnew Vector4( 1, 1, 1, 1 ),\n\t\t\t// positive Y\n\t\t\tnew Vector4( 3, 0, 1, 1 ),\n\t\t\t// negative Y\n\t\t\tnew Vector4( 1, 0, 1, 1 )\n\t\t];\n\n\t\tthis._cubeDirections = [\n\t\t\tnew Vector3( 1, 0, 0 ), new Vector3( - 1, 0, 0 ), new Vector3( 0, 0, 1 ),\n\t\t\tnew Vector3( 0, 0, - 1 ), new Vector3( 0, 1, 0 ), new Vector3( 0, - 1, 0 )\n\t\t];\n\n\t\tthis._cubeUps = [\n\t\t\tnew Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ),\n\t\t\tnew Vector3( 0, 1, 0 ), new Vector3( 0, 0, 1 ),\tnew Vector3( 0, 0, - 1 )\n\t\t];\n\n\t}\n\n\tupdateMatrices( light, viewportIndex = 0 ) {\n\n\t\tconst camera = this.camera;\n\t\tconst shadowMatrix = this.matrix;\n\n\t\tconst far = light.distance || camera.far;\n\n\t\tif ( far !== camera.far ) {\n\n\t\t\tcamera.far = far;\n\t\t\tcamera.updateProjectionMatrix();\n\n\t\t}\n\n\t\t_lightPositionWorld.setFromMatrixPosition( light.matrixWorld );\n\t\tcamera.position.copy( _lightPositionWorld );\n\n\t\t_lookTarget.copy( camera.position );\n\t\t_lookTarget.add( this._cubeDirections[ viewportIndex ] );\n\t\tcamera.up.copy( this._cubeUps[ viewportIndex ] );\n\t\tcamera.lookAt( _lookTarget );\n\t\tcamera.updateMatrixWorld();\n\n\t\tshadowMatrix.makeTranslation( - _lightPositionWorld.x, - _lightPositionWorld.y, - _lightPositionWorld.z );\n\n\t\t_projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );\n\t\tthis._frustum.setFromProjectionMatrix( _projScreenMatrix );\n\n\t}\n\n}\n\nclass PointLight extends Light {\n\n\tconstructor( color, intensity, distance = 0, decay = 2 ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.isPointLight = true;\n\n\t\tthis.type = 'PointLight';\n\n\t\tthis.distance = distance;\n\t\tthis.decay = decay;\n\n\t\tthis.shadow = new PointLightShadow();\n\n\t}\n\n\tget power() {\n\n\t\t// compute the light's luminous power (in lumens) from its intensity (in candela)\n\t\t// for an isotropic light source, luminous power (lm) = 4 π luminous intensity (cd)\n\t\treturn this.intensity * 4 * Math.PI;\n\n\t}\n\n\tset power( power ) {\n\n\t\t// set the light's intensity (in candela) from the desired luminous power (in lumens)\n\t\tthis.intensity = power / ( 4 * Math.PI );\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shadow.dispose();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.distance = source.distance;\n\t\tthis.decay = source.decay;\n\n\t\tthis.shadow = source.shadow.clone();\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass OrthographicCamera extends Camera {\n\n\tconstructor( left = - 1, right = 1, top = 1, bottom = - 1, near = 0.1, far = 2000 ) {\n\n\t\tsuper();\n\n\t\tthis.isOrthographicCamera = true;\n\n\t\tthis.type = 'OrthographicCamera';\n\n\t\tthis.zoom = 1;\n\t\tthis.view = null;\n\n\t\tthis.left = left;\n\t\tthis.right = right;\n\t\tthis.top = top;\n\t\tthis.bottom = bottom;\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.left = source.left;\n\t\tthis.right = source.right;\n\t\tthis.top = source.top;\n\t\tthis.bottom = source.bottom;\n\t\tthis.near = source.near;\n\t\tthis.far = source.far;\n\n\t\tthis.zoom = source.zoom;\n\t\tthis.view = source.view === null ? null : Object.assign( {}, source.view );\n\n\t\treturn this;\n\n\t}\n\n\tsetViewOffset( fullWidth, fullHeight, x, y, width, height ) {\n\n\t\tif ( this.view === null ) {\n\n\t\t\tthis.view = {\n\t\t\t\tenabled: true,\n\t\t\t\tfullWidth: 1,\n\t\t\t\tfullHeight: 1,\n\t\t\t\toffsetX: 0,\n\t\t\t\toffsetY: 0,\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1\n\t\t\t};\n\n\t\t}\n\n\t\tthis.view.enabled = true;\n\t\tthis.view.fullWidth = fullWidth;\n\t\tthis.view.fullHeight = fullHeight;\n\t\tthis.view.offsetX = x;\n\t\tthis.view.offsetY = y;\n\t\tthis.view.width = width;\n\t\tthis.view.height = height;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tclearViewOffset() {\n\n\t\tif ( this.view !== null ) {\n\n\t\t\tthis.view.enabled = false;\n\n\t\t}\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tupdateProjectionMatrix() {\n\n\t\tconst dx = ( this.right - this.left ) / ( 2 * this.zoom );\n\t\tconst dy = ( this.top - this.bottom ) / ( 2 * this.zoom );\n\t\tconst cx = ( this.right + this.left ) / 2;\n\t\tconst cy = ( this.top + this.bottom ) / 2;\n\n\t\tlet left = cx - dx;\n\t\tlet right = cx + dx;\n\t\tlet top = cy + dy;\n\t\tlet bottom = cy - dy;\n\n\t\tif ( this.view !== null && this.view.enabled ) {\n\n\t\t\tconst scaleW = ( this.right - this.left ) / this.view.fullWidth / this.zoom;\n\t\t\tconst scaleH = ( this.top - this.bottom ) / this.view.fullHeight / this.zoom;\n\n\t\t\tleft += scaleW * this.view.offsetX;\n\t\t\tright = left + scaleW * this.view.width;\n\t\t\ttop -= scaleH * this.view.offsetY;\n\t\t\tbottom = top - scaleH * this.view.height;\n\n\t\t}\n\n\t\tthis.projectionMatrix.makeOrthographic( left, right, top, bottom, this.near, this.far, this.coordinateSystem );\n\n\t\tthis.projectionMatrixInverse.copy( this.projectionMatrix ).invert();\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.zoom = this.zoom;\n\t\tdata.object.left = this.left;\n\t\tdata.object.right = this.right;\n\t\tdata.object.top = this.top;\n\t\tdata.object.bottom = this.bottom;\n\t\tdata.object.near = this.near;\n\t\tdata.object.far = this.far;\n\n\t\tif ( this.view !== null ) data.object.view = Object.assign( {}, this.view );\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass DirectionalLightShadow extends LightShadow {\n\n\tconstructor() {\n\n\t\tsuper( new OrthographicCamera( - 5, 5, 5, - 5, 0.5, 500 ) );\n\n\t\tthis.isDirectionalLightShadow = true;\n\n\t}\n\n}\n\nclass DirectionalLight extends Light {\n\n\tconstructor( color, intensity ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.isDirectionalLight = true;\n\n\t\tthis.type = 'DirectionalLight';\n\n\t\tthis.position.copy( Object3D.DEFAULT_UP );\n\t\tthis.updateMatrix();\n\n\t\tthis.target = new Object3D();\n\n\t\tthis.shadow = new DirectionalLightShadow();\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shadow.dispose();\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.target = source.target.clone();\n\t\tthis.shadow = source.shadow.clone();\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass AmbientLight extends Light {\n\n\tconstructor( color, intensity ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.isAmbientLight = true;\n\n\t\tthis.type = 'AmbientLight';\n\n\t}\n\n}\n\nclass RectAreaLight extends Light {\n\n\tconstructor( color, intensity, width = 10, height = 10 ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.isRectAreaLight = true;\n\n\t\tthis.type = 'RectAreaLight';\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\n\t}\n\n\tget power() {\n\n\t\t// compute the light's luminous power (in lumens) from its intensity (in nits)\n\t\treturn this.intensity * this.width * this.height * Math.PI;\n\n\t}\n\n\tset power( power ) {\n\n\t\t// set the light's intensity (in nits) from the desired luminous power (in lumens)\n\t\tthis.intensity = power / ( this.width * this.height * Math.PI );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.width = source.width;\n\t\tthis.height = source.height;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.width = this.width;\n\t\tdata.object.height = this.height;\n\n\t\treturn data;\n\n\t}\n\n}\n\n/**\n * Primary reference:\n * https://graphics.stanford.edu/papers/envmap/envmap.pdf\n *\n * Secondary reference:\n * https://www.ppsloan.org/publications/StupidSH36.pdf\n */\n\n// 3-band SH defined by 9 coefficients\n\nclass SphericalHarmonics3 {\n\n\tconstructor() {\n\n\t\tthis.isSphericalHarmonics3 = true;\n\n\t\tthis.coefficients = [];\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients.push( new Vector3() );\n\n\t\t}\n\n\t}\n\n\tset( coefficients ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].copy( coefficients[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tzero() {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].set( 0, 0, 0 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// get the radiance in the direction of the normal\n\t// target is a Vector3\n\tgetAt( normal, target ) {\n\n\t\t// normal is assumed to be unit length\n\n\t\tconst x = normal.x, y = normal.y, z = normal.z;\n\n\t\tconst coeff = this.coefficients;\n\n\t\t// band 0\n\t\ttarget.copy( coeff[ 0 ] ).multiplyScalar( 0.282095 );\n\n\t\t// band 1\n\t\ttarget.addScaledVector( coeff[ 1 ], 0.488603 * y );\n\t\ttarget.addScaledVector( coeff[ 2 ], 0.488603 * z );\n\t\ttarget.addScaledVector( coeff[ 3 ], 0.488603 * x );\n\n\t\t// band 2\n\t\ttarget.addScaledVector( coeff[ 4 ], 1.092548 * ( x * y ) );\n\t\ttarget.addScaledVector( coeff[ 5 ], 1.092548 * ( y * z ) );\n\t\ttarget.addScaledVector( coeff[ 6 ], 0.315392 * ( 3.0 * z * z - 1.0 ) );\n\t\ttarget.addScaledVector( coeff[ 7 ], 1.092548 * ( x * z ) );\n\t\ttarget.addScaledVector( coeff[ 8 ], 0.546274 * ( x * x - y * y ) );\n\n\t\treturn target;\n\n\t}\n\n\t// get the irradiance (radiance convolved with cosine lobe) in the direction of the normal\n\t// target is a Vector3\n\t// https://graphics.stanford.edu/papers/envmap/envmap.pdf\n\tgetIrradianceAt( normal, target ) {\n\n\t\t// normal is assumed to be unit length\n\n\t\tconst x = normal.x, y = normal.y, z = normal.z;\n\n\t\tconst coeff = this.coefficients;\n\n\t\t// band 0\n\t\ttarget.copy( coeff[ 0 ] ).multiplyScalar( 0.886227 ); // π * 0.282095\n\n\t\t// band 1\n\t\ttarget.addScaledVector( coeff[ 1 ], 2.0 * 0.511664 * y ); // ( 2 * π / 3 ) * 0.488603\n\t\ttarget.addScaledVector( coeff[ 2 ], 2.0 * 0.511664 * z );\n\t\ttarget.addScaledVector( coeff[ 3 ], 2.0 * 0.511664 * x );\n\n\t\t// band 2\n\t\ttarget.addScaledVector( coeff[ 4 ], 2.0 * 0.429043 * x * y ); // ( π / 4 ) * 1.092548\n\t\ttarget.addScaledVector( coeff[ 5 ], 2.0 * 0.429043 * y * z );\n\t\ttarget.addScaledVector( coeff[ 6 ], 0.743125 * z * z - 0.247708 ); // ( π / 4 ) * 0.315392 * 3\n\t\ttarget.addScaledVector( coeff[ 7 ], 2.0 * 0.429043 * x * z );\n\t\ttarget.addScaledVector( coeff[ 8 ], 0.429043 * ( x * x - y * y ) ); // ( π / 4 ) * 0.546274\n\n\t\treturn target;\n\n\t}\n\n\tadd( sh ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].add( sh.coefficients[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\taddScaledSH( sh, s ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].addScaledVector( sh.coefficients[ i ], s );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tscale( s ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].multiplyScalar( s );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tlerp( sh, alpha ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].lerp( sh.coefficients[ i ], alpha );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tequals( sh ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tif ( ! this.coefficients[ i ].equals( sh.coefficients[ i ] ) ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tcopy( sh ) {\n\n\t\treturn this.set( sh.coefficients );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tconst coefficients = this.coefficients;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tcoefficients[ i ].fromArray( array, offset + ( i * 3 ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst coefficients = this.coefficients;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tcoefficients[ i ].toArray( array, offset + ( i * 3 ) );\n\n\t\t}\n\n\t\treturn array;\n\n\t}\n\n\t// evaluate the basis functions\n\t// shBasis is an Array[ 9 ]\n\tstatic getBasisAt( normal, shBasis ) {\n\n\t\t// normal is assumed to be unit length\n\n\t\tconst x = normal.x, y = normal.y, z = normal.z;\n\n\t\t// band 0\n\t\tshBasis[ 0 ] = 0.282095;\n\n\t\t// band 1\n\t\tshBasis[ 1 ] = 0.488603 * y;\n\t\tshBasis[ 2 ] = 0.488603 * z;\n\t\tshBasis[ 3 ] = 0.488603 * x;\n\n\t\t// band 2\n\t\tshBasis[ 4 ] = 1.092548 * x * y;\n\t\tshBasis[ 5 ] = 1.092548 * y * z;\n\t\tshBasis[ 6 ] = 0.315392 * ( 3 * z * z - 1 );\n\t\tshBasis[ 7 ] = 1.092548 * x * z;\n\t\tshBasis[ 8 ] = 0.546274 * ( x * x - y * y );\n\n\t}\n\n}\n\nclass LightProbe extends Light {\n\n\tconstructor( sh = new SphericalHarmonics3(), intensity = 1 ) {\n\n\t\tsuper( undefined, intensity );\n\n\t\tthis.isLightProbe = true;\n\n\t\tthis.sh = sh;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.sh.copy( source.sh );\n\n\t\treturn this;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tthis.intensity = json.intensity; // TODO: Move this bit to Light.fromJSON();\n\t\tthis.sh.fromArray( json.sh );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.sh = this.sh.toArray();\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass MaterialLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\t\tthis.textures = {};\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( scope.manager );\n\t\tloader.setPath( scope.path );\n\t\tloader.setRequestHeader( scope.requestHeader );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( JSON.parse( text ) ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tparse( json ) {\n\n\t\tconst textures = this.textures;\n\n\t\tfunction getTexture( name ) {\n\n\t\t\tif ( textures[ name ] === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.MaterialLoader: Undefined texture', name );\n\n\t\t\t}\n\n\t\t\treturn textures[ name ];\n\n\t\t}\n\n\t\tconst material = this.createMaterialFromType( json.type );\n\n\t\tif ( json.uuid !== undefined ) material.uuid = json.uuid;\n\t\tif ( json.name !== undefined ) material.name = json.name;\n\t\tif ( json.color !== undefined && material.color !== undefined ) material.color.setHex( json.color );\n\t\tif ( json.roughness !== undefined ) material.roughness = json.roughness;\n\t\tif ( json.metalness !== undefined ) material.metalness = json.metalness;\n\t\tif ( json.sheen !== undefined ) material.sheen = json.sheen;\n\t\tif ( json.sheenColor !== undefined ) material.sheenColor = new Color().setHex( json.sheenColor );\n\t\tif ( json.sheenRoughness !== undefined ) material.sheenRoughness = json.sheenRoughness;\n\t\tif ( json.emissive !== undefined && material.emissive !== undefined ) material.emissive.setHex( json.emissive );\n\t\tif ( json.specular !== undefined && material.specular !== undefined ) material.specular.setHex( json.specular );\n\t\tif ( json.specularIntensity !== undefined ) material.specularIntensity = json.specularIntensity;\n\t\tif ( json.specularColor !== undefined && material.specularColor !== undefined ) material.specularColor.setHex( json.specularColor );\n\t\tif ( json.shininess !== undefined ) material.shininess = json.shininess;\n\t\tif ( json.clearcoat !== undefined ) material.clearcoat = json.clearcoat;\n\t\tif ( json.clearcoatRoughness !== undefined ) material.clearcoatRoughness = json.clearcoatRoughness;\n\t\tif ( json.dispersion !== undefined ) material.dispersion = json.dispersion;\n\t\tif ( json.iridescence !== undefined ) material.iridescence = json.iridescence;\n\t\tif ( json.iridescenceIOR !== undefined ) material.iridescenceIOR = json.iridescenceIOR;\n\t\tif ( json.iridescenceThicknessRange !== undefined ) material.iridescenceThicknessRange = json.iridescenceThicknessRange;\n\t\tif ( json.transmission !== undefined ) material.transmission = json.transmission;\n\t\tif ( json.thickness !== undefined ) material.thickness = json.thickness;\n\t\tif ( json.attenuationDistance !== undefined ) material.attenuationDistance = json.attenuationDistance;\n\t\tif ( json.attenuationColor !== undefined && material.attenuationColor !== undefined ) material.attenuationColor.setHex( json.attenuationColor );\n\t\tif ( json.anisotropy !== undefined ) material.anisotropy = json.anisotropy;\n\t\tif ( json.anisotropyRotation !== undefined ) material.anisotropyRotation = json.anisotropyRotation;\n\t\tif ( json.fog !== undefined ) material.fog = json.fog;\n\t\tif ( json.flatShading !== undefined ) material.flatShading = json.flatShading;\n\t\tif ( json.blending !== undefined ) material.blending = json.blending;\n\t\tif ( json.combine !== undefined ) material.combine = json.combine;\n\t\tif ( json.side !== undefined ) material.side = json.side;\n\t\tif ( json.shadowSide !== undefined ) material.shadowSide = json.shadowSide;\n\t\tif ( json.opacity !== undefined ) material.opacity = json.opacity;\n\t\tif ( json.transparent !== undefined ) material.transparent = json.transparent;\n\t\tif ( json.alphaTest !== undefined ) material.alphaTest = json.alphaTest;\n\t\tif ( json.alphaHash !== undefined ) material.alphaHash = json.alphaHash;\n\t\tif ( json.depthFunc !== undefined ) material.depthFunc = json.depthFunc;\n\t\tif ( json.depthTest !== undefined ) material.depthTest = json.depthTest;\n\t\tif ( json.depthWrite !== undefined ) material.depthWrite = json.depthWrite;\n\t\tif ( json.colorWrite !== undefined ) material.colorWrite = json.colorWrite;\n\t\tif ( json.blendSrc !== undefined ) material.blendSrc = json.blendSrc;\n\t\tif ( json.blendDst !== undefined ) material.blendDst = json.blendDst;\n\t\tif ( json.blendEquation !== undefined ) material.blendEquation = json.blendEquation;\n\t\tif ( json.blendSrcAlpha !== undefined ) material.blendSrcAlpha = json.blendSrcAlpha;\n\t\tif ( json.blendDstAlpha !== undefined ) material.blendDstAlpha = json.blendDstAlpha;\n\t\tif ( json.blendEquationAlpha !== undefined ) material.blendEquationAlpha = json.blendEquationAlpha;\n\t\tif ( json.blendColor !== undefined && material.blendColor !== undefined ) material.blendColor.setHex( json.blendColor );\n\t\tif ( json.blendAlpha !== undefined ) material.blendAlpha = json.blendAlpha;\n\t\tif ( json.stencilWriteMask !== undefined ) material.stencilWriteMask = json.stencilWriteMask;\n\t\tif ( json.stencilFunc !== undefined ) material.stencilFunc = json.stencilFunc;\n\t\tif ( json.stencilRef !== undefined ) material.stencilRef = json.stencilRef;\n\t\tif ( json.stencilFuncMask !== undefined ) material.stencilFuncMask = json.stencilFuncMask;\n\t\tif ( json.stencilFail !== undefined ) material.stencilFail = json.stencilFail;\n\t\tif ( json.stencilZFail !== undefined ) material.stencilZFail = json.stencilZFail;\n\t\tif ( json.stencilZPass !== undefined ) material.stencilZPass = json.stencilZPass;\n\t\tif ( json.stencilWrite !== undefined ) material.stencilWrite = json.stencilWrite;\n\n\t\tif ( json.wireframe !== undefined ) material.wireframe = json.wireframe;\n\t\tif ( json.wireframeLinewidth !== undefined ) material.wireframeLinewidth = json.wireframeLinewidth;\n\t\tif ( json.wireframeLinecap !== undefined ) material.wireframeLinecap = json.wireframeLinecap;\n\t\tif ( json.wireframeLinejoin !== undefined ) material.wireframeLinejoin = json.wireframeLinejoin;\n\n\t\tif ( json.rotation !== undefined ) material.rotation = json.rotation;\n\n\t\tif ( json.linewidth !== undefined ) material.linewidth = json.linewidth;\n\t\tif ( json.dashSize !== undefined ) material.dashSize = json.dashSize;\n\t\tif ( json.gapSize !== undefined ) material.gapSize = json.gapSize;\n\t\tif ( json.scale !== undefined ) material.scale = json.scale;\n\n\t\tif ( json.polygonOffset !== undefined ) material.polygonOffset = json.polygonOffset;\n\t\tif ( json.polygonOffsetFactor !== undefined ) material.polygonOffsetFactor = json.polygonOffsetFactor;\n\t\tif ( json.polygonOffsetUnits !== undefined ) material.polygonOffsetUnits = json.polygonOffsetUnits;\n\n\t\tif ( json.dithering !== undefined ) material.dithering = json.dithering;\n\n\t\tif ( json.alphaToCoverage !== undefined ) material.alphaToCoverage = json.alphaToCoverage;\n\t\tif ( json.premultipliedAlpha !== undefined ) material.premultipliedAlpha = json.premultipliedAlpha;\n\t\tif ( json.forceSinglePass !== undefined ) material.forceSinglePass = json.forceSinglePass;\n\n\t\tif ( json.visible !== undefined ) material.visible = json.visible;\n\n\t\tif ( json.toneMapped !== undefined ) material.toneMapped = json.toneMapped;\n\n\t\tif ( json.userData !== undefined ) material.userData = json.userData;\n\n\t\tif ( json.vertexColors !== undefined ) {\n\n\t\t\tif ( typeof json.vertexColors === 'number' ) {\n\n\t\t\t\tmaterial.vertexColors = ( json.vertexColors > 0 ) ? true : false;\n\n\t\t\t} else {\n\n\t\t\t\tmaterial.vertexColors = json.vertexColors;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Shader Material\n\n\t\tif ( json.uniforms !== undefined ) {\n\n\t\t\tfor ( const name in json.uniforms ) {\n\n\t\t\t\tconst uniform = json.uniforms[ name ];\n\n\t\t\t\tmaterial.uniforms[ name ] = {};\n\n\t\t\t\tswitch ( uniform.type ) {\n\n\t\t\t\t\tcase 't':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = getTexture( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'c':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Color().setHex( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'v2':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Vector2().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'v3':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Vector3().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'v4':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Vector4().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'm3':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Matrix3().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'm4':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Matrix4().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = uniform.value;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( json.defines !== undefined ) material.defines = json.defines;\n\t\tif ( json.vertexShader !== undefined ) material.vertexShader = json.vertexShader;\n\t\tif ( json.fragmentShader !== undefined ) material.fragmentShader = json.fragmentShader;\n\t\tif ( json.glslVersion !== undefined ) material.glslVersion = json.glslVersion;\n\n\t\tif ( json.extensions !== undefined ) {\n\n\t\t\tfor ( const key in json.extensions ) {\n\n\t\t\t\tmaterial.extensions[ key ] = json.extensions[ key ];\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( json.lights !== undefined ) material.lights = json.lights;\n\t\tif ( json.clipping !== undefined ) material.clipping = json.clipping;\n\n\t\t// for PointsMaterial\n\n\t\tif ( json.size !== undefined ) material.size = json.size;\n\t\tif ( json.sizeAttenuation !== undefined ) material.sizeAttenuation = json.sizeAttenuation;\n\n\t\t// maps\n\n\t\tif ( json.map !== undefined ) material.map = getTexture( json.map );\n\t\tif ( json.matcap !== undefined ) material.matcap = getTexture( json.matcap );\n\n\t\tif ( json.alphaMap !== undefined ) material.alphaMap = getTexture( json.alphaMap );\n\n\t\tif ( json.bumpMap !== undefined ) material.bumpMap = getTexture( json.bumpMap );\n\t\tif ( json.bumpScale !== undefined ) material.bumpScale = json.bumpScale;\n\n\t\tif ( json.normalMap !== undefined ) material.normalMap = getTexture( json.normalMap );\n\t\tif ( json.normalMapType !== undefined ) material.normalMapType = json.normalMapType;\n\t\tif ( json.normalScale !== undefined ) {\n\n\t\t\tlet normalScale = json.normalScale;\n\n\t\t\tif ( Array.isArray( normalScale ) === false ) {\n\n\t\t\t\t// Blender exporter used to export a scalar. See #7459\n\n\t\t\t\tnormalScale = [ normalScale, normalScale ];\n\n\t\t\t}\n\n\t\t\tmaterial.normalScale = new Vector2().fromArray( normalScale );\n\n\t\t}\n\n\t\tif ( json.displacementMap !== undefined ) material.displacementMap = getTexture( json.displacementMap );\n\t\tif ( json.displacementScale !== undefined ) material.displacementScale = json.displacementScale;\n\t\tif ( json.displacementBias !== undefined ) material.displacementBias = json.displacementBias;\n\n\t\tif ( json.roughnessMap !== undefined ) material.roughnessMap = getTexture( json.roughnessMap );\n\t\tif ( json.metalnessMap !== undefined ) material.metalnessMap = getTexture( json.metalnessMap );\n\n\t\tif ( json.emissiveMap !== undefined ) material.emissiveMap = getTexture( json.emissiveMap );\n\t\tif ( json.emissiveIntensity !== undefined ) material.emissiveIntensity = json.emissiveIntensity;\n\n\t\tif ( json.specularMap !== undefined ) material.specularMap = getTexture( json.specularMap );\n\t\tif ( json.specularIntensityMap !== undefined ) material.specularIntensityMap = getTexture( json.specularIntensityMap );\n\t\tif ( json.specularColorMap !== undefined ) material.specularColorMap = getTexture( json.specularColorMap );\n\n\t\tif ( json.envMap !== undefined ) material.envMap = getTexture( json.envMap );\n\t\tif ( json.envMapRotation !== undefined ) material.envMapRotation.fromArray( json.envMapRotation );\n\t\tif ( json.envMapIntensity !== undefined ) material.envMapIntensity = json.envMapIntensity;\n\n\t\tif ( json.reflectivity !== undefined ) material.reflectivity = json.reflectivity;\n\t\tif ( json.refractionRatio !== undefined ) material.refractionRatio = json.refractionRatio;\n\n\t\tif ( json.lightMap !== undefined ) material.lightMap = getTexture( json.lightMap );\n\t\tif ( json.lightMapIntensity !== undefined ) material.lightMapIntensity = json.lightMapIntensity;\n\n\t\tif ( json.aoMap !== undefined ) material.aoMap = getTexture( json.aoMap );\n\t\tif ( json.aoMapIntensity !== undefined ) material.aoMapIntensity = json.aoMapIntensity;\n\n\t\tif ( json.gradientMap !== undefined ) material.gradientMap = getTexture( json.gradientMap );\n\n\t\tif ( json.clearcoatMap !== undefined ) material.clearcoatMap = getTexture( json.clearcoatMap );\n\t\tif ( json.clearcoatRoughnessMap !== undefined ) material.clearcoatRoughnessMap = getTexture( json.clearcoatRoughnessMap );\n\t\tif ( json.clearcoatNormalMap !== undefined ) material.clearcoatNormalMap = getTexture( json.clearcoatNormalMap );\n\t\tif ( json.clearcoatNormalScale !== undefined ) material.clearcoatNormalScale = new Vector2().fromArray( json.clearcoatNormalScale );\n\n\t\tif ( json.iridescenceMap !== undefined ) material.iridescenceMap = getTexture( json.iridescenceMap );\n\t\tif ( json.iridescenceThicknessMap !== undefined ) material.iridescenceThicknessMap = getTexture( json.iridescenceThicknessMap );\n\n\t\tif ( json.transmissionMap !== undefined ) material.transmissionMap = getTexture( json.transmissionMap );\n\t\tif ( json.thicknessMap !== undefined ) material.thicknessMap = getTexture( json.thicknessMap );\n\n\t\tif ( json.anisotropyMap !== undefined ) material.anisotropyMap = getTexture( json.anisotropyMap );\n\n\t\tif ( json.sheenColorMap !== undefined ) material.sheenColorMap = getTexture( json.sheenColorMap );\n\t\tif ( json.sheenRoughnessMap !== undefined ) material.sheenRoughnessMap = getTexture( json.sheenRoughnessMap );\n\n\t\treturn material;\n\n\t}\n\n\tsetTextures( value ) {\n\n\t\tthis.textures = value;\n\t\treturn this;\n\n\t}\n\n\tcreateMaterialFromType( type ) {\n\n\t\treturn MaterialLoader.createMaterialFromType( type );\n\n\t}\n\n\tstatic createMaterialFromType( type ) {\n\n\t\tconst materialLib = {\n\t\t\tShadowMaterial,\n\t\t\tSpriteMaterial,\n\t\t\tRawShaderMaterial,\n\t\t\tShaderMaterial,\n\t\t\tPointsMaterial,\n\t\t\tMeshPhysicalMaterial,\n\t\t\tMeshStandardMaterial,\n\t\t\tMeshPhongMaterial,\n\t\t\tMeshToonMaterial,\n\t\t\tMeshNormalMaterial,\n\t\t\tMeshLambertMaterial,\n\t\t\tMeshDepthMaterial,\n\t\t\tMeshDistanceMaterial,\n\t\t\tMeshBasicMaterial,\n\t\t\tMeshMatcapMaterial,\n\t\t\tLineDashedMaterial,\n\t\t\tLineBasicMaterial,\n\t\t\tMaterial\n\t\t};\n\n\t\treturn new materialLib[ type ]();\n\n\t}\n\n}\n\nclass LoaderUtils {\n\n\tstatic decodeText( array ) { // @deprecated, r165\n\n\t\tconsole.warn( 'THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead.' );\n\n\t\tif ( typeof TextDecoder !== 'undefined' ) {\n\n\t\t\treturn new TextDecoder().decode( array );\n\n\t\t}\n\n\t\t// Avoid the String.fromCharCode.apply(null, array) shortcut, which\n\t\t// throws a \"maximum call stack size exceeded\" error for large arrays.\n\n\t\tlet s = '';\n\n\t\tfor ( let i = 0, il = array.length; i < il; i ++ ) {\n\n\t\t\t// Implicitly assumes little-endian.\n\t\t\ts += String.fromCharCode( array[ i ] );\n\n\t\t}\n\n\t\ttry {\n\n\t\t\t// merges multi-byte utf-8 characters.\n\n\t\t\treturn decodeURIComponent( escape( s ) );\n\n\t\t} catch ( e ) { // see #16358\n\n\t\t\treturn s;\n\n\t\t}\n\n\t}\n\n\tstatic extractUrlBase( url ) {\n\n\t\tconst index = url.lastIndexOf( '/' );\n\n\t\tif ( index === - 1 ) return './';\n\n\t\treturn url.slice( 0, index + 1 );\n\n\t}\n\n\tstatic resolveURL( url, path ) {\n\n\t\t// Invalid URL\n\t\tif ( typeof url !== 'string' || url === '' ) return '';\n\n\t\t// Host Relative URL\n\t\tif ( /^https?:\\/\\//i.test( path ) && /^\\//.test( url ) ) {\n\n\t\t\tpath = path.replace( /(^https?:\\/\\/[^\\/]+).*/i, '$1' );\n\n\t\t}\n\n\t\t// Absolute URL http://,https://,//\n\t\tif ( /^(https?:)?\\/\\//i.test( url ) ) return url;\n\n\t\t// Data URI\n\t\tif ( /^data:.*,.*$/i.test( url ) ) return url;\n\n\t\t// Blob URL\n\t\tif ( /^blob:.*$/i.test( url ) ) return url;\n\n\t\t// Relative URL\n\t\treturn path + url;\n\n\t}\n\n}\n\nclass InstancedBufferGeometry extends BufferGeometry {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isInstancedBufferGeometry = true;\n\n\t\tthis.type = 'InstancedBufferGeometry';\n\t\tthis.instanceCount = Infinity;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.instanceCount = source.instanceCount;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.instanceCount = this.instanceCount;\n\n\t\tdata.isInstancedBufferGeometry = true;\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass BufferGeometryLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( scope.manager );\n\t\tloader.setPath( scope.path );\n\t\tloader.setRequestHeader( scope.requestHeader );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( JSON.parse( text ) ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tparse( json ) {\n\n\t\tconst interleavedBufferMap = {};\n\t\tconst arrayBufferMap = {};\n\n\t\tfunction getInterleavedBuffer( json, uuid ) {\n\n\t\t\tif ( interleavedBufferMap[ uuid ] !== undefined ) return interleavedBufferMap[ uuid ];\n\n\t\t\tconst interleavedBuffers = json.interleavedBuffers;\n\t\t\tconst interleavedBuffer = interleavedBuffers[ uuid ];\n\n\t\t\tconst buffer = getArrayBuffer( json, interleavedBuffer.buffer );\n\n\t\t\tconst array = getTypedArray( interleavedBuffer.type, buffer );\n\t\t\tconst ib = new InterleavedBuffer( array, interleavedBuffer.stride );\n\t\t\tib.uuid = interleavedBuffer.uuid;\n\n\t\t\tinterleavedBufferMap[ uuid ] = ib;\n\n\t\t\treturn ib;\n\n\t\t}\n\n\t\tfunction getArrayBuffer( json, uuid ) {\n\n\t\t\tif ( arrayBufferMap[ uuid ] !== undefined ) return arrayBufferMap[ uuid ];\n\n\t\t\tconst arrayBuffers = json.arrayBuffers;\n\t\t\tconst arrayBuffer = arrayBuffers[ uuid ];\n\n\t\t\tconst ab = new Uint32Array( arrayBuffer ).buffer;\n\n\t\t\tarrayBufferMap[ uuid ] = ab;\n\n\t\t\treturn ab;\n\n\t\t}\n\n\t\tconst geometry = json.isInstancedBufferGeometry ? new InstancedBufferGeometry() : new BufferGeometry();\n\n\t\tconst index = json.data.index;\n\n\t\tif ( index !== undefined ) {\n\n\t\t\tconst typedArray = getTypedArray( index.type, index.array );\n\t\t\tgeometry.setIndex( new BufferAttribute( typedArray, 1 ) );\n\n\t\t}\n\n\t\tconst attributes = json.data.attributes;\n\n\t\tfor ( const key in attributes ) {\n\n\t\t\tconst attribute = attributes[ key ];\n\t\t\tlet bufferAttribute;\n\n\t\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\tconst interleavedBuffer = getInterleavedBuffer( json.data, attribute.data );\n\t\t\t\tbufferAttribute = new InterleavedBufferAttribute( interleavedBuffer, attribute.itemSize, attribute.offset, attribute.normalized );\n\n\t\t\t} else {\n\n\t\t\t\tconst typedArray = getTypedArray( attribute.type, attribute.array );\n\t\t\t\tconst bufferAttributeConstr = attribute.isInstancedBufferAttribute ? InstancedBufferAttribute : BufferAttribute;\n\t\t\t\tbufferAttribute = new bufferAttributeConstr( typedArray, attribute.itemSize, attribute.normalized );\n\n\t\t\t}\n\n\t\t\tif ( attribute.name !== undefined ) bufferAttribute.name = attribute.name;\n\t\t\tif ( attribute.usage !== undefined ) bufferAttribute.setUsage( attribute.usage );\n\n\t\t\tgeometry.setAttribute( key, bufferAttribute );\n\n\t\t}\n\n\t\tconst morphAttributes = json.data.morphAttributes;\n\n\t\tif ( morphAttributes ) {\n\n\t\t\tfor ( const key in morphAttributes ) {\n\n\t\t\t\tconst attributeArray = morphAttributes[ key ];\n\n\t\t\t\tconst array = [];\n\n\t\t\t\tfor ( let i = 0, il = attributeArray.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst attribute = attributeArray[ i ];\n\t\t\t\t\tlet bufferAttribute;\n\n\t\t\t\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\t\t\tconst interleavedBuffer = getInterleavedBuffer( json.data, attribute.data );\n\t\t\t\t\t\tbufferAttribute = new InterleavedBufferAttribute( interleavedBuffer, attribute.itemSize, attribute.offset, attribute.normalized );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst typedArray = getTypedArray( attribute.type, attribute.array );\n\t\t\t\t\t\tbufferAttribute = new BufferAttribute( typedArray, attribute.itemSize, attribute.normalized );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( attribute.name !== undefined ) bufferAttribute.name = attribute.name;\n\t\t\t\t\tarray.push( bufferAttribute );\n\n\t\t\t\t}\n\n\t\t\t\tgeometry.morphAttributes[ key ] = array;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst morphTargetsRelative = json.data.morphTargetsRelative;\n\n\t\tif ( morphTargetsRelative ) {\n\n\t\t\tgeometry.morphTargetsRelative = true;\n\n\t\t}\n\n\t\tconst groups = json.data.groups || json.data.drawcalls || json.data.offsets;\n\n\t\tif ( groups !== undefined ) {\n\n\t\t\tfor ( let i = 0, n = groups.length; i !== n; ++ i ) {\n\n\t\t\t\tconst group = groups[ i ];\n\n\t\t\t\tgeometry.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst boundingSphere = json.data.boundingSphere;\n\n\t\tif ( boundingSphere !== undefined ) {\n\n\t\t\tconst center = new Vector3();\n\n\t\t\tif ( boundingSphere.center !== undefined ) {\n\n\t\t\t\tcenter.fromArray( boundingSphere.center );\n\n\t\t\t}\n\n\t\t\tgeometry.boundingSphere = new Sphere( center, boundingSphere.radius );\n\n\t\t}\n\n\t\tif ( json.name ) geometry.name = json.name;\n\t\tif ( json.userData ) geometry.userData = json.userData;\n\n\t\treturn geometry;\n\n\t}\n\n}\n\nclass ObjectLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst path = ( this.path === '' ) ? LoaderUtils.extractUrlBase( url ) : this.path;\n\t\tthis.resourcePath = this.resourcePath || path;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\tlet json = null;\n\n\t\t\ttry {\n\n\t\t\t\tjson = JSON.parse( text );\n\n\t\t\t} catch ( error ) {\n\n\t\t\t\tif ( onError !== undefined ) onError( error );\n\n\t\t\t\tconsole.error( 'THREE:ObjectLoader: Can\\'t parse ' + url + '.', error.message );\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tconst metadata = json.metadata;\n\n\t\t\tif ( metadata === undefined || metadata.type === undefined || metadata.type.toLowerCase() === 'geometry' ) {\n\n\t\t\t\tif ( onError !== undefined ) onError( new Error( 'THREE.ObjectLoader: Can\\'t load ' + url ) );\n\n\t\t\t\tconsole.error( 'THREE.ObjectLoader: Can\\'t load ' + url );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tscope.parse( json, onLoad );\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tasync loadAsync( url, onProgress ) {\n\n\t\tconst scope = this;\n\n\t\tconst path = ( this.path === '' ) ? LoaderUtils.extractUrlBase( url ) : this.path;\n\t\tthis.resourcePath = this.resourcePath || path;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\n\t\tconst text = await loader.loadAsync( url, onProgress );\n\n\t\tconst json = JSON.parse( text );\n\n\t\tconst metadata = json.metadata;\n\n\t\tif ( metadata === undefined || metadata.type === undefined || metadata.type.toLowerCase() === 'geometry' ) {\n\n\t\t\tthrow new Error( 'THREE.ObjectLoader: Can\\'t load ' + url );\n\n\t\t}\n\n\t\treturn await scope.parseAsync( json );\n\n\t}\n\n\tparse( json, onLoad ) {\n\n\t\tconst animations = this.parseAnimations( json.animations );\n\t\tconst shapes = this.parseShapes( json.shapes );\n\t\tconst geometries = this.parseGeometries( json.geometries, shapes );\n\n\t\tconst images = this.parseImages( json.images, function () {\n\n\t\t\tif ( onLoad !== undefined ) onLoad( object );\n\n\t\t} );\n\n\t\tconst textures = this.parseTextures( json.textures, images );\n\t\tconst materials = this.parseMaterials( json.materials, textures );\n\n\t\tconst object = this.parseObject( json.object, geometries, materials, textures, animations );\n\t\tconst skeletons = this.parseSkeletons( json.skeletons, object );\n\n\t\tthis.bindSkeletons( object, skeletons );\n\t\tthis.bindLightTargets( object );\n\n\t\t//\n\n\t\tif ( onLoad !== undefined ) {\n\n\t\t\tlet hasImages = false;\n\n\t\t\tfor ( const uuid in images ) {\n\n\t\t\t\tif ( images[ uuid ].data instanceof HTMLImageElement ) {\n\n\t\t\t\t\thasImages = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( hasImages === false ) onLoad( object );\n\n\t\t}\n\n\t\treturn object;\n\n\t}\n\n\tasync parseAsync( json ) {\n\n\t\tconst animations = this.parseAnimations( json.animations );\n\t\tconst shapes = this.parseShapes( json.shapes );\n\t\tconst geometries = this.parseGeometries( json.geometries, shapes );\n\n\t\tconst images = await this.parseImagesAsync( json.images );\n\n\t\tconst textures = this.parseTextures( json.textures, images );\n\t\tconst materials = this.parseMaterials( json.materials, textures );\n\n\t\tconst object = this.parseObject( json.object, geometries, materials, textures, animations );\n\t\tconst skeletons = this.parseSkeletons( json.skeletons, object );\n\n\t\tthis.bindSkeletons( object, skeletons );\n\t\tthis.bindLightTargets( object );\n\n\t\treturn object;\n\n\t}\n\n\tparseShapes( json ) {\n\n\t\tconst shapes = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tconst shape = new Shape().fromJSON( json[ i ] );\n\n\t\t\t\tshapes[ shape.uuid ] = shape;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn shapes;\n\n\t}\n\n\tparseSkeletons( json, object ) {\n\n\t\tconst skeletons = {};\n\t\tconst bones = {};\n\n\t\t// generate bone lookup table\n\n\t\tobject.traverse( function ( child ) {\n\n\t\t\tif ( child.isBone ) bones[ child.uuid ] = child;\n\n\t\t} );\n\n\t\t// create skeletons\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tconst skeleton = new Skeleton().fromJSON( json[ i ], bones );\n\n\t\t\t\tskeletons[ skeleton.uuid ] = skeleton;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn skeletons;\n\n\t}\n\n\tparseGeometries( json, shapes ) {\n\n\t\tconst geometries = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tconst bufferGeometryLoader = new BufferGeometryLoader();\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tlet geometry;\n\t\t\t\tconst data = json[ i ];\n\n\t\t\t\tswitch ( data.type ) {\n\n\t\t\t\t\tcase 'BufferGeometry':\n\t\t\t\t\tcase 'InstancedBufferGeometry':\n\n\t\t\t\t\t\tgeometry = bufferGeometryLoader.parse( data );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\tif ( data.type in Geometries ) {\n\n\t\t\t\t\t\t\tgeometry = Geometries[ data.type ].fromJSON( data, shapes );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tconsole.warn( `THREE.ObjectLoader: Unsupported geometry type \"${ data.type }\"` );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tgeometry.uuid = data.uuid;\n\n\t\t\t\tif ( data.name !== undefined ) geometry.name = data.name;\n\t\t\t\tif ( data.userData !== undefined ) geometry.userData = data.userData;\n\n\t\t\t\tgeometries[ data.uuid ] = geometry;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn geometries;\n\n\t}\n\n\tparseMaterials( json, textures ) {\n\n\t\tconst cache = {}; // MultiMaterial\n\t\tconst materials = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tconst loader = new MaterialLoader();\n\t\t\tloader.setTextures( textures );\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tconst data = json[ i ];\n\n\t\t\t\tif ( cache[ data.uuid ] === undefined ) {\n\n\t\t\t\t\tcache[ data.uuid ] = loader.parse( data );\n\n\t\t\t\t}\n\n\t\t\t\tmaterials[ data.uuid ] = cache[ data.uuid ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn materials;\n\n\t}\n\n\tparseAnimations( json ) {\n\n\t\tconst animations = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tfor ( let i = 0; i < json.length; i ++ ) {\n\n\t\t\t\tconst data = json[ i ];\n\n\t\t\t\tconst clip = AnimationClip.parse( data );\n\n\t\t\t\tanimations[ clip.uuid ] = clip;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn animations;\n\n\t}\n\n\tparseImages( json, onLoad ) {\n\n\t\tconst scope = this;\n\t\tconst images = {};\n\n\t\tlet loader;\n\n\t\tfunction loadImage( url ) {\n\n\t\t\tscope.manager.itemStart( url );\n\n\t\t\treturn loader.load( url, function () {\n\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t}, undefined, function () {\n\n\t\t\t\tscope.manager.itemError( url );\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t} );\n\n\t\t}\n\n\t\tfunction deserializeImage( image ) {\n\n\t\t\tif ( typeof image === 'string' ) {\n\n\t\t\t\tconst url = image;\n\n\t\t\t\tconst path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test( url ) ? url : scope.resourcePath + url;\n\n\t\t\t\treturn loadImage( path );\n\n\t\t\t} else {\n\n\t\t\t\tif ( image.data ) {\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdata: getTypedArray( image.type, image.data ),\n\t\t\t\t\t\twidth: image.width,\n\t\t\t\t\t\theight: image.height\n\t\t\t\t\t};\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( json !== undefined && json.length > 0 ) {\n\n\t\t\tconst manager = new LoadingManager( onLoad );\n\n\t\t\tloader = new ImageLoader( manager );\n\t\t\tloader.setCrossOrigin( this.crossOrigin );\n\n\t\t\tfor ( let i = 0, il = json.length; i < il; i ++ ) {\n\n\t\t\t\tconst image = json[ i ];\n\t\t\t\tconst url = image.url;\n\n\t\t\t\tif ( Array.isArray( url ) ) {\n\n\t\t\t\t\t// load array of images e.g CubeTexture\n\n\t\t\t\t\tconst imageArray = [];\n\n\t\t\t\t\tfor ( let j = 0, jl = url.length; j < jl; j ++ ) {\n\n\t\t\t\t\t\tconst currentUrl = url[ j ];\n\n\t\t\t\t\t\tconst deserializedImage = deserializeImage( currentUrl );\n\n\t\t\t\t\t\tif ( deserializedImage !== null ) {\n\n\t\t\t\t\t\t\tif ( deserializedImage instanceof HTMLImageElement ) {\n\n\t\t\t\t\t\t\t\timageArray.push( deserializedImage );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// special case: handle array of data textures for cube textures\n\n\t\t\t\t\t\t\t\timageArray.push( new DataTexture( deserializedImage.data, deserializedImage.width, deserializedImage.height ) );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\timages[ image.uuid ] = new Source( imageArray );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// load single image\n\n\t\t\t\t\tconst deserializedImage = deserializeImage( image.url );\n\t\t\t\t\timages[ image.uuid ] = new Source( deserializedImage );\n\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn images;\n\n\t}\n\n\tasync parseImagesAsync( json ) {\n\n\t\tconst scope = this;\n\t\tconst images = {};\n\n\t\tlet loader;\n\n\t\tasync function deserializeImage( image ) {\n\n\t\t\tif ( typeof image === 'string' ) {\n\n\t\t\t\tconst url = image;\n\n\t\t\t\tconst path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test( url ) ? url : scope.resourcePath + url;\n\n\t\t\t\treturn await loader.loadAsync( path );\n\n\t\t\t} else {\n\n\t\t\t\tif ( image.data ) {\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdata: getTypedArray( image.type, image.data ),\n\t\t\t\t\t\twidth: image.width,\n\t\t\t\t\t\theight: image.height\n\t\t\t\t\t};\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( json !== undefined && json.length > 0 ) {\n\n\t\t\tloader = new ImageLoader( this.manager );\n\t\t\tloader.setCrossOrigin( this.crossOrigin );\n\n\t\t\tfor ( let i = 0, il = json.length; i < il; i ++ ) {\n\n\t\t\t\tconst image = json[ i ];\n\t\t\t\tconst url = image.url;\n\n\t\t\t\tif ( Array.isArray( url ) ) {\n\n\t\t\t\t\t// load array of images e.g CubeTexture\n\n\t\t\t\t\tconst imageArray = [];\n\n\t\t\t\t\tfor ( let j = 0, jl = url.length; j < jl; j ++ ) {\n\n\t\t\t\t\t\tconst currentUrl = url[ j ];\n\n\t\t\t\t\t\tconst deserializedImage = await deserializeImage( currentUrl );\n\n\t\t\t\t\t\tif ( deserializedImage !== null ) {\n\n\t\t\t\t\t\t\tif ( deserializedImage instanceof HTMLImageElement ) {\n\n\t\t\t\t\t\t\t\timageArray.push( deserializedImage );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// special case: handle array of data textures for cube textures\n\n\t\t\t\t\t\t\t\timageArray.push( new DataTexture( deserializedImage.data, deserializedImage.width, deserializedImage.height ) );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\timages[ image.uuid ] = new Source( imageArray );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// load single image\n\n\t\t\t\t\tconst deserializedImage = await deserializeImage( image.url );\n\t\t\t\t\timages[ image.uuid ] = new Source( deserializedImage );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn images;\n\n\t}\n\n\tparseTextures( json, images ) {\n\n\t\tfunction parseConstant( value, type ) {\n\n\t\t\tif ( typeof value === 'number' ) return value;\n\n\t\t\tconsole.warn( 'THREE.ObjectLoader.parseTexture: Constant should be in numeric form.', value );\n\n\t\t\treturn type[ value ];\n\n\t\t}\n\n\t\tconst textures = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tconst data = json[ i ];\n\n\t\t\t\tif ( data.image === undefined ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.ObjectLoader: No \"image\" specified for', data.uuid );\n\n\t\t\t\t}\n\n\t\t\t\tif ( images[ data.image ] === undefined ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined image', data.image );\n\n\t\t\t\t}\n\n\t\t\t\tconst source = images[ data.image ];\n\t\t\t\tconst image = source.data;\n\n\t\t\t\tlet texture;\n\n\t\t\t\tif ( Array.isArray( image ) ) {\n\n\t\t\t\t\ttexture = new CubeTexture();\n\n\t\t\t\t\tif ( image.length === 6 ) texture.needsUpdate = true;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( image && image.data ) {\n\n\t\t\t\t\t\ttexture = new DataTexture();\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ttexture = new Texture();\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( image ) texture.needsUpdate = true; // textures can have undefined image data\n\n\t\t\t\t}\n\n\t\t\t\ttexture.source = source;\n\n\t\t\t\ttexture.uuid = data.uuid;\n\n\t\t\t\tif ( data.name !== undefined ) texture.name = data.name;\n\n\t\t\t\tif ( data.mapping !== undefined ) texture.mapping = parseConstant( data.mapping, TEXTURE_MAPPING );\n\t\t\t\tif ( data.channel !== undefined ) texture.channel = data.channel;\n\n\t\t\t\tif ( data.offset !== undefined ) texture.offset.fromArray( data.offset );\n\t\t\t\tif ( data.repeat !== undefined ) texture.repeat.fromArray( data.repeat );\n\t\t\t\tif ( data.center !== undefined ) texture.center.fromArray( data.center );\n\t\t\t\tif ( data.rotation !== undefined ) texture.rotation = data.rotation;\n\n\t\t\t\tif ( data.wrap !== undefined ) {\n\n\t\t\t\t\ttexture.wrapS = parseConstant( data.wrap[ 0 ], TEXTURE_WRAPPING );\n\t\t\t\t\ttexture.wrapT = parseConstant( data.wrap[ 1 ], TEXTURE_WRAPPING );\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.format !== undefined ) texture.format = data.format;\n\t\t\t\tif ( data.internalFormat !== undefined ) texture.internalFormat = data.internalFormat;\n\t\t\t\tif ( data.type !== undefined ) texture.type = data.type;\n\t\t\t\tif ( data.colorSpace !== undefined ) texture.colorSpace = data.colorSpace;\n\n\t\t\t\tif ( data.minFilter !== undefined ) texture.minFilter = parseConstant( data.minFilter, TEXTURE_FILTER );\n\t\t\t\tif ( data.magFilter !== undefined ) texture.magFilter = parseConstant( data.magFilter, TEXTURE_FILTER );\n\t\t\t\tif ( data.anisotropy !== undefined ) texture.anisotropy = data.anisotropy;\n\n\t\t\t\tif ( data.flipY !== undefined ) texture.flipY = data.flipY;\n\n\t\t\t\tif ( data.generateMipmaps !== undefined ) texture.generateMipmaps = data.generateMipmaps;\n\t\t\t\tif ( data.premultiplyAlpha !== undefined ) texture.premultiplyAlpha = data.premultiplyAlpha;\n\t\t\t\tif ( data.unpackAlignment !== undefined ) texture.unpackAlignment = data.unpackAlignment;\n\t\t\t\tif ( data.compareFunction !== undefined ) texture.compareFunction = data.compareFunction;\n\n\t\t\t\tif ( data.userData !== undefined ) texture.userData = data.userData;\n\n\t\t\t\ttextures[ data.uuid ] = texture;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn textures;\n\n\t}\n\n\tparseObject( data, geometries, materials, textures, animations ) {\n\n\t\tlet object;\n\n\t\tfunction getGeometry( name ) {\n\n\t\t\tif ( geometries[ name ] === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined geometry', name );\n\n\t\t\t}\n\n\t\t\treturn geometries[ name ];\n\n\t\t}\n\n\t\tfunction getMaterial( name ) {\n\n\t\t\tif ( name === undefined ) return undefined;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\n\t\t\t\tconst array = [];\n\n\t\t\t\tfor ( let i = 0, l = name.length; i < l; i ++ ) {\n\n\t\t\t\t\tconst uuid = name[ i ];\n\n\t\t\t\t\tif ( materials[ uuid ] === undefined ) {\n\n\t\t\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined material', uuid );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tarray.push( materials[ uuid ] );\n\n\t\t\t\t}\n\n\t\t\t\treturn array;\n\n\t\t\t}\n\n\t\t\tif ( materials[ name ] === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined material', name );\n\n\t\t\t}\n\n\t\t\treturn materials[ name ];\n\n\t\t}\n\n\t\tfunction getTexture( uuid ) {\n\n\t\t\tif ( textures[ uuid ] === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined texture', uuid );\n\n\t\t\t}\n\n\t\t\treturn textures[ uuid ];\n\n\t\t}\n\n\t\tlet geometry, material;\n\n\t\tswitch ( data.type ) {\n\n\t\t\tcase 'Scene':\n\n\t\t\t\tobject = new Scene();\n\n\t\t\t\tif ( data.background !== undefined ) {\n\n\t\t\t\t\tif ( Number.isInteger( data.background ) ) {\n\n\t\t\t\t\t\tobject.background = new Color( data.background );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tobject.background = getTexture( data.background );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.environment !== undefined ) {\n\n\t\t\t\t\tobject.environment = getTexture( data.environment );\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.fog !== undefined ) {\n\n\t\t\t\t\tif ( data.fog.type === 'Fog' ) {\n\n\t\t\t\t\t\tobject.fog = new Fog( data.fog.color, data.fog.near, data.fog.far );\n\n\t\t\t\t\t} else if ( data.fog.type === 'FogExp2' ) {\n\n\t\t\t\t\t\tobject.fog = new FogExp2( data.fog.color, data.fog.density );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( data.fog.name !== '' ) {\n\n\t\t\t\t\t\tobject.fog.name = data.fog.name;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.backgroundBlurriness !== undefined ) object.backgroundBlurriness = data.backgroundBlurriness;\n\t\t\t\tif ( data.backgroundIntensity !== undefined ) object.backgroundIntensity = data.backgroundIntensity;\n\t\t\t\tif ( data.backgroundRotation !== undefined ) object.backgroundRotation.fromArray( data.backgroundRotation );\n\n\t\t\t\tif ( data.environmentIntensity !== undefined ) object.environmentIntensity = data.environmentIntensity;\n\t\t\t\tif ( data.environmentRotation !== undefined ) object.environmentRotation.fromArray( data.environmentRotation );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'PerspectiveCamera':\n\n\t\t\t\tobject = new PerspectiveCamera( data.fov, data.aspect, data.near, data.far );\n\n\t\t\t\tif ( data.focus !== undefined ) object.focus = data.focus;\n\t\t\t\tif ( data.zoom !== undefined ) object.zoom = data.zoom;\n\t\t\t\tif ( data.filmGauge !== undefined ) object.filmGauge = data.filmGauge;\n\t\t\t\tif ( data.filmOffset !== undefined ) object.filmOffset = data.filmOffset;\n\t\t\t\tif ( data.view !== undefined ) object.view = Object.assign( {}, data.view );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'OrthographicCamera':\n\n\t\t\t\tobject = new OrthographicCamera( data.left, data.right, data.top, data.bottom, data.near, data.far );\n\n\t\t\t\tif ( data.zoom !== undefined ) object.zoom = data.zoom;\n\t\t\t\tif ( data.view !== undefined ) object.view = Object.assign( {}, data.view );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'AmbientLight':\n\n\t\t\t\tobject = new AmbientLight( data.color, data.intensity );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'DirectionalLight':\n\n\t\t\t\tobject = new DirectionalLight( data.color, data.intensity );\n\t\t\t\tobject.target = data.target || '';\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'PointLight':\n\n\t\t\t\tobject = new PointLight( data.color, data.intensity, data.distance, data.decay );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'RectAreaLight':\n\n\t\t\t\tobject = new RectAreaLight( data.color, data.intensity, data.width, data.height );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'SpotLight':\n\n\t\t\t\tobject = new SpotLight( data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay );\n\t\t\t\tobject.target = data.target || '';\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'HemisphereLight':\n\n\t\t\t\tobject = new HemisphereLight( data.color, data.groundColor, data.intensity );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'LightProbe':\n\n\t\t\t\tobject = new LightProbe().fromJSON( data );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'SkinnedMesh':\n\n\t\t\t\tgeometry = getGeometry( data.geometry );\n\t\t\t \tmaterial = getMaterial( data.material );\n\n\t\t\t\tobject = new SkinnedMesh( geometry, material );\n\n\t\t\t\tif ( data.bindMode !== undefined ) object.bindMode = data.bindMode;\n\t\t\t\tif ( data.bindMatrix !== undefined ) object.bindMatrix.fromArray( data.bindMatrix );\n\t\t\t\tif ( data.skeleton !== undefined ) object.skeleton = data.skeleton;\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Mesh':\n\n\t\t\t\tgeometry = getGeometry( data.geometry );\n\t\t\t\tmaterial = getMaterial( data.material );\n\n\t\t\t\tobject = new Mesh( geometry, material );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'InstancedMesh':\n\n\t\t\t\tgeometry = getGeometry( data.geometry );\n\t\t\t\tmaterial = getMaterial( data.material );\n\t\t\t\tconst count = data.count;\n\t\t\t\tconst instanceMatrix = data.instanceMatrix;\n\t\t\t\tconst instanceColor = data.instanceColor;\n\n\t\t\t\tobject = new InstancedMesh( geometry, material, count );\n\t\t\t\tobject.instanceMatrix = new InstancedBufferAttribute( new Float32Array( instanceMatrix.array ), 16 );\n\t\t\t\tif ( instanceColor !== undefined ) object.instanceColor = new InstancedBufferAttribute( new Float32Array( instanceColor.array ), instanceColor.itemSize );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'BatchedMesh':\n\n\t\t\t\tgeometry = getGeometry( data.geometry );\n\t\t\t\tmaterial = getMaterial( data.material );\n\n\t\t\t\tobject = new BatchedMesh( data.maxInstanceCount, data.maxVertexCount, data.maxIndexCount, material );\n\t\t\t\tobject.geometry = geometry;\n\t\t\t\tobject.perObjectFrustumCulled = data.perObjectFrustumCulled;\n\t\t\t\tobject.sortObjects = data.sortObjects;\n\n\t\t\t\tobject._drawRanges = data.drawRanges;\n\t\t\t\tobject._reservedRanges = data.reservedRanges;\n\n\t\t\t\tobject._visibility = data.visibility;\n\t\t\t\tobject._active = data.active;\n\t\t\t\tobject._bounds = data.bounds.map( bound => {\n\n\t\t\t\t\tconst box = new Box3();\n\t\t\t\t\tbox.min.fromArray( bound.boxMin );\n\t\t\t\t\tbox.max.fromArray( bound.boxMax );\n\n\t\t\t\t\tconst sphere = new Sphere();\n\t\t\t\t\tsphere.radius = bound.sphereRadius;\n\t\t\t\t\tsphere.center.fromArray( bound.sphereCenter );\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tboxInitialized: bound.boxInitialized,\n\t\t\t\t\t\tbox: box,\n\n\t\t\t\t\t\tsphereInitialized: bound.sphereInitialized,\n\t\t\t\t\t\tsphere: sphere\n\t\t\t\t\t};\n\n\t\t\t\t} );\n\n\t\t\t\tobject._maxInstanceCount = data.maxInstanceCount;\n\t\t\t\tobject._maxVertexCount = data.maxVertexCount;\n\t\t\t\tobject._maxIndexCount = data.maxIndexCount;\n\n\t\t\t\tobject._geometryInitialized = data.geometryInitialized;\n\t\t\t\tobject._geometryCount = data.geometryCount;\n\n\t\t\t\tobject._matricesTexture = getTexture( data.matricesTexture.uuid );\n\t\t\t\tif ( data.colorsTexture !== undefined ) object._colorsTexture = getTexture( data.colorsTexture.uuid );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'LOD':\n\n\t\t\t\tobject = new LOD();\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Line':\n\n\t\t\t\tobject = new Line( getGeometry( data.geometry ), getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'LineLoop':\n\n\t\t\t\tobject = new LineLoop( getGeometry( data.geometry ), getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'LineSegments':\n\n\t\t\t\tobject = new LineSegments( getGeometry( data.geometry ), getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'PointCloud':\n\t\t\tcase 'Points':\n\n\t\t\t\tobject = new Points( getGeometry( data.geometry ), getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Sprite':\n\n\t\t\t\tobject = new Sprite( getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Group':\n\n\t\t\t\tobject = new Group();\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Bone':\n\n\t\t\t\tobject = new Bone();\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tobject = new Object3D();\n\n\t\t}\n\n\t\tobject.uuid = data.uuid;\n\n\t\tif ( data.name !== undefined ) object.name = data.name;\n\n\t\tif ( data.matrix !== undefined ) {\n\n\t\t\tobject.matrix.fromArray( data.matrix );\n\n\t\t\tif ( data.matrixAutoUpdate !== undefined ) object.matrixAutoUpdate = data.matrixAutoUpdate;\n\t\t\tif ( object.matrixAutoUpdate ) object.matrix.decompose( object.position, object.quaternion, object.scale );\n\n\t\t} else {\n\n\t\t\tif ( data.position !== undefined ) object.position.fromArray( data.position );\n\t\t\tif ( data.rotation !== undefined ) object.rotation.fromArray( data.rotation );\n\t\t\tif ( data.quaternion !== undefined ) object.quaternion.fromArray( data.quaternion );\n\t\t\tif ( data.scale !== undefined ) object.scale.fromArray( data.scale );\n\n\t\t}\n\n\t\tif ( data.up !== undefined ) object.up.fromArray( data.up );\n\n\t\tif ( data.castShadow !== undefined ) object.castShadow = data.castShadow;\n\t\tif ( data.receiveShadow !== undefined ) object.receiveShadow = data.receiveShadow;\n\n\t\tif ( data.shadow ) {\n\n\t\t\tif ( data.shadow.intensity !== undefined ) object.shadow.intensity = data.shadow.intensity;\n\t\t\tif ( data.shadow.bias !== undefined ) object.shadow.bias = data.shadow.bias;\n\t\t\tif ( data.shadow.normalBias !== undefined ) object.shadow.normalBias = data.shadow.normalBias;\n\t\t\tif ( data.shadow.radius !== undefined ) object.shadow.radius = data.shadow.radius;\n\t\t\tif ( data.shadow.mapSize !== undefined ) object.shadow.mapSize.fromArray( data.shadow.mapSize );\n\t\t\tif ( data.shadow.camera !== undefined ) object.shadow.camera = this.parseObject( data.shadow.camera );\n\n\t\t}\n\n\t\tif ( data.visible !== undefined ) object.visible = data.visible;\n\t\tif ( data.frustumCulled !== undefined ) object.frustumCulled = data.frustumCulled;\n\t\tif ( data.renderOrder !== undefined ) object.renderOrder = data.renderOrder;\n\t\tif ( data.userData !== undefined ) object.userData = data.userData;\n\t\tif ( data.layers !== undefined ) object.layers.mask = data.layers;\n\n\t\tif ( data.children !== undefined ) {\n\n\t\t\tconst children = data.children;\n\n\t\t\tfor ( let i = 0; i < children.length; i ++ ) {\n\n\t\t\t\tobject.add( this.parseObject( children[ i ], geometries, materials, textures, animations ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( data.animations !== undefined ) {\n\n\t\t\tconst objectAnimations = data.animations;\n\n\t\t\tfor ( let i = 0; i < objectAnimations.length; i ++ ) {\n\n\t\t\t\tconst uuid = objectAnimations[ i ];\n\n\t\t\t\tobject.animations.push( animations[ uuid ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( data.type === 'LOD' ) {\n\n\t\t\tif ( data.autoUpdate !== undefined ) object.autoUpdate = data.autoUpdate;\n\n\t\t\tconst levels = data.levels;\n\n\t\t\tfor ( let l = 0; l < levels.length; l ++ ) {\n\n\t\t\t\tconst level = levels[ l ];\n\t\t\t\tconst child = object.getObjectByProperty( 'uuid', level.object );\n\n\t\t\t\tif ( child !== undefined ) {\n\n\t\t\t\t\tobject.addLevel( child, level.distance, level.hysteresis );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn object;\n\n\t}\n\n\tbindSkeletons( object, skeletons ) {\n\n\t\tif ( Object.keys( skeletons ).length === 0 ) return;\n\n\t\tobject.traverse( function ( child ) {\n\n\t\t\tif ( child.isSkinnedMesh === true && child.skeleton !== undefined ) {\n\n\t\t\t\tconst skeleton = skeletons[ child.skeleton ];\n\n\t\t\t\tif ( skeleton === undefined ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.ObjectLoader: No skeleton found with UUID:', child.skeleton );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tchild.bind( skeleton, child.bindMatrix );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} );\n\n\t}\n\n\tbindLightTargets( object ) {\n\n\t\tobject.traverse( function ( child ) {\n\n\t\t\tif ( child.isDirectionalLight || child.isSpotLight ) {\n\n\t\t\t\tconst uuid = child.target;\n\n\t\t\t\tconst target = object.getObjectByProperty( 'uuid', uuid );\n\n\t\t\t\tif ( target !== undefined ) {\n\n\t\t\t\t\tchild.target = target;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tchild.target = new Object3D();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} );\n\n\t}\n\n}\n\nconst TEXTURE_MAPPING = {\n\tUVMapping: UVMapping,\n\tCubeReflectionMapping: CubeReflectionMapping,\n\tCubeRefractionMapping: CubeRefractionMapping,\n\tEquirectangularReflectionMapping: EquirectangularReflectionMapping,\n\tEquirectangularRefractionMapping: EquirectangularRefractionMapping,\n\tCubeUVReflectionMapping: CubeUVReflectionMapping\n};\n\nconst TEXTURE_WRAPPING = {\n\tRepeatWrapping: RepeatWrapping,\n\tClampToEdgeWrapping: ClampToEdgeWrapping,\n\tMirroredRepeatWrapping: MirroredRepeatWrapping\n};\n\nconst TEXTURE_FILTER = {\n\tNearestFilter: NearestFilter,\n\tNearestMipmapNearestFilter: NearestMipmapNearestFilter,\n\tNearestMipmapLinearFilter: NearestMipmapLinearFilter,\n\tLinearFilter: LinearFilter,\n\tLinearMipmapNearestFilter: LinearMipmapNearestFilter,\n\tLinearMipmapLinearFilter: LinearMipmapLinearFilter\n};\n\nclass ImageBitmapLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\tthis.isImageBitmapLoader = true;\n\n\t\tif ( typeof createImageBitmap === 'undefined' ) {\n\n\t\t\tconsole.warn( 'THREE.ImageBitmapLoader: createImageBitmap() not supported.' );\n\n\t\t}\n\n\t\tif ( typeof fetch === 'undefined' ) {\n\n\t\t\tconsole.warn( 'THREE.ImageBitmapLoader: fetch() not supported.' );\n\n\t\t}\n\n\t\tthis.options = { premultiplyAlpha: 'none' };\n\n\t}\n\n\tsetOptions( options ) {\n\n\t\tthis.options = options;\n\n\t\treturn this;\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tif ( url === undefined ) url = '';\n\n\t\tif ( this.path !== undefined ) url = this.path + url;\n\n\t\turl = this.manager.resolveURL( url );\n\n\t\tconst scope = this;\n\n\t\tconst cached = Cache.get( url );\n\n\t\tif ( cached !== undefined ) {\n\n\t\t\tscope.manager.itemStart( url );\n\n\t\t\t// If cached is a promise, wait for it to resolve\n\t\t\tif ( cached.then ) {\n\n\t\t\t\tcached.then( imageBitmap => {\n\n\t\t\t\t\tif ( onLoad ) onLoad( imageBitmap );\n\n\t\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t\t} ).catch( e => {\n\n\t\t\t\t\tif ( onError ) onError( e );\n\n\t\t\t\t} );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\t// If cached is not a promise (i.e., it's already an imageBitmap)\n\t\t\tsetTimeout( function () {\n\n\t\t\t\tif ( onLoad ) onLoad( cached );\n\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t}, 0 );\n\n\t\t\treturn cached;\n\n\t\t}\n\n\t\tconst fetchOptions = {};\n\t\tfetchOptions.credentials = ( this.crossOrigin === 'anonymous' ) ? 'same-origin' : 'include';\n\t\tfetchOptions.headers = this.requestHeader;\n\n\t\tconst promise = fetch( url, fetchOptions ).then( function ( res ) {\n\n\t\t\treturn res.blob();\n\n\t\t} ).then( function ( blob ) {\n\n\t\t\treturn createImageBitmap( blob, Object.assign( scope.options, { colorSpaceConversion: 'none' } ) );\n\n\t\t} ).then( function ( imageBitmap ) {\n\n\t\t\tCache.add( url, imageBitmap );\n\n\t\t\tif ( onLoad ) onLoad( imageBitmap );\n\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t\treturn imageBitmap;\n\n\t\t} ).catch( function ( e ) {\n\n\t\t\tif ( onError ) onError( e );\n\n\t\t\tCache.remove( url );\n\n\t\t\tscope.manager.itemError( url );\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t} );\n\n\t\tCache.add( url, promise );\n\t\tscope.manager.itemStart( url );\n\n\t}\n\n}\n\nlet _context;\n\nclass AudioContext {\n\n\tstatic getContext() {\n\n\t\tif ( _context === undefined ) {\n\n\t\t\t_context = new ( window.AudioContext || window.webkitAudioContext )();\n\n\t\t}\n\n\t\treturn _context;\n\n\t}\n\n\tstatic setContext( value ) {\n\n\t\t_context = value;\n\n\t}\n\n}\n\nclass AudioLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\t\tloader.load( url, function ( buffer ) {\n\n\t\t\ttry {\n\n\t\t\t\t// Create a copy of the buffer. The `decodeAudioData` method\n\t\t\t\t// detaches the buffer when complete, preventing reuse.\n\t\t\t\tconst bufferCopy = buffer.slice( 0 );\n\n\t\t\t\tconst context = AudioContext.getContext();\n\t\t\t\tcontext.decodeAudioData( bufferCopy, function ( audioBuffer ) {\n\n\t\t\t\t\tonLoad( audioBuffer );\n\n\t\t\t\t} ).catch( handleError );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\thandleError( e );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t\tfunction handleError( e ) {\n\n\t\t\tif ( onError ) {\n\n\t\t\t\tonError( e );\n\n\t\t\t} else {\n\n\t\t\t\tconsole.error( e );\n\n\t\t\t}\n\n\t\t\tscope.manager.itemError( url );\n\n\t\t}\n\n\t}\n\n}\n\nconst _eyeRight = /*@__PURE__*/ new Matrix4();\nconst _eyeLeft = /*@__PURE__*/ new Matrix4();\nconst _projectionMatrix = /*@__PURE__*/ new Matrix4();\n\nclass StereoCamera {\n\n\tconstructor() {\n\n\t\tthis.type = 'StereoCamera';\n\n\t\tthis.aspect = 1;\n\n\t\tthis.eyeSep = 0.064;\n\n\t\tthis.cameraL = new PerspectiveCamera();\n\t\tthis.cameraL.layers.enable( 1 );\n\t\tthis.cameraL.matrixAutoUpdate = false;\n\n\t\tthis.cameraR = new PerspectiveCamera();\n\t\tthis.cameraR.layers.enable( 2 );\n\t\tthis.cameraR.matrixAutoUpdate = false;\n\n\t\tthis._cache = {\n\t\t\tfocus: null,\n\t\t\tfov: null,\n\t\t\taspect: null,\n\t\t\tnear: null,\n\t\t\tfar: null,\n\t\t\tzoom: null,\n\t\t\teyeSep: null\n\t\t};\n\n\t}\n\n\tupdate( camera ) {\n\n\t\tconst cache = this._cache;\n\n\t\tconst needsUpdate = cache.focus !== camera.focus || cache.fov !== camera.fov ||\n\t\t\tcache.aspect !== camera.aspect * this.aspect || cache.near !== camera.near ||\n\t\t\tcache.far !== camera.far || cache.zoom !== camera.zoom || cache.eyeSep !== this.eyeSep;\n\n\t\tif ( needsUpdate ) {\n\n\t\t\tcache.focus = camera.focus;\n\t\t\tcache.fov = camera.fov;\n\t\t\tcache.aspect = camera.aspect * this.aspect;\n\t\t\tcache.near = camera.near;\n\t\t\tcache.far = camera.far;\n\t\t\tcache.zoom = camera.zoom;\n\t\t\tcache.eyeSep = this.eyeSep;\n\n\t\t\t// Off-axis stereoscopic effect based on\n\t\t\t// http://paulbourke.net/stereographics/stereorender/\n\n\t\t\t_projectionMatrix.copy( camera.projectionMatrix );\n\t\t\tconst eyeSepHalf = cache.eyeSep / 2;\n\t\t\tconst eyeSepOnProjection = eyeSepHalf * cache.near / cache.focus;\n\t\t\tconst ymax = ( cache.near * Math.tan( DEG2RAD * cache.fov * 0.5 ) ) / cache.zoom;\n\t\t\tlet xmin, xmax;\n\n\t\t\t// translate xOffset\n\n\t\t\t_eyeLeft.elements[ 12 ] = - eyeSepHalf;\n\t\t\t_eyeRight.elements[ 12 ] = eyeSepHalf;\n\n\t\t\t// for left eye\n\n\t\t\txmin = - ymax * cache.aspect + eyeSepOnProjection;\n\t\t\txmax = ymax * cache.aspect + eyeSepOnProjection;\n\n\t\t\t_projectionMatrix.elements[ 0 ] = 2 * cache.near / ( xmax - xmin );\n\t\t\t_projectionMatrix.elements[ 8 ] = ( xmax + xmin ) / ( xmax - xmin );\n\n\t\t\tthis.cameraL.projectionMatrix.copy( _projectionMatrix );\n\n\t\t\t// for right eye\n\n\t\t\txmin = - ymax * cache.aspect - eyeSepOnProjection;\n\t\t\txmax = ymax * cache.aspect - eyeSepOnProjection;\n\n\t\t\t_projectionMatrix.elements[ 0 ] = 2 * cache.near / ( xmax - xmin );\n\t\t\t_projectionMatrix.elements[ 8 ] = ( xmax + xmin ) / ( xmax - xmin );\n\n\t\t\tthis.cameraR.projectionMatrix.copy( _projectionMatrix );\n\n\t\t}\n\n\t\tthis.cameraL.matrixWorld.copy( camera.matrixWorld ).multiply( _eyeLeft );\n\t\tthis.cameraR.matrixWorld.copy( camera.matrixWorld ).multiply( _eyeRight );\n\n\t}\n\n}\n\nclass ArrayCamera extends PerspectiveCamera {\n\n\tconstructor( array = [] ) {\n\n\t\tsuper();\n\n\t\tthis.isArrayCamera = true;\n\n\t\tthis.cameras = array;\n\n\t}\n\n}\n\nclass Clock {\n\n\tconstructor( autoStart = true ) {\n\n\t\tthis.autoStart = autoStart;\n\n\t\tthis.startTime = 0;\n\t\tthis.oldTime = 0;\n\t\tthis.elapsedTime = 0;\n\n\t\tthis.running = false;\n\n\t}\n\n\tstart() {\n\n\t\tthis.startTime = now();\n\n\t\tthis.oldTime = this.startTime;\n\t\tthis.elapsedTime = 0;\n\t\tthis.running = true;\n\n\t}\n\n\tstop() {\n\n\t\tthis.getElapsedTime();\n\t\tthis.running = false;\n\t\tthis.autoStart = false;\n\n\t}\n\n\tgetElapsedTime() {\n\n\t\tthis.getDelta();\n\t\treturn this.elapsedTime;\n\n\t}\n\n\tgetDelta() {\n\n\t\tlet diff = 0;\n\n\t\tif ( this.autoStart && ! this.running ) {\n\n\t\t\tthis.start();\n\t\t\treturn 0;\n\n\t\t}\n\n\t\tif ( this.running ) {\n\n\t\t\tconst newTime = now();\n\n\t\t\tdiff = ( newTime - this.oldTime ) / 1000;\n\t\t\tthis.oldTime = newTime;\n\n\t\t\tthis.elapsedTime += diff;\n\n\t\t}\n\n\t\treturn diff;\n\n\t}\n\n}\n\nfunction now() {\n\n\treturn performance.now();\n\n}\n\nconst _position$1 = /*@__PURE__*/ new Vector3();\nconst _quaternion$1 = /*@__PURE__*/ new Quaternion();\nconst _scale$1 = /*@__PURE__*/ new Vector3();\nconst _orientation$1 = /*@__PURE__*/ new Vector3();\n\nclass AudioListener extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'AudioListener';\n\n\t\tthis.context = AudioContext.getContext();\n\n\t\tthis.gain = this.context.createGain();\n\t\tthis.gain.connect( this.context.destination );\n\n\t\tthis.filter = null;\n\n\t\tthis.timeDelta = 0;\n\n\t\t// private\n\n\t\tthis._clock = new Clock();\n\n\t}\n\n\tgetInput() {\n\n\t\treturn this.gain;\n\n\t}\n\n\tremoveFilter() {\n\n\t\tif ( this.filter !== null ) {\n\n\t\t\tthis.gain.disconnect( this.filter );\n\t\t\tthis.filter.disconnect( this.context.destination );\n\t\t\tthis.gain.connect( this.context.destination );\n\t\t\tthis.filter = null;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetFilter() {\n\n\t\treturn this.filter;\n\n\t}\n\n\tsetFilter( value ) {\n\n\t\tif ( this.filter !== null ) {\n\n\t\t\tthis.gain.disconnect( this.filter );\n\t\t\tthis.filter.disconnect( this.context.destination );\n\n\t\t} else {\n\n\t\t\tthis.gain.disconnect( this.context.destination );\n\n\t\t}\n\n\t\tthis.filter = value;\n\t\tthis.gain.connect( this.filter );\n\t\tthis.filter.connect( this.context.destination );\n\n\t\treturn this;\n\n\t}\n\n\tgetMasterVolume() {\n\n\t\treturn this.gain.gain.value;\n\n\t}\n\n\tsetMasterVolume( value ) {\n\n\t\tthis.gain.gain.setTargetAtTime( value, this.context.currentTime, 0.01 );\n\n\t\treturn this;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tconst listener = this.context.listener;\n\t\tconst up = this.up;\n\n\t\tthis.timeDelta = this._clock.getDelta();\n\n\t\tthis.matrixWorld.decompose( _position$1, _quaternion$1, _scale$1 );\n\n\t\t_orientation$1.set( 0, 0, - 1 ).applyQuaternion( _quaternion$1 );\n\n\t\tif ( listener.positionX ) {\n\n\t\t\t// code path for Chrome (see #14393)\n\n\t\t\tconst endTime = this.context.currentTime + this.timeDelta;\n\n\t\t\tlistener.positionX.linearRampToValueAtTime( _position$1.x, endTime );\n\t\t\tlistener.positionY.linearRampToValueAtTime( _position$1.y, endTime );\n\t\t\tlistener.positionZ.linearRampToValueAtTime( _position$1.z, endTime );\n\t\t\tlistener.forwardX.linearRampToValueAtTime( _orientation$1.x, endTime );\n\t\t\tlistener.forwardY.linearRampToValueAtTime( _orientation$1.y, endTime );\n\t\t\tlistener.forwardZ.linearRampToValueAtTime( _orientation$1.z, endTime );\n\t\t\tlistener.upX.linearRampToValueAtTime( up.x, endTime );\n\t\t\tlistener.upY.linearRampToValueAtTime( up.y, endTime );\n\t\t\tlistener.upZ.linearRampToValueAtTime( up.z, endTime );\n\n\t\t} else {\n\n\t\t\tlistener.setPosition( _position$1.x, _position$1.y, _position$1.z );\n\t\t\tlistener.setOrientation( _orientation$1.x, _orientation$1.y, _orientation$1.z, up.x, up.y, up.z );\n\n\t\t}\n\n\t}\n\n}\n\nclass Audio extends Object3D {\n\n\tconstructor( listener ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Audio';\n\n\t\tthis.listener = listener;\n\t\tthis.context = listener.context;\n\n\t\tthis.gain = this.context.createGain();\n\t\tthis.gain.connect( listener.getInput() );\n\n\t\tthis.autoplay = false;\n\n\t\tthis.buffer = null;\n\t\tthis.detune = 0;\n\t\tthis.loop = false;\n\t\tthis.loopStart = 0;\n\t\tthis.loopEnd = 0;\n\t\tthis.offset = 0;\n\t\tthis.duration = undefined;\n\t\tthis.playbackRate = 1;\n\t\tthis.isPlaying = false;\n\t\tthis.hasPlaybackControl = true;\n\t\tthis.source = null;\n\t\tthis.sourceType = 'empty';\n\n\t\tthis._startedAt = 0;\n\t\tthis._progress = 0;\n\t\tthis._connected = false;\n\n\t\tthis.filters = [];\n\n\t}\n\n\tgetOutput() {\n\n\t\treturn this.gain;\n\n\t}\n\n\tsetNodeSource( audioNode ) {\n\n\t\tthis.hasPlaybackControl = false;\n\t\tthis.sourceType = 'audioNode';\n\t\tthis.source = audioNode;\n\t\tthis.connect();\n\n\t\treturn this;\n\n\t}\n\n\tsetMediaElementSource( mediaElement ) {\n\n\t\tthis.hasPlaybackControl = false;\n\t\tthis.sourceType = 'mediaNode';\n\t\tthis.source = this.context.createMediaElementSource( mediaElement );\n\t\tthis.connect();\n\n\t\treturn this;\n\n\t}\n\n\tsetMediaStreamSource( mediaStream ) {\n\n\t\tthis.hasPlaybackControl = false;\n\t\tthis.sourceType = 'mediaStreamNode';\n\t\tthis.source = this.context.createMediaStreamSource( mediaStream );\n\t\tthis.connect();\n\n\t\treturn this;\n\n\t}\n\n\tsetBuffer( audioBuffer ) {\n\n\t\tthis.buffer = audioBuffer;\n\t\tthis.sourceType = 'buffer';\n\n\t\tif ( this.autoplay ) this.play();\n\n\t\treturn this;\n\n\t}\n\n\tplay( delay = 0 ) {\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: Audio is already playing.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis._startedAt = this.context.currentTime + delay;\n\n\t\tconst source = this.context.createBufferSource();\n\t\tsource.buffer = this.buffer;\n\t\tsource.loop = this.loop;\n\t\tsource.loopStart = this.loopStart;\n\t\tsource.loopEnd = this.loopEnd;\n\t\tsource.onended = this.onEnded.bind( this );\n\t\tsource.start( this._startedAt, this._progress + this.offset, this.duration );\n\n\t\tthis.isPlaying = true;\n\n\t\tthis.source = source;\n\n\t\tthis.setDetune( this.detune );\n\t\tthis.setPlaybackRate( this.playbackRate );\n\n\t\treturn this.connect();\n\n\t}\n\n\tpause() {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\t// update current progress\n\n\t\t\tthis._progress += Math.max( this.context.currentTime - this._startedAt, 0 ) * this.playbackRate;\n\n\t\t\tif ( this.loop === true ) {\n\n\t\t\t\t// ensure _progress does not exceed duration with looped audios\n\n\t\t\t\tthis._progress = this._progress % ( this.duration || this.buffer.duration );\n\n\t\t\t}\n\n\t\t\tthis.source.stop();\n\t\t\tthis.source.onended = null;\n\n\t\t\tthis.isPlaying = false;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tstop( delay = 0 ) {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis._progress = 0;\n\n\t\tif ( this.source !== null ) {\n\n\t\t\tthis.source.stop( this.context.currentTime + delay );\n\t\t\tthis.source.onended = null;\n\n\t\t}\n\n\t\tthis.isPlaying = false;\n\n\t\treturn this;\n\n\t}\n\n\tconnect() {\n\n\t\tif ( this.filters.length > 0 ) {\n\n\t\t\tthis.source.connect( this.filters[ 0 ] );\n\n\t\t\tfor ( let i = 1, l = this.filters.length; i < l; i ++ ) {\n\n\t\t\t\tthis.filters[ i - 1 ].connect( this.filters[ i ] );\n\n\t\t\t}\n\n\t\t\tthis.filters[ this.filters.length - 1 ].connect( this.getOutput() );\n\n\t\t} else {\n\n\t\t\tthis.source.connect( this.getOutput() );\n\n\t\t}\n\n\t\tthis._connected = true;\n\n\t\treturn this;\n\n\t}\n\n\tdisconnect() {\n\n\t\tif ( this._connected === false ) {\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( this.filters.length > 0 ) {\n\n\t\t\tthis.source.disconnect( this.filters[ 0 ] );\n\n\t\t\tfor ( let i = 1, l = this.filters.length; i < l; i ++ ) {\n\n\t\t\t\tthis.filters[ i - 1 ].disconnect( this.filters[ i ] );\n\n\t\t\t}\n\n\t\t\tthis.filters[ this.filters.length - 1 ].disconnect( this.getOutput() );\n\n\t\t} else {\n\n\t\t\tthis.source.disconnect( this.getOutput() );\n\n\t\t}\n\n\t\tthis._connected = false;\n\n\t\treturn this;\n\n\t}\n\n\tgetFilters() {\n\n\t\treturn this.filters;\n\n\t}\n\n\tsetFilters( value ) {\n\n\t\tif ( ! value ) value = [];\n\n\t\tif ( this._connected === true ) {\n\n\t\t\tthis.disconnect();\n\t\t\tthis.filters = value.slice();\n\t\t\tthis.connect();\n\n\t\t} else {\n\n\t\t\tthis.filters = value.slice();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetDetune( value ) {\n\n\t\tthis.detune = value;\n\n\t\tif ( this.isPlaying === true && this.source.detune !== undefined ) {\n\n\t\t\tthis.source.detune.setTargetAtTime( this.detune, this.context.currentTime, 0.01 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetDetune() {\n\n\t\treturn this.detune;\n\n\t}\n\n\tgetFilter() {\n\n\t\treturn this.getFilters()[ 0 ];\n\n\t}\n\n\tsetFilter( filter ) {\n\n\t\treturn this.setFilters( filter ? [ filter ] : [] );\n\n\t}\n\n\tsetPlaybackRate( value ) {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis.playbackRate = value;\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\tthis.source.playbackRate.setTargetAtTime( this.playbackRate, this.context.currentTime, 0.01 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetPlaybackRate() {\n\n\t\treturn this.playbackRate;\n\n\t}\n\n\tonEnded() {\n\n\t\tthis.isPlaying = false;\n\t\tthis._progress = 0;\n\n\t}\n\n\tgetLoop() {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn this.loop;\n\n\t}\n\n\tsetLoop( value ) {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis.loop = value;\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\tthis.source.loop = this.loop;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetLoopStart( value ) {\n\n\t\tthis.loopStart = value;\n\n\t\treturn this;\n\n\t}\n\n\tsetLoopEnd( value ) {\n\n\t\tthis.loopEnd = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetVolume() {\n\n\t\treturn this.gain.gain.value;\n\n\t}\n\n\tsetVolume( value ) {\n\n\t\tthis.gain.gain.setTargetAtTime( value, this.context.currentTime, 0.01 );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tif ( source.sourceType !== 'buffer' ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: Audio source type cannot be copied.' );\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tthis.autoplay = source.autoplay;\n\n\t\tthis.buffer = source.buffer;\n\t\tthis.detune = source.detune;\n\t\tthis.loop = source.loop;\n\t\tthis.loopStart = source.loopStart;\n\t\tthis.loopEnd = source.loopEnd;\n\t\tthis.offset = source.offset;\n\t\tthis.duration = source.duration;\n\t\tthis.playbackRate = source.playbackRate;\n\t\tthis.hasPlaybackControl = source.hasPlaybackControl;\n\t\tthis.sourceType = source.sourceType;\n\n\t\tthis.filters = source.filters.slice();\n\n\t\treturn this;\n\n\t}\n\n\tclone( recursive ) {\n\n\t\treturn new this.constructor( this.listener ).copy( this, recursive );\n\n\t}\n\n}\n\nconst _position = /*@__PURE__*/ new Vector3();\nconst _quaternion = /*@__PURE__*/ new Quaternion();\nconst _scale = /*@__PURE__*/ new Vector3();\nconst _orientation = /*@__PURE__*/ new Vector3();\n\nclass PositionalAudio extends Audio {\n\n\tconstructor( listener ) {\n\n\t\tsuper( listener );\n\n\t\tthis.panner = this.context.createPanner();\n\t\tthis.panner.panningModel = 'HRTF';\n\t\tthis.panner.connect( this.gain );\n\n\t}\n\n\tconnect() {\n\n\t\tsuper.connect();\n\n\t\tthis.panner.connect( this.gain );\n\n\t}\n\n\tdisconnect() {\n\n\t\tsuper.disconnect();\n\n\t\tthis.panner.disconnect( this.gain );\n\n\t}\n\n\tgetOutput() {\n\n\t\treturn this.panner;\n\n\t}\n\n\tgetRefDistance() {\n\n\t\treturn this.panner.refDistance;\n\n\t}\n\n\tsetRefDistance( value ) {\n\n\t\tthis.panner.refDistance = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetRolloffFactor() {\n\n\t\treturn this.panner.rolloffFactor;\n\n\t}\n\n\tsetRolloffFactor( value ) {\n\n\t\tthis.panner.rolloffFactor = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetDistanceModel() {\n\n\t\treturn this.panner.distanceModel;\n\n\t}\n\n\tsetDistanceModel( value ) {\n\n\t\tthis.panner.distanceModel = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetMaxDistance() {\n\n\t\treturn this.panner.maxDistance;\n\n\t}\n\n\tsetMaxDistance( value ) {\n\n\t\tthis.panner.maxDistance = value;\n\n\t\treturn this;\n\n\t}\n\n\tsetDirectionalCone( coneInnerAngle, coneOuterAngle, coneOuterGain ) {\n\n\t\tthis.panner.coneInnerAngle = coneInnerAngle;\n\t\tthis.panner.coneOuterAngle = coneOuterAngle;\n\t\tthis.panner.coneOuterGain = coneOuterGain;\n\n\t\treturn this;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tif ( this.hasPlaybackControl === true && this.isPlaying === false ) return;\n\n\t\tthis.matrixWorld.decompose( _position, _quaternion, _scale );\n\n\t\t_orientation.set( 0, 0, 1 ).applyQuaternion( _quaternion );\n\n\t\tconst panner = this.panner;\n\n\t\tif ( panner.positionX ) {\n\n\t\t\t// code path for Chrome and Firefox (see #14393)\n\n\t\t\tconst endTime = this.context.currentTime + this.listener.timeDelta;\n\n\t\t\tpanner.positionX.linearRampToValueAtTime( _position.x, endTime );\n\t\t\tpanner.positionY.linearRampToValueAtTime( _position.y, endTime );\n\t\t\tpanner.positionZ.linearRampToValueAtTime( _position.z, endTime );\n\t\t\tpanner.orientationX.linearRampToValueAtTime( _orientation.x, endTime );\n\t\t\tpanner.orientationY.linearRampToValueAtTime( _orientation.y, endTime );\n\t\t\tpanner.orientationZ.linearRampToValueAtTime( _orientation.z, endTime );\n\n\t\t} else {\n\n\t\t\tpanner.setPosition( _position.x, _position.y, _position.z );\n\t\t\tpanner.setOrientation( _orientation.x, _orientation.y, _orientation.z );\n\n\t\t}\n\n\t}\n\n}\n\nclass AudioAnalyser {\n\n\tconstructor( audio, fftSize = 2048 ) {\n\n\t\tthis.analyser = audio.context.createAnalyser();\n\t\tthis.analyser.fftSize = fftSize;\n\n\t\tthis.data = new Uint8Array( this.analyser.frequencyBinCount );\n\n\t\taudio.getOutput().connect( this.analyser );\n\n\t}\n\n\n\tgetFrequencyData() {\n\n\t\tthis.analyser.getByteFrequencyData( this.data );\n\n\t\treturn this.data;\n\n\t}\n\n\tgetAverageFrequency() {\n\n\t\tlet value = 0;\n\t\tconst data = this.getFrequencyData();\n\n\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\tvalue += data[ i ];\n\n\t\t}\n\n\t\treturn value / data.length;\n\n\t}\n\n}\n\nclass PropertyMixer {\n\n\tconstructor( binding, typeName, valueSize ) {\n\n\t\tthis.binding = binding;\n\t\tthis.valueSize = valueSize;\n\n\t\tlet mixFunction,\n\t\t\tmixFunctionAdditive,\n\t\t\tsetIdentity;\n\n\t\t// buffer layout: [ incoming | accu0 | accu1 | orig | addAccu | (optional work) ]\n\t\t//\n\t\t// interpolators can use .buffer as their .result\n\t\t// the data then goes to 'incoming'\n\t\t//\n\t\t// 'accu0' and 'accu1' are used frame-interleaved for\n\t\t// the cumulative result and are compared to detect\n\t\t// changes\n\t\t//\n\t\t// 'orig' stores the original state of the property\n\t\t//\n\t\t// 'add' is used for additive cumulative results\n\t\t//\n\t\t// 'work' is optional and is only present for quaternion types. It is used\n\t\t// to store intermediate quaternion multiplication results\n\n\t\tswitch ( typeName ) {\n\n\t\t\tcase 'quaternion':\n\t\t\t\tmixFunction = this._slerp;\n\t\t\t\tmixFunctionAdditive = this._slerpAdditive;\n\t\t\t\tsetIdentity = this._setAdditiveIdentityQuaternion;\n\n\t\t\t\tthis.buffer = new Float64Array( valueSize * 6 );\n\t\t\t\tthis._workIndex = 5;\n\t\t\t\tbreak;\n\n\t\t\tcase 'string':\n\t\t\tcase 'bool':\n\t\t\t\tmixFunction = this._select;\n\n\t\t\t\t// Use the regular mix function and for additive on these types,\n\t\t\t\t// additive is not relevant for non-numeric types\n\t\t\t\tmixFunctionAdditive = this._select;\n\n\t\t\t\tsetIdentity = this._setAdditiveIdentityOther;\n\n\t\t\t\tthis.buffer = new Array( valueSize * 5 );\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tmixFunction = this._lerp;\n\t\t\t\tmixFunctionAdditive = this._lerpAdditive;\n\t\t\t\tsetIdentity = this._setAdditiveIdentityNumeric;\n\n\t\t\t\tthis.buffer = new Float64Array( valueSize * 5 );\n\n\t\t}\n\n\t\tthis._mixBufferRegion = mixFunction;\n\t\tthis._mixBufferRegionAdditive = mixFunctionAdditive;\n\t\tthis._setIdentity = setIdentity;\n\t\tthis._origIndex = 3;\n\t\tthis._addIndex = 4;\n\n\t\tthis.cumulativeWeight = 0;\n\t\tthis.cumulativeWeightAdditive = 0;\n\n\t\tthis.useCount = 0;\n\t\tthis.referenceCount = 0;\n\n\t}\n\n\t// accumulate data in the 'incoming' region into 'accu'\n\taccumulate( accuIndex, weight ) {\n\n\t\t// note: happily accumulating nothing when weight = 0, the caller knows\n\t\t// the weight and shouldn't have made the call in the first place\n\n\t\tconst buffer = this.buffer,\n\t\t\tstride = this.valueSize,\n\t\t\toffset = accuIndex * stride + stride;\n\n\t\tlet currentWeight = this.cumulativeWeight;\n\n\t\tif ( currentWeight === 0 ) {\n\n\t\t\t// accuN := incoming * weight\n\n\t\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\t\tbuffer[ offset + i ] = buffer[ i ];\n\n\t\t\t}\n\n\t\t\tcurrentWeight = weight;\n\n\t\t} else {\n\n\t\t\t// accuN := accuN + incoming * weight\n\n\t\t\tcurrentWeight += weight;\n\t\t\tconst mix = weight / currentWeight;\n\t\t\tthis._mixBufferRegion( buffer, offset, 0, mix, stride );\n\n\t\t}\n\n\t\tthis.cumulativeWeight = currentWeight;\n\n\t}\n\n\t// accumulate data in the 'incoming' region into 'add'\n\taccumulateAdditive( weight ) {\n\n\t\tconst buffer = this.buffer,\n\t\t\tstride = this.valueSize,\n\t\t\toffset = stride * this._addIndex;\n\n\t\tif ( this.cumulativeWeightAdditive === 0 ) {\n\n\t\t\t// add = identity\n\n\t\t\tthis._setIdentity();\n\n\t\t}\n\n\t\t// add := add + incoming * weight\n\n\t\tthis._mixBufferRegionAdditive( buffer, offset, 0, weight, stride );\n\t\tthis.cumulativeWeightAdditive += weight;\n\n\t}\n\n\t// apply the state of 'accu' to the binding when accus differ\n\tapply( accuIndex ) {\n\n\t\tconst stride = this.valueSize,\n\t\t\tbuffer = this.buffer,\n\t\t\toffset = accuIndex * stride + stride,\n\n\t\t\tweight = this.cumulativeWeight,\n\t\t\tweightAdditive = this.cumulativeWeightAdditive,\n\n\t\t\tbinding = this.binding;\n\n\t\tthis.cumulativeWeight = 0;\n\t\tthis.cumulativeWeightAdditive = 0;\n\n\t\tif ( weight < 1 ) {\n\n\t\t\t// accuN := accuN + original * ( 1 - cumulativeWeight )\n\n\t\t\tconst originalValueOffset = stride * this._origIndex;\n\n\t\t\tthis._mixBufferRegion(\n\t\t\t\tbuffer, offset, originalValueOffset, 1 - weight, stride );\n\n\t\t}\n\n\t\tif ( weightAdditive > 0 ) {\n\n\t\t\t// accuN := accuN + additive accuN\n\n\t\t\tthis._mixBufferRegionAdditive( buffer, offset, this._addIndex * stride, 1, stride );\n\n\t\t}\n\n\t\tfor ( let i = stride, e = stride + stride; i !== e; ++ i ) {\n\n\t\t\tif ( buffer[ i ] !== buffer[ i + stride ] ) {\n\n\t\t\t\t// value has changed -> update scene graph\n\n\t\t\t\tbinding.setValue( buffer, offset );\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t// remember the state of the bound property and copy it to both accus\n\tsaveOriginalState() {\n\n\t\tconst binding = this.binding;\n\n\t\tconst buffer = this.buffer,\n\t\t\tstride = this.valueSize,\n\n\t\t\toriginalValueOffset = stride * this._origIndex;\n\n\t\tbinding.getValue( buffer, originalValueOffset );\n\n\t\t// accu[0..1] := orig -- initially detect changes against the original\n\t\tfor ( let i = stride, e = originalValueOffset; i !== e; ++ i ) {\n\n\t\t\tbuffer[ i ] = buffer[ originalValueOffset + ( i % stride ) ];\n\n\t\t}\n\n\t\t// Add to identity for additive\n\t\tthis._setIdentity();\n\n\t\tthis.cumulativeWeight = 0;\n\t\tthis.cumulativeWeightAdditive = 0;\n\n\t}\n\n\t// apply the state previously taken via 'saveOriginalState' to the binding\n\trestoreOriginalState() {\n\n\t\tconst originalValueOffset = this.valueSize * 3;\n\t\tthis.binding.setValue( this.buffer, originalValueOffset );\n\n\t}\n\n\t_setAdditiveIdentityNumeric() {\n\n\t\tconst startIndex = this._addIndex * this.valueSize;\n\t\tconst endIndex = startIndex + this.valueSize;\n\n\t\tfor ( let i = startIndex; i < endIndex; i ++ ) {\n\n\t\t\tthis.buffer[ i ] = 0;\n\n\t\t}\n\n\t}\n\n\t_setAdditiveIdentityQuaternion() {\n\n\t\tthis._setAdditiveIdentityNumeric();\n\t\tthis.buffer[ this._addIndex * this.valueSize + 3 ] = 1;\n\n\t}\n\n\t_setAdditiveIdentityOther() {\n\n\t\tconst startIndex = this._origIndex * this.valueSize;\n\t\tconst targetIndex = this._addIndex * this.valueSize;\n\n\t\tfor ( let i = 0; i < this.valueSize; i ++ ) {\n\n\t\t\tthis.buffer[ targetIndex + i ] = this.buffer[ startIndex + i ];\n\n\t\t}\n\n\t}\n\n\n\t// mix functions\n\n\t_select( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tif ( t >= 0.5 ) {\n\n\t\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\t\tbuffer[ dstOffset + i ] = buffer[ srcOffset + i ];\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_slerp( buffer, dstOffset, srcOffset, t ) {\n\n\t\tQuaternion.slerpFlat( buffer, dstOffset, buffer, dstOffset, buffer, srcOffset, t );\n\n\t}\n\n\t_slerpAdditive( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tconst workOffset = this._workIndex * stride;\n\n\t\t// Store result in intermediate buffer offset\n\t\tQuaternion.multiplyQuaternionsFlat( buffer, workOffset, buffer, dstOffset, buffer, srcOffset );\n\n\t\t// Slerp to the intermediate result\n\t\tQuaternion.slerpFlat( buffer, dstOffset, buffer, dstOffset, buffer, workOffset, t );\n\n\t}\n\n\t_lerp( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tconst s = 1 - t;\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tconst j = dstOffset + i;\n\n\t\t\tbuffer[ j ] = buffer[ j ] * s + buffer[ srcOffset + i ] * t;\n\n\t\t}\n\n\t}\n\n\t_lerpAdditive( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tconst j = dstOffset + i;\n\n\t\t\tbuffer[ j ] = buffer[ j ] + buffer[ srcOffset + i ] * t;\n\n\t\t}\n\n\t}\n\n}\n\n// Characters [].:/ are reserved for track binding syntax.\nconst _RESERVED_CHARS_RE = '\\\\[\\\\]\\\\.:\\\\/';\nconst _reservedRe = new RegExp( '[' + _RESERVED_CHARS_RE + ']', 'g' );\n\n// Attempts to allow node names from any language. ES5's `\\w` regexp matches\n// only latin characters, and the unicode \\p{L} is not yet supported. So\n// instead, we exclude reserved characters and match everything else.\nconst _wordChar = '[^' + _RESERVED_CHARS_RE + ']';\nconst _wordCharOrDot = '[^' + _RESERVED_CHARS_RE.replace( '\\\\.', '' ) + ']';\n\n// Parent directories, delimited by '/' or ':'. Currently unused, but must\n// be matched to parse the rest of the track name.\nconst _directoryRe = /*@__PURE__*/ /((?:WC+[\\/:])*)/.source.replace( 'WC', _wordChar );\n\n// Target node. May contain word characters (a-zA-Z0-9_) and '.' or '-'.\nconst _nodeRe = /*@__PURE__*/ /(WCOD+)?/.source.replace( 'WCOD', _wordCharOrDot );\n\n// Object on target node, and accessor. May not contain reserved\n// characters. Accessor may contain any character except closing bracket.\nconst _objectRe = /*@__PURE__*/ /(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace( 'WC', _wordChar );\n\n// Property and accessor. May not contain reserved characters. Accessor may\n// contain any non-bracket characters.\nconst _propertyRe = /*@__PURE__*/ /\\.(WC+)(?:\\[(.+)\\])?/.source.replace( 'WC', _wordChar );\n\nconst _trackRe = new RegExp( ''\n\t+ '^'\n\t+ _directoryRe\n\t+ _nodeRe\n\t+ _objectRe\n\t+ _propertyRe\n\t+ '$'\n);\n\nconst _supportedObjectNames = [ 'material', 'materials', 'bones', 'map' ];\n\nclass Composite {\n\n\tconstructor( targetGroup, path, optionalParsedPath ) {\n\n\t\tconst parsedPath = optionalParsedPath || PropertyBinding.parseTrackName( path );\n\n\t\tthis._targetGroup = targetGroup;\n\t\tthis._bindings = targetGroup.subscribe_( path, parsedPath );\n\n\t}\n\n\tgetValue( array, offset ) {\n\n\t\tthis.bind(); // bind all binding\n\n\t\tconst firstValidIndex = this._targetGroup.nCachedObjects_,\n\t\t\tbinding = this._bindings[ firstValidIndex ];\n\n\t\t// and only call .getValue on the first\n\t\tif ( binding !== undefined ) binding.getValue( array, offset );\n\n\t}\n\n\tsetValue( array, offset ) {\n\n\t\tconst bindings = this._bindings;\n\n\t\tfor ( let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tbindings[ i ].setValue( array, offset );\n\n\t\t}\n\n\t}\n\n\tbind() {\n\n\t\tconst bindings = this._bindings;\n\n\t\tfor ( let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tbindings[ i ].bind();\n\n\t\t}\n\n\t}\n\n\tunbind() {\n\n\t\tconst bindings = this._bindings;\n\n\t\tfor ( let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tbindings[ i ].unbind();\n\n\t\t}\n\n\t}\n\n}\n\n// Note: This class uses a State pattern on a per-method basis:\n// 'bind' sets 'this.getValue' / 'setValue' and shadows the\n// prototype version of these methods with one that represents\n// the bound state. When the property is not found, the methods\n// become no-ops.\nclass PropertyBinding {\n\n\tconstructor( rootNode, path, parsedPath ) {\n\n\t\tthis.path = path;\n\t\tthis.parsedPath = parsedPath || PropertyBinding.parseTrackName( path );\n\n\t\tthis.node = PropertyBinding.findNode( rootNode, this.parsedPath.nodeName );\n\n\t\tthis.rootNode = rootNode;\n\n\t\t// initial state of these methods that calls 'bind'\n\t\tthis.getValue = this._getValue_unbound;\n\t\tthis.setValue = this._setValue_unbound;\n\n\t}\n\n\n\tstatic create( root, path, parsedPath ) {\n\n\t\tif ( ! ( root && root.isAnimationObjectGroup ) ) {\n\n\t\t\treturn new PropertyBinding( root, path, parsedPath );\n\n\t\t} else {\n\n\t\t\treturn new PropertyBinding.Composite( root, path, parsedPath );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Replaces spaces with underscores and removes unsupported characters from\n\t * node names, to ensure compatibility with parseTrackName().\n\t *\n\t * @param {string} name Node name to be sanitized.\n\t * @return {string}\n\t */\n\tstatic sanitizeNodeName( name ) {\n\n\t\treturn name.replace( /\\s/g, '_' ).replace( _reservedRe, '' );\n\n\t}\n\n\tstatic parseTrackName( trackName ) {\n\n\t\tconst matches = _trackRe.exec( trackName );\n\n\t\tif ( matches === null ) {\n\n\t\t\tthrow new Error( 'PropertyBinding: Cannot parse trackName: ' + trackName );\n\n\t\t}\n\n\t\tconst results = {\n\t\t\t// directoryName: matches[ 1 ], // (tschw) currently unused\n\t\t\tnodeName: matches[ 2 ],\n\t\t\tobjectName: matches[ 3 ],\n\t\t\tobjectIndex: matches[ 4 ],\n\t\t\tpropertyName: matches[ 5 ], // required\n\t\t\tpropertyIndex: matches[ 6 ]\n\t\t};\n\n\t\tconst lastDot = results.nodeName && results.nodeName.lastIndexOf( '.' );\n\n\t\tif ( lastDot !== undefined && lastDot !== - 1 ) {\n\n\t\t\tconst objectName = results.nodeName.substring( lastDot + 1 );\n\n\t\t\t// Object names must be checked against an allowlist. Otherwise, there\n\t\t\t// is no way to parse 'foo.bar.baz': 'baz' must be a property, but\n\t\t\t// 'bar' could be the objectName, or part of a nodeName (which can\n\t\t\t// include '.' characters).\n\t\t\tif ( _supportedObjectNames.indexOf( objectName ) !== - 1 ) {\n\n\t\t\t\tresults.nodeName = results.nodeName.substring( 0, lastDot );\n\t\t\t\tresults.objectName = objectName;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( results.propertyName === null || results.propertyName.length === 0 ) {\n\n\t\t\tthrow new Error( 'PropertyBinding: can not parse propertyName from trackName: ' + trackName );\n\n\t\t}\n\n\t\treturn results;\n\n\t}\n\n\tstatic findNode( root, nodeName ) {\n\n\t\tif ( nodeName === undefined || nodeName === '' || nodeName === '.' || nodeName === - 1 || nodeName === root.name || nodeName === root.uuid ) {\n\n\t\t\treturn root;\n\n\t\t}\n\n\t\t// search into skeleton bones.\n\t\tif ( root.skeleton ) {\n\n\t\t\tconst bone = root.skeleton.getBoneByName( nodeName );\n\n\t\t\tif ( bone !== undefined ) {\n\n\t\t\t\treturn bone;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// search into node subtree.\n\t\tif ( root.children ) {\n\n\t\t\tconst searchNodeSubtree = function ( children ) {\n\n\t\t\t\tfor ( let i = 0; i < children.length; i ++ ) {\n\n\t\t\t\t\tconst childNode = children[ i ];\n\n\t\t\t\t\tif ( childNode.name === nodeName || childNode.uuid === nodeName ) {\n\n\t\t\t\t\t\treturn childNode;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst result = searchNodeSubtree( childNode.children );\n\n\t\t\t\t\tif ( result ) return result;\n\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\n\t\t\t};\n\n\t\t\tconst subTreeNode = searchNodeSubtree( root.children );\n\n\t\t\tif ( subTreeNode ) {\n\n\t\t\t\treturn subTreeNode;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\t// these are used to \"bind\" a nonexistent property\n\t_getValue_unavailable() {}\n\t_setValue_unavailable() {}\n\n\t// Getters\n\n\t_getValue_direct( buffer, offset ) {\n\n\t\tbuffer[ offset ] = this.targetObject[ this.propertyName ];\n\n\t}\n\n\t_getValue_array( buffer, offset ) {\n\n\t\tconst source = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = source.length; i !== n; ++ i ) {\n\n\t\t\tbuffer[ offset ++ ] = source[ i ];\n\n\t\t}\n\n\t}\n\n\t_getValue_arrayElement( buffer, offset ) {\n\n\t\tbuffer[ offset ] = this.resolvedProperty[ this.propertyIndex ];\n\n\t}\n\n\t_getValue_toArray( buffer, offset ) {\n\n\t\tthis.resolvedProperty.toArray( buffer, offset );\n\n\t}\n\n\t// Direct\n\n\t_setValue_direct( buffer, offset ) {\n\n\t\tthis.targetObject[ this.propertyName ] = buffer[ offset ];\n\n\t}\n\n\t_setValue_direct_setNeedsUpdate( buffer, offset ) {\n\n\t\tthis.targetObject[ this.propertyName ] = buffer[ offset ];\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_direct_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tthis.targetObject[ this.propertyName ] = buffer[ offset ];\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t// EntireArray\n\n\t_setValue_array( buffer, offset ) {\n\n\t\tconst dest = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = dest.length; i !== n; ++ i ) {\n\n\t\t\tdest[ i ] = buffer[ offset ++ ];\n\n\t\t}\n\n\t}\n\n\t_setValue_array_setNeedsUpdate( buffer, offset ) {\n\n\t\tconst dest = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = dest.length; i !== n; ++ i ) {\n\n\t\t\tdest[ i ] = buffer[ offset ++ ];\n\n\t\t}\n\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_array_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tconst dest = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = dest.length; i !== n; ++ i ) {\n\n\t\t\tdest[ i ] = buffer[ offset ++ ];\n\n\t\t}\n\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t// ArrayElement\n\n\t_setValue_arrayElement( buffer, offset ) {\n\n\t\tthis.resolvedProperty[ this.propertyIndex ] = buffer[ offset ];\n\n\t}\n\n\t_setValue_arrayElement_setNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty[ this.propertyIndex ] = buffer[ offset ];\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_arrayElement_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty[ this.propertyIndex ] = buffer[ offset ];\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t// HasToFromArray\n\n\t_setValue_fromArray( buffer, offset ) {\n\n\t\tthis.resolvedProperty.fromArray( buffer, offset );\n\n\t}\n\n\t_setValue_fromArray_setNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty.fromArray( buffer, offset );\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_fromArray_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty.fromArray( buffer, offset );\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t_getValue_unbound( targetArray, offset ) {\n\n\t\tthis.bind();\n\t\tthis.getValue( targetArray, offset );\n\n\t}\n\n\t_setValue_unbound( sourceArray, offset ) {\n\n\t\tthis.bind();\n\t\tthis.setValue( sourceArray, offset );\n\n\t}\n\n\t// create getter / setter pair for a property in the scene graph\n\tbind() {\n\n\t\tlet targetObject = this.node;\n\t\tconst parsedPath = this.parsedPath;\n\n\t\tconst objectName = parsedPath.objectName;\n\t\tconst propertyName = parsedPath.propertyName;\n\t\tlet propertyIndex = parsedPath.propertyIndex;\n\n\t\tif ( ! targetObject ) {\n\n\t\t\ttargetObject = PropertyBinding.findNode( this.rootNode, parsedPath.nodeName );\n\n\t\t\tthis.node = targetObject;\n\n\t\t}\n\n\t\t// set fail state so we can just 'return' on error\n\t\tthis.getValue = this._getValue_unavailable;\n\t\tthis.setValue = this._setValue_unavailable;\n\n\t\t// ensure there is a value node\n\t\tif ( ! targetObject ) {\n\n\t\t\tconsole.warn( 'THREE.PropertyBinding: No target node found for track: ' + this.path + '.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( objectName ) {\n\n\t\t\tlet objectIndex = parsedPath.objectIndex;\n\n\t\t\t// special cases were we need to reach deeper into the hierarchy to get the face materials....\n\t\t\tswitch ( objectName ) {\n\n\t\t\t\tcase 'materials':\n\n\t\t\t\t\tif ( ! targetObject.material ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to material as node does not have a material.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! targetObject.material.materials ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttargetObject = targetObject.material.materials;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'bones':\n\n\t\t\t\t\tif ( ! targetObject.skeleton ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// potential future optimization: skip this if propertyIndex is already an integer\n\t\t\t\t\t// and convert the integer string to a true integer.\n\n\t\t\t\t\ttargetObject = targetObject.skeleton.bones;\n\n\t\t\t\t\t// support resolving morphTarget names into indices.\n\t\t\t\t\tfor ( let i = 0; i < targetObject.length; i ++ ) {\n\n\t\t\t\t\t\tif ( targetObject[ i ].name === objectIndex ) {\n\n\t\t\t\t\t\t\tobjectIndex = i;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'map':\n\n\t\t\t\t\tif ( 'map' in targetObject ) {\n\n\t\t\t\t\t\ttargetObject = targetObject.map;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! targetObject.material ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to material as node does not have a material.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! targetObject.material.map ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttargetObject = targetObject.material.map;\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tif ( targetObject[ objectName ] === undefined ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to objectName of node undefined.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttargetObject = targetObject[ objectName ];\n\n\t\t\t}\n\n\n\t\t\tif ( objectIndex !== undefined ) {\n\n\t\t\t\tif ( targetObject[ objectIndex ] === undefined ) {\n\n\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.', this, targetObject );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\ttargetObject = targetObject[ objectIndex ];\n\n\t\t\t}\n\n\t\t}\n\n\t\t// resolve property\n\t\tconst nodeProperty = targetObject[ propertyName ];\n\n\t\tif ( nodeProperty === undefined ) {\n\n\t\t\tconst nodeName = parsedPath.nodeName;\n\n\t\t\tconsole.error( 'THREE.PropertyBinding: Trying to update property for track: ' + nodeName +\n\t\t\t\t'.' + propertyName + ' but it wasn\\'t found.', targetObject );\n\t\t\treturn;\n\n\t\t}\n\n\t\t// determine versioning scheme\n\t\tlet versioning = this.Versioning.None;\n\n\t\tthis.targetObject = targetObject;\n\n\t\tif ( targetObject.isMaterial === true ) {\n\n\t\t\tversioning = this.Versioning.NeedsUpdate;\n\n\t\t} else if ( targetObject.isObject3D === true ) {\n\n\t\t\tversioning = this.Versioning.MatrixWorldNeedsUpdate;\n\n\t\t}\n\n\t\t// determine how the property gets bound\n\t\tlet bindingType = this.BindingType.Direct;\n\n\t\tif ( propertyIndex !== undefined ) {\n\n\t\t\t// access a sub element of the property array (only primitives are supported right now)\n\n\t\t\tif ( propertyName === 'morphTargetInfluences' ) {\n\n\t\t\t\t// potential optimization, skip this if propertyIndex is already an integer, and convert the integer string to a true integer.\n\n\t\t\t\t// support resolving morphTarget names into indices.\n\t\t\t\tif ( ! targetObject.geometry ) {\n\n\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.', this );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tif ( ! targetObject.geometry.morphAttributes ) {\n\n\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.', this );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tif ( targetObject.morphTargetDictionary[ propertyIndex ] !== undefined ) {\n\n\t\t\t\t\tpropertyIndex = targetObject.morphTargetDictionary[ propertyIndex ];\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tbindingType = this.BindingType.ArrayElement;\n\n\t\t\tthis.resolvedProperty = nodeProperty;\n\t\t\tthis.propertyIndex = propertyIndex;\n\n\t\t} else if ( nodeProperty.fromArray !== undefined && nodeProperty.toArray !== undefined ) {\n\n\t\t\t// must use copy for Object3D.Euler/Quaternion\n\n\t\t\tbindingType = this.BindingType.HasFromToArray;\n\n\t\t\tthis.resolvedProperty = nodeProperty;\n\n\t\t} else if ( Array.isArray( nodeProperty ) ) {\n\n\t\t\tbindingType = this.BindingType.EntireArray;\n\n\t\t\tthis.resolvedProperty = nodeProperty;\n\n\t\t} else {\n\n\t\t\tthis.propertyName = propertyName;\n\n\t\t}\n\n\t\t// select getter / setter\n\t\tthis.getValue = this.GetterByBindingType[ bindingType ];\n\t\tthis.setValue = this.SetterByBindingTypeAndVersioning[ bindingType ][ versioning ];\n\n\t}\n\n\tunbind() {\n\n\t\tthis.node = null;\n\n\t\t// back to the prototype version of getValue / setValue\n\t\t// note: avoiding to mutate the shape of 'this' via 'delete'\n\t\tthis.getValue = this._getValue_unbound;\n\t\tthis.setValue = this._setValue_unbound;\n\n\t}\n\n}\n\nPropertyBinding.Composite = Composite;\n\nPropertyBinding.prototype.BindingType = {\n\tDirect: 0,\n\tEntireArray: 1,\n\tArrayElement: 2,\n\tHasFromToArray: 3\n};\n\nPropertyBinding.prototype.Versioning = {\n\tNone: 0,\n\tNeedsUpdate: 1,\n\tMatrixWorldNeedsUpdate: 2\n};\n\nPropertyBinding.prototype.GetterByBindingType = [\n\n\tPropertyBinding.prototype._getValue_direct,\n\tPropertyBinding.prototype._getValue_array,\n\tPropertyBinding.prototype._getValue_arrayElement,\n\tPropertyBinding.prototype._getValue_toArray,\n\n];\n\nPropertyBinding.prototype.SetterByBindingTypeAndVersioning = [\n\n\t[\n\t\t// Direct\n\t\tPropertyBinding.prototype._setValue_direct,\n\t\tPropertyBinding.prototype._setValue_direct_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_direct_setMatrixWorldNeedsUpdate,\n\n\t], [\n\n\t\t// EntireArray\n\n\t\tPropertyBinding.prototype._setValue_array,\n\t\tPropertyBinding.prototype._setValue_array_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_array_setMatrixWorldNeedsUpdate,\n\n\t], [\n\n\t\t// ArrayElement\n\t\tPropertyBinding.prototype._setValue_arrayElement,\n\t\tPropertyBinding.prototype._setValue_arrayElement_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate,\n\n\t], [\n\n\t\t// HasToFromArray\n\t\tPropertyBinding.prototype._setValue_fromArray,\n\t\tPropertyBinding.prototype._setValue_fromArray_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate,\n\n\t]\n\n];\n\n/**\n *\n * A group of objects that receives a shared animation state.\n *\n * Usage:\n *\n * - Add objects you would otherwise pass as 'root' to the\n * constructor or the .clipAction method of AnimationMixer.\n *\n * - Instead pass this object as 'root'.\n *\n * - You can also add and remove objects later when the mixer\n * is running.\n *\n * Note:\n *\n * Objects of this class appear as one object to the mixer,\n * so cache control of the individual objects must be done\n * on the group.\n *\n * Limitation:\n *\n * - The animated properties must be compatible among the\n * all objects in the group.\n *\n * - A single property can either be controlled through a\n * target group or directly, but not both.\n */\n\nclass AnimationObjectGroup {\n\n\tconstructor() {\n\n\t\tthis.isAnimationObjectGroup = true;\n\n\t\tthis.uuid = generateUUID();\n\n\t\t// cached objects followed by the active ones\n\t\tthis._objects = Array.prototype.slice.call( arguments );\n\n\t\tthis.nCachedObjects_ = 0; // threshold\n\t\t// note: read by PropertyBinding.Composite\n\n\t\tconst indices = {};\n\t\tthis._indicesByUUID = indices; // for bookkeeping\n\n\t\tfor ( let i = 0, n = arguments.length; i !== n; ++ i ) {\n\n\t\t\tindices[ arguments[ i ].uuid ] = i;\n\n\t\t}\n\n\t\tthis._paths = []; // inside: string\n\t\tthis._parsedPaths = []; // inside: { we don't care, here }\n\t\tthis._bindings = []; // inside: Array< PropertyBinding >\n\t\tthis._bindingsIndicesByPath = {}; // inside: indices in these arrays\n\n\t\tconst scope = this;\n\n\t\tthis.stats = {\n\n\t\t\tobjects: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._objects.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn this.total - scope.nCachedObjects_;\n\n\t\t\t\t}\n\t\t\t},\n\t\t\tget bindingsPerObject() {\n\n\t\t\t\treturn scope._bindings.length;\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\tadd() {\n\n\t\tconst objects = this._objects,\n\t\t\tindicesByUUID = this._indicesByUUID,\n\t\t\tpaths = this._paths,\n\t\t\tparsedPaths = this._parsedPaths,\n\t\t\tbindings = this._bindings,\n\t\t\tnBindings = bindings.length;\n\n\t\tlet knownObject = undefined,\n\t\t\tnObjects = objects.length,\n\t\t\tnCachedObjects = this.nCachedObjects_;\n\n\t\tfor ( let i = 0, n = arguments.length; i !== n; ++ i ) {\n\n\t\t\tconst object = arguments[ i ],\n\t\t\t\tuuid = object.uuid;\n\t\t\tlet index = indicesByUUID[ uuid ];\n\n\t\t\tif ( index === undefined ) {\n\n\t\t\t\t// unknown object -> add it to the ACTIVE region\n\n\t\t\t\tindex = nObjects ++;\n\t\t\t\tindicesByUUID[ uuid ] = index;\n\t\t\t\tobjects.push( object );\n\n\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\tbindings[ j ].push( new PropertyBinding( object, paths[ j ], parsedPaths[ j ] ) );\n\n\t\t\t\t}\n\n\t\t\t} else if ( index < nCachedObjects ) {\n\n\t\t\t\tknownObject = objects[ index ];\n\n\t\t\t\t// move existing object to the ACTIVE region\n\n\t\t\t\tconst firstActiveIndex = -- nCachedObjects,\n\t\t\t\t\tlastCachedObject = objects[ firstActiveIndex ];\n\n\t\t\t\tindicesByUUID[ lastCachedObject.uuid ] = index;\n\t\t\t\tobjects[ index ] = lastCachedObject;\n\n\t\t\t\tindicesByUUID[ uuid ] = firstActiveIndex;\n\t\t\t\tobjects[ firstActiveIndex ] = object;\n\n\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\tconst bindingsForPath = bindings[ j ],\n\t\t\t\t\t\tlastCached = bindingsForPath[ firstActiveIndex ];\n\n\t\t\t\t\tlet binding = bindingsForPath[ index ];\n\n\t\t\t\t\tbindingsForPath[ index ] = lastCached;\n\n\t\t\t\t\tif ( binding === undefined ) {\n\n\t\t\t\t\t\t// since we do not bother to create new bindings\n\t\t\t\t\t\t// for objects that are cached, the binding may\n\t\t\t\t\t\t// or may not exist\n\n\t\t\t\t\t\tbinding = new PropertyBinding( object, paths[ j ], parsedPaths[ j ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbindingsForPath[ firstActiveIndex ] = binding;\n\n\t\t\t\t}\n\n\t\t\t} else if ( objects[ index ] !== knownObject ) {\n\n\t\t\t\tconsole.error( 'THREE.AnimationObjectGroup: Different objects with the same UUID ' +\n\t\t\t\t\t'detected. Clean the caches or recreate your infrastructure when reloading scenes.' );\n\n\t\t\t} // else the object is already where we want it to be\n\n\t\t} // for arguments\n\n\t\tthis.nCachedObjects_ = nCachedObjects;\n\n\t}\n\n\tremove() {\n\n\t\tconst objects = this._objects,\n\t\t\tindicesByUUID = this._indicesByUUID,\n\t\t\tbindings = this._bindings,\n\t\t\tnBindings = bindings.length;\n\n\t\tlet nCachedObjects = this.nCachedObjects_;\n\n\t\tfor ( let i = 0, n = arguments.length; i !== n; ++ i ) {\n\n\t\t\tconst object = arguments[ i ],\n\t\t\t\tuuid = object.uuid,\n\t\t\t\tindex = indicesByUUID[ uuid ];\n\n\t\t\tif ( index !== undefined && index >= nCachedObjects ) {\n\n\t\t\t\t// move existing object into the CACHED region\n\n\t\t\t\tconst lastCachedIndex = nCachedObjects ++,\n\t\t\t\t\tfirstActiveObject = objects[ lastCachedIndex ];\n\n\t\t\t\tindicesByUUID[ firstActiveObject.uuid ] = index;\n\t\t\t\tobjects[ index ] = firstActiveObject;\n\n\t\t\t\tindicesByUUID[ uuid ] = lastCachedIndex;\n\t\t\t\tobjects[ lastCachedIndex ] = object;\n\n\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\tconst bindingsForPath = bindings[ j ],\n\t\t\t\t\t\tfirstActive = bindingsForPath[ lastCachedIndex ],\n\t\t\t\t\t\tbinding = bindingsForPath[ index ];\n\n\t\t\t\t\tbindingsForPath[ index ] = firstActive;\n\t\t\t\t\tbindingsForPath[ lastCachedIndex ] = binding;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} // for arguments\n\n\t\tthis.nCachedObjects_ = nCachedObjects;\n\n\t}\n\n\t// remove & forget\n\tuncache() {\n\n\t\tconst objects = this._objects,\n\t\t\tindicesByUUID = this._indicesByUUID,\n\t\t\tbindings = this._bindings,\n\t\t\tnBindings = bindings.length;\n\n\t\tlet nCachedObjects = this.nCachedObjects_,\n\t\t\tnObjects = objects.length;\n\n\t\tfor ( let i = 0, n = arguments.length; i !== n; ++ i ) {\n\n\t\t\tconst object = arguments[ i ],\n\t\t\t\tuuid = object.uuid,\n\t\t\t\tindex = indicesByUUID[ uuid ];\n\n\t\t\tif ( index !== undefined ) {\n\n\t\t\t\tdelete indicesByUUID[ uuid ];\n\n\t\t\t\tif ( index < nCachedObjects ) {\n\n\t\t\t\t\t// object is cached, shrink the CACHED region\n\n\t\t\t\t\tconst firstActiveIndex = -- nCachedObjects,\n\t\t\t\t\t\tlastCachedObject = objects[ firstActiveIndex ],\n\t\t\t\t\t\tlastIndex = -- nObjects,\n\t\t\t\t\t\tlastObject = objects[ lastIndex ];\n\n\t\t\t\t\t// last cached object takes this object's place\n\t\t\t\t\tindicesByUUID[ lastCachedObject.uuid ] = index;\n\t\t\t\t\tobjects[ index ] = lastCachedObject;\n\n\t\t\t\t\t// last object goes to the activated slot and pop\n\t\t\t\t\tindicesByUUID[ lastObject.uuid ] = firstActiveIndex;\n\t\t\t\t\tobjects[ firstActiveIndex ] = lastObject;\n\t\t\t\t\tobjects.pop();\n\n\t\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\t\tconst bindingsForPath = bindings[ j ],\n\t\t\t\t\t\t\tlastCached = bindingsForPath[ firstActiveIndex ],\n\t\t\t\t\t\t\tlast = bindingsForPath[ lastIndex ];\n\n\t\t\t\t\t\tbindingsForPath[ index ] = lastCached;\n\t\t\t\t\t\tbindingsForPath[ firstActiveIndex ] = last;\n\t\t\t\t\t\tbindingsForPath.pop();\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// object is active, just swap with the last and pop\n\n\t\t\t\t\tconst lastIndex = -- nObjects,\n\t\t\t\t\t\tlastObject = objects[ lastIndex ];\n\n\t\t\t\t\tif ( lastIndex > 0 ) {\n\n\t\t\t\t\t\tindicesByUUID[ lastObject.uuid ] = index;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tobjects[ index ] = lastObject;\n\t\t\t\t\tobjects.pop();\n\n\t\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\t\tconst bindingsForPath = bindings[ j ];\n\n\t\t\t\t\t\tbindingsForPath[ index ] = bindingsForPath[ lastIndex ];\n\t\t\t\t\t\tbindingsForPath.pop();\n\n\t\t\t\t\t}\n\n\t\t\t\t} // cached or active\n\n\t\t\t} // if object is known\n\n\t\t} // for arguments\n\n\t\tthis.nCachedObjects_ = nCachedObjects;\n\n\t}\n\n\t// Internal interface used by befriended PropertyBinding.Composite:\n\n\tsubscribe_( path, parsedPath ) {\n\n\t\t// returns an array of bindings for the given path that is changed\n\t\t// according to the contained objects in the group\n\n\t\tconst indicesByPath = this._bindingsIndicesByPath;\n\t\tlet index = indicesByPath[ path ];\n\t\tconst bindings = this._bindings;\n\n\t\tif ( index !== undefined ) return bindings[ index ];\n\n\t\tconst paths = this._paths,\n\t\t\tparsedPaths = this._parsedPaths,\n\t\t\tobjects = this._objects,\n\t\t\tnObjects = objects.length,\n\t\t\tnCachedObjects = this.nCachedObjects_,\n\t\t\tbindingsForPath = new Array( nObjects );\n\n\t\tindex = bindings.length;\n\n\t\tindicesByPath[ path ] = index;\n\n\t\tpaths.push( path );\n\t\tparsedPaths.push( parsedPath );\n\t\tbindings.push( bindingsForPath );\n\n\t\tfor ( let i = nCachedObjects, n = objects.length; i !== n; ++ i ) {\n\n\t\t\tconst object = objects[ i ];\n\t\t\tbindingsForPath[ i ] = new PropertyBinding( object, path, parsedPath );\n\n\t\t}\n\n\t\treturn bindingsForPath;\n\n\t}\n\n\tunsubscribe_( path ) {\n\n\t\t// tells the group to forget about a property path and no longer\n\t\t// update the array previously obtained with 'subscribe_'\n\n\t\tconst indicesByPath = this._bindingsIndicesByPath,\n\t\t\tindex = indicesByPath[ path ];\n\n\t\tif ( index !== undefined ) {\n\n\t\t\tconst paths = this._paths,\n\t\t\t\tparsedPaths = this._parsedPaths,\n\t\t\t\tbindings = this._bindings,\n\t\t\t\tlastBindingsIndex = bindings.length - 1,\n\t\t\t\tlastBindings = bindings[ lastBindingsIndex ],\n\t\t\t\tlastBindingsPath = path[ lastBindingsIndex ];\n\n\t\t\tindicesByPath[ lastBindingsPath ] = index;\n\n\t\t\tbindings[ index ] = lastBindings;\n\t\t\tbindings.pop();\n\n\t\t\tparsedPaths[ index ] = parsedPaths[ lastBindingsIndex ];\n\t\t\tparsedPaths.pop();\n\n\t\t\tpaths[ index ] = paths[ lastBindingsIndex ];\n\t\t\tpaths.pop();\n\n\t\t}\n\n\t}\n\n}\n\nclass AnimationAction {\n\n\tconstructor( mixer, clip, localRoot = null, blendMode = clip.blendMode ) {\n\n\t\tthis._mixer = mixer;\n\t\tthis._clip = clip;\n\t\tthis._localRoot = localRoot;\n\t\tthis.blendMode = blendMode;\n\n\t\tconst tracks = clip.tracks,\n\t\t\tnTracks = tracks.length,\n\t\t\tinterpolants = new Array( nTracks );\n\n\t\tconst interpolantSettings = {\n\t\t\tendingStart: ZeroCurvatureEnding,\n\t\t\tendingEnd: ZeroCurvatureEnding\n\t\t};\n\n\t\tfor ( let i = 0; i !== nTracks; ++ i ) {\n\n\t\t\tconst interpolant = tracks[ i ].createInterpolant( null );\n\t\t\tinterpolants[ i ] = interpolant;\n\t\t\tinterpolant.settings = interpolantSettings;\n\n\t\t}\n\n\t\tthis._interpolantSettings = interpolantSettings;\n\n\t\tthis._interpolants = interpolants; // bound by the mixer\n\n\t\t// inside: PropertyMixer (managed by the mixer)\n\t\tthis._propertyBindings = new Array( nTracks );\n\n\t\tthis._cacheIndex = null; // for the memory manager\n\t\tthis._byClipCacheIndex = null; // for the memory manager\n\n\t\tthis._timeScaleInterpolant = null;\n\t\tthis._weightInterpolant = null;\n\n\t\tthis.loop = LoopRepeat;\n\t\tthis._loopCount = - 1;\n\n\t\t// global mixer time when the action is to be started\n\t\t// it's set back to 'null' upon start of the action\n\t\tthis._startTime = null;\n\n\t\t// scaled local time of the action\n\t\t// gets clamped or wrapped to 0..clip.duration according to loop\n\t\tthis.time = 0;\n\n\t\tthis.timeScale = 1;\n\t\tthis._effectiveTimeScale = 1;\n\n\t\tthis.weight = 1;\n\t\tthis._effectiveWeight = 1;\n\n\t\tthis.repetitions = Infinity; // no. of repetitions when looping\n\n\t\tthis.paused = false; // true -> zero effective time scale\n\t\tthis.enabled = true; // false -> zero effective weight\n\n\t\tthis.clampWhenFinished = false;// keep feeding the last frame?\n\n\t\tthis.zeroSlopeAtStart = true;// for smooth interpolation w/o separate\n\t\tthis.zeroSlopeAtEnd = true;// clips for start, loop and end\n\n\t}\n\n\t// State & Scheduling\n\n\tplay() {\n\n\t\tthis._mixer._activateAction( this );\n\n\t\treturn this;\n\n\t}\n\n\tstop() {\n\n\t\tthis._mixer._deactivateAction( this );\n\n\t\treturn this.reset();\n\n\t}\n\n\treset() {\n\n\t\tthis.paused = false;\n\t\tthis.enabled = true;\n\n\t\tthis.time = 0; // restart clip\n\t\tthis._loopCount = - 1;// forget previous loops\n\t\tthis._startTime = null;// forget scheduling\n\n\t\treturn this.stopFading().stopWarping();\n\n\t}\n\n\tisRunning() {\n\n\t\treturn this.enabled && ! this.paused && this.timeScale !== 0 &&\n\t\t\tthis._startTime === null && this._mixer._isActiveAction( this );\n\n\t}\n\n\t// return true when play has been called\n\tisScheduled() {\n\n\t\treturn this._mixer._isActiveAction( this );\n\n\t}\n\n\tstartAt( time ) {\n\n\t\tthis._startTime = time;\n\n\t\treturn this;\n\n\t}\n\n\tsetLoop( mode, repetitions ) {\n\n\t\tthis.loop = mode;\n\t\tthis.repetitions = repetitions;\n\n\t\treturn this;\n\n\t}\n\n\t// Weight\n\n\t// set the weight stopping any scheduled fading\n\t// although .enabled = false yields an effective weight of zero, this\n\t// method does *not* change .enabled, because it would be confusing\n\tsetEffectiveWeight( weight ) {\n\n\t\tthis.weight = weight;\n\n\t\t// note: same logic as when updated at runtime\n\t\tthis._effectiveWeight = this.enabled ? weight : 0;\n\n\t\treturn this.stopFading();\n\n\t}\n\n\t// return the weight considering fading and .enabled\n\tgetEffectiveWeight() {\n\n\t\treturn this._effectiveWeight;\n\n\t}\n\n\tfadeIn( duration ) {\n\n\t\treturn this._scheduleFading( duration, 0, 1 );\n\n\t}\n\n\tfadeOut( duration ) {\n\n\t\treturn this._scheduleFading( duration, 1, 0 );\n\n\t}\n\n\tcrossFadeFrom( fadeOutAction, duration, warp ) {\n\n\t\tfadeOutAction.fadeOut( duration );\n\t\tthis.fadeIn( duration );\n\n\t\tif ( warp ) {\n\n\t\t\tconst fadeInDuration = this._clip.duration,\n\t\t\t\tfadeOutDuration = fadeOutAction._clip.duration,\n\n\t\t\t\tstartEndRatio = fadeOutDuration / fadeInDuration,\n\t\t\t\tendStartRatio = fadeInDuration / fadeOutDuration;\n\n\t\t\tfadeOutAction.warp( 1.0, startEndRatio, duration );\n\t\t\tthis.warp( endStartRatio, 1.0, duration );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcrossFadeTo( fadeInAction, duration, warp ) {\n\n\t\treturn fadeInAction.crossFadeFrom( this, duration, warp );\n\n\t}\n\n\tstopFading() {\n\n\t\tconst weightInterpolant = this._weightInterpolant;\n\n\t\tif ( weightInterpolant !== null ) {\n\n\t\t\tthis._weightInterpolant = null;\n\t\t\tthis._mixer._takeBackControlInterpolant( weightInterpolant );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// Time Scale Control\n\n\t// set the time scale stopping any scheduled warping\n\t// although .paused = true yields an effective time scale of zero, this\n\t// method does *not* change .paused, because it would be confusing\n\tsetEffectiveTimeScale( timeScale ) {\n\n\t\tthis.timeScale = timeScale;\n\t\tthis._effectiveTimeScale = this.paused ? 0 : timeScale;\n\n\t\treturn this.stopWarping();\n\n\t}\n\n\t// return the time scale considering warping and .paused\n\tgetEffectiveTimeScale() {\n\n\t\treturn this._effectiveTimeScale;\n\n\t}\n\n\tsetDuration( duration ) {\n\n\t\tthis.timeScale = this._clip.duration / duration;\n\n\t\treturn this.stopWarping();\n\n\t}\n\n\tsyncWith( action ) {\n\n\t\tthis.time = action.time;\n\t\tthis.timeScale = action.timeScale;\n\n\t\treturn this.stopWarping();\n\n\t}\n\n\thalt( duration ) {\n\n\t\treturn this.warp( this._effectiveTimeScale, 0, duration );\n\n\t}\n\n\twarp( startTimeScale, endTimeScale, duration ) {\n\n\t\tconst mixer = this._mixer,\n\t\t\tnow = mixer.time,\n\t\t\ttimeScale = this.timeScale;\n\n\t\tlet interpolant = this._timeScaleInterpolant;\n\n\t\tif ( interpolant === null ) {\n\n\t\t\tinterpolant = mixer._lendControlInterpolant();\n\t\t\tthis._timeScaleInterpolant = interpolant;\n\n\t\t}\n\n\t\tconst times = interpolant.parameterPositions,\n\t\t\tvalues = interpolant.sampleValues;\n\n\t\ttimes[ 0 ] = now;\n\t\ttimes[ 1 ] = now + duration;\n\n\t\tvalues[ 0 ] = startTimeScale / timeScale;\n\t\tvalues[ 1 ] = endTimeScale / timeScale;\n\n\t\treturn this;\n\n\t}\n\n\tstopWarping() {\n\n\t\tconst timeScaleInterpolant = this._timeScaleInterpolant;\n\n\t\tif ( timeScaleInterpolant !== null ) {\n\n\t\t\tthis._timeScaleInterpolant = null;\n\t\t\tthis._mixer._takeBackControlInterpolant( timeScaleInterpolant );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// Object Accessors\n\n\tgetMixer() {\n\n\t\treturn this._mixer;\n\n\t}\n\n\tgetClip() {\n\n\t\treturn this._clip;\n\n\t}\n\n\tgetRoot() {\n\n\t\treturn this._localRoot || this._mixer._root;\n\n\t}\n\n\t// Interna\n\n\t_update( time, deltaTime, timeDirection, accuIndex ) {\n\n\t\t// called by the mixer\n\n\t\tif ( ! this.enabled ) {\n\n\t\t\t// call ._updateWeight() to update ._effectiveWeight\n\n\t\t\tthis._updateWeight( time );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst startTime = this._startTime;\n\n\t\tif ( startTime !== null ) {\n\n\t\t\t// check for scheduled start of action\n\n\t\t\tconst timeRunning = ( time - startTime ) * timeDirection;\n\t\t\tif ( timeRunning < 0 || timeDirection === 0 ) {\n\n\t\t\t\tdeltaTime = 0;\n\n\t\t\t} else {\n\n\n\t\t\t\tthis._startTime = null; // unschedule\n\t\t\t\tdeltaTime = timeDirection * timeRunning;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// apply time scale and advance time\n\n\t\tdeltaTime *= this._updateTimeScale( time );\n\t\tconst clipTime = this._updateTime( deltaTime );\n\n\t\t// note: _updateTime may disable the action resulting in\n\t\t// an effective weight of 0\n\n\t\tconst weight = this._updateWeight( time );\n\n\t\tif ( weight > 0 ) {\n\n\t\t\tconst interpolants = this._interpolants;\n\t\t\tconst propertyMixers = this._propertyBindings;\n\n\t\t\tswitch ( this.blendMode ) {\n\n\t\t\t\tcase AdditiveAnimationBlendMode:\n\n\t\t\t\t\tfor ( let j = 0, m = interpolants.length; j !== m; ++ j ) {\n\n\t\t\t\t\t\tinterpolants[ j ].evaluate( clipTime );\n\t\t\t\t\t\tpropertyMixers[ j ].accumulateAdditive( weight );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase NormalAnimationBlendMode:\n\t\t\t\tdefault:\n\n\t\t\t\t\tfor ( let j = 0, m = interpolants.length; j !== m; ++ j ) {\n\n\t\t\t\t\t\tinterpolants[ j ].evaluate( clipTime );\n\t\t\t\t\t\tpropertyMixers[ j ].accumulate( accuIndex, weight );\n\n\t\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_updateWeight( time ) {\n\n\t\tlet weight = 0;\n\n\t\tif ( this.enabled ) {\n\n\t\t\tweight = this.weight;\n\t\t\tconst interpolant = this._weightInterpolant;\n\n\t\t\tif ( interpolant !== null ) {\n\n\t\t\t\tconst interpolantValue = interpolant.evaluate( time )[ 0 ];\n\n\t\t\t\tweight *= interpolantValue;\n\n\t\t\t\tif ( time > interpolant.parameterPositions[ 1 ] ) {\n\n\t\t\t\t\tthis.stopFading();\n\n\t\t\t\t\tif ( interpolantValue === 0 ) {\n\n\t\t\t\t\t\t// faded out, disable\n\t\t\t\t\t\tthis.enabled = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis._effectiveWeight = weight;\n\t\treturn weight;\n\n\t}\n\n\t_updateTimeScale( time ) {\n\n\t\tlet timeScale = 0;\n\n\t\tif ( ! this.paused ) {\n\n\t\t\ttimeScale = this.timeScale;\n\n\t\t\tconst interpolant = this._timeScaleInterpolant;\n\n\t\t\tif ( interpolant !== null ) {\n\n\t\t\t\tconst interpolantValue = interpolant.evaluate( time )[ 0 ];\n\n\t\t\t\ttimeScale *= interpolantValue;\n\n\t\t\t\tif ( time > interpolant.parameterPositions[ 1 ] ) {\n\n\t\t\t\t\tthis.stopWarping();\n\n\t\t\t\t\tif ( timeScale === 0 ) {\n\n\t\t\t\t\t\t// motion has halted, pause\n\t\t\t\t\t\tthis.paused = true;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// warp done - apply final time scale\n\t\t\t\t\t\tthis.timeScale = timeScale;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis._effectiveTimeScale = timeScale;\n\t\treturn timeScale;\n\n\t}\n\n\t_updateTime( deltaTime ) {\n\n\t\tconst duration = this._clip.duration;\n\t\tconst loop = this.loop;\n\n\t\tlet time = this.time + deltaTime;\n\t\tlet loopCount = this._loopCount;\n\n\t\tconst pingPong = ( loop === LoopPingPong );\n\n\t\tif ( deltaTime === 0 ) {\n\n\t\t\tif ( loopCount === - 1 ) return time;\n\n\t\t\treturn ( pingPong && ( loopCount & 1 ) === 1 ) ? duration - time : time;\n\n\t\t}\n\n\t\tif ( loop === LoopOnce ) {\n\n\t\t\tif ( loopCount === - 1 ) {\n\n\t\t\t\t// just started\n\n\t\t\t\tthis._loopCount = 0;\n\t\t\t\tthis._setEndings( true, true, false );\n\n\t\t\t}\n\n\t\t\thandle_stop: {\n\n\t\t\t\tif ( time >= duration ) {\n\n\t\t\t\t\ttime = duration;\n\n\t\t\t\t} else if ( time < 0 ) {\n\n\t\t\t\t\ttime = 0;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.time = time;\n\n\t\t\t\t\tbreak handle_stop;\n\n\t\t\t\t}\n\n\t\t\t\tif ( this.clampWhenFinished ) this.paused = true;\n\t\t\t\telse this.enabled = false;\n\n\t\t\t\tthis.time = time;\n\n\t\t\t\tthis._mixer.dispatchEvent( {\n\t\t\t\t\ttype: 'finished', action: this,\n\t\t\t\t\tdirection: deltaTime < 0 ? - 1 : 1\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t} else { // repetitive Repeat or PingPong\n\n\t\t\tif ( loopCount === - 1 ) {\n\n\t\t\t\t// just started\n\n\t\t\t\tif ( deltaTime >= 0 ) {\n\n\t\t\t\t\tloopCount = 0;\n\n\t\t\t\t\tthis._setEndings( true, this.repetitions === 0, pingPong );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// when looping in reverse direction, the initial\n\t\t\t\t\t// transition through zero counts as a repetition,\n\t\t\t\t\t// so leave loopCount at -1\n\n\t\t\t\t\tthis._setEndings( this.repetitions === 0, true, pingPong );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( time >= duration || time < 0 ) {\n\n\t\t\t\t// wrap around\n\n\t\t\t\tconst loopDelta = Math.floor( time / duration ); // signed\n\t\t\t\ttime -= duration * loopDelta;\n\n\t\t\t\tloopCount += Math.abs( loopDelta );\n\n\t\t\t\tconst pending = this.repetitions - loopCount;\n\n\t\t\t\tif ( pending <= 0 ) {\n\n\t\t\t\t\t// have to stop (switch state, clamp time, fire event)\n\n\t\t\t\t\tif ( this.clampWhenFinished ) this.paused = true;\n\t\t\t\t\telse this.enabled = false;\n\n\t\t\t\t\ttime = deltaTime > 0 ? duration : 0;\n\n\t\t\t\t\tthis.time = time;\n\n\t\t\t\t\tthis._mixer.dispatchEvent( {\n\t\t\t\t\t\ttype: 'finished', action: this,\n\t\t\t\t\t\tdirection: deltaTime > 0 ? 1 : - 1\n\t\t\t\t\t} );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// keep running\n\n\t\t\t\t\tif ( pending === 1 ) {\n\n\t\t\t\t\t\t// entering the last round\n\n\t\t\t\t\t\tconst atStart = deltaTime < 0;\n\t\t\t\t\t\tthis._setEndings( atStart, ! atStart, pingPong );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthis._setEndings( false, false, pingPong );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._loopCount = loopCount;\n\n\t\t\t\t\tthis.time = time;\n\n\t\t\t\t\tthis._mixer.dispatchEvent( {\n\t\t\t\t\t\ttype: 'loop', action: this, loopDelta: loopDelta\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tthis.time = time;\n\n\t\t\t}\n\n\t\t\tif ( pingPong && ( loopCount & 1 ) === 1 ) {\n\n\t\t\t\t// invert time for the \"pong round\"\n\n\t\t\t\treturn duration - time;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn time;\n\n\t}\n\n\t_setEndings( atStart, atEnd, pingPong ) {\n\n\t\tconst settings = this._interpolantSettings;\n\n\t\tif ( pingPong ) {\n\n\t\t\tsettings.endingStart = ZeroSlopeEnding;\n\t\t\tsettings.endingEnd = ZeroSlopeEnding;\n\n\t\t} else {\n\n\t\t\t// assuming for LoopOnce atStart == atEnd == true\n\n\t\t\tif ( atStart ) {\n\n\t\t\t\tsettings.endingStart = this.zeroSlopeAtStart ? ZeroSlopeEnding : ZeroCurvatureEnding;\n\n\t\t\t} else {\n\n\t\t\t\tsettings.endingStart = WrapAroundEnding;\n\n\t\t\t}\n\n\t\t\tif ( atEnd ) {\n\n\t\t\t\tsettings.endingEnd = this.zeroSlopeAtEnd ? ZeroSlopeEnding : ZeroCurvatureEnding;\n\n\t\t\t} else {\n\n\t\t\t\tsettings.endingEnd \t = WrapAroundEnding;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_scheduleFading( duration, weightNow, weightThen ) {\n\n\t\tconst mixer = this._mixer, now = mixer.time;\n\t\tlet interpolant = this._weightInterpolant;\n\n\t\tif ( interpolant === null ) {\n\n\t\t\tinterpolant = mixer._lendControlInterpolant();\n\t\t\tthis._weightInterpolant = interpolant;\n\n\t\t}\n\n\t\tconst times = interpolant.parameterPositions,\n\t\t\tvalues = interpolant.sampleValues;\n\n\t\ttimes[ 0 ] = now;\n\t\tvalues[ 0 ] = weightNow;\n\t\ttimes[ 1 ] = now + duration;\n\t\tvalues[ 1 ] = weightThen;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _controlInterpolantsResultBuffer = new Float32Array( 1 );\n\n\nclass AnimationMixer extends EventDispatcher {\n\n\tconstructor( root ) {\n\n\t\tsuper();\n\n\t\tthis._root = root;\n\t\tthis._initMemoryManager();\n\t\tthis._accuIndex = 0;\n\t\tthis.time = 0;\n\t\tthis.timeScale = 1.0;\n\n\t}\n\n\t_bindAction( action, prototypeAction ) {\n\n\t\tconst root = action._localRoot || this._root,\n\t\t\ttracks = action._clip.tracks,\n\t\t\tnTracks = tracks.length,\n\t\t\tbindings = action._propertyBindings,\n\t\t\tinterpolants = action._interpolants,\n\t\t\trootUuid = root.uuid,\n\t\t\tbindingsByRoot = this._bindingsByRootAndName;\n\n\t\tlet bindingsByName = bindingsByRoot[ rootUuid ];\n\n\t\tif ( bindingsByName === undefined ) {\n\n\t\t\tbindingsByName = {};\n\t\t\tbindingsByRoot[ rootUuid ] = bindingsByName;\n\n\t\t}\n\n\t\tfor ( let i = 0; i !== nTracks; ++ i ) {\n\n\t\t\tconst track = tracks[ i ],\n\t\t\t\ttrackName = track.name;\n\n\t\t\tlet binding = bindingsByName[ trackName ];\n\n\t\t\tif ( binding !== undefined ) {\n\n\t\t\t\t++ binding.referenceCount;\n\t\t\t\tbindings[ i ] = binding;\n\n\t\t\t} else {\n\n\t\t\t\tbinding = bindings[ i ];\n\n\t\t\t\tif ( binding !== undefined ) {\n\n\t\t\t\t\t// existing binding, make sure the cache knows\n\n\t\t\t\t\tif ( binding._cacheIndex === null ) {\n\n\t\t\t\t\t\t++ binding.referenceCount;\n\t\t\t\t\t\tthis._addInactiveBinding( binding, rootUuid, trackName );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\t}\n\n\t\t\t\tconst path = prototypeAction && prototypeAction.\n\t\t\t\t\t_propertyBindings[ i ].binding.parsedPath;\n\n\t\t\t\tbinding = new PropertyMixer(\n\t\t\t\t\tPropertyBinding.create( root, trackName, path ),\n\t\t\t\t\ttrack.ValueTypeName, track.getValueSize() );\n\n\t\t\t\t++ binding.referenceCount;\n\t\t\t\tthis._addInactiveBinding( binding, rootUuid, trackName );\n\n\t\t\t\tbindings[ i ] = binding;\n\n\t\t\t}\n\n\t\t\tinterpolants[ i ].resultBuffer = binding.buffer;\n\n\t\t}\n\n\t}\n\n\t_activateAction( action ) {\n\n\t\tif ( ! this._isActiveAction( action ) ) {\n\n\t\t\tif ( action._cacheIndex === null ) {\n\n\t\t\t\t// this action has been forgotten by the cache, but the user\n\t\t\t\t// appears to be still using it -> rebind\n\n\t\t\t\tconst rootUuid = ( action._localRoot || this._root ).uuid,\n\t\t\t\t\tclipUuid = action._clip.uuid,\n\t\t\t\t\tactionsForClip = this._actionsByClip[ clipUuid ];\n\n\t\t\t\tthis._bindAction( action,\n\t\t\t\t\tactionsForClip && actionsForClip.knownActions[ 0 ] );\n\n\t\t\t\tthis._addInactiveAction( action, clipUuid, rootUuid );\n\n\t\t\t}\n\n\t\t\tconst bindings = action._propertyBindings;\n\n\t\t\t// increment reference counts / sort out state\n\t\t\tfor ( let i = 0, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\t\tconst binding = bindings[ i ];\n\n\t\t\t\tif ( binding.useCount ++ === 0 ) {\n\n\t\t\t\t\tthis._lendBinding( binding );\n\t\t\t\t\tbinding.saveOriginalState();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis._lendAction( action );\n\n\t\t}\n\n\t}\n\n\t_deactivateAction( action ) {\n\n\t\tif ( this._isActiveAction( action ) ) {\n\n\t\t\tconst bindings = action._propertyBindings;\n\n\t\t\t// decrement reference counts / sort out state\n\t\t\tfor ( let i = 0, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\t\tconst binding = bindings[ i ];\n\n\t\t\t\tif ( -- binding.useCount === 0 ) {\n\n\t\t\t\t\tbinding.restoreOriginalState();\n\t\t\t\t\tthis._takeBackBinding( binding );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis._takeBackAction( action );\n\n\t\t}\n\n\t}\n\n\t// Memory manager\n\n\t_initMemoryManager() {\n\n\t\tthis._actions = []; // 'nActiveActions' followed by inactive ones\n\t\tthis._nActiveActions = 0;\n\n\t\tthis._actionsByClip = {};\n\t\t// inside:\n\t\t// {\n\t\t// \tknownActions: Array< AnimationAction > - used as prototypes\n\t\t// \tactionByRoot: AnimationAction - lookup\n\t\t// }\n\n\n\t\tthis._bindings = []; // 'nActiveBindings' followed by inactive ones\n\t\tthis._nActiveBindings = 0;\n\n\t\tthis._bindingsByRootAndName = {}; // inside: Map< name, PropertyMixer >\n\n\n\t\tthis._controlInterpolants = []; // same game as above\n\t\tthis._nActiveControlInterpolants = 0;\n\n\t\tconst scope = this;\n\n\t\tthis.stats = {\n\n\t\t\tactions: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._actions.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn scope._nActiveActions;\n\n\t\t\t\t}\n\t\t\t},\n\t\t\tbindings: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._bindings.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn scope._nActiveBindings;\n\n\t\t\t\t}\n\t\t\t},\n\t\t\tcontrolInterpolants: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._controlInterpolants.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn scope._nActiveControlInterpolants;\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\t// Memory management for AnimationAction objects\n\n\t_isActiveAction( action ) {\n\n\t\tconst index = action._cacheIndex;\n\t\treturn index !== null && index < this._nActiveActions;\n\n\t}\n\n\t_addInactiveAction( action, clipUuid, rootUuid ) {\n\n\t\tconst actions = this._actions,\n\t\t\tactionsByClip = this._actionsByClip;\n\n\t\tlet actionsForClip = actionsByClip[ clipUuid ];\n\n\t\tif ( actionsForClip === undefined ) {\n\n\t\t\tactionsForClip = {\n\n\t\t\t\tknownActions: [ action ],\n\t\t\t\tactionByRoot: {}\n\n\t\t\t};\n\n\t\t\taction._byClipCacheIndex = 0;\n\n\t\t\tactionsByClip[ clipUuid ] = actionsForClip;\n\n\t\t} else {\n\n\t\t\tconst knownActions = actionsForClip.knownActions;\n\n\t\t\taction._byClipCacheIndex = knownActions.length;\n\t\t\tknownActions.push( action );\n\n\t\t}\n\n\t\taction._cacheIndex = actions.length;\n\t\tactions.push( action );\n\n\t\tactionsForClip.actionByRoot[ rootUuid ] = action;\n\n\t}\n\n\t_removeInactiveAction( action ) {\n\n\t\tconst actions = this._actions,\n\t\t\tlastInactiveAction = actions[ actions.length - 1 ],\n\t\t\tcacheIndex = action._cacheIndex;\n\n\t\tlastInactiveAction._cacheIndex = cacheIndex;\n\t\tactions[ cacheIndex ] = lastInactiveAction;\n\t\tactions.pop();\n\n\t\taction._cacheIndex = null;\n\n\n\t\tconst clipUuid = action._clip.uuid,\n\t\t\tactionsByClip = this._actionsByClip,\n\t\t\tactionsForClip = actionsByClip[ clipUuid ],\n\t\t\tknownActionsForClip = actionsForClip.knownActions,\n\n\t\t\tlastKnownAction =\n\t\t\t\tknownActionsForClip[ knownActionsForClip.length - 1 ],\n\n\t\t\tbyClipCacheIndex = action._byClipCacheIndex;\n\n\t\tlastKnownAction._byClipCacheIndex = byClipCacheIndex;\n\t\tknownActionsForClip[ byClipCacheIndex ] = lastKnownAction;\n\t\tknownActionsForClip.pop();\n\n\t\taction._byClipCacheIndex = null;\n\n\n\t\tconst actionByRoot = actionsForClip.actionByRoot,\n\t\t\trootUuid = ( action._localRoot || this._root ).uuid;\n\n\t\tdelete actionByRoot[ rootUuid ];\n\n\t\tif ( knownActionsForClip.length === 0 ) {\n\n\t\t\tdelete actionsByClip[ clipUuid ];\n\n\t\t}\n\n\t\tthis._removeInactiveBindingsForAction( action );\n\n\t}\n\n\t_removeInactiveBindingsForAction( action ) {\n\n\t\tconst bindings = action._propertyBindings;\n\n\t\tfor ( let i = 0, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tconst binding = bindings[ i ];\n\n\t\t\tif ( -- binding.referenceCount === 0 ) {\n\n\t\t\t\tthis._removeInactiveBinding( binding );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_lendAction( action ) {\n\n\t\t// [ active actions | inactive actions ]\n\t\t// [ active actions >| inactive actions ]\n\t\t// s a\n\t\t// <-swap->\n\t\t// a s\n\n\t\tconst actions = this._actions,\n\t\t\tprevIndex = action._cacheIndex,\n\n\t\t\tlastActiveIndex = this._nActiveActions ++,\n\n\t\t\tfirstInactiveAction = actions[ lastActiveIndex ];\n\n\t\taction._cacheIndex = lastActiveIndex;\n\t\tactions[ lastActiveIndex ] = action;\n\n\t\tfirstInactiveAction._cacheIndex = prevIndex;\n\t\tactions[ prevIndex ] = firstInactiveAction;\n\n\t}\n\n\t_takeBackAction( action ) {\n\n\t\t// [ active actions | inactive actions ]\n\t\t// [ active actions |< inactive actions ]\n\t\t// a s\n\t\t// <-swap->\n\t\t// s a\n\n\t\tconst actions = this._actions,\n\t\t\tprevIndex = action._cacheIndex,\n\n\t\t\tfirstInactiveIndex = -- this._nActiveActions,\n\n\t\t\tlastActiveAction = actions[ firstInactiveIndex ];\n\n\t\taction._cacheIndex = firstInactiveIndex;\n\t\tactions[ firstInactiveIndex ] = action;\n\n\t\tlastActiveAction._cacheIndex = prevIndex;\n\t\tactions[ prevIndex ] = lastActiveAction;\n\n\t}\n\n\t// Memory management for PropertyMixer objects\n\n\t_addInactiveBinding( binding, rootUuid, trackName ) {\n\n\t\tconst bindingsByRoot = this._bindingsByRootAndName,\n\t\t\tbindings = this._bindings;\n\n\t\tlet bindingByName = bindingsByRoot[ rootUuid ];\n\n\t\tif ( bindingByName === undefined ) {\n\n\t\t\tbindingByName = {};\n\t\t\tbindingsByRoot[ rootUuid ] = bindingByName;\n\n\t\t}\n\n\t\tbindingByName[ trackName ] = binding;\n\n\t\tbinding._cacheIndex = bindings.length;\n\t\tbindings.push( binding );\n\n\t}\n\n\t_removeInactiveBinding( binding ) {\n\n\t\tconst bindings = this._bindings,\n\t\t\tpropBinding = binding.binding,\n\t\t\trootUuid = propBinding.rootNode.uuid,\n\t\t\ttrackName = propBinding.path,\n\t\t\tbindingsByRoot = this._bindingsByRootAndName,\n\t\t\tbindingByName = bindingsByRoot[ rootUuid ],\n\n\t\t\tlastInactiveBinding = bindings[ bindings.length - 1 ],\n\t\t\tcacheIndex = binding._cacheIndex;\n\n\t\tlastInactiveBinding._cacheIndex = cacheIndex;\n\t\tbindings[ cacheIndex ] = lastInactiveBinding;\n\t\tbindings.pop();\n\n\t\tdelete bindingByName[ trackName ];\n\n\t\tif ( Object.keys( bindingByName ).length === 0 ) {\n\n\t\t\tdelete bindingsByRoot[ rootUuid ];\n\n\t\t}\n\n\t}\n\n\t_lendBinding( binding ) {\n\n\t\tconst bindings = this._bindings,\n\t\t\tprevIndex = binding._cacheIndex,\n\n\t\t\tlastActiveIndex = this._nActiveBindings ++,\n\n\t\t\tfirstInactiveBinding = bindings[ lastActiveIndex ];\n\n\t\tbinding._cacheIndex = lastActiveIndex;\n\t\tbindings[ lastActiveIndex ] = binding;\n\n\t\tfirstInactiveBinding._cacheIndex = prevIndex;\n\t\tbindings[ prevIndex ] = firstInactiveBinding;\n\n\t}\n\n\t_takeBackBinding( binding ) {\n\n\t\tconst bindings = this._bindings,\n\t\t\tprevIndex = binding._cacheIndex,\n\n\t\t\tfirstInactiveIndex = -- this._nActiveBindings,\n\n\t\t\tlastActiveBinding = bindings[ firstInactiveIndex ];\n\n\t\tbinding._cacheIndex = firstInactiveIndex;\n\t\tbindings[ firstInactiveIndex ] = binding;\n\n\t\tlastActiveBinding._cacheIndex = prevIndex;\n\t\tbindings[ prevIndex ] = lastActiveBinding;\n\n\t}\n\n\n\t// Memory management of Interpolants for weight and time scale\n\n\t_lendControlInterpolant() {\n\n\t\tconst interpolants = this._controlInterpolants,\n\t\t\tlastActiveIndex = this._nActiveControlInterpolants ++;\n\n\t\tlet interpolant = interpolants[ lastActiveIndex ];\n\n\t\tif ( interpolant === undefined ) {\n\n\t\t\tinterpolant = new LinearInterpolant(\n\t\t\t\tnew Float32Array( 2 ), new Float32Array( 2 ),\n\t\t\t\t1, _controlInterpolantsResultBuffer );\n\n\t\t\tinterpolant.__cacheIndex = lastActiveIndex;\n\t\t\tinterpolants[ lastActiveIndex ] = interpolant;\n\n\t\t}\n\n\t\treturn interpolant;\n\n\t}\n\n\t_takeBackControlInterpolant( interpolant ) {\n\n\t\tconst interpolants = this._controlInterpolants,\n\t\t\tprevIndex = interpolant.__cacheIndex,\n\n\t\t\tfirstInactiveIndex = -- this._nActiveControlInterpolants,\n\n\t\t\tlastActiveInterpolant = interpolants[ firstInactiveIndex ];\n\n\t\tinterpolant.__cacheIndex = firstInactiveIndex;\n\t\tinterpolants[ firstInactiveIndex ] = interpolant;\n\n\t\tlastActiveInterpolant.__cacheIndex = prevIndex;\n\t\tinterpolants[ prevIndex ] = lastActiveInterpolant;\n\n\t}\n\n\t// return an action for a clip optionally using a custom root target\n\t// object (this method allocates a lot of dynamic memory in case a\n\t// previously unknown clip/root combination is specified)\n\tclipAction( clip, optionalRoot, blendMode ) {\n\n\t\tconst root = optionalRoot || this._root,\n\t\t\trootUuid = root.uuid;\n\n\t\tlet clipObject = typeof clip === 'string' ? AnimationClip.findByName( root, clip ) : clip;\n\n\t\tconst clipUuid = clipObject !== null ? clipObject.uuid : clip;\n\n\t\tconst actionsForClip = this._actionsByClip[ clipUuid ];\n\t\tlet prototypeAction = null;\n\n\t\tif ( blendMode === undefined ) {\n\n\t\t\tif ( clipObject !== null ) {\n\n\t\t\t\tblendMode = clipObject.blendMode;\n\n\t\t\t} else {\n\n\t\t\t\tblendMode = NormalAnimationBlendMode;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( actionsForClip !== undefined ) {\n\n\t\t\tconst existingAction = actionsForClip.actionByRoot[ rootUuid ];\n\n\t\t\tif ( existingAction !== undefined && existingAction.blendMode === blendMode ) {\n\n\t\t\t\treturn existingAction;\n\n\t\t\t}\n\n\t\t\t// we know the clip, so we don't have to parse all\n\t\t\t// the bindings again but can just copy\n\t\t\tprototypeAction = actionsForClip.knownActions[ 0 ];\n\n\t\t\t// also, take the clip from the prototype action\n\t\t\tif ( clipObject === null )\n\t\t\t\tclipObject = prototypeAction._clip;\n\n\t\t}\n\n\t\t// clip must be known when specified via string\n\t\tif ( clipObject === null ) return null;\n\n\t\t// allocate all resources required to run it\n\t\tconst newAction = new AnimationAction( this, clipObject, optionalRoot, blendMode );\n\n\t\tthis._bindAction( newAction, prototypeAction );\n\n\t\t// and make the action known to the memory manager\n\t\tthis._addInactiveAction( newAction, clipUuid, rootUuid );\n\n\t\treturn newAction;\n\n\t}\n\n\t// get an existing action\n\texistingAction( clip, optionalRoot ) {\n\n\t\tconst root = optionalRoot || this._root,\n\t\t\trootUuid = root.uuid,\n\n\t\t\tclipObject = typeof clip === 'string' ?\n\t\t\t\tAnimationClip.findByName( root, clip ) : clip,\n\n\t\t\tclipUuid = clipObject ? clipObject.uuid : clip,\n\n\t\t\tactionsForClip = this._actionsByClip[ clipUuid ];\n\n\t\tif ( actionsForClip !== undefined ) {\n\n\t\t\treturn actionsForClip.actionByRoot[ rootUuid ] || null;\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\t// deactivates all previously scheduled actions\n\tstopAllAction() {\n\n\t\tconst actions = this._actions,\n\t\t\tnActions = this._nActiveActions;\n\n\t\tfor ( let i = nActions - 1; i >= 0; -- i ) {\n\n\t\t\tactions[ i ].stop();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// advance the time and update apply the animation\n\tupdate( deltaTime ) {\n\n\t\tdeltaTime *= this.timeScale;\n\n\t\tconst actions = this._actions,\n\t\t\tnActions = this._nActiveActions,\n\n\t\t\ttime = this.time += deltaTime,\n\t\t\ttimeDirection = Math.sign( deltaTime ),\n\n\t\t\taccuIndex = this._accuIndex ^= 1;\n\n\t\t// run active actions\n\n\t\tfor ( let i = 0; i !== nActions; ++ i ) {\n\n\t\t\tconst action = actions[ i ];\n\n\t\t\taction._update( time, deltaTime, timeDirection, accuIndex );\n\n\t\t}\n\n\t\t// update scene graph\n\n\t\tconst bindings = this._bindings,\n\t\t\tnBindings = this._nActiveBindings;\n\n\t\tfor ( let i = 0; i !== nBindings; ++ i ) {\n\n\t\t\tbindings[ i ].apply( accuIndex );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// Allows you to seek to a specific time in an animation.\n\tsetTime( timeInSeconds ) {\n\n\t\tthis.time = 0; // Zero out time attribute for AnimationMixer object;\n\t\tfor ( let i = 0; i < this._actions.length; i ++ ) {\n\n\t\t\tthis._actions[ i ].time = 0; // Zero out time attribute for all associated AnimationAction objects.\n\n\t\t}\n\n\t\treturn this.update( timeInSeconds ); // Update used to set exact time. Returns \"this\" AnimationMixer object.\n\n\t}\n\n\t// return this mixer's root target object\n\tgetRoot() {\n\n\t\treturn this._root;\n\n\t}\n\n\t// free all resources specific to a particular clip\n\tuncacheClip( clip ) {\n\n\t\tconst actions = this._actions,\n\t\t\tclipUuid = clip.uuid,\n\t\t\tactionsByClip = this._actionsByClip,\n\t\t\tactionsForClip = actionsByClip[ clipUuid ];\n\n\t\tif ( actionsForClip !== undefined ) {\n\n\t\t\t// note: just calling _removeInactiveAction would mess up the\n\t\t\t// iteration state and also require updating the state we can\n\t\t\t// just throw away\n\n\t\t\tconst actionsToRemove = actionsForClip.knownActions;\n\n\t\t\tfor ( let i = 0, n = actionsToRemove.length; i !== n; ++ i ) {\n\n\t\t\t\tconst action = actionsToRemove[ i ];\n\n\t\t\t\tthis._deactivateAction( action );\n\n\t\t\t\tconst cacheIndex = action._cacheIndex,\n\t\t\t\t\tlastInactiveAction = actions[ actions.length - 1 ];\n\n\t\t\t\taction._cacheIndex = null;\n\t\t\t\taction._byClipCacheIndex = null;\n\n\t\t\t\tlastInactiveAction._cacheIndex = cacheIndex;\n\t\t\t\tactions[ cacheIndex ] = lastInactiveAction;\n\t\t\t\tactions.pop();\n\n\t\t\t\tthis._removeInactiveBindingsForAction( action );\n\n\t\t\t}\n\n\t\t\tdelete actionsByClip[ clipUuid ];\n\n\t\t}\n\n\t}\n\n\t// free all resources specific to a particular root target object\n\tuncacheRoot( root ) {\n\n\t\tconst rootUuid = root.uuid,\n\t\t\tactionsByClip = this._actionsByClip;\n\n\t\tfor ( const clipUuid in actionsByClip ) {\n\n\t\t\tconst actionByRoot = actionsByClip[ clipUuid ].actionByRoot,\n\t\t\t\taction = actionByRoot[ rootUuid ];\n\n\t\t\tif ( action !== undefined ) {\n\n\t\t\t\tthis._deactivateAction( action );\n\t\t\t\tthis._removeInactiveAction( action );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst bindingsByRoot = this._bindingsByRootAndName,\n\t\t\tbindingByName = bindingsByRoot[ rootUuid ];\n\n\t\tif ( bindingByName !== undefined ) {\n\n\t\t\tfor ( const trackName in bindingByName ) {\n\n\t\t\t\tconst binding = bindingByName[ trackName ];\n\t\t\t\tbinding.restoreOriginalState();\n\t\t\t\tthis._removeInactiveBinding( binding );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t// remove a targeted clip from the cache\n\tuncacheAction( clip, optionalRoot ) {\n\n\t\tconst action = this.existingAction( clip, optionalRoot );\n\n\t\tif ( action !== null ) {\n\n\t\t\tthis._deactivateAction( action );\n\t\t\tthis._removeInactiveAction( action );\n\n\t\t}\n\n\t}\n\n}\n\nclass RenderTarget3D extends RenderTarget {\n\n\tconstructor( width = 1, height = 1, depth = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.isRenderTarget3D = true;\n\n\t\tthis.depth = depth;\n\n\t\tthis.texture = new Data3DTexture( null, width, height, depth );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\nclass RenderTargetArray extends RenderTarget {\n\n\tconstructor( width = 1, height = 1, depth = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.isRenderTargetArray = true;\n\n\t\tthis.depth = depth;\n\n\t\tthis.texture = new DataArrayTexture( null, width, height, depth );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\nclass Uniform {\n\n\tconstructor( value ) {\n\n\t\tthis.value = value;\n\n\t}\n\n\tclone() {\n\n\t\treturn new Uniform( this.value.clone === undefined ? this.value : this.value.clone() );\n\n\t}\n\n}\n\nlet _id = 0;\n\nclass UniformsGroup extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isUniformsGroup = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _id ++ } );\n\n\t\tthis.name = '';\n\n\t\tthis.usage = StaticDrawUsage;\n\t\tthis.uniforms = [];\n\n\t}\n\n\tadd( uniform ) {\n\n\t\tthis.uniforms.push( uniform );\n\n\t\treturn this;\n\n\t}\n\n\tremove( uniform ) {\n\n\t\tconst index = this.uniforms.indexOf( uniform );\n\n\t\tif ( index !== - 1 ) this.uniforms.splice( index, 1 );\n\n\t\treturn this;\n\n\t}\n\n\tsetName( name ) {\n\n\t\tthis.name = name;\n\n\t\treturn this;\n\n\t}\n\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\t\tthis.usage = source.usage;\n\n\t\tconst uniformsSource = source.uniforms;\n\n\t\tthis.uniforms.length = 0;\n\n\t\tfor ( let i = 0, l = uniformsSource.length; i < l; i ++ ) {\n\n\t\t\tconst uniforms = Array.isArray( uniformsSource[ i ] ) ? uniformsSource[ i ] : [ uniformsSource[ i ] ];\n\n\t\t\tfor ( let j = 0; j < uniforms.length; j ++ ) {\n\n\t\t\t\tthis.uniforms.push( uniforms[ j ].clone() );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nclass InstancedInterleavedBuffer extends InterleavedBuffer {\n\n\tconstructor( array, stride, meshPerAttribute = 1 ) {\n\n\t\tsuper( array, stride );\n\n\t\tthis.isInstancedInterleavedBuffer = true;\n\n\t\tthis.meshPerAttribute = meshPerAttribute;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.meshPerAttribute = source.meshPerAttribute;\n\n\t\treturn this;\n\n\t}\n\n\tclone( data ) {\n\n\t\tconst ib = super.clone( data );\n\n\t\tib.meshPerAttribute = this.meshPerAttribute;\n\n\t\treturn ib;\n\n\t}\n\n\ttoJSON( data ) {\n\n\t\tconst json = super.toJSON( data );\n\n\t\tjson.isInstancedInterleavedBuffer = true;\n\t\tjson.meshPerAttribute = this.meshPerAttribute;\n\n\t\treturn json;\n\n\t}\n\n}\n\nclass GLBufferAttribute {\n\n\tconstructor( buffer, type, itemSize, elementSize, count ) {\n\n\t\tthis.isGLBufferAttribute = true;\n\n\t\tthis.name = '';\n\n\t\tthis.buffer = buffer;\n\t\tthis.type = type;\n\t\tthis.itemSize = itemSize;\n\t\tthis.elementSize = elementSize;\n\t\tthis.count = count;\n\n\t\tthis.version = 0;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tsetBuffer( buffer ) {\n\n\t\tthis.buffer = buffer;\n\n\t\treturn this;\n\n\t}\n\n\tsetType( type, elementSize ) {\n\n\t\tthis.type = type;\n\t\tthis.elementSize = elementSize;\n\n\t\treturn this;\n\n\t}\n\n\tsetItemSize( itemSize ) {\n\n\t\tthis.itemSize = itemSize;\n\n\t\treturn this;\n\n\t}\n\n\tsetCount( count ) {\n\n\t\tthis.count = count;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _matrix = /*@__PURE__*/ new Matrix4();\n\nclass Raycaster {\n\n\tconstructor( origin, direction, near = 0, far = Infinity ) {\n\n\t\tthis.ray = new Ray( origin, direction );\n\t\t// direction is assumed to be normalized (for accurate distance calculations)\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\t\tthis.camera = null;\n\t\tthis.layers = new Layers();\n\n\t\tthis.params = {\n\t\t\tMesh: {},\n\t\t\tLine: { threshold: 1 },\n\t\t\tLOD: {},\n\t\t\tPoints: { threshold: 1 },\n\t\t\tSprite: {}\n\t\t};\n\n\t}\n\n\tset( origin, direction ) {\n\n\t\t// direction is assumed to be normalized (for accurate distance calculations)\n\n\t\tthis.ray.set( origin, direction );\n\n\t}\n\n\tsetFromCamera( coords, camera ) {\n\n\t\tif ( camera.isPerspectiveCamera ) {\n\n\t\t\tthis.ray.origin.setFromMatrixPosition( camera.matrixWorld );\n\t\t\tthis.ray.direction.set( coords.x, coords.y, 0.5 ).unproject( camera ).sub( this.ray.origin ).normalize();\n\t\t\tthis.camera = camera;\n\n\t\t} else if ( camera.isOrthographicCamera ) {\n\n\t\t\tthis.ray.origin.set( coords.x, coords.y, ( camera.near + camera.far ) / ( camera.near - camera.far ) ).unproject( camera ); // set origin in plane of camera\n\t\t\tthis.ray.direction.set( 0, 0, - 1 ).transformDirection( camera.matrixWorld );\n\t\t\tthis.camera = camera;\n\n\t\t} else {\n\n\t\t\tconsole.error( 'THREE.Raycaster: Unsupported camera type: ' + camera.type );\n\n\t\t}\n\n\t}\n\n\tsetFromXRController( controller ) {\n\n\t\t_matrix.identity().extractRotation( controller.matrixWorld );\n\n\t\tthis.ray.origin.setFromMatrixPosition( controller.matrixWorld );\n\t\tthis.ray.direction.set( 0, 0, - 1 ).applyMatrix4( _matrix );\n\n\t\treturn this;\n\n\t}\n\n\tintersectObject( object, recursive = true, intersects = [] ) {\n\n\t\tintersect( object, this, intersects, recursive );\n\n\t\tintersects.sort( ascSort );\n\n\t\treturn intersects;\n\n\t}\n\n\tintersectObjects( objects, recursive = true, intersects = [] ) {\n\n\t\tfor ( let i = 0, l = objects.length; i < l; i ++ ) {\n\n\t\t\tintersect( objects[ i ], this, intersects, recursive );\n\n\t\t}\n\n\t\tintersects.sort( ascSort );\n\n\t\treturn intersects;\n\n\t}\n\n}\n\nfunction ascSort( a, b ) {\n\n\treturn a.distance - b.distance;\n\n}\n\nfunction intersect( object, raycaster, intersects, recursive ) {\n\n\tlet propagate = true;\n\n\tif ( object.layers.test( raycaster.layers ) ) {\n\n\t\tconst result = object.raycast( raycaster, intersects );\n\n\t\tif ( result === false ) propagate = false;\n\n\t}\n\n\tif ( propagate === true && recursive === true ) {\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tintersect( children[ i ], raycaster, intersects, true );\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * Ref: https://en.wikipedia.org/wiki/Spherical_coordinate_system\n *\n * phi (the polar angle) is measured from the positive y-axis. The positive y-axis is up.\n * theta (the azimuthal angle) is measured from the positive z-axis.\n */\nclass Spherical {\n\n\tconstructor( radius = 1, phi = 0, theta = 0 ) {\n\n\t\tthis.radius = radius;\n\t\tthis.phi = phi; // polar angle\n\t\tthis.theta = theta; // azimuthal angle\n\n\t\treturn this;\n\n\t}\n\n\tset( radius, phi, theta ) {\n\n\t\tthis.radius = radius;\n\t\tthis.phi = phi;\n\t\tthis.theta = theta;\n\n\t\treturn this;\n\n\t}\n\n\tcopy( other ) {\n\n\t\tthis.radius = other.radius;\n\t\tthis.phi = other.phi;\n\t\tthis.theta = other.theta;\n\n\t\treturn this;\n\n\t}\n\n\t// restrict phi to be between EPS and PI-EPS\n\tmakeSafe() {\n\n\t\tconst EPS = 0.000001;\n\t\tthis.phi = clamp( this.phi, EPS, Math.PI - EPS );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromVector3( v ) {\n\n\t\treturn this.setFromCartesianCoords( v.x, v.y, v.z );\n\n\t}\n\n\tsetFromCartesianCoords( x, y, z ) {\n\n\t\tthis.radius = Math.sqrt( x * x + y * y + z * z );\n\n\t\tif ( this.radius === 0 ) {\n\n\t\t\tthis.theta = 0;\n\t\t\tthis.phi = 0;\n\n\t\t} else {\n\n\t\t\tthis.theta = Math.atan2( x, z );\n\t\t\tthis.phi = Math.acos( clamp( y / this.radius, - 1, 1 ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\n/**\n * Ref: https://en.wikipedia.org/wiki/Cylindrical_coordinate_system\n */\n\nclass Cylindrical {\n\n\tconstructor( radius = 1, theta = 0, y = 0 ) {\n\n\t\tthis.radius = radius; // distance from the origin to a point in the x-z plane\n\t\tthis.theta = theta; // counterclockwise angle in the x-z plane measured in radians from the positive z-axis\n\t\tthis.y = y; // height above the x-z plane\n\n\t\treturn this;\n\n\t}\n\n\tset( radius, theta, y ) {\n\n\t\tthis.radius = radius;\n\t\tthis.theta = theta;\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tcopy( other ) {\n\n\t\tthis.radius = other.radius;\n\t\tthis.theta = other.theta;\n\t\tthis.y = other.y;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromVector3( v ) {\n\n\t\treturn this.setFromCartesianCoords( v.x, v.y, v.z );\n\n\t}\n\n\tsetFromCartesianCoords( x, y, z ) {\n\n\t\tthis.radius = Math.sqrt( x * x + z * z );\n\t\tthis.theta = Math.atan2( x, z );\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nclass Matrix2 {\n\n\tconstructor( n11, n12, n21, n22 ) {\n\n\t\tMatrix2.prototype.isMatrix2 = true;\n\n\t\tthis.elements = [\n\t\t\t1, 0,\n\t\t\t0, 1,\n\t\t];\n\n\t\tif ( n11 !== undefined ) {\n\n\t\t\tthis.set( n11, n12, n21, n22 );\n\n\t\t}\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\t\t\t1, 0,\n\t\t\t0, 1,\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 4; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tset( n11, n12, n21, n22 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 2 ] = n12;\n\t\tte[ 1 ] = n21; te[ 3 ] = n22;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _vector$4 = /*@__PURE__*/ new Vector2();\n\nclass Box2 {\n\n\tconstructor( min = new Vector2( + Infinity, + Infinity ), max = new Vector2( - Infinity, - Infinity ) ) {\n\n\t\tthis.isBox2 = true;\n\n\t\tthis.min = min;\n\t\tthis.max = max;\n\n\t}\n\n\tset( min, max ) {\n\n\t\tthis.min.copy( min );\n\t\tthis.max.copy( max );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( points[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCenterAndSize( center, size ) {\n\n\t\tconst halfSize = _vector$4.copy( size ).multiplyScalar( 0.5 );\n\t\tthis.min.copy( center ).sub( halfSize );\n\t\tthis.max.copy( center ).add( halfSize );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( box ) {\n\n\t\tthis.min.copy( box.min );\n\t\tthis.max.copy( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.min.x = this.min.y = + Infinity;\n\t\tthis.max.x = this.max.y = - Infinity;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\t// this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\n\n\t\treturn ( this.max.x < this.min.x ) || ( this.max.y < this.min.y );\n\n\t}\n\n\tgetCenter( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0 ) : target.addVectors( this.min, this.max ).multiplyScalar( 0.5 );\n\n\t}\n\n\tgetSize( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0 ) : target.subVectors( this.max, this.min );\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tthis.min.min( point );\n\t\tthis.max.max( point );\n\n\t\treturn this;\n\n\t}\n\n\texpandByVector( vector ) {\n\n\t\tthis.min.sub( vector );\n\t\tthis.max.add( vector );\n\n\t\treturn this;\n\n\t}\n\n\texpandByScalar( scalar ) {\n\n\t\tthis.min.addScalar( - scalar );\n\t\tthis.max.addScalar( scalar );\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn point.x >= this.min.x && point.x <= this.max.x &&\n\t\t\tpoint.y >= this.min.y && point.y <= this.max.y;\n\n\t}\n\n\tcontainsBox( box ) {\n\n\t\treturn this.min.x <= box.min.x && box.max.x <= this.max.x &&\n\t\t\tthis.min.y <= box.min.y && box.max.y <= this.max.y;\n\n\t}\n\n\tgetParameter( point, target ) {\n\n\t\t// This can potentially have a divide by zero if the box\n\t\t// has a size dimension of 0.\n\n\t\treturn target.set(\n\t\t\t( point.x - this.min.x ) / ( this.max.x - this.min.x ),\n\t\t\t( point.y - this.min.y ) / ( this.max.y - this.min.y )\n\t\t);\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\t// using 4 splitting planes to rule out intersections\n\n\t\treturn box.max.x >= this.min.x && box.min.x <= this.max.x &&\n\t\t\tbox.max.y >= this.min.y && box.min.y <= this.max.y;\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\treturn target.copy( point ).clamp( this.min, this.max );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.clampPoint( point, _vector$4 ).distanceTo( point );\n\n\t}\n\n\tintersect( box ) {\n\n\t\tthis.min.max( box.min );\n\t\tthis.max.min( box.max );\n\n\t\tif ( this.isEmpty() ) this.makeEmpty();\n\n\t\treturn this;\n\n\t}\n\n\tunion( box ) {\n\n\t\tthis.min.min( box.min );\n\t\tthis.max.max( box.max );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.min.add( offset );\n\t\tthis.max.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\tequals( box ) {\n\n\t\treturn box.min.equals( this.min ) && box.max.equals( this.max );\n\n\t}\n\n}\n\nconst _startP = /*@__PURE__*/ new Vector3();\nconst _startEnd = /*@__PURE__*/ new Vector3();\n\nclass Line3 {\n\n\tconstructor( start = new Vector3(), end = new Vector3() ) {\n\n\t\tthis.start = start;\n\t\tthis.end = end;\n\n\t}\n\n\tset( start, end ) {\n\n\t\tthis.start.copy( start );\n\t\tthis.end.copy( end );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( line ) {\n\n\t\tthis.start.copy( line.start );\n\t\tthis.end.copy( line.end );\n\n\t\treturn this;\n\n\t}\n\n\tgetCenter( target ) {\n\n\t\treturn target.addVectors( this.start, this.end ).multiplyScalar( 0.5 );\n\n\t}\n\n\tdelta( target ) {\n\n\t\treturn target.subVectors( this.end, this.start );\n\n\t}\n\n\tdistanceSq() {\n\n\t\treturn this.start.distanceToSquared( this.end );\n\n\t}\n\n\tdistance() {\n\n\t\treturn this.start.distanceTo( this.end );\n\n\t}\n\n\tat( t, target ) {\n\n\t\treturn this.delta( target ).multiplyScalar( t ).add( this.start );\n\n\t}\n\n\tclosestPointToPointParameter( point, clampToLine ) {\n\n\t\t_startP.subVectors( point, this.start );\n\t\t_startEnd.subVectors( this.end, this.start );\n\n\t\tconst startEnd2 = _startEnd.dot( _startEnd );\n\t\tconst startEnd_startP = _startEnd.dot( _startP );\n\n\t\tlet t = startEnd_startP / startEnd2;\n\n\t\tif ( clampToLine ) {\n\n\t\t\tt = clamp( t, 0, 1 );\n\n\t\t}\n\n\t\treturn t;\n\n\t}\n\n\tclosestPointToPoint( point, clampToLine, target ) {\n\n\t\tconst t = this.closestPointToPointParameter( point, clampToLine );\n\n\t\treturn this.delta( target ).multiplyScalar( t ).add( this.start );\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tthis.start.applyMatrix4( matrix );\n\t\tthis.end.applyMatrix4( matrix );\n\n\t\treturn this;\n\n\t}\n\n\tequals( line ) {\n\n\t\treturn line.start.equals( this.start ) && line.end.equals( this.end );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _vector$3 = /*@__PURE__*/ new Vector3();\n\nclass SpotLightHelper extends Object3D {\n\n\tconstructor( light, color ) {\n\n\t\tsuper();\n\n\t\tthis.light = light;\n\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.color = color;\n\n\t\tthis.type = 'SpotLightHelper';\n\n\t\tconst geometry = new BufferGeometry();\n\n\t\tconst positions = [\n\t\t\t0, 0, 0, \t0, 0, 1,\n\t\t\t0, 0, 0, \t1, 0, 1,\n\t\t\t0, 0, 0,\t- 1, 0, 1,\n\t\t\t0, 0, 0, \t0, 1, 1,\n\t\t\t0, 0, 0, \t0, - 1, 1\n\t\t];\n\n\t\tfor ( let i = 0, j = 1, l = 32; i < l; i ++, j ++ ) {\n\n\t\t\tconst p1 = ( i / l ) * Math.PI * 2;\n\t\t\tconst p2 = ( j / l ) * Math.PI * 2;\n\n\t\t\tpositions.push(\n\t\t\t\tMath.cos( p1 ), Math.sin( p1 ), 1,\n\t\t\t\tMath.cos( p2 ), Math.sin( p2 ), 1\n\t\t\t);\n\n\t\t}\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { fog: false, toneMapped: false } );\n\n\t\tthis.cone = new LineSegments( geometry, material );\n\t\tthis.add( this.cone );\n\n\t\tthis.update();\n\n\t}\n\n\tdispose() {\n\n\t\tthis.cone.geometry.dispose();\n\t\tthis.cone.material.dispose();\n\n\t}\n\n\tupdate() {\n\n\t\tthis.light.updateWorldMatrix( true, false );\n\t\tthis.light.target.updateWorldMatrix( true, false );\n\n\t\t// update the local matrix based on the parent and light target transforms\n\t\tif ( this.parent ) {\n\n\t\t\tthis.parent.updateWorldMatrix( true );\n\n\t\t\tthis.matrix\n\t\t\t\t.copy( this.parent.matrixWorld )\n\t\t\t\t.invert()\n\t\t\t\t.multiply( this.light.matrixWorld );\n\n\t\t} else {\n\n\t\t\tthis.matrix.copy( this.light.matrixWorld );\n\n\t\t}\n\n\t\tthis.matrixWorld.copy( this.light.matrixWorld );\n\n\t\tconst coneLength = this.light.distance ? this.light.distance : 1000;\n\t\tconst coneWidth = coneLength * Math.tan( this.light.angle );\n\n\t\tthis.cone.scale.set( coneWidth, coneWidth, coneLength );\n\n\t\t_vector$3.setFromMatrixPosition( this.light.target.matrixWorld );\n\n\t\tthis.cone.lookAt( _vector$3 );\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.cone.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tthis.cone.material.color.copy( this.light.color );\n\n\t\t}\n\n\t}\n\n}\n\nconst _vector$2 = /*@__PURE__*/ new Vector3();\nconst _boneMatrix = /*@__PURE__*/ new Matrix4();\nconst _matrixWorldInv = /*@__PURE__*/ new Matrix4();\n\n\nclass SkeletonHelper extends LineSegments {\n\n\tconstructor( object ) {\n\n\t\tconst bones = getBoneList( object );\n\n\t\tconst geometry = new BufferGeometry();\n\n\t\tconst vertices = [];\n\t\tconst colors = [];\n\n\t\tconst color1 = new Color( 0, 0, 1 );\n\t\tconst color2 = new Color( 0, 1, 0 );\n\n\t\tfor ( let i = 0; i < bones.length; i ++ ) {\n\n\t\t\tconst bone = bones[ i ];\n\n\t\t\tif ( bone.parent && bone.parent.isBone ) {\n\n\t\t\t\tvertices.push( 0, 0, 0 );\n\t\t\t\tvertices.push( 0, 0, 0 );\n\t\t\t\tcolors.push( color1.r, color1.g, color1.b );\n\t\t\t\tcolors.push( color2.r, color2.g, color2.b );\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, depthTest: false, depthWrite: false, toneMapped: false, transparent: true } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.isSkeletonHelper = true;\n\n\t\tthis.type = 'SkeletonHelper';\n\n\t\tthis.root = object;\n\t\tthis.bones = bones;\n\n\t\tthis.matrix = object.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tconst bones = this.bones;\n\n\t\tconst geometry = this.geometry;\n\t\tconst position = geometry.getAttribute( 'position' );\n\n\t\t_matrixWorldInv.copy( this.root.matrixWorld ).invert();\n\n\t\tfor ( let i = 0, j = 0; i < bones.length; i ++ ) {\n\n\t\t\tconst bone = bones[ i ];\n\n\t\t\tif ( bone.parent && bone.parent.isBone ) {\n\n\t\t\t\t_boneMatrix.multiplyMatrices( _matrixWorldInv, bone.matrixWorld );\n\t\t\t\t_vector$2.setFromMatrixPosition( _boneMatrix );\n\t\t\t\tposition.setXYZ( j, _vector$2.x, _vector$2.y, _vector$2.z );\n\n\t\t\t\t_boneMatrix.multiplyMatrices( _matrixWorldInv, bone.parent.matrixWorld );\n\t\t\t\t_vector$2.setFromMatrixPosition( _boneMatrix );\n\t\t\t\tposition.setXYZ( j + 1, _vector$2.x, _vector$2.y, _vector$2.z );\n\n\t\t\t\tj += 2;\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeometry.getAttribute( 'position' ).needsUpdate = true;\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\n\nfunction getBoneList( object ) {\n\n\tconst boneList = [];\n\n\tif ( object.isBone === true ) {\n\n\t\tboneList.push( object );\n\n\t}\n\n\tfor ( let i = 0; i < object.children.length; i ++ ) {\n\n\t\tboneList.push.apply( boneList, getBoneList( object.children[ i ] ) );\n\n\t}\n\n\treturn boneList;\n\n}\n\nclass PointLightHelper extends Mesh {\n\n\tconstructor( light, sphereSize, color ) {\n\n\t\tconst geometry = new SphereGeometry( sphereSize, 4, 2 );\n\t\tconst material = new MeshBasicMaterial( { wireframe: true, fog: false, toneMapped: false } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.light = light;\n\n\t\tthis.color = color;\n\n\t\tthis.type = 'PointLightHelper';\n\n\t\tthis.matrix = this.light.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.update();\n\n\n\t\t/*\n\t// TODO: delete this comment?\n\tconst distanceGeometry = new THREE.IcosahedronGeometry( 1, 2 );\n\tconst distanceMaterial = new THREE.MeshBasicMaterial( { color: hexColor, fog: false, wireframe: true, opacity: 0.1, transparent: true } );\n\n\tthis.lightSphere = new THREE.Mesh( bulbGeometry, bulbMaterial );\n\tthis.lightDistance = new THREE.Mesh( distanceGeometry, distanceMaterial );\n\n\tconst d = light.distance;\n\n\tif ( d === 0.0 ) {\n\n\t\tthis.lightDistance.visible = false;\n\n\t} else {\n\n\t\tthis.lightDistance.scale.set( d, d, d );\n\n\t}\n\n\tthis.add( this.lightDistance );\n\t*/\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n\tupdate() {\n\n\t\tthis.light.updateWorldMatrix( true, false );\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tthis.material.color.copy( this.light.color );\n\n\t\t}\n\n\t\t/*\n\t\tconst d = this.light.distance;\n\n\t\tif ( d === 0.0 ) {\n\n\t\t\tthis.lightDistance.visible = false;\n\n\t\t} else {\n\n\t\t\tthis.lightDistance.visible = true;\n\t\t\tthis.lightDistance.scale.set( d, d, d );\n\n\t\t}\n\t\t*/\n\n\t}\n\n}\n\nconst _vector$1 = /*@__PURE__*/ new Vector3();\nconst _color1 = /*@__PURE__*/ new Color();\nconst _color2 = /*@__PURE__*/ new Color();\n\nclass HemisphereLightHelper extends Object3D {\n\n\tconstructor( light, size, color ) {\n\n\t\tsuper();\n\n\t\tthis.light = light;\n\n\t\tthis.matrix = light.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.color = color;\n\n\t\tthis.type = 'HemisphereLightHelper';\n\n\t\tconst geometry = new OctahedronGeometry( size );\n\t\tgeometry.rotateY( Math.PI * 0.5 );\n\n\t\tthis.material = new MeshBasicMaterial( { wireframe: true, fog: false, toneMapped: false } );\n\t\tif ( this.color === undefined ) this.material.vertexColors = true;\n\n\t\tconst position = geometry.getAttribute( 'position' );\n\t\tconst colors = new Float32Array( position.count * 3 );\n\n\t\tgeometry.setAttribute( 'color', new BufferAttribute( colors, 3 ) );\n\n\t\tthis.add( new Mesh( geometry, this.material ) );\n\n\t\tthis.update();\n\n\t}\n\n\tdispose() {\n\n\t\tthis.children[ 0 ].geometry.dispose();\n\t\tthis.children[ 0 ].material.dispose();\n\n\t}\n\n\tupdate() {\n\n\t\tconst mesh = this.children[ 0 ];\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tconst colors = mesh.geometry.getAttribute( 'color' );\n\n\t\t\t_color1.copy( this.light.color );\n\t\t\t_color2.copy( this.light.groundColor );\n\n\t\t\tfor ( let i = 0, l = colors.count; i < l; i ++ ) {\n\n\t\t\t\tconst color = ( i < ( l / 2 ) ) ? _color1 : _color2;\n\n\t\t\t\tcolors.setXYZ( i, color.r, color.g, color.b );\n\n\t\t\t}\n\n\t\t\tcolors.needsUpdate = true;\n\n\t\t}\n\n\t\tthis.light.updateWorldMatrix( true, false );\n\n\t\tmesh.lookAt( _vector$1.setFromMatrixPosition( this.light.matrixWorld ).negate() );\n\n\t}\n\n}\n\nclass GridHelper extends LineSegments {\n\n\tconstructor( size = 10, divisions = 10, color1 = 0x444444, color2 = 0x888888 ) {\n\n\t\tcolor1 = new Color( color1 );\n\t\tcolor2 = new Color( color2 );\n\n\t\tconst center = divisions / 2;\n\t\tconst step = size / divisions;\n\t\tconst halfSize = size / 2;\n\n\t\tconst vertices = [], colors = [];\n\n\t\tfor ( let i = 0, j = 0, k = - halfSize; i <= divisions; i ++, k += step ) {\n\n\t\t\tvertices.push( - halfSize, 0, k, halfSize, 0, k );\n\t\t\tvertices.push( k, 0, - halfSize, k, 0, halfSize );\n\n\t\t\tconst color = i === center ? color1 : color2;\n\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\n\t\t}\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, toneMapped: false } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'GridHelper';\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\nclass PolarGridHelper extends LineSegments {\n\n\tconstructor( radius = 10, sectors = 16, rings = 8, divisions = 64, color1 = 0x444444, color2 = 0x888888 ) {\n\n\t\tcolor1 = new Color( color1 );\n\t\tcolor2 = new Color( color2 );\n\n\t\tconst vertices = [];\n\t\tconst colors = [];\n\n\t\t// create the sectors\n\n\t\tif ( sectors > 1 ) {\n\n\t\t\tfor ( let i = 0; i < sectors; i ++ ) {\n\n\t\t\t\tconst v = ( i / sectors ) * ( Math.PI * 2 );\n\n\t\t\t\tconst x = Math.sin( v ) * radius;\n\t\t\t\tconst z = Math.cos( v ) * radius;\n\n\t\t\t\tvertices.push( 0, 0, 0 );\n\t\t\t\tvertices.push( x, 0, z );\n\n\t\t\t\tconst color = ( i & 1 ) ? color1 : color2;\n\n\t\t\t\tcolors.push( color.r, color.g, color.b );\n\t\t\t\tcolors.push( color.r, color.g, color.b );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// create the rings\n\n\t\tfor ( let i = 0; i < rings; i ++ ) {\n\n\t\t\tconst color = ( i & 1 ) ? color1 : color2;\n\n\t\t\tconst r = radius - ( radius / rings * i );\n\n\t\t\tfor ( let j = 0; j < divisions; j ++ ) {\n\n\t\t\t\t// first vertex\n\n\t\t\t\tlet v = ( j / divisions ) * ( Math.PI * 2 );\n\n\t\t\t\tlet x = Math.sin( v ) * r;\n\t\t\t\tlet z = Math.cos( v ) * r;\n\n\t\t\t\tvertices.push( x, 0, z );\n\t\t\t\tcolors.push( color.r, color.g, color.b );\n\n\t\t\t\t// second vertex\n\n\t\t\t\tv = ( ( j + 1 ) / divisions ) * ( Math.PI * 2 );\n\n\t\t\t\tx = Math.sin( v ) * r;\n\t\t\t\tz = Math.cos( v ) * r;\n\n\t\t\t\tvertices.push( x, 0, z );\n\t\t\t\tcolors.push( color.r, color.g, color.b );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, toneMapped: false } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'PolarGridHelper';\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\nconst _v1 = /*@__PURE__*/ new Vector3();\nconst _v2 = /*@__PURE__*/ new Vector3();\nconst _v3 = /*@__PURE__*/ new Vector3();\n\nclass DirectionalLightHelper extends Object3D {\n\n\tconstructor( light, size, color ) {\n\n\t\tsuper();\n\n\t\tthis.light = light;\n\n\t\tthis.matrix = light.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.color = color;\n\n\t\tthis.type = 'DirectionalLightHelper';\n\n\t\tif ( size === undefined ) size = 1;\n\n\t\tlet geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( [\n\t\t\t- size, size, 0,\n\t\t\tsize, size, 0,\n\t\t\tsize, - size, 0,\n\t\t\t- size, - size, 0,\n\t\t\t- size, size, 0\n\t\t], 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { fog: false, toneMapped: false } );\n\n\t\tthis.lightPlane = new Line( geometry, material );\n\t\tthis.add( this.lightPlane );\n\n\t\tgeometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( [ 0, 0, 0, 0, 0, 1 ], 3 ) );\n\n\t\tthis.targetLine = new Line( geometry, material );\n\t\tthis.add( this.targetLine );\n\n\t\tthis.update();\n\n\t}\n\n\tdispose() {\n\n\t\tthis.lightPlane.geometry.dispose();\n\t\tthis.lightPlane.material.dispose();\n\t\tthis.targetLine.geometry.dispose();\n\t\tthis.targetLine.material.dispose();\n\n\t}\n\n\tupdate() {\n\n\t\tthis.light.updateWorldMatrix( true, false );\n\t\tthis.light.target.updateWorldMatrix( true, false );\n\n\t\t_v1.setFromMatrixPosition( this.light.matrixWorld );\n\t\t_v2.setFromMatrixPosition( this.light.target.matrixWorld );\n\t\t_v3.subVectors( _v2, _v1 );\n\n\t\tthis.lightPlane.lookAt( _v2 );\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.lightPlane.material.color.set( this.color );\n\t\t\tthis.targetLine.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tthis.lightPlane.material.color.copy( this.light.color );\n\t\t\tthis.targetLine.material.color.copy( this.light.color );\n\n\t\t}\n\n\t\tthis.targetLine.lookAt( _v2 );\n\t\tthis.targetLine.scale.z = _v3.length();\n\n\t}\n\n}\n\nconst _vector = /*@__PURE__*/ new Vector3();\nconst _camera = /*@__PURE__*/ new Camera();\n\n/**\n *\t- shows frustum, line of sight and up of the camera\n *\t- suitable for fast updates\n * \t- based on frustum visualization in lightgl.js shadowmap example\n *\t\thttps://github.com/evanw/lightgl.js/blob/master/tests/shadowmap.html\n */\n\nclass CameraHelper extends LineSegments {\n\n\tconstructor( camera ) {\n\n\t\tconst geometry = new BufferGeometry();\n\t\tconst material = new LineBasicMaterial( { color: 0xffffff, vertexColors: true, toneMapped: false } );\n\n\t\tconst vertices = [];\n\t\tconst colors = [];\n\n\t\tconst pointMap = {};\n\n\t\t// near\n\n\t\taddLine( 'n1', 'n2' );\n\t\taddLine( 'n2', 'n4' );\n\t\taddLine( 'n4', 'n3' );\n\t\taddLine( 'n3', 'n1' );\n\n\t\t// far\n\n\t\taddLine( 'f1', 'f2' );\n\t\taddLine( 'f2', 'f4' );\n\t\taddLine( 'f4', 'f3' );\n\t\taddLine( 'f3', 'f1' );\n\n\t\t// sides\n\n\t\taddLine( 'n1', 'f1' );\n\t\taddLine( 'n2', 'f2' );\n\t\taddLine( 'n3', 'f3' );\n\t\taddLine( 'n4', 'f4' );\n\n\t\t// cone\n\n\t\taddLine( 'p', 'n1' );\n\t\taddLine( 'p', 'n2' );\n\t\taddLine( 'p', 'n3' );\n\t\taddLine( 'p', 'n4' );\n\n\t\t// up\n\n\t\taddLine( 'u1', 'u2' );\n\t\taddLine( 'u2', 'u3' );\n\t\taddLine( 'u3', 'u1' );\n\n\t\t// target\n\n\t\taddLine( 'c', 't' );\n\t\taddLine( 'p', 'c' );\n\n\t\t// cross\n\n\t\taddLine( 'cn1', 'cn2' );\n\t\taddLine( 'cn3', 'cn4' );\n\n\t\taddLine( 'cf1', 'cf2' );\n\t\taddLine( 'cf3', 'cf4' );\n\n\t\tfunction addLine( a, b ) {\n\n\t\t\taddPoint( a );\n\t\t\taddPoint( b );\n\n\t\t}\n\n\t\tfunction addPoint( id ) {\n\n\t\t\tvertices.push( 0, 0, 0 );\n\t\t\tcolors.push( 0, 0, 0 );\n\n\t\t\tif ( pointMap[ id ] === undefined ) {\n\n\t\t\t\tpointMap[ id ] = [];\n\n\t\t\t}\n\n\t\t\tpointMap[ id ].push( ( vertices.length / 3 ) - 1 );\n\n\t\t}\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'CameraHelper';\n\n\t\tthis.camera = camera;\n\t\tif ( this.camera.updateProjectionMatrix ) this.camera.updateProjectionMatrix();\n\n\t\tthis.matrix = camera.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.pointMap = pointMap;\n\n\t\tthis.update();\n\n\t\t// colors\n\n\t\tconst colorFrustum = new Color( 0xffaa00 );\n\t\tconst colorCone = new Color( 0xff0000 );\n\t\tconst colorUp = new Color( 0x00aaff );\n\t\tconst colorTarget = new Color( 0xffffff );\n\t\tconst colorCross = new Color( 0x333333 );\n\n\t\tthis.setColors( colorFrustum, colorCone, colorUp, colorTarget, colorCross );\n\n\t}\n\n\tsetColors( frustum, cone, up, target, cross ) {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst colorAttribute = geometry.getAttribute( 'color' );\n\n\t\t// near\n\n\t\tcolorAttribute.setXYZ( 0, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 1, frustum.r, frustum.g, frustum.b ); // n1, n2\n\t\tcolorAttribute.setXYZ( 2, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 3, frustum.r, frustum.g, frustum.b ); // n2, n4\n\t\tcolorAttribute.setXYZ( 4, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 5, frustum.r, frustum.g, frustum.b ); // n4, n3\n\t\tcolorAttribute.setXYZ( 6, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 7, frustum.r, frustum.g, frustum.b ); // n3, n1\n\n\t\t// far\n\n\t\tcolorAttribute.setXYZ( 8, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 9, frustum.r, frustum.g, frustum.b ); // f1, f2\n\t\tcolorAttribute.setXYZ( 10, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 11, frustum.r, frustum.g, frustum.b ); // f2, f4\n\t\tcolorAttribute.setXYZ( 12, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 13, frustum.r, frustum.g, frustum.b ); // f4, f3\n\t\tcolorAttribute.setXYZ( 14, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 15, frustum.r, frustum.g, frustum.b ); // f3, f1\n\n\t\t// sides\n\n\t\tcolorAttribute.setXYZ( 16, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 17, frustum.r, frustum.g, frustum.b ); // n1, f1\n\t\tcolorAttribute.setXYZ( 18, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 19, frustum.r, frustum.g, frustum.b ); // n2, f2\n\t\tcolorAttribute.setXYZ( 20, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 21, frustum.r, frustum.g, frustum.b ); // n3, f3\n\t\tcolorAttribute.setXYZ( 22, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 23, frustum.r, frustum.g, frustum.b ); // n4, f4\n\n\t\t// cone\n\n\t\tcolorAttribute.setXYZ( 24, cone.r, cone.g, cone.b ); colorAttribute.setXYZ( 25, cone.r, cone.g, cone.b ); // p, n1\n\t\tcolorAttribute.setXYZ( 26, cone.r, cone.g, cone.b ); colorAttribute.setXYZ( 27, cone.r, cone.g, cone.b ); // p, n2\n\t\tcolorAttribute.setXYZ( 28, cone.r, cone.g, cone.b ); colorAttribute.setXYZ( 29, cone.r, cone.g, cone.b ); // p, n3\n\t\tcolorAttribute.setXYZ( 30, cone.r, cone.g, cone.b ); colorAttribute.setXYZ( 31, cone.r, cone.g, cone.b ); // p, n4\n\n\t\t// up\n\n\t\tcolorAttribute.setXYZ( 32, up.r, up.g, up.b ); colorAttribute.setXYZ( 33, up.r, up.g, up.b ); // u1, u2\n\t\tcolorAttribute.setXYZ( 34, up.r, up.g, up.b ); colorAttribute.setXYZ( 35, up.r, up.g, up.b ); // u2, u3\n\t\tcolorAttribute.setXYZ( 36, up.r, up.g, up.b ); colorAttribute.setXYZ( 37, up.r, up.g, up.b ); // u3, u1\n\n\t\t// target\n\n\t\tcolorAttribute.setXYZ( 38, target.r, target.g, target.b ); colorAttribute.setXYZ( 39, target.r, target.g, target.b ); // c, t\n\t\tcolorAttribute.setXYZ( 40, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 41, cross.r, cross.g, cross.b ); // p, c\n\n\t\t// cross\n\n\t\tcolorAttribute.setXYZ( 42, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 43, cross.r, cross.g, cross.b ); // cn1, cn2\n\t\tcolorAttribute.setXYZ( 44, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 45, cross.r, cross.g, cross.b ); // cn3, cn4\n\n\t\tcolorAttribute.setXYZ( 46, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 47, cross.r, cross.g, cross.b ); // cf1, cf2\n\t\tcolorAttribute.setXYZ( 48, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 49, cross.r, cross.g, cross.b ); // cf3, cf4\n\n\t\tcolorAttribute.needsUpdate = true;\n\n\t}\n\n\tupdate() {\n\n\t\tconst geometry = this.geometry;\n\t\tconst pointMap = this.pointMap;\n\n\t\tconst w = 1, h = 1;\n\n\t\t// we need just camera projection matrix inverse\n\t\t// world matrix must be identity\n\n\t\t_camera.projectionMatrixInverse.copy( this.camera.projectionMatrixInverse );\n\n\t\t// Adjust z values based on coordinate system\n\t\tconst nearZ = this.camera.coordinateSystem === WebGLCoordinateSystem ? - 1 : 0;\n\n\t\t// center / target\n\t\tsetPoint( 'c', pointMap, geometry, _camera, 0, 0, nearZ );\n\t\tsetPoint( 't', pointMap, geometry, _camera, 0, 0, 1 );\n\n\t\t// near\n\n\t\tsetPoint( 'n1', pointMap, geometry, _camera, - w, - h, nearZ );\n\t\tsetPoint( 'n2', pointMap, geometry, _camera, w, - h, nearZ );\n\t\tsetPoint( 'n3', pointMap, geometry, _camera, - w, h, nearZ );\n\t\tsetPoint( 'n4', pointMap, geometry, _camera, w, h, nearZ );\n\n\t\t// far\n\n\t\tsetPoint( 'f1', pointMap, geometry, _camera, - w, - h, 1 );\n\t\tsetPoint( 'f2', pointMap, geometry, _camera, w, - h, 1 );\n\t\tsetPoint( 'f3', pointMap, geometry, _camera, - w, h, 1 );\n\t\tsetPoint( 'f4', pointMap, geometry, _camera, w, h, 1 );\n\n\t\t// up\n\n\t\tsetPoint( 'u1', pointMap, geometry, _camera, w * 0.7, h * 1.1, nearZ );\n\t\tsetPoint( 'u2', pointMap, geometry, _camera, - w * 0.7, h * 1.1, nearZ );\n\t\tsetPoint( 'u3', pointMap, geometry, _camera, 0, h * 2, nearZ );\n\n\t\t// cross\n\n\t\tsetPoint( 'cf1', pointMap, geometry, _camera, - w, 0, 1 );\n\t\tsetPoint( 'cf2', pointMap, geometry, _camera, w, 0, 1 );\n\t\tsetPoint( 'cf3', pointMap, geometry, _camera, 0, - h, 1 );\n\t\tsetPoint( 'cf4', pointMap, geometry, _camera, 0, h, 1 );\n\n\t\tsetPoint( 'cn1', pointMap, geometry, _camera, - w, 0, nearZ );\n\t\tsetPoint( 'cn2', pointMap, geometry, _camera, w, 0, nearZ );\n\t\tsetPoint( 'cn3', pointMap, geometry, _camera, 0, - h, nearZ );\n\t\tsetPoint( 'cn4', pointMap, geometry, _camera, 0, h, nearZ );\n\n\t\tgeometry.getAttribute( 'position' ).needsUpdate = true;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\n\nfunction setPoint( point, pointMap, geometry, camera, x, y, z ) {\n\n\t_vector.set( x, y, z ).unproject( camera );\n\n\tconst points = pointMap[ point ];\n\n\tif ( points !== undefined ) {\n\n\t\tconst position = geometry.getAttribute( 'position' );\n\n\t\tfor ( let i = 0, l = points.length; i < l; i ++ ) {\n\n\t\t\tposition.setXYZ( points[ i ], _vector.x, _vector.y, _vector.z );\n\n\t\t}\n\n\t}\n\n}\n\nconst _box = /*@__PURE__*/ new Box3();\n\nclass BoxHelper extends LineSegments {\n\n\tconstructor( object, color = 0xffff00 ) {\n\n\t\tconst indices = 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 ] );\n\t\tconst positions = new Float32Array( 8 * 3 );\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setIndex( new BufferAttribute( indices, 1 ) );\n\t\tgeometry.setAttribute( 'position', new BufferAttribute( positions, 3 ) );\n\n\t\tsuper( geometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );\n\n\t\tthis.object = object;\n\t\tthis.type = 'BoxHelper';\n\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.update();\n\n\t}\n\n\tupdate( object ) {\n\n\t\tif ( object !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.BoxHelper: .update() has no longer arguments.' );\n\n\t\t}\n\n\t\tif ( this.object !== undefined ) {\n\n\t\t\t_box.setFromObject( this.object );\n\n\t\t}\n\n\t\tif ( _box.isEmpty() ) return;\n\n\t\tconst min = _box.min;\n\t\tconst max = _box.max;\n\n\t\t/*\n\t\t\t5____4\n\t\t1/___0/|\n\t\t| 6__|_7\n\t\t2/___3/\n\n\t\t0: max.x, max.y, max.z\n\t\t1: min.x, max.y, max.z\n\t\t2: min.x, min.y, max.z\n\t\t3: max.x, min.y, max.z\n\t\t4: max.x, max.y, min.z\n\t\t5: min.x, max.y, min.z\n\t\t6: min.x, min.y, min.z\n\t\t7: max.x, min.y, min.z\n\t\t*/\n\n\t\tconst position = this.geometry.attributes.position;\n\t\tconst array = position.array;\n\n\t\tarray[ 0 ] = max.x; array[ 1 ] = max.y; array[ 2 ] = max.z;\n\t\tarray[ 3 ] = min.x; array[ 4 ] = max.y; array[ 5 ] = max.z;\n\t\tarray[ 6 ] = min.x; array[ 7 ] = min.y; array[ 8 ] = max.z;\n\t\tarray[ 9 ] = max.x; array[ 10 ] = min.y; array[ 11 ] = max.z;\n\t\tarray[ 12 ] = max.x; array[ 13 ] = max.y; array[ 14 ] = min.z;\n\t\tarray[ 15 ] = min.x; array[ 16 ] = max.y; array[ 17 ] = min.z;\n\t\tarray[ 18 ] = min.x; array[ 19 ] = min.y; array[ 20 ] = min.z;\n\t\tarray[ 21 ] = max.x; array[ 22 ] = min.y; array[ 23 ] = min.z;\n\n\t\tposition.needsUpdate = true;\n\n\t\tthis.geometry.computeBoundingSphere();\n\n\t}\n\n\tsetFromObject( object ) {\n\n\t\tthis.object = object;\n\t\tthis.update();\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.object = source.object;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\nclass Box3Helper extends LineSegments {\n\n\tconstructor( box, color = 0xffff00 ) {\n\n\t\tconst indices = 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 ] );\n\n\t\tconst positions = [ 1, 1, 1, - 1, 1, 1, - 1, - 1, 1, 1, - 1, 1, 1, 1, - 1, - 1, 1, - 1, - 1, - 1, - 1, 1, - 1, - 1 ];\n\n\t\tconst geometry = new BufferGeometry();\n\n\t\tgeometry.setIndex( new BufferAttribute( indices, 1 ) );\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );\n\n\t\tsuper( geometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );\n\n\t\tthis.box = box;\n\n\t\tthis.type = 'Box3Helper';\n\n\t\tthis.geometry.computeBoundingSphere();\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tconst box = this.box;\n\n\t\tif ( box.isEmpty() ) return;\n\n\t\tbox.getCenter( this.position );\n\n\t\tbox.getSize( this.scale );\n\n\t\tthis.scale.multiplyScalar( 0.5 );\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\nclass PlaneHelper extends Line {\n\n\tconstructor( plane, size = 1, hex = 0xffff00 ) {\n\n\t\tconst color = hex;\n\n\t\tconst positions = [ 1, - 1, 0, - 1, 1, 0, - 1, - 1, 0, 1, 1, 0, - 1, 1, 0, - 1, - 1, 0, 1, - 1, 0, 1, 1, 0 ];\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );\n\t\tgeometry.computeBoundingSphere();\n\n\t\tsuper( geometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );\n\n\t\tthis.type = 'PlaneHelper';\n\n\t\tthis.plane = plane;\n\n\t\tthis.size = size;\n\n\t\tconst positions2 = [ 1, 1, 0, - 1, 1, 0, - 1, - 1, 0, 1, 1, 0, - 1, - 1, 0, 1, - 1, 0 ];\n\n\t\tconst geometry2 = new BufferGeometry();\n\t\tgeometry2.setAttribute( 'position', new Float32BufferAttribute( positions2, 3 ) );\n\t\tgeometry2.computeBoundingSphere();\n\n\t\tthis.add( new Mesh( geometry2, new MeshBasicMaterial( { color: color, opacity: 0.2, transparent: true, depthWrite: false, toneMapped: false } ) ) );\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tthis.position.set( 0, 0, 0 );\n\n\t\tthis.scale.set( 0.5 * this.size, 0.5 * this.size, 1 );\n\n\t\tthis.lookAt( this.plane.normal );\n\n\t\tthis.translateZ( - this.plane.constant );\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\t\tthis.children[ 0 ].geometry.dispose();\n\t\tthis.children[ 0 ].material.dispose();\n\n\t}\n\n}\n\nconst _axis = /*@__PURE__*/ new Vector3();\nlet _lineGeometry, _coneGeometry;\n\nclass ArrowHelper extends Object3D {\n\n\t// dir is assumed to be normalized\n\n\tconstructor( dir = new Vector3( 0, 0, 1 ), origin = new Vector3( 0, 0, 0 ), length = 1, color = 0xffff00, headLength = length * 0.2, headWidth = headLength * 0.2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'ArrowHelper';\n\n\t\tif ( _lineGeometry === undefined ) {\n\n\t\t\t_lineGeometry = new BufferGeometry();\n\t\t\t_lineGeometry.setAttribute( 'position', new Float32BufferAttribute( [ 0, 0, 0, 0, 1, 0 ], 3 ) );\n\n\t\t\t_coneGeometry = new CylinderGeometry( 0, 0.5, 1, 5, 1 );\n\t\t\t_coneGeometry.translate( 0, - 0.5, 0 );\n\n\t\t}\n\n\t\tthis.position.copy( origin );\n\n\t\tthis.line = new Line( _lineGeometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );\n\t\tthis.line.matrixAutoUpdate = false;\n\t\tthis.add( this.line );\n\n\t\tthis.cone = new Mesh( _coneGeometry, new MeshBasicMaterial( { color: color, toneMapped: false } ) );\n\t\tthis.cone.matrixAutoUpdate = false;\n\t\tthis.add( this.cone );\n\n\t\tthis.setDirection( dir );\n\t\tthis.setLength( length, headLength, headWidth );\n\n\t}\n\n\tsetDirection( dir ) {\n\n\t\t// dir is assumed to be normalized\n\n\t\tif ( dir.y > 0.99999 ) {\n\n\t\t\tthis.quaternion.set( 0, 0, 0, 1 );\n\n\t\t} else if ( dir.y < - 0.99999 ) {\n\n\t\t\tthis.quaternion.set( 1, 0, 0, 0 );\n\n\t\t} else {\n\n\t\t\t_axis.set( dir.z, 0, - dir.x ).normalize();\n\n\t\t\tconst radians = Math.acos( dir.y );\n\n\t\t\tthis.quaternion.setFromAxisAngle( _axis, radians );\n\n\t\t}\n\n\t}\n\n\tsetLength( length, headLength = length * 0.2, headWidth = headLength * 0.2 ) {\n\n\t\tthis.line.scale.set( 1, Math.max( 0.0001, length - headLength ), 1 ); // see #17458\n\t\tthis.line.updateMatrix();\n\n\t\tthis.cone.scale.set( headWidth, headLength, headWidth );\n\t\tthis.cone.position.y = length;\n\t\tthis.cone.updateMatrix();\n\n\t}\n\n\tsetColor( color ) {\n\n\t\tthis.line.material.color.set( color );\n\t\tthis.cone.material.color.set( color );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source, false );\n\n\t\tthis.line.copy( source.line );\n\t\tthis.cone.copy( source.cone );\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.line.geometry.dispose();\n\t\tthis.line.material.dispose();\n\t\tthis.cone.geometry.dispose();\n\t\tthis.cone.material.dispose();\n\n\t}\n\n}\n\nclass AxesHelper extends LineSegments {\n\n\tconstructor( size = 1 ) {\n\n\t\tconst vertices = [\n\t\t\t0, 0, 0,\tsize, 0, 0,\n\t\t\t0, 0, 0,\t0, size, 0,\n\t\t\t0, 0, 0,\t0, 0, size\n\t\t];\n\n\t\tconst colors = [\n\t\t\t1, 0, 0,\t1, 0.6, 0,\n\t\t\t0, 1, 0,\t0.6, 1, 0,\n\t\t\t0, 0, 1,\t0, 0.6, 1\n\t\t];\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, toneMapped: false } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'AxesHelper';\n\n\t}\n\n\tsetColors( xAxisColor, yAxisColor, zAxisColor ) {\n\n\t\tconst color = new Color();\n\t\tconst array = this.geometry.attributes.color.array;\n\n\t\tcolor.set( xAxisColor );\n\t\tcolor.toArray( array, 0 );\n\t\tcolor.toArray( array, 3 );\n\n\t\tcolor.set( yAxisColor );\n\t\tcolor.toArray( array, 6 );\n\t\tcolor.toArray( array, 9 );\n\n\t\tcolor.set( zAxisColor );\n\t\tcolor.toArray( array, 12 );\n\t\tcolor.toArray( array, 15 );\n\n\t\tthis.geometry.attributes.color.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\nclass ShapePath {\n\n\tconstructor() {\n\n\t\tthis.type = 'ShapePath';\n\n\t\tthis.color = new Color();\n\n\t\tthis.subPaths = [];\n\t\tthis.currentPath = null;\n\n\t}\n\n\tmoveTo( x, y ) {\n\n\t\tthis.currentPath = new Path();\n\t\tthis.subPaths.push( this.currentPath );\n\t\tthis.currentPath.moveTo( x, y );\n\n\t\treturn this;\n\n\t}\n\n\tlineTo( x, y ) {\n\n\t\tthis.currentPath.lineTo( x, y );\n\n\t\treturn this;\n\n\t}\n\n\tquadraticCurveTo( aCPx, aCPy, aX, aY ) {\n\n\t\tthis.currentPath.quadraticCurveTo( aCPx, aCPy, aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tbezierCurveTo( aCP1x, aCP1y, aCP2x, aCP2y, aX, aY ) {\n\n\t\tthis.currentPath.bezierCurveTo( aCP1x, aCP1y, aCP2x, aCP2y, aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tsplineThru( pts ) {\n\n\t\tthis.currentPath.splineThru( pts );\n\n\t\treturn this;\n\n\t}\n\n\ttoShapes( isCCW ) {\n\n\t\tfunction toShapesNoHoles( inSubpaths ) {\n\n\t\t\tconst shapes = [];\n\n\t\t\tfor ( let i = 0, l = inSubpaths.length; i < l; i ++ ) {\n\n\t\t\t\tconst tmpPath = inSubpaths[ i ];\n\n\t\t\t\tconst tmpShape = new Shape();\n\t\t\t\ttmpShape.curves = tmpPath.curves;\n\n\t\t\t\tshapes.push( tmpShape );\n\n\t\t\t}\n\n\t\t\treturn shapes;\n\n\t\t}\n\n\t\tfunction isPointInsidePolygon( inPt, inPolygon ) {\n\n\t\t\tconst polyLen = inPolygon.length;\n\n\t\t\t// inPt on polygon contour => immediate success or\n\t\t\t// toggling of inside/outside at every single! intersection point of an edge\n\t\t\t// with the horizontal line through inPt, left of inPt\n\t\t\t// not counting lowerY endpoints of edges and whole edges on that line\n\t\t\tlet inside = false;\n\t\t\tfor ( let p = polyLen - 1, q = 0; q < polyLen; p = q ++ ) {\n\n\t\t\t\tlet edgeLowPt = inPolygon[ p ];\n\t\t\t\tlet edgeHighPt = inPolygon[ q ];\n\n\t\t\t\tlet edgeDx = edgeHighPt.x - edgeLowPt.x;\n\t\t\t\tlet edgeDy = edgeHighPt.y - edgeLowPt.y;\n\n\t\t\t\tif ( Math.abs( edgeDy ) > Number.EPSILON ) {\n\n\t\t\t\t\t// not parallel\n\t\t\t\t\tif ( edgeDy < 0 ) {\n\n\t\t\t\t\t\tedgeLowPt = inPolygon[ q ]; edgeDx = - edgeDx;\n\t\t\t\t\t\tedgeHighPt = inPolygon[ p ]; edgeDy = - edgeDy;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ( inPt.y < edgeLowPt.y ) || ( inPt.y > edgeHighPt.y ) ) \t\tcontinue;\n\n\t\t\t\t\tif ( inPt.y === edgeLowPt.y ) {\n\n\t\t\t\t\t\tif ( inPt.x === edgeLowPt.x )\t\treturn\ttrue;\t\t// inPt is on contour ?\n\t\t\t\t\t\t// continue;\t\t\t\t// no intersection or edgeLowPt => doesn't count !!!\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst perpEdge = edgeDy * ( inPt.x - edgeLowPt.x ) - edgeDx * ( inPt.y - edgeLowPt.y );\n\t\t\t\t\t\tif ( perpEdge === 0 )\t\t\t\treturn\ttrue;\t\t// inPt is on contour ?\n\t\t\t\t\t\tif ( perpEdge < 0 ) \t\t\t\tcontinue;\n\t\t\t\t\t\tinside = ! inside;\t\t// true intersection left of inPt\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// parallel or collinear\n\t\t\t\t\tif ( inPt.y !== edgeLowPt.y ) \t\tcontinue;\t\t\t// parallel\n\t\t\t\t\t// edge lies on the same horizontal line as inPt\n\t\t\t\t\tif ( ( ( edgeHighPt.x <= inPt.x ) && ( inPt.x <= edgeLowPt.x ) ) ||\n\t\t\t\t\t\t ( ( edgeLowPt.x <= inPt.x ) && ( inPt.x <= edgeHighPt.x ) ) )\t\treturn\ttrue;\t// inPt: Point on contour !\n\t\t\t\t\t// continue;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn\tinside;\n\n\t\t}\n\n\t\tconst isClockWise = ShapeUtils.isClockWise;\n\n\t\tconst subPaths = this.subPaths;\n\t\tif ( subPaths.length === 0 ) return [];\n\n\t\tlet solid, tmpPath, tmpShape;\n\t\tconst shapes = [];\n\n\t\tif ( subPaths.length === 1 ) {\n\n\t\t\ttmpPath = subPaths[ 0 ];\n\t\t\ttmpShape = new Shape();\n\t\t\ttmpShape.curves = tmpPath.curves;\n\t\t\tshapes.push( tmpShape );\n\t\t\treturn shapes;\n\n\t\t}\n\n\t\tlet holesFirst = ! isClockWise( subPaths[ 0 ].getPoints() );\n\t\tholesFirst = isCCW ? ! holesFirst : holesFirst;\n\n\t\t// console.log(\"Holes first\", holesFirst);\n\n\t\tconst betterShapeHoles = [];\n\t\tconst newShapes = [];\n\t\tlet newShapeHoles = [];\n\t\tlet mainIdx = 0;\n\t\tlet tmpPoints;\n\n\t\tnewShapes[ mainIdx ] = undefined;\n\t\tnewShapeHoles[ mainIdx ] = [];\n\n\t\tfor ( let i = 0, l = subPaths.length; i < l; i ++ ) {\n\n\t\t\ttmpPath = subPaths[ i ];\n\t\t\ttmpPoints = tmpPath.getPoints();\n\t\t\tsolid = isClockWise( tmpPoints );\n\t\t\tsolid = isCCW ? ! solid : solid;\n\n\t\t\tif ( solid ) {\n\n\t\t\t\tif ( ( ! holesFirst ) && ( newShapes[ mainIdx ] ) )\tmainIdx ++;\n\n\t\t\t\tnewShapes[ mainIdx ] = { s: new Shape(), p: tmpPoints };\n\t\t\t\tnewShapes[ mainIdx ].s.curves = tmpPath.curves;\n\n\t\t\t\tif ( holesFirst )\tmainIdx ++;\n\t\t\t\tnewShapeHoles[ mainIdx ] = [];\n\n\t\t\t\t//console.log('cw', i);\n\n\t\t\t} else {\n\n\t\t\t\tnewShapeHoles[ mainIdx ].push( { h: tmpPath, p: tmpPoints[ 0 ] } );\n\n\t\t\t\t//console.log('ccw', i);\n\n\t\t\t}\n\n\t\t}\n\n\t\t// only Holes? -> probably all Shapes with wrong orientation\n\t\tif ( ! newShapes[ 0 ] )\treturn\ttoShapesNoHoles( subPaths );\n\n\n\t\tif ( newShapes.length > 1 ) {\n\n\t\t\tlet ambiguous = false;\n\t\t\tlet toChange = 0;\n\n\t\t\tfor ( let sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx ++ ) {\n\n\t\t\t\tbetterShapeHoles[ sIdx ] = [];\n\n\t\t\t}\n\n\t\t\tfor ( let sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx ++ ) {\n\n\t\t\t\tconst sho = newShapeHoles[ sIdx ];\n\n\t\t\t\tfor ( let hIdx = 0; hIdx < sho.length; hIdx ++ ) {\n\n\t\t\t\t\tconst ho = sho[ hIdx ];\n\t\t\t\t\tlet hole_unassigned = true;\n\n\t\t\t\t\tfor ( let s2Idx = 0; s2Idx < newShapes.length; s2Idx ++ ) {\n\n\t\t\t\t\t\tif ( isPointInsidePolygon( ho.p, newShapes[ s2Idx ].p ) ) {\n\n\t\t\t\t\t\t\tif ( sIdx !== s2Idx )\ttoChange ++;\n\n\t\t\t\t\t\t\tif ( hole_unassigned ) {\n\n\t\t\t\t\t\t\t\thole_unassigned = false;\n\t\t\t\t\t\t\t\tbetterShapeHoles[ s2Idx ].push( ho );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tambiguous = true;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( hole_unassigned ) {\n\n\t\t\t\t\t\tbetterShapeHoles[ sIdx ].push( ho );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( toChange > 0 && ambiguous === false ) {\n\n\t\t\t\tnewShapeHoles = betterShapeHoles;\n\n\t\t\t}\n\n\t\t}\n\n\t\tlet tmpHoles;\n\n\t\tfor ( let i = 0, il = newShapes.length; i < il; i ++ ) {\n\n\t\t\ttmpShape = newShapes[ i ].s;\n\t\t\tshapes.push( tmpShape );\n\t\t\ttmpHoles = newShapeHoles[ i ];\n\n\t\t\tfor ( let j = 0, jl = tmpHoles.length; j < jl; j ++ ) {\n\n\t\t\t\ttmpShape.holes.push( tmpHoles[ j ].h );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//console.log(\"shape\", shapes);\n\n\t\treturn shapes;\n\n\t}\n\n}\n\nclass Controls extends EventDispatcher {\n\n\tconstructor( object, domElement = null ) {\n\n\t\tsuper();\n\n\t\tthis.object = object;\n\t\tthis.domElement = domElement;\n\n\t\tthis.enabled = true;\n\n\t\tthis.state = - 1;\n\n\t\tthis.keys = {};\n\t\tthis.mouseButtons = { LEFT: null, MIDDLE: null, RIGHT: null };\n\t\tthis.touches = { ONE: null, TWO: null };\n\n\t}\n\n\tconnect() {}\n\n\tdisconnect() {}\n\n\tdispose() {}\n\n\tupdate( /* delta */ ) {}\n\n}\n\nfunction contain( texture, aspect ) {\n\n\tconst imageAspect = ( texture.image && texture.image.width ) ? texture.image.width / texture.image.height : 1;\n\n\tif ( imageAspect > aspect ) {\n\n\t\ttexture.repeat.x = 1;\n\t\ttexture.repeat.y = imageAspect / aspect;\n\n\t\ttexture.offset.x = 0;\n\t\ttexture.offset.y = ( 1 - texture.repeat.y ) / 2;\n\n\t} else {\n\n\t\ttexture.repeat.x = aspect / imageAspect;\n\t\ttexture.repeat.y = 1;\n\n\t\ttexture.offset.x = ( 1 - texture.repeat.x ) / 2;\n\t\ttexture.offset.y = 0;\n\n\t}\n\n\treturn texture;\n\n}\n\nfunction cover( texture, aspect ) {\n\n\tconst imageAspect = ( texture.image && texture.image.width ) ? texture.image.width / texture.image.height : 1;\n\n\tif ( imageAspect > aspect ) {\n\n\t\ttexture.repeat.x = aspect / imageAspect;\n\t\ttexture.repeat.y = 1;\n\n\t\ttexture.offset.x = ( 1 - texture.repeat.x ) / 2;\n\t\ttexture.offset.y = 0;\n\n\t} else {\n\n\t\ttexture.repeat.x = 1;\n\t\ttexture.repeat.y = imageAspect / aspect;\n\n\t\ttexture.offset.x = 0;\n\t\ttexture.offset.y = ( 1 - texture.repeat.y ) / 2;\n\n\t}\n\n\treturn texture;\n\n}\n\nfunction fill( texture ) {\n\n\ttexture.repeat.x = 1;\n\ttexture.repeat.y = 1;\n\n\ttexture.offset.x = 0;\n\ttexture.offset.y = 0;\n\n\treturn texture;\n\n}\n\n\n\n/**\n * Given the width, height, format, and type of a texture. Determines how many\n * bytes must be used to represent the texture.\n *\n * @param {Number} width\n * @param {Number} height\n * @param {Number} format\n * @param {Number} type\n * @return {Number} The number of bytes required to represent the texture.\n */\nfunction getByteLength( width, height, format, type ) {\n\n\tconst typeByteLength = getTextureTypeByteLength( type );\n\n\tswitch ( format ) {\n\n\t\t// https://registry.khronos.org/OpenGL-Refpages/es3.0/html/glTexImage2D.xhtml\n\t\tcase AlphaFormat:\n\t\t\treturn width * height;\n\t\tcase LuminanceFormat:\n\t\t\treturn width * height;\n\t\tcase LuminanceAlphaFormat:\n\t\t\treturn width * height * 2;\n\t\tcase RedFormat:\n\t\t\treturn ( ( width * height ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RedIntegerFormat:\n\t\t\treturn ( ( width * height ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RGFormat:\n\t\t\treturn ( ( width * height * 2 ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RGIntegerFormat:\n\t\t\treturn ( ( width * height * 2 ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RGBFormat:\n\t\t\treturn ( ( width * height * 3 ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RGBAFormat:\n\t\t\treturn ( ( width * height * 4 ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RGBAIntegerFormat:\n\t\t\treturn ( ( width * height * 4 ) / typeByteLength.components ) * typeByteLength.byteLength;\n\n\t\t// https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_s3tc_srgb/\n\t\tcase RGB_S3TC_DXT1_Format:\n\t\tcase RGBA_S3TC_DXT1_Format:\n\t\t\treturn Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 8;\n\t\tcase RGBA_S3TC_DXT3_Format:\n\t\tcase RGBA_S3TC_DXT5_Format:\n\t\t\treturn Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 16;\n\n\t\t// https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_pvrtc/\n\t\tcase RGB_PVRTC_2BPPV1_Format:\n\t\tcase RGBA_PVRTC_2BPPV1_Format:\n\t\t\treturn ( Math.max( width, 16 ) * Math.max( height, 8 ) ) / 4;\n\t\tcase RGB_PVRTC_4BPPV1_Format:\n\t\tcase RGBA_PVRTC_4BPPV1_Format:\n\t\t\treturn ( Math.max( width, 8 ) * Math.max( height, 8 ) ) / 2;\n\n\t\t// https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_etc/\n\t\tcase RGB_ETC1_Format:\n\t\tcase RGB_ETC2_Format:\n\t\t\treturn Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 8;\n\t\tcase RGBA_ETC2_EAC_Format:\n\t\t\treturn Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 16;\n\n\t\t// https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_astc/\n\t\tcase RGBA_ASTC_4x4_Format:\n\t\t\treturn Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 16;\n\t\tcase RGBA_ASTC_5x4_Format:\n\t\t\treturn Math.floor( ( width + 4 ) / 5 ) * Math.floor( ( height + 3 ) / 4 ) * 16;\n\t\tcase RGBA_ASTC_5x5_Format:\n\t\t\treturn Math.floor( ( width + 4 ) / 5 ) * Math.floor( ( height + 4 ) / 5 ) * 16;\n\t\tcase RGBA_ASTC_6x5_Format:\n\t\t\treturn Math.floor( ( width + 5 ) / 6 ) * Math.floor( ( height + 4 ) / 5 ) * 16;\n\t\tcase RGBA_ASTC_6x6_Format:\n\t\t\treturn Math.floor( ( width + 5 ) / 6 ) * Math.floor( ( height + 5 ) / 6 ) * 16;\n\t\tcase RGBA_ASTC_8x5_Format:\n\t\t\treturn Math.floor( ( width + 7 ) / 8 ) * Math.floor( ( height + 4 ) / 5 ) * 16;\n\t\tcase RGBA_ASTC_8x6_Format:\n\t\t\treturn Math.floor( ( width + 7 ) / 8 ) * Math.floor( ( height + 5 ) / 6 ) * 16;\n\t\tcase RGBA_ASTC_8x8_Format:\n\t\t\treturn Math.floor( ( width + 7 ) / 8 ) * Math.floor( ( height + 7 ) / 8 ) * 16;\n\t\tcase RGBA_ASTC_10x5_Format:\n\t\t\treturn Math.floor( ( width + 9 ) / 10 ) * Math.floor( ( height + 4 ) / 5 ) * 16;\n\t\tcase RGBA_ASTC_10x6_Format:\n\t\t\treturn Math.floor( ( width + 9 ) / 10 ) * Math.floor( ( height + 5 ) / 6 ) * 16;\n\t\tcase RGBA_ASTC_10x8_Format:\n\t\t\treturn Math.floor( ( width + 9 ) / 10 ) * Math.floor( ( height + 7 ) / 8 ) * 16;\n\t\tcase RGBA_ASTC_10x10_Format:\n\t\t\treturn Math.floor( ( width + 9 ) / 10 ) * Math.floor( ( height + 9 ) / 10 ) * 16;\n\t\tcase RGBA_ASTC_12x10_Format:\n\t\t\treturn Math.floor( ( width + 11 ) / 12 ) * Math.floor( ( height + 9 ) / 10 ) * 16;\n\t\tcase RGBA_ASTC_12x12_Format:\n\t\t\treturn Math.floor( ( width + 11 ) / 12 ) * Math.floor( ( height + 11 ) / 12 ) * 16;\n\n\t\t// https://registry.khronos.org/webgl/extensions/EXT_texture_compression_bptc/\n\t\tcase RGBA_BPTC_Format:\n\t\tcase RGB_BPTC_SIGNED_Format:\n\t\tcase RGB_BPTC_UNSIGNED_Format:\n\t\t\treturn Math.ceil( width / 4 ) * Math.ceil( height / 4 ) * 16;\n\n\t\t// https://registry.khronos.org/webgl/extensions/EXT_texture_compression_rgtc/\n\t\tcase RED_RGTC1_Format:\n\t\tcase SIGNED_RED_RGTC1_Format:\n\t\t\treturn Math.ceil( width / 4 ) * Math.ceil( height / 4 ) * 8;\n\t\tcase RED_GREEN_RGTC2_Format:\n\t\tcase SIGNED_RED_GREEN_RGTC2_Format:\n\t\t\treturn Math.ceil( width / 4 ) * Math.ceil( height / 4 ) * 16;\n\n\t}\n\n\tthrow new Error(\n\t\t`Unable to determine texture byte length for ${format} format.`,\n\t);\n\n}\n\nfunction getTextureTypeByteLength( type ) {\n\n\tswitch ( type ) {\n\n\t\tcase UnsignedByteType:\n\t\tcase ByteType:\n\t\t\treturn { byteLength: 1, components: 1 };\n\t\tcase UnsignedShortType:\n\t\tcase ShortType:\n\t\tcase HalfFloatType:\n\t\t\treturn { byteLength: 2, components: 1 };\n\t\tcase UnsignedShort4444Type:\n\t\tcase UnsignedShort5551Type:\n\t\t\treturn { byteLength: 2, components: 4 };\n\t\tcase UnsignedIntType:\n\t\tcase IntType:\n\t\tcase FloatType:\n\t\t\treturn { byteLength: 4, components: 1 };\n\t\tcase UnsignedInt5999Type:\n\t\t\treturn { byteLength: 4, components: 3 };\n\n\t}\n\n\tthrow new Error( `Unknown texture type ${type}.` );\n\n}\n\nconst TextureUtils = {\n\tcontain,\n\tcover,\n\tfill,\n\tgetByteLength\n};\n\nif ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {\n\n\t__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'register', { detail: {\n\t\trevision: REVISION,\n\t} } ) );\n\n}\n\nif ( typeof window !== 'undefined' ) {\n\n\tif ( window.__THREE__ ) {\n\n\t\tconsole.warn( 'WARNING: Multiple instances of Three.js being imported.' );\n\n\t} else {\n\n\t\twindow.__THREE__ = REVISION;\n\n\t}\n\n}\n\nexport { ACESFilmicToneMapping, AddEquation, AddOperation, AdditiveAnimationBlendMode, AdditiveBlending, AgXToneMapping, AlphaFormat, AlwaysCompare, AlwaysDepth, AlwaysStencilFunc, AmbientLight, AnimationAction, AnimationClip, AnimationLoader, AnimationMixer, AnimationObjectGroup, AnimationUtils, ArcCurve, ArrayCamera, ArrowHelper, AttachedBindMode, Audio, AudioAnalyser, AudioContext, AudioListener, AudioLoader, AxesHelper, BackSide, BasicDepthPacking, BasicShadowMap, BatchedMesh, Bone, BooleanKeyframeTrack, Box2, Box3, Box3Helper, BoxGeometry, BoxHelper, BufferAttribute, BufferGeometry, BufferGeometryLoader, ByteType, Cache, Camera, CameraHelper, CanvasTexture, CapsuleGeometry, CatmullRomCurve3, CineonToneMapping, CircleGeometry, ClampToEdgeWrapping, Clock, Color, ColorKeyframeTrack, ColorManagement, CompressedArrayTexture, CompressedCubeTexture, CompressedTexture, CompressedTextureLoader, ConeGeometry, ConstantAlphaFactor, ConstantColorFactor, Controls, CubeCamera, CubeReflectionMapping, CubeRefractionMapping, CubeTexture, CubeTextureLoader, CubeUVReflectionMapping, CubicBezierCurve, CubicBezierCurve3, CubicInterpolant, CullFaceBack, CullFaceFront, CullFaceFrontBack, CullFaceNone, Curve, CurvePath, CustomBlending, CustomToneMapping, CylinderGeometry, Cylindrical, Data3DTexture, DataArrayTexture, DataTexture, DataTextureLoader, DataUtils, DecrementStencilOp, DecrementWrapStencilOp, DefaultLoadingManager, DepthFormat, DepthStencilFormat, DepthTexture, DetachedBindMode, DirectionalLight, DirectionalLightHelper, DiscreteInterpolant, DodecahedronGeometry, DoubleSide, DstAlphaFactor, DstColorFactor, DynamicCopyUsage, DynamicDrawUsage, DynamicReadUsage, EdgesGeometry, EllipseCurve, EqualCompare, EqualDepth, EqualStencilFunc, EquirectangularReflectionMapping, EquirectangularRefractionMapping, Euler, EventDispatcher, ExtrudeGeometry, FileLoader, Float16BufferAttribute, Float32BufferAttribute, FloatType, Fog, FogExp2, FramebufferTexture, FrontSide, Frustum, GLBufferAttribute, GLSL1, GLSL3, GreaterCompare, GreaterDepth, GreaterEqualCompare, GreaterEqualDepth, GreaterEqualStencilFunc, GreaterStencilFunc, GridHelper, Group, HalfFloatType, HemisphereLight, HemisphereLightHelper, IcosahedronGeometry, ImageBitmapLoader, ImageLoader, ImageUtils, IncrementStencilOp, IncrementWrapStencilOp, InstancedBufferAttribute, InstancedBufferGeometry, InstancedInterleavedBuffer, InstancedMesh, Int16BufferAttribute, Int32BufferAttribute, Int8BufferAttribute, IntType, InterleavedBuffer, InterleavedBufferAttribute, Interpolant, InterpolateDiscrete, InterpolateLinear, InterpolateSmooth, InvertStencilOp, KeepStencilOp, KeyframeTrack, LOD, LatheGeometry, Layers, LessCompare, LessDepth, LessEqualCompare, LessEqualDepth, LessEqualStencilFunc, LessStencilFunc, Light, LightProbe, Line, Line3, LineBasicMaterial, LineCurve, LineCurve3, LineDashedMaterial, LineLoop, LineSegments, LinearFilter, LinearInterpolant, LinearMipMapLinearFilter, LinearMipMapNearestFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, LinearSRGBColorSpace, LinearToneMapping, LinearTransfer, Loader, LoaderUtils, LoadingManager, LoopOnce, LoopPingPong, LoopRepeat, LuminanceAlphaFormat, LuminanceFormat, MOUSE, Material, MaterialLoader, MathUtils, Matrix2, Matrix3, Matrix4, MaxEquation, Mesh, MeshBasicMaterial, MeshDepthMaterial, MeshDistanceMaterial, MeshLambertMaterial, MeshMatcapMaterial, MeshNormalMaterial, MeshPhongMaterial, MeshPhysicalMaterial, MeshStandardMaterial, MeshToonMaterial, MinEquation, MirroredRepeatWrapping, MixOperation, MultiplyBlending, MultiplyOperation, NearestFilter, NearestMipMapLinearFilter, NearestMipMapNearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, NeutralToneMapping, NeverCompare, NeverDepth, NeverStencilFunc, NoBlending, NoColorSpace, NoToneMapping, NormalAnimationBlendMode, NormalBlending, NotEqualCompare, NotEqualDepth, NotEqualStencilFunc, NumberKeyframeTrack, Object3D, ObjectLoader, ObjectSpaceNormalMap, OctahedronGeometry, OneFactor, OneMinusConstantAlphaFactor, OneMinusConstantColorFactor, OneMinusDstAlphaFactor, OneMinusDstColorFactor, OneMinusSrcAlphaFactor, OneMinusSrcColorFactor, OrthographicCamera, PCFShadowMap, PCFSoftShadowMap, Path, PerspectiveCamera, Plane, PlaneGeometry, PlaneHelper, PointLight, PointLightHelper, Points, PointsMaterial, PolarGridHelper, PolyhedronGeometry, PositionalAudio, PropertyBinding, PropertyMixer, QuadraticBezierCurve, QuadraticBezierCurve3, Quaternion, QuaternionKeyframeTrack, QuaternionLinearInterpolant, RAD2DEG, RED_GREEN_RGTC2_Format, RED_RGTC1_Format, REVISION, RGBADepthPacking, RGBAFormat, RGBAIntegerFormat, RGBA_ASTC_10x10_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_BPTC_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGBDepthPacking, RGBFormat, RGBIntegerFormat, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGB_S3TC_DXT1_Format, RGDepthPacking, RGFormat, RGIntegerFormat, RawShaderMaterial, Ray, Raycaster, RectAreaLight, RedFormat, RedIntegerFormat, ReinhardToneMapping, RenderTarget, RenderTarget3D, RenderTargetArray, RepeatWrapping, ReplaceStencilOp, ReverseSubtractEquation, RingGeometry, SIGNED_RED_GREEN_RGTC2_Format, SIGNED_RED_RGTC1_Format, SRGBColorSpace, SRGBTransfer, Scene, ShaderMaterial, ShadowMaterial, Shape, ShapeGeometry, ShapePath, ShapeUtils, ShortType, Skeleton, SkeletonHelper, SkinnedMesh, Source, Sphere, SphereGeometry, Spherical, SphericalHarmonics3, SplineCurve, SpotLight, SpotLightHelper, Sprite, SpriteMaterial, SrcAlphaFactor, SrcAlphaSaturateFactor, SrcColorFactor, StaticCopyUsage, StaticDrawUsage, StaticReadUsage, StereoCamera, StreamCopyUsage, StreamDrawUsage, StreamReadUsage, StringKeyframeTrack, SubtractEquation, SubtractiveBlending, TOUCH, TangentSpaceNormalMap, TetrahedronGeometry, Texture, TextureLoader, TextureUtils, TorusGeometry, TorusKnotGeometry, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeGeometry, UVMapping, Uint16BufferAttribute, Uint32BufferAttribute, Uint8BufferAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsGroup, UniformsUtils, UnsignedByteType, UnsignedInt248Type, UnsignedInt5999Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, VSMShadowMap, Vector2, Vector3, Vector4, VectorKeyframeTrack, VideoTexture, WebGL3DRenderTarget, WebGLArrayRenderTarget, WebGLCoordinateSystem, WebGLCubeRenderTarget, WebGLRenderTarget, WebGPUCoordinateSystem, WireframeGeometry, WrapAroundEnding, ZeroCurvatureEnding, ZeroFactor, ZeroSlopeEnding, ZeroStencilOp, arrayNeedsUint32, cloneUniforms, createCanvasElement, createElementNS, getByteLength, getUnlitUniformColorSpace, mergeUniforms, probeAsync, toNormalizedProjectionMatrix, toReversedProjectionMatrix, warnOnce };\n","/**\n * @license\n * Copyright 2010-2024 Three.js Authors\n * SPDX-License-Identifier: MIT\n */\nimport { Color, Matrix3, Vector2, mergeUniforms, Vector3, CubeUVReflectionMapping, Mesh, BoxGeometry, ShaderMaterial, cloneUniforms, BackSide, ColorManagement, SRGBTransfer, PlaneGeometry, FrontSide, getUnlitUniformColorSpace, Euler, Matrix4, IntType, RGBAFormat, HalfFloatType, UnsignedByteType, FloatType, Plane, EquirectangularReflectionMapping, EquirectangularRefractionMapping, WebGLCubeRenderTarget, CubeReflectionMapping, CubeRefractionMapping, PerspectiveCamera, NoToneMapping, MeshBasicMaterial, BufferGeometry, BufferAttribute, WebGLRenderTarget, NoBlending, OrthographicCamera, LinearFilter, LinearSRGBColorSpace, warnOnce, arrayNeedsUint32, Uint32BufferAttribute, Uint16BufferAttribute, Vector4, DataArrayTexture, LessEqualCompare, Texture, DepthTexture, Data3DTexture, CubeTexture, GLSL3, CustomToneMapping, NeutralToneMapping, AgXToneMapping, ACESFilmicToneMapping, CineonToneMapping, ReinhardToneMapping, LinearToneMapping, PCFShadowMap, PCFSoftShadowMap, VSMShadowMap, LinearTransfer, AddOperation, MixOperation, MultiplyOperation, ObjectSpaceNormalMap, TangentSpaceNormalMap, NormalBlending, DoubleSide, UniformsUtils, Layers, Frustum, MeshDepthMaterial, RGBADepthPacking, MeshDistanceMaterial, NearestFilter, LessEqualDepth, AddEquation, SubtractEquation, ReverseSubtractEquation, ZeroFactor, OneFactor, SrcColorFactor, SrcAlphaFactor, SrcAlphaSaturateFactor, DstColorFactor, DstAlphaFactor, OneMinusSrcColorFactor, OneMinusSrcAlphaFactor, OneMinusDstColorFactor, OneMinusDstAlphaFactor, ConstantColorFactor, OneMinusConstantColorFactor, ConstantAlphaFactor, OneMinusConstantAlphaFactor, CustomBlending, MultiplyBlending, SubtractiveBlending, AdditiveBlending, CullFaceNone, CullFaceBack, CullFaceFront, NotEqualDepth, GreaterDepth, GreaterEqualDepth, EqualDepth, LessDepth, AlwaysDepth, NeverDepth, MinEquation, MaxEquation, RepeatWrapping, ClampToEdgeWrapping, MirroredRepeatWrapping, NearestMipmapNearestFilter, NearestMipmapLinearFilter, LinearMipmapNearestFilter, LinearMipmapLinearFilter, NeverCompare, AlwaysCompare, LessCompare, EqualCompare, GreaterEqualCompare, GreaterCompare, NotEqualCompare, NoColorSpace, DepthStencilFormat, getByteLength, UnsignedIntType, UnsignedInt248Type, UnsignedShortType, DepthFormat, createElementNS, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedInt5999Type, ByteType, ShortType, AlphaFormat, RGBFormat, LuminanceFormat, LuminanceAlphaFormat, RedFormat, RedIntegerFormat, RGFormat, RGIntegerFormat, RGBAIntegerFormat, RGB_S3TC_DXT1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGB_PVRTC_4BPPV1_Format, RGB_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGBA_PVRTC_2BPPV1_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGBA_ETC2_EAC_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_10x10_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_BPTC_Format, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, RED_RGTC1_Format, SIGNED_RED_RGTC1_Format, RED_GREEN_RGTC2_Format, SIGNED_RED_GREEN_RGTC2_Format, Group, EventDispatcher, ArrayCamera, RAD2DEG, createCanvasElement, SRGBColorSpace, REVISION, toNormalizedProjectionMatrix, toReversedProjectionMatrix, probeAsync, WebGLCoordinateSystem } from './three.core.js';\nexport { AdditiveAnimationBlendMode, AlwaysStencilFunc, AmbientLight, AnimationAction, AnimationClip, AnimationLoader, AnimationMixer, AnimationObjectGroup, AnimationUtils, ArcCurve, ArrowHelper, AttachedBindMode, Audio, AudioAnalyser, AudioContext, AudioListener, AudioLoader, AxesHelper, BasicDepthPacking, BasicShadowMap, BatchedMesh, Bone, BooleanKeyframeTrack, Box2, Box3, Box3Helper, BoxHelper, BufferGeometryLoader, Cache, Camera, CameraHelper, CanvasTexture, CapsuleGeometry, CatmullRomCurve3, CircleGeometry, Clock, ColorKeyframeTrack, CompressedArrayTexture, CompressedCubeTexture, CompressedTexture, CompressedTextureLoader, ConeGeometry, Controls, CubeCamera, CubeTextureLoader, CubicBezierCurve, CubicBezierCurve3, CubicInterpolant, CullFaceFrontBack, Curve, CurvePath, CylinderGeometry, Cylindrical, DataTexture, DataTextureLoader, DataUtils, DecrementStencilOp, DecrementWrapStencilOp, DefaultLoadingManager, DetachedBindMode, DirectionalLight, DirectionalLightHelper, DiscreteInterpolant, DodecahedronGeometry, DynamicCopyUsage, DynamicDrawUsage, DynamicReadUsage, EdgesGeometry, EllipseCurve, EqualStencilFunc, ExtrudeGeometry, FileLoader, Float16BufferAttribute, Float32BufferAttribute, Fog, FogExp2, FramebufferTexture, GLBufferAttribute, GLSL1, GreaterEqualStencilFunc, GreaterStencilFunc, GridHelper, HemisphereLight, HemisphereLightHelper, IcosahedronGeometry, ImageBitmapLoader, ImageLoader, ImageUtils, IncrementStencilOp, IncrementWrapStencilOp, InstancedBufferAttribute, InstancedBufferGeometry, InstancedInterleavedBuffer, InstancedMesh, Int16BufferAttribute, Int32BufferAttribute, Int8BufferAttribute, InterleavedBuffer, InterleavedBufferAttribute, Interpolant, InterpolateDiscrete, InterpolateLinear, InterpolateSmooth, InvertStencilOp, KeepStencilOp, KeyframeTrack, LOD, LatheGeometry, LessEqualStencilFunc, LessStencilFunc, Light, LightProbe, Line, Line3, LineBasicMaterial, LineCurve, LineCurve3, LineDashedMaterial, LineLoop, LineSegments, LinearInterpolant, LinearMipMapLinearFilter, LinearMipMapNearestFilter, Loader, LoaderUtils, LoadingManager, LoopOnce, LoopPingPong, LoopRepeat, MOUSE, Material, MaterialLoader, MathUtils, Matrix2, MeshLambertMaterial, MeshMatcapMaterial, MeshNormalMaterial, MeshPhongMaterial, MeshPhysicalMaterial, MeshStandardMaterial, MeshToonMaterial, NearestMipMapLinearFilter, NearestMipMapNearestFilter, NeverStencilFunc, NormalAnimationBlendMode, NotEqualStencilFunc, NumberKeyframeTrack, Object3D, ObjectLoader, OctahedronGeometry, Path, PlaneHelper, PointLight, PointLightHelper, Points, PointsMaterial, PolarGridHelper, PolyhedronGeometry, PositionalAudio, PropertyBinding, PropertyMixer, QuadraticBezierCurve, QuadraticBezierCurve3, Quaternion, QuaternionKeyframeTrack, QuaternionLinearInterpolant, RGBDepthPacking, RGBIntegerFormat, RGDepthPacking, RawShaderMaterial, Ray, Raycaster, RectAreaLight, RenderTarget, RenderTarget3D, RenderTargetArray, ReplaceStencilOp, RingGeometry, Scene, ShadowMaterial, Shape, ShapeGeometry, ShapePath, ShapeUtils, Skeleton, SkeletonHelper, SkinnedMesh, Source, Sphere, SphereGeometry, Spherical, SphericalHarmonics3, SplineCurve, SpotLight, SpotLightHelper, Sprite, SpriteMaterial, StaticCopyUsage, StaticDrawUsage, StaticReadUsage, StereoCamera, StreamCopyUsage, StreamDrawUsage, StreamReadUsage, StringKeyframeTrack, TOUCH, TetrahedronGeometry, TextureLoader, TextureUtils, TorusGeometry, TorusKnotGeometry, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeGeometry, UVMapping, Uint8BufferAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsGroup, VectorKeyframeTrack, VideoTexture, WebGL3DRenderTarget, WebGLArrayRenderTarget, WebGPUCoordinateSystem, WireframeGeometry, WrapAroundEnding, ZeroCurvatureEnding, ZeroSlopeEnding, ZeroStencilOp } from './three.core.js';\n\nfunction WebGLAnimation() {\n\n\tlet context = null;\n\tlet isAnimating = false;\n\tlet animationLoop = null;\n\tlet requestId = null;\n\n\tfunction onAnimationFrame( time, frame ) {\n\n\t\tanimationLoop( time, frame );\n\n\t\trequestId = context.requestAnimationFrame( onAnimationFrame );\n\n\t}\n\n\treturn {\n\n\t\tstart: function () {\n\n\t\t\tif ( isAnimating === true ) return;\n\t\t\tif ( animationLoop === null ) return;\n\n\t\t\trequestId = context.requestAnimationFrame( onAnimationFrame );\n\n\t\t\tisAnimating = true;\n\n\t\t},\n\n\t\tstop: function () {\n\n\t\t\tcontext.cancelAnimationFrame( requestId );\n\n\t\t\tisAnimating = false;\n\n\t\t},\n\n\t\tsetAnimationLoop: function ( callback ) {\n\n\t\t\tanimationLoop = callback;\n\n\t\t},\n\n\t\tsetContext: function ( value ) {\n\n\t\t\tcontext = value;\n\n\t\t}\n\n\t};\n\n}\n\nfunction WebGLAttributes( gl ) {\n\n\tconst buffers = new WeakMap();\n\n\tfunction createBuffer( attribute, bufferType ) {\n\n\t\tconst array = attribute.array;\n\t\tconst usage = attribute.usage;\n\t\tconst size = array.byteLength;\n\n\t\tconst buffer = gl.createBuffer();\n\n\t\tgl.bindBuffer( bufferType, buffer );\n\t\tgl.bufferData( bufferType, array, usage );\n\n\t\tattribute.onUploadCallback();\n\n\t\tlet type;\n\n\t\tif ( array instanceof Float32Array ) {\n\n\t\t\ttype = gl.FLOAT;\n\n\t\t} else if ( array instanceof Uint16Array ) {\n\n\t\t\tif ( attribute.isFloat16BufferAttribute ) {\n\n\t\t\t\ttype = gl.HALF_FLOAT;\n\n\t\t\t} else {\n\n\t\t\t\ttype = gl.UNSIGNED_SHORT;\n\n\t\t\t}\n\n\t\t} else if ( array instanceof Int16Array ) {\n\n\t\t\ttype = gl.SHORT;\n\n\t\t} else if ( array instanceof Uint32Array ) {\n\n\t\t\ttype = gl.UNSIGNED_INT;\n\n\t\t} else if ( array instanceof Int32Array ) {\n\n\t\t\ttype = gl.INT;\n\n\t\t} else if ( array instanceof Int8Array ) {\n\n\t\t\ttype = gl.BYTE;\n\n\t\t} else if ( array instanceof Uint8Array ) {\n\n\t\t\ttype = gl.UNSIGNED_BYTE;\n\n\t\t} else if ( array instanceof Uint8ClampedArray ) {\n\n\t\t\ttype = gl.UNSIGNED_BYTE;\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.WebGLAttributes: Unsupported buffer data format: ' + array );\n\n\t\t}\n\n\t\treturn {\n\t\t\tbuffer: buffer,\n\t\t\ttype: type,\n\t\t\tbytesPerElement: array.BYTES_PER_ELEMENT,\n\t\t\tversion: attribute.version,\n\t\t\tsize: size\n\t\t};\n\n\t}\n\n\tfunction updateBuffer( buffer, attribute, bufferType ) {\n\n\t\tconst array = attribute.array;\n\t\tconst updateRanges = attribute.updateRanges;\n\n\t\tgl.bindBuffer( bufferType, buffer );\n\n\t\tif ( updateRanges.length === 0 ) {\n\n\t\t\t// Not using update ranges\n\t\t\tgl.bufferSubData( bufferType, 0, array );\n\n\t\t} else {\n\n\t\t\t// Before applying update ranges, we merge any adjacent / overlapping\n\t\t\t// ranges to reduce load on `gl.bufferSubData`. Empirically, this has led\n\t\t\t// to performance improvements for applications which make heavy use of\n\t\t\t// update ranges. Likely due to GPU command overhead.\n\t\t\t//\n\t\t\t// Note that to reduce garbage collection between frames, we merge the\n\t\t\t// update ranges in-place. This is safe because this method will clear the\n\t\t\t// update ranges once updated.\n\n\t\t\tupdateRanges.sort( ( a, b ) => a.start - b.start );\n\n\t\t\t// To merge the update ranges in-place, we work from left to right in the\n\t\t\t// existing updateRanges array, merging ranges. This may result in a final\n\t\t\t// array which is smaller than the original. This index tracks the last\n\t\t\t// index representing a merged range, any data after this index can be\n\t\t\t// trimmed once the merge algorithm is completed.\n\t\t\tlet mergeIndex = 0;\n\n\t\t\tfor ( let i = 1; i < updateRanges.length; i ++ ) {\n\n\t\t\t\tconst previousRange = updateRanges[ mergeIndex ];\n\t\t\t\tconst range = updateRanges[ i ];\n\n\t\t\t\t// We add one here to merge adjacent ranges. This is safe because ranges\n\t\t\t\t// operate over positive integers.\n\t\t\t\tif ( range.start <= previousRange.start + previousRange.count + 1 ) {\n\n\t\t\t\t\tpreviousRange.count = Math.max(\n\t\t\t\t\t\tpreviousRange.count,\n\t\t\t\t\t\trange.start + range.count - previousRange.start\n\t\t\t\t\t);\n\n\t\t\t\t} else {\n\n\t\t\t\t\t++ mergeIndex;\n\t\t\t\t\tupdateRanges[ mergeIndex ] = range;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Trim the array to only contain the merged ranges.\n\t\t\tupdateRanges.length = mergeIndex + 1;\n\n\t\t\tfor ( let i = 0, l = updateRanges.length; i < l; i ++ ) {\n\n\t\t\t\tconst range = updateRanges[ i ];\n\n\t\t\t\tgl.bufferSubData( bufferType, range.start * array.BYTES_PER_ELEMENT,\n\t\t\t\t\tarray, range.start, range.count );\n\n\t\t\t}\n\n\t\t\tattribute.clearUpdateRanges();\n\n\t\t}\n\n\t\tattribute.onUploadCallback();\n\n\t}\n\n\t//\n\n\tfunction get( attribute ) {\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\treturn buffers.get( attribute );\n\n\t}\n\n\tfunction remove( attribute ) {\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\tconst data = buffers.get( attribute );\n\n\t\tif ( data ) {\n\n\t\t\tgl.deleteBuffer( data.buffer );\n\n\t\t\tbuffers.delete( attribute );\n\n\t\t}\n\n\t}\n\n\tfunction update( attribute, bufferType ) {\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\tif ( attribute.isGLBufferAttribute ) {\n\n\t\t\tconst cached = buffers.get( attribute );\n\n\t\t\tif ( ! cached || cached.version < attribute.version ) {\n\n\t\t\t\tbuffers.set( attribute, {\n\t\t\t\t\tbuffer: attribute.buffer,\n\t\t\t\t\ttype: attribute.type,\n\t\t\t\t\tbytesPerElement: attribute.elementSize,\n\t\t\t\t\tversion: attribute.version\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst data = buffers.get( attribute );\n\n\t\tif ( data === undefined ) {\n\n\t\t\tbuffers.set( attribute, createBuffer( attribute, bufferType ) );\n\n\t\t} else if ( data.version < attribute.version ) {\n\n\t\t\tif ( data.size !== attribute.array.byteLength ) {\n\n\t\t\t\tthrow new Error( 'THREE.WebGLAttributes: The size of the buffer attribute\\'s array buffer does not match the original size. Resizing buffer attributes is not supported.' );\n\n\t\t\t}\n\n\t\t\tupdateBuffer( data.buffer, attribute, bufferType );\n\n\t\t\tdata.version = attribute.version;\n\n\t\t}\n\n\t}\n\n\treturn {\n\n\t\tget: get,\n\t\tremove: remove,\n\t\tupdate: update\n\n\t};\n\n}\n\nvar alphahash_fragment = \"#ifdef USE_ALPHAHASH\\n\\tif ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\\n#endif\";\n\nvar alphahash_pars_fragment = \"#ifdef USE_ALPHAHASH\\n\\tconst float ALPHA_HASH_SCALE = 0.05;\\n\\tfloat hash2D( vec2 value ) {\\n\\t\\treturn fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\\n\\t}\\n\\tfloat hash3D( vec3 value ) {\\n\\t\\treturn hash2D( vec2( hash2D( value.xy ), value.z ) );\\n\\t}\\n\\tfloat getAlphaHashThreshold( vec3 position ) {\\n\\t\\tfloat maxDeriv = max(\\n\\t\\t\\tlength( dFdx( position.xyz ) ),\\n\\t\\t\\tlength( dFdy( position.xyz ) )\\n\\t\\t);\\n\\t\\tfloat pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\\n\\t\\tvec2 pixScales = vec2(\\n\\t\\t\\texp2( floor( log2( pixScale ) ) ),\\n\\t\\t\\texp2( ceil( log2( pixScale ) ) )\\n\\t\\t);\\n\\t\\tvec2 alpha = vec2(\\n\\t\\t\\thash3D( floor( pixScales.x * position.xyz ) ),\\n\\t\\t\\thash3D( floor( pixScales.y * position.xyz ) )\\n\\t\\t);\\n\\t\\tfloat lerpFactor = fract( log2( pixScale ) );\\n\\t\\tfloat x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\\n\\t\\tfloat a = min( lerpFactor, 1.0 - lerpFactor );\\n\\t\\tvec3 cases = vec3(\\n\\t\\t\\tx * x / ( 2.0 * a * ( 1.0 - a ) ),\\n\\t\\t\\t( x - 0.5 * a ) / ( 1.0 - a ),\\n\\t\\t\\t1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\\n\\t\\t);\\n\\t\\tfloat threshold = ( x < ( 1.0 - a ) )\\n\\t\\t\\t? ( ( x < a ) ? cases.x : cases.y )\\n\\t\\t\\t: cases.z;\\n\\t\\treturn clamp( threshold , 1.0e-6, 1.0 );\\n\\t}\\n#endif\";\n\nvar alphamap_fragment = \"#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\\n#endif\";\n\nvar alphamap_pars_fragment = \"#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\n\nvar alphatest_fragment = \"#ifdef USE_ALPHATEST\\n\\t#ifdef ALPHA_TO_COVERAGE\\n\\tdiffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );\\n\\tif ( diffuseColor.a == 0.0 ) discard;\\n\\t#else\\n\\tif ( diffuseColor.a < alphaTest ) discard;\\n\\t#endif\\n#endif\";\n\nvar alphatest_pars_fragment = \"#ifdef USE_ALPHATEST\\n\\tuniform float alphaTest;\\n#endif\";\n\nvar aomap_fragment = \"#ifdef USE_AOMAP\\n\\tfloat ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\\t#if defined( USE_CLEARCOAT ) \\n\\t\\tclearcoatSpecularIndirect *= ambientOcclusion;\\n\\t#endif\\n\\t#if defined( USE_SHEEN ) \\n\\t\\tsheenSpecularIndirect *= ambientOcclusion;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\n\\t\\tfloat dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\\n\\t\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\\n\\t#endif\\n#endif\";\n\nvar aomap_pars_fragment = \"#ifdef USE_AOMAP\\n\\tuniform sampler2D aoMap;\\n\\tuniform float aoMapIntensity;\\n#endif\";\n\nvar batching_pars_vertex = \"#ifdef USE_BATCHING\\n\\t#if ! defined( GL_ANGLE_multi_draw )\\n\\t#define gl_DrawID _gl_DrawID\\n\\tuniform int _gl_DrawID;\\n\\t#endif\\n\\tuniform highp sampler2D batchingTexture;\\n\\tuniform highp usampler2D batchingIdTexture;\\n\\tmat4 getBatchingMatrix( const in float i ) {\\n\\t\\tint size = textureSize( batchingTexture, 0 ).x;\\n\\t\\tint j = int( i ) * 4;\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\tvec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\\n\\t\\tvec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\\n\\t\\tvec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\\n\\t\\tvec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\\n\\t\\treturn mat4( v1, v2, v3, v4 );\\n\\t}\\n\\tfloat getIndirectIndex( const in int i ) {\\n\\t\\tint size = textureSize( batchingIdTexture, 0 ).x;\\n\\t\\tint x = i % size;\\n\\t\\tint y = i / size;\\n\\t\\treturn float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r );\\n\\t}\\n#endif\\n#ifdef USE_BATCHING_COLOR\\n\\tuniform sampler2D batchingColorTexture;\\n\\tvec3 getBatchingColor( const in float i ) {\\n\\t\\tint size = textureSize( batchingColorTexture, 0 ).x;\\n\\t\\tint j = int( i );\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\treturn texelFetch( batchingColorTexture, ivec2( x, y ), 0 ).rgb;\\n\\t}\\n#endif\";\n\nvar batching_vertex = \"#ifdef USE_BATCHING\\n\\tmat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) );\\n#endif\";\n\nvar begin_vertex = \"vec3 transformed = vec3( position );\\n#ifdef USE_ALPHAHASH\\n\\tvPosition = vec3( position );\\n#endif\";\n\nvar beginnormal_vertex = \"vec3 objectNormal = vec3( normal );\\n#ifdef USE_TANGENT\\n\\tvec3 objectTangent = vec3( tangent.xyz );\\n#endif\";\n\nvar bsdfs = \"float 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_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\treturn F * ( G * D );\\n} // validated\";\n\nvar iridescence_fragment = \"#ifdef USE_IRIDESCENCE\\n\\tconst mat3 XYZ_TO_REC709 = mat3(\\n\\t\\t 3.2404542, -0.9692660, 0.0556434,\\n\\t\\t-1.5371385, 1.8760108, -0.2040259,\\n\\t\\t-0.4985314, 0.0415560, 1.0572252\\n\\t);\\n\\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\\n\\t\\tvec3 sqrtF0 = sqrt( fresnel0 );\\n\\t\\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\\n\\t}\\n\\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\\n\\t\\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\\n\\t}\\n\\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\\n\\t\\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\\n\\t}\\n\\tvec3 evalSensitivity( float OPD, vec3 shift ) {\\n\\t\\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\\n\\t\\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\\n\\t\\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\\n\\t\\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\\n\\t\\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\\n\\t\\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\\n\\t\\txyz /= 1.0685e-7;\\n\\t\\tvec3 rgb = XYZ_TO_REC709 * xyz;\\n\\t\\treturn rgb;\\n\\t}\\n\\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\\n\\t\\tvec3 I;\\n\\t\\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\\n\\t\\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\\n\\t\\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\\n\\t\\tif ( cosTheta2Sq < 0.0 ) {\\n\\t\\t\\treturn vec3( 1.0 );\\n\\t\\t}\\n\\t\\tfloat cosTheta2 = sqrt( cosTheta2Sq );\\n\\t\\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\\n\\t\\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\\n\\t\\tfloat T121 = 1.0 - R12;\\n\\t\\tfloat phi12 = 0.0;\\n\\t\\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\\n\\t\\tfloat phi21 = PI - phi12;\\n\\t\\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\\t\\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\\n\\t\\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\\n\\t\\tvec3 phi23 = vec3( 0.0 );\\n\\t\\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\\n\\t\\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\\n\\t\\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\\n\\t\\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\\n\\t\\tvec3 phi = vec3( phi21 ) + phi23;\\n\\t\\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\\n\\t\\tvec3 r123 = sqrt( R123 );\\n\\t\\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\\n\\t\\tvec3 C0 = R12 + Rs;\\n\\t\\tI = C0;\\n\\t\\tvec3 Cm = Rs - T121;\\n\\t\\tfor ( int m = 1; m <= 2; ++ m ) {\\n\\t\\t\\tCm *= r123;\\n\\t\\t\\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\\n\\t\\t\\tI += Cm * Sm;\\n\\t\\t}\\n\\t\\treturn max( I, vec3( 0.0 ) );\\n\\t}\\n#endif\";\n\nvar bumpmap_pars_fragment = \"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vBumpMapUv );\\n\\t\\tvec2 dSTdy = dFdy( vBumpMapUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + 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 = normalize( dFdx( surf_pos.xyz ) );\\n\\t\\tvec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\\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\";\n\nvar clipping_planes_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvec4 plane;\\n\\t#ifdef ALPHA_TO_COVERAGE\\n\\t\\tfloat distanceToPlane, distanceGradient;\\n\\t\\tfloat clipOpacity = 1.0;\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\\n\\t\\t\\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\\n\\t\\t\\tclipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\\n\\t\\t\\tif ( clipOpacity == 0.0 ) discard;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\t\\tfloat unionClipOpacity = 1.0;\\n\\t\\t\\t#pragma unroll_loop_start\\n\\t\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\t\\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\\n\\t\\t\\t\\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\\n\\t\\t\\t\\tunionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\\n\\t\\t\\t}\\n\\t\\t\\t#pragma unroll_loop_end\\n\\t\\t\\tclipOpacity *= 1.0 - unionClipOpacity;\\n\\t\\t#endif\\n\\t\\tdiffuseColor.a *= clipOpacity;\\n\\t\\tif ( diffuseColor.a == 0.0 ) discard;\\n\\t#else\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\t\\tbool clipped = true;\\n\\t\\t\\t#pragma unroll_loop_start\\n\\t\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\t\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t\\t}\\n\\t\\t\\t#pragma unroll_loop_end\\n\\t\\t\\tif ( clipped ) discard;\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\n\nvar clipping_planes_pars_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\";\n\nvar clipping_planes_pars_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n#endif\";\n\nvar clipping_planes_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvClipPosition = - mvPosition.xyz;\\n#endif\";\n\nvar color_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\\tdiffuseColor *= vColor;\\n#elif defined( USE_COLOR )\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\";\n\nvar color_pars_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";\n\nvar color_pars_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";\n\nvar color_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\\tvColor = vec4( 1.0 );\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_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\\n#ifdef USE_BATCHING_COLOR\\n\\tvec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );\\n\\tvColor.xyz *= batchingColor.xyz;\\n#endif\";\n\nvar 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; }\\nvec3 pow2( const in vec3 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 max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\\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 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};\\n#ifdef USE_ALPHAHASH\\n\\tvarying vec3 vPosition;\\n#endif\\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}\\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}\\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}\\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n}\\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n} // validated\";\n\nvar cube_uv_reflection_fragment = \"#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t#define cubeUV_minMipLevel 4.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\\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\\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\\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\\n\\t\\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\\n\\t\\tuv.x *= CUBEUV_TEXEL_WIDTH;\\n\\t\\tuv.y *= CUBEUV_TEXEL_HEIGHT;\\n\\t\\t#ifdef texture2DGradEXT\\n\\t\\t\\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\\n\\t\\t#else\\n\\t\\t\\treturn texture2D( envMap, uv ).rgb;\\n\\t\\t#endif\\n\\t}\\n\\t#define cubeUV_r0 1.0\\n\\t#define cubeUV_m0 - 2.0\\n\\t#define cubeUV_r1 0.8\\n\\t#define cubeUV_m1 - 1.0\\n\\t#define cubeUV_r4 0.4\\n\\t#define cubeUV_m4 2.0\\n\\t#define cubeUV_r5 0.305\\n\\t#define cubeUV_m5 3.0\\n\\t#define cubeUV_r6 0.21\\n\\t#define cubeUV_m6 4.0\\n\\tfloat roughnessToMip( float roughness ) {\\n\\t\\tfloat mip = 0.0;\\n\\t\\tif ( roughness >= cubeUV_r1 ) {\\n\\t\\t\\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\\n\\t\\t} else if ( roughness >= cubeUV_r4 ) {\\n\\t\\t\\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\\n\\t\\t} else if ( roughness >= cubeUV_r5 ) {\\n\\t\\t\\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\\n\\t\\t} else if ( roughness >= cubeUV_r6 ) {\\n\\t\\t\\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_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 ), cubeUV_m0, CUBEUV_MAX_MIP );\\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\";\n\nvar defaultnormal_vertex = \"vec3 transformedNormal = objectNormal;\\n#ifdef USE_TANGENT\\n\\tvec3 transformedTangent = objectTangent;\\n#endif\\n#ifdef USE_BATCHING\\n\\tmat3 bm = mat3( batchingMatrix );\\n\\ttransformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\\n\\ttransformedNormal = bm * transformedNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\ttransformedTangent = bm * transformedTangent;\\n\\t#endif\\n#endif\\n#ifdef USE_INSTANCING\\n\\tmat3 im = mat3( instanceMatrix );\\n\\ttransformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\\n\\ttransformedNormal = im * transformedNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\ttransformedTangent = im * transformedTangent;\\n\\t#endif\\n#endif\\ntransformedNormal = normalMatrix * transformedNormal;\\n#ifdef FLIP_SIDED\\n\\ttransformedNormal = - transformedNormal;\\n#endif\\n#ifdef USE_TANGENT\\n\\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\\n\\t#ifdef FLIP_SIDED\\n\\t\\ttransformedTangent = - transformedTangent;\\n\\t#endif\\n#endif\";\n\nvar displacementmap_pars_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\";\n\nvar displacementmap_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\\n#endif\";\n\nvar emissivemap_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\\n\\t#ifdef DECODE_VIDEO_TEXTURE_EMISSIVE\\n\\t\\temissiveColor = sRGBTransferEOTF( emissiveColor );\\n\\t#endif\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\";\n\nvar emissivemap_pars_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\";\n\nvar colorspace_fragment = \"gl_FragColor = linearToOutputTexel( gl_FragColor );\";\n\nvar colorspace_pars_fragment = \"vec4 LinearTransferOETF( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 sRGBTransferEOTF( 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 sRGBTransferOETF( 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}\";\n\nvar 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, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\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\";\n\nvar envmap_common_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float envMapIntensity;\\n\\tuniform float flipEnvMap;\\n\\tuniform mat3 envMapRotation;\\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\";\n\nvar envmap_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float reflectivity;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\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\";\n\nvar envmap_pars_vertex = \"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\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\";\n\nvar 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\";\n\nvar fog_vertex = \"#ifdef USE_FOG\\n\\tvFogDepth = - mvPosition.z;\\n#endif\";\n\nvar fog_pars_vertex = \"#ifdef USE_FOG\\n\\tvarying float vFogDepth;\\n#endif\";\n\nvar fog_fragment = \"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\\n\\t#endif\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\";\n\nvar fog_pars_fragment = \"#ifdef USE_FOG\\n\\tuniform vec3 fogColor;\\n\\tvarying float vFogDepth;\\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\";\n\nvar 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 vec3( texture2D( gradientMap, coord ).r );\\n\\t#else\\n\\t\\tvec2 fw = fwidth( coord ) * 0.5;\\n\\t\\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\\n\\t#endif\\n}\";\n\nvar lightmap_pars_fragment = \"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\";\n\nvar lights_lambert_fragment = \"LambertMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularStrength = specularStrength;\";\n\nvar lights_lambert_pars_fragment = \"varying vec3 vViewPosition;\\nstruct LambertMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Lambert\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Lambert\";\n\nvar lights_pars_begin = \"uniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\n#if defined( USE_LIGHT_PROBES )\\n\\tuniform vec3 lightProbe[ 9 ];\\n#endif\\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 vec3 normal ) {\\n\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\\treturn irradiance;\\n}\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\treturn irradiance;\\n}\\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\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}\\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\\n\\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\\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 getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\\n\\t\\tlight.color = directionalLight.color;\\n\\t\\tlight.direction = directionalLight.direction;\\n\\t\\tlight.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 getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\\n\\t\\tvec3 lVector = pointLight.position - geometryPosition;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tlight.color = pointLight.color;\\n\\t\\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tlight.visible = ( light.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 getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\\n\\t\\tvec3 lVector = spotLight.position - geometryPosition;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat angleCos = dot( light.direction, spotLight.direction );\\n\\t\\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\tif ( spotAttenuation > 0.0 ) {\\n\\t\\t\\tfloat lightDistance = length( lVector );\\n\\t\\t\\tlight.color = spotLight.color * spotAttenuation;\\n\\t\\t\\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\t\\t} else {\\n\\t\\t\\tlight.color = vec3( 0.0 );\\n\\t\\t\\tlight.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 vec3 normal ) {\\n\\t\\tfloat dotNL = dot( normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\";\n\nvar envmap_physical_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tvec3 getIBLIrradiance( const in vec3 normal ) {\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\\n\\t\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n\\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\tvec3 reflectVec = reflect( - viewDir, normal );\\n\\t\\t\\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\\t\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\\n\\t\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\\n\\t\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\t\\tvec3 bentNormal = cross( bitangent, viewDir );\\n\\t\\t\\t\\tbentNormal = normalize( cross( bentNormal, bitangent ) );\\n\\t\\t\\t\\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\\n\\t\\t\\t\\treturn getIBLRadiance( viewDir, bentNormal, roughness );\\n\\t\\t\\t#else\\n\\t\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t\\t#endif\\n\\t\\t}\\n\\t#endif\\n#endif\";\n\nvar lights_toon_fragment = \"ToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\";\n\nvar lights_toon_pars_fragment = \"varying vec3 vViewPosition;\\nstruct ToonMaterial {\\n\\tvec3 diffuseColor;\\n};\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Toon\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Toon\";\n\nvar lights_phong_fragment = \"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\";\n\nvar lights_phong_pars_fragment = \"varying vec3 vViewPosition;\\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 vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\";\n\nvar lights_physical_fragment = \"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\\nmaterial.roughness = min( material.roughness, 1.0 );\\n#ifdef IOR\\n\\tmaterial.ior = ior;\\n\\t#ifdef USE_SPECULAR\\n\\t\\tfloat specularIntensityFactor = specularIntensity;\\n\\t\\tvec3 specularColorFactor = specularColor;\\n\\t\\t#ifdef USE_SPECULAR_COLORMAP\\n\\t\\t\\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\\n\\t\\t#endif\\n\\t\\t#ifdef USE_SPECULAR_INTENSITYMAP\\n\\t\\t\\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\\n\\t\\t#endif\\n\\t\\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\\n\\t#else\\n\\t\\tfloat specularIntensityFactor = 1.0;\\n\\t\\tvec3 specularColorFactor = vec3( 1.0 );\\n\\t\\tmaterial.specularF90 = 1.0;\\n\\t#endif\\n\\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\\n\\tmaterial.specularF90 = 1.0;\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tmaterial.clearcoat = clearcoat;\\n\\tmaterial.clearcoatRoughness = clearcoatRoughness;\\n\\tmaterial.clearcoatF0 = vec3( 0.04 );\\n\\tmaterial.clearcoatF90 = 1.0;\\n\\t#ifdef USE_CLEARCOATMAP\\n\\t\\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\t\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).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_DISPERSION\\n\\tmaterial.dispersion = dispersion;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tmaterial.iridescence = iridescence;\\n\\tmaterial.iridescenceIOR = iridescenceIOR;\\n\\t#ifdef USE_IRIDESCENCEMAP\\n\\t\\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\\n\\t#endif\\n\\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\t\\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\\n\\t#else\\n\\t\\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\\n\\t#endif\\n#endif\\n#ifdef USE_SHEEN\\n\\tmaterial.sheenColor = sheenColor;\\n\\t#ifdef USE_SHEEN_COLORMAP\\n\\t\\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\\n\\t#endif\\n\\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\\n\\t#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\t\\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\\n\\t#endif\\n#endif\\n#ifdef USE_ANISOTROPY\\n\\t#ifdef USE_ANISOTROPYMAP\\n\\t\\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\\n\\t\\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\\n\\t\\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\\n\\t#else\\n\\t\\tvec2 anisotropyV = anisotropyVector;\\n\\t#endif\\n\\tmaterial.anisotropy = length( anisotropyV );\\n\\tif( material.anisotropy == 0.0 ) {\\n\\t\\tanisotropyV = vec2( 1.0, 0.0 );\\n\\t} else {\\n\\t\\tanisotropyV /= material.anisotropy;\\n\\t\\tmaterial.anisotropy = saturate( material.anisotropy );\\n\\t}\\n\\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\\n\\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\\n\\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\\n#endif\";\n\nvar lights_physical_pars_fragment = \"struct PhysicalMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat roughness;\\n\\tvec3 specularColor;\\n\\tfloat specularF90;\\n\\tfloat dispersion;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat clearcoat;\\n\\t\\tfloat clearcoatRoughness;\\n\\t\\tvec3 clearcoatF0;\\n\\t\\tfloat clearcoatF90;\\n\\t#endif\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tfloat iridescence;\\n\\t\\tfloat iridescenceIOR;\\n\\t\\tfloat iridescenceThickness;\\n\\t\\tvec3 iridescenceFresnel;\\n\\t\\tvec3 iridescenceF0;\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tvec3 sheenColor;\\n\\t\\tfloat sheenRoughness;\\n\\t#endif\\n\\t#ifdef IOR\\n\\t\\tfloat ior;\\n\\t#endif\\n\\t#ifdef USE_TRANSMISSION\\n\\t\\tfloat transmission;\\n\\t\\tfloat transmissionAlpha;\\n\\t\\tfloat thickness;\\n\\t\\tfloat attenuationDistance;\\n\\t\\tvec3 attenuationColor;\\n\\t#endif\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tfloat anisotropy;\\n\\t\\tfloat alphaT;\\n\\t\\tvec3 anisotropyT;\\n\\t\\tvec3 anisotropyB;\\n\\t#endif\\n};\\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\\nvec3 sheenSpecularDirect = vec3( 0.0 );\\nvec3 sheenSpecularIndirect = vec3(0.0 );\\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\\n float x2 = x * x;\\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\\n}\\nfloat V_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}\\n#ifdef USE_ANISOTROPY\\n\\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\\n\\t\\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\\n\\t\\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\\n\\t\\tfloat v = 0.5 / ( gv + gl );\\n\\t\\treturn saturate(v);\\n\\t}\\n\\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\\n\\t\\tfloat a2 = alphaT * alphaB;\\n\\t\\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\\n\\t\\thighp float v2 = dot( v, v );\\n\\t\\tfloat w2 = a2 / v2;\\n\\t\\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\\n\\t}\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\\n\\t\\tvec3 f0 = material.clearcoatF0;\\n\\t\\tfloat f90 = material.clearcoatF90;\\n\\t\\tfloat roughness = material.clearcoatRoughness;\\n\\t\\tfloat alpha = pow2( roughness );\\n\\t\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\t\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\t\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\t\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\t\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\t\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\t\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\t\\tfloat D = D_GGX( alpha, dotNH );\\n\\t\\treturn F * ( V * D );\\n\\t}\\n#endif\\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\\n\\tvec3 f0 = material.specularColor;\\n\\tfloat f90 = material.specularF90;\\n\\tfloat roughness = material.roughness;\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tF = mix( F, material.iridescenceFresnel, material.iridescence );\\n\\t#endif\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tfloat dotTL = dot( material.anisotropyT, lightDir );\\n\\t\\tfloat dotTV = dot( material.anisotropyT, viewDir );\\n\\t\\tfloat dotTH = dot( material.anisotropyT, halfDir );\\n\\t\\tfloat dotBL = dot( material.anisotropyB, lightDir );\\n\\t\\tfloat dotBV = dot( material.anisotropyB, viewDir );\\n\\t\\tfloat dotBH = dot( material.anisotropyB, halfDir );\\n\\t\\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\\n\\t\\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\\n\\t#else\\n\\t\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\t\\tfloat D = D_GGX( alpha, dotNH );\\n\\t#endif\\n\\treturn F * ( V * 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}\\n#if defined( USE_SHEEN )\\nfloat D_Charlie( float roughness, float dotNH ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tfloat invAlpha = 1.0 / alpha;\\n\\tfloat cos2h = dotNH * dotNH;\\n\\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\\n\\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\\n}\\nfloat V_Neubelt( float dotNV, float dotNL ) {\\n\\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\\n}\\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat D = D_Charlie( sheenRoughness, dotNH );\\n\\tfloat V = V_Neubelt( dotNV, dotNL );\\n\\treturn sheenColor * ( D * V );\\n}\\n#endif\\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat r2 = roughness * roughness;\\n\\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\\n\\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\\n\\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\\n\\treturn saturate( DG * RECIPROCAL_PI );\\n}\\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\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\\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\\n\\treturn fab;\\n}\\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\treturn specularColor * fab.x + specularF90 * fab.y;\\n}\\n#ifdef USE_IRIDESCENCE\\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#else\\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#endif\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\\n\\t#else\\n\\t\\tvec3 Fr = specularColor;\\n\\t#endif\\n\\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\\n\\tfloat Ess = fab.x + fab.y;\\n\\tfloat Ems = 1.0 - Ess;\\n\\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\n\\tsingleScatter += FssEss;\\n\\tmultiScatter += Fms * Ems;\\n}\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 normal = geometryNormal;\\n\\t\\tvec3 viewDir = geometryViewDir;\\n\\t\\tvec3 position = geometryPosition;\\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.roughness;\\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 vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\\n\\t\\tvec3 ccIrradiance = dotNLcc * directLight.color;\\n\\t\\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\\n\\t#endif\\n\\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\\n\\t#endif\\n\\tvec3 singleScattering = vec3( 0.0 );\\n\\tvec3 multiScattering = vec3( 0.0 );\\n\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\\n\\t#else\\n\\t\\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\\n\\t#endif\\n\\tvec3 totalScattering = singleScattering + multiScattering;\\n\\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\\n\\treflectedLight.indirectSpecular += 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}\";\n\nvar lights_fragment_begin = \"\\nvec3 geometryPosition = - vViewPosition;\\nvec3 geometryNormal = normal;\\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\nvec3 geometryClearcoatNormal = vec3( 0.0 );\\n#ifdef USE_CLEARCOAT\\n\\tgeometryClearcoatNormal = clearcoatNormal;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\\n\\tif ( material.iridescenceThickness == 0.0 ) {\\n\\t\\tmaterial.iridescence = 0.0;\\n\\t} else {\\n\\t\\tmaterial.iridescence = saturate( material.iridescence );\\n\\t}\\n\\tif ( material.iridescence > 0.0 ) {\\n\\t\\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\\n\\t\\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\\n\\t}\\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\\tgetPointLightInfo( pointLight, geometryPosition, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\\t\\tpointLightShadow = pointLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, 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\\tvec4 spotColor;\\n\\tvec3 spotLightCoord;\\n\\tbool inSpotLightMap;\\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\\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\\n\\t\\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\\n\\t\\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\\n\\t\\t#else\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\\t\\t#endif\\n\\t\\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\\n\\t\\t\\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\\n\\t\\t\\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\\n\\t\\t\\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\\n\\t\\t\\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\\n\\t\\t#endif\\n\\t\\t#undef SPOT_LIGHT_MAP_INDEX\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\tspotLightShadow = spotLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, 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\\tgetDirectionalLightInfo( directionalLight, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\\t\\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, 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, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, 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\\t#if defined( USE_LIGHT_PROBES )\\n\\t\\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\\n\\t#endif\\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 ], geometryNormal );\\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\";\n\nvar lights_fragment_maps = \"#if defined( RE_IndirectDiffuse )\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\\t\\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tiblIrradiance += getIBLIrradiance( geometryNormal );\\n\\t#endif\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\\n\\t#else\\n\\t\\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\\n\\t#endif\\n#endif\";\n\nvar lights_fragment_end = \"#if defined( RE_IndirectDiffuse )\\n\\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n#endif\";\n\nvar logdepthbuf_fragment = \"#if defined( USE_LOGDEPTHBUF )\\n\\tgl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\";\n\nvar logdepthbuf_pars_fragment = \"#if defined( USE_LOGDEPTHBUF )\\n\\tuniform float logDepthBufFC;\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\";\n\nvar logdepthbuf_pars_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\";\n\nvar logdepthbuf_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\tvFragDepth = 1.0 + gl_Position.w;\\n\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n#endif\";\n\nvar map_fragment = \"#ifdef USE_MAP\\n\\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\\n\\t#ifdef DECODE_VIDEO_TEXTURE\\n\\t\\tsampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor );\\n\\t#endif\\n\\tdiffuseColor *= sampledDiffuseColor;\\n#endif\";\n\nvar map_pars_fragment = \"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\";\n\nvar map_particle_fragment = \"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\t#if defined( USE_POINTS_UV )\\n\\t\\tvec2 uv = vUv;\\n\\t#else\\n\\t\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n\\t#endif\\n#endif\\n#ifdef USE_MAP\\n\\tdiffuseColor *= texture2D( map, uv );\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n#endif\";\n\nvar map_particle_pars_fragment = \"#if defined( USE_POINTS_UV )\\n\\tvarying vec2 vUv;\\n#else\\n\\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\t\\tuniform mat3 uvTransform;\\n\\t#endif\\n#endif\\n#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\n\nvar metalnessmap_fragment = \"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\";\n\nvar metalnessmap_pars_fragment = \"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\";\n\nvar morphinstance_vertex = \"#ifdef USE_INSTANCING_MORPH\\n\\tfloat morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\\tfloat morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\tmorphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\\n\\t}\\n#endif\";\n\nvar morphcolor_vertex = \"#if defined( USE_MORPHCOLORS )\\n\\tvColor *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t#if defined( USE_COLOR_ALPHA )\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\\n\\t\\t#elif defined( USE_COLOR )\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\\n\\t\\t#endif\\n\\t}\\n#endif\";\n\nvar morphnormal_vertex = \"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\\n\\t}\\n#endif\";\n\nvar morphtarget_pars_vertex = \"#ifdef USE_MORPHTARGETS\\n\\t#ifndef USE_INSTANCING_MORPH\\n\\t\\tuniform float morphTargetBaseInfluence;\\n\\t\\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\\t#endif\\n\\tuniform sampler2DArray morphTargetsTexture;\\n\\tuniform ivec2 morphTargetsTextureSize;\\n\\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\\n\\t\\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\\n\\t\\tint y = texelIndex / morphTargetsTextureSize.x;\\n\\t\\tint x = texelIndex - y * morphTargetsTextureSize.x;\\n\\t\\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\\n\\t\\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\\n\\t}\\n#endif\";\n\nvar morphtarget_vertex = \"#ifdef USE_MORPHTARGETS\\n\\ttransformed *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\\n\\t}\\n#endif\";\n\nvar normal_fragment_begin = \"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\n#ifdef FLAT_SHADED\\n\\tvec3 fdx = dFdx( vViewPosition );\\n\\tvec3 fdy = dFdy( vViewPosition );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal *= faceDirection;\\n\\t#endif\\n#endif\\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\\n\\t#ifdef USE_TANGENT\\n\\t\\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\\t#else\\n\\t\\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\\n\\t\\t#if defined( USE_NORMALMAP )\\n\\t\\t\\tvNormalMapUv\\n\\t\\t#elif defined( USE_CLEARCOAT_NORMALMAP )\\n\\t\\t\\tvClearcoatNormalMapUv\\n\\t\\t#else\\n\\t\\t\\tvUv\\n\\t\\t#endif\\n\\t\\t);\\n\\t#endif\\n\\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\\t\\ttbn[0] *= faceDirection;\\n\\t\\ttbn[1] *= faceDirection;\\n\\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\t#ifdef USE_TANGENT\\n\\t\\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\\t#else\\n\\t\\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\\n\\t#endif\\n\\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\\t\\ttbn2[0] *= faceDirection;\\n\\t\\ttbn2[1] *= faceDirection;\\n\\t#endif\\n#endif\\nvec3 nonPerturbedNormal = normal;\";\n\nvar normal_fragment_maps = \"#ifdef USE_NORMALMAP_OBJECTSPACE\\n\\tnormal = texture2D( normalMap, vNormalMapUv ).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( USE_NORMALMAP_TANGENTSPACE )\\n\\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\\n\\tmapN.xy *= normalScale;\\n\\tnormal = normalize( tbn * mapN );\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\\n#endif\";\n\nvar normal_pars_fragment = \"#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\nvar normal_pars_vertex = \"#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\nvar normal_vertex = \"#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\nvar normalmap_pars_fragment = \"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n#endif\\n#ifdef USE_NORMALMAP_OBJECTSPACE\\n\\tuniform mat3 normalMatrix;\\n#endif\\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\\n\\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\\n\\t\\tvec3 q0 = dFdx( eye_pos.xyz );\\n\\t\\tvec3 q1 = dFdy( eye_pos.xyz );\\n\\t\\tvec2 st0 = dFdx( uv.st );\\n\\t\\tvec2 st1 = dFdy( uv.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 : inversesqrt( det );\\n\\t\\treturn mat3( T * scale, B * scale, N );\\n\\t}\\n#endif\";\n\nvar clearcoat_normal_fragment_begin = \"#ifdef USE_CLEARCOAT\\n\\tvec3 clearcoatNormal = nonPerturbedNormal;\\n#endif\";\n\nvar clearcoat_normal_fragment_maps = \"#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\\n\\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\\n#endif\";\n\nvar clearcoat_pars_fragment = \"#ifdef USE_CLEARCOATMAP\\n\\tuniform sampler2D clearcoatMap;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform sampler2D clearcoatNormalMap;\\n\\tuniform vec2 clearcoatNormalScale;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform sampler2D clearcoatRoughnessMap;\\n#endif\";\n\nvar iridescence_pars_fragment = \"#ifdef USE_IRIDESCENCEMAP\\n\\tuniform sampler2D iridescenceMap;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tuniform sampler2D iridescenceThicknessMap;\\n#endif\";\n\nvar opaque_fragment = \"#ifdef OPAQUE\\ndiffuseColor.a = 1.0;\\n#endif\\n#ifdef USE_TRANSMISSION\\ndiffuseColor.a *= material.transmissionAlpha;\\n#endif\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\";\n\nvar 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.;const float ShiftRight8 = 1. / 256.;\\nconst float Inv255 = 1. / 255.;\\nconst vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );\\nconst vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g );\\nconst vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b );\\nconst vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a );\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tif( v <= 0.0 )\\n\\t\\treturn vec4( 0., 0., 0., 0. );\\n\\tif( v >= 1.0 )\\n\\t\\treturn vec4( 1., 1., 1., 1. );\\n\\tfloat vuf;\\n\\tfloat af = modf( v * PackFactors.a, vuf );\\n\\tfloat bf = modf( vuf * ShiftRight8, vuf );\\n\\tfloat gf = modf( vuf * ShiftRight8, vuf );\\n\\treturn vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af );\\n}\\nvec3 packDepthToRGB( const in float v ) {\\n\\tif( v <= 0.0 )\\n\\t\\treturn vec3( 0., 0., 0. );\\n\\tif( v >= 1.0 )\\n\\t\\treturn vec3( 1., 1., 1. );\\n\\tfloat vuf;\\n\\tfloat bf = modf( v * PackFactors.b, vuf );\\n\\tfloat gf = modf( vuf * ShiftRight8, vuf );\\n\\treturn vec3( vuf * Inv255, gf * PackUpscale, bf );\\n}\\nvec2 packDepthToRG( const in float v ) {\\n\\tif( v <= 0.0 )\\n\\t\\treturn vec2( 0., 0. );\\n\\tif( v >= 1.0 )\\n\\t\\treturn vec2( 1., 1. );\\n\\tfloat vuf;\\n\\tfloat gf = modf( v * 256., vuf );\\n\\treturn vec2( vuf * Inv255, gf );\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors4 );\\n}\\nfloat unpackRGBToDepth( const in vec3 v ) {\\n\\treturn dot( v, UnpackFactors3 );\\n}\\nfloat unpackRGToDepth( const in vec2 v ) {\\n\\treturn v.r * UnpackFactors2.r + v.g * UnpackFactors2.g;\\n}\\nvec4 pack2HalfToRGBA( const in 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( const in 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 depth, const in float near, const in float far ) {\\n\\treturn depth * ( 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 depth, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * depth - far );\\n}\";\n\nvar premultiplied_alpha_fragment = \"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\";\n\nvar project_vertex = \"vec4 mvPosition = vec4( transformed, 1.0 );\\n#ifdef USE_BATCHING\\n\\tmvPosition = batchingMatrix * mvPosition;\\n#endif\\n#ifdef USE_INSTANCING\\n\\tmvPosition = instanceMatrix * mvPosition;\\n#endif\\nmvPosition = modelViewMatrix * mvPosition;\\ngl_Position = projectionMatrix * mvPosition;\";\n\nvar dithering_fragment = \"#ifdef DITHERING\\n\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\";\n\nvar 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\";\n\nvar roughnessmap_fragment = \"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\\n\\troughnessFactor *= texelRoughness.g;\\n#endif\";\n\nvar roughnessmap_pars_fragment = \"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\";\n\nvar shadowmap_pars_fragment = \"#if NUM_SPOT_LIGHT_COORDS > 0\\n\\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#if NUM_SPOT_LIGHT_MAPS > 0\\n\\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\\n#endif\\n#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 shadowIntensity;\\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\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\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 shadowIntensity;\\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 shadowIntensity, 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\\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\\n\\t\\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\\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 mix( 1.0, shadow, shadowIntensity );\\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 shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\t\\n\\t\\tfloat lightToPositionLength = length( lightToPosition );\\n\\t\\tif ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {\\n\\t\\t\\tfloat dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\\t\\t\\tdp += shadowBias;\\n\\t\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\t\\tshadow = (\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tshadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn mix( 1.0, shadow, shadowIntensity );\\n\\t}\\n#endif\";\n\nvar shadowmap_pars_vertex = \"#if NUM_SPOT_LIGHT_COORDS > 0\\n\\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\\n\\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#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 shadowIntensity;\\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\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\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 shadowIntensity;\\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\";\n\nvar shadowmap_vertex = \"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\\n\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\tvec4 shadowWorldPosition;\\n#endif\\n#if defined( USE_SHADOWMAP )\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if NUM_SPOT_LIGHT_COORDS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition;\\n\\t\\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\t\\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\\n\\t\\t#endif\\n\\t\\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\";\n\nvar 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.shadowIntensity, 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.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ 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.shadowIntensity, 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}\";\n\nvar 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\";\n\nvar skinning_pars_vertex = \"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\tuniform highp sampler2D boneTexture;\\n\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\tint size = textureSize( boneTexture, 0 ).x;\\n\\t\\tint j = int( i ) * 4;\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\\n\\t\\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\\n\\t\\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\\n\\t\\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\\n\\t\\treturn mat4( v1, v2, v3, v4 );\\n\\t}\\n#endif\";\n\nvar 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\";\n\nvar 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\";\n\nvar specularmap_fragment = \"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\";\n\nvar specularmap_pars_fragment = \"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\";\n\nvar tonemapping_fragment = \"#if defined( TONE_MAPPING )\\n\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\";\n\nvar 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 saturate( toneMappingExposure * color );\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\nvec3 CineonToneMapping( 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}\\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\\n\\tvec3( 1.6605, - 0.1246, - 0.0182 ),\\n\\tvec3( - 0.5876, 1.1329, - 0.1006 ),\\n\\tvec3( - 0.0728, - 0.0083, 1.1187 )\\n);\\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\\n\\tvec3( 0.6274, 0.0691, 0.0164 ),\\n\\tvec3( 0.3293, 0.9195, 0.0880 ),\\n\\tvec3( 0.0433, 0.0113, 0.8956 )\\n);\\nvec3 agxDefaultContrastApprox( vec3 x ) {\\n\\tvec3 x2 = x * x;\\n\\tvec3 x4 = x2 * x2;\\n\\treturn + 15.5 * x4 * x2\\n\\t\\t- 40.14 * x4 * x\\n\\t\\t+ 31.96 * x4\\n\\t\\t- 6.868 * x2 * x\\n\\t\\t+ 0.4298 * x2\\n\\t\\t+ 0.1191 * x\\n\\t\\t- 0.00232;\\n}\\nvec3 AgXToneMapping( vec3 color ) {\\n\\tconst mat3 AgXInsetMatrix = mat3(\\n\\t\\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\\n\\t\\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\\n\\t\\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\\n\\t);\\n\\tconst mat3 AgXOutsetMatrix = mat3(\\n\\t\\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\\n\\t\\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\\n\\t\\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\\n\\t);\\n\\tconst float AgxMinEv = - 12.47393;\\tconst float AgxMaxEv = 4.026069;\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\\n\\tcolor = AgXInsetMatrix * color;\\n\\tcolor = max( color, 1e-10 );\\tcolor = log2( color );\\n\\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\\n\\tcolor = clamp( color, 0.0, 1.0 );\\n\\tcolor = agxDefaultContrastApprox( color );\\n\\tcolor = AgXOutsetMatrix * color;\\n\\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\\n\\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\\n\\tcolor = clamp( color, 0.0, 1.0 );\\n\\treturn color;\\n}\\nvec3 NeutralToneMapping( vec3 color ) {\\n\\tconst float StartCompression = 0.8 - 0.04;\\n\\tconst float Desaturation = 0.15;\\n\\tcolor *= toneMappingExposure;\\n\\tfloat x = min( color.r, min( color.g, color.b ) );\\n\\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\\n\\tcolor -= offset;\\n\\tfloat peak = max( color.r, max( color.g, color.b ) );\\n\\tif ( peak < StartCompression ) return color;\\n\\tfloat d = 1. - StartCompression;\\n\\tfloat newPeak = 1. - d * d / ( peak + d - StartCompression );\\n\\tcolor *= newPeak / peak;\\n\\tfloat g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );\\n\\treturn mix( color, vec3( newPeak ), g );\\n}\\nvec3 CustomToneMapping( vec3 color ) { return color; }\";\n\nvar transmission_fragment = \"#ifdef USE_TRANSMISSION\\n\\tmaterial.transmission = transmission;\\n\\tmaterial.transmissionAlpha = 1.0;\\n\\tmaterial.thickness = thickness;\\n\\tmaterial.attenuationDistance = attenuationDistance;\\n\\tmaterial.attenuationColor = attenuationColor;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\\n\\t#endif\\n\\tvec3 pos = vWorldPosition;\\n\\tvec3 v = normalize( cameraPosition - pos );\\n\\tvec3 n = inverseTransformDirection( normal, viewMatrix );\\n\\tvec4 transmitted = getIBLVolumeRefraction(\\n\\t\\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\\n\\t\\tpos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,\\n\\t\\tmaterial.attenuationColor, material.attenuationDistance );\\n\\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\\n\\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\\n#endif\";\n\nvar transmission_pars_fragment = \"#ifdef USE_TRANSMISSION\\n\\tuniform float transmission;\\n\\tuniform float thickness;\\n\\tuniform float attenuationDistance;\\n\\tuniform vec3 attenuationColor;\\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 vec3 vWorldPosition;\\n\\tfloat w0( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\\n\\t}\\n\\tfloat w1( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\\n\\t}\\n\\tfloat w2( float a ){\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\\n\\t}\\n\\tfloat w3( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * a * a );\\n\\t}\\n\\tfloat g0( float a ) {\\n\\t\\treturn w0( a ) + w1( a );\\n\\t}\\n\\tfloat g1( float a ) {\\n\\t\\treturn w2( a ) + w3( a );\\n\\t}\\n\\tfloat h0( float a ) {\\n\\t\\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\\n\\t}\\n\\tfloat h1( float a ) {\\n\\t\\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\\n\\t}\\n\\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\\n\\t\\tuv = uv * texelSize.zw + 0.5;\\n\\t\\tvec2 iuv = floor( uv );\\n\\t\\tvec2 fuv = fract( uv );\\n\\t\\tfloat g0x = g0( fuv.x );\\n\\t\\tfloat g1x = g1( fuv.x );\\n\\t\\tfloat h0x = h0( fuv.x );\\n\\t\\tfloat h1x = h1( fuv.x );\\n\\t\\tfloat h0y = h0( fuv.y );\\n\\t\\tfloat h1y = h1( fuv.y );\\n\\t\\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\\t\\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\\n\\t\\t\\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\\n\\t}\\n\\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\\n\\t\\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\\n\\t\\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\\n\\t\\tvec2 fLodSizeInv = 1.0 / fLodSize;\\n\\t\\tvec2 cLodSizeInv = 1.0 / cLodSize;\\n\\t\\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\\n\\t\\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\\n\\t\\treturn mix( fSample, cSample, fract( lod ) );\\n\\t}\\n\\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in 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( const in float roughness, const in float ior ) {\\n\\t\\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\\n\\t}\\n\\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\\n\\t\\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\\n\\t\\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\\n\\t}\\n\\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tif ( isinf( attenuationDistance ) ) {\\n\\t\\t\\treturn vec3( 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\\n\\t\\t\\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\\t\\t\\treturn transmittance;\\n\\t\\t}\\n\\t}\\n\\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\\n\\t\\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\\n\\t\\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,\\n\\t\\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tvec4 transmittedLight;\\n\\t\\tvec3 transmittance;\\n\\t\\t#ifdef USE_DISPERSION\\n\\t\\t\\tfloat halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;\\n\\t\\t\\tvec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );\\n\\t\\t\\tfor ( int i = 0; i < 3; i ++ ) {\\n\\t\\t\\t\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );\\n\\t\\t\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\t\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\\t\\t\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\t\\t\\trefractionCoords += 1.0;\\n\\t\\t\\t\\trefractionCoords /= 2.0;\\n\\t\\t\\t\\tvec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );\\n\\t\\t\\t\\ttransmittedLight[ i ] = transmissionSample[ i ];\\n\\t\\t\\t\\ttransmittedLight.a += transmissionSample.a;\\n\\t\\t\\t\\ttransmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];\\n\\t\\t\\t}\\n\\t\\t\\ttransmittedLight.a /= 3.0;\\n\\t\\t#else\\n\\t\\t\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\\n\\t\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\\t\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\t\\trefractionCoords += 1.0;\\n\\t\\t\\trefractionCoords /= 2.0;\\n\\t\\t\\ttransmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\\n\\t\\t\\ttransmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\\n\\t\\t#endif\\n\\t\\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\\n\\t\\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\\n\\t\\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\\n\\t\\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\\n\\t}\\n#endif\";\n\nvar uv_pars_fragment = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tvarying vec2 vAnisotropyMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tuniform mat3 transmissionMapTransform;\\n\\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tuniform mat3 thicknessMapTransform;\\n\\tvarying vec2 vThicknessMapUv;\\n#endif\";\n\nvar uv_pars_vertex = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\\tuniform mat3 mapTransform;\\n\\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform mat3 alphaMapTransform;\\n\\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tuniform mat3 lightMapTransform;\\n\\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\\tuniform mat3 aoMapTransform;\\n\\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tuniform mat3 bumpMapTransform;\\n\\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tuniform mat3 normalMapTransform;\\n\\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\\tuniform mat3 displacementMapTransform;\\n\\tvarying vec2 vDisplacementMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tuniform mat3 emissiveMapTransform;\\n\\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tuniform mat3 metalnessMapTransform;\\n\\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tuniform mat3 roughnessMapTransform;\\n\\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tuniform mat3 anisotropyMapTransform;\\n\\tvarying vec2 vAnisotropyMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tuniform mat3 clearcoatMapTransform;\\n\\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform mat3 clearcoatNormalMapTransform;\\n\\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform mat3 clearcoatRoughnessMapTransform;\\n\\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tuniform mat3 sheenColorMapTransform;\\n\\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tuniform mat3 sheenRoughnessMapTransform;\\n\\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tuniform mat3 iridescenceMapTransform;\\n\\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tuniform mat3 iridescenceThicknessMapTransform;\\n\\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tuniform mat3 specularMapTransform;\\n\\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tuniform mat3 specularColorMapTransform;\\n\\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tuniform mat3 specularIntensityMapTransform;\\n\\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tuniform mat3 transmissionMapTransform;\\n\\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tuniform mat3 thicknessMapTransform;\\n\\tvarying vec2 vThicknessMapUv;\\n#endif\";\n\nvar uv_vertex = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvUv = vec3( uv, 1 ).xy;\\n#endif\\n#ifdef USE_MAP\\n\\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_AOMAP\\n\\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\";\n\nvar worldpos_vertex = \"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\\n\\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\\t#ifdef USE_BATCHING\\n\\t\\tworldPosition = batchingMatrix * worldPosition;\\n\\t#endif\\n\\t#ifdef USE_INSTANCING\\n\\t\\tworldPosition = instanceMatrix * worldPosition;\\n\\t#endif\\n\\tworldPosition = modelMatrix * worldPosition;\\n#endif\";\n\nconst vertex$h = \"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}\";\n\nconst fragment$h = \"uniform sampler2D t2D;\\nuniform float backgroundIntensity;\\nvarying vec2 vUv;\\nvoid main() {\\n\\tvec4 texColor = texture2D( t2D, vUv );\\n\\t#ifdef DECODE_VIDEO_TEXTURE\\n\\t\\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\\n\\t#endif\\n\\ttexColor.rgb *= backgroundIntensity;\\n\\tgl_FragColor = texColor;\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$g = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n\\tgl_Position.z = gl_Position.w;\\n}\";\n\nconst fragment$g = \"#ifdef ENVMAP_TYPE_CUBE\\n\\tuniform samplerCube envMap;\\n#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\tuniform sampler2D envMap;\\n#endif\\nuniform float flipEnvMap;\\nuniform float backgroundBlurriness;\\nuniform float backgroundIntensity;\\nuniform mat3 backgroundRotation;\\nvarying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tvec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\\n\\t#else\\n\\t\\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\t#endif\\n\\ttexColor.rgb *= backgroundIntensity;\\n\\tgl_FragColor = texColor;\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$f = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n\\tgl_Position.z = gl_Position.w;\\n}\";\n\nconst fragment$f = \"uniform samplerCube tCube;\\nuniform float tFlip;\\nuniform float opacity;\\nvarying vec3 vWorldDirection;\\nvoid main() {\\n\\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\\n\\tgl_FragColor = texColor;\\n\\tgl_FragColor.a *= opacity;\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$e = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvHighPrecisionZW = gl_Position.zw;\\n}\";\n\nconst fragment$e = \"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include \\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\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#elif DEPTH_PACKING == 3202\\n\\t\\tgl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 );\\n\\t#elif DEPTH_PACKING == 3203\\n\\t\\tgl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 );\\n\\t#endif\\n}\";\n\nconst vertex$d = \"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvWorldPosition = worldPosition.xyz;\\n}\";\n\nconst fragment$d = \"#define DISTANCE\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main () {\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tfloat dist = length( vWorldPosition - referencePosition );\\n\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\\tdist = saturate( dist );\\n\\tgl_FragColor = packDepthToRGBA( dist );\\n}\";\n\nconst vertex$c = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$c = \"uniform sampler2D tEquirect;\\nvarying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvec3 direction = normalize( vWorldDirection );\\n\\tvec2 sampleUV = equirectUv( direction );\\n\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$b = \"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvLineDistance = scale * lineDistance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$b = \"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$a = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$a = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\\t\\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\t#endif\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$9 = \"#define LAMBERT\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$9 = \"#define LAMBERT\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$8 = \"#define MATCAP\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n}\";\n\nconst fragment$8 = \"#define MATCAP\\nuniform vec3 diffuse;\\nuniform float opacity;\\nuniform sampler2D matcap;\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\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#else\\n\\t\\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\\n\\t#endif\\n\\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$7 = \"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\";\n\nconst fragment$7 = \"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\\n\\t#ifdef OPAQUE\\n\\t\\tgl_FragColor.a = 1.0;\\n\\t#endif\\n}\";\n\nconst vertex$6 = \"#define PHONG\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$6 = \"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$5 = \"#define STANDARD\\nvarying vec3 vViewPosition;\\n#ifdef USE_TRANSMISSION\\n\\tvarying vec3 vWorldPosition;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n#ifdef USE_TRANSMISSION\\n\\tvWorldPosition = worldPosition.xyz;\\n#endif\\n}\";\n\nconst fragment$5 = \"#define STANDARD\\n#ifdef PHYSICAL\\n\\t#define IOR\\n\\t#define USE_SPECULAR\\n#endif\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifdef IOR\\n\\tuniform float ior;\\n#endif\\n#ifdef USE_SPECULAR\\n\\tuniform float specularIntensity;\\n\\tuniform vec3 specularColor;\\n\\t#ifdef USE_SPECULAR_COLORMAP\\n\\t\\tuniform sampler2D specularColorMap;\\n\\t#endif\\n\\t#ifdef USE_SPECULAR_INTENSITYMAP\\n\\t\\tuniform sampler2D specularIntensityMap;\\n\\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tuniform float clearcoat;\\n\\tuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_DISPERSION\\n\\tuniform float dispersion;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tuniform float iridescence;\\n\\tuniform float iridescenceIOR;\\n\\tuniform float iridescenceThicknessMinimum;\\n\\tuniform float iridescenceThicknessMaximum;\\n#endif\\n#ifdef USE_SHEEN\\n\\tuniform vec3 sheenColor;\\n\\tuniform float sheenRoughness;\\n\\t#ifdef USE_SHEEN_COLORMAP\\n\\t\\tuniform sampler2D sheenColorMap;\\n\\t#endif\\n\\t#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\t\\tuniform sampler2D sheenRoughnessMap;\\n\\t#endif\\n#endif\\n#ifdef USE_ANISOTROPY\\n\\tuniform vec2 anisotropyVector;\\n\\t#ifdef USE_ANISOTROPYMAP\\n\\t\\tuniform sampler2D anisotropyMap;\\n\\t#endif\\n#endif\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\\n\\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n\\t#include \\n\\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\\n\\t#ifdef USE_SHEEN\\n\\t\\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\\n\\t\\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\\n\\t\\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\\n\\t\\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$4 = \"#define TOON\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$4 = \"#define TOON\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$3 = \"uniform float size;\\nuniform float scale;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#ifdef USE_POINTS_UV\\n\\tvarying vec2 vUv;\\n\\tuniform mat3 uvTransform;\\n#endif\\nvoid main() {\\n\\t#ifdef USE_POINTS_UV\\n\\t\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\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 \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$3 = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$2 = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$2 = \"uniform vec3 color;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$1 = \"uniform float rotation;\\nuniform vec2 center;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 mvPosition = modelViewMatrix[ 3 ];\\n\\tvec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) );\\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 \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$1 = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst ShaderChunk = {\n\talphahash_fragment: alphahash_fragment,\n\talphahash_pars_fragment: alphahash_pars_fragment,\n\talphamap_fragment: alphamap_fragment,\n\talphamap_pars_fragment: alphamap_pars_fragment,\n\talphatest_fragment: alphatest_fragment,\n\talphatest_pars_fragment: alphatest_pars_fragment,\n\taomap_fragment: aomap_fragment,\n\taomap_pars_fragment: aomap_pars_fragment,\n\tbatching_pars_vertex: batching_pars_vertex,\n\tbatching_vertex: batching_vertex,\n\tbegin_vertex: begin_vertex,\n\tbeginnormal_vertex: beginnormal_vertex,\n\tbsdfs: bsdfs,\n\tiridescence_fragment: iridescence_fragment,\n\tbumpmap_pars_fragment: bumpmap_pars_fragment,\n\tclipping_planes_fragment: clipping_planes_fragment,\n\tclipping_planes_pars_fragment: clipping_planes_pars_fragment,\n\tclipping_planes_pars_vertex: clipping_planes_pars_vertex,\n\tclipping_planes_vertex: clipping_planes_vertex,\n\tcolor_fragment: color_fragment,\n\tcolor_pars_fragment: color_pars_fragment,\n\tcolor_pars_vertex: color_pars_vertex,\n\tcolor_vertex: color_vertex,\n\tcommon: common,\n\tcube_uv_reflection_fragment: cube_uv_reflection_fragment,\n\tdefaultnormal_vertex: defaultnormal_vertex,\n\tdisplacementmap_pars_vertex: displacementmap_pars_vertex,\n\tdisplacementmap_vertex: displacementmap_vertex,\n\temissivemap_fragment: emissivemap_fragment,\n\temissivemap_pars_fragment: emissivemap_pars_fragment,\n\tcolorspace_fragment: colorspace_fragment,\n\tcolorspace_pars_fragment: colorspace_pars_fragment,\n\tenvmap_fragment: envmap_fragment,\n\tenvmap_common_pars_fragment: envmap_common_pars_fragment,\n\tenvmap_pars_fragment: envmap_pars_fragment,\n\tenvmap_pars_vertex: envmap_pars_vertex,\n\tenvmap_physical_pars_fragment: envmap_physical_pars_fragment,\n\tenvmap_vertex: envmap_vertex,\n\tfog_vertex: fog_vertex,\n\tfog_pars_vertex: fog_pars_vertex,\n\tfog_fragment: fog_fragment,\n\tfog_pars_fragment: fog_pars_fragment,\n\tgradientmap_pars_fragment: gradientmap_pars_fragment,\n\tlightmap_pars_fragment: lightmap_pars_fragment,\n\tlights_lambert_fragment: lights_lambert_fragment,\n\tlights_lambert_pars_fragment: lights_lambert_pars_fragment,\n\tlights_pars_begin: lights_pars_begin,\n\tlights_toon_fragment: lights_toon_fragment,\n\tlights_toon_pars_fragment: lights_toon_pars_fragment,\n\tlights_phong_fragment: lights_phong_fragment,\n\tlights_phong_pars_fragment: lights_phong_pars_fragment,\n\tlights_physical_fragment: lights_physical_fragment,\n\tlights_physical_pars_fragment: lights_physical_pars_fragment,\n\tlights_fragment_begin: lights_fragment_begin,\n\tlights_fragment_maps: lights_fragment_maps,\n\tlights_fragment_end: lights_fragment_end,\n\tlogdepthbuf_fragment: logdepthbuf_fragment,\n\tlogdepthbuf_pars_fragment: logdepthbuf_pars_fragment,\n\tlogdepthbuf_pars_vertex: logdepthbuf_pars_vertex,\n\tlogdepthbuf_vertex: logdepthbuf_vertex,\n\tmap_fragment: map_fragment,\n\tmap_pars_fragment: map_pars_fragment,\n\tmap_particle_fragment: map_particle_fragment,\n\tmap_particle_pars_fragment: map_particle_pars_fragment,\n\tmetalnessmap_fragment: metalnessmap_fragment,\n\tmetalnessmap_pars_fragment: metalnessmap_pars_fragment,\n\tmorphinstance_vertex: morphinstance_vertex,\n\tmorphcolor_vertex: morphcolor_vertex,\n\tmorphnormal_vertex: morphnormal_vertex,\n\tmorphtarget_pars_vertex: morphtarget_pars_vertex,\n\tmorphtarget_vertex: morphtarget_vertex,\n\tnormal_fragment_begin: normal_fragment_begin,\n\tnormal_fragment_maps: normal_fragment_maps,\n\tnormal_pars_fragment: normal_pars_fragment,\n\tnormal_pars_vertex: normal_pars_vertex,\n\tnormal_vertex: normal_vertex,\n\tnormalmap_pars_fragment: normalmap_pars_fragment,\n\tclearcoat_normal_fragment_begin: clearcoat_normal_fragment_begin,\n\tclearcoat_normal_fragment_maps: clearcoat_normal_fragment_maps,\n\tclearcoat_pars_fragment: clearcoat_pars_fragment,\n\tiridescence_pars_fragment: iridescence_pars_fragment,\n\topaque_fragment: opaque_fragment,\n\tpacking: packing,\n\tpremultiplied_alpha_fragment: premultiplied_alpha_fragment,\n\tproject_vertex: project_vertex,\n\tdithering_fragment: dithering_fragment,\n\tdithering_pars_fragment: dithering_pars_fragment,\n\troughnessmap_fragment: roughnessmap_fragment,\n\troughnessmap_pars_fragment: roughnessmap_pars_fragment,\n\tshadowmap_pars_fragment: shadowmap_pars_fragment,\n\tshadowmap_pars_vertex: shadowmap_pars_vertex,\n\tshadowmap_vertex: shadowmap_vertex,\n\tshadowmask_pars_fragment: shadowmask_pars_fragment,\n\tskinbase_vertex: skinbase_vertex,\n\tskinning_pars_vertex: skinning_pars_vertex,\n\tskinning_vertex: skinning_vertex,\n\tskinnormal_vertex: skinnormal_vertex,\n\tspecularmap_fragment: specularmap_fragment,\n\tspecularmap_pars_fragment: specularmap_pars_fragment,\n\ttonemapping_fragment: tonemapping_fragment,\n\ttonemapping_pars_fragment: tonemapping_pars_fragment,\n\ttransmission_fragment: transmission_fragment,\n\ttransmission_pars_fragment: transmission_pars_fragment,\n\tuv_pars_fragment: uv_pars_fragment,\n\tuv_pars_vertex: uv_pars_vertex,\n\tuv_vertex: uv_vertex,\n\tworldpos_vertex: worldpos_vertex,\n\n\tbackground_vert: vertex$h,\n\tbackground_frag: fragment$h,\n\tbackgroundCube_vert: vertex$g,\n\tbackgroundCube_frag: fragment$g,\n\tcube_vert: vertex$f,\n\tcube_frag: fragment$f,\n\tdepth_vert: vertex$e,\n\tdepth_frag: fragment$e,\n\tdistanceRGBA_vert: vertex$d,\n\tdistanceRGBA_frag: fragment$d,\n\tequirect_vert: vertex$c,\n\tequirect_frag: fragment$c,\n\tlinedashed_vert: vertex$b,\n\tlinedashed_frag: fragment$b,\n\tmeshbasic_vert: vertex$a,\n\tmeshbasic_frag: fragment$a,\n\tmeshlambert_vert: vertex$9,\n\tmeshlambert_frag: fragment$9,\n\tmeshmatcap_vert: vertex$8,\n\tmeshmatcap_frag: fragment$8,\n\tmeshnormal_vert: vertex$7,\n\tmeshnormal_frag: fragment$7,\n\tmeshphong_vert: vertex$6,\n\tmeshphong_frag: fragment$6,\n\tmeshphysical_vert: vertex$5,\n\tmeshphysical_frag: fragment$5,\n\tmeshtoon_vert: vertex$4,\n\tmeshtoon_frag: fragment$4,\n\tpoints_vert: vertex$3,\n\tpoints_frag: fragment$3,\n\tshadow_vert: vertex$2,\n\tshadow_frag: fragment$2,\n\tsprite_vert: vertex$1,\n\tsprite_frag: fragment$1\n};\n\n/**\n * Uniforms library for shared webgl shaders\n */\n\nconst UniformsLib = {\n\n\tcommon: {\n\n\t\tdiffuse: { value: /*@__PURE__*/ new Color( 0xffffff ) },\n\t\topacity: { value: 1.0 },\n\n\t\tmap: { value: null },\n\t\tmapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\n\t\talphaMap: { value: null },\n\t\talphaMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\n\t\talphaTest: { value: 0 }\n\n\t},\n\n\tspecularmap: {\n\n\t\tspecularMap: { value: null },\n\t\tspecularMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tenvmap: {\n\n\t\tenvMap: { value: null },\n\t\tenvMapRotation: { value: /*@__PURE__*/ new Matrix3() },\n\t\tflipEnvMap: { value: - 1 },\n\t\treflectivity: { value: 1.0 }, // basic, lambert, phong\n\t\tior: { value: 1.5 }, // physical\n\t\trefractionRatio: { value: 0.98 }, // basic, lambert, phong\n\n\t},\n\n\taomap: {\n\n\t\taoMap: { value: null },\n\t\taoMapIntensity: { value: 1 },\n\t\taoMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tlightmap: {\n\n\t\tlightMap: { value: null },\n\t\tlightMapIntensity: { value: 1 },\n\t\tlightMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tbumpmap: {\n\n\t\tbumpMap: { value: null },\n\t\tbumpMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\tbumpScale: { value: 1 }\n\n\t},\n\n\tnormalmap: {\n\n\t\tnormalMap: { value: null },\n\t\tnormalMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\tnormalScale: { value: /*@__PURE__*/ new Vector2( 1, 1 ) }\n\n\t},\n\n\tdisplacementmap: {\n\n\t\tdisplacementMap: { value: null },\n\t\tdisplacementMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\tdisplacementScale: { value: 1 },\n\t\tdisplacementBias: { value: 0 }\n\n\t},\n\n\temissivemap: {\n\n\t\temissiveMap: { value: null },\n\t\temissiveMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tmetalnessmap: {\n\n\t\tmetalnessMap: { value: null },\n\t\tmetalnessMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\troughnessmap: {\n\n\t\troughnessMap: { value: null },\n\t\troughnessMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tgradientmap: {\n\n\t\tgradientMap: { value: null }\n\n\t},\n\n\tfog: {\n\n\t\tfogDensity: { value: 0.00025 },\n\t\tfogNear: { value: 1 },\n\t\tfogFar: { value: 2000 },\n\t\tfogColor: { value: /*@__PURE__*/ new Color( 0xffffff ) }\n\n\t},\n\n\tlights: {\n\n\t\tambientLightColor: { value: [] },\n\n\t\tlightProbe: { value: [] },\n\n\t\tdirectionalLights: { value: [], properties: {\n\t\t\tdirection: {},\n\t\t\tcolor: {}\n\t\t} },\n\n\t\tdirectionalLightShadows: { value: [], properties: {\n\t\t\tshadowIntensity: 1,\n\t\t\tshadowBias: {},\n\t\t\tshadowNormalBias: {},\n\t\t\tshadowRadius: {},\n\t\t\tshadowMapSize: {}\n\t\t} },\n\n\t\tdirectionalShadowMap: { value: [] },\n\t\tdirectionalShadowMatrix: { value: [] },\n\n\t\tspotLights: { value: [], properties: {\n\t\t\tcolor: {},\n\t\t\tposition: {},\n\t\t\tdirection: {},\n\t\t\tdistance: {},\n\t\t\tconeCos: {},\n\t\t\tpenumbraCos: {},\n\t\t\tdecay: {}\n\t\t} },\n\n\t\tspotLightShadows: { value: [], properties: {\n\t\t\tshadowIntensity: 1,\n\t\t\tshadowBias: {},\n\t\t\tshadowNormalBias: {},\n\t\t\tshadowRadius: {},\n\t\t\tshadowMapSize: {}\n\t\t} },\n\n\t\tspotLightMap: { value: [] },\n\t\tspotShadowMap: { value: [] },\n\t\tspotLightMatrix: { value: [] },\n\n\t\tpointLights: { value: [], properties: {\n\t\t\tcolor: {},\n\t\t\tposition: {},\n\t\t\tdecay: {},\n\t\t\tdistance: {}\n\t\t} },\n\n\t\tpointLightShadows: { value: [], properties: {\n\t\t\tshadowIntensity: 1,\n\t\t\tshadowBias: {},\n\t\t\tshadowNormalBias: {},\n\t\t\tshadowRadius: {},\n\t\t\tshadowMapSize: {},\n\t\t\tshadowCameraNear: {},\n\t\t\tshadowCameraFar: {}\n\t\t} },\n\n\t\tpointShadowMap: { value: [] },\n\t\tpointShadowMatrix: { value: [] },\n\n\t\themisphereLights: { value: [], properties: {\n\t\t\tdirection: {},\n\t\t\tskyColor: {},\n\t\t\tgroundColor: {}\n\t\t} },\n\n\t\t// TODO (abelnation): RectAreaLight BRDF data needs to be moved from example to main src\n\t\trectAreaLights: { value: [], properties: {\n\t\t\tcolor: {},\n\t\t\tposition: {},\n\t\t\twidth: {},\n\t\t\theight: {}\n\t\t} },\n\n\t\tltc_1: { value: null },\n\t\tltc_2: { value: null }\n\n\t},\n\n\tpoints: {\n\n\t\tdiffuse: { value: /*@__PURE__*/ new Color( 0xffffff ) },\n\t\topacity: { value: 1.0 },\n\t\tsize: { value: 1.0 },\n\t\tscale: { value: 1.0 },\n\t\tmap: { value: null },\n\t\talphaMap: { value: null },\n\t\talphaMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\talphaTest: { value: 0 },\n\t\tuvTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tsprite: {\n\n\t\tdiffuse: { value: /*@__PURE__*/ new Color( 0xffffff ) },\n\t\topacity: { value: 1.0 },\n\t\tcenter: { value: /*@__PURE__*/ new Vector2( 0.5, 0.5 ) },\n\t\trotation: { value: 0.0 },\n\t\tmap: { value: null },\n\t\tmapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\talphaMap: { value: null },\n\t\talphaMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\talphaTest: { value: 0 }\n\n\t}\n\n};\n\nconst ShaderLib = {\n\n\tbasic: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.specularmap,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.fog\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshbasic_vert,\n\t\tfragmentShader: ShaderChunk.meshbasic_frag\n\n\t},\n\n\tlambert: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.specularmap,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: /*@__PURE__*/ new Color( 0x000000 ) }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshlambert_vert,\n\t\tfragmentShader: ShaderChunk.meshlambert_frag\n\n\t},\n\n\tphong: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.specularmap,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: /*@__PURE__*/ new Color( 0x000000 ) },\n\t\t\t\tspecular: { value: /*@__PURE__*/ new Color( 0x111111 ) },\n\t\t\t\tshininess: { value: 30 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshphong_vert,\n\t\tfragmentShader: ShaderChunk.meshphong_frag\n\n\t},\n\n\tstandard: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.roughnessmap,\n\t\t\tUniformsLib.metalnessmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: /*@__PURE__*/ new Color( 0x000000 ) },\n\t\t\t\troughness: { value: 1.0 },\n\t\t\t\tmetalness: { value: 0.0 },\n\t\t\t\tenvMapIntensity: { value: 1 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshphysical_vert,\n\t\tfragmentShader: ShaderChunk.meshphysical_frag\n\n\t},\n\n\ttoon: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.gradientmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: /*@__PURE__*/ new Color( 0x000000 ) }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshtoon_vert,\n\t\tfragmentShader: ShaderChunk.meshtoon_frag\n\n\t},\n\n\tmatcap: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.fog,\n\t\t\t{\n\t\t\t\tmatcap: { value: null }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshmatcap_vert,\n\t\tfragmentShader: ShaderChunk.meshmatcap_frag\n\n\t},\n\n\tpoints: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.points,\n\t\t\tUniformsLib.fog\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.points_vert,\n\t\tfragmentShader: ShaderChunk.points_frag\n\n\t},\n\n\tdashed: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.fog,\n\t\t\t{\n\t\t\t\tscale: { value: 1 },\n\t\t\t\tdashSize: { value: 1 },\n\t\t\t\ttotalSize: { value: 2 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.linedashed_vert,\n\t\tfragmentShader: ShaderChunk.linedashed_frag\n\n\t},\n\n\tdepth: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.displacementmap\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.depth_vert,\n\t\tfragmentShader: ShaderChunk.depth_frag\n\n\t},\n\n\tnormal: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\t{\n\t\t\t\topacity: { value: 1.0 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshnormal_vert,\n\t\tfragmentShader: ShaderChunk.meshnormal_frag\n\n\t},\n\n\tsprite: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.sprite,\n\t\t\tUniformsLib.fog\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.sprite_vert,\n\t\tfragmentShader: ShaderChunk.sprite_frag\n\n\t},\n\n\tbackground: {\n\n\t\tuniforms: {\n\t\t\tuvTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tt2D: { value: null },\n\t\t\tbackgroundIntensity: { value: 1 }\n\t\t},\n\n\t\tvertexShader: ShaderChunk.background_vert,\n\t\tfragmentShader: ShaderChunk.background_frag\n\n\t},\n\n\tbackgroundCube: {\n\n\t\tuniforms: {\n\t\t\tenvMap: { value: null },\n\t\t\tflipEnvMap: { value: - 1 },\n\t\t\tbackgroundBlurriness: { value: 0 },\n\t\t\tbackgroundIntensity: { value: 1 },\n\t\t\tbackgroundRotation: { value: /*@__PURE__*/ new Matrix3() }\n\t\t},\n\n\t\tvertexShader: ShaderChunk.backgroundCube_vert,\n\t\tfragmentShader: ShaderChunk.backgroundCube_frag\n\n\t},\n\n\tcube: {\n\n\t\tuniforms: {\n\t\t\ttCube: { value: null },\n\t\t\ttFlip: { value: - 1 },\n\t\t\topacity: { value: 1.0 }\n\t\t},\n\n\t\tvertexShader: ShaderChunk.cube_vert,\n\t\tfragmentShader: ShaderChunk.cube_frag\n\n\t},\n\n\tequirect: {\n\n\t\tuniforms: {\n\t\t\ttEquirect: { value: null },\n\t\t},\n\n\t\tvertexShader: ShaderChunk.equirect_vert,\n\t\tfragmentShader: ShaderChunk.equirect_frag\n\n\t},\n\n\tdistanceRGBA: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.displacementmap,\n\t\t\t{\n\t\t\t\treferencePosition: { value: /*@__PURE__*/ new Vector3() },\n\t\t\t\tnearDistance: { value: 1 },\n\t\t\t\tfarDistance: { value: 1000 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.distanceRGBA_vert,\n\t\tfragmentShader: ShaderChunk.distanceRGBA_frag\n\n\t},\n\n\tshadow: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.lights,\n\t\t\tUniformsLib.fog,\n\t\t\t{\n\t\t\t\tcolor: { value: /*@__PURE__*/ new Color( 0x00000 ) },\n\t\t\t\topacity: { value: 1.0 }\n\t\t\t},\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.shadow_vert,\n\t\tfragmentShader: ShaderChunk.shadow_frag\n\n\t}\n\n};\n\nShaderLib.physical = {\n\n\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\tShaderLib.standard.uniforms,\n\t\t{\n\t\t\tclearcoat: { value: 0 },\n\t\t\tclearcoatMap: { value: null },\n\t\t\tclearcoatMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tclearcoatNormalMap: { value: null },\n\t\t\tclearcoatNormalMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tclearcoatNormalScale: { value: /*@__PURE__*/ new Vector2( 1, 1 ) },\n\t\t\tclearcoatRoughness: { value: 0 },\n\t\t\tclearcoatRoughnessMap: { value: null },\n\t\t\tclearcoatRoughnessMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tdispersion: { value: 0 },\n\t\t\tiridescence: { value: 0 },\n\t\t\tiridescenceMap: { value: null },\n\t\t\tiridescenceMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tiridescenceIOR: { value: 1.3 },\n\t\t\tiridescenceThicknessMinimum: { value: 100 },\n\t\t\tiridescenceThicknessMaximum: { value: 400 },\n\t\t\tiridescenceThicknessMap: { value: null },\n\t\t\tiridescenceThicknessMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tsheen: { value: 0 },\n\t\t\tsheenColor: { value: /*@__PURE__*/ new Color( 0x000000 ) },\n\t\t\tsheenColorMap: { value: null },\n\t\t\tsheenColorMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tsheenRoughness: { value: 1 },\n\t\t\tsheenRoughnessMap: { value: null },\n\t\t\tsheenRoughnessMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\ttransmission: { value: 0 },\n\t\t\ttransmissionMap: { value: null },\n\t\t\ttransmissionMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\ttransmissionSamplerSize: { value: /*@__PURE__*/ new Vector2() },\n\t\t\ttransmissionSamplerMap: { value: null },\n\t\t\tthickness: { value: 0 },\n\t\t\tthicknessMap: { value: null },\n\t\t\tthicknessMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tattenuationDistance: { value: 0 },\n\t\t\tattenuationColor: { value: /*@__PURE__*/ new Color( 0x000000 ) },\n\t\t\tspecularColor: { value: /*@__PURE__*/ new Color( 1, 1, 1 ) },\n\t\t\tspecularColorMap: { value: null },\n\t\t\tspecularColorMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tspecularIntensity: { value: 1 },\n\t\t\tspecularIntensityMap: { value: null },\n\t\t\tspecularIntensityMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tanisotropyVector: { value: /*@__PURE__*/ new Vector2() },\n\t\t\tanisotropyMap: { value: null },\n\t\t\tanisotropyMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t}\n\t] ),\n\n\tvertexShader: ShaderChunk.meshphysical_vert,\n\tfragmentShader: ShaderChunk.meshphysical_frag\n\n};\n\nconst _rgb = { r: 0, b: 0, g: 0 };\nconst _e1$1 = /*@__PURE__*/ new Euler();\nconst _m1$1 = /*@__PURE__*/ new Matrix4();\n\nfunction WebGLBackground( renderer, cubemaps, cubeuvmaps, state, objects, alpha, premultipliedAlpha ) {\n\n\tconst clearColor = new Color( 0x000000 );\n\tlet clearAlpha = alpha === true ? 0 : 1;\n\n\tlet planeMesh;\n\tlet boxMesh;\n\n\tlet currentBackground = null;\n\tlet currentBackgroundVersion = 0;\n\tlet currentTonemapping = null;\n\n\tfunction getBackground( scene ) {\n\n\t\tlet background = scene.isScene === true ? scene.background : null;\n\n\t\tif ( background && background.isTexture ) {\n\n\t\t\tconst usePMREM = scene.backgroundBlurriness > 0; // use PMREM if the user wants to blur the background\n\t\t\tbackground = ( usePMREM ? cubeuvmaps : cubemaps ).get( background );\n\n\t\t}\n\n\t\treturn background;\n\n\t}\n\n\tfunction render( scene ) {\n\n\t\tlet forceClear = false;\n\t\tconst background = getBackground( scene );\n\n\t\tif ( background === null ) {\n\n\t\t\tsetClear( clearColor, clearAlpha );\n\n\t\t} else if ( background && background.isColor ) {\n\n\t\t\tsetClear( background, 1 );\n\t\t\tforceClear = true;\n\n\t\t}\n\n\t\tconst environmentBlendMode = renderer.xr.getEnvironmentBlendMode();\n\n\t\tif ( environmentBlendMode === 'additive' ) {\n\n\t\t\tstate.buffers.color.setClear( 0, 0, 0, 1, premultipliedAlpha );\n\n\t\t} else if ( environmentBlendMode === 'alpha-blend' ) {\n\n\t\t\tstate.buffers.color.setClear( 0, 0, 0, 0, premultipliedAlpha );\n\n\t\t}\n\n\t\tif ( renderer.autoClear || forceClear ) {\n\n\t\t\t// buffers might not be writable which is required to ensure a correct clear\n\n\t\t\tstate.buffers.depth.setTest( true );\n\t\t\tstate.buffers.depth.setMask( true );\n\t\t\tstate.buffers.color.setMask( true );\n\n\t\t\trenderer.clear( renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil );\n\n\t\t}\n\n\t}\n\n\tfunction addToRenderList( renderList, scene ) {\n\n\t\tconst background = getBackground( scene );\n\n\t\tif ( background && ( background.isCubeTexture || background.mapping === CubeUVReflectionMapping ) ) {\n\n\t\t\tif ( boxMesh === undefined ) {\n\n\t\t\t\tboxMesh = new Mesh(\n\t\t\t\t\tnew BoxGeometry( 1, 1, 1 ),\n\t\t\t\t\tnew ShaderMaterial( {\n\t\t\t\t\t\tname: 'BackgroundCubeMaterial',\n\t\t\t\t\t\tuniforms: cloneUniforms( ShaderLib.backgroundCube.uniforms ),\n\t\t\t\t\t\tvertexShader: ShaderLib.backgroundCube.vertexShader,\n\t\t\t\t\t\tfragmentShader: ShaderLib.backgroundCube.fragmentShader,\n\t\t\t\t\t\tside: BackSide,\n\t\t\t\t\t\tdepthTest: false,\n\t\t\t\t\t\tdepthWrite: false,\n\t\t\t\t\t\tfog: false\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\tboxMesh.geometry.deleteAttribute( 'normal' );\n\t\t\t\tboxMesh.geometry.deleteAttribute( 'uv' );\n\n\t\t\t\tboxMesh.onBeforeRender = function ( renderer, scene, camera ) {\n\n\t\t\t\t\tthis.matrixWorld.copyPosition( camera.matrixWorld );\n\n\t\t\t\t};\n\n\t\t\t\t// add \"envMap\" material property so the renderer can evaluate it like for built-in materials\n\t\t\t\tObject.defineProperty( boxMesh.material, 'envMap', {\n\n\t\t\t\t\tget: function () {\n\n\t\t\t\t\t\treturn this.uniforms.envMap.value;\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\tobjects.update( boxMesh );\n\n\t\t\t}\n\n\t\t\t_e1$1.copy( scene.backgroundRotation );\n\n\t\t\t// accommodate left-handed frame\n\t\t\t_e1$1.x *= - 1; _e1$1.y *= - 1; _e1$1.z *= - 1;\n\n\t\t\tif ( background.isCubeTexture && background.isRenderTargetTexture === false ) {\n\n\t\t\t\t// environment maps which are not cube render targets or PMREMs follow a different convention\n\t\t\t\t_e1$1.y *= - 1;\n\t\t\t\t_e1$1.z *= - 1;\n\n\t\t\t}\n\n\t\t\tboxMesh.material.uniforms.envMap.value = background;\n\t\t\tboxMesh.material.uniforms.flipEnvMap.value = ( background.isCubeTexture && background.isRenderTargetTexture === false ) ? - 1 : 1;\n\t\t\tboxMesh.material.uniforms.backgroundBlurriness.value = scene.backgroundBlurriness;\n\t\t\tboxMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity;\n\t\t\tboxMesh.material.uniforms.backgroundRotation.value.setFromMatrix4( _m1$1.makeRotationFromEuler( _e1$1 ) );\n\t\t\tboxMesh.material.toneMapped = ColorManagement.getTransfer( background.colorSpace ) !== SRGBTransfer;\n\n\t\t\tif ( currentBackground !== background ||\n\t\t\t\tcurrentBackgroundVersion !== background.version ||\n\t\t\t\tcurrentTonemapping !== renderer.toneMapping ) {\n\n\t\t\t\tboxMesh.material.needsUpdate = true;\n\n\t\t\t\tcurrentBackground = background;\n\t\t\t\tcurrentBackgroundVersion = background.version;\n\t\t\t\tcurrentTonemapping = renderer.toneMapping;\n\n\t\t\t}\n\n\t\t\tboxMesh.layers.enableAll();\n\n\t\t\t// push to the pre-sorted opaque render list\n\t\t\trenderList.unshift( boxMesh, boxMesh.geometry, boxMesh.material, 0, 0, null );\n\n\t\t} else if ( background && background.isTexture ) {\n\n\t\t\tif ( planeMesh === undefined ) {\n\n\t\t\t\tplaneMesh = new Mesh(\n\t\t\t\t\tnew PlaneGeometry( 2, 2 ),\n\t\t\t\t\tnew ShaderMaterial( {\n\t\t\t\t\t\tname: 'BackgroundMaterial',\n\t\t\t\t\t\tuniforms: cloneUniforms( ShaderLib.background.uniforms ),\n\t\t\t\t\t\tvertexShader: ShaderLib.background.vertexShader,\n\t\t\t\t\t\tfragmentShader: ShaderLib.background.fragmentShader,\n\t\t\t\t\t\tside: FrontSide,\n\t\t\t\t\t\tdepthTest: false,\n\t\t\t\t\t\tdepthWrite: false,\n\t\t\t\t\t\tfog: false\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\tplaneMesh.geometry.deleteAttribute( 'normal' );\n\n\t\t\t\t// add \"map\" material property so the renderer can evaluate it like for built-in materials\n\t\t\t\tObject.defineProperty( planeMesh.material, 'map', {\n\n\t\t\t\t\tget: function () {\n\n\t\t\t\t\t\treturn this.uniforms.t2D.value;\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\tobjects.update( planeMesh );\n\n\t\t\t}\n\n\t\t\tplaneMesh.material.uniforms.t2D.value = background;\n\t\t\tplaneMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity;\n\t\t\tplaneMesh.material.toneMapped = ColorManagement.getTransfer( background.colorSpace ) !== SRGBTransfer;\n\n\t\t\tif ( background.matrixAutoUpdate === true ) {\n\n\t\t\t\tbackground.updateMatrix();\n\n\t\t\t}\n\n\t\t\tplaneMesh.material.uniforms.uvTransform.value.copy( background.matrix );\n\n\t\t\tif ( currentBackground !== background ||\n\t\t\t\tcurrentBackgroundVersion !== background.version ||\n\t\t\t\tcurrentTonemapping !== renderer.toneMapping ) {\n\n\t\t\t\tplaneMesh.material.needsUpdate = true;\n\n\t\t\t\tcurrentBackground = background;\n\t\t\t\tcurrentBackgroundVersion = background.version;\n\t\t\t\tcurrentTonemapping = renderer.toneMapping;\n\n\t\t\t}\n\n\t\t\tplaneMesh.layers.enableAll();\n\n\t\t\t// push to the pre-sorted opaque render list\n\t\t\trenderList.unshift( planeMesh, planeMesh.geometry, planeMesh.material, 0, 0, null );\n\n\t\t}\n\n\t}\n\n\tfunction setClear( color, alpha ) {\n\n\t\tcolor.getRGB( _rgb, getUnlitUniformColorSpace( renderer ) );\n\n\t\tstate.buffers.color.setClear( _rgb.r, _rgb.g, _rgb.b, alpha, premultipliedAlpha );\n\n\t}\n\n\tfunction dispose() {\n\n\t\tif ( boxMesh !== undefined ) {\n\n\t\t\tboxMesh.geometry.dispose();\n\t\t\tboxMesh.material.dispose();\n\n\t\t}\n\n\t\tif ( planeMesh !== undefined ) {\n\n\t\t\tplaneMesh.geometry.dispose();\n\t\t\tplaneMesh.material.dispose();\n\n\t\t}\n\n\t}\n\n\treturn {\n\n\t\tgetClearColor: function () {\n\n\t\t\treturn clearColor;\n\n\t\t},\n\t\tsetClearColor: function ( color, alpha = 1 ) {\n\n\t\t\tclearColor.set( color );\n\t\t\tclearAlpha = alpha;\n\t\t\tsetClear( clearColor, clearAlpha );\n\n\t\t},\n\t\tgetClearAlpha: function () {\n\n\t\t\treturn clearAlpha;\n\n\t\t},\n\t\tsetClearAlpha: function ( alpha ) {\n\n\t\t\tclearAlpha = alpha;\n\t\t\tsetClear( clearColor, clearAlpha );\n\n\t\t},\n\t\trender: render,\n\t\taddToRenderList: addToRenderList,\n\t\tdispose: dispose\n\n\t};\n\n}\n\nfunction WebGLBindingStates( gl, attributes ) {\n\n\tconst maxVertexAttributes = gl.getParameter( gl.MAX_VERTEX_ATTRIBS );\n\n\tconst bindingStates = {};\n\n\tconst defaultState = createBindingState( null );\n\tlet currentState = defaultState;\n\tlet forceUpdate = false;\n\n\tfunction setup( object, material, program, geometry, index ) {\n\n\t\tlet updateBuffers = false;\n\n\t\tconst state = getBindingState( geometry, program, material );\n\n\t\tif ( currentState !== state ) {\n\n\t\t\tcurrentState = state;\n\t\t\tbindVertexArrayObject( currentState.object );\n\n\t\t}\n\n\t\tupdateBuffers = needsUpdate( object, geometry, program, index );\n\n\t\tif ( updateBuffers ) saveCache( object, geometry, program, index );\n\n\t\tif ( index !== null ) {\n\n\t\t\tattributes.update( index, gl.ELEMENT_ARRAY_BUFFER );\n\n\t\t}\n\n\t\tif ( updateBuffers || forceUpdate ) {\n\n\t\t\tforceUpdate = false;\n\n\t\t\tsetupVertexAttributes( object, material, program, geometry );\n\n\t\t\tif ( index !== null ) {\n\n\t\t\t\tgl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, attributes.get( index ).buffer );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction createVertexArrayObject() {\n\n\t\treturn gl.createVertexArray();\n\n\t}\n\n\tfunction bindVertexArrayObject( vao ) {\n\n\t\treturn gl.bindVertexArray( vao );\n\n\t}\n\n\tfunction deleteVertexArrayObject( vao ) {\n\n\t\treturn gl.deleteVertexArray( vao );\n\n\t}\n\n\tfunction getBindingState( geometry, program, material ) {\n\n\t\tconst wireframe = ( material.wireframe === true );\n\n\t\tlet programMap = bindingStates[ geometry.id ];\n\n\t\tif ( programMap === undefined ) {\n\n\t\t\tprogramMap = {};\n\t\t\tbindingStates[ geometry.id ] = programMap;\n\n\t\t}\n\n\t\tlet stateMap = programMap[ program.id ];\n\n\t\tif ( stateMap === undefined ) {\n\n\t\t\tstateMap = {};\n\t\t\tprogramMap[ program.id ] = stateMap;\n\n\t\t}\n\n\t\tlet state = stateMap[ wireframe ];\n\n\t\tif ( state === undefined ) {\n\n\t\t\tstate = createBindingState( createVertexArrayObject() );\n\t\t\tstateMap[ wireframe ] = state;\n\n\t\t}\n\n\t\treturn state;\n\n\t}\n\n\tfunction createBindingState( vao ) {\n\n\t\tconst newAttributes = [];\n\t\tconst enabledAttributes = [];\n\t\tconst attributeDivisors = [];\n\n\t\tfor ( let i = 0; i < maxVertexAttributes; i ++ ) {\n\n\t\t\tnewAttributes[ i ] = 0;\n\t\t\tenabledAttributes[ i ] = 0;\n\t\t\tattributeDivisors[ i ] = 0;\n\n\t\t}\n\n\t\treturn {\n\n\t\t\t// for backward compatibility on non-VAO support browser\n\t\t\tgeometry: null,\n\t\t\tprogram: null,\n\t\t\twireframe: false,\n\n\t\t\tnewAttributes: newAttributes,\n\t\t\tenabledAttributes: enabledAttributes,\n\t\t\tattributeDivisors: attributeDivisors,\n\t\t\tobject: vao,\n\t\t\tattributes: {},\n\t\t\tindex: null\n\n\t\t};\n\n\t}\n\n\tfunction needsUpdate( object, geometry, program, index ) {\n\n\t\tconst cachedAttributes = currentState.attributes;\n\t\tconst geometryAttributes = geometry.attributes;\n\n\t\tlet attributesNum = 0;\n\n\t\tconst programAttributes = program.getAttributes();\n\n\t\tfor ( const name in programAttributes ) {\n\n\t\t\tconst programAttribute = programAttributes[ name ];\n\n\t\t\tif ( programAttribute.location >= 0 ) {\n\n\t\t\t\tconst cachedAttribute = cachedAttributes[ name ];\n\t\t\t\tlet geometryAttribute = geometryAttributes[ name ];\n\n\t\t\t\tif ( geometryAttribute === undefined ) {\n\n\t\t\t\t\tif ( name === 'instanceMatrix' && object.instanceMatrix ) geometryAttribute = object.instanceMatrix;\n\t\t\t\t\tif ( name === 'instanceColor' && object.instanceColor ) geometryAttribute = object.instanceColor;\n\n\t\t\t\t}\n\n\t\t\t\tif ( cachedAttribute === undefined ) return true;\n\n\t\t\t\tif ( cachedAttribute.attribute !== geometryAttribute ) return true;\n\n\t\t\t\tif ( geometryAttribute && cachedAttribute.data !== geometryAttribute.data ) return true;\n\n\t\t\t\tattributesNum ++;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( currentState.attributesNum !== attributesNum ) return true;\n\n\t\tif ( currentState.index !== index ) return true;\n\n\t\treturn false;\n\n\t}\n\n\tfunction saveCache( object, geometry, program, index ) {\n\n\t\tconst cache = {};\n\t\tconst attributes = geometry.attributes;\n\t\tlet attributesNum = 0;\n\n\t\tconst programAttributes = program.getAttributes();\n\n\t\tfor ( const name in programAttributes ) {\n\n\t\t\tconst programAttribute = programAttributes[ name ];\n\n\t\t\tif ( programAttribute.location >= 0 ) {\n\n\t\t\t\tlet attribute = attributes[ name ];\n\n\t\t\t\tif ( attribute === undefined ) {\n\n\t\t\t\t\tif ( name === 'instanceMatrix' && object.instanceMatrix ) attribute = object.instanceMatrix;\n\t\t\t\t\tif ( name === 'instanceColor' && object.instanceColor ) attribute = object.instanceColor;\n\n\t\t\t\t}\n\n\t\t\t\tconst data = {};\n\t\t\t\tdata.attribute = attribute;\n\n\t\t\t\tif ( attribute && attribute.data ) {\n\n\t\t\t\t\tdata.data = attribute.data;\n\n\t\t\t\t}\n\n\t\t\t\tcache[ name ] = data;\n\n\t\t\t\tattributesNum ++;\n\n\t\t\t}\n\n\t\t}\n\n\t\tcurrentState.attributes = cache;\n\t\tcurrentState.attributesNum = attributesNum;\n\n\t\tcurrentState.index = index;\n\n\t}\n\n\tfunction initAttributes() {\n\n\t\tconst newAttributes = currentState.newAttributes;\n\n\t\tfor ( let i = 0, il = newAttributes.length; i < il; i ++ ) {\n\n\t\t\tnewAttributes[ i ] = 0;\n\n\t\t}\n\n\t}\n\n\tfunction enableAttribute( attribute ) {\n\n\t\tenableAttributeAndDivisor( attribute, 0 );\n\n\t}\n\n\tfunction enableAttributeAndDivisor( attribute, meshPerAttribute ) {\n\n\t\tconst newAttributes = currentState.newAttributes;\n\t\tconst enabledAttributes = currentState.enabledAttributes;\n\t\tconst attributeDivisors = currentState.attributeDivisors;\n\n\t\tnewAttributes[ attribute ] = 1;\n\n\t\tif ( enabledAttributes[ attribute ] === 0 ) {\n\n\t\t\tgl.enableVertexAttribArray( attribute );\n\t\t\tenabledAttributes[ attribute ] = 1;\n\n\t\t}\n\n\t\tif ( attributeDivisors[ attribute ] !== meshPerAttribute ) {\n\n\t\t\tgl.vertexAttribDivisor( attribute, meshPerAttribute );\n\t\t\tattributeDivisors[ attribute ] = meshPerAttribute;\n\n\t\t}\n\n\t}\n\n\tfunction disableUnusedAttributes() {\n\n\t\tconst newAttributes = currentState.newAttributes;\n\t\tconst enabledAttributes = currentState.enabledAttributes;\n\n\t\tfor ( let i = 0, il = enabledAttributes.length; i < il; i ++ ) {\n\n\t\t\tif ( enabledAttributes[ i ] !== newAttributes[ i ] ) {\n\n\t\t\t\tgl.disableVertexAttribArray( i );\n\t\t\t\tenabledAttributes[ i ] = 0;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction vertexAttribPointer( index, size, type, normalized, stride, offset, integer ) {\n\n\t\tif ( integer === true ) {\n\n\t\t\tgl.vertexAttribIPointer( index, size, type, stride, offset );\n\n\t\t} else {\n\n\t\t\tgl.vertexAttribPointer( index, size, type, normalized, stride, offset );\n\n\t\t}\n\n\t}\n\n\tfunction setupVertexAttributes( object, material, program, geometry ) {\n\n\t\tinitAttributes();\n\n\t\tconst geometryAttributes = geometry.attributes;\n\n\t\tconst programAttributes = program.getAttributes();\n\n\t\tconst materialDefaultAttributeValues = material.defaultAttributeValues;\n\n\t\tfor ( const name in programAttributes ) {\n\n\t\t\tconst programAttribute = programAttributes[ name ];\n\n\t\t\tif ( programAttribute.location >= 0 ) {\n\n\t\t\t\tlet geometryAttribute = geometryAttributes[ name ];\n\n\t\t\t\tif ( geometryAttribute === undefined ) {\n\n\t\t\t\t\tif ( name === 'instanceMatrix' && object.instanceMatrix ) geometryAttribute = object.instanceMatrix;\n\t\t\t\t\tif ( name === 'instanceColor' && object.instanceColor ) geometryAttribute = object.instanceColor;\n\n\t\t\t\t}\n\n\t\t\t\tif ( geometryAttribute !== undefined ) {\n\n\t\t\t\t\tconst normalized = geometryAttribute.normalized;\n\t\t\t\t\tconst size = geometryAttribute.itemSize;\n\n\t\t\t\t\tconst attribute = attributes.get( geometryAttribute );\n\n\t\t\t\t\t// TODO Attribute may not be available on context restore\n\n\t\t\t\t\tif ( attribute === undefined ) continue;\n\n\t\t\t\t\tconst buffer = attribute.buffer;\n\t\t\t\t\tconst type = attribute.type;\n\t\t\t\t\tconst bytesPerElement = attribute.bytesPerElement;\n\n\t\t\t\t\t// check for integer attributes\n\n\t\t\t\t\tconst integer = ( type === gl.INT || type === gl.UNSIGNED_INT || geometryAttribute.gpuType === IntType );\n\n\t\t\t\t\tif ( geometryAttribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\t\t\tconst data = geometryAttribute.data;\n\t\t\t\t\t\tconst stride = data.stride;\n\t\t\t\t\t\tconst offset = geometryAttribute.offset;\n\n\t\t\t\t\t\tif ( data.isInstancedInterleavedBuffer ) {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttributeAndDivisor( programAttribute.location + i, data.meshPerAttribute );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( object.isInstancedMesh !== true && geometry._maxInstanceCount === undefined ) {\n\n\t\t\t\t\t\t\t\tgeometry._maxInstanceCount = data.meshPerAttribute * data.count;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttribute( programAttribute.location + i );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tgl.bindBuffer( gl.ARRAY_BUFFER, buffer );\n\n\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\tvertexAttribPointer(\n\t\t\t\t\t\t\t\tprogramAttribute.location + i,\n\t\t\t\t\t\t\t\tsize / programAttribute.locationSize,\n\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\tnormalized,\n\t\t\t\t\t\t\t\tstride * bytesPerElement,\n\t\t\t\t\t\t\t\t( offset + ( size / programAttribute.locationSize ) * i ) * bytesPerElement,\n\t\t\t\t\t\t\t\tinteger\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( geometryAttribute.isInstancedBufferAttribute ) {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttributeAndDivisor( programAttribute.location + i, geometryAttribute.meshPerAttribute );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( object.isInstancedMesh !== true && geometry._maxInstanceCount === undefined ) {\n\n\t\t\t\t\t\t\t\tgeometry._maxInstanceCount = geometryAttribute.meshPerAttribute * geometryAttribute.count;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttribute( programAttribute.location + i );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tgl.bindBuffer( gl.ARRAY_BUFFER, buffer );\n\n\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\tvertexAttribPointer(\n\t\t\t\t\t\t\t\tprogramAttribute.location + i,\n\t\t\t\t\t\t\t\tsize / programAttribute.locationSize,\n\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\tnormalized,\n\t\t\t\t\t\t\t\tsize * bytesPerElement,\n\t\t\t\t\t\t\t\t( size / programAttribute.locationSize ) * i * bytesPerElement,\n\t\t\t\t\t\t\t\tinteger\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( materialDefaultAttributeValues !== undefined ) {\n\n\t\t\t\t\tconst value = materialDefaultAttributeValues[ name ];\n\n\t\t\t\t\tif ( value !== undefined ) {\n\n\t\t\t\t\t\tswitch ( value.length ) {\n\n\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\t\tgl.vertexAttrib2fv( programAttribute.location, value );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase 3:\n\t\t\t\t\t\t\t\tgl.vertexAttrib3fv( programAttribute.location, value );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase 4:\n\t\t\t\t\t\t\t\tgl.vertexAttrib4fv( programAttribute.location, value );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tgl.vertexAttrib1fv( programAttribute.location, value );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tdisableUnusedAttributes();\n\n\t}\n\n\tfunction dispose() {\n\n\t\treset();\n\n\t\tfor ( const geometryId in bindingStates ) {\n\n\t\t\tconst programMap = bindingStates[ geometryId ];\n\n\t\t\tfor ( const programId in programMap ) {\n\n\t\t\t\tconst stateMap = programMap[ programId ];\n\n\t\t\t\tfor ( const wireframe in stateMap ) {\n\n\t\t\t\t\tdeleteVertexArrayObject( stateMap[ wireframe ].object );\n\n\t\t\t\t\tdelete stateMap[ wireframe ];\n\n\t\t\t\t}\n\n\t\t\t\tdelete programMap[ programId ];\n\n\t\t\t}\n\n\t\t\tdelete bindingStates[ geometryId ];\n\n\t\t}\n\n\t}\n\n\tfunction releaseStatesOfGeometry( geometry ) {\n\n\t\tif ( bindingStates[ geometry.id ] === undefined ) return;\n\n\t\tconst programMap = bindingStates[ geometry.id ];\n\n\t\tfor ( const programId in programMap ) {\n\n\t\t\tconst stateMap = programMap[ programId ];\n\n\t\t\tfor ( const wireframe in stateMap ) {\n\n\t\t\t\tdeleteVertexArrayObject( stateMap[ wireframe ].object );\n\n\t\t\t\tdelete stateMap[ wireframe ];\n\n\t\t\t}\n\n\t\t\tdelete programMap[ programId ];\n\n\t\t}\n\n\t\tdelete bindingStates[ geometry.id ];\n\n\t}\n\n\tfunction releaseStatesOfProgram( program ) {\n\n\t\tfor ( const geometryId in bindingStates ) {\n\n\t\t\tconst programMap = bindingStates[ geometryId ];\n\n\t\t\tif ( programMap[ program.id ] === undefined ) continue;\n\n\t\t\tconst stateMap = programMap[ program.id ];\n\n\t\t\tfor ( const wireframe in stateMap ) {\n\n\t\t\t\tdeleteVertexArrayObject( stateMap[ wireframe ].object );\n\n\t\t\t\tdelete stateMap[ wireframe ];\n\n\t\t\t}\n\n\t\t\tdelete programMap[ program.id ];\n\n\t\t}\n\n\t}\n\n\tfunction reset() {\n\n\t\tresetDefaultState();\n\t\tforceUpdate = true;\n\n\t\tif ( currentState === defaultState ) return;\n\n\t\tcurrentState = defaultState;\n\t\tbindVertexArrayObject( currentState.object );\n\n\t}\n\n\t// for backward-compatibility\n\n\tfunction resetDefaultState() {\n\n\t\tdefaultState.geometry = null;\n\t\tdefaultState.program = null;\n\t\tdefaultState.wireframe = false;\n\n\t}\n\n\treturn {\n\n\t\tsetup: setup,\n\t\treset: reset,\n\t\tresetDefaultState: resetDefaultState,\n\t\tdispose: dispose,\n\t\treleaseStatesOfGeometry: releaseStatesOfGeometry,\n\t\treleaseStatesOfProgram: releaseStatesOfProgram,\n\n\t\tinitAttributes: initAttributes,\n\t\tenableAttribute: enableAttribute,\n\t\tdisableUnusedAttributes: disableUnusedAttributes\n\n\t};\n\n}\n\nfunction WebGLBufferRenderer( gl, extensions, info ) {\n\n\tlet mode;\n\n\tfunction setMode( value ) {\n\n\t\tmode = value;\n\n\t}\n\n\tfunction render( start, count ) {\n\n\t\tgl.drawArrays( mode, start, count );\n\n\t\tinfo.update( count, mode, 1 );\n\n\t}\n\n\tfunction renderInstances( start, count, primcount ) {\n\n\t\tif ( primcount === 0 ) return;\n\n\t\tgl.drawArraysInstanced( mode, start, count, primcount );\n\n\t\tinfo.update( count, mode, primcount );\n\n\t}\n\n\tfunction renderMultiDraw( starts, counts, drawCount ) {\n\n\t\tif ( drawCount === 0 ) return;\n\n\t\tconst extension = extensions.get( 'WEBGL_multi_draw' );\n\t\textension.multiDrawArraysWEBGL( mode, starts, 0, counts, 0, drawCount );\n\n\t\tlet elementCount = 0;\n\t\tfor ( let i = 0; i < drawCount; i ++ ) {\n\n\t\t\telementCount += counts[ i ];\n\n\t\t}\n\n\t\tinfo.update( elementCount, mode, 1 );\n\n\t}\n\n\tfunction renderMultiDrawInstances( starts, counts, drawCount, primcount ) {\n\n\t\tif ( drawCount === 0 ) return;\n\n\t\tconst extension = extensions.get( 'WEBGL_multi_draw' );\n\n\t\tif ( extension === null ) {\n\n\t\t\tfor ( let i = 0; i < starts.length; i ++ ) {\n\n\t\t\t\trenderInstances( starts[ i ], counts[ i ], primcount[ i ] );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\textension.multiDrawArraysInstancedWEBGL( mode, starts, 0, counts, 0, primcount, 0, drawCount );\n\n\t\t\tlet elementCount = 0;\n\t\t\tfor ( let i = 0; i < drawCount; i ++ ) {\n\n\t\t\t\telementCount += counts[ i ] * primcount[ i ];\n\n\t\t\t}\n\n\t\t\tinfo.update( elementCount, mode, 1 );\n\n\t\t}\n\n\t}\n\n\t//\n\n\tthis.setMode = setMode;\n\tthis.render = render;\n\tthis.renderInstances = renderInstances;\n\tthis.renderMultiDraw = renderMultiDraw;\n\tthis.renderMultiDrawInstances = renderMultiDrawInstances;\n\n}\n\nfunction WebGLCapabilities( gl, extensions, parameters, utils ) {\n\n\tlet maxAnisotropy;\n\n\tfunction getMaxAnisotropy() {\n\n\t\tif ( maxAnisotropy !== undefined ) return maxAnisotropy;\n\n\t\tif ( extensions.has( 'EXT_texture_filter_anisotropic' ) === true ) {\n\n\t\t\tconst extension = extensions.get( 'EXT_texture_filter_anisotropic' );\n\n\t\t\tmaxAnisotropy = gl.getParameter( extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT );\n\n\t\t} else {\n\n\t\t\tmaxAnisotropy = 0;\n\n\t\t}\n\n\t\treturn maxAnisotropy;\n\n\t}\n\n\tfunction textureFormatReadable( textureFormat ) {\n\n\t\tif ( textureFormat !== RGBAFormat && utils.convert( textureFormat ) !== gl.getParameter( gl.IMPLEMENTATION_COLOR_READ_FORMAT ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfunction textureTypeReadable( textureType ) {\n\n\t\tconst halfFloatSupportedByExt = ( textureType === HalfFloatType ) && ( extensions.has( 'EXT_color_buffer_half_float' ) || extensions.has( 'EXT_color_buffer_float' ) );\n\n\t\tif ( textureType !== UnsignedByteType && utils.convert( textureType ) !== gl.getParameter( gl.IMPLEMENTATION_COLOR_READ_TYPE ) && // Edge and Chrome Mac < 52 (#9513)\n\t\t\ttextureType !== FloatType && ! halfFloatSupportedByExt ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfunction getMaxPrecision( precision ) {\n\n\t\tif ( precision === 'highp' ) {\n\n\t\t\tif ( gl.getShaderPrecisionFormat( gl.VERTEX_SHADER, gl.HIGH_FLOAT ).precision > 0 &&\n\t\t\t\tgl.getShaderPrecisionFormat( gl.FRAGMENT_SHADER, gl.HIGH_FLOAT ).precision > 0 ) {\n\n\t\t\t\treturn 'highp';\n\n\t\t\t}\n\n\t\t\tprecision = 'mediump';\n\n\t\t}\n\n\t\tif ( precision === 'mediump' ) {\n\n\t\t\tif ( gl.getShaderPrecisionFormat( gl.VERTEX_SHADER, gl.MEDIUM_FLOAT ).precision > 0 &&\n\t\t\t\tgl.getShaderPrecisionFormat( gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT ).precision > 0 ) {\n\n\t\t\t\treturn 'mediump';\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn 'lowp';\n\n\t}\n\n\tlet precision = parameters.precision !== undefined ? parameters.precision : 'highp';\n\tconst maxPrecision = getMaxPrecision( precision );\n\n\tif ( maxPrecision !== precision ) {\n\n\t\tconsole.warn( 'THREE.WebGLRenderer:', precision, 'not supported, using', maxPrecision, 'instead.' );\n\t\tprecision = maxPrecision;\n\n\t}\n\n\tconst logarithmicDepthBuffer = parameters.logarithmicDepthBuffer === true;\n\tconst reverseDepthBuffer = parameters.reverseDepthBuffer === true && extensions.has( 'EXT_clip_control' );\n\n\tconst maxTextures = gl.getParameter( gl.MAX_TEXTURE_IMAGE_UNITS );\n\tconst maxVertexTextures = gl.getParameter( gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS );\n\tconst maxTextureSize = gl.getParameter( gl.MAX_TEXTURE_SIZE );\n\tconst maxCubemapSize = gl.getParameter( gl.MAX_CUBE_MAP_TEXTURE_SIZE );\n\n\tconst maxAttributes = gl.getParameter( gl.MAX_VERTEX_ATTRIBS );\n\tconst maxVertexUniforms = gl.getParameter( gl.MAX_VERTEX_UNIFORM_VECTORS );\n\tconst maxVaryings = gl.getParameter( gl.MAX_VARYING_VECTORS );\n\tconst maxFragmentUniforms = gl.getParameter( gl.MAX_FRAGMENT_UNIFORM_VECTORS );\n\n\tconst vertexTextures = maxVertexTextures > 0;\n\n\tconst maxSamples = gl.getParameter( gl.MAX_SAMPLES );\n\n\treturn {\n\n\t\tisWebGL2: true, // keeping this for backwards compatibility\n\n\t\tgetMaxAnisotropy: getMaxAnisotropy,\n\t\tgetMaxPrecision: getMaxPrecision,\n\n\t\ttextureFormatReadable: textureFormatReadable,\n\t\ttextureTypeReadable: textureTypeReadable,\n\n\t\tprecision: precision,\n\t\tlogarithmicDepthBuffer: logarithmicDepthBuffer,\n\t\treverseDepthBuffer: reverseDepthBuffer,\n\n\t\tmaxTextures: maxTextures,\n\t\tmaxVertexTextures: maxVertexTextures,\n\t\tmaxTextureSize: maxTextureSize,\n\t\tmaxCubemapSize: maxCubemapSize,\n\n\t\tmaxAttributes: maxAttributes,\n\t\tmaxVertexUniforms: maxVertexUniforms,\n\t\tmaxVaryings: maxVaryings,\n\t\tmaxFragmentUniforms: maxFragmentUniforms,\n\n\t\tvertexTextures: vertexTextures,\n\n\t\tmaxSamples: maxSamples\n\n\t};\n\n}\n\nfunction WebGLClipping( properties ) {\n\n\tconst scope = this;\n\n\tlet globalState = null,\n\t\tnumGlobalPlanes = 0,\n\t\tlocalClippingEnabled = false,\n\t\trenderingShadows = false;\n\n\tconst plane = new Plane(),\n\t\tviewNormalMatrix = new Matrix3(),\n\n\t\tuniform = { value: null, needsUpdate: false };\n\n\tthis.uniform = uniform;\n\tthis.numPlanes = 0;\n\tthis.numIntersection = 0;\n\n\tthis.init = function ( planes, enableLocalClipping ) {\n\n\t\tconst enabled =\n\t\t\tplanes.length !== 0 ||\n\t\t\tenableLocalClipping ||\n\t\t\t// enable state of previous frame - the clipping code has to\n\t\t\t// run another frame in order to reset the state:\n\t\t\tnumGlobalPlanes !== 0 ||\n\t\t\tlocalClippingEnabled;\n\n\t\tlocalClippingEnabled = enableLocalClipping;\n\n\t\tnumGlobalPlanes = planes.length;\n\n\t\treturn enabled;\n\n\t};\n\n\tthis.beginShadows = function () {\n\n\t\trenderingShadows = true;\n\t\tprojectPlanes( null );\n\n\t};\n\n\tthis.endShadows = function () {\n\n\t\trenderingShadows = false;\n\n\t};\n\n\tthis.setGlobalState = function ( planes, camera ) {\n\n\t\tglobalState = projectPlanes( planes, camera, 0 );\n\n\t};\n\n\tthis.setState = function ( material, camera, useCache ) {\n\n\t\tconst planes = material.clippingPlanes,\n\t\t\tclipIntersection = material.clipIntersection,\n\t\t\tclipShadows = material.clipShadows;\n\n\t\tconst materialProperties = properties.get( material );\n\n\t\tif ( ! localClippingEnabled || planes === null || planes.length === 0 || renderingShadows && ! clipShadows ) {\n\n\t\t\t// there's no local clipping\n\n\t\t\tif ( renderingShadows ) {\n\n\t\t\t\t// there's no global clipping\n\n\t\t\t\tprojectPlanes( null );\n\n\t\t\t} else {\n\n\t\t\t\tresetGlobalState();\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst nGlobal = renderingShadows ? 0 : numGlobalPlanes,\n\t\t\t\tlGlobal = nGlobal * 4;\n\n\t\t\tlet dstArray = materialProperties.clippingState || null;\n\n\t\t\tuniform.value = dstArray; // ensure unique state\n\n\t\t\tdstArray = projectPlanes( planes, camera, lGlobal, useCache );\n\n\t\t\tfor ( let i = 0; i !== lGlobal; ++ i ) {\n\n\t\t\t\tdstArray[ i ] = globalState[ i ];\n\n\t\t\t}\n\n\t\t\tmaterialProperties.clippingState = dstArray;\n\t\t\tthis.numIntersection = clipIntersection ? this.numPlanes : 0;\n\t\t\tthis.numPlanes += nGlobal;\n\n\t\t}\n\n\n\t};\n\n\tfunction resetGlobalState() {\n\n\t\tif ( uniform.value !== globalState ) {\n\n\t\t\tuniform.value = globalState;\n\t\t\tuniform.needsUpdate = numGlobalPlanes > 0;\n\n\t\t}\n\n\t\tscope.numPlanes = numGlobalPlanes;\n\t\tscope.numIntersection = 0;\n\n\t}\n\n\tfunction projectPlanes( planes, camera, dstOffset, skipTransform ) {\n\n\t\tconst nPlanes = planes !== null ? planes.length : 0;\n\t\tlet dstArray = null;\n\n\t\tif ( nPlanes !== 0 ) {\n\n\t\t\tdstArray = uniform.value;\n\n\t\t\tif ( skipTransform !== true || dstArray === null ) {\n\n\t\t\t\tconst flatSize = dstOffset + nPlanes * 4,\n\t\t\t\t\tviewMatrix = camera.matrixWorldInverse;\n\n\t\t\t\tviewNormalMatrix.getNormalMatrix( viewMatrix );\n\n\t\t\t\tif ( dstArray === null || dstArray.length < flatSize ) {\n\n\t\t\t\t\tdstArray = new Float32Array( flatSize );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0, i4 = dstOffset; i !== nPlanes; ++ i, i4 += 4 ) {\n\n\t\t\t\t\tplane.copy( planes[ i ] ).applyMatrix4( viewMatrix, viewNormalMatrix );\n\n\t\t\t\t\tplane.normal.toArray( dstArray, i4 );\n\t\t\t\t\tdstArray[ i4 + 3 ] = plane.constant;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tuniform.value = dstArray;\n\t\t\tuniform.needsUpdate = true;\n\n\t\t}\n\n\t\tscope.numPlanes = nPlanes;\n\t\tscope.numIntersection = 0;\n\n\t\treturn dstArray;\n\n\t}\n\n}\n\nfunction WebGLCubeMaps( renderer ) {\n\n\tlet cubemaps = new WeakMap();\n\n\tfunction mapTextureMapping( texture, mapping ) {\n\n\t\tif ( mapping === EquirectangularReflectionMapping ) {\n\n\t\t\ttexture.mapping = CubeReflectionMapping;\n\n\t\t} else if ( mapping === EquirectangularRefractionMapping ) {\n\n\t\t\ttexture.mapping = CubeRefractionMapping;\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tfunction get( texture ) {\n\n\t\tif ( texture && texture.isTexture ) {\n\n\t\t\tconst mapping = texture.mapping;\n\n\t\t\tif ( mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping ) {\n\n\t\t\t\tif ( cubemaps.has( texture ) ) {\n\n\t\t\t\t\tconst cubemap = cubemaps.get( texture ).texture;\n\t\t\t\t\treturn mapTextureMapping( cubemap, texture.mapping );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconst image = texture.image;\n\n\t\t\t\t\tif ( image && image.height > 0 ) {\n\n\t\t\t\t\t\tconst renderTarget = new WebGLCubeRenderTarget( image.height );\n\t\t\t\t\t\trenderTarget.fromEquirectangularTexture( renderer, texture );\n\t\t\t\t\t\tcubemaps.set( texture, renderTarget );\n\n\t\t\t\t\t\ttexture.addEventListener( 'dispose', onTextureDispose );\n\n\t\t\t\t\t\treturn mapTextureMapping( renderTarget.texture, texture.mapping );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// image not yet ready. try the conversion next frame\n\n\t\t\t\t\t\treturn null;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tfunction onTextureDispose( event ) {\n\n\t\tconst texture = event.target;\n\n\t\ttexture.removeEventListener( 'dispose', onTextureDispose );\n\n\t\tconst cubemap = cubemaps.get( texture );\n\n\t\tif ( cubemap !== undefined ) {\n\n\t\t\tcubemaps.delete( texture );\n\t\t\tcubemap.dispose();\n\n\t\t}\n\n\t}\n\n\tfunction dispose() {\n\n\t\tcubemaps = new WeakMap();\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nconst LOD_MIN = 4;\n\n// The standard deviations (radians) associated with the extra mips. These are\n// chosen to approximate a Trowbridge-Reitz distribution function times the\n// geometric shadowing function. These sigma values squared must match the\n// variance #defines in cube_uv_reflection_fragment.glsl.js.\nconst EXTRA_LOD_SIGMA = [ 0.125, 0.215, 0.35, 0.446, 0.526, 0.582 ];\n\n// The maximum length of the blur for loop. Smaller sigmas will use fewer\n// samples and exit early, but not recompile the shader.\nconst MAX_SAMPLES = 20;\n\nconst _flatCamera = /*@__PURE__*/ new OrthographicCamera();\nconst _clearColor = /*@__PURE__*/ new Color();\nlet _oldTarget = null;\nlet _oldActiveCubeFace = 0;\nlet _oldActiveMipmapLevel = 0;\nlet _oldXrEnabled = false;\n\n// Golden Ratio\nconst PHI = ( 1 + Math.sqrt( 5 ) ) / 2;\nconst INV_PHI = 1 / PHI;\n\n// Vertices of a dodecahedron (except the opposites, which represent the\n// same axis), used as axis directions evenly spread on a sphere.\nconst _axisDirections = [\n\t/*@__PURE__*/ new Vector3( - PHI, INV_PHI, 0 ),\n\t/*@__PURE__*/ new Vector3( PHI, INV_PHI, 0 ),\n\t/*@__PURE__*/ new Vector3( - INV_PHI, 0, PHI ),\n\t/*@__PURE__*/ new Vector3( INV_PHI, 0, PHI ),\n\t/*@__PURE__*/ new Vector3( 0, PHI, - INV_PHI ),\n\t/*@__PURE__*/ new Vector3( 0, PHI, INV_PHI ),\n\t/*@__PURE__*/ new Vector3( - 1, 1, - 1 ),\n\t/*@__PURE__*/ new Vector3( 1, 1, - 1 ),\n\t/*@__PURE__*/ new Vector3( - 1, 1, 1 ),\n\t/*@__PURE__*/ new Vector3( 1, 1, 1 ) ];\n\n/**\n * This class generates a Prefiltered, Mipmapped Radiance Environment Map\n * (PMREM) from a cubeMap environment texture. This allows different levels of\n * blur to be quickly accessed based on material roughness. It is packed into a\n * special CubeUV format that allows us to perform custom interpolation so that\n * we can support nonlinear formats such as RGBE. Unlike a traditional mipmap\n * chain, it only goes down to the LOD_MIN level (above), and then creates extra\n * even more filtered 'mips' at the same LOD_MIN resolution, associated with\n * higher roughness levels. In this way we maintain resolution to smoothly\n * interpolate diffuse lighting while limiting sampling computation.\n *\n * Paper: Fast, Accurate Image-Based Lighting\n * https://drive.google.com/file/d/15y8r_UpKlU9SvV4ILb0C3qCPecS8pvLz/view\n*/\n\nclass PMREMGenerator {\n\n\tconstructor( renderer ) {\n\n\t\tthis._renderer = renderer;\n\t\tthis._pingPongRenderTarget = null;\n\n\t\tthis._lodMax = 0;\n\t\tthis._cubeSize = 0;\n\t\tthis._lodPlanes = [];\n\t\tthis._sizeLods = [];\n\t\tthis._sigmas = [];\n\n\t\tthis._blurMaterial = null;\n\t\tthis._cubemapMaterial = null;\n\t\tthis._equirectMaterial = null;\n\n\t\tthis._compileMaterial( this._blurMaterial );\n\n\t}\n\n\t/**\n\t * Generates a PMREM from a supplied Scene, which can be faster than using an\n\t * image if networking bandwidth is low. Optional sigma specifies a blur radius\n\t * in radians to be applied to the scene before PMREM generation. Optional near\n\t * and far planes ensure the scene is rendered in its entirety (the cubeCamera\n\t * is placed at the origin).\n\t *\n\t * @param {Scene} scene\n\t * @param {number} sigma\n\t * @param {number} near\n\t * @param {number} far\n\t * @return {WebGLRenderTarget}\n\t */\n\tfromScene( scene, sigma = 0, near = 0.1, far = 100 ) {\n\n\t\t_oldTarget = this._renderer.getRenderTarget();\n\t\t_oldActiveCubeFace = this._renderer.getActiveCubeFace();\n\t\t_oldActiveMipmapLevel = this._renderer.getActiveMipmapLevel();\n\t\t_oldXrEnabled = this._renderer.xr.enabled;\n\n\t\tthis._renderer.xr.enabled = false;\n\n\t\tthis._setSize( 256 );\n\n\t\tconst cubeUVRenderTarget = this._allocateTargets();\n\t\tcubeUVRenderTarget.depthBuffer = true;\n\n\t\tthis._sceneToCubeUV( scene, near, far, cubeUVRenderTarget );\n\n\t\tif ( sigma > 0 ) {\n\n\t\t\tthis._blur( cubeUVRenderTarget, 0, 0, sigma );\n\n\t\t}\n\n\t\tthis._applyPMREM( cubeUVRenderTarget );\n\t\tthis._cleanup( cubeUVRenderTarget );\n\n\t\treturn cubeUVRenderTarget;\n\n\t}\n\n\t/**\n\t * Generates a PMREM from an equirectangular texture, which can be either LDR\n\t * or HDR. The ideal input image size is 1k (1024 x 512),\n\t * as this matches best with the 256 x 256 cubemap output.\n\t * The smallest supported equirectangular image size is 64 x 32.\n\t *\n\t * @param {Texture} equirectangular\n\t * @param {WebGLRenderTarget} [renderTarget=null] - Optional render target.\n\t * @return {WebGLRenderTarget}\n\t */\n\tfromEquirectangular( equirectangular, renderTarget = null ) {\n\n\t\treturn this._fromTexture( equirectangular, renderTarget );\n\n\t}\n\n\t/**\n\t * Generates a PMREM from an cubemap texture, which can be either LDR\n\t * or HDR. The ideal input cube size is 256 x 256,\n\t * as this matches best with the 256 x 256 cubemap output.\n\t * The smallest supported cube size is 16 x 16.\n\t *\n\t * @param {Texture} cubemap\n\t * @param {null} [renderTarget=null] - Optional render target.\n\t * @return {WebGLRenderTarget}\n\t */\n\tfromCubemap( cubemap, renderTarget = null ) {\n\n\t\treturn this._fromTexture( cubemap, renderTarget );\n\n\t}\n\n\t/**\n\t * Pre-compiles the cubemap shader. You can get faster start-up by invoking this method during\n\t * your texture's network fetch for increased concurrency.\n\t */\n\tcompileCubemapShader() {\n\n\t\tif ( this._cubemapMaterial === null ) {\n\n\t\t\tthis._cubemapMaterial = _getCubemapMaterial();\n\t\t\tthis._compileMaterial( this._cubemapMaterial );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Pre-compiles the equirectangular shader. You can get faster start-up by invoking this method during\n\t * your texture's network fetch for increased concurrency.\n\t */\n\tcompileEquirectangularShader() {\n\n\t\tif ( this._equirectMaterial === null ) {\n\n\t\t\tthis._equirectMaterial = _getEquirectMaterial();\n\t\t\tthis._compileMaterial( this._equirectMaterial );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Disposes of the PMREMGenerator's internal memory. Note that PMREMGenerator is a static class,\n\t * so you should not need more than one PMREMGenerator object. If you do, calling dispose() on\n\t * one of them will cause any others to also become unusable.\n\t */\n\tdispose() {\n\n\t\tthis._dispose();\n\n\t\tif ( this._cubemapMaterial !== null ) this._cubemapMaterial.dispose();\n\t\tif ( this._equirectMaterial !== null ) this._equirectMaterial.dispose();\n\n\t}\n\n\t// private interface\n\n\t_setSize( cubeSize ) {\n\n\t\tthis._lodMax = Math.floor( Math.log2( cubeSize ) );\n\t\tthis._cubeSize = Math.pow( 2, this._lodMax );\n\n\t}\n\n\t_dispose() {\n\n\t\tif ( this._blurMaterial !== null ) this._blurMaterial.dispose();\n\n\t\tif ( this._pingPongRenderTarget !== null ) this._pingPongRenderTarget.dispose();\n\n\t\tfor ( let i = 0; i < this._lodPlanes.length; i ++ ) {\n\n\t\t\tthis._lodPlanes[ i ].dispose();\n\n\t\t}\n\n\t}\n\n\t_cleanup( outputTarget ) {\n\n\t\tthis._renderer.setRenderTarget( _oldTarget, _oldActiveCubeFace, _oldActiveMipmapLevel );\n\t\tthis._renderer.xr.enabled = _oldXrEnabled;\n\n\t\toutputTarget.scissorTest = false;\n\t\t_setViewport( outputTarget, 0, 0, outputTarget.width, outputTarget.height );\n\n\t}\n\n\t_fromTexture( texture, renderTarget ) {\n\n\t\tif ( texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping ) {\n\n\t\t\tthis._setSize( texture.image.length === 0 ? 16 : ( texture.image[ 0 ].width || texture.image[ 0 ].image.width ) );\n\n\t\t} else { // Equirectangular\n\n\t\t\tthis._setSize( texture.image.width / 4 );\n\n\t\t}\n\n\t\t_oldTarget = this._renderer.getRenderTarget();\n\t\t_oldActiveCubeFace = this._renderer.getActiveCubeFace();\n\t\t_oldActiveMipmapLevel = this._renderer.getActiveMipmapLevel();\n\t\t_oldXrEnabled = this._renderer.xr.enabled;\n\n\t\tthis._renderer.xr.enabled = false;\n\n\t\tconst cubeUVRenderTarget = renderTarget || this._allocateTargets();\n\t\tthis._textureToCubeUV( texture, cubeUVRenderTarget );\n\t\tthis._applyPMREM( cubeUVRenderTarget );\n\t\tthis._cleanup( cubeUVRenderTarget );\n\n\t\treturn cubeUVRenderTarget;\n\n\t}\n\n\t_allocateTargets() {\n\n\t\tconst width = 3 * Math.max( this._cubeSize, 16 * 7 );\n\t\tconst height = 4 * this._cubeSize;\n\n\t\tconst params = {\n\t\t\tmagFilter: LinearFilter,\n\t\t\tminFilter: LinearFilter,\n\t\t\tgenerateMipmaps: false,\n\t\t\ttype: HalfFloatType,\n\t\t\tformat: RGBAFormat,\n\t\t\tcolorSpace: LinearSRGBColorSpace,\n\t\t\tdepthBuffer: false\n\t\t};\n\n\t\tconst cubeUVRenderTarget = _createRenderTarget( width, height, params );\n\n\t\tif ( this._pingPongRenderTarget === null || this._pingPongRenderTarget.width !== width || this._pingPongRenderTarget.height !== height ) {\n\n\t\t\tif ( this._pingPongRenderTarget !== null ) {\n\n\t\t\t\tthis._dispose();\n\n\t\t\t}\n\n\t\t\tthis._pingPongRenderTarget = _createRenderTarget( width, height, params );\n\n\t\t\tconst { _lodMax } = this;\n\t\t\t( { sizeLods: this._sizeLods, lodPlanes: this._lodPlanes, sigmas: this._sigmas } = _createPlanes( _lodMax ) );\n\n\t\t\tthis._blurMaterial = _getBlurShader( _lodMax, width, height );\n\n\t\t}\n\n\t\treturn cubeUVRenderTarget;\n\n\t}\n\n\t_compileMaterial( material ) {\n\n\t\tconst tmpMesh = new Mesh( this._lodPlanes[ 0 ], material );\n\t\tthis._renderer.compile( tmpMesh, _flatCamera );\n\n\t}\n\n\t_sceneToCubeUV( scene, near, far, cubeUVRenderTarget ) {\n\n\t\tconst fov = 90;\n\t\tconst aspect = 1;\n\t\tconst cubeCamera = new PerspectiveCamera( fov, aspect, near, far );\n\t\tconst upSign = [ 1, - 1, 1, 1, 1, 1 ];\n\t\tconst forwardSign = [ 1, 1, 1, - 1, - 1, - 1 ];\n\t\tconst renderer = this._renderer;\n\n\t\tconst originalAutoClear = renderer.autoClear;\n\t\tconst toneMapping = renderer.toneMapping;\n\t\trenderer.getClearColor( _clearColor );\n\n\t\trenderer.toneMapping = NoToneMapping;\n\t\trenderer.autoClear = false;\n\n\t\tconst backgroundMaterial = new MeshBasicMaterial( {\n\t\t\tname: 'PMREM.Background',\n\t\t\tside: BackSide,\n\t\t\tdepthWrite: false,\n\t\t\tdepthTest: false,\n\t\t} );\n\n\t\tconst backgroundBox = new Mesh( new BoxGeometry(), backgroundMaterial );\n\n\t\tlet useSolidColor = false;\n\t\tconst background = scene.background;\n\n\t\tif ( background ) {\n\n\t\t\tif ( background.isColor ) {\n\n\t\t\t\tbackgroundMaterial.color.copy( background );\n\t\t\t\tscene.background = null;\n\t\t\t\tuseSolidColor = true;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tbackgroundMaterial.color.copy( _clearColor );\n\t\t\tuseSolidColor = true;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst col = i % 3;\n\n\t\t\tif ( col === 0 ) {\n\n\t\t\t\tcubeCamera.up.set( 0, upSign[ i ], 0 );\n\t\t\t\tcubeCamera.lookAt( forwardSign[ i ], 0, 0 );\n\n\t\t\t} else if ( col === 1 ) {\n\n\t\t\t\tcubeCamera.up.set( 0, 0, upSign[ i ] );\n\t\t\t\tcubeCamera.lookAt( 0, forwardSign[ i ], 0 );\n\n\t\t\t} else {\n\n\t\t\t\tcubeCamera.up.set( 0, upSign[ i ], 0 );\n\t\t\t\tcubeCamera.lookAt( 0, 0, forwardSign[ i ] );\n\n\t\t\t}\n\n\t\t\tconst size = this._cubeSize;\n\n\t\t\t_setViewport( cubeUVRenderTarget, col * size, i > 2 ? size : 0, size, size );\n\n\t\t\trenderer.setRenderTarget( cubeUVRenderTarget );\n\n\t\t\tif ( useSolidColor ) {\n\n\t\t\t\trenderer.render( backgroundBox, cubeCamera );\n\n\t\t\t}\n\n\t\t\trenderer.render( scene, cubeCamera );\n\n\t\t}\n\n\t\tbackgroundBox.geometry.dispose();\n\t\tbackgroundBox.material.dispose();\n\n\t\trenderer.toneMapping = toneMapping;\n\t\trenderer.autoClear = originalAutoClear;\n\t\tscene.background = background;\n\n\t}\n\n\t_textureToCubeUV( texture, cubeUVRenderTarget ) {\n\n\t\tconst renderer = this._renderer;\n\n\t\tconst isCubeTexture = ( texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping );\n\n\t\tif ( isCubeTexture ) {\n\n\t\t\tif ( this._cubemapMaterial === null ) {\n\n\t\t\t\tthis._cubemapMaterial = _getCubemapMaterial();\n\n\t\t\t}\n\n\t\t\tthis._cubemapMaterial.uniforms.flipEnvMap.value = ( texture.isRenderTargetTexture === false ) ? - 1 : 1;\n\n\t\t} else {\n\n\t\t\tif ( this._equirectMaterial === null ) {\n\n\t\t\t\tthis._equirectMaterial = _getEquirectMaterial();\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst material = isCubeTexture ? this._cubemapMaterial : this._equirectMaterial;\n\t\tconst mesh = new Mesh( this._lodPlanes[ 0 ], material );\n\n\t\tconst uniforms = material.uniforms;\n\n\t\tuniforms[ 'envMap' ].value = texture;\n\n\t\tconst size = this._cubeSize;\n\n\t\t_setViewport( cubeUVRenderTarget, 0, 0, 3 * size, 2 * size );\n\n\t\trenderer.setRenderTarget( cubeUVRenderTarget );\n\t\trenderer.render( mesh, _flatCamera );\n\n\t}\n\n\t_applyPMREM( cubeUVRenderTarget ) {\n\n\t\tconst renderer = this._renderer;\n\t\tconst autoClear = renderer.autoClear;\n\t\trenderer.autoClear = false;\n\t\tconst n = this._lodPlanes.length;\n\n\t\tfor ( let i = 1; i < n; i ++ ) {\n\n\t\t\tconst sigma = Math.sqrt( this._sigmas[ i ] * this._sigmas[ i ] - this._sigmas[ i - 1 ] * this._sigmas[ i - 1 ] );\n\n\t\t\tconst poleAxis = _axisDirections[ ( n - i - 1 ) % _axisDirections.length ];\n\n\t\t\tthis._blur( cubeUVRenderTarget, i - 1, i, sigma, poleAxis );\n\n\t\t}\n\n\t\trenderer.autoClear = autoClear;\n\n\t}\n\n\t/**\n\t * This is a two-pass Gaussian blur for a cubemap. Normally this is done\n\t * vertically and horizontally, but this breaks down on a cube. Here we apply\n\t * the blur latitudinally (around the poles), and then longitudinally (towards\n\t * the poles) to approximate the orthogonally-separable blur. It is least\n\t * accurate at the poles, but still does a decent job.\n\t *\n\t * @param {WebGLRenderTarget} cubeUVRenderTarget\n\t * @param {number} lodIn\n\t * @param {number} lodOut\n\t * @param {number} sigma\n\t * @param {Vector3} [poleAxis]\n\t */\n\t_blur( cubeUVRenderTarget, lodIn, lodOut, sigma, poleAxis ) {\n\n\t\tconst pingPongRenderTarget = this._pingPongRenderTarget;\n\n\t\tthis._halfBlur(\n\t\t\tcubeUVRenderTarget,\n\t\t\tpingPongRenderTarget,\n\t\t\tlodIn,\n\t\t\tlodOut,\n\t\t\tsigma,\n\t\t\t'latitudinal',\n\t\t\tpoleAxis );\n\n\t\tthis._halfBlur(\n\t\t\tpingPongRenderTarget,\n\t\t\tcubeUVRenderTarget,\n\t\t\tlodOut,\n\t\t\tlodOut,\n\t\t\tsigma,\n\t\t\t'longitudinal',\n\t\t\tpoleAxis );\n\n\t}\n\n\t_halfBlur( targetIn, targetOut, lodIn, lodOut, sigmaRadians, direction, poleAxis ) {\n\n\t\tconst renderer = this._renderer;\n\t\tconst blurMaterial = this._blurMaterial;\n\n\t\tif ( direction !== 'latitudinal' && direction !== 'longitudinal' ) {\n\n\t\t\tconsole.error(\n\t\t\t\t'blur direction must be either latitudinal or longitudinal!' );\n\n\t\t}\n\n\t\t// Number of standard deviations at which to cut off the discrete approximation.\n\t\tconst STANDARD_DEVIATIONS = 3;\n\n\t\tconst blurMesh = new Mesh( this._lodPlanes[ lodOut ], blurMaterial );\n\t\tconst blurUniforms = blurMaterial.uniforms;\n\n\t\tconst pixels = this._sizeLods[ lodIn ] - 1;\n\t\tconst radiansPerPixel = isFinite( sigmaRadians ) ? Math.PI / ( 2 * pixels ) : 2 * Math.PI / ( 2 * MAX_SAMPLES - 1 );\n\t\tconst sigmaPixels = sigmaRadians / radiansPerPixel;\n\t\tconst samples = isFinite( sigmaRadians ) ? 1 + Math.floor( STANDARD_DEVIATIONS * sigmaPixels ) : MAX_SAMPLES;\n\n\t\tif ( samples > MAX_SAMPLES ) {\n\n\t\t\tconsole.warn( `sigmaRadians, ${\n\t\t\t\tsigmaRadians}, is too large and will clip, as it requested ${\n\t\t\t\tsamples} samples when the maximum is set to ${MAX_SAMPLES}` );\n\n\t\t}\n\n\t\tconst weights = [];\n\t\tlet sum = 0;\n\n\t\tfor ( let i = 0; i < MAX_SAMPLES; ++ i ) {\n\n\t\t\tconst x = i / sigmaPixels;\n\t\t\tconst weight = Math.exp( - x * x / 2 );\n\t\t\tweights.push( weight );\n\n\t\t\tif ( i === 0 ) {\n\n\t\t\t\tsum += weight;\n\n\t\t\t} else if ( i < samples ) {\n\n\t\t\t\tsum += 2 * weight;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfor ( let i = 0; i < weights.length; i ++ ) {\n\n\t\t\tweights[ i ] = weights[ i ] / sum;\n\n\t\t}\n\n\t\tblurUniforms[ 'envMap' ].value = targetIn.texture;\n\t\tblurUniforms[ 'samples' ].value = samples;\n\t\tblurUniforms[ 'weights' ].value = weights;\n\t\tblurUniforms[ 'latitudinal' ].value = direction === 'latitudinal';\n\n\t\tif ( poleAxis ) {\n\n\t\t\tblurUniforms[ 'poleAxis' ].value = poleAxis;\n\n\t\t}\n\n\t\tconst { _lodMax } = this;\n\t\tblurUniforms[ 'dTheta' ].value = radiansPerPixel;\n\t\tblurUniforms[ 'mipInt' ].value = _lodMax - lodIn;\n\n\t\tconst outputSize = this._sizeLods[ lodOut ];\n\t\tconst x = 3 * outputSize * ( lodOut > _lodMax - LOD_MIN ? lodOut - _lodMax + LOD_MIN : 0 );\n\t\tconst y = 4 * ( this._cubeSize - outputSize );\n\n\t\t_setViewport( targetOut, x, y, 3 * outputSize, 2 * outputSize );\n\t\trenderer.setRenderTarget( targetOut );\n\t\trenderer.render( blurMesh, _flatCamera );\n\n\t}\n\n}\n\n\n\nfunction _createPlanes( lodMax ) {\n\n\tconst lodPlanes = [];\n\tconst sizeLods = [];\n\tconst sigmas = [];\n\n\tlet lod = lodMax;\n\n\tconst totalLods = lodMax - LOD_MIN + 1 + EXTRA_LOD_SIGMA.length;\n\n\tfor ( let i = 0; i < totalLods; i ++ ) {\n\n\t\tconst sizeLod = Math.pow( 2, lod );\n\t\tsizeLods.push( sizeLod );\n\t\tlet sigma = 1.0 / sizeLod;\n\n\t\tif ( i > lodMax - LOD_MIN ) {\n\n\t\t\tsigma = EXTRA_LOD_SIGMA[ i - lodMax + LOD_MIN - 1 ];\n\n\t\t} else if ( i === 0 ) {\n\n\t\t\tsigma = 0;\n\n\t\t}\n\n\t\tsigmas.push( sigma );\n\n\t\tconst texelSize = 1.0 / ( sizeLod - 2 );\n\t\tconst min = - texelSize;\n\t\tconst max = 1 + texelSize;\n\t\tconst uv1 = [ min, min, max, min, max, max, min, min, max, max, min, max ];\n\n\t\tconst cubeFaces = 6;\n\t\tconst vertices = 6;\n\t\tconst positionSize = 3;\n\t\tconst uvSize = 2;\n\t\tconst faceIndexSize = 1;\n\n\t\tconst position = new Float32Array( positionSize * vertices * cubeFaces );\n\t\tconst uv = new Float32Array( uvSize * vertices * cubeFaces );\n\t\tconst faceIndex = new Float32Array( faceIndexSize * vertices * cubeFaces );\n\n\t\tfor ( let face = 0; face < cubeFaces; face ++ ) {\n\n\t\t\tconst x = ( face % 3 ) * 2 / 3 - 1;\n\t\t\tconst y = face > 2 ? 0 : - 1;\n\t\t\tconst coordinates = [\n\t\t\t\tx, y, 0,\n\t\t\t\tx + 2 / 3, y, 0,\n\t\t\t\tx + 2 / 3, y + 1, 0,\n\t\t\t\tx, y, 0,\n\t\t\t\tx + 2 / 3, y + 1, 0,\n\t\t\t\tx, y + 1, 0\n\t\t\t];\n\t\t\tposition.set( coordinates, positionSize * vertices * face );\n\t\t\tuv.set( uv1, uvSize * vertices * face );\n\t\t\tconst fill = [ face, face, face, face, face, face ];\n\t\t\tfaceIndex.set( fill, faceIndexSize * vertices * face );\n\n\t\t}\n\n\t\tconst planes = new BufferGeometry();\n\t\tplanes.setAttribute( 'position', new BufferAttribute( position, positionSize ) );\n\t\tplanes.setAttribute( 'uv', new BufferAttribute( uv, uvSize ) );\n\t\tplanes.setAttribute( 'faceIndex', new BufferAttribute( faceIndex, faceIndexSize ) );\n\t\tlodPlanes.push( planes );\n\n\t\tif ( lod > LOD_MIN ) {\n\n\t\t\tlod --;\n\n\t\t}\n\n\t}\n\n\treturn { lodPlanes, sizeLods, sigmas };\n\n}\n\nfunction _createRenderTarget( width, height, params ) {\n\n\tconst cubeUVRenderTarget = new WebGLRenderTarget( width, height, params );\n\tcubeUVRenderTarget.texture.mapping = CubeUVReflectionMapping;\n\tcubeUVRenderTarget.texture.name = 'PMREM.cubeUv';\n\tcubeUVRenderTarget.scissorTest = true;\n\treturn cubeUVRenderTarget;\n\n}\n\nfunction _setViewport( target, x, y, width, height ) {\n\n\ttarget.viewport.set( x, y, width, height );\n\ttarget.scissor.set( x, y, width, height );\n\n}\n\nfunction _getBlurShader( lodMax, width, height ) {\n\n\tconst weights = new Float32Array( MAX_SAMPLES );\n\tconst poleAxis = new Vector3( 0, 1, 0 );\n\tconst shaderMaterial = new ShaderMaterial( {\n\n\t\tname: 'SphericalGaussianBlur',\n\n\t\tdefines: {\n\t\t\t'n': MAX_SAMPLES,\n\t\t\t'CUBEUV_TEXEL_WIDTH': 1.0 / width,\n\t\t\t'CUBEUV_TEXEL_HEIGHT': 1.0 / height,\n\t\t\t'CUBEUV_MAX_MIP': `${lodMax}.0`,\n\t\t},\n\n\t\tuniforms: {\n\t\t\t'envMap': { value: null },\n\t\t\t'samples': { value: 1 },\n\t\t\t'weights': { value: weights },\n\t\t\t'latitudinal': { value: false },\n\t\t\t'dTheta': { value: 0 },\n\t\t\t'mipInt': { value: 0 },\n\t\t\t'poleAxis': { value: poleAxis }\n\t\t},\n\n\t\tvertexShader: _getCommonVertexShader(),\n\n\t\tfragmentShader: /* glsl */`\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#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \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}\n\t\t`,\n\n\t\tblending: NoBlending,\n\t\tdepthTest: false,\n\t\tdepthWrite: false\n\n\t} );\n\n\treturn shaderMaterial;\n\n}\n\nfunction _getEquirectMaterial() {\n\n\treturn new ShaderMaterial( {\n\n\t\tname: 'EquirectangularToCubeUV',\n\n\t\tuniforms: {\n\t\t\t'envMap': { value: null }\n\t\t},\n\n\t\tvertexShader: _getCommonVertexShader(),\n\n\t\tfragmentShader: /* glsl */`\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\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t`,\n\n\t\tblending: NoBlending,\n\t\tdepthTest: false,\n\t\tdepthWrite: false\n\n\t} );\n\n}\n\nfunction _getCubemapMaterial() {\n\n\treturn new ShaderMaterial( {\n\n\t\tname: 'CubemapToCubeUV',\n\n\t\tuniforms: {\n\t\t\t'envMap': { value: null },\n\t\t\t'flipEnvMap': { value: - 1 }\n\t\t},\n\n\t\tvertexShader: _getCommonVertexShader(),\n\n\t\tfragmentShader: /* glsl */`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t`,\n\n\t\tblending: NoBlending,\n\t\tdepthTest: false,\n\t\tdepthWrite: false\n\n\t} );\n\n}\n\nfunction _getCommonVertexShader() {\n\n\treturn /* glsl */`\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\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`;\n\n}\n\nfunction WebGLCubeUVMaps( renderer ) {\n\n\tlet cubeUVmaps = new WeakMap();\n\n\tlet pmremGenerator = null;\n\n\tfunction get( texture ) {\n\n\t\tif ( texture && texture.isTexture ) {\n\n\t\t\tconst mapping = texture.mapping;\n\n\t\t\tconst isEquirectMap = ( mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping );\n\t\t\tconst isCubeMap = ( mapping === CubeReflectionMapping || mapping === CubeRefractionMapping );\n\n\t\t\t// equirect/cube map to cubeUV conversion\n\n\t\t\tif ( isEquirectMap || isCubeMap ) {\n\n\t\t\t\tlet renderTarget = cubeUVmaps.get( texture );\n\n\t\t\t\tconst currentPMREMVersion = renderTarget !== undefined ? renderTarget.texture.pmremVersion : 0;\n\n\t\t\t\tif ( texture.isRenderTargetTexture && texture.pmremVersion !== currentPMREMVersion ) {\n\n\t\t\t\t\tif ( pmremGenerator === null ) pmremGenerator = new PMREMGenerator( renderer );\n\n\t\t\t\t\trenderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular( texture, renderTarget ) : pmremGenerator.fromCubemap( texture, renderTarget );\n\t\t\t\t\trenderTarget.texture.pmremVersion = texture.pmremVersion;\n\n\t\t\t\t\tcubeUVmaps.set( texture, renderTarget );\n\n\t\t\t\t\treturn renderTarget.texture;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( renderTarget !== undefined ) {\n\n\t\t\t\t\t\treturn renderTarget.texture;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst image = texture.image;\n\n\t\t\t\t\t\tif ( ( isEquirectMap && image && image.height > 0 ) || ( isCubeMap && image && isCubeTextureComplete( image ) ) ) {\n\n\t\t\t\t\t\t\tif ( pmremGenerator === null ) pmremGenerator = new PMREMGenerator( renderer );\n\n\t\t\t\t\t\t\trenderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular( texture ) : pmremGenerator.fromCubemap( texture );\n\t\t\t\t\t\t\trenderTarget.texture.pmremVersion = texture.pmremVersion;\n\n\t\t\t\t\t\t\tcubeUVmaps.set( texture, renderTarget );\n\n\t\t\t\t\t\t\ttexture.addEventListener( 'dispose', onTextureDispose );\n\n\t\t\t\t\t\t\treturn renderTarget.texture;\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// image not yet ready. try the conversion next frame\n\n\t\t\t\t\t\t\treturn null;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tfunction isCubeTextureComplete( image ) {\n\n\t\tlet count = 0;\n\t\tconst length = 6;\n\n\t\tfor ( let i = 0; i < length; i ++ ) {\n\n\t\t\tif ( image[ i ] !== undefined ) count ++;\n\n\t\t}\n\n\t\treturn count === length;\n\n\n\t}\n\n\tfunction onTextureDispose( event ) {\n\n\t\tconst texture = event.target;\n\n\t\ttexture.removeEventListener( 'dispose', onTextureDispose );\n\n\t\tconst cubemapUV = cubeUVmaps.get( texture );\n\n\t\tif ( cubemapUV !== undefined ) {\n\n\t\t\tcubeUVmaps.delete( texture );\n\t\t\tcubemapUV.dispose();\n\n\t\t}\n\n\t}\n\n\tfunction dispose() {\n\n\t\tcubeUVmaps = new WeakMap();\n\n\t\tif ( pmremGenerator !== null ) {\n\n\t\t\tpmremGenerator.dispose();\n\t\t\tpmremGenerator = null;\n\n\t\t}\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction WebGLExtensions( gl ) {\n\n\tconst extensions = {};\n\n\tfunction getExtension( name ) {\n\n\t\tif ( extensions[ name ] !== undefined ) {\n\n\t\t\treturn extensions[ name ];\n\n\t\t}\n\n\t\tlet extension;\n\n\t\tswitch ( name ) {\n\n\t\t\tcase 'WEBGL_depth_texture':\n\t\t\t\textension = gl.getExtension( 'WEBGL_depth_texture' ) || gl.getExtension( 'MOZ_WEBGL_depth_texture' ) || gl.getExtension( 'WEBKIT_WEBGL_depth_texture' );\n\t\t\t\tbreak;\n\n\t\t\tcase 'EXT_texture_filter_anisotropic':\n\t\t\t\textension = gl.getExtension( 'EXT_texture_filter_anisotropic' ) || gl.getExtension( 'MOZ_EXT_texture_filter_anisotropic' ) || gl.getExtension( 'WEBKIT_EXT_texture_filter_anisotropic' );\n\t\t\t\tbreak;\n\n\t\t\tcase 'WEBGL_compressed_texture_s3tc':\n\t\t\t\textension = gl.getExtension( 'WEBGL_compressed_texture_s3tc' ) || gl.getExtension( 'MOZ_WEBGL_compressed_texture_s3tc' ) || gl.getExtension( 'WEBKIT_WEBGL_compressed_texture_s3tc' );\n\t\t\t\tbreak;\n\n\t\t\tcase 'WEBGL_compressed_texture_pvrtc':\n\t\t\t\textension = gl.getExtension( 'WEBGL_compressed_texture_pvrtc' ) || gl.getExtension( 'WEBKIT_WEBGL_compressed_texture_pvrtc' );\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\textension = gl.getExtension( name );\n\n\t\t}\n\n\t\textensions[ name ] = extension;\n\n\t\treturn extension;\n\n\t}\n\n\treturn {\n\n\t\thas: function ( name ) {\n\n\t\t\treturn getExtension( name ) !== null;\n\n\t\t},\n\n\t\tinit: function () {\n\n\t\t\tgetExtension( 'EXT_color_buffer_float' );\n\t\t\tgetExtension( 'WEBGL_clip_cull_distance' );\n\t\t\tgetExtension( 'OES_texture_float_linear' );\n\t\t\tgetExtension( 'EXT_color_buffer_half_float' );\n\t\t\tgetExtension( 'WEBGL_multisampled_render_to_texture' );\n\t\t\tgetExtension( 'WEBGL_render_shared_exponent' );\n\n\t\t},\n\n\t\tget: function ( name ) {\n\n\t\t\tconst extension = getExtension( name );\n\n\t\t\tif ( extension === null ) {\n\n\t\t\t\twarnOnce( 'THREE.WebGLRenderer: ' + name + ' extension not supported.' );\n\n\t\t\t}\n\n\t\t\treturn extension;\n\n\t\t}\n\n\t};\n\n}\n\nfunction WebGLGeometries( gl, attributes, info, bindingStates ) {\n\n\tconst geometries = {};\n\tconst wireframeAttributes = new WeakMap();\n\n\tfunction onGeometryDispose( event ) {\n\n\t\tconst geometry = event.target;\n\n\t\tif ( geometry.index !== null ) {\n\n\t\t\tattributes.remove( geometry.index );\n\n\t\t}\n\n\t\tfor ( const name in geometry.attributes ) {\n\n\t\t\tattributes.remove( geometry.attributes[ name ] );\n\n\t\t}\n\n\t\tgeometry.removeEventListener( 'dispose', onGeometryDispose );\n\n\t\tdelete geometries[ geometry.id ];\n\n\t\tconst attribute = wireframeAttributes.get( geometry );\n\n\t\tif ( attribute ) {\n\n\t\t\tattributes.remove( attribute );\n\t\t\twireframeAttributes.delete( geometry );\n\n\t\t}\n\n\t\tbindingStates.releaseStatesOfGeometry( geometry );\n\n\t\tif ( geometry.isInstancedBufferGeometry === true ) {\n\n\t\t\tdelete geometry._maxInstanceCount;\n\n\t\t}\n\n\t\t//\n\n\t\tinfo.memory.geometries --;\n\n\t}\n\n\tfunction get( object, geometry ) {\n\n\t\tif ( geometries[ geometry.id ] === true ) return geometry;\n\n\t\tgeometry.addEventListener( 'dispose', onGeometryDispose );\n\n\t\tgeometries[ geometry.id ] = true;\n\n\t\tinfo.memory.geometries ++;\n\n\t\treturn geometry;\n\n\t}\n\n\tfunction update( geometry ) {\n\n\t\tconst geometryAttributes = geometry.attributes;\n\n\t\t// Updating index buffer in VAO now. See WebGLBindingStates.\n\n\t\tfor ( const name in geometryAttributes ) {\n\n\t\t\tattributes.update( geometryAttributes[ name ], gl.ARRAY_BUFFER );\n\n\t\t}\n\n\t}\n\n\tfunction updateWireframeAttribute( geometry ) {\n\n\t\tconst indices = [];\n\n\t\tconst geometryIndex = geometry.index;\n\t\tconst geometryPosition = geometry.attributes.position;\n\t\tlet version = 0;\n\n\t\tif ( geometryIndex !== null ) {\n\n\t\t\tconst array = geometryIndex.array;\n\t\t\tversion = geometryIndex.version;\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i += 3 ) {\n\n\t\t\t\tconst a = array[ i + 0 ];\n\t\t\t\tconst b = array[ i + 1 ];\n\t\t\t\tconst c = array[ i + 2 ];\n\n\t\t\t\tindices.push( a, b, b, c, c, a );\n\n\t\t\t}\n\n\t\t} else if ( geometryPosition !== undefined ) {\n\n\t\t\tconst array = geometryPosition.array;\n\t\t\tversion = geometryPosition.version;\n\n\t\t\tfor ( let i = 0, l = ( array.length / 3 ) - 1; i < l; i += 3 ) {\n\n\t\t\t\tconst a = i + 0;\n\t\t\t\tconst b = i + 1;\n\t\t\t\tconst c = i + 2;\n\n\t\t\t\tindices.push( a, b, b, c, c, a );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst attribute = new ( arrayNeedsUint32( indices ) ? Uint32BufferAttribute : Uint16BufferAttribute )( indices, 1 );\n\t\tattribute.version = version;\n\n\t\t// Updating index buffer in VAO now. See WebGLBindingStates\n\n\t\t//\n\n\t\tconst previousAttribute = wireframeAttributes.get( geometry );\n\n\t\tif ( previousAttribute ) attributes.remove( previousAttribute );\n\n\t\t//\n\n\t\twireframeAttributes.set( geometry, attribute );\n\n\t}\n\n\tfunction getWireframeAttribute( geometry ) {\n\n\t\tconst currentAttribute = wireframeAttributes.get( geometry );\n\n\t\tif ( currentAttribute ) {\n\n\t\t\tconst geometryIndex = geometry.index;\n\n\t\t\tif ( geometryIndex !== null ) {\n\n\t\t\t\t// if the attribute is obsolete, create a new one\n\n\t\t\t\tif ( currentAttribute.version < geometryIndex.version ) {\n\n\t\t\t\t\tupdateWireframeAttribute( geometry );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tupdateWireframeAttribute( geometry );\n\n\t\t}\n\n\t\treturn wireframeAttributes.get( geometry );\n\n\t}\n\n\treturn {\n\n\t\tget: get,\n\t\tupdate: update,\n\n\t\tgetWireframeAttribute: getWireframeAttribute\n\n\t};\n\n}\n\nfunction WebGLIndexedBufferRenderer( gl, extensions, info ) {\n\n\tlet mode;\n\n\tfunction setMode( value ) {\n\n\t\tmode = value;\n\n\t}\n\n\tlet type, bytesPerElement;\n\n\tfunction setIndex( value ) {\n\n\t\ttype = value.type;\n\t\tbytesPerElement = value.bytesPerElement;\n\n\t}\n\n\tfunction render( start, count ) {\n\n\t\tgl.drawElements( mode, count, type, start * bytesPerElement );\n\n\t\tinfo.update( count, mode, 1 );\n\n\t}\n\n\tfunction renderInstances( start, count, primcount ) {\n\n\t\tif ( primcount === 0 ) return;\n\n\t\tgl.drawElementsInstanced( mode, count, type, start * bytesPerElement, primcount );\n\n\t\tinfo.update( count, mode, primcount );\n\n\t}\n\n\tfunction renderMultiDraw( starts, counts, drawCount ) {\n\n\t\tif ( drawCount === 0 ) return;\n\n\t\tconst extension = extensions.get( 'WEBGL_multi_draw' );\n\t\textension.multiDrawElementsWEBGL( mode, counts, 0, type, starts, 0, drawCount );\n\n\t\tlet elementCount = 0;\n\t\tfor ( let i = 0; i < drawCount; i ++ ) {\n\n\t\t\telementCount += counts[ i ];\n\n\t\t}\n\n\t\tinfo.update( elementCount, mode, 1 );\n\n\n\t}\n\n\tfunction renderMultiDrawInstances( starts, counts, drawCount, primcount ) {\n\n\t\tif ( drawCount === 0 ) return;\n\n\t\tconst extension = extensions.get( 'WEBGL_multi_draw' );\n\n\t\tif ( extension === null ) {\n\n\t\t\tfor ( let i = 0; i < starts.length; i ++ ) {\n\n\t\t\t\trenderInstances( starts[ i ] / bytesPerElement, counts[ i ], primcount[ i ] );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\textension.multiDrawElementsInstancedWEBGL( mode, counts, 0, type, starts, 0, primcount, 0, drawCount );\n\n\t\t\tlet elementCount = 0;\n\t\t\tfor ( let i = 0; i < drawCount; i ++ ) {\n\n\t\t\t\telementCount += counts[ i ] * primcount[ i ];\n\n\t\t\t}\n\n\t\t\tinfo.update( elementCount, mode, 1 );\n\n\t\t}\n\n\t}\n\n\t//\n\n\tthis.setMode = setMode;\n\tthis.setIndex = setIndex;\n\tthis.render = render;\n\tthis.renderInstances = renderInstances;\n\tthis.renderMultiDraw = renderMultiDraw;\n\tthis.renderMultiDrawInstances = renderMultiDrawInstances;\n\n}\n\nfunction WebGLInfo( gl ) {\n\n\tconst memory = {\n\t\tgeometries: 0,\n\t\ttextures: 0\n\t};\n\n\tconst render = {\n\t\tframe: 0,\n\t\tcalls: 0,\n\t\ttriangles: 0,\n\t\tpoints: 0,\n\t\tlines: 0\n\t};\n\n\tfunction update( count, mode, instanceCount ) {\n\n\t\trender.calls ++;\n\n\t\tswitch ( mode ) {\n\n\t\t\tcase gl.TRIANGLES:\n\t\t\t\trender.triangles += instanceCount * ( count / 3 );\n\t\t\t\tbreak;\n\n\t\t\tcase gl.LINES:\n\t\t\t\trender.lines += instanceCount * ( count / 2 );\n\t\t\t\tbreak;\n\n\t\t\tcase gl.LINE_STRIP:\n\t\t\t\trender.lines += instanceCount * ( count - 1 );\n\t\t\t\tbreak;\n\n\t\t\tcase gl.LINE_LOOP:\n\t\t\t\trender.lines += instanceCount * count;\n\t\t\t\tbreak;\n\n\t\t\tcase gl.POINTS:\n\t\t\t\trender.points += instanceCount * count;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tconsole.error( 'THREE.WebGLInfo: Unknown draw mode:', mode );\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\tfunction reset() {\n\n\t\trender.calls = 0;\n\t\trender.triangles = 0;\n\t\trender.points = 0;\n\t\trender.lines = 0;\n\n\t}\n\n\treturn {\n\t\tmemory: memory,\n\t\trender: render,\n\t\tprograms: null,\n\t\tautoReset: true,\n\t\treset: reset,\n\t\tupdate: update\n\t};\n\n}\n\nfunction WebGLMorphtargets( gl, capabilities, textures ) {\n\n\tconst morphTextures = new WeakMap();\n\tconst morph = new Vector4();\n\n\tfunction update( object, geometry, program ) {\n\n\t\tconst objectInfluences = object.morphTargetInfluences;\n\n\t\t// the following encodes morph targets into an array of data textures. Each layer represents a single morph target.\n\n\t\tconst morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n\t\tconst morphTargetsCount = ( morphAttribute !== undefined ) ? morphAttribute.length : 0;\n\n\t\tlet entry = morphTextures.get( geometry );\n\n\t\tif ( entry === undefined || entry.count !== morphTargetsCount ) {\n\n\t\t\tif ( entry !== undefined ) entry.texture.dispose();\n\n\t\t\tconst hasMorphPosition = geometry.morphAttributes.position !== undefined;\n\t\t\tconst hasMorphNormals = geometry.morphAttributes.normal !== undefined;\n\t\t\tconst hasMorphColors = geometry.morphAttributes.color !== undefined;\n\n\t\t\tconst morphTargets = geometry.morphAttributes.position || [];\n\t\t\tconst morphNormals = geometry.morphAttributes.normal || [];\n\t\t\tconst morphColors = geometry.morphAttributes.color || [];\n\n\t\t\tlet vertexDataCount = 0;\n\n\t\t\tif ( hasMorphPosition === true ) vertexDataCount = 1;\n\t\t\tif ( hasMorphNormals === true ) vertexDataCount = 2;\n\t\t\tif ( hasMorphColors === true ) vertexDataCount = 3;\n\n\t\t\tlet width = geometry.attributes.position.count * vertexDataCount;\n\t\t\tlet height = 1;\n\n\t\t\tif ( width > capabilities.maxTextureSize ) {\n\n\t\t\t\theight = Math.ceil( width / capabilities.maxTextureSize );\n\t\t\t\twidth = capabilities.maxTextureSize;\n\n\t\t\t}\n\n\t\t\tconst buffer = new Float32Array( width * height * 4 * morphTargetsCount );\n\n\t\t\tconst texture = new DataArrayTexture( buffer, width, height, morphTargetsCount );\n\t\t\ttexture.type = FloatType;\n\t\t\ttexture.needsUpdate = true;\n\n\t\t\t// fill buffer\n\n\t\t\tconst vertexDataStride = vertexDataCount * 4;\n\n\t\t\tfor ( let i = 0; i < morphTargetsCount; i ++ ) {\n\n\t\t\t\tconst morphTarget = morphTargets[ i ];\n\t\t\t\tconst morphNormal = morphNormals[ i ];\n\t\t\t\tconst morphColor = morphColors[ i ];\n\n\t\t\t\tconst offset = width * height * 4 * i;\n\n\t\t\t\tfor ( let j = 0; j < morphTarget.count; j ++ ) {\n\n\t\t\t\t\tconst stride = j * vertexDataStride;\n\n\t\t\t\t\tif ( hasMorphPosition === true ) {\n\n\t\t\t\t\t\tmorph.fromBufferAttribute( morphTarget, j );\n\n\t\t\t\t\t\tbuffer[ offset + stride + 0 ] = morph.x;\n\t\t\t\t\t\tbuffer[ offset + stride + 1 ] = morph.y;\n\t\t\t\t\t\tbuffer[ offset + stride + 2 ] = morph.z;\n\t\t\t\t\t\tbuffer[ offset + stride + 3 ] = 0;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( hasMorphNormals === true ) {\n\n\t\t\t\t\t\tmorph.fromBufferAttribute( morphNormal, j );\n\n\t\t\t\t\t\tbuffer[ offset + stride + 4 ] = morph.x;\n\t\t\t\t\t\tbuffer[ offset + stride + 5 ] = morph.y;\n\t\t\t\t\t\tbuffer[ offset + stride + 6 ] = morph.z;\n\t\t\t\t\t\tbuffer[ offset + stride + 7 ] = 0;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( hasMorphColors === true ) {\n\n\t\t\t\t\t\tmorph.fromBufferAttribute( morphColor, j );\n\n\t\t\t\t\t\tbuffer[ offset + stride + 8 ] = morph.x;\n\t\t\t\t\t\tbuffer[ offset + stride + 9 ] = morph.y;\n\t\t\t\t\t\tbuffer[ offset + stride + 10 ] = morph.z;\n\t\t\t\t\t\tbuffer[ offset + stride + 11 ] = ( morphColor.itemSize === 4 ) ? morph.w : 1;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tentry = {\n\t\t\t\tcount: morphTargetsCount,\n\t\t\t\ttexture: texture,\n\t\t\t\tsize: new Vector2( width, height )\n\t\t\t};\n\n\t\t\tmorphTextures.set( geometry, entry );\n\n\t\t\tfunction disposeTexture() {\n\n\t\t\t\ttexture.dispose();\n\n\t\t\t\tmorphTextures.delete( geometry );\n\n\t\t\t\tgeometry.removeEventListener( 'dispose', disposeTexture );\n\n\t\t\t}\n\n\t\t\tgeometry.addEventListener( 'dispose', disposeTexture );\n\n\t\t}\n\n\t\t//\n\t\tif ( object.isInstancedMesh === true && object.morphTexture !== null ) {\n\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTexture', object.morphTexture, textures );\n\n\t\t} else {\n\n\t\t\tlet morphInfluencesSum = 0;\n\n\t\t\tfor ( let i = 0; i < objectInfluences.length; i ++ ) {\n\n\t\t\t\tmorphInfluencesSum += objectInfluences[ i ];\n\n\t\t\t}\n\n\t\t\tconst morphBaseInfluence = geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\n\n\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTargetBaseInfluence', morphBaseInfluence );\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTargetInfluences', objectInfluences );\n\n\t\t}\n\n\t\tprogram.getUniforms().setValue( gl, 'morphTargetsTexture', entry.texture, textures );\n\t\tprogram.getUniforms().setValue( gl, 'morphTargetsTextureSize', entry.size );\n\n\t}\n\n\treturn {\n\n\t\tupdate: update\n\n\t};\n\n}\n\nfunction WebGLObjects( gl, geometries, attributes, info ) {\n\n\tlet updateMap = new WeakMap();\n\n\tfunction update( object ) {\n\n\t\tconst frame = info.render.frame;\n\n\t\tconst geometry = object.geometry;\n\t\tconst buffergeometry = geometries.get( object, geometry );\n\n\t\t// Update once per frame\n\n\t\tif ( updateMap.get( buffergeometry ) !== frame ) {\n\n\t\t\tgeometries.update( buffergeometry );\n\n\t\t\tupdateMap.set( buffergeometry, frame );\n\n\t\t}\n\n\t\tif ( object.isInstancedMesh ) {\n\n\t\t\tif ( object.hasEventListener( 'dispose', onInstancedMeshDispose ) === false ) {\n\n\t\t\t\tobject.addEventListener( 'dispose', onInstancedMeshDispose );\n\n\t\t\t}\n\n\t\t\tif ( updateMap.get( object ) !== frame ) {\n\n\t\t\t\tattributes.update( object.instanceMatrix, gl.ARRAY_BUFFER );\n\n\t\t\t\tif ( object.instanceColor !== null ) {\n\n\t\t\t\t\tattributes.update( object.instanceColor, gl.ARRAY_BUFFER );\n\n\t\t\t\t}\n\n\t\t\t\tupdateMap.set( object, frame );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( object.isSkinnedMesh ) {\n\n\t\t\tconst skeleton = object.skeleton;\n\n\t\t\tif ( updateMap.get( skeleton ) !== frame ) {\n\n\t\t\t\tskeleton.update();\n\n\t\t\t\tupdateMap.set( skeleton, frame );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn buffergeometry;\n\n\t}\n\n\tfunction dispose() {\n\n\t\tupdateMap = new WeakMap();\n\n\t}\n\n\tfunction onInstancedMeshDispose( event ) {\n\n\t\tconst instancedMesh = event.target;\n\n\t\tinstancedMesh.removeEventListener( 'dispose', onInstancedMeshDispose );\n\n\t\tattributes.remove( instancedMesh.instanceMatrix );\n\n\t\tif ( instancedMesh.instanceColor !== null ) attributes.remove( instancedMesh.instanceColor );\n\n\t}\n\n\treturn {\n\n\t\tupdate: update,\n\t\tdispose: dispose\n\n\t};\n\n}\n\n/**\n * Uniforms of a program.\n * Those form a tree structure with a special top-level container for the root,\n * which you get by calling 'new WebGLUniforms( gl, program )'.\n *\n *\n * Properties of inner nodes including the top-level container:\n *\n * .seq - array of nested uniforms\n * .map - nested uniforms by name\n *\n *\n * Methods of all nodes except the top-level container:\n *\n * .setValue( gl, value, [textures] )\n *\n * \t\tuploads a uniform value(s)\n * \tthe 'textures' parameter is needed for sampler uniforms\n *\n *\n * Static methods of the top-level container (textures factorizations):\n *\n * .upload( gl, seq, values, textures )\n *\n * \t\tsets uniforms in 'seq' to 'values[id].value'\n *\n * .seqWithValue( seq, values ) : filteredSeq\n *\n * \t\tfilters 'seq' entries with corresponding entry in values\n *\n *\n * Methods of the top-level container (textures factorizations):\n *\n * .setValue( gl, name, value, textures )\n *\n * \t\tsets uniform with name 'name' to 'value'\n *\n * .setOptional( gl, obj, prop )\n *\n * \t\tlike .set for an optional property of the object\n *\n */\n\n\nconst emptyTexture = /*@__PURE__*/ new Texture();\n\nconst emptyShadowTexture = /*@__PURE__*/ new DepthTexture( 1, 1 );\n\nconst emptyArrayTexture = /*@__PURE__*/ new DataArrayTexture();\nconst empty3dTexture = /*@__PURE__*/ new Data3DTexture();\nconst emptyCubeTexture = /*@__PURE__*/ new CubeTexture();\n\n// --- Utilities ---\n\n// Array Caches (provide typed arrays for temporary by size)\n\nconst arrayCacheF32 = [];\nconst arrayCacheI32 = [];\n\n// Float32Array caches used for uploading Matrix uniforms\n\nconst mat4array = new Float32Array( 16 );\nconst mat3array = new Float32Array( 9 );\nconst mat2array = new Float32Array( 4 );\n\n// Flattening for arrays of vectors and matrices\n\nfunction flatten( array, nBlocks, blockSize ) {\n\n\tconst firstElem = array[ 0 ];\n\n\tif ( firstElem <= 0 || firstElem > 0 ) return array;\n\t// unoptimized: ! isNaN( firstElem )\n\t// see http://jacksondunstan.com/articles/983\n\n\tconst n = nBlocks * blockSize;\n\tlet r = arrayCacheF32[ n ];\n\n\tif ( r === undefined ) {\n\n\t\tr = new Float32Array( n );\n\t\tarrayCacheF32[ n ] = r;\n\n\t}\n\n\tif ( nBlocks !== 0 ) {\n\n\t\tfirstElem.toArray( r, 0 );\n\n\t\tfor ( let i = 1, offset = 0; i !== nBlocks; ++ i ) {\n\n\t\t\toffset += blockSize;\n\t\t\tarray[ i ].toArray( r, offset );\n\n\t\t}\n\n\t}\n\n\treturn r;\n\n}\n\nfunction arraysEqual( a, b ) {\n\n\tif ( a.length !== b.length ) return false;\n\n\tfor ( let i = 0, l = a.length; i < l; i ++ ) {\n\n\t\tif ( a[ i ] !== b[ i ] ) return false;\n\n\t}\n\n\treturn true;\n\n}\n\nfunction copyArray( a, b ) {\n\n\tfor ( let i = 0, l = b.length; i < l; i ++ ) {\n\n\t\ta[ i ] = b[ i ];\n\n\t}\n\n}\n\n// Texture unit allocation\n\nfunction allocTexUnits( textures, n ) {\n\n\tlet r = arrayCacheI32[ n ];\n\n\tif ( r === undefined ) {\n\n\t\tr = new Int32Array( n );\n\t\tarrayCacheI32[ n ] = r;\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\tr[ i ] = textures.allocateTextureUnit();\n\n\t}\n\n\treturn r;\n\n}\n\n// --- Setters ---\n\n// Note: Defining these methods externally, because they come in a bunch\n// and this way their names minify.\n\n// Single scalar\n\nfunction setValueV1f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( cache[ 0 ] === v ) return;\n\n\tgl.uniform1f( this.addr, v );\n\n\tcache[ 0 ] = v;\n\n}\n\n// Single float vector (from flat array or THREE.VectorN)\n\nfunction setValueV2f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y ) {\n\n\t\t\tgl.uniform2f( this.addr, v.x, v.y );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform2fv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV3f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z ) {\n\n\t\t\tgl.uniform3f( this.addr, v.x, v.y, v.z );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\n\t\t}\n\n\t} else if ( v.r !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.r || cache[ 1 ] !== v.g || cache[ 2 ] !== v.b ) {\n\n\t\t\tgl.uniform3f( this.addr, v.r, v.g, v.b );\n\n\t\t\tcache[ 0 ] = v.r;\n\t\t\tcache[ 1 ] = v.g;\n\t\t\tcache[ 2 ] = v.b;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform3fv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV4f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z || cache[ 3 ] !== v.w ) {\n\n\t\t\tgl.uniform4f( this.addr, v.x, v.y, v.z, v.w );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\t\t\tcache[ 3 ] = v.w;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform4fv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\n// Single matrix (from flat array or THREE.MatrixN)\n\nfunction setValueM2( gl, v ) {\n\n\tconst cache = this.cache;\n\tconst elements = v.elements;\n\n\tif ( elements === undefined ) {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniformMatrix2fv( this.addr, false, v );\n\n\t\tcopyArray( cache, v );\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, elements ) ) return;\n\n\t\tmat2array.set( elements );\n\n\t\tgl.uniformMatrix2fv( this.addr, false, mat2array );\n\n\t\tcopyArray( cache, elements );\n\n\t}\n\n}\n\nfunction setValueM3( gl, v ) {\n\n\tconst cache = this.cache;\n\tconst elements = v.elements;\n\n\tif ( elements === undefined ) {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniformMatrix3fv( this.addr, false, v );\n\n\t\tcopyArray( cache, v );\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, elements ) ) return;\n\n\t\tmat3array.set( elements );\n\n\t\tgl.uniformMatrix3fv( this.addr, false, mat3array );\n\n\t\tcopyArray( cache, elements );\n\n\t}\n\n}\n\nfunction setValueM4( gl, v ) {\n\n\tconst cache = this.cache;\n\tconst elements = v.elements;\n\n\tif ( elements === undefined ) {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniformMatrix4fv( this.addr, false, v );\n\n\t\tcopyArray( cache, v );\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, elements ) ) return;\n\n\t\tmat4array.set( elements );\n\n\t\tgl.uniformMatrix4fv( this.addr, false, mat4array );\n\n\t\tcopyArray( cache, elements );\n\n\t}\n\n}\n\n// Single integer / boolean\n\nfunction setValueV1i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( cache[ 0 ] === v ) return;\n\n\tgl.uniform1i( this.addr, v );\n\n\tcache[ 0 ] = v;\n\n}\n\n// Single integer / boolean vector (from flat array or THREE.VectorN)\n\nfunction setValueV2i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y ) {\n\n\t\t\tgl.uniform2i( this.addr, v.x, v.y );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform2iv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV3i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z ) {\n\n\t\t\tgl.uniform3i( this.addr, v.x, v.y, v.z );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform3iv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV4i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z || cache[ 3 ] !== v.w ) {\n\n\t\t\tgl.uniform4i( this.addr, v.x, v.y, v.z, v.w );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\t\t\tcache[ 3 ] = v.w;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform4iv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\n// Single unsigned integer\n\nfunction setValueV1ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( cache[ 0 ] === v ) return;\n\n\tgl.uniform1ui( this.addr, v );\n\n\tcache[ 0 ] = v;\n\n}\n\n// Single unsigned integer vector (from flat array or THREE.VectorN)\n\nfunction setValueV2ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y ) {\n\n\t\t\tgl.uniform2ui( this.addr, v.x, v.y );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform2uiv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV3ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z ) {\n\n\t\t\tgl.uniform3ui( this.addr, v.x, v.y, v.z );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform3uiv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV4ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z || cache[ 3 ] !== v.w ) {\n\n\t\t\tgl.uniform4ui( this.addr, v.x, v.y, v.z, v.w );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\t\t\tcache[ 3 ] = v.w;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform4uiv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\n\n// Single texture (2D / Cube)\n\nfunction setValueT1( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\tlet emptyTexture2D;\n\n\tif ( this.type === gl.SAMPLER_2D_SHADOW ) {\n\n\t\temptyShadowTexture.compareFunction = LessEqualCompare; // #28670\n\t\temptyTexture2D = emptyShadowTexture;\n\n\t} else {\n\n\t\temptyTexture2D = emptyTexture;\n\n\t}\n\n\ttextures.setTexture2D( v || emptyTexture2D, unit );\n\n}\n\nfunction setValueT3D1( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\ttextures.setTexture3D( v || empty3dTexture, unit );\n\n}\n\nfunction setValueT6( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\ttextures.setTextureCube( v || emptyCubeTexture, unit );\n\n}\n\nfunction setValueT2DArray1( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\ttextures.setTexture2DArray( v || emptyArrayTexture, unit );\n\n}\n\n// Helper to pick the right setter for the singular case\n\nfunction getSingularSetter( type ) {\n\n\tswitch ( type ) {\n\n\t\tcase 0x1406: return setValueV1f; // FLOAT\n\t\tcase 0x8b50: return setValueV2f; // _VEC2\n\t\tcase 0x8b51: return setValueV3f; // _VEC3\n\t\tcase 0x8b52: return setValueV4f; // _VEC4\n\n\t\tcase 0x8b5a: return setValueM2; // _MAT2\n\t\tcase 0x8b5b: return setValueM3; // _MAT3\n\t\tcase 0x8b5c: return setValueM4; // _MAT4\n\n\t\tcase 0x1404: case 0x8b56: return setValueV1i; // INT, BOOL\n\t\tcase 0x8b53: case 0x8b57: return setValueV2i; // _VEC2\n\t\tcase 0x8b54: case 0x8b58: return setValueV3i; // _VEC3\n\t\tcase 0x8b55: case 0x8b59: return setValueV4i; // _VEC4\n\n\t\tcase 0x1405: return setValueV1ui; // UINT\n\t\tcase 0x8dc6: return setValueV2ui; // _VEC2\n\t\tcase 0x8dc7: return setValueV3ui; // _VEC3\n\t\tcase 0x8dc8: return setValueV4ui; // _VEC4\n\n\t\tcase 0x8b5e: // SAMPLER_2D\n\t\tcase 0x8d66: // SAMPLER_EXTERNAL_OES\n\t\tcase 0x8dca: // INT_SAMPLER_2D\n\t\tcase 0x8dd2: // UNSIGNED_INT_SAMPLER_2D\n\t\tcase 0x8b62: // SAMPLER_2D_SHADOW\n\t\t\treturn setValueT1;\n\n\t\tcase 0x8b5f: // SAMPLER_3D\n\t\tcase 0x8dcb: // INT_SAMPLER_3D\n\t\tcase 0x8dd3: // UNSIGNED_INT_SAMPLER_3D\n\t\t\treturn setValueT3D1;\n\n\t\tcase 0x8b60: // SAMPLER_CUBE\n\t\tcase 0x8dcc: // INT_SAMPLER_CUBE\n\t\tcase 0x8dd4: // UNSIGNED_INT_SAMPLER_CUBE\n\t\tcase 0x8dc5: // SAMPLER_CUBE_SHADOW\n\t\t\treturn setValueT6;\n\n\t\tcase 0x8dc1: // SAMPLER_2D_ARRAY\n\t\tcase 0x8dcf: // INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dd7: // UNSIGNED_INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dc4: // SAMPLER_2D_ARRAY_SHADOW\n\t\t\treturn setValueT2DArray1;\n\n\t}\n\n}\n\n\n// Array of scalars\n\nfunction setValueV1fArray( gl, v ) {\n\n\tgl.uniform1fv( this.addr, v );\n\n}\n\n// Array of vectors (from flat array or array of THREE.VectorN)\n\nfunction setValueV2fArray( gl, v ) {\n\n\tconst data = flatten( v, this.size, 2 );\n\n\tgl.uniform2fv( this.addr, data );\n\n}\n\nfunction setValueV3fArray( gl, v ) {\n\n\tconst data = flatten( v, this.size, 3 );\n\n\tgl.uniform3fv( this.addr, data );\n\n}\n\nfunction setValueV4fArray( gl, v ) {\n\n\tconst data = flatten( v, this.size, 4 );\n\n\tgl.uniform4fv( this.addr, data );\n\n}\n\n// Array of matrices (from flat array or array of THREE.MatrixN)\n\nfunction setValueM2Array( gl, v ) {\n\n\tconst data = flatten( v, this.size, 4 );\n\n\tgl.uniformMatrix2fv( this.addr, false, data );\n\n}\n\nfunction setValueM3Array( gl, v ) {\n\n\tconst data = flatten( v, this.size, 9 );\n\n\tgl.uniformMatrix3fv( this.addr, false, data );\n\n}\n\nfunction setValueM4Array( gl, v ) {\n\n\tconst data = flatten( v, this.size, 16 );\n\n\tgl.uniformMatrix4fv( this.addr, false, data );\n\n}\n\n// Array of integer / boolean\n\nfunction setValueV1iArray( gl, v ) {\n\n\tgl.uniform1iv( this.addr, v );\n\n}\n\n// Array of integer / boolean vectors (from flat array)\n\nfunction setValueV2iArray( gl, v ) {\n\n\tgl.uniform2iv( this.addr, v );\n\n}\n\nfunction setValueV3iArray( gl, v ) {\n\n\tgl.uniform3iv( this.addr, v );\n\n}\n\nfunction setValueV4iArray( gl, v ) {\n\n\tgl.uniform4iv( this.addr, v );\n\n}\n\n// Array of unsigned integer\n\nfunction setValueV1uiArray( gl, v ) {\n\n\tgl.uniform1uiv( this.addr, v );\n\n}\n\n// Array of unsigned integer vectors (from flat array)\n\nfunction setValueV2uiArray( gl, v ) {\n\n\tgl.uniform2uiv( this.addr, v );\n\n}\n\nfunction setValueV3uiArray( gl, v ) {\n\n\tgl.uniform3uiv( this.addr, v );\n\n}\n\nfunction setValueV4uiArray( gl, v ) {\n\n\tgl.uniform4uiv( this.addr, v );\n\n}\n\n\n// Array of textures (2D / 3D / Cube / 2DArray)\n\nfunction setValueT1Array( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tif ( ! arraysEqual( cache, units ) ) {\n\n\t\tgl.uniform1iv( this.addr, units );\n\n\t\tcopyArray( cache, units );\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTexture2D( v[ i ] || emptyTexture, units[ i ] );\n\n\t}\n\n}\n\nfunction setValueT3DArray( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tif ( ! arraysEqual( cache, units ) ) {\n\n\t\tgl.uniform1iv( this.addr, units );\n\n\t\tcopyArray( cache, units );\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTexture3D( v[ i ] || empty3dTexture, units[ i ] );\n\n\t}\n\n}\n\nfunction setValueT6Array( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tif ( ! arraysEqual( cache, units ) ) {\n\n\t\tgl.uniform1iv( this.addr, units );\n\n\t\tcopyArray( cache, units );\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTextureCube( v[ i ] || emptyCubeTexture, units[ i ] );\n\n\t}\n\n}\n\nfunction setValueT2DArrayArray( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tif ( ! arraysEqual( cache, units ) ) {\n\n\t\tgl.uniform1iv( this.addr, units );\n\n\t\tcopyArray( cache, units );\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTexture2DArray( v[ i ] || emptyArrayTexture, units[ i ] );\n\n\t}\n\n}\n\n\n// Helper to pick the right setter for a pure (bottom-level) array\n\nfunction getPureArraySetter( type ) {\n\n\tswitch ( type ) {\n\n\t\tcase 0x1406: return setValueV1fArray; // FLOAT\n\t\tcase 0x8b50: return setValueV2fArray; // _VEC2\n\t\tcase 0x8b51: return setValueV3fArray; // _VEC3\n\t\tcase 0x8b52: return setValueV4fArray; // _VEC4\n\n\t\tcase 0x8b5a: return setValueM2Array; // _MAT2\n\t\tcase 0x8b5b: return setValueM3Array; // _MAT3\n\t\tcase 0x8b5c: return setValueM4Array; // _MAT4\n\n\t\tcase 0x1404: case 0x8b56: return setValueV1iArray; // INT, BOOL\n\t\tcase 0x8b53: case 0x8b57: return setValueV2iArray; // _VEC2\n\t\tcase 0x8b54: case 0x8b58: return setValueV3iArray; // _VEC3\n\t\tcase 0x8b55: case 0x8b59: return setValueV4iArray; // _VEC4\n\n\t\tcase 0x1405: return setValueV1uiArray; // UINT\n\t\tcase 0x8dc6: return setValueV2uiArray; // _VEC2\n\t\tcase 0x8dc7: return setValueV3uiArray; // _VEC3\n\t\tcase 0x8dc8: return setValueV4uiArray; // _VEC4\n\n\t\tcase 0x8b5e: // SAMPLER_2D\n\t\tcase 0x8d66: // SAMPLER_EXTERNAL_OES\n\t\tcase 0x8dca: // INT_SAMPLER_2D\n\t\tcase 0x8dd2: // UNSIGNED_INT_SAMPLER_2D\n\t\tcase 0x8b62: // SAMPLER_2D_SHADOW\n\t\t\treturn setValueT1Array;\n\n\t\tcase 0x8b5f: // SAMPLER_3D\n\t\tcase 0x8dcb: // INT_SAMPLER_3D\n\t\tcase 0x8dd3: // UNSIGNED_INT_SAMPLER_3D\n\t\t\treturn setValueT3DArray;\n\n\t\tcase 0x8b60: // SAMPLER_CUBE\n\t\tcase 0x8dcc: // INT_SAMPLER_CUBE\n\t\tcase 0x8dd4: // UNSIGNED_INT_SAMPLER_CUBE\n\t\tcase 0x8dc5: // SAMPLER_CUBE_SHADOW\n\t\t\treturn setValueT6Array;\n\n\t\tcase 0x8dc1: // SAMPLER_2D_ARRAY\n\t\tcase 0x8dcf: // INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dd7: // UNSIGNED_INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dc4: // SAMPLER_2D_ARRAY_SHADOW\n\t\t\treturn setValueT2DArrayArray;\n\n\t}\n\n}\n\n// --- Uniform Classes ---\n\nclass SingleUniform {\n\n\tconstructor( id, activeInfo, addr ) {\n\n\t\tthis.id = id;\n\t\tthis.addr = addr;\n\t\tthis.cache = [];\n\t\tthis.type = activeInfo.type;\n\t\tthis.setValue = getSingularSetter( activeInfo.type );\n\n\t\t// this.path = activeInfo.name; // DEBUG\n\n\t}\n\n}\n\nclass PureArrayUniform {\n\n\tconstructor( id, activeInfo, addr ) {\n\n\t\tthis.id = id;\n\t\tthis.addr = addr;\n\t\tthis.cache = [];\n\t\tthis.type = activeInfo.type;\n\t\tthis.size = activeInfo.size;\n\t\tthis.setValue = getPureArraySetter( activeInfo.type );\n\n\t\t// this.path = activeInfo.name; // DEBUG\n\n\t}\n\n}\n\nclass StructuredUniform {\n\n\tconstructor( id ) {\n\n\t\tthis.id = id;\n\n\t\tthis.seq = [];\n\t\tthis.map = {};\n\n\t}\n\n\tsetValue( gl, value, textures ) {\n\n\t\tconst seq = this.seq;\n\n\t\tfor ( let i = 0, n = seq.length; i !== n; ++ i ) {\n\n\t\t\tconst u = seq[ i ];\n\t\t\tu.setValue( gl, value[ u.id ], textures );\n\n\t\t}\n\n\t}\n\n}\n\n// --- Top-level ---\n\n// Parser - builds up the property tree from the path strings\n\nconst RePathPart = /(\\w+)(\\])?(\\[|\\.)?/g;\n\n// extracts\n// \t- the identifier (member name or array index)\n// - followed by an optional right bracket (found when array index)\n// - followed by an optional left bracket or dot (type of subscript)\n//\n// Note: These portions can be read in a non-overlapping fashion and\n// allow straightforward parsing of the hierarchy that WebGL encodes\n// in the uniform names.\n\nfunction addUniform( container, uniformObject ) {\n\n\tcontainer.seq.push( uniformObject );\n\tcontainer.map[ uniformObject.id ] = uniformObject;\n\n}\n\nfunction parseUniform( activeInfo, addr, container ) {\n\n\tconst path = activeInfo.name,\n\t\tpathLength = path.length;\n\n\t// reset RegExp object, because of the early exit of a previous run\n\tRePathPart.lastIndex = 0;\n\n\twhile ( true ) {\n\n\t\tconst match = RePathPart.exec( path ),\n\t\t\tmatchEnd = RePathPart.lastIndex;\n\n\t\tlet id = match[ 1 ];\n\t\tconst idIsIndex = match[ 2 ] === ']',\n\t\t\tsubscript = match[ 3 ];\n\n\t\tif ( idIsIndex ) id = id | 0; // convert to integer\n\n\t\tif ( subscript === undefined || subscript === '[' && matchEnd + 2 === pathLength ) {\n\n\t\t\t// bare name or \"pure\" bottom-level array \"[0]\" suffix\n\n\t\t\taddUniform( container, subscript === undefined ?\n\t\t\t\tnew SingleUniform( id, activeInfo, addr ) :\n\t\t\t\tnew PureArrayUniform( id, activeInfo, addr ) );\n\n\t\t\tbreak;\n\n\t\t} else {\n\n\t\t\t// step into inner node / create it in case it doesn't exist\n\n\t\t\tconst map = container.map;\n\t\t\tlet next = map[ id ];\n\n\t\t\tif ( next === undefined ) {\n\n\t\t\t\tnext = new StructuredUniform( id );\n\t\t\t\taddUniform( container, next );\n\n\t\t\t}\n\n\t\t\tcontainer = next;\n\n\t\t}\n\n\t}\n\n}\n\n// Root Container\n\nclass WebGLUniforms {\n\n\tconstructor( gl, program ) {\n\n\t\tthis.seq = [];\n\t\tthis.map = {};\n\n\t\tconst n = gl.getProgramParameter( program, gl.ACTIVE_UNIFORMS );\n\n\t\tfor ( let i = 0; i < n; ++ i ) {\n\n\t\t\tconst info = gl.getActiveUniform( program, i ),\n\t\t\t\taddr = gl.getUniformLocation( program, info.name );\n\n\t\t\tparseUniform( info, addr, this );\n\n\t\t}\n\n\t}\n\n\tsetValue( gl, name, value, textures ) {\n\n\t\tconst u = this.map[ name ];\n\n\t\tif ( u !== undefined ) u.setValue( gl, value, textures );\n\n\t}\n\n\tsetOptional( gl, object, name ) {\n\n\t\tconst v = object[ name ];\n\n\t\tif ( v !== undefined ) this.setValue( gl, name, v );\n\n\t}\n\n\tstatic upload( gl, seq, values, textures ) {\n\n\t\tfor ( let i = 0, n = seq.length; i !== n; ++ i ) {\n\n\t\t\tconst u = seq[ i ],\n\t\t\t\tv = values[ u.id ];\n\n\t\t\tif ( v.needsUpdate !== false ) {\n\n\t\t\t\t// note: always updating when .needsUpdate is undefined\n\t\t\t\tu.setValue( gl, v.value, textures );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tstatic seqWithValue( seq, values ) {\n\n\t\tconst r = [];\n\n\t\tfor ( let i = 0, n = seq.length; i !== n; ++ i ) {\n\n\t\t\tconst u = seq[ i ];\n\t\t\tif ( u.id in values ) r.push( u );\n\n\t\t}\n\n\t\treturn r;\n\n\t}\n\n}\n\nfunction WebGLShader( gl, type, string ) {\n\n\tconst shader = gl.createShader( type );\n\n\tgl.shaderSource( shader, string );\n\tgl.compileShader( shader );\n\n\treturn shader;\n\n}\n\n// From https://www.khronos.org/registry/webgl/extensions/KHR_parallel_shader_compile/\nconst COMPLETION_STATUS_KHR = 0x91B1;\n\nlet programIdCount = 0;\n\nfunction handleSource( string, errorLine ) {\n\n\tconst lines = string.split( '\\n' );\n\tconst lines2 = [];\n\n\tconst from = Math.max( errorLine - 6, 0 );\n\tconst to = Math.min( errorLine + 6, lines.length );\n\n\tfor ( let i = from; i < to; i ++ ) {\n\n\t\tconst line = i + 1;\n\t\tlines2.push( `${line === errorLine ? '>' : ' '} ${line}: ${lines[ i ]}` );\n\n\t}\n\n\treturn lines2.join( '\\n' );\n\n}\n\nconst _m0 = /*@__PURE__*/ new Matrix3();\n\nfunction getEncodingComponents( colorSpace ) {\n\n\tColorManagement._getMatrix( _m0, ColorManagement.workingColorSpace, colorSpace );\n\n\tconst encodingMatrix = `mat3( ${ _m0.elements.map( ( v ) => v.toFixed( 4 ) ) } )`;\n\n\tswitch ( ColorManagement.getTransfer( colorSpace ) ) {\n\n\t\tcase LinearTransfer:\n\t\t\treturn [ encodingMatrix, 'LinearTransferOETF' ];\n\n\t\tcase SRGBTransfer:\n\t\t\treturn [ encodingMatrix, 'sRGBTransferOETF' ];\n\n\t\tdefault:\n\t\t\tconsole.warn( 'THREE.WebGLProgram: Unsupported color space: ', colorSpace );\n\t\t\treturn [ encodingMatrix, 'LinearTransferOETF' ];\n\n\t}\n\n}\n\nfunction getShaderErrors( gl, shader, type ) {\n\n\tconst status = gl.getShaderParameter( shader, gl.COMPILE_STATUS );\n\tconst errors = gl.getShaderInfoLog( shader ).trim();\n\n\tif ( status && errors === '' ) return '';\n\n\tconst errorMatches = /ERROR: 0:(\\d+)/.exec( errors );\n\tif ( errorMatches ) {\n\n\t\t// --enable-privileged-webgl-extension\n\t\t// console.log( '**' + type + '**', gl.getExtension( 'WEBGL_debug_shaders' ).getTranslatedShaderSource( shader ) );\n\n\t\tconst errorLine = parseInt( errorMatches[ 1 ] );\n\t\treturn type.toUpperCase() + '\\n\\n' + errors + '\\n\\n' + handleSource( gl.getShaderSource( shader ), errorLine );\n\n\t} else {\n\n\t\treturn errors;\n\n\t}\n\n}\n\nfunction getTexelEncodingFunction( functionName, colorSpace ) {\n\n\tconst components = getEncodingComponents( colorSpace );\n\n\treturn [\n\n\t\t`vec4 ${functionName}( vec4 value ) {`,\n\n\t\t`\treturn ${components[ 1 ]}( vec4( value.rgb * ${components[ 0 ]}, value.a ) );`,\n\n\t\t'}',\n\n\t].join( '\\n' );\n\n}\n\nfunction getToneMappingFunction( functionName, toneMapping ) {\n\n\tlet toneMappingName;\n\n\tswitch ( toneMapping ) {\n\n\t\tcase LinearToneMapping:\n\t\t\ttoneMappingName = 'Linear';\n\t\t\tbreak;\n\n\t\tcase ReinhardToneMapping:\n\t\t\ttoneMappingName = 'Reinhard';\n\t\t\tbreak;\n\n\t\tcase CineonToneMapping:\n\t\t\ttoneMappingName = 'Cineon';\n\t\t\tbreak;\n\n\t\tcase ACESFilmicToneMapping:\n\t\t\ttoneMappingName = 'ACESFilmic';\n\t\t\tbreak;\n\n\t\tcase AgXToneMapping:\n\t\t\ttoneMappingName = 'AgX';\n\t\t\tbreak;\n\n\t\tcase NeutralToneMapping:\n\t\t\ttoneMappingName = 'Neutral';\n\t\t\tbreak;\n\n\t\tcase CustomToneMapping:\n\t\t\ttoneMappingName = 'Custom';\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tconsole.warn( 'THREE.WebGLProgram: Unsupported toneMapping:', toneMapping );\n\t\t\ttoneMappingName = 'Linear';\n\n\t}\n\n\treturn 'vec3 ' + functionName + '( vec3 color ) { return ' + toneMappingName + 'ToneMapping( color ); }';\n\n}\n\nconst _v0 = /*@__PURE__*/ new Vector3();\n\nfunction getLuminanceFunction() {\n\n\tColorManagement.getLuminanceCoefficients( _v0 );\n\n\tconst r = _v0.x.toFixed( 4 );\n\tconst g = _v0.y.toFixed( 4 );\n\tconst b = _v0.z.toFixed( 4 );\n\n\treturn [\n\n\t\t'float luminance( const in vec3 rgb ) {',\n\n\t\t`\tconst vec3 weights = vec3( ${ r }, ${ g }, ${ b } );`,\n\n\t\t'\treturn dot( weights, rgb );',\n\n\t\t'}'\n\n\t].join( '\\n' );\n\n}\n\nfunction generateVertexExtensions( parameters ) {\n\n\tconst chunks = [\n\t\tparameters.extensionClipCullDistance ? '#extension GL_ANGLE_clip_cull_distance : require' : '',\n\t\tparameters.extensionMultiDraw ? '#extension GL_ANGLE_multi_draw : require' : '',\n\t];\n\n\treturn chunks.filter( filterEmptyLine ).join( '\\n' );\n\n}\n\nfunction generateDefines( defines ) {\n\n\tconst chunks = [];\n\n\tfor ( const name in defines ) {\n\n\t\tconst value = defines[ name ];\n\n\t\tif ( value === false ) continue;\n\n\t\tchunks.push( '#define ' + name + ' ' + value );\n\n\t}\n\n\treturn chunks.join( '\\n' );\n\n}\n\nfunction fetchAttributeLocations( gl, program ) {\n\n\tconst attributes = {};\n\n\tconst n = gl.getProgramParameter( program, gl.ACTIVE_ATTRIBUTES );\n\n\tfor ( let i = 0; i < n; i ++ ) {\n\n\t\tconst info = gl.getActiveAttrib( program, i );\n\t\tconst name = info.name;\n\n\t\tlet locationSize = 1;\n\t\tif ( info.type === gl.FLOAT_MAT2 ) locationSize = 2;\n\t\tif ( info.type === gl.FLOAT_MAT3 ) locationSize = 3;\n\t\tif ( info.type === gl.FLOAT_MAT4 ) locationSize = 4;\n\n\t\t// console.log( 'THREE.WebGLProgram: ACTIVE VERTEX ATTRIBUTE:', name, i );\n\n\t\tattributes[ name ] = {\n\t\t\ttype: info.type,\n\t\t\tlocation: gl.getAttribLocation( program, name ),\n\t\t\tlocationSize: locationSize\n\t\t};\n\n\t}\n\n\treturn attributes;\n\n}\n\nfunction filterEmptyLine( string ) {\n\n\treturn string !== '';\n\n}\n\nfunction replaceLightNums( string, parameters ) {\n\n\tconst numSpotLightCoords = parameters.numSpotLightShadows + parameters.numSpotLightMaps - parameters.numSpotLightShadowsWithMaps;\n\n\treturn string\n\t\t.replace( /NUM_DIR_LIGHTS/g, parameters.numDirLights )\n\t\t.replace( /NUM_SPOT_LIGHTS/g, parameters.numSpotLights )\n\t\t.replace( /NUM_SPOT_LIGHT_MAPS/g, parameters.numSpotLightMaps )\n\t\t.replace( /NUM_SPOT_LIGHT_COORDS/g, numSpotLightCoords )\n\t\t.replace( /NUM_RECT_AREA_LIGHTS/g, parameters.numRectAreaLights )\n\t\t.replace( /NUM_POINT_LIGHTS/g, parameters.numPointLights )\n\t\t.replace( /NUM_HEMI_LIGHTS/g, parameters.numHemiLights )\n\t\t.replace( /NUM_DIR_LIGHT_SHADOWS/g, parameters.numDirLightShadows )\n\t\t.replace( /NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g, parameters.numSpotLightShadowsWithMaps )\n\t\t.replace( /NUM_SPOT_LIGHT_SHADOWS/g, parameters.numSpotLightShadows )\n\t\t.replace( /NUM_POINT_LIGHT_SHADOWS/g, parameters.numPointLightShadows );\n\n}\n\nfunction replaceClippingPlaneNums( string, parameters ) {\n\n\treturn string\n\t\t.replace( /NUM_CLIPPING_PLANES/g, parameters.numClippingPlanes )\n\t\t.replace( /UNION_CLIPPING_PLANES/g, ( parameters.numClippingPlanes - parameters.numClipIntersection ) );\n\n}\n\n// Resolve Includes\n\nconst includePattern = /^[ \\t]*#include +<([\\w\\d./]+)>/gm;\n\nfunction resolveIncludes( string ) {\n\n\treturn string.replace( includePattern, includeReplacer );\n\n}\n\nconst shaderChunkMap = new Map();\n\nfunction includeReplacer( match, include ) {\n\n\tlet string = ShaderChunk[ include ];\n\n\tif ( string === undefined ) {\n\n\t\tconst newInclude = shaderChunkMap.get( include );\n\n\t\tif ( newInclude !== undefined ) {\n\n\t\t\tstring = ShaderChunk[ newInclude ];\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Shader chunk \"%s\" has been deprecated. Use \"%s\" instead.', include, newInclude );\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'Can not resolve #include <' + include + '>' );\n\n\t\t}\n\n\t}\n\n\treturn resolveIncludes( string );\n\n}\n\n// Unroll Loops\n\nconst unrollLoopPattern = /#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;\n\nfunction unrollLoops( string ) {\n\n\treturn string.replace( unrollLoopPattern, loopReplacer );\n\n}\n\nfunction loopReplacer( match, start, end, snippet ) {\n\n\tlet string = '';\n\n\tfor ( let i = parseInt( start ); i < parseInt( end ); i ++ ) {\n\n\t\tstring += snippet\n\t\t\t.replace( /\\[\\s*i\\s*\\]/g, '[ ' + i + ' ]' )\n\t\t\t.replace( /UNROLLED_LOOP_INDEX/g, i );\n\n\t}\n\n\treturn string;\n\n}\n\n//\n\nfunction generatePrecision( parameters ) {\n\n\tlet precisionstring = `precision ${parameters.precision} float;\n\tprecision ${parameters.precision} int;\n\tprecision ${parameters.precision} sampler2D;\n\tprecision ${parameters.precision} samplerCube;\n\tprecision ${parameters.precision} sampler3D;\n\tprecision ${parameters.precision} sampler2DArray;\n\tprecision ${parameters.precision} sampler2DShadow;\n\tprecision ${parameters.precision} samplerCubeShadow;\n\tprecision ${parameters.precision} sampler2DArrayShadow;\n\tprecision ${parameters.precision} isampler2D;\n\tprecision ${parameters.precision} isampler3D;\n\tprecision ${parameters.precision} isamplerCube;\n\tprecision ${parameters.precision} isampler2DArray;\n\tprecision ${parameters.precision} usampler2D;\n\tprecision ${parameters.precision} usampler3D;\n\tprecision ${parameters.precision} usamplerCube;\n\tprecision ${parameters.precision} usampler2DArray;\n\t`;\n\n\tif ( parameters.precision === 'highp' ) {\n\n\t\tprecisionstring += '\\n#define HIGH_PRECISION';\n\n\t} else if ( parameters.precision === 'mediump' ) {\n\n\t\tprecisionstring += '\\n#define MEDIUM_PRECISION';\n\n\t} else if ( parameters.precision === 'lowp' ) {\n\n\t\tprecisionstring += '\\n#define LOW_PRECISION';\n\n\t}\n\n\treturn precisionstring;\n\n}\n\nfunction generateShadowMapTypeDefine( parameters ) {\n\n\tlet shadowMapTypeDefine = 'SHADOWMAP_TYPE_BASIC';\n\n\tif ( parameters.shadowMapType === PCFShadowMap ) {\n\n\t\tshadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF';\n\n\t} else if ( parameters.shadowMapType === PCFSoftShadowMap ) {\n\n\t\tshadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF_SOFT';\n\n\t} else if ( parameters.shadowMapType === VSMShadowMap ) {\n\n\t\tshadowMapTypeDefine = 'SHADOWMAP_TYPE_VSM';\n\n\t}\n\n\treturn shadowMapTypeDefine;\n\n}\n\nfunction generateEnvMapTypeDefine( parameters ) {\n\n\tlet envMapTypeDefine = 'ENVMAP_TYPE_CUBE';\n\n\tif ( parameters.envMap ) {\n\n\t\tswitch ( parameters.envMapMode ) {\n\n\t\t\tcase CubeReflectionMapping:\n\t\t\tcase CubeRefractionMapping:\n\t\t\t\tenvMapTypeDefine = 'ENVMAP_TYPE_CUBE';\n\t\t\t\tbreak;\n\n\t\t\tcase CubeUVReflectionMapping:\n\t\t\t\tenvMapTypeDefine = 'ENVMAP_TYPE_CUBE_UV';\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\treturn envMapTypeDefine;\n\n}\n\nfunction generateEnvMapModeDefine( parameters ) {\n\n\tlet envMapModeDefine = 'ENVMAP_MODE_REFLECTION';\n\n\tif ( parameters.envMap ) {\n\n\t\tswitch ( parameters.envMapMode ) {\n\n\t\t\tcase CubeRefractionMapping:\n\n\t\t\t\tenvMapModeDefine = 'ENVMAP_MODE_REFRACTION';\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\treturn envMapModeDefine;\n\n}\n\nfunction generateEnvMapBlendingDefine( parameters ) {\n\n\tlet envMapBlendingDefine = 'ENVMAP_BLENDING_NONE';\n\n\tif ( parameters.envMap ) {\n\n\t\tswitch ( parameters.combine ) {\n\n\t\t\tcase MultiplyOperation:\n\t\t\t\tenvMapBlendingDefine = 'ENVMAP_BLENDING_MULTIPLY';\n\t\t\t\tbreak;\n\n\t\t\tcase MixOperation:\n\t\t\t\tenvMapBlendingDefine = 'ENVMAP_BLENDING_MIX';\n\t\t\t\tbreak;\n\n\t\t\tcase AddOperation:\n\t\t\t\tenvMapBlendingDefine = 'ENVMAP_BLENDING_ADD';\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\treturn envMapBlendingDefine;\n\n}\n\nfunction generateCubeUVSize( parameters ) {\n\n\tconst imageHeight = parameters.envMapCubeUVHeight;\n\n\tif ( imageHeight === null ) return null;\n\n\tconst maxMip = Math.log2( imageHeight ) - 2;\n\n\tconst texelHeight = 1.0 / imageHeight;\n\n\tconst texelWidth = 1.0 / ( 3 * Math.max( Math.pow( 2, maxMip ), 7 * 16 ) );\n\n\treturn { texelWidth, texelHeight, maxMip };\n\n}\n\nfunction WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {\n\n\t// TODO Send this event to Three.js DevTools\n\t// console.log( 'WebGLProgram', cacheKey );\n\n\tconst gl = renderer.getContext();\n\n\tconst defines = parameters.defines;\n\n\tlet vertexShader = parameters.vertexShader;\n\tlet fragmentShader = parameters.fragmentShader;\n\n\tconst shadowMapTypeDefine = generateShadowMapTypeDefine( parameters );\n\tconst envMapTypeDefine = generateEnvMapTypeDefine( parameters );\n\tconst envMapModeDefine = generateEnvMapModeDefine( parameters );\n\tconst envMapBlendingDefine = generateEnvMapBlendingDefine( parameters );\n\tconst envMapCubeUVSize = generateCubeUVSize( parameters );\n\n\tconst customVertexExtensions = generateVertexExtensions( parameters );\n\n\tconst customDefines = generateDefines( defines );\n\n\tconst program = gl.createProgram();\n\n\tlet prefixVertex, prefixFragment;\n\tlet versionString = parameters.glslVersion ? '#version ' + parameters.glslVersion + '\\n' : '';\n\n\tif ( parameters.isRawShaderMaterial ) {\n\n\t\tprefixVertex = [\n\n\t\t\t'#define SHADER_TYPE ' + parameters.shaderType,\n\t\t\t'#define SHADER_NAME ' + parameters.shaderName,\n\n\t\t\tcustomDefines\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t\tif ( prefixVertex.length > 0 ) {\n\n\t\t\tprefixVertex += '\\n';\n\n\t\t}\n\n\t\tprefixFragment = [\n\n\t\t\t'#define SHADER_TYPE ' + parameters.shaderType,\n\t\t\t'#define SHADER_NAME ' + parameters.shaderName,\n\n\t\t\tcustomDefines\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t\tif ( prefixFragment.length > 0 ) {\n\n\t\t\tprefixFragment += '\\n';\n\n\t\t}\n\n\t} else {\n\n\t\tprefixVertex = [\n\n\t\t\tgeneratePrecision( parameters ),\n\n\t\t\t'#define SHADER_TYPE ' + parameters.shaderType,\n\t\t\t'#define SHADER_NAME ' + parameters.shaderName,\n\n\t\t\tcustomDefines,\n\n\t\t\tparameters.extensionClipCullDistance ? '#define USE_CLIP_DISTANCE' : '',\n\t\t\tparameters.batching ? '#define USE_BATCHING' : '',\n\t\t\tparameters.batchingColor ? '#define USE_BATCHING_COLOR' : '',\n\t\t\tparameters.instancing ? '#define USE_INSTANCING' : '',\n\t\t\tparameters.instancingColor ? '#define USE_INSTANCING_COLOR' : '',\n\t\t\tparameters.instancingMorph ? '#define USE_INSTANCING_MORPH' : '',\n\n\t\t\tparameters.useFog && parameters.fog ? '#define USE_FOG' : '',\n\t\t\tparameters.useFog && parameters.fogExp2 ? '#define FOG_EXP2' : '',\n\n\t\t\tparameters.map ? '#define USE_MAP' : '',\n\t\t\tparameters.envMap ? '#define USE_ENVMAP' : '',\n\t\t\tparameters.envMap ? '#define ' + envMapModeDefine : '',\n\t\t\tparameters.lightMap ? '#define USE_LIGHTMAP' : '',\n\t\t\tparameters.aoMap ? '#define USE_AOMAP' : '',\n\t\t\tparameters.bumpMap ? '#define USE_BUMPMAP' : '',\n\t\t\tparameters.normalMap ? '#define USE_NORMALMAP' : '',\n\t\t\tparameters.normalMapObjectSpace ? '#define USE_NORMALMAP_OBJECTSPACE' : '',\n\t\t\tparameters.normalMapTangentSpace ? '#define USE_NORMALMAP_TANGENTSPACE' : '',\n\t\t\tparameters.displacementMap ? '#define USE_DISPLACEMENTMAP' : '',\n\t\t\tparameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '',\n\n\t\t\tparameters.anisotropy ? '#define USE_ANISOTROPY' : '',\n\t\t\tparameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '',\n\n\t\t\tparameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '',\n\t\t\tparameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '',\n\t\t\tparameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '',\n\n\t\t\tparameters.iridescenceMap ? '#define USE_IRIDESCENCEMAP' : '',\n\t\t\tparameters.iridescenceThicknessMap ? '#define USE_IRIDESCENCE_THICKNESSMAP' : '',\n\n\t\t\tparameters.specularMap ? '#define USE_SPECULARMAP' : '',\n\t\t\tparameters.specularColorMap ? '#define USE_SPECULAR_COLORMAP' : '',\n\t\t\tparameters.specularIntensityMap ? '#define USE_SPECULAR_INTENSITYMAP' : '',\n\n\t\t\tparameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '',\n\t\t\tparameters.metalnessMap ? '#define USE_METALNESSMAP' : '',\n\t\t\tparameters.alphaMap ? '#define USE_ALPHAMAP' : '',\n\t\t\tparameters.alphaHash ? '#define USE_ALPHAHASH' : '',\n\n\t\t\tparameters.transmission ? '#define USE_TRANSMISSION' : '',\n\t\t\tparameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '',\n\t\t\tparameters.thicknessMap ? '#define USE_THICKNESSMAP' : '',\n\n\t\t\tparameters.sheenColorMap ? '#define USE_SHEEN_COLORMAP' : '',\n\t\t\tparameters.sheenRoughnessMap ? '#define USE_SHEEN_ROUGHNESSMAP' : '',\n\n\t\t\t//\n\n\t\t\tparameters.mapUv ? '#define MAP_UV ' + parameters.mapUv : '',\n\t\t\tparameters.alphaMapUv ? '#define ALPHAMAP_UV ' + parameters.alphaMapUv : '',\n\t\t\tparameters.lightMapUv ? '#define LIGHTMAP_UV ' + parameters.lightMapUv : '',\n\t\t\tparameters.aoMapUv ? '#define AOMAP_UV ' + parameters.aoMapUv : '',\n\t\t\tparameters.emissiveMapUv ? '#define EMISSIVEMAP_UV ' + parameters.emissiveMapUv : '',\n\t\t\tparameters.bumpMapUv ? '#define BUMPMAP_UV ' + parameters.bumpMapUv : '',\n\t\t\tparameters.normalMapUv ? '#define NORMALMAP_UV ' + parameters.normalMapUv : '',\n\t\t\tparameters.displacementMapUv ? '#define DISPLACEMENTMAP_UV ' + parameters.displacementMapUv : '',\n\n\t\t\tparameters.metalnessMapUv ? '#define METALNESSMAP_UV ' + parameters.metalnessMapUv : '',\n\t\t\tparameters.roughnessMapUv ? '#define ROUGHNESSMAP_UV ' + parameters.roughnessMapUv : '',\n\n\t\t\tparameters.anisotropyMapUv ? '#define ANISOTROPYMAP_UV ' + parameters.anisotropyMapUv : '',\n\n\t\t\tparameters.clearcoatMapUv ? '#define CLEARCOATMAP_UV ' + parameters.clearcoatMapUv : '',\n\t\t\tparameters.clearcoatNormalMapUv ? '#define CLEARCOAT_NORMALMAP_UV ' + parameters.clearcoatNormalMapUv : '',\n\t\t\tparameters.clearcoatRoughnessMapUv ? '#define CLEARCOAT_ROUGHNESSMAP_UV ' + parameters.clearcoatRoughnessMapUv : '',\n\n\t\t\tparameters.iridescenceMapUv ? '#define IRIDESCENCEMAP_UV ' + parameters.iridescenceMapUv : '',\n\t\t\tparameters.iridescenceThicknessMapUv ? '#define IRIDESCENCE_THICKNESSMAP_UV ' + parameters.iridescenceThicknessMapUv : '',\n\n\t\t\tparameters.sheenColorMapUv ? '#define SHEEN_COLORMAP_UV ' + parameters.sheenColorMapUv : '',\n\t\t\tparameters.sheenRoughnessMapUv ? '#define SHEEN_ROUGHNESSMAP_UV ' + parameters.sheenRoughnessMapUv : '',\n\n\t\t\tparameters.specularMapUv ? '#define SPECULARMAP_UV ' + parameters.specularMapUv : '',\n\t\t\tparameters.specularColorMapUv ? '#define SPECULAR_COLORMAP_UV ' + parameters.specularColorMapUv : '',\n\t\t\tparameters.specularIntensityMapUv ? '#define SPECULAR_INTENSITYMAP_UV ' + parameters.specularIntensityMapUv : '',\n\n\t\t\tparameters.transmissionMapUv ? '#define TRANSMISSIONMAP_UV ' + parameters.transmissionMapUv : '',\n\t\t\tparameters.thicknessMapUv ? '#define THICKNESSMAP_UV ' + parameters.thicknessMapUv : '',\n\n\t\t\t//\n\n\t\t\tparameters.vertexTangents && parameters.flatShading === false ? '#define USE_TANGENT' : '',\n\t\t\tparameters.vertexColors ? '#define USE_COLOR' : '',\n\t\t\tparameters.vertexAlphas ? '#define USE_COLOR_ALPHA' : '',\n\t\t\tparameters.vertexUv1s ? '#define USE_UV1' : '',\n\t\t\tparameters.vertexUv2s ? '#define USE_UV2' : '',\n\t\t\tparameters.vertexUv3s ? '#define USE_UV3' : '',\n\n\t\t\tparameters.pointsUvs ? '#define USE_POINTS_UV' : '',\n\n\t\t\tparameters.flatShading ? '#define FLAT_SHADED' : '',\n\n\t\t\tparameters.skinning ? '#define USE_SKINNING' : '',\n\n\t\t\tparameters.morphTargets ? '#define USE_MORPHTARGETS' : '',\n\t\t\tparameters.morphNormals && parameters.flatShading === false ? '#define USE_MORPHNORMALS' : '',\n\t\t\t( parameters.morphColors ) ? '#define USE_MORPHCOLORS' : '',\n\t\t\t( parameters.morphTargetsCount > 0 ) ? '#define MORPHTARGETS_TEXTURE_STRIDE ' + parameters.morphTextureStride : '',\n\t\t\t( parameters.morphTargetsCount > 0 ) ? '#define MORPHTARGETS_COUNT ' + parameters.morphTargetsCount : '',\n\t\t\tparameters.doubleSided ? '#define DOUBLE_SIDED' : '',\n\t\t\tparameters.flipSided ? '#define FLIP_SIDED' : '',\n\n\t\t\tparameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '',\n\t\t\tparameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '',\n\n\t\t\tparameters.sizeAttenuation ? '#define USE_SIZEATTENUATION' : '',\n\n\t\t\tparameters.numLightProbes > 0 ? '#define USE_LIGHT_PROBES' : '',\n\n\t\t\tparameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',\n\t\t\tparameters.reverseDepthBuffer ? '#define USE_REVERSEDEPTHBUF' : '',\n\n\t\t\t'uniform mat4 modelMatrix;',\n\t\t\t'uniform mat4 modelViewMatrix;',\n\t\t\t'uniform mat4 projectionMatrix;',\n\t\t\t'uniform mat4 viewMatrix;',\n\t\t\t'uniform mat3 normalMatrix;',\n\t\t\t'uniform vec3 cameraPosition;',\n\t\t\t'uniform bool isOrthographic;',\n\n\t\t\t'#ifdef USE_INSTANCING',\n\n\t\t\t'\tattribute mat4 instanceMatrix;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_INSTANCING_COLOR',\n\n\t\t\t'\tattribute vec3 instanceColor;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_INSTANCING_MORPH',\n\n\t\t\t'\tuniform sampler2D morphTexture;',\n\n\t\t\t'#endif',\n\n\t\t\t'attribute vec3 position;',\n\t\t\t'attribute vec3 normal;',\n\t\t\t'attribute vec2 uv;',\n\n\t\t\t'#ifdef USE_UV1',\n\n\t\t\t'\tattribute vec2 uv1;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_UV2',\n\n\t\t\t'\tattribute vec2 uv2;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_UV3',\n\n\t\t\t'\tattribute vec2 uv3;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_TANGENT',\n\n\t\t\t'\tattribute vec4 tangent;',\n\n\t\t\t'#endif',\n\n\t\t\t'#if defined( USE_COLOR_ALPHA )',\n\n\t\t\t'\tattribute vec4 color;',\n\n\t\t\t'#elif defined( USE_COLOR )',\n\n\t\t\t'\tattribute vec3 color;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_SKINNING',\n\n\t\t\t'\tattribute vec4 skinIndex;',\n\t\t\t'\tattribute vec4 skinWeight;',\n\n\t\t\t'#endif',\n\n\t\t\t'\\n'\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t\tprefixFragment = [\n\n\t\t\tgeneratePrecision( parameters ),\n\n\t\t\t'#define SHADER_TYPE ' + parameters.shaderType,\n\t\t\t'#define SHADER_NAME ' + parameters.shaderName,\n\n\t\t\tcustomDefines,\n\n\t\t\tparameters.useFog && parameters.fog ? '#define USE_FOG' : '',\n\t\t\tparameters.useFog && parameters.fogExp2 ? '#define FOG_EXP2' : '',\n\n\t\t\tparameters.alphaToCoverage ? '#define ALPHA_TO_COVERAGE' : '',\n\t\t\tparameters.map ? '#define USE_MAP' : '',\n\t\t\tparameters.matcap ? '#define USE_MATCAP' : '',\n\t\t\tparameters.envMap ? '#define USE_ENVMAP' : '',\n\t\t\tparameters.envMap ? '#define ' + envMapTypeDefine : '',\n\t\t\tparameters.envMap ? '#define ' + envMapModeDefine : '',\n\t\t\tparameters.envMap ? '#define ' + envMapBlendingDefine : '',\n\t\t\tenvMapCubeUVSize ? '#define CUBEUV_TEXEL_WIDTH ' + envMapCubeUVSize.texelWidth : '',\n\t\t\tenvMapCubeUVSize ? '#define CUBEUV_TEXEL_HEIGHT ' + envMapCubeUVSize.texelHeight : '',\n\t\t\tenvMapCubeUVSize ? '#define CUBEUV_MAX_MIP ' + envMapCubeUVSize.maxMip + '.0' : '',\n\t\t\tparameters.lightMap ? '#define USE_LIGHTMAP' : '',\n\t\t\tparameters.aoMap ? '#define USE_AOMAP' : '',\n\t\t\tparameters.bumpMap ? '#define USE_BUMPMAP' : '',\n\t\t\tparameters.normalMap ? '#define USE_NORMALMAP' : '',\n\t\t\tparameters.normalMapObjectSpace ? '#define USE_NORMALMAP_OBJECTSPACE' : '',\n\t\t\tparameters.normalMapTangentSpace ? '#define USE_NORMALMAP_TANGENTSPACE' : '',\n\t\t\tparameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '',\n\n\t\t\tparameters.anisotropy ? '#define USE_ANISOTROPY' : '',\n\t\t\tparameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '',\n\n\t\t\tparameters.clearcoat ? '#define USE_CLEARCOAT' : '',\n\t\t\tparameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '',\n\t\t\tparameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '',\n\t\t\tparameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '',\n\n\t\t\tparameters.dispersion ? '#define USE_DISPERSION' : '',\n\n\t\t\tparameters.iridescence ? '#define USE_IRIDESCENCE' : '',\n\t\t\tparameters.iridescenceMap ? '#define USE_IRIDESCENCEMAP' : '',\n\t\t\tparameters.iridescenceThicknessMap ? '#define USE_IRIDESCENCE_THICKNESSMAP' : '',\n\n\t\t\tparameters.specularMap ? '#define USE_SPECULARMAP' : '',\n\t\t\tparameters.specularColorMap ? '#define USE_SPECULAR_COLORMAP' : '',\n\t\t\tparameters.specularIntensityMap ? '#define USE_SPECULAR_INTENSITYMAP' : '',\n\n\t\t\tparameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '',\n\t\t\tparameters.metalnessMap ? '#define USE_METALNESSMAP' : '',\n\n\t\t\tparameters.alphaMap ? '#define USE_ALPHAMAP' : '',\n\t\t\tparameters.alphaTest ? '#define USE_ALPHATEST' : '',\n\t\t\tparameters.alphaHash ? '#define USE_ALPHAHASH' : '',\n\n\t\t\tparameters.sheen ? '#define USE_SHEEN' : '',\n\t\t\tparameters.sheenColorMap ? '#define USE_SHEEN_COLORMAP' : '',\n\t\t\tparameters.sheenRoughnessMap ? '#define USE_SHEEN_ROUGHNESSMAP' : '',\n\n\t\t\tparameters.transmission ? '#define USE_TRANSMISSION' : '',\n\t\t\tparameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '',\n\t\t\tparameters.thicknessMap ? '#define USE_THICKNESSMAP' : '',\n\n\t\t\tparameters.vertexTangents && parameters.flatShading === false ? '#define USE_TANGENT' : '',\n\t\t\tparameters.vertexColors || parameters.instancingColor || parameters.batchingColor ? '#define USE_COLOR' : '',\n\t\t\tparameters.vertexAlphas ? '#define USE_COLOR_ALPHA' : '',\n\t\t\tparameters.vertexUv1s ? '#define USE_UV1' : '',\n\t\t\tparameters.vertexUv2s ? '#define USE_UV2' : '',\n\t\t\tparameters.vertexUv3s ? '#define USE_UV3' : '',\n\n\t\t\tparameters.pointsUvs ? '#define USE_POINTS_UV' : '',\n\n\t\t\tparameters.gradientMap ? '#define USE_GRADIENTMAP' : '',\n\n\t\t\tparameters.flatShading ? '#define FLAT_SHADED' : '',\n\n\t\t\tparameters.doubleSided ? '#define DOUBLE_SIDED' : '',\n\t\t\tparameters.flipSided ? '#define FLIP_SIDED' : '',\n\n\t\t\tparameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '',\n\t\t\tparameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '',\n\n\t\t\tparameters.premultipliedAlpha ? '#define PREMULTIPLIED_ALPHA' : '',\n\n\t\t\tparameters.numLightProbes > 0 ? '#define USE_LIGHT_PROBES' : '',\n\n\t\t\tparameters.decodeVideoTexture ? '#define DECODE_VIDEO_TEXTURE' : '',\n\t\t\tparameters.decodeVideoTextureEmissive ? '#define DECODE_VIDEO_TEXTURE_EMISSIVE' : '',\n\n\t\t\tparameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',\n\t\t\tparameters.reverseDepthBuffer ? '#define USE_REVERSEDEPTHBUF' : '',\n\n\t\t\t'uniform mat4 viewMatrix;',\n\t\t\t'uniform vec3 cameraPosition;',\n\t\t\t'uniform bool isOrthographic;',\n\n\t\t\t( parameters.toneMapping !== NoToneMapping ) ? '#define TONE_MAPPING' : '',\n\t\t\t( parameters.toneMapping !== NoToneMapping ) ? ShaderChunk[ 'tonemapping_pars_fragment' ] : '', // this code is required here because it is used by the toneMapping() function defined below\n\t\t\t( parameters.toneMapping !== NoToneMapping ) ? getToneMappingFunction( 'toneMapping', parameters.toneMapping ) : '',\n\n\t\t\tparameters.dithering ? '#define DITHERING' : '',\n\t\t\tparameters.opaque ? '#define OPAQUE' : '',\n\n\t\t\tShaderChunk[ 'colorspace_pars_fragment' ], // this code is required here because it is used by the various encoding/decoding function defined below\n\t\t\tgetTexelEncodingFunction( 'linearToOutputTexel', parameters.outputColorSpace ),\n\t\t\tgetLuminanceFunction(),\n\n\t\t\tparameters.useDepthPacking ? '#define DEPTH_PACKING ' + parameters.depthPacking : '',\n\n\t\t\t'\\n'\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t}\n\n\tvertexShader = resolveIncludes( vertexShader );\n\tvertexShader = replaceLightNums( vertexShader, parameters );\n\tvertexShader = replaceClippingPlaneNums( vertexShader, parameters );\n\n\tfragmentShader = resolveIncludes( fragmentShader );\n\tfragmentShader = replaceLightNums( fragmentShader, parameters );\n\tfragmentShader = replaceClippingPlaneNums( fragmentShader, parameters );\n\n\tvertexShader = unrollLoops( vertexShader );\n\tfragmentShader = unrollLoops( fragmentShader );\n\n\tif ( parameters.isRawShaderMaterial !== true ) {\n\n\t\t// GLSL 3.0 conversion for built-in materials and ShaderMaterial\n\n\t\tversionString = '#version 300 es\\n';\n\n\t\tprefixVertex = [\n\t\t\tcustomVertexExtensions,\n\t\t\t'#define attribute in',\n\t\t\t'#define varying out',\n\t\t\t'#define texture2D texture'\n\t\t].join( '\\n' ) + '\\n' + prefixVertex;\n\n\t\tprefixFragment = [\n\t\t\t'#define varying in',\n\t\t\t( parameters.glslVersion === GLSL3 ) ? '' : 'layout(location = 0) out highp vec4 pc_fragColor;',\n\t\t\t( parameters.glslVersion === GLSL3 ) ? '' : '#define gl_FragColor pc_fragColor',\n\t\t\t'#define gl_FragDepthEXT gl_FragDepth',\n\t\t\t'#define texture2D texture',\n\t\t\t'#define textureCube texture',\n\t\t\t'#define texture2DProj textureProj',\n\t\t\t'#define texture2DLodEXT textureLod',\n\t\t\t'#define texture2DProjLodEXT textureProjLod',\n\t\t\t'#define textureCubeLodEXT textureLod',\n\t\t\t'#define texture2DGradEXT textureGrad',\n\t\t\t'#define texture2DProjGradEXT textureProjGrad',\n\t\t\t'#define textureCubeGradEXT textureGrad'\n\t\t].join( '\\n' ) + '\\n' + prefixFragment;\n\n\t}\n\n\tconst vertexGlsl = versionString + prefixVertex + vertexShader;\n\tconst fragmentGlsl = versionString + prefixFragment + fragmentShader;\n\n\t// console.log( '*VERTEX*', vertexGlsl );\n\t// console.log( '*FRAGMENT*', fragmentGlsl );\n\n\tconst glVertexShader = WebGLShader( gl, gl.VERTEX_SHADER, vertexGlsl );\n\tconst glFragmentShader = WebGLShader( gl, gl.FRAGMENT_SHADER, fragmentGlsl );\n\n\tgl.attachShader( program, glVertexShader );\n\tgl.attachShader( program, glFragmentShader );\n\n\t// Force a particular attribute to index 0.\n\n\tif ( parameters.index0AttributeName !== undefined ) {\n\n\t\tgl.bindAttribLocation( program, 0, parameters.index0AttributeName );\n\n\t} else if ( parameters.morphTargets === true ) {\n\n\t\t// programs with morphTargets displace position out of attribute 0\n\t\tgl.bindAttribLocation( program, 0, 'position' );\n\n\t}\n\n\tgl.linkProgram( program );\n\n\tfunction onFirstUse( self ) {\n\n\t\t// check for link errors\n\t\tif ( renderer.debug.checkShaderErrors ) {\n\n\t\t\tconst programLog = gl.getProgramInfoLog( program ).trim();\n\t\t\tconst vertexLog = gl.getShaderInfoLog( glVertexShader ).trim();\n\t\t\tconst fragmentLog = gl.getShaderInfoLog( glFragmentShader ).trim();\n\n\t\t\tlet runnable = true;\n\t\t\tlet haveDiagnostics = true;\n\n\t\t\tif ( gl.getProgramParameter( program, gl.LINK_STATUS ) === false ) {\n\n\t\t\t\trunnable = false;\n\n\t\t\t\tif ( typeof renderer.debug.onShaderError === 'function' ) {\n\n\t\t\t\t\trenderer.debug.onShaderError( gl, program, glVertexShader, glFragmentShader );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// default error reporting\n\n\t\t\t\t\tconst vertexErrors = getShaderErrors( gl, glVertexShader, 'vertex' );\n\t\t\t\t\tconst fragmentErrors = getShaderErrors( gl, glFragmentShader, 'fragment' );\n\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t'THREE.WebGLProgram: Shader Error ' + gl.getError() + ' - ' +\n\t\t\t\t\t\t'VALIDATE_STATUS ' + gl.getProgramParameter( program, gl.VALIDATE_STATUS ) + '\\n\\n' +\n\t\t\t\t\t\t'Material Name: ' + self.name + '\\n' +\n\t\t\t\t\t\t'Material Type: ' + self.type + '\\n\\n' +\n\t\t\t\t\t\t'Program Info Log: ' + programLog + '\\n' +\n\t\t\t\t\t\tvertexErrors + '\\n' +\n\t\t\t\t\t\tfragmentErrors\n\t\t\t\t\t);\n\n\t\t\t\t}\n\n\t\t\t} else if ( programLog !== '' ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLProgram: Program Info Log:', programLog );\n\n\t\t\t} else if ( vertexLog === '' || fragmentLog === '' ) {\n\n\t\t\t\thaveDiagnostics = false;\n\n\t\t\t}\n\n\t\t\tif ( haveDiagnostics ) {\n\n\t\t\t\tself.diagnostics = {\n\n\t\t\t\t\trunnable: runnable,\n\n\t\t\t\t\tprogramLog: programLog,\n\n\t\t\t\t\tvertexShader: {\n\n\t\t\t\t\t\tlog: vertexLog,\n\t\t\t\t\t\tprefix: prefixVertex\n\n\t\t\t\t\t},\n\n\t\t\t\t\tfragmentShader: {\n\n\t\t\t\t\t\tlog: fragmentLog,\n\t\t\t\t\t\tprefix: prefixFragment\n\n\t\t\t\t\t}\n\n\t\t\t\t};\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Clean up\n\n\t\t// Crashes in iOS9 and iOS10. #18402\n\t\t// gl.detachShader( program, glVertexShader );\n\t\t// gl.detachShader( program, glFragmentShader );\n\n\t\tgl.deleteShader( glVertexShader );\n\t\tgl.deleteShader( glFragmentShader );\n\n\t\tcachedUniforms = new WebGLUniforms( gl, program );\n\t\tcachedAttributes = fetchAttributeLocations( gl, program );\n\n\t}\n\n\t// set up caching for uniform locations\n\n\tlet cachedUniforms;\n\n\tthis.getUniforms = function () {\n\n\t\tif ( cachedUniforms === undefined ) {\n\n\t\t\t// Populates cachedUniforms and cachedAttributes\n\t\t\tonFirstUse( this );\n\n\t\t}\n\n\t\treturn cachedUniforms;\n\n\t};\n\n\t// set up caching for attribute locations\n\n\tlet cachedAttributes;\n\n\tthis.getAttributes = function () {\n\n\t\tif ( cachedAttributes === undefined ) {\n\n\t\t\t// Populates cachedAttributes and cachedUniforms\n\t\t\tonFirstUse( this );\n\n\t\t}\n\n\t\treturn cachedAttributes;\n\n\t};\n\n\t// indicate when the program is ready to be used. if the KHR_parallel_shader_compile extension isn't supported,\n\t// flag the program as ready immediately. It may cause a stall when it's first used.\n\n\tlet programReady = ( parameters.rendererExtensionParallelShaderCompile === false );\n\n\tthis.isReady = function () {\n\n\t\tif ( programReady === false ) {\n\n\t\t\tprogramReady = gl.getProgramParameter( program, COMPLETION_STATUS_KHR );\n\n\t\t}\n\n\t\treturn programReady;\n\n\t};\n\n\t// free resource\n\n\tthis.destroy = function () {\n\n\t\tbindingStates.releaseStatesOfProgram( this );\n\n\t\tgl.deleteProgram( program );\n\t\tthis.program = undefined;\n\n\t};\n\n\t//\n\n\tthis.type = parameters.shaderType;\n\tthis.name = parameters.shaderName;\n\tthis.id = programIdCount ++;\n\tthis.cacheKey = cacheKey;\n\tthis.usedTimes = 1;\n\tthis.program = program;\n\tthis.vertexShader = glVertexShader;\n\tthis.fragmentShader = glFragmentShader;\n\n\treturn this;\n\n}\n\nlet _id = 0;\n\nclass WebGLShaderCache {\n\n\tconstructor() {\n\n\t\tthis.shaderCache = new Map();\n\t\tthis.materialCache = new Map();\n\n\t}\n\n\tupdate( material ) {\n\n\t\tconst vertexShader = material.vertexShader;\n\t\tconst fragmentShader = material.fragmentShader;\n\n\t\tconst vertexShaderStage = this._getShaderStage( vertexShader );\n\t\tconst fragmentShaderStage = this._getShaderStage( fragmentShader );\n\n\t\tconst materialShaders = this._getShaderCacheForMaterial( material );\n\n\t\tif ( materialShaders.has( vertexShaderStage ) === false ) {\n\n\t\t\tmaterialShaders.add( vertexShaderStage );\n\t\t\tvertexShaderStage.usedTimes ++;\n\n\t\t}\n\n\t\tif ( materialShaders.has( fragmentShaderStage ) === false ) {\n\n\t\t\tmaterialShaders.add( fragmentShaderStage );\n\t\t\tfragmentShaderStage.usedTimes ++;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremove( material ) {\n\n\t\tconst materialShaders = this.materialCache.get( material );\n\n\t\tfor ( const shaderStage of materialShaders ) {\n\n\t\t\tshaderStage.usedTimes --;\n\n\t\t\tif ( shaderStage.usedTimes === 0 ) this.shaderCache.delete( shaderStage.code );\n\n\t\t}\n\n\t\tthis.materialCache.delete( material );\n\n\t\treturn this;\n\n\t}\n\n\tgetVertexShaderID( material ) {\n\n\t\treturn this._getShaderStage( material.vertexShader ).id;\n\n\t}\n\n\tgetFragmentShaderID( material ) {\n\n\t\treturn this._getShaderStage( material.fragmentShader ).id;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shaderCache.clear();\n\t\tthis.materialCache.clear();\n\n\t}\n\n\t_getShaderCacheForMaterial( material ) {\n\n\t\tconst cache = this.materialCache;\n\t\tlet set = cache.get( material );\n\n\t\tif ( set === undefined ) {\n\n\t\t\tset = new Set();\n\t\t\tcache.set( material, set );\n\n\t\t}\n\n\t\treturn set;\n\n\t}\n\n\t_getShaderStage( code ) {\n\n\t\tconst cache = this.shaderCache;\n\t\tlet stage = cache.get( code );\n\n\t\tif ( stage === undefined ) {\n\n\t\t\tstage = new WebGLShaderStage( code );\n\t\t\tcache.set( code, stage );\n\n\t\t}\n\n\t\treturn stage;\n\n\t}\n\n}\n\nclass WebGLShaderStage {\n\n\tconstructor( code ) {\n\n\t\tthis.id = _id ++;\n\n\t\tthis.code = code;\n\t\tthis.usedTimes = 0;\n\n\t}\n\n}\n\nfunction WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping ) {\n\n\tconst _programLayers = new Layers();\n\tconst _customShaders = new WebGLShaderCache();\n\tconst _activeChannels = new Set();\n\tconst programs = [];\n\n\tconst logarithmicDepthBuffer = capabilities.logarithmicDepthBuffer;\n\tconst SUPPORTS_VERTEX_TEXTURES = capabilities.vertexTextures;\n\n\tlet precision = capabilities.precision;\n\n\tconst shaderIDs = {\n\t\tMeshDepthMaterial: 'depth',\n\t\tMeshDistanceMaterial: 'distanceRGBA',\n\t\tMeshNormalMaterial: 'normal',\n\t\tMeshBasicMaterial: 'basic',\n\t\tMeshLambertMaterial: 'lambert',\n\t\tMeshPhongMaterial: 'phong',\n\t\tMeshToonMaterial: 'toon',\n\t\tMeshStandardMaterial: 'physical',\n\t\tMeshPhysicalMaterial: 'physical',\n\t\tMeshMatcapMaterial: 'matcap',\n\t\tLineBasicMaterial: 'basic',\n\t\tLineDashedMaterial: 'dashed',\n\t\tPointsMaterial: 'points',\n\t\tShadowMaterial: 'shadow',\n\t\tSpriteMaterial: 'sprite'\n\t};\n\n\tfunction getChannel( value ) {\n\n\t\t_activeChannels.add( value );\n\n\t\tif ( value === 0 ) return 'uv';\n\n\t\treturn `uv${ value }`;\n\n\t}\n\n\tfunction getParameters( material, lights, shadows, scene, object ) {\n\n\t\tconst fog = scene.fog;\n\t\tconst geometry = object.geometry;\n\t\tconst environment = material.isMeshStandardMaterial ? scene.environment : null;\n\n\t\tconst envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || environment );\n\t\tconst envMapCubeUVHeight = ( !! envMap ) && ( envMap.mapping === CubeUVReflectionMapping ) ? envMap.image.height : null;\n\n\t\tconst shaderID = shaderIDs[ material.type ];\n\n\t\t// heuristics to create shader parameters according to lights in the scene\n\t\t// (not to blow over maxLights budget)\n\n\t\tif ( material.precision !== null ) {\n\n\t\t\tprecision = capabilities.getMaxPrecision( material.precision );\n\n\t\t\tif ( precision !== material.precision ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLProgram.getParameters:', material.precision, 'not supported, using', precision, 'instead.' );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tconst morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n\t\tconst morphTargetsCount = ( morphAttribute !== undefined ) ? morphAttribute.length : 0;\n\n\t\tlet morphTextureStride = 0;\n\n\t\tif ( geometry.morphAttributes.position !== undefined ) morphTextureStride = 1;\n\t\tif ( geometry.morphAttributes.normal !== undefined ) morphTextureStride = 2;\n\t\tif ( geometry.morphAttributes.color !== undefined ) morphTextureStride = 3;\n\n\t\t//\n\n\t\tlet vertexShader, fragmentShader;\n\t\tlet customVertexShaderID, customFragmentShaderID;\n\n\t\tif ( shaderID ) {\n\n\t\t\tconst shader = ShaderLib[ shaderID ];\n\n\t\t\tvertexShader = shader.vertexShader;\n\t\t\tfragmentShader = shader.fragmentShader;\n\n\t\t} else {\n\n\t\t\tvertexShader = material.vertexShader;\n\t\t\tfragmentShader = material.fragmentShader;\n\n\t\t\t_customShaders.update( material );\n\n\t\t\tcustomVertexShaderID = _customShaders.getVertexShaderID( material );\n\t\t\tcustomFragmentShaderID = _customShaders.getFragmentShaderID( material );\n\n\t\t}\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\t\tconst reverseDepthBuffer = renderer.state.buffers.depth.getReversed();\n\n\t\tconst IS_INSTANCEDMESH = object.isInstancedMesh === true;\n\t\tconst IS_BATCHEDMESH = object.isBatchedMesh === true;\n\n\t\tconst HAS_MAP = !! material.map;\n\t\tconst HAS_MATCAP = !! material.matcap;\n\t\tconst HAS_ENVMAP = !! envMap;\n\t\tconst HAS_AOMAP = !! material.aoMap;\n\t\tconst HAS_LIGHTMAP = !! material.lightMap;\n\t\tconst HAS_BUMPMAP = !! material.bumpMap;\n\t\tconst HAS_NORMALMAP = !! material.normalMap;\n\t\tconst HAS_DISPLACEMENTMAP = !! material.displacementMap;\n\t\tconst HAS_EMISSIVEMAP = !! material.emissiveMap;\n\n\t\tconst HAS_METALNESSMAP = !! material.metalnessMap;\n\t\tconst HAS_ROUGHNESSMAP = !! material.roughnessMap;\n\n\t\tconst HAS_ANISOTROPY = material.anisotropy > 0;\n\t\tconst HAS_CLEARCOAT = material.clearcoat > 0;\n\t\tconst HAS_DISPERSION = material.dispersion > 0;\n\t\tconst HAS_IRIDESCENCE = material.iridescence > 0;\n\t\tconst HAS_SHEEN = material.sheen > 0;\n\t\tconst HAS_TRANSMISSION = material.transmission > 0;\n\n\t\tconst HAS_ANISOTROPYMAP = HAS_ANISOTROPY && !! material.anisotropyMap;\n\n\t\tconst HAS_CLEARCOATMAP = HAS_CLEARCOAT && !! material.clearcoatMap;\n\t\tconst HAS_CLEARCOAT_NORMALMAP = HAS_CLEARCOAT && !! material.clearcoatNormalMap;\n\t\tconst HAS_CLEARCOAT_ROUGHNESSMAP = HAS_CLEARCOAT && !! material.clearcoatRoughnessMap;\n\n\t\tconst HAS_IRIDESCENCEMAP = HAS_IRIDESCENCE && !! material.iridescenceMap;\n\t\tconst HAS_IRIDESCENCE_THICKNESSMAP = HAS_IRIDESCENCE && !! material.iridescenceThicknessMap;\n\n\t\tconst HAS_SHEEN_COLORMAP = HAS_SHEEN && !! material.sheenColorMap;\n\t\tconst HAS_SHEEN_ROUGHNESSMAP = HAS_SHEEN && !! material.sheenRoughnessMap;\n\n\t\tconst HAS_SPECULARMAP = !! material.specularMap;\n\t\tconst HAS_SPECULAR_COLORMAP = !! material.specularColorMap;\n\t\tconst HAS_SPECULAR_INTENSITYMAP = !! material.specularIntensityMap;\n\n\t\tconst HAS_TRANSMISSIONMAP = HAS_TRANSMISSION && !! material.transmissionMap;\n\t\tconst HAS_THICKNESSMAP = HAS_TRANSMISSION && !! material.thicknessMap;\n\n\t\tconst HAS_GRADIENTMAP = !! material.gradientMap;\n\n\t\tconst HAS_ALPHAMAP = !! material.alphaMap;\n\n\t\tconst HAS_ALPHATEST = material.alphaTest > 0;\n\n\t\tconst HAS_ALPHAHASH = !! material.alphaHash;\n\n\t\tconst HAS_EXTENSIONS = !! material.extensions;\n\n\t\tlet toneMapping = NoToneMapping;\n\n\t\tif ( material.toneMapped ) {\n\n\t\t\tif ( currentRenderTarget === null || currentRenderTarget.isXRRenderTarget === true ) {\n\n\t\t\t\ttoneMapping = renderer.toneMapping;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst parameters = {\n\n\t\t\tshaderID: shaderID,\n\t\t\tshaderType: material.type,\n\t\t\tshaderName: material.name,\n\n\t\t\tvertexShader: vertexShader,\n\t\t\tfragmentShader: fragmentShader,\n\t\t\tdefines: material.defines,\n\n\t\t\tcustomVertexShaderID: customVertexShaderID,\n\t\t\tcustomFragmentShaderID: customFragmentShaderID,\n\n\t\t\tisRawShaderMaterial: material.isRawShaderMaterial === true,\n\t\t\tglslVersion: material.glslVersion,\n\n\t\t\tprecision: precision,\n\n\t\t\tbatching: IS_BATCHEDMESH,\n\t\t\tbatchingColor: IS_BATCHEDMESH && object._colorsTexture !== null,\n\t\t\tinstancing: IS_INSTANCEDMESH,\n\t\t\tinstancingColor: IS_INSTANCEDMESH && object.instanceColor !== null,\n\t\t\tinstancingMorph: IS_INSTANCEDMESH && object.morphTexture !== null,\n\n\t\t\tsupportsVertexTextures: SUPPORTS_VERTEX_TEXTURES,\n\t\t\toutputColorSpace: ( currentRenderTarget === null ) ? renderer.outputColorSpace : ( currentRenderTarget.isXRRenderTarget === true ? currentRenderTarget.texture.colorSpace : LinearSRGBColorSpace ),\n\t\t\talphaToCoverage: !! material.alphaToCoverage,\n\n\t\t\tmap: HAS_MAP,\n\t\t\tmatcap: HAS_MATCAP,\n\t\t\tenvMap: HAS_ENVMAP,\n\t\t\tenvMapMode: HAS_ENVMAP && envMap.mapping,\n\t\t\tenvMapCubeUVHeight: envMapCubeUVHeight,\n\t\t\taoMap: HAS_AOMAP,\n\t\t\tlightMap: HAS_LIGHTMAP,\n\t\t\tbumpMap: HAS_BUMPMAP,\n\t\t\tnormalMap: HAS_NORMALMAP,\n\t\t\tdisplacementMap: SUPPORTS_VERTEX_TEXTURES && HAS_DISPLACEMENTMAP,\n\t\t\temissiveMap: HAS_EMISSIVEMAP,\n\n\t\t\tnormalMapObjectSpace: HAS_NORMALMAP && material.normalMapType === ObjectSpaceNormalMap,\n\t\t\tnormalMapTangentSpace: HAS_NORMALMAP && material.normalMapType === TangentSpaceNormalMap,\n\n\t\t\tmetalnessMap: HAS_METALNESSMAP,\n\t\t\troughnessMap: HAS_ROUGHNESSMAP,\n\n\t\t\tanisotropy: HAS_ANISOTROPY,\n\t\t\tanisotropyMap: HAS_ANISOTROPYMAP,\n\n\t\t\tclearcoat: HAS_CLEARCOAT,\n\t\t\tclearcoatMap: HAS_CLEARCOATMAP,\n\t\t\tclearcoatNormalMap: HAS_CLEARCOAT_NORMALMAP,\n\t\t\tclearcoatRoughnessMap: HAS_CLEARCOAT_ROUGHNESSMAP,\n\n\t\t\tdispersion: HAS_DISPERSION,\n\n\t\t\tiridescence: HAS_IRIDESCENCE,\n\t\t\tiridescenceMap: HAS_IRIDESCENCEMAP,\n\t\t\tiridescenceThicknessMap: HAS_IRIDESCENCE_THICKNESSMAP,\n\n\t\t\tsheen: HAS_SHEEN,\n\t\t\tsheenColorMap: HAS_SHEEN_COLORMAP,\n\t\t\tsheenRoughnessMap: HAS_SHEEN_ROUGHNESSMAP,\n\n\t\t\tspecularMap: HAS_SPECULARMAP,\n\t\t\tspecularColorMap: HAS_SPECULAR_COLORMAP,\n\t\t\tspecularIntensityMap: HAS_SPECULAR_INTENSITYMAP,\n\n\t\t\ttransmission: HAS_TRANSMISSION,\n\t\t\ttransmissionMap: HAS_TRANSMISSIONMAP,\n\t\t\tthicknessMap: HAS_THICKNESSMAP,\n\n\t\t\tgradientMap: HAS_GRADIENTMAP,\n\n\t\t\topaque: material.transparent === false && material.blending === NormalBlending && material.alphaToCoverage === false,\n\n\t\t\talphaMap: HAS_ALPHAMAP,\n\t\t\talphaTest: HAS_ALPHATEST,\n\t\t\talphaHash: HAS_ALPHAHASH,\n\n\t\t\tcombine: material.combine,\n\n\t\t\t//\n\n\t\t\tmapUv: HAS_MAP && getChannel( material.map.channel ),\n\t\t\taoMapUv: HAS_AOMAP && getChannel( material.aoMap.channel ),\n\t\t\tlightMapUv: HAS_LIGHTMAP && getChannel( material.lightMap.channel ),\n\t\t\tbumpMapUv: HAS_BUMPMAP && getChannel( material.bumpMap.channel ),\n\t\t\tnormalMapUv: HAS_NORMALMAP && getChannel( material.normalMap.channel ),\n\t\t\tdisplacementMapUv: HAS_DISPLACEMENTMAP && getChannel( material.displacementMap.channel ),\n\t\t\temissiveMapUv: HAS_EMISSIVEMAP && getChannel( material.emissiveMap.channel ),\n\n\t\t\tmetalnessMapUv: HAS_METALNESSMAP && getChannel( material.metalnessMap.channel ),\n\t\t\troughnessMapUv: HAS_ROUGHNESSMAP && getChannel( material.roughnessMap.channel ),\n\n\t\t\tanisotropyMapUv: HAS_ANISOTROPYMAP && getChannel( material.anisotropyMap.channel ),\n\n\t\t\tclearcoatMapUv: HAS_CLEARCOATMAP && getChannel( material.clearcoatMap.channel ),\n\t\t\tclearcoatNormalMapUv: HAS_CLEARCOAT_NORMALMAP && getChannel( material.clearcoatNormalMap.channel ),\n\t\t\tclearcoatRoughnessMapUv: HAS_CLEARCOAT_ROUGHNESSMAP && getChannel( material.clearcoatRoughnessMap.channel ),\n\n\t\t\tiridescenceMapUv: HAS_IRIDESCENCEMAP && getChannel( material.iridescenceMap.channel ),\n\t\t\tiridescenceThicknessMapUv: HAS_IRIDESCENCE_THICKNESSMAP && getChannel( material.iridescenceThicknessMap.channel ),\n\n\t\t\tsheenColorMapUv: HAS_SHEEN_COLORMAP && getChannel( material.sheenColorMap.channel ),\n\t\t\tsheenRoughnessMapUv: HAS_SHEEN_ROUGHNESSMAP && getChannel( material.sheenRoughnessMap.channel ),\n\n\t\t\tspecularMapUv: HAS_SPECULARMAP && getChannel( material.specularMap.channel ),\n\t\t\tspecularColorMapUv: HAS_SPECULAR_COLORMAP && getChannel( material.specularColorMap.channel ),\n\t\t\tspecularIntensityMapUv: HAS_SPECULAR_INTENSITYMAP && getChannel( material.specularIntensityMap.channel ),\n\n\t\t\ttransmissionMapUv: HAS_TRANSMISSIONMAP && getChannel( material.transmissionMap.channel ),\n\t\t\tthicknessMapUv: HAS_THICKNESSMAP && getChannel( material.thicknessMap.channel ),\n\n\t\t\talphaMapUv: HAS_ALPHAMAP && getChannel( material.alphaMap.channel ),\n\n\t\t\t//\n\n\t\t\tvertexTangents: !! geometry.attributes.tangent && ( HAS_NORMALMAP || HAS_ANISOTROPY ),\n\t\t\tvertexColors: material.vertexColors,\n\t\t\tvertexAlphas: material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4,\n\n\t\t\tpointsUvs: object.isPoints === true && !! geometry.attributes.uv && ( HAS_MAP || HAS_ALPHAMAP ),\n\n\t\t\tfog: !! fog,\n\t\t\tuseFog: material.fog === true,\n\t\t\tfogExp2: ( !! fog && fog.isFogExp2 ),\n\n\t\t\tflatShading: material.flatShading === true,\n\n\t\t\tsizeAttenuation: material.sizeAttenuation === true,\n\t\t\tlogarithmicDepthBuffer: logarithmicDepthBuffer,\n\t\t\treverseDepthBuffer: reverseDepthBuffer,\n\n\t\t\tskinning: object.isSkinnedMesh === true,\n\n\t\t\tmorphTargets: geometry.morphAttributes.position !== undefined,\n\t\t\tmorphNormals: geometry.morphAttributes.normal !== undefined,\n\t\t\tmorphColors: geometry.morphAttributes.color !== undefined,\n\t\t\tmorphTargetsCount: morphTargetsCount,\n\t\t\tmorphTextureStride: morphTextureStride,\n\n\t\t\tnumDirLights: lights.directional.length,\n\t\t\tnumPointLights: lights.point.length,\n\t\t\tnumSpotLights: lights.spot.length,\n\t\t\tnumSpotLightMaps: lights.spotLightMap.length,\n\t\t\tnumRectAreaLights: lights.rectArea.length,\n\t\t\tnumHemiLights: lights.hemi.length,\n\n\t\t\tnumDirLightShadows: lights.directionalShadowMap.length,\n\t\t\tnumPointLightShadows: lights.pointShadowMap.length,\n\t\t\tnumSpotLightShadows: lights.spotShadowMap.length,\n\t\t\tnumSpotLightShadowsWithMaps: lights.numSpotLightShadowsWithMaps,\n\n\t\t\tnumLightProbes: lights.numLightProbes,\n\n\t\t\tnumClippingPlanes: clipping.numPlanes,\n\t\t\tnumClipIntersection: clipping.numIntersection,\n\n\t\t\tdithering: material.dithering,\n\n\t\t\tshadowMapEnabled: renderer.shadowMap.enabled && shadows.length > 0,\n\t\t\tshadowMapType: renderer.shadowMap.type,\n\n\t\t\ttoneMapping: toneMapping,\n\n\t\t\tdecodeVideoTexture: HAS_MAP && ( material.map.isVideoTexture === true ) && ( ColorManagement.getTransfer( material.map.colorSpace ) === SRGBTransfer ),\n\t\t\tdecodeVideoTextureEmissive: HAS_EMISSIVEMAP && ( material.emissiveMap.isVideoTexture === true ) && ( ColorManagement.getTransfer( material.emissiveMap.colorSpace ) === SRGBTransfer ),\n\n\t\t\tpremultipliedAlpha: material.premultipliedAlpha,\n\n\t\t\tdoubleSided: material.side === DoubleSide,\n\t\t\tflipSided: material.side === BackSide,\n\n\t\t\tuseDepthPacking: material.depthPacking >= 0,\n\t\t\tdepthPacking: material.depthPacking || 0,\n\n\t\t\tindex0AttributeName: material.index0AttributeName,\n\n\t\t\textensionClipCullDistance: HAS_EXTENSIONS && material.extensions.clipCullDistance === true && extensions.has( 'WEBGL_clip_cull_distance' ),\n\t\t\textensionMultiDraw: ( HAS_EXTENSIONS && material.extensions.multiDraw === true || IS_BATCHEDMESH ) && extensions.has( 'WEBGL_multi_draw' ),\n\n\t\t\trendererExtensionParallelShaderCompile: extensions.has( 'KHR_parallel_shader_compile' ),\n\n\t\t\tcustomProgramCacheKey: material.customProgramCacheKey()\n\n\t\t};\n\n\t\t// the usage of getChannel() determines the active texture channels for this shader\n\n\t\tparameters.vertexUv1s = _activeChannels.has( 1 );\n\t\tparameters.vertexUv2s = _activeChannels.has( 2 );\n\t\tparameters.vertexUv3s = _activeChannels.has( 3 );\n\n\t\t_activeChannels.clear();\n\n\t\treturn parameters;\n\n\t}\n\n\tfunction getProgramCacheKey( parameters ) {\n\n\t\tconst array = [];\n\n\t\tif ( parameters.shaderID ) {\n\n\t\t\tarray.push( parameters.shaderID );\n\n\t\t} else {\n\n\t\t\tarray.push( parameters.customVertexShaderID );\n\t\t\tarray.push( parameters.customFragmentShaderID );\n\n\t\t}\n\n\t\tif ( parameters.defines !== undefined ) {\n\n\t\t\tfor ( const name in parameters.defines ) {\n\n\t\t\t\tarray.push( name );\n\t\t\t\tarray.push( parameters.defines[ name ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( parameters.isRawShaderMaterial === false ) {\n\n\t\t\tgetProgramCacheKeyParameters( array, parameters );\n\t\t\tgetProgramCacheKeyBooleans( array, parameters );\n\t\t\tarray.push( renderer.outputColorSpace );\n\n\t\t}\n\n\t\tarray.push( parameters.customProgramCacheKey );\n\n\t\treturn array.join();\n\n\t}\n\n\tfunction getProgramCacheKeyParameters( array, parameters ) {\n\n\t\tarray.push( parameters.precision );\n\t\tarray.push( parameters.outputColorSpace );\n\t\tarray.push( parameters.envMapMode );\n\t\tarray.push( parameters.envMapCubeUVHeight );\n\t\tarray.push( parameters.mapUv );\n\t\tarray.push( parameters.alphaMapUv );\n\t\tarray.push( parameters.lightMapUv );\n\t\tarray.push( parameters.aoMapUv );\n\t\tarray.push( parameters.bumpMapUv );\n\t\tarray.push( parameters.normalMapUv );\n\t\tarray.push( parameters.displacementMapUv );\n\t\tarray.push( parameters.emissiveMapUv );\n\t\tarray.push( parameters.metalnessMapUv );\n\t\tarray.push( parameters.roughnessMapUv );\n\t\tarray.push( parameters.anisotropyMapUv );\n\t\tarray.push( parameters.clearcoatMapUv );\n\t\tarray.push( parameters.clearcoatNormalMapUv );\n\t\tarray.push( parameters.clearcoatRoughnessMapUv );\n\t\tarray.push( parameters.iridescenceMapUv );\n\t\tarray.push( parameters.iridescenceThicknessMapUv );\n\t\tarray.push( parameters.sheenColorMapUv );\n\t\tarray.push( parameters.sheenRoughnessMapUv );\n\t\tarray.push( parameters.specularMapUv );\n\t\tarray.push( parameters.specularColorMapUv );\n\t\tarray.push( parameters.specularIntensityMapUv );\n\t\tarray.push( parameters.transmissionMapUv );\n\t\tarray.push( parameters.thicknessMapUv );\n\t\tarray.push( parameters.combine );\n\t\tarray.push( parameters.fogExp2 );\n\t\tarray.push( parameters.sizeAttenuation );\n\t\tarray.push( parameters.morphTargetsCount );\n\t\tarray.push( parameters.morphAttributeCount );\n\t\tarray.push( parameters.numDirLights );\n\t\tarray.push( parameters.numPointLights );\n\t\tarray.push( parameters.numSpotLights );\n\t\tarray.push( parameters.numSpotLightMaps );\n\t\tarray.push( parameters.numHemiLights );\n\t\tarray.push( parameters.numRectAreaLights );\n\t\tarray.push( parameters.numDirLightShadows );\n\t\tarray.push( parameters.numPointLightShadows );\n\t\tarray.push( parameters.numSpotLightShadows );\n\t\tarray.push( parameters.numSpotLightShadowsWithMaps );\n\t\tarray.push( parameters.numLightProbes );\n\t\tarray.push( parameters.shadowMapType );\n\t\tarray.push( parameters.toneMapping );\n\t\tarray.push( parameters.numClippingPlanes );\n\t\tarray.push( parameters.numClipIntersection );\n\t\tarray.push( parameters.depthPacking );\n\n\t}\n\n\tfunction getProgramCacheKeyBooleans( array, parameters ) {\n\n\t\t_programLayers.disableAll();\n\n\t\tif ( parameters.supportsVertexTextures )\n\t\t\t_programLayers.enable( 0 );\n\t\tif ( parameters.instancing )\n\t\t\t_programLayers.enable( 1 );\n\t\tif ( parameters.instancingColor )\n\t\t\t_programLayers.enable( 2 );\n\t\tif ( parameters.instancingMorph )\n\t\t\t_programLayers.enable( 3 );\n\t\tif ( parameters.matcap )\n\t\t\t_programLayers.enable( 4 );\n\t\tif ( parameters.envMap )\n\t\t\t_programLayers.enable( 5 );\n\t\tif ( parameters.normalMapObjectSpace )\n\t\t\t_programLayers.enable( 6 );\n\t\tif ( parameters.normalMapTangentSpace )\n\t\t\t_programLayers.enable( 7 );\n\t\tif ( parameters.clearcoat )\n\t\t\t_programLayers.enable( 8 );\n\t\tif ( parameters.iridescence )\n\t\t\t_programLayers.enable( 9 );\n\t\tif ( parameters.alphaTest )\n\t\t\t_programLayers.enable( 10 );\n\t\tif ( parameters.vertexColors )\n\t\t\t_programLayers.enable( 11 );\n\t\tif ( parameters.vertexAlphas )\n\t\t\t_programLayers.enable( 12 );\n\t\tif ( parameters.vertexUv1s )\n\t\t\t_programLayers.enable( 13 );\n\t\tif ( parameters.vertexUv2s )\n\t\t\t_programLayers.enable( 14 );\n\t\tif ( parameters.vertexUv3s )\n\t\t\t_programLayers.enable( 15 );\n\t\tif ( parameters.vertexTangents )\n\t\t\t_programLayers.enable( 16 );\n\t\tif ( parameters.anisotropy )\n\t\t\t_programLayers.enable( 17 );\n\t\tif ( parameters.alphaHash )\n\t\t\t_programLayers.enable( 18 );\n\t\tif ( parameters.batching )\n\t\t\t_programLayers.enable( 19 );\n\t\tif ( parameters.dispersion )\n\t\t\t_programLayers.enable( 20 );\n\t\tif ( parameters.batchingColor )\n\t\t\t_programLayers.enable( 21 );\n\n\t\tarray.push( _programLayers.mask );\n\t\t_programLayers.disableAll();\n\n\t\tif ( parameters.fog )\n\t\t\t_programLayers.enable( 0 );\n\t\tif ( parameters.useFog )\n\t\t\t_programLayers.enable( 1 );\n\t\tif ( parameters.flatShading )\n\t\t\t_programLayers.enable( 2 );\n\t\tif ( parameters.logarithmicDepthBuffer )\n\t\t\t_programLayers.enable( 3 );\n\t\tif ( parameters.reverseDepthBuffer )\n\t\t\t_programLayers.enable( 4 );\n\t\tif ( parameters.skinning )\n\t\t\t_programLayers.enable( 5 );\n\t\tif ( parameters.morphTargets )\n\t\t\t_programLayers.enable( 6 );\n\t\tif ( parameters.morphNormals )\n\t\t\t_programLayers.enable( 7 );\n\t\tif ( parameters.morphColors )\n\t\t\t_programLayers.enable( 8 );\n\t\tif ( parameters.premultipliedAlpha )\n\t\t\t_programLayers.enable( 9 );\n\t\tif ( parameters.shadowMapEnabled )\n\t\t\t_programLayers.enable( 10 );\n\t\tif ( parameters.doubleSided )\n\t\t\t_programLayers.enable( 11 );\n\t\tif ( parameters.flipSided )\n\t\t\t_programLayers.enable( 12 );\n\t\tif ( parameters.useDepthPacking )\n\t\t\t_programLayers.enable( 13 );\n\t\tif ( parameters.dithering )\n\t\t\t_programLayers.enable( 14 );\n\t\tif ( parameters.transmission )\n\t\t\t_programLayers.enable( 15 );\n\t\tif ( parameters.sheen )\n\t\t\t_programLayers.enable( 16 );\n\t\tif ( parameters.opaque )\n\t\t\t_programLayers.enable( 17 );\n\t\tif ( parameters.pointsUvs )\n\t\t\t_programLayers.enable( 18 );\n\t\tif ( parameters.decodeVideoTexture )\n\t\t\t_programLayers.enable( 19 );\n\t\tif ( parameters.decodeVideoTextureEmissive )\n\t\t\t_programLayers.enable( 20 );\n\t\tif ( parameters.alphaToCoverage )\n\t\t\t_programLayers.enable( 21 );\n\n\t\tarray.push( _programLayers.mask );\n\n\t}\n\n\tfunction getUniforms( material ) {\n\n\t\tconst shaderID = shaderIDs[ material.type ];\n\t\tlet uniforms;\n\n\t\tif ( shaderID ) {\n\n\t\t\tconst shader = ShaderLib[ shaderID ];\n\t\t\tuniforms = UniformsUtils.clone( shader.uniforms );\n\n\t\t} else {\n\n\t\t\tuniforms = material.uniforms;\n\n\t\t}\n\n\t\treturn uniforms;\n\n\t}\n\n\tfunction acquireProgram( parameters, cacheKey ) {\n\n\t\tlet program;\n\n\t\t// Check if code has been already compiled\n\t\tfor ( let p = 0, pl = programs.length; p < pl; p ++ ) {\n\n\t\t\tconst preexistingProgram = programs[ p ];\n\n\t\t\tif ( preexistingProgram.cacheKey === cacheKey ) {\n\n\t\t\t\tprogram = preexistingProgram;\n\t\t\t\t++ program.usedTimes;\n\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( program === undefined ) {\n\n\t\t\tprogram = new WebGLProgram( renderer, cacheKey, parameters, bindingStates );\n\t\t\tprograms.push( program );\n\n\t\t}\n\n\t\treturn program;\n\n\t}\n\n\tfunction releaseProgram( program ) {\n\n\t\tif ( -- program.usedTimes === 0 ) {\n\n\t\t\t// Remove from unordered set\n\t\t\tconst i = programs.indexOf( program );\n\t\t\tprograms[ i ] = programs[ programs.length - 1 ];\n\t\t\tprograms.pop();\n\n\t\t\t// Free WebGL resources\n\t\t\tprogram.destroy();\n\n\t\t}\n\n\t}\n\n\tfunction releaseShaderCache( material ) {\n\n\t\t_customShaders.remove( material );\n\n\t}\n\n\tfunction dispose() {\n\n\t\t_customShaders.dispose();\n\n\t}\n\n\treturn {\n\t\tgetParameters: getParameters,\n\t\tgetProgramCacheKey: getProgramCacheKey,\n\t\tgetUniforms: getUniforms,\n\t\tacquireProgram: acquireProgram,\n\t\treleaseProgram: releaseProgram,\n\t\treleaseShaderCache: releaseShaderCache,\n\t\t// Exposed for resource monitoring & error feedback via renderer.info:\n\t\tprograms: programs,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction WebGLProperties() {\n\n\tlet properties = new WeakMap();\n\n\tfunction has( object ) {\n\n\t\treturn properties.has( object );\n\n\t}\n\n\tfunction get( object ) {\n\n\t\tlet map = properties.get( object );\n\n\t\tif ( map === undefined ) {\n\n\t\t\tmap = {};\n\t\t\tproperties.set( object, map );\n\n\t\t}\n\n\t\treturn map;\n\n\t}\n\n\tfunction remove( object ) {\n\n\t\tproperties.delete( object );\n\n\t}\n\n\tfunction update( object, key, value ) {\n\n\t\tproperties.get( object )[ key ] = value;\n\n\t}\n\n\tfunction dispose() {\n\n\t\tproperties = new WeakMap();\n\n\t}\n\n\treturn {\n\t\thas: has,\n\t\tget: get,\n\t\tremove: remove,\n\t\tupdate: update,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction painterSortStable( a, b ) {\n\n\tif ( a.groupOrder !== b.groupOrder ) {\n\n\t\treturn a.groupOrder - b.groupOrder;\n\n\t} else if ( a.renderOrder !== b.renderOrder ) {\n\n\t\treturn a.renderOrder - b.renderOrder;\n\n\t} else if ( a.material.id !== b.material.id ) {\n\n\t\treturn a.material.id - b.material.id;\n\n\t} else if ( a.z !== b.z ) {\n\n\t\treturn a.z - b.z;\n\n\t} else {\n\n\t\treturn a.id - b.id;\n\n\t}\n\n}\n\nfunction reversePainterSortStable( a, b ) {\n\n\tif ( a.groupOrder !== b.groupOrder ) {\n\n\t\treturn a.groupOrder - b.groupOrder;\n\n\t} else if ( a.renderOrder !== b.renderOrder ) {\n\n\t\treturn a.renderOrder - b.renderOrder;\n\n\t} else if ( a.z !== b.z ) {\n\n\t\treturn b.z - a.z;\n\n\t} else {\n\n\t\treturn a.id - b.id;\n\n\t}\n\n}\n\n\nfunction WebGLRenderList() {\n\n\tconst renderItems = [];\n\tlet renderItemsIndex = 0;\n\n\tconst opaque = [];\n\tconst transmissive = [];\n\tconst transparent = [];\n\n\tfunction init() {\n\n\t\trenderItemsIndex = 0;\n\n\t\topaque.length = 0;\n\t\ttransmissive.length = 0;\n\t\ttransparent.length = 0;\n\n\t}\n\n\tfunction getNextRenderItem( object, geometry, material, groupOrder, z, group ) {\n\n\t\tlet renderItem = renderItems[ renderItemsIndex ];\n\n\t\tif ( renderItem === undefined ) {\n\n\t\t\trenderItem = {\n\t\t\t\tid: object.id,\n\t\t\t\tobject: object,\n\t\t\t\tgeometry: geometry,\n\t\t\t\tmaterial: material,\n\t\t\t\tgroupOrder: groupOrder,\n\t\t\t\trenderOrder: object.renderOrder,\n\t\t\t\tz: z,\n\t\t\t\tgroup: group\n\t\t\t};\n\n\t\t\trenderItems[ renderItemsIndex ] = renderItem;\n\n\t\t} else {\n\n\t\t\trenderItem.id = object.id;\n\t\t\trenderItem.object = object;\n\t\t\trenderItem.geometry = geometry;\n\t\t\trenderItem.material = material;\n\t\t\trenderItem.groupOrder = groupOrder;\n\t\t\trenderItem.renderOrder = object.renderOrder;\n\t\t\trenderItem.z = z;\n\t\t\trenderItem.group = group;\n\n\t\t}\n\n\t\trenderItemsIndex ++;\n\n\t\treturn renderItem;\n\n\t}\n\n\tfunction push( object, geometry, material, groupOrder, z, group ) {\n\n\t\tconst renderItem = getNextRenderItem( object, geometry, material, groupOrder, z, group );\n\n\t\tif ( material.transmission > 0.0 ) {\n\n\t\t\ttransmissive.push( renderItem );\n\n\t\t} else if ( material.transparent === true ) {\n\n\t\t\ttransparent.push( renderItem );\n\n\t\t} else {\n\n\t\t\topaque.push( renderItem );\n\n\t\t}\n\n\t}\n\n\tfunction unshift( object, geometry, material, groupOrder, z, group ) {\n\n\t\tconst renderItem = getNextRenderItem( object, geometry, material, groupOrder, z, group );\n\n\t\tif ( material.transmission > 0.0 ) {\n\n\t\t\ttransmissive.unshift( renderItem );\n\n\t\t} else if ( material.transparent === true ) {\n\n\t\t\ttransparent.unshift( renderItem );\n\n\t\t} else {\n\n\t\t\topaque.unshift( renderItem );\n\n\t\t}\n\n\t}\n\n\tfunction sort( customOpaqueSort, customTransparentSort ) {\n\n\t\tif ( opaque.length > 1 ) opaque.sort( customOpaqueSort || painterSortStable );\n\t\tif ( transmissive.length > 1 ) transmissive.sort( customTransparentSort || reversePainterSortStable );\n\t\tif ( transparent.length > 1 ) transparent.sort( customTransparentSort || reversePainterSortStable );\n\n\t}\n\n\tfunction finish() {\n\n\t\t// Clear references from inactive renderItems in the list\n\n\t\tfor ( let i = renderItemsIndex, il = renderItems.length; i < il; i ++ ) {\n\n\t\t\tconst renderItem = renderItems[ i ];\n\n\t\t\tif ( renderItem.id === null ) break;\n\n\t\t\trenderItem.id = null;\n\t\t\trenderItem.object = null;\n\t\t\trenderItem.geometry = null;\n\t\t\trenderItem.material = null;\n\t\t\trenderItem.group = null;\n\n\t\t}\n\n\t}\n\n\treturn {\n\n\t\topaque: opaque,\n\t\ttransmissive: transmissive,\n\t\ttransparent: transparent,\n\n\t\tinit: init,\n\t\tpush: push,\n\t\tunshift: unshift,\n\t\tfinish: finish,\n\n\t\tsort: sort\n\t};\n\n}\n\nfunction WebGLRenderLists() {\n\n\tlet lists = new WeakMap();\n\n\tfunction get( scene, renderCallDepth ) {\n\n\t\tconst listArray = lists.get( scene );\n\t\tlet list;\n\n\t\tif ( listArray === undefined ) {\n\n\t\t\tlist = new WebGLRenderList();\n\t\t\tlists.set( scene, [ list ] );\n\n\t\t} else {\n\n\t\t\tif ( renderCallDepth >= listArray.length ) {\n\n\t\t\t\tlist = new WebGLRenderList();\n\t\t\t\tlistArray.push( list );\n\n\t\t\t} else {\n\n\t\t\t\tlist = listArray[ renderCallDepth ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn list;\n\n\t}\n\n\tfunction dispose() {\n\n\t\tlists = new WeakMap();\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction UniformsCache() {\n\n\tconst lights = {};\n\n\treturn {\n\n\t\tget: function ( light ) {\n\n\t\t\tif ( lights[ light.id ] !== undefined ) {\n\n\t\t\t\treturn lights[ light.id ];\n\n\t\t\t}\n\n\t\t\tlet uniforms;\n\n\t\t\tswitch ( light.type ) {\n\n\t\t\t\tcase 'DirectionalLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tdirection: new Vector3(),\n\t\t\t\t\t\tcolor: new Color()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'SpotLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tposition: new Vector3(),\n\t\t\t\t\t\tdirection: new Vector3(),\n\t\t\t\t\t\tcolor: new Color(),\n\t\t\t\t\t\tdistance: 0,\n\t\t\t\t\t\tconeCos: 0,\n\t\t\t\t\t\tpenumbraCos: 0,\n\t\t\t\t\t\tdecay: 0\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'PointLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tposition: new Vector3(),\n\t\t\t\t\t\tcolor: new Color(),\n\t\t\t\t\t\tdistance: 0,\n\t\t\t\t\t\tdecay: 0\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'HemisphereLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tdirection: new Vector3(),\n\t\t\t\t\t\tskyColor: new Color(),\n\t\t\t\t\t\tgroundColor: new Color()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'RectAreaLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tcolor: new Color(),\n\t\t\t\t\t\tposition: new Vector3(),\n\t\t\t\t\t\thalfWidth: new Vector3(),\n\t\t\t\t\t\thalfHeight: new Vector3()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tlights[ light.id ] = uniforms;\n\n\t\t\treturn uniforms;\n\n\t\t}\n\n\t};\n\n}\n\nfunction ShadowUniformsCache() {\n\n\tconst lights = {};\n\n\treturn {\n\n\t\tget: function ( light ) {\n\n\t\t\tif ( lights[ light.id ] !== undefined ) {\n\n\t\t\t\treturn lights[ light.id ];\n\n\t\t\t}\n\n\t\t\tlet uniforms;\n\n\t\t\tswitch ( light.type ) {\n\n\t\t\t\tcase 'DirectionalLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tshadowIntensity: 1,\n\t\t\t\t\t\tshadowBias: 0,\n\t\t\t\t\t\tshadowNormalBias: 0,\n\t\t\t\t\t\tshadowRadius: 1,\n\t\t\t\t\t\tshadowMapSize: new Vector2()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'SpotLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tshadowIntensity: 1,\n\t\t\t\t\t\tshadowBias: 0,\n\t\t\t\t\t\tshadowNormalBias: 0,\n\t\t\t\t\t\tshadowRadius: 1,\n\t\t\t\t\t\tshadowMapSize: new Vector2()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'PointLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tshadowIntensity: 1,\n\t\t\t\t\t\tshadowBias: 0,\n\t\t\t\t\t\tshadowNormalBias: 0,\n\t\t\t\t\t\tshadowRadius: 1,\n\t\t\t\t\t\tshadowMapSize: new Vector2(),\n\t\t\t\t\t\tshadowCameraNear: 1,\n\t\t\t\t\t\tshadowCameraFar: 1000\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\t// TODO (abelnation): set RectAreaLight shadow uniforms\n\n\t\t\t}\n\n\t\t\tlights[ light.id ] = uniforms;\n\n\t\t\treturn uniforms;\n\n\t\t}\n\n\t};\n\n}\n\n\n\nlet nextVersion = 0;\n\nfunction shadowCastingAndTexturingLightsFirst( lightA, lightB ) {\n\n\treturn ( lightB.castShadow ? 2 : 0 ) - ( lightA.castShadow ? 2 : 0 ) + ( lightB.map ? 1 : 0 ) - ( lightA.map ? 1 : 0 );\n\n}\n\nfunction WebGLLights( extensions ) {\n\n\tconst cache = new UniformsCache();\n\n\tconst shadowCache = ShadowUniformsCache();\n\n\tconst state = {\n\n\t\tversion: 0,\n\n\t\thash: {\n\t\t\tdirectionalLength: - 1,\n\t\t\tpointLength: - 1,\n\t\t\tspotLength: - 1,\n\t\t\trectAreaLength: - 1,\n\t\t\themiLength: - 1,\n\n\t\t\tnumDirectionalShadows: - 1,\n\t\t\tnumPointShadows: - 1,\n\t\t\tnumSpotShadows: - 1,\n\t\t\tnumSpotMaps: - 1,\n\n\t\t\tnumLightProbes: - 1\n\t\t},\n\n\t\tambient: [ 0, 0, 0 ],\n\t\tprobe: [],\n\t\tdirectional: [],\n\t\tdirectionalShadow: [],\n\t\tdirectionalShadowMap: [],\n\t\tdirectionalShadowMatrix: [],\n\t\tspot: [],\n\t\tspotLightMap: [],\n\t\tspotShadow: [],\n\t\tspotShadowMap: [],\n\t\tspotLightMatrix: [],\n\t\trectArea: [],\n\t\trectAreaLTC1: null,\n\t\trectAreaLTC2: null,\n\t\tpoint: [],\n\t\tpointShadow: [],\n\t\tpointShadowMap: [],\n\t\tpointShadowMatrix: [],\n\t\themi: [],\n\t\tnumSpotLightShadowsWithMaps: 0,\n\t\tnumLightProbes: 0\n\n\t};\n\n\tfor ( let i = 0; i < 9; i ++ ) state.probe.push( new Vector3() );\n\n\tconst vector3 = new Vector3();\n\tconst matrix4 = new Matrix4();\n\tconst matrix42 = new Matrix4();\n\n\tfunction setup( lights ) {\n\n\t\tlet r = 0, g = 0, b = 0;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) state.probe[ i ].set( 0, 0, 0 );\n\n\t\tlet directionalLength = 0;\n\t\tlet pointLength = 0;\n\t\tlet spotLength = 0;\n\t\tlet rectAreaLength = 0;\n\t\tlet hemiLength = 0;\n\n\t\tlet numDirectionalShadows = 0;\n\t\tlet numPointShadows = 0;\n\t\tlet numSpotShadows = 0;\n\t\tlet numSpotMaps = 0;\n\t\tlet numSpotShadowsWithMaps = 0;\n\n\t\tlet numLightProbes = 0;\n\n\t\t// ordering : [shadow casting + map texturing, map texturing, shadow casting, none ]\n\t\tlights.sort( shadowCastingAndTexturingLightsFirst );\n\n\t\tfor ( let i = 0, l = lights.length; i < l; i ++ ) {\n\n\t\t\tconst light = lights[ i ];\n\n\t\t\tconst color = light.color;\n\t\t\tconst intensity = light.intensity;\n\t\t\tconst distance = light.distance;\n\n\t\t\tconst shadowMap = ( light.shadow && light.shadow.map ) ? light.shadow.map.texture : null;\n\n\t\t\tif ( light.isAmbientLight ) {\n\n\t\t\t\tr += color.r * intensity;\n\t\t\t\tg += color.g * intensity;\n\t\t\t\tb += color.b * intensity;\n\n\t\t\t} else if ( light.isLightProbe ) {\n\n\t\t\t\tfor ( let j = 0; j < 9; j ++ ) {\n\n\t\t\t\t\tstate.probe[ j ].addScaledVector( light.sh.coefficients[ j ], intensity );\n\n\t\t\t\t}\n\n\t\t\t\tnumLightProbes ++;\n\n\t\t\t} else if ( light.isDirectionalLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.color.copy( light.color ).multiplyScalar( light.intensity );\n\n\t\t\t\tif ( light.castShadow ) {\n\n\t\t\t\t\tconst shadow = light.shadow;\n\n\t\t\t\t\tconst shadowUniforms = shadowCache.get( light );\n\n\t\t\t\t\tshadowUniforms.shadowIntensity = shadow.intensity;\n\t\t\t\t\tshadowUniforms.shadowBias = shadow.bias;\n\t\t\t\t\tshadowUniforms.shadowNormalBias = shadow.normalBias;\n\t\t\t\t\tshadowUniforms.shadowRadius = shadow.radius;\n\t\t\t\t\tshadowUniforms.shadowMapSize = shadow.mapSize;\n\n\t\t\t\t\tstate.directionalShadow[ directionalLength ] = shadowUniforms;\n\t\t\t\t\tstate.directionalShadowMap[ directionalLength ] = shadowMap;\n\t\t\t\t\tstate.directionalShadowMatrix[ directionalLength ] = light.shadow.matrix;\n\n\t\t\t\t\tnumDirectionalShadows ++;\n\n\t\t\t\t}\n\n\t\t\t\tstate.directional[ directionalLength ] = uniforms;\n\n\t\t\t\tdirectionalLength ++;\n\n\t\t\t} else if ( light.isSpotLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\n\t\t\t\tuniforms.color.copy( color ).multiplyScalar( intensity );\n\t\t\t\tuniforms.distance = distance;\n\n\t\t\t\tuniforms.coneCos = Math.cos( light.angle );\n\t\t\t\tuniforms.penumbraCos = Math.cos( light.angle * ( 1 - light.penumbra ) );\n\t\t\t\tuniforms.decay = light.decay;\n\n\t\t\t\tstate.spot[ spotLength ] = uniforms;\n\n\t\t\t\tconst shadow = light.shadow;\n\n\t\t\t\tif ( light.map ) {\n\n\t\t\t\t\tstate.spotLightMap[ numSpotMaps ] = light.map;\n\t\t\t\t\tnumSpotMaps ++;\n\n\t\t\t\t\t// make sure the lightMatrix is up to date\n\t\t\t\t\t// TODO : do it if required only\n\t\t\t\t\tshadow.updateMatrices( light );\n\n\t\t\t\t\tif ( light.castShadow ) numSpotShadowsWithMaps ++;\n\n\t\t\t\t}\n\n\t\t\t\tstate.spotLightMatrix[ spotLength ] = shadow.matrix;\n\n\t\t\t\tif ( light.castShadow ) {\n\n\t\t\t\t\tconst shadowUniforms = shadowCache.get( light );\n\n\t\t\t\t\tshadowUniforms.shadowIntensity = shadow.intensity;\n\t\t\t\t\tshadowUniforms.shadowBias = shadow.bias;\n\t\t\t\t\tshadowUniforms.shadowNormalBias = shadow.normalBias;\n\t\t\t\t\tshadowUniforms.shadowRadius = shadow.radius;\n\t\t\t\t\tshadowUniforms.shadowMapSize = shadow.mapSize;\n\n\t\t\t\t\tstate.spotShadow[ spotLength ] = shadowUniforms;\n\t\t\t\t\tstate.spotShadowMap[ spotLength ] = shadowMap;\n\n\t\t\t\t\tnumSpotShadows ++;\n\n\t\t\t\t}\n\n\t\t\t\tspotLength ++;\n\n\t\t\t} else if ( light.isRectAreaLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.color.copy( color ).multiplyScalar( intensity );\n\n\t\t\t\tuniforms.halfWidth.set( light.width * 0.5, 0.0, 0.0 );\n\t\t\t\tuniforms.halfHeight.set( 0.0, light.height * 0.5, 0.0 );\n\n\t\t\t\tstate.rectArea[ rectAreaLength ] = uniforms;\n\n\t\t\t\trectAreaLength ++;\n\n\t\t\t} else if ( light.isPointLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.color.copy( light.color ).multiplyScalar( light.intensity );\n\t\t\t\tuniforms.distance = light.distance;\n\t\t\t\tuniforms.decay = light.decay;\n\n\t\t\t\tif ( light.castShadow ) {\n\n\t\t\t\t\tconst shadow = light.shadow;\n\n\t\t\t\t\tconst shadowUniforms = shadowCache.get( light );\n\n\t\t\t\t\tshadowUniforms.shadowIntensity = shadow.intensity;\n\t\t\t\t\tshadowUniforms.shadowBias = shadow.bias;\n\t\t\t\t\tshadowUniforms.shadowNormalBias = shadow.normalBias;\n\t\t\t\t\tshadowUniforms.shadowRadius = shadow.radius;\n\t\t\t\t\tshadowUniforms.shadowMapSize = shadow.mapSize;\n\t\t\t\t\tshadowUniforms.shadowCameraNear = shadow.camera.near;\n\t\t\t\t\tshadowUniforms.shadowCameraFar = shadow.camera.far;\n\n\t\t\t\t\tstate.pointShadow[ pointLength ] = shadowUniforms;\n\t\t\t\t\tstate.pointShadowMap[ pointLength ] = shadowMap;\n\t\t\t\t\tstate.pointShadowMatrix[ pointLength ] = light.shadow.matrix;\n\n\t\t\t\t\tnumPointShadows ++;\n\n\t\t\t\t}\n\n\t\t\t\tstate.point[ pointLength ] = uniforms;\n\n\t\t\t\tpointLength ++;\n\n\t\t\t} else if ( light.isHemisphereLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.skyColor.copy( light.color ).multiplyScalar( intensity );\n\t\t\t\tuniforms.groundColor.copy( light.groundColor ).multiplyScalar( intensity );\n\n\t\t\t\tstate.hemi[ hemiLength ] = uniforms;\n\n\t\t\t\themiLength ++;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( rectAreaLength > 0 ) {\n\n\t\t\tif ( extensions.has( 'OES_texture_float_linear' ) === true ) {\n\n\t\t\t\tstate.rectAreaLTC1 = UniformsLib.LTC_FLOAT_1;\n\t\t\t\tstate.rectAreaLTC2 = UniformsLib.LTC_FLOAT_2;\n\n\t\t\t} else {\n\n\t\t\t\tstate.rectAreaLTC1 = UniformsLib.LTC_HALF_1;\n\t\t\t\tstate.rectAreaLTC2 = UniformsLib.LTC_HALF_2;\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.ambient[ 0 ] = r;\n\t\tstate.ambient[ 1 ] = g;\n\t\tstate.ambient[ 2 ] = b;\n\n\t\tconst hash = state.hash;\n\n\t\tif ( hash.directionalLength !== directionalLength ||\n\t\t\thash.pointLength !== pointLength ||\n\t\t\thash.spotLength !== spotLength ||\n\t\t\thash.rectAreaLength !== rectAreaLength ||\n\t\t\thash.hemiLength !== hemiLength ||\n\t\t\thash.numDirectionalShadows !== numDirectionalShadows ||\n\t\t\thash.numPointShadows !== numPointShadows ||\n\t\t\thash.numSpotShadows !== numSpotShadows ||\n\t\t\thash.numSpotMaps !== numSpotMaps ||\n\t\t\thash.numLightProbes !== numLightProbes ) {\n\n\t\t\tstate.directional.length = directionalLength;\n\t\t\tstate.spot.length = spotLength;\n\t\t\tstate.rectArea.length = rectAreaLength;\n\t\t\tstate.point.length = pointLength;\n\t\t\tstate.hemi.length = hemiLength;\n\n\t\t\tstate.directionalShadow.length = numDirectionalShadows;\n\t\t\tstate.directionalShadowMap.length = numDirectionalShadows;\n\t\t\tstate.pointShadow.length = numPointShadows;\n\t\t\tstate.pointShadowMap.length = numPointShadows;\n\t\t\tstate.spotShadow.length = numSpotShadows;\n\t\t\tstate.spotShadowMap.length = numSpotShadows;\n\t\t\tstate.directionalShadowMatrix.length = numDirectionalShadows;\n\t\t\tstate.pointShadowMatrix.length = numPointShadows;\n\t\t\tstate.spotLightMatrix.length = numSpotShadows + numSpotMaps - numSpotShadowsWithMaps;\n\t\t\tstate.spotLightMap.length = numSpotMaps;\n\t\t\tstate.numSpotLightShadowsWithMaps = numSpotShadowsWithMaps;\n\t\t\tstate.numLightProbes = numLightProbes;\n\n\t\t\thash.directionalLength = directionalLength;\n\t\t\thash.pointLength = pointLength;\n\t\t\thash.spotLength = spotLength;\n\t\t\thash.rectAreaLength = rectAreaLength;\n\t\t\thash.hemiLength = hemiLength;\n\n\t\t\thash.numDirectionalShadows = numDirectionalShadows;\n\t\t\thash.numPointShadows = numPointShadows;\n\t\t\thash.numSpotShadows = numSpotShadows;\n\t\t\thash.numSpotMaps = numSpotMaps;\n\n\t\t\thash.numLightProbes = numLightProbes;\n\n\t\t\tstate.version = nextVersion ++;\n\n\t\t}\n\n\t}\n\n\tfunction setupView( lights, camera ) {\n\n\t\tlet directionalLength = 0;\n\t\tlet pointLength = 0;\n\t\tlet spotLength = 0;\n\t\tlet rectAreaLength = 0;\n\t\tlet hemiLength = 0;\n\n\t\tconst viewMatrix = camera.matrixWorldInverse;\n\n\t\tfor ( let i = 0, l = lights.length; i < l; i ++ ) {\n\n\t\t\tconst light = lights[ i ];\n\n\t\t\tif ( light.isDirectionalLight ) {\n\n\t\t\t\tconst uniforms = state.directional[ directionalLength ];\n\n\t\t\t\tuniforms.direction.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tvector3.setFromMatrixPosition( light.target.matrixWorld );\n\t\t\t\tuniforms.direction.sub( vector3 );\n\t\t\t\tuniforms.direction.transformDirection( viewMatrix );\n\n\t\t\t\tdirectionalLength ++;\n\n\t\t\t} else if ( light.isSpotLight ) {\n\n\t\t\t\tconst uniforms = state.spot[ spotLength ];\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.position.applyMatrix4( viewMatrix );\n\n\t\t\t\tuniforms.direction.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tvector3.setFromMatrixPosition( light.target.matrixWorld );\n\t\t\t\tuniforms.direction.sub( vector3 );\n\t\t\t\tuniforms.direction.transformDirection( viewMatrix );\n\n\t\t\t\tspotLength ++;\n\n\t\t\t} else if ( light.isRectAreaLight ) {\n\n\t\t\t\tconst uniforms = state.rectArea[ rectAreaLength ];\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.position.applyMatrix4( viewMatrix );\n\n\t\t\t\t// extract local rotation of light to derive width/height half vectors\n\t\t\t\tmatrix42.identity();\n\t\t\t\tmatrix4.copy( light.matrixWorld );\n\t\t\t\tmatrix4.premultiply( viewMatrix );\n\t\t\t\tmatrix42.extractRotation( matrix4 );\n\n\t\t\t\tuniforms.halfWidth.set( light.width * 0.5, 0.0, 0.0 );\n\t\t\t\tuniforms.halfHeight.set( 0.0, light.height * 0.5, 0.0 );\n\n\t\t\t\tuniforms.halfWidth.applyMatrix4( matrix42 );\n\t\t\t\tuniforms.halfHeight.applyMatrix4( matrix42 );\n\n\t\t\t\trectAreaLength ++;\n\n\t\t\t} else if ( light.isPointLight ) {\n\n\t\t\t\tconst uniforms = state.point[ pointLength ];\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.position.applyMatrix4( viewMatrix );\n\n\t\t\t\tpointLength ++;\n\n\t\t\t} else if ( light.isHemisphereLight ) {\n\n\t\t\t\tconst uniforms = state.hemi[ hemiLength ];\n\n\t\t\t\tuniforms.direction.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.direction.transformDirection( viewMatrix );\n\n\t\t\t\themiLength ++;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\treturn {\n\t\tsetup: setup,\n\t\tsetupView: setupView,\n\t\tstate: state\n\t};\n\n}\n\nfunction WebGLRenderState( extensions ) {\n\n\tconst lights = new WebGLLights( extensions );\n\n\tconst lightsArray = [];\n\tconst shadowsArray = [];\n\n\tfunction init( camera ) {\n\n\t\tstate.camera = camera;\n\n\t\tlightsArray.length = 0;\n\t\tshadowsArray.length = 0;\n\n\t}\n\n\tfunction pushLight( light ) {\n\n\t\tlightsArray.push( light );\n\n\t}\n\n\tfunction pushShadow( shadowLight ) {\n\n\t\tshadowsArray.push( shadowLight );\n\n\t}\n\n\tfunction setupLights() {\n\n\t\tlights.setup( lightsArray );\n\n\t}\n\n\tfunction setupLightsView( camera ) {\n\n\t\tlights.setupView( lightsArray, camera );\n\n\t}\n\n\tconst state = {\n\t\tlightsArray: lightsArray,\n\t\tshadowsArray: shadowsArray,\n\n\t\tcamera: null,\n\n\t\tlights: lights,\n\n\t\ttransmissionRenderTarget: {}\n\t};\n\n\treturn {\n\t\tinit: init,\n\t\tstate: state,\n\t\tsetupLights: setupLights,\n\t\tsetupLightsView: setupLightsView,\n\n\t\tpushLight: pushLight,\n\t\tpushShadow: pushShadow\n\t};\n\n}\n\nfunction WebGLRenderStates( extensions ) {\n\n\tlet renderStates = new WeakMap();\n\n\tfunction get( scene, renderCallDepth = 0 ) {\n\n\t\tconst renderStateArray = renderStates.get( scene );\n\t\tlet renderState;\n\n\t\tif ( renderStateArray === undefined ) {\n\n\t\t\trenderState = new WebGLRenderState( extensions );\n\t\t\trenderStates.set( scene, [ renderState ] );\n\n\t\t} else {\n\n\t\t\tif ( renderCallDepth >= renderStateArray.length ) {\n\n\t\t\t\trenderState = new WebGLRenderState( extensions );\n\t\t\t\trenderStateArray.push( renderState );\n\n\t\t\t} else {\n\n\t\t\t\trenderState = renderStateArray[ renderCallDepth ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn renderState;\n\n\t}\n\n\tfunction dispose() {\n\n\t\trenderStates = new WeakMap();\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nconst vertex = \"void main() {\\n\\tgl_Position = vec4( position, 1.0 );\\n}\";\n\nconst fragment = \"uniform sampler2D shadow_pass;\\nuniform vec2 resolution;\\nuniform float radius;\\n#include \\nvoid main() {\\n\\tconst float samples = float( VSM_SAMPLES );\\n\\tfloat mean = 0.0;\\n\\tfloat squared_mean = 0.0;\\n\\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\\n\\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\\n\\tfor ( float i = 0.0; i < samples; i ++ ) {\\n\\t\\tfloat uvOffset = uvStart + i * uvStride;\\n\\t\\t#ifdef HORIZONTAL_PASS\\n\\t\\t\\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 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, uvOffset ) * radius ) / resolution ) );\\n\\t\\t\\tmean += depth;\\n\\t\\t\\tsquared_mean += depth * depth;\\n\\t\\t#endif\\n\\t}\\n\\tmean = mean / samples;\\n\\tsquared_mean = squared_mean / samples;\\n\\tfloat std_dev = sqrt( squared_mean - mean * mean );\\n\\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\\n}\";\n\nfunction WebGLShadowMap( renderer, objects, capabilities ) {\n\n\tlet _frustum = new Frustum();\n\n\tconst _shadowMapSize = new Vector2(),\n\t\t_viewportSize = new Vector2(),\n\n\t\t_viewport = new Vector4(),\n\n\t\t_depthMaterial = new MeshDepthMaterial( { depthPacking: RGBADepthPacking } ),\n\t\t_distanceMaterial = new MeshDistanceMaterial(),\n\n\t\t_materialCache = {},\n\n\t\t_maxTextureSize = capabilities.maxTextureSize;\n\n\tconst shadowSide = { [ FrontSide ]: BackSide, [ BackSide ]: FrontSide, [ DoubleSide ]: DoubleSide };\n\n\tconst shadowMaterialVertical = new ShaderMaterial( {\n\t\tdefines: {\n\t\t\tVSM_SAMPLES: 8\n\t\t},\n\t\tuniforms: {\n\t\t\tshadow_pass: { value: null },\n\t\t\tresolution: { value: new Vector2() },\n\t\t\tradius: { value: 4.0 }\n\t\t},\n\n\t\tvertexShader: vertex,\n\t\tfragmentShader: fragment\n\n\t} );\n\n\tconst shadowMaterialHorizontal = shadowMaterialVertical.clone();\n\tshadowMaterialHorizontal.defines.HORIZONTAL_PASS = 1;\n\n\tconst fullScreenTri = new BufferGeometry();\n\tfullScreenTri.setAttribute(\n\t\t'position',\n\t\tnew BufferAttribute(\n\t\t\tnew Float32Array( [ - 1, - 1, 0.5, 3, - 1, 0.5, - 1, 3, 0.5 ] ),\n\t\t\t3\n\t\t)\n\t);\n\n\tconst fullScreenMesh = new Mesh( fullScreenTri, shadowMaterialVertical );\n\n\tconst scope = this;\n\n\tthis.enabled = false;\n\n\tthis.autoUpdate = true;\n\tthis.needsUpdate = false;\n\n\tthis.type = PCFShadowMap;\n\tlet _previousType = this.type;\n\n\tthis.render = function ( lights, scene, camera ) {\n\n\t\tif ( scope.enabled === false ) return;\n\t\tif ( scope.autoUpdate === false && scope.needsUpdate === false ) return;\n\n\t\tif ( lights.length === 0 ) return;\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\t\tconst activeCubeFace = renderer.getActiveCubeFace();\n\t\tconst activeMipmapLevel = renderer.getActiveMipmapLevel();\n\n\t\tconst _state = renderer.state;\n\n\t\t// Set GL state for depth map.\n\t\t_state.setBlending( NoBlending );\n\t\t_state.buffers.color.setClear( 1, 1, 1, 1 );\n\t\t_state.buffers.depth.setTest( true );\n\t\t_state.setScissorTest( false );\n\n\t\t// check for shadow map type changes\n\n\t\tconst toVSM = ( _previousType !== VSMShadowMap && this.type === VSMShadowMap );\n\t\tconst fromVSM = ( _previousType === VSMShadowMap && this.type !== VSMShadowMap );\n\n\t\t// render depth map\n\n\t\tfor ( let i = 0, il = lights.length; i < il; i ++ ) {\n\n\t\t\tconst light = lights[ i ];\n\t\t\tconst shadow = light.shadow;\n\n\t\t\tif ( shadow === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLShadowMap:', light, 'has no shadow.' );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tif ( shadow.autoUpdate === false && shadow.needsUpdate === false ) continue;\n\n\t\t\t_shadowMapSize.copy( shadow.mapSize );\n\n\t\t\tconst shadowFrameExtents = shadow.getFrameExtents();\n\n\t\t\t_shadowMapSize.multiply( shadowFrameExtents );\n\n\t\t\t_viewportSize.copy( shadow.mapSize );\n\n\t\t\tif ( _shadowMapSize.x > _maxTextureSize || _shadowMapSize.y > _maxTextureSize ) {\n\n\t\t\t\tif ( _shadowMapSize.x > _maxTextureSize ) {\n\n\t\t\t\t\t_viewportSize.x = Math.floor( _maxTextureSize / shadowFrameExtents.x );\n\t\t\t\t\t_shadowMapSize.x = _viewportSize.x * shadowFrameExtents.x;\n\t\t\t\t\tshadow.mapSize.x = _viewportSize.x;\n\n\t\t\t\t}\n\n\t\t\t\tif ( _shadowMapSize.y > _maxTextureSize ) {\n\n\t\t\t\t\t_viewportSize.y = Math.floor( _maxTextureSize / shadowFrameExtents.y );\n\t\t\t\t\t_shadowMapSize.y = _viewportSize.y * shadowFrameExtents.y;\n\t\t\t\t\tshadow.mapSize.y = _viewportSize.y;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( shadow.map === null || toVSM === true || fromVSM === true ) {\n\n\t\t\t\tconst pars = ( this.type !== VSMShadowMap ) ? { minFilter: NearestFilter, magFilter: NearestFilter } : {};\n\n\t\t\t\tif ( shadow.map !== null ) {\n\n\t\t\t\t\tshadow.map.dispose();\n\n\t\t\t\t}\n\n\t\t\t\tshadow.map = new WebGLRenderTarget( _shadowMapSize.x, _shadowMapSize.y, pars );\n\t\t\t\tshadow.map.texture.name = light.name + '.shadowMap';\n\n\t\t\t\tshadow.camera.updateProjectionMatrix();\n\n\t\t\t}\n\n\t\t\trenderer.setRenderTarget( shadow.map );\n\t\t\trenderer.clear();\n\n\t\t\tconst viewportCount = shadow.getViewportCount();\n\n\t\t\tfor ( let vp = 0; vp < viewportCount; vp ++ ) {\n\n\t\t\t\tconst viewport = shadow.getViewport( vp );\n\n\t\t\t\t_viewport.set(\n\t\t\t\t\t_viewportSize.x * viewport.x,\n\t\t\t\t\t_viewportSize.y * viewport.y,\n\t\t\t\t\t_viewportSize.x * viewport.z,\n\t\t\t\t\t_viewportSize.y * viewport.w\n\t\t\t\t);\n\n\t\t\t\t_state.viewport( _viewport );\n\n\t\t\t\tshadow.updateMatrices( light, vp );\n\n\t\t\t\t_frustum = shadow.getFrustum();\n\n\t\t\t\trenderObject( scene, camera, shadow.camera, light, this.type );\n\n\t\t\t}\n\n\t\t\t// do blur pass for VSM\n\n\t\t\tif ( shadow.isPointLightShadow !== true && this.type === VSMShadowMap ) {\n\n\t\t\t\tVSMPass( shadow, camera );\n\n\t\t\t}\n\n\t\t\tshadow.needsUpdate = false;\n\n\t\t}\n\n\t\t_previousType = this.type;\n\n\t\tscope.needsUpdate = false;\n\n\t\trenderer.setRenderTarget( currentRenderTarget, activeCubeFace, activeMipmapLevel );\n\n\t};\n\n\tfunction VSMPass( shadow, camera ) {\n\n\t\tconst geometry = objects.update( fullScreenMesh );\n\n\t\tif ( shadowMaterialVertical.defines.VSM_SAMPLES !== shadow.blurSamples ) {\n\n\t\t\tshadowMaterialVertical.defines.VSM_SAMPLES = shadow.blurSamples;\n\t\t\tshadowMaterialHorizontal.defines.VSM_SAMPLES = shadow.blurSamples;\n\n\t\t\tshadowMaterialVertical.needsUpdate = true;\n\t\t\tshadowMaterialHorizontal.needsUpdate = true;\n\n\t\t}\n\n\t\tif ( shadow.mapPass === null ) {\n\n\t\t\tshadow.mapPass = new WebGLRenderTarget( _shadowMapSize.x, _shadowMapSize.y );\n\n\t\t}\n\n\t\t// vertical pass\n\n\t\tshadowMaterialVertical.uniforms.shadow_pass.value = shadow.map.texture;\n\t\tshadowMaterialVertical.uniforms.resolution.value = shadow.mapSize;\n\t\tshadowMaterialVertical.uniforms.radius.value = shadow.radius;\n\t\trenderer.setRenderTarget( shadow.mapPass );\n\t\trenderer.clear();\n\t\trenderer.renderBufferDirect( camera, null, geometry, shadowMaterialVertical, fullScreenMesh, null );\n\n\t\t// horizontal pass\n\n\t\tshadowMaterialHorizontal.uniforms.shadow_pass.value = shadow.mapPass.texture;\n\t\tshadowMaterialHorizontal.uniforms.resolution.value = shadow.mapSize;\n\t\tshadowMaterialHorizontal.uniforms.radius.value = shadow.radius;\n\t\trenderer.setRenderTarget( shadow.map );\n\t\trenderer.clear();\n\t\trenderer.renderBufferDirect( camera, null, geometry, shadowMaterialHorizontal, fullScreenMesh, null );\n\n\t}\n\n\tfunction getDepthMaterial( object, material, light, type ) {\n\n\t\tlet result = null;\n\n\t\tconst customMaterial = ( light.isPointLight === true ) ? object.customDistanceMaterial : object.customDepthMaterial;\n\n\t\tif ( customMaterial !== undefined ) {\n\n\t\t\tresult = customMaterial;\n\n\t\t} else {\n\n\t\t\tresult = ( light.isPointLight === true ) ? _distanceMaterial : _depthMaterial;\n\n\t\t\tif ( ( renderer.localClippingEnabled && material.clipShadows === true && Array.isArray( material.clippingPlanes ) && material.clippingPlanes.length !== 0 ) ||\n\t\t\t\t( material.displacementMap && material.displacementScale !== 0 ) ||\n\t\t\t\t( material.alphaMap && material.alphaTest > 0 ) ||\n\t\t\t\t( material.map && material.alphaTest > 0 ) ) {\n\n\t\t\t\t// in this case we need a unique material instance reflecting the\n\t\t\t\t// appropriate state\n\n\t\t\t\tconst keyA = result.uuid, keyB = material.uuid;\n\n\t\t\t\tlet materialsForVariant = _materialCache[ keyA ];\n\n\t\t\t\tif ( materialsForVariant === undefined ) {\n\n\t\t\t\t\tmaterialsForVariant = {};\n\t\t\t\t\t_materialCache[ keyA ] = materialsForVariant;\n\n\t\t\t\t}\n\n\t\t\t\tlet cachedMaterial = materialsForVariant[ keyB ];\n\n\t\t\t\tif ( cachedMaterial === undefined ) {\n\n\t\t\t\t\tcachedMaterial = result.clone();\n\t\t\t\t\tmaterialsForVariant[ keyB ] = cachedMaterial;\n\t\t\t\t\tmaterial.addEventListener( 'dispose', onMaterialDispose );\n\n\t\t\t\t}\n\n\t\t\t\tresult = cachedMaterial;\n\n\t\t\t}\n\n\t\t}\n\n\t\tresult.visible = material.visible;\n\t\tresult.wireframe = material.wireframe;\n\n\t\tif ( type === VSMShadowMap ) {\n\n\t\t\tresult.side = ( material.shadowSide !== null ) ? material.shadowSide : material.side;\n\n\t\t} else {\n\n\t\t\tresult.side = ( material.shadowSide !== null ) ? material.shadowSide : shadowSide[ material.side ];\n\n\t\t}\n\n\t\tresult.alphaMap = material.alphaMap;\n\t\tresult.alphaTest = material.alphaTest;\n\t\tresult.map = material.map;\n\n\t\tresult.clipShadows = material.clipShadows;\n\t\tresult.clippingPlanes = material.clippingPlanes;\n\t\tresult.clipIntersection = material.clipIntersection;\n\n\t\tresult.displacementMap = material.displacementMap;\n\t\tresult.displacementScale = material.displacementScale;\n\t\tresult.displacementBias = material.displacementBias;\n\n\t\tresult.wireframeLinewidth = material.wireframeLinewidth;\n\t\tresult.linewidth = material.linewidth;\n\n\t\tif ( light.isPointLight === true && result.isMeshDistanceMaterial === true ) {\n\n\t\t\tconst materialProperties = renderer.properties.get( result );\n\t\t\tmaterialProperties.light = light;\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\tfunction renderObject( object, camera, shadowCamera, light, type ) {\n\n\t\tif ( object.visible === false ) return;\n\n\t\tconst visible = object.layers.test( camera.layers );\n\n\t\tif ( visible && ( object.isMesh || object.isLine || object.isPoints ) ) {\n\n\t\t\tif ( ( object.castShadow || ( object.receiveShadow && type === VSMShadowMap ) ) && ( ! object.frustumCulled || _frustum.intersectsObject( object ) ) ) {\n\n\t\t\t\tobject.modelViewMatrix.multiplyMatrices( shadowCamera.matrixWorldInverse, object.matrixWorld );\n\n\t\t\t\tconst geometry = objects.update( object );\n\t\t\t\tconst material = object.material;\n\n\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\tconst groups = geometry.groups;\n\n\t\t\t\t\tfor ( let k = 0, kl = groups.length; k < kl; k ++ ) {\n\n\t\t\t\t\t\tconst group = groups[ k ];\n\t\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\t\tif ( groupMaterial && groupMaterial.visible ) {\n\n\t\t\t\t\t\t\tconst depthMaterial = getDepthMaterial( object, groupMaterial, light, type );\n\n\t\t\t\t\t\t\tobject.onBeforeShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, group );\n\n\t\t\t\t\t\t\trenderer.renderBufferDirect( shadowCamera, null, geometry, depthMaterial, object, group );\n\n\t\t\t\t\t\t\tobject.onAfterShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, group );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( material.visible ) {\n\n\t\t\t\t\tconst depthMaterial = getDepthMaterial( object, material, light, type );\n\n\t\t\t\t\tobject.onBeforeShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, null );\n\n\t\t\t\t\trenderer.renderBufferDirect( shadowCamera, null, geometry, depthMaterial, object, null );\n\n\t\t\t\t\tobject.onAfterShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, null );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\trenderObject( children[ i ], camera, shadowCamera, light, type );\n\n\t\t}\n\n\t}\n\n\tfunction onMaterialDispose( event ) {\n\n\t\tconst material = event.target;\n\n\t\tmaterial.removeEventListener( 'dispose', onMaterialDispose );\n\n\t\t// make sure to remove the unique distance/depth materials used for shadow map rendering\n\n\t\tfor ( const id in _materialCache ) {\n\n\t\t\tconst cache = _materialCache[ id ];\n\n\t\t\tconst uuid = event.target.uuid;\n\n\t\t\tif ( uuid in cache ) {\n\n\t\t\t\tconst shadowMaterial = cache[ uuid ];\n\t\t\t\tshadowMaterial.dispose();\n\t\t\t\tdelete cache[ uuid ];\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nconst reversedFuncs = {\n\t[ NeverDepth ]: AlwaysDepth,\n\t[ LessDepth ]: GreaterDepth,\n\t[ EqualDepth ]: NotEqualDepth,\n\t[ LessEqualDepth ]: GreaterEqualDepth,\n\n\t[ AlwaysDepth ]: NeverDepth,\n\t[ GreaterDepth ]: LessDepth,\n\t[ NotEqualDepth ]: EqualDepth,\n\t[ GreaterEqualDepth ]: LessEqualDepth,\n};\n\nfunction WebGLState( gl, extensions ) {\n\n\tfunction ColorBuffer() {\n\n\t\tlet locked = false;\n\n\t\tconst color = new Vector4();\n\t\tlet currentColorMask = null;\n\t\tconst currentColorClear = new Vector4( 0, 0, 0, 0 );\n\n\t\treturn {\n\n\t\t\tsetMask: function ( colorMask ) {\n\n\t\t\t\tif ( currentColorMask !== colorMask && ! locked ) {\n\n\t\t\t\t\tgl.colorMask( colorMask, colorMask, colorMask, colorMask );\n\t\t\t\t\tcurrentColorMask = colorMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetLocked: function ( lock ) {\n\n\t\t\t\tlocked = lock;\n\n\t\t\t},\n\n\t\t\tsetClear: function ( r, g, b, a, premultipliedAlpha ) {\n\n\t\t\t\tif ( premultipliedAlpha === true ) {\n\n\t\t\t\t\tr *= a; g *= a; b *= a;\n\n\t\t\t\t}\n\n\t\t\t\tcolor.set( r, g, b, a );\n\n\t\t\t\tif ( currentColorClear.equals( color ) === false ) {\n\n\t\t\t\t\tgl.clearColor( r, g, b, a );\n\t\t\t\t\tcurrentColorClear.copy( color );\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\treset: function () {\n\n\t\t\t\tlocked = false;\n\n\t\t\t\tcurrentColorMask = null;\n\t\t\t\tcurrentColorClear.set( - 1, 0, 0, 0 ); // set to invalid state\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\tfunction DepthBuffer() {\n\n\t\tlet locked = false;\n\t\tlet reversed = false;\n\n\t\tlet currentDepthMask = null;\n\t\tlet currentDepthFunc = null;\n\t\tlet currentDepthClear = null;\n\n\t\treturn {\n\n\t\t\tsetReversed: function ( value ) {\n\n\t\t\t\tif ( reversed !== value ) {\n\n\t\t\t\t\tconst ext = extensions.get( 'EXT_clip_control' );\n\n\t\t\t\t\tif ( reversed ) {\n\n\t\t\t\t\t\text.clipControlEXT( ext.LOWER_LEFT_EXT, ext.ZERO_TO_ONE_EXT );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\text.clipControlEXT( ext.LOWER_LEFT_EXT, ext.NEGATIVE_ONE_TO_ONE_EXT );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst oldDepth = currentDepthClear;\n\t\t\t\t\tcurrentDepthClear = null;\n\t\t\t\t\tthis.setClear( oldDepth );\n\n\t\t\t\t}\n\n\t\t\t\treversed = value;\n\n\t\t\t},\n\n\t\t\tgetReversed: function () {\n\n\t\t\t\treturn reversed;\n\n\t\t\t},\n\n\t\t\tsetTest: function ( depthTest ) {\n\n\t\t\t\tif ( depthTest ) {\n\n\t\t\t\t\tenable( gl.DEPTH_TEST );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tdisable( gl.DEPTH_TEST );\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetMask: function ( depthMask ) {\n\n\t\t\t\tif ( currentDepthMask !== depthMask && ! locked ) {\n\n\t\t\t\t\tgl.depthMask( depthMask );\n\t\t\t\t\tcurrentDepthMask = depthMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetFunc: function ( depthFunc ) {\n\n\t\t\t\tif ( reversed ) depthFunc = reversedFuncs[ depthFunc ];\n\n\t\t\t\tif ( currentDepthFunc !== depthFunc ) {\n\n\t\t\t\t\tswitch ( depthFunc ) {\n\n\t\t\t\t\t\tcase NeverDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.NEVER );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase AlwaysDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.ALWAYS );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase LessDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.LESS );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase LessEqualDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.LEQUAL );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase EqualDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.EQUAL );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase GreaterEqualDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.GEQUAL );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase GreaterDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.GREATER );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase NotEqualDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.NOTEQUAL );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.LEQUAL );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrentDepthFunc = depthFunc;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetLocked: function ( lock ) {\n\n\t\t\t\tlocked = lock;\n\n\t\t\t},\n\n\t\t\tsetClear: function ( depth ) {\n\n\t\t\t\tif ( currentDepthClear !== depth ) {\n\n\t\t\t\t\tif ( reversed ) {\n\n\t\t\t\t\t\tdepth = 1 - depth;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tgl.clearDepth( depth );\n\t\t\t\t\tcurrentDepthClear = depth;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\treset: function () {\n\n\t\t\t\tlocked = false;\n\n\t\t\t\tcurrentDepthMask = null;\n\t\t\t\tcurrentDepthFunc = null;\n\t\t\t\tcurrentDepthClear = null;\n\t\t\t\treversed = false;\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\tfunction StencilBuffer() {\n\n\t\tlet locked = false;\n\n\t\tlet currentStencilMask = null;\n\t\tlet currentStencilFunc = null;\n\t\tlet currentStencilRef = null;\n\t\tlet currentStencilFuncMask = null;\n\t\tlet currentStencilFail = null;\n\t\tlet currentStencilZFail = null;\n\t\tlet currentStencilZPass = null;\n\t\tlet currentStencilClear = null;\n\n\t\treturn {\n\n\t\t\tsetTest: function ( stencilTest ) {\n\n\t\t\t\tif ( ! locked ) {\n\n\t\t\t\t\tif ( stencilTest ) {\n\n\t\t\t\t\t\tenable( gl.STENCIL_TEST );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tdisable( gl.STENCIL_TEST );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetMask: function ( stencilMask ) {\n\n\t\t\t\tif ( currentStencilMask !== stencilMask && ! locked ) {\n\n\t\t\t\t\tgl.stencilMask( stencilMask );\n\t\t\t\t\tcurrentStencilMask = stencilMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetFunc: function ( stencilFunc, stencilRef, stencilMask ) {\n\n\t\t\t\tif ( currentStencilFunc !== stencilFunc ||\n\t\t\t\t currentStencilRef !== stencilRef ||\n\t\t\t\t currentStencilFuncMask !== stencilMask ) {\n\n\t\t\t\t\tgl.stencilFunc( stencilFunc, stencilRef, stencilMask );\n\n\t\t\t\t\tcurrentStencilFunc = stencilFunc;\n\t\t\t\t\tcurrentStencilRef = stencilRef;\n\t\t\t\t\tcurrentStencilFuncMask = stencilMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetOp: function ( stencilFail, stencilZFail, stencilZPass ) {\n\n\t\t\t\tif ( currentStencilFail !== stencilFail ||\n\t\t\t\t currentStencilZFail !== stencilZFail ||\n\t\t\t\t currentStencilZPass !== stencilZPass ) {\n\n\t\t\t\t\tgl.stencilOp( stencilFail, stencilZFail, stencilZPass );\n\n\t\t\t\t\tcurrentStencilFail = stencilFail;\n\t\t\t\t\tcurrentStencilZFail = stencilZFail;\n\t\t\t\t\tcurrentStencilZPass = stencilZPass;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetLocked: function ( lock ) {\n\n\t\t\t\tlocked = lock;\n\n\t\t\t},\n\n\t\t\tsetClear: function ( stencil ) {\n\n\t\t\t\tif ( currentStencilClear !== stencil ) {\n\n\t\t\t\t\tgl.clearStencil( stencil );\n\t\t\t\t\tcurrentStencilClear = stencil;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\treset: function () {\n\n\t\t\t\tlocked = false;\n\n\t\t\t\tcurrentStencilMask = null;\n\t\t\t\tcurrentStencilFunc = null;\n\t\t\t\tcurrentStencilRef = null;\n\t\t\t\tcurrentStencilFuncMask = null;\n\t\t\t\tcurrentStencilFail = null;\n\t\t\t\tcurrentStencilZFail = null;\n\t\t\t\tcurrentStencilZPass = null;\n\t\t\t\tcurrentStencilClear = null;\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\t//\n\n\tconst colorBuffer = new ColorBuffer();\n\tconst depthBuffer = new DepthBuffer();\n\tconst stencilBuffer = new StencilBuffer();\n\n\tconst uboBindings = new WeakMap();\n\tconst uboProgramMap = new WeakMap();\n\n\tlet enabledCapabilities = {};\n\n\tlet currentBoundFramebuffers = {};\n\tlet currentDrawbuffers = new WeakMap();\n\tlet defaultDrawbuffers = [];\n\n\tlet currentProgram = null;\n\n\tlet currentBlendingEnabled = false;\n\tlet currentBlending = null;\n\tlet currentBlendEquation = null;\n\tlet currentBlendSrc = null;\n\tlet currentBlendDst = null;\n\tlet currentBlendEquationAlpha = null;\n\tlet currentBlendSrcAlpha = null;\n\tlet currentBlendDstAlpha = null;\n\tlet currentBlendColor = new Color( 0, 0, 0 );\n\tlet currentBlendAlpha = 0;\n\tlet currentPremultipledAlpha = false;\n\n\tlet currentFlipSided = null;\n\tlet currentCullFace = null;\n\n\tlet currentLineWidth = null;\n\n\tlet currentPolygonOffsetFactor = null;\n\tlet currentPolygonOffsetUnits = null;\n\n\tconst maxTextures = gl.getParameter( gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS );\n\n\tlet lineWidthAvailable = false;\n\tlet version = 0;\n\tconst glVersion = gl.getParameter( gl.VERSION );\n\n\tif ( glVersion.indexOf( 'WebGL' ) !== - 1 ) {\n\n\t\tversion = parseFloat( /^WebGL (\\d)/.exec( glVersion )[ 1 ] );\n\t\tlineWidthAvailable = ( version >= 1.0 );\n\n\t} else if ( glVersion.indexOf( 'OpenGL ES' ) !== - 1 ) {\n\n\t\tversion = parseFloat( /^OpenGL ES (\\d)/.exec( glVersion )[ 1 ] );\n\t\tlineWidthAvailable = ( version >= 2.0 );\n\n\t}\n\n\tlet currentTextureSlot = null;\n\tlet currentBoundTextures = {};\n\n\tconst scissorParam = gl.getParameter( gl.SCISSOR_BOX );\n\tconst viewportParam = gl.getParameter( gl.VIEWPORT );\n\n\tconst currentScissor = new Vector4().fromArray( scissorParam );\n\tconst currentViewport = new Vector4().fromArray( viewportParam );\n\n\tfunction createTexture( type, target, count, dimensions ) {\n\n\t\tconst data = new Uint8Array( 4 ); // 4 is required to match default unpack alignment of 4.\n\t\tconst texture = gl.createTexture();\n\n\t\tgl.bindTexture( type, texture );\n\t\tgl.texParameteri( type, gl.TEXTURE_MIN_FILTER, gl.NEAREST );\n\t\tgl.texParameteri( type, gl.TEXTURE_MAG_FILTER, gl.NEAREST );\n\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tif ( type === gl.TEXTURE_3D || type === gl.TEXTURE_2D_ARRAY ) {\n\n\t\t\t\tgl.texImage3D( target, 0, gl.RGBA, 1, 1, dimensions, 0, gl.RGBA, gl.UNSIGNED_BYTE, data );\n\n\t\t\t} else {\n\n\t\t\t\tgl.texImage2D( target + i, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, data );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tconst emptyTextures = {};\n\temptyTextures[ gl.TEXTURE_2D ] = createTexture( gl.TEXTURE_2D, gl.TEXTURE_2D, 1 );\n\temptyTextures[ gl.TEXTURE_CUBE_MAP ] = createTexture( gl.TEXTURE_CUBE_MAP, gl.TEXTURE_CUBE_MAP_POSITIVE_X, 6 );\n\temptyTextures[ gl.TEXTURE_2D_ARRAY ] = createTexture( gl.TEXTURE_2D_ARRAY, gl.TEXTURE_2D_ARRAY, 1, 1 );\n\temptyTextures[ gl.TEXTURE_3D ] = createTexture( gl.TEXTURE_3D, gl.TEXTURE_3D, 1, 1 );\n\n\t// init\n\n\tcolorBuffer.setClear( 0, 0, 0, 1 );\n\tdepthBuffer.setClear( 1 );\n\tstencilBuffer.setClear( 0 );\n\n\tenable( gl.DEPTH_TEST );\n\tdepthBuffer.setFunc( LessEqualDepth );\n\n\tsetFlipSided( false );\n\tsetCullFace( CullFaceBack );\n\tenable( gl.CULL_FACE );\n\n\tsetBlending( NoBlending );\n\n\t//\n\n\tfunction enable( id ) {\n\n\t\tif ( enabledCapabilities[ id ] !== true ) {\n\n\t\t\tgl.enable( id );\n\t\t\tenabledCapabilities[ id ] = true;\n\n\t\t}\n\n\t}\n\n\tfunction disable( id ) {\n\n\t\tif ( enabledCapabilities[ id ] !== false ) {\n\n\t\t\tgl.disable( id );\n\t\t\tenabledCapabilities[ id ] = false;\n\n\t\t}\n\n\t}\n\n\tfunction bindFramebuffer( target, framebuffer ) {\n\n\t\tif ( currentBoundFramebuffers[ target ] !== framebuffer ) {\n\n\t\t\tgl.bindFramebuffer( target, framebuffer );\n\n\t\t\tcurrentBoundFramebuffers[ target ] = framebuffer;\n\n\t\t\t// gl.DRAW_FRAMEBUFFER is equivalent to gl.FRAMEBUFFER\n\n\t\t\tif ( target === gl.DRAW_FRAMEBUFFER ) {\n\n\t\t\t\tcurrentBoundFramebuffers[ gl.FRAMEBUFFER ] = framebuffer;\n\n\t\t\t}\n\n\t\t\tif ( target === gl.FRAMEBUFFER ) {\n\n\t\t\t\tcurrentBoundFramebuffers[ gl.DRAW_FRAMEBUFFER ] = framebuffer;\n\n\t\t\t}\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\tfunction drawBuffers( renderTarget, framebuffer ) {\n\n\t\tlet drawBuffers = defaultDrawbuffers;\n\n\t\tlet needsUpdate = false;\n\n\t\tif ( renderTarget ) {\n\n\t\t\tdrawBuffers = currentDrawbuffers.get( framebuffer );\n\n\t\t\tif ( drawBuffers === undefined ) {\n\n\t\t\t\tdrawBuffers = [];\n\t\t\t\tcurrentDrawbuffers.set( framebuffer, drawBuffers );\n\n\t\t\t}\n\n\t\t\tconst textures = renderTarget.textures;\n\n\t\t\tif ( drawBuffers.length !== textures.length || drawBuffers[ 0 ] !== gl.COLOR_ATTACHMENT0 ) {\n\n\t\t\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\t\t\tdrawBuffers[ i ] = gl.COLOR_ATTACHMENT0 + i;\n\n\t\t\t\t}\n\n\t\t\t\tdrawBuffers.length = textures.length;\n\n\t\t\t\tneedsUpdate = true;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( drawBuffers[ 0 ] !== gl.BACK ) {\n\n\t\t\t\tdrawBuffers[ 0 ] = gl.BACK;\n\n\t\t\t\tneedsUpdate = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( needsUpdate ) {\n\n\t\t\tgl.drawBuffers( drawBuffers );\n\n\t\t}\n\n\t}\n\n\tfunction useProgram( program ) {\n\n\t\tif ( currentProgram !== program ) {\n\n\t\t\tgl.useProgram( program );\n\n\t\t\tcurrentProgram = program;\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\tconst equationToGL = {\n\t\t[ AddEquation ]: gl.FUNC_ADD,\n\t\t[ SubtractEquation ]: gl.FUNC_SUBTRACT,\n\t\t[ ReverseSubtractEquation ]: gl.FUNC_REVERSE_SUBTRACT\n\t};\n\n\tequationToGL[ MinEquation ] = gl.MIN;\n\tequationToGL[ MaxEquation ] = gl.MAX;\n\n\tconst factorToGL = {\n\t\t[ ZeroFactor ]: gl.ZERO,\n\t\t[ OneFactor ]: gl.ONE,\n\t\t[ SrcColorFactor ]: gl.SRC_COLOR,\n\t\t[ SrcAlphaFactor ]: gl.SRC_ALPHA,\n\t\t[ SrcAlphaSaturateFactor ]: gl.SRC_ALPHA_SATURATE,\n\t\t[ DstColorFactor ]: gl.DST_COLOR,\n\t\t[ DstAlphaFactor ]: gl.DST_ALPHA,\n\t\t[ OneMinusSrcColorFactor ]: gl.ONE_MINUS_SRC_COLOR,\n\t\t[ OneMinusSrcAlphaFactor ]: gl.ONE_MINUS_SRC_ALPHA,\n\t\t[ OneMinusDstColorFactor ]: gl.ONE_MINUS_DST_COLOR,\n\t\t[ OneMinusDstAlphaFactor ]: gl.ONE_MINUS_DST_ALPHA,\n\t\t[ ConstantColorFactor ]: gl.CONSTANT_COLOR,\n\t\t[ OneMinusConstantColorFactor ]: gl.ONE_MINUS_CONSTANT_COLOR,\n\t\t[ ConstantAlphaFactor ]: gl.CONSTANT_ALPHA,\n\t\t[ OneMinusConstantAlphaFactor ]: gl.ONE_MINUS_CONSTANT_ALPHA\n\t};\n\n\tfunction setBlending( blending, blendEquation, blendSrc, blendDst, blendEquationAlpha, blendSrcAlpha, blendDstAlpha, blendColor, blendAlpha, premultipliedAlpha ) {\n\n\t\tif ( blending === NoBlending ) {\n\n\t\t\tif ( currentBlendingEnabled === true ) {\n\n\t\t\t\tdisable( gl.BLEND );\n\t\t\t\tcurrentBlendingEnabled = false;\n\n\t\t\t}\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( currentBlendingEnabled === false ) {\n\n\t\t\tenable( gl.BLEND );\n\t\t\tcurrentBlendingEnabled = true;\n\n\t\t}\n\n\t\tif ( blending !== CustomBlending ) {\n\n\t\t\tif ( blending !== currentBlending || premultipliedAlpha !== currentPremultipledAlpha ) {\n\n\t\t\t\tif ( currentBlendEquation !== AddEquation || currentBlendEquationAlpha !== AddEquation ) {\n\n\t\t\t\t\tgl.blendEquation( gl.FUNC_ADD );\n\n\t\t\t\t\tcurrentBlendEquation = AddEquation;\n\t\t\t\t\tcurrentBlendEquationAlpha = AddEquation;\n\n\t\t\t\t}\n\n\t\t\t\tif ( premultipliedAlpha ) {\n\n\t\t\t\t\tswitch ( blending ) {\n\n\t\t\t\t\t\tcase NormalBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( gl.ONE, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase AdditiveBlending:\n\t\t\t\t\t\t\tgl.blendFunc( gl.ONE, gl.ONE );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase SubtractiveBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( gl.ZERO, gl.ONE_MINUS_SRC_COLOR, gl.ZERO, gl.ONE );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase MultiplyBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( gl.ZERO, gl.SRC_COLOR, gl.ZERO, gl.SRC_ALPHA );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tconsole.error( 'THREE.WebGLState: Invalid blending: ', blending );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tswitch ( blending ) {\n\n\t\t\t\t\t\tcase NormalBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase AdditiveBlending:\n\t\t\t\t\t\t\tgl.blendFunc( gl.SRC_ALPHA, gl.ONE );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase SubtractiveBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( gl.ZERO, gl.ONE_MINUS_SRC_COLOR, gl.ZERO, gl.ONE );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase MultiplyBlending:\n\t\t\t\t\t\t\tgl.blendFunc( gl.ZERO, gl.SRC_COLOR );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tconsole.error( 'THREE.WebGLState: Invalid blending: ', blending );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tcurrentBlendSrc = null;\n\t\t\t\tcurrentBlendDst = null;\n\t\t\t\tcurrentBlendSrcAlpha = null;\n\t\t\t\tcurrentBlendDstAlpha = null;\n\t\t\t\tcurrentBlendColor.set( 0, 0, 0 );\n\t\t\t\tcurrentBlendAlpha = 0;\n\n\t\t\t\tcurrentBlending = blending;\n\t\t\t\tcurrentPremultipledAlpha = premultipliedAlpha;\n\n\t\t\t}\n\n\t\t\treturn;\n\n\t\t}\n\n\t\t// custom blending\n\n\t\tblendEquationAlpha = blendEquationAlpha || blendEquation;\n\t\tblendSrcAlpha = blendSrcAlpha || blendSrc;\n\t\tblendDstAlpha = blendDstAlpha || blendDst;\n\n\t\tif ( blendEquation !== currentBlendEquation || blendEquationAlpha !== currentBlendEquationAlpha ) {\n\n\t\t\tgl.blendEquationSeparate( equationToGL[ blendEquation ], equationToGL[ blendEquationAlpha ] );\n\n\t\t\tcurrentBlendEquation = blendEquation;\n\t\t\tcurrentBlendEquationAlpha = blendEquationAlpha;\n\n\t\t}\n\n\t\tif ( blendSrc !== currentBlendSrc || blendDst !== currentBlendDst || blendSrcAlpha !== currentBlendSrcAlpha || blendDstAlpha !== currentBlendDstAlpha ) {\n\n\t\t\tgl.blendFuncSeparate( factorToGL[ blendSrc ], factorToGL[ blendDst ], factorToGL[ blendSrcAlpha ], factorToGL[ blendDstAlpha ] );\n\n\t\t\tcurrentBlendSrc = blendSrc;\n\t\t\tcurrentBlendDst = blendDst;\n\t\t\tcurrentBlendSrcAlpha = blendSrcAlpha;\n\t\t\tcurrentBlendDstAlpha = blendDstAlpha;\n\n\t\t}\n\n\t\tif ( blendColor.equals( currentBlendColor ) === false || blendAlpha !== currentBlendAlpha ) {\n\n\t\t\tgl.blendColor( blendColor.r, blendColor.g, blendColor.b, blendAlpha );\n\n\t\t\tcurrentBlendColor.copy( blendColor );\n\t\t\tcurrentBlendAlpha = blendAlpha;\n\n\t\t}\n\n\t\tcurrentBlending = blending;\n\t\tcurrentPremultipledAlpha = false;\n\n\t}\n\n\tfunction setMaterial( material, frontFaceCW ) {\n\n\t\tmaterial.side === DoubleSide\n\t\t\t? disable( gl.CULL_FACE )\n\t\t\t: enable( gl.CULL_FACE );\n\n\t\tlet flipSided = ( material.side === BackSide );\n\t\tif ( frontFaceCW ) flipSided = ! flipSided;\n\n\t\tsetFlipSided( flipSided );\n\n\t\t( material.blending === NormalBlending && material.transparent === false )\n\t\t\t? setBlending( NoBlending )\n\t\t\t: setBlending( material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha, material.blendColor, material.blendAlpha, material.premultipliedAlpha );\n\n\t\tdepthBuffer.setFunc( material.depthFunc );\n\t\tdepthBuffer.setTest( material.depthTest );\n\t\tdepthBuffer.setMask( material.depthWrite );\n\t\tcolorBuffer.setMask( material.colorWrite );\n\n\t\tconst stencilWrite = material.stencilWrite;\n\t\tstencilBuffer.setTest( stencilWrite );\n\t\tif ( stencilWrite ) {\n\n\t\t\tstencilBuffer.setMask( material.stencilWriteMask );\n\t\t\tstencilBuffer.setFunc( material.stencilFunc, material.stencilRef, material.stencilFuncMask );\n\t\t\tstencilBuffer.setOp( material.stencilFail, material.stencilZFail, material.stencilZPass );\n\n\t\t}\n\n\t\tsetPolygonOffset( material.polygonOffset, material.polygonOffsetFactor, material.polygonOffsetUnits );\n\n\t\tmaterial.alphaToCoverage === true\n\t\t\t? enable( gl.SAMPLE_ALPHA_TO_COVERAGE )\n\t\t\t: disable( gl.SAMPLE_ALPHA_TO_COVERAGE );\n\n\t}\n\n\t//\n\n\tfunction setFlipSided( flipSided ) {\n\n\t\tif ( currentFlipSided !== flipSided ) {\n\n\t\t\tif ( flipSided ) {\n\n\t\t\t\tgl.frontFace( gl.CW );\n\n\t\t\t} else {\n\n\t\t\t\tgl.frontFace( gl.CCW );\n\n\t\t\t}\n\n\t\t\tcurrentFlipSided = flipSided;\n\n\t\t}\n\n\t}\n\n\tfunction setCullFace( cullFace ) {\n\n\t\tif ( cullFace !== CullFaceNone ) {\n\n\t\t\tenable( gl.CULL_FACE );\n\n\t\t\tif ( cullFace !== currentCullFace ) {\n\n\t\t\t\tif ( cullFace === CullFaceBack ) {\n\n\t\t\t\t\tgl.cullFace( gl.BACK );\n\n\t\t\t\t} else if ( cullFace === CullFaceFront ) {\n\n\t\t\t\t\tgl.cullFace( gl.FRONT );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tgl.cullFace( gl.FRONT_AND_BACK );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tdisable( gl.CULL_FACE );\n\n\t\t}\n\n\t\tcurrentCullFace = cullFace;\n\n\t}\n\n\tfunction setLineWidth( width ) {\n\n\t\tif ( width !== currentLineWidth ) {\n\n\t\t\tif ( lineWidthAvailable ) gl.lineWidth( width );\n\n\t\t\tcurrentLineWidth = width;\n\n\t\t}\n\n\t}\n\n\tfunction setPolygonOffset( polygonOffset, factor, units ) {\n\n\t\tif ( polygonOffset ) {\n\n\t\t\tenable( gl.POLYGON_OFFSET_FILL );\n\n\t\t\tif ( currentPolygonOffsetFactor !== factor || currentPolygonOffsetUnits !== units ) {\n\n\t\t\t\tgl.polygonOffset( factor, units );\n\n\t\t\t\tcurrentPolygonOffsetFactor = factor;\n\t\t\t\tcurrentPolygonOffsetUnits = units;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tdisable( gl.POLYGON_OFFSET_FILL );\n\n\t\t}\n\n\t}\n\n\tfunction setScissorTest( scissorTest ) {\n\n\t\tif ( scissorTest ) {\n\n\t\t\tenable( gl.SCISSOR_TEST );\n\n\t\t} else {\n\n\t\t\tdisable( gl.SCISSOR_TEST );\n\n\t\t}\n\n\t}\n\n\t// texture\n\n\tfunction activeTexture( webglSlot ) {\n\n\t\tif ( webglSlot === undefined ) webglSlot = gl.TEXTURE0 + maxTextures - 1;\n\n\t\tif ( currentTextureSlot !== webglSlot ) {\n\n\t\t\tgl.activeTexture( webglSlot );\n\t\t\tcurrentTextureSlot = webglSlot;\n\n\t\t}\n\n\t}\n\n\tfunction bindTexture( webglType, webglTexture, webglSlot ) {\n\n\t\tif ( webglSlot === undefined ) {\n\n\t\t\tif ( currentTextureSlot === null ) {\n\n\t\t\t\twebglSlot = gl.TEXTURE0 + maxTextures - 1;\n\n\t\t\t} else {\n\n\t\t\t\twebglSlot = currentTextureSlot;\n\n\t\t\t}\n\n\t\t}\n\n\t\tlet boundTexture = currentBoundTextures[ webglSlot ];\n\n\t\tif ( boundTexture === undefined ) {\n\n\t\t\tboundTexture = { type: undefined, texture: undefined };\n\t\t\tcurrentBoundTextures[ webglSlot ] = boundTexture;\n\n\t\t}\n\n\t\tif ( boundTexture.type !== webglType || boundTexture.texture !== webglTexture ) {\n\n\t\t\tif ( currentTextureSlot !== webglSlot ) {\n\n\t\t\t\tgl.activeTexture( webglSlot );\n\t\t\t\tcurrentTextureSlot = webglSlot;\n\n\t\t\t}\n\n\t\t\tgl.bindTexture( webglType, webglTexture || emptyTextures[ webglType ] );\n\n\t\t\tboundTexture.type = webglType;\n\t\t\tboundTexture.texture = webglTexture;\n\n\t\t}\n\n\t}\n\n\tfunction unbindTexture() {\n\n\t\tconst boundTexture = currentBoundTextures[ currentTextureSlot ];\n\n\t\tif ( boundTexture !== undefined && boundTexture.type !== undefined ) {\n\n\t\t\tgl.bindTexture( boundTexture.type, null );\n\n\t\t\tboundTexture.type = undefined;\n\t\t\tboundTexture.texture = undefined;\n\n\t\t}\n\n\t}\n\n\tfunction compressedTexImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.compressedTexImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction compressedTexImage3D() {\n\n\t\ttry {\n\n\t\t\tgl.compressedTexImage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texSubImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.texSubImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texSubImage3D() {\n\n\t\ttry {\n\n\t\t\tgl.texSubImage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction compressedTexSubImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.compressedTexSubImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction compressedTexSubImage3D() {\n\n\t\ttry {\n\n\t\t\tgl.compressedTexSubImage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texStorage2D() {\n\n\t\ttry {\n\n\t\t\tgl.texStorage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texStorage3D() {\n\n\t\ttry {\n\n\t\t\tgl.texStorage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.texImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texImage3D() {\n\n\t\ttry {\n\n\t\t\tgl.texImage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\t//\n\n\tfunction scissor( scissor ) {\n\n\t\tif ( currentScissor.equals( scissor ) === false ) {\n\n\t\t\tgl.scissor( scissor.x, scissor.y, scissor.z, scissor.w );\n\t\t\tcurrentScissor.copy( scissor );\n\n\t\t}\n\n\t}\n\n\tfunction viewport( viewport ) {\n\n\t\tif ( currentViewport.equals( viewport ) === false ) {\n\n\t\t\tgl.viewport( viewport.x, viewport.y, viewport.z, viewport.w );\n\t\t\tcurrentViewport.copy( viewport );\n\n\t\t}\n\n\t}\n\n\tfunction updateUBOMapping( uniformsGroup, program ) {\n\n\t\tlet mapping = uboProgramMap.get( program );\n\n\t\tif ( mapping === undefined ) {\n\n\t\t\tmapping = new WeakMap();\n\n\t\t\tuboProgramMap.set( program, mapping );\n\n\t\t}\n\n\t\tlet blockIndex = mapping.get( uniformsGroup );\n\n\t\tif ( blockIndex === undefined ) {\n\n\t\t\tblockIndex = gl.getUniformBlockIndex( program, uniformsGroup.name );\n\n\t\t\tmapping.set( uniformsGroup, blockIndex );\n\n\t\t}\n\n\t}\n\n\tfunction uniformBlockBinding( uniformsGroup, program ) {\n\n\t\tconst mapping = uboProgramMap.get( program );\n\t\tconst blockIndex = mapping.get( uniformsGroup );\n\n\t\tif ( uboBindings.get( program ) !== blockIndex ) {\n\n\t\t\t// bind shader specific block index to global block point\n\t\t\tgl.uniformBlockBinding( program, blockIndex, uniformsGroup.__bindingPointIndex );\n\n\t\t\tuboBindings.set( program, blockIndex );\n\n\t\t}\n\n\t}\n\n\t//\n\n\tfunction reset() {\n\n\t\t// reset state\n\n\t\tgl.disable( gl.BLEND );\n\t\tgl.disable( gl.CULL_FACE );\n\t\tgl.disable( gl.DEPTH_TEST );\n\t\tgl.disable( gl.POLYGON_OFFSET_FILL );\n\t\tgl.disable( gl.SCISSOR_TEST );\n\t\tgl.disable( gl.STENCIL_TEST );\n\t\tgl.disable( gl.SAMPLE_ALPHA_TO_COVERAGE );\n\n\t\tgl.blendEquation( gl.FUNC_ADD );\n\t\tgl.blendFunc( gl.ONE, gl.ZERO );\n\t\tgl.blendFuncSeparate( gl.ONE, gl.ZERO, gl.ONE, gl.ZERO );\n\t\tgl.blendColor( 0, 0, 0, 0 );\n\n\t\tgl.colorMask( true, true, true, true );\n\t\tgl.clearColor( 0, 0, 0, 0 );\n\n\t\tgl.depthMask( true );\n\t\tgl.depthFunc( gl.LESS );\n\n\t\tdepthBuffer.setReversed( false );\n\n\t\tgl.clearDepth( 1 );\n\n\t\tgl.stencilMask( 0xffffffff );\n\t\tgl.stencilFunc( gl.ALWAYS, 0, 0xffffffff );\n\t\tgl.stencilOp( gl.KEEP, gl.KEEP, gl.KEEP );\n\t\tgl.clearStencil( 0 );\n\n\t\tgl.cullFace( gl.BACK );\n\t\tgl.frontFace( gl.CCW );\n\n\t\tgl.polygonOffset( 0, 0 );\n\n\t\tgl.activeTexture( gl.TEXTURE0 );\n\n\t\tgl.bindFramebuffer( gl.FRAMEBUFFER, null );\n\t\tgl.bindFramebuffer( gl.DRAW_FRAMEBUFFER, null );\n\t\tgl.bindFramebuffer( gl.READ_FRAMEBUFFER, null );\n\n\t\tgl.useProgram( null );\n\n\t\tgl.lineWidth( 1 );\n\n\t\tgl.scissor( 0, 0, gl.canvas.width, gl.canvas.height );\n\t\tgl.viewport( 0, 0, gl.canvas.width, gl.canvas.height );\n\n\t\t// reset internals\n\n\t\tenabledCapabilities = {};\n\n\t\tcurrentTextureSlot = null;\n\t\tcurrentBoundTextures = {};\n\n\t\tcurrentBoundFramebuffers = {};\n\t\tcurrentDrawbuffers = new WeakMap();\n\t\tdefaultDrawbuffers = [];\n\n\t\tcurrentProgram = null;\n\n\t\tcurrentBlendingEnabled = false;\n\t\tcurrentBlending = null;\n\t\tcurrentBlendEquation = null;\n\t\tcurrentBlendSrc = null;\n\t\tcurrentBlendDst = null;\n\t\tcurrentBlendEquationAlpha = null;\n\t\tcurrentBlendSrcAlpha = null;\n\t\tcurrentBlendDstAlpha = null;\n\t\tcurrentBlendColor = new Color( 0, 0, 0 );\n\t\tcurrentBlendAlpha = 0;\n\t\tcurrentPremultipledAlpha = false;\n\n\t\tcurrentFlipSided = null;\n\t\tcurrentCullFace = null;\n\n\t\tcurrentLineWidth = null;\n\n\t\tcurrentPolygonOffsetFactor = null;\n\t\tcurrentPolygonOffsetUnits = null;\n\n\t\tcurrentScissor.set( 0, 0, gl.canvas.width, gl.canvas.height );\n\t\tcurrentViewport.set( 0, 0, gl.canvas.width, gl.canvas.height );\n\n\t\tcolorBuffer.reset();\n\t\tdepthBuffer.reset();\n\t\tstencilBuffer.reset();\n\n\t}\n\n\treturn {\n\n\t\tbuffers: {\n\t\t\tcolor: colorBuffer,\n\t\t\tdepth: depthBuffer,\n\t\t\tstencil: stencilBuffer\n\t\t},\n\n\t\tenable: enable,\n\t\tdisable: disable,\n\n\t\tbindFramebuffer: bindFramebuffer,\n\t\tdrawBuffers: drawBuffers,\n\n\t\tuseProgram: useProgram,\n\n\t\tsetBlending: setBlending,\n\t\tsetMaterial: setMaterial,\n\n\t\tsetFlipSided: setFlipSided,\n\t\tsetCullFace: setCullFace,\n\n\t\tsetLineWidth: setLineWidth,\n\t\tsetPolygonOffset: setPolygonOffset,\n\n\t\tsetScissorTest: setScissorTest,\n\n\t\tactiveTexture: activeTexture,\n\t\tbindTexture: bindTexture,\n\t\tunbindTexture: unbindTexture,\n\t\tcompressedTexImage2D: compressedTexImage2D,\n\t\tcompressedTexImage3D: compressedTexImage3D,\n\t\ttexImage2D: texImage2D,\n\t\ttexImage3D: texImage3D,\n\n\t\tupdateUBOMapping: updateUBOMapping,\n\t\tuniformBlockBinding: uniformBlockBinding,\n\n\t\ttexStorage2D: texStorage2D,\n\t\ttexStorage3D: texStorage3D,\n\t\ttexSubImage2D: texSubImage2D,\n\t\ttexSubImage3D: texSubImage3D,\n\t\tcompressedTexSubImage2D: compressedTexSubImage2D,\n\t\tcompressedTexSubImage3D: compressedTexSubImage3D,\n\n\t\tscissor: scissor,\n\t\tviewport: viewport,\n\n\t\treset: reset\n\n\t};\n\n}\n\nfunction WebGLTextures( _gl, extensions, state, properties, capabilities, utils, info ) {\n\n\tconst multisampledRTTExt = extensions.has( 'WEBGL_multisampled_render_to_texture' ) ? extensions.get( 'WEBGL_multisampled_render_to_texture' ) : null;\n\tconst supportsInvalidateFramebuffer = typeof navigator === 'undefined' ? false : /OculusBrowser/g.test( navigator.userAgent );\n\n\tconst _imageDimensions = new Vector2();\n\tconst _videoTextures = new WeakMap();\n\tlet _canvas;\n\n\tconst _sources = new WeakMap(); // maps WebglTexture objects to instances of Source\n\n\t// cordova iOS (as of 5.0) still uses UIWebView, which provides OffscreenCanvas,\n\t// also OffscreenCanvas.getContext(\"webgl\"), but not OffscreenCanvas.getContext(\"2d\")!\n\t// Some implementations may only implement OffscreenCanvas partially (e.g. lacking 2d).\n\n\tlet useOffscreenCanvas = false;\n\n\ttry {\n\n\t\tuseOffscreenCanvas = typeof OffscreenCanvas !== 'undefined'\n\t\t\t// eslint-disable-next-line compat/compat\n\t\t\t&& ( new OffscreenCanvas( 1, 1 ).getContext( '2d' ) ) !== null;\n\n\t} catch ( err ) {\n\n\t\t// Ignore any errors\n\n\t}\n\n\tfunction createCanvas( width, height ) {\n\n\t\t// Use OffscreenCanvas when available. Specially needed in web workers\n\n\t\treturn useOffscreenCanvas ?\n\t\t\t// eslint-disable-next-line compat/compat\n\t\t\tnew OffscreenCanvas( width, height ) : createElementNS( 'canvas' );\n\n\t}\n\n\tfunction resizeImage( image, needsNewCanvas, maxSize ) {\n\n\t\tlet scale = 1;\n\n\t\tconst dimensions = getDimensions( image );\n\n\t\t// handle case if texture exceeds max size\n\n\t\tif ( dimensions.width > maxSize || dimensions.height > maxSize ) {\n\n\t\t\tscale = maxSize / Math.max( dimensions.width, dimensions.height );\n\n\t\t}\n\n\t\t// only perform resize if necessary\n\n\t\tif ( scale < 1 ) {\n\n\t\t\t// only perform resize for certain image types\n\n\t\t\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ||\n\t\t\t\t( typeof VideoFrame !== 'undefined' && image instanceof VideoFrame ) ) {\n\n\t\t\t\tconst width = Math.floor( scale * dimensions.width );\n\t\t\t\tconst height = Math.floor( scale * dimensions.height );\n\n\t\t\t\tif ( _canvas === undefined ) _canvas = createCanvas( width, height );\n\n\t\t\t\t// cube textures can't reuse the same canvas\n\n\t\t\t\tconst canvas = needsNewCanvas ? createCanvas( width, height ) : _canvas;\n\n\t\t\t\tcanvas.width = width;\n\t\t\t\tcanvas.height = height;\n\n\t\t\t\tconst context = canvas.getContext( '2d' );\n\t\t\t\tcontext.drawImage( image, 0, 0, width, height );\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture has been resized from (' + dimensions.width + 'x' + dimensions.height + ') to (' + width + 'x' + height + ').' );\n\n\t\t\t\treturn canvas;\n\n\t\t\t} else {\n\n\t\t\t\tif ( 'data' in image ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Image in DataTexture is too big (' + dimensions.width + 'x' + dimensions.height + ').' );\n\n\t\t\t\t}\n\n\t\t\t\treturn image;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn image;\n\n\t}\n\n\tfunction textureNeedsGenerateMipmaps( texture ) {\n\n\t\treturn texture.generateMipmaps;\n\n\t}\n\n\tfunction generateMipmap( target ) {\n\n\t\t_gl.generateMipmap( target );\n\n\t}\n\n\tfunction getTargetType( texture ) {\n\n\t\tif ( texture.isWebGLCubeRenderTarget ) return _gl.TEXTURE_CUBE_MAP;\n\t\tif ( texture.isWebGL3DRenderTarget ) return _gl.TEXTURE_3D;\n\t\tif ( texture.isWebGLArrayRenderTarget || texture.isCompressedArrayTexture ) return _gl.TEXTURE_2D_ARRAY;\n\t\treturn _gl.TEXTURE_2D;\n\n\t}\n\n\tfunction getInternalFormat( internalFormatName, glFormat, glType, colorSpace, forceLinearTransfer = false ) {\n\n\t\tif ( internalFormatName !== null ) {\n\n\t\t\tif ( _gl[ internalFormatName ] !== undefined ) return _gl[ internalFormatName ];\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format \\'' + internalFormatName + '\\'' );\n\n\t\t}\n\n\t\tlet internalFormat = glFormat;\n\n\t\tif ( glFormat === _gl.RED ) {\n\n\t\t\tif ( glType === _gl.FLOAT ) internalFormat = _gl.R32F;\n\t\t\tif ( glType === _gl.HALF_FLOAT ) internalFormat = _gl.R16F;\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.R8;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RED_INTEGER ) {\n\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.R8UI;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT ) internalFormat = _gl.R16UI;\n\t\t\tif ( glType === _gl.UNSIGNED_INT ) internalFormat = _gl.R32UI;\n\t\t\tif ( glType === _gl.BYTE ) internalFormat = _gl.R8I;\n\t\t\tif ( glType === _gl.SHORT ) internalFormat = _gl.R16I;\n\t\t\tif ( glType === _gl.INT ) internalFormat = _gl.R32I;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RG ) {\n\n\t\t\tif ( glType === _gl.FLOAT ) internalFormat = _gl.RG32F;\n\t\t\tif ( glType === _gl.HALF_FLOAT ) internalFormat = _gl.RG16F;\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.RG8;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RG_INTEGER ) {\n\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.RG8UI;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT ) internalFormat = _gl.RG16UI;\n\t\t\tif ( glType === _gl.UNSIGNED_INT ) internalFormat = _gl.RG32UI;\n\t\t\tif ( glType === _gl.BYTE ) internalFormat = _gl.RG8I;\n\t\t\tif ( glType === _gl.SHORT ) internalFormat = _gl.RG16I;\n\t\t\tif ( glType === _gl.INT ) internalFormat = _gl.RG32I;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RGB_INTEGER ) {\n\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.RGB8UI;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT ) internalFormat = _gl.RGB16UI;\n\t\t\tif ( glType === _gl.UNSIGNED_INT ) internalFormat = _gl.RGB32UI;\n\t\t\tif ( glType === _gl.BYTE ) internalFormat = _gl.RGB8I;\n\t\t\tif ( glType === _gl.SHORT ) internalFormat = _gl.RGB16I;\n\t\t\tif ( glType === _gl.INT ) internalFormat = _gl.RGB32I;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RGBA_INTEGER ) {\n\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.RGBA8UI;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT ) internalFormat = _gl.RGBA16UI;\n\t\t\tif ( glType === _gl.UNSIGNED_INT ) internalFormat = _gl.RGBA32UI;\n\t\t\tif ( glType === _gl.BYTE ) internalFormat = _gl.RGBA8I;\n\t\t\tif ( glType === _gl.SHORT ) internalFormat = _gl.RGBA16I;\n\t\t\tif ( glType === _gl.INT ) internalFormat = _gl.RGBA32I;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RGB ) {\n\n\t\t\tif ( glType === _gl.UNSIGNED_INT_5_9_9_9_REV ) internalFormat = _gl.RGB9_E5;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RGBA ) {\n\n\t\t\tconst transfer = forceLinearTransfer ? LinearTransfer : ColorManagement.getTransfer( colorSpace );\n\n\t\t\tif ( glType === _gl.FLOAT ) internalFormat = _gl.RGBA32F;\n\t\t\tif ( glType === _gl.HALF_FLOAT ) internalFormat = _gl.RGBA16F;\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = ( transfer === SRGBTransfer ) ? _gl.SRGB8_ALPHA8 : _gl.RGBA8;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT_4_4_4_4 ) internalFormat = _gl.RGBA4;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT_5_5_5_1 ) internalFormat = _gl.RGB5_A1;\n\n\t\t}\n\n\t\tif ( internalFormat === _gl.R16F || internalFormat === _gl.R32F ||\n\t\t\tinternalFormat === _gl.RG16F || internalFormat === _gl.RG32F ||\n\t\t\tinternalFormat === _gl.RGBA16F || internalFormat === _gl.RGBA32F ) {\n\n\t\t\textensions.get( 'EXT_color_buffer_float' );\n\n\t\t}\n\n\t\treturn internalFormat;\n\n\t}\n\n\tfunction getInternalDepthFormat( useStencil, depthType ) {\n\n\t\tlet glInternalFormat;\n\t\tif ( useStencil ) {\n\n\t\t\tif ( depthType === null || depthType === UnsignedIntType || depthType === UnsignedInt248Type ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH24_STENCIL8;\n\n\t\t\t} else if ( depthType === FloatType ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH32F_STENCIL8;\n\n\t\t\t} else if ( depthType === UnsignedShortType ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH24_STENCIL8;\n\t\t\t\tconsole.warn( 'DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.' );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( depthType === null || depthType === UnsignedIntType || depthType === UnsignedInt248Type ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH_COMPONENT24;\n\n\t\t\t} else if ( depthType === FloatType ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH_COMPONENT32F;\n\n\t\t\t} else if ( depthType === UnsignedShortType ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH_COMPONENT16;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn glInternalFormat;\n\n\t}\n\n\tfunction getMipLevels( texture, image ) {\n\n\t\tif ( textureNeedsGenerateMipmaps( texture ) === true || ( texture.isFramebufferTexture && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter ) ) {\n\n\t\t\treturn Math.log2( Math.max( image.width, image.height ) ) + 1;\n\n\t\t} else if ( texture.mipmaps !== undefined && texture.mipmaps.length > 0 ) {\n\n\t\t\t// user-defined mipmaps\n\n\t\t\treturn texture.mipmaps.length;\n\n\t\t} else if ( texture.isCompressedTexture && Array.isArray( texture.image ) ) {\n\n\t\t\treturn image.mipmaps.length;\n\n\t\t} else {\n\n\t\t\t// texture without mipmaps (only base level)\n\n\t\t\treturn 1;\n\n\t\t}\n\n\t}\n\n\t//\n\n\tfunction onTextureDispose( event ) {\n\n\t\tconst texture = event.target;\n\n\t\ttexture.removeEventListener( 'dispose', onTextureDispose );\n\n\t\tdeallocateTexture( texture );\n\n\t\tif ( texture.isVideoTexture ) {\n\n\t\t\t_videoTextures.delete( texture );\n\n\t\t}\n\n\t}\n\n\tfunction onRenderTargetDispose( event ) {\n\n\t\tconst renderTarget = event.target;\n\n\t\trenderTarget.removeEventListener( 'dispose', onRenderTargetDispose );\n\n\t\tdeallocateRenderTarget( renderTarget );\n\n\t}\n\n\t//\n\n\tfunction deallocateTexture( texture ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( textureProperties.__webglInit === undefined ) return;\n\n\t\t// check if it's necessary to remove the WebGLTexture object\n\n\t\tconst source = texture.source;\n\t\tconst webglTextures = _sources.get( source );\n\n\t\tif ( webglTextures ) {\n\n\t\t\tconst webglTexture = webglTextures[ textureProperties.__cacheKey ];\n\t\t\twebglTexture.usedTimes --;\n\n\t\t\t// the WebGLTexture object is not used anymore, remove it\n\n\t\t\tif ( webglTexture.usedTimes === 0 ) {\n\n\t\t\t\tdeleteTexture( texture );\n\n\t\t\t}\n\n\t\t\t// remove the weak map entry if no WebGLTexture uses the source anymore\n\n\t\t\tif ( Object.keys( webglTextures ).length === 0 ) {\n\n\t\t\t\t_sources.delete( source );\n\n\t\t\t}\n\n\t\t}\n\n\t\tproperties.remove( texture );\n\n\t}\n\n\tfunction deleteTexture( texture ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\t\t_gl.deleteTexture( textureProperties.__webglTexture );\n\n\t\tconst source = texture.source;\n\t\tconst webglTextures = _sources.get( source );\n\t\tdelete webglTextures[ textureProperties.__cacheKey ];\n\n\t\tinfo.memory.textures --;\n\n\t}\n\n\tfunction deallocateRenderTarget( renderTarget ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\tif ( renderTarget.depthTexture ) {\n\n\t\t\trenderTarget.depthTexture.dispose();\n\n\t\t\tproperties.remove( renderTarget.depthTexture );\n\n\t\t}\n\n\t\tif ( renderTarget.isWebGLCubeRenderTarget ) {\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\tif ( Array.isArray( renderTargetProperties.__webglFramebuffer[ i ] ) ) {\n\n\t\t\t\t\tfor ( let level = 0; level < renderTargetProperties.__webglFramebuffer[ i ].length; level ++ ) _gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ i ][ level ] );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ i ] );\n\n\t\t\t\t}\n\n\t\t\t\tif ( renderTargetProperties.__webglDepthbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthbuffer[ i ] );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( Array.isArray( renderTargetProperties.__webglFramebuffer ) ) {\n\n\t\t\t\tfor ( let level = 0; level < renderTargetProperties.__webglFramebuffer.length; level ++ ) _gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ level ] );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer );\n\n\t\t\t}\n\n\t\t\tif ( renderTargetProperties.__webglDepthbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthbuffer );\n\t\t\tif ( renderTargetProperties.__webglMultisampledFramebuffer ) _gl.deleteFramebuffer( renderTargetProperties.__webglMultisampledFramebuffer );\n\n\t\t\tif ( renderTargetProperties.__webglColorRenderbuffer ) {\n\n\t\t\t\tfor ( let i = 0; i < renderTargetProperties.__webglColorRenderbuffer.length; i ++ ) {\n\n\t\t\t\t\tif ( renderTargetProperties.__webglColorRenderbuffer[ i ] ) _gl.deleteRenderbuffer( renderTargetProperties.__webglColorRenderbuffer[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( renderTargetProperties.__webglDepthRenderbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthRenderbuffer );\n\n\t\t}\n\n\t\tconst textures = renderTarget.textures;\n\n\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\tconst attachmentProperties = properties.get( textures[ i ] );\n\n\t\t\tif ( attachmentProperties.__webglTexture ) {\n\n\t\t\t\t_gl.deleteTexture( attachmentProperties.__webglTexture );\n\n\t\t\t\tinfo.memory.textures --;\n\n\t\t\t}\n\n\t\t\tproperties.remove( textures[ i ] );\n\n\t\t}\n\n\t\tproperties.remove( renderTarget );\n\n\t}\n\n\t//\n\n\tlet textureUnits = 0;\n\n\tfunction resetTextureUnits() {\n\n\t\ttextureUnits = 0;\n\n\t}\n\n\tfunction allocateTextureUnit() {\n\n\t\tconst textureUnit = textureUnits;\n\n\t\tif ( textureUnit >= capabilities.maxTextures ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLTextures: Trying to use ' + textureUnit + ' texture units while this GPU supports only ' + capabilities.maxTextures );\n\n\t\t}\n\n\t\ttextureUnits += 1;\n\n\t\treturn textureUnit;\n\n\t}\n\n\tfunction getTextureCacheKey( texture ) {\n\n\t\tconst array = [];\n\n\t\tarray.push( texture.wrapS );\n\t\tarray.push( texture.wrapT );\n\t\tarray.push( texture.wrapR || 0 );\n\t\tarray.push( texture.magFilter );\n\t\tarray.push( texture.minFilter );\n\t\tarray.push( texture.anisotropy );\n\t\tarray.push( texture.internalFormat );\n\t\tarray.push( texture.format );\n\t\tarray.push( texture.type );\n\t\tarray.push( texture.generateMipmaps );\n\t\tarray.push( texture.premultiplyAlpha );\n\t\tarray.push( texture.flipY );\n\t\tarray.push( texture.unpackAlignment );\n\t\tarray.push( texture.colorSpace );\n\n\t\treturn array.join();\n\n\t}\n\n\t//\n\n\tfunction setTexture2D( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.isVideoTexture ) updateVideoTexture( texture );\n\n\t\tif ( texture.isRenderTargetTexture === false && texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tconst image = texture.image;\n\n\t\t\tif ( image === null ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture marked for update but no image data found.' );\n\n\t\t\t} else if ( image.complete === false ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture marked for update but image is incomplete' );\n\n\t\t\t} else {\n\n\t\t\t\tuploadTexture( textureProperties, texture, slot );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.bindTexture( _gl.TEXTURE_2D, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t}\n\n\tfunction setTexture2DArray( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tuploadTexture( textureProperties, texture, slot );\n\t\t\treturn;\n\n\t\t}\n\n\t\tstate.bindTexture( _gl.TEXTURE_2D_ARRAY, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t}\n\n\tfunction setTexture3D( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tuploadTexture( textureProperties, texture, slot );\n\t\t\treturn;\n\n\t\t}\n\n\t\tstate.bindTexture( _gl.TEXTURE_3D, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t}\n\n\tfunction setTextureCube( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tuploadCubeTexture( textureProperties, texture, slot );\n\t\t\treturn;\n\n\t\t}\n\n\t\tstate.bindTexture( _gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t}\n\n\tconst wrappingToGL = {\n\t\t[ RepeatWrapping ]: _gl.REPEAT,\n\t\t[ ClampToEdgeWrapping ]: _gl.CLAMP_TO_EDGE,\n\t\t[ MirroredRepeatWrapping ]: _gl.MIRRORED_REPEAT\n\t};\n\n\tconst filterToGL = {\n\t\t[ NearestFilter ]: _gl.NEAREST,\n\t\t[ NearestMipmapNearestFilter ]: _gl.NEAREST_MIPMAP_NEAREST,\n\t\t[ NearestMipmapLinearFilter ]: _gl.NEAREST_MIPMAP_LINEAR,\n\n\t\t[ LinearFilter ]: _gl.LINEAR,\n\t\t[ LinearMipmapNearestFilter ]: _gl.LINEAR_MIPMAP_NEAREST,\n\t\t[ LinearMipmapLinearFilter ]: _gl.LINEAR_MIPMAP_LINEAR\n\t};\n\n\tconst compareToGL = {\n\t\t[ NeverCompare ]: _gl.NEVER,\n\t\t[ AlwaysCompare ]: _gl.ALWAYS,\n\t\t[ LessCompare ]: _gl.LESS,\n\t\t[ LessEqualCompare ]: _gl.LEQUAL,\n\t\t[ EqualCompare ]: _gl.EQUAL,\n\t\t[ GreaterEqualCompare ]: _gl.GEQUAL,\n\t\t[ GreaterCompare ]: _gl.GREATER,\n\t\t[ NotEqualCompare ]: _gl.NOTEQUAL\n\t};\n\n\tfunction setTextureParameters( textureType, texture ) {\n\n\t\tif ( texture.type === FloatType && extensions.has( 'OES_texture_float_linear' ) === false &&\n\t\t\t( texture.magFilter === LinearFilter || texture.magFilter === LinearMipmapNearestFilter || texture.magFilter === NearestMipmapLinearFilter || texture.magFilter === LinearMipmapLinearFilter ||\n\t\t\ttexture.minFilter === LinearFilter || texture.minFilter === LinearMipmapNearestFilter || texture.minFilter === NearestMipmapLinearFilter || texture.minFilter === LinearMipmapLinearFilter ) ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device.' );\n\n\t\t}\n\n\t\t_gl.texParameteri( textureType, _gl.TEXTURE_WRAP_S, wrappingToGL[ texture.wrapS ] );\n\t\t_gl.texParameteri( textureType, _gl.TEXTURE_WRAP_T, wrappingToGL[ texture.wrapT ] );\n\n\t\tif ( textureType === _gl.TEXTURE_3D || textureType === _gl.TEXTURE_2D_ARRAY ) {\n\n\t\t\t_gl.texParameteri( textureType, _gl.TEXTURE_WRAP_R, wrappingToGL[ texture.wrapR ] );\n\n\t\t}\n\n\t\t_gl.texParameteri( textureType, _gl.TEXTURE_MAG_FILTER, filterToGL[ texture.magFilter ] );\n\t\t_gl.texParameteri( textureType, _gl.TEXTURE_MIN_FILTER, filterToGL[ texture.minFilter ] );\n\n\t\tif ( texture.compareFunction ) {\n\n\t\t\t_gl.texParameteri( textureType, _gl.TEXTURE_COMPARE_MODE, _gl.COMPARE_REF_TO_TEXTURE );\n\t\t\t_gl.texParameteri( textureType, _gl.TEXTURE_COMPARE_FUNC, compareToGL[ texture.compareFunction ] );\n\n\t\t}\n\n\t\tif ( extensions.has( 'EXT_texture_filter_anisotropic' ) === true ) {\n\n\t\t\tif ( texture.magFilter === NearestFilter ) return;\n\t\t\tif ( texture.minFilter !== NearestMipmapLinearFilter && texture.minFilter !== LinearMipmapLinearFilter ) return;\n\t\t\tif ( texture.type === FloatType && extensions.has( 'OES_texture_float_linear' ) === false ) return; // verify extension\n\n\t\t\tif ( texture.anisotropy > 1 || properties.get( texture ).__currentAnisotropy ) {\n\n\t\t\t\tconst extension = extensions.get( 'EXT_texture_filter_anisotropic' );\n\t\t\t\t_gl.texParameterf( textureType, extension.TEXTURE_MAX_ANISOTROPY_EXT, Math.min( texture.anisotropy, capabilities.getMaxAnisotropy() ) );\n\t\t\t\tproperties.get( texture ).__currentAnisotropy = texture.anisotropy;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction initTexture( textureProperties, texture ) {\n\n\t\tlet forceUpload = false;\n\n\t\tif ( textureProperties.__webglInit === undefined ) {\n\n\t\t\ttextureProperties.__webglInit = true;\n\n\t\t\ttexture.addEventListener( 'dispose', onTextureDispose );\n\n\t\t}\n\n\t\t// create Source <-> WebGLTextures mapping if necessary\n\n\t\tconst source = texture.source;\n\t\tlet webglTextures = _sources.get( source );\n\n\t\tif ( webglTextures === undefined ) {\n\n\t\t\twebglTextures = {};\n\t\t\t_sources.set( source, webglTextures );\n\n\t\t}\n\n\t\t// check if there is already a WebGLTexture object for the given texture parameters\n\n\t\tconst textureCacheKey = getTextureCacheKey( texture );\n\n\t\tif ( textureCacheKey !== textureProperties.__cacheKey ) {\n\n\t\t\t// if not, create a new instance of WebGLTexture\n\n\t\t\tif ( webglTextures[ textureCacheKey ] === undefined ) {\n\n\t\t\t\t// create new entry\n\n\t\t\t\twebglTextures[ textureCacheKey ] = {\n\t\t\t\t\ttexture: _gl.createTexture(),\n\t\t\t\t\tusedTimes: 0\n\t\t\t\t};\n\n\t\t\t\tinfo.memory.textures ++;\n\n\t\t\t\t// when a new instance of WebGLTexture was created, a texture upload is required\n\t\t\t\t// even if the image contents are identical\n\n\t\t\t\tforceUpload = true;\n\n\t\t\t}\n\n\t\t\twebglTextures[ textureCacheKey ].usedTimes ++;\n\n\t\t\t// every time the texture cache key changes, it's necessary to check if an instance of\n\t\t\t// WebGLTexture can be deleted in order to avoid a memory leak.\n\n\t\t\tconst webglTexture = webglTextures[ textureProperties.__cacheKey ];\n\n\t\t\tif ( webglTexture !== undefined ) {\n\n\t\t\t\twebglTextures[ textureProperties.__cacheKey ].usedTimes --;\n\n\t\t\t\tif ( webglTexture.usedTimes === 0 ) {\n\n\t\t\t\t\tdeleteTexture( texture );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// store references to cache key and WebGLTexture object\n\n\t\t\ttextureProperties.__cacheKey = textureCacheKey;\n\t\t\ttextureProperties.__webglTexture = webglTextures[ textureCacheKey ].texture;\n\n\t\t}\n\n\t\treturn forceUpload;\n\n\t}\n\n\tfunction uploadTexture( textureProperties, texture, slot ) {\n\n\t\tlet textureType = _gl.TEXTURE_2D;\n\n\t\tif ( texture.isDataArrayTexture || texture.isCompressedArrayTexture ) textureType = _gl.TEXTURE_2D_ARRAY;\n\t\tif ( texture.isData3DTexture ) textureType = _gl.TEXTURE_3D;\n\n\t\tconst forceUpload = initTexture( textureProperties, texture );\n\t\tconst source = texture.source;\n\n\t\tstate.bindTexture( textureType, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t\tconst sourceProperties = properties.get( source );\n\n\t\tif ( source.version !== sourceProperties.__version || forceUpload === true ) {\n\n\t\t\tstate.activeTexture( _gl.TEXTURE0 + slot );\n\n\t\t\tconst workingPrimaries = ColorManagement.getPrimaries( ColorManagement.workingColorSpace );\n\t\t\tconst texturePrimaries = texture.colorSpace === NoColorSpace ? null : ColorManagement.getPrimaries( texture.colorSpace );\n\t\t\tconst unpackConversion = texture.colorSpace === NoColorSpace || workingPrimaries === texturePrimaries ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL;\n\n\t\t\t_gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, texture.flipY );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ALIGNMENT, texture.unpackAlignment );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, unpackConversion );\n\n\t\t\tlet image = resizeImage( texture.image, false, capabilities.maxTextureSize );\n\t\t\timage = verifyColorSpace( texture, image );\n\n\t\t\tconst glFormat = utils.convert( texture.format, texture.colorSpace );\n\n\t\t\tconst glType = utils.convert( texture.type );\n\t\t\tlet glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace, texture.isVideoTexture );\n\n\t\t\tsetTextureParameters( textureType, texture );\n\n\t\t\tlet mipmap;\n\t\t\tconst mipmaps = texture.mipmaps;\n\n\t\t\tconst useTexStorage = ( texture.isVideoTexture !== true );\n\t\t\tconst allocateMemory = ( sourceProperties.__version === undefined ) || ( forceUpload === true );\n\t\t\tconst dataReady = source.dataReady;\n\t\t\tconst levels = getMipLevels( texture, image );\n\n\t\t\tif ( texture.isDepthTexture ) {\n\n\t\t\t\tglInternalFormat = getInternalDepthFormat( texture.format === DepthStencilFormat, texture.type );\n\n\t\t\t\t//\n\n\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, 1, glInternalFormat, image.width, image.height );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, null );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isDataTexture ) {\n\n\t\t\t\t// use manually created mipmaps if available\n\t\t\t\t// if there are no manual mipmaps\n\t\t\t\t// set 0 level mipmap and then use GL to generate other mipmap levels\n\n\t\t\t\tif ( mipmaps.length > 0 ) {\n\n\t\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, mipmaps[ 0 ].width, mipmaps[ 0 ].height );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttexture.generateMipmaps = false;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, image.width, image.height );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_2D, 0, 0, 0, image.width, image.height, glFormat, glType, image.data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, image.data );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isCompressedTexture ) {\n\n\t\t\t\tif ( texture.isCompressedArrayTexture ) {\n\n\t\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage3D( _gl.TEXTURE_2D_ARRAY, levels, glInternalFormat, mipmaps[ 0 ].width, mipmaps[ 0 ].height, image.depth );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\t\t\tif ( texture.format !== RGBAFormat ) {\n\n\t\t\t\t\t\t\tif ( glFormat !== null ) {\n\n\t\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\t\tif ( texture.layerUpdates.size > 0 ) {\n\n\t\t\t\t\t\t\t\t\t\t\tconst layerByteLength = getByteLength( mipmap.width, mipmap.height, texture.format, texture.type );\n\n\t\t\t\t\t\t\t\t\t\t\tfor ( const layerIndex of texture.layerUpdates ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\tconst layerData = mipmap.data.subarray(\n\t\t\t\t\t\t\t\t\t\t\t\t\tlayerIndex * layerByteLength / mipmap.data.BYTES_PER_ELEMENT,\n\t\t\t\t\t\t\t\t\t\t\t\t\t( layerIndex + 1 ) * layerByteLength / mipmap.data.BYTES_PER_ELEMENT\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\tstate.compressedTexSubImage3D( _gl.TEXTURE_2D_ARRAY, i, 0, 0, layerIndex, mipmap.width, mipmap.height, 1, glFormat, layerData );\n\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\ttexture.clearLayerUpdates();\n\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\tstate.compressedTexSubImage3D( _gl.TEXTURE_2D_ARRAY, i, 0, 0, 0, mipmap.width, mipmap.height, image.depth, glFormat, mipmap.data );\n\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\tstate.compressedTexImage3D( _gl.TEXTURE_2D_ARRAY, i, glInternalFormat, mipmap.width, mipmap.height, image.depth, 0, mipmap.data, 0, 0 );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\tstate.texSubImage3D( _gl.TEXTURE_2D_ARRAY, i, 0, 0, 0, mipmap.width, mipmap.height, image.depth, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage3D( _gl.TEXTURE_2D_ARRAY, i, glInternalFormat, mipmap.width, mipmap.height, image.depth, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, mipmaps[ 0 ].width, mipmaps[ 0 ].height );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\t\t\tif ( texture.format !== RGBAFormat ) {\n\n\t\t\t\t\t\t\tif ( glFormat !== null ) {\n\n\t\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\t\tstate.compressedTexSubImage2D( _gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data );\n\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\tstate.compressedTexImage2D( _gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isDataArrayTexture ) {\n\n\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage3D( _gl.TEXTURE_2D_ARRAY, levels, glInternalFormat, image.width, image.height, image.depth );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\tif ( texture.layerUpdates.size > 0 ) {\n\n\t\t\t\t\t\t\tconst layerByteLength = getByteLength( image.width, image.height, texture.format, texture.type );\n\n\t\t\t\t\t\t\tfor ( const layerIndex of texture.layerUpdates ) {\n\n\t\t\t\t\t\t\t\tconst layerData = image.data.subarray(\n\t\t\t\t\t\t\t\t\tlayerIndex * layerByteLength / image.data.BYTES_PER_ELEMENT,\n\t\t\t\t\t\t\t\t\t( layerIndex + 1 ) * layerByteLength / image.data.BYTES_PER_ELEMENT\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tstate.texSubImage3D( _gl.TEXTURE_2D_ARRAY, 0, 0, 0, layerIndex, image.width, image.height, 1, glFormat, glType, layerData );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\ttexture.clearLayerUpdates();\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texSubImage3D( _gl.TEXTURE_2D_ARRAY, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tstate.texImage3D( _gl.TEXTURE_2D_ARRAY, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data );\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isData3DTexture ) {\n\n\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage3D( _gl.TEXTURE_3D, levels, glInternalFormat, image.width, image.height, image.depth );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\tstate.texSubImage3D( _gl.TEXTURE_3D, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tstate.texImage3D( _gl.TEXTURE_3D, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data );\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isFramebufferTexture ) {\n\n\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, image.width, image.height );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tlet width = image.width, height = image.height;\n\n\t\t\t\t\t\tfor ( let i = 0; i < levels; i ++ ) {\n\n\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, i, glInternalFormat, width, height, 0, glFormat, glType, null );\n\n\t\t\t\t\t\t\twidth >>= 1;\n\t\t\t\t\t\t\theight >>= 1;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// regular Texture (image, video, canvas)\n\n\t\t\t\t// use manually created mipmaps if available\n\t\t\t\t// if there are no manual mipmaps\n\t\t\t\t// set 0 level mipmap and then use GL to generate other mipmap levels\n\n\t\t\t\tif ( mipmaps.length > 0 ) {\n\n\t\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t\tconst dimensions = getDimensions( mipmaps[ 0 ] );\n\n\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, dimensions.width, dimensions.height );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_2D, i, 0, 0, glFormat, glType, mipmap );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, i, glInternalFormat, glFormat, glType, mipmap );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttexture.generateMipmaps = false;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\t\tconst dimensions = getDimensions( image );\n\n\t\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, dimensions.width, dimensions.height );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_2D, 0, 0, 0, glFormat, glType, image );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, 0, glInternalFormat, glFormat, glType, image );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture ) ) {\n\n\t\t\t\tgenerateMipmap( textureType );\n\n\t\t\t}\n\n\t\t\tsourceProperties.__version = source.version;\n\n\t\t\tif ( texture.onUpdate ) texture.onUpdate( texture );\n\n\t\t}\n\n\t\ttextureProperties.__version = texture.version;\n\n\t}\n\n\tfunction uploadCubeTexture( textureProperties, texture, slot ) {\n\n\t\tif ( texture.image.length !== 6 ) return;\n\n\t\tconst forceUpload = initTexture( textureProperties, texture );\n\t\tconst source = texture.source;\n\n\t\tstate.bindTexture( _gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t\tconst sourceProperties = properties.get( source );\n\n\t\tif ( source.version !== sourceProperties.__version || forceUpload === true ) {\n\n\t\t\tstate.activeTexture( _gl.TEXTURE0 + slot );\n\n\t\t\tconst workingPrimaries = ColorManagement.getPrimaries( ColorManagement.workingColorSpace );\n\t\t\tconst texturePrimaries = texture.colorSpace === NoColorSpace ? null : ColorManagement.getPrimaries( texture.colorSpace );\n\t\t\tconst unpackConversion = texture.colorSpace === NoColorSpace || workingPrimaries === texturePrimaries ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL;\n\n\t\t\t_gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, texture.flipY );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ALIGNMENT, texture.unpackAlignment );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, unpackConversion );\n\n\t\t\tconst isCompressed = ( texture.isCompressedTexture || texture.image[ 0 ].isCompressedTexture );\n\t\t\tconst isDataTexture = ( texture.image[ 0 ] && texture.image[ 0 ].isDataTexture );\n\n\t\t\tconst cubeImage = [];\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\tif ( ! isCompressed && ! isDataTexture ) {\n\n\t\t\t\t\tcubeImage[ i ] = resizeImage( texture.image[ i ], true, capabilities.maxCubemapSize );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tcubeImage[ i ] = isDataTexture ? texture.image[ i ].image : texture.image[ i ];\n\n\t\t\t\t}\n\n\t\t\t\tcubeImage[ i ] = verifyColorSpace( texture, cubeImage[ i ] );\n\n\t\t\t}\n\n\t\t\tconst image = cubeImage[ 0 ],\n\t\t\t\tglFormat = utils.convert( texture.format, texture.colorSpace ),\n\t\t\t\tglType = utils.convert( texture.type ),\n\t\t\t\tglInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace );\n\n\t\t\tconst useTexStorage = ( texture.isVideoTexture !== true );\n\t\t\tconst allocateMemory = ( sourceProperties.__version === undefined ) || ( forceUpload === true );\n\t\t\tconst dataReady = source.dataReady;\n\t\t\tlet levels = getMipLevels( texture, image );\n\n\t\t\tsetTextureParameters( _gl.TEXTURE_CUBE_MAP, texture );\n\n\t\t\tlet mipmaps;\n\n\t\t\tif ( isCompressed ) {\n\n\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_CUBE_MAP, levels, glInternalFormat, image.width, image.height );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\t\tmipmaps = cubeImage[ i ].mipmaps;\n\n\t\t\t\t\tfor ( let j = 0; j < mipmaps.length; j ++ ) {\n\n\t\t\t\t\t\tconst mipmap = mipmaps[ j ];\n\n\t\t\t\t\t\tif ( texture.format !== RGBAFormat ) {\n\n\t\t\t\t\t\t\tif ( glFormat !== null ) {\n\n\t\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\t\tstate.compressedTexSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data );\n\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\tstate.compressedTexImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()' );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tmipmaps = texture.mipmaps;\n\n\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t// TODO: Uniformly handle mipmap definitions\n\t\t\t\t\t// Normal textures and compressed cube textures define base level + mips with their mipmap array\n\t\t\t\t\t// Uncompressed cube textures use their mipmap array only for mips (no base level)\n\n\t\t\t\t\tif ( mipmaps.length > 0 ) levels ++;\n\n\t\t\t\t\tconst dimensions = getDimensions( cubeImage[ 0 ] );\n\n\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_CUBE_MAP, levels, glInternalFormat, dimensions.width, dimensions.height );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\t\tif ( isDataTexture ) {\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, 0, 0, cubeImage[ i ].width, cubeImage[ i ].height, glFormat, glType, cubeImage[ i ].data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, cubeImage[ i ].width, cubeImage[ i ].height, 0, glFormat, glType, cubeImage[ i ].data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( let j = 0; j < mipmaps.length; j ++ ) {\n\n\t\t\t\t\t\t\tconst mipmap = mipmaps[ j ];\n\t\t\t\t\t\t\tconst mipmapImage = mipmap.image[ i ].image;\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, 0, 0, mipmapImage.width, mipmapImage.height, glFormat, glType, mipmapImage.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, glInternalFormat, mipmapImage.width, mipmapImage.height, 0, glFormat, glType, mipmapImage.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, 0, 0, glFormat, glType, cubeImage[ i ] );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, glFormat, glType, cubeImage[ i ] );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( let j = 0; j < mipmaps.length; j ++ ) {\n\n\t\t\t\t\t\t\tconst mipmap = mipmaps[ j ];\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, 0, 0, glFormat, glType, mipmap.image[ i ] );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, glInternalFormat, glFormat, glType, mipmap.image[ i ] );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture ) ) {\n\n\t\t\t\t// We assume images for cube map have the same size.\n\t\t\t\tgenerateMipmap( _gl.TEXTURE_CUBE_MAP );\n\n\t\t\t}\n\n\t\t\tsourceProperties.__version = source.version;\n\n\t\t\tif ( texture.onUpdate ) texture.onUpdate( texture );\n\n\t\t}\n\n\t\ttextureProperties.__version = texture.version;\n\n\t}\n\n\t// Render targets\n\n\t// Setup storage for target texture and bind it to correct framebuffer\n\tfunction setupFrameBufferTexture( framebuffer, renderTarget, texture, attachment, textureTarget, level ) {\n\n\t\tconst glFormat = utils.convert( texture.format, texture.colorSpace );\n\t\tconst glType = utils.convert( texture.type );\n\t\tconst glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace );\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\tconst textureProperties = properties.get( texture );\n\n\t\ttextureProperties.__renderTarget = renderTarget;\n\n\t\tif ( ! renderTargetProperties.__hasExternalTextures ) {\n\n\t\t\tconst width = Math.max( 1, renderTarget.width >> level );\n\t\t\tconst height = Math.max( 1, renderTarget.height >> level );\n\n\t\t\tif ( textureTarget === _gl.TEXTURE_3D || textureTarget === _gl.TEXTURE_2D_ARRAY ) {\n\n\t\t\t\tstate.texImage3D( textureTarget, level, glInternalFormat, width, height, renderTarget.depth, 0, glFormat, glType, null );\n\n\t\t\t} else {\n\n\t\t\t\tstate.texImage2D( textureTarget, level, glInternalFormat, width, height, 0, glFormat, glType, null );\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\tif ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\tmultisampledRTTExt.framebufferTexture2DMultisampleEXT( _gl.FRAMEBUFFER, attachment, textureTarget, textureProperties.__webglTexture, 0, getRenderTargetSamples( renderTarget ) );\n\n\t\t} else if ( textureTarget === _gl.TEXTURE_2D || ( textureTarget >= _gl.TEXTURE_CUBE_MAP_POSITIVE_X && textureTarget <= _gl.TEXTURE_CUBE_MAP_NEGATIVE_Z ) ) { // see #24753\n\n\t\t\t_gl.framebufferTexture2D( _gl.FRAMEBUFFER, attachment, textureTarget, textureProperties.__webglTexture, level );\n\n\t\t}\n\n\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, null );\n\n\t}\n\n\t// Setup storage for internal depth/stencil buffers and bind to correct framebuffer\n\tfunction setupRenderBufferStorage( renderbuffer, renderTarget, isMultisample ) {\n\n\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, renderbuffer );\n\n\t\tif ( renderTarget.depthBuffer ) {\n\n\t\t\t// retrieve the depth attachment types\n\t\t\tconst depthTexture = renderTarget.depthTexture;\n\t\t\tconst depthType = depthTexture && depthTexture.isDepthTexture ? depthTexture.type : null;\n\t\t\tconst glInternalFormat = getInternalDepthFormat( renderTarget.stencilBuffer, depthType );\n\t\t\tconst glAttachmentType = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n\n\t\t\t// set up the attachment\n\t\t\tconst samples = getRenderTargetSamples( renderTarget );\n\t\t\tconst isUseMultisampledRTT = useMultisampledRTT( renderTarget );\n\t\t\tif ( isUseMultisampledRTT ) {\n\n\t\t\t\tmultisampledRTTExt.renderbufferStorageMultisampleEXT( _gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t} else if ( isMultisample ) {\n\n\t\t\t\t_gl.renderbufferStorageMultisample( _gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.renderbufferStorage( _gl.RENDERBUFFER, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t}\n\n\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, glAttachmentType, _gl.RENDERBUFFER, renderbuffer );\n\n\t\t} else {\n\n\t\t\tconst textures = renderTarget.textures;\n\n\t\t\tfor ( let i = 0; i < textures.length; i ++ ) {\n\n\t\t\t\tconst texture = textures[ i ];\n\n\t\t\t\tconst glFormat = utils.convert( texture.format, texture.colorSpace );\n\t\t\t\tconst glType = utils.convert( texture.type );\n\t\t\t\tconst glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace );\n\t\t\t\tconst samples = getRenderTargetSamples( renderTarget );\n\n\t\t\t\tif ( isMultisample && useMultisampledRTT( renderTarget ) === false ) {\n\n\t\t\t\t\t_gl.renderbufferStorageMultisample( _gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\t} else if ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\t\t\tmultisampledRTTExt.renderbufferStorageMultisampleEXT( _gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_gl.renderbufferStorage( _gl.RENDERBUFFER, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, null );\n\n\t}\n\n\t// Setup resources for a Depth Texture for a FBO (needs an extension)\n\tfunction setupDepthTexture( framebuffer, renderTarget ) {\n\n\t\tconst isCube = ( renderTarget && renderTarget.isWebGLCubeRenderTarget );\n\t\tif ( isCube ) throw new Error( 'Depth Texture with cube render targets is not supported' );\n\n\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\tif ( ! ( renderTarget.depthTexture && renderTarget.depthTexture.isDepthTexture ) ) {\n\n\t\t\tthrow new Error( 'renderTarget.depthTexture must be an instance of THREE.DepthTexture' );\n\n\t\t}\n\n\t\tconst textureProperties = properties.get( renderTarget.depthTexture );\n\t\ttextureProperties.__renderTarget = renderTarget;\n\n\t\t// upload an empty depth texture with framebuffer size\n\t\tif ( ! textureProperties.__webglTexture ||\n\t\t\t\trenderTarget.depthTexture.image.width !== renderTarget.width ||\n\t\t\t\trenderTarget.depthTexture.image.height !== renderTarget.height ) {\n\n\t\t\trenderTarget.depthTexture.image.width = renderTarget.width;\n\t\t\trenderTarget.depthTexture.image.height = renderTarget.height;\n\t\t\trenderTarget.depthTexture.needsUpdate = true;\n\n\t\t}\n\n\t\tsetTexture2D( renderTarget.depthTexture, 0 );\n\n\t\tconst webglDepthTexture = textureProperties.__webglTexture;\n\t\tconst samples = getRenderTargetSamples( renderTarget );\n\n\t\tif ( renderTarget.depthTexture.format === DepthFormat ) {\n\n\t\t\tif ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\t\tmultisampledRTTExt.framebufferTexture2DMultisampleEXT( _gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0, samples );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.framebufferTexture2D( _gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0 );\n\n\t\t\t}\n\n\t\t} else if ( renderTarget.depthTexture.format === DepthStencilFormat ) {\n\n\t\t\tif ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\t\tmultisampledRTTExt.framebufferTexture2DMultisampleEXT( _gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0, samples );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.framebufferTexture2D( _gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0 );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'Unknown depthTexture format' );\n\n\t\t}\n\n\t}\n\n\t// Setup GL resources for a non-texture depth buffer\n\tfunction setupDepthRenderbuffer( renderTarget ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\tconst isCube = ( renderTarget.isWebGLCubeRenderTarget === true );\n\n\t\t// if the bound depth texture has changed\n\t\tif ( renderTargetProperties.__boundDepthTexture !== renderTarget.depthTexture ) {\n\n\t\t\t// fire the dispose event to get rid of stored state associated with the previously bound depth buffer\n\t\t\tconst depthTexture = renderTarget.depthTexture;\n\t\t\tif ( renderTargetProperties.__depthDisposeCallback ) {\n\n\t\t\t\trenderTargetProperties.__depthDisposeCallback();\n\n\t\t\t}\n\n\t\t\t// set up dispose listeners to track when the currently attached buffer is implicitly unbound\n\t\t\tif ( depthTexture ) {\n\n\t\t\t\tconst disposeEvent = () => {\n\n\t\t\t\t\tdelete renderTargetProperties.__boundDepthTexture;\n\t\t\t\t\tdelete renderTargetProperties.__depthDisposeCallback;\n\t\t\t\t\tdepthTexture.removeEventListener( 'dispose', disposeEvent );\n\n\t\t\t\t};\n\n\t\t\t\tdepthTexture.addEventListener( 'dispose', disposeEvent );\n\t\t\t\trenderTargetProperties.__depthDisposeCallback = disposeEvent;\n\n\t\t\t}\n\n\t\t\trenderTargetProperties.__boundDepthTexture = depthTexture;\n\n\t\t}\n\n\t\tif ( renderTarget.depthTexture && ! renderTargetProperties.__autoAllocateDepthBuffer ) {\n\n\t\t\tif ( isCube ) throw new Error( 'target.depthTexture not supported in Cube render targets' );\n\n\t\t\tsetupDepthTexture( renderTargetProperties.__webglFramebuffer, renderTarget );\n\n\t\t} else {\n\n\t\t\tif ( isCube ) {\n\n\t\t\t\trenderTargetProperties.__webglDepthbuffer = [];\n\n\t\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer[ i ] );\n\n\t\t\t\t\tif ( renderTargetProperties.__webglDepthbuffer[ i ] === undefined ) {\n\n\t\t\t\t\t\trenderTargetProperties.__webglDepthbuffer[ i ] = _gl.createRenderbuffer();\n\t\t\t\t\t\tsetupRenderBufferStorage( renderTargetProperties.__webglDepthbuffer[ i ], renderTarget, false );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// attach buffer if it's been created already\n\t\t\t\t\t\tconst glAttachmentType = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n\t\t\t\t\t\tconst renderbuffer = renderTargetProperties.__webglDepthbuffer[ i ];\n\t\t\t\t\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, renderbuffer );\n\t\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, glAttachmentType, _gl.RENDERBUFFER, renderbuffer );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer );\n\n\t\t\t\tif ( renderTargetProperties.__webglDepthbuffer === undefined ) {\n\n\t\t\t\t\trenderTargetProperties.__webglDepthbuffer = _gl.createRenderbuffer();\n\t\t\t\t\tsetupRenderBufferStorage( renderTargetProperties.__webglDepthbuffer, renderTarget, false );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// attach buffer if it's been created already\n\t\t\t\t\tconst glAttachmentType = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n\t\t\t\t\tconst renderbuffer = renderTargetProperties.__webglDepthbuffer;\n\t\t\t\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, renderbuffer );\n\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, glAttachmentType, _gl.RENDERBUFFER, renderbuffer );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, null );\n\n\t}\n\n\t// rebind framebuffer with external textures\n\tfunction rebindTextures( renderTarget, colorTexture, depthTexture ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\tif ( colorTexture !== undefined ) {\n\n\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, renderTarget.texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D, 0 );\n\n\t\t}\n\n\t\tif ( depthTexture !== undefined ) {\n\n\t\t\tsetupDepthRenderbuffer( renderTarget );\n\n\t\t}\n\n\t}\n\n\t// Set up GL resources for the render target\n\tfunction setupRenderTarget( renderTarget ) {\n\n\t\tconst texture = renderTarget.texture;\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\tconst textureProperties = properties.get( texture );\n\n\t\trenderTarget.addEventListener( 'dispose', onRenderTargetDispose );\n\n\t\tconst textures = renderTarget.textures;\n\n\t\tconst isCube = ( renderTarget.isWebGLCubeRenderTarget === true );\n\t\tconst isMultipleRenderTargets = ( textures.length > 1 );\n\n\t\tif ( ! isMultipleRenderTargets ) {\n\n\t\t\tif ( textureProperties.__webglTexture === undefined ) {\n\n\t\t\t\ttextureProperties.__webglTexture = _gl.createTexture();\n\n\t\t\t}\n\n\t\t\ttextureProperties.__version = texture.version;\n\t\t\tinfo.memory.textures ++;\n\n\t\t}\n\n\t\t// Setup framebuffer\n\n\t\tif ( isCube ) {\n\n\t\t\trenderTargetProperties.__webglFramebuffer = [];\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\tif ( texture.mipmaps && texture.mipmaps.length > 0 ) {\n\n\t\t\t\t\trenderTargetProperties.__webglFramebuffer[ i ] = [];\n\n\t\t\t\t\tfor ( let level = 0; level < texture.mipmaps.length; level ++ ) {\n\n\t\t\t\t\t\trenderTargetProperties.__webglFramebuffer[ i ][ level ] = _gl.createFramebuffer();\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\trenderTargetProperties.__webglFramebuffer[ i ] = _gl.createFramebuffer();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( texture.mipmaps && texture.mipmaps.length > 0 ) {\n\n\t\t\t\trenderTargetProperties.__webglFramebuffer = [];\n\n\t\t\t\tfor ( let level = 0; level < texture.mipmaps.length; level ++ ) {\n\n\t\t\t\t\trenderTargetProperties.__webglFramebuffer[ level ] = _gl.createFramebuffer();\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\trenderTargetProperties.__webglFramebuffer = _gl.createFramebuffer();\n\n\t\t\t}\n\n\t\t\tif ( isMultipleRenderTargets ) {\n\n\t\t\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst attachmentProperties = properties.get( textures[ i ] );\n\n\t\t\t\t\tif ( attachmentProperties.__webglTexture === undefined ) {\n\n\t\t\t\t\t\tattachmentProperties.__webglTexture = _gl.createTexture();\n\n\t\t\t\t\t\tinfo.memory.textures ++;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( ( renderTarget.samples > 0 ) && useMultisampledRTT( renderTarget ) === false ) {\n\n\t\t\t\trenderTargetProperties.__webglMultisampledFramebuffer = _gl.createFramebuffer();\n\t\t\t\trenderTargetProperties.__webglColorRenderbuffer = [];\n\n\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer );\n\n\t\t\t\tfor ( let i = 0; i < textures.length; i ++ ) {\n\n\t\t\t\t\tconst texture = textures[ i ];\n\t\t\t\t\trenderTargetProperties.__webglColorRenderbuffer[ i ] = _gl.createRenderbuffer();\n\n\t\t\t\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[ i ] );\n\n\t\t\t\t\tconst glFormat = utils.convert( texture.format, texture.colorSpace );\n\t\t\t\t\tconst glType = utils.convert( texture.type );\n\t\t\t\t\tconst glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace, renderTarget.isXRRenderTarget === true );\n\t\t\t\t\tconst samples = getRenderTargetSamples( renderTarget );\n\t\t\t\t\t_gl.renderbufferStorageMultisample( _gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[ i ] );\n\n\t\t\t\t}\n\n\t\t\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, null );\n\n\t\t\t\tif ( renderTarget.depthBuffer ) {\n\n\t\t\t\t\trenderTargetProperties.__webglDepthRenderbuffer = _gl.createRenderbuffer();\n\t\t\t\t\tsetupRenderBufferStorage( renderTargetProperties.__webglDepthRenderbuffer, renderTarget, true );\n\n\t\t\t\t}\n\n\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, null );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Setup color buffer\n\n\t\tif ( isCube ) {\n\n\t\t\tstate.bindTexture( _gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture );\n\t\t\tsetTextureParameters( _gl.TEXTURE_CUBE_MAP, texture );\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\tif ( texture.mipmaps && texture.mipmaps.length > 0 ) {\n\n\t\t\t\t\tfor ( let level = 0; level < texture.mipmaps.length; level ++ ) {\n\n\t\t\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ i ][ level ], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, level );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ i ], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture ) ) {\n\n\t\t\t\tgenerateMipmap( _gl.TEXTURE_CUBE_MAP );\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t} else if ( isMultipleRenderTargets ) {\n\n\t\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\t\tconst attachment = textures[ i ];\n\t\t\t\tconst attachmentProperties = properties.get( attachment );\n\n\t\t\t\tstate.bindTexture( _gl.TEXTURE_2D, attachmentProperties.__webglTexture );\n\t\t\t\tsetTextureParameters( _gl.TEXTURE_2D, attachment );\n\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, attachment, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, 0 );\n\n\t\t\t\tif ( textureNeedsGenerateMipmaps( attachment ) ) {\n\n\t\t\t\t\tgenerateMipmap( _gl.TEXTURE_2D );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t} else {\n\n\t\t\tlet glTextureType = _gl.TEXTURE_2D;\n\n\t\t\tif ( renderTarget.isWebGL3DRenderTarget || renderTarget.isWebGLArrayRenderTarget ) {\n\n\t\t\t\tglTextureType = renderTarget.isWebGL3DRenderTarget ? _gl.TEXTURE_3D : _gl.TEXTURE_2D_ARRAY;\n\n\t\t\t}\n\n\t\t\tstate.bindTexture( glTextureType, textureProperties.__webglTexture );\n\t\t\tsetTextureParameters( glTextureType, texture );\n\n\t\t\tif ( texture.mipmaps && texture.mipmaps.length > 0 ) {\n\n\t\t\t\tfor ( let level = 0; level < texture.mipmaps.length; level ++ ) {\n\n\t\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ level ], renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType, level );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType, 0 );\n\n\t\t\t}\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture ) ) {\n\n\t\t\t\tgenerateMipmap( glTextureType );\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t}\n\n\t\t// Setup depth and stencil buffers\n\n\t\tif ( renderTarget.depthBuffer ) {\n\n\t\t\tsetupDepthRenderbuffer( renderTarget );\n\n\t\t}\n\n\t}\n\n\tfunction updateRenderTargetMipmap( renderTarget ) {\n\n\t\tconst textures = renderTarget.textures;\n\n\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\tconst texture = textures[ i ];\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture ) ) {\n\n\t\t\t\tconst targetType = getTargetType( renderTarget );\n\t\t\t\tconst webglTexture = properties.get( texture ).__webglTexture;\n\n\t\t\t\tstate.bindTexture( targetType, webglTexture );\n\t\t\t\tgenerateMipmap( targetType );\n\t\t\t\tstate.unbindTexture();\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tconst invalidationArrayRead = [];\n\tconst invalidationArrayDraw = [];\n\n\tfunction updateMultisampleRenderTarget( renderTarget ) {\n\n\t\tif ( renderTarget.samples > 0 ) {\n\n\t\t\tif ( useMultisampledRTT( renderTarget ) === false ) {\n\n\t\t\t\tconst textures = renderTarget.textures;\n\t\t\t\tconst width = renderTarget.width;\n\t\t\t\tconst height = renderTarget.height;\n\t\t\t\tlet mask = _gl.COLOR_BUFFER_BIT;\n\t\t\t\tconst depthStyle = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n\t\t\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\t\t\tconst isMultipleRenderTargets = ( textures.length > 1 );\n\n\t\t\t\t// If MRT we need to remove FBO attachments\n\t\t\t\tif ( isMultipleRenderTargets ) {\n\n\t\t\t\t\tfor ( let i = 0; i < textures.length; i ++ ) {\n\n\t\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer );\n\t\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, null );\n\n\t\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer );\n\t\t\t\t\t\t_gl.framebufferTexture2D( _gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, null, 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tstate.bindFramebuffer( _gl.READ_FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer );\n\t\t\t\tstate.bindFramebuffer( _gl.DRAW_FRAMEBUFFER, renderTargetProperties.__webglFramebuffer );\n\n\t\t\t\tfor ( let i = 0; i < textures.length; i ++ ) {\n\n\t\t\t\t\tif ( renderTarget.resolveDepthBuffer ) {\n\n\t\t\t\t\t\tif ( renderTarget.depthBuffer ) mask |= _gl.DEPTH_BUFFER_BIT;\n\n\t\t\t\t\t\t// resolving stencil is slow with a D3D backend. disable it for all transmission render targets (see #27799)\n\n\t\t\t\t\t\tif ( renderTarget.stencilBuffer && renderTarget.resolveStencilBuffer ) mask |= _gl.STENCIL_BUFFER_BIT;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( isMultipleRenderTargets ) {\n\n\t\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.READ_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[ i ] );\n\n\t\t\t\t\t\tconst webglTexture = properties.get( textures[ i ] ).__webglTexture;\n\t\t\t\t\t\t_gl.framebufferTexture2D( _gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D, webglTexture, 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_gl.blitFramebuffer( 0, 0, width, height, 0, 0, width, height, mask, _gl.NEAREST );\n\n\t\t\t\t\tif ( supportsInvalidateFramebuffer === true ) {\n\n\t\t\t\t\t\tinvalidationArrayRead.length = 0;\n\t\t\t\t\t\tinvalidationArrayDraw.length = 0;\n\n\t\t\t\t\t\tinvalidationArrayRead.push( _gl.COLOR_ATTACHMENT0 + i );\n\n\t\t\t\t\t\tif ( renderTarget.depthBuffer && renderTarget.resolveDepthBuffer === false ) {\n\n\t\t\t\t\t\t\tinvalidationArrayRead.push( depthStyle );\n\t\t\t\t\t\t\tinvalidationArrayDraw.push( depthStyle );\n\n\t\t\t\t\t\t\t_gl.invalidateFramebuffer( _gl.DRAW_FRAMEBUFFER, invalidationArrayDraw );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t_gl.invalidateFramebuffer( _gl.READ_FRAMEBUFFER, invalidationArrayRead );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tstate.bindFramebuffer( _gl.READ_FRAMEBUFFER, null );\n\t\t\t\tstate.bindFramebuffer( _gl.DRAW_FRAMEBUFFER, null );\n\n\t\t\t\t// If MRT since pre-blit we removed the FBO we need to reconstruct the attachments\n\t\t\t\tif ( isMultipleRenderTargets ) {\n\n\t\t\t\t\tfor ( let i = 0; i < textures.length; i ++ ) {\n\n\t\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer );\n\t\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[ i ] );\n\n\t\t\t\t\t\tconst webglTexture = properties.get( textures[ i ] ).__webglTexture;\n\n\t\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer );\n\t\t\t\t\t\t_gl.framebufferTexture2D( _gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, webglTexture, 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tstate.bindFramebuffer( _gl.DRAW_FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer );\n\n\t\t\t} else {\n\n\t\t\t\tif ( renderTarget.depthBuffer && renderTarget.resolveDepthBuffer === false && supportsInvalidateFramebuffer ) {\n\n\t\t\t\t\tconst depthStyle = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n\n\t\t\t\t\t_gl.invalidateFramebuffer( _gl.DRAW_FRAMEBUFFER, [ depthStyle ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction getRenderTargetSamples( renderTarget ) {\n\n\t\treturn Math.min( capabilities.maxSamples, renderTarget.samples );\n\n\t}\n\n\tfunction useMultisampledRTT( renderTarget ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\treturn renderTarget.samples > 0 && extensions.has( 'WEBGL_multisampled_render_to_texture' ) === true && renderTargetProperties.__useRenderToTexture !== false;\n\n\t}\n\n\tfunction updateVideoTexture( texture ) {\n\n\t\tconst frame = info.render.frame;\n\n\t\t// Check the last frame we updated the VideoTexture\n\n\t\tif ( _videoTextures.get( texture ) !== frame ) {\n\n\t\t\t_videoTextures.set( texture, frame );\n\t\t\ttexture.update();\n\n\t\t}\n\n\t}\n\n\tfunction verifyColorSpace( texture, image ) {\n\n\t\tconst colorSpace = texture.colorSpace;\n\t\tconst format = texture.format;\n\t\tconst type = texture.type;\n\n\t\tif ( texture.isCompressedTexture === true || texture.isVideoTexture === true ) return image;\n\n\t\tif ( colorSpace !== LinearSRGBColorSpace && colorSpace !== NoColorSpace ) {\n\n\t\t\t// sRGB\n\n\t\t\tif ( ColorManagement.getTransfer( colorSpace ) === SRGBTransfer ) {\n\n\t\t\t\t// in WebGL 2 uncompressed textures can only be sRGB encoded if they have the RGBA8 format\n\n\t\t\t\tif ( format !== RGBAFormat || type !== UnsignedByteType ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.' );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconsole.error( 'THREE.WebGLTextures: Unsupported texture color space:', colorSpace );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn image;\n\n\t}\n\n\tfunction getDimensions( image ) {\n\n\t\tif ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) {\n\n\t\t\t// if intrinsic data are not available, fallback to width/height\n\n\t\t\t_imageDimensions.width = image.naturalWidth || image.width;\n\t\t\t_imageDimensions.height = image.naturalHeight || image.height;\n\n\t\t} else if ( typeof VideoFrame !== 'undefined' && image instanceof VideoFrame ) {\n\n\t\t\t_imageDimensions.width = image.displayWidth;\n\t\t\t_imageDimensions.height = image.displayHeight;\n\n\t\t} else {\n\n\t\t\t_imageDimensions.width = image.width;\n\t\t\t_imageDimensions.height = image.height;\n\n\t\t}\n\n\t\treturn _imageDimensions;\n\n\t}\n\n\t//\n\n\tthis.allocateTextureUnit = allocateTextureUnit;\n\tthis.resetTextureUnits = resetTextureUnits;\n\n\tthis.setTexture2D = setTexture2D;\n\tthis.setTexture2DArray = setTexture2DArray;\n\tthis.setTexture3D = setTexture3D;\n\tthis.setTextureCube = setTextureCube;\n\tthis.rebindTextures = rebindTextures;\n\tthis.setupRenderTarget = setupRenderTarget;\n\tthis.updateRenderTargetMipmap = updateRenderTargetMipmap;\n\tthis.updateMultisampleRenderTarget = updateMultisampleRenderTarget;\n\tthis.setupDepthRenderbuffer = setupDepthRenderbuffer;\n\tthis.setupFrameBufferTexture = setupFrameBufferTexture;\n\tthis.useMultisampledRTT = useMultisampledRTT;\n\n}\n\nfunction WebGLUtils( gl, extensions ) {\n\n\tfunction convert( p, colorSpace = NoColorSpace ) {\n\n\t\tlet extension;\n\n\t\tconst transfer = ColorManagement.getTransfer( colorSpace );\n\n\t\tif ( p === UnsignedByteType ) return gl.UNSIGNED_BYTE;\n\t\tif ( p === UnsignedShort4444Type ) return gl.UNSIGNED_SHORT_4_4_4_4;\n\t\tif ( p === UnsignedShort5551Type ) return gl.UNSIGNED_SHORT_5_5_5_1;\n\t\tif ( p === UnsignedInt5999Type ) return gl.UNSIGNED_INT_5_9_9_9_REV;\n\n\t\tif ( p === ByteType ) return gl.BYTE;\n\t\tif ( p === ShortType ) return gl.SHORT;\n\t\tif ( p === UnsignedShortType ) return gl.UNSIGNED_SHORT;\n\t\tif ( p === IntType ) return gl.INT;\n\t\tif ( p === UnsignedIntType ) return gl.UNSIGNED_INT;\n\t\tif ( p === FloatType ) return gl.FLOAT;\n\t\tif ( p === HalfFloatType ) return gl.HALF_FLOAT;\n\n\t\tif ( p === AlphaFormat ) return gl.ALPHA;\n\t\tif ( p === RGBFormat ) return gl.RGB;\n\t\tif ( p === RGBAFormat ) return gl.RGBA;\n\t\tif ( p === LuminanceFormat ) return gl.LUMINANCE;\n\t\tif ( p === LuminanceAlphaFormat ) return gl.LUMINANCE_ALPHA;\n\t\tif ( p === DepthFormat ) return gl.DEPTH_COMPONENT;\n\t\tif ( p === DepthStencilFormat ) return gl.DEPTH_STENCIL;\n\n\t\t// WebGL2 formats.\n\n\t\tif ( p === RedFormat ) return gl.RED;\n\t\tif ( p === RedIntegerFormat ) return gl.RED_INTEGER;\n\t\tif ( p === RGFormat ) return gl.RG;\n\t\tif ( p === RGIntegerFormat ) return gl.RG_INTEGER;\n\t\tif ( p === RGBAIntegerFormat ) return gl.RGBA_INTEGER;\n\n\t\t// S3TC\n\n\t\tif ( p === RGB_S3TC_DXT1_Format || p === RGBA_S3TC_DXT1_Format || p === RGBA_S3TC_DXT3_Format || p === RGBA_S3TC_DXT5_Format ) {\n\n\t\t\tif ( transfer === SRGBTransfer ) {\n\n\t\t\t\textension = extensions.get( 'WEBGL_compressed_texture_s3tc_srgb' );\n\n\t\t\t\tif ( extension !== null ) {\n\n\t\t\t\t\tif ( p === RGB_S3TC_DXT1_Format ) return extension.COMPRESSED_SRGB_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT1_Format ) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT3_Format ) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT5_Format ) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\textension = extensions.get( 'WEBGL_compressed_texture_s3tc' );\n\n\t\t\t\tif ( extension !== null ) {\n\n\t\t\t\t\tif ( p === RGB_S3TC_DXT1_Format ) return extension.COMPRESSED_RGB_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT1_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT3_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT3_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT5_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT5_EXT;\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// PVRTC\n\n\t\tif ( p === RGB_PVRTC_4BPPV1_Format || p === RGB_PVRTC_2BPPV1_Format || p === RGBA_PVRTC_4BPPV1_Format || p === RGBA_PVRTC_2BPPV1_Format ) {\n\n\t\t\textension = extensions.get( 'WEBGL_compressed_texture_pvrtc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGB_PVRTC_4BPPV1_Format ) return extension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;\n\t\t\t\tif ( p === RGB_PVRTC_2BPPV1_Format ) return extension.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;\n\t\t\t\tif ( p === RGBA_PVRTC_4BPPV1_Format ) return extension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;\n\t\t\t\tif ( p === RGBA_PVRTC_2BPPV1_Format ) return extension.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// ETC\n\n\t\tif ( p === RGB_ETC1_Format || p === RGB_ETC2_Format || p === RGBA_ETC2_EAC_Format ) {\n\n\t\t\textension = extensions.get( 'WEBGL_compressed_texture_etc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGB_ETC1_Format || p === RGB_ETC2_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ETC2 : extension.COMPRESSED_RGB8_ETC2;\n\t\t\t\tif ( p === RGBA_ETC2_EAC_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC : extension.COMPRESSED_RGBA8_ETC2_EAC;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// ASTC\n\n\t\tif ( p === RGBA_ASTC_4x4_Format || p === RGBA_ASTC_5x4_Format || p === RGBA_ASTC_5x5_Format ||\n\t\t\tp === RGBA_ASTC_6x5_Format || p === RGBA_ASTC_6x6_Format || p === RGBA_ASTC_8x5_Format ||\n\t\t\tp === RGBA_ASTC_8x6_Format || p === RGBA_ASTC_8x8_Format || p === RGBA_ASTC_10x5_Format ||\n\t\t\tp === RGBA_ASTC_10x6_Format || p === RGBA_ASTC_10x8_Format || p === RGBA_ASTC_10x10_Format ||\n\t\t\tp === RGBA_ASTC_12x10_Format || p === RGBA_ASTC_12x12_Format ) {\n\n\t\t\textension = extensions.get( 'WEBGL_compressed_texture_astc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGBA_ASTC_4x4_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR : extension.COMPRESSED_RGBA_ASTC_4x4_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_5x4_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR : extension.COMPRESSED_RGBA_ASTC_5x4_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_5x5_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR : extension.COMPRESSED_RGBA_ASTC_5x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_6x5_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR : extension.COMPRESSED_RGBA_ASTC_6x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_6x6_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR : extension.COMPRESSED_RGBA_ASTC_6x6_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_8x5_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR : extension.COMPRESSED_RGBA_ASTC_8x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_8x6_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR : extension.COMPRESSED_RGBA_ASTC_8x6_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_8x8_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR : extension.COMPRESSED_RGBA_ASTC_8x8_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x5_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR : extension.COMPRESSED_RGBA_ASTC_10x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x6_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR : extension.COMPRESSED_RGBA_ASTC_10x6_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x8_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR : extension.COMPRESSED_RGBA_ASTC_10x8_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x10_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR : extension.COMPRESSED_RGBA_ASTC_10x10_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_12x10_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR : extension.COMPRESSED_RGBA_ASTC_12x10_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_12x12_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR : extension.COMPRESSED_RGBA_ASTC_12x12_KHR;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// BPTC\n\n\t\tif ( p === RGBA_BPTC_Format || p === RGB_BPTC_SIGNED_Format || p === RGB_BPTC_UNSIGNED_Format ) {\n\n\t\t\textension = extensions.get( 'EXT_texture_compression_bptc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGBA_BPTC_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT : extension.COMPRESSED_RGBA_BPTC_UNORM_EXT;\n\t\t\t\tif ( p === RGB_BPTC_SIGNED_Format ) return extension.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;\n\t\t\t\tif ( p === RGB_BPTC_UNSIGNED_Format ) return extension.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// RGTC\n\n\t\tif ( p === RED_RGTC1_Format || p === SIGNED_RED_RGTC1_Format || p === RED_GREEN_RGTC2_Format || p === SIGNED_RED_GREEN_RGTC2_Format ) {\n\n\t\t\textension = extensions.get( 'EXT_texture_compression_rgtc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGBA_BPTC_Format ) return extension.COMPRESSED_RED_RGTC1_EXT;\n\t\t\t\tif ( p === SIGNED_RED_RGTC1_Format ) return extension.COMPRESSED_SIGNED_RED_RGTC1_EXT;\n\t\t\t\tif ( p === RED_GREEN_RGTC2_Format ) return extension.COMPRESSED_RED_GREEN_RGTC2_EXT;\n\t\t\t\tif ( p === SIGNED_RED_GREEN_RGTC2_Format ) return extension.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( p === UnsignedInt248Type ) return gl.UNSIGNED_INT_24_8;\n\n\t\t// if \"p\" can't be resolved, assume the user defines a WebGL constant as a string (fallback/workaround for packed RGB formats)\n\n\t\treturn ( gl[ p ] !== undefined ) ? gl[ p ] : null;\n\n\t}\n\n\treturn { convert: convert };\n\n}\n\nconst _moveEvent = { type: 'move' };\n\nclass WebXRController {\n\n\tconstructor() {\n\n\t\tthis._targetRay = null;\n\t\tthis._grip = null;\n\t\tthis._hand = null;\n\n\t}\n\n\tgetHandSpace() {\n\n\t\tif ( this._hand === null ) {\n\n\t\t\tthis._hand = new Group();\n\t\t\tthis._hand.matrixAutoUpdate = false;\n\t\t\tthis._hand.visible = false;\n\n\t\t\tthis._hand.joints = {};\n\t\t\tthis._hand.inputState = { pinching: false };\n\n\t\t}\n\n\t\treturn this._hand;\n\n\t}\n\n\tgetTargetRaySpace() {\n\n\t\tif ( this._targetRay === null ) {\n\n\t\t\tthis._targetRay = new Group();\n\t\t\tthis._targetRay.matrixAutoUpdate = false;\n\t\t\tthis._targetRay.visible = false;\n\t\t\tthis._targetRay.hasLinearVelocity = false;\n\t\t\tthis._targetRay.linearVelocity = new Vector3();\n\t\t\tthis._targetRay.hasAngularVelocity = false;\n\t\t\tthis._targetRay.angularVelocity = new Vector3();\n\n\t\t}\n\n\t\treturn this._targetRay;\n\n\t}\n\n\tgetGripSpace() {\n\n\t\tif ( this._grip === null ) {\n\n\t\t\tthis._grip = new Group();\n\t\t\tthis._grip.matrixAutoUpdate = false;\n\t\t\tthis._grip.visible = false;\n\t\t\tthis._grip.hasLinearVelocity = false;\n\t\t\tthis._grip.linearVelocity = new Vector3();\n\t\t\tthis._grip.hasAngularVelocity = false;\n\t\t\tthis._grip.angularVelocity = new Vector3();\n\n\t\t}\n\n\t\treturn this._grip;\n\n\t}\n\n\tdispatchEvent( event ) {\n\n\t\tif ( this._targetRay !== null ) {\n\n\t\t\tthis._targetRay.dispatchEvent( event );\n\n\t\t}\n\n\t\tif ( this._grip !== null ) {\n\n\t\t\tthis._grip.dispatchEvent( event );\n\n\t\t}\n\n\t\tif ( this._hand !== null ) {\n\n\t\t\tthis._hand.dispatchEvent( event );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tconnect( inputSource ) {\n\n\t\tif ( inputSource && inputSource.hand ) {\n\n\t\t\tconst hand = this._hand;\n\n\t\t\tif ( hand ) {\n\n\t\t\t\tfor ( const inputjoint of inputSource.hand.values() ) {\n\n\t\t\t\t\t// Initialize hand with joints when connected\n\t\t\t\t\tthis._getHandJoint( hand, inputjoint );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.dispatchEvent( { type: 'connected', data: inputSource } );\n\n\t\treturn this;\n\n\t}\n\n\tdisconnect( inputSource ) {\n\n\t\tthis.dispatchEvent( { type: 'disconnected', data: inputSource } );\n\n\t\tif ( this._targetRay !== null ) {\n\n\t\t\tthis._targetRay.visible = false;\n\n\t\t}\n\n\t\tif ( this._grip !== null ) {\n\n\t\t\tthis._grip.visible = false;\n\n\t\t}\n\n\t\tif ( this._hand !== null ) {\n\n\t\t\tthis._hand.visible = false;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tupdate( inputSource, frame, referenceSpace ) {\n\n\t\tlet inputPose = null;\n\t\tlet gripPose = null;\n\t\tlet handPose = null;\n\n\t\tconst targetRay = this._targetRay;\n\t\tconst grip = this._grip;\n\t\tconst hand = this._hand;\n\n\t\tif ( inputSource && frame.session.visibilityState !== 'visible-blurred' ) {\n\n\t\t\tif ( hand && inputSource.hand ) {\n\n\t\t\t\thandPose = true;\n\n\t\t\t\tfor ( const inputjoint of inputSource.hand.values() ) {\n\n\t\t\t\t\t// Update the joints groups with the XRJoint poses\n\t\t\t\t\tconst jointPose = frame.getJointPose( inputjoint, referenceSpace );\n\n\t\t\t\t\t// The transform of this joint will be updated with the joint pose on each frame\n\t\t\t\t\tconst joint = this._getHandJoint( hand, inputjoint );\n\n\t\t\t\t\tif ( jointPose !== null ) {\n\n\t\t\t\t\t\tjoint.matrix.fromArray( jointPose.transform.matrix );\n\t\t\t\t\t\tjoint.matrix.decompose( joint.position, joint.rotation, joint.scale );\n\t\t\t\t\t\tjoint.matrixWorldNeedsUpdate = true;\n\t\t\t\t\t\tjoint.jointRadius = jointPose.radius;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tjoint.visible = jointPose !== null;\n\n\t\t\t\t}\n\n\t\t\t\t// Custom events\n\n\t\t\t\t// Check pinchz\n\t\t\t\tconst indexTip = hand.joints[ 'index-finger-tip' ];\n\t\t\t\tconst thumbTip = hand.joints[ 'thumb-tip' ];\n\t\t\t\tconst distance = indexTip.position.distanceTo( thumbTip.position );\n\n\t\t\t\tconst distanceToPinch = 0.02;\n\t\t\t\tconst threshold = 0.005;\n\n\t\t\t\tif ( hand.inputState.pinching && distance > distanceToPinch + threshold ) {\n\n\t\t\t\t\thand.inputState.pinching = false;\n\t\t\t\t\tthis.dispatchEvent( {\n\t\t\t\t\t\ttype: 'pinchend',\n\t\t\t\t\t\thandedness: inputSource.handedness,\n\t\t\t\t\t\ttarget: this\n\t\t\t\t\t} );\n\n\t\t\t\t} else if ( ! hand.inputState.pinching && distance <= distanceToPinch - threshold ) {\n\n\t\t\t\t\thand.inputState.pinching = true;\n\t\t\t\t\tthis.dispatchEvent( {\n\t\t\t\t\t\ttype: 'pinchstart',\n\t\t\t\t\t\thandedness: inputSource.handedness,\n\t\t\t\t\t\ttarget: this\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( grip !== null && inputSource.gripSpace ) {\n\n\t\t\t\t\tgripPose = frame.getPose( inputSource.gripSpace, referenceSpace );\n\n\t\t\t\t\tif ( gripPose !== null ) {\n\n\t\t\t\t\t\tgrip.matrix.fromArray( gripPose.transform.matrix );\n\t\t\t\t\t\tgrip.matrix.decompose( grip.position, grip.rotation, grip.scale );\n\t\t\t\t\t\tgrip.matrixWorldNeedsUpdate = true;\n\n\t\t\t\t\t\tif ( gripPose.linearVelocity ) {\n\n\t\t\t\t\t\t\tgrip.hasLinearVelocity = true;\n\t\t\t\t\t\t\tgrip.linearVelocity.copy( gripPose.linearVelocity );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tgrip.hasLinearVelocity = false;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( gripPose.angularVelocity ) {\n\n\t\t\t\t\t\t\tgrip.hasAngularVelocity = true;\n\t\t\t\t\t\t\tgrip.angularVelocity.copy( gripPose.angularVelocity );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tgrip.hasAngularVelocity = false;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( targetRay !== null ) {\n\n\t\t\t\tinputPose = frame.getPose( inputSource.targetRaySpace, referenceSpace );\n\n\t\t\t\t// Some runtimes (namely Vive Cosmos with Vive OpenXR Runtime) have only grip space and ray space is equal to it\n\t\t\t\tif ( inputPose === null && gripPose !== null ) {\n\n\t\t\t\t\tinputPose = gripPose;\n\n\t\t\t\t}\n\n\t\t\t\tif ( inputPose !== null ) {\n\n\t\t\t\t\ttargetRay.matrix.fromArray( inputPose.transform.matrix );\n\t\t\t\t\ttargetRay.matrix.decompose( targetRay.position, targetRay.rotation, targetRay.scale );\n\t\t\t\t\ttargetRay.matrixWorldNeedsUpdate = true;\n\n\t\t\t\t\tif ( inputPose.linearVelocity ) {\n\n\t\t\t\t\t\ttargetRay.hasLinearVelocity = true;\n\t\t\t\t\t\ttargetRay.linearVelocity.copy( inputPose.linearVelocity );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ttargetRay.hasLinearVelocity = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( inputPose.angularVelocity ) {\n\n\t\t\t\t\t\ttargetRay.hasAngularVelocity = true;\n\t\t\t\t\t\ttargetRay.angularVelocity.copy( inputPose.angularVelocity );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ttargetRay.hasAngularVelocity = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.dispatchEvent( _moveEvent );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\n\t\t}\n\n\t\tif ( targetRay !== null ) {\n\n\t\t\ttargetRay.visible = ( inputPose !== null );\n\n\t\t}\n\n\t\tif ( grip !== null ) {\n\n\t\t\tgrip.visible = ( gripPose !== null );\n\n\t\t}\n\n\t\tif ( hand !== null ) {\n\n\t\t\thand.visible = ( handPose !== null );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// private method\n\n\t_getHandJoint( hand, inputjoint ) {\n\n\t\tif ( hand.joints[ inputjoint.jointName ] === undefined ) {\n\n\t\t\tconst joint = new Group();\n\t\t\tjoint.matrixAutoUpdate = false;\n\t\t\tjoint.visible = false;\n\t\t\thand.joints[ inputjoint.jointName ] = joint;\n\n\t\t\thand.add( joint );\n\n\t\t}\n\n\t\treturn hand.joints[ inputjoint.jointName ];\n\n\t}\n\n}\n\nconst _occlusion_vertex = `\nvoid main() {\n\n\tgl_Position = vec4( position, 1.0 );\n\n}`;\n\nconst _occlusion_fragment = `\nuniform sampler2DArray depthColor;\nuniform float depthWidth;\nuniform float depthHeight;\n\nvoid main() {\n\n\tvec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );\n\n\tif ( coord.x >= 1.0 ) {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;\n\n\t} else {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;\n\n\t}\n\n}`;\n\nclass WebXRDepthSensing {\n\n\tconstructor() {\n\n\t\tthis.texture = null;\n\t\tthis.mesh = null;\n\n\t\tthis.depthNear = 0;\n\t\tthis.depthFar = 0;\n\n\t}\n\n\tinit( renderer, depthData, renderState ) {\n\n\t\tif ( this.texture === null ) {\n\n\t\t\tconst texture = new Texture();\n\n\t\t\tconst texProps = renderer.properties.get( texture );\n\t\t\ttexProps.__webglTexture = depthData.texture;\n\n\t\t\tif ( ( depthData.depthNear !== renderState.depthNear ) || ( depthData.depthFar !== renderState.depthFar ) ) {\n\n\t\t\t\tthis.depthNear = depthData.depthNear;\n\t\t\t\tthis.depthFar = depthData.depthFar;\n\n\t\t\t}\n\n\t\t\tthis.texture = texture;\n\n\t\t}\n\n\t}\n\n\tgetMesh( cameraXR ) {\n\n\t\tif ( this.texture !== null ) {\n\n\t\t\tif ( this.mesh === null ) {\n\n\t\t\t\tconst viewport = cameraXR.cameras[ 0 ].viewport;\n\t\t\t\tconst material = new ShaderMaterial( {\n\t\t\t\t\tvertexShader: _occlusion_vertex,\n\t\t\t\t\tfragmentShader: _occlusion_fragment,\n\t\t\t\t\tuniforms: {\n\t\t\t\t\t\tdepthColor: { value: this.texture },\n\t\t\t\t\t\tdepthWidth: { value: viewport.z },\n\t\t\t\t\t\tdepthHeight: { value: viewport.w }\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\tthis.mesh = new Mesh( new PlaneGeometry( 20, 20 ), material );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this.mesh;\n\n\t}\n\n\treset() {\n\n\t\tthis.texture = null;\n\t\tthis.mesh = null;\n\n\t}\n\n\tgetDepthTexture() {\n\n\t\treturn this.texture;\n\n\t}\n\n}\n\nclass WebXRManager extends EventDispatcher {\n\n\tconstructor( renderer, gl ) {\n\n\t\tsuper();\n\n\t\tconst scope = this;\n\n\t\tlet session = null;\n\n\t\tlet framebufferScaleFactor = 1.0;\n\n\t\tlet referenceSpace = null;\n\t\tlet referenceSpaceType = 'local-floor';\n\t\t// Set default foveation to maximum.\n\t\tlet foveation = 1.0;\n\t\tlet customReferenceSpace = null;\n\n\t\tlet pose = null;\n\t\tlet glBinding = null;\n\t\tlet glProjLayer = null;\n\t\tlet glBaseLayer = null;\n\t\tlet xrFrame = null;\n\n\t\tconst depthSensing = new WebXRDepthSensing();\n\t\tconst attributes = gl.getContextAttributes();\n\n\t\tlet initialRenderTarget = null;\n\t\tlet newRenderTarget = null;\n\n\t\tconst controllers = [];\n\t\tconst controllerInputSources = [];\n\n\t\tconst currentSize = new Vector2();\n\t\tlet currentPixelRatio = null;\n\n\t\t//\n\n\t\tconst cameraL = new PerspectiveCamera();\n\t\tcameraL.viewport = new Vector4();\n\n\t\tconst cameraR = new PerspectiveCamera();\n\t\tcameraR.viewport = new Vector4();\n\n\t\tconst cameras = [ cameraL, cameraR ];\n\n\t\tconst cameraXR = new ArrayCamera();\n\n\t\tlet _currentDepthNear = null;\n\t\tlet _currentDepthFar = null;\n\n\t\t//\n\n\t\tthis.cameraAutoUpdate = true;\n\t\tthis.enabled = false;\n\n\t\tthis.isPresenting = false;\n\n\t\tthis.getController = function ( index ) {\n\n\t\t\tlet controller = controllers[ index ];\n\n\t\t\tif ( controller === undefined ) {\n\n\t\t\t\tcontroller = new WebXRController();\n\t\t\t\tcontrollers[ index ] = controller;\n\n\t\t\t}\n\n\t\t\treturn controller.getTargetRaySpace();\n\n\t\t};\n\n\t\tthis.getControllerGrip = function ( index ) {\n\n\t\t\tlet controller = controllers[ index ];\n\n\t\t\tif ( controller === undefined ) {\n\n\t\t\t\tcontroller = new WebXRController();\n\t\t\t\tcontrollers[ index ] = controller;\n\n\t\t\t}\n\n\t\t\treturn controller.getGripSpace();\n\n\t\t};\n\n\t\tthis.getHand = function ( index ) {\n\n\t\t\tlet controller = controllers[ index ];\n\n\t\t\tif ( controller === undefined ) {\n\n\t\t\t\tcontroller = new WebXRController();\n\t\t\t\tcontrollers[ index ] = controller;\n\n\t\t\t}\n\n\t\t\treturn controller.getHandSpace();\n\n\t\t};\n\n\t\t//\n\n\t\tfunction onSessionEvent( event ) {\n\n\t\t\tconst controllerIndex = controllerInputSources.indexOf( event.inputSource );\n\n\t\t\tif ( controllerIndex === - 1 ) {\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tconst controller = controllers[ controllerIndex ];\n\n\t\t\tif ( controller !== undefined ) {\n\n\t\t\t\tcontroller.update( event.inputSource, event.frame, customReferenceSpace || referenceSpace );\n\t\t\t\tcontroller.dispatchEvent( { type: event.type, data: event.inputSource } );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onSessionEnd() {\n\n\t\t\tsession.removeEventListener( 'select', onSessionEvent );\n\t\t\tsession.removeEventListener( 'selectstart', onSessionEvent );\n\t\t\tsession.removeEventListener( 'selectend', onSessionEvent );\n\t\t\tsession.removeEventListener( 'squeeze', onSessionEvent );\n\t\t\tsession.removeEventListener( 'squeezestart', onSessionEvent );\n\t\t\tsession.removeEventListener( 'squeezeend', onSessionEvent );\n\t\t\tsession.removeEventListener( 'end', onSessionEnd );\n\t\t\tsession.removeEventListener( 'inputsourceschange', onInputSourcesChange );\n\n\t\t\tfor ( let i = 0; i < controllers.length; i ++ ) {\n\n\t\t\t\tconst inputSource = controllerInputSources[ i ];\n\n\t\t\t\tif ( inputSource === null ) continue;\n\n\t\t\t\tcontrollerInputSources[ i ] = null;\n\n\t\t\t\tcontrollers[ i ].disconnect( inputSource );\n\n\t\t\t}\n\n\t\t\t_currentDepthNear = null;\n\t\t\t_currentDepthFar = null;\n\n\t\t\tdepthSensing.reset();\n\n\t\t\t// restore framebuffer/rendering state\n\n\t\t\trenderer.setRenderTarget( initialRenderTarget );\n\n\t\t\tglBaseLayer = null;\n\t\t\tglProjLayer = null;\n\t\t\tglBinding = null;\n\t\t\tsession = null;\n\t\t\tnewRenderTarget = null;\n\n\t\t\t//\n\n\t\t\tanimation.stop();\n\n\t\t\tscope.isPresenting = false;\n\n\t\t\trenderer.setPixelRatio( currentPixelRatio );\n\t\t\trenderer.setSize( currentSize.width, currentSize.height, false );\n\n\t\t\tscope.dispatchEvent( { type: 'sessionend' } );\n\n\t\t}\n\n\t\tthis.setFramebufferScaleFactor = function ( value ) {\n\n\t\t\tframebufferScaleFactor = value;\n\n\t\t\tif ( scope.isPresenting === true ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebXRManager: Cannot change framebuffer scale while presenting.' );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.setReferenceSpaceType = function ( value ) {\n\n\t\t\treferenceSpaceType = value;\n\n\t\t\tif ( scope.isPresenting === true ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebXRManager: Cannot change reference space type while presenting.' );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.getReferenceSpace = function () {\n\n\t\t\treturn customReferenceSpace || referenceSpace;\n\n\t\t};\n\n\t\tthis.setReferenceSpace = function ( space ) {\n\n\t\t\tcustomReferenceSpace = space;\n\n\t\t};\n\n\t\tthis.getBaseLayer = function () {\n\n\t\t\treturn glProjLayer !== null ? glProjLayer : glBaseLayer;\n\n\t\t};\n\n\t\tthis.getBinding = function () {\n\n\t\t\treturn glBinding;\n\n\t\t};\n\n\t\tthis.getFrame = function () {\n\n\t\t\treturn xrFrame;\n\n\t\t};\n\n\t\tthis.getSession = function () {\n\n\t\t\treturn session;\n\n\t\t};\n\n\t\tthis.setSession = async function ( value ) {\n\n\t\t\tsession = value;\n\n\t\t\tif ( session !== null ) {\n\n\t\t\t\tinitialRenderTarget = renderer.getRenderTarget();\n\n\t\t\t\tsession.addEventListener( 'select', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'selectstart', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'selectend', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'squeeze', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'squeezestart', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'squeezeend', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'end', onSessionEnd );\n\t\t\t\tsession.addEventListener( 'inputsourceschange', onInputSourcesChange );\n\n\t\t\t\tif ( attributes.xrCompatible !== true ) {\n\n\t\t\t\t\tawait gl.makeXRCompatible();\n\n\t\t\t\t}\n\n\t\t\t\tcurrentPixelRatio = renderer.getPixelRatio();\n\t\t\t\trenderer.getSize( currentSize );\n\n\t\t\t\tconst useLayers = session.enabledFeatures !== undefined && session.enabledFeatures.includes( 'layers' );\n\n\t\t\t\tif ( ! useLayers ) {\n\n\t\t\t\t\tconst layerInit = {\n\t\t\t\t\t\tantialias: attributes.antialias,\n\t\t\t\t\t\talpha: true,\n\t\t\t\t\t\tdepth: attributes.depth,\n\t\t\t\t\t\tstencil: attributes.stencil,\n\t\t\t\t\t\tframebufferScaleFactor: framebufferScaleFactor\n\t\t\t\t\t};\n\n\t\t\t\t\tglBaseLayer = new XRWebGLLayer( session, gl, layerInit );\n\n\t\t\t\t\tsession.updateRenderState( { baseLayer: glBaseLayer } );\n\n\t\t\t\t\trenderer.setPixelRatio( 1 );\n\t\t\t\t\trenderer.setSize( glBaseLayer.framebufferWidth, glBaseLayer.framebufferHeight, false );\n\n\t\t\t\t\tnewRenderTarget = new WebGLRenderTarget(\n\t\t\t\t\t\tglBaseLayer.framebufferWidth,\n\t\t\t\t\t\tglBaseLayer.framebufferHeight,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tformat: RGBAFormat,\n\t\t\t\t\t\t\ttype: UnsignedByteType,\n\t\t\t\t\t\t\tcolorSpace: renderer.outputColorSpace,\n\t\t\t\t\t\t\tstencilBuffer: attributes.stencil\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t} else {\n\n\t\t\t\t\tlet depthFormat = null;\n\t\t\t\t\tlet depthType = null;\n\t\t\t\t\tlet glDepthFormat = null;\n\n\t\t\t\t\tif ( attributes.depth ) {\n\n\t\t\t\t\t\tglDepthFormat = attributes.stencil ? gl.DEPTH24_STENCIL8 : gl.DEPTH_COMPONENT24;\n\t\t\t\t\t\tdepthFormat = attributes.stencil ? DepthStencilFormat : DepthFormat;\n\t\t\t\t\t\tdepthType = attributes.stencil ? UnsignedInt248Type : UnsignedIntType;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst projectionlayerInit = {\n\t\t\t\t\t\tcolorFormat: gl.RGBA8,\n\t\t\t\t\t\tdepthFormat: glDepthFormat,\n\t\t\t\t\t\tscaleFactor: framebufferScaleFactor\n\t\t\t\t\t};\n\n\t\t\t\t\tglBinding = new XRWebGLBinding( session, gl );\n\n\t\t\t\t\tglProjLayer = glBinding.createProjectionLayer( projectionlayerInit );\n\n\t\t\t\t\tsession.updateRenderState( { layers: [ glProjLayer ] } );\n\n\t\t\t\t\trenderer.setPixelRatio( 1 );\n\t\t\t\t\trenderer.setSize( glProjLayer.textureWidth, glProjLayer.textureHeight, false );\n\n\t\t\t\t\tnewRenderTarget = new WebGLRenderTarget(\n\t\t\t\t\t\tglProjLayer.textureWidth,\n\t\t\t\t\t\tglProjLayer.textureHeight,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tformat: RGBAFormat,\n\t\t\t\t\t\t\ttype: UnsignedByteType,\n\t\t\t\t\t\t\tdepthTexture: new DepthTexture( glProjLayer.textureWidth, glProjLayer.textureHeight, depthType, undefined, undefined, undefined, undefined, undefined, undefined, depthFormat ),\n\t\t\t\t\t\t\tstencilBuffer: attributes.stencil,\n\t\t\t\t\t\t\tcolorSpace: renderer.outputColorSpace,\n\t\t\t\t\t\t\tsamples: attributes.antialias ? 4 : 0,\n\t\t\t\t\t\t\tresolveDepthBuffer: ( glProjLayer.ignoreDepthValues === false )\n\t\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\tnewRenderTarget.isXRRenderTarget = true; // TODO Remove this when possible, see #23278\n\n\t\t\t\tthis.setFoveation( foveation );\n\n\t\t\t\tcustomReferenceSpace = null;\n\t\t\t\treferenceSpace = await session.requestReferenceSpace( referenceSpaceType );\n\n\t\t\t\tanimation.setContext( session );\n\t\t\t\tanimation.start();\n\n\t\t\t\tscope.isPresenting = true;\n\n\t\t\t\tscope.dispatchEvent( { type: 'sessionstart' } );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.getEnvironmentBlendMode = function () {\n\n\t\t\tif ( session !== null ) {\n\n\t\t\t\treturn session.environmentBlendMode;\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.getDepthTexture = function () {\n\n\t\t\treturn depthSensing.getDepthTexture();\n\n\t\t};\n\n\t\tfunction onInputSourcesChange( event ) {\n\n\t\t\t// Notify disconnected\n\n\t\t\tfor ( let i = 0; i < event.removed.length; i ++ ) {\n\n\t\t\t\tconst inputSource = event.removed[ i ];\n\t\t\t\tconst index = controllerInputSources.indexOf( inputSource );\n\n\t\t\t\tif ( index >= 0 ) {\n\n\t\t\t\t\tcontrollerInputSources[ index ] = null;\n\t\t\t\t\tcontrollers[ index ].disconnect( inputSource );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Notify connected\n\n\t\t\tfor ( let i = 0; i < event.added.length; i ++ ) {\n\n\t\t\t\tconst inputSource = event.added[ i ];\n\n\t\t\t\tlet controllerIndex = controllerInputSources.indexOf( inputSource );\n\n\t\t\t\tif ( controllerIndex === - 1 ) {\n\n\t\t\t\t\t// Assign input source a controller that currently has no input source\n\n\t\t\t\t\tfor ( let i = 0; i < controllers.length; i ++ ) {\n\n\t\t\t\t\t\tif ( i >= controllerInputSources.length ) {\n\n\t\t\t\t\t\t\tcontrollerInputSources.push( inputSource );\n\t\t\t\t\t\t\tcontrollerIndex = i;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t} else if ( controllerInputSources[ i ] === null ) {\n\n\t\t\t\t\t\t\tcontrollerInputSources[ i ] = inputSource;\n\t\t\t\t\t\t\tcontrollerIndex = i;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// If all controllers do currently receive input we ignore new ones\n\n\t\t\t\t\tif ( controllerIndex === - 1 ) break;\n\n\t\t\t\t}\n\n\t\t\t\tconst controller = controllers[ controllerIndex ];\n\n\t\t\t\tif ( controller ) {\n\n\t\t\t\t\tcontroller.connect( inputSource );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tconst cameraLPos = new Vector3();\n\t\tconst cameraRPos = new Vector3();\n\n\t\t/**\n\t\t * Assumes 2 cameras that are parallel and share an X-axis, and that\n\t\t * the cameras' projection and world matrices have already been set.\n\t\t * And that near and far planes are identical for both cameras.\n\t\t * Visualization of this technique: https://computergraphics.stackexchange.com/a/4765\n\t\t *\n\t\t * @param {ArrayCamera} camera - The camera to update.\n\t\t * @param {PerspectiveCamera} cameraL - The left camera.\n\t\t * @param {PerspectiveCamera} cameraR - The right camera.\n\t\t */\n\t\tfunction setProjectionFromUnion( camera, cameraL, cameraR ) {\n\n\t\t\tcameraLPos.setFromMatrixPosition( cameraL.matrixWorld );\n\t\t\tcameraRPos.setFromMatrixPosition( cameraR.matrixWorld );\n\n\t\t\tconst ipd = cameraLPos.distanceTo( cameraRPos );\n\n\t\t\tconst projL = cameraL.projectionMatrix.elements;\n\t\t\tconst projR = cameraR.projectionMatrix.elements;\n\n\t\t\t// VR systems will have identical far and near planes, and\n\t\t\t// most likely identical top and bottom frustum extents.\n\t\t\t// Use the left camera for these values.\n\t\t\tconst near = projL[ 14 ] / ( projL[ 10 ] - 1 );\n\t\t\tconst far = projL[ 14 ] / ( projL[ 10 ] + 1 );\n\t\t\tconst topFov = ( projL[ 9 ] + 1 ) / projL[ 5 ];\n\t\t\tconst bottomFov = ( projL[ 9 ] - 1 ) / projL[ 5 ];\n\n\t\t\tconst leftFov = ( projL[ 8 ] - 1 ) / projL[ 0 ];\n\t\t\tconst rightFov = ( projR[ 8 ] + 1 ) / projR[ 0 ];\n\t\t\tconst left = near * leftFov;\n\t\t\tconst right = near * rightFov;\n\n\t\t\t// Calculate the new camera's position offset from the\n\t\t\t// left camera. xOffset should be roughly half `ipd`.\n\t\t\tconst zOffset = ipd / ( - leftFov + rightFov );\n\t\t\tconst xOffset = zOffset * - leftFov;\n\n\t\t\t// TODO: Better way to apply this offset?\n\t\t\tcameraL.matrixWorld.decompose( camera.position, camera.quaternion, camera.scale );\n\t\t\tcamera.translateX( xOffset );\n\t\t\tcamera.translateZ( zOffset );\n\t\t\tcamera.matrixWorld.compose( camera.position, camera.quaternion, camera.scale );\n\t\t\tcamera.matrixWorldInverse.copy( camera.matrixWorld ).invert();\n\n\t\t\t// Check if the projection uses an infinite far plane.\n\t\t\tif ( projL[ 10 ] === - 1.0 ) {\n\n\t\t\t\t// Use the projection matrix from the left eye.\n\t\t\t\t// The camera offset is sufficient to include the view volumes\n\t\t\t\t// of both eyes (assuming symmetric projections).\n\t\t\t\tcamera.projectionMatrix.copy( cameraL.projectionMatrix );\n\t\t\t\tcamera.projectionMatrixInverse.copy( cameraL.projectionMatrixInverse );\n\n\t\t\t} else {\n\n\t\t\t\t// Find the union of the frustum values of the cameras and scale\n\t\t\t\t// the values so that the near plane's position does not change in world space,\n\t\t\t\t// although must now be relative to the new union camera.\n\t\t\t\tconst near2 = near + zOffset;\n\t\t\t\tconst far2 = far + zOffset;\n\t\t\t\tconst left2 = left - xOffset;\n\t\t\t\tconst right2 = right + ( ipd - xOffset );\n\t\t\t\tconst top2 = topFov * far / far2 * near2;\n\t\t\t\tconst bottom2 = bottomFov * far / far2 * near2;\n\n\t\t\t\tcamera.projectionMatrix.makePerspective( left2, right2, top2, bottom2, near2, far2 );\n\t\t\t\tcamera.projectionMatrixInverse.copy( camera.projectionMatrix ).invert();\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction updateCamera( camera, parent ) {\n\n\t\t\tif ( parent === null ) {\n\n\t\t\t\tcamera.matrixWorld.copy( camera.matrix );\n\n\t\t\t} else {\n\n\t\t\t\tcamera.matrixWorld.multiplyMatrices( parent.matrixWorld, camera.matrix );\n\n\t\t\t}\n\n\t\t\tcamera.matrixWorldInverse.copy( camera.matrixWorld ).invert();\n\n\t\t}\n\n\t\tthis.updateCamera = function ( camera ) {\n\n\t\t\tif ( session === null ) return;\n\n\t\t\tlet depthNear = camera.near;\n\t\t\tlet depthFar = camera.far;\n\n\t\t\tif ( depthSensing.texture !== null ) {\n\n\t\t\t\tif ( depthSensing.depthNear > 0 ) depthNear = depthSensing.depthNear;\n\t\t\t\tif ( depthSensing.depthFar > 0 ) depthFar = depthSensing.depthFar;\n\n\t\t\t}\n\n\t\t\tcameraXR.near = cameraR.near = cameraL.near = depthNear;\n\t\t\tcameraXR.far = cameraR.far = cameraL.far = depthFar;\n\n\t\t\tif ( _currentDepthNear !== cameraXR.near || _currentDepthFar !== cameraXR.far ) {\n\n\t\t\t\t// Note that the new renderState won't apply until the next frame. See #18320\n\n\t\t\t\tsession.updateRenderState( {\n\t\t\t\t\tdepthNear: cameraXR.near,\n\t\t\t\t\tdepthFar: cameraXR.far\n\t\t\t\t} );\n\n\t\t\t\t_currentDepthNear = cameraXR.near;\n\t\t\t\t_currentDepthFar = cameraXR.far;\n\n\t\t\t}\n\n\t\t\tcameraL.layers.mask = camera.layers.mask | 0b010;\n\t\t\tcameraR.layers.mask = camera.layers.mask | 0b100;\n\t\t\tcameraXR.layers.mask = cameraL.layers.mask | cameraR.layers.mask;\n\n\t\t\tconst parent = camera.parent;\n\t\t\tconst cameras = cameraXR.cameras;\n\n\t\t\tupdateCamera( cameraXR, parent );\n\n\t\t\tfor ( let i = 0; i < cameras.length; i ++ ) {\n\n\t\t\t\tupdateCamera( cameras[ i ], parent );\n\n\t\t\t}\n\n\t\t\t// update projection matrix for proper view frustum culling\n\n\t\t\tif ( cameras.length === 2 ) {\n\n\t\t\t\tsetProjectionFromUnion( cameraXR, cameraL, cameraR );\n\n\t\t\t} else {\n\n\t\t\t\t// assume single camera setup (AR)\n\n\t\t\t\tcameraXR.projectionMatrix.copy( cameraL.projectionMatrix );\n\n\t\t\t}\n\n\t\t\t// update user camera and its children\n\n\t\t\tupdateUserCamera( camera, cameraXR, parent );\n\n\t\t};\n\n\t\tfunction updateUserCamera( camera, cameraXR, parent ) {\n\n\t\t\tif ( parent === null ) {\n\n\t\t\t\tcamera.matrix.copy( cameraXR.matrixWorld );\n\n\t\t\t} else {\n\n\t\t\t\tcamera.matrix.copy( parent.matrixWorld );\n\t\t\t\tcamera.matrix.invert();\n\t\t\t\tcamera.matrix.multiply( cameraXR.matrixWorld );\n\n\t\t\t}\n\n\t\t\tcamera.matrix.decompose( camera.position, camera.quaternion, camera.scale );\n\t\t\tcamera.updateMatrixWorld( true );\n\n\t\t\tcamera.projectionMatrix.copy( cameraXR.projectionMatrix );\n\t\t\tcamera.projectionMatrixInverse.copy( cameraXR.projectionMatrixInverse );\n\n\t\t\tif ( camera.isPerspectiveCamera ) {\n\n\t\t\t\tcamera.fov = RAD2DEG * 2 * Math.atan( 1 / camera.projectionMatrix.elements[ 5 ] );\n\t\t\t\tcamera.zoom = 1;\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.getCamera = function () {\n\n\t\t\treturn cameraXR;\n\n\t\t};\n\n\t\tthis.getFoveation = function () {\n\n\t\t\tif ( glProjLayer === null && glBaseLayer === null ) {\n\n\t\t\t\treturn undefined;\n\n\t\t\t}\n\n\t\t\treturn foveation;\n\n\t\t};\n\n\t\tthis.setFoveation = function ( value ) {\n\n\t\t\t// 0 = no foveation = full resolution\n\t\t\t// 1 = maximum foveation = the edges render at lower resolution\n\n\t\t\tfoveation = value;\n\n\t\t\tif ( glProjLayer !== null ) {\n\n\t\t\t\tglProjLayer.fixedFoveation = value;\n\n\t\t\t}\n\n\t\t\tif ( glBaseLayer !== null && glBaseLayer.fixedFoveation !== undefined ) {\n\n\t\t\t\tglBaseLayer.fixedFoveation = value;\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.hasDepthSensing = function () {\n\n\t\t\treturn depthSensing.texture !== null;\n\n\t\t};\n\n\t\tthis.getDepthSensingMesh = function () {\n\n\t\t\treturn depthSensing.getMesh( cameraXR );\n\n\t\t};\n\n\t\t// Animation Loop\n\n\t\tlet onAnimationFrameCallback = null;\n\n\t\tfunction onAnimationFrame( time, frame ) {\n\n\t\t\tpose = frame.getViewerPose( customReferenceSpace || referenceSpace );\n\t\t\txrFrame = frame;\n\n\t\t\tif ( pose !== null ) {\n\n\t\t\t\tconst views = pose.views;\n\n\t\t\t\tif ( glBaseLayer !== null ) {\n\n\t\t\t\t\trenderer.setRenderTargetFramebuffer( newRenderTarget, glBaseLayer.framebuffer );\n\t\t\t\t\trenderer.setRenderTarget( newRenderTarget );\n\n\t\t\t\t}\n\n\t\t\t\tlet cameraXRNeedsUpdate = false;\n\n\t\t\t\t// check if it's necessary to rebuild cameraXR's camera list\n\n\t\t\t\tif ( views.length !== cameraXR.cameras.length ) {\n\n\t\t\t\t\tcameraXR.cameras.length = 0;\n\t\t\t\t\tcameraXRNeedsUpdate = true;\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0; i < views.length; i ++ ) {\n\n\t\t\t\t\tconst view = views[ i ];\n\n\t\t\t\t\tlet viewport = null;\n\n\t\t\t\t\tif ( glBaseLayer !== null ) {\n\n\t\t\t\t\t\tviewport = glBaseLayer.getViewport( view );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst glSubImage = glBinding.getViewSubImage( glProjLayer, view );\n\t\t\t\t\t\tviewport = glSubImage.viewport;\n\n\t\t\t\t\t\t// For side-by-side projection, we only produce a single texture for both eyes.\n\t\t\t\t\t\tif ( i === 0 ) {\n\n\t\t\t\t\t\t\trenderer.setRenderTargetTextures(\n\t\t\t\t\t\t\t\tnewRenderTarget,\n\t\t\t\t\t\t\t\tglSubImage.colorTexture,\n\t\t\t\t\t\t\t\tglProjLayer.ignoreDepthValues ? undefined : glSubImage.depthStencilTexture );\n\n\t\t\t\t\t\t\trenderer.setRenderTarget( newRenderTarget );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tlet camera = cameras[ i ];\n\n\t\t\t\t\tif ( camera === undefined ) {\n\n\t\t\t\t\t\tcamera = new PerspectiveCamera();\n\t\t\t\t\t\tcamera.layers.enable( i );\n\t\t\t\t\t\tcamera.viewport = new Vector4();\n\t\t\t\t\t\tcameras[ i ] = camera;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tcamera.matrix.fromArray( view.transform.matrix );\n\t\t\t\t\tcamera.matrix.decompose( camera.position, camera.quaternion, camera.scale );\n\t\t\t\t\tcamera.projectionMatrix.fromArray( view.projectionMatrix );\n\t\t\t\t\tcamera.projectionMatrixInverse.copy( camera.projectionMatrix ).invert();\n\t\t\t\t\tcamera.viewport.set( viewport.x, viewport.y, viewport.width, viewport.height );\n\n\t\t\t\t\tif ( i === 0 ) {\n\n\t\t\t\t\t\tcameraXR.matrix.copy( camera.matrix );\n\t\t\t\t\t\tcameraXR.matrix.decompose( cameraXR.position, cameraXR.quaternion, cameraXR.scale );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( cameraXRNeedsUpdate === true ) {\n\n\t\t\t\t\t\tcameraXR.cameras.push( camera );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t//\n\n\t\t\t\tconst enabledFeatures = session.enabledFeatures;\n\n\t\t\t\tif ( enabledFeatures && enabledFeatures.includes( 'depth-sensing' ) ) {\n\n\t\t\t\t\tconst depthData = glBinding.getDepthInformation( views[ 0 ] );\n\n\t\t\t\t\tif ( depthData && depthData.isValid && depthData.texture ) {\n\n\t\t\t\t\t\tdepthSensing.init( renderer, depthData, session.renderState );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tfor ( let i = 0; i < controllers.length; i ++ ) {\n\n\t\t\t\tconst inputSource = controllerInputSources[ i ];\n\t\t\t\tconst controller = controllers[ i ];\n\n\t\t\t\tif ( inputSource !== null && controller !== undefined ) {\n\n\t\t\t\t\tcontroller.update( inputSource, frame, customReferenceSpace || referenceSpace );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( onAnimationFrameCallback ) onAnimationFrameCallback( time, frame );\n\n\t\t\tif ( frame.detectedPlanes ) {\n\n\t\t\t\tscope.dispatchEvent( { type: 'planesdetected', data: frame } );\n\n\t\t\t}\n\n\t\t\txrFrame = null;\n\n\t\t}\n\n\t\tconst animation = new WebGLAnimation();\n\n\t\tanimation.setAnimationLoop( onAnimationFrame );\n\n\t\tthis.setAnimationLoop = function ( callback ) {\n\n\t\t\tonAnimationFrameCallback = callback;\n\n\t\t};\n\n\t\tthis.dispose = function () {};\n\n\t}\n\n}\n\nconst _e1 = /*@__PURE__*/ new Euler();\nconst _m1 = /*@__PURE__*/ new Matrix4();\n\nfunction WebGLMaterials( renderer, properties ) {\n\n\tfunction refreshTransformUniform( map, uniform ) {\n\n\t\tif ( map.matrixAutoUpdate === true ) {\n\n\t\t\tmap.updateMatrix();\n\n\t\t}\n\n\t\tuniform.value.copy( map.matrix );\n\n\t}\n\n\tfunction refreshFogUniforms( uniforms, fog ) {\n\n\t\tfog.color.getRGB( uniforms.fogColor.value, getUnlitUniformColorSpace( renderer ) );\n\n\t\tif ( fog.isFog ) {\n\n\t\t\tuniforms.fogNear.value = fog.near;\n\t\t\tuniforms.fogFar.value = fog.far;\n\n\t\t} else if ( fog.isFogExp2 ) {\n\n\t\t\tuniforms.fogDensity.value = fog.density;\n\n\t\t}\n\n\t}\n\n\tfunction refreshMaterialUniforms( uniforms, material, pixelRatio, height, transmissionRenderTarget ) {\n\n\t\tif ( material.isMeshBasicMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t} else if ( material.isMeshLambertMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t} else if ( material.isMeshToonMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsToon( uniforms, material );\n\n\t\t} else if ( material.isMeshPhongMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsPhong( uniforms, material );\n\n\t\t} else if ( material.isMeshStandardMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsStandard( uniforms, material );\n\n\t\t\tif ( material.isMeshPhysicalMaterial ) {\n\n\t\t\t\trefreshUniformsPhysical( uniforms, material, transmissionRenderTarget );\n\n\t\t\t}\n\n\t\t} else if ( material.isMeshMatcapMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsMatcap( uniforms, material );\n\n\t\t} else if ( material.isMeshDepthMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t} else if ( material.isMeshDistanceMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsDistance( uniforms, material );\n\n\t\t} else if ( material.isMeshNormalMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t} else if ( material.isLineBasicMaterial ) {\n\n\t\t\trefreshUniformsLine( uniforms, material );\n\n\t\t\tif ( material.isLineDashedMaterial ) {\n\n\t\t\t\trefreshUniformsDash( uniforms, material );\n\n\t\t\t}\n\n\t\t} else if ( material.isPointsMaterial ) {\n\n\t\t\trefreshUniformsPoints( uniforms, material, pixelRatio, height );\n\n\t\t} else if ( material.isSpriteMaterial ) {\n\n\t\t\trefreshUniformsSprites( uniforms, material );\n\n\t\t} else if ( material.isShadowMaterial ) {\n\n\t\t\tuniforms.color.value.copy( material.color );\n\t\t\tuniforms.opacity.value = material.opacity;\n\n\t\t} else if ( material.isShaderMaterial ) {\n\n\t\t\tmaterial.uniformsNeedUpdate = false; // #15581\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsCommon( uniforms, material ) {\n\n\t\tuniforms.opacity.value = material.opacity;\n\n\t\tif ( material.color ) {\n\n\t\t\tuniforms.diffuse.value.copy( material.color );\n\n\t\t}\n\n\t\tif ( material.emissive ) {\n\n\t\t\tuniforms.emissive.value.copy( material.emissive ).multiplyScalar( material.emissiveIntensity );\n\n\t\t}\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t\trefreshTransformUniform( material.map, uniforms.mapTransform );\n\n\t\t}\n\n\t\tif ( material.alphaMap ) {\n\n\t\t\tuniforms.alphaMap.value = material.alphaMap;\n\n\t\t\trefreshTransformUniform( material.alphaMap, uniforms.alphaMapTransform );\n\n\t\t}\n\n\t\tif ( material.bumpMap ) {\n\n\t\t\tuniforms.bumpMap.value = material.bumpMap;\n\n\t\t\trefreshTransformUniform( material.bumpMap, uniforms.bumpMapTransform );\n\n\t\t\tuniforms.bumpScale.value = material.bumpScale;\n\n\t\t\tif ( material.side === BackSide ) {\n\n\t\t\t\tuniforms.bumpScale.value *= - 1;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.normalMap ) {\n\n\t\t\tuniforms.normalMap.value = material.normalMap;\n\n\t\t\trefreshTransformUniform( material.normalMap, uniforms.normalMapTransform );\n\n\t\t\tuniforms.normalScale.value.copy( material.normalScale );\n\n\t\t\tif ( material.side === BackSide ) {\n\n\t\t\t\tuniforms.normalScale.value.negate();\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.displacementMap ) {\n\n\t\t\tuniforms.displacementMap.value = material.displacementMap;\n\n\t\t\trefreshTransformUniform( material.displacementMap, uniforms.displacementMapTransform );\n\n\t\t\tuniforms.displacementScale.value = material.displacementScale;\n\t\t\tuniforms.displacementBias.value = material.displacementBias;\n\n\t\t}\n\n\t\tif ( material.emissiveMap ) {\n\n\t\t\tuniforms.emissiveMap.value = material.emissiveMap;\n\n\t\t\trefreshTransformUniform( material.emissiveMap, uniforms.emissiveMapTransform );\n\n\t\t}\n\n\t\tif ( material.specularMap ) {\n\n\t\t\tuniforms.specularMap.value = material.specularMap;\n\n\t\t\trefreshTransformUniform( material.specularMap, uniforms.specularMapTransform );\n\n\t\t}\n\n\t\tif ( material.alphaTest > 0 ) {\n\n\t\t\tuniforms.alphaTest.value = material.alphaTest;\n\n\t\t}\n\n\t\tconst materialProperties = properties.get( material );\n\n\t\tconst envMap = materialProperties.envMap;\n\t\tconst envMapRotation = materialProperties.envMapRotation;\n\n\t\tif ( envMap ) {\n\n\t\t\tuniforms.envMap.value = envMap;\n\n\t\t\t_e1.copy( envMapRotation );\n\n\t\t\t// accommodate left-handed frame\n\t\t\t_e1.x *= - 1; _e1.y *= - 1; _e1.z *= - 1;\n\n\t\t\tif ( envMap.isCubeTexture && envMap.isRenderTargetTexture === false ) {\n\n\t\t\t\t// environment maps which are not cube render targets or PMREMs follow a different convention\n\t\t\t\t_e1.y *= - 1;\n\t\t\t\t_e1.z *= - 1;\n\n\t\t\t}\n\n\t\t\tuniforms.envMapRotation.value.setFromMatrix4( _m1.makeRotationFromEuler( _e1 ) );\n\n\t\t\tuniforms.flipEnvMap.value = ( envMap.isCubeTexture && envMap.isRenderTargetTexture === false ) ? - 1 : 1;\n\n\t\t\tuniforms.reflectivity.value = material.reflectivity;\n\t\t\tuniforms.ior.value = material.ior;\n\t\t\tuniforms.refractionRatio.value = material.refractionRatio;\n\n\t\t}\n\n\t\tif ( material.lightMap ) {\n\n\t\t\tuniforms.lightMap.value = material.lightMap;\n\t\t\tuniforms.lightMapIntensity.value = material.lightMapIntensity;\n\n\t\t\trefreshTransformUniform( material.lightMap, uniforms.lightMapTransform );\n\n\t\t}\n\n\t\tif ( material.aoMap ) {\n\n\t\t\tuniforms.aoMap.value = material.aoMap;\n\t\t\tuniforms.aoMapIntensity.value = material.aoMapIntensity;\n\n\t\t\trefreshTransformUniform( material.aoMap, uniforms.aoMapTransform );\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsLine( uniforms, material ) {\n\n\t\tuniforms.diffuse.value.copy( material.color );\n\t\tuniforms.opacity.value = material.opacity;\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t\trefreshTransformUniform( material.map, uniforms.mapTransform );\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsDash( uniforms, material ) {\n\n\t\tuniforms.dashSize.value = material.dashSize;\n\t\tuniforms.totalSize.value = material.dashSize + material.gapSize;\n\t\tuniforms.scale.value = material.scale;\n\n\t}\n\n\tfunction refreshUniformsPoints( uniforms, material, pixelRatio, height ) {\n\n\t\tuniforms.diffuse.value.copy( material.color );\n\t\tuniforms.opacity.value = material.opacity;\n\t\tuniforms.size.value = material.size * pixelRatio;\n\t\tuniforms.scale.value = height * 0.5;\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t\trefreshTransformUniform( material.map, uniforms.uvTransform );\n\n\t\t}\n\n\t\tif ( material.alphaMap ) {\n\n\t\t\tuniforms.alphaMap.value = material.alphaMap;\n\n\t\t\trefreshTransformUniform( material.alphaMap, uniforms.alphaMapTransform );\n\n\t\t}\n\n\t\tif ( material.alphaTest > 0 ) {\n\n\t\t\tuniforms.alphaTest.value = material.alphaTest;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsSprites( uniforms, material ) {\n\n\t\tuniforms.diffuse.value.copy( material.color );\n\t\tuniforms.opacity.value = material.opacity;\n\t\tuniforms.rotation.value = material.rotation;\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t\trefreshTransformUniform( material.map, uniforms.mapTransform );\n\n\t\t}\n\n\t\tif ( material.alphaMap ) {\n\n\t\t\tuniforms.alphaMap.value = material.alphaMap;\n\n\t\t\trefreshTransformUniform( material.alphaMap, uniforms.alphaMapTransform );\n\n\t\t}\n\n\t\tif ( material.alphaTest > 0 ) {\n\n\t\t\tuniforms.alphaTest.value = material.alphaTest;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsPhong( uniforms, material ) {\n\n\t\tuniforms.specular.value.copy( material.specular );\n\t\tuniforms.shininess.value = Math.max( material.shininess, 1e-4 ); // to prevent pow( 0.0, 0.0 )\n\n\t}\n\n\tfunction refreshUniformsToon( uniforms, material ) {\n\n\t\tif ( material.gradientMap ) {\n\n\t\t\tuniforms.gradientMap.value = material.gradientMap;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsStandard( uniforms, material ) {\n\n\t\tuniforms.metalness.value = material.metalness;\n\n\t\tif ( material.metalnessMap ) {\n\n\t\t\tuniforms.metalnessMap.value = material.metalnessMap;\n\n\t\t\trefreshTransformUniform( material.metalnessMap, uniforms.metalnessMapTransform );\n\n\t\t}\n\n\t\tuniforms.roughness.value = material.roughness;\n\n\t\tif ( material.roughnessMap ) {\n\n\t\t\tuniforms.roughnessMap.value = material.roughnessMap;\n\n\t\t\trefreshTransformUniform( material.roughnessMap, uniforms.roughnessMapTransform );\n\n\t\t}\n\n\t\tif ( material.envMap ) {\n\n\t\t\t//uniforms.envMap.value = material.envMap; // part of uniforms common\n\n\t\t\tuniforms.envMapIntensity.value = material.envMapIntensity;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsPhysical( uniforms, material, transmissionRenderTarget ) {\n\n\t\tuniforms.ior.value = material.ior; // also part of uniforms common\n\n\t\tif ( material.sheen > 0 ) {\n\n\t\t\tuniforms.sheenColor.value.copy( material.sheenColor ).multiplyScalar( material.sheen );\n\n\t\t\tuniforms.sheenRoughness.value = material.sheenRoughness;\n\n\t\t\tif ( material.sheenColorMap ) {\n\n\t\t\t\tuniforms.sheenColorMap.value = material.sheenColorMap;\n\n\t\t\t\trefreshTransformUniform( material.sheenColorMap, uniforms.sheenColorMapTransform );\n\n\t\t\t}\n\n\t\t\tif ( material.sheenRoughnessMap ) {\n\n\t\t\t\tuniforms.sheenRoughnessMap.value = material.sheenRoughnessMap;\n\n\t\t\t\trefreshTransformUniform( material.sheenRoughnessMap, uniforms.sheenRoughnessMapTransform );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.clearcoat > 0 ) {\n\n\t\t\tuniforms.clearcoat.value = material.clearcoat;\n\t\t\tuniforms.clearcoatRoughness.value = material.clearcoatRoughness;\n\n\t\t\tif ( material.clearcoatMap ) {\n\n\t\t\t\tuniforms.clearcoatMap.value = material.clearcoatMap;\n\n\t\t\t\trefreshTransformUniform( material.clearcoatMap, uniforms.clearcoatMapTransform );\n\n\t\t\t}\n\n\t\t\tif ( material.clearcoatRoughnessMap ) {\n\n\t\t\t\tuniforms.clearcoatRoughnessMap.value = material.clearcoatRoughnessMap;\n\n\t\t\t\trefreshTransformUniform( material.clearcoatRoughnessMap, uniforms.clearcoatRoughnessMapTransform );\n\n\t\t\t}\n\n\t\t\tif ( material.clearcoatNormalMap ) {\n\n\t\t\t\tuniforms.clearcoatNormalMap.value = material.clearcoatNormalMap;\n\n\t\t\t\trefreshTransformUniform( material.clearcoatNormalMap, uniforms.clearcoatNormalMapTransform );\n\n\t\t\t\tuniforms.clearcoatNormalScale.value.copy( material.clearcoatNormalScale );\n\n\t\t\t\tif ( material.side === BackSide ) {\n\n\t\t\t\t\tuniforms.clearcoatNormalScale.value.negate();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.dispersion > 0 ) {\n\n\t\t\tuniforms.dispersion.value = material.dispersion;\n\n\t\t}\n\n\t\tif ( material.iridescence > 0 ) {\n\n\t\t\tuniforms.iridescence.value = material.iridescence;\n\t\t\tuniforms.iridescenceIOR.value = material.iridescenceIOR;\n\t\t\tuniforms.iridescenceThicknessMinimum.value = material.iridescenceThicknessRange[ 0 ];\n\t\t\tuniforms.iridescenceThicknessMaximum.value = material.iridescenceThicknessRange[ 1 ];\n\n\t\t\tif ( material.iridescenceMap ) {\n\n\t\t\t\tuniforms.iridescenceMap.value = material.iridescenceMap;\n\n\t\t\t\trefreshTransformUniform( material.iridescenceMap, uniforms.iridescenceMapTransform );\n\n\t\t\t}\n\n\t\t\tif ( material.iridescenceThicknessMap ) {\n\n\t\t\t\tuniforms.iridescenceThicknessMap.value = material.iridescenceThicknessMap;\n\n\t\t\t\trefreshTransformUniform( material.iridescenceThicknessMap, uniforms.iridescenceThicknessMapTransform );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.transmission > 0 ) {\n\n\t\t\tuniforms.transmission.value = material.transmission;\n\t\t\tuniforms.transmissionSamplerMap.value = transmissionRenderTarget.texture;\n\t\t\tuniforms.transmissionSamplerSize.value.set( transmissionRenderTarget.width, transmissionRenderTarget.height );\n\n\t\t\tif ( material.transmissionMap ) {\n\n\t\t\t\tuniforms.transmissionMap.value = material.transmissionMap;\n\n\t\t\t\trefreshTransformUniform( material.transmissionMap, uniforms.transmissionMapTransform );\n\n\t\t\t}\n\n\t\t\tuniforms.thickness.value = material.thickness;\n\n\t\t\tif ( material.thicknessMap ) {\n\n\t\t\t\tuniforms.thicknessMap.value = material.thicknessMap;\n\n\t\t\t\trefreshTransformUniform( material.thicknessMap, uniforms.thicknessMapTransform );\n\n\t\t\t}\n\n\t\t\tuniforms.attenuationDistance.value = material.attenuationDistance;\n\t\t\tuniforms.attenuationColor.value.copy( material.attenuationColor );\n\n\t\t}\n\n\t\tif ( material.anisotropy > 0 ) {\n\n\t\t\tuniforms.anisotropyVector.value.set( material.anisotropy * Math.cos( material.anisotropyRotation ), material.anisotropy * Math.sin( material.anisotropyRotation ) );\n\n\t\t\tif ( material.anisotropyMap ) {\n\n\t\t\t\tuniforms.anisotropyMap.value = material.anisotropyMap;\n\n\t\t\t\trefreshTransformUniform( material.anisotropyMap, uniforms.anisotropyMapTransform );\n\n\t\t\t}\n\n\t\t}\n\n\t\tuniforms.specularIntensity.value = material.specularIntensity;\n\t\tuniforms.specularColor.value.copy( material.specularColor );\n\n\t\tif ( material.specularColorMap ) {\n\n\t\t\tuniforms.specularColorMap.value = material.specularColorMap;\n\n\t\t\trefreshTransformUniform( material.specularColorMap, uniforms.specularColorMapTransform );\n\n\t\t}\n\n\t\tif ( material.specularIntensityMap ) {\n\n\t\t\tuniforms.specularIntensityMap.value = material.specularIntensityMap;\n\n\t\t\trefreshTransformUniform( material.specularIntensityMap, uniforms.specularIntensityMapTransform );\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsMatcap( uniforms, material ) {\n\n\t\tif ( material.matcap ) {\n\n\t\t\tuniforms.matcap.value = material.matcap;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsDistance( uniforms, material ) {\n\n\t\tconst light = properties.get( material ).light;\n\n\t\tuniforms.referencePosition.value.setFromMatrixPosition( light.matrixWorld );\n\t\tuniforms.nearDistance.value = light.shadow.camera.near;\n\t\tuniforms.farDistance.value = light.shadow.camera.far;\n\n\t}\n\n\treturn {\n\t\trefreshFogUniforms: refreshFogUniforms,\n\t\trefreshMaterialUniforms: refreshMaterialUniforms\n\t};\n\n}\n\nfunction WebGLUniformsGroups( gl, info, capabilities, state ) {\n\n\tlet buffers = {};\n\tlet updateList = {};\n\tlet allocatedBindingPoints = [];\n\n\tconst maxBindingPoints = gl.getParameter( gl.MAX_UNIFORM_BUFFER_BINDINGS ); // binding points are global whereas block indices are per shader program\n\n\tfunction bind( uniformsGroup, program ) {\n\n\t\tconst webglProgram = program.program;\n\t\tstate.uniformBlockBinding( uniformsGroup, webglProgram );\n\n\t}\n\n\tfunction update( uniformsGroup, program ) {\n\n\t\tlet buffer = buffers[ uniformsGroup.id ];\n\n\t\tif ( buffer === undefined ) {\n\n\t\t\tprepareUniformsGroup( uniformsGroup );\n\n\t\t\tbuffer = createBuffer( uniformsGroup );\n\t\t\tbuffers[ uniformsGroup.id ] = buffer;\n\n\t\t\tuniformsGroup.addEventListener( 'dispose', onUniformsGroupsDispose );\n\n\t\t}\n\n\t\t// ensure to update the binding points/block indices mapping for this program\n\n\t\tconst webglProgram = program.program;\n\t\tstate.updateUBOMapping( uniformsGroup, webglProgram );\n\n\t\t// update UBO once per frame\n\n\t\tconst frame = info.render.frame;\n\n\t\tif ( updateList[ uniformsGroup.id ] !== frame ) {\n\n\t\t\tupdateBufferData( uniformsGroup );\n\n\t\t\tupdateList[ uniformsGroup.id ] = frame;\n\n\t\t}\n\n\t}\n\n\tfunction createBuffer( uniformsGroup ) {\n\n\t\t// the setup of an UBO is independent of a particular shader program but global\n\n\t\tconst bindingPointIndex = allocateBindingPointIndex();\n\t\tuniformsGroup.__bindingPointIndex = bindingPointIndex;\n\n\t\tconst buffer = gl.createBuffer();\n\t\tconst size = uniformsGroup.__size;\n\t\tconst usage = uniformsGroup.usage;\n\n\t\tgl.bindBuffer( gl.UNIFORM_BUFFER, buffer );\n\t\tgl.bufferData( gl.UNIFORM_BUFFER, size, usage );\n\t\tgl.bindBuffer( gl.UNIFORM_BUFFER, null );\n\t\tgl.bindBufferBase( gl.UNIFORM_BUFFER, bindingPointIndex, buffer );\n\n\t\treturn buffer;\n\n\t}\n\n\tfunction allocateBindingPointIndex() {\n\n\t\tfor ( let i = 0; i < maxBindingPoints; i ++ ) {\n\n\t\t\tif ( allocatedBindingPoints.indexOf( i ) === - 1 ) {\n\n\t\t\t\tallocatedBindingPoints.push( i );\n\t\t\t\treturn i;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconsole.error( 'THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached.' );\n\n\t\treturn 0;\n\n\t}\n\n\tfunction updateBufferData( uniformsGroup ) {\n\n\t\tconst buffer = buffers[ uniformsGroup.id ];\n\t\tconst uniforms = uniformsGroup.uniforms;\n\t\tconst cache = uniformsGroup.__cache;\n\n\t\tgl.bindBuffer( gl.UNIFORM_BUFFER, buffer );\n\n\t\tfor ( let i = 0, il = uniforms.length; i < il; i ++ ) {\n\n\t\t\tconst uniformArray = Array.isArray( uniforms[ i ] ) ? uniforms[ i ] : [ uniforms[ i ] ];\n\n\t\t\tfor ( let j = 0, jl = uniformArray.length; j < jl; j ++ ) {\n\n\t\t\t\tconst uniform = uniformArray[ j ];\n\n\t\t\t\tif ( hasUniformChanged( uniform, i, j, cache ) === true ) {\n\n\t\t\t\t\tconst offset = uniform.__offset;\n\n\t\t\t\t\tconst values = Array.isArray( uniform.value ) ? uniform.value : [ uniform.value ];\n\n\t\t\t\t\tlet arrayOffset = 0;\n\n\t\t\t\t\tfor ( let k = 0; k < values.length; k ++ ) {\n\n\t\t\t\t\t\tconst value = values[ k ];\n\n\t\t\t\t\t\tconst info = getUniformSize( value );\n\n\t\t\t\t\t\t// TODO add integer and struct support\n\t\t\t\t\t\tif ( typeof value === 'number' || typeof value === 'boolean' ) {\n\n\t\t\t\t\t\t\tuniform.__data[ 0 ] = value;\n\t\t\t\t\t\t\tgl.bufferSubData( gl.UNIFORM_BUFFER, offset + arrayOffset, uniform.__data );\n\n\t\t\t\t\t\t} else if ( value.isMatrix3 ) {\n\n\t\t\t\t\t\t\t// manually converting 3x3 to 3x4\n\n\t\t\t\t\t\t\tuniform.__data[ 0 ] = value.elements[ 0 ];\n\t\t\t\t\t\t\tuniform.__data[ 1 ] = value.elements[ 1 ];\n\t\t\t\t\t\t\tuniform.__data[ 2 ] = value.elements[ 2 ];\n\t\t\t\t\t\t\tuniform.__data[ 3 ] = 0;\n\t\t\t\t\t\t\tuniform.__data[ 4 ] = value.elements[ 3 ];\n\t\t\t\t\t\t\tuniform.__data[ 5 ] = value.elements[ 4 ];\n\t\t\t\t\t\t\tuniform.__data[ 6 ] = value.elements[ 5 ];\n\t\t\t\t\t\t\tuniform.__data[ 7 ] = 0;\n\t\t\t\t\t\t\tuniform.__data[ 8 ] = value.elements[ 6 ];\n\t\t\t\t\t\t\tuniform.__data[ 9 ] = value.elements[ 7 ];\n\t\t\t\t\t\t\tuniform.__data[ 10 ] = value.elements[ 8 ];\n\t\t\t\t\t\t\tuniform.__data[ 11 ] = 0;\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tvalue.toArray( uniform.__data, arrayOffset );\n\n\t\t\t\t\t\t\tarrayOffset += info.storage / Float32Array.BYTES_PER_ELEMENT;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tgl.bufferSubData( gl.UNIFORM_BUFFER, offset, uniform.__data );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tgl.bindBuffer( gl.UNIFORM_BUFFER, null );\n\n\t}\n\n\tfunction hasUniformChanged( uniform, index, indexArray, cache ) {\n\n\t\tconst value = uniform.value;\n\t\tconst indexString = index + '_' + indexArray;\n\n\t\tif ( cache[ indexString ] === undefined ) {\n\n\t\t\t// cache entry does not exist so far\n\n\t\t\tif ( typeof value === 'number' || typeof value === 'boolean' ) {\n\n\t\t\t\tcache[ indexString ] = value;\n\n\t\t\t} else {\n\n\t\t\t\tcache[ indexString ] = value.clone();\n\n\t\t\t}\n\n\t\t\treturn true;\n\n\t\t} else {\n\n\t\t\tconst cachedObject = cache[ indexString ];\n\n\t\t\t// compare current value with cached entry\n\n\t\t\tif ( typeof value === 'number' || typeof value === 'boolean' ) {\n\n\t\t\t\tif ( cachedObject !== value ) {\n\n\t\t\t\t\tcache[ indexString ] = value;\n\t\t\t\t\treturn true;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( cachedObject.equals( value ) === false ) {\n\n\t\t\t\t\tcachedObject.copy( value );\n\t\t\t\t\treturn true;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\tfunction prepareUniformsGroup( uniformsGroup ) {\n\n\t\t// determine total buffer size according to the STD140 layout\n\t\t// Hint: STD140 is the only supported layout in WebGL 2\n\n\t\tconst uniforms = uniformsGroup.uniforms;\n\n\t\tlet offset = 0; // global buffer offset in bytes\n\t\tconst chunkSize = 16; // size of a chunk in bytes\n\n\t\tfor ( let i = 0, l = uniforms.length; i < l; i ++ ) {\n\n\t\t\tconst uniformArray = Array.isArray( uniforms[ i ] ) ? uniforms[ i ] : [ uniforms[ i ] ];\n\n\t\t\tfor ( let j = 0, jl = uniformArray.length; j < jl; j ++ ) {\n\n\t\t\t\tconst uniform = uniformArray[ j ];\n\n\t\t\t\tconst values = Array.isArray( uniform.value ) ? uniform.value : [ uniform.value ];\n\n\t\t\t\tfor ( let k = 0, kl = values.length; k < kl; k ++ ) {\n\n\t\t\t\t\tconst value = values[ k ];\n\n\t\t\t\t\tconst info = getUniformSize( value );\n\n\t\t\t\t\tconst chunkOffset = offset % chunkSize; // offset in the current chunk\n\t\t\t\t\tconst chunkPadding = chunkOffset % info.boundary; // required padding to match boundary\n\t\t\t\t\tconst chunkStart = chunkOffset + chunkPadding; // the start position in the current chunk for the data\n\n\t\t\t\t\toffset += chunkPadding;\n\n\t\t\t\t\t// Check for chunk overflow\n\t\t\t\t\tif ( chunkStart !== 0 && ( chunkSize - chunkStart ) < info.storage ) {\n\n\t\t\t\t\t\t// Add padding and adjust offset\n\t\t\t\t\t\toffset += ( chunkSize - chunkStart );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// the following two properties will be used for partial buffer updates\n\t\t\t\t\tuniform.__data = new Float32Array( info.storage / Float32Array.BYTES_PER_ELEMENT );\n\t\t\t\t\tuniform.__offset = offset;\n\n\t\t\t\t\t// Update the global offset\n\t\t\t\t\toffset += info.storage;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// ensure correct final padding\n\n\t\tconst chunkOffset = offset % chunkSize;\n\n\t\tif ( chunkOffset > 0 ) offset += ( chunkSize - chunkOffset );\n\n\t\t//\n\n\t\tuniformsGroup.__size = offset;\n\t\tuniformsGroup.__cache = {};\n\n\t\treturn this;\n\n\t}\n\n\tfunction getUniformSize( value ) {\n\n\t\tconst info = {\n\t\t\tboundary: 0, // bytes\n\t\t\tstorage: 0 // bytes\n\t\t};\n\n\t\t// determine sizes according to STD140\n\n\t\tif ( typeof value === 'number' || typeof value === 'boolean' ) {\n\n\t\t\t// float/int/bool\n\n\t\t\tinfo.boundary = 4;\n\t\t\tinfo.storage = 4;\n\n\t\t} else if ( value.isVector2 ) {\n\n\t\t\t// vec2\n\n\t\t\tinfo.boundary = 8;\n\t\t\tinfo.storage = 8;\n\n\t\t} else if ( value.isVector3 || value.isColor ) {\n\n\t\t\t// vec3\n\n\t\t\tinfo.boundary = 16;\n\t\t\tinfo.storage = 12; // evil: vec3 must start on a 16-byte boundary but it only consumes 12 bytes\n\n\t\t} else if ( value.isVector4 ) {\n\n\t\t\t// vec4\n\n\t\t\tinfo.boundary = 16;\n\t\t\tinfo.storage = 16;\n\n\t\t} else if ( value.isMatrix3 ) {\n\n\t\t\t// mat3 (in STD140 a 3x3 matrix is represented as 3x4)\n\n\t\t\tinfo.boundary = 48;\n\t\t\tinfo.storage = 48;\n\n\t\t} else if ( value.isMatrix4 ) {\n\n\t\t\t// mat4\n\n\t\t\tinfo.boundary = 64;\n\t\t\tinfo.storage = 64;\n\n\t\t} else if ( value.isTexture ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group.' );\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Unsupported uniform value type.', value );\n\n\t\t}\n\n\t\treturn info;\n\n\t}\n\n\tfunction onUniformsGroupsDispose( event ) {\n\n\t\tconst uniformsGroup = event.target;\n\n\t\tuniformsGroup.removeEventListener( 'dispose', onUniformsGroupsDispose );\n\n\t\tconst index = allocatedBindingPoints.indexOf( uniformsGroup.__bindingPointIndex );\n\t\tallocatedBindingPoints.splice( index, 1 );\n\n\t\tgl.deleteBuffer( buffers[ uniformsGroup.id ] );\n\n\t\tdelete buffers[ uniformsGroup.id ];\n\t\tdelete updateList[ uniformsGroup.id ];\n\n\t}\n\n\tfunction dispose() {\n\n\t\tfor ( const id in buffers ) {\n\n\t\t\tgl.deleteBuffer( buffers[ id ] );\n\n\t\t}\n\n\t\tallocatedBindingPoints = [];\n\t\tbuffers = {};\n\t\tupdateList = {};\n\n\t}\n\n\treturn {\n\n\t\tbind: bind,\n\t\tupdate: update,\n\n\t\tdispose: dispose\n\n\t};\n\n}\n\nclass WebGLRenderer {\n\n\tconstructor( parameters = {} ) {\n\n\t\tconst {\n\t\t\tcanvas = createCanvasElement(),\n\t\t\tcontext = null,\n\t\t\tdepth = true,\n\t\t\tstencil = false,\n\t\t\talpha = false,\n\t\t\tantialias = false,\n\t\t\tpremultipliedAlpha = true,\n\t\t\tpreserveDrawingBuffer = false,\n\t\t\tpowerPreference = 'default',\n\t\t\tfailIfMajorPerformanceCaveat = false,\n\t\t\treverseDepthBuffer = false,\n\t\t} = parameters;\n\n\t\tthis.isWebGLRenderer = true;\n\n\t\tlet _alpha;\n\n\t\tif ( context !== null ) {\n\n\t\t\tif ( typeof WebGLRenderingContext !== 'undefined' && context instanceof WebGLRenderingContext ) {\n\n\t\t\t\tthrow new Error( 'THREE.WebGLRenderer: WebGL 1 is not supported since r163.' );\n\n\t\t\t}\n\n\t\t\t_alpha = context.getContextAttributes().alpha;\n\n\t\t} else {\n\n\t\t\t_alpha = alpha;\n\n\t\t}\n\n\t\tconst uintClearColor = new Uint32Array( 4 );\n\t\tconst intClearColor = new Int32Array( 4 );\n\n\t\tlet currentRenderList = null;\n\t\tlet currentRenderState = null;\n\n\t\t// render() can be called from within a callback triggered by another render.\n\t\t// We track this so that the nested render call gets its list and state isolated from the parent render call.\n\n\t\tconst renderListStack = [];\n\t\tconst renderStateStack = [];\n\n\t\t// public properties\n\n\t\tthis.domElement = canvas;\n\n\t\t// Debug configuration container\n\t\tthis.debug = {\n\n\t\t\t/**\n\t\t\t * Enables error checking and reporting when shader programs are being compiled\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tcheckShaderErrors: true,\n\t\t\t/**\n\t\t\t * Callback for custom error reporting.\n\t\t\t * @type {?Function}\n\t\t\t */\n\t\t\tonShaderError: null\n\t\t};\n\n\t\t// clearing\n\n\t\tthis.autoClear = true;\n\t\tthis.autoClearColor = true;\n\t\tthis.autoClearDepth = true;\n\t\tthis.autoClearStencil = true;\n\n\t\t// scene graph\n\n\t\tthis.sortObjects = true;\n\n\t\t// user-defined clipping\n\n\t\tthis.clippingPlanes = [];\n\t\tthis.localClippingEnabled = false;\n\n\t\t// physically based shading\n\n\t\tthis._outputColorSpace = SRGBColorSpace;\n\n\t\t// tone mapping\n\n\t\tthis.toneMapping = NoToneMapping;\n\t\tthis.toneMappingExposure = 1.0;\n\n\t\t// internal properties\n\n\t\tconst _this = this;\n\n\t\tlet _isContextLost = false;\n\n\t\t// internal state cache\n\n\t\tlet _currentActiveCubeFace = 0;\n\t\tlet _currentActiveMipmapLevel = 0;\n\t\tlet _currentRenderTarget = null;\n\t\tlet _currentMaterialId = - 1;\n\n\t\tlet _currentCamera = null;\n\n\t\tconst _currentViewport = new Vector4();\n\t\tconst _currentScissor = new Vector4();\n\t\tlet _currentScissorTest = null;\n\n\t\tconst _currentClearColor = new Color( 0x000000 );\n\t\tlet _currentClearAlpha = 0;\n\n\t\t//\n\n\t\tlet _width = canvas.width;\n\t\tlet _height = canvas.height;\n\n\t\tlet _pixelRatio = 1;\n\t\tlet _opaqueSort = null;\n\t\tlet _transparentSort = null;\n\n\t\tconst _viewport = new Vector4( 0, 0, _width, _height );\n\t\tconst _scissor = new Vector4( 0, 0, _width, _height );\n\t\tlet _scissorTest = false;\n\n\t\t// frustum\n\n\t\tconst _frustum = new Frustum();\n\n\t\t// clipping\n\n\t\tlet _clippingEnabled = false;\n\t\tlet _localClippingEnabled = false;\n\n\t\t// transmission render target scale\n\t\tthis.transmissionResolutionScale = 1.0;\n\n\t\t// camera matrices cache\n\n\t\tconst _currentProjectionMatrix = new Matrix4();\n\t\tconst _projScreenMatrix = new Matrix4();\n\n\t\tconst _vector3 = new Vector3();\n\n\t\tconst _vector4 = new Vector4();\n\n\t\tconst _emptyScene = { background: null, fog: null, environment: null, overrideMaterial: null, isScene: true };\n\n\t\tlet _renderBackground = false;\n\n\t\tfunction getTargetPixelRatio() {\n\n\t\t\treturn _currentRenderTarget === null ? _pixelRatio : 1;\n\n\t\t}\n\n\t\t// initialize\n\n\t\tlet _gl = context;\n\n\t\tfunction getContext( contextName, contextAttributes ) {\n\n\t\t\treturn canvas.getContext( contextName, contextAttributes );\n\n\t\t}\n\n\t\ttry {\n\n\t\t\tconst contextAttributes = {\n\t\t\t\talpha: true,\n\t\t\t\tdepth,\n\t\t\t\tstencil,\n\t\t\t\tantialias,\n\t\t\t\tpremultipliedAlpha,\n\t\t\t\tpreserveDrawingBuffer,\n\t\t\t\tpowerPreference,\n\t\t\t\tfailIfMajorPerformanceCaveat,\n\t\t\t};\n\n\t\t\t// OffscreenCanvas does not have setAttribute, see #22811\n\t\t\tif ( 'setAttribute' in canvas ) canvas.setAttribute( 'data-engine', `three.js r${REVISION}` );\n\n\t\t\t// event listeners must be registered before WebGL context is created, see #12753\n\t\t\tcanvas.addEventListener( 'webglcontextlost', onContextLost, false );\n\t\t\tcanvas.addEventListener( 'webglcontextrestored', onContextRestore, false );\n\t\t\tcanvas.addEventListener( 'webglcontextcreationerror', onContextCreationError, false );\n\n\t\t\tif ( _gl === null ) {\n\n\t\t\t\tconst contextName = 'webgl2';\n\n\t\t\t\t_gl = getContext( contextName, contextAttributes );\n\n\t\t\t\tif ( _gl === null ) {\n\n\t\t\t\t\tif ( getContext( contextName ) ) {\n\n\t\t\t\t\t\tthrow new Error( 'Error creating WebGL context with your selected attributes.' );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthrow new Error( 'Error creating WebGL context.' );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLRenderer: ' + error.message );\n\t\t\tthrow error;\n\n\t\t}\n\n\t\tlet extensions, capabilities, state, info;\n\t\tlet properties, textures, cubemaps, cubeuvmaps, attributes, geometries, objects;\n\t\tlet programCache, materials, renderLists, renderStates, clipping, shadowMap;\n\n\t\tlet background, morphtargets, bufferRenderer, indexedBufferRenderer;\n\n\t\tlet utils, bindingStates, uniformsGroups;\n\n\t\tfunction initGLContext() {\n\n\t\t\textensions = new WebGLExtensions( _gl );\n\t\t\textensions.init();\n\n\t\t\tutils = new WebGLUtils( _gl, extensions );\n\n\t\t\tcapabilities = new WebGLCapabilities( _gl, extensions, parameters, utils );\n\n\t\t\tstate = new WebGLState( _gl, extensions );\n\n\t\t\tif ( capabilities.reverseDepthBuffer && reverseDepthBuffer ) {\n\n\t\t\t\tstate.buffers.depth.setReversed( true );\n\n\t\t\t}\n\n\t\t\tinfo = new WebGLInfo( _gl );\n\t\t\tproperties = new WebGLProperties();\n\t\t\ttextures = new WebGLTextures( _gl, extensions, state, properties, capabilities, utils, info );\n\t\t\tcubemaps = new WebGLCubeMaps( _this );\n\t\t\tcubeuvmaps = new WebGLCubeUVMaps( _this );\n\t\t\tattributes = new WebGLAttributes( _gl );\n\t\t\tbindingStates = new WebGLBindingStates( _gl, attributes );\n\t\t\tgeometries = new WebGLGeometries( _gl, attributes, info, bindingStates );\n\t\t\tobjects = new WebGLObjects( _gl, geometries, attributes, info );\n\t\t\tmorphtargets = new WebGLMorphtargets( _gl, capabilities, textures );\n\t\t\tclipping = new WebGLClipping( properties );\n\t\t\tprogramCache = new WebGLPrograms( _this, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping );\n\t\t\tmaterials = new WebGLMaterials( _this, properties );\n\t\t\trenderLists = new WebGLRenderLists();\n\t\t\trenderStates = new WebGLRenderStates( extensions );\n\t\t\tbackground = new WebGLBackground( _this, cubemaps, cubeuvmaps, state, objects, _alpha, premultipliedAlpha );\n\t\t\tshadowMap = new WebGLShadowMap( _this, objects, capabilities );\n\t\t\tuniformsGroups = new WebGLUniformsGroups( _gl, info, capabilities, state );\n\n\t\t\tbufferRenderer = new WebGLBufferRenderer( _gl, extensions, info );\n\t\t\tindexedBufferRenderer = new WebGLIndexedBufferRenderer( _gl, extensions, info );\n\n\t\t\tinfo.programs = programCache.programs;\n\n\t\t\t_this.capabilities = capabilities;\n\t\t\t_this.extensions = extensions;\n\t\t\t_this.properties = properties;\n\t\t\t_this.renderLists = renderLists;\n\t\t\t_this.shadowMap = shadowMap;\n\t\t\t_this.state = state;\n\t\t\t_this.info = info;\n\n\t\t}\n\n\t\tinitGLContext();\n\n\t\t// xr\n\n\t\tconst xr = new WebXRManager( _this, _gl );\n\n\t\tthis.xr = xr;\n\n\t\t// API\n\n\t\tthis.getContext = function () {\n\n\t\t\treturn _gl;\n\n\t\t};\n\n\t\tthis.getContextAttributes = function () {\n\n\t\t\treturn _gl.getContextAttributes();\n\n\t\t};\n\n\t\tthis.forceContextLoss = function () {\n\n\t\t\tconst extension = extensions.get( 'WEBGL_lose_context' );\n\t\t\tif ( extension ) extension.loseContext();\n\n\t\t};\n\n\t\tthis.forceContextRestore = function () {\n\n\t\t\tconst extension = extensions.get( 'WEBGL_lose_context' );\n\t\t\tif ( extension ) extension.restoreContext();\n\n\t\t};\n\n\t\tthis.getPixelRatio = function () {\n\n\t\t\treturn _pixelRatio;\n\n\t\t};\n\n\t\tthis.setPixelRatio = function ( value ) {\n\n\t\t\tif ( value === undefined ) return;\n\n\t\t\t_pixelRatio = value;\n\n\t\t\tthis.setSize( _width, _height, false );\n\n\t\t};\n\n\t\tthis.getSize = function ( target ) {\n\n\t\t\treturn target.set( _width, _height );\n\n\t\t};\n\n\t\tthis.setSize = function ( width, height, updateStyle = true ) {\n\n\t\t\tif ( xr.isPresenting ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Can\\'t change size while VR device is presenting.' );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\t_width = width;\n\t\t\t_height = height;\n\n\t\t\tcanvas.width = Math.floor( width * _pixelRatio );\n\t\t\tcanvas.height = Math.floor( height * _pixelRatio );\n\n\t\t\tif ( updateStyle === true ) {\n\n\t\t\t\tcanvas.style.width = width + 'px';\n\t\t\t\tcanvas.style.height = height + 'px';\n\n\t\t\t}\n\n\t\t\tthis.setViewport( 0, 0, width, height );\n\n\t\t};\n\n\t\tthis.getDrawingBufferSize = function ( target ) {\n\n\t\t\treturn target.set( _width * _pixelRatio, _height * _pixelRatio ).floor();\n\n\t\t};\n\n\t\tthis.setDrawingBufferSize = function ( width, height, pixelRatio ) {\n\n\t\t\t_width = width;\n\t\t\t_height = height;\n\n\t\t\t_pixelRatio = pixelRatio;\n\n\t\t\tcanvas.width = Math.floor( width * pixelRatio );\n\t\t\tcanvas.height = Math.floor( height * pixelRatio );\n\n\t\t\tthis.setViewport( 0, 0, width, height );\n\n\t\t};\n\n\t\tthis.getCurrentViewport = function ( target ) {\n\n\t\t\treturn target.copy( _currentViewport );\n\n\t\t};\n\n\t\tthis.getViewport = function ( target ) {\n\n\t\t\treturn target.copy( _viewport );\n\n\t\t};\n\n\t\tthis.setViewport = function ( x, y, width, height ) {\n\n\t\t\tif ( x.isVector4 ) {\n\n\t\t\t\t_viewport.set( x.x, x.y, x.z, x.w );\n\n\t\t\t} else {\n\n\t\t\t\t_viewport.set( x, y, width, height );\n\n\t\t\t}\n\n\t\t\tstate.viewport( _currentViewport.copy( _viewport ).multiplyScalar( _pixelRatio ).round() );\n\n\t\t};\n\n\t\tthis.getScissor = function ( target ) {\n\n\t\t\treturn target.copy( _scissor );\n\n\t\t};\n\n\t\tthis.setScissor = function ( x, y, width, height ) {\n\n\t\t\tif ( x.isVector4 ) {\n\n\t\t\t\t_scissor.set( x.x, x.y, x.z, x.w );\n\n\t\t\t} else {\n\n\t\t\t\t_scissor.set( x, y, width, height );\n\n\t\t\t}\n\n\t\t\tstate.scissor( _currentScissor.copy( _scissor ).multiplyScalar( _pixelRatio ).round() );\n\n\t\t};\n\n\t\tthis.getScissorTest = function () {\n\n\t\t\treturn _scissorTest;\n\n\t\t};\n\n\t\tthis.setScissorTest = function ( boolean ) {\n\n\t\t\tstate.setScissorTest( _scissorTest = boolean );\n\n\t\t};\n\n\t\tthis.setOpaqueSort = function ( method ) {\n\n\t\t\t_opaqueSort = method;\n\n\t\t};\n\n\t\tthis.setTransparentSort = function ( method ) {\n\n\t\t\t_transparentSort = method;\n\n\t\t};\n\n\t\t// Clearing\n\n\t\tthis.getClearColor = function ( target ) {\n\n\t\t\treturn target.copy( background.getClearColor() );\n\n\t\t};\n\n\t\tthis.setClearColor = function () {\n\n\t\t\tbackground.setClearColor.apply( background, arguments );\n\n\t\t};\n\n\t\tthis.getClearAlpha = function () {\n\n\t\t\treturn background.getClearAlpha();\n\n\t\t};\n\n\t\tthis.setClearAlpha = function () {\n\n\t\t\tbackground.setClearAlpha.apply( background, arguments );\n\n\t\t};\n\n\t\tthis.clear = function ( color = true, depth = true, stencil = true ) {\n\n\t\t\tlet bits = 0;\n\n\t\t\tif ( color ) {\n\n\t\t\t\t// check if we're trying to clear an integer target\n\t\t\t\tlet isIntegerFormat = false;\n\t\t\t\tif ( _currentRenderTarget !== null ) {\n\n\t\t\t\t\tconst targetFormat = _currentRenderTarget.texture.format;\n\t\t\t\t\tisIntegerFormat = targetFormat === RGBAIntegerFormat ||\n\t\t\t\t\t\ttargetFormat === RGIntegerFormat ||\n\t\t\t\t\t\ttargetFormat === RedIntegerFormat;\n\n\t\t\t\t}\n\n\t\t\t\t// use the appropriate clear functions to clear the target if it's a signed\n\t\t\t\t// or unsigned integer target\n\t\t\t\tif ( isIntegerFormat ) {\n\n\t\t\t\t\tconst targetType = _currentRenderTarget.texture.type;\n\t\t\t\t\tconst isUnsignedType = targetType === UnsignedByteType ||\n\t\t\t\t\t\ttargetType === UnsignedIntType ||\n\t\t\t\t\t\ttargetType === UnsignedShortType ||\n\t\t\t\t\t\ttargetType === UnsignedInt248Type ||\n\t\t\t\t\t\ttargetType === UnsignedShort4444Type ||\n\t\t\t\t\t\ttargetType === UnsignedShort5551Type;\n\n\t\t\t\t\tconst clearColor = background.getClearColor();\n\t\t\t\t\tconst a = background.getClearAlpha();\n\t\t\t\t\tconst r = clearColor.r;\n\t\t\t\t\tconst g = clearColor.g;\n\t\t\t\t\tconst b = clearColor.b;\n\n\t\t\t\t\tif ( isUnsignedType ) {\n\n\t\t\t\t\t\tuintClearColor[ 0 ] = r;\n\t\t\t\t\t\tuintClearColor[ 1 ] = g;\n\t\t\t\t\t\tuintClearColor[ 2 ] = b;\n\t\t\t\t\t\tuintClearColor[ 3 ] = a;\n\t\t\t\t\t\t_gl.clearBufferuiv( _gl.COLOR, 0, uintClearColor );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tintClearColor[ 0 ] = r;\n\t\t\t\t\t\tintClearColor[ 1 ] = g;\n\t\t\t\t\t\tintClearColor[ 2 ] = b;\n\t\t\t\t\t\tintClearColor[ 3 ] = a;\n\t\t\t\t\t\t_gl.clearBufferiv( _gl.COLOR, 0, intClearColor );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tbits |= _gl.COLOR_BUFFER_BIT;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( depth ) {\n\n\t\t\t\tbits |= _gl.DEPTH_BUFFER_BIT;\n\n\t\t\t}\n\n\t\t\tif ( stencil ) {\n\n\t\t\t\tbits |= _gl.STENCIL_BUFFER_BIT;\n\t\t\t\tthis.state.buffers.stencil.setMask( 0xffffffff );\n\n\t\t\t}\n\n\t\t\t_gl.clear( bits );\n\n\t\t};\n\n\t\tthis.clearColor = function () {\n\n\t\t\tthis.clear( true, false, false );\n\n\t\t};\n\n\t\tthis.clearDepth = function () {\n\n\t\t\tthis.clear( false, true, false );\n\n\t\t};\n\n\t\tthis.clearStencil = function () {\n\n\t\t\tthis.clear( false, false, true );\n\n\t\t};\n\n\t\t//\n\n\t\tthis.dispose = function () {\n\n\t\t\tcanvas.removeEventListener( 'webglcontextlost', onContextLost, false );\n\t\t\tcanvas.removeEventListener( 'webglcontextrestored', onContextRestore, false );\n\t\t\tcanvas.removeEventListener( 'webglcontextcreationerror', onContextCreationError, false );\n\n\t\t\tbackground.dispose();\n\t\t\trenderLists.dispose();\n\t\t\trenderStates.dispose();\n\t\t\tproperties.dispose();\n\t\t\tcubemaps.dispose();\n\t\t\tcubeuvmaps.dispose();\n\t\t\tobjects.dispose();\n\t\t\tbindingStates.dispose();\n\t\t\tuniformsGroups.dispose();\n\t\t\tprogramCache.dispose();\n\n\t\t\txr.dispose();\n\n\t\t\txr.removeEventListener( 'sessionstart', onXRSessionStart );\n\t\t\txr.removeEventListener( 'sessionend', onXRSessionEnd );\n\n\t\t\tanimation.stop();\n\n\t\t};\n\n\t\t// Events\n\n\t\tfunction onContextLost( event ) {\n\n\t\t\tevent.preventDefault();\n\n\t\t\tconsole.log( 'THREE.WebGLRenderer: Context Lost.' );\n\n\t\t\t_isContextLost = true;\n\n\t\t}\n\n\t\tfunction onContextRestore( /* event */ ) {\n\n\t\t\tconsole.log( 'THREE.WebGLRenderer: Context Restored.' );\n\n\t\t\t_isContextLost = false;\n\n\t\t\tconst infoAutoReset = info.autoReset;\n\t\t\tconst shadowMapEnabled = shadowMap.enabled;\n\t\t\tconst shadowMapAutoUpdate = shadowMap.autoUpdate;\n\t\t\tconst shadowMapNeedsUpdate = shadowMap.needsUpdate;\n\t\t\tconst shadowMapType = shadowMap.type;\n\n\t\t\tinitGLContext();\n\n\t\t\tinfo.autoReset = infoAutoReset;\n\t\t\tshadowMap.enabled = shadowMapEnabled;\n\t\t\tshadowMap.autoUpdate = shadowMapAutoUpdate;\n\t\t\tshadowMap.needsUpdate = shadowMapNeedsUpdate;\n\t\t\tshadowMap.type = shadowMapType;\n\n\t\t}\n\n\t\tfunction onContextCreationError( event ) {\n\n\t\t\tconsole.error( 'THREE.WebGLRenderer: A WebGL context could not be created. Reason: ', event.statusMessage );\n\n\t\t}\n\n\t\tfunction onMaterialDispose( event ) {\n\n\t\t\tconst material = event.target;\n\n\t\t\tmaterial.removeEventListener( 'dispose', onMaterialDispose );\n\n\t\t\tdeallocateMaterial( material );\n\n\t\t}\n\n\t\t// Buffer deallocation\n\n\t\tfunction deallocateMaterial( material ) {\n\n\t\t\treleaseMaterialProgramReferences( material );\n\n\t\t\tproperties.remove( material );\n\n\t\t}\n\n\n\t\tfunction releaseMaterialProgramReferences( material ) {\n\n\t\t\tconst programs = properties.get( material ).programs;\n\n\t\t\tif ( programs !== undefined ) {\n\n\t\t\t\tprograms.forEach( function ( program ) {\n\n\t\t\t\t\tprogramCache.releaseProgram( program );\n\n\t\t\t\t} );\n\n\t\t\t\tif ( material.isShaderMaterial ) {\n\n\t\t\t\t\tprogramCache.releaseShaderCache( material );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Buffer rendering\n\n\t\tthis.renderBufferDirect = function ( camera, scene, geometry, material, object, group ) {\n\n\t\t\tif ( scene === null ) scene = _emptyScene; // renderBufferDirect second parameter used to be fog (could be null)\n\n\t\t\tconst frontFaceCW = ( object.isMesh && object.matrixWorld.determinant() < 0 );\n\n\t\t\tconst program = setProgram( camera, scene, geometry, material, object );\n\n\t\t\tstate.setMaterial( material, frontFaceCW );\n\n\t\t\t//\n\n\t\t\tlet index = geometry.index;\n\t\t\tlet rangeFactor = 1;\n\n\t\t\tif ( material.wireframe === true ) {\n\n\t\t\t\tindex = geometries.getWireframeAttribute( geometry );\n\n\t\t\t\tif ( index === undefined ) return;\n\n\t\t\t\trangeFactor = 2;\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tconst drawRange = geometry.drawRange;\n\t\t\tconst position = geometry.attributes.position;\n\n\t\t\tlet drawStart = drawRange.start * rangeFactor;\n\t\t\tlet drawEnd = ( drawRange.start + drawRange.count ) * rangeFactor;\n\n\t\t\tif ( group !== null ) {\n\n\t\t\t\tdrawStart = Math.max( drawStart, group.start * rangeFactor );\n\t\t\t\tdrawEnd = Math.min( drawEnd, ( group.start + group.count ) * rangeFactor );\n\n\t\t\t}\n\n\t\t\tif ( index !== null ) {\n\n\t\t\t\tdrawStart = Math.max( drawStart, 0 );\n\t\t\t\tdrawEnd = Math.min( drawEnd, index.count );\n\n\t\t\t} else if ( position !== undefined && position !== null ) {\n\n\t\t\t\tdrawStart = Math.max( drawStart, 0 );\n\t\t\t\tdrawEnd = Math.min( drawEnd, position.count );\n\n\t\t\t}\n\n\t\t\tconst drawCount = drawEnd - drawStart;\n\n\t\t\tif ( drawCount < 0 || drawCount === Infinity ) return;\n\n\t\t\t//\n\n\t\t\tbindingStates.setup( object, material, program, geometry, index );\n\n\t\t\tlet attribute;\n\t\t\tlet renderer = bufferRenderer;\n\n\t\t\tif ( index !== null ) {\n\n\t\t\t\tattribute = attributes.get( index );\n\n\t\t\t\trenderer = indexedBufferRenderer;\n\t\t\t\trenderer.setIndex( attribute );\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tif ( object.isMesh ) {\n\n\t\t\t\tif ( material.wireframe === true ) {\n\n\t\t\t\t\tstate.setLineWidth( material.wireframeLinewidth * getTargetPixelRatio() );\n\t\t\t\t\trenderer.setMode( _gl.LINES );\n\n\t\t\t\t} else {\n\n\t\t\t\t\trenderer.setMode( _gl.TRIANGLES );\n\n\t\t\t\t}\n\n\t\t\t} else if ( object.isLine ) {\n\n\t\t\t\tlet lineWidth = material.linewidth;\n\n\t\t\t\tif ( lineWidth === undefined ) lineWidth = 1; // Not using Line*Material\n\n\t\t\t\tstate.setLineWidth( lineWidth * getTargetPixelRatio() );\n\n\t\t\t\tif ( object.isLineSegments ) {\n\n\t\t\t\t\trenderer.setMode( _gl.LINES );\n\n\t\t\t\t} else if ( object.isLineLoop ) {\n\n\t\t\t\t\trenderer.setMode( _gl.LINE_LOOP );\n\n\t\t\t\t} else {\n\n\t\t\t\t\trenderer.setMode( _gl.LINE_STRIP );\n\n\t\t\t\t}\n\n\t\t\t} else if ( object.isPoints ) {\n\n\t\t\t\trenderer.setMode( _gl.POINTS );\n\n\t\t\t} else if ( object.isSprite ) {\n\n\t\t\t\trenderer.setMode( _gl.TRIANGLES );\n\n\t\t\t}\n\n\t\t\tif ( object.isBatchedMesh ) {\n\n\t\t\t\tif ( object._multiDrawInstances !== null ) {\n\n\t\t\t\t\trenderer.renderMultiDrawInstances( object._multiDrawStarts, object._multiDrawCounts, object._multiDrawCount, object._multiDrawInstances );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( ! extensions.get( 'WEBGL_multi_draw' ) ) {\n\n\t\t\t\t\t\tconst starts = object._multiDrawStarts;\n\t\t\t\t\t\tconst counts = object._multiDrawCounts;\n\t\t\t\t\t\tconst drawCount = object._multiDrawCount;\n\t\t\t\t\t\tconst bytesPerElement = index ? attributes.get( index ).bytesPerElement : 1;\n\t\t\t\t\t\tconst uniforms = properties.get( material ).currentProgram.getUniforms();\n\t\t\t\t\t\tfor ( let i = 0; i < drawCount; i ++ ) {\n\n\t\t\t\t\t\t\tuniforms.setValue( _gl, '_gl_DrawID', i );\n\t\t\t\t\t\t\trenderer.render( starts[ i ] / bytesPerElement, counts[ i ] );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\trenderer.renderMultiDraw( object._multiDrawStarts, object._multiDrawCounts, object._multiDrawCount );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( object.isInstancedMesh ) {\n\n\t\t\t\trenderer.renderInstances( drawStart, drawCount, object.count );\n\n\t\t\t} else if ( geometry.isInstancedBufferGeometry ) {\n\n\t\t\t\tconst maxInstanceCount = geometry._maxInstanceCount !== undefined ? geometry._maxInstanceCount : Infinity;\n\t\t\t\tconst instanceCount = Math.min( geometry.instanceCount, maxInstanceCount );\n\n\t\t\t\trenderer.renderInstances( drawStart, drawCount, instanceCount );\n\n\t\t\t} else {\n\n\t\t\t\trenderer.render( drawStart, drawCount );\n\n\t\t\t}\n\n\t\t};\n\n\t\t// Compile\n\n\t\tfunction prepareMaterial( material, scene, object ) {\n\n\t\t\tif ( material.transparent === true && material.side === DoubleSide && material.forceSinglePass === false ) {\n\n\t\t\t\tmaterial.side = BackSide;\n\t\t\t\tmaterial.needsUpdate = true;\n\t\t\t\tgetProgram( material, scene, object );\n\n\t\t\t\tmaterial.side = FrontSide;\n\t\t\t\tmaterial.needsUpdate = true;\n\t\t\t\tgetProgram( material, scene, object );\n\n\t\t\t\tmaterial.side = DoubleSide;\n\n\t\t\t} else {\n\n\t\t\t\tgetProgram( material, scene, object );\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.compile = function ( scene, camera, targetScene = null ) {\n\n\t\t\tif ( targetScene === null ) targetScene = scene;\n\n\t\t\tcurrentRenderState = renderStates.get( targetScene );\n\t\t\tcurrentRenderState.init( camera );\n\n\t\t\trenderStateStack.push( currentRenderState );\n\n\t\t\t// gather lights from both the target scene and the new object that will be added to the scene.\n\n\t\t\ttargetScene.traverseVisible( function ( object ) {\n\n\t\t\t\tif ( object.isLight && object.layers.test( camera.layers ) ) {\n\n\t\t\t\t\tcurrentRenderState.pushLight( object );\n\n\t\t\t\t\tif ( object.castShadow ) {\n\n\t\t\t\t\t\tcurrentRenderState.pushShadow( object );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\tif ( scene !== targetScene ) {\n\n\t\t\t\tscene.traverseVisible( function ( object ) {\n\n\t\t\t\t\tif ( object.isLight && object.layers.test( camera.layers ) ) {\n\n\t\t\t\t\t\tcurrentRenderState.pushLight( object );\n\n\t\t\t\t\t\tif ( object.castShadow ) {\n\n\t\t\t\t\t\t\tcurrentRenderState.pushShadow( object );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tcurrentRenderState.setupLights();\n\n\t\t\t// Only initialize materials in the new scene, not the targetScene.\n\n\t\t\tconst materials = new Set();\n\n\t\t\tscene.traverse( function ( object ) {\n\n\t\t\t\tif ( ! ( object.isMesh || object.isPoints || object.isLine || object.isSprite ) ) {\n\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tconst material = object.material;\n\n\t\t\t\tif ( material ) {\n\n\t\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\t\tfor ( let i = 0; i < material.length; i ++ ) {\n\n\t\t\t\t\t\t\tconst material2 = material[ i ];\n\n\t\t\t\t\t\t\tprepareMaterial( material2, targetScene, object );\n\t\t\t\t\t\t\tmaterials.add( material2 );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tprepareMaterial( material, targetScene, object );\n\t\t\t\t\t\tmaterials.add( material );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\trenderStateStack.pop();\n\t\t\tcurrentRenderState = null;\n\n\t\t\treturn materials;\n\n\t\t};\n\n\t\t// compileAsync\n\n\t\tthis.compileAsync = function ( scene, camera, targetScene = null ) {\n\n\t\t\tconst materials = this.compile( scene, camera, targetScene );\n\n\t\t\t// Wait for all the materials in the new object to indicate that they're\n\t\t\t// ready to be used before resolving the promise.\n\n\t\t\treturn new Promise( ( resolve ) => {\n\n\t\t\t\tfunction checkMaterialsReady() {\n\n\t\t\t\t\tmaterials.forEach( function ( material ) {\n\n\t\t\t\t\t\tconst materialProperties = properties.get( material );\n\t\t\t\t\t\tconst program = materialProperties.currentProgram;\n\n\t\t\t\t\t\tif ( program.isReady() ) {\n\n\t\t\t\t\t\t\t// remove any programs that report they're ready to use from the list\n\t\t\t\t\t\t\tmaterials.delete( material );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} );\n\n\t\t\t\t\t// once the list of compiling materials is empty, call the callback\n\n\t\t\t\t\tif ( materials.size === 0 ) {\n\n\t\t\t\t\t\tresolve( scene );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// if some materials are still not ready, wait a bit and check again\n\n\t\t\t\t\tsetTimeout( checkMaterialsReady, 10 );\n\n\t\t\t\t}\n\n\t\t\t\tif ( extensions.get( 'KHR_parallel_shader_compile' ) !== null ) {\n\n\t\t\t\t\t// If we can check the compilation status of the materials without\n\t\t\t\t\t// blocking then do so right away.\n\n\t\t\t\t\tcheckMaterialsReady();\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Otherwise start by waiting a bit to give the materials we just\n\t\t\t\t\t// initialized a chance to finish.\n\n\t\t\t\t\tsetTimeout( checkMaterialsReady, 10 );\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t};\n\n\t\t// Animation Loop\n\n\t\tlet onAnimationFrameCallback = null;\n\n\t\tfunction onAnimationFrame( time ) {\n\n\t\t\tif ( onAnimationFrameCallback ) onAnimationFrameCallback( time );\n\n\t\t}\n\n\t\tfunction onXRSessionStart() {\n\n\t\t\tanimation.stop();\n\n\t\t}\n\n\t\tfunction onXRSessionEnd() {\n\n\t\t\tanimation.start();\n\n\t\t}\n\n\t\tconst animation = new WebGLAnimation();\n\t\tanimation.setAnimationLoop( onAnimationFrame );\n\n\t\tif ( typeof self !== 'undefined' ) animation.setContext( self );\n\n\t\tthis.setAnimationLoop = function ( callback ) {\n\n\t\t\tonAnimationFrameCallback = callback;\n\t\t\txr.setAnimationLoop( callback );\n\n\t\t\t( callback === null ) ? animation.stop() : animation.start();\n\n\t\t};\n\n\t\txr.addEventListener( 'sessionstart', onXRSessionStart );\n\t\txr.addEventListener( 'sessionend', onXRSessionEnd );\n\n\t\t// Rendering\n\n\t\tthis.render = function ( scene, camera ) {\n\n\t\t\tif ( camera !== undefined && camera.isCamera !== true ) {\n\n\t\t\t\tconsole.error( 'THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.' );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tif ( _isContextLost === true ) return;\n\n\t\t\t// update scene graph\n\n\t\t\tif ( scene.matrixWorldAutoUpdate === true ) scene.updateMatrixWorld();\n\n\t\t\t// update camera matrices and frustum\n\n\t\t\tif ( camera.parent === null && camera.matrixWorldAutoUpdate === true ) camera.updateMatrixWorld();\n\n\t\t\tif ( xr.enabled === true && xr.isPresenting === true ) {\n\n\t\t\t\tif ( xr.cameraAutoUpdate === true ) xr.updateCamera( camera );\n\n\t\t\t\tcamera = xr.getCamera(); // use XR camera for rendering\n\n\t\t\t}\n\n\t\t\t//\n\t\t\tif ( scene.isScene === true ) scene.onBeforeRender( _this, scene, camera, _currentRenderTarget );\n\n\t\t\tcurrentRenderState = renderStates.get( scene, renderStateStack.length );\n\t\t\tcurrentRenderState.init( camera );\n\n\t\t\trenderStateStack.push( currentRenderState );\n\n\t\t\t_projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );\n\t\t\t_frustum.setFromProjectionMatrix( _projScreenMatrix );\n\n\t\t\t_localClippingEnabled = this.localClippingEnabled;\n\t\t\t_clippingEnabled = clipping.init( this.clippingPlanes, _localClippingEnabled );\n\n\t\t\tcurrentRenderList = renderLists.get( scene, renderListStack.length );\n\t\t\tcurrentRenderList.init();\n\n\t\t\trenderListStack.push( currentRenderList );\n\n\t\t\tif ( xr.enabled === true && xr.isPresenting === true ) {\n\n\t\t\t\tconst depthSensingMesh = _this.xr.getDepthSensingMesh();\n\n\t\t\t\tif ( depthSensingMesh !== null ) {\n\n\t\t\t\t\tprojectObject( depthSensingMesh, camera, - Infinity, _this.sortObjects );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tprojectObject( scene, camera, 0, _this.sortObjects );\n\n\t\t\tcurrentRenderList.finish();\n\n\t\t\tif ( _this.sortObjects === true ) {\n\n\t\t\t\tcurrentRenderList.sort( _opaqueSort, _transparentSort );\n\n\t\t\t}\n\n\t\t\t_renderBackground = xr.enabled === false || xr.isPresenting === false || xr.hasDepthSensing() === false;\n\t\t\tif ( _renderBackground ) {\n\n\t\t\t\tbackground.addToRenderList( currentRenderList, scene );\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tthis.info.render.frame ++;\n\n\t\t\tif ( _clippingEnabled === true ) clipping.beginShadows();\n\n\t\t\tconst shadowsArray = currentRenderState.state.shadowsArray;\n\n\t\t\tshadowMap.render( shadowsArray, scene, camera );\n\n\t\t\tif ( _clippingEnabled === true ) clipping.endShadows();\n\n\t\t\t//\n\n\t\t\tif ( this.info.autoReset === true ) this.info.reset();\n\n\t\t\t// render scene\n\n\t\t\tconst opaqueObjects = currentRenderList.opaque;\n\t\t\tconst transmissiveObjects = currentRenderList.transmissive;\n\n\t\t\tcurrentRenderState.setupLights();\n\n\t\t\tif ( camera.isArrayCamera ) {\n\n\t\t\t\tconst cameras = camera.cameras;\n\n\t\t\t\tif ( transmissiveObjects.length > 0 ) {\n\n\t\t\t\t\tfor ( let i = 0, l = cameras.length; i < l; i ++ ) {\n\n\t\t\t\t\t\tconst camera2 = cameras[ i ];\n\n\t\t\t\t\t\trenderTransmissionPass( opaqueObjects, transmissiveObjects, scene, camera2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif ( _renderBackground ) background.render( scene );\n\n\t\t\t\tfor ( let i = 0, l = cameras.length; i < l; i ++ ) {\n\n\t\t\t\t\tconst camera2 = cameras[ i ];\n\n\t\t\t\t\trenderScene( currentRenderList, scene, camera2, camera2.viewport );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( transmissiveObjects.length > 0 ) renderTransmissionPass( opaqueObjects, transmissiveObjects, scene, camera );\n\n\t\t\t\tif ( _renderBackground ) background.render( scene );\n\n\t\t\t\trenderScene( currentRenderList, scene, camera );\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tif ( _currentRenderTarget !== null && _currentActiveMipmapLevel === 0 ) {\n\n\t\t\t\t// resolve multisample renderbuffers to a single-sample texture if necessary\n\n\t\t\t\ttextures.updateMultisampleRenderTarget( _currentRenderTarget );\n\n\t\t\t\t// Generate mipmap if we're using any kind of mipmap filtering\n\n\t\t\t\ttextures.updateRenderTargetMipmap( _currentRenderTarget );\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tif ( scene.isScene === true ) scene.onAfterRender( _this, scene, camera );\n\n\t\t\t// _gl.finish();\n\n\t\t\tbindingStates.resetDefaultState();\n\t\t\t_currentMaterialId = - 1;\n\t\t\t_currentCamera = null;\n\n\t\t\trenderStateStack.pop();\n\n\t\t\tif ( renderStateStack.length > 0 ) {\n\n\t\t\t\tcurrentRenderState = renderStateStack[ renderStateStack.length - 1 ];\n\n\t\t\t\tif ( _clippingEnabled === true ) clipping.setGlobalState( _this.clippingPlanes, currentRenderState.state.camera );\n\n\t\t\t} else {\n\n\t\t\t\tcurrentRenderState = null;\n\n\t\t\t}\n\n\t\t\trenderListStack.pop();\n\n\t\t\tif ( renderListStack.length > 0 ) {\n\n\t\t\t\tcurrentRenderList = renderListStack[ renderListStack.length - 1 ];\n\n\t\t\t} else {\n\n\t\t\t\tcurrentRenderList = null;\n\n\t\t\t}\n\n\t\t};\n\n\t\tfunction projectObject( object, camera, groupOrder, sortObjects ) {\n\n\t\t\tif ( object.visible === false ) return;\n\n\t\t\tconst visible = object.layers.test( camera.layers );\n\n\t\t\tif ( visible ) {\n\n\t\t\t\tif ( object.isGroup ) {\n\n\t\t\t\t\tgroupOrder = object.renderOrder;\n\n\t\t\t\t} else if ( object.isLOD ) {\n\n\t\t\t\t\tif ( object.autoUpdate === true ) object.update( camera );\n\n\t\t\t\t} else if ( object.isLight ) {\n\n\t\t\t\t\tcurrentRenderState.pushLight( object );\n\n\t\t\t\t\tif ( object.castShadow ) {\n\n\t\t\t\t\t\tcurrentRenderState.pushShadow( object );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( object.isSprite ) {\n\n\t\t\t\t\tif ( ! object.frustumCulled || _frustum.intersectsSprite( object ) ) {\n\n\t\t\t\t\t\tif ( sortObjects ) {\n\n\t\t\t\t\t\t\t_vector4.setFromMatrixPosition( object.matrixWorld )\n\t\t\t\t\t\t\t\t.applyMatrix4( _projScreenMatrix );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst geometry = objects.update( object );\n\t\t\t\t\t\tconst material = object.material;\n\n\t\t\t\t\t\tif ( material.visible ) {\n\n\t\t\t\t\t\t\tcurrentRenderList.push( object, geometry, material, groupOrder, _vector4.z, null );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( object.isMesh || object.isLine || object.isPoints ) {\n\n\t\t\t\t\tif ( ! object.frustumCulled || _frustum.intersectsObject( object ) ) {\n\n\t\t\t\t\t\tconst geometry = objects.update( object );\n\t\t\t\t\t\tconst material = object.material;\n\n\t\t\t\t\t\tif ( sortObjects ) {\n\n\t\t\t\t\t\t\tif ( object.boundingSphere !== undefined ) {\n\n\t\t\t\t\t\t\t\tif ( object.boundingSphere === null ) object.computeBoundingSphere();\n\t\t\t\t\t\t\t\t_vector4.copy( object.boundingSphere.center );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\t\t\t\t\t\t\t\t_vector4.copy( geometry.boundingSphere.center );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t_vector4\n\t\t\t\t\t\t\t\t.applyMatrix4( object.matrixWorld )\n\t\t\t\t\t\t\t\t.applyMatrix4( _projScreenMatrix );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\t\t\tconst groups = geometry.groups;\n\n\t\t\t\t\t\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\t\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\t\t\t\tif ( groupMaterial && groupMaterial.visible ) {\n\n\t\t\t\t\t\t\t\t\tcurrentRenderList.push( object, geometry, groupMaterial, groupOrder, _vector4.z, group );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else if ( material.visible ) {\n\n\t\t\t\t\t\t\tcurrentRenderList.push( object, geometry, material, groupOrder, _vector4.z, null );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst children = object.children;\n\n\t\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\t\tprojectObject( children[ i ], camera, groupOrder, sortObjects );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction renderScene( currentRenderList, scene, camera, viewport ) {\n\n\t\t\tconst opaqueObjects = currentRenderList.opaque;\n\t\t\tconst transmissiveObjects = currentRenderList.transmissive;\n\t\t\tconst transparentObjects = currentRenderList.transparent;\n\n\t\t\tcurrentRenderState.setupLightsView( camera );\n\n\t\t\tif ( _clippingEnabled === true ) clipping.setGlobalState( _this.clippingPlanes, camera );\n\n\t\t\tif ( viewport ) state.viewport( _currentViewport.copy( viewport ) );\n\n\t\t\tif ( opaqueObjects.length > 0 ) renderObjects( opaqueObjects, scene, camera );\n\t\t\tif ( transmissiveObjects.length > 0 ) renderObjects( transmissiveObjects, scene, camera );\n\t\t\tif ( transparentObjects.length > 0 ) renderObjects( transparentObjects, scene, camera );\n\n\t\t\t// Ensure depth buffer writing is enabled so it can be cleared on next render\n\n\t\t\tstate.buffers.depth.setTest( true );\n\t\t\tstate.buffers.depth.setMask( true );\n\t\t\tstate.buffers.color.setMask( true );\n\n\t\t\tstate.setPolygonOffset( false );\n\n\t\t}\n\n\t\tfunction renderTransmissionPass( opaqueObjects, transmissiveObjects, scene, camera ) {\n\n\t\t\tconst overrideMaterial = scene.isScene === true ? scene.overrideMaterial : null;\n\n\t\t\tif ( overrideMaterial !== null ) {\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tif ( currentRenderState.state.transmissionRenderTarget[ camera.id ] === undefined ) {\n\n\t\t\t\tcurrentRenderState.state.transmissionRenderTarget[ camera.id ] = new WebGLRenderTarget( 1, 1, {\n\t\t\t\t\tgenerateMipmaps: true,\n\t\t\t\t\ttype: ( extensions.has( 'EXT_color_buffer_half_float' ) || extensions.has( 'EXT_color_buffer_float' ) ) ? HalfFloatType : UnsignedByteType,\n\t\t\t\t\tminFilter: LinearMipmapLinearFilter,\n\t\t\t\t\tsamples: 4,\n\t\t\t\t\tstencilBuffer: stencil,\n\t\t\t\t\tresolveDepthBuffer: false,\n\t\t\t\t\tresolveStencilBuffer: false,\n\t\t\t\t\tcolorSpace: ColorManagement.workingColorSpace,\n\t\t\t\t} );\n\n\t\t\t\t// debug\n\n\t\t\t\t/*\n\t\t\t\tconst geometry = new PlaneGeometry();\n\t\t\t\tconst material = new MeshBasicMaterial( { map: _transmissionRenderTarget.texture } );\n\n\t\t\t\tconst mesh = new Mesh( geometry, material );\n\t\t\t\tscene.add( mesh );\n\t\t\t\t*/\n\n\t\t\t}\n\n\t\t\tconst transmissionRenderTarget = currentRenderState.state.transmissionRenderTarget[ camera.id ];\n\n\t\t\tconst activeViewport = camera.viewport || _currentViewport;\n\t\t\ttransmissionRenderTarget.setSize( activeViewport.z * _this.transmissionResolutionScale, activeViewport.w * _this.transmissionResolutionScale );\n\n\t\t\t//\n\n\t\t\tconst currentRenderTarget = _this.getRenderTarget();\n\t\t\t_this.setRenderTarget( transmissionRenderTarget );\n\n\t\t\t_this.getClearColor( _currentClearColor );\n\t\t\t_currentClearAlpha = _this.getClearAlpha();\n\t\t\tif ( _currentClearAlpha < 1 ) _this.setClearColor( 0xffffff, 0.5 );\n\n\t\t\t_this.clear();\n\n\t\t\tif ( _renderBackground ) background.render( scene );\n\n\t\t\t// Turn off the features which can affect the frag color for opaque objects pass.\n\t\t\t// Otherwise they are applied twice in opaque objects pass and transmission objects pass.\n\t\t\tconst currentToneMapping = _this.toneMapping;\n\t\t\t_this.toneMapping = NoToneMapping;\n\n\t\t\t// Remove viewport from camera to avoid nested render calls resetting viewport to it (e.g Reflector).\n\t\t\t// Transmission render pass requires viewport to match the transmissionRenderTarget.\n\t\t\tconst currentCameraViewport = camera.viewport;\n\t\t\tif ( camera.viewport !== undefined ) camera.viewport = undefined;\n\n\t\t\tcurrentRenderState.setupLightsView( camera );\n\n\t\t\tif ( _clippingEnabled === true ) clipping.setGlobalState( _this.clippingPlanes, camera );\n\n\t\t\trenderObjects( opaqueObjects, scene, camera );\n\n\t\t\ttextures.updateMultisampleRenderTarget( transmissionRenderTarget );\n\t\t\ttextures.updateRenderTargetMipmap( transmissionRenderTarget );\n\n\t\t\tif ( extensions.has( 'WEBGL_multisampled_render_to_texture' ) === false ) { // see #28131\n\n\t\t\t\tlet renderTargetNeedsUpdate = false;\n\n\t\t\t\tfor ( let i = 0, l = transmissiveObjects.length; i < l; i ++ ) {\n\n\t\t\t\t\tconst renderItem = transmissiveObjects[ i ];\n\n\t\t\t\t\tconst object = renderItem.object;\n\t\t\t\t\tconst geometry = renderItem.geometry;\n\t\t\t\t\tconst material = renderItem.material;\n\t\t\t\t\tconst group = renderItem.group;\n\n\t\t\t\t\tif ( material.side === DoubleSide && object.layers.test( camera.layers ) ) {\n\n\t\t\t\t\t\tconst currentSide = material.side;\n\n\t\t\t\t\t\tmaterial.side = BackSide;\n\t\t\t\t\t\tmaterial.needsUpdate = true;\n\n\t\t\t\t\t\trenderObject( object, scene, camera, geometry, material, group );\n\n\t\t\t\t\t\tmaterial.side = currentSide;\n\t\t\t\t\t\tmaterial.needsUpdate = true;\n\n\t\t\t\t\t\trenderTargetNeedsUpdate = true;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif ( renderTargetNeedsUpdate === true ) {\n\n\t\t\t\t\ttextures.updateMultisampleRenderTarget( transmissionRenderTarget );\n\t\t\t\t\ttextures.updateRenderTargetMipmap( transmissionRenderTarget );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t_this.setRenderTarget( currentRenderTarget );\n\n\t\t\t_this.setClearColor( _currentClearColor, _currentClearAlpha );\n\n\t\t\tif ( currentCameraViewport !== undefined ) camera.viewport = currentCameraViewport;\n\n\t\t\t_this.toneMapping = currentToneMapping;\n\n\t\t}\n\n\t\tfunction renderObjects( renderList, scene, camera ) {\n\n\t\t\tconst overrideMaterial = scene.isScene === true ? scene.overrideMaterial : null;\n\n\t\t\tfor ( let i = 0, l = renderList.length; i < l; i ++ ) {\n\n\t\t\t\tconst renderItem = renderList[ i ];\n\n\t\t\t\tconst object = renderItem.object;\n\t\t\t\tconst geometry = renderItem.geometry;\n\t\t\t\tconst material = overrideMaterial === null ? renderItem.material : overrideMaterial;\n\t\t\t\tconst group = renderItem.group;\n\n\t\t\t\tif ( object.layers.test( camera.layers ) ) {\n\n\t\t\t\t\trenderObject( object, scene, camera, geometry, material, group );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction renderObject( object, scene, camera, geometry, material, group ) {\n\n\t\t\tobject.onBeforeRender( _this, scene, camera, geometry, material, group );\n\n\t\t\tobject.modelViewMatrix.multiplyMatrices( camera.matrixWorldInverse, object.matrixWorld );\n\t\t\tobject.normalMatrix.getNormalMatrix( object.modelViewMatrix );\n\n\t\t\tmaterial.onBeforeRender( _this, scene, camera, geometry, object, group );\n\n\t\t\tif ( material.transparent === true && material.side === DoubleSide && material.forceSinglePass === false ) {\n\n\t\t\t\tmaterial.side = BackSide;\n\t\t\t\tmaterial.needsUpdate = true;\n\t\t\t\t_this.renderBufferDirect( camera, scene, geometry, material, object, group );\n\n\t\t\t\tmaterial.side = FrontSide;\n\t\t\t\tmaterial.needsUpdate = true;\n\t\t\t\t_this.renderBufferDirect( camera, scene, geometry, material, object, group );\n\n\t\t\t\tmaterial.side = DoubleSide;\n\n\t\t\t} else {\n\n\t\t\t\t_this.renderBufferDirect( camera, scene, geometry, material, object, group );\n\n\t\t\t}\n\n\t\t\tobject.onAfterRender( _this, scene, camera, geometry, material, group );\n\n\t\t}\n\n\t\tfunction getProgram( material, scene, object ) {\n\n\t\t\tif ( scene.isScene !== true ) scene = _emptyScene; // scene could be a Mesh, Line, Points, ...\n\n\t\t\tconst materialProperties = properties.get( material );\n\n\t\t\tconst lights = currentRenderState.state.lights;\n\t\t\tconst shadowsArray = currentRenderState.state.shadowsArray;\n\n\t\t\tconst lightsStateVersion = lights.state.version;\n\n\t\t\tconst parameters = programCache.getParameters( material, lights.state, shadowsArray, scene, object );\n\t\t\tconst programCacheKey = programCache.getProgramCacheKey( parameters );\n\n\t\t\tlet programs = materialProperties.programs;\n\n\t\t\t// always update environment and fog - changing these trigger an getProgram call, but it's possible that the program doesn't change\n\n\t\t\tmaterialProperties.environment = material.isMeshStandardMaterial ? scene.environment : null;\n\t\t\tmaterialProperties.fog = scene.fog;\n\t\t\tmaterialProperties.envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || materialProperties.environment );\n\t\t\tmaterialProperties.envMapRotation = ( materialProperties.environment !== null && material.envMap === null ) ? scene.environmentRotation : material.envMapRotation;\n\n\t\t\tif ( programs === undefined ) {\n\n\t\t\t\t// new material\n\n\t\t\t\tmaterial.addEventListener( 'dispose', onMaterialDispose );\n\n\t\t\t\tprograms = new Map();\n\t\t\t\tmaterialProperties.programs = programs;\n\n\t\t\t}\n\n\t\t\tlet program = programs.get( programCacheKey );\n\n\t\t\tif ( program !== undefined ) {\n\n\t\t\t\t// early out if program and light state is identical\n\n\t\t\t\tif ( materialProperties.currentProgram === program && materialProperties.lightsStateVersion === lightsStateVersion ) {\n\n\t\t\t\t\tupdateCommonMaterialProperties( material, parameters );\n\n\t\t\t\t\treturn program;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tparameters.uniforms = programCache.getUniforms( material );\n\n\t\t\t\tmaterial.onBeforeCompile( parameters, _this );\n\n\t\t\t\tprogram = programCache.acquireProgram( parameters, programCacheKey );\n\t\t\t\tprograms.set( programCacheKey, program );\n\n\t\t\t\tmaterialProperties.uniforms = parameters.uniforms;\n\n\t\t\t}\n\n\t\t\tconst uniforms = materialProperties.uniforms;\n\n\t\t\tif ( ( ! material.isShaderMaterial && ! material.isRawShaderMaterial ) || material.clipping === true ) {\n\n\t\t\t\tuniforms.clippingPlanes = clipping.uniform;\n\n\t\t\t}\n\n\t\t\tupdateCommonMaterialProperties( material, parameters );\n\n\t\t\t// store the light setup it was created for\n\n\t\t\tmaterialProperties.needsLights = materialNeedsLights( material );\n\t\t\tmaterialProperties.lightsStateVersion = lightsStateVersion;\n\n\t\t\tif ( materialProperties.needsLights ) {\n\n\t\t\t\t// wire up the material to this renderer's lighting state\n\n\t\t\t\tuniforms.ambientLightColor.value = lights.state.ambient;\n\t\t\t\tuniforms.lightProbe.value = lights.state.probe;\n\t\t\t\tuniforms.directionalLights.value = lights.state.directional;\n\t\t\t\tuniforms.directionalLightShadows.value = lights.state.directionalShadow;\n\t\t\t\tuniforms.spotLights.value = lights.state.spot;\n\t\t\t\tuniforms.spotLightShadows.value = lights.state.spotShadow;\n\t\t\t\tuniforms.rectAreaLights.value = lights.state.rectArea;\n\t\t\t\tuniforms.ltc_1.value = lights.state.rectAreaLTC1;\n\t\t\t\tuniforms.ltc_2.value = lights.state.rectAreaLTC2;\n\t\t\t\tuniforms.pointLights.value = lights.state.point;\n\t\t\t\tuniforms.pointLightShadows.value = lights.state.pointShadow;\n\t\t\t\tuniforms.hemisphereLights.value = lights.state.hemi;\n\n\t\t\t\tuniforms.directionalShadowMap.value = lights.state.directionalShadowMap;\n\t\t\t\tuniforms.directionalShadowMatrix.value = lights.state.directionalShadowMatrix;\n\t\t\t\tuniforms.spotShadowMap.value = lights.state.spotShadowMap;\n\t\t\t\tuniforms.spotLightMatrix.value = lights.state.spotLightMatrix;\n\t\t\t\tuniforms.spotLightMap.value = lights.state.spotLightMap;\n\t\t\t\tuniforms.pointShadowMap.value = lights.state.pointShadowMap;\n\t\t\t\tuniforms.pointShadowMatrix.value = lights.state.pointShadowMatrix;\n\t\t\t\t// TODO (abelnation): add area lights shadow info to uniforms\n\n\t\t\t}\n\n\t\t\tmaterialProperties.currentProgram = program;\n\t\t\tmaterialProperties.uniformsList = null;\n\n\t\t\treturn program;\n\n\t\t}\n\n\t\tfunction getUniformList( materialProperties ) {\n\n\t\t\tif ( materialProperties.uniformsList === null ) {\n\n\t\t\t\tconst progUniforms = materialProperties.currentProgram.getUniforms();\n\t\t\t\tmaterialProperties.uniformsList = WebGLUniforms.seqWithValue( progUniforms.seq, materialProperties.uniforms );\n\n\t\t\t}\n\n\t\t\treturn materialProperties.uniformsList;\n\n\t\t}\n\n\t\tfunction updateCommonMaterialProperties( material, parameters ) {\n\n\t\t\tconst materialProperties = properties.get( material );\n\n\t\t\tmaterialProperties.outputColorSpace = parameters.outputColorSpace;\n\t\t\tmaterialProperties.batching = parameters.batching;\n\t\t\tmaterialProperties.batchingColor = parameters.batchingColor;\n\t\t\tmaterialProperties.instancing = parameters.instancing;\n\t\t\tmaterialProperties.instancingColor = parameters.instancingColor;\n\t\t\tmaterialProperties.instancingMorph = parameters.instancingMorph;\n\t\t\tmaterialProperties.skinning = parameters.skinning;\n\t\t\tmaterialProperties.morphTargets = parameters.morphTargets;\n\t\t\tmaterialProperties.morphNormals = parameters.morphNormals;\n\t\t\tmaterialProperties.morphColors = parameters.morphColors;\n\t\t\tmaterialProperties.morphTargetsCount = parameters.morphTargetsCount;\n\t\t\tmaterialProperties.numClippingPlanes = parameters.numClippingPlanes;\n\t\t\tmaterialProperties.numIntersection = parameters.numClipIntersection;\n\t\t\tmaterialProperties.vertexAlphas = parameters.vertexAlphas;\n\t\t\tmaterialProperties.vertexTangents = parameters.vertexTangents;\n\t\t\tmaterialProperties.toneMapping = parameters.toneMapping;\n\n\t\t}\n\n\t\tfunction setProgram( camera, scene, geometry, material, object ) {\n\n\t\t\tif ( scene.isScene !== true ) scene = _emptyScene; // scene could be a Mesh, Line, Points, ...\n\n\t\t\ttextures.resetTextureUnits();\n\n\t\t\tconst fog = scene.fog;\n\t\t\tconst environment = material.isMeshStandardMaterial ? scene.environment : null;\n\t\t\tconst colorSpace = ( _currentRenderTarget === null ) ? _this.outputColorSpace : ( _currentRenderTarget.isXRRenderTarget === true ? _currentRenderTarget.texture.colorSpace : LinearSRGBColorSpace );\n\t\t\tconst envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || environment );\n\t\t\tconst vertexAlphas = material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4;\n\t\t\tconst vertexTangents = !! geometry.attributes.tangent && ( !! material.normalMap || material.anisotropy > 0 );\n\t\t\tconst morphTargets = !! geometry.morphAttributes.position;\n\t\t\tconst morphNormals = !! geometry.morphAttributes.normal;\n\t\t\tconst morphColors = !! geometry.morphAttributes.color;\n\n\t\t\tlet toneMapping = NoToneMapping;\n\n\t\t\tif ( material.toneMapped ) {\n\n\t\t\t\tif ( _currentRenderTarget === null || _currentRenderTarget.isXRRenderTarget === true ) {\n\n\t\t\t\t\ttoneMapping = _this.toneMapping;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n\t\t\tconst morphTargetsCount = ( morphAttribute !== undefined ) ? morphAttribute.length : 0;\n\n\t\t\tconst materialProperties = properties.get( material );\n\t\t\tconst lights = currentRenderState.state.lights;\n\n\t\t\tif ( _clippingEnabled === true ) {\n\n\t\t\t\tif ( _localClippingEnabled === true || camera !== _currentCamera ) {\n\n\t\t\t\t\tconst useCache =\n\t\t\t\t\t\tcamera === _currentCamera &&\n\t\t\t\t\t\tmaterial.id === _currentMaterialId;\n\n\t\t\t\t\t// we might want to call this function with some ClippingGroup\n\t\t\t\t\t// object instead of the material, once it becomes feasible\n\t\t\t\t\t// (#8465, #8379)\n\t\t\t\t\tclipping.setState( material, camera, useCache );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tlet needsProgramChange = false;\n\n\t\t\tif ( material.version === materialProperties.__version ) {\n\n\t\t\t\tif ( materialProperties.needsLights && ( materialProperties.lightsStateVersion !== lights.state.version ) ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.outputColorSpace !== colorSpace ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isBatchedMesh && materialProperties.batching === false ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( ! object.isBatchedMesh && materialProperties.batching === true ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isBatchedMesh && materialProperties.batchingColor === true && object.colorTexture === null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isBatchedMesh && materialProperties.batchingColor === false && object.colorTexture !== null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancing === false ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( ! object.isInstancedMesh && materialProperties.instancing === true ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isSkinnedMesh && materialProperties.skinning === false ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( ! object.isSkinnedMesh && materialProperties.skinning === true ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancingColor === true && object.instanceColor === null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancingColor === false && object.instanceColor !== null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancingMorph === true && object.morphTexture === null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancingMorph === false && object.morphTexture !== null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.envMap !== envMap ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( material.fog === true && materialProperties.fog !== fog ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.numClippingPlanes !== undefined &&\n\t\t\t\t\t( materialProperties.numClippingPlanes !== clipping.numPlanes ||\n\t\t\t\t\tmaterialProperties.numIntersection !== clipping.numIntersection ) ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.vertexAlphas !== vertexAlphas ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.vertexTangents !== vertexTangents ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.morphTargets !== morphTargets ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.morphNormals !== morphNormals ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.morphColors !== morphColors ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.toneMapping !== toneMapping ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.morphTargetsCount !== morphTargetsCount ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tneedsProgramChange = true;\n\t\t\t\tmaterialProperties.__version = material.version;\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tlet program = materialProperties.currentProgram;\n\n\t\t\tif ( needsProgramChange === true ) {\n\n\t\t\t\tprogram = getProgram( material, scene, object );\n\n\t\t\t}\n\n\t\t\tlet refreshProgram = false;\n\t\t\tlet refreshMaterial = false;\n\t\t\tlet refreshLights = false;\n\n\t\t\tconst p_uniforms = program.getUniforms(),\n\t\t\t\tm_uniforms = materialProperties.uniforms;\n\n\t\t\tif ( state.useProgram( program.program ) ) {\n\n\t\t\t\trefreshProgram = true;\n\t\t\t\trefreshMaterial = true;\n\t\t\t\trefreshLights = true;\n\n\t\t\t}\n\n\t\t\tif ( material.id !== _currentMaterialId ) {\n\n\t\t\t\t_currentMaterialId = material.id;\n\n\t\t\t\trefreshMaterial = true;\n\n\t\t\t}\n\n\t\t\tif ( refreshProgram || _currentCamera !== camera ) {\n\n\t\t\t\t// common camera uniforms\n\n\t\t\t\tconst reverseDepthBuffer = state.buffers.depth.getReversed();\n\n\t\t\t\tif ( reverseDepthBuffer ) {\n\n\t\t\t\t\t_currentProjectionMatrix.copy( camera.projectionMatrix );\n\n\t\t\t\t\ttoNormalizedProjectionMatrix( _currentProjectionMatrix );\n\t\t\t\t\ttoReversedProjectionMatrix( _currentProjectionMatrix );\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'projectionMatrix', _currentProjectionMatrix );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'projectionMatrix', camera.projectionMatrix );\n\n\t\t\t\t}\n\n\t\t\t\tp_uniforms.setValue( _gl, 'viewMatrix', camera.matrixWorldInverse );\n\n\t\t\t\tconst uCamPos = p_uniforms.map.cameraPosition;\n\n\t\t\t\tif ( uCamPos !== undefined ) {\n\n\t\t\t\t\tuCamPos.setValue( _gl, _vector3.setFromMatrixPosition( camera.matrixWorld ) );\n\n\t\t\t\t}\n\n\t\t\t\tif ( capabilities.logarithmicDepthBuffer ) {\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'logDepthBufFC',\n\t\t\t\t\t\t2.0 / ( Math.log( camera.far + 1.0 ) / Math.LN2 ) );\n\n\t\t\t\t}\n\n\t\t\t\t// consider moving isOrthographic to UniformLib and WebGLMaterials, see https://github.com/mrdoob/three.js/pull/26467#issuecomment-1645185067\n\n\t\t\t\tif ( material.isMeshPhongMaterial ||\n\t\t\t\t\tmaterial.isMeshToonMaterial ||\n\t\t\t\t\tmaterial.isMeshLambertMaterial ||\n\t\t\t\t\tmaterial.isMeshBasicMaterial ||\n\t\t\t\t\tmaterial.isMeshStandardMaterial ||\n\t\t\t\t\tmaterial.isShaderMaterial ) {\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'isOrthographic', camera.isOrthographicCamera === true );\n\n\t\t\t\t}\n\n\t\t\t\tif ( _currentCamera !== camera ) {\n\n\t\t\t\t\t_currentCamera = camera;\n\n\t\t\t\t\t// lighting uniforms depend on the camera so enforce an update\n\t\t\t\t\t// now, in case this material supports lights - or later, when\n\t\t\t\t\t// the next material that does gets activated:\n\n\t\t\t\t\trefreshMaterial = true;\t\t// set to true on material change\n\t\t\t\t\trefreshLights = true;\t\t// remains set until update done\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// skinning and morph target uniforms must be set even if material didn't change\n\t\t\t// auto-setting of texture unit for bone and morph texture must go before other textures\n\t\t\t// otherwise textures used for skinning and morphing can take over texture units reserved for other material textures\n\n\t\t\tif ( object.isSkinnedMesh ) {\n\n\t\t\t\tp_uniforms.setOptional( _gl, object, 'bindMatrix' );\n\t\t\t\tp_uniforms.setOptional( _gl, object, 'bindMatrixInverse' );\n\n\t\t\t\tconst skeleton = object.skeleton;\n\n\t\t\t\tif ( skeleton ) {\n\n\t\t\t\t\tif ( skeleton.boneTexture === null ) skeleton.computeBoneTexture();\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'boneTexture', skeleton.boneTexture, textures );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( object.isBatchedMesh ) {\n\n\t\t\t\tp_uniforms.setOptional( _gl, object, 'batchingTexture' );\n\t\t\t\tp_uniforms.setValue( _gl, 'batchingTexture', object._matricesTexture, textures );\n\n\t\t\t\tp_uniforms.setOptional( _gl, object, 'batchingIdTexture' );\n\t\t\t\tp_uniforms.setValue( _gl, 'batchingIdTexture', object._indirectTexture, textures );\n\n\t\t\t\tp_uniforms.setOptional( _gl, object, 'batchingColorTexture' );\n\t\t\t\tif ( object._colorsTexture !== null ) {\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'batchingColorTexture', object._colorsTexture, textures );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst morphAttributes = geometry.morphAttributes;\n\n\t\t\tif ( morphAttributes.position !== undefined || morphAttributes.normal !== undefined || ( morphAttributes.color !== undefined ) ) {\n\n\t\t\t\tmorphtargets.update( object, geometry, program );\n\n\t\t\t}\n\n\t\t\tif ( refreshMaterial || materialProperties.receiveShadow !== object.receiveShadow ) {\n\n\t\t\t\tmaterialProperties.receiveShadow = object.receiveShadow;\n\t\t\t\tp_uniforms.setValue( _gl, 'receiveShadow', object.receiveShadow );\n\n\t\t\t}\n\n\t\t\t// https://github.com/mrdoob/three.js/pull/24467#issuecomment-1209031512\n\n\t\t\tif ( material.isMeshGouraudMaterial && material.envMap !== null ) {\n\n\t\t\t\tm_uniforms.envMap.value = envMap;\n\n\t\t\t\tm_uniforms.flipEnvMap.value = ( envMap.isCubeTexture && envMap.isRenderTargetTexture === false ) ? - 1 : 1;\n\n\t\t\t}\n\n\t\t\tif ( material.isMeshStandardMaterial && material.envMap === null && scene.environment !== null ) {\n\n\t\t\t\tm_uniforms.envMapIntensity.value = scene.environmentIntensity;\n\n\t\t\t}\n\n\t\t\tif ( refreshMaterial ) {\n\n\t\t\t\tp_uniforms.setValue( _gl, 'toneMappingExposure', _this.toneMappingExposure );\n\n\t\t\t\tif ( materialProperties.needsLights ) {\n\n\t\t\t\t\t// the current material requires lighting info\n\n\t\t\t\t\t// note: all lighting uniforms are always set correctly\n\t\t\t\t\t// they simply reference the renderer's state for their\n\t\t\t\t\t// values\n\t\t\t\t\t//\n\t\t\t\t\t// use the current material's .needsUpdate flags to set\n\t\t\t\t\t// the GL state when required\n\n\t\t\t\t\tmarkUniformsLightsNeedsUpdate( m_uniforms, refreshLights );\n\n\t\t\t\t}\n\n\t\t\t\t// refresh uniforms common to several materials\n\n\t\t\t\tif ( fog && material.fog === true ) {\n\n\t\t\t\t\tmaterials.refreshFogUniforms( m_uniforms, fog );\n\n\t\t\t\t}\n\n\t\t\t\tmaterials.refreshMaterialUniforms( m_uniforms, material, _pixelRatio, _height, currentRenderState.state.transmissionRenderTarget[ camera.id ] );\n\n\t\t\t\tWebGLUniforms.upload( _gl, getUniformList( materialProperties ), m_uniforms, textures );\n\n\t\t\t}\n\n\t\t\tif ( material.isShaderMaterial && material.uniformsNeedUpdate === true ) {\n\n\t\t\t\tWebGLUniforms.upload( _gl, getUniformList( materialProperties ), m_uniforms, textures );\n\t\t\t\tmaterial.uniformsNeedUpdate = false;\n\n\t\t\t}\n\n\t\t\tif ( material.isSpriteMaterial ) {\n\n\t\t\t\tp_uniforms.setValue( _gl, 'center', object.center );\n\n\t\t\t}\n\n\t\t\t// common matrices\n\n\t\t\tp_uniforms.setValue( _gl, 'modelViewMatrix', object.modelViewMatrix );\n\t\t\tp_uniforms.setValue( _gl, 'normalMatrix', object.normalMatrix );\n\t\t\tp_uniforms.setValue( _gl, 'modelMatrix', object.matrixWorld );\n\n\t\t\t// UBOs\n\n\t\t\tif ( material.isShaderMaterial || material.isRawShaderMaterial ) {\n\n\t\t\t\tconst groups = material.uniformsGroups;\n\n\t\t\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\t\t\tconst group = groups[ i ];\n\n\t\t\t\t\tuniformsGroups.update( group, program );\n\t\t\t\t\tuniformsGroups.bind( group, program );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn program;\n\n\t\t}\n\n\t\t// If uniforms are marked as clean, they don't need to be loaded to the GPU.\n\n\t\tfunction markUniformsLightsNeedsUpdate( uniforms, value ) {\n\n\t\t\tuniforms.ambientLightColor.needsUpdate = value;\n\t\t\tuniforms.lightProbe.needsUpdate = value;\n\n\t\t\tuniforms.directionalLights.needsUpdate = value;\n\t\t\tuniforms.directionalLightShadows.needsUpdate = value;\n\t\t\tuniforms.pointLights.needsUpdate = value;\n\t\t\tuniforms.pointLightShadows.needsUpdate = value;\n\t\t\tuniforms.spotLights.needsUpdate = value;\n\t\t\tuniforms.spotLightShadows.needsUpdate = value;\n\t\t\tuniforms.rectAreaLights.needsUpdate = value;\n\t\t\tuniforms.hemisphereLights.needsUpdate = value;\n\n\t\t}\n\n\t\tfunction materialNeedsLights( material ) {\n\n\t\t\treturn material.isMeshLambertMaterial || material.isMeshToonMaterial || material.isMeshPhongMaterial ||\n\t\t\t\tmaterial.isMeshStandardMaterial || material.isShadowMaterial ||\n\t\t\t\t( material.isShaderMaterial && material.lights === true );\n\n\t\t}\n\n\t\tthis.getActiveCubeFace = function () {\n\n\t\t\treturn _currentActiveCubeFace;\n\n\t\t};\n\n\t\tthis.getActiveMipmapLevel = function () {\n\n\t\t\treturn _currentActiveMipmapLevel;\n\n\t\t};\n\n\t\tthis.getRenderTarget = function () {\n\n\t\t\treturn _currentRenderTarget;\n\n\t\t};\n\n\t\tthis.setRenderTargetTextures = function ( renderTarget, colorTexture, depthTexture ) {\n\n\t\t\tproperties.get( renderTarget.texture ).__webglTexture = colorTexture;\n\t\t\tproperties.get( renderTarget.depthTexture ).__webglTexture = depthTexture;\n\n\t\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\t\trenderTargetProperties.__hasExternalTextures = true;\n\n\t\t\trenderTargetProperties.__autoAllocateDepthBuffer = depthTexture === undefined;\n\n\t\t\tif ( ! renderTargetProperties.__autoAllocateDepthBuffer ) {\n\n\t\t\t\t// The multisample_render_to_texture extension doesn't work properly if there\n\t\t\t\t// are midframe flushes and an external depth buffer. Disable use of the extension.\n\t\t\t\tif ( extensions.has( 'WEBGL_multisampled_render_to_texture' ) === true ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided' );\n\t\t\t\t\trenderTargetProperties.__useRenderToTexture = false;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.setRenderTargetFramebuffer = function ( renderTarget, defaultFramebuffer ) {\n\n\t\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\t\trenderTargetProperties.__webglFramebuffer = defaultFramebuffer;\n\t\t\trenderTargetProperties.__useDefaultFramebuffer = defaultFramebuffer === undefined;\n\n\t\t};\n\n\t\tconst _scratchFrameBuffer = _gl.createFramebuffer();\n\t\tthis.setRenderTarget = function ( renderTarget, activeCubeFace = 0, activeMipmapLevel = 0 ) {\n\n\t\t\t_currentRenderTarget = renderTarget;\n\t\t\t_currentActiveCubeFace = activeCubeFace;\n\t\t\t_currentActiveMipmapLevel = activeMipmapLevel;\n\n\t\t\tlet useDefaultFramebuffer = true;\n\t\t\tlet framebuffer = null;\n\t\t\tlet isCube = false;\n\t\t\tlet isRenderTarget3D = false;\n\n\t\t\tif ( renderTarget ) {\n\n\t\t\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\t\t\tif ( renderTargetProperties.__useDefaultFramebuffer !== undefined ) {\n\n\t\t\t\t\t// We need to make sure to rebind the framebuffer.\n\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, null );\n\t\t\t\t\tuseDefaultFramebuffer = false;\n\n\t\t\t\t} else if ( renderTargetProperties.__webglFramebuffer === undefined ) {\n\n\t\t\t\t\ttextures.setupRenderTarget( renderTarget );\n\n\t\t\t\t} else if ( renderTargetProperties.__hasExternalTextures ) {\n\n\t\t\t\t\t// Color and depth texture must be rebound in order for the swapchain to update.\n\t\t\t\t\ttextures.rebindTextures( renderTarget, properties.get( renderTarget.texture ).__webglTexture, properties.get( renderTarget.depthTexture ).__webglTexture );\n\n\t\t\t\t} else if ( renderTarget.depthBuffer ) {\n\n\t\t\t\t\t// check if the depth texture is already bound to the frame buffer and that it's been initialized\n\t\t\t\t\tconst depthTexture = renderTarget.depthTexture;\n\t\t\t\t\tif ( renderTargetProperties.__boundDepthTexture !== depthTexture ) {\n\n\t\t\t\t\t\t// check if the depth texture is compatible\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tdepthTexture !== null &&\n\t\t\t\t\t\t\tproperties.has( depthTexture ) &&\n\t\t\t\t\t\t\t( renderTarget.width !== depthTexture.image.width || renderTarget.height !== depthTexture.image.height )\n\t\t\t\t\t\t) {\n\n\t\t\t\t\t\t\tthrow new Error( 'WebGLRenderTarget: Attached DepthTexture is initialized to the incorrect size.' );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Swap the depth buffer to the currently attached one\n\t\t\t\t\t\ttextures.setupDepthRenderbuffer( renderTarget );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tconst texture = renderTarget.texture;\n\n\t\t\t\tif ( texture.isData3DTexture || texture.isDataArrayTexture || texture.isCompressedArrayTexture ) {\n\n\t\t\t\t\tisRenderTarget3D = true;\n\n\t\t\t\t}\n\n\t\t\t\tconst __webglFramebuffer = properties.get( renderTarget ).__webglFramebuffer;\n\n\t\t\t\tif ( renderTarget.isWebGLCubeRenderTarget ) {\n\n\t\t\t\t\tif ( Array.isArray( __webglFramebuffer[ activeCubeFace ] ) ) {\n\n\t\t\t\t\t\tframebuffer = __webglFramebuffer[ activeCubeFace ][ activeMipmapLevel ];\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tframebuffer = __webglFramebuffer[ activeCubeFace ];\n\n\t\t\t\t\t}\n\n\t\t\t\t\tisCube = true;\n\n\t\t\t\t} else if ( ( renderTarget.samples > 0 ) && textures.useMultisampledRTT( renderTarget ) === false ) {\n\n\t\t\t\t\tframebuffer = properties.get( renderTarget ).__webglMultisampledFramebuffer;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( Array.isArray( __webglFramebuffer ) ) {\n\n\t\t\t\t\t\tframebuffer = __webglFramebuffer[ activeMipmapLevel ];\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tframebuffer = __webglFramebuffer;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t_currentViewport.copy( renderTarget.viewport );\n\t\t\t\t_currentScissor.copy( renderTarget.scissor );\n\t\t\t\t_currentScissorTest = renderTarget.scissorTest;\n\n\t\t\t} else {\n\n\t\t\t\t_currentViewport.copy( _viewport ).multiplyScalar( _pixelRatio ).floor();\n\t\t\t\t_currentScissor.copy( _scissor ).multiplyScalar( _pixelRatio ).floor();\n\t\t\t\t_currentScissorTest = _scissorTest;\n\n\t\t\t}\n\n\t\t\t// Use a scratch frame buffer if rendering to a mip level to avoid depth buffers\n\t\t\t// being bound that are different sizes.\n\t\t\tif ( activeMipmapLevel !== 0 ) {\n\n\t\t\t\tframebuffer = _scratchFrameBuffer;\n\n\t\t\t}\n\n\t\t\tconst framebufferBound = state.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\t\tif ( framebufferBound && useDefaultFramebuffer ) {\n\n\t\t\t\tstate.drawBuffers( renderTarget, framebuffer );\n\n\t\t\t}\n\n\t\t\tstate.viewport( _currentViewport );\n\t\t\tstate.scissor( _currentScissor );\n\t\t\tstate.setScissorTest( _currentScissorTest );\n\n\t\t\tif ( isCube ) {\n\n\t\t\t\tconst textureProperties = properties.get( renderTarget.texture );\n\t\t\t\t_gl.framebufferTexture2D( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + activeCubeFace, textureProperties.__webglTexture, activeMipmapLevel );\n\n\t\t\t} else if ( isRenderTarget3D ) {\n\n\t\t\t\tconst textureProperties = properties.get( renderTarget.texture );\n\t\t\t\tconst layer = activeCubeFace;\n\t\t\t\t_gl.framebufferTextureLayer( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, textureProperties.__webglTexture, activeMipmapLevel, layer );\n\n\t\t\t} else if ( renderTarget !== null && activeMipmapLevel !== 0 ) {\n\n\t\t\t\t// Only bind the frame buffer if we are using a scratch frame buffer to render to a mipmap.\n\t\t\t\t// If we rebind the texture when using a multi sample buffer then an error about inconsistent samples will be thrown.\n\t\t\t\tconst textureProperties = properties.get( renderTarget.texture );\n\t\t\t\t_gl.framebufferTexture2D( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D, textureProperties.__webglTexture, activeMipmapLevel );\n\n\t\t\t}\n\n\t\t\t_currentMaterialId = - 1; // reset current material to ensure correct uniform bindings\n\n\t\t};\n\n\t\tthis.readRenderTargetPixels = function ( renderTarget, x, y, width, height, buffer, activeCubeFaceIndex ) {\n\n\t\t\tif ( ! ( renderTarget && renderTarget.isWebGLRenderTarget ) ) {\n\n\t\t\t\tconsole.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.' );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tlet framebuffer = properties.get( renderTarget ).__webglFramebuffer;\n\n\t\t\tif ( renderTarget.isWebGLCubeRenderTarget && activeCubeFaceIndex !== undefined ) {\n\n\t\t\t\tframebuffer = framebuffer[ activeCubeFaceIndex ];\n\n\t\t\t}\n\n\t\t\tif ( framebuffer ) {\n\n\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\t\t\ttry {\n\n\t\t\t\t\tconst texture = renderTarget.texture;\n\t\t\t\t\tconst textureFormat = texture.format;\n\t\t\t\t\tconst textureType = texture.type;\n\n\t\t\t\t\tif ( ! capabilities.textureFormatReadable( textureFormat ) ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.' );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! capabilities.textureTypeReadable( textureType ) ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.' );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// the following if statement ensures valid read requests (no out-of-bounds pixels, see #8604)\n\n\t\t\t\t\tif ( ( x >= 0 && x <= ( renderTarget.width - width ) ) && ( y >= 0 && y <= ( renderTarget.height - height ) ) ) {\n\n\t\t\t\t\t\t_gl.readPixels( x, y, width, height, utils.convert( textureFormat ), utils.convert( textureType ), buffer );\n\n\t\t\t\t\t}\n\n\t\t\t\t} finally {\n\n\t\t\t\t\t// restore framebuffer of current render target if necessary\n\n\t\t\t\t\tconst framebuffer = ( _currentRenderTarget !== null ) ? properties.get( _currentRenderTarget ).__webglFramebuffer : null;\n\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.readRenderTargetPixelsAsync = async function ( renderTarget, x, y, width, height, buffer, activeCubeFaceIndex ) {\n\n\t\t\tif ( ! ( renderTarget && renderTarget.isWebGLRenderTarget ) ) {\n\n\t\t\t\tthrow new Error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.' );\n\n\t\t\t}\n\n\t\t\tlet framebuffer = properties.get( renderTarget ).__webglFramebuffer;\n\t\t\tif ( renderTarget.isWebGLCubeRenderTarget && activeCubeFaceIndex !== undefined ) {\n\n\t\t\t\tframebuffer = framebuffer[ activeCubeFaceIndex ];\n\n\t\t\t}\n\n\t\t\tif ( framebuffer ) {\n\n\t\t\t\tconst texture = renderTarget.texture;\n\t\t\t\tconst textureFormat = texture.format;\n\t\t\t\tconst textureType = texture.type;\n\n\t\t\t\tif ( ! capabilities.textureFormatReadable( textureFormat ) ) {\n\n\t\t\t\t\tthrow new Error( 'THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.' );\n\n\t\t\t\t}\n\n\t\t\t\tif ( ! capabilities.textureTypeReadable( textureType ) ) {\n\n\t\t\t\t\tthrow new Error( 'THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.' );\n\n\t\t\t\t}\n\n\t\t\t\t// the following if statement ensures valid read requests (no out-of-bounds pixels, see #8604)\n\t\t\t\tif ( ( x >= 0 && x <= ( renderTarget.width - width ) ) && ( y >= 0 && y <= ( renderTarget.height - height ) ) ) {\n\n\t\t\t\t\t// set the active frame buffer to the one we want to read\n\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\t\t\t\tconst glBuffer = _gl.createBuffer();\n\t\t\t\t\t_gl.bindBuffer( _gl.PIXEL_PACK_BUFFER, glBuffer );\n\t\t\t\t\t_gl.bufferData( _gl.PIXEL_PACK_BUFFER, buffer.byteLength, _gl.STREAM_READ );\n\t\t\t\t\t_gl.readPixels( x, y, width, height, utils.convert( textureFormat ), utils.convert( textureType ), 0 );\n\n\t\t\t\t\t// reset the frame buffer to the currently set buffer before waiting\n\t\t\t\t\tconst currFramebuffer = _currentRenderTarget !== null ? properties.get( _currentRenderTarget ).__webglFramebuffer : null;\n\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, currFramebuffer );\n\n\t\t\t\t\t// check if the commands have finished every 8 ms\n\t\t\t\t\tconst sync = _gl.fenceSync( _gl.SYNC_GPU_COMMANDS_COMPLETE, 0 );\n\n\t\t\t\t\t_gl.flush();\n\n\t\t\t\t\tawait probeAsync( _gl, sync, 4 );\n\n\t\t\t\t\t// read the data and delete the buffer\n\t\t\t\t\t_gl.bindBuffer( _gl.PIXEL_PACK_BUFFER, glBuffer );\n\t\t\t\t\t_gl.getBufferSubData( _gl.PIXEL_PACK_BUFFER, 0, buffer );\n\t\t\t\t\t_gl.deleteBuffer( glBuffer );\n\t\t\t\t\t_gl.deleteSync( sync );\n\n\t\t\t\t\treturn buffer;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new Error( 'THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.' );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.copyFramebufferToTexture = function ( texture, position = null, level = 0 ) {\n\n\t\t\t// support previous signature with position first\n\t\t\tif ( texture.isTexture !== true ) {\n\n\t\t\t\t// @deprecated, r165\n\t\t\t\twarnOnce( 'WebGLRenderer: copyFramebufferToTexture function signature has changed.' );\n\n\t\t\t\tposition = arguments[ 0 ] || null;\n\t\t\t\ttexture = arguments[ 1 ];\n\n\t\t\t}\n\n\t\t\tconst levelScale = Math.pow( 2, - level );\n\t\t\tconst width = Math.floor( texture.image.width * levelScale );\n\t\t\tconst height = Math.floor( texture.image.height * levelScale );\n\n\t\t\tconst x = position !== null ? position.x : 0;\n\t\t\tconst y = position !== null ? position.y : 0;\n\n\t\t\ttextures.setTexture2D( texture, 0 );\n\n\t\t\t_gl.copyTexSubImage2D( _gl.TEXTURE_2D, level, 0, 0, x, y, width, height );\n\n\t\t\tstate.unbindTexture();\n\n\t\t};\n\n\t\tconst _srcFramebuffer = _gl.createFramebuffer();\n\t\tconst _dstFramebuffer = _gl.createFramebuffer();\n\t\tthis.copyTextureToTexture = function ( srcTexture, dstTexture, srcRegion = null, dstPosition = null, srcLevel = 0, dstLevel = null ) {\n\n\t\t\t// support previous signature with dstPosition first\n\t\t\tif ( srcTexture.isTexture !== true ) {\n\n\t\t\t\t// @deprecated, r165\n\t\t\t\twarnOnce( 'WebGLRenderer: copyTextureToTexture function signature has changed.' );\n\n\t\t\t\tdstPosition = arguments[ 0 ] || null;\n\t\t\t\tsrcTexture = arguments[ 1 ];\n\t\t\t\tdstTexture = arguments[ 2 ];\n\t\t\t\tdstLevel = arguments[ 3 ] || 0;\n\t\t\t\tsrcRegion = null;\n\n\t\t\t}\n\n\t\t\t// support the previous signature with just a single dst mipmap level\n\t\t\tif ( dstLevel === null ) {\n\n\t\t\t\tif ( srcLevel !== 0 ) {\n\n\t\t\t\t\t// @deprecated, r171\n\t\t\t\t\twarnOnce( 'WebGLRenderer: copyTextureToTexture function signature has changed to support src and dst mipmap levels.' );\n\t\t\t\t\tdstLevel = srcLevel;\n\t\t\t\t\tsrcLevel = 0;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tdstLevel = 0;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// gather the necessary dimensions to copy\n\t\t\tlet width, height, depth, minX, minY, minZ;\n\t\t\tlet dstX, dstY, dstZ;\n\t\t\tconst image = srcTexture.isCompressedTexture ? srcTexture.mipmaps[ dstLevel ] : srcTexture.image;\n\t\t\tif ( srcRegion !== null ) {\n\n\t\t\t\twidth = srcRegion.max.x - srcRegion.min.x;\n\t\t\t\theight = srcRegion.max.y - srcRegion.min.y;\n\t\t\t\tdepth = srcRegion.isBox3 ? srcRegion.max.z - srcRegion.min.z : 1;\n\t\t\t\tminX = srcRegion.min.x;\n\t\t\t\tminY = srcRegion.min.y;\n\t\t\t\tminZ = srcRegion.isBox3 ? srcRegion.min.z : 0;\n\n\t\t\t} else {\n\n\t\t\t\tconst levelScale = Math.pow( 2, - srcLevel );\n\t\t\t\twidth = Math.floor( image.width * levelScale );\n\t\t\t\theight = Math.floor( image.height * levelScale );\n\t\t\t\tif ( srcTexture.isDataArrayTexture ) {\n\n\t\t\t\t\tdepth = image.depth;\n\n\t\t\t\t} else if ( srcTexture.isData3DTexture ) {\n\n\t\t\t\t\tdepth = Math.floor( image.depth * levelScale );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tdepth = 1;\n\n\t\t\t\t}\n\n\t\t\t\tminX = 0;\n\t\t\t\tminY = 0;\n\t\t\t\tminZ = 0;\n\n\t\t\t}\n\n\t\t\tif ( dstPosition !== null ) {\n\n\t\t\t\tdstX = dstPosition.x;\n\t\t\t\tdstY = dstPosition.y;\n\t\t\t\tdstZ = dstPosition.z;\n\n\t\t\t} else {\n\n\t\t\t\tdstX = 0;\n\t\t\t\tdstY = 0;\n\t\t\t\tdstZ = 0;\n\n\t\t\t}\n\n\t\t\t// Set up the destination target\n\t\t\tconst glFormat = utils.convert( dstTexture.format );\n\t\t\tconst glType = utils.convert( dstTexture.type );\n\t\t\tlet glTarget;\n\n\t\t\tif ( dstTexture.isData3DTexture ) {\n\n\t\t\t\ttextures.setTexture3D( dstTexture, 0 );\n\t\t\t\tglTarget = _gl.TEXTURE_3D;\n\n\t\t\t} else if ( dstTexture.isDataArrayTexture || dstTexture.isCompressedArrayTexture ) {\n\n\t\t\t\ttextures.setTexture2DArray( dstTexture, 0 );\n\t\t\t\tglTarget = _gl.TEXTURE_2D_ARRAY;\n\n\t\t\t} else {\n\n\t\t\t\ttextures.setTexture2D( dstTexture, 0 );\n\t\t\t\tglTarget = _gl.TEXTURE_2D;\n\n\t\t\t}\n\n\t\t\t_gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, dstTexture.flipY );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, dstTexture.premultiplyAlpha );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ALIGNMENT, dstTexture.unpackAlignment );\n\n\t\t\t// used for copying data from cpu\n\t\t\tconst currentUnpackRowLen = _gl.getParameter( _gl.UNPACK_ROW_LENGTH );\n\t\t\tconst currentUnpackImageHeight = _gl.getParameter( _gl.UNPACK_IMAGE_HEIGHT );\n\t\t\tconst currentUnpackSkipPixels = _gl.getParameter( _gl.UNPACK_SKIP_PIXELS );\n\t\t\tconst currentUnpackSkipRows = _gl.getParameter( _gl.UNPACK_SKIP_ROWS );\n\t\t\tconst currentUnpackSkipImages = _gl.getParameter( _gl.UNPACK_SKIP_IMAGES );\n\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ROW_LENGTH, image.width );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_IMAGE_HEIGHT, image.height );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_PIXELS, minX );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_ROWS, minY );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_IMAGES, minZ );\n\n\t\t\t// set up the src texture\n\t\t\tconst isSrc3D = srcTexture.isDataArrayTexture || srcTexture.isData3DTexture;\n\t\t\tconst isDst3D = dstTexture.isDataArrayTexture || dstTexture.isData3DTexture;\n\t\t\tif ( srcTexture.isDepthTexture ) {\n\n\t\t\t\tconst srcTextureProperties = properties.get( srcTexture );\n\t\t\t\tconst dstTextureProperties = properties.get( dstTexture );\n\t\t\t\tconst srcRenderTargetProperties = properties.get( srcTextureProperties.__renderTarget );\n\t\t\t\tconst dstRenderTargetProperties = properties.get( dstTextureProperties.__renderTarget );\n\t\t\t\tstate.bindFramebuffer( _gl.READ_FRAMEBUFFER, srcRenderTargetProperties.__webglFramebuffer );\n\t\t\t\tstate.bindFramebuffer( _gl.DRAW_FRAMEBUFFER, dstRenderTargetProperties.__webglFramebuffer );\n\n\t\t\t\tfor ( let i = 0; i < depth; i ++ ) {\n\n\t\t\t\t\t// if the source or destination are a 3d target then a layer needs to be bound\n\t\t\t\t\tif ( isSrc3D ) {\n\n\t\t\t\t\t\t_gl.framebufferTextureLayer( _gl.READ_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, properties.get( srcTexture ).__webglTexture, srcLevel, minZ + i );\n\t\t\t\t\t\t_gl.framebufferTextureLayer( _gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, properties.get( dstTexture ).__webglTexture, dstLevel, dstZ + i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_gl.blitFramebuffer( minX, minY, width, height, dstX, dstY, width, height, _gl.DEPTH_BUFFER_BIT, _gl.NEAREST );\n\n\t\t\t\t}\n\n\t\t\t\tstate.bindFramebuffer( _gl.READ_FRAMEBUFFER, null );\n\t\t\t\tstate.bindFramebuffer( _gl.DRAW_FRAMEBUFFER, null );\n\n\t\t\t} else if ( srcLevel !== 0 || srcTexture.isRenderTargetTexture || properties.has( srcTexture ) ) {\n\n\t\t\t\t// get the appropriate frame buffers\n\t\t\t\tconst srcTextureProperties = properties.get( srcTexture );\n\t\t\t\tconst dstTextureProperties = properties.get( dstTexture );\n\n\t\t\t\t// bind the frame buffer targets\n\t\t\t\tstate.bindFramebuffer( _gl.READ_FRAMEBUFFER, _srcFramebuffer );\n\t\t\t\tstate.bindFramebuffer( _gl.DRAW_FRAMEBUFFER, _dstFramebuffer );\n\n\t\t\t\tfor ( let i = 0; i < depth; i ++ ) {\n\n\t\t\t\t\t// assign the correct layers and mip maps to the frame buffers\n\t\t\t\t\tif ( isSrc3D ) {\n\n\t\t\t\t\t\t_gl.framebufferTextureLayer( _gl.READ_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, srcTextureProperties.__webglTexture, srcLevel, minZ + i );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_gl.framebufferTexture2D( _gl.READ_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D, srcTextureProperties.__webglTexture, srcLevel );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( isDst3D ) {\n\n\t\t\t\t\t\t_gl.framebufferTextureLayer( _gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, dstTextureProperties.__webglTexture, dstLevel, dstZ + i );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_gl.framebufferTexture2D( _gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D, dstTextureProperties.__webglTexture, dstLevel );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// copy the data using the fastest function that can achieve the copy\n\t\t\t\t\tif ( srcLevel !== 0 ) {\n\n\t\t\t\t\t\t_gl.blitFramebuffer( minX, minY, width, height, dstX, dstY, width, height, _gl.COLOR_BUFFER_BIT, _gl.NEAREST );\n\n\t\t\t\t\t} else if ( isDst3D ) {\n\n\t\t\t\t\t\t_gl.copyTexSubImage3D( glTarget, dstLevel, dstX, dstY, dstZ + i, minX, minY, width, height );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_gl.copyTexSubImage2D( glTarget, dstLevel, dstX, dstY, minX, minY, width, height );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t// unbind read, draw buffers\n\t\t\t\tstate.bindFramebuffer( _gl.READ_FRAMEBUFFER, null );\n\t\t\t\tstate.bindFramebuffer( _gl.DRAW_FRAMEBUFFER, null );\n\n\t\t\t} else {\n\n\t\t\t\tif ( isDst3D ) {\n\n\t\t\t\t\t// copy data into the 3d texture\n\t\t\t\t\tif ( srcTexture.isDataTexture || srcTexture.isData3DTexture ) {\n\n\t\t\t\t\t\t_gl.texSubImage3D( glTarget, dstLevel, dstX, dstY, dstZ, width, height, depth, glFormat, glType, image.data );\n\n\t\t\t\t\t} else if ( dstTexture.isCompressedArrayTexture ) {\n\n\t\t\t\t\t\t_gl.compressedTexSubImage3D( glTarget, dstLevel, dstX, dstY, dstZ, width, height, depth, glFormat, image.data );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_gl.texSubImage3D( glTarget, dstLevel, dstX, dstY, dstZ, width, height, depth, glFormat, glType, image );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// copy data into the 2d texture\n\t\t\t\t\tif ( srcTexture.isDataTexture ) {\n\n\t\t\t\t\t\t_gl.texSubImage2D( _gl.TEXTURE_2D, dstLevel, dstX, dstY, width, height, glFormat, glType, image.data );\n\n\t\t\t\t\t} else if ( srcTexture.isCompressedTexture ) {\n\n\t\t\t\t\t\t_gl.compressedTexSubImage2D( _gl.TEXTURE_2D, dstLevel, dstX, dstY, image.width, image.height, glFormat, image.data );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_gl.texSubImage2D( _gl.TEXTURE_2D, dstLevel, dstX, dstY, width, height, glFormat, glType, image );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// reset values\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ROW_LENGTH, currentUnpackRowLen );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_IMAGE_HEIGHT, currentUnpackImageHeight );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_PIXELS, currentUnpackSkipPixels );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_ROWS, currentUnpackSkipRows );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_IMAGES, currentUnpackSkipImages );\n\n\t\t\t// Generate mipmaps only when copying level 0\n\t\t\tif ( dstLevel === 0 && dstTexture.generateMipmaps ) {\n\n\t\t\t\t_gl.generateMipmap( glTarget );\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t};\n\n\t\tthis.copyTextureToTexture3D = function ( srcTexture, dstTexture, srcRegion = null, dstPosition = null, level = 0 ) {\n\n\t\t\t// support previous signature with source box first\n\t\t\tif ( srcTexture.isTexture !== true ) {\n\n\t\t\t\t// @deprecated, r165\n\t\t\t\twarnOnce( 'WebGLRenderer: copyTextureToTexture3D function signature has changed.' );\n\n\t\t\t\tsrcRegion = arguments[ 0 ] || null;\n\t\t\t\tdstPosition = arguments[ 1 ] || null;\n\t\t\t\tsrcTexture = arguments[ 2 ];\n\t\t\t\tdstTexture = arguments[ 3 ];\n\t\t\t\tlevel = arguments[ 4 ] || 0;\n\n\t\t\t}\n\n\t\t\t// @deprecated, r170\n\t\t\twarnOnce( 'WebGLRenderer: copyTextureToTexture3D function has been deprecated. Use \"copyTextureToTexture\" instead.' );\n\n\t\t\treturn this.copyTextureToTexture( srcTexture, dstTexture, srcRegion, dstPosition, level );\n\n\t\t};\n\n\t\tthis.initRenderTarget = function ( target ) {\n\n\t\t\tif ( properties.get( target ).__webglFramebuffer === undefined ) {\n\n\t\t\t\ttextures.setupRenderTarget( target );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.initTexture = function ( texture ) {\n\n\t\t\tif ( texture.isCubeTexture ) {\n\n\t\t\t\ttextures.setTextureCube( texture, 0 );\n\n\t\t\t} else if ( texture.isData3DTexture ) {\n\n\t\t\t\ttextures.setTexture3D( texture, 0 );\n\n\t\t\t} else if ( texture.isDataArrayTexture || texture.isCompressedArrayTexture ) {\n\n\t\t\t\ttextures.setTexture2DArray( texture, 0 );\n\n\t\t\t} else {\n\n\t\t\t\ttextures.setTexture2D( texture, 0 );\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t};\n\n\t\tthis.resetState = function () {\n\n\t\t\t_currentActiveCubeFace = 0;\n\t\t\t_currentActiveMipmapLevel = 0;\n\t\t\t_currentRenderTarget = null;\n\n\t\t\tstate.reset();\n\t\t\tbindingStates.reset();\n\n\t\t};\n\n\t\tif ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {\n\n\t\t\t__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'observe', { detail: this } ) );\n\n\t\t}\n\n\t}\n\n\tget coordinateSystem() {\n\n\t\treturn WebGLCoordinateSystem;\n\n\t}\n\n\tget outputColorSpace() {\n\n\t\treturn this._outputColorSpace;\n\n\t}\n\n\tset outputColorSpace( colorSpace ) {\n\n\t\tthis._outputColorSpace = colorSpace;\n\n\t\tconst gl = this.getContext();\n\t\tgl.drawingBufferColorspace = ColorManagement._getDrawingBufferColorSpace( colorSpace );\n\t\tgl.unpackColorSpace = ColorManagement._getUnpackColorSpace();\n\n\t}\n\n}\n\nexport { ACESFilmicToneMapping, AddEquation, AddOperation, AdditiveBlending, AgXToneMapping, AlphaFormat, AlwaysCompare, AlwaysDepth, ArrayCamera, BackSide, BoxGeometry, BufferAttribute, BufferGeometry, ByteType, CineonToneMapping, ClampToEdgeWrapping, Color, ColorManagement, ConstantAlphaFactor, ConstantColorFactor, CubeReflectionMapping, CubeRefractionMapping, CubeTexture, CubeUVReflectionMapping, CullFaceBack, CullFaceFront, CullFaceNone, CustomBlending, CustomToneMapping, Data3DTexture, DataArrayTexture, DepthFormat, DepthStencilFormat, DepthTexture, DoubleSide, DstAlphaFactor, DstColorFactor, EqualCompare, EqualDepth, EquirectangularReflectionMapping, EquirectangularRefractionMapping, Euler, EventDispatcher, FloatType, FrontSide, Frustum, GLSL3, GreaterCompare, GreaterDepth, GreaterEqualCompare, GreaterEqualDepth, Group, HalfFloatType, IntType, Layers, LessCompare, LessDepth, LessEqualCompare, LessEqualDepth, LinearFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, LinearSRGBColorSpace, LinearToneMapping, LinearTransfer, LuminanceAlphaFormat, LuminanceFormat, Matrix3, Matrix4, MaxEquation, Mesh, MeshBasicMaterial, MeshDepthMaterial, MeshDistanceMaterial, MinEquation, MirroredRepeatWrapping, MixOperation, MultiplyBlending, MultiplyOperation, NearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, NeutralToneMapping, NeverCompare, NeverDepth, NoBlending, NoColorSpace, NoToneMapping, NormalBlending, NotEqualCompare, NotEqualDepth, ObjectSpaceNormalMap, OneFactor, OneMinusConstantAlphaFactor, OneMinusConstantColorFactor, OneMinusDstAlphaFactor, OneMinusDstColorFactor, OneMinusSrcAlphaFactor, OneMinusSrcColorFactor, OrthographicCamera, PCFShadowMap, PCFSoftShadowMap, PMREMGenerator, PerspectiveCamera, Plane, PlaneGeometry, RED_GREEN_RGTC2_Format, RED_RGTC1_Format, REVISION, RGBADepthPacking, RGBAFormat, RGBAIntegerFormat, RGBA_ASTC_10x10_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_BPTC_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGBFormat, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGB_S3TC_DXT1_Format, RGFormat, RGIntegerFormat, RedFormat, RedIntegerFormat, ReinhardToneMapping, RepeatWrapping, ReverseSubtractEquation, SIGNED_RED_GREEN_RGTC2_Format, SIGNED_RED_RGTC1_Format, SRGBColorSpace, SRGBTransfer, ShaderChunk, ShaderLib, ShaderMaterial, ShortType, SrcAlphaFactor, SrcAlphaSaturateFactor, SrcColorFactor, SubtractEquation, SubtractiveBlending, TangentSpaceNormalMap, Texture, Uint16BufferAttribute, Uint32BufferAttribute, UniformsLib, UniformsUtils, UnsignedByteType, UnsignedInt248Type, UnsignedInt5999Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, VSMShadowMap, Vector2, Vector3, Vector4, WebGLCoordinateSystem, WebGLCubeRenderTarget, WebGLRenderTarget, WebGLRenderer, WebGLUtils, ZeroFactor, createCanvasElement };\n","import {\n\tControls,\n\tMOUSE,\n\tQuaternion,\n\tSpherical,\n\tTOUCH,\n\tVector2,\n\tVector3,\n\tPlane,\n\tRay,\n\tMathUtils\n} from 'three';\n\n// OrbitControls performs orbiting, dollying (zooming), and panning.\n// Unlike TrackballControls, it maintains the \"up\" direction object.up (+Y by default).\n//\n// Orbit - left mouse / touch: one-finger move\n// Zoom - middle mouse, or mousewheel / touch: two-finger spread or squish\n// Pan - right mouse, or left mouse + ctrl/meta/shiftKey, or arrow keys / touch: two-finger move\n\nconst _changeEvent = { type: 'change' };\nconst _startEvent = { type: 'start' };\nconst _endEvent = { type: 'end' };\nconst _ray = new Ray();\nconst _plane = new Plane();\nconst _TILT_LIMIT = Math.cos( 70 * MathUtils.DEG2RAD );\n\nconst _v = new Vector3();\nconst _twoPI = 2 * Math.PI;\n\nconst _STATE = {\n\tNONE: - 1,\n\tROTATE: 0,\n\tDOLLY: 1,\n\tPAN: 2,\n\tTOUCH_ROTATE: 3,\n\tTOUCH_PAN: 4,\n\tTOUCH_DOLLY_PAN: 5,\n\tTOUCH_DOLLY_ROTATE: 6\n};\nconst _EPS = 0.000001;\n\nclass OrbitControls extends Controls {\n\n\tconstructor( object, domElement = null ) {\n\n\t\tsuper( object, domElement );\n\n\t\tthis.state = _STATE.NONE;\n\n\t\t// Set to false to disable this control\n\t\tthis.enabled = true;\n\n\t\t// \"target\" sets the location of focus, where the object orbits around\n\t\tthis.target = new Vector3();\n\n\t\t// Sets the 3D cursor (similar to Blender), from which the maxTargetRadius takes effect\n\t\tthis.cursor = new Vector3();\n\n\t\t// How far you can dolly in and out ( PerspectiveCamera only )\n\t\tthis.minDistance = 0;\n\t\tthis.maxDistance = Infinity;\n\n\t\t// How far you can zoom in and out ( OrthographicCamera only )\n\t\tthis.minZoom = 0;\n\t\tthis.maxZoom = Infinity;\n\n\t\t// Limit camera target within a spherical area around the cursor\n\t\tthis.minTargetRadius = 0;\n\t\tthis.maxTargetRadius = Infinity;\n\n\t\t// How far you can orbit vertically, upper and lower limits.\n\t\t// Range is 0 to Math.PI radians.\n\t\tthis.minPolarAngle = 0; // radians\n\t\tthis.maxPolarAngle = Math.PI; // radians\n\n\t\t// How far you can orbit horizontally, upper and lower limits.\n\t\t// If set, the interval [ min, max ] must be a sub-interval of [ - 2 PI, 2 PI ], with ( max - min < 2 PI )\n\t\tthis.minAzimuthAngle = - Infinity; // radians\n\t\tthis.maxAzimuthAngle = Infinity; // radians\n\n\t\t// Set to true to enable damping (inertia)\n\t\t// If damping is enabled, you must call controls.update() in your animation loop\n\t\tthis.enableDamping = false;\n\t\tthis.dampingFactor = 0.05;\n\n\t\t// This option actually enables dollying in and out; left as \"zoom\" for backwards compatibility.\n\t\t// Set to false to disable zooming\n\t\tthis.enableZoom = true;\n\t\tthis.zoomSpeed = 1.0;\n\n\t\t// Set to false to disable rotating\n\t\tthis.enableRotate = true;\n\t\tthis.rotateSpeed = 1.0;\n\t\tthis.keyRotateSpeed = 1.0;\n\n\t\t// Set to false to disable panning\n\t\tthis.enablePan = true;\n\t\tthis.panSpeed = 1.0;\n\t\tthis.screenSpacePanning = true; // if false, pan orthogonal to world-space direction camera.up\n\t\tthis.keyPanSpeed = 7.0;\t// pixels moved per arrow key push\n\t\tthis.zoomToCursor = false;\n\n\t\t// Set to true to automatically rotate around the target\n\t\t// If auto-rotate is enabled, you must call controls.update() in your animation loop\n\t\tthis.autoRotate = false;\n\t\tthis.autoRotateSpeed = 2.0; // 30 seconds per orbit when fps is 60\n\n\t\t// The four arrow keys\n\t\tthis.keys = { LEFT: 'ArrowLeft', UP: 'ArrowUp', RIGHT: 'ArrowRight', BOTTOM: 'ArrowDown' };\n\n\t\t// Mouse buttons\n\t\tthis.mouseButtons = { LEFT: MOUSE.ROTATE, MIDDLE: MOUSE.DOLLY, RIGHT: MOUSE.PAN };\n\n\t\t// Touch fingers\n\t\tthis.touches = { ONE: TOUCH.ROTATE, TWO: TOUCH.DOLLY_PAN };\n\n\t\t// for reset\n\t\tthis.target0 = this.target.clone();\n\t\tthis.position0 = this.object.position.clone();\n\t\tthis.zoom0 = this.object.zoom;\n\n\t\t// the target DOM element for key events\n\t\tthis._domElementKeyEvents = null;\n\n\t\t// internals\n\n\t\tthis._lastPosition = new Vector3();\n\t\tthis._lastQuaternion = new Quaternion();\n\t\tthis._lastTargetPosition = new Vector3();\n\n\t\t// so camera.up is the orbit axis\n\t\tthis._quat = new Quaternion().setFromUnitVectors( object.up, new Vector3( 0, 1, 0 ) );\n\t\tthis._quatInverse = this._quat.clone().invert();\n\n\t\t// current position in spherical coordinates\n\t\tthis._spherical = new Spherical();\n\t\tthis._sphericalDelta = new Spherical();\n\n\t\tthis._scale = 1;\n\t\tthis._panOffset = new Vector3();\n\n\t\tthis._rotateStart = new Vector2();\n\t\tthis._rotateEnd = new Vector2();\n\t\tthis._rotateDelta = new Vector2();\n\n\t\tthis._panStart = new Vector2();\n\t\tthis._panEnd = new Vector2();\n\t\tthis._panDelta = new Vector2();\n\n\t\tthis._dollyStart = new Vector2();\n\t\tthis._dollyEnd = new Vector2();\n\t\tthis._dollyDelta = new Vector2();\n\n\t\tthis._dollyDirection = new Vector3();\n\t\tthis._mouse = new Vector2();\n\t\tthis._performCursorZoom = false;\n\n\t\tthis._pointers = [];\n\t\tthis._pointerPositions = {};\n\n\t\tthis._controlActive = false;\n\n\t\t// event listeners\n\n\t\tthis._onPointerMove = onPointerMove.bind( this );\n\t\tthis._onPointerDown = onPointerDown.bind( this );\n\t\tthis._onPointerUp = onPointerUp.bind( this );\n\t\tthis._onContextMenu = onContextMenu.bind( this );\n\t\tthis._onMouseWheel = onMouseWheel.bind( this );\n\t\tthis._onKeyDown = onKeyDown.bind( this );\n\n\t\tthis._onTouchStart = onTouchStart.bind( this );\n\t\tthis._onTouchMove = onTouchMove.bind( this );\n\n\t\tthis._onMouseDown = onMouseDown.bind( this );\n\t\tthis._onMouseMove = onMouseMove.bind( this );\n\n\t\tthis._interceptControlDown = interceptControlDown.bind( this );\n\t\tthis._interceptControlUp = interceptControlUp.bind( this );\n\n\t\t//\n\n\t\tif ( this.domElement !== null ) {\n\n\t\t\tthis.connect();\n\n\t\t}\n\n\t\tthis.update();\n\n\t}\n\n\tconnect() {\n\n\t\tthis.domElement.addEventListener( 'pointerdown', this._onPointerDown );\n\t\tthis.domElement.addEventListener( 'pointercancel', this._onPointerUp );\n\n\t\tthis.domElement.addEventListener( 'contextmenu', this._onContextMenu );\n\t\tthis.domElement.addEventListener( 'wheel', this._onMouseWheel, { passive: false } );\n\n\t\tconst document = this.domElement.getRootNode(); // offscreen canvas compatibility\n\t\tdocument.addEventListener( 'keydown', this._interceptControlDown, { passive: true, capture: true } );\n\n\t\tthis.domElement.style.touchAction = 'none'; // disable touch scroll\n\n\t}\n\n\tdisconnect() {\n\n\t\tthis.domElement.removeEventListener( 'pointerdown', this._onPointerDown );\n\t\tthis.domElement.removeEventListener( 'pointermove', this._onPointerMove );\n\t\tthis.domElement.removeEventListener( 'pointerup', this._onPointerUp );\n\t\tthis.domElement.removeEventListener( 'pointercancel', this._onPointerUp );\n\n\t\tthis.domElement.removeEventListener( 'wheel', this._onMouseWheel );\n\t\tthis.domElement.removeEventListener( 'contextmenu', this._onContextMenu );\n\n\t\tthis.stopListenToKeyEvents();\n\n\t\tconst document = this.domElement.getRootNode(); // offscreen canvas compatibility\n\t\tdocument.removeEventListener( 'keydown', this._interceptControlDown, { capture: true } );\n\n\t\tthis.domElement.style.touchAction = 'auto';\n\n\t}\n\n\tdispose() {\n\n\t\tthis.disconnect();\n\n\t}\n\n\tgetPolarAngle() {\n\n\t\treturn this._spherical.phi;\n\n\t}\n\n\tgetAzimuthalAngle() {\n\n\t\treturn this._spherical.theta;\n\n\t}\n\n\tgetDistance() {\n\n\t\treturn this.object.position.distanceTo( this.target );\n\n\t}\n\n\tlistenToKeyEvents( domElement ) {\n\n\t\tdomElement.addEventListener( 'keydown', this._onKeyDown );\n\t\tthis._domElementKeyEvents = domElement;\n\n\t}\n\n\tstopListenToKeyEvents() {\n\n\t\tif ( this._domElementKeyEvents !== null ) {\n\n\t\t\tthis._domElementKeyEvents.removeEventListener( 'keydown', this._onKeyDown );\n\t\t\tthis._domElementKeyEvents = null;\n\n\t\t}\n\n\t}\n\n\tsaveState() {\n\n\t\tthis.target0.copy( this.target );\n\t\tthis.position0.copy( this.object.position );\n\t\tthis.zoom0 = this.object.zoom;\n\n\t}\n\n\treset() {\n\n\t\tthis.target.copy( this.target0 );\n\t\tthis.object.position.copy( this.position0 );\n\t\tthis.object.zoom = this.zoom0;\n\n\t\tthis.object.updateProjectionMatrix();\n\t\tthis.dispatchEvent( _changeEvent );\n\n\t\tthis.update();\n\n\t\tthis.state = _STATE.NONE;\n\n\t}\n\n\tupdate( deltaTime = null ) {\n\n\t\tconst position = this.object.position;\n\n\t\t_v.copy( position ).sub( this.target );\n\n\t\t// rotate offset to \"y-axis-is-up\" space\n\t\t_v.applyQuaternion( this._quat );\n\n\t\t// angle from z-axis around y-axis\n\t\tthis._spherical.setFromVector3( _v );\n\n\t\tif ( this.autoRotate && this.state === _STATE.NONE ) {\n\n\t\t\tthis._rotateLeft( this._getAutoRotationAngle( deltaTime ) );\n\n\t\t}\n\n\t\tif ( this.enableDamping ) {\n\n\t\t\tthis._spherical.theta += this._sphericalDelta.theta * this.dampingFactor;\n\t\t\tthis._spherical.phi += this._sphericalDelta.phi * this.dampingFactor;\n\n\t\t} else {\n\n\t\t\tthis._spherical.theta += this._sphericalDelta.theta;\n\t\t\tthis._spherical.phi += this._sphericalDelta.phi;\n\n\t\t}\n\n\t\t// restrict theta to be between desired limits\n\n\t\tlet min = this.minAzimuthAngle;\n\t\tlet max = this.maxAzimuthAngle;\n\n\t\tif ( isFinite( min ) && isFinite( max ) ) {\n\n\t\t\tif ( min < - Math.PI ) min += _twoPI; else if ( min > Math.PI ) min -= _twoPI;\n\n\t\t\tif ( max < - Math.PI ) max += _twoPI; else if ( max > Math.PI ) max -= _twoPI;\n\n\t\t\tif ( min <= max ) {\n\n\t\t\t\tthis._spherical.theta = Math.max( min, Math.min( max, this._spherical.theta ) );\n\n\t\t\t} else {\n\n\t\t\t\tthis._spherical.theta = ( this._spherical.theta > ( min + max ) / 2 ) ?\n\t\t\t\t\tMath.max( min, this._spherical.theta ) :\n\t\t\t\t\tMath.min( max, this._spherical.theta );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// restrict phi to be between desired limits\n\t\tthis._spherical.phi = Math.max( this.minPolarAngle, Math.min( this.maxPolarAngle, this._spherical.phi ) );\n\n\t\tthis._spherical.makeSafe();\n\n\n\t\t// move target to panned location\n\n\t\tif ( this.enableDamping === true ) {\n\n\t\t\tthis.target.addScaledVector( this._panOffset, this.dampingFactor );\n\n\t\t} else {\n\n\t\t\tthis.target.add( this._panOffset );\n\n\t\t}\n\n\t\t// Limit the target distance from the cursor to create a sphere around the center of interest\n\t\tthis.target.sub( this.cursor );\n\t\tthis.target.clampLength( this.minTargetRadius, this.maxTargetRadius );\n\t\tthis.target.add( this.cursor );\n\n\t\tlet zoomChanged = false;\n\t\t// adjust the camera position based on zoom only if we're not zooming to the cursor or if it's an ortho camera\n\t\t// we adjust zoom later in these cases\n\t\tif ( this.zoomToCursor && this._performCursorZoom || this.object.isOrthographicCamera ) {\n\n\t\t\tthis._spherical.radius = this._clampDistance( this._spherical.radius );\n\n\t\t} else {\n\n\t\t\tconst prevRadius = this._spherical.radius;\n\t\t\tthis._spherical.radius = this._clampDistance( this._spherical.radius * this._scale );\n\t\t\tzoomChanged = prevRadius != this._spherical.radius;\n\n\t\t}\n\n\t\t_v.setFromSpherical( this._spherical );\n\n\t\t// rotate offset back to \"camera-up-vector-is-up\" space\n\t\t_v.applyQuaternion( this._quatInverse );\n\n\t\tposition.copy( this.target ).add( _v );\n\n\t\tthis.object.lookAt( this.target );\n\n\t\tif ( this.enableDamping === true ) {\n\n\t\t\tthis._sphericalDelta.theta *= ( 1 - this.dampingFactor );\n\t\t\tthis._sphericalDelta.phi *= ( 1 - this.dampingFactor );\n\n\t\t\tthis._panOffset.multiplyScalar( 1 - this.dampingFactor );\n\n\t\t} else {\n\n\t\t\tthis._sphericalDelta.set( 0, 0, 0 );\n\n\t\t\tthis._panOffset.set( 0, 0, 0 );\n\n\t\t}\n\n\t\t// adjust camera position\n\t\tif ( this.zoomToCursor && this._performCursorZoom ) {\n\n\t\t\tlet newRadius = null;\n\t\t\tif ( this.object.isPerspectiveCamera ) {\n\n\t\t\t\t// move the camera down the pointer ray\n\t\t\t\t// this method avoids floating point error\n\t\t\t\tconst prevRadius = _v.length();\n\t\t\t\tnewRadius = this._clampDistance( prevRadius * this._scale );\n\n\t\t\t\tconst radiusDelta = prevRadius - newRadius;\n\t\t\t\tthis.object.position.addScaledVector( this._dollyDirection, radiusDelta );\n\t\t\t\tthis.object.updateMatrixWorld();\n\n\t\t\t\tzoomChanged = !! radiusDelta;\n\n\t\t\t} else if ( this.object.isOrthographicCamera ) {\n\n\t\t\t\t// adjust the ortho camera position based on zoom changes\n\t\t\t\tconst mouseBefore = new Vector3( this._mouse.x, this._mouse.y, 0 );\n\t\t\t\tmouseBefore.unproject( this.object );\n\n\t\t\t\tconst prevZoom = this.object.zoom;\n\t\t\t\tthis.object.zoom = Math.max( this.minZoom, Math.min( this.maxZoom, this.object.zoom / this._scale ) );\n\t\t\t\tthis.object.updateProjectionMatrix();\n\n\t\t\t\tzoomChanged = prevZoom !== this.object.zoom;\n\n\t\t\t\tconst mouseAfter = new Vector3( this._mouse.x, this._mouse.y, 0 );\n\t\t\t\tmouseAfter.unproject( this.object );\n\n\t\t\t\tthis.object.position.sub( mouseAfter ).add( mouseBefore );\n\t\t\t\tthis.object.updateMatrixWorld();\n\n\t\t\t\tnewRadius = _v.length();\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled.' );\n\t\t\t\tthis.zoomToCursor = false;\n\n\t\t\t}\n\n\t\t\t// handle the placement of the target\n\t\t\tif ( newRadius !== null ) {\n\n\t\t\t\tif ( this.screenSpacePanning ) {\n\n\t\t\t\t\t// position the orbit target in front of the new camera position\n\t\t\t\t\tthis.target.set( 0, 0, - 1 )\n\t\t\t\t\t\t.transformDirection( this.object.matrix )\n\t\t\t\t\t\t.multiplyScalar( newRadius )\n\t\t\t\t\t\t.add( this.object.position );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// get the ray and translation plane to compute target\n\t\t\t\t\t_ray.origin.copy( this.object.position );\n\t\t\t\t\t_ray.direction.set( 0, 0, - 1 ).transformDirection( this.object.matrix );\n\n\t\t\t\t\t// if the camera is 20 degrees above the horizon then don't adjust the focus target to avoid\n\t\t\t\t\t// extremely large values\n\t\t\t\t\tif ( Math.abs( this.object.up.dot( _ray.direction ) ) < _TILT_LIMIT ) {\n\n\t\t\t\t\t\tthis.object.lookAt( this.target );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_plane.setFromNormalAndCoplanarPoint( this.object.up, this.target );\n\t\t\t\t\t\t_ray.intersectPlane( _plane, this.target );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else if ( this.object.isOrthographicCamera ) {\n\n\t\t\tconst prevZoom = this.object.zoom;\n\t\t\tthis.object.zoom = Math.max( this.minZoom, Math.min( this.maxZoom, this.object.zoom / this._scale ) );\n\n\t\t\tif ( prevZoom !== this.object.zoom ) {\n\n\t\t\t\tthis.object.updateProjectionMatrix();\n\t\t\t\tzoomChanged = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis._scale = 1;\n\t\tthis._performCursorZoom = false;\n\n\t\t// update condition is:\n\t\t// min(camera displacement, camera rotation in radians)^2 > EPS\n\t\t// using small-angle approximation cos(x/2) = 1 - x^2 / 8\n\n\t\tif ( zoomChanged ||\n\t\t\tthis._lastPosition.distanceToSquared( this.object.position ) > _EPS ||\n\t\t\t8 * ( 1 - this._lastQuaternion.dot( this.object.quaternion ) ) > _EPS ||\n\t\t\tthis._lastTargetPosition.distanceToSquared( this.target ) > _EPS ) {\n\n\t\t\tthis.dispatchEvent( _changeEvent );\n\n\t\t\tthis._lastPosition.copy( this.object.position );\n\t\t\tthis._lastQuaternion.copy( this.object.quaternion );\n\t\t\tthis._lastTargetPosition.copy( this.target );\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t_getAutoRotationAngle( deltaTime ) {\n\n\t\tif ( deltaTime !== null ) {\n\n\t\t\treturn ( _twoPI / 60 * this.autoRotateSpeed ) * deltaTime;\n\n\t\t} else {\n\n\t\t\treturn _twoPI / 60 / 60 * this.autoRotateSpeed;\n\n\t\t}\n\n\t}\n\n\t_getZoomScale( delta ) {\n\n\t\tconst normalizedDelta = Math.abs( delta * 0.01 );\n\t\treturn Math.pow( 0.95, this.zoomSpeed * normalizedDelta );\n\n\t}\n\n\t_rotateLeft( angle ) {\n\n\t\tthis._sphericalDelta.theta -= angle;\n\n\t}\n\n\t_rotateUp( angle ) {\n\n\t\tthis._sphericalDelta.phi -= angle;\n\n\t}\n\n\t_panLeft( distance, objectMatrix ) {\n\n\t\t_v.setFromMatrixColumn( objectMatrix, 0 ); // get X column of objectMatrix\n\t\t_v.multiplyScalar( - distance );\n\n\t\tthis._panOffset.add( _v );\n\n\t}\n\n\t_panUp( distance, objectMatrix ) {\n\n\t\tif ( this.screenSpacePanning === true ) {\n\n\t\t\t_v.setFromMatrixColumn( objectMatrix, 1 );\n\n\t\t} else {\n\n\t\t\t_v.setFromMatrixColumn( objectMatrix, 0 );\n\t\t\t_v.crossVectors( this.object.up, _v );\n\n\t\t}\n\n\t\t_v.multiplyScalar( distance );\n\n\t\tthis._panOffset.add( _v );\n\n\t}\n\n\t// deltaX and deltaY are in pixels; right and down are positive\n\t_pan( deltaX, deltaY ) {\n\n\t\tconst element = this.domElement;\n\n\t\tif ( this.object.isPerspectiveCamera ) {\n\n\t\t\t// perspective\n\t\t\tconst position = this.object.position;\n\t\t\t_v.copy( position ).sub( this.target );\n\t\t\tlet targetDistance = _v.length();\n\n\t\t\t// half of the fov is center to top of screen\n\t\t\ttargetDistance *= Math.tan( ( this.object.fov / 2 ) * Math.PI / 180.0 );\n\n\t\t\t// we use only clientHeight here so aspect ratio does not distort speed\n\t\t\tthis._panLeft( 2 * deltaX * targetDistance / element.clientHeight, this.object.matrix );\n\t\t\tthis._panUp( 2 * deltaY * targetDistance / element.clientHeight, this.object.matrix );\n\n\t\t} else if ( this.object.isOrthographicCamera ) {\n\n\t\t\t// orthographic\n\t\t\tthis._panLeft( deltaX * ( this.object.right - this.object.left ) / this.object.zoom / element.clientWidth, this.object.matrix );\n\t\t\tthis._panUp( deltaY * ( this.object.top - this.object.bottom ) / this.object.zoom / element.clientHeight, this.object.matrix );\n\n\t\t} else {\n\n\t\t\t// camera neither orthographic nor perspective\n\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.' );\n\t\t\tthis.enablePan = false;\n\n\t\t}\n\n\t}\n\n\t_dollyOut( dollyScale ) {\n\n\t\tif ( this.object.isPerspectiveCamera || this.object.isOrthographicCamera ) {\n\n\t\t\tthis._scale /= dollyScale;\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' );\n\t\t\tthis.enableZoom = false;\n\n\t\t}\n\n\t}\n\n\t_dollyIn( dollyScale ) {\n\n\t\tif ( this.object.isPerspectiveCamera || this.object.isOrthographicCamera ) {\n\n\t\t\tthis._scale *= dollyScale;\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' );\n\t\t\tthis.enableZoom = false;\n\n\t\t}\n\n\t}\n\n\t_updateZoomParameters( x, y ) {\n\n\t\tif ( ! this.zoomToCursor ) {\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis._performCursorZoom = true;\n\n\t\tconst rect = this.domElement.getBoundingClientRect();\n\t\tconst dx = x - rect.left;\n\t\tconst dy = y - rect.top;\n\t\tconst w = rect.width;\n\t\tconst h = rect.height;\n\n\t\tthis._mouse.x = ( dx / w ) * 2 - 1;\n\t\tthis._mouse.y = - ( dy / h ) * 2 + 1;\n\n\t\tthis._dollyDirection.set( this._mouse.x, this._mouse.y, 1 ).unproject( this.object ).sub( this.object.position ).normalize();\n\n\t}\n\n\t_clampDistance( dist ) {\n\n\t\treturn Math.max( this.minDistance, Math.min( this.maxDistance, dist ) );\n\n\t}\n\n\t//\n\t// event callbacks - update the object state\n\t//\n\n\t_handleMouseDownRotate( event ) {\n\n\t\tthis._rotateStart.set( event.clientX, event.clientY );\n\n\t}\n\n\t_handleMouseDownDolly( event ) {\n\n\t\tthis._updateZoomParameters( event.clientX, event.clientX );\n\t\tthis._dollyStart.set( event.clientX, event.clientY );\n\n\t}\n\n\t_handleMouseDownPan( event ) {\n\n\t\tthis._panStart.set( event.clientX, event.clientY );\n\n\t}\n\n\t_handleMouseMoveRotate( event ) {\n\n\t\tthis._rotateEnd.set( event.clientX, event.clientY );\n\n\t\tthis._rotateDelta.subVectors( this._rotateEnd, this._rotateStart ).multiplyScalar( this.rotateSpeed );\n\n\t\tconst element = this.domElement;\n\n\t\tthis._rotateLeft( _twoPI * this._rotateDelta.x / element.clientHeight ); // yes, height\n\n\t\tthis._rotateUp( _twoPI * this._rotateDelta.y / element.clientHeight );\n\n\t\tthis._rotateStart.copy( this._rotateEnd );\n\n\t\tthis.update();\n\n\t}\n\n\t_handleMouseMoveDolly( event ) {\n\n\t\tthis._dollyEnd.set( event.clientX, event.clientY );\n\n\t\tthis._dollyDelta.subVectors( this._dollyEnd, this._dollyStart );\n\n\t\tif ( this._dollyDelta.y > 0 ) {\n\n\t\t\tthis._dollyOut( this._getZoomScale( this._dollyDelta.y ) );\n\n\t\t} else if ( this._dollyDelta.y < 0 ) {\n\n\t\t\tthis._dollyIn( this._getZoomScale( this._dollyDelta.y ) );\n\n\t\t}\n\n\t\tthis._dollyStart.copy( this._dollyEnd );\n\n\t\tthis.update();\n\n\t}\n\n\t_handleMouseMovePan( event ) {\n\n\t\tthis._panEnd.set( event.clientX, event.clientY );\n\n\t\tthis._panDelta.subVectors( this._panEnd, this._panStart ).multiplyScalar( this.panSpeed );\n\n\t\tthis._pan( this._panDelta.x, this._panDelta.y );\n\n\t\tthis._panStart.copy( this._panEnd );\n\n\t\tthis.update();\n\n\t}\n\n\t_handleMouseWheel( event ) {\n\n\t\tthis._updateZoomParameters( event.clientX, event.clientY );\n\n\t\tif ( event.deltaY < 0 ) {\n\n\t\t\tthis._dollyIn( this._getZoomScale( event.deltaY ) );\n\n\t\t} else if ( event.deltaY > 0 ) {\n\n\t\t\tthis._dollyOut( this._getZoomScale( event.deltaY ) );\n\n\t\t}\n\n\t\tthis.update();\n\n\t}\n\n\t_handleKeyDown( event ) {\n\n\t\tlet needsUpdate = false;\n\n\t\tswitch ( event.code ) {\n\n\t\t\tcase this.keys.UP:\n\n\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\tif ( this.enableRotate ) {\n\n\t\t\t\t\t\tthis._rotateUp( _twoPI * this.keyRotateSpeed / this.domElement.clientHeight );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( this.enablePan ) {\n\n\t\t\t\t\t\tthis._pan( 0, this.keyPanSpeed );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tneedsUpdate = true;\n\t\t\t\tbreak;\n\n\t\t\tcase this.keys.BOTTOM:\n\n\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\tif ( this.enableRotate ) {\n\n\t\t\t\t\t\tthis._rotateUp( - _twoPI * this.keyRotateSpeed / this.domElement.clientHeight );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( this.enablePan ) {\n\n\t\t\t\t\t\tthis._pan( 0, - this.keyPanSpeed );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tneedsUpdate = true;\n\t\t\t\tbreak;\n\n\t\t\tcase this.keys.LEFT:\n\n\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\tif ( this.enableRotate ) {\n\n\t\t\t\t\t\tthis._rotateLeft( _twoPI * this.keyRotateSpeed / this.domElement.clientHeight );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( this.enablePan ) {\n\n\t\t\t\t\t\tthis._pan( this.keyPanSpeed, 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tneedsUpdate = true;\n\t\t\t\tbreak;\n\n\t\t\tcase this.keys.RIGHT:\n\n\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\tif ( this.enableRotate ) {\n\n\t\t\t\t\t\tthis._rotateLeft( - _twoPI * this.keyRotateSpeed / this.domElement.clientHeight );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( this.enablePan ) {\n\n\t\t\t\t\t\tthis._pan( - this.keyPanSpeed, 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tneedsUpdate = true;\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\tif ( needsUpdate ) {\n\n\t\t\t// prevent the browser from scrolling on cursor keys\n\t\t\tevent.preventDefault();\n\n\t\t\tthis.update();\n\n\t\t}\n\n\n\t}\n\n\t_handleTouchStartRotate( event ) {\n\n\t\tif ( this._pointers.length === 1 ) {\n\n\t\t\tthis._rotateStart.set( event.pageX, event.pageY );\n\n\t\t} else {\n\n\t\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\t\tconst x = 0.5 * ( event.pageX + position.x );\n\t\t\tconst y = 0.5 * ( event.pageY + position.y );\n\n\t\t\tthis._rotateStart.set( x, y );\n\n\t\t}\n\n\t}\n\n\t_handleTouchStartPan( event ) {\n\n\t\tif ( this._pointers.length === 1 ) {\n\n\t\t\tthis._panStart.set( event.pageX, event.pageY );\n\n\t\t} else {\n\n\t\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\t\tconst x = 0.5 * ( event.pageX + position.x );\n\t\t\tconst y = 0.5 * ( event.pageY + position.y );\n\n\t\t\tthis._panStart.set( x, y );\n\n\t\t}\n\n\t}\n\n\t_handleTouchStartDolly( event ) {\n\n\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\tconst dx = event.pageX - position.x;\n\t\tconst dy = event.pageY - position.y;\n\n\t\tconst distance = Math.sqrt( dx * dx + dy * dy );\n\n\t\tthis._dollyStart.set( 0, distance );\n\n\t}\n\n\t_handleTouchStartDollyPan( event ) {\n\n\t\tif ( this.enableZoom ) this._handleTouchStartDolly( event );\n\n\t\tif ( this.enablePan ) this._handleTouchStartPan( event );\n\n\t}\n\n\t_handleTouchStartDollyRotate( event ) {\n\n\t\tif ( this.enableZoom ) this._handleTouchStartDolly( event );\n\n\t\tif ( this.enableRotate ) this._handleTouchStartRotate( event );\n\n\t}\n\n\t_handleTouchMoveRotate( event ) {\n\n\t\tif ( this._pointers.length == 1 ) {\n\n\t\t\tthis._rotateEnd.set( event.pageX, event.pageY );\n\n\t\t} else {\n\n\t\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\t\tconst x = 0.5 * ( event.pageX + position.x );\n\t\t\tconst y = 0.5 * ( event.pageY + position.y );\n\n\t\t\tthis._rotateEnd.set( x, y );\n\n\t\t}\n\n\t\tthis._rotateDelta.subVectors( this._rotateEnd, this._rotateStart ).multiplyScalar( this.rotateSpeed );\n\n\t\tconst element = this.domElement;\n\n\t\tthis._rotateLeft( _twoPI * this._rotateDelta.x / element.clientHeight ); // yes, height\n\n\t\tthis._rotateUp( _twoPI * this._rotateDelta.y / element.clientHeight );\n\n\t\tthis._rotateStart.copy( this._rotateEnd );\n\n\t}\n\n\t_handleTouchMovePan( event ) {\n\n\t\tif ( this._pointers.length === 1 ) {\n\n\t\t\tthis._panEnd.set( event.pageX, event.pageY );\n\n\t\t} else {\n\n\t\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\t\tconst x = 0.5 * ( event.pageX + position.x );\n\t\t\tconst y = 0.5 * ( event.pageY + position.y );\n\n\t\t\tthis._panEnd.set( x, y );\n\n\t\t}\n\n\t\tthis._panDelta.subVectors( this._panEnd, this._panStart ).multiplyScalar( this.panSpeed );\n\n\t\tthis._pan( this._panDelta.x, this._panDelta.y );\n\n\t\tthis._panStart.copy( this._panEnd );\n\n\t}\n\n\t_handleTouchMoveDolly( event ) {\n\n\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\tconst dx = event.pageX - position.x;\n\t\tconst dy = event.pageY - position.y;\n\n\t\tconst distance = Math.sqrt( dx * dx + dy * dy );\n\n\t\tthis._dollyEnd.set( 0, distance );\n\n\t\tthis._dollyDelta.set( 0, Math.pow( this._dollyEnd.y / this._dollyStart.y, this.zoomSpeed ) );\n\n\t\tthis._dollyOut( this._dollyDelta.y );\n\n\t\tthis._dollyStart.copy( this._dollyEnd );\n\n\t\tconst centerX = ( event.pageX + position.x ) * 0.5;\n\t\tconst centerY = ( event.pageY + position.y ) * 0.5;\n\n\t\tthis._updateZoomParameters( centerX, centerY );\n\n\t}\n\n\t_handleTouchMoveDollyPan( event ) {\n\n\t\tif ( this.enableZoom ) this._handleTouchMoveDolly( event );\n\n\t\tif ( this.enablePan ) this._handleTouchMovePan( event );\n\n\t}\n\n\t_handleTouchMoveDollyRotate( event ) {\n\n\t\tif ( this.enableZoom ) this._handleTouchMoveDolly( event );\n\n\t\tif ( this.enableRotate ) this._handleTouchMoveRotate( event );\n\n\t}\n\n\t// pointers\n\n\t_addPointer( event ) {\n\n\t\tthis._pointers.push( event.pointerId );\n\n\t}\n\n\t_removePointer( event ) {\n\n\t\tdelete this._pointerPositions[ event.pointerId ];\n\n\t\tfor ( let i = 0; i < this._pointers.length; i ++ ) {\n\n\t\t\tif ( this._pointers[ i ] == event.pointerId ) {\n\n\t\t\t\tthis._pointers.splice( i, 1 );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_isTrackingPointer( event ) {\n\n\t\tfor ( let i = 0; i < this._pointers.length; i ++ ) {\n\n\t\t\tif ( this._pointers[ i ] == event.pointerId ) return true;\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t_trackPointer( event ) {\n\n\t\tlet position = this._pointerPositions[ event.pointerId ];\n\n\t\tif ( position === undefined ) {\n\n\t\t\tposition = new Vector2();\n\t\t\tthis._pointerPositions[ event.pointerId ] = position;\n\n\t\t}\n\n\t\tposition.set( event.pageX, event.pageY );\n\n\t}\n\n\t_getSecondPointerPosition( event ) {\n\n\t\tconst pointerId = ( event.pointerId === this._pointers[ 0 ] ) ? this._pointers[ 1 ] : this._pointers[ 0 ];\n\n\t\treturn this._pointerPositions[ pointerId ];\n\n\t}\n\n\t//\n\n\t_customWheelEvent( event ) {\n\n\t\tconst mode = event.deltaMode;\n\n\t\t// minimal wheel event altered to meet delta-zoom demand\n\t\tconst newEvent = {\n\t\t\tclientX: event.clientX,\n\t\t\tclientY: event.clientY,\n\t\t\tdeltaY: event.deltaY,\n\t\t};\n\n\t\tswitch ( mode ) {\n\n\t\t\tcase 1: // LINE_MODE\n\t\t\t\tnewEvent.deltaY *= 16;\n\t\t\t\tbreak;\n\n\t\t\tcase 2: // PAGE_MODE\n\t\t\t\tnewEvent.deltaY *= 100;\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\t// detect if event was triggered by pinching\n\t\tif ( event.ctrlKey && ! this._controlActive ) {\n\n\t\t\tnewEvent.deltaY *= 10;\n\n\t\t}\n\n\t\treturn newEvent;\n\n\t}\n\n}\n\nfunction onPointerDown( event ) {\n\n\tif ( this.enabled === false ) return;\n\n\tif ( this._pointers.length === 0 ) {\n\n\t\tthis.domElement.setPointerCapture( event.pointerId );\n\n\t\tthis.domElement.addEventListener( 'pointermove', this._onPointerMove );\n\t\tthis.domElement.addEventListener( 'pointerup', this._onPointerUp );\n\n\t}\n\n\t//\n\n\tif ( this._isTrackingPointer( event ) ) return;\n\n\t//\n\n\tthis._addPointer( event );\n\n\tif ( event.pointerType === 'touch' ) {\n\n\t\tthis._onTouchStart( event );\n\n\t} else {\n\n\t\tthis._onMouseDown( event );\n\n\t}\n\n}\n\nfunction onPointerMove( event ) {\n\n\tif ( this.enabled === false ) return;\n\n\tif ( event.pointerType === 'touch' ) {\n\n\t\tthis._onTouchMove( event );\n\n\t} else {\n\n\t\tthis._onMouseMove( event );\n\n\t}\n\n}\n\nfunction onPointerUp( event ) {\n\n\tthis._removePointer( event );\n\n\tswitch ( this._pointers.length ) {\n\n\t\tcase 0:\n\n\t\t\tthis.domElement.releasePointerCapture( event.pointerId );\n\n\t\t\tthis.domElement.removeEventListener( 'pointermove', this._onPointerMove );\n\t\t\tthis.domElement.removeEventListener( 'pointerup', this._onPointerUp );\n\n\t\t\tthis.dispatchEvent( _endEvent );\n\n\t\t\tthis.state = _STATE.NONE;\n\n\t\t\tbreak;\n\n\t\tcase 1:\n\n\t\t\tconst pointerId = this._pointers[ 0 ];\n\t\t\tconst position = this._pointerPositions[ pointerId ];\n\n\t\t\t// minimal placeholder event - allows state correction on pointer-up\n\t\t\tthis._onTouchStart( { pointerId: pointerId, pageX: position.x, pageY: position.y } );\n\n\t\t\tbreak;\n\n\t}\n\n}\n\nfunction onMouseDown( event ) {\n\n\tlet mouseAction;\n\n\tswitch ( event.button ) {\n\n\t\tcase 0:\n\n\t\t\tmouseAction = this.mouseButtons.LEFT;\n\t\t\tbreak;\n\n\t\tcase 1:\n\n\t\t\tmouseAction = this.mouseButtons.MIDDLE;\n\t\t\tbreak;\n\n\t\tcase 2:\n\n\t\t\tmouseAction = this.mouseButtons.RIGHT;\n\t\t\tbreak;\n\n\t\tdefault:\n\n\t\t\tmouseAction = - 1;\n\n\t}\n\n\tswitch ( mouseAction ) {\n\n\t\tcase MOUSE.DOLLY:\n\n\t\t\tif ( this.enableZoom === false ) return;\n\n\t\t\tthis._handleMouseDownDolly( event );\n\n\t\t\tthis.state = _STATE.DOLLY;\n\n\t\t\tbreak;\n\n\t\tcase MOUSE.ROTATE:\n\n\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\tif ( this.enablePan === false ) return;\n\n\t\t\t\tthis._handleMouseDownPan( event );\n\n\t\t\t\tthis.state = _STATE.PAN;\n\n\t\t\t} else {\n\n\t\t\t\tif ( this.enableRotate === false ) return;\n\n\t\t\t\tthis._handleMouseDownRotate( event );\n\n\t\t\t\tthis.state = _STATE.ROTATE;\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tcase MOUSE.PAN:\n\n\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\tif ( this.enableRotate === false ) return;\n\n\t\t\t\tthis._handleMouseDownRotate( event );\n\n\t\t\t\tthis.state = _STATE.ROTATE;\n\n\t\t\t} else {\n\n\t\t\t\tif ( this.enablePan === false ) return;\n\n\t\t\t\tthis._handleMouseDownPan( event );\n\n\t\t\t\tthis.state = _STATE.PAN;\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tdefault:\n\n\t\t\tthis.state = _STATE.NONE;\n\n\t}\n\n\tif ( this.state !== _STATE.NONE ) {\n\n\t\tthis.dispatchEvent( _startEvent );\n\n\t}\n\n}\n\nfunction onMouseMove( event ) {\n\n\tswitch ( this.state ) {\n\n\t\tcase _STATE.ROTATE:\n\n\t\t\tif ( this.enableRotate === false ) return;\n\n\t\t\tthis._handleMouseMoveRotate( event );\n\n\t\t\tbreak;\n\n\t\tcase _STATE.DOLLY:\n\n\t\t\tif ( this.enableZoom === false ) return;\n\n\t\t\tthis._handleMouseMoveDolly( event );\n\n\t\t\tbreak;\n\n\t\tcase _STATE.PAN:\n\n\t\t\tif ( this.enablePan === false ) return;\n\n\t\t\tthis._handleMouseMovePan( event );\n\n\t\t\tbreak;\n\n\t}\n\n}\n\nfunction onMouseWheel( event ) {\n\n\tif ( this.enabled === false || this.enableZoom === false || this.state !== _STATE.NONE ) return;\n\n\tevent.preventDefault();\n\n\tthis.dispatchEvent( _startEvent );\n\n\tthis._handleMouseWheel( this._customWheelEvent( event ) );\n\n\tthis.dispatchEvent( _endEvent );\n\n}\n\nfunction onKeyDown( event ) {\n\n\tif ( this.enabled === false ) return;\n\n\tthis._handleKeyDown( event );\n\n}\n\nfunction onTouchStart( event ) {\n\n\tthis._trackPointer( event );\n\n\tswitch ( this._pointers.length ) {\n\n\t\tcase 1:\n\n\t\t\tswitch ( this.touches.ONE ) {\n\n\t\t\t\tcase TOUCH.ROTATE:\n\n\t\t\t\t\tif ( this.enableRotate === false ) return;\n\n\t\t\t\t\tthis._handleTouchStartRotate( event );\n\n\t\t\t\t\tthis.state = _STATE.TOUCH_ROTATE;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase TOUCH.PAN:\n\n\t\t\t\t\tif ( this.enablePan === false ) return;\n\n\t\t\t\t\tthis._handleTouchStartPan( event );\n\n\t\t\t\t\tthis.state = _STATE.TOUCH_PAN;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tthis.state = _STATE.NONE;\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tcase 2:\n\n\t\t\tswitch ( this.touches.TWO ) {\n\n\t\t\t\tcase TOUCH.DOLLY_PAN:\n\n\t\t\t\t\tif ( this.enableZoom === false && this.enablePan === false ) return;\n\n\t\t\t\t\tthis._handleTouchStartDollyPan( event );\n\n\t\t\t\t\tthis.state = _STATE.TOUCH_DOLLY_PAN;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase TOUCH.DOLLY_ROTATE:\n\n\t\t\t\t\tif ( this.enableZoom === false && this.enableRotate === false ) return;\n\n\t\t\t\t\tthis._handleTouchStartDollyRotate( event );\n\n\t\t\t\t\tthis.state = _STATE.TOUCH_DOLLY_ROTATE;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tthis.state = _STATE.NONE;\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tdefault:\n\n\t\t\tthis.state = _STATE.NONE;\n\n\t}\n\n\tif ( this.state !== _STATE.NONE ) {\n\n\t\tthis.dispatchEvent( _startEvent );\n\n\t}\n\n}\n\nfunction onTouchMove( event ) {\n\n\tthis._trackPointer( event );\n\n\tswitch ( this.state ) {\n\n\t\tcase _STATE.TOUCH_ROTATE:\n\n\t\t\tif ( this.enableRotate === false ) return;\n\n\t\t\tthis._handleTouchMoveRotate( event );\n\n\t\t\tthis.update();\n\n\t\t\tbreak;\n\n\t\tcase _STATE.TOUCH_PAN:\n\n\t\t\tif ( this.enablePan === false ) return;\n\n\t\t\tthis._handleTouchMovePan( event );\n\n\t\t\tthis.update();\n\n\t\t\tbreak;\n\n\t\tcase _STATE.TOUCH_DOLLY_PAN:\n\n\t\t\tif ( this.enableZoom === false && this.enablePan === false ) return;\n\n\t\t\tthis._handleTouchMoveDollyPan( event );\n\n\t\t\tthis.update();\n\n\t\t\tbreak;\n\n\t\tcase _STATE.TOUCH_DOLLY_ROTATE:\n\n\t\t\tif ( this.enableZoom === false && this.enableRotate === false ) return;\n\n\t\t\tthis._handleTouchMoveDollyRotate( event );\n\n\t\t\tthis.update();\n\n\t\t\tbreak;\n\n\t\tdefault:\n\n\t\t\tthis.state = _STATE.NONE;\n\n\t}\n\n}\n\nfunction onContextMenu( event ) {\n\n\tif ( this.enabled === false ) return;\n\n\tevent.preventDefault();\n\n}\n\nfunction interceptControlDown( event ) {\n\n\tif ( event.key === 'Control' ) {\n\n\t\tthis._controlActive = true;\n\n\t\tconst document = this.domElement.getRootNode(); // offscreen canvas compatibility\n\n\t\tdocument.addEventListener( 'keyup', this._interceptControlUp, { passive: true, capture: true } );\n\n\t}\n\n}\n\nfunction interceptControlUp( event ) {\n\n\tif ( event.key === 'Control' ) {\n\n\t\tthis._controlActive = false;\n\n\t\tconst document = this.domElement.getRootNode(); // offscreen canvas compatibility\n\n\t\tdocument.removeEventListener( 'keyup', this._interceptControlUp, { passive: true, capture: true } );\n\n\t}\n\n}\n\nexport { OrbitControls };\n","\r\n\r\n
\r\n \r\n
\r\n","\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n","\r\n\r\n
\r\n
Selected Node Information
\r\n\r\n
\r\n
\r\n {selection && (selection.data.text || selection.data.name || selection.data.category)}\r\n
\r\n
\r\n {#each [...objData] as [key, value]}\r\n
{key}: {value}
\r\n {/each}\r\n
\r\n
\r\n
\r\n","\r\n\r\n
\r\n

GoJS alongside 3D (with Svelte)

\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n

This sample demonstrates GoJS Diagrams alongside a 3D model made with ThreeJS.

\r\n

\r\n Three separate GoJS Diagrams observe a single model, each showing two of three coordinate\r\n planes. When Nodes are moved or resized, two-way bindings on the Node Templates transmit\r\n those changes back to the model, automatically updating the other GoJS Diagrams. The ThreeJS\r\n view is updated with a Model change listener (model.addChangedListener).\r\n

\r\n

\r\n This sample also demonstrates GoJS alongside Svelte, where one component creates a GoJS\r\n model and passes it to children components. Those components bind the model and a selection\r\n variable, to pass upwards to update the state of other diagrams and the UI. A simple node\r\n information component is included to show details about a selected object.\r\n

\r\n

\r\n The GoJS-3D project source code can be found here.\r\n

\r\n

\r\n gojs.net -\r\n see all GoJS samples\r\n

\r\n
\r\n
\r\n
\r\n"],"names":["index","_","i","pause_effects","state","items","controlled_anchor","items_map","transitions","length","pause_children","is_controlled","parent_node","clear_text_content","link","run_out_transitions","item","destroy_effect","each","node","flags","get_collection","get_key","render_fn","fallback_fn","anchor","hydrating","set_hydrate_node","get_first_child","create_text","hydrate_next","fallback","was_empty","block","collection","array","is_array","array_from","mismatch","is_else","HYDRATION_START_ELSE","remove_nodes","set_hydrating","prev","hydrate_node","HYDRATION_END","value","key","create_item","effect","active_reaction","reconcile","INERT","resume_effect","branch","pause_effect","is_inert","first","current","seen","matched","stashed","child_anchor","update_item","start","j","a","b","move","to_destroy","destroy_length","active_effect","type","internal_set","next","reactive","EACH_ITEM_REACTIVE","mutable","EACH_ITEM_IMMUTABLE","v","mutable_source","source","EACH_INDEX_REACTIVE","end","dest","next_node","get_next_sibling","root","w","_Util","t","e","s","n","r","__publicField","Util","StringBuilder","PropertyCollection","_EmptyIterator","EmptyIterator","SingletonIterator","ListIterator","List","ListIteratorBackwards","GSet","SetIterator","_GSet","MapKeySetIterator","MapKeySet","MapValueSetIterator","KeyValuePair","MapIterator","GMap","_Point","Geo","c","u","Point","_Size","Size","_Rect","d","m","g","Rect","_Margin","Margin","_Spot","Spot","_Transform","p","y","x","k","P","M","Transform","L","C","S","N","T","A","D","GeometryType","GeometryStretch","_Geometry","F","R","O","B","GeoStream","X","E","h","f","PathFigure","PathSegment","Geometry","SegmentType","_PathSegment","V","U","Y","G","InputEvent","DiagramEvent","ChangeType","_ChangedEvent","ChangedEvent","Transaction","UndoManager","Tool","Diagram","l","Adornment","WheelMode","GestureMode","ToolManager","o","HTMLInfo","_DraggingTool","DraggingOptions","Link","RelinkingTool","DraggingInfo","Group","Part","Node","DraggingTool","LinkingBaseTool","Shape","LinkingDirection","LinkingTool","Panel","ReshapingBehavior","LinkReshapingTool","ResizingTool","Placeholder","RotatingTool","ClickSelectingTool","ActionTool","ClickCreatingTool","DragSelectingTool","PanningTool","ContextMenuButtonInfo","_ContextMenuTool","GraphObject","ContextMenuTool","TextEditingAccept","TextEditingStarting","TextEditingState","_TextEditingTool","TextBlock","TextEditingTool","AnimationStyle","_AnimationManager","Animation","AnimationManager","_Animation","Brush","AnimationState","TriggerStart","_AnimationTrigger","AnimationTrigger","Layer","SVGContext","AutoScale","CycleMode","ScrollMode","CollapsePolicy","_Diagram","PartManager","Model","ThemeManager","Layout","DiagramHelper","Overview","SVGSurface","CommandHandler","AvoidsNodesRouter","CanvasSurface","z","H","W","J","DraggingNodeInfoPair","RowColumnDefinition","GridPanelSettings","Picture","PositionArray","Palette","GridLayout","OverviewDraggingTool","Stretch","Orientation","Flip","_GraphObject","GraphObjectTemplateSettings","LinkSettings","CanvasSurfaceContext","LinkElementSettings","Binding","ThemeBinding","PanelLayout","BrushType","STransform","SGradient","_CanvasSurfaceContext","ColorSpace","ColorNumbers","_Brush","_PanelLayout","PanelLayoutPosition","PanelLayoutHorizontal","PanelLayoutVertical","_PanelLayoutSpot","PanelLayoutSpot","PanelLayoutAuto","PanelLayoutTable","K","I","$","et","tt","it","ct","ot","lt","st","nt","ht","Z","ft","at","ut","gt","dt","mt","rt","q","Q","PanelLayoutTableRow","PanelLayoutTableColumn","PanelLayoutViewbox","PanelLayoutGrid","PanelLayoutLink","PanelLayoutGraduated","ViewboxStretch","_Panel","TablePanelSettings","GradPanelSettings","Sizing","_RowColumnDefinition","_Shape","ShapeTemplateSettings","GradElementSettings","Wrap","TextOverflow","TextFormat","_TextBlock","TextBlockTemplateSettings","ImageStretch","_Picture","PictureCacheArray","PictureCacheInstance","_GeoStream","LayoutConditions","_Part","PartTemplateSettings","_a","PortSpreading","_Node","NodeTemplateSettings","LinkAdjusting","Routing","Curve","_Link","Knot","LinkBundle","_PositionArray","LinkInfo","LayoutNetwork","LayoutVertex","LayoutEdge","GridAlignment","GridArrangement","GridSorting","_GridLayout","_PartManager","GraphLinksPartManager","TreePartManager","BindingMode","_Binding","_c","_b","_Model","_GraphLinksModel","GraphLinksModel","TreeModel","CircularArrangement","CircularDirection","CircularSorting","CircularNodeDiameterFormula","CircularLayout","VertexArrangement","CircularNetwork","CircularVertex","CircularEdge","ForceDirectedLayout","ForceDirectedNetwork","RandomNumberGenerator","ForceDirectedVertex","ForceDirectedEdge","LayeredDigraphCycleRemove","LayeredDigraphLayering","LayeredDigraphInit","LayeredDigraphAggressive","LayeredDigraphPack","LayeredDigraphAlign","LayeredDigraphLayout","LayeredDigraphNetwork","LayeredDigraphVertex","LayeredDigraphEdge","TreePath","TreeSorting","TreeAlignment","TreeCompaction","TreeStyle","TreeArrangement","TreeLayerStyle","TreeLayout","TreeNetwork","TreeVertex","TreeEdge","Themes","_ThemeManager","Router","oldGo","go","diagramDiv","myDiagram","axis1","axis2","selection","$.prop","$$props","onMount","coordToAxis","loc","data","newLoc","size","newSize","$.user_effect","$.bind_this","div_1","$$value","$.template_effect","$.set_text","text","REVISION","MOUSE","TOUCH","CullFaceNone","CullFaceBack","CullFaceFront","PCFShadowMap","PCFSoftShadowMap","VSMShadowMap","FrontSide","BackSide","DoubleSide","NoBlending","NormalBlending","AdditiveBlending","SubtractiveBlending","MultiplyBlending","CustomBlending","AddEquation","SubtractEquation","ReverseSubtractEquation","MinEquation","MaxEquation","ZeroFactor","OneFactor","SrcColorFactor","OneMinusSrcColorFactor","SrcAlphaFactor","OneMinusSrcAlphaFactor","DstAlphaFactor","OneMinusDstAlphaFactor","DstColorFactor","OneMinusDstColorFactor","SrcAlphaSaturateFactor","ConstantColorFactor","OneMinusConstantColorFactor","ConstantAlphaFactor","OneMinusConstantAlphaFactor","NeverDepth","AlwaysDepth","LessDepth","LessEqualDepth","EqualDepth","GreaterEqualDepth","GreaterDepth","NotEqualDepth","MultiplyOperation","MixOperation","AddOperation","NoToneMapping","LinearToneMapping","ReinhardToneMapping","CineonToneMapping","ACESFilmicToneMapping","CustomToneMapping","AgXToneMapping","NeutralToneMapping","UVMapping","CubeReflectionMapping","CubeRefractionMapping","EquirectangularReflectionMapping","EquirectangularRefractionMapping","CubeUVReflectionMapping","RepeatWrapping","ClampToEdgeWrapping","MirroredRepeatWrapping","NearestFilter","NearestMipmapNearestFilter","NearestMipmapLinearFilter","LinearFilter","LinearMipmapNearestFilter","LinearMipmapLinearFilter","UnsignedByteType","ByteType","ShortType","UnsignedShortType","IntType","UnsignedIntType","FloatType","HalfFloatType","UnsignedShort4444Type","UnsignedShort5551Type","UnsignedInt248Type","UnsignedInt5999Type","AlphaFormat","RGBFormat","RGBAFormat","LuminanceFormat","LuminanceAlphaFormat","DepthFormat","DepthStencilFormat","RedFormat","RedIntegerFormat","RGFormat","RGIntegerFormat","RGBAIntegerFormat","RGB_S3TC_DXT1_Format","RGBA_S3TC_DXT1_Format","RGBA_S3TC_DXT3_Format","RGBA_S3TC_DXT5_Format","RGB_PVRTC_4BPPV1_Format","RGB_PVRTC_2BPPV1_Format","RGBA_PVRTC_4BPPV1_Format","RGBA_PVRTC_2BPPV1_Format","RGB_ETC1_Format","RGB_ETC2_Format","RGBA_ETC2_EAC_Format","RGBA_ASTC_4x4_Format","RGBA_ASTC_5x4_Format","RGBA_ASTC_5x5_Format","RGBA_ASTC_6x5_Format","RGBA_ASTC_6x6_Format","RGBA_ASTC_8x5_Format","RGBA_ASTC_8x6_Format","RGBA_ASTC_8x8_Format","RGBA_ASTC_10x5_Format","RGBA_ASTC_10x6_Format","RGBA_ASTC_10x8_Format","RGBA_ASTC_10x10_Format","RGBA_ASTC_12x10_Format","RGBA_ASTC_12x12_Format","RGBA_BPTC_Format","RGB_BPTC_SIGNED_Format","RGB_BPTC_UNSIGNED_Format","RED_RGTC1_Format","SIGNED_RED_RGTC1_Format","RED_GREEN_RGTC2_Format","SIGNED_RED_GREEN_RGTC2_Format","BasicDepthPacking","RGBADepthPacking","TangentSpaceNormalMap","ObjectSpaceNormalMap","NoColorSpace","SRGBColorSpace","LinearSRGBColorSpace","LinearTransfer","SRGBTransfer","KeepStencilOp","AlwaysStencilFunc","NeverCompare","LessCompare","EqualCompare","LessEqualCompare","GreaterCompare","NotEqualCompare","GreaterEqualCompare","AlwaysCompare","StaticDrawUsage","GLSL3","WebGLCoordinateSystem","WebGPUCoordinateSystem","EventDispatcher","listener","listeners","listenerArray","event","_lut","_seed","DEG2RAD","RAD2DEG","generateUUID","d0","d1","d2","d3","clamp","min","max","euclideanModulo","mapLinear","a1","a2","b1","b2","inverseLerp","lerp","damp","lambda","pingpong","smoothstep","smootherstep","randInt","low","high","randFloat","randFloatSpread","range","seededRandom","degToRad","degrees","radToDeg","radians","isPowerOfTwo","ceilPowerOfTwo","floorPowerOfTwo","setQuaternionFromProperEuler","order","cos","sin","c2","s2","c13","s13","c1_3","s1_3","c3_1","s3_1","denormalize","normalize","MathUtils","Vector2","scalar","minVal","maxVal","denominator","theta","dx","dy","alpha","v1","v2","offset","attribute","center","angle","Matrix3","n11","n12","n13","n21","n22","n23","n31","n32","n33","te","me","xAxis","yAxis","zAxis","ae","be","a11","a12","a13","a21","a22","a23","a31","a32","a33","b11","b12","b13","b21","b22","b23","b31","b32","b33","t11","t12","t13","det","detInv","tmp","matrix4","tx","ty","sx","sy","rotation","cx","cy","_m3","matrix","arrayNeedsUint32","createElementNS","name","createCanvasElement","canvas","_cache","warnOnce","message","probeAsync","gl","sync","interval","resolve","reject","probe","toNormalizedProjectionMatrix","projectionMatrix","toReversedProjectionMatrix","LINEAR_REC709_TO_XYZ","XYZ_TO_LINEAR_REC709","createColorManagement","ColorManagement","color","sourceColorSpace","targetColorSpace","SRGBToLinear","LinearToSRGB","colorSpace","target","colorSpaces","targetMatrix","REC709_PRIMARIES","REC709_LUMINANCE_COEFFICIENTS","D65","_canvas","ImageUtils","image","context","imageData","_sourceId","Source","meta","isRootObject","output","url","serializeImage","_textureId","Texture","mapping","wrapS","wrapT","magFilter","minFilter","format","anisotropy","uv","Vector4","m11","m12","m13","m21","m22","m23","m31","m32","m33","xx","yy","zz","xy","xz","yz","RenderTarget","width","height","options","texture","count","depth","il","WebGLRenderTarget","DataArrayTexture","layerIndex","Data3DTexture","Quaternion","dst","dstOffset","src0","srcOffset0","src1","srcOffset1","x0","y0","z0","w0","x1","y1","z1","w1","dir","sqrSin","len","tDir","quaternion","euler","update","c1","c3","s1","s3","axis","halfAngle","trace","vFrom","vTo","step","qax","qay","qaz","qaw","qbx","qby","qbz","qbw","qb","cosHalfTheta","sqrSinHalfTheta","sinHalfTheta","halfTheta","ratioA","ratioB","qa","theta1","theta2","r1","r2","callback","Vector3","_quaternion$4","vx","vy","vz","qx","qy","qz","qw","tz","camera","ax","ay","az","bx","by","bz","planeNormal","_vector$c","normal","dz","radius","phi","sinPhiRadius","sz","Box3","_vector$b","points","halfSize","object","precise","box","point","vector","geometry","positionAttribute","_box$4","children","sphere","plane","triangle","_center","_extents","_v0$2","_v1$7","_v2$4","_f0","_f1","_f2","axes","satForAxes","_triangleNormal","_points","_testAxis","v0","extents","p0","p1","p2","_box$3","_v1$6","_v2$3","Sphere","optionalCenter","maxRadiusSq","radiusSum","deltaLengthSq","lengthSq","delta","_vector$a","_segCenter","_segDir","_diff","_edge1","_edge2","_normal$1","Ray","origin","direction","ray","directionDistance","optionalPointOnRay","optionalPointOnSegment","segExtent","a01","b0","s0","sqrDist","extDet","invDet","tca","radius2","thc","t0","t1","distToPoint","tmin","tmax","tymin","tymax","tzmin","tzmax","invdirx","invdiry","invdirz","backfaceCulling","DdN","sign","DdQxE2","DdE1xQ","QdN","Matrix4","n14","n24","n34","n41","n42","n43","n44","scaleX","_v1$5","scaleY","scaleZ","af","bf","ce","cf","de","df","ac","ad","bc","bd","_zero","_one","eye","up","_z","_x","_y","a14","a24","a34","a41","a42","a43","a44","b14","b24","b34","b41","b42","b43","b44","t14","scaleXSq","scaleYSq","scaleZSq","yx","zx","zy","position","scale","x2","y2","z2","wx","wy","wz","_m1$2","invSX","invSY","invSZ","left","right","top","bottom","near","far","coordinateSystem","zInv","_matrix$2","_quaternion$3","Euler","newOrder","Layers","channel","layers","_object3DId","_v1$4","_q1","_m1$1","_target","_position$3","_scale$2","_quaternion$2","_xAxis","_yAxis","_zAxis","_addedEvent","_removedEvent","_childaddedEvent","_childremovedEvent","Object3D","onRotationChange","onQuaternionChange","distance","parent","id","result","force","updateParents","updateChildren","bound","serialize","library","element","parameters","shapes","shape","uuids","animation","geometries","extractFromCache","materials","textures","images","skeletons","animations","nodes","cache","values","recursive","child","_v0$1","_v1$3","_v2$2","_v3$2","_vab","_vac","_vbc","_vap","_vbp","_vcp","_v40","_v41","_v42","Triangle","targetLengthSq","dot00","dot01","dot02","dot11","dot12","denom","invDenom","p3","v3","attr","i1","i2","i3","barycoord","i0","d4","vc","d5","d6","vb","va","_colorKeywords","_hslA","_hslB","hue2rgb","Color","hex","style","handleAlpha","string","components","_color","hue","saturation","lightness","color1","color2","_materialId","Material","newValue","currentValue","srcPlanes","dstPlanes","MeshBasicMaterial","_vector$9","_vector2$1","BufferAttribute","itemSize","normalized","index1","index2","component","Uint16BufferAttribute","Uint32BufferAttribute","Float32BufferAttribute","_id$1","_m1","_obj","_offset","_box$2","_boxMorphTargets","_vector$8","BufferGeometry","indirect","materialIndex","normalMatrix","tangent","morphAttributesPosition","morphAttribute","morphTargetsRelative","jl","attributes","normalAttribute","uvAttribute","tangentAttribute","tan1","tan2","vA","vB","vC","uvA","uvB","uvC","sdir","tdir","handleTriangle","groups","group","tmp2","n2","handleVertex","pA","pB","pC","nA","nB","nC","cb","ab","normals","convertBufferAttribute","indices","array2","geometry2","newAttribute","morphAttributes","morphArray","hasMorphAttributes","attributeArray","boundingSphere","boundingBox","_inverseMatrix$3","_ray$3","_sphere$6","_sphereHitAt","_vA$1","_vB$1","_vC$1","_tempA","_morphA","_intersectionPoint","_intersectionPointWorld","Mesh","material","keys","ml","morphPosition","morphInfluences","influence","raycaster","intersects","matrixWorld","rayLocalSpace","intersection","uv1","drawRange","groupMaterial","checkGeometryIntersection","checkIntersection$1","intersect","face","BoxGeometry","widthSegments","heightSegments","depthSegments","scope","vertices","uvs","numberOfVertices","groupStart","buildPlane","udir","vdir","gridX","gridY","segmentWidth","segmentHeight","widthHalf","heightHalf","depthHalf","gridX1","gridY1","vertexCounter","groupCount","iy","ix","cloneUniforms","src","property","mergeUniforms","uniforms","merged","cloneUniformsGroups","getUnlitUniformColorSpace","renderer","currentRenderTarget","UniformsUtils","default_vertex","default_fragment","ShaderMaterial","extensions","Camera","_v3$1","_minTarget","_maxTarget","PerspectiveCamera","fov","aspect","focalLength","vExtentSlope","minTarget","maxTarget","fullWidth","fullHeight","view","skew","CubeCamera","renderTarget","cameraPX","cameraNX","cameraPY","cameraNY","cameraPZ","cameraNZ","cameras","scene","activeMipmapLevel","currentActiveCubeFace","currentActiveMipmapLevel","currentXrEnabled","generateMipmaps","CubeTexture","WebGLCubeRenderTarget","shader","mesh","currentMinFilter","stencil","Scene","_vector1","_vector2","_normalMatrix","Plane","constant","inverseNormalLength","line","startSign","endSign","optionalNormalMatrix","referencePoint","_sphere$3","_vector$6","Frustum","p4","p5","planes","frustum","me0","me1","me2","me3","me4","me5","me6","me7","me8","me9","me10","me11","me12","me13","me14","me15","sprite","negRadius","DepthTexture","PlaneGeometry","width_half","height_half","segment_width","segment_height","MeshLambertMaterial","MeshDepthMaterial","MeshDistanceMaterial","Light","intensity","_projScreenMatrix$1","_lightPositionWorld$1","_lookTarget$1","LightShadow","light","shadowCamera","shadowMatrix","viewportIndex","OrthographicCamera","scaleW","scaleH","DirectionalLightShadow","DirectionalLight","AmbientLight","ArrayCamera","Spherical","other","Controls","domElement","getByteLength","typeByteLength","getTextureTypeByteLength","WebGLAnimation","isAnimating","animationLoop","requestId","onAnimationFrame","time","frame","WebGLAttributes","buffers","createBuffer","bufferType","usage","buffer","updateBuffer","updateRanges","mergeIndex","previousRange","get","remove","cached","alphahash_fragment","alphahash_pars_fragment","alphamap_fragment","alphamap_pars_fragment","alphatest_fragment","alphatest_pars_fragment","aomap_fragment","aomap_pars_fragment","batching_pars_vertex","batching_vertex","begin_vertex","beginnormal_vertex","bsdfs","iridescence_fragment","bumpmap_pars_fragment","clipping_planes_fragment","clipping_planes_pars_fragment","clipping_planes_pars_vertex","clipping_planes_vertex","color_fragment","color_pars_fragment","color_pars_vertex","color_vertex","common","cube_uv_reflection_fragment","defaultnormal_vertex","displacementmap_pars_vertex","displacementmap_vertex","emissivemap_fragment","emissivemap_pars_fragment","colorspace_fragment","colorspace_pars_fragment","envmap_fragment","envmap_common_pars_fragment","envmap_pars_fragment","envmap_pars_vertex","envmap_vertex","fog_vertex","fog_pars_vertex","fog_fragment","fog_pars_fragment","gradientmap_pars_fragment","lightmap_pars_fragment","lights_lambert_fragment","lights_lambert_pars_fragment","lights_pars_begin","envmap_physical_pars_fragment","lights_toon_fragment","lights_toon_pars_fragment","lights_phong_fragment","lights_phong_pars_fragment","lights_physical_fragment","lights_physical_pars_fragment","lights_fragment_begin","lights_fragment_maps","lights_fragment_end","logdepthbuf_fragment","logdepthbuf_pars_fragment","logdepthbuf_pars_vertex","logdepthbuf_vertex","map_fragment","map_pars_fragment","map_particle_fragment","map_particle_pars_fragment","metalnessmap_fragment","metalnessmap_pars_fragment","morphinstance_vertex","morphcolor_vertex","morphnormal_vertex","morphtarget_pars_vertex","morphtarget_vertex","normal_fragment_begin","normal_fragment_maps","normal_pars_fragment","normal_pars_vertex","normal_vertex","normalmap_pars_fragment","clearcoat_normal_fragment_begin","clearcoat_normal_fragment_maps","clearcoat_pars_fragment","iridescence_pars_fragment","opaque_fragment","packing","premultiplied_alpha_fragment","project_vertex","dithering_fragment","dithering_pars_fragment","roughnessmap_fragment","roughnessmap_pars_fragment","shadowmap_pars_fragment","shadowmap_pars_vertex","shadowmap_vertex","shadowmask_pars_fragment","skinbase_vertex","skinning_pars_vertex","skinning_vertex","skinnormal_vertex","specularmap_fragment","specularmap_pars_fragment","tonemapping_fragment","tonemapping_pars_fragment","transmission_fragment","transmission_pars_fragment","uv_pars_fragment","uv_pars_vertex","uv_vertex","worldpos_vertex","vertex$h","fragment$h","vertex$g","fragment$g","vertex$f","fragment$f","vertex$e","fragment$e","vertex$d","fragment$d","vertex$c","fragment$c","vertex$b","fragment$b","vertex$a","fragment$a","vertex$9","fragment$9","vertex$8","fragment$8","vertex$7","fragment$7","vertex$6","fragment$6","vertex$5","fragment$5","vertex$4","fragment$4","vertex$3","fragment$3","vertex$2","fragment$2","vertex$1","fragment$1","ShaderChunk","UniformsLib","ShaderLib","_rgb","_e1$1","WebGLBackground","cubemaps","cubeuvmaps","objects","premultipliedAlpha","clearColor","clearAlpha","planeMesh","boxMesh","currentBackground","currentBackgroundVersion","currentTonemapping","getBackground","background","render","forceClear","setClear","environmentBlendMode","addToRenderList","renderList","dispose","WebGLBindingStates","maxVertexAttributes","bindingStates","defaultState","createBindingState","currentState","forceUpdate","setup","program","updateBuffers","getBindingState","bindVertexArrayObject","needsUpdate","saveCache","setupVertexAttributes","createVertexArrayObject","vao","deleteVertexArrayObject","wireframe","programMap","stateMap","newAttributes","enabledAttributes","attributeDivisors","cachedAttributes","geometryAttributes","attributesNum","programAttributes","cachedAttribute","geometryAttribute","initAttributes","enableAttribute","enableAttributeAndDivisor","meshPerAttribute","disableUnusedAttributes","vertexAttribPointer","stride","integer","materialDefaultAttributeValues","programAttribute","bytesPerElement","reset","geometryId","programId","releaseStatesOfGeometry","releaseStatesOfProgram","resetDefaultState","WebGLBufferRenderer","info","mode","setMode","renderInstances","primcount","renderMultiDraw","starts","counts","drawCount","elementCount","renderMultiDrawInstances","extension","WebGLCapabilities","utils","maxAnisotropy","getMaxAnisotropy","textureFormatReadable","textureFormat","textureTypeReadable","textureType","halfFloatSupportedByExt","getMaxPrecision","precision","maxPrecision","logarithmicDepthBuffer","reverseDepthBuffer","maxTextures","maxVertexTextures","maxTextureSize","maxCubemapSize","maxAttributes","maxVertexUniforms","maxVaryings","maxFragmentUniforms","vertexTextures","maxSamples","WebGLClipping","properties","globalState","numGlobalPlanes","localClippingEnabled","renderingShadows","viewNormalMatrix","uniform","enableLocalClipping","enabled","projectPlanes","useCache","clipIntersection","clipShadows","materialProperties","resetGlobalState","nGlobal","lGlobal","dstArray","skipTransform","nPlanes","flatSize","viewMatrix","i4","WebGLCubeMaps","mapTextureMapping","cubemap","onTextureDispose","LOD_MIN","EXTRA_LOD_SIGMA","MAX_SAMPLES","_flatCamera","_clearColor","_oldTarget","_oldActiveCubeFace","_oldActiveMipmapLevel","_oldXrEnabled","PHI","INV_PHI","_axisDirections","PMREMGenerator","sigma","cubeUVRenderTarget","equirectangular","_getCubemapMaterial","_getEquirectMaterial","cubeSize","outputTarget","_setViewport","params","_createRenderTarget","_lodMax","_createPlanes","_getBlurShader","tmpMesh","cubeCamera","upSign","forwardSign","originalAutoClear","toneMapping","backgroundMaterial","backgroundBox","useSolidColor","col","isCubeTexture","autoClear","poleAxis","lodIn","lodOut","pingPongRenderTarget","targetIn","targetOut","sigmaRadians","blurMaterial","STANDARD_DEVIATIONS","blurMesh","blurUniforms","pixels","radiansPerPixel","sigmaPixels","samples","weights","sum","weight","outputSize","lodMax","lodPlanes","sizeLods","sigmas","lod","totalLods","sizeLod","texelSize","cubeFaces","positionSize","uvSize","faceIndexSize","faceIndex","coordinates","fill","_getCommonVertexShader","WebGLCubeUVMaps","cubeUVmaps","pmremGenerator","isEquirectMap","isCubeMap","currentPMREMVersion","isCubeTextureComplete","cubemapUV","WebGLExtensions","getExtension","WebGLGeometries","wireframeAttributes","onGeometryDispose","updateWireframeAttribute","geometryIndex","geometryPosition","version","previousAttribute","getWireframeAttribute","currentAttribute","WebGLIndexedBufferRenderer","setIndex","WebGLInfo","memory","instanceCount","WebGLMorphtargets","capabilities","morphTextures","morph","objectInfluences","morphTargetsCount","entry","disposeTexture","hasMorphPosition","hasMorphNormals","hasMorphColors","morphTargets","morphNormals","morphColors","vertexDataCount","vertexDataStride","morphTarget","morphNormal","morphColor","morphInfluencesSum","morphBaseInfluence","WebGLObjects","updateMap","buffergeometry","onInstancedMeshDispose","skeleton","instancedMesh","emptyTexture","emptyShadowTexture","emptyArrayTexture","empty3dTexture","emptyCubeTexture","arrayCacheF32","arrayCacheI32","mat4array","mat3array","mat2array","flatten","nBlocks","blockSize","firstElem","arraysEqual","copyArray","allocTexUnits","setValueV1f","setValueV2f","setValueV3f","setValueV4f","setValueM2","elements","setValueM3","setValueM4","setValueV1i","setValueV2i","setValueV3i","setValueV4i","setValueV1ui","setValueV2ui","setValueV3ui","setValueV4ui","setValueT1","unit","emptyTexture2D","setValueT3D1","setValueT6","setValueT2DArray1","getSingularSetter","setValueV1fArray","setValueV2fArray","setValueV3fArray","setValueV4fArray","setValueM2Array","setValueM3Array","setValueM4Array","setValueV1iArray","setValueV2iArray","setValueV3iArray","setValueV4iArray","setValueV1uiArray","setValueV2uiArray","setValueV3uiArray","setValueV4uiArray","setValueT1Array","units","setValueT3DArray","setValueT6Array","setValueT2DArrayArray","getPureArraySetter","SingleUniform","activeInfo","addr","PureArrayUniform","StructuredUniform","seq","RePathPart","addUniform","container","uniformObject","parseUniform","path","pathLength","match","matchEnd","idIsIndex","subscript","WebGLUniforms","WebGLShader","COMPLETION_STATUS_KHR","programIdCount","handleSource","errorLine","lines","lines2","from","to","_m0","getEncodingComponents","encodingMatrix","getShaderErrors","status","errors","errorMatches","getTexelEncodingFunction","functionName","getToneMappingFunction","toneMappingName","_v0","getLuminanceFunction","generateVertexExtensions","filterEmptyLine","generateDefines","defines","chunks","fetchAttributeLocations","locationSize","replaceLightNums","numSpotLightCoords","replaceClippingPlaneNums","includePattern","resolveIncludes","includeReplacer","shaderChunkMap","include","newInclude","unrollLoopPattern","unrollLoops","loopReplacer","snippet","generatePrecision","precisionstring","generateShadowMapTypeDefine","shadowMapTypeDefine","generateEnvMapTypeDefine","envMapTypeDefine","generateEnvMapModeDefine","envMapModeDefine","generateEnvMapBlendingDefine","envMapBlendingDefine","generateCubeUVSize","imageHeight","maxMip","texelHeight","WebGLProgram","cacheKey","vertexShader","fragmentShader","envMapCubeUVSize","customVertexExtensions","customDefines","prefixVertex","prefixFragment","versionString","vertexGlsl","fragmentGlsl","glVertexShader","glFragmentShader","onFirstUse","self","programLog","vertexLog","fragmentLog","runnable","haveDiagnostics","vertexErrors","fragmentErrors","cachedUniforms","programReady","_id","WebGLShaderCache","vertexShaderStage","fragmentShaderStage","materialShaders","shaderStage","set","code","stage","WebGLShaderStage","WebGLPrograms","clipping","_programLayers","_customShaders","_activeChannels","programs","SUPPORTS_VERTEX_TEXTURES","shaderIDs","getChannel","getParameters","lights","shadows","fog","environment","envMap","envMapCubeUVHeight","shaderID","morphTextureStride","customVertexShaderID","customFragmentShaderID","IS_INSTANCEDMESH","IS_BATCHEDMESH","HAS_MAP","HAS_MATCAP","HAS_ENVMAP","HAS_AOMAP","HAS_LIGHTMAP","HAS_BUMPMAP","HAS_NORMALMAP","HAS_DISPLACEMENTMAP","HAS_EMISSIVEMAP","HAS_METALNESSMAP","HAS_ROUGHNESSMAP","HAS_ANISOTROPY","HAS_CLEARCOAT","HAS_DISPERSION","HAS_IRIDESCENCE","HAS_SHEEN","HAS_TRANSMISSION","HAS_ANISOTROPYMAP","HAS_CLEARCOATMAP","HAS_CLEARCOAT_NORMALMAP","HAS_CLEARCOAT_ROUGHNESSMAP","HAS_IRIDESCENCEMAP","HAS_IRIDESCENCE_THICKNESSMAP","HAS_SHEEN_COLORMAP","HAS_SHEEN_ROUGHNESSMAP","HAS_SPECULARMAP","HAS_SPECULAR_COLORMAP","HAS_SPECULAR_INTENSITYMAP","HAS_TRANSMISSIONMAP","HAS_THICKNESSMAP","HAS_GRADIENTMAP","HAS_ALPHAMAP","HAS_ALPHATEST","HAS_ALPHAHASH","HAS_EXTENSIONS","getProgramCacheKey","getProgramCacheKeyParameters","getProgramCacheKeyBooleans","getUniforms","acquireProgram","pl","preexistingProgram","releaseProgram","releaseShaderCache","WebGLProperties","has","map","painterSortStable","reversePainterSortStable","WebGLRenderList","renderItems","renderItemsIndex","opaque","transmissive","transparent","init","getNextRenderItem","groupOrder","renderItem","push","unshift","sort","customOpaqueSort","customTransparentSort","finish","WebGLRenderLists","lists","renderCallDepth","listArray","list","UniformsCache","ShadowUniformsCache","nextVersion","shadowCastingAndTexturingLightsFirst","lightA","lightB","WebGLLights","shadowCache","vector3","matrix42","directionalLength","pointLength","spotLength","rectAreaLength","hemiLength","numDirectionalShadows","numPointShadows","numSpotShadows","numSpotMaps","numSpotShadowsWithMaps","numLightProbes","shadowMap","shadow","shadowUniforms","hash","setupView","WebGLRenderState","lightsArray","shadowsArray","pushLight","pushShadow","shadowLight","setupLights","setupLightsView","WebGLRenderStates","renderStates","renderStateArray","renderState","vertex","fragment","WebGLShadowMap","_frustum","_shadowMapSize","_viewportSize","_viewport","_depthMaterial","_distanceMaterial","_materialCache","_maxTextureSize","shadowSide","shadowMaterialVertical","shadowMaterialHorizontal","fullScreenTri","fullScreenMesh","_previousType","activeCubeFace","_state","toVSM","fromVSM","shadowFrameExtents","pars","viewportCount","vp","viewport","renderObject","VSMPass","getDepthMaterial","customMaterial","keyA","keyB","materialsForVariant","cachedMaterial","onMaterialDispose","kl","depthMaterial","uuid","reversedFuncs","WebGLState","ColorBuffer","locked","currentColorMask","currentColorClear","colorMask","lock","DepthBuffer","reversed","currentDepthMask","currentDepthFunc","currentDepthClear","ext","oldDepth","depthTest","enable","disable","depthMask","depthFunc","StencilBuffer","currentStencilMask","currentStencilFunc","currentStencilRef","currentStencilFuncMask","currentStencilFail","currentStencilZFail","currentStencilZPass","currentStencilClear","stencilTest","stencilMask","stencilFunc","stencilRef","stencilFail","stencilZFail","stencilZPass","colorBuffer","depthBuffer","stencilBuffer","uboBindings","uboProgramMap","enabledCapabilities","currentBoundFramebuffers","currentDrawbuffers","defaultDrawbuffers","currentProgram","currentBlendingEnabled","currentBlending","currentBlendEquation","currentBlendSrc","currentBlendDst","currentBlendEquationAlpha","currentBlendSrcAlpha","currentBlendDstAlpha","currentBlendColor","currentBlendAlpha","currentPremultipledAlpha","currentFlipSided","currentCullFace","currentLineWidth","currentPolygonOffsetFactor","currentPolygonOffsetUnits","lineWidthAvailable","glVersion","currentTextureSlot","currentBoundTextures","scissorParam","viewportParam","currentScissor","currentViewport","createTexture","dimensions","emptyTextures","setFlipSided","setCullFace","setBlending","bindFramebuffer","framebuffer","drawBuffers","useProgram","equationToGL","factorToGL","blending","blendEquation","blendSrc","blendDst","blendEquationAlpha","blendSrcAlpha","blendDstAlpha","blendColor","blendAlpha","setMaterial","frontFaceCW","flipSided","stencilWrite","setPolygonOffset","cullFace","setLineWidth","polygonOffset","factor","setScissorTest","scissorTest","activeTexture","webglSlot","bindTexture","webglType","webglTexture","boundTexture","unbindTexture","compressedTexImage2D","error","compressedTexImage3D","texSubImage2D","texSubImage3D","compressedTexSubImage2D","compressedTexSubImage3D","texStorage2D","texStorage3D","texImage2D","texImage3D","scissor","updateUBOMapping","uniformsGroup","blockIndex","uniformBlockBinding","WebGLTextures","_gl","multisampledRTTExt","supportsInvalidateFramebuffer","_imageDimensions","_videoTextures","_sources","useOffscreenCanvas","createCanvas","resizeImage","needsNewCanvas","maxSize","getDimensions","textureNeedsGenerateMipmaps","generateMipmap","getTargetType","getInternalFormat","internalFormatName","glFormat","glType","forceLinearTransfer","internalFormat","transfer","getInternalDepthFormat","useStencil","depthType","glInternalFormat","getMipLevels","deallocateTexture","onRenderTargetDispose","deallocateRenderTarget","textureProperties","webglTextures","deleteTexture","renderTargetProperties","level","attachmentProperties","textureUnits","resetTextureUnits","allocateTextureUnit","textureUnit","getTextureCacheKey","setTexture2D","slot","updateVideoTexture","uploadTexture","setTexture2DArray","setTexture3D","setTextureCube","uploadCubeTexture","wrappingToGL","filterToGL","compareToGL","setTextureParameters","initTexture","forceUpload","textureCacheKey","sourceProperties","workingPrimaries","texturePrimaries","unpackConversion","verifyColorSpace","mipmap","mipmaps","useTexStorage","allocateMemory","dataReady","levels","layerByteLength","layerData","isCompressed","isDataTexture","cubeImage","mipmapImage","setupFrameBufferTexture","attachment","textureTarget","useMultisampledRTT","getRenderTargetSamples","setupRenderBufferStorage","renderbuffer","isMultisample","depthTexture","glAttachmentType","setupDepthTexture","webglDepthTexture","setupDepthRenderbuffer","isCube","disposeEvent","rebindTextures","colorTexture","setupRenderTarget","isMultipleRenderTargets","glTextureType","updateRenderTargetMipmap","targetType","invalidationArrayRead","invalidationArrayDraw","updateMultisampleRenderTarget","mask","depthStyle","WebGLUtils","convert","_moveEvent","WebXRController","inputSource","hand","inputjoint","referenceSpace","inputPose","gripPose","handPose","targetRay","grip","jointPose","joint","indexTip","thumbTip","distanceToPinch","threshold","_occlusion_vertex","_occlusion_fragment","WebXRDepthSensing","depthData","texProps","cameraXR","WebXRManager","session","framebufferScaleFactor","referenceSpaceType","foveation","customReferenceSpace","pose","glBinding","glProjLayer","glBaseLayer","xrFrame","depthSensing","initialRenderTarget","newRenderTarget","controllers","controllerInputSources","currentSize","currentPixelRatio","cameraL","cameraR","_currentDepthNear","_currentDepthFar","controller","onSessionEvent","controllerIndex","onSessionEnd","onInputSourcesChange","space","depthFormat","glDepthFormat","projectionlayerInit","layerInit","cameraLPos","cameraRPos","setProjectionFromUnion","ipd","projL","projR","topFov","bottomFov","leftFov","rightFov","zOffset","xOffset","near2","far2","left2","right2","top2","bottom2","updateCamera","depthNear","depthFar","updateUserCamera","onAnimationFrameCallback","views","cameraXRNeedsUpdate","glSubImage","enabledFeatures","_e1","WebGLMaterials","refreshTransformUniform","refreshFogUniforms","refreshMaterialUniforms","pixelRatio","transmissionRenderTarget","refreshUniformsCommon","refreshUniformsToon","refreshUniformsPhong","refreshUniformsStandard","refreshUniformsPhysical","refreshUniformsMatcap","refreshUniformsDistance","refreshUniformsLine","refreshUniformsDash","refreshUniformsPoints","refreshUniformsSprites","envMapRotation","WebGLUniformsGroups","updateList","allocatedBindingPoints","maxBindingPoints","bind","webglProgram","prepareUniformsGroup","onUniformsGroupsDispose","updateBufferData","bindingPointIndex","allocateBindingPointIndex","uniformArray","hasUniformChanged","arrayOffset","getUniformSize","indexArray","indexString","cachedObject","chunkSize","chunkOffset","chunkPadding","chunkStart","WebGLRenderer","antialias","preserveDrawingBuffer","powerPreference","failIfMajorPerformanceCaveat","_alpha","uintClearColor","intClearColor","currentRenderList","currentRenderState","renderListStack","renderStateStack","_this","_isContextLost","_currentActiveCubeFace","_currentActiveMipmapLevel","_currentRenderTarget","_currentMaterialId","_currentCamera","_currentViewport","_currentScissor","_currentScissorTest","_currentClearColor","_currentClearAlpha","_width","_height","_pixelRatio","_opaqueSort","_transparentSort","_scissor","_scissorTest","_clippingEnabled","_localClippingEnabled","_currentProjectionMatrix","_projScreenMatrix","_vector3","_vector4","_emptyScene","_renderBackground","getTargetPixelRatio","getContext","contextName","contextAttributes","onContextLost","onContextRestore","onContextCreationError","programCache","renderLists","morphtargets","bufferRenderer","indexedBufferRenderer","uniformsGroups","initGLContext","xr","updateStyle","boolean","method","bits","isIntegerFormat","targetFormat","isUnsignedType","onXRSessionStart","onXRSessionEnd","infoAutoReset","shadowMapEnabled","shadowMapAutoUpdate","shadowMapNeedsUpdate","shadowMapType","deallocateMaterial","releaseMaterialProgramReferences","setProgram","rangeFactor","drawStart","drawEnd","lineWidth","maxInstanceCount","prepareMaterial","getProgram","targetScene","material2","checkMaterialsReady","depthSensingMesh","projectObject","opaqueObjects","transmissiveObjects","camera2","renderTransmissionPass","renderScene","sortObjects","transparentObjects","renderObjects","activeViewport","currentToneMapping","currentCameraViewport","renderTargetNeedsUpdate","currentSide","overrideMaterial","lightsStateVersion","programCacheKey","updateCommonMaterialProperties","materialNeedsLights","getUniformList","progUniforms","vertexAlphas","vertexTangents","needsProgramChange","refreshProgram","refreshMaterial","refreshLights","p_uniforms","m_uniforms","uCamPos","markUniformsLightsNeedsUpdate","defaultFramebuffer","_scratchFrameBuffer","useDefaultFramebuffer","isRenderTarget3D","__webglFramebuffer","layer","activeCubeFaceIndex","glBuffer","currFramebuffer","levelScale","_srcFramebuffer","_dstFramebuffer","srcTexture","dstTexture","srcRegion","dstPosition","srcLevel","dstLevel","minX","minY","minZ","dstX","dstY","dstZ","glTarget","currentUnpackRowLen","currentUnpackImageHeight","currentUnpackSkipPixels","currentUnpackSkipRows","currentUnpackSkipImages","isSrc3D","isDst3D","srcTextureProperties","dstTextureProperties","srcRenderTargetProperties","dstRenderTargetProperties","_changeEvent","_startEvent","_endEvent","_ray","_plane","_TILT_LIMIT","_v","_twoPI","_STATE","_EPS","OrbitControls","onPointerMove","onPointerDown","onPointerUp","onContextMenu","onMouseWheel","onKeyDown","onTouchStart","onTouchMove","onMouseDown","onMouseMove","interceptControlDown","interceptControlUp","deltaTime","zoomChanged","prevRadius","newRadius","radiusDelta","mouseBefore","prevZoom","mouseAfter","normalizedDelta","objectMatrix","deltaX","deltaY","targetDistance","dollyScale","rect","dist","centerX","centerY","pointerId","newEvent","mouseAction","selectionColor","canvasElement","outerDiv","controls","THREE.Scene","THREE.Color","THREE.PerspectiveCamera","dirLight1","THREE.DirectionalLight","dirLight2","ambientLight","THREE.AmbientLight","THREE.Vector3","currentSelectedObject","resizeCanvasToDisplaySize","animate","createScene","el","THREE.WebGLRenderer","sizeCube","cube","addObject","isSelected","THREE.BoxGeometry","THREE.MeshLambertMaterial","THREE.Mesh","listenProps","prop","obj","updateColorByKey","div","myModel","objData","$.derived","$.index","$$anchor","$$item","$.get","text_1"],"mappings":"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AGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,UAAEA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAA8DA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAGA,EAAA,WAAoB,GAAGyI,GAAQ,KAAKA,G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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2DAE7BC,GAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAE3BC,GAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEhCC,GAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAE1BC,GAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAExBC,GAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEnBC,GAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAE3BC,GAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,QAElBC,GAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEvBC,GAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAElBC,GAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEpBC,GAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEvBC,GAA4B;AAAA;AAAA,QAE5BC,GAAuB;AAAA;AAAA,QAEvBC,GAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wDAE5BC,GAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAExBC,GAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAE7BC,GAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEnBC,GAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEjBC,GAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEZC,GAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEtB,MAAMC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;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","x_google_ignoreList":[0,1,3,4,5]}