@vouchfor/embeds 0.0.0-experiment.8c5a3f8 → 0.0.0-experiment.8cafed9
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/es/browser-DfO9Pnu7.js +921 -0
- package/dist/es/browser-DfO9Pnu7.js.map +1 -0
- package/dist/es/embeds.js +1 -1599
- package/dist/es/embeds.js.map +1 -1
- package/dist/es/index-5G8orrrP.js +2609 -0
- package/dist/es/index-5G8orrrP.js.map +1 -0
- package/dist/es/src/components/DialogEmbed/DialogOverlay.d.ts +20 -0
- package/dist/es/src/components/DialogEmbed/DialogPortal.d.ts +36 -0
- package/dist/es/src/components/DialogEmbed/index.d.ts +38 -0
- package/dist/es/src/components/PlayerEmbed/controllers/event-forwarder.d.ts +15 -0
- package/dist/es/src/components/{Embed → PlayerEmbed}/controllers/fetcher.d.ts +5 -4
- package/dist/es/src/components/{Embed/controllers/tracking.d.ts → PlayerEmbed/controllers/tracking/index.d.ts} +14 -11
- package/dist/es/src/components/PlayerEmbed/controllers/tracking/utils.d.ts +17 -0
- package/dist/es/src/components/{Embed → PlayerEmbed}/index.d.ts +28 -21
- package/dist/es/src/components/PlayerEmbed/tests/data.d.ts +3 -0
- package/dist/es/src/index.d.ts +2 -1
- package/dist/iife/dialog-embed/browser-DCzTItVw.js +429 -0
- package/dist/iife/dialog-embed/browser-DCzTItVw.js.map +1 -0
- package/dist/iife/dialog-embed/embed.iife.js +1750 -0
- package/dist/iife/dialog-embed/embed.iife.js.map +1 -0
- package/dist/iife/dialog-embed/embed.js +5 -0
- package/dist/iife/dialog-embed/embed.js.map +1 -0
- package/dist/iife/dialog-embed/index-CgdXxP5z.js +27698 -0
- package/dist/iife/dialog-embed/index-CgdXxP5z.js.map +1 -0
- package/dist/iife/dialog-embed/src/components/DialogEmbed/DialogOverlay.d.ts +20 -0
- package/dist/iife/dialog-embed/src/components/DialogEmbed/DialogPortal.d.ts +36 -0
- package/dist/iife/dialog-embed/src/components/DialogEmbed/index.d.ts +38 -0
- package/dist/iife/dialog-embed/src/components/PlayerEmbed/controllers/event-forwarder.d.ts +15 -0
- package/dist/iife/dialog-embed/src/components/PlayerEmbed/controllers/fetcher.d.ts +14 -0
- package/dist/iife/dialog-embed/src/components/PlayerEmbed/controllers/tracking/index.d.ts +36 -0
- package/dist/iife/dialog-embed/src/components/PlayerEmbed/controllers/tracking/utils.d.ts +17 -0
- package/dist/iife/dialog-embed/src/components/PlayerEmbed/index.d.ts +74 -0
- package/dist/iife/dialog-embed/src/components/PlayerEmbed/tests/data.d.ts +3 -0
- package/dist/iife/dialog-embed/src/index.d.ts +2 -0
- package/dist/iife/dialog-embed/src/utils/env.d.ts +12 -0
- package/dist/iife/dialog-embed/src/utils/events.d.ts +2 -0
- package/dist/iife/embeds.iife.js +661 -456
- package/dist/iife/embeds.iife.js.map +1 -1
- package/dist/iife/player-embed/browser-BBSMddCs.js +429 -0
- package/dist/iife/player-embed/browser-BBSMddCs.js.map +1 -0
- package/dist/iife/player-embed/embed.iife.js +1612 -0
- package/dist/iife/player-embed/embed.iife.js.map +1 -0
- package/dist/iife/player-embed/embed.js +5 -0
- package/dist/iife/player-embed/embed.js.map +1 -0
- package/dist/iife/player-embed/index-BGZl_iqR.js +27255 -0
- package/dist/iife/player-embed/index-BGZl_iqR.js.map +1 -0
- package/dist/iife/player-embed/src/components/DialogEmbed/DialogOverlay.d.ts +20 -0
- package/dist/iife/player-embed/src/components/DialogEmbed/DialogPortal.d.ts +36 -0
- package/dist/iife/player-embed/src/components/DialogEmbed/index.d.ts +38 -0
- package/dist/iife/player-embed/src/components/PlayerEmbed/controllers/event-forwarder.d.ts +15 -0
- package/dist/iife/player-embed/src/components/PlayerEmbed/controllers/fetcher.d.ts +14 -0
- package/dist/iife/player-embed/src/components/PlayerEmbed/controllers/tracking/index.d.ts +36 -0
- package/dist/iife/player-embed/src/components/PlayerEmbed/controllers/tracking/utils.d.ts +17 -0
- package/dist/iife/player-embed/src/components/PlayerEmbed/index.d.ts +74 -0
- package/dist/iife/player-embed/src/components/PlayerEmbed/tests/data.d.ts +3 -0
- package/dist/iife/player-embed/src/index.d.ts +2 -0
- package/dist/iife/player-embed/src/utils/env.d.ts +12 -0
- package/dist/iife/player-embed/src/utils/events.d.ts +2 -0
- package/package.json +43 -31
- package/src/components/DialogEmbed/Dialog.stories.ts +91 -0
- package/src/components/DialogEmbed/DialogOverlay.ts +131 -0
- package/src/components/DialogEmbed/DialogPortal.ts +126 -0
- package/src/components/DialogEmbed/index.ts +97 -0
- package/src/components/{Embed/Embed.stories.ts → PlayerEmbed/PlayerEmbed.stories.ts} +26 -14
- package/src/components/{Embed → PlayerEmbed}/controllers/event-forwarder.ts +6 -5
- package/src/components/{Embed → PlayerEmbed}/controllers/fetcher.ts +33 -14
- package/src/components/{Embed/controllers/tracking.ts → PlayerEmbed/controllers/tracking/index.ts} +47 -115
- package/src/components/PlayerEmbed/controllers/tracking/utils.ts +95 -0
- package/src/components/{Embed → PlayerEmbed}/index.ts +71 -27
- package/src/components/PlayerEmbed/tests/PlayerEmbed.spec.ts +80 -0
- package/src/components/PlayerEmbed/tests/data.ts +183 -0
- package/src/index.ts +2 -1
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index-5G8orrrP.js","sources":["../../src/utils/events.ts","../../src/components/PlayerEmbed/controllers/event-forwarder.ts","../../src/utils/env.ts","../../src/components/PlayerEmbed/controllers/fetcher.ts","../../../../node_modules/mimic-function/index.js","../../../../node_modules/memoize/dist/index.js","../../../../node_modules/yoga-layout/binaries/yoga-wasm-base64-esm.js","../../../../node_modules/yoga-layout/src/generated/YGEnums.js","../../../../node_modules/yoga-layout/src/wrapAssembly.js","../../../../node_modules/yoga-layout/src/index.js","../../../../node_modules/hey-listen/dist/hey-listen.es.js","../../../../node_modules/popmotion/dist/es/utils/clamp.mjs","../../../../node_modules/popmotion/dist/es/utils/progress.mjs","../../../../node_modules/popmotion/dist/es/utils/mix.mjs","../../../../node_modules/style-value-types/dist/es/utils.mjs","../../../../node_modules/style-value-types/dist/es/numbers/index.mjs","../../../../node_modules/style-value-types/dist/es/numbers/units.mjs","../../../../node_modules/style-value-types/dist/es/color/utils.mjs","../../../../node_modules/style-value-types/dist/es/color/hsla.mjs","../../../../node_modules/style-value-types/dist/es/color/rgba.mjs","../../../../node_modules/style-value-types/dist/es/color/hex.mjs","../../../../node_modules/style-value-types/dist/es/color/index.mjs","../../../../node_modules/style-value-types/dist/es/complex/index.mjs","../../../../node_modules/popmotion/dist/es/utils/hsla-to-rgba.mjs","../../../../node_modules/popmotion/dist/es/utils/mix-color.mjs","../../../../node_modules/popmotion/dist/es/utils/inc.mjs","../../../../node_modules/popmotion/dist/es/utils/pipe.mjs","../../../../node_modules/popmotion/dist/es/utils/mix-complex.mjs","../../../../node_modules/popmotion/dist/es/utils/interpolate.mjs","../../../../node_modules/popmotion/dist/es/easing/utils.mjs","../../../../node_modules/popmotion/dist/es/easing/index.mjs","../../../../node_modules/squirrelly/dist/browser/squirrelly.min.js","../../../../node_modules/mimic-fn/index.js","../../../../node_modules/p-memoize/dist/index.js","../../../canvas-video/dist/canvas-video.js","../../src/components/PlayerEmbed/controllers/tracking/utils.ts","../../src/components/PlayerEmbed/controllers/tracking/index.ts","../../src/components/PlayerEmbed/index.ts","../../src/components/DialogEmbed/DialogOverlay.ts","../../src/components/DialogEmbed/DialogPortal.ts","../../src/components/DialogEmbed/index.ts"],"sourcesContent":["function forwardEvent(type: string, fromElement: HTMLElement, toElement: HTMLElement) {\n function forwarder(event: Event) {\n toElement.dispatchEvent(new CustomEvent(event.type, event));\n }\n\n fromElement.addEventListener(type, forwarder);\n\n return () => {\n fromElement.removeEventListener(type, forwarder);\n };\n}\n\nexport { forwardEvent };\n","import { createRef, ref } from 'lit/directives/ref.js';\n\nimport type { PlayerEmbed } from '..';\nimport type { ReactiveController, ReactiveControllerHost } from 'lit';\nimport type { DirectiveResult } from 'lit/directive.js';\nimport type { Ref } from 'lit/directives/ref.js';\n\nimport { forwardEvent } from '~/utils/events';\n\ntype PlayerEmbedHost = ReactiveControllerHost & PlayerEmbed;\n\nclass EventForwardController implements ReactiveController {\n host: PlayerEmbedHost;\n\n private _events: string[] = [];\n private _cleanup: (() => void)[] = [];\n private _forwardElementRef: Ref<HTMLElement> = createRef();\n\n constructor(host: PlayerEmbedHost, events: string[]) {\n this.host = host;\n this._events = events;\n host.addController(this);\n }\n\n register(): DirectiveResult {\n return ref(this._forwardElementRef);\n }\n\n hostConnected() {\n // Guaranteed to have the element ref in the RAF callback because of how the lit lifecycle works\n requestAnimationFrame(() => {\n this._events.forEach((event) => {\n if (this._forwardElementRef.value) {\n this._cleanup.push(forwardEvent(event, this._forwardElementRef.value, this.host));\n }\n });\n });\n }\n\n hostDisconnected() {\n this._cleanup.forEach((fn) => {\n fn();\n });\n this._cleanup = [];\n }\n}\n\nexport { EventForwardController };\n","type Environment = 'local' | 'dev' | 'staging' | 'prod';\n\ntype GetEnvUrlsReturn = {\n videoUrl: string;\n publicApiUrl: string;\n embedApiUrl: string;\n};\n\nconst devVideoUrl = 'https://d2rxhdlm2q91uk.cloudfront.net';\nconst stagingVideoUrl = 'https://d1ix11aj5kfygl.cloudfront.net';\nconst prodVideoUrl = 'https://d157jlwnudd93d.cloudfront.net';\n\nconst devPublicApiUrl = 'https://bshyfw4h5a.execute-api.ap-southeast-2.amazonaws.com/dev';\nconst stagingPublicApiUrl = 'https://gyzw7rpbq3.execute-api.ap-southeast-2.amazonaws.com/staging';\nconst prodPublicApiUrl = 'https://vfcjuim1l3.execute-api.ap-southeast-2.amazonaws.com/prod';\n\nconst localEmbedApiUrl = 'http://localhost:6060/v2';\nconst devEmbedApiUrl = 'https://embed-dev.vouchfor.com/v2';\nconst stagingEmbedApiUrl = 'https://embed-staging.vouchfor.com/v2';\nconst prodEmbedApiUrl = 'https://embed.vouchfor.com/v2';\n\n// We are handling the case where env is an unknown string so the ts error is a lie\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nfunction getEnvUrls(env: Environment): GetEnvUrlsReturn {\n if (!['local', 'dev', 'staging', 'prod'].includes(env)) {\n throw new Error(`Unknown environment: ${env}`);\n }\n\n if (env === 'local') {\n return {\n videoUrl: devVideoUrl,\n publicApiUrl: devPublicApiUrl,\n embedApiUrl: localEmbedApiUrl\n };\n }\n\n if (env === 'dev') {\n return {\n videoUrl: devVideoUrl,\n publicApiUrl: devPublicApiUrl,\n embedApiUrl: devEmbedApiUrl\n };\n }\n\n if (env === 'staging') {\n return {\n videoUrl: stagingVideoUrl,\n publicApiUrl: stagingPublicApiUrl,\n embedApiUrl: stagingEmbedApiUrl\n };\n }\n\n if (env === 'prod') {\n return {\n videoUrl: prodVideoUrl,\n publicApiUrl: prodPublicApiUrl,\n embedApiUrl: prodEmbedApiUrl\n };\n }\n}\n\nexport { devEmbedApiUrl, stagingEmbedApiUrl, prodEmbedApiUrl, getEnvUrls };\nexport type { Environment };\n","import { Task } from '@lit/task';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport type { PlayerEmbed, PlayerEmbedProps } from '..';\nimport type { ReactiveControllerHost } from 'lit';\nimport type { Environment } from '~/utils/env';\n\nimport { getEnvUrls } from '~/utils/env';\n\ntype PlayerEmbedHost = ReactiveControllerHost & PlayerEmbed;\n\ntype FetchTaskDeps = [\n PlayerEmbedProps['env'],\n PlayerEmbedProps['apiKey'],\n PlayerEmbedProps['data'],\n PlayerEmbedProps['vouchId'],\n PlayerEmbedProps['templateId']\n];\n\ntype FilterTaskDeps = [PlayerEmbedProps['data'], PlayerEmbedProps['questions']];\n\nclass FetcherController {\n host: PlayerEmbedHost;\n\n private _fetching = false;\n private _vouch: PlayerEmbedProps['data'];\n\n set fetching(value) {\n if (this._fetching !== value) {\n this._fetching = value;\n this.host.requestUpdate();\n }\n }\n get fetching() {\n return this._fetching;\n }\n\n private getVouch = async (env: Environment, apiKey: string, vouchId: string) => {\n const { embedApiUrl } = getEnvUrls(env);\n\n const cacheCheck = uuidv4();\n const res = await fetch(`${embedApiUrl}/vouches/${vouchId}`, {\n method: 'GET',\n headers: [\n ['X-Api-Key', apiKey],\n ['X-Cache-Check', cacheCheck]\n ]\n });\n\n const vouch = await res.json();\n this.host.dispatchEvent(new CustomEvent('vouch:loaded', { detail: vouch?.id }));\n\n // HACK: we're currently using API Gateway caching on the embed API without any invalidation logic,\n // so to ensure that the cache stays up to date, whenever we detect a cache hit we trigger another\n // API call with the `Cache-Control` header which will re-fill the cache\n const resCacheCheck = res?.headers?.get('X-Cache-Check');\n if (resCacheCheck !== cacheCheck) {\n fetch(`${embedApiUrl}/vouches/${vouchId}`, {\n method: 'GET',\n headers: [\n ['X-Api-Key', apiKey],\n ['Cache-Control', 'max-age=0']\n ]\n });\n }\n\n return vouch;\n };\n\n private getTemplate = async (env: Environment, apiKey: string, templateId: string) => {\n const { embedApiUrl } = getEnvUrls(env);\n\n const cacheCheck = uuidv4();\n const res = await fetch(`${embedApiUrl}/templates/${templateId}`, {\n method: 'GET',\n headers: [\n ['X-Api-Key', apiKey],\n ['X-Cache-Check', cacheCheck]\n ]\n });\n const template = await res.json();\n\n // HACK: we're currently using API Gateway caching on the embed API without any invalidation logic,\n // so to ensure that the cache stays up to date, whenever we detect a cache hit we trigger another\n // API call with the `Cache-Control` header which will re-fill the cache\n const resCacheCheck = res?.headers?.get('X-Cache-Check');\n if (resCacheCheck !== cacheCheck) {\n fetch(`${embedApiUrl}/templates/${templateId}`, {\n method: 'GET',\n headers: [\n ['X-Api-Key', apiKey],\n ['Cache-Control', 'max-age=0']\n ]\n });\n }\n\n return template;\n };\n\n constructor(host: PlayerEmbedHost) {\n this.host = host;\n new Task<FetchTaskDeps, void>(\n this.host,\n async ([env, apiKey, data, vouchId, templateId]: FetchTaskDeps) => {\n try {\n host.vouch = undefined;\n host.template = undefined;\n\n if (data) {\n let template;\n if (templateId) {\n this.fetching = true;\n template = await this.getTemplate(env, apiKey, templateId);\n }\n this._vouch = data;\n host.template = template ?? data?.settings?.template?.instance;\n } else if (vouchId) {\n this.fetching = true;\n\n const [vouch, template] = await Promise.all([\n this.getVouch(env, apiKey, vouchId),\n templateId ? this.getTemplate(env, apiKey, templateId) : null\n ]);\n this._vouch = vouch;\n host.template = template ?? vouch?.settings?.template?.instance;\n }\n } finally {\n this.fetching = false;\n }\n },\n () => [host.env, host.apiKey, host.data, host.vouchId, host.templateId]\n );\n\n // This second task is to be able to filter the vouch without fetching it again if only the questions changed\n new Task<FilterTaskDeps, void>(\n this.host,\n ([vouch, questions]: FilterTaskDeps) => {\n host.vouch = vouch\n ? {\n ...vouch,\n questions: {\n items: vouch?.questions.items.filter((_, index) => !questions?.length || questions?.includes(index + 1))\n }\n }\n : undefined;\n },\n () => [this._vouch, host.questions]\n );\n }\n}\n\nexport { FetcherController };\n","const copyProperty = (to, from, property, ignoreNonConfigurable) => {\n\t// `Function#length` should reflect the parameters of `to` not `from` since we keep its body.\n\t// `Function#prototype` is non-writable and non-configurable so can never be modified.\n\tif (property === 'length' || property === 'prototype') {\n\t\treturn;\n\t}\n\n\t// `Function#arguments` and `Function#caller` should not be copied. They were reported to be present in `Reflect.ownKeys` for some devices in React Native (#41), so we explicitly ignore them here.\n\tif (property === 'arguments' || property === 'caller') {\n\t\treturn;\n\t}\n\n\tconst toDescriptor = Object.getOwnPropertyDescriptor(to, property);\n\tconst fromDescriptor = Object.getOwnPropertyDescriptor(from, property);\n\n\tif (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) {\n\t\treturn;\n\t}\n\n\tObject.defineProperty(to, property, fromDescriptor);\n};\n\n// `Object.defineProperty()` throws if the property exists, is not configurable and either:\n// - one its descriptors is changed\n// - it is non-writable and its value is changed\nconst canCopyProperty = function (toDescriptor, fromDescriptor) {\n\treturn toDescriptor === undefined || toDescriptor.configurable || (\n\t\ttoDescriptor.writable === fromDescriptor.writable\n\t\t&& toDescriptor.enumerable === fromDescriptor.enumerable\n\t\t&& toDescriptor.configurable === fromDescriptor.configurable\n\t\t&& (toDescriptor.writable || toDescriptor.value === fromDescriptor.value)\n\t);\n};\n\nconst changePrototype = (to, from) => {\n\tconst fromPrototype = Object.getPrototypeOf(from);\n\tif (fromPrototype === Object.getPrototypeOf(to)) {\n\t\treturn;\n\t}\n\n\tObject.setPrototypeOf(to, fromPrototype);\n};\n\nconst wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/\\n${fromBody}`;\n\nconst toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, 'toString');\nconst toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, 'name');\n\n// We call `from.toString()` early (not lazily) to ensure `from` can be garbage collected.\n// We use `bind()` instead of a closure for the same reason.\n// Calling `from.toString()` early also allows caching it in case `to.toString()` is called several times.\nconst changeToString = (to, from, name) => {\n\tconst withName = name === '' ? '' : `with ${name.trim()}() `;\n\tconst newToString = wrappedToString.bind(null, withName, from.toString());\n\t// Ensure `to.toString.toString` is non-enumerable and has the same `same`\n\tObject.defineProperty(newToString, 'name', toStringName);\n\tconst {writable, enumerable, configurable} = toStringDescriptor; // We destructue to avoid a potential `get` descriptor.\n\tObject.defineProperty(to, 'toString', {value: newToString, writable, enumerable, configurable});\n};\n\nexport default function mimicFunction(to, from, {ignoreNonConfigurable = false} = {}) {\n\tconst {name} = to;\n\n\tfor (const property of Reflect.ownKeys(from)) {\n\t\tcopyProperty(to, from, property, ignoreNonConfigurable);\n\t}\n\n\tchangePrototype(to, from);\n\tchangeToString(to, from, name);\n\n\treturn to;\n}\n","import mimicFunction from 'mimic-function';\nconst cacheStore = new WeakMap();\nconst cacheTimerStore = new WeakMap();\n/**\n[Memoize](https://en.wikipedia.org/wiki/Memoization) functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input.\n\n@param fn - The function to be memoized.\n\n@example\n```\nimport memoize from 'memoize';\n\nlet index = 0;\nconst counter = () => ++index;\nconst memoized = memoize(counter);\n\nmemoized('foo');\n//=> 1\n\n// Cached as it's the same argument\nmemoized('foo');\n//=> 1\n\n// Not cached anymore as the arguments changed\nmemoized('bar');\n//=> 2\n\nmemoized('bar');\n//=> 2\n```\n*/\nexport default function memoize(fn, { cacheKey, cache = new Map(), maxAge, } = {}) {\n if (maxAge === 0) {\n return fn;\n }\n if (typeof maxAge === 'number') {\n const maxSetIntervalValue = 2147483647;\n if (maxAge > maxSetIntervalValue) {\n throw new TypeError(`The \\`maxAge\\` option cannot exceed ${maxSetIntervalValue}.`);\n }\n if (maxAge < 0) {\n throw new TypeError('The `maxAge` option should not be a negative number.');\n }\n }\n const memoized = function (...arguments_) {\n const key = cacheKey ? cacheKey(arguments_) : arguments_[0];\n const cacheItem = cache.get(key);\n if (cacheItem) {\n return cacheItem.data;\n }\n const result = fn.apply(this, arguments_);\n cache.set(key, {\n data: result,\n maxAge: maxAge ? Date.now() + maxAge : Number.POSITIVE_INFINITY,\n });\n if (typeof maxAge === 'number' && maxAge !== Number.POSITIVE_INFINITY) {\n const timer = setTimeout(() => {\n cache.delete(key);\n }, maxAge);\n timer.unref?.();\n const timers = cacheTimerStore.get(fn) ?? new Set();\n timers.add(timer);\n cacheTimerStore.set(fn, timers);\n }\n return result;\n };\n mimicFunction(memoized, fn, {\n ignoreNonConfigurable: true,\n });\n cacheStore.set(memoized, cache);\n return memoized;\n}\n/**\n@returns A [decorator](https://github.com/tc39/proposal-decorators) to memoize class methods or static class methods.\n\n@example\n```\nimport {memoizeDecorator} from 'memoize';\n\nclass Example {\n index = 0\n\n @memoizeDecorator()\n counter() {\n return ++this.index;\n }\n}\n\nclass ExampleWithOptions {\n index = 0\n\n @memoizeDecorator({maxAge: 1000})\n counter() {\n return ++this.index;\n }\n}\n```\n*/\nexport function memoizeDecorator(options = {}) {\n const instanceMap = new WeakMap();\n return (target, propertyKey, descriptor) => {\n const input = target[propertyKey]; // eslint-disable-line @typescript-eslint/no-unsafe-assignment\n if (typeof input !== 'function') {\n throw new TypeError('The decorated value must be a function');\n }\n delete descriptor.value;\n delete descriptor.writable;\n descriptor.get = function () {\n if (!instanceMap.has(this)) {\n const value = memoize(input, options);\n instanceMap.set(this, value);\n return value;\n }\n return instanceMap.get(this);\n };\n };\n}\n/**\nClear all cached data of a memoized function.\n\n@param fn - The memoized function.\n*/\nexport function memoizeClear(fn) {\n const cache = cacheStore.get(fn);\n if (!cache) {\n throw new TypeError('Can\\'t clear a function that was not memoized!');\n }\n if (typeof cache.clear !== 'function') {\n throw new TypeError('The cache Map can\\'t be cleared!');\n }\n cache.clear();\n for (const timer of cacheTimerStore.get(fn) ?? []) {\n clearTimeout(timer);\n }\n}\n","\nvar loadYoga = (() => {\n var _scriptDir = import.meta.url;\n \n return (\nfunction(loadYoga) {\n loadYoga = loadYoga || {};\n\n\nvar h;h||(h=typeof loadYoga !== 'undefined' ? loadYoga : {});var aa,ca;h.ready=new Promise(function(a,b){aa=a;ca=b});var da=Object.assign({},h),q=\"\";\"undefined\"!=typeof document&&document.currentScript&&(q=document.currentScript.src);_scriptDir&&(q=_scriptDir);0!==q.indexOf(\"blob:\")?q=q.substr(0,q.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):q=\"\";var ea=h.print||console.log.bind(console),v=h.printErr||console.warn.bind(console);Object.assign(h,da);da=null;var w;h.wasmBinary&&(w=h.wasmBinary);\nvar noExitRuntime=h.noExitRuntime||!0;\"object\"!=typeof WebAssembly&&x(\"no native wasm support detected\");var fa,ha=!1;function z(a,b,c){c=b+c;for(var d=\"\";!(b>=c);){var e=a[b++];if(!e)break;if(e&128){var f=a[b++]&63;if(192==(e&224))d+=String.fromCharCode((e&31)<<6|f);else{var g=a[b++]&63;e=224==(e&240)?(e&15)<<12|f<<6|g:(e&7)<<18|f<<12|g<<6|a[b++]&63;65536>e?d+=String.fromCharCode(e):(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023))}}else d+=String.fromCharCode(e)}return d}\nvar ia,ja,A,C,ka,D,E,la,ma;function na(){var a=fa.buffer;ia=a;h.HEAP8=ja=new Int8Array(a);h.HEAP16=C=new Int16Array(a);h.HEAP32=D=new Int32Array(a);h.HEAPU8=A=new Uint8Array(a);h.HEAPU16=ka=new Uint16Array(a);h.HEAPU32=E=new Uint32Array(a);h.HEAPF32=la=new Float32Array(a);h.HEAPF64=ma=new Float64Array(a)}var oa,pa=[],qa=[],ra=[];function sa(){var a=h.preRun.shift();pa.unshift(a)}var F=0,ta=null,G=null;\nfunction x(a){if(h.onAbort)h.onAbort(a);a=\"Aborted(\"+a+\")\";v(a);ha=!0;a=new WebAssembly.RuntimeError(a+\". Build with -sASSERTIONS for more info.\");ca(a);throw a;}function ua(a){return a.startsWith(\"data:application/octet-stream;base64,\")}var H;H=\"data:application/octet-stream;base64,AGFzbQEAAAABrAM2YAF/AGABfwF/YAJ/fwBgA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWAAAGADf398AGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAJ/fwF9YAV/f39/fwBgAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBH9/fX8AYAZ/fH9/f38Bf2ACf30AYAR/fHx/AGAIf39/f39/f38AYA1/f39/f39/f39/f39/AGAKf39/f39/f39/fwBgBX9/f39/AXxgBH9/fX0BfWAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gBn9/fX1/fwBgAn5/AX9gA399fQF9YAN/f30BfWABfAF8YAN/fHwAYAV/f319fQBgBX9/fX19AX1gDX99f31/fX99fX19fX8Bf2ALf39/f39/f319fX0AYAh/f39/f399fQBgBH9/fn4AYAd/f39/f39/AX9gAnx/AXxgBX9/fHx/AGADf39/AXxgBH9/f3wAYAN/f30AYAZ/f31/fX8BfwK1AR4BYQFhABwBYQFiAAMBYQFjAAgBYQFkABUBYQFlABIBYQFmAB0BYQFnAAABYQFoAB4BYQFpAAMBYQFqAAABYQFrABYBYQFsAAoBYQFtAAUBYQFuAAMBYQFvAAIBYQFwABYBYQFxAAYBYQFyAAABYQFzAB8BYQF0AAoBYQF1AA0BYQF2ABUBYQF3AAEBYQF4AAMBYQF5ABcBYQF6AAEBYQFBAAIBYQFCABIBYQFDAAIBYQFEAAADiwKJAgEDEQ8PBwcHBwgAAwoSBiAKBgIGIQcYDwMTIgUGIxMHBwMkAhcDAwoKGBETCg8KAwMBCAEAAAUmAQEGBwEDAgIJDAAAJwgABQAHBQAoKQAAASoHACsBLAcHLQMuCAUKAS8NMAMBCAEAAQIGCgIBAgEFAgAFCAICAgIAAQ4BAQUCAhoDDg0NBhQBAhkUBgEIARAAAAAFMQ8yDAUGCTMFAQMFDg4ONAEDAQEBAwYBATUBAgwMDAILCwsLCwsbAQAAAAIAEAIFAQECAwERAwwLAgICAgICCwsCAQEDAQEBAQEBAwEJAgkJCQQEBAQEBAQEBAAEBAAEBAQEAAQEBAICAgkJAgICAgICCQkEBwFwAcwB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AkACQCAELQAMQQFrDgIAAQILIAQqAgghBQwBCyAEKgIIIAOUQwrXIzyUIQULIARBEGokACAFQwAAAAAgBSAFWxsLcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QaAkaigCACACEC5DAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akHuAGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDQDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALcAyIADQALCyADQRBqJAALhQECA38BfgJAIABCgICAgBBUBEAgACEFDAELA0AgAUEBayIBIABCCoAiBUL2AX4gAHynQTByOgAAIABC/////58BViECIAUhACACDQALCyAFpyICBEADQCABQQFrIgEgAkEKbiIDQfYBbCACakEwcjoAACACQQlLIQQgAyECIAQNAAsLIAELNwECf0EEEB4iAiABNgIAQQQQHiIDIAE2AgBB/TkgAEGeOkG6J0G3ASACQZ46Qb4nQbgBIAMQBwteAQF/IABBADYCDCAAIAM2AhACQCABBEAgAUGAgICABE8NASABQQJ0EB4hBAsgACAENgIAIAAgBCACQQJ0aiICNgIIIAAgBCABQQJ0ajYCDCAAIAI2AgQgAA8LEFAAC0cBAX8gAi8ABiIDQQdxBEAgACABQegAaiADEB8PCyABQegAaiEBIAIvAA4iA0EHcQRAIAAgASADEB8PCyAAIAEgAi8AEBAfC0cBAX8gAi8AAiIDQQdxBEAgACABQegAaiADEB8PCyABQegAaiEBIAIvAA4iA0EHcQRAIAAgASADEB8PCyAAIAEgAi8AEBAfC3sAAkACQAJAAkAgA0EBaw4CAAECCyACLwAKIgNBB3FFDQEMAgsgAi8ACCIDQQdxRQ0ADAELIAIvAAQiA0EHcQRADAELIAFB6ABqIQEgAi8ADCID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BQUgAC0AFUEEdgtBBUYEQCAALQAUQQhxDQULIAEtAABBAnENBCACIAEgAhshAgsgBEEBaiIEIAdHDQELCyACDQILIAAqApQDIQgMAgsgASECCyACEEkgAioCnAOSIQgLIANBEGokACAIC1AAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBMGoQRA8LIAAgASABQTBqIAMQRQ8LIAAgASABQTBqEEMPCxAnAAsgACABIAFBMGogAxBGC3kCAX8BfSMAQRBrIgMkACADQQhqIAAgAUECdEGwJGooAgAgAhBMQwAAwH8hBAJAAkACQCADLQAMQQFrDgIAAQILIAMqAgghBAwBCyADKgIIQwAAAACUQwrXIzyUIQQLIANBEGokACAEQwAAAACXQwAAAAAgBCAEWxsLVAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUHCAGoQRA8LIAAgASABQcIAaiADEEUPCyAAIAEgAUHCAGoQQw8LECcACyAAIAEgAUHCAGogAxBGC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQfYAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQNANAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAtwDIgANAAsLIANBEGokAAvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akHyAGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDQDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALcAyIADQALCyADQRBqJAALCgAgAEEwa0EKSQsFABACAAsEACAACxQAIAAEQCAAIAAoAgAoAgQRAAALCysBAX8gACgCDCIBBEAgARAoCyAAKAIAIgEEQCAAIAE2AgQgARAoCyAAECgL8QMB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OgAAQQELC8QCAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAFBCWsOEgAKCwwKCwIDBAUMCwwMCgsHCAkLIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LAAsgAiACKAIAIgFBBGo2AgAgACABMgEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMwEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMAAANwMADwsgAiACKAIAIgFBBGo2AgAgACABMQAANwMADwsACyACIAIoAgBBB2pBeHEiAUEIajYCACAAIAErAwA5AwAPCyAAIAIgAxECAAsPCyACIAIoAgAiAUEEajYCACAAIAE0AgA3AwAPCyACIAIoAgAiAUEEajYCACAAIAE1AgA3AwAPCyACIAIoAgBBB2pBeHEiAUEIajYCACAAIAEpAwA3AwALXQEEfyAAKAIAIQIDQCACLAAAIgMQTwRAQX8hBCAAIAJBAWoiAjYCACABQcyZs+YATQR/QX8gA0EwayIDIAFBCmwiBGogAyAEQf////8Hc0obBSAECyEBDAELCyABC6gUAhJ/AX4jAEHQAGsiCCQAIAggATYCTCAIQTdqIRcgCEE4aiEUAkACQAJAAkADQCABIQ0gByAOQf////8Hc0oNASAHIA5qIQ4CQAJAAkAgDSIHLQAAIgkEQANAAkACQCAJQf8BcSIBRQRAIAchAQwBCyABQSVHDQEgByEJA0AgCS0AAUElRwRAIAkhAQwCCyAHQQFqIQcgCS0AAiEKIAlBAmoiASEJIApBJUYNAAsLIAcgDWsiByAOQf////8HcyIYSg0HIAAEQCAAIA0gBxApCyAHDQYgCCABNgJMIAFBAWohB0F/IRICQCABLAABIgoQT0UNACABLQACQSRHDQAgAUEDaiEHIApBMGshEkEBIRULIAggBzYCTEEAIQwCQCAHLAAAIglBIGsiAUEfSwRAIAchCgwBCyAHIQpBASABdCIBQYnRBHFFDQADQCAIIAdBAWoiCjYCTCABIAxyIQwgBywAASIJQSBrIgFBIE8NASAKIQdBASABdCIBQYnRBHENAAsLAkAgCUEqRgRAAn8CQCAKLAABIgEQT0UNACAKLQACQSRHDQAgAUECdCAEakHAAWtBCjYCACAKQQNqIQlBASEVIAosAAFBA3QgA2pBgANrKAIADAEL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4AMiAwRAIAAgAzYC5AMgAxAoCyAAIAEoAuADNgLgAyAAIAEoAuQDNgLkAyAAIAEoAugDNgLoAyABQQA2AugDIAFCADcC4AMgACABKQL0AzcC9AMgACABKQLsAzcC7AMgACABKAL8AzYC/AMgASgClAEhACABQQA2ApQBIAAEQCAAEFMLIAJBoARqJAAPCyACQYIcNgIQIAAgAkEQahAwECcACyACQcsRNgIAIAAgAhAwECcACwoAQQwQHiAAEGULCgBBDBAeQQAQZQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhALGQAgAUH/AXEEQBACAAsgACgCACgCDEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLDAAgACgCACABNgIQC3oBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGBFBEAgAkHdEzYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQfguQZwkIAIQOhoMAQsgAEEAQQVBnCQgAiAAKAIEEQ0AGgsgA0EQaiQAECcACyAAIAE4AhQgAkEQaiQACyMAIAFB/wFxBEAQAgALIAAoAgAiACAAKAIMQX5xIAJyNgIMCz4BAn9BBBAeIQFBHBAeIgBCgICA/AM3AhQgAEIANwIMIABBADoACCAAQQA2AgAgAEEDNgIEIAEgADYCACABCyMAIAJBBUdBACACG0UEQEH4LiADIAQQOg8LQYgwIAMgBBA6CyIBAX4gASACrSADrUIghoQgBCAAERQAIgVCIIinJAEgBacLqAEBBX8gACgCVCIDKAIAIQUgAygCBCIEIAAoAhQgACgCHCIHayIGIAQgBkkbIgYEQCAFIAcgBhAsGiADIAMoAgAgBmoiBTYCACADIAMoAgQgBmsiBDYCBAsgBCACIAIgBEsbIgQEQCAFIAEgBBAsGiADIAMoAgAgBGoiBTYCACADIAMoAgQgBGs2AgQLIAVBADoAACAAIAAoAiwiATYCHCAAIAE2AhQgAgsEAEIACwQAQQALigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMIQgSGIAgpAwAiA0I8iIQhAiAIKQMQIAgpAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIAhBIGokACAJIAIgBkKAgICAgICAgIB/g4S/OQMAC5kYAxJ/AXwDfiMAQbAEayIMJAAgDEEANgIsAkAgAb0iGUIAUwRAQQEhEUGZCSETIAGaIgG9IRkMAQsgBEGAEHEEQEEBIRFBnAkhEwwBC0GfCUGaCSAEQQFxIhEbIRMgEUUhFQsCQCAZQoCAgICAgID4/wCDQoCAgICAgID4/wBRBEAgAEEgIAIgEUEDaiIDIARB//97cRArIAAgEyARECkgAEGZFUGgHSAFQSBxIgUbQfMZQaQdIAUbIAEgAWIbQQMQKSAAQSAgAiADIARBgMAAcxArIAMgAiACIANIGyEKDAELIAxBEGohEgJAAn8CQCABIAxBLGoQgAEiASABoCIBRAAAAAAAAAAAYgRAIAwgDCgCLCIGQQFrNgIsIAVBIHIiDkHhAEcNAQwDCyAFQSByIg5B4QBGDQIgDCgCLCEJQQYgAyADQQBIGwwBCyAMIAZBHWsiCTYCLCABRAAAAAAAALBBoiEBQQYgAyADQQBIGwshCyAMQTBqQaACQQAgCUEAThtqIg0hBwNAIAcCfyABRAAAAAAAAPBBYyABRAAAAAAAAAAAZnEEQCABqwwBC0EACyIDNgIAIAdBBGohByABIAO4oUQAAAAAZc3NQaIiAUQAAAAAAAAAAGINAAsCQCAJQQBMBEAgCSEDIAchBiANIQgMAQsgDSEIIAkhAwNAQR0gAyADQR1OGyEDAkAgB0EEayIGIAhJDQAgA60hGkIAIRkDQCAGIBlC/////w+DIAY1AgAgGoZ8IhtCgJTr3AOAIhlCgOyUowx+IBt8PgIAIAZBBGsiBiAITw0ACyAZpyIGRQ0AIAhBBGsiCCAGNgIACwNAIAggByIGSQRAIAZBBGsiBygCAEUNAQsLIAwgDCgCLCADayIDNgIsIAYhByADQQBKDQALCyADQQBIBEAgC0EZakEJbkEBaiEPIA5B5gBGIRADQEEJQQAgA2siAyADQQlOGyEKAkAgBiAITQRAIAgoAgAhBwwBC0GAlOvcAyAKdiEUQX8gCnRBf3MhFkEAIQMgCCEHA0AgByADIAcoAgAiFyAKdmo2AgAgFiAXcSAUbCEDIAdBBGoiByAGSQ0ACyAIKAIAIQcgA0UNACAGIAM2AgAgBkEEaiEGCyAMIAwoAiwgCmoiAzYCLCANIAggB0VBAnRqIgggEBsiByAPQQJ0aiAGIAYgB2tBAnUgD0obIQYgA0EASA0ACwtBACEDAkAgBiAITQ0AIA0gCGtBAnVBCWwhA0EKIQcgCCgCACIKQQpJDQADQCADQQFqIQMgCiAHQQpsIgdPDQALCyALIANBACAOQeYARxtrIA5B5wBGIAtBAEdxayIHIAYgDWtBAnVBCWxBCWtIBEBBBEGkAiAJQQBIGyAMaiAHQYDIAGoiCkEJbSIPQQJ0akHQH2shCUEKIQcgD0F3bCAKaiIKQQdMBEADQCAHQQpsIQcgCkEBaiIKQQhHDQALCwJAIAkoAgAiECAQIAduIg8gB2wiCkYgCUEEaiIUIAZGcQ0AIBAgCmshEAJAIA9BAXFFBEBEAAAAAAAAQEMhASAHQYCU69wDRyAIIAlPcg0BIAlBBGstAABBAXFFDQELRAEAAAAAAEBDIQELRAAAAAAAAOA/RAAAAAAAAPA/RAAAAAAAAPg/IAYgFEYbRAAAAAAAAPg/IBAgB0EBdiIURhsgECAUSRshGAJAIBUNACATLQAAQS1HDQAgGJohGCABmiEBCyAJIAo2AgAgASAYoCABYQ0AIAkgByAKaiIDNgIAIANBgJTr3ANPBEADQCAJQQA2AgAgCCAJQQRrIglLBEAgCEEEayIIQQA2AgALIAkgCSgCAEEBaiIDNgIAIANB/5Pr3ANLDQALCyANIAhrQQJ1QQlsIQNBCiEHIAgoAgAiCkEKSQ0AA0AgA0EBaiEDIAogB0EKbCIHTw0ACwsgCUEEaiIHIAYgBiAHSxshBgsDQCAGIgcgCE0iCkUEQCAHQQRrIgYoAgBFDQELCwJAIA5B5wBHBEAgBEEIcSEJDAELIANBf3NBfyALQQEgCxsiBiADSiADQXtKcSIJGyAGaiELQX9BfiAJGyAFaiEFIARBCHEiCQ0AQXchBgJAIAoNACAHQQRrKAIAIg5FDQBBCiEKQQAhBiAOQQpwDQADQCAGIglBAWohBiAOIApBCmwiCnBFDQALIAlBf3MhBgsgByANa0ECdUEJbCEKIAVBX3FBxgBGBEBBACEJIAsgBiAKakEJayIGQQAgBkEAShsiBiAGIAtKGyELDAELQQAhCSALIAMgCmogBmpBCWsiBkEAIAZBAEobIgYgBiALShshCwtBfyEKIAtB/f///wdB/v///wcgCSALciIQG0oNASALIBBBAEdqQQFqIQ4CQCAFQV9xIhVBxgBGBEAgAyAOQf////8Hc0oNAyADQQAgA0EAShshBgwBCyASIAMgA0EfdSIGcyAGa60gEhBAIgZrQQFMBEADQCAGQQFrIgZBMDoAACASIAZrQQJIDQALCyAGQQJrIg8gBToAACAGQQFrQS1BKyADQQBIGzoAACASIA9rIgYgDkH/////B3NKDQILIAYgDmoiAyARQf////8Hc0oNASAAQSAgAiADIBFqIgUgBBArIAAgEyARECkgAEEwIAIgBSAEQYCABHMQKwJAAkACQCAVQcYARgRAIAxBEGoiBkEIciEDIAZBCXIhCSANIAggCCANSxsiCiEIA0AgCDUCACAJEEAhBgJAIAggCkcEQCAGIAxBEGpNDQEDQCAGQQFrIgZBMDoAACAGIAxBEGpLDQALDAELIAYgCUcNACAMQTA6ABggAyEGCyAAIAYgCSAGaxApIAhBBGoiCCANTQ0ACyAQBEAgAEHQI0EBECkLIAtBAEwgByAITXINAQNAIAg1AgAgCRBAIgYgDEEQaksEQANAIAZBAWsiBkEwOgAAIAYgDEEQaksNAAsLIAAgBkEJIAsgC0EJThsQKSALQQlrIQYgCEEEaiIIIAdPDQMgC0EJSiEDIAYhCyADDQALDAILAkAgC0EASA0AIAcgCEEEaiAHIAhLGyEKIAxBEGoiBkEIciEDIAZBCXIhDSAIIQcDQCANIAc1AgAgDRBAIgZGBEAgDEEwOgAYIAMhBgsCQCAHIAhHBEAgBiAMQRBqTQ0BA0AgBkEBayIGQTA6AAAgBiAMQRBqSw0ACwwBCyAAIAZBARApIAZBAWohBiAJIAtyRQ0AIABB0CNBARApCyAAIAYgCyANIAZrIgYgBiALShsQKSALIAZrIQsgB0EEaiIHIApPDQEgC0EATg0ACwsgAEEwIAtBEmpBEkEAECsgACAPIBIgD2sQKQwCCyALIQYLIABBMCAGQQlqQQlBABArCyAAQSAgAiAFIARBgMAAcxArIAUgAiACIAVIGyEKDAELIBMgBUEadEEfdUEJcWohCwJAIANBC0sNAEEMIANrIQZEAAAAAAAAMEAhGANAIBhEAAAAAAAAMECiIRggBkEBayIGDQALIAstAABBLUYEQCAYIAGaIBihoJohAQwBCyABIBigIBihIQELIBFBAnIhCSAFQSBxIQggEiAMKAIsIgcgB0EfdSIGcyAGa60gEhBAIgZGBEAgDEEwOgAPIAxBD2ohBgsgBkECayINIAVBD2o6AAAgBkEBa0EtQSsgB0EASBs6AAAgBEEIcSEGIAxBEGohBwNAIAciBQJ/IAGZRAAAAAAAAOBBYwRAIAGqDAELQYCAgIB4CyIHQdAtai0AACAIcjoAACAGIANBAEpyRSABIAe3oUQAAAAAAAAwQKIiAUQAAAAAAAAAAGFxIAVBAWoiByAMQRBqa0EBR3JFBEAgBUEuOgABIAVBAmohBwsgAUQAAAAAAAAAAGINAAtBfyEKQf3///8HIAkgEiANayIFaiIGayADSA0AIABBICACIAYCfwJAIANFDQAgByAMQRBqayIIQQJrIANODQAgA0ECagwBCyAHIAxBEGprIggLIgdqIgMgBBArIAAgCyAJECkgAEEwIAIgAyAEQYCABHMQKyAAIAxBEGogCBApIABBMCAHIAhrQQBBABArIAAgDSAFECkgAEEgIAIgAyAEQYDAAHMQKyADIAIgAiADSBshCgsgDEGwBGokACAKC0YBAX8gACgCPCEDIwBBEGsiACQAIAMgAacgAUIgiKcgAkH/AXEgAEEIahAUEIIBIQIgACkDCCEBIABBEGokAEJ/IAEgAhsLvgIBB38jAEEgayIDJAAgAyAAKAIcIgQ2AhAgACgCFCEFIAMgAjYCHCADIAE2AhggAyAFIARrIgE2AhQgASACaiEFQQIhBiADQRBqIQECfwNAAkACQAJAIAAoAjwgASAGIANBDGoQGBCCAUUEQCAFIAMoAgwiB0YNASAHQQBODQIMAwsgBUF/Rw0CCyAAIAAoAiwiATYCHCAAIAE2AhQgACABIAAoAjBqNgIQIAIMAwsgASAHIAEoAgQiCEsiCUEDdGoiBCAHIAhBACAJG2siCCAEKAIAajYCACABQQxBBCAJG2oiASABKAIAIAhrNgIAIAUgB2shBSAGIAlrIQYgBCEBDAELCyAAQQA2AhwgAEIANwMQIAAgACgCAEEgcjYCAEEAIAZBAkYNABogAiABKAIEawshBCADQSBqJAAgBAsJACAAKAI8EBkLIwEBf0GEOigCACIABEADQCAAKAIAEQgAIAAoAgQiAA0ACwsLvgIBBX8jAEHgAGsiAiQAIAIgADYCACMAQRBrIgMkACADIAI2AgwjAEGQAWsiACQAIABB4C1BkAEQLCIAIAJBEGoiBSIBNgIsIAAgATYCFCAAQf////8HQX4gAWsiBCAEQf////8HTxsiBDYCMCAAIAEgBGoiATYCHCAAIAE2AhAgAEGgEyACQQBBABB/GiAEBEAgACgCFCIBIAEgACgCEEZrQQA6AAALIABBkAFqJAAgA0EQaiQAAkAgBSIAQQNxBEADQCAALQAARQ0CIABBAWoiAEEDcQ0ACwsDQCAAIgFBBGohACABKAIAIgNBf3MgA0GBgoQIa3FBgIGChHhxRQ0ACwNAIAEiAEEBaiEBIAAtAAANAAsLIAAgBWtBAWoiABBWIgEEfyABIAUgABAsBUEACyEAIAJB4ABqJAAgAAvFAQICfwF8IwBBMGsiBiQAIAEoAgghBwJAQfA5LQAAQQFxBEBB7DkoAgAhAQwBC0EFQdAlEAwhAUHwOUEBOgAAQew5IAE2AgALIAYgBTYCKCAGIAQ4AiAgBiADNgIYIAYgAjgCEAJ/IAEgB0GpGiAGQQxqIAZBEGoQEiIIRAAAAAAAAPBBYyAIRAAAAAAAAAAAZnEEQCAIqwwBC0EACyEBIAYoAgwhAyAAIAEpAwA3AwAgACABKQMINwMIIAMQESAGQTBqJAALCQAgABCEARAoCwwAIAAoAghB+hsQXAsJACAAEIYBECgLVQECfyMAQTBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxECAEEwEB4gAkEwECwhACACQTBqJAAgAAs7AQF/IAEgACgCBCIFQQF1aiEBIAAoAgAhACABIAIgAyAEIAVBAXEEfyABKAIAIABqKAIABSAACxEbAAs3AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhACABIAIgA0EBcQR/IAEoAgAgAGooAgAFIAALEREACzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRDAALNQEBfyABIAAoAgQiAkEBdWohASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxECAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCQALCQAgASAAEQEACwUAQf85Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAvCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRGgALBQBB+jkL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QRhqIgEgBUcNAAsgAkKAgID8i4CAwL9/NwLkASACQoGAgIAQNwLcASACQoCAgPyLgIDAv383AtQBIAJCgICA/oeAgOD/ADcD+AEgAkKAgID+h4CA4P8ANwPwASACIAItAOwBQfgBcToA7AEgAkGAAmpBAEHAABAvGiADQZgBaiACQcACECwaIANBADYC3AMLA0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC3AMiAA0ACwsgBEHAAmokAAuyBwEIfyMAQdAAayIHJAAgACgCACEAAkACQCABKAIAIggoAtwDRQRAIAAoAggNASAAKALgAyIBIAJBAnRqIQYCQCAAKALkAyIEIABB6ANqIgMoAgAiBUkEQCAEIAZGBEAgBiAINgIAIAAgBkEEajYC5AMMAgsgBCAEIgJBBGsiAUsEQANAIAIgASgCADYCACACQQRqIQIgAUEEaiIBIARJDQALCyAAIAI2AuQDIAZBBGoiASAERwRAIAQgBCABayIBQXxxayAGIAEQMRoLIAYgCDYCAAwBCyAEIAFrQQJ1QQFqIgRBgICAgARPDQMCQCAHQSBqQf////8DIAUgAWsiAUEBdSIFIAQgBCAFSRsgAUH8////B08bIAIgAxBCIgMoAggiAiADKAIMRw0AIAMoAgQiASADKAIAIgRLBEAgAyABIAEgBGtBAnVBAWpBfm1BAnQiBGogASACIAFrIgEQMSABaiICNgIIIAMgAygCBCAEajYCBAwBCyAHQThqQQEgAiAEa0EBdSACIARGGyIBIAFBAnYgAygCEBBCIgUoAgghBAJ/IAMoAggiAiADKAIEIgFGBEAgBCECIAEMAQsgBCACIAFraiECA0AgBCABKAIANgIAIAFBBGohASAEQQRqIgQgAkcNAAsgAygCCCEBIAMoAgQLIQQgAygCACEJIAMgBSgCADYCACAFIAk2AgAgAyAFKAIENgIEIAUgBDYCBCADIAI2AgggBSABNgIIIAMoAgwhCiADIAUoAgw2AgwgBSAKNgIMIAEgBEcEQCAFIAEgBCABa0EDakF8cWo2AggLIAlFDQAgCRAoIAMoAgghAgsgAiAINgIAIAMgAygCCEEEajYCCCADIAMoAgQgBiAAKALgAyIBayICayABIAIQMTYCBCADKAII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CwsLgQECA38BfSMAQRBrIgMkACAAKAIAIQQCfSACtiIGIAZcBEBBACEAQwAAwH8MAQtBAEECIAZDAACAf1sgBkMAAID/W3IiBRshAEMAAMB/IAYgBRsLIQYgAyAAOgAMIAMgBjgCCCADIAMpAwg3AwAgBCABQf8BcSADEIEBIANBEGokAAt5AgF9An8jAEEQayIEJAAgACgCACEFIAQCfyACtiIDIANcBEBDAADAfyEDQQAMAQtDAADAfyADIANDAACAf1sgA0MAAID/W3IiABshAyAARQs6AAwgBCADOAIIIAQgBCkDCDcDACAFIAFB/wFxIAQQgQEgBEEQaiQACwukJSMAQYAIC8UcT25seSBsZWFmIG5vZGVzIHdpdGggY3VzdG9tIG1lYXN1cmUgZnVuY3Rpb25zIHNob3VsZCBtYW51YWxseSBtYXJrIHRoZW1zZWx2ZXMgYXMgZGlydHkAaXNEaXJ0eQBtYXJrRGlydHkAZGVzdHJveQBzZXREaXNwbGF5AGdldERpc3BsYXkAc2V0RmxleAAtKyAgIDBYMHgALTBYKzBYIDBYLTB4KzB4IDB4AHNldEZsZXhHcm93AGdldEZsZXhHcm93AHNldE92ZXJmbG93AGdldE92ZXJmbG93AGNhbGN1bGF0ZUxheW91dABnZXRDb21wdXRlZExheW91dAB1bnNpZ25lZCBzaG9ydABnZXRDaGlsZENvdW50AHVuc2lnbmVkIGludABzZXRKdXN0aWZ5Q29udGVudABnZXRKdXN0aWZ5Q29udGVudABhdmFpbGFibGVIZWlnaHQgaXMgaW5kZWZpbml0ZSBzbyBoZWlnaHRTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABhdmFpbGFibGVXaWR0aCBpcyBpbmRlZmluaXRlIHNvIHdpZHRoU2l6aW5nTW9kZSBtdXN0IGJlIFNpemluZ01vZGU6Ok1heENvbnRlbnQAc2V0QWxpZ25Db250ZW50AGdldEFsaWduQ29udGVudABnZXRQYXJlbnQAaW1wbGVtZW50AHNldE1heEhlaWdodFBlcmNlbnQAc2V0SGVpZ2h0UGVyY2VudABzZXRNaW5IZWlnaHRQZXJjZW50AHNldEZsZXhCYXNpc1BlcmNlbnQAc2V0UG9zaXRpb25QZXJjZW50AHNldE1hcmdpblBlcmNlbnQAc2V0TWF4V2lkdGhQZXJjZW50AHNldFdpZHRoUGVyY2VudABzZXRNaW5XaWR0aFBlcmNlbnQAc2V0UGFkZGluZ1BlcmNlbnQAaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQb2ludCB8fCBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6OlBlcmNlbnQAY3JlYXRlRGVmYXVsdAB1bml0AHJpZ2h0AGhlaWdodABzZXRNYXhIZWlnaHQAZ2V0TWF4SGVpZ2h0AHNldEhlaWdodABnZXRIZWlnaHQAc2V0TWluSGVpZ2h0AGdldE1pbkhlaWdodABnZXRDb21wdXRlZEhlaWdodABnZXRDb21wdXRlZFJpZ2h0AGxlZnQAZ2V0Q29tcHV0ZWRMZWZ0AHJlc2V0AF9fZGVzdHJ1Y3QAZmxvYXQAdWludDY0X3QAdXNlV2ViRGVmYXVsdHMAc2V0VXNlV2ViRGVmYXVsdHMAc2V0QWxpZ25JdGVtcwBnZXRBbGlnbkl0ZW1zAHNldEZsZXhCYXNpcwBnZXRGbGV4QmFzaXMAQ2Fubm90IGdldCBsYXlvdXQgcHJvcGVydGllcyBvZiBtdWx0aS1lZGdlIHNob3J0aGFuZHMAc2V0UG9pbnRTY2FsZUZhY3RvcgBNZWFzdXJlQ2FsbGJhY2tXcmFwcGVyAERpcnRpZWRDYWxsYmFja1dyYXBwZXIAQ2Fubm90IHJlc2V0IGEgbm9kZSBzdGlsbCBhdHRhY2hlZCB0byBhIG93bmVyAHNldEJvcmRlcgBnZXRCb3JkZXIAZ2V0Q29tcHV0ZWRCb3JkZXIAZ2V0TnVtYmVyAGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6TnVtYmVyAHVuc2lnbmVkIGNoYXIAdG9wAGdldENvbXB1dGVkVG9wAHNldEZsZXhXcmFwAGdldEZsZXhXcmFwAHNldEdhcABnZXRHYXAAJXAAc2V0SGVpZ2h0QXV0bwBzZXRGbGV4QmFzaXNBdXRvAHNldE1hcmdpbkF1dG8Ac2V0V2lkdGhBdXRvAFNjYWxlIGZhY3RvciBzaG91bGQgbm90IGJlIGxlc3MgdGhhbiB6ZXJvAHNldEFzcGVjdFJhdGlvAGdldEFzcGVjdFJhdGlvAHNldFBvc2l0aW9uAGdldFBvc2l0aW9uAG5vdGlmeU9uRGVzdHJ1Y3Rpb24Ac2V0RmxleERpcmVjdGlvbgBnZXRGbGV4RGlyZWN0aW9uAHNldE1hcmdpbgBnZXRNYXJnaW4AZ2V0Q29tcHV0ZWRNYXJnaW4AbmFuAGJvdHRvbQBnZXRDb21wdXRlZEJvdHRvbQBib29sAGVtc2NyaXB0ZW46OnZhbABzZXRGbGV4U2hyaW5rAGdldEZsZXhTaHJpbmsAc2V0QWx3YXlzRm9ybXNDb250YWluaW5nQmxvY2sATWVhc3VyZUNhbGxiYWNrAERpcnRpZWRDYWxsYmFjawBnZXRMZW5ndGgAd2lkdGgAc2V0TWF4V2lkdGgAZ2V0TWF4V2lkdGgAc2V0V2lkdGgAZ2V0V2lkdGgAc2V0TWluV2lkdGgAZ2V0TWluV2lkdGgAZ2V0Q29tcHV0ZWRXaWR0aABwdXNoAC9ob21lL3J1bm5lci93b3JrL3lvZ2EveW9nYS9qYXZhc2NyaXB0Ly4uL3lvZ2Evc3R5bGUvU21hbGxWYWx1ZUJ1ZmZlci5oAC9ob21lL3J1bm5lci93b3JrL3lvZ2EveW9nYS9qYXZhc2NyaXB0Ly4uL3lvZ2Evc3R5bGUvU3R5bGVWYWx1ZVBvb2wuaAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AQ2hpbGQgYWxyZWFkeSBoYXMgYSBvd25lciwgaXQgbXVzdCBiZSByZW1vdmVkIGZpcnN0LgBDYW5ub3Qgc2V0IG1lYXN1cmUgZnVuY3Rpb246IE5vZGVzIHdpdGggbWVhc3VyZSBmdW5jdGlvbnMgY2Fubm90IGhhdmUgY2hpbGRyZW4uAENhbm5vdCBhZGQgY2hpbGQ6IE5vZGVzIHdpdGggbWVhc3VyZSBmdW5jdGlvbnMgY2Fubm90IGhhdmUgY2hpbGRyZW4uAChudWxsKQBpbmRleCA8IDQwOTYgJiYgIlNtYWxsVmFsdWVCdWZmZXIgY2FuIG9ubHkgaG9sZCB1cCB0byA0MDk2IGNodW5rcyIAJXMKAAEAAAADAAAAAAAAAAIAAAADAAAAAQAAAAIAAAAAAAAAAQAAAAEAQdAkCwdpaQB2AHZpAEHgJAs33xwAAN0cAAAdHQAAFx0AAB0dAAAXHQAAaWlpZmlmaQAQHQAA4BwAAHZpaQDhHAAAJB0AAGlpaQBBoCULCbwAAAC9AAAAvgBBtCULDrwAAAC/AAAAwAAAABAdAEHQJQs+3xwAAB0dAAAXHQAAHR0AABcdAAAkHQAAHx0AACQdAABpaWlpAAAAABAdAAD1HAAAEB0AAPccAAD4HAAAJB0AQZgmCwnBAAAAwgAAAMMAQawmCxbBAAAAxAAAAMAAAAD7HAAAEB0AAPscAEHQJguiAxAdAAD7HAAAFx0AABEdAAB2aWlpaQAAABAdAAD7HAAAHR0AAHZpaWYAAAAAEB0AAPscAAAXHQAAdmlpaQAAAAAQHQAA+xwAABEdAAARHQAA/BwAABcdAAAXHQAA/BwAABEdAAD8HAAAaQBkaWkAdmlpZAAAAB0AAAAdAAD7HAAAEB0AAAAdAAAQHQAAAB0AAP8cAAAQHQAAAB0AABcdAAAQHQAAAB0AABcdAAAeHQAAdmlpaWQAAAAQHQAAAB0AAB4dAAAXHQAAAR0AAP4cAAABHQAAFx0AAP4cAAABHQAAHh0AAAEdAAAeHQAAAR0AABcdAABkaWlpAAAAAB0dAAAAHQAAFx0AAGZpaWkAAAAAEB0AAAAdAAAAHQAAGB0AABAdAAAAHQAAAB0AABgdAAABHQAAAB0AAAAdAAAAHQAAAB0AABgdAAAQHQAAAB0AABEdAAARHQAAAB0AABAdAAAAHQAA3RwAABAdAAAAHQAA9RwAABEdAAABHQAAAAAAABAdAAAAHQAAHh0AAB4dAAAXHQAAdmlpZGRpAAD9HAAAAR0AQYAqC0EZAAoAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkAEQoZGRkDCgcAAQAJCxgAAAkGCwAACwAGGQAAABkZGQBB0SoLIQ4AAAAAAAAAABkACg0ZGRkADQAAAgAJDgAAAAkADgAADgBBiysLAQwAQZcrCxUTAAAAABMAAAAACQwAAAAAAAwAAAwAQcUrCwEQAEHRKwsVDwAAAAQPAAAAAAkQAAAAAAAQAAAQAEH/KwsBEgBBiywLHhEAAAAAEQAAAAAJEgAAAAAAEgAAEgAAGgAAABoaGgBBwiwLDhoAAAAaGhoAAAAAAAAJAEHzLAsBFABB/ywLFRcAAAAAFwAAAAAJFAAAAAAAFAAAFABBrS0LARYAQbktCycVAAAAABUAAAAACRYAAAAAABYAABYAADAxMjM0NTY3ODlBQkNERUYAQYQuCwHKAEGsLgsI//////////8AQfAuCwlQIQEAAAAAAAUAQYQvCwHFAEGcLwsKxgAAAMcAAAA4HQBBtC8LAQIAQcQvCwj//////////wBBiDALAQUAQZQwCwHIAEGsMAsOxgAAAMkAAABIHQAAAAQAQcQwCwEBAEHUMAsF/////woAQZgxCwHL\";if(!ua(H)){var va=H;H=h.locateFile?h.locateFile(va,q):q+va}\nfunction wa(){var a=H;try{if(a==H&&w)return new Uint8Array(w);if(ua(a))try{var b=xa(a.slice(37)),c=new Uint8Array(b.length);for(a=0;a<b.length;++a)c[a]=b.charCodeAt(a);var d=c}catch(f){throw Error(\"Converting base64 string to bytes failed.\");}else d=void 0;var e=d;if(e)return e;throw\"both async and sync fetching of the wasm failed\";}catch(f){x(f)}}\nfunction ya(){return w||\"function\"!=typeof fetch?Promise.resolve().then(function(){return wa()}):fetch(H,{credentials:\"same-origin\"}).then(function(a){if(!a.ok)throw\"failed to load wasm binary file at '\"+H+\"'\";return a.arrayBuffer()}).catch(function(){return wa()})}function za(a){for(;0<a.length;)a.shift()(h)}function Aa(a){if(void 0===a)return\"_unknown\";a=a.replace(/[^a-zA-Z0-9_]/g,\"$\");var b=a.charCodeAt(0);return 48<=b&&57>=b?\"_\"+a:a}\nfunction Ba(a,b){a=Aa(a);return function(){return b.apply(this,arguments)}}var J=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Ca=[];function Da(a){var b=Error,c=Ba(a,function(d){this.name=a;this.message=d;d=Error(d).stack;void 0!==d&&(this.stack=this.toString()+\"\\n\"+d.replace(/^Error(:[^\\n]*)?\\n/,\"\"))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+\": \"+this.message};return c}var K=void 0;\nfunction L(a){throw new K(a);}var M=a=>{a||L(\"Cannot use deleted val. handle = \"+a);return J[a].value},Ea=a=>{switch(a){case void 0:return 1;case null:return 2;case !0:return 3;case !1:return 4;default:var b=Ca.length?Ca.pop():J.length;J[b]={ga:1,value:a};return b}},Fa=void 0,Ga=void 0;function N(a){for(var b=\"\";A[a];)b+=Ga[A[a++]];return b}var O=[];function Ha(){for(;O.length;){var a=O.pop();a.M.$=!1;a[\"delete\"]()}}var P=void 0,Q={};\nfunction Ia(a,b){for(void 0===b&&L(\"ptr should not be undefined\");a.R;)b=a.ba(b),a=a.R;return b}var R={};function Ja(a){a=Ka(a);var b=N(a);S(a);return b}function La(a,b){var c=R[a];void 0===c&&L(b+\" has unknown type \"+Ja(a));return c}function Ma(){}var Na=!1;function Oa(a){--a.count.value;0===a.count.value&&(a.T?a.U.W(a.T):a.P.N.W(a.O))}function Pa(a,b,c){if(b===c)return a;if(void 0===c.R)return null;a=Pa(a,b,c.R);return null===a?null:c.na(a)}var Qa={};function Ra(a,b){b=Ia(a,b);return Q[b]}\nvar Sa=void 0;function Ta(a){throw new Sa(a);}function Ua(a,b){b.P&&b.O||Ta(\"makeClassHandle requires ptr and ptrType\");!!b.U!==!!b.T&&Ta(\"Both smartPtrType and smartPtr must be specified\");b.count={value:1};return T(Object.create(a,{M:{value:b}}))}function T(a){if(\"undefined\"===typeof FinalizationRegistry)return T=b=>b,a;Na=new FinalizationRegistry(b=>{Oa(b.M)});T=b=>{var c=b.M;c.T&&Na.register(b,{M:c},b);return b};Ma=b=>{Na.unregister(b)};return T(a)}var Va={};\nfunction Wa(a){for(;a.length;){var b=a.pop();a.pop()(b)}}function Xa(a){return this.fromWireType(D[a>>2])}var U={},Ya={};function V(a,b,c){function d(k){k=c(k);k.length!==a.length&&Ta(\"Mismatched type converter count\");for(var m=0;m<a.length;++m)W(a[m],k[m])}a.forEach(function(k){Ya[k]=b});var e=Array(b.length),f=[],g=0;b.forEach((k,m)=>{R.hasOwnProperty(k)?e[m]=R[k]:(f.push(k),U.hasOwnProperty(k)||(U[k]=[]),U[k].push(()=>{e[m]=R[k];++g;g===f.length&&d(e)}))});0===f.length&&d(e)}\nfunction Za(a){switch(a){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(\"Unknown type size: \"+a);}}\nfunction W(a,b,c={}){if(!(\"argPackAdvance\"in b))throw new TypeError(\"registerType registeredInstance requires argPackAdvance\");var d=b.name;a||L('type \"'+d+'\" must have a positive integer typeid pointer');if(R.hasOwnProperty(a)){if(c.ua)return;L(\"Cannot register type '\"+d+\"' twice\")}R[a]=b;delete Ya[a];U.hasOwnProperty(a)&&(b=U[a],delete U[a],b.forEach(e=>e()))}function $a(a){L(a.M.P.N.name+\" instance already deleted\")}function X(){}\nfunction ab(a,b,c){if(void 0===a[b].S){var d=a[b];a[b]=function(){a[b].S.hasOwnProperty(arguments.length)||L(\"Function '\"+c+\"' called with an invalid number of arguments (\"+arguments.length+\") - expects one of (\"+a[b].S+\")!\");return a[b].S[arguments.length].apply(this,arguments)};a[b].S=[];a[b].S[d.Z]=d}}\nfunction bb(a,b){h.hasOwnProperty(a)?(L(\"Cannot register public name '\"+a+\"' twice\"),ab(h,a,a),h.hasOwnProperty(void 0)&&L(\"Cannot register multiple overloads of a function with the same number of arguments (undefined)!\"),h[a].S[void 0]=b):h[a]=b}function cb(a,b,c,d,e,f,g,k){this.name=a;this.constructor=b;this.X=c;this.W=d;this.R=e;this.pa=f;this.ba=g;this.na=k;this.ja=[]}\nfunction db(a,b,c){for(;b!==c;)b.ba||L(\"Expected null or instance of \"+c.name+\", got an instance of \"+b.name),a=b.ba(a),b=b.R;return a}function eb(a,b){if(null===b)return this.ea&&L(\"null is not a valid \"+this.name),0;b.M||L('Cannot pass \"'+fb(b)+'\" as a '+this.name);b.M.O||L(\"Cannot pass deleted object as a pointer of type \"+this.name);return db(b.M.O,b.M.P.N,this.N)}\nfunction gb(a,b){if(null===b){this.ea&&L(\"null is not a valid \"+this.name);if(this.da){var c=this.fa();null!==a&&a.push(this.W,c);return c}return 0}b.M||L('Cannot pass \"'+fb(b)+'\" as a '+this.name);b.M.O||L(\"Cannot pass deleted object as a pointer of type \"+this.name);!this.ca&&b.M.P.ca&&L(\"Cannot convert argument of type \"+(b.M.U?b.M.U.name:b.M.P.name)+\" to parameter type \"+this.name);c=db(b.M.O,b.M.P.N,this.N);if(this.da)switch(void 0===b.M.T&&L(\"Passing raw pointer to smart pointer is illegal\"),\nthis.Ba){case 0:b.M.U===this?c=b.M.T:L(\"Cannot convert argument of type \"+(b.M.U?b.M.U.name:b.M.P.name)+\" to parameter type \"+this.name);break;case 1:c=b.M.T;break;case 2:if(b.M.U===this)c=b.M.T;else{var d=b.clone();c=this.xa(c,Ea(function(){d[\"delete\"]()}));null!==a&&a.push(this.W,c)}break;default:L(\"Unsupporting sharing policy\")}return c}\nfunction hb(a,b){if(null===b)return this.ea&&L(\"null is not a valid \"+this.name),0;b.M||L('Cannot pass \"'+fb(b)+'\" as a '+this.name);b.M.O||L(\"Cannot pass deleted object as a pointer of type \"+this.name);b.M.P.ca&&L(\"Cannot convert argument of type \"+b.M.P.name+\" to parameter type \"+this.name);return db(b.M.O,b.M.P.N,this.N)}\nfunction Y(a,b,c,d){this.name=a;this.N=b;this.ea=c;this.ca=d;this.da=!1;this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0;void 0!==b.R?this.toWireType=gb:(this.toWireType=d?eb:hb,this.V=null)}function ib(a,b){h.hasOwnProperty(a)||Ta(\"Replacing nonexistant public symbol\");h[a]=b;h[a].Z=void 0}\nfunction jb(a,b){var c=[];return function(){c.length=0;Object.assign(c,arguments);if(a.includes(\"j\")){var d=h[\"dynCall_\"+a];d=c&&c.length?d.apply(null,[b].concat(c)):d.call(null,b)}else d=oa.get(b).apply(null,c);return d}}function Z(a,b){a=N(a);var c=a.includes(\"j\")?jb(a,b):oa.get(b);\"function\"!=typeof c&&L(\"unknown function pointer with signature \"+a+\": \"+b);return c}var mb=void 0;\nfunction nb(a,b){function c(f){e[f]||R[f]||(Ya[f]?Ya[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new mb(a+\": \"+d.map(Ja).join([\", \"]));}\nfunction ob(a,b,c,d,e){var f=b.length;2>f&&L(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");var g=null!==b[1]&&null!==c,k=!1;for(c=1;c<b.length;++c)if(null!==b[c]&&void 0===b[c].V){k=!0;break}var m=\"void\"!==b[0].name,l=f-2,n=Array(l),p=[],r=[];return function(){arguments.length!==l&&L(\"function \"+a+\" called with \"+arguments.length+\" arguments, expected \"+l+\" args!\");r.length=0;p.length=g?2:1;p[0]=e;if(g){var u=b[1].toWireType(r,this);p[1]=u}for(var t=0;t<l;++t)n[t]=\nb[t+2].toWireType(r,arguments[t]),p.push(n[t]);t=d.apply(null,p);if(k)Wa(r);else for(var y=g?1:2;y<b.length;y++){var B=1===y?u:n[y-2];null!==b[y].V&&b[y].V(B)}u=m?b[0].fromWireType(t):void 0;return u}}function pb(a,b){for(var c=[],d=0;d<a;d++)c.push(E[b+4*d>>2]);return c}function qb(a){4<a&&0===--J[a].ga&&(J[a]=void 0,Ca.push(a))}function fb(a){if(null===a)return\"null\";var b=typeof a;return\"object\"===b||\"array\"===b||\"function\"===b?a.toString():\"\"+a}\nfunction rb(a,b){switch(b){case 2:return function(c){return this.fromWireType(la[c>>2])};case 3:return function(c){return this.fromWireType(ma[c>>3])};default:throw new TypeError(\"Unknown float type: \"+a);}}\nfunction sb(a,b,c){switch(b){case 0:return c?function(d){return ja[d]}:function(d){return A[d]};case 1:return c?function(d){return C[d>>1]}:function(d){return ka[d>>1]};case 2:return c?function(d){return D[d>>2]}:function(d){return E[d>>2]};default:throw new TypeError(\"Unknown integer type: \"+a);}}function tb(a,b){for(var c=\"\",d=0;!(d>=b/2);++d){var e=C[a+2*d>>1];if(0==e)break;c+=String.fromCharCode(e)}return c}\nfunction ub(a,b,c){void 0===c&&(c=2147483647);if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=0;e<c;++e)C[b>>1]=a.charCodeAt(e),b+=2;C[b>>1]=0;return b-d}function vb(a){return 2*a.length}function wb(a,b){for(var c=0,d=\"\";!(c>=b/4);){var e=D[a+4*c>>2];if(0==e)break;++c;65536<=e?(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023)):d+=String.fromCharCode(e)}return d}\nfunction xb(a,b,c){void 0===c&&(c=2147483647);if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e<a.length;++e){var f=a.charCodeAt(e);if(55296<=f&&57343>=f){var g=a.charCodeAt(++e);f=65536+((f&1023)<<10)|g&1023}D[b>>2]=f;b+=4;if(b+4>c)break}D[b>>2]=0;return b-d}function yb(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);55296<=d&&57343>=d&&++c;b+=4}return b}var zb={};function Ab(a){var b=zb[a];return void 0===b?N(a):b}var Bb=[];function Cb(a){var b=Bb.length;Bb.push(a);return b}\nfunction Db(a,b){for(var c=Array(a),d=0;d<a;++d)c[d]=La(E[b+4*d>>2],\"parameter \"+d);return c}var Eb=[],Fb=[null,[],[]];K=h.BindingError=Da(\"BindingError\");h.count_emval_handles=function(){for(var a=0,b=5;b<J.length;++b)void 0!==J[b]&&++a;return a};h.get_first_emval=function(){for(var a=5;a<J.length;++a)if(void 0!==J[a])return J[a];return null};Fa=h.PureVirtualError=Da(\"PureVirtualError\");for(var Gb=Array(256),Hb=0;256>Hb;++Hb)Gb[Hb]=String.fromCharCode(Hb);Ga=Gb;h.getInheritedInstanceCount=function(){return Object.keys(Q).length};\nh.getLiveInheritedInstances=function(){var a=[],b;for(b in Q)Q.hasOwnProperty(b)&&a.push(Q[b]);return a};h.flushPendingDeletes=Ha;h.setDelayFunction=function(a){P=a;O.length&&P&&P(Ha)};Sa=h.InternalError=Da(\"InternalError\");X.prototype.isAliasOf=function(a){if(!(this instanceof X&&a instanceof X))return!1;var b=this.M.P.N,c=this.M.O,d=a.M.P.N;for(a=a.M.O;b.R;)c=b.ba(c),b=b.R;for(;d.R;)a=d.ba(a),d=d.R;return b===d&&c===a};\nX.prototype.clone=function(){this.M.O||$a(this);if(this.M.aa)return this.M.count.value+=1,this;var a=T,b=Object,c=b.create,d=Object.getPrototypeOf(this),e=this.M;a=a(c.call(b,d,{M:{value:{count:e.count,$:e.$,aa:e.aa,O:e.O,P:e.P,T:e.T,U:e.U}}}));a.M.count.value+=1;a.M.$=!1;return a};X.prototype[\"delete\"]=function(){this.M.O||$a(this);this.M.$&&!this.M.aa&&L(\"Object already scheduled for deletion\");Ma(this);Oa(this.M);this.M.aa||(this.M.T=void 0,this.M.O=void 0)};X.prototype.isDeleted=function(){return!this.M.O};\nX.prototype.deleteLater=function(){this.M.O||$a(this);this.M.$&&!this.M.aa&&L(\"Object already scheduled for deletion\");O.push(this);1===O.length&&P&&P(Ha);this.M.$=!0;return this};Y.prototype.qa=function(a){this.ka&&(a=this.ka(a));return a};Y.prototype.ha=function(a){this.W&&this.W(a)};Y.prototype.argPackAdvance=8;Y.prototype.readValueFromPointer=Xa;Y.prototype.deleteObject=function(a){if(null!==a)a[\"delete\"]()};\nY.prototype.fromWireType=function(a){function b(){return this.da?Ua(this.N.X,{P:this.wa,O:c,U:this,T:a}):Ua(this.N.X,{P:this,O:a})}var c=this.qa(a);if(!c)return this.ha(a),null;var d=Ra(this.N,c);if(void 0!==d){if(0===d.M.count.value)return d.M.O=c,d.M.T=a,d.clone();d=d.clone();this.ha(a);return d}d=this.N.pa(c);d=Qa[d];if(!d)return b.call(this);d=this.ca?d.la:d.pointerType;var e=Pa(c,this.N,d.N);return null===e?b.call(this):this.da?Ua(d.N.X,{P:d,O:e,U:this,T:a}):Ua(d.N.X,{P:d,O:e})};\nmb=h.UnboundTypeError=Da(\"UnboundTypeError\");\nvar xa=\"function\"==typeof atob?atob:function(a){var b=\"\",c=0;a=a.replace(/[^A-Za-z0-9\\+\\/=]/g,\"\");do{var d=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(a.charAt(c++));var e=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(a.charAt(c++));var f=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(a.charAt(c++));var g=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(a.charAt(c++));d=d<<2|e>>4;\ne=(e&15)<<4|f>>2;var k=(f&3)<<6|g;b+=String.fromCharCode(d);64!==f&&(b+=String.fromCharCode(e));64!==g&&(b+=String.fromCharCode(k))}while(c<a.length);return b},Jb={l:function(a,b,c,d){x(\"Assertion failed: \"+(a?z(A,a):\"\")+\", at: \"+[b?b?z(A,b):\"\":\"unknown filename\",c,d?d?z(A,d):\"\":\"unknown function\"])},q:function(a,b,c){a=N(a);b=La(b,\"wrapper\");c=M(c);var d=[].slice,e=b.N,f=e.X,g=e.R.X,k=e.R.constructor;a=Ba(a,function(){e.R.ja.forEach(function(l){if(this[l]===g[l])throw new Fa(\"Pure virtual function \"+\nl+\" must be implemented in JavaScript\");}.bind(this));Object.defineProperty(this,\"__parent\",{value:f});this.__construct.apply(this,d.call(arguments))});f.__construct=function(){this===f&&L(\"Pass correct 'this' to __construct\");var l=k.implement.apply(void 0,[this].concat(d.call(arguments)));Ma(l);var n=l.M;l.notifyOnDestruction();n.aa=!0;Object.defineProperties(this,{M:{value:n}});T(this);l=n.O;l=Ia(e,l);Q.hasOwnProperty(l)?L(\"Tried to register registered instance: \"+l):Q[l]=this};f.__destruct=function(){this===\nf&&L(\"Pass correct 'this' to __destruct\");Ma(this);var l=this.M.O;l=Ia(e,l);Q.hasOwnProperty(l)?delete Q[l]:L(\"Tried to unregister unregistered instance: \"+l)};a.prototype=Object.create(f);for(var m in c)a.prototype[m]=c[m];return Ea(a)},j:function(a){var b=Va[a];delete Va[a];var c=b.fa,d=b.W,e=b.ia,f=e.map(g=>g.ta).concat(e.map(g=>g.za));V([a],f,g=>{var k={};e.forEach((m,l)=>{var n=g[l],p=m.ra,r=m.sa,u=g[l+e.length],t=m.ya,y=m.Aa;k[m.oa]={read:B=>n.fromWireType(p(r,B)),write:(B,ba)=>{var I=[];t(y,\nB,u.toWireType(I,ba));Wa(I)}}});return[{name:b.name,fromWireType:function(m){var l={},n;for(n in k)l[n]=k[n].read(m);d(m);return l},toWireType:function(m,l){for(var n in k)if(!(n in l))throw new TypeError('Missing field: \"'+n+'\"');var p=c();for(n in k)k[n].write(p,l[n]);null!==m&&m.push(d,p);return p},argPackAdvance:8,readValueFromPointer:Xa,V:d}]})},v:function(){},B:function(a,b,c,d,e){var f=Za(c);b=N(b);W(a,{name:b,fromWireType:function(g){return!!g},toWireType:function(g,k){return k?d:e},argPackAdvance:8,\nreadValueFromPointer:function(g){if(1===c)var k=ja;else if(2===c)k=C;else if(4===c)k=D;else throw new TypeError(\"Unknown boolean type size: \"+b);return this.fromWireType(k[g>>f])},V:null})},f:function(a,b,c,d,e,f,g,k,m,l,n,p,r){n=N(n);f=Z(e,f);k&&(k=Z(g,k));l&&(l=Z(m,l));r=Z(p,r);var u=Aa(n);bb(u,function(){nb(\"Cannot construct \"+n+\" due to unbound types\",[d])});V([a,b,c],d?[d]:[],function(t){t=t[0];if(d){var y=t.N;var B=y.X}else B=X.prototype;t=Ba(u,function(){if(Object.getPrototypeOf(this)!==ba)throw new K(\"Use 'new' to construct \"+\nn);if(void 0===I.Y)throw new K(n+\" has no accessible constructor\");var kb=I.Y[arguments.length];if(void 0===kb)throw new K(\"Tried to invoke ctor of \"+n+\" with invalid number of parameters (\"+arguments.length+\") - expected (\"+Object.keys(I.Y).toString()+\") parameters instead!\");return kb.apply(this,arguments)});var ba=Object.create(B,{constructor:{value:t}});t.prototype=ba;var I=new cb(n,t,ba,r,y,f,k,l);y=new Y(n,I,!0,!1);B=new Y(n+\"*\",I,!1,!1);var lb=new Y(n+\" const*\",I,!1,!0);Qa[a]={pointerType:B,\nla:lb};ib(u,t);return[y,B,lb]})},d:function(a,b,c,d,e,f,g){var k=pb(c,d);b=N(b);f=Z(e,f);V([],[a],function(m){function l(){nb(\"Cannot call \"+n+\" due to unbound types\",k)}m=m[0];var n=m.name+\".\"+b;b.startsWith(\"@@\")&&(b=Symbol[b.substring(2)]);var p=m.N.constructor;void 0===p[b]?(l.Z=c-1,p[b]=l):(ab(p,b,n),p[b].S[c-1]=l);V([],k,function(r){r=ob(n,[r[0],null].concat(r.slice(1)),null,f,g);void 0===p[b].S?(r.Z=c-1,p[b]=r):p[b].S[c-1]=r;return[]});return[]})},p:function(a,b,c,d,e,f){0<b||x();var g=pb(b,\nc);e=Z(d,e);V([],[a],function(k){k=k[0];var m=\"constructor \"+k.name;void 0===k.N.Y&&(k.N.Y=[]);if(void 0!==k.N.Y[b-1])throw new K(\"Cannot register multiple constructors with identical number of parameters (\"+(b-1)+\") for class '\"+k.name+\"'! Overload resolution is currently only performed using the parameter count, not actual type info!\");k.N.Y[b-1]=()=>{nb(\"Cannot construct \"+k.name+\" due to unbound types\",g)};V([],g,function(l){l.splice(1,0,null);k.N.Y[b-1]=ob(m,l,null,e,f);return[]});return[]})},\na:function(a,b,c,d,e,f,g,k){var m=pb(c,d);b=N(b);f=Z(e,f);V([],[a],function(l){function n(){nb(\"Cannot call \"+p+\" due to unbound types\",m)}l=l[0];var p=l.name+\".\"+b;b.startsWith(\"@@\")&&(b=Symbol[b.substring(2)]);k&&l.N.ja.push(b);var r=l.N.X,u=r[b];void 0===u||void 0===u.S&&u.className!==l.name&&u.Z===c-2?(n.Z=c-2,n.className=l.name,r[b]=n):(ab(r,b,p),r[b].S[c-2]=n);V([],m,function(t){t=ob(p,t,l,f,g);void 0===r[b].S?(t.Z=c-2,r[b]=t):r[b].S[c-2]=t;return[]});return[]})},A:function(a,b){b=N(b);W(a,\n{name:b,fromWireType:function(c){var d=M(c);qb(c);return d},toWireType:function(c,d){return Ea(d)},argPackAdvance:8,readValueFromPointer:Xa,V:null})},n:function(a,b,c){c=Za(c);b=N(b);W(a,{name:b,fromWireType:function(d){return d},toWireType:function(d,e){return e},argPackAdvance:8,readValueFromPointer:rb(b,c),V:null})},e:function(a,b,c,d,e){b=N(b);-1===e&&(e=4294967295);e=Za(c);var f=k=>k;if(0===d){var g=32-8*c;f=k=>k<<g>>>g}c=b.includes(\"unsigned\")?function(k,m){return m>>>0}:function(k,m){return m};\nW(a,{name:b,fromWireType:f,toWireType:c,argPackAdvance:8,readValueFromPointer:sb(b,e,0!==d),V:null})},b:function(a,b,c){function d(f){f>>=2;var g=E;return new e(ia,g[f+1],g[f])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];c=N(c);W(a,{name:c,fromWireType:d,argPackAdvance:8,readValueFromPointer:d},{ua:!0})},o:function(a,b){b=N(b);var c=\"std::string\"===b;W(a,{name:b,fromWireType:function(d){var e=E[d>>2],f=d+4;if(c)for(var g=f,k=0;k<=e;++k){var m=\nf+k;if(k==e||0==A[m]){g=g?z(A,g,m-g):\"\";if(void 0===l)var l=g;else l+=String.fromCharCode(0),l+=g;g=m+1}}else{l=Array(e);for(k=0;k<e;++k)l[k]=String.fromCharCode(A[f+k]);l=l.join(\"\")}S(d);return l},toWireType:function(d,e){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var f,g=\"string\"==typeof e;g||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||L(\"Cannot pass non-string to std::string\");if(c&&g){var k=0;for(f=0;f<e.length;++f){var m=e.charCodeAt(f);127>=m?k++:2047>=\nm?k+=2:55296<=m&&57343>=m?(k+=4,++f):k+=3}f=k}else f=e.length;k=Ib(4+f+1);m=k+4;E[k>>2]=f;if(c&&g){if(g=m,m=f+1,f=A,0<m){m=g+m-1;for(var l=0;l<e.length;++l){var n=e.charCodeAt(l);if(55296<=n&&57343>=n){var p=e.charCodeAt(++l);n=65536+((n&1023)<<10)|p&1023}if(127>=n){if(g>=m)break;f[g++]=n}else{if(2047>=n){if(g+1>=m)break;f[g++]=192|n>>6}else{if(65535>=n){if(g+2>=m)break;f[g++]=224|n>>12}else{if(g+3>=m)break;f[g++]=240|n>>18;f[g++]=128|n>>12&63}f[g++]=128|n>>6&63}f[g++]=128|n&63}}f[g]=0}}else if(g)for(g=\n0;g<f;++g)l=e.charCodeAt(g),255<l&&(S(m),L(\"String has UTF-16 code units that do not fit in 8 bits\")),A[m+g]=l;else for(g=0;g<f;++g)A[m+g]=e[g];null!==d&&d.push(S,k);return k},argPackAdvance:8,readValueFromPointer:Xa,V:function(d){S(d)}})},i:function(a,b,c){c=N(c);if(2===b){var d=tb;var e=ub;var f=vb;var g=()=>ka;var k=1}else 4===b&&(d=wb,e=xb,f=yb,g=()=>E,k=2);W(a,{name:c,fromWireType:function(m){for(var l=E[m>>2],n=g(),p,r=m+4,u=0;u<=l;++u){var t=m+4+u*b;if(u==l||0==n[t>>k])r=d(r,t-r),void 0===\np?p=r:(p+=String.fromCharCode(0),p+=r),r=t+b}S(m);return p},toWireType:function(m,l){\"string\"!=typeof l&&L(\"Cannot pass non-string to C++ string type \"+c);var n=f(l),p=Ib(4+n+b);E[p>>2]=n>>k;e(l,p+4,n+b);null!==m&&m.push(S,p);return p},argPackAdvance:8,readValueFromPointer:Xa,V:function(m){S(m)}})},k:function(a,b,c,d,e,f){Va[a]={name:N(b),fa:Z(c,d),W:Z(e,f),ia:[]}},h:function(a,b,c,d,e,f,g,k,m,l){Va[a].ia.push({oa:N(b),ta:c,ra:Z(d,e),sa:f,za:g,ya:Z(k,m),Aa:l})},C:function(a,b){b=N(b);W(a,{va:!0,name:b,\nargPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(a,b,c,d,e){a=Bb[a];b=M(b);c=Ab(c);var f=[];E[d>>2]=Ea(f);return a(b,c,f,e)},t:function(a,b,c,d){a=Bb[a];b=M(b);c=Ab(c);a(b,c,null,d)},g:qb,m:function(a,b){var c=Db(a,b),d=c[0];b=d.name+\"_$\"+c.slice(1).map(function(g){return g.name}).join(\"_\")+\"$\";var e=Eb[b];if(void 0!==e)return e;var f=Array(a-1);e=Cb((g,k,m,l)=>{for(var n=0,p=0;p<a-1;++p)f[p]=c[p+1].readValueFromPointer(l+n),n+=c[p+1].argPackAdvance;g=g[k].apply(g,\nf);for(p=0;p<a-1;++p)c[p+1].ma&&c[p+1].ma(f[p]);if(!d.va)return d.toWireType(m,g)});return Eb[b]=e},D:function(a){4<a&&(J[a].ga+=1)},r:function(a){var b=M(a);Wa(b);qb(a)},c:function(){x(\"\")},x:function(a,b,c){A.copyWithin(a,b,b+c)},w:function(a){var b=A.length;a>>>=0;if(2147483648<a)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);var e=Math;d=Math.max(a,d);e=e.min.call(e,2147483648,d+(65536-d%65536)%65536);a:{try{fa.grow(e-ia.byteLength+65535>>>16);na();var f=1;break a}catch(g){}f=\nvoid 0}if(f)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(a,b,c,d){for(var e=0,f=0;f<c;f++){var g=E[b>>2],k=E[b+4>>2];b+=8;for(var m=0;m<k;m++){var l=A[g+m],n=Fb[a];0===l||10===l?((1===a?ea:v)(z(n,0)),n.length=0):n.push(l)}e+=k}E[d>>2]=e;return 0}};\n(function(){function a(e){h.asm=e.exports;fa=h.asm.E;na();oa=h.asm.J;qa.unshift(h.asm.F);F--;h.monitorRunDependencies&&h.monitorRunDependencies(F);0==F&&(null!==ta&&(clearInterval(ta),ta=null),G&&(e=G,G=null,e()))}function b(e){a(e.instance)}function c(e){return ya().then(function(f){return WebAssembly.instantiate(f,d)}).then(function(f){return f}).then(e,function(f){v(\"failed to asynchronously prepare wasm: \"+f);x(f)})}var d={a:Jb};F++;h.monitorRunDependencies&&h.monitorRunDependencies(F);if(h.instantiateWasm)try{return h.instantiateWasm(d,\na)}catch(e){v(\"Module.instantiateWasm callback failed with error: \"+e),ca(e)}(function(){return w||\"function\"!=typeof WebAssembly.instantiateStreaming||ua(H)||\"function\"!=typeof fetch?c(b):fetch(H,{credentials:\"same-origin\"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,function(f){v(\"wasm streaming compile failed: \"+f);v(\"falling back to ArrayBuffer instantiation\");return c(b)})})})().catch(ca);return{}})();\nh.___wasm_call_ctors=function(){return(h.___wasm_call_ctors=h.asm.F).apply(null,arguments)};var Ka=h.___getTypeName=function(){return(Ka=h.___getTypeName=h.asm.G).apply(null,arguments)};h.__embind_initialize_bindings=function(){return(h.__embind_initialize_bindings=h.asm.H).apply(null,arguments)};var Ib=h._malloc=function(){return(Ib=h._malloc=h.asm.I).apply(null,arguments)},S=h._free=function(){return(S=h._free=h.asm.K).apply(null,arguments)};\nh.dynCall_jiji=function(){return(h.dynCall_jiji=h.asm.L).apply(null,arguments)};var Kb;G=function Lb(){Kb||Mb();Kb||(G=Lb)};\nfunction Mb(){function a(){if(!Kb&&(Kb=!0,h.calledRun=!0,!ha)){za(qa);aa(h);if(h.onRuntimeInitialized)h.onRuntimeInitialized();if(h.postRun)for(\"function\"==typeof h.postRun&&(h.postRun=[h.postRun]);h.postRun.length;){var b=h.postRun.shift();ra.unshift(b)}za(ra)}}if(!(0<F)){if(h.preRun)for(\"function\"==typeof h.preRun&&(h.preRun=[h.preRun]);h.preRun.length;)sa();za(pa);0<F||(h.setStatus?(h.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){h.setStatus(\"\")},1);a()},1)):a())}}\nif(h.preInit)for(\"function\"==typeof h.preInit&&(h.preInit=[h.preInit]);0<h.preInit.length;)h.preInit.pop()();Mb();\n\n\n return loadYoga.ready\n}\n);\n})();\nexport default loadYoga;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// @generated by enums.py\n\nexport let Align = /*#__PURE__*/function (Align) {\n Align[Align[\"Auto\"] = 0] = \"Auto\";\n Align[Align[\"FlexStart\"] = 1] = \"FlexStart\";\n Align[Align[\"Center\"] = 2] = \"Center\";\n Align[Align[\"FlexEnd\"] = 3] = \"FlexEnd\";\n Align[Align[\"Stretch\"] = 4] = \"Stretch\";\n Align[Align[\"Baseline\"] = 5] = \"Baseline\";\n Align[Align[\"SpaceBetween\"] = 6] = \"SpaceBetween\";\n Align[Align[\"SpaceAround\"] = 7] = \"SpaceAround\";\n Align[Align[\"SpaceEvenly\"] = 8] = \"SpaceEvenly\";\n return Align;\n}({});\nexport let Dimension = /*#__PURE__*/function (Dimension) {\n Dimension[Dimension[\"Width\"] = 0] = \"Width\";\n Dimension[Dimension[\"Height\"] = 1] = \"Height\";\n return Dimension;\n}({});\nexport let Direction = /*#__PURE__*/function (Direction) {\n Direction[Direction[\"Inherit\"] = 0] = \"Inherit\";\n Direction[Direction[\"LTR\"] = 1] = \"LTR\";\n Direction[Direction[\"RTL\"] = 2] = \"RTL\";\n return Direction;\n}({});\nexport let Display = /*#__PURE__*/function (Display) {\n Display[Display[\"Flex\"] = 0] = \"Flex\";\n Display[Display[\"None\"] = 1] = \"None\";\n return Display;\n}({});\nexport let Edge = /*#__PURE__*/function (Edge) {\n Edge[Edge[\"Left\"] = 0] = \"Left\";\n Edge[Edge[\"Top\"] = 1] = \"Top\";\n Edge[Edge[\"Right\"] = 2] = \"Right\";\n Edge[Edge[\"Bottom\"] = 3] = \"Bottom\";\n Edge[Edge[\"Start\"] = 4] = \"Start\";\n Edge[Edge[\"End\"] = 5] = \"End\";\n Edge[Edge[\"Horizontal\"] = 6] = \"Horizontal\";\n Edge[Edge[\"Vertical\"] = 7] = \"Vertical\";\n Edge[Edge[\"All\"] = 8] = \"All\";\n return Edge;\n}({});\nexport let Errata = /*#__PURE__*/function (Errata) {\n Errata[Errata[\"None\"] = 0] = \"None\";\n Errata[Errata[\"StretchFlexBasis\"] = 1] = \"StretchFlexBasis\";\n Errata[Errata[\"AbsolutePositioningIncorrect\"] = 2] = \"AbsolutePositioningIncorrect\";\n Errata[Errata[\"AbsolutePercentAgainstInnerSize\"] = 4] = \"AbsolutePercentAgainstInnerSize\";\n Errata[Errata[\"All\"] = 2147483647] = \"All\";\n Errata[Errata[\"Classic\"] = 2147483646] = \"Classic\";\n return Errata;\n}({});\nexport let ExperimentalFeature = /*#__PURE__*/function (ExperimentalFeature) {\n ExperimentalFeature[ExperimentalFeature[\"WebFlexBasis\"] = 0] = \"WebFlexBasis\";\n return ExperimentalFeature;\n}({});\nexport let FlexDirection = /*#__PURE__*/function (FlexDirection) {\n FlexDirection[FlexDirection[\"Column\"] = 0] = \"Column\";\n FlexDirection[FlexDirection[\"ColumnReverse\"] = 1] = \"ColumnReverse\";\n FlexDirection[FlexDirection[\"Row\"] = 2] = \"Row\";\n FlexDirection[FlexDirection[\"RowReverse\"] = 3] = \"RowReverse\";\n return FlexDirection;\n}({});\nexport let Gutter = /*#__PURE__*/function (Gutter) {\n Gutter[Gutter[\"Column\"] = 0] = \"Column\";\n Gutter[Gutter[\"Row\"] = 1] = \"Row\";\n Gutter[Gutter[\"All\"] = 2] = \"All\";\n return Gutter;\n}({});\nexport let Justify = /*#__PURE__*/function (Justify) {\n Justify[Justify[\"FlexStart\"] = 0] = \"FlexStart\";\n Justify[Justify[\"Center\"] = 1] = \"Center\";\n Justify[Justify[\"FlexEnd\"] = 2] = \"FlexEnd\";\n Justify[Justify[\"SpaceBetween\"] = 3] = \"SpaceBetween\";\n Justify[Justify[\"SpaceAround\"] = 4] = \"SpaceAround\";\n Justify[Justify[\"SpaceEvenly\"] = 5] = \"SpaceEvenly\";\n return Justify;\n}({});\nexport let LogLevel = /*#__PURE__*/function (LogLevel) {\n LogLevel[LogLevel[\"Error\"] = 0] = \"Error\";\n LogLevel[LogLevel[\"Warn\"] = 1] = \"Warn\";\n LogLevel[LogLevel[\"Info\"] = 2] = \"Info\";\n LogLevel[LogLevel[\"Debug\"] = 3] = \"Debug\";\n LogLevel[LogLevel[\"Verbose\"] = 4] = \"Verbose\";\n LogLevel[LogLevel[\"Fatal\"] = 5] = \"Fatal\";\n return LogLevel;\n}({});\nexport let MeasureMode = /*#__PURE__*/function (MeasureMode) {\n MeasureMode[MeasureMode[\"Undefined\"] = 0] = \"Undefined\";\n MeasureMode[MeasureMode[\"Exactly\"] = 1] = \"Exactly\";\n MeasureMode[MeasureMode[\"AtMost\"] = 2] = \"AtMost\";\n return MeasureMode;\n}({});\nexport let NodeType = /*#__PURE__*/function (NodeType) {\n NodeType[NodeType[\"Default\"] = 0] = \"Default\";\n NodeType[NodeType[\"Text\"] = 1] = \"Text\";\n return NodeType;\n}({});\nexport let Overflow = /*#__PURE__*/function (Overflow) {\n Overflow[Overflow[\"Visible\"] = 0] = \"Visible\";\n Overflow[Overflow[\"Hidden\"] = 1] = \"Hidden\";\n Overflow[Overflow[\"Scroll\"] = 2] = \"Scroll\";\n return Overflow;\n}({});\nexport let PositionType = /*#__PURE__*/function (PositionType) {\n PositionType[PositionType[\"Static\"] = 0] = \"Static\";\n PositionType[PositionType[\"Relative\"] = 1] = \"Relative\";\n PositionType[PositionType[\"Absolute\"] = 2] = \"Absolute\";\n return PositionType;\n}({});\nexport let Unit = /*#__PURE__*/function (Unit) {\n Unit[Unit[\"Undefined\"] = 0] = \"Undefined\";\n Unit[Unit[\"Point\"] = 1] = \"Point\";\n Unit[Unit[\"Percent\"] = 2] = \"Percent\";\n Unit[Unit[\"Auto\"] = 3] = \"Auto\";\n return Unit;\n}({});\nexport let Wrap = /*#__PURE__*/function (Wrap) {\n Wrap[Wrap[\"NoWrap\"] = 0] = \"NoWrap\";\n Wrap[Wrap[\"Wrap\"] = 1] = \"Wrap\";\n Wrap[Wrap[\"WrapReverse\"] = 2] = \"WrapReverse\";\n return Wrap;\n}({});\nconst constants = {\n ALIGN_AUTO: Align.Auto,\n ALIGN_FLEX_START: Align.FlexStart,\n ALIGN_CENTER: Align.Center,\n ALIGN_FLEX_END: Align.FlexEnd,\n ALIGN_STRETCH: Align.Stretch,\n ALIGN_BASELINE: Align.Baseline,\n ALIGN_SPACE_BETWEEN: Align.SpaceBetween,\n ALIGN_SPACE_AROUND: Align.SpaceAround,\n ALIGN_SPACE_EVENLY: Align.SpaceEvenly,\n DIMENSION_WIDTH: Dimension.Width,\n DIMENSION_HEIGHT: Dimension.Height,\n DIRECTION_INHERIT: Direction.Inherit,\n DIRECTION_LTR: Direction.LTR,\n DIRECTION_RTL: Direction.RTL,\n DISPLAY_FLEX: Display.Flex,\n DISPLAY_NONE: Display.None,\n EDGE_LEFT: Edge.Left,\n EDGE_TOP: Edge.Top,\n EDGE_RIGHT: Edge.Right,\n EDGE_BOTTOM: Edge.Bottom,\n EDGE_START: Edge.Start,\n EDGE_END: Edge.End,\n EDGE_HORIZONTAL: Edge.Horizontal,\n EDGE_VERTICAL: Edge.Vertical,\n EDGE_ALL: Edge.All,\n ERRATA_NONE: Errata.None,\n ERRATA_STRETCH_FLEX_BASIS: Errata.StretchFlexBasis,\n ERRATA_ABSOLUTE_POSITIONING_INCORRECT: Errata.AbsolutePositioningIncorrect,\n ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE: Errata.AbsolutePercentAgainstInnerSize,\n ERRATA_ALL: Errata.All,\n ERRATA_CLASSIC: Errata.Classic,\n EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS: ExperimentalFeature.WebFlexBasis,\n FLEX_DIRECTION_COLUMN: FlexDirection.Column,\n FLEX_DIRECTION_COLUMN_REVERSE: FlexDirection.ColumnReverse,\n FLEX_DIRECTION_ROW: FlexDirection.Row,\n FLEX_DIRECTION_ROW_REVERSE: FlexDirection.RowReverse,\n GUTTER_COLUMN: Gutter.Column,\n GUTTER_ROW: Gutter.Row,\n GUTTER_ALL: Gutter.All,\n JUSTIFY_FLEX_START: Justify.FlexStart,\n JUSTIFY_CENTER: Justify.Center,\n JUSTIFY_FLEX_END: Justify.FlexEnd,\n JUSTIFY_SPACE_BETWEEN: Justify.SpaceBetween,\n JUSTIFY_SPACE_AROUND: Justify.SpaceAround,\n JUSTIFY_SPACE_EVENLY: Justify.SpaceEvenly,\n LOG_LEVEL_ERROR: LogLevel.Error,\n LOG_LEVEL_WARN: LogLevel.Warn,\n LOG_LEVEL_INFO: LogLevel.Info,\n LOG_LEVEL_DEBUG: LogLevel.Debug,\n LOG_LEVEL_VERBOSE: LogLevel.Verbose,\n LOG_LEVEL_FATAL: LogLevel.Fatal,\n MEASURE_MODE_UNDEFINED: MeasureMode.Undefined,\n MEASURE_MODE_EXACTLY: MeasureMode.Exactly,\n MEASURE_MODE_AT_MOST: MeasureMode.AtMost,\n NODE_TYPE_DEFAULT: NodeType.Default,\n NODE_TYPE_TEXT: NodeType.Text,\n OVERFLOW_VISIBLE: Overflow.Visible,\n OVERFLOW_HIDDEN: Overflow.Hidden,\n OVERFLOW_SCROLL: Overflow.Scroll,\n POSITION_TYPE_STATIC: PositionType.Static,\n POSITION_TYPE_RELATIVE: PositionType.Relative,\n POSITION_TYPE_ABSOLUTE: PositionType.Absolute,\n UNIT_UNDEFINED: Unit.Undefined,\n UNIT_POINT: Unit.Point,\n UNIT_PERCENT: Unit.Percent,\n UNIT_AUTO: Unit.Auto,\n WRAP_NO_WRAP: Wrap.NoWrap,\n WRAP_WRAP: Wrap.Wrap,\n WRAP_WRAP_REVERSE: Wrap.WrapReverse\n};\nexport default constants;\n//# sourceMappingURL=YGEnums.js.map","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n// @ts-nocheck\n\nimport { Unit, Direction } from \"./generated/YGEnums.js\";\nimport YGEnums from \"./generated/YGEnums.js\";\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport default function wrapAssembly(lib) {\n function patch(prototype, name, fn) {\n const original = prototype[name];\n prototype[name] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return fn.call(this, original, ...args);\n };\n }\n for (const fnName of ['setPosition', 'setMargin', 'setFlexBasis', 'setWidth', 'setHeight', 'setMinWidth', 'setMinHeight', 'setMaxWidth', 'setMaxHeight', 'setPadding']) {\n const methods = {\n [Unit.Point]: lib.Node.prototype[fnName],\n [Unit.Percent]: lib.Node.prototype[`${fnName}Percent`],\n [Unit.Auto]: lib.Node.prototype[`${fnName}Auto`]\n };\n patch(lib.Node.prototype, fnName, function (original) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n // We patch all these functions to add support for the following calls:\n // .setWidth(100) / .setWidth(\"100%\") / .setWidth(.getWidth()) / .setWidth(\"auto\")\n\n const value = args.pop();\n let unit, asNumber;\n if (value === 'auto') {\n unit = Unit.Auto;\n asNumber = undefined;\n } else if (typeof value === 'object') {\n unit = value.unit;\n asNumber = value.valueOf();\n } else {\n unit = typeof value === 'string' && value.endsWith('%') ? Unit.Percent : Unit.Point;\n asNumber = parseFloat(value);\n if (value !== undefined && !Number.isNaN(value) && Number.isNaN(asNumber)) {\n throw new Error(`Invalid value ${value} for ${fnName}`);\n }\n }\n if (!methods[unit]) throw new Error(`Failed to execute \"${fnName}\": Unsupported unit '${value}'`);\n if (asNumber !== undefined) {\n return methods[unit].call(this, ...args, asNumber);\n } else {\n return methods[unit].call(this, ...args);\n }\n });\n }\n function wrapMeasureFunction(measureFunction) {\n return lib.MeasureCallback.implement({\n measure: function () {\n const {\n width,\n height\n } = measureFunction(...arguments);\n return {\n width: width ?? NaN,\n height: height ?? NaN\n };\n }\n });\n }\n patch(lib.Node.prototype, 'setMeasureFunc', function (original, measureFunc) {\n // This patch is just a convenience patch, since it helps write more\n // idiomatic source code (such as .setMeasureFunc(null))\n if (measureFunc) {\n return original.call(this, wrapMeasureFunction(measureFunc));\n } else {\n return this.unsetMeasureFunc();\n }\n });\n function wrapDirtiedFunc(dirtiedFunction) {\n return lib.DirtiedCallback.implement({\n dirtied: dirtiedFunction\n });\n }\n patch(lib.Node.prototype, 'setDirtiedFunc', function (original, dirtiedFunc) {\n original.call(this, wrapDirtiedFunc(dirtiedFunc));\n });\n patch(lib.Config.prototype, 'free', function () {\n // Since we handle the memory allocation ourselves (via lib.Config.create),\n // we also need to handle the deallocation\n lib.Config.destroy(this);\n });\n patch(lib.Node, 'create', (_, config) => {\n // We decide the constructor we want to call depending on the parameters\n return config ? lib.Node.createWithConfig(config) : lib.Node.createDefault();\n });\n patch(lib.Node.prototype, 'free', function () {\n // Since we handle the memory allocation ourselves (via lib.Node.create),\n // we also need to handle the deallocation\n lib.Node.destroy(this);\n });\n patch(lib.Node.prototype, 'freeRecursive', function () {\n for (let t = 0, T = this.getChildCount(); t < T; ++t) {\n this.getChild(0).freeRecursive();\n }\n this.free();\n });\n patch(lib.Node.prototype, 'calculateLayout', function (original) {\n let width = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;\n let height = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : NaN;\n let direction = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Direction.LTR;\n // Just a small patch to add support for the function default parameters\n return original.call(this, width, height, direction);\n });\n return {\n Config: lib.Config,\n Node: lib.Node,\n ...YGEnums\n };\n}\n//# sourceMappingURL=wrapAssembly.js.map","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n// @ts-ignore untyped from Emscripten\nimport loadYoga from '../binaries/yoga-wasm-base64-esm.js';\nimport wrapAssembly from \"./wrapAssembly.js\";\nconst Yoga = wrapAssembly(await loadYoga());\nexport default Yoga;\nexport * from \"./generated/YGEnums.js\";\n//# sourceMappingURL=index.js.map","var warning = function () { };\r\nvar invariant = function () { };\r\nif (process.env.NODE_ENV !== 'production') {\r\n warning = function (check, message) {\r\n if (!check && typeof console !== 'undefined') {\r\n console.warn(message);\r\n }\r\n };\r\n invariant = function (check, message) {\r\n if (!check) {\r\n throw new Error(message);\r\n }\r\n };\r\n}\n\nexport { invariant, warning };\n","const clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\nexport { clamp };\n","const progress = (from, to, value) => {\n const toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\nexport { progress };\n","const mix = (from, to, progress) => -progress * from + progress * to + from;\n\nexport { mix };\n","const clamp = (min, max) => (v) => Math.max(Math.min(v, max), min);\nconst sanitize = (v) => (v % 1 ? Number(v.toFixed(5)) : v);\nconst floatRegex = /(-)?([\\d]*\\.?[\\d])+/g;\nconst colorRegex = /(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2}(-?[\\d\\.]+%?)\\s*[\\,\\/]?\\s*[\\d\\.]*%?\\))/gi;\nconst singleColorRegex = /^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2}(-?[\\d\\.]+%?)\\s*[\\,\\/]?\\s*[\\d\\.]*%?\\))$/i;\nfunction isString(v) {\n return typeof v === 'string';\n}\n\nexport { clamp, colorRegex, floatRegex, isString, sanitize, singleColorRegex };\n","import { clamp } from '../utils.mjs';\n\nconst number = {\n test: (v) => typeof v === 'number',\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = Object.assign(Object.assign({}, number), { transform: clamp(0, 1) });\nconst scale = Object.assign(Object.assign({}, number), { default: 1 });\n\nexport { alpha, number, scale };\n","import { isString } from '../utils.mjs';\n\nconst createUnitType = (unit) => ({\n test: (v) => isString(v) && v.endsWith(unit) && v.split(' ').length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = createUnitType('deg');\nconst percent = createUnitType('%');\nconst px = createUnitType('px');\nconst vh = createUnitType('vh');\nconst vw = createUnitType('vw');\nconst progressPercentage = Object.assign(Object.assign({}, percent), { parse: (v) => percent.parse(v) / 100, transform: (v) => percent.transform(v * 100) });\n\nexport { degrees, percent, progressPercentage, px, vh, vw };\n","import { isString, singleColorRegex, floatRegex } from '../utils.mjs';\n\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((isString(v) && singleColorRegex.test(v) && v.startsWith(type)) ||\n (testProp && Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (!isString(v))\n return v;\n const [a, b, c, alpha] = v.match(floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\nexport { isColorString, splitColor };\n","import { alpha } from '../numbers/index.mjs';\nimport { percent } from '../numbers/units.mjs';\nimport { sanitize } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst hsla = {\n test: isColorString('hsl', 'hue'),\n parse: splitColor('hue', 'saturation', 'lightness'),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return ('hsla(' +\n Math.round(hue) +\n ', ' +\n percent.transform(sanitize(saturation)) +\n ', ' +\n percent.transform(sanitize(lightness)) +\n ', ' +\n sanitize(alpha.transform(alpha$1)) +\n ')');\n },\n};\n\nexport { hsla };\n","import { number, alpha } from '../numbers/index.mjs';\nimport { sanitize, clamp } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst clampRgbUnit = clamp(0, 255);\nconst rgbUnit = Object.assign(Object.assign({}, number), { transform: (v) => Math.round(clampRgbUnit(v)) });\nconst rgba = {\n test: isColorString('rgb', 'red'),\n parse: splitColor('red', 'green', 'blue'),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => 'rgba(' +\n rgbUnit.transform(red) +\n ', ' +\n rgbUnit.transform(green) +\n ', ' +\n rgbUnit.transform(blue) +\n ', ' +\n sanitize(alpha.transform(alpha$1)) +\n ')',\n};\n\nexport { rgbUnit, rgba };\n","import { rgba } from './rgba.mjs';\nimport { isColorString } from './utils.mjs';\n\nfunction parseHex(v) {\n let r = '';\n let g = '';\n let b = '';\n let a = '';\n if (v.length > 5) {\n r = v.substr(1, 2);\n g = v.substr(3, 2);\n b = v.substr(5, 2);\n a = v.substr(7, 2);\n }\n else {\n r = v.substr(1, 1);\n g = v.substr(2, 1);\n b = v.substr(3, 1);\n a = v.substr(4, 1);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1,\n };\n}\nconst hex = {\n test: isColorString('#'),\n parse: parseHex,\n transform: rgba.transform,\n};\n\nexport { hex };\n","import { isString } from '../utils.mjs';\nimport { hex } from './hex.mjs';\nimport { hsla } from './hsla.mjs';\nimport { rgba } from './rgba.mjs';\n\nconst color = {\n test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),\n parse: (v) => {\n if (rgba.test(v)) {\n return rgba.parse(v);\n }\n else if (hsla.test(v)) {\n return hsla.parse(v);\n }\n else {\n return hex.parse(v);\n }\n },\n transform: (v) => {\n return isString(v)\n ? v\n : v.hasOwnProperty('red')\n ? rgba.transform(v)\n : hsla.transform(v);\n },\n};\n\nexport { color };\n","import { color } from '../color/index.mjs';\nimport { number } from '../numbers/index.mjs';\nimport { isString, floatRegex, colorRegex, sanitize } from '../utils.mjs';\n\nconst colorToken = '${c}';\nconst numberToken = '${n}';\nfunction test(v) {\n var _a, _b, _c, _d;\n return (isNaN(v) &&\n isString(v) &&\n ((_b = (_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) + ((_d = (_c = v.match(colorRegex)) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) > 0);\n}\nfunction analyse(v) {\n if (typeof v === 'number')\n v = `${v}`;\n const values = [];\n let numColors = 0;\n const colors = v.match(colorRegex);\n if (colors) {\n numColors = colors.length;\n v = v.replace(colorRegex, colorToken);\n values.push(...colors.map(color.parse));\n }\n const numbers = v.match(floatRegex);\n if (numbers) {\n v = v.replace(floatRegex, numberToken);\n values.push(...numbers.map(number.parse));\n }\n return { values, numColors, tokenised: v };\n}\nfunction parse(v) {\n return analyse(v).values;\n}\nfunction createTransformer(v) {\n const { values, numColors, tokenised } = analyse(v);\n const numValues = values.length;\n return (v) => {\n let output = tokenised;\n for (let i = 0; i < numValues; i++) {\n output = output.replace(i < numColors ? colorToken : numberToken, i < numColors ? color.transform(v[i]) : sanitize(v[i]));\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === 'number' ? 0 : v;\nfunction getAnimatableNone(v) {\n const parsed = parse(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = { test, parse, createTransformer, getAnimatableNone };\n\nexport { complex };\n","function hueToRgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nfunction hslaToRgba({ hue, saturation, lightness, alpha }) {\n hue /= 360;\n saturation /= 100;\n lightness /= 100;\n let red = 0;\n let green = 0;\n let blue = 0;\n if (!saturation) {\n red = green = blue = lightness;\n }\n else {\n const q = lightness < 0.5\n ? lightness * (1 + saturation)\n : lightness + saturation - lightness * saturation;\n const p = 2 * lightness - q;\n red = hueToRgb(p, q, hue + 1 / 3);\n green = hueToRgb(p, q, hue);\n blue = hueToRgb(p, q, hue - 1 / 3);\n }\n return {\n red: Math.round(red * 255),\n green: Math.round(green * 255),\n blue: Math.round(blue * 255),\n alpha,\n };\n}\n\nexport { hslaToRgba };\n","import { mix } from './mix.mjs';\nimport { hsla, rgba, hex } from 'style-value-types';\nimport { invariant } from 'hey-listen';\nimport { hslaToRgba } from './hsla-to-rgba.mjs';\n\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n const toExpo = to * to;\n return Math.sqrt(Math.max(0, v * (toExpo - fromExpo) + fromExpo));\n};\nconst colorTypes = [hex, rgba, hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nconst notAnimatable = (color) => `'${color}' is not an animatable color. Use the equivalent color code instead.`;\nconst mixColor = (from, to) => {\n let fromColorType = getColorType(from);\n let toColorType = getColorType(to);\n invariant(!!fromColorType, notAnimatable(from));\n invariant(!!toColorType, notAnimatable(to));\n let fromColor = fromColorType.parse(from);\n let toColor = toColorType.parse(to);\n if (fromColorType === hsla) {\n fromColor = hslaToRgba(fromColor);\n fromColorType = rgba;\n }\n if (toColorType === hsla) {\n toColor = hslaToRgba(toColor);\n toColorType = rgba;\n }\n const blended = Object.assign({}, fromColor);\n return (v) => {\n for (const key in blended) {\n if (key !== \"alpha\") {\n blended[key] = mixLinearColor(fromColor[key], toColor[key], v);\n }\n }\n blended.alpha = mix(fromColor.alpha, toColor.alpha, v);\n return fromColorType.transform(blended);\n };\n};\n\nexport { mixColor, mixLinearColor };\n","const zeroPoint = {\n x: 0,\n y: 0,\n z: 0\n};\nconst isNum = (v) => typeof v === 'number';\n\nexport { isNum, zeroPoint };\n","const combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\nexport { pipe };\n","import { complex, color } from 'style-value-types';\nimport { mix } from './mix.mjs';\nimport { mixColor } from './mix-color.mjs';\nimport { isNum } from './inc.mjs';\nimport { pipe } from './pipe.mjs';\nimport { warning } from 'hey-listen';\n\nfunction getMixer(origin, target) {\n if (isNum(origin)) {\n return (v) => mix(origin, target, v);\n }\n else if (color.test(origin)) {\n return mixColor(origin, target);\n }\n else {\n return mixComplex(origin, target);\n }\n}\nconst mixArray = (from, to) => {\n const output = [...from];\n const numValues = output.length;\n const blendValue = from.map((fromThis, i) => getMixer(fromThis, to[i]));\n return (v) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](v);\n }\n return output;\n };\n};\nconst mixObject = (origin, target) => {\n const output = Object.assign(Object.assign({}, origin), target);\n const blendValue = {};\n for (const key in output) {\n if (origin[key] !== undefined && target[key] !== undefined) {\n blendValue[key] = getMixer(origin[key], target[key]);\n }\n }\n return (v) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n};\nfunction analyse(value) {\n const parsed = complex.parse(value);\n const numValues = parsed.length;\n let numNumbers = 0;\n let numRGB = 0;\n let numHSL = 0;\n for (let i = 0; i < numValues; i++) {\n if (numNumbers || typeof parsed[i] === \"number\") {\n numNumbers++;\n }\n else {\n if (parsed[i].hue !== undefined) {\n numHSL++;\n }\n else {\n numRGB++;\n }\n }\n }\n return { parsed, numNumbers, numRGB, numHSL };\n}\nconst mixComplex = (origin, target) => {\n const template = complex.createTransformer(target);\n const originStats = analyse(origin);\n const targetStats = analyse(target);\n const canInterpolate = originStats.numHSL === targetStats.numHSL &&\n originStats.numRGB === targetStats.numRGB &&\n originStats.numNumbers >= targetStats.numNumbers;\n if (canInterpolate) {\n return pipe(mixArray(originStats.parsed, targetStats.parsed), template);\n }\n else {\n warning(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`);\n return (p) => `${p > 0 ? target : origin}`;\n }\n};\n\nexport { mixArray, mixComplex, mixObject };\n","import { progress } from './progress.mjs';\nimport { mix } from './mix.mjs';\nimport { mixColor } from './mix-color.mjs';\nimport { mixComplex, mixArray, mixObject } from './mix-complex.mjs';\nimport { color } from 'style-value-types';\nimport { clamp } from './clamp.mjs';\nimport { pipe } from './pipe.mjs';\nimport { invariant } from 'hey-listen';\n\nconst mixNumber = (from, to) => (p) => mix(from, to, p);\nfunction detectMixerFactory(v) {\n if (typeof v === 'number') {\n return mixNumber;\n }\n else if (typeof v === 'string') {\n if (color.test(v)) {\n return mixColor;\n }\n else {\n return mixComplex;\n }\n }\n else if (Array.isArray(v)) {\n return mixArray;\n }\n else if (typeof v === 'object') {\n return mixObject;\n }\n}\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || detectMixerFactory(output[0]);\n const numMixers = output.length - 1;\n for (let i = 0; i < numMixers; i++) {\n let mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n const easingFunction = Array.isArray(ease) ? ease[i] : ease;\n mixer = pipe(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\nfunction fastInterpolate([from, to], [mixer]) {\n return (v) => mixer(progress(from, to, v));\n}\nfunction slowInterpolate(input, mixers) {\n const inputLength = input.length;\n const lastInputIndex = inputLength - 1;\n return (v) => {\n let mixerIndex = 0;\n let foundMixerIndex = false;\n if (v <= input[0]) {\n foundMixerIndex = true;\n }\n else if (v >= input[lastInputIndex]) {\n mixerIndex = lastInputIndex - 1;\n foundMixerIndex = true;\n }\n if (!foundMixerIndex) {\n let i = 1;\n for (; i < inputLength; i++) {\n if (input[i] > v || i === lastInputIndex) {\n break;\n }\n }\n mixerIndex = i - 1;\n }\n const progressInRange = progress(input[mixerIndex], input[mixerIndex + 1], v);\n return mixers[mixerIndex](progressInRange);\n };\n}\nfunction interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {\n const inputLength = input.length;\n invariant(inputLength === output.length, 'Both input and output ranges must be the same length');\n invariant(!ease || !Array.isArray(ease) || ease.length === inputLength - 1, 'Array of easing functions must be of length `input.length - 1`, as it applies to the transitions **between** the defined values.');\n if (input[0] > input[inputLength - 1]) {\n input = [].concat(input);\n output = [].concat(output);\n input.reverse();\n output.reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const interpolator = inputLength === 2\n ? fastInterpolate(input, mixers)\n : slowInterpolate(input, mixers);\n return isClamp\n ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\nexport { interpolate };\n","const reverseEasing = easing => p => 1 - easing(1 - p);\nconst mirrorEasing = easing => p => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\nconst createExpoIn = (power) => p => Math.pow(p, power);\nconst createBackIn = (power) => p => p * p * ((power + 1) * p - power);\nconst createAnticipate = (power) => {\n const backEasing = createBackIn(power);\n return p => (p *= 2) < 1\n ? 0.5 * backEasing(p)\n : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n};\n\nexport { createAnticipate, createBackIn, createExpoIn, mirrorEasing, reverseEasing };\n","import { createExpoIn, reverseEasing, mirrorEasing, createBackIn, createAnticipate } from './utils.mjs';\n\nconst DEFAULT_OVERSHOOT_STRENGTH = 1.525;\nconst BOUNCE_FIRST_THRESHOLD = 4.0 / 11.0;\nconst BOUNCE_SECOND_THRESHOLD = 8.0 / 11.0;\nconst BOUNCE_THIRD_THRESHOLD = 9.0 / 10.0;\nconst linear = p => p;\nconst easeIn = createExpoIn(2);\nconst easeOut = reverseEasing(easeIn);\nconst easeInOut = mirrorEasing(easeIn);\nconst circIn = p => 1 - Math.sin(Math.acos(p));\nconst circOut = reverseEasing(circIn);\nconst circInOut = mirrorEasing(circOut);\nconst backIn = createBackIn(DEFAULT_OVERSHOOT_STRENGTH);\nconst backOut = reverseEasing(backIn);\nconst backInOut = mirrorEasing(backIn);\nconst anticipate = createAnticipate(DEFAULT_OVERSHOOT_STRENGTH);\nconst ca = 4356.0 / 361.0;\nconst cb = 35442.0 / 1805.0;\nconst cc = 16061.0 / 1805.0;\nconst bounceOut = (p) => {\n if (p === 1 || p === 0)\n return p;\n const p2 = p * p;\n return p < BOUNCE_FIRST_THRESHOLD\n ? 7.5625 * p2\n : p < BOUNCE_SECOND_THRESHOLD\n ? 9.075 * p2 - 9.9 * p + 3.4\n : p < BOUNCE_THIRD_THRESHOLD\n ? ca * p2 - cb * p + cc\n : 10.8 * p * p - 20.52 * p + 10.72;\n};\nconst bounceIn = reverseEasing(bounceOut);\nconst bounceInOut = (p) => p < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - p * 2.0))\n : 0.5 * bounceOut(p * 2.0 - 1.0) + 0.5;\n\nexport { anticipate, backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, easeIn, easeInOut, easeOut, linear };\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t((e=\"undefined\"!=typeof globalThis?globalThis:e||self).Sqrl={})}(this,(function(e){\"use strict\";function t(e){var n,r,a=new Error(e);return n=a,r=t.prototype,Object.setPrototypeOf?Object.setPrototypeOf(n,r):n.__proto__=r,a}function n(e,n,r){var a=n.slice(0,r).split(/\\n/),i=a.length,s=a[i-1].length+1;throw t(e+=\" at line \"+i+\" col \"+s+\":\\n\\n \"+n.split(/\\n/)[i-1]+\"\\n \"+Array(s).join(\" \")+\"^\")}t.prototype=Object.create(Error.prototype,{name:{value:\"Squirrelly Error\",enumerable:!1}});var r=new Function(\"return this\")().Promise,a=!1;try{a=new Function(\"return (async function(){}).constructor\")()}catch(e){if(!(e instanceof SyntaxError))throw e}function i(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function s(e,t,n){for(var r in t)i(t,r)&&(null==t[r]||\"object\"!=typeof t[r]||\"storage\"!==r&&\"prefixes\"!==r||n?e[r]=t[r]:e[r]=s({},t[r]));return e}var c=/^async +/,o=/`(?:\\\\[\\s\\S]|\\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\\${)[^\\\\`])*`/g,l=/'(?:\\\\[\\s\\w\"'\\\\`]|[^\\n\\r'\\\\])*?'/g,f=/\"(?:\\\\[\\s\\w\"'\\\\`]|[^\\n\\r\"\\\\])*?\"/g,u=/[.*+\\-?^${}()|[\\]\\\\]/g;function p(e){return u.test(e)?e.replace(u,\"\\\\$&\"):e}function h(e,r){r.rmWhitespace&&(e=e.replace(/[\\r\\n]+/g,\"\\n\").replace(/^\\s+|\\s+$/gm,\"\")),o.lastIndex=0,l.lastIndex=0,f.lastIndex=0;var a=r.prefixes,i=[a.h,a.b,a.i,a.r,a.c,a.e].reduce((function(e,t){return e&&t?e+\"|\"+p(t):t?p(t):e}),\"\"),s=new RegExp(\"([|()]|=>)|('|\\\"|`|\\\\/\\\\*)|\\\\s*((\\\\/)?(-|_)?\"+p(r.tags[1])+\")\",\"g\"),u=new RegExp(\"([^]*?)\"+p(r.tags[0])+\"(-|_)?\\\\s*(\"+i+\")?\\\\s*\",\"g\"),h=0,d=!1;function g(t,a){var i,p={f:[]},g=0,v=\"c\";function m(t){var a=e.slice(h,t),i=a.trim();if(\"f\"===v)\"safe\"===i?p.raw=!0:r.async&&c.test(i)?(i=i.replace(c,\"\"),p.f.push([i,\"\",!0])):p.f.push([i,\"\"]);else if(\"fp\"===v)p.f[p.f.length-1][1]+=i;else if(\"err\"===v){if(i){var s=a.search(/\\S/);n(\"invalid syntax\",e,h+s)}}else p[v]=i;h=t+1}for(\"h\"===a||\"b\"===a||\"c\"===a?v=\"n\":\"r\"===a&&(p.raw=!0,a=\"i\"),s.lastIndex=h;null!==(i=s.exec(e));){var y=i[1],x=i[2],b=i[3],w=i[4],F=i[5],S=i.index;if(y)\"(\"===y?(0===g&&(\"n\"===v?(m(S),v=\"p\"):\"f\"===v&&(m(S),v=\"fp\")),g++):\")\"===y?0===--g&&\"c\"!==v&&(m(S),v=\"err\"):0===g&&\"|\"===y?(m(S),v=\"f\"):\"=>\"===y&&(m(S),h+=1,v=\"res\");else if(x){if(\"/*\"===x){var I=e.indexOf(\"*/\",s.lastIndex);-1===I&&n(\"unclosed comment\",e,i.index),s.lastIndex=I+2}else if(\"'\"===x){l.lastIndex=i.index,l.exec(e)?s.lastIndex=l.lastIndex:n(\"unclosed string\",e,i.index)}else if('\"'===x){f.lastIndex=i.index,f.exec(e)?s.lastIndex=f.lastIndex:n(\"unclosed string\",e,i.index)}else if(\"`\"===x){o.lastIndex=i.index,o.exec(e)?s.lastIndex=o.lastIndex:n(\"unclosed string\",e,i.index)}}else if(b)return m(S),h=S+i[0].length,u.lastIndex=h,d=F,w&&\"h\"===a&&(a=\"s\"),p.t=a,p}return n(\"unclosed tag\",e,t),p}var v=function i(s,o){s.b=[],s.d=[];var l,f=!1,p=[];function v(e,t){e&&(e=function(e,t,n,r){var a,i;return\"string\"==typeof t.autoTrim?a=i=t.autoTrim:Array.isArray(t.autoTrim)&&(a=t.autoTrim[1],i=t.autoTrim[0]),(n||!1===n)&&(a=n),(r||!1===r)&&(i=r),\"slurp\"===a&&\"slurp\"===i?e.trim():(\"_\"===a||\"slurp\"===a?e=String.prototype.trimLeft?e.trimLeft():e.replace(/^[\\s\\uFEFF\\xA0]+/,\"\"):\"-\"!==a&&\"nl\"!==a||(e=e.replace(/^(?:\\n|\\r|\\r\\n)/,\"\")),\"_\"===i||\"slurp\"===i?e=String.prototype.trimRight?e.trimRight():e.replace(/[\\s\\uFEFF\\xA0]+$/,\"\"):\"-\"!==i&&\"nl\"!==i||(e=e.replace(/(?:\\n|\\r|\\r\\n)$/,\"\")),e)}(e,r,d,t))&&(e=e.replace(/\\\\|'/g,\"\\\\$&\").replace(/\\r\\n|\\n|\\r/g,\"\\\\n\"),p.push(e))}for(;null!==(l=u.exec(e));){var m,y=l[1],x=l[2],b=l[3]||\"\";for(var w in a)if(a[w]===b){m=w;break}v(y,x),h=l.index+l[0].length,m||n(\"unrecognized tag type: \"+b,e,h);var F=g(l.index,m),S=F.t;if(\"h\"===S){var I=F.n||\"\";r.async&&c.test(I)&&(F.a=!0,F.n=I.replace(c,\"\")),F=i(F),p.push(F)}else if(\"c\"===S){if(s.n===F.n)return f?(f.d=p,s.b.push(f)):s.d=p,s;n(\"Helper start and end don't match\",e,l.index+l[0].length)}else if(\"b\"===S){f?(f.d=p,s.b.push(f)):s.d=p;var R=F.n||\"\";r.async&&c.test(R)&&(F.a=!0,F.n=R.replace(c,\"\")),f=F,p=[]}else if(\"s\"===S){var T=F.n||\"\";r.async&&c.test(T)&&(F.a=!0,F.n=T.replace(c,\"\")),p.push(F)}else p.push(F)}if(!o)throw t('unclosed helper \"'+s.n+'\"');return v(e.slice(h,e.length),!1),s.d=p,s}({f:[]},!0);if(r.plugins)for(var m=0;m<r.plugins.length;m++){var y=r.plugins[m];y.processAST&&(v.d=y.processAST(v.d,r))}return v.d}function d(e,t){var n=h(e,t),r=\"var tR='';\"+(t.useWith?\"with(\"+t.varName+\"||{}){\":\"\")+x(n,t)+\"if(cb){cb(null,tR)} return tR\"+(t.useWith?\"}\":\"\");if(t.plugins)for(var a=0;a<t.plugins.length;a++){var i=t.plugins[a];i.processFnString&&(r=i.processFnString(r,t))}return r}function g(e,t){for(var n=0;n<t.length;n++){var r=t[n][0],a=t[n][1];e=(t[n][2]?\"await \":\"\")+\"c.l('F','\"+r+\"')(\"+e,a&&(e+=\",\"+a),e+=\")\"}return e}function v(e,t,n,r,a,i){var s=\"{exec:\"+(a?\"async \":\"\")+y(n,t,e)+\",params:[\"+r+\"]\";return i&&(s+=\",name:'\"+i+\"'\"),a&&(s+=\",async:true\"),s+=\"}\"}function m(e,t){for(var n=\"[\",r=0;r<e.length;r++){var a=e[r];n+=v(t,a.res||\"\",a.d,a.p||\"\",a.a,a.n),r<e.length&&(n+=\",\")}return n+=\"]\"}function y(e,t,n){return\"function(\"+t+\"){var tR='';\"+x(e,n)+\"return tR}\"}function x(e,t){for(var n=0,r=e.length,a=\"\";n<r;n++){var i=e[n];if(\"string\"==typeof i){a+=\"tR+='\"+i+\"';\"}else{var s=i.t,c=i.c||\"\",o=i.f,l=i.n||\"\",f=i.p||\"\",u=i.res||\"\",p=i.b,h=!!i.a;if(\"i\"===s){t.defaultFilter&&(c=\"c.l('F','\"+t.defaultFilter+\"')(\"+c+\")\");var d=g(c,o);!i.raw&&t.autoEscape&&(d=\"c.l('F','e')(\"+d+\")\"),a+=\"tR+=\"+d+\";\"}else if(\"h\"===s)if(t.storage.nativeHelpers.get(l))a+=t.storage.nativeHelpers.get(l)(i,t);else{var y=(h?\"await \":\"\")+\"c.l('H','\"+l+\"')(\"+v(t,u,i.d,f,h);y+=p?\",\"+m(p,t):\",[]\",a+=\"tR+=\"+g(y+=\",c)\",o)+\";\"}else\"s\"===s?a+=\"tR+=\"+g((h?\"await \":\"\")+\"c.l('H','\"+l+\"')({params:[\"+f+\"]},[],c)\",o)+\";\":\"e\"===s&&(a+=c+\"\\n\")}}return a}var b=function(){function e(e){this.cache=e}return e.prototype.define=function(e,t){this.cache[e]=t},e.prototype.get=function(e){return this.cache[e]},e.prototype.remove=function(e){delete this.cache[e]},e.prototype.reset=function(){this.cache={}},e.prototype.load=function(e){s(this.cache,e,!0)},e}();function w(e,n,r,a){if(n&&n.length>0)throw t((a?\"Native\":\"\")+\"Helper '\"+e+\"' doesn't accept blocks\");if(r&&r.length>0)throw t((a?\"Native\":\"\")+\"Helper '\"+e+\"' doesn't accept filters\")}var F={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\"};function S(e){return F[e]}var I=new b({}),R=new b({each:function(e,t){var n=\"\",r=e.params[0];if(w(\"each\",t,!1),e.async)return new Promise((function(t){!function e(t,n,r,a,i){r(t[n],n).then((function(s){a+=s,n===t.length-1?i(a):e(t,n+1,r,a,i)}))}(r,0,e.exec,n,t)}));for(var a=0;a<r.length;a++)n+=e.exec(r[a],a);return n},foreach:function(e,t){var n=e.params[0];if(w(\"foreach\",t,!1),e.async)return new Promise((function(t){!function e(t,n,r,a,i,s){a(n[r],t[n[r]]).then((function(c){i+=c,r===n.length-1?s(i):e(t,n,r+1,a,i,s)}))}(n,Object.keys(n),0,e.exec,\"\",t)}));var r=\"\";for(var a in n)i(n,a)&&(r+=e.exec(a,n[a]));return r},include:function(e,n,r){w(\"include\",n,!1);var a=r.storage.templates.get(e.params[0]);if(!a)throw t('Could not fetch template \"'+e.params[0]+'\"');return a(e.params[1],r)},extends:function(e,n,r){var a=e.params[1]||{};a.content=e.exec();for(var i=0;i<n.length;i++){var s=n[i];a[s.name]=s.exec()}var c=r.storage.templates.get(e.params[0]);if(!c)throw t('Could not fetch template \"'+e.params[0]+'\"');return c(a,r)},useScope:function(e,t){return w(\"useScope\",t,!1),e.exec(e.params[0])}}),T=new b({if:function(e,t){w(\"if\",!1,e.f,!0);var n=\"if(\"+e.p+\"){\"+x(e.d,t)+\"}\";if(e.b)for(var r=0;r<e.b.length;r++){var a=e.b[r];\"else\"===a.n?n+=\"else{\"+x(a.d,t)+\"}\":\"elif\"===a.n&&(n+=\"else if(\"+a.p+\"){\"+x(a.d,t)+\"}\")}return n},try:function(e,n){if(w(\"try\",!1,e.f,!0),!e.b||1!==e.b.length||\"catch\"!==e.b[0].n)throw t(\"native helper 'try' only accepts 1 block, 'catch'\");var r=\"try{\"+x(e.d,n)+\"}\",a=e.b[0];return r+=\"catch\"+(a.res?\"(\"+a.res+\")\":\"\")+\"{\"+x(a.d,n)+\"}\"},block:function(e,t){return w(\"block\",e.b,e.f,!0),\"if(!\"+t.varName+\"[\"+e.p+\"]){tR+=(\"+y(e.d,\"\",t)+\")()}else{tR+=\"+t.varName+\"[\"+e.p+\"]}\"}}),E=new b({e:function(e){var t=String(e);return/[&<>\"']/.test(t)?t.replace(/[&<>\"']/g,S):t}}),j={varName:\"it\",autoTrim:[!1,\"nl\"],autoEscape:!0,defaultFilter:!1,tags:[\"{{\",\"}}\"],l:function(e,n){if(\"H\"===e){var r=this.storage.helpers.get(n);if(r)return r;throw t(\"Can't find helper '\"+n+\"'\")}if(\"F\"===e){var a=this.storage.filters.get(n);if(a)return a;throw t(\"Can't find filter '\"+n+\"'\")}},async:!1,storage:{helpers:R,nativeHelpers:T,filters:E,templates:I},prefixes:{h:\"@\",b:\"#\",i:\"\",r:\"*\",c:\"/\",e:\"!\"},cache:!1,plugins:[],useWith:!1};function H(e,t){var n={};return s(n,j),t&&s(n,t),e&&s(n,e),n.l.bind(n),n}function O(e,n){var r=H(n||{}),i=Function;if(r.async){if(!a)throw t(\"This environment doesn't support async/await\");i=a}try{return new i(r.varName,\"c\",\"cb\",d(e,r))}catch(n){throw n instanceof SyntaxError?t(\"Bad template syntax\\n\\n\"+n.message+\"\\n\"+Array(n.message.length+1).join(\"=\")+\"\\n\"+d(e,r)):n}}function _(e,t){var n;return t.cache&&t.name&&t.storage.templates.get(t.name)?t.storage.templates.get(t.name):(n=\"function\"==typeof e?e:O(e,t),t.cache&&t.name&&t.storage.templates.define(t.name,n),n)}j.l.bind(j),e.compile=O,e.compileScope=x,e.compileScopeIntoFunction=y,e.compileToString=d,e.defaultConfig=j,e.filters=E,e.getConfig=H,e.helpers=R,e.nativeHelpers=T,e.parse=h,e.render=function(e,n,a,i){var s=H(a||{});if(!s.async)return _(e,s)(n,s);if(!i){if(\"function\"==typeof r)return new r((function(t,r){try{t(_(e,s)(n,s))}catch(e){r(e)}}));throw t(\"Please provide a callback function, this env doesn't support Promises\")}try{_(e,s)(n,s,i)}catch(e){return i(e)}},e.templates=I,Object.defineProperty(e,\"__esModule\",{value:!0})}));\n//# sourceMappingURL=squirrelly.min.js.map\n","const copyProperty = (to, from, property, ignoreNonConfigurable) => {\n\t// `Function#length` should reflect the parameters of `to` not `from` since we keep its body.\n\t// `Function#prototype` is non-writable and non-configurable so can never be modified.\n\tif (property === 'length' || property === 'prototype') {\n\t\treturn;\n\t}\n\n\t// `Function#arguments` and `Function#caller` should not be copied. They were reported to be present in `Reflect.ownKeys` for some devices in React Native (#41), so we explicitly ignore them here.\n\tif (property === 'arguments' || property === 'caller') {\n\t\treturn;\n\t}\n\n\tconst toDescriptor = Object.getOwnPropertyDescriptor(to, property);\n\tconst fromDescriptor = Object.getOwnPropertyDescriptor(from, property);\n\n\tif (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) {\n\t\treturn;\n\t}\n\n\tObject.defineProperty(to, property, fromDescriptor);\n};\n\n// `Object.defineProperty()` throws if the property exists, is not configurable and either:\n// - one its descriptors is changed\n// - it is non-writable and its value is changed\nconst canCopyProperty = function (toDescriptor, fromDescriptor) {\n\treturn toDescriptor === undefined || toDescriptor.configurable || (\n\t\ttoDescriptor.writable === fromDescriptor.writable &&\n\t\ttoDescriptor.enumerable === fromDescriptor.enumerable &&\n\t\ttoDescriptor.configurable === fromDescriptor.configurable &&\n\t\t(toDescriptor.writable || toDescriptor.value === fromDescriptor.value)\n\t);\n};\n\nconst changePrototype = (to, from) => {\n\tconst fromPrototype = Object.getPrototypeOf(from);\n\tif (fromPrototype === Object.getPrototypeOf(to)) {\n\t\treturn;\n\t}\n\n\tObject.setPrototypeOf(to, fromPrototype);\n};\n\nconst wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/\\n${fromBody}`;\n\nconst toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, 'toString');\nconst toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, 'name');\n\n// We call `from.toString()` early (not lazily) to ensure `from` can be garbage collected.\n// We use `bind()` instead of a closure for the same reason.\n// Calling `from.toString()` early also allows caching it in case `to.toString()` is called several times.\nconst changeToString = (to, from, name) => {\n\tconst withName = name === '' ? '' : `with ${name.trim()}() `;\n\tconst newToString = wrappedToString.bind(null, withName, from.toString());\n\t// Ensure `to.toString.toString` is non-enumerable and has the same `same`\n\tObject.defineProperty(newToString, 'name', toStringName);\n\tObject.defineProperty(to, 'toString', {...toStringDescriptor, value: newToString});\n};\n\nexport default function mimicFunction(to, from, {ignoreNonConfigurable = false} = {}) {\n\tconst {name} = to;\n\n\tfor (const property of Reflect.ownKeys(from)) {\n\t\tcopyProperty(to, from, property, ignoreNonConfigurable);\n\t}\n\n\tchangePrototype(to, from);\n\tchangeToString(to, from, name);\n\n\treturn to;\n}\n","import mimicFn from 'mimic-fn';\nconst cacheStore = new WeakMap();\n/**\n[Memoize](https://en.wikipedia.org/wiki/Memoization) functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input.\n\n@param fn - Function to be memoized.\n\n@example\n```\nimport {setTimeout as delay} from 'node:timer/promises';\nimport pMemoize from 'p-memoize';\nimport got from 'got';\n\nconst memoizedGot = pMemoize(got);\n\nawait memoizedGot('https://sindresorhus.com');\n\n// This call is cached\nawait memoizedGot('https://sindresorhus.com');\n\nawait delay(2000);\n\n// This call is not cached as the cache has expired\nawait memoizedGot('https://sindresorhus.com');\n```\n*/\nexport default function pMemoize(fn, { cacheKey = ([firstArgument]) => firstArgument, cache = new Map(), } = {}) {\n // Promise objects can't be serialized so we keep track of them internally and only provide their resolved values to `cache`\n // `Promise<AsyncReturnType<FunctionToMemoize>>` is used instead of `ReturnType<FunctionToMemoize>` because promise properties are not kept\n const promiseCache = new Map();\n const memoized = function (...arguments_) {\n const key = cacheKey(arguments_);\n if (promiseCache.has(key)) {\n return promiseCache.get(key);\n }\n const promise = (async () => {\n try {\n if (cache && await cache.has(key)) {\n return (await cache.get(key));\n }\n const promise = fn.apply(this, arguments_);\n const result = await promise;\n try {\n return result;\n }\n finally {\n if (cache) {\n await cache.set(key, result);\n }\n }\n }\n finally {\n promiseCache.delete(key);\n }\n })();\n promiseCache.set(key, promise);\n return promise;\n };\n mimicFn(memoized, fn, {\n ignoreNonConfigurable: true,\n });\n cacheStore.set(memoized, cache);\n return memoized;\n}\n/**\n- Only class methods and getters/setters can be memoized, not regular functions (they aren't part of the proposal);\n- Only [TypeScript’s decorators](https://www.typescriptlang.org/docs/handbook/decorators.html#parameter-decorators) are supported, not [Babel’s](https://babeljs.io/docs/en/babel-plugin-proposal-decorators), which use a different version of the proposal;\n- Being an experimental feature, they need to be enabled with `--experimentalDecorators`; follow TypeScript’s docs.\n\n@returns A [decorator](https://github.com/tc39/proposal-decorators) to memoize class methods or static class methods.\n\n@example\n```\nimport {pMemoizeDecorator} from 'p-memoize';\n\nclass Example {\n index = 0\n\n @pMemoizeDecorator()\n async counter() {\n return ++this.index;\n }\n}\n\nclass ExampleWithOptions {\n index = 0\n\n @pMemoizeDecorator()\n async counter() {\n return ++this.index;\n }\n}\n```\n*/\nexport function pMemoizeDecorator(options = {}) {\n const instanceMap = new WeakMap();\n return (target, propertyKey, descriptor) => {\n const input = target[propertyKey]; // eslint-disable-line @typescript-eslint/no-unsafe-assignment\n if (typeof input !== 'function') {\n throw new TypeError('The decorated value must be a function');\n }\n delete descriptor.value;\n delete descriptor.writable;\n descriptor.get = function () {\n if (!instanceMap.has(this)) {\n const value = pMemoize(input, options);\n instanceMap.set(this, value);\n return value;\n }\n return instanceMap.get(this);\n };\n };\n}\n/**\nClear all cached data of a memoized function.\n\n@param fn - Memoized function.\n*/\nexport function pMemoizeClear(fn) {\n if (!cacheStore.has(fn)) {\n throw new TypeError('Can\\'t clear a function that was not memoized!');\n }\n const cache = cacheStore.get(fn);\n if (!cache) {\n throw new TypeError('Can\\'t clear a function that doesn\\'t use a cache!');\n }\n if (typeof cache.clear !== 'function') {\n throw new TypeError('The cache Map can\\'t be cleared!');\n }\n cache.clear();\n}\n","import memoize from 'memoize';\nimport Yoga from 'yoga-layout';\nimport { interpolate, linear, easeIn, easeInOut, easeOut, circIn, circInOut, circOut, backIn, backInOut, backOut, anticipate, bounceIn, bounceInOut, bounceOut } from 'popmotion';\nimport { filters, render, getConfig } from 'squirrelly';\nimport pMemoize from 'p-memoize';\n\nfunction crossFade({ canvas, scenes, currentTime }) {\n if (scenes && canvas) {\n const activeScenes = scenes.scenes.filter(({ start, duration }) => {\n return currentTime >= start && currentTime <= start + duration;\n });\n if (activeScenes.length <= 0) {\n return;\n }\n const mainCtx = canvas.getContext(\"2d\");\n if (mainCtx) {\n const transitionDuration = scenes.transitionDuration;\n const lastVideoEnd = Math.max(...scenes.scenes.map(({ start, duration }) => start + duration));\n mainCtx.globalCompositeOperation = \"lighter\";\n mainCtx.clearRect(0, 0, canvas.width, canvas.height);\n activeScenes.forEach(({ start, duration, draw, transitionCanvas }) => {\n mainCtx.globalAlpha = 1;\n transitionCanvas.width = transitionCanvas.height = 0;\n transitionCanvas.width = canvas.width;\n transitionCanvas.height = canvas.height;\n const tCtx = transitionCanvas.getContext(\"2d\");\n if (tCtx) {\n const end = start + duration;\n const isFirst = start === 0;\n const isLast = end === lastVideoEnd;\n draw({\n currentTime,\n canvas: transitionCanvas\n });\n if (!isFirst && currentTime >= start && currentTime <= start + transitionDuration) {\n mainCtx.globalAlpha = Math.max(0, Math.min(1, (currentTime - start) / transitionDuration));\n } else if (!isLast && currentTime >= end - transitionDuration && currentTime <= end) {\n mainCtx.globalAlpha = Math.max(0, Math.min(1, (end - currentTime) / transitionDuration));\n }\n mainCtx.drawImage(transitionCanvas, 0, 0, canvas.width, canvas.height);\n }\n });\n }\n }\n}\n\nfunction normaliseResolution(resolution) {\n if (typeof resolution === \"string\") {\n const [w, h] = resolution.split(\":\");\n return Math.min(parseFloat(w), parseFloat(h));\n }\n return resolution;\n}\nfunction normaliseAspectRatio(aspectRatio) {\n if (typeof aspectRatio === \"string\") {\n const [w, h] = aspectRatio.split(\":\");\n const aW = parseFloat(w);\n const aH = parseFloat(h);\n return aW / aH;\n }\n return aspectRatio;\n}\nfunction getSizeDetails({ resolution, aspectRatio }) {\n const numericResolution = normaliseResolution(resolution);\n const numericAspectRatio = normaliseAspectRatio(aspectRatio);\n const widthLong = numericAspectRatio >= 1;\n const shortSide = Math.min(\n widthLong ? numericResolution * numericAspectRatio : numericResolution / numericAspectRatio,\n numericResolution\n );\n const longSide = Math.max(\n widthLong ? numericResolution * numericAspectRatio : numericResolution / numericAspectRatio,\n numericResolution\n );\n return {\n resolution: numericResolution,\n aspectRatio: numericAspectRatio,\n height: widthLong ? shortSide : longSide,\n width: widthLong ? longSide : shortSide\n };\n}\n\nfunction getVideoPosition({ format, resolution, aspectRatio, sourceWidth, sourceHeight }) {\n const { width: drawAreaWidth, height: drawAreaHeight } = getSizeDetails({ resolution, aspectRatio });\n const videoAspectRatio = sourceWidth / sourceHeight;\n const canvasRatioBigger = aspectRatio > videoAspectRatio;\n let scale = 1;\n if (format === \"letterbox\" || format === \"letterbox-video\") {\n scale = canvasRatioBigger ? drawAreaHeight / sourceHeight : drawAreaWidth / sourceWidth;\n } else if (format === \"squarebox\") {\n const shortSide = Math.min(drawAreaHeight, drawAreaWidth);\n scale = sourceWidth >= sourceHeight ? shortSide / sourceHeight : shortSide / sourceWidth;\n } else if (format === \"crop\") {\n scale = canvasRatioBigger ? drawAreaWidth / sourceWidth : drawAreaHeight / sourceHeight;\n }\n const sWidth = drawAreaWidth / scale;\n const sHeight = drawAreaHeight / scale;\n const sx = (sourceWidth - sWidth) / 2;\n const sy = (sourceHeight - sHeight) / 2;\n return {\n sx,\n sy,\n sWidth,\n sHeight,\n scale\n };\n}\n\nfunction getSafeRect({ source, sx, sy, sw, sh, dx, dy, dw, dh }) {\n const width = source?.naturalWidth ?? source?.videoWidth ?? source?.width;\n const height = source?.naturalHeight ?? source?.videoHeight ?? source?.height;\n sx = sx ?? 0;\n sy = sy ?? 0;\n sw = sw ?? width;\n sh = sh ?? height;\n if (sw < 0) {\n sx += sw;\n sw = Math.abs(sw);\n }\n if (sh < 0) {\n sy += sh;\n sh = Math.abs(sh);\n }\n if (dw < 0) {\n dx += dw;\n dw = Math.abs(dw);\n }\n if (dh < 0) {\n dy += dh;\n dh = Math.abs(dh);\n }\n const x1 = Math.max(sx, 0);\n const x2 = Math.min(sx + sw, width);\n const y1 = Math.max(sy, 0);\n const y2 = Math.min(sy + sh, height);\n const wRatio = dw / sw;\n const hRatio = dh / sh;\n return [\n source,\n x1,\n y1,\n x2 - x1,\n y2 - y1,\n sx < 0 ? dx - sx * wRatio : dx,\n sy < 0 ? dy - sy * hRatio : dy,\n (x2 - x1) * wRatio,\n (y2 - y1) * hRatio\n ];\n}\nfunction drawVideoFormat({\n context,\n source,\n crop,\n format = \"letterbox\",\n posX,\n posY,\n drawAreaWidth,\n drawAreaHeight,\n sourceWidth,\n sourceHeight,\n cropCanvas,\n letterboxCanvas\n}) {\n const { x, y, width, height } = crop ?? {};\n const offsetX = sourceWidth * (x ?? 0);\n const offsetY = sourceHeight * (y ?? 0);\n const cropWidth = sourceWidth * Math.min(1 - (x ?? 0), width ?? 1);\n const cropHeight = sourceHeight * Math.min(1 - (y ?? 0), height ?? 1);\n const cropContext = cropCanvas.getContext(\"2d\");\n if (cropContext) {\n cropCanvas.width = cropWidth;\n cropCanvas.height = cropHeight;\n const safeRect = getSafeRect({\n source,\n sx: offsetX,\n sy: offsetY,\n sw: cropWidth,\n sh: cropHeight,\n dx: 0,\n dy: 0,\n dw: cropWidth,\n dh: cropHeight\n });\n cropContext.drawImage(...safeRect);\n }\n const videoAspectRatio = cropWidth / cropHeight;\n const { sx, sy, sWidth, sHeight, scale } = getVideoPosition({\n resolution: Math.min(drawAreaWidth, drawAreaHeight),\n aspectRatio: drawAreaWidth / drawAreaHeight,\n format,\n sourceWidth: cropWidth,\n sourceHeight: cropHeight\n });\n const canLetterboxVideo = cropCanvas && typeof context.filter !== \"undefined\";\n if (format === \"letterbox\" || format === \"squarebox\" || format === \"letterbox-video\" && !canLetterboxVideo) {\n if (sx < 0) {\n const letterboxWidth = Math.abs(sx) * scale;\n context.fillStyle = \"black\";\n context.beginPath();\n context.rect(posX, posY, letterboxWidth, drawAreaHeight);\n context.rect(posX + drawAreaWidth - letterboxWidth, posY, letterboxWidth, drawAreaHeight);\n context.fill();\n context.closePath();\n }\n if (sy < 0) {\n const letterboxHeight = Math.abs(sy) * scale;\n context.fillStyle = \"black\";\n context.beginPath();\n context.rect(posX, posY, drawAreaWidth, letterboxHeight);\n context.rect(posX, posY + drawAreaHeight - letterboxHeight, drawAreaWidth, letterboxHeight);\n context.fill();\n context.closePath();\n }\n }\n if (format === \"letterbox-video\" && canLetterboxVideo) {\n const letterboxContext = letterboxCanvas.getContext(\"2d\");\n if (letterboxContext) {\n letterboxCanvas.width = cropWidth;\n letterboxCanvas.height = cropHeight;\n context.save();\n context.globalCompositeOperation = \"destination-out\";\n context.fillRect(posX, posY, drawAreaWidth, drawAreaHeight);\n const safeRect = getSafeRect({\n source: cropCanvas,\n sx,\n sy,\n sw: sWidth,\n sh: sHeight,\n dx: posX,\n dy: posY,\n dw: drawAreaWidth,\n dh: drawAreaHeight\n });\n context.globalCompositeOperation = \"source-over\";\n context.drawImage(...safeRect);\n letterboxContext.save();\n const scale2 = 1.2;\n const translateX = -(cropWidth * scale2 - cropWidth) / 2;\n const translateY = -(cropHeight * scale2 - cropHeight) / 2;\n const blurFactor = Math.min(cropWidth / 20, cropHeight / 20);\n letterboxContext.filter = `blur(${blurFactor}px) brightness(20%)`;\n letterboxContext.translate(translateX, translateY);\n letterboxContext.scale(scale2, scale2);\n letterboxContext.drawImage(cropCanvas, 0, 0, cropWidth, cropHeight);\n letterboxContext.restore();\n context.globalCompositeOperation = \"destination-over\";\n if (sx < 0) {\n const h = drawAreaWidth / videoAspectRatio;\n const ratio = drawAreaHeight / h;\n const safeRect2 = getSafeRect({\n source: letterboxCanvas,\n sy: (1 - ratio) * cropHeight / 2,\n sh: ratio * cropHeight,\n dx: posX,\n dy: posY,\n dw: drawAreaWidth,\n dh: drawAreaHeight\n });\n context.drawImage(...safeRect2);\n }\n if (sy < 0) {\n const w = drawAreaHeight * videoAspectRatio;\n const ratio = drawAreaWidth / w;\n const safeRect2 = getSafeRect({\n source: letterboxCanvas,\n sx: (1 - ratio) * cropWidth / 2,\n sw: ratio * cropWidth,\n dx: posX,\n dy: posY,\n dw: drawAreaWidth,\n dh: drawAreaHeight\n });\n context.drawImage(...safeRect2);\n }\n context.restore();\n }\n } else {\n const safeRect = getSafeRect({\n source: cropCanvas,\n sx,\n sy,\n sw: sWidth,\n sh: sHeight,\n dx: posX,\n dy: posY,\n dw: drawAreaWidth,\n dh: drawAreaHeight\n });\n context.drawImage(...safeRect);\n }\n const dx = sx * -1 * scale;\n const dy = sy * -1 * scale;\n const dw = drawAreaWidth - dx * 2;\n const dh = drawAreaHeight - dy * 2;\n return {\n dx,\n dy,\n dw,\n dh\n };\n}\n\nfunction breakWord({ context, word, maxW = Infinity }) {\n const lines = [];\n const fullWordMetrics = context.measureText(word);\n if (fullWordMetrics.width < maxW) {\n return [{ text: word, metrics: fullWordMetrics }];\n }\n for (let i = 0; i < word.length; i++) {\n const lastLine = lines[lines.length - 1];\n const newText = (lastLine?.text ?? \"\") + word[i];\n const newLineMetrics = context.measureText(newText);\n if (newLineMetrics.width < maxW) {\n lines[lastLine ? lines.length - 1 : 0] = {\n text: newText,\n metrics: newLineMetrics\n };\n } else {\n lines.push({ text: word[i], metrics: context.measureText(word[i]) });\n }\n }\n return lines;\n}\n\nconst getFontSize = memoize(\n ({ font, scale, context, maxW, maxH, text, minSize, maxSize }) => {\n let fontSize = 0;\n if (maxSize) {\n const multiplier = 1;\n fontSize = (minSize ?? 0) * scale;\n let widestLine = 0;\n while (maxSize * scale > fontSize + multiplier) {\n fontSize += multiplier;\n const lines = getLines({ context, font, fontSize, text, maxW });\n widestLine = lines.reduce((acc, line) => {\n if (line.metrics.width > acc) {\n acc = line.metrics.width;\n }\n return acc;\n }, 0);\n if (widestLine > maxW || lines.length * fontSize > maxH) {\n fontSize -= multiplier;\n break;\n }\n }\n } else {\n fontSize = parseFloat(font.match(fontSizeRegex)?.groups?.value ?? \"0\") * scale;\n }\n return fontSize;\n },\n {\n cacheKey: ([{ font, text, minSize, maxSize, scale, maxW, maxH }]) => `${font}_${text}_${minSize}_${maxSize}_${scale}_${maxW}_${maxH}`\n }\n);\n\nfunction parseInset(inset, scale) {\n if (typeof inset === \"number\") {\n return {\n top: inset * scale,\n right: inset * scale,\n bottom: inset * scale,\n left: inset * scale\n };\n }\n return {\n top: typeof inset.top === \"number\" ? inset.top * scale : inset.top,\n right: typeof inset.right === \"number\" ? inset.right * scale : inset.right,\n bottom: typeof inset.bottom === \"number\" ? inset.bottom * scale : inset.bottom,\n left: typeof inset.left === \"number\" ? inset.left * scale : inset.left\n };\n}\nfunction parseSpacing(spacing, scale) {\n if (typeof spacing === \"number\") {\n return {\n top: spacing * scale,\n right: spacing * scale,\n bottom: spacing * scale,\n left: spacing * scale\n };\n }\n return {\n top: (typeof spacing.top === \"number\" ? spacing.top * scale : spacing.top) ?? 0,\n right: (typeof spacing.right === \"number\" ? spacing.right * scale : spacing.right) ?? 0,\n bottom: (typeof spacing.bottom === \"number\" ? spacing.bottom * scale : spacing.bottom) ?? 0,\n left: (typeof spacing.left === \"number\" ? spacing.left * scale : spacing.left) ?? 0\n };\n}\nfunction setNodeProperties(node, { layout, scale = 1 }) {\n const {\n position = \"relative\",\n inset,\n width,\n height,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n flex,\n gap,\n margin,\n padding,\n // Not technically CSS defaults but I prefer column as default\n direction = \"column\",\n align = \"start\",\n alignSelf,\n justify = \"start\"\n } = layout;\n const positions = {\n static: Yoga.POSITION_TYPE_STATIC,\n relative: Yoga.POSITION_TYPE_RELATIVE,\n absolute: Yoga.POSITION_TYPE_ABSOLUTE\n };\n node.setPositionType(positions[position]);\n if (inset) {\n const { top, right, bottom, left } = parseInset(inset, scale);\n if (top) {\n node.setPosition(Yoga.EDGE_TOP, top);\n }\n if (right) {\n node.setPosition(Yoga.EDGE_RIGHT, right);\n }\n if (bottom) {\n node.setPosition(Yoga.EDGE_BOTTOM, bottom);\n }\n if (left) {\n node.setPosition(Yoga.EDGE_LEFT, left);\n }\n }\n const directions = {\n row: Yoga.FLEX_DIRECTION_ROW,\n column: Yoga.FLEX_DIRECTION_COLUMN,\n \"row-reverse\": Yoga.FLEX_DIRECTION_ROW_REVERSE,\n \"column-reverse\": Yoga.FLEX_DIRECTION_COLUMN_REVERSE\n };\n node.setFlexDirection(directions[direction]);\n const aligns = {\n start: Yoga.ALIGN_FLEX_START,\n end: Yoga.ALIGN_FLEX_END,\n center: Yoga.ALIGN_CENTER,\n stretch: Yoga.ALIGN_STRETCH\n };\n node.setAlignItems(aligns[align]);\n if (alignSelf) {\n node.setAlignSelf(aligns[alignSelf]);\n }\n const justifies = {\n start: Yoga.JUSTIFY_FLEX_START,\n end: Yoga.JUSTIFY_FLEX_END,\n center: Yoga.JUSTIFY_CENTER,\n \"space-between\": Yoga.JUSTIFY_SPACE_BETWEEN,\n \"space-around\": Yoga.JUSTIFY_SPACE_AROUND,\n \"space-evenly\": Yoga.JUSTIFY_SPACE_EVENLY\n };\n node.setJustifyContent(justifies[justify]);\n if (margin) {\n const { top, right, bottom, left } = parseSpacing(margin, scale);\n node.setMargin(Yoga.EDGE_TOP, top);\n node.setMargin(Yoga.EDGE_RIGHT, right);\n node.setMargin(Yoga.EDGE_BOTTOM, bottom);\n node.setMargin(Yoga.EDGE_LEFT, left);\n }\n if (padding) {\n const { top, right, bottom, left } = parseSpacing(padding, scale);\n node.setPadding(Yoga.EDGE_TOP, top);\n node.setPadding(Yoga.EDGE_RIGHT, right);\n node.setPadding(Yoga.EDGE_BOTTOM, bottom);\n node.setPadding(Yoga.EDGE_LEFT, left);\n }\n if (flex) {\n node.setFlex(flex);\n }\n node.setGap(Yoga.GUTTER_ALL, (gap ?? 0) * scale);\n if (width) {\n node.setWidth(typeof width === \"number\" ? width * scale : width);\n }\n if (height) {\n if (typeof height === \"function\") {\n node.setHeight(\"100%\");\n } else {\n node.setHeight(typeof height === \"number\" ? height * scale : height);\n }\n }\n if (minWidth) {\n node.setMinWidth(typeof minWidth === \"number\" ? minWidth * scale : minWidth);\n }\n if (minHeight) {\n node.setMinHeight(typeof minHeight === \"number\" ? minHeight * scale : minHeight);\n }\n if (maxWidth) {\n node.setMaxWidth(typeof maxWidth === \"number\" ? maxWidth * scale : maxWidth);\n }\n if (maxHeight) {\n node.setMaxHeight(typeof maxHeight === \"number\" ? maxHeight * scale : maxHeight);\n }\n}\nfunction _layoutElements({ canvas, debug = false, scale = 1, position = [] }) {\n position.forEach(({ x, y, width, height, childNodes, element }) => {\n const context = canvas.getContext(\"2d\", { alpha: false });\n if (context) {\n const { draw } = element;\n if (draw) {\n context.save();\n draw({ scale, dx: x, dy: y, dw: width, dh: height });\n if (debug) {\n context.strokeStyle = \"red\";\n context.strokeRect(x, y, width, height);\n }\n }\n _layoutElements({\n canvas,\n debug,\n scale,\n position: childNodes\n });\n context.restore();\n }\n });\n}\nfunction buildNodeTree(parent, elements, scale) {\n const nodes = elements.map((element, index) => {\n const node = Yoga.Node.create();\n const { radius, elements: children = [], draw, ...layout } = element;\n setNodeProperties(node, { layout, scale });\n parent.insertChild(node, index);\n return {\n node,\n element,\n childNodes: buildNodeTree(node, children, scale)\n };\n });\n parent.calculateLayout(void 0, void 0);\n return nodes;\n}\nfunction calculatePosition(root, tree, parentX = 0, parentY = 0) {\n const { top: rootY, left: rootX } = root.getComputedLayout();\n return tree.map(({ node, element, childNodes }) => {\n const { top, left, width, height } = node.getComputedLayout();\n const x = parentX + left;\n const y = parentY + top;\n return {\n x: rootX + x,\n y: rootY + y,\n width,\n height,\n element,\n childNodes: calculatePosition(root, childNodes, x, y)\n };\n });\n}\nfunction recalculateDimensions(tree, scale) {\n tree.forEach(({ node, element, childNodes }) => {\n const { height } = element;\n if (height && typeof height === \"function\") {\n const width = node.getComputedWidth();\n const maxHeight = node.getComputedHeight();\n const h = height({ width, maxHeight, scale });\n node.setHeight(h);\n }\n recalculateDimensions(childNodes, scale);\n });\n}\nfunction layoutElements({ canvas, origin, elements, ...args }) {\n const o = { inset: { top: 0, left: 0 }, width: canvas.width, height: canvas.height, ...origin };\n const root = Yoga.Node.create();\n setNodeProperties(root, { layout: o });\n root.calculateLayout(void 0, void 0);\n const { width, height } = root.getComputedLayout();\n const scale = Math.min(width, height) / 1080;\n const tree = buildNodeTree(root, elements, scale);\n recalculateDimensions(tree, scale);\n root.calculateLayout(void 0, void 0);\n const position = calculatePosition(root, tree);\n return _layoutElements({ ...args, scale, canvas, position });\n}\n\nconst easingMap = {\n linear,\n easeIn,\n easeInOut,\n easeOut,\n circIn,\n circInOut,\n circOut,\n backIn,\n backInOut,\n backOut,\n anticipate,\n bounceIn,\n bounceInOut,\n bounceOut\n};\nconst createInterpolate = memoize(\n (from, to, { clamp = true, ease = \"easeIn\", ...options } = {}) => {\n return interpolate(from, to, { ...options, clamp, ease: easingMap[ease] });\n },\n {\n cacheKey: ([from, to, options]) => JSON.stringify({ from, to, options })\n }\n);\n\nconst supportedFonts = [\n {\n family: \"Noto Arabic\",\n regex: /\\p{Script=Arabic}/u,\n url: \"https://media-player-fonts.s3.ap-southeast-2.amazonaws.com/NotoSansArabic-VariableFont_wdth%2Cwght.woff2\",\n style: \"normal\"\n },\n {\n family: \"Noto Chinese\",\n regex: /\\p{Script=Han}/u,\n url: \"https://media-player-fonts.s3.ap-southeast-2.amazonaws.com/NotoSansSC-VariableFont_wght.woff2\",\n style: \"normal\"\n },\n {\n family: \"Noto Hebrew\",\n regex: /\\p{Script=Hebrew}/u,\n url: \"https://media-player-fonts.s3.ap-southeast-2.amazonaws.com/NotoSansHebrew-VariableFont_wdth%2Cwght.woff2\",\n style: \"normal\"\n },\n {\n family: \"Noto Hindi\",\n regex: /\\p{Script=Devanagari}/u,\n url: \"https://media-player-fonts.s3.ap-southeast-2.amazonaws.com/NotoSansDevanagari-VariableFont_wdth%2Cwght.woff2\",\n style: \"normal\"\n },\n {\n family: \"Noto Japanese\",\n regex: /\\p{Script=Han}|\\p{Script=Katakana}|\\p{Script=Hiragana}/u,\n url: \"https://media-player-fonts.s3.ap-southeast-2.amazonaws.com/NotoSansJP-VariableFont_wght.woff2\",\n style: \"normal\"\n },\n {\n family: \"Noto Korean\",\n regex: /\\p{Script=Hangul}/u,\n url: \"https://media-player-fonts.s3.ap-southeast-2.amazonaws.com/NotoSansKR-VariableFont_wght.woff2\",\n style: \"normal\"\n },\n {\n family: \"Noto Color Emoji\",\n regex: /\\p{Extended_Pictographic}/u,\n url: \"https://media-player-fonts.s3.ap-southeast-2.amazonaws.com/NotoColorEmoji-Regular.woff2\",\n style: \"normal\"\n }\n];\nfunction appendFontFamilies({ text, font }) {\n let newFont = font;\n supportedFonts.forEach(({ family, regex }) => {\n if (regex.exec(text)) {\n newFont += `, ${family}`;\n }\n });\n return newFont;\n}\n\nconst PILL_FRACTION = 1.8;\nconst fontSizeRegex = /(?<value>\\d+\\.?\\d*)(?=px)/;\nfunction parseRadius(radius, scale = 1) {\n if (typeof radius === \"number\") {\n return {\n topLeft: radius * scale,\n topRight: radius * scale,\n bottomRight: radius * scale,\n bottomLeft: radius * scale\n };\n }\n return {\n topLeft: (radius?.topLeft ?? 0) * scale,\n topRight: (radius?.topRight ?? 0) * scale,\n bottomRight: (radius?.bottomRight ?? 0) * scale,\n bottomLeft: (radius?.bottomLeft ?? 0) * scale\n };\n}\nfunction visibleRecursive(element) {\n const { visible, node } = element;\n const childElements = [...node?.elements ?? [], ...element?.elements ?? []];\n return (\n // If we're explicitly visible or invisible return this value\n visible ?? // Otherwise only show the node if the node has a value that's not undefined\n (node && node.type !== \"box\" && node.type !== \"gradient\" ? !!node.value : childElements?.some((element2) => visibleRecursive(element2)))\n );\n}\nfunction mapElements({\n debug = false,\n canvas,\n cropCanvas,\n posterCanvas,\n letterboxCanvas,\n elements = [],\n currentTime,\n contentTime,\n sceneTime,\n totalDuration,\n contentDuration,\n sceneDuration\n}) {\n return elements.map((element) => {\n const { node, transient = [{ from: 0, duration: Infinity }] } = element;\n const mainCtx = canvas.getContext(\"2d\");\n const timers = {\n total: currentTime,\n content: contentTime,\n scene: sceneTime\n };\n const durations = {\n total: totalDuration,\n content: contentDuration,\n scene: sceneDuration\n };\n const activeTransients = transient.reduce((acc, { type = \"scene\", from, duration, animation }) => {\n const relativeFrom = from < 0 ? durations[type] + from : from;\n if (timers[type] >= relativeFrom && timers[type] <= relativeFrom + duration) {\n acc.push({\n type,\n animation,\n duration,\n from: relativeFrom\n });\n }\n return acc;\n }, []);\n if (mainCtx && activeTransients.length > 0 && visibleRecursive(element)) {\n let width = element.width;\n let height = element.height;\n if (node?.type === \"text\" && node.value) {\n const { align = \"left\" } = node;\n const font = appendFontFamilies({ text: node.value, font: node.font });\n mainCtx.save();\n mainCtx.font = font;\n mainCtx.textBaseline = \"top\";\n mainCtx.textAlign = align;\n if (!node.wrap) {\n width = mainCtx.measureText(node.value).width;\n height = parseFloat(font.match(fontSizeRegex)?.groups?.value ?? \"0\");\n } else {\n height = ({ width: width2, maxHeight, scale }) => {\n const fontSize = getFontSize({\n font,\n scale,\n context: mainCtx,\n maxW: width2,\n maxH: maxHeight,\n text: node.value ?? \"\",\n minSize: node.fill?.minSize,\n maxSize: node.fill?.maxSize\n });\n const lines = getLines({ context: mainCtx, font, fontSize, text: node.value ?? \"\", maxW: width2 });\n return lines.length * fontSize;\n };\n }\n mainCtx.restore();\n }\n if (node?.type === \"image\" && node.image && node.size) {\n const logoWidth = node.image?.naturalWidth ?? node.image?.width;\n const logoHeight = node.image?.naturalHeight ?? node.image?.height;\n const logoAspectRatio = logoWidth / logoHeight;\n const desiredWidth = node.size?.width;\n const desiredHeight = node.size?.height;\n width = desiredWidth ?? (logoAspectRatio >= 1 ? (desiredHeight ?? 0) * logoAspectRatio : (desiredHeight ?? 0) / logoAspectRatio);\n height = desiredHeight ?? (logoAspectRatio < 1 ? (desiredWidth ?? 0) * logoAspectRatio : (desiredWidth ?? 0) / logoAspectRatio);\n }\n return {\n ...element,\n width,\n height,\n elements: mapElements({\n debug,\n canvas,\n cropCanvas,\n posterCanvas,\n letterboxCanvas,\n elements: element.elements,\n currentTime,\n contentTime,\n sceneTime,\n totalDuration,\n contentDuration,\n sceneDuration\n }),\n draw: ({ dx, dy, dw, dh, scale }) => {\n activeTransients.forEach((transient2) => {\n const {\n type: transientType = \"scene\",\n from,\n duration,\n animation = { type: \"fade\", duration: 1 / 3, easing: { in: \"easeOut\", out: \"easeOut\" } }\n } = transient2;\n if (animation) {\n const {\n type: animationType,\n duration: animationDuration,\n easing: { in: animationEasingIn = \"easeOut\", out: animationEasingOut = \"easeOut\" } = {}\n } = animation;\n if (from > 0 && timers[transientType] <= from + animationDuration) {\n switch (animationType) {\n case \"fade\": {\n const fadeIn = createInterpolate([from, from + animationDuration], [0, 1], {\n ease: animationEasingIn\n });\n mainCtx.globalAlpha = fadeIn(timers[transientType]);\n break;\n }\n case \"slide\": {\n const { options } = animation;\n const slideMap = {\n up: [\n { x: 0, y: dh },\n { x: 0, y: 0 }\n ],\n right: [\n { x: dw, y: 0 },\n { x: 0, y: 0 }\n ],\n down: [\n { x: 0, y: -dh },\n { x: 0, y: 0 }\n ],\n left: [\n { x: -dw, y: 0 },\n { x: 0, y: 0 }\n ]\n };\n const slideIn = createInterpolate(\n [from, from + animationDuration],\n slideMap[options.direction.in],\n { ease: animationEasingIn }\n );\n const { x, y } = slideIn(timers[transientType]);\n mainCtx.translate(x, y);\n break;\n }\n }\n }\n if (\n // Don't fade out if we hit the end of the video as the fade ends\n from + duration < durations[transientType] && from + duration - animationDuration <= timers[transientType]\n ) {\n switch (animationType) {\n case \"fade\": {\n const fadeOut = createInterpolate(\n [from + duration - animationDuration, from + duration],\n [1, 0],\n {\n ease: animationEasingOut\n }\n );\n mainCtx.globalAlpha = fadeOut(timers[transientType]);\n break;\n }\n case \"slide\": {\n const { options } = animation;\n const slideMap = {\n up: [\n { x: 0, y: 0 },\n { x: 0, y: -dh }\n ],\n right: [\n { x: 0, y: 0 },\n { x: dw, y: 0 }\n ],\n down: [\n { x: 0, y: 0 },\n { x: 0, y: dh }\n ],\n left: [\n { x: 0, y: 0 },\n { x: -dw, y: 0 }\n ]\n };\n const slideOut = createInterpolate(\n [from + duration - animationDuration, from + duration],\n slideMap[options.direction.out],\n { ease: animationEasingOut }\n );\n const { x, y } = slideOut(timers[transientType]);\n mainCtx.translate(x, y);\n break;\n }\n }\n }\n }\n });\n if (node) {\n const { type } = node;\n if (type === \"box\") {\n const { shadow: { color = \"rgba(0, 0, 0, 0.5)\", blur = 0, offset: { x = 0, y = 0 } = {} } = {} } = node;\n mainCtx.save();\n mainCtx.fillStyle = color;\n mainCtx.shadowColor = color;\n mainCtx.shadowBlur = blur;\n mainCtx.shadowOffsetX = x + dw + canvas.width;\n mainCtx.shadowOffsetY = y + dh + canvas.height;\n mainCtx.beginPath();\n if (!element.radius) {\n mainCtx.rect(dx - dw - canvas.width, dy - dh - canvas.height, dw, dh);\n } else {\n const { topLeft, topRight, bottomRight, bottomLeft } = parseRadius(element.radius, scale);\n mainCtx.roundRect(dx - dw - canvas.width, dy - dh - canvas.height, dw, dh, [\n topLeft,\n topRight,\n bottomRight,\n bottomLeft\n ]);\n }\n mainCtx.fill();\n mainCtx.closePath();\n mainCtx.restore();\n }\n if (element.radius) {\n const { topLeft, topRight, bottomRight, bottomLeft } = parseRadius(element.radius, scale);\n mainCtx.beginPath();\n mainCtx.moveTo(dx + Math.min(dh / PILL_FRACTION, topLeft), dy);\n mainCtx.lineTo(dx + dw - Math.min(dh / PILL_FRACTION, topRight), dy);\n mainCtx.quadraticCurveTo(dx + dw, dy, dx + dw, dy + Math.min(dh / PILL_FRACTION, topRight));\n mainCtx.lineTo(dx + dw, dy + dh - Math.min(dh / PILL_FRACTION, bottomRight));\n mainCtx.quadraticCurveTo(\n dx + dw,\n dy + dh,\n dx + dw - Math.min(dh / PILL_FRACTION, bottomRight),\n dy + dh\n );\n mainCtx.lineTo(dx + Math.min(dh / PILL_FRACTION, bottomLeft), dy + dh);\n mainCtx.quadraticCurveTo(dx, dy + dh, dx, dy + dh - Math.min(dh / PILL_FRACTION, bottomLeft));\n mainCtx.lineTo(dx, dy + Math.min(dh / PILL_FRACTION, topLeft));\n mainCtx.quadraticCurveTo(dx, dy, dx + Math.min(dh / PILL_FRACTION, topLeft), dy);\n mainCtx.closePath();\n if (debug) {\n mainCtx.strokeStyle = \"blue\";\n mainCtx.stroke();\n }\n mainCtx.clip();\n }\n if (type === \"box\") {\n mainCtx.save();\n mainCtx.fillStyle = node.background;\n mainCtx.fillRect(dx, dy, dw, dh);\n mainCtx.restore();\n }\n if (type === \"text\" && node.value) {\n const { align = \"left\" } = node;\n const font = appendFontFamilies({ text: node.value, font: node.font });\n const fontSize = getFontSize({\n font,\n scale,\n context: mainCtx,\n maxW: dw,\n maxH: dh,\n text: node.value ?? \"\",\n minSize: node.fill?.minSize,\n maxSize: node.fill?.maxSize\n });\n mainCtx.font = font.replace(fontSizeRegex, fontSize.toString());\n mainCtx.textBaseline = \"top\";\n mainCtx.fillStyle = node.color;\n mainCtx.textAlign = align;\n const textXPosMap = {\n left: dx,\n center: dx + dw / 2,\n right: dx + dw\n };\n if (node.wrap) {\n const lines = getLines({ context: mainCtx, font, fontSize, text: node.value, maxW: dw });\n lines.forEach((line, index) => {\n mainCtx.fillText(line.text, textXPosMap[align], dy + fontSize * index);\n });\n } else {\n mainCtx.fillText(node.value, textXPosMap[align], dy);\n }\n }\n if (type === \"image\" && node.image) {\n mainCtx.drawImage(node.image, dx, dy, dw, dh);\n }\n if (type === \"video\" && (node.video?.node || node.video?.getSource)) {\n const format = node.format ?? \"letterbox\";\n const video = node.video?.getSource?.(sceneTime) ?? node.video.node;\n const sourceWidth = video?.videoWidth ?? video?.naturalWidth ?? video?.width;\n const sourceHeight = video?.videoHeight ?? video?.naturalHeight ?? video?.height;\n if (sourceWidth && sourceHeight) {\n const {\n dx: videoX,\n dy: videoY,\n dw: videoW,\n dh: videoH\n } = drawVideoFormat({\n context: mainCtx,\n cropCanvas,\n letterboxCanvas,\n source: video,\n format,\n crop: node?.value?.crop,\n sourceWidth,\n sourceHeight,\n posX: dx,\n posY: dy,\n drawAreaWidth: dw,\n drawAreaHeight: dh\n });\n if (node.elements) {\n drawElements({\n debug,\n canvas,\n cropCanvas,\n posterCanvas,\n letterboxCanvas,\n elements: node.elements,\n currentTime,\n contentTime,\n sceneTime,\n totalDuration,\n contentDuration,\n sceneDuration,\n origin: {\n inset: {\n top: Math.max(dy, dy + videoY),\n left: Math.max(dx, dx + videoX)\n },\n width: Math.min(dw, videoW),\n height: Math.min(dh, videoH)\n }\n });\n }\n }\n const posterDuration = 1 / 3;\n if (node.poster && currentTime >= 0 && currentTime <= posterDuration) {\n mainCtx.save();\n mainCtx.globalAlpha = 1 - currentTime / posterDuration;\n const posterWidth = node.poster?.naturalWidth ?? node.poster?.width;\n const posterHeight = node.poster?.naturalHeight ?? node.poster?.height;\n posterCanvas.width = posterCanvas.height = 0;\n posterCanvas.width = dw;\n posterCanvas.height = dh;\n const posterCtx = posterCanvas.getContext(\"2d\");\n if (posterCtx && posterWidth && posterHeight) {\n const {\n dx: videoX,\n dy: videoY,\n dw: videoW,\n dh: videoH\n } = drawVideoFormat({\n context: posterCtx,\n cropCanvas,\n letterboxCanvas,\n source: node.poster,\n format,\n crop: node?.value?.crop,\n sourceWidth: posterWidth,\n sourceHeight: posterHeight,\n posX: 0,\n posY: 0,\n drawAreaWidth: dw,\n drawAreaHeight: dh\n });\n if (node.elements) {\n drawElements({\n debug,\n canvas: posterCanvas,\n cropCanvas,\n posterCanvas,\n letterboxCanvas,\n elements: node.elements,\n currentTime,\n contentTime,\n sceneTime,\n totalDuration,\n contentDuration,\n sceneDuration,\n origin: {\n inset: {\n top: Math.max(0, videoY),\n left: Math.max(0, videoX)\n },\n width: Math.min(dw, videoW),\n height: Math.min(dh, videoH)\n }\n });\n }\n mainCtx.drawImage(posterCanvas, dx, dy, dw, dh);\n mainCtx.restore();\n }\n }\n }\n if (type === \"gradient\" && node.value) {\n const gradient = mainCtx.createLinearGradient(dx + dw, dy, dx + dw, dy + dh);\n node.value?.forEach((stop) => {\n gradient.addColorStop(stop.percent, stop.color);\n });\n mainCtx.fillStyle = gradient;\n mainCtx.fillRect(dx, dy, dw, dh);\n }\n }\n }\n };\n }\n }).filter(Boolean);\n}\nfunction drawElements({\n debug,\n canvas,\n cropCanvas,\n posterCanvas,\n letterboxCanvas,\n elements,\n currentTime,\n contentTime,\n sceneTime,\n totalDuration,\n contentDuration,\n sceneDuration,\n ...rest\n}) {\n return layoutElements({\n ...rest,\n debug,\n canvas,\n elements: mapElements({\n debug,\n canvas,\n cropCanvas,\n posterCanvas,\n letterboxCanvas,\n elements,\n currentTime,\n contentTime,\n sceneTime,\n totalDuration,\n contentDuration,\n sceneDuration\n })\n });\n}\n\nconst getLines = memoize(\n ({ context, font, fontSize, text, maxW = Infinity }) => {\n try {\n context.save();\n context.font = font.replace(fontSizeRegex, fontSize.toString());\n const newLines = text.split(\"\\n\");\n return newLines.flatMap((line) => {\n const words = line.split(\" \").filter(Boolean);\n if (!words.length) {\n return { text: \"\", metrics: context.measureText(\"\") };\n }\n return words.slice(1).reduce(\n (acc, word) => {\n const prevLine = acc[acc.length - 1].text;\n const newLine = `${prevLine} ${word}`.trim();\n const newMetrics = context.measureText(newLine);\n if (newMetrics.width > maxW) {\n acc = [...acc, ...breakWord({ context, word, maxW })];\n } else {\n acc[acc.length - 1] = {\n text: newLine,\n metrics: newMetrics\n };\n }\n return acc;\n },\n breakWord({ context, word: words[0], maxW })\n );\n });\n } finally {\n context.restore();\n }\n },\n {\n cacheKey: ([{ font, fontSize, text, maxW }]) => `${font}_${fontSize}_${text}_${maxW}`\n }\n);\n\nconst VTT_LINE_REGEX = /\\d{0,2}:?\\d{2}:\\d{2}\\.\\d{3}\\s-->\\s\\d{0,2}:?\\d{2}:\\d{2}\\.\\d{3}\\s{1,2}.*/g;\nconst VTT_TIMESTAMP_REGEX = /\\d{0,2}:?\\d{2}:\\d{2}\\.\\d{3}/g;\nfunction vttToLines(vtt) {\n if (!vtt) {\n return [];\n }\n const match = vtt.match(VTT_LINE_REGEX);\n if (!match) {\n return [];\n }\n return match?.map((line) => {\n const [timestamps, text] = line.replace(\"\\r\\n\", \"\\n\").split(\"\\n\");\n const [start, end] = timestamps.match(VTT_TIMESTAMP_REGEX) || [];\n return { start, end, text };\n });\n}\nfunction parseTimestamp(timestamp) {\n const [hours, minutes, seconds] = timestamp.split(\":\");\n if (!seconds) {\n return parseInt(hours) * 60 + parseInt(minutes);\n }\n return parseInt(hours) * 60 * 60 + parseInt(minutes) * 60 + parseFloat(seconds);\n}\nfunction drawCaptions({ canvas, dx, dy, dw, dh, sceneTime, vttCaptions }) {\n if (vttCaptions) {\n const captions = vttToLines(vttCaptions);\n const activeCaption = captions.find(({ start, end }) => {\n return start && end && sceneTime >= parseTimestamp(start) && sceneTime < parseTimestamp(end);\n });\n if (activeCaption) {\n const context = canvas.getContext(\"2d\");\n if (context) {\n const resolution = Math.min(dw, dh);\n const fontSize = resolution * 0.04;\n const font = appendFontFamilies({\n text: vttCaptions,\n font: `400 ${fontSize}px Roobert Captions`\n });\n context.font = font;\n context.textBaseline = \"middle\";\n const maxWidth = dw * 0.9;\n const lines = getLines({ context, font, fontSize, text: activeCaption.text, maxW: maxWidth });\n lines.forEach(({ text, metrics }, index) => {\n const textPosX = dx + (dw - metrics.width) / 2;\n const textPosY = dy + (dh * 0.85 - (fontSize + resolution * 0.03) * (lines.length - 1 - index));\n const boxPosOffset = fontSize * 0.8;\n const boxPadding = fontSize / 1.5;\n const boxPosX = dx + (dw - metrics.width - boxPadding) / 2;\n const boxPosY = textPosY - boxPosOffset;\n const boxWidth = metrics.width + boxPadding;\n const boxHeight = boxPosOffset * 2;\n const currentAlpha = context.globalAlpha;\n context.save();\n context.globalAlpha = 0.8 * currentAlpha;\n context.fillStyle = \"#000000\";\n context.beginPath();\n context.roundRect(boxPosX, boxPosY, boxWidth, boxHeight, resolution * 0.01);\n context.fill();\n context.closePath();\n context.globalAlpha = currentAlpha;\n context.fillStyle = \"#FFFFFF\";\n context.fillText(text, textPosX, textPosY);\n context.restore();\n });\n }\n }\n }\n}\n\nconst template = {\n id: \"046f363c-960a-449c-ae5e-984ac6ab58c2\",\n version: \"3\",\n name: \"None\",\n entityId: \"none\",\n templateId: \"a95e537e-fb4d-4d2f-9c72-86c0925c7176\",\n layouts: [\n {\n name: \"none\",\n tree: `[\n {\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"node\": {\n \"type\": \"video\",\n \"format\": {{ it.videoFormat }},\n \"value\": {\n \"id\": {{ it.id }},\n \"key\": {{ it.key }},\n \"src\": {{ it.src }},\n \"playlist\": {{ it.playlist }},\n \"poster\": {{ it.poster }},\n \"captions\": {{ it.captions }},\n \"duration\": {{ it.duration }},\n \"startOffset\": {{ it.startOffset }},\n \"endOffset\": {{ it.endOffset }},\n \"crop\": {\n \"x\": {{ it.crop?.x }},\n \"y\": {{ it.crop?.y }},\n \"width\": {{ it.crop?.width }},\n \"height\": {{ it.crop?.height }}\n }\n }\n }\n }\n ]`\n }\n ],\n content: [\n {\n scenes: [\n {\n layout: \"none\",\n data: `{\n \"id\": {{ it._root?.answer?.id }},\n \"key\": {{ it._root?.answer?.id + '-intro' }},\n \"poster\": {{ it._root?.answer?.media?.thumbnail }},\n \"duration\": {{ it._root?.answer?.metadata?.duration }},\n \"startOffset\": {{ it._root?.answer?.settings?.startOffset }},\n \"endOffset\": {{ it._root?.answer?.settings?.endOffset }},\n \"crop\": {\n \"x\": {{ it._root?.answer?.settings?.crop?.x }},\n \"y\": {{ it._root?.answer?.settings?.crop?.y }},\n \"width\": {{ it._root?.answer?.settings?.crop?.width }},\n \"height\": {{ it._root?.answer?.settings?.crop?.height }}\n }\n }`,\n derived: `{\n \"src\": {{ it._derived?.src }},\n \"playlist\": {{ it._derived?.playlist }},\n \"captions\": {{ it._derived?.captions }}\n }`\n }\n ],\n root: \"{{ it.intro?.questions?.items }}\"\n },\n {\n scenes: [\n {\n layout: \"none\",\n data: `{\n \"id\": {{ it._root?.answer?.id }},\n \"key\": {{ it._root?.answer?.id + '-' + it._index }},\n \"poster\": {{ it._root?.answer?.media?.thumbnail }},\n \"duration\": {{ it._root?.answer?.metadata?.duration }},\n \"startOffset\": {{ it._root?.answer?.settings?.startOffset }},\n \"endOffset\": {{ it._root?.answer?.settings?.endOffset }},\n \"crop\": {\n \"x\": {{ it._root?.answer?.settings?.crop?.x }},\n \"y\": {{ it._root?.answer?.settings?.crop?.y }},\n \"width\": {{ it._root?.answer?.settings?.crop?.width }},\n \"height\": {{ it._root?.answer?.settings?.crop?.height }}\n }\n }`,\n derived: `{\n \"src\": {{ it._derived?.src }},\n \"playlist\": {{ it._derived?.playlist }},\n \"captions\": {{ it._derived?.captions }}\n }`\n }\n ],\n root: \"{{ it.questions?.items }}\"\n },\n {\n scenes: [\n {\n layout: \"none\",\n data: `{\n \"id\": {{ it._root?.answer?.id }},\n \"key\": {{ it._root?.answer?.id + '-outro' }},\n \"poster\": {{ it._root?.answer?.media?.thumbnail }},\n \"duration\": {{ it._root?.answer?.metadata?.duration }},\n \"startOffset\": {{ it._root?.answer?.settings?.startOffset }},\n \"endOffset\": {{ it._root?.answer?.settings?.endOffset }},\n \"crop\": {\n \"x\": {{ it._root?.answer?.settings?.crop?.x }},\n \"y\": {{ it._root?.answer?.settings?.crop?.y }},\n \"width\": {{ it._root?.answer?.settings?.crop?.width }},\n \"height\": {{ it._root?.answer?.settings?.crop?.height }}\n }\n }`,\n derived: `{\n \"src\": {{ it._derived?.src }},\n \"playlist\": {{ it._derived?.playlist }},\n \"captions\": {{ it._derived?.captions }}\n }`\n }\n ],\n root: \"{{ it.outro?.questions?.items }}\"\n }\n ],\n system: true,\n createdAt: (/* @__PURE__ */ new Date()).toISOString(),\n updatedAt: (/* @__PURE__ */ new Date()).toISOString()\n};\nconst none = {\n id: \"073977ec-6384-4329-b7c5-8275fb513e74\",\n name: \"None\",\n entityId: \"none\",\n templateId: \"a95e537e-fb4d-4d2f-9c72-86c0925c7176\",\n templates: [template],\n meta: {\n frameRate: 30,\n resolution: 720,\n transitionDuration: 1 / 3\n },\n system: true,\n default: 0,\n createdAt: (/* @__PURE__ */ new Date()).toISOString(),\n updatedAt: (/* @__PURE__ */ new Date()).toISOString()\n};\n\nasync function imageFactory() {\n if (typeof window === \"undefined\") {\n const skiaCanvas = await import('skia-canvas');\n return new skiaCanvas.Image();\n }\n return new Image();\n}\nconst getImage = pMemoize(async function getImage2(src) {\n if (!src) {\n return null;\n }\n return new Promise((resolve, reject) => {\n imageFactory().then((image) => {\n image.onload = () => {\n resolve(image);\n };\n image.onerror = (e) => {\n reject(e);\n };\n image.src = src;\n });\n });\n});\n\nasync function resolveElement({ element, meta }, resolveVideo, resolveVideoMeta) {\n let newElement = { ...element };\n const { node } = element;\n if (node?.type === \"video\" && (node?.value?.src || node?.value?.playlist)) {\n const video = await resolveVideo(node.value, meta);\n let poster;\n try {\n poster = await getImage(node.value.poster);\n } catch {\n poster = null;\n }\n newElement = {\n ...newElement,\n node: {\n ...node,\n video,\n poster,\n meta: await resolveVideoMeta(node.value, video.node, meta)\n }\n };\n }\n if (node?.type === \"image\" && node.value) {\n let image;\n try {\n image = await getImage(node.value);\n } catch {\n image = null;\n }\n newElement = {\n ...newElement,\n node: {\n ...node,\n image\n }\n };\n }\n if (newElement.node && element.node?.elements) {\n newElement.node.elements = await Promise.all(\n element.node.elements.map((element2) => resolveElement({ element: element2, meta }, resolveVideo, resolveVideoMeta))\n );\n }\n if (element.elements) {\n newElement.elements = await Promise.all(\n element.elements.map((element2) => resolveElement({ element: element2, meta }, resolveVideo, resolveVideoMeta))\n );\n }\n return newElement;\n}\n\nasync function canvasFactory() {\n if (typeof window === \"undefined\") {\n const skiaCanvas = await import('skia-canvas');\n const canvas = new skiaCanvas.Canvas();\n canvas.gpu = false;\n return canvas;\n }\n return document.createElement(\"canvas\");\n}\n\nfunction getVideoNode(elements = []) {\n for (const element of elements) {\n if (element?.node?.type === \"video\") {\n return element.node;\n }\n const node = getVideoNode(element?.elements);\n if (node) {\n return node;\n }\n }\n}\nfunction calculateContentsDuration(contents, transitionDuration) {\n return contents.reduce((acc, scenes, i) => {\n return [\n ...acc,\n scenes.map(({ duration }, j) => {\n const isLastScene = i === contents.length - 1 && j === scenes.length - 1;\n if (isLastScene) {\n return duration;\n }\n return duration - transitionDuration;\n })\n ];\n }, []);\n}\nfunction isPlainObject(value) {\n if (value === null || typeof value !== \"object\") {\n return false;\n }\n if (Object.getPrototypeOf(value) === null) {\n return true;\n }\n let proto = value;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(value) === proto;\n}\nfunction sanitizeString(unsanitized) {\n return unsanitized.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\//g, \"\\\\/\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/\\t/g, \"\\\\t\").replace(/\\f/g, \"\\\\f\").replace(/\"/g, '\\\\\"');\n}\nfunction sum(arr) {\n return arr.flatMap((duration) => duration).reduce((a, b) => a + b, 0);\n}\n\nfilters.define(\"parse\", (data) => {\n if (typeof data === \"undefined\") {\n return null;\n }\n if (typeof data === \"string\") {\n return `\"${sanitizeString(data)}\"`;\n }\n if (isPlainObject(data) || Array.isArray(data)) {\n return JSON.stringify(data);\n }\n return data;\n});\nconst overrideRender = (template, data, config) => {\n return render(\n template,\n data,\n getConfig({\n autoEscape: false,\n defaultFilter: \"parse\",\n ...config\n })\n );\n};\nasync function templateToScenes({ data, template: argTemplate, burnCaptions = false, debug = false }, deriveData, resolveVideo, resolveVideoMeta) {\n const templateInstance = argTemplate ?? none;\n if (!templateInstance.templates?.length) {\n throw new Error(`No templates found for template instance: ${templateInstance.id}`);\n }\n let validTemplate = templateInstance.templates.find(({ version }) => version === TEMPLATE_VERSION);\n if (!validTemplate) {\n const invalidVersions = templateInstance.templates.map(({ version }) => `\"${version}\"`).join(\", \");\n console.warn(`Template renderer expects template version \"${TEMPLATE_VERSION}\" but got ${invalidVersions}`);\n validTemplate = templateInstance.templates[templateInstance.templates.length - 1];\n }\n const contents = await Promise.all(\n validTemplate.content.map(async ({ scenes: scenes2, root: contentRoot }) => {\n const renderData = {\n ...templateInstance.options,\n ...data,\n intro: templateInstance.intro,\n outro: templateInstance.outro\n };\n async function contentToSceneConfig(rootData, index) {\n return Promise.all(\n scenes2.map(\n async ({\n layout,\n duration: templateDuration,\n data: templateData,\n derived: templateDerivedData,\n options: templateOptions\n }) => {\n const sceneData = {\n ...renderData,\n _index: index,\n _root: rootData,\n _derived: await deriveData({ data, rootData, index })\n };\n const resolvedData = templateData ? JSON.parse(await overrideRender(templateData, sceneData)) : {};\n const resolvedDerivedData = templateDerivedData ? JSON.parse(await overrideRender(templateDerivedData, sceneData)) : {};\n const resolvedOptions = templateOptions ? JSON.parse(await overrideRender(templateOptions, sceneData)) : {};\n const resolvedDuration = templateDuration ? parseFloat(await overrideRender(templateDuration, sceneData)) : NaN;\n const layoutTree = validTemplate.layouts.find((l) => l.name === layout)?.tree;\n if (!layoutTree) {\n throw new Error(`Layout tree \"${layout}\" not found in template \"${validTemplate.id}\" layouts.`);\n }\n const elements = JSON.parse(\n await overrideRender(layoutTree, {\n ...resolvedData,\n ...resolvedDerivedData,\n ...resolvedOptions\n })\n );\n const resolvedElements = await Promise.all(\n elements.flatMap(\n (element) => resolveElement({ element, meta: templateInstance.meta }, resolveVideo, resolveVideoMeta)\n )\n );\n const videoNode = getVideoNode(resolvedElements);\n const duration = (isNaN(resolvedDuration) ? null : resolvedDuration) ?? videoNode?.meta?.duration ?? 0;\n return {\n duration,\n captions: videoNode?.meta?.captions,\n elements: resolvedElements\n };\n }\n )\n );\n }\n if (contentRoot) {\n const resolvedRoot = JSON.parse(await overrideRender(contentRoot, renderData));\n if (Array.isArray(resolvedRoot)) {\n return (await Promise.all(resolvedRoot.map(async (val, index) => contentToSceneConfig(val, index)))).flatMap((x) => x);\n }\n return contentToSceneConfig(resolvedRoot, null);\n }\n return contentToSceneConfig(data, null);\n })\n );\n const noVideo = contents.every((sceneConfig) => {\n return sceneConfig.every((scene) => {\n const node = getVideoNode(scene.elements);\n return !node?.value.src && !node?.value.playlist;\n });\n });\n if (noVideo) {\n const failedVideoIds = contents.flatMap(\n (sceneConfig) => sceneConfig.map((scene) => {\n const node = getVideoNode(scene.elements);\n return !node?.value.src && !node?.value.playlist && node?.value.id;\n }).filter(Boolean)\n ).join(\", \");\n throw new Error(`Video(s) with ID ${failedVideoIds} failed to load, video can not be processed`);\n }\n const noDurations = contents.every((sceneConfig) => {\n return sceneConfig.every((scene) => scene.duration <= 0);\n });\n if (noDurations) {\n throw new Error(\"No scenes have any duration, video can not be processed\");\n }\n const filteredContents = contents.reduce((acc, sceneConfig) => {\n const filteredSceneConfig = sceneConfig.filter((scene) => scene.duration > 0);\n if (filteredSceneConfig.length > 0) {\n acc = [...acc, filteredSceneConfig];\n }\n return acc;\n }, []);\n const frameRate = templateInstance.meta?.frameRate ?? 30;\n const resolution = templateInstance.meta?.resolution ?? 720;\n const transitionDuration = templateInstance.meta?.transitionDuration ?? 1 / 3;\n const durations = calculateContentsDuration(filteredContents, transitionDuration);\n const totalDuration = sum(durations);\n const scenes = (await Promise.all(\n filteredContents.map((scenes2, i) => {\n const contentDuration = sum(durations[i]);\n const prevContentDurations = sum(durations.slice(0, i));\n return Promise.all(\n scenes2.map(async ({ duration, captions, elements }, j) => {\n const cropCanvas = await canvasFactory();\n const letterboxCanvas = await canvasFactory();\n const transitionCanvas = await canvasFactory();\n const posterCanvas = await canvasFactory();\n const videoNode = getVideoNode(elements);\n const prevDurations = sum([...durations.slice(0, i), ...durations[i].slice(0, j)]);\n const draw = ({ canvas, currentTime }) => {\n const contentTime = Math.max(0, currentTime - prevContentDurations);\n const sceneTime = Math.max(0, currentTime - prevDurations);\n drawElements({\n debug,\n canvas,\n cropCanvas,\n posterCanvas,\n letterboxCanvas,\n elements,\n currentTime,\n contentTime,\n sceneTime,\n totalDuration,\n contentDuration,\n sceneDuration: duration\n });\n if (captions && burnCaptions) {\n drawCaptions({\n canvas,\n dx: 0,\n dy: 0,\n dw: canvas.width,\n dh: canvas.height,\n vttCaptions: captions,\n sceneTime: sceneTime + (videoNode?.meta.start ?? 0)\n });\n }\n };\n return {\n draw,\n duration,\n transitionCanvas,\n start: prevDurations,\n video: videoNode?.video,\n videoMeta: videoNode?.meta,\n audio: {\n duration,\n src: videoNode?.value?.src,\n start: videoNode?.meta?.start\n }\n };\n })\n );\n })\n )).flatMap((scenes2) => scenes2);\n return {\n scenes,\n frameRate,\n resolution,\n transitionDuration,\n fonts: validTemplate.fonts ?? [],\n duration: totalDuration\n };\n}\n\nconst TEMPLATE_VERSION = \"3\";\n\nexport { TEMPLATE_VERSION, appendFontFamilies, crossFade, drawCaptions, drawElements, drawVideoFormat, getSizeDetails, normaliseAspectRatio, normaliseResolution, parseTimestamp, supportedFonts, templateToScenes, vttToLines };\n//# sourceMappingURL=canvas-video.js.map\n","import { TEMPLATE_VERSION } from '@vouchfor/canvas-video';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport type { TrackingPayload } from '.';\nimport type { Vouch } from '@vouchfor/video-utils';\nimport type { Environment } from '~/utils/env';\n\nimport packageJson from '~/../package.json';\nimport { getEnvUrls } from '~/utils/env';\n\nfunction createVisitor(env: Environment) {\n const { publicApiUrl } = getEnvUrls(env);\n const visitorId = uuidv4();\n navigator.sendBeacon(`${publicApiUrl}/api/visitor`, JSON.stringify({ visitorId }));\n return visitorId;\n}\n\nfunction getUids(env: Environment) {\n if (typeof window === 'undefined') {\n return {\n client: null,\n tab: null,\n request: uuidv4()\n };\n }\n\n // Persisted for a user for the same device + browser, so we can e.g. search for all logs related to that browser\n let visitorId = window.localStorage?.getItem?.('vouch-uid-visitor');\n // Persisted for a user for the same device + browser, so we can e.g. search for all logs related to that browser\n let clientId = window.localStorage?.getItem?.('vouch-uid-client');\n // Persisted in session storage, so we can search for everything the user has done in a specific tab\n let tabId = window.sessionStorage?.getItem?.('vouch-uid-tab');\n // Not persisted, allows us to search for any logs related to a single FE request\n // E.g. BE should pass this request ID through all other services to be able to group logs\n const requestId = uuidv4();\n\n // Cache uids\n if (!visitorId) {\n visitorId = createVisitor(env);\n window.localStorage?.setItem?.('vouch-uid-visitor', visitorId);\n }\n\n if (!clientId) {\n clientId = uuidv4();\n window.localStorage?.setItem?.('vouch-uid-client', clientId);\n }\n\n if (!tabId) {\n tabId = uuidv4();\n window.sessionStorage?.setItem?.('vouch-uid-tab', tabId);\n }\n\n return {\n client: clientId,\n tab: tabId,\n request: requestId,\n visitor: visitorId\n };\n}\n\nfunction findVouchId(payload?: TrackingPayload, vouch?: Vouch) {\n if (payload && 'vouchId' in payload) {\n return payload.vouchId;\n }\n return vouch?.id ?? null;\n}\n\nfunction getReportingMetadata(source = 'embedded_player') {\n const [country, region] = Intl.DateTimeFormat().resolvedOptions().timeZone?.split?.('/') ?? [];\n\n const utmParams: any = {};\n [...new URLSearchParams(location.search).entries()].forEach(([key, value]) => {\n if (/utm/.test(key)) {\n const param = key.toLowerCase().replace(/[-_][a-z0-9]/g, (group) => group.slice(-1).toUpperCase());\n utmParams[param] = value;\n }\n });\n\n return {\n source,\n time: new Date(),\n region,\n country,\n screenHeight: window.screen.height,\n screenWidth: window.screen.width,\n referrer: document.referrer,\n currentUrl: location.href,\n embedType: 'media-player-embed',\n embedVersion: packageJson.version,\n templateVersion: TEMPLATE_VERSION,\n ...utmParams\n };\n}\n\nexport { getUids, findVouchId, getReportingMetadata };\n","import type { PlayerEmbed } from '../..';\nimport type { VideoEventDetail } from '@vouchfor/media-player';\nimport type { ReactiveController, ReactiveControllerHost } from 'lit';\n\nimport { findVouchId, getReportingMetadata, getUids } from './utils';\nimport { getEnvUrls } from '~/utils/env';\n\nconst MINIMUM_SEND_THRESHOLD = 1;\n\ntype PlayerEmbedHost = ReactiveControllerHost & PlayerEmbed;\n\ntype TrackingEvent = 'VOUCH_LOADED' | 'VOUCH_RESPONSE_VIEWED' | 'VIDEO_PLAYED' | 'VIDEO_STREAMED';\ntype TrackingPayload = {\n vouchId?: string;\n answerId?: string;\n streamStart?: number;\n streamEnd?: number;\n};\n\ntype BatchEvent = {\n event: TrackingEvent;\n payload: TrackingPayload & {\n time: string;\n };\n};\n\ntype TimeMap = {\n [key: string]: number;\n};\n\ntype BooleanMap = {\n [key: string]: boolean;\n};\n\nclass TrackingController implements ReactiveController {\n host: PlayerEmbedHost;\n\n private _batchedEvents: BatchEvent[] = [];\n private _hasPlayed = false;\n private _hasLoaded: BooleanMap = {};\n private _answersViewed: BooleanMap = {};\n private _streamStartTime: TimeMap = {};\n private _streamLatestTime: TimeMap = {};\n private _currentlyPlayingVideo: VideoEventDetail | null = null;\n\n constructor(host: PlayerEmbedHost) {\n this.host = host;\n host.addController(this);\n }\n\n private _createTrackingEvent = (event: TrackingEvent, payload?: TrackingPayload) => {\n const vouchId = findVouchId(payload, this.host.vouch);\n\n if (!vouchId || this.host.disableTracking) {\n return;\n }\n\n this._batchedEvents.push({\n event,\n payload: {\n ...payload,\n vouchId,\n time: new Date().toISOString()\n }\n });\n };\n\n private _sendTrackingEvent = () => {\n if (this._batchedEvents.length <= 0) {\n return;\n }\n\n const { publicApiUrl } = getEnvUrls(this.host.env);\n const { client, tab, request, visitor } = getUids(this.host.env);\n\n navigator.sendBeacon(\n `${publicApiUrl}/api/batchevents`,\n JSON.stringify({\n payload: {\n events: this._batchedEvents\n },\n context: {\n 'x-uid-client': client,\n 'x-uid-tab': tab,\n 'x-uid-request': request,\n 'x-uid-visitor': visitor,\n 'x-reporting-metadata': getReportingMetadata(this.host.trackingSource)\n }\n })\n );\n\n this._batchedEvents = [];\n };\n\n private _streamEnded = () => {\n if (this._currentlyPlayingVideo) {\n const { id, key } = this._currentlyPlayingVideo;\n // Don't send a tracking event when seeking backwards\n if (this._streamLatestTime[key] > this._streamStartTime[key] + MINIMUM_SEND_THRESHOLD) {\n // Send a video streamed event any time the stream ends to capture the time between starting\n // the video and the video stopping for any reason (pausing, deleting the embed node or closing the browser)\n this._createTrackingEvent('VIDEO_STREAMED', {\n answerId: id,\n streamStart: this._streamStartTime[key],\n streamEnd: this._streamLatestTime[key]\n });\n }\n\n // Make sure these events are only sent once by deleting the start and latest times\n delete this._streamStartTime[key];\n delete this._streamLatestTime[key];\n }\n };\n\n private _handleVouchLoaded = ({ detail: vouchId }: CustomEvent<string>) => {\n if (!vouchId) {\n return;\n }\n\n // Only send loaded event once per session\n if (!this._hasLoaded[vouchId]) {\n this._createTrackingEvent('VOUCH_LOADED', { vouchId });\n this._hasLoaded[vouchId] = true;\n }\n };\n\n private _handlePlay = () => {\n // Only send the video played event once per session\n if (!this._hasPlayed) {\n this._createTrackingEvent('VIDEO_PLAYED', {\n streamStart: this.host.currentTime\n });\n this._hasPlayed = true;\n }\n };\n\n private _handleVideoPlay = ({ detail: { id, key } }: CustomEvent<VideoEventDetail>) => {\n // Only increment play count once per session\n if (!this._answersViewed[key]) {\n this._createTrackingEvent('VOUCH_RESPONSE_VIEWED', {\n answerId: id\n });\n this._answersViewed[key] = true;\n }\n };\n\n private _handleVideoTimeUpdate = ({ detail: { id, key, node } }: CustomEvent<VideoEventDetail>) => {\n if (\n // We only want to count any time that the video is actually playing\n !this.host.paused &&\n // Only update the latest time if this event fires for the currently active video\n id === this.host.scene?.video?.id\n ) {\n this._currentlyPlayingVideo = { id, key, node };\n this._streamLatestTime[key] = node.currentTime;\n\n if (!this._streamStartTime[key]) {\n this._streamStartTime[key] = node.currentTime;\n this._streamLatestTime[key] = node.currentTime;\n }\n }\n };\n\n private _handleVideoPause = ({ detail: { id, key } }: CustomEvent<VideoEventDetail>) => {\n if (this._streamLatestTime[key] > this._streamStartTime[key] + MINIMUM_SEND_THRESHOLD) {\n this._createTrackingEvent('VIDEO_STREAMED', {\n answerId: id,\n streamStart: this._streamStartTime[key],\n streamEnd: this._streamLatestTime[key]\n });\n }\n delete this._streamStartTime[key];\n delete this._streamLatestTime[key];\n };\n\n private _pageUnloading = () => {\n this._streamEnded();\n this._sendTrackingEvent();\n };\n\n private _handleVisibilityChange = () => {\n if (document.visibilityState === 'hidden') {\n this._pageUnloading();\n }\n };\n\n private _handlePageHide = () => {\n this._pageUnloading();\n };\n\n hostConnected() {\n requestAnimationFrame(() => {\n if ('onvisibilitychange' in document) {\n document.addEventListener('visibilitychange', this._handleVisibilityChange);\n } else {\n window.addEventListener('pagehide', this._handlePageHide);\n }\n this.host.addEventListener('vouch:loaded', this._handleVouchLoaded);\n this.host.mediaPlayer?.addEventListener('play', this._handlePlay);\n this.host.mediaPlayer?.addEventListener('video:play', this._handleVideoPlay);\n this.host.mediaPlayer?.addEventListener('video:pause', this._handleVideoPause);\n this.host.mediaPlayer?.addEventListener('video:timeupdate', this._handleVideoTimeUpdate);\n });\n }\n\n hostDisconnected() {\n // Send events if DOM node is destroyed\n this._pageUnloading();\n\n if ('onvisibilitychange' in document) {\n document.removeEventListener('visibilitychange', this._handleVisibilityChange);\n } else {\n window.removeEventListener('pagehide', this._handlePageHide);\n }\n this.host.removeEventListener('vouch:loaded', this._handleVouchLoaded);\n this.host.mediaPlayer?.removeEventListener('play', this._handlePlay);\n this.host.mediaPlayer?.removeEventListener('video:play', this._handleVideoPlay);\n this.host.mediaPlayer?.removeEventListener('video:pause', this._handleVideoPause);\n this.host.mediaPlayer?.removeEventListener('video:timeupdate', this._handleVideoTimeUpdate);\n }\n}\n\nexport { TrackingController };\nexport type { TrackingEvent, TrackingPayload };\n","import { css, html, LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\n\nimport type { Scene, Scenes, TemplateInstance } from '@vouchfor/canvas-video';\nimport type { MediaPlayer, MediaPlayerProps } from '@vouchfor/media-player';\nimport type { Environment } from '~/utils/env';\n\nimport { EventForwardController } from './controllers/event-forwarder';\nimport { FetcherController } from './controllers/fetcher';\nimport { TrackingController } from './controllers/tracking';\n\nimport '@vouchfor/media-player';\n\ntype PlayerEmbedProps = Pick<MediaPlayerProps, 'data' | 'aspectRatio' | 'preload' | 'autoplay' | 'controls'> & {\n env: Environment;\n apiKey: string;\n disableTracking?: boolean;\n trackingSource?: string;\n vouchId?: string;\n templateId?: string;\n // Index of the questions to include starting from 1\n questions?: number[];\n};\n\n@customElement('vouch-embed-player')\nclass PlayerEmbed extends LitElement {\n static styles = [\n css`\n :host {\n display: flex;\n }\n `\n ];\n\n @property({ type: Object }) data: PlayerEmbedProps['data'];\n @property({ type: String }) vouchId: PlayerEmbedProps['vouchId'];\n @property({ type: String }) templateId: PlayerEmbedProps['templateId'];\n @property({ type: Array }) questions: PlayerEmbedProps['questions'];\n\n @property({ type: String }) env: PlayerEmbedProps['env'] = 'prod';\n @property({ type: String }) apiKey: PlayerEmbedProps['apiKey'] = '';\n @property({ type: Boolean }) disableTracking: PlayerEmbedProps['disableTracking'] = false;\n @property({ type: String }) trackingSource: PlayerEmbedProps['trackingSource'] = 'embedded_player';\n\n @property({ type: Array }) controls: PlayerEmbedProps['controls'];\n @property({ type: String }) preload: PlayerEmbedProps['preload'] = 'auto';\n @property({ type: Boolean }) autoplay: PlayerEmbedProps['autoplay'] = false;\n @property({ type: Number }) aspectRatio: PlayerEmbedProps['aspectRatio'] = 0;\n\n private eventController = new EventForwardController(this, [\n 'durationchange',\n 'ended',\n 'error',\n 'loadeddata',\n 'pause',\n 'stalled',\n 'play',\n 'playing',\n 'ratechange',\n 'scenechange',\n 'seeking',\n 'seeked',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n\n 'video:loadeddata',\n 'video:seeking',\n 'video:seeked',\n 'video:play',\n 'video:playing',\n 'video:pause',\n 'video:stalled',\n 'video:timeupdate',\n 'video:ended',\n 'video:error'\n ]);\n private _fetcherController = new FetcherController(this);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n private _trackingController = new TrackingController(this);\n\n @state() vouch: PlayerEmbedProps['data'];\n @state() template: TemplateInstance | undefined;\n\n get fetching() {\n return this._fetcherController.fetching;\n }\n\n private _mediaPlayerRef = createRef<MediaPlayer>();\n\n get waiting() {\n return this._mediaPlayerRef.value?.waiting;\n }\n\n get initialised() {\n return this._mediaPlayerRef.value?.initialised;\n }\n\n get seeking() {\n return this._mediaPlayerRef.value?.seeking;\n }\n\n get paused() {\n return this._mediaPlayerRef.value?.paused;\n }\n\n get captions() {\n return this._mediaPlayerRef.value?.captions;\n }\n\n get fullscreen() {\n return this._mediaPlayerRef.value?.fullscreen;\n }\n\n get duration() {\n return this._mediaPlayerRef.value?.duration;\n }\n\n set currentTime(value: number) {\n if (this._mediaPlayerRef.value) {\n this._mediaPlayerRef.value.currentTime = value;\n }\n }\n get currentTime() {\n return this._mediaPlayerRef.value?.currentTime ?? 0;\n }\n\n set playbackRate(value: number) {\n if (this._mediaPlayerRef.value) {\n this._mediaPlayerRef.value.playbackRate = value;\n }\n }\n get playbackRate() {\n return this._mediaPlayerRef.value?.playbackRate ?? 1;\n }\n\n set volume(value: number) {\n if (this._mediaPlayerRef.value) {\n this._mediaPlayerRef.value.volume = value;\n }\n }\n get volume() {\n return this._mediaPlayerRef.value?.volume ?? 1;\n }\n\n set muted(value: boolean) {\n if (this._mediaPlayerRef.value) {\n this._mediaPlayerRef.value.muted = value;\n }\n }\n get muted() {\n return this._mediaPlayerRef.value?.muted ?? false;\n }\n\n get scene(): Scene | null {\n return this._mediaPlayerRef.value?.scene ?? null;\n }\n\n get scenes(): Scene[] {\n return this._mediaPlayerRef.value?.scenes ?? [];\n }\n\n get sceneConfig(): Scenes | null {\n return this._mediaPlayerRef.value?.sceneConfig ?? null;\n }\n\n get videoState() {\n return this._mediaPlayerRef.value?.videoState;\n }\n\n get mediaPlayer() {\n return this._mediaPlayerRef.value;\n }\n\n play() {\n this._mediaPlayerRef.value?.play();\n }\n\n pause() {\n this._mediaPlayerRef.value?.pause();\n }\n\n reset(time = 0, play = false) {\n this._mediaPlayerRef.value?.reset(time, play);\n }\n\n setScene(index: number) {\n this._mediaPlayerRef.value?.setScene(index);\n }\n\n private _renderStyles() {\n if (!this.aspectRatio) {\n return html`\n <style>\n :host {\n width: 100%;\n height: 100%;\n }\n </style>\n `;\n }\n\n if (typeof this.aspectRatio === 'number') {\n return html`\n <style>\n :host {\n aspect-ratio: ${this.aspectRatio};\n }\n </style>\n `;\n }\n\n return null;\n }\n\n render() {\n return html`\n ${this._renderStyles()}\n <vmp-media-player\n ${ref(this._mediaPlayerRef)}\n ${this.eventController.register()}\n ?autoplay=${this.autoplay}\n ?loading=${this.fetching}\n .data=${this.vouch}\n .template=${this.template}\n aspectRatio=${ifDefined(this.aspectRatio)}\n preload=${ifDefined(this.preload)}\n .controls=${this.controls}\n ></vmp-media-player>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vouch-embed-player': PlayerEmbed;\n }\n\n namespace JSX {\n interface IntrinsicElements {\n 'vouch-embed-player': PlayerEmbed;\n }\n }\n}\n\nexport { PlayerEmbed };\nexport type { PlayerEmbedProps };\n","import { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styleMap } from 'lit/directives/style-map.js';\n\nimport type { DialogEmbedProps } from '.';\n\nimport '@a11y/focus-trap';\n\n@customElement('vouch-embed-dialog-overlay')\nclass DialogOverlay extends LitElement {\n static styles = [\n css`\n :host {\n --vouch-media-player-border-radius: var(--vu-media-player-border-radius, 12px);\n --overlay-background-color: var(--vu-overlay-background-color, black);\n --overlay-background-opacity: var(--vu-overlay-background-opacity, 0.4);\n\n --dialog-width: var(--vu-dialog-width, 890px);\n --dialog-height: var(--vu-dialog-height, 500px);\n }\n\n .container {\n position: fixed;\n display: flex;\n inset: 0;\n opacity: 1;\n z-index: 2147483647;\n align-items: center;\n justify-content: center;\n transition: opacity 100ms ease-in;\n }\n\n .hidden {\n opacity: 0;\n pointer-events: none;\n }\n\n .background {\n position: absolute;\n inset: 0;\n opacity: var(--overlay-background-opacity);\n background-color: var(--overlay-background-color);\n }\n\n focus-trap {\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 40px;\n width: var(--dialog-width);\n height: var(--dialog-height);\n max-width: calc(100% - 80px);\n max-height: calc(100% - 80px);\n }\n\n .video-frame {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n max-width: 100%;\n max-height: 100%;\n }\n\n .video-frame.grow {\n width: 100%;\n height: 100%;\n }\n\n vmp-icon-button {\n position: absolute;\n top: 0;\n right: 0;\n margin: 10px;\n }\n `\n ];\n\n @property({ type: Boolean }) open = false;\n @property({ type: Number }) aspectRatio: DialogEmbedProps['aspectRatio'] = 0;\n\n render() {\n return html`\n <div\n class=${classMap({\n container: true,\n hidden: !this.open\n })}\n >\n <div\n class=\"background\"\n @click=${() => this.dispatchEvent(new CustomEvent('overlay:click', { bubbles: true, composed: true }))}\n ></div>\n <focus-trap>\n <div\n class=${classMap({\n 'video-frame': true,\n grow: this.aspectRatio === 0\n })}\n style=${styleMap({\n aspectRatio: this.aspectRatio\n })}\n >\n <slot></slot>\n <vmp-icon-button\n icon=\"close\"\n rounded=\"full\"\n weight=\"heavy\"\n @click=${() => this.dispatchEvent(new CustomEvent('close:click', { bubbles: true, composed: true }))}\n ></vmp-icon-button>\n </div>\n </focus-trap>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vouch-embed-dialog-overlay': DialogOverlay;\n }\n\n namespace JSX {\n interface IntrinsicElements {\n 'vouch-embed-dialog-overlay': DialogOverlay;\n }\n }\n}\n\nexport { DialogOverlay };\n","import { html, LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { styleMap } from 'lit/directives/style-map.js';\n\nimport type { DialogEmbedProps } from '.';\nimport type { MediaPlayer } from '@vouchfor/media-player';\n\nimport './DialogOverlay';\n\n@customElement('vouch-embed-dialog-portal')\nclass DialogPortal extends LitElement {\n @property({ type: String }) vouchId: DialogEmbedProps['vouchId'];\n @property({ type: String }) templateId: DialogEmbedProps['templateId'];\n @property({ type: Array }) questions: DialogEmbedProps['questions'];\n\n @property({ type: String }) env: DialogEmbedProps['env'] = 'prod';\n @property({ type: String }) apiKey: DialogEmbedProps['apiKey'] = '';\n @property({ type: Boolean }) disableTracking: DialogEmbedProps['disableTracking'] = false;\n @property({ type: String }) trackingSource: DialogEmbedProps['trackingSource'] = 'embedded_player';\n\n @property({ type: Array }) controls: DialogEmbedProps['controls'];\n @property({ type: String }) preload: DialogEmbedProps['preload'] = 'none';\n @property({ type: Boolean }) disableAutoplay: DialogEmbedProps['disableAutoplay'] = false;\n @property({ type: Number }) aspectRatio: DialogEmbedProps['aspectRatio'] = 0;\n\n private _mediaPlayerRef = createRef<MediaPlayer>();\n\n @state() open = false;\n\n private _handleToggle = ({ detail }: CustomEvent<string>) => {\n // Because we have to attach this listener to the document since this element is portalled outside of the button,\n // we also have to make sure that this player is actually the one we want to open and play by passing in an ID\n // from the button wrapper parent and checking against that same ID we pass as the event detail\n if (this.id === detail) {\n this.open = !this.open;\n\n if (this.open) {\n if (!this.disableAutoplay && this._mediaPlayerRef?.value) {\n this._mediaPlayerRef.value.muted = false;\n this._mediaPlayerRef.value.play();\n }\n } else {\n this._mediaPlayerRef?.value?.pause();\n }\n }\n };\n\n // We could do the same thing on close and check for the correct ID but it doesn't really matter\n private _handleClose = () => {\n this.open = false;\n this._mediaPlayerRef?.value?.pause();\n };\n\n private _handleDocumentKeyUp = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n this._handleClose();\n }\n };\n\n connectedCallback(): void {\n super.connectedCallback();\n document.addEventListener('dialogembed:click', this._handleToggle);\n document.addEventListener('keyup', this._handleDocumentKeyUp);\n document.addEventListener('close:click', this._handleClose);\n document.addEventListener('overlay:click', this._handleClose);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n document.removeEventListener('dialogembed:click', this._handleToggle);\n document.removeEventListener('keyup', this._handleDocumentKeyUp);\n document.removeEventListener('close:click', this._handleClose);\n document.removeEventListener('overlay:click', this._handleClose);\n }\n\n protected createRenderRoot(): HTMLElement | DocumentFragment {\n // We must create a new node here because portalling into the same node (document.body) causes the second\n // element to overwrite the first for some reason (not behaviour really stated in the docs)\n // I am fairly certain this function is only run once as the default behaviour creates the open shadow root\n // and returns that shadow root in this function: https://lit.dev/docs/components/shadow-dom/#implementing-createrenderroot\n const newNode = document.createElement('div');\n document.body.appendChild(newNode);\n return newNode;\n }\n\n render() {\n return html`\n <vouch-embed-dialog-overlay ?open=${this.open} aspectRatio=${this.aspectRatio}>\n <vouch-embed-player\n ${ref(this._mediaPlayerRef)}\n style=${styleMap({\n maxWidth: '100%',\n maxHeight: '100%'\n })}\n ?autoplay=${false}\n vouchId=${ifDefined(this.vouchId)}\n templateId=${ifDefined(this.templateId)}\n .questions=${this.questions}\n .controls=${this.controls}\n env=${ifDefined(this.env)}\n apiKey=${ifDefined(this.apiKey)}\n ?disableTracking=${this.disableTracking}\n trackingSource=${ifDefined(this.trackingSource)}\n preload=${ifDefined(this.preload)}\n aspectRatio=${this.aspectRatio}\n ></vouch-embed-player>\n </vouch-embed-dialog-overlay>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vouch-embed-dialog-portal': DialogPortal;\n }\n\n namespace JSX {\n interface IntrinsicElements {\n 'vouch-embed-dialog-portal': DialogPortal;\n }\n }\n}\n\nexport { DialogPortal };\n","import { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport type { PlayerEmbedProps } from '../PlayerEmbed';\n\nimport '../PlayerEmbed';\nimport './DialogPortal';\n\ntype DialogEmbedProps = Omit<PlayerEmbedProps, 'data'> & {\n disableAutoplay?: boolean;\n};\n\n@customElement('vouch-embed-dialog')\nclass DialogEmbed extends LitElement {\n static styles = [\n css`\n :host {\n --vu-button-padding: 10px 20px;\n --vu-button-background: #287179;\n --vu-button-background-hover: #4faab2;\n\n display: flex;\n width: fit-content;\n height: fit-content;\n }\n `\n ];\n\n @property({ type: String }) vouchId: DialogEmbedProps['vouchId'];\n @property({ type: String }) templateId: DialogEmbedProps['templateId'];\n @property({ type: Array }) questions: DialogEmbedProps['questions'];\n\n @property({ type: String }) env: DialogEmbedProps['env'] = 'prod';\n @property({ type: String }) apiKey: DialogEmbedProps['apiKey'] = '';\n @property({ type: Boolean }) disableTracking: DialogEmbedProps['disableTracking'] = false;\n @property({ type: String }) trackingSource: DialogEmbedProps['trackingSource'] = 'embedded_player';\n\n @property({ type: Array }) controls: DialogEmbedProps['controls'];\n @property({ type: String }) preload: DialogEmbedProps['preload'] = 'none';\n @property({ type: Boolean }) disableAutoplay: DialogEmbedProps['disableAutoplay'] = false;\n @property({ type: Number }) aspectRatio: DialogEmbedProps['aspectRatio'] = 0;\n\n private _id = uuidv4();\n\n private _handleRootClick = () => {\n this.dispatchEvent(new CustomEvent('dialogembed:click', { detail: this._id, bubbles: true, composed: true }));\n };\n\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('click', this._handleRootClick);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('click', this._handleRootClick);\n }\n\n render() {\n return html`\n <slot>\n <vmp-button size=\"large\">Play</vmp-button>\n </slot>\n <vouch-embed-dialog-portal\n id=${this._id}\n ?autoplay=${false}\n vouchId=${ifDefined(this.vouchId)}\n templateId=${ifDefined(this.templateId)}\n .questions=${this.questions}\n .controls=${this.controls}\n env=${ifDefined(this.env)}\n apiKey=${ifDefined(this.apiKey)}\n ?disableTracking=${this.disableTracking}\n trackingSource=${ifDefined(this.trackingSource)}\n preload=${ifDefined(this.preload)}\n aspectRatio=${this.aspectRatio}\n ></vouch-embed-dialog-portal>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vouch-embed-dialog': DialogEmbed;\n }\n\n namespace JSX {\n interface IntrinsicElements {\n 'vouch-embed-dialog': DialogEmbed;\n }\n }\n}\n\nexport { DialogEmbed };\nexport type { DialogEmbedProps };\n"],"names":["uuidv4","copyProperty","canCopyProperty","changePrototype","wrappedToString","toStringDescriptor","toStringName","changeToString","mimicFunction","cacheStore","YGEnums","clamp","analyse","this","mimicFn","filters","__decorateClass"],"mappings":"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AC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CA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,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CA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","x_google_ignoreList":[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33]}
|