@jujulego/jill 3.0.7 → 3.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/flat-job-plan.js +1 -1
- package/dist/flat-job-plan.js.map +1 -1
- package/dist/flat-job-tree.js +1 -1
- package/dist/flat-job-tree.js.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/inked.js +3863 -577
- package/dist/inked.js.map +1 -1
- package/dist/instrument.js +1 -1
- package/dist/instrument.js.map +1 -1
- package/dist/job-command-execute.ink.js +33 -8
- package/dist/job-command-execute.ink.js.map +1 -1
- package/dist/job-plan.js +2 -1
- package/dist/job-plan.js.map +1 -1
- package/dist/job-plan.json.js +2 -1
- package/dist/job-plan.json.js.map +1 -1
- package/dist/list.ink.js +6 -5
- package/dist/list.ink.js.map +1 -1
- package/dist/main.js +3156 -2892
- package/dist/main.js.map +1 -1
- package/dist/planner.service.js +2 -1
- package/dist/planner.service.js.map +1 -1
- package/dist/tree.ink.js +6 -5
- package/dist/tree.ink.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +30 -30
package/dist/flat-job-plan.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{};e.SENTRY_RELEASE={id:"jill@3.0.8"};var n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="9b8f8936-f354-4767-9c21-efa84c13a706",e._sentryDebugIdIdentifier="sentry-dbid-9b8f8936-f354-4767-9c21-efa84c13a706");}catch(e){}}();import { f as flatJobTree, a as isJob } from './flat-job-tree.js';
|
|
2
2
|
|
|
3
3
|
function flatJobPlan(job) {
|
|
4
4
|
const tree = flatJobTree(job, true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flat-job-plan.js","sources":["../src/trees/flat-job-plan.ts"],"sourcesContent":["import type { Workload$ } from '@kyrielle/workload';\nimport { isJob } from '../utils/predicates.js';\nimport { flatJobTree, type FlatJobTreeItem } from './flat-job-tree.js';\n\nexport function flatJobPlan(job: Workload$): FlatJobPlanItem[] {\n const tree = flatJobTree(job, true);\n\n const index = new Map(tree.map((item, idx) => [item.workload.id, idx + 1]));\n const plan: FlatJobPlanItem[] = [];\n let branch = '';\n\n for (let i = 0; i < tree.length; i++) {\n const item = tree[i];\n\n // Check if branch continues\n let branchContinue = false;\n\n for (let j = i + 1; j < tree.length; j++) {\n if (tree[j].level <= item.level) {\n if (tree[j].level === item.level) {\n branchContinue = true;\n }\n\n break;\n }\n }\n\n // Compute dependencies\n const dependsOn: number[] = [];\n\n if (isJob(item.workload)) {\n for (const dep of item.workload.dependencies()) {\n const idx = index.get(dep.id);\n\n if (idx) {\n dependsOn.push(idx);\n }\n }\n }\n\n // Update branch\n if (branch.length / 3 > item.level) {\n branch = branch.slice(0, branch.length - 3);\n }\n\n if (item.level > 0 && branch.length / 3 === item.level) {\n branch = branch.slice(0, branch.length - 3);\n }\n\n if (branch.length / 3 < item.level) {\n if (branchContinue) {\n plan.push({ ...item, id: i + 1, branch: branch + '├─ ', dependsOn });\n branch += '│ ';\n } else {\n plan.push({ ...item, id: i + 1, branch: branch + '└─ ', dependsOn });\n branch += ' ';\n }\n } else {\n plan.push({ ...item, id: i + 1, branch, dependsOn });\n }\n }\n\n return plan;\n}\n\n// Types\ninterface FlatJobPlanItem extends FlatJobTreeItem {\n readonly id: number;\n readonly branch: string;\n readonly dependsOn: number[];\n}\n"],"names":["flatJobPlan","job","tree","flatJobTree","index","Map","map","item","idx","workload","id","plan","branch","i","length","branchContinue","j","level","dependsOn","isJob","dep","dependencies","get","push","slice"],"mappings":";;AAIO,QAAA,CAASA,YAAYC,GAAc,CAAA,CAAA
|
|
1
|
+
{"version":3,"file":"flat-job-plan.js","sources":["../src/trees/flat-job-plan.ts"],"sourcesContent":["import type { Workload$ } from '@kyrielle/workload';\nimport { isJob } from '../utils/predicates.js';\nimport { flatJobTree, type FlatJobTreeItem } from './flat-job-tree.js';\n\nexport function flatJobPlan(job: Workload$): FlatJobPlanItem[] {\n const tree = flatJobTree(job, true);\n\n const index = new Map(tree.map((item, idx) => [item.workload.id, idx + 1]));\n const plan: FlatJobPlanItem[] = [];\n let branch = '';\n\n for (let i = 0; i < tree.length; i++) {\n const item = tree[i];\n\n // Check if branch continues\n let branchContinue = false;\n\n for (let j = i + 1; j < tree.length; j++) {\n if (tree[j].level <= item.level) {\n if (tree[j].level === item.level) {\n branchContinue = true;\n }\n\n break;\n }\n }\n\n // Compute dependencies\n const dependsOn: number[] = [];\n\n if (isJob(item.workload)) {\n for (const dep of item.workload.dependencies()) {\n const idx = index.get(dep.id);\n\n if (idx) {\n dependsOn.push(idx);\n }\n }\n }\n\n // Update branch\n if (branch.length / 3 > item.level) {\n branch = branch.slice(0, branch.length - 3);\n }\n\n if (item.level > 0 && branch.length / 3 === item.level) {\n branch = branch.slice(0, branch.length - 3);\n }\n\n if (branch.length / 3 < item.level) {\n if (branchContinue) {\n plan.push({ ...item, id: i + 1, branch: branch + '├─ ', dependsOn });\n branch += '│ ';\n } else {\n plan.push({ ...item, id: i + 1, branch: branch + '└─ ', dependsOn });\n branch += ' ';\n }\n } else {\n plan.push({ ...item, id: i + 1, branch, dependsOn });\n }\n }\n\n return plan;\n}\n\n// Types\ninterface FlatJobPlanItem extends FlatJobTreeItem {\n readonly id: number;\n readonly branch: string;\n readonly dependsOn: number[];\n}\n"],"names":["flatJobPlan","job","tree","flatJobTree","index","Map","map","item","idx","workload","id","plan","branch","i","length","branchContinue","j","level","dependsOn","isJob","dep","dependencies","get","push","slice"],"mappings":"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"}
|
package/dist/flat-job-tree.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{};e.SENTRY_RELEASE={id:"jill@3.0.8"};var n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e2a33220-1459-4832-a4ac-03f3db5ee630",e._sentryDebugIdIdentifier="sentry-dbid-e2a33220-1459-4832-a4ac-03f3db5ee630");}catch(e){}}();import { p as pipe$, c as collect$, m as map$, W as WorkloadState } from './main.js';
|
|
2
2
|
|
|
3
3
|
function isScriptWorkflow(workload) {
|
|
4
4
|
return workload.type === 'script';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flat-job-tree.js","sources":["../src/utils/predicates.ts","../src/trees/flat-job-tree.ts"],"sourcesContent":["import type { Job$, Workload$ } from '@kyrielle/workload';\nimport type { ScriptWorkflow$ } from '../jobs/run-script$.js';\n\nexport function isScriptWorkflow(workload: Workload$): workload is ScriptWorkflow$ {\n return workload.type === 'script';\n}\n\nexport function isJob(workload: Workload$): workload is Job$ {\n return 'dependencies' in workload && typeof workload.dependencies === 'function';\n}\n","import { type Workflow$, type Workload$, WorkloadState } from '@kyrielle/workload';\nimport { collect$, map$, pipe$ } from 'kyrielle';\nimport { isJob } from '../utils/predicates.js';\n\nexport function flatJobTree(workload: Workload$, verbose = false) {\n const tree: FlatJobTreeItem[] = [];\n const stack: FlatJobTreeItem[] = pipe$(\n listRoots(workload),\n map$((workload) => ({ workload, level: 0 })),\n collect$(),\n );\n\n while (stack.length > 0) {\n const item = stack.pop()!;\n const mustShow = [WorkloadState.Starting, WorkloadState.Running, WorkloadState.Failed].includes(item.workload.state());\n\n if (!verbose && !isWorkflow(item.workload) && !mustShow && item.level > 0) {\n continue;\n }\n\n // Add to tree\n let level = item.level;\n\n if (item.workload.label !== '[hidden]') {\n tree.push(item);\n level++;\n }\n\n // Load \"member\" tasks\n if (isWorkflow(item.workload)) {\n const children = [...item.workload.workloads()].reverse();\n\n for (const workload of children) {\n stack.push({ workload, parent: item.workload, level });\n }\n }\n }\n\n return tree;\n}\n\nfunction* listRoots(workload: Workload$) {\n const marks = new Set<string>();\n const queue = [workload];\n\n while (queue.length) {\n const item = queue.shift()!;\n\n // Mark all member of workflows, so they're not added as root\n if (isWorkflow(item)) {\n for (const wkl of item.workloads()) {\n marks.add(wkl.id);\n queue.unshift(wkl);\n }\n }\n\n // Load job dependencies\n if (isJob(item)) {\n for (const dep of item.dependencies()) {\n queue.push(dep);\n }\n }\n\n // Ignore marked workloads\n if (marks.has(item.id)) {\n continue;\n }\n\n yield item;\n marks.add(item.id);\n }\n}\n\nfunction isWorkflow(workload: Workload$): workload is Workflow$ {\n return 'workloads' in workload && typeof workload.workloads === 'function';\n}\n\n// Types\nexport interface FlatJobTreeItem {\n readonly level: number;\n readonly parent?: Workflow$;\n readonly workload: Workload$;\n}\n"],"names":["isScriptWorkflow","workload","type","isJob","dependencies","flatJobTree","verbose","tree","stack","pipe$","listRoots","map$","level","collect$","length","item","pop","mustShow","WorkloadState","Starting","Running","Failed","includes","state","isWorkflow","label","push","children","workloads","reverse","parent","marks","Set","queue","shift","wkl","add","id","unshift","dep","has"],"mappings":";;AAGO,QAAA,CAASA,iBAAiBC,QAAmB,CAAA,CAAA
|
|
1
|
+
{"version":3,"file":"flat-job-tree.js","sources":["../src/utils/predicates.ts","../src/trees/flat-job-tree.ts"],"sourcesContent":["import type { Job$, Workload$ } from '@kyrielle/workload';\nimport type { ScriptWorkflow$ } from '../jobs/run-script$.js';\n\nexport function isScriptWorkflow(workload: Workload$): workload is ScriptWorkflow$ {\n return workload.type === 'script';\n}\n\nexport function isJob(workload: Workload$): workload is Job$ {\n return 'dependencies' in workload && typeof workload.dependencies === 'function';\n}\n","import { type Workflow$, type Workload$, WorkloadState } from '@kyrielle/workload';\nimport { collect$, map$, pipe$ } from 'kyrielle';\nimport { isJob } from '../utils/predicates.js';\n\nexport function flatJobTree(workload: Workload$, verbose = false) {\n const tree: FlatJobTreeItem[] = [];\n const stack: FlatJobTreeItem[] = pipe$(\n listRoots(workload),\n map$((workload) => ({ workload, level: 0 })),\n collect$(),\n );\n\n while (stack.length > 0) {\n const item = stack.pop()!;\n const mustShow = [WorkloadState.Starting, WorkloadState.Running, WorkloadState.Failed].includes(item.workload.state());\n\n if (!verbose && !isWorkflow(item.workload) && !mustShow && item.level > 0) {\n continue;\n }\n\n // Add to tree\n let level = item.level;\n\n if (item.workload.label !== '[hidden]') {\n tree.push(item);\n level++;\n }\n\n // Load \"member\" tasks\n if (isWorkflow(item.workload)) {\n const children = [...item.workload.workloads()].reverse();\n\n for (const workload of children) {\n stack.push({ workload, parent: item.workload, level });\n }\n }\n }\n\n return tree;\n}\n\nfunction* listRoots(workload: Workload$) {\n const marks = new Set<string>();\n const queue = [workload];\n\n while (queue.length) {\n const item = queue.shift()!;\n\n // Mark all member of workflows, so they're not added as root\n if (isWorkflow(item)) {\n for (const wkl of item.workloads()) {\n marks.add(wkl.id);\n queue.unshift(wkl);\n }\n }\n\n // Load job dependencies\n if (isJob(item)) {\n for (const dep of item.dependencies()) {\n queue.push(dep);\n }\n }\n\n // Ignore marked workloads\n if (marks.has(item.id)) {\n continue;\n }\n\n yield item;\n marks.add(item.id);\n }\n}\n\nfunction isWorkflow(workload: Workload$): workload is Workflow$ {\n return 'workloads' in workload && typeof workload.workloads === 'function';\n}\n\n// Types\nexport interface FlatJobTreeItem {\n readonly level: number;\n readonly parent?: Workflow$;\n readonly workload: Workload$;\n}\n"],"names":["isScriptWorkflow","workload","type","isJob","dependencies","flatJobTree","verbose","tree","stack","pipe$","listRoots","map$","level","collect$","length","item","pop","mustShow","WorkloadState","Starting","Running","Failed","includes","state","isWorkflow","label","push","children","workloads","reverse","parent","marks","Set","queue","shift","wkl","add","id","unshift","dep","has"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{};e.SENTRY_RELEASE={id:"jill@3.0.8"};var n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="34373281-8949-48a2-9cae-fae16cf909a7",e._sentryDebugIdIdentifier="sentry-dbid-34373281-8949-48a2-9cae-fae16cf909a7");}catch(e){}}();import { r as reactExports, R as React, T as Text } from './inked.js';
|
|
2
2
|
import 'node:stream';
|
|
3
3
|
import 'node:process';
|
|
4
|
-
import 'node:events';
|
|
5
4
|
import { g as getDefaultExportFromCjs } from './main.js';
|
|
6
5
|
|
|
7
6
|
var dots = {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../node_modules/cli-spinners/index.js","../node_modules/ink-spinner/build/index.js"],"sourcesContent":["'use strict';\n\nconst spinners = Object.assign({}, require('./spinners.json')); // eslint-disable-line import/extensions\n\nconst spinnersList = Object.keys(spinners);\n\nObject.defineProperty(spinners, 'random', {\n\tget() {\n\t\tconst randomIndex = Math.floor(Math.random() * spinnersList.length);\n\t\tconst spinnerName = spinnersList[randomIndex];\n\t\treturn spinners[spinnerName];\n\t}\n});\n\nmodule.exports = spinners;\n","import React, { useState, useEffect } from 'react';\nimport { Text } from 'ink';\nimport spinners from 'cli-spinners';\n/**\n * Spinner.\n */\nfunction Spinner({ type = 'dots' }) {\n const [frame, setFrame] = useState(0);\n const spinner = spinners[type];\n useEffect(() => {\n const timer = setInterval(() => {\n setFrame(previousFrame => {\n const isLastFrame = previousFrame === spinner.frames.length - 1;\n return isLastFrame ? 0 : previousFrame + 1;\n });\n }, spinner.interval);\n return () => {\n clearInterval(timer);\n };\n }, [spinner]);\n return React.createElement(Text, null, spinner.frames[frame]);\n}\nexport default Spinner;\n//# sourceMappingURL=index.js.map"],"names":["spinners","Object","assign","require$$0","spinnersList","keys","defineProperty","get","randomIndex","Math","floor","random","length","spinnerName","cliSpinners","useState","useEffect"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../node_modules/cli-spinners/index.js","../node_modules/ink-spinner/build/index.js"],"sourcesContent":["'use strict';\n\nconst spinners = Object.assign({}, require('./spinners.json')); // eslint-disable-line import/extensions\n\nconst spinnersList = Object.keys(spinners);\n\nObject.defineProperty(spinners, 'random', {\n\tget() {\n\t\tconst randomIndex = Math.floor(Math.random() * spinnersList.length);\n\t\tconst spinnerName = spinnersList[randomIndex];\n\t\treturn spinners[spinnerName];\n\t}\n});\n\nmodule.exports = spinners;\n","import React, { useState, useEffect } from 'react';\nimport { Text } from 'ink';\nimport spinners from 'cli-spinners';\n/**\n * Spinner.\n */\nfunction Spinner({ type = 'dots' }) {\n const [frame, setFrame] = useState(0);\n const spinner = spinners[type];\n useEffect(() => {\n const timer = setInterval(() => {\n setFrame(previousFrame => {\n const isLastFrame = previousFrame === spinner.frames.length - 1;\n return isLastFrame ? 0 : previousFrame + 1;\n });\n }, spinner.interval);\n return () => {\n clearInterval(timer);\n };\n }, [spinner]);\n return React.createElement(Text, null, spinner.frames[frame]);\n}\nexport default Spinner;\n//# sourceMappingURL=index.js.map"],"names":["spinners","Object","assign","require$$0","spinnersList","keys","defineProperty","get","randomIndex","Math","floor","random","length","spinnerName","cliSpinners","useState","useEffect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMA,WAAWC,MAAAA,CAAOC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAIC,OAAAA,CAAAA,CAAAA;IAEnC,KAAA,CAAMC,YAAAA,CAAAA,CAAAA,CAAeH,MAAAA,CAAOI,IAAI,CAACL,QAAAA,CAAAA;IAEjCC,MAAAA,CAAOK,cAAc,CAACN,QAAAA,CAAAA,CAAU,QAAA,CAAA,CAAU;AACzCO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA;YACC,KAAA,CAAMC,WAAAA,CAAAA,CAAAA,CAAcC,KAAKC,KAAK,CAACD,KAAKE,MAAM,CAAA,CAAA,CAAA,CAAA,CAAKP,aAAaQ,MAAM,CAAA;YAClE,MAAMC,WAAAA,CAAAA,CAAAA,CAAcT,YAAY,CAACI,WAAAA,CAAY;YAC7C,MAAA,CAAOR,QAAQ,CAACa,WAAAA,CAAY;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IAEAC,WAAAA,GAAiBd,QAAAA;;;;;;;ACCjB,CAAA,CAAA;;AAEG,CAAA,CAAA,CAAA,CACH,QAAA,CAAS,OAAO,CAAC,CAAA,CAAC,IAAI,CAAA,CAAA,CAAG,CAAA,IAAA,CAAM,EAAQ,CAAA,CAAA;IACtC,KAAA,CAAM,CAAC,KAAK,CAAA,CAAE,QAAQ,CAAC,CAAA,CAAA,CAAGe,YAAAA,CAAAA,QAAQ,CAAC,CAAC,CAAC;AACrC,CAAA,CAAA,CAAA,CAAA,MAAM,OAAO,CAAA,CAAA,CAAG,QAAQ,CAAC,IAAI,CAAC;IAE9BC,YAAAA,CAAAA,SAAS,CAAC,CAAA,CAAA,CAAA,CAAG;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,KAAK,CAAA,CAAA,CAAG,WAAW,CAAC,CAAA,CAAA,CAAA,CAAG;YAC5B,QAAQ,CAAA,CAAC,aAAa,CAAA,CAAA,CAAG;gBACxB,KAAA,CAAM,WAAW,CAAA,CAAA,CAAG,aAAa,CAAA,CAAA,CAAA,CAAA,CAAK,OAAO,CAAC,MAAM,CAAC,MAAM,CAAA,CAAA,CAAG,CAAC;gBAC/D,OAAO,WAAW,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAG,aAAa,GAAG,CAAC;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;AACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAE,OAAO,CAAC,QAAQ,CAAC;AAEpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAG;YACT,aAAa,CAAC,KAAK,CAAC;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC;AACF,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAE;QAAC;AAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC;AAEb,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAO,KAAA,CAAA,aAAA,CAAC,IAAI,CAAA,CAAA,IAAA,CAAA,CAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAQ;AAC5C;;","x_google_ignoreList":[0,1]}
|