@peteanderson/ansi 2.3.0 → 3.0.0
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/README.md +12 -12
- package/dist/cjs/ansi.d.ts +2 -2
- package/dist/cjs/ansi.d.ts.map +1 -1
- package/dist/cjs/ansi.js +4 -4
- package/dist/cjs/ansi.js.map +1 -1
- package/dist/cjs/{caret.d.ts → cursor.d.ts} +4 -4
- package/dist/cjs/cursor.d.ts.map +1 -0
- package/dist/cjs/{caret.js → cursor.js} +5 -5
- package/dist/cjs/cursor.js.map +1 -0
- package/dist/cjs/features/build.d.ts +1 -1
- package/dist/cjs/features/build.d.ts.map +1 -1
- package/dist/cjs/features/build.js +4 -4
- package/dist/cjs/features/build.js.map +1 -1
- package/dist/cjs/features/detect.js +1 -1
- package/dist/cjs/features/detect.js.map +1 -1
- package/dist/cjs/features/features.js +4 -4
- package/dist/cjs/features/features.js.map +1 -1
- package/dist/cjs/features/types.d.ts +1 -1
- package/dist/cjs/features/types.d.ts.map +1 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/sgr/combine.d.ts.map +1 -1
- package/dist/cjs/sgr/combine.js +1 -1
- package/dist/cjs/sgr/combine.js.map +1 -1
- package/dist/cjs/sgr/format-builder.d.ts.map +1 -1
- package/dist/cjs/sgr/format-builder.js +1 -3
- package/dist/cjs/sgr/format-builder.js.map +1 -1
- package/dist/cjs/sgr/reset.d.ts.map +1 -1
- package/dist/cjs/sgr/reset.js +1 -1
- package/dist/cjs/sgr/reset.js.map +1 -1
- package/dist/cjs/sgr/types.d.ts +1 -1
- package/dist/cjs/sgr/types.d.ts.map +1 -1
- package/dist/cjs/simplify/lookup.d.ts +2 -2
- package/dist/cjs/simplify/lookup.d.ts.map +1 -1
- package/dist/cjs/simplify/lookup.js +1 -0
- package/dist/cjs/simplify/lookup.js.map +1 -1
- package/dist/cjs/simplify/simplify.js +2 -2
- package/dist/cjs/simplify/simplify.js.map +1 -1
- package/dist/cjs/simplify/state.d.ts +3 -3
- package/dist/cjs/simplify/state.d.ts.map +1 -1
- package/dist/cjs/simplify/state.js.map +1 -1
- package/dist/cjs/simplify/types.d.ts +5 -4
- package/dist/cjs/simplify/types.d.ts.map +1 -1
- package/dist/cjs/simplify/utils.d.ts +2 -1
- package/dist/cjs/simplify/utils.d.ts.map +1 -1
- package/dist/cjs/simplify/utils.js.map +1 -1
- package/dist/cjs/types.d.ts +2 -2
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/ansi.d.ts +2 -2
- package/dist/esm/ansi.d.ts.map +1 -1
- package/dist/esm/ansi.js +3 -3
- package/dist/esm/ansi.js.map +1 -1
- package/dist/esm/{caret.d.ts → cursor.d.ts} +4 -4
- package/dist/esm/cursor.d.ts.map +1 -0
- package/dist/esm/{caret.js → cursor.js} +3 -3
- package/dist/esm/cursor.js.map +1 -0
- package/dist/esm/features/build.d.ts +1 -1
- package/dist/esm/features/build.d.ts.map +1 -1
- package/dist/esm/features/build.js +4 -4
- package/dist/esm/features/build.js.map +1 -1
- package/dist/esm/features/detect.js +1 -1
- package/dist/esm/features/detect.js.map +1 -1
- package/dist/esm/features/features.js +4 -4
- package/dist/esm/features/features.js.map +1 -1
- package/dist/esm/features/types.d.ts +1 -1
- package/dist/esm/features/types.d.ts.map +1 -1
- package/dist/esm/sgr/combine.d.ts.map +1 -1
- package/dist/esm/sgr/combine.js +1 -1
- package/dist/esm/sgr/combine.js.map +1 -1
- package/dist/esm/sgr/format-builder.d.ts.map +1 -1
- package/dist/esm/sgr/format-builder.js +1 -3
- package/dist/esm/sgr/format-builder.js.map +1 -1
- package/dist/esm/sgr/reset.d.ts.map +1 -1
- package/dist/esm/sgr/reset.js +1 -1
- package/dist/esm/sgr/reset.js.map +1 -1
- package/dist/esm/sgr/types.d.ts +1 -1
- package/dist/esm/sgr/types.d.ts.map +1 -1
- package/dist/esm/simplify/lookup.d.ts +2 -2
- package/dist/esm/simplify/lookup.d.ts.map +1 -1
- package/dist/esm/simplify/lookup.js +1 -0
- package/dist/esm/simplify/lookup.js.map +1 -1
- package/dist/esm/simplify/simplify.js +2 -2
- package/dist/esm/simplify/simplify.js.map +1 -1
- package/dist/esm/simplify/state.d.ts +3 -3
- package/dist/esm/simplify/state.d.ts.map +1 -1
- package/dist/esm/simplify/state.js.map +1 -1
- package/dist/esm/simplify/types.d.ts +5 -4
- package/dist/esm/simplify/types.d.ts.map +1 -1
- package/dist/esm/simplify/utils.d.ts +2 -1
- package/dist/esm/simplify/utils.d.ts.map +1 -1
- package/dist/esm/simplify/utils.js.map +1 -1
- package/dist/esm/types.d.ts +2 -2
- package/dist/esm/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/ansi.ts +3 -3
- package/src/{caret.ts → cursor.ts} +4 -4
- package/src/features/build.ts +4 -4
- package/src/features/detect.ts +1 -1
- package/src/features/features.ts +4 -4
- package/src/features/types.ts +1 -1
- package/src/sgr/combine.ts +1 -1
- package/src/sgr/format-builder.ts +1 -4
- package/src/sgr/reset.ts +1 -1
- package/src/sgr/types.ts +1 -1
- package/src/simplify/lookup.ts +4 -3
- package/src/simplify/simplify.ts +3 -3
- package/src/simplify/state.ts +4 -4
- package/src/simplify/types.ts +7 -4
- package/src/simplify/utils.ts +5 -3
- package/src/types.ts +2 -2
- package/src/utility-types.d.ts +5 -1
- package/dist/cjs/caret.d.ts.map +0 -1
- package/dist/cjs/caret.js.map +0 -1
- package/dist/esm/caret.d.ts.map +0 -1
- package/dist/esm/caret.js.map +0 -1
package/src/sgr/combine.ts
CHANGED
|
@@ -3,4 +3,4 @@ import {State} from "../simplify/state";
|
|
|
3
3
|
import type {Code} from "./types";
|
|
4
4
|
|
|
5
5
|
export const combineCodes = (base: Code, ...codes: Code[]): Code =>
|
|
6
|
-
new State().update([base, ...codes].flat())
|
|
6
|
+
new State().update([base, ...codes].flat());
|
|
@@ -4,10 +4,7 @@ import {lazy} from "./lazy";
|
|
|
4
4
|
|
|
5
5
|
import type {ChainBuilder, ChainKey, Code, Format, FormatBase, FormatBuilder} from "./types";
|
|
6
6
|
|
|
7
|
-
const codeSequence = (code: Code): string | number =>
|
|
8
|
-
Array.isArray(code)
|
|
9
|
-
? code.map(c => c ? c : "").join(';')
|
|
10
|
-
: code ? code : "";
|
|
7
|
+
const codeSequence = (code: Code): string | number => Array.isArray(code) ? code.join(';') : code;
|
|
11
8
|
|
|
12
9
|
const chain = <Keys extends ChainKey>(
|
|
13
10
|
makeChain : ChainBuilder,
|
package/src/sgr/reset.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const makeReset = (enabled = true): string => enabled ? "\x1b[
|
|
1
|
+
export const makeReset = (enabled = true): string => enabled ? "\x1b[m" : "";
|
package/src/sgr/types.ts
CHANGED
|
@@ -22,7 +22,7 @@ export type ChainBuilder = <Keys extends ChainKey>(
|
|
|
22
22
|
baseFormat : FormatBase,
|
|
23
23
|
) => Chain<Keys>;
|
|
24
24
|
|
|
25
|
-
export type Code = number | number
|
|
25
|
+
export type Code = number | "" | ReadonlyArray<number | "">;
|
|
26
26
|
|
|
27
27
|
export interface FormatBase {
|
|
28
28
|
(text: string): string;
|
package/src/simplify/lookup.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import {buildExtendedColorAtom, buildIntensityAtom} from "./atom";
|
|
2
2
|
|
|
3
|
-
import type {Atom, Attribute, AttributeMap, BuildAtom} from "./types";
|
|
3
|
+
import type {Atom, Attribute, AttributeMap, BuildAtom, CodeArray} from "./types";
|
|
4
4
|
|
|
5
|
-
const codeMap: Record<number, [attribute: Attribute, buildAtom?: BuildAtom]> = {
|
|
5
|
+
const codeMap: Record<number | "", [attribute: Attribute, buildAtom?: BuildAtom]> = {
|
|
6
|
+
"" : ["reset"],
|
|
6
7
|
0 : ["reset"],
|
|
7
8
|
1 : ["intensity", buildIntensityAtom],
|
|
8
9
|
2 : ["intensity", buildIntensityAtom],
|
|
@@ -61,7 +62,7 @@ const codeMap: Record<number, [attribute: Attribute, buildAtom?: BuildAtom]> = {
|
|
|
61
62
|
107 : ["bg"],
|
|
62
63
|
};
|
|
63
64
|
|
|
64
|
-
export function lookUpAtom(codes:
|
|
65
|
+
export function lookUpAtom(codes: CodeArray, index: number, state: AttributeMap): Atom {
|
|
65
66
|
const code = codes[index];
|
|
66
67
|
const entry = codeMap[code];
|
|
67
68
|
|
package/src/simplify/simplify.ts
CHANGED
|
@@ -9,12 +9,12 @@ export function simplify(text: string): string {
|
|
|
9
9
|
let result = parts[0];
|
|
10
10
|
|
|
11
11
|
for (let i = 1; i < parts.length; ) {
|
|
12
|
-
|
|
13
|
-
let
|
|
12
|
+
const codes = parts[i++].split(";").map(s => s ? Number(s) : "");
|
|
13
|
+
let chunk = parts[i++];
|
|
14
14
|
|
|
15
15
|
while (!chunk && i < parts.length) {
|
|
16
16
|
// Merge consecutive SGR sequences with no text between them.
|
|
17
|
-
codes.push(...parts[i++].split(";").map(Number));
|
|
17
|
+
codes.push(...parts[i++].split(";").map(s => s ? Number(s) : ""));
|
|
18
18
|
chunk = parts[i++];
|
|
19
19
|
}
|
|
20
20
|
|
package/src/simplify/state.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {lookUpAtom} from "./lookup";
|
|
2
2
|
import {arraysEqual, transitionIntensity} from "./utils";
|
|
3
3
|
|
|
4
|
-
import type {Attribute, AttributeMap} from "./types";
|
|
4
|
+
import type {Attribute, AttributeMap, CodeArray} from "./types";
|
|
5
5
|
|
|
6
|
-
const defaultCodes: Map<Attribute,
|
|
6
|
+
const defaultCodes: Map<Attribute, CodeArray> = new Map([
|
|
7
7
|
["intensity", [22]],
|
|
8
8
|
["italic", [23]],
|
|
9
9
|
["underline", [24]],
|
|
@@ -16,7 +16,7 @@ const defaultCodes: Map<Attribute, readonly number[]> = new Map([
|
|
|
16
16
|
["overline", [55]],
|
|
17
17
|
]);
|
|
18
18
|
|
|
19
|
-
export class State extends Map<Attribute,
|
|
19
|
+
export class State extends Map<Attribute, CodeArray> implements AttributeMap {
|
|
20
20
|
#isDefaultState(except?: Attribute): boolean {
|
|
21
21
|
for (const [attribute, defaultCode] of defaultCodes) {
|
|
22
22
|
if (attribute === except)
|
|
@@ -29,7 +29,7 @@ export class State extends Map<Attribute, readonly number[]> implements Attribut
|
|
|
29
29
|
return true;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
update(codes:
|
|
32
|
+
update(codes: CodeArray): CodeArray {
|
|
33
33
|
let snapshot: AttributeMap = new Map(this);
|
|
34
34
|
|
|
35
35
|
const attributes = new Set<Attribute>();
|
package/src/simplify/types.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export type CodeArray = ReadonlyArray<number | "">;
|
|
2
|
+
|
|
1
3
|
export type Attribute =
|
|
2
4
|
| "intensity"
|
|
3
5
|
| "italic"
|
|
@@ -10,19 +12,20 @@ export type Attribute =
|
|
|
10
12
|
| "frame"
|
|
11
13
|
| "overline"
|
|
12
14
|
| "reset"
|
|
13
|
-
| number
|
|
15
|
+
| number
|
|
16
|
+
| "";
|
|
14
17
|
|
|
15
|
-
export type AttributeMap = Map<Attribute,
|
|
18
|
+
export type AttributeMap = Map<Attribute, CodeArray>;
|
|
16
19
|
|
|
17
20
|
export interface Atom {
|
|
18
21
|
attribute : Attribute;
|
|
19
|
-
code :
|
|
22
|
+
code : CodeArray;
|
|
20
23
|
skip? : number;
|
|
21
24
|
}
|
|
22
25
|
|
|
23
26
|
export type BuildAtom = (
|
|
24
27
|
attribute : Attribute,
|
|
25
|
-
codes :
|
|
28
|
+
codes : CodeArray,
|
|
26
29
|
index : number,
|
|
27
30
|
state : AttributeMap,
|
|
28
31
|
) => Atom;
|
package/src/simplify/utils.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type {CodeArray} from "./types";
|
|
2
|
+
|
|
1
3
|
export function arraysEqual<T>(a: readonly T[] | undefined, b: readonly T[] | undefined): boolean {
|
|
2
4
|
if (a === b)
|
|
3
5
|
return true;
|
|
@@ -14,9 +16,9 @@ export function arraysEqual<T>(a: readonly T[] | undefined, b: readonly T[] | un
|
|
|
14
16
|
}
|
|
15
17
|
|
|
16
18
|
export function transitionIntensity(
|
|
17
|
-
previous :
|
|
18
|
-
current :
|
|
19
|
-
):
|
|
19
|
+
previous : CodeArray | undefined,
|
|
20
|
+
current : CodeArray,
|
|
21
|
+
): CodeArray {
|
|
20
22
|
if (!previous || previous[0] === 22 || current[0] === 22)
|
|
21
23
|
return current;
|
|
22
24
|
|
package/src/types.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type {Cursor} from "./cursor";
|
|
2
2
|
import type {Erase} from "./erase";
|
|
3
3
|
import type {Features} from "./features";
|
|
4
4
|
import type {PadEnd, PadStart} from "./pad";
|
|
@@ -10,7 +10,7 @@ import type {Sanitize, Strip, VisibleLength} from "./strip";
|
|
|
10
10
|
import type {Terminal} from "./terminal";
|
|
11
11
|
|
|
12
12
|
export type Ansi = SGR & {
|
|
13
|
-
|
|
13
|
+
cursor : Cursor;
|
|
14
14
|
erase : Erase;
|
|
15
15
|
scroll : Scroll;
|
|
16
16
|
terminal : Terminal;
|
package/src/utility-types.d.ts
CHANGED
|
@@ -15,4 +15,8 @@ type EntriesOf<T, K extends [...(keyof T)[]] = (keyof T)[]> = {
|
|
|
15
15
|
[P in keyof K]: K[P] extends keyof T ? EntryOf<T, K[P]> : never;
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
type SkipFirst<T> = T extends [infer First, ...infer Rest] ? Rest : [];
|
|
18
|
+
type SkipFirst<T> = T extends [infer First, ...infer Rest] ? Rest : [];
|
|
19
|
+
|
|
20
|
+
interface ArrayConstructor {
|
|
21
|
+
isArray(value: unknown): value is readonly unknown[];
|
|
22
|
+
}
|
package/dist/cjs/caret.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"caret.d.ts","sourceRoot":"","sources":["../../src/caret.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,KAAK;iBAL6B,MAAM,KAAG,MAAM;mBAAf,MAAM,KAAG,MAAM;sBAAf,MAAM,KAAG,MAAM;uBAAf,MAAM,KAAG,MAAM;uBAAf,MAAM,KAAG,MAAM;uBAAf,MAAM,KAAG,MAAM;WAa/C,MAAM,KAAG,MAAM;;;;;;;iBAkBZ,MAAM,KAAK,MAAM,KAAG,MAAM;;;;;;;;;;;CAYpC,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC;AAkCjC,eAAO,MAAM,SAAS,GAAI,iBAAc,KAAG,KAAmC,CAAC"}
|
package/dist/cjs/caret.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"caret.js","sourceRoot":"","sources":["../../src/caret.ts"],"names":[],"mappings":";;;AAAA,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,KAAc,EAAU,EAAE,CACzD,QAAQ,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC;AAEjE,MAAM,IAAI,GAAG,GAAW,EAAE,CAAC,EAAE,CAAC;AAE9B,MAAM,KAAK,GAAG;IACb,EAAE,EAAS,IAAI,CAAC,GAAG,CAAC;IACpB,IAAI,EAAO,IAAI,CAAC,GAAG,CAAC;IACpB,OAAO,EAAI,IAAI,CAAC,GAAG,CAAC;IACpB,QAAQ,EAAG,IAAI,CAAC,GAAG,CAAC;IACpB,QAAQ,EAAG,IAAI,CAAC,GAAG,CAAC;IACpB,QAAQ,EAAG,IAAI,CAAC,GAAG,CAAC;IAEpB,CAAC,EAAE,CAAC,CAAS,EAAU,EAAE,CAAC,QAAQ,CAAC,GAAG;IAEtC,4FAA4F;IAC5F,+FAA+F;IAC/F,yDAAyD;IACzD,EAAE;IACF,MAAM;IACN,sBAAsB;IACtB,sBAAsB;IACtB,MAAM;IACN,IAAI,EAAM,OAAO;IACjB,OAAO,EAAG,OAAO;IAEjB,IAAI,EAAG,WAAW;IAClB,IAAI,EAAG,WAAW;IAElB,QAAQ,EAAE;QACT,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG;KACxD;IAED,KAAK,EAAE;QACN,WAAW,EAAS,UAAU;QAC9B,SAAS,EAAW,UAAU;QAC9B,eAAe,EAAK,UAAU;QAC9B,aAAa,EAAO,UAAU;QAC9B,WAAW,EAAS,UAAU;QAC9B,iBAAiB,EAAG,UAAU;QAC9B,OAAO,EAAa,UAAU;KAC9B;CACD,CAAC;AAIF,MAAM,QAAQ,GAAU;IACvB,EAAE,EAAS,IAAI;IACf,IAAI,EAAO,IAAI;IACf,OAAO,EAAI,IAAI;IACf,QAAQ,EAAG,IAAI;IACf,QAAQ,EAAG,IAAI;IACf,QAAQ,EAAG,IAAI;IAEf,CAAC,EAAE,IAAI;IAEP,IAAI,EAAM,EAAE;IACZ,OAAO,EAAG,EAAE;IAEZ,IAAI,EAAG,EAAE;IACT,IAAI,EAAG,EAAE;IAET,QAAQ,EAAE;QACT,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,IAAI;KACT;IAED,KAAK,EAAE;QACN,WAAW,EAAS,EAAE;QACtB,SAAS,EAAW,EAAE;QACtB,eAAe,EAAK,EAAE;QACtB,aAAa,EAAO,EAAE;QACtB,WAAW,EAAS,EAAE;QACtB,iBAAiB,EAAG,EAAE;QACtB,OAAO,EAAa,EAAE;KACtB;CACD,CAAC;AAEK,MAAM,SAAS,GAAG,CAAC,OAAO,GAAG,IAAI,EAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AAAlE,QAAA,SAAS,aAAyD"}
|
package/dist/esm/caret.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"caret.d.ts","sourceRoot":"","sources":["../../src/caret.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,KAAK;iBAL6B,MAAM,KAAG,MAAM;mBAAf,MAAM,KAAG,MAAM;sBAAf,MAAM,KAAG,MAAM;uBAAf,MAAM,KAAG,MAAM;uBAAf,MAAM,KAAG,MAAM;uBAAf,MAAM,KAAG,MAAM;WAa/C,MAAM,KAAG,MAAM;;;;;;;iBAkBZ,MAAM,KAAK,MAAM,KAAG,MAAM;;;;;;;;;;;CAYpC,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC;AAkCjC,eAAO,MAAM,SAAS,GAAI,iBAAc,KAAG,KAAmC,CAAC"}
|
package/dist/esm/caret.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"caret.js","sourceRoot":"","sources":["../../src/caret.ts"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,KAAc,EAAU,EAAE,CACzD,QAAQ,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC;AAEjE,MAAM,IAAI,GAAG,GAAW,EAAE,CAAC,EAAE,CAAC;AAE9B,MAAM,KAAK,GAAG;IACb,EAAE,EAAS,IAAI,CAAC,GAAG,CAAC;IACpB,IAAI,EAAO,IAAI,CAAC,GAAG,CAAC;IACpB,OAAO,EAAI,IAAI,CAAC,GAAG,CAAC;IACpB,QAAQ,EAAG,IAAI,CAAC,GAAG,CAAC;IACpB,QAAQ,EAAG,IAAI,CAAC,GAAG,CAAC;IACpB,QAAQ,EAAG,IAAI,CAAC,GAAG,CAAC;IAEpB,CAAC,EAAE,CAAC,CAAS,EAAU,EAAE,CAAC,QAAQ,CAAC,GAAG;IAEtC,4FAA4F;IAC5F,+FAA+F;IAC/F,yDAAyD;IACzD,EAAE;IACF,MAAM;IACN,sBAAsB;IACtB,sBAAsB;IACtB,MAAM;IACN,IAAI,EAAM,OAAO;IACjB,OAAO,EAAG,OAAO;IAEjB,IAAI,EAAG,WAAW;IAClB,IAAI,EAAG,WAAW;IAElB,QAAQ,EAAE;QACT,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG;KACxD;IAED,KAAK,EAAE;QACN,WAAW,EAAS,UAAU;QAC9B,SAAS,EAAW,UAAU;QAC9B,eAAe,EAAK,UAAU;QAC9B,aAAa,EAAO,UAAU;QAC9B,WAAW,EAAS,UAAU;QAC9B,iBAAiB,EAAG,UAAU;QAC9B,OAAO,EAAa,UAAU;KAC9B;CACD,CAAC;AAIF,MAAM,QAAQ,GAAU;IACvB,EAAE,EAAS,IAAI;IACf,IAAI,EAAO,IAAI;IACf,OAAO,EAAI,IAAI;IACf,QAAQ,EAAG,IAAI;IACf,QAAQ,EAAG,IAAI;IACf,QAAQ,EAAG,IAAI;IAEf,CAAC,EAAE,IAAI;IAEP,IAAI,EAAM,EAAE;IACZ,OAAO,EAAG,EAAE;IAEZ,IAAI,EAAG,EAAE;IACT,IAAI,EAAG,EAAE;IAET,QAAQ,EAAE;QACT,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,IAAI;KACT;IAED,KAAK,EAAE;QACN,WAAW,EAAS,EAAE;QACtB,SAAS,EAAW,EAAE;QACtB,eAAe,EAAK,EAAE;QACtB,aAAa,EAAO,EAAE;QACtB,WAAW,EAAS,EAAE;QACtB,iBAAiB,EAAG,EAAE;QACtB,OAAO,EAAa,EAAE;KACtB;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAO,GAAG,IAAI,EAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC"}
|