keri 0.0.6 → 0.0.8-dev.3be59ff

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.
@@ -0,0 +1,46 @@
1
+ import * as readline from "node:readline";
2
+ import * as process from "node:process";
3
+ export async function pinentry(prompt) {
4
+ await new Promise((resolve) => setTimeout(resolve, 0));
5
+ return new Promise((resolve) => {
6
+ const rl = readline.createInterface({
7
+ input: process.stdin,
8
+ });
9
+ let input = "";
10
+ process.stdout.write(prompt + " ");
11
+ readline.emitKeypressEvents(process.stdin);
12
+ if (process.stdin.isTTY) {
13
+ process.stdin.setRawMode(true);
14
+ }
15
+ const cleanup = () => {
16
+ if (process.stdin.isTTY) {
17
+ process.stdin.setRawMode(false);
18
+ }
19
+ process.stdin.removeListener("keypress", handleKeyPress);
20
+ rl.close();
21
+ process.stdout.write("\n");
22
+ };
23
+ const handleKeyPress = (str, key) => {
24
+ if (key.name === "return") {
25
+ cleanup();
26
+ resolve(input);
27
+ }
28
+ else if (key.name === "escape" || (key.ctrl && key.name === "c")) {
29
+ cleanup();
30
+ resolve(null);
31
+ }
32
+ else if (key.name === "backspace") {
33
+ if (input.length > 0) {
34
+ input = input.slice(0, -1);
35
+ process.stdout.write("\x1B[1D \x1B[1D");
36
+ }
37
+ }
38
+ else if (str && !key.ctrl && !key.meta) {
39
+ input += str;
40
+ process.stdout.write("*");
41
+ }
42
+ };
43
+ process.stdin.on("keypress", handleKeyPress);
44
+ });
45
+ }
46
+ //# sourceMappingURL=pinentry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pinentry.js","sourceRoot":"","sources":["../../src/keystore/pinentry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAc;IAC3C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACvD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;QAEH,IAAI,KAAK,GAAG,EAAE,CAAC;QAEf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QAEnC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YACzD,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC;QAEF,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,GAAiB,EAAE,EAAE;YACxD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACnE,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACpC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACzC,KAAK,IAAI,GAAG,CAAC;gBACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/main.d.ts CHANGED
@@ -4,4 +4,4 @@ export * from "./db/storage.ts";
4
4
  export * from "./keystore/key-manager.ts";
5
5
  export * from "./keystore/encrypt.ts";
6
6
  export * from "./controller.ts";
7
- export * from "./witness.ts";
7
+ export * from "cesr";
package/dist/main.js CHANGED
@@ -4,5 +4,5 @@ export * from "./db/storage.js";
4
4
  export * from "./keystore/key-manager.js";
5
5
  export * from "./keystore/encrypt.js";
6
6
  export * from "./controller.js";
7
- export * from "./witness.js";
7
+ export * from "cesr";
8
8
  //# sourceMappingURL=main.js.map
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,MAAM,CAAC"}
package/package.json CHANGED
@@ -1,14 +1,18 @@
1
1
  {
2
2
  "name": "keri",
3
- "version": "0.0.6",
3
+ "version": "0.0.8-dev.3be59ff",
4
4
  "scripts": {
5
5
  "build": "tsc -p tsconfig.build.json",
6
6
  "dev": "tsc -p tsconfig.build.json --watch",
7
7
  "test": "node --test --test-reporter=spec --no-warnings --experimental-strip-types",
8
8
  "test:integration": "npm test -- 'test_integration/**/*.ts'",
9
- "test:scripts": "node --no-warnings --experimental-strip-types scripts/run-scripts.ts",
9
+ "test:scripts": "node --no-warnings scripts/run-scripts.ts",
10
+ "test:example": "./test_examples.sh",
10
11
  "lint": "eslint",
11
- "clean": "node --experimental-strip-types --no-warnings scripts/clean.ts"
12
+ "check": "tsc --noEmit",
13
+ "clean": "node scripts/clean.ts",
14
+ "format": "prettier --write .",
15
+ "format:check": "prettier --check ."
12
16
  },
13
17
  "bin": {
14
18
  "keri": "dist/cli/main.js"
@@ -24,6 +28,18 @@
24
28
  "author": "Daniel Lenksjö",
25
29
  "license": "Apache-2.0",
26
30
  "description": "KERI for JavaScript",
31
+ "devEngines": {
32
+ "runtime": {
33
+ "name": "node",
34
+ "version": ">=24",
35
+ "onFail": "warn"
36
+ },
37
+ "packageManager": {
38
+ "name": "npm",
39
+ "version": ">=11",
40
+ "onFail": "warn"
41
+ }
42
+ },
27
43
  "engines": {
28
44
  "node": ">=22"
29
45
  },
@@ -32,7 +48,7 @@
32
48
  "@noble/ed25519": "^3.0.0",
33
49
  "@noble/hashes": "^2.0.0",
34
50
  "@noble/secp256k1": "^3.0.0",
35
- "cesr": "^0.0.14",
51
+ "cesr": "^0.0.22",
36
52
  "commander": "^14.0.0"
37
53
  },
38
54
  "devDependencies": {
@@ -1,10 +0,0 @@
1
- import { type KeyEventReceipt, type KeyEventSeal } from "./events/event-store.ts";
2
- export declare function encodeHexNumber(num: string): string;
3
- export declare function serializeSignatures(sigs: string[], seal?: KeyEventSeal): string;
4
- export declare function serializeWitnessSignatures(receipts: KeyEventReceipt[], backers: string[]): string;
5
- export declare function serializeReceipts(receipts: KeyEventReceipt[]): string;
6
- export declare function serializePathedGroup(path: string[], attachments: string[]): string;
7
- export declare function serializeAttachments(attachments: string[]): string;
8
- export declare function serializeEventSeal(seal: KeyEventSeal): string;
9
- export declare function serializeDigestSeal(seal: KeyEventSeal): string;
10
- export declare function getIndexedCode(code: string): string;
@@ -1,83 +0,0 @@
1
- import { cesr, CountCode_10, encodeAttachmentsV1, encodeBase64Int, encodeCounter, encodeString, IndexCode, MatterCode, } from "cesr/__unstable__";
2
- export function encodeHexNumber(num) {
3
- return `${MatterCode.Salt_128}${encodeBase64Int(parseInt(num, 16), 22)}`;
4
- }
5
- export function serializeSignatures(sigs, seal) {
6
- const result = [];
7
- if (sigs && sigs.length > 0) {
8
- if (seal && seal.i && seal.s && seal.d) {
9
- result.push(encodeCounter({
10
- code: CountCode_10.TransIdxSigGroups,
11
- count: 1,
12
- }));
13
- result.push(seal.i);
14
- result.push(encodeHexNumber(seal.s));
15
- result.push(seal.d);
16
- }
17
- result.push(encodeCounter({ code: CountCode_10.ControllerIdxSigs, count: sigs.length }));
18
- result.push(...sigs);
19
- }
20
- return result.join("");
21
- }
22
- export function serializeWitnessSignatures(receipts, backers) {
23
- const result = [];
24
- if (receipts.length > 0) {
25
- result.push(encodeCounter({ code: CountCode_10.WitnessIdxSigs, count: receipts.length }));
26
- for (const sig of receipts) {
27
- const signature = cesr.decodeMatter(sig.signature);
28
- const index = backers.indexOf(sig.backer);
29
- if (index === -1) {
30
- throw new Error(`Unknown backer ${sig.backer}`);
31
- }
32
- result.push(cesr.encodeIndexer({
33
- code: getIndexedCode(signature.code),
34
- raw: signature.raw,
35
- index: index,
36
- }));
37
- }
38
- }
39
- return result.join("");
40
- }
41
- export function serializeReceipts(receipts) {
42
- const result = [];
43
- if (receipts.length > 0) {
44
- result.push(encodeCounter({ code: CountCode_10.NonTransReceiptCouples, count: receipts.length }));
45
- result.push(...receipts.map((receipt) => receipt.backer + receipt.signature));
46
- }
47
- return result.join("");
48
- }
49
- export function serializePathedGroup(path, attachments) {
50
- const result = [];
51
- result.push(encodeString(`-${path.join("-")}`));
52
- result.push(...attachments);
53
- return (encodeCounter({
54
- code: CountCode_10.PathedMaterialCouples,
55
- count: result.join("").length / 4,
56
- }) + result.join(""));
57
- }
58
- export function serializeAttachments(attachments) {
59
- const result = attachments.join("");
60
- return `${encodeAttachmentsV1(result.length / 4)}${result}`;
61
- }
62
- export function serializeEventSeal(seal) {
63
- return [
64
- encodeCounter({ code: CountCode_10.SealSourceTriples, count: 1 }),
65
- seal.i,
66
- encodeHexNumber(seal.s),
67
- seal.d,
68
- ].join("");
69
- }
70
- export function serializeDigestSeal(seal) {
71
- return [encodeCounter({ code: CountCode_10.SealSourceCouples, count: 1 }), encodeHexNumber(seal.s), seal.d].join("");
72
- }
73
- export function getIndexedCode(code) {
74
- switch (code) {
75
- case MatterCode.Ed25519_Sig:
76
- return IndexCode.Ed25519_Sig;
77
- case MatterCode.Ed448_Sig:
78
- return IndexCode.Ed448_Sig;
79
- default:
80
- throw new Error(`Unsupported indexed signature type: ${code}`);
81
- }
82
- }
83
- //# sourceMappingURL=serializer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"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"}
package/dist/witness.d.ts DELETED
@@ -1,19 +0,0 @@
1
- import { type KeyEventMessage } from "./main.ts";
2
- export interface OobiArgs {
3
- aid?: string;
4
- role?: string;
5
- }
6
- export interface WitnessOptions {
7
- seed?: Uint8Array;
8
- }
9
- export declare class Witness {
10
- #private;
11
- constructor(options?: WitnessOptions);
12
- oobi(): Promise<KeyEventMessage[]>;
13
- /**
14
- * Handle incoming HTTP requests
15
- *
16
- * @param request The incoming HTTP request
17
- */
18
- fetch(request: Request): Promise<Response>;
19
- }
package/dist/witness.js DELETED
@@ -1,91 +0,0 @@
1
- import { ed25519 } from "@noble/curves/ed25519.js";
2
- import { cesr, IndexCode, MatterCode } from "cesr/__unstable__";
3
- import { keri } from "./events/events.js";
4
- import { serializeAttachments, serializeReceipts, serializeSignatures } from "./serializer.js";
5
- export class Witness {
6
- #privateKey;
7
- #publicKey;
8
- #icp;
9
- #signature;
10
- constructor(options = {}) {
11
- this.#privateKey = ed25519.utils.randomSecretKey(options.seed);
12
- this.#publicKey = cesr.encodeMatter({ code: MatterCode.Ed25519N, raw: ed25519.getPublicKey(this.#privateKey) });
13
- this.#icp = keri.incept({
14
- k: [this.#publicKey],
15
- kt: "1",
16
- });
17
- this.#signature = cesr.encodeIndexer({
18
- code: IndexCode.Ed25519_Sig,
19
- raw: ed25519.sign(new TextEncoder().encode(JSON.stringify(this.#icp)), this.#privateKey),
20
- index: 0,
21
- });
22
- }
23
- async oobi() {
24
- return [{ event: this.#icp, receipts: [], signatures: [this.#signature], timestamp: new Date() }];
25
- }
26
- #createResponse(message) {
27
- const body = [
28
- JSON.stringify(message.event),
29
- serializeAttachments([serializeSignatures(message.signatures), serializeReceipts(message.receipts)]),
30
- ].join("");
31
- return new Response(body, {
32
- status: 200,
33
- headers: { "Content-Type": "application/cesr+json" },
34
- });
35
- }
36
- async #oobi(request) {
37
- if (request.method.toUpperCase() !== "GET") {
38
- return new Response("Method Not Allowed", { status: 405 });
39
- }
40
- const match = request.url.match(/\/oobi\/?([A-Za-z0-9_-])?$/);
41
- if (!match) {
42
- return new Response("Not Found", { status: 404 });
43
- }
44
- return this.#createResponse({
45
- event: this.#icp,
46
- signatures: [this.#signature],
47
- receipts: [],
48
- timestamp: new Date(),
49
- });
50
- }
51
- #sign(event) {
52
- const raw = new TextEncoder().encode(JSON.stringify(event));
53
- const sign = ed25519.sign(raw, this.#privateKey);
54
- return cesr.encodeMatter({ code: MatterCode.Ed25519_Sig, raw: sign });
55
- }
56
- async #receipt(request) {
57
- const event = (await request.json());
58
- if (typeof event.i !== "string" || typeof event.d !== "string" || typeof event.s !== "string") {
59
- return new Response("Bad Request", { status: 400 });
60
- }
61
- return this.#createResponse({
62
- event: keri.receipt({ d: event.d, i: event.i, s: event.s }),
63
- signatures: [],
64
- receipts: [{ backer: this.#icp.i, signature: this.#sign(event) }],
65
- timestamp: new Date(),
66
- });
67
- }
68
- /**
69
- * Handle incoming HTTP requests
70
- *
71
- * @param request The incoming HTTP request
72
- */
73
- async fetch(request) {
74
- try {
75
- const url = new URL(request.url);
76
- if (url.pathname.startsWith("/oobi")) {
77
- return await this.#oobi(request);
78
- }
79
- if (url.pathname === "/receipts" && request.method.toUpperCase() === "POST") {
80
- return await this.#receipt(request);
81
- }
82
- return new Response("Not Found", { status: 404 });
83
- }
84
- catch (err) {
85
- // eslint-disable-next-line no-console
86
- console.error("Error handling request:", err);
87
- return new Response("Internal Server Error", { status: 500 });
88
- }
89
- }
90
- }
91
- //# sourceMappingURL=witness.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"witness.js","sourceRoot":"","sources":["../src/witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAoB,IAAI,EAAiB,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAW/F,MAAM,OAAO,OAAO;IACT,WAAW,CAA8B;IACzC,UAAU,CAAS;IACnB,IAAI,CAAc;IAClB,UAAU,CAAS;IAE5B,YAAY,UAA0B,EAAE;QACtC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAEhH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;YACtB,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC;YACpB,EAAE,EAAE,GAAG;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC;YACnC,IAAI,EAAE,SAAS,CAAC,WAAW;YAC3B,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC;YACxF,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IACpG,CAAC;IAED,eAAe,CAAC,OAAwB;QACtC,MAAM,IAAI,GAAG;YACX,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;YAC7B,oBAAoB,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;SACrG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEX,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;YACxB,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,EAAE,cAAc,EAAE,uBAAuB,EAAE;SACrD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAgB;QAC1B,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;YAC3C,OAAO,IAAI,QAAQ,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,IAAI,CAAC,eAAe,CAAC;YAC1B,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,UAAU,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC;YAC7B,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAe;QACnB,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAEjD,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAgB;QAC7B,MAAM,KAAK,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAa,CAAC;QAEjD,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC9F,OAAO,IAAI,QAAQ,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,IAAI,CAAC,eAAe,CAAC;YAC1B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YAC3D,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACjE,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK,CAAC,OAAgB;QAC1B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAEjC,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrC,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;YAED,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;gBAC5E,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC;YAED,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;YAC9C,OAAO,IAAI,QAAQ,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;CACF"}