@animalabs/mcpl-core 0.1.0 → 0.2.1
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/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/methods.d.ts +9 -0
- package/dist/src/methods.d.ts.map +1 -1
- package/dist/src/methods.js.map +1 -1
- package/dist/src/tags.d.ts +113 -0
- package/dist/src/tags.d.ts.map +1 -0
- package/dist/src/tags.js +68 -0
- package/dist/src/tags.js.map +1 -0
- package/package.json +1 -1
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
|
package/dist/src/index.js
CHANGED
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
|
package/dist/src/methods.d.ts
CHANGED
|
@@ -5,12 +5,16 @@
|
|
|
5
5
|
* Property names use camelCase matching the JSON wire format.
|
|
6
6
|
*/
|
|
7
7
|
import type { ContentBlock } from './types.js';
|
|
8
|
+
import type { TagOntology } from './tags.js';
|
|
8
9
|
export interface FeatureSetDeclaration {
|
|
9
10
|
name: string;
|
|
10
11
|
description?: string;
|
|
11
12
|
uses: string[];
|
|
12
13
|
rollback: boolean;
|
|
13
14
|
hostState: boolean;
|
|
15
|
+
/** Optional, open-world tag ontology the events of this feature set may carry
|
|
16
|
+
* (MCPL RFC-001 §5). A hint catalog — hosts MUST tolerate undeclared tags. */
|
|
17
|
+
tagOntology?: TagOntology;
|
|
14
18
|
}
|
|
15
19
|
/** featureSets/update (Host → Server, Notification) */
|
|
16
20
|
export interface FeatureSetsUpdateParams {
|
|
@@ -105,6 +109,9 @@ export interface PushEventParams {
|
|
|
105
109
|
eventId: string;
|
|
106
110
|
timestamp: string;
|
|
107
111
|
origin?: unknown;
|
|
112
|
+
/** Semantic classification the host may route on (MCPL RFC-001). Namespaced,
|
|
113
|
+
* multi-valued, e.g. ["chat:mention","chat:from-human","discord:role-mention"]. */
|
|
114
|
+
tags?: string[];
|
|
108
115
|
payload: PushEventPayload;
|
|
109
116
|
}
|
|
110
117
|
export interface PushEventPayload {
|
|
@@ -266,6 +273,8 @@ export interface IncomingChannelMessage {
|
|
|
266
273
|
timestamp: string;
|
|
267
274
|
content: ContentBlock[];
|
|
268
275
|
metadata?: unknown;
|
|
276
|
+
/** Semantic classification the host may route on (MCPL RFC-001). */
|
|
277
|
+
tags?: string[];
|
|
269
278
|
}
|
|
270
279
|
export interface MessageAuthor {
|
|
271
280
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"methods.d.ts","sourceRoot":"","sources":["../../src/methods.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"methods.d.ts","sourceRoot":"","sources":["../../src/methods.ts"],"names":[],"mappings":"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"}
|
package/dist/src/methods.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"methods.js","sourceRoot":"","sources":["../../src/methods.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"methods.js","sourceRoot":"","sources":["../../src/methods.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAibH,8BAA8B;AAE9B,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,UAAU,EAAE,YAAY;IACxB,mBAAmB,EAAE,oBAAoB;IACzC,oBAAoB,EAAE,qBAAqB;IAC3C,aAAa,EAAE,eAAe;IAC9B,YAAY,EAAE,cAAc;IAC5B,SAAS,EAAE,WAAW;IACtB,cAAc,EAAE,gBAAgB;IAChC,UAAU,EAAE,YAAY;IACxB,wBAAwB,EAAE,yBAAyB;IACnD,uBAAuB,EAAE,wBAAwB;IACjD,iBAAiB,EAAE,mBAAmB;IACtC,eAAe,EAAE,iBAAiB;IAClC,UAAU,EAAE,YAAY;IACxB,iBAAiB,EAAE,mBAAmB;IACtC,gBAAgB,EAAE,kBAAkB;IACpC,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,uBAAuB,EAAE,yBAAyB;IAClD,0BAA0B,EAAE,4BAA4B;IACxD,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,mBAAmB;IACtC,aAAa,EAAE,eAAe;IAC9B,gBAAgB,EAAE,kBAAkB;IACpC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;CAC5B,CAAC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event tags + producer tag ontology (MCPL RFC-001).
|
|
3
|
+
*
|
|
4
|
+
* Tags are a multi-valued, namespaced, *discrete* classification on events
|
|
5
|
+
* (`PushEventParams.tags`, `IncomingChannelMessage.tags`). Producers label what
|
|
6
|
+
* an event is; consumers (hosts) decide how to treat it. A reserved `chat:*`
|
|
7
|
+
* core gives cross-platform portability; per-producer namespaces carry the rest.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Recommended portable wake-treatment vocabulary (RFC-001 §6). The actual wake
|
|
11
|
+
* behavior is host-defined; these names map onto a host's gate behaviors
|
|
12
|
+
* (e.g. immediate→always, mute→skip, throttle→rate_limit, sample→passive_sample).
|
|
13
|
+
*/
|
|
14
|
+
export type TagBehavior = 'immediate' | 'mute' | {
|
|
15
|
+
debounce: number;
|
|
16
|
+
} | {
|
|
17
|
+
throttle: {
|
|
18
|
+
perMs: number;
|
|
19
|
+
};
|
|
20
|
+
} | {
|
|
21
|
+
sample: {
|
|
22
|
+
every: number;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
/** An ordered treatment rule (first-match-wins). Matches on tag sets, composable
|
|
26
|
+
* with the structural axes a host already knows (source/scope/channel). */
|
|
27
|
+
export interface TreatmentRule {
|
|
28
|
+
/** Match if ANY of these tags is present (glob allowed, e.g. `robotics:*`). */
|
|
29
|
+
tagsAny?: string[];
|
|
30
|
+
/** Match only if ALL of these tags are present. */
|
|
31
|
+
tagsAll?: string[];
|
|
32
|
+
/** Match only if NONE of these tags are present. */
|
|
33
|
+
tagsNone?: string[];
|
|
34
|
+
behavior: TagBehavior;
|
|
35
|
+
}
|
|
36
|
+
/** Descriptor for one producer-namespaced tag (RFC-001 §5.1). All optional. */
|
|
37
|
+
export interface TagDescriptor {
|
|
38
|
+
/** Human/agent-readable description. */
|
|
39
|
+
desc?: string;
|
|
40
|
+
/** Group: addressing | sender | content | lifecycle | locus | producer-defined. */
|
|
41
|
+
facet?: string;
|
|
42
|
+
/** Tags this one entails (subsumption; drives implies-expansion, §6.1). */
|
|
43
|
+
implies?: string[];
|
|
44
|
+
/** Per-tag suggested behavior (shorthand for a one-tag rule). */
|
|
45
|
+
defaultTreatment?: TagBehavior;
|
|
46
|
+
stability?: 'stable' | 'experimental' | 'deprecated';
|
|
47
|
+
}
|
|
48
|
+
/** A `key=value` tag family with a suggested value domain (RFC-001 §5.1). */
|
|
49
|
+
export interface KeyedTagDescriptor {
|
|
50
|
+
desc?: string;
|
|
51
|
+
values?: string[];
|
|
52
|
+
/** Ordering hint WITHIN this namespace only — never a cross-server scale. */
|
|
53
|
+
ordered?: boolean;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* A producer's lightweight, open-world tag ontology (RFC-001 §5). A hint
|
|
57
|
+
* catalog, NOT a closed schema — hosts MUST tolerate undeclared tags.
|
|
58
|
+
*/
|
|
59
|
+
export interface TagOntology {
|
|
60
|
+
/** Reserved `chat:*` core tags this server emits (described by the spec, §4). */
|
|
61
|
+
coreTags?: string[];
|
|
62
|
+
/** Descriptors for this server's own-namespace tags. */
|
|
63
|
+
tags?: Record<string, TagDescriptor>;
|
|
64
|
+
/** `key=value` tag families. */
|
|
65
|
+
keyed?: Record<string, KeyedTagDescriptor>;
|
|
66
|
+
/** Suggested treatment rules, seeded BELOW the consumer's own (§6 precedence). */
|
|
67
|
+
defaultTreatment?: TreatmentRule[];
|
|
68
|
+
/** true ⇒ the server may emit further tags in its namespace(s) beyond these. */
|
|
69
|
+
open?: boolean;
|
|
70
|
+
}
|
|
71
|
+
/** Reserved cross-platform messaging core vocabulary (RFC-001 §4). */
|
|
72
|
+
export declare const CHAT_TAGS: {
|
|
73
|
+
readonly addressed: "chat:addressed";
|
|
74
|
+
readonly mention: "chat:mention";
|
|
75
|
+
readonly reply: "chat:reply";
|
|
76
|
+
readonly dm: "chat:dm";
|
|
77
|
+
readonly ambient: "chat:ambient";
|
|
78
|
+
readonly broadcast: "chat:broadcast";
|
|
79
|
+
readonly toSelf: "chat:to-self";
|
|
80
|
+
readonly fromHuman: "chat:from-human";
|
|
81
|
+
readonly fromBot: "chat:from-bot";
|
|
82
|
+
readonly fromSelf: "chat:from-self";
|
|
83
|
+
readonly fromAgent: "chat:from-agent";
|
|
84
|
+
readonly edited: "chat:edited";
|
|
85
|
+
readonly deleted: "chat:deleted";
|
|
86
|
+
readonly reaction: "chat:reaction";
|
|
87
|
+
readonly reactionRemove: "chat:reaction-remove";
|
|
88
|
+
readonly hasImage: "chat:has-image";
|
|
89
|
+
readonly hasAudio: "chat:has-audio";
|
|
90
|
+
readonly hasFile: "chat:has-file";
|
|
91
|
+
readonly hasLink: "chat:has-link";
|
|
92
|
+
readonly command: "chat:command";
|
|
93
|
+
readonly private: "chat:private";
|
|
94
|
+
readonly group: "chat:group";
|
|
95
|
+
readonly thread: "chat:thread";
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Core subsumption defined by the spec (RFC-001 §4/§6.1): producers emit the
|
|
99
|
+
* specific tag and hosts expand to these umbrellas. Merge with any per-server
|
|
100
|
+
* `TagDescriptor.implies` to form the full implication map.
|
|
101
|
+
*/
|
|
102
|
+
export declare const CHAT_TAG_IMPLIES: Record<string, string[]>;
|
|
103
|
+
/**
|
|
104
|
+
* Expand a tag set with its transitive `implies` closure (RFC-001 §6.1). Hosts
|
|
105
|
+
* call this at the event boundary before gate matching, so producers may emit
|
|
106
|
+
* only the most specific tag while consumer rules target umbrellas. Additive
|
|
107
|
+
* (never removes tags); cycles are safe.
|
|
108
|
+
*
|
|
109
|
+
* @param tags the event's emitted tags
|
|
110
|
+
* @param implies merged implication map (e.g. `{...CHAT_TAG_IMPLIES, ...serverOntologyImplies}`)
|
|
111
|
+
*/
|
|
112
|
+
export declare function expandTags(tags: string[], implies?: Record<string, string[]>): string[];
|
|
113
|
+
//# sourceMappingURL=tags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/tags.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;GAIG;AACH,MAAM,MAAM,WAAW,GACnB,WAAW,GACX,MAAM,GACN;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpB;IAAE,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC/B;IAAE,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAElC;4EAC4E;AAC5E,MAAM,WAAW,aAAa;IAC5B,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;CACvB;AAED,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAC/B,SAAS,CAAC,EAAE,QAAQ,GAAG,cAAc,GAAG,YAAY,CAAC;CACtD;AAED,6EAA6E;AAC7E,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACrC,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC3C,kFAAkF;IAClF,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC;IACnC,gFAAgF;IAChF,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,sEAAsE;AACtE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;CAwBZ,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAIrD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAoB,GAAG,MAAM,EAAE,CAUzG"}
|
package/dist/src/tags.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event tags + producer tag ontology (MCPL RFC-001).
|
|
3
|
+
*
|
|
4
|
+
* Tags are a multi-valued, namespaced, *discrete* classification on events
|
|
5
|
+
* (`PushEventParams.tags`, `IncomingChannelMessage.tags`). Producers label what
|
|
6
|
+
* an event is; consumers (hosts) decide how to treat it. A reserved `chat:*`
|
|
7
|
+
* core gives cross-platform portability; per-producer namespaces carry the rest.
|
|
8
|
+
*/
|
|
9
|
+
/** Reserved cross-platform messaging core vocabulary (RFC-001 §4). */
|
|
10
|
+
export const CHAT_TAGS = {
|
|
11
|
+
addressed: 'chat:addressed',
|
|
12
|
+
mention: 'chat:mention',
|
|
13
|
+
reply: 'chat:reply',
|
|
14
|
+
dm: 'chat:dm',
|
|
15
|
+
ambient: 'chat:ambient',
|
|
16
|
+
broadcast: 'chat:broadcast',
|
|
17
|
+
toSelf: 'chat:to-self',
|
|
18
|
+
fromHuman: 'chat:from-human',
|
|
19
|
+
fromBot: 'chat:from-bot',
|
|
20
|
+
fromSelf: 'chat:from-self',
|
|
21
|
+
fromAgent: 'chat:from-agent',
|
|
22
|
+
edited: 'chat:edited',
|
|
23
|
+
deleted: 'chat:deleted',
|
|
24
|
+
reaction: 'chat:reaction',
|
|
25
|
+
reactionRemove: 'chat:reaction-remove',
|
|
26
|
+
hasImage: 'chat:has-image',
|
|
27
|
+
hasAudio: 'chat:has-audio',
|
|
28
|
+
hasFile: 'chat:has-file',
|
|
29
|
+
hasLink: 'chat:has-link',
|
|
30
|
+
command: 'chat:command',
|
|
31
|
+
private: 'chat:private',
|
|
32
|
+
group: 'chat:group',
|
|
33
|
+
thread: 'chat:thread',
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Core subsumption defined by the spec (RFC-001 §4/§6.1): producers emit the
|
|
37
|
+
* specific tag and hosts expand to these umbrellas. Merge with any per-server
|
|
38
|
+
* `TagDescriptor.implies` to form the full implication map.
|
|
39
|
+
*/
|
|
40
|
+
export const CHAT_TAG_IMPLIES = {
|
|
41
|
+
'chat:mention': ['chat:addressed'],
|
|
42
|
+
'chat:reply': ['chat:addressed'],
|
|
43
|
+
'chat:dm': ['chat:addressed'],
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Expand a tag set with its transitive `implies` closure (RFC-001 §6.1). Hosts
|
|
47
|
+
* call this at the event boundary before gate matching, so producers may emit
|
|
48
|
+
* only the most specific tag while consumer rules target umbrellas. Additive
|
|
49
|
+
* (never removes tags); cycles are safe.
|
|
50
|
+
*
|
|
51
|
+
* @param tags the event's emitted tags
|
|
52
|
+
* @param implies merged implication map (e.g. `{...CHAT_TAG_IMPLIES, ...serverOntologyImplies}`)
|
|
53
|
+
*/
|
|
54
|
+
export function expandTags(tags, implies = CHAT_TAG_IMPLIES) {
|
|
55
|
+
const out = new Set();
|
|
56
|
+
const stack = [...tags];
|
|
57
|
+
while (stack.length) {
|
|
58
|
+
const t = stack.pop();
|
|
59
|
+
if (out.has(t))
|
|
60
|
+
continue;
|
|
61
|
+
out.add(t);
|
|
62
|
+
for (const u of implies[t] ?? [])
|
|
63
|
+
if (!out.has(u))
|
|
64
|
+
stack.push(u);
|
|
65
|
+
}
|
|
66
|
+
return [...out];
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=tags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/tags.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgEH,sEAAsE;AACtE,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,SAAS,EAAE,gBAAgB;IAC3B,OAAO,EAAE,cAAc;IACvB,KAAK,EAAE,YAAY;IACnB,EAAE,EAAE,SAAS;IACb,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,gBAAgB;IAC3B,MAAM,EAAE,cAAc;IACtB,SAAS,EAAE,iBAAiB;IAC5B,OAAO,EAAE,eAAe;IACxB,QAAQ,EAAE,gBAAgB;IAC1B,SAAS,EAAE,iBAAiB;IAC5B,MAAM,EAAE,aAAa;IACrB,OAAO,EAAE,cAAc;IACvB,QAAQ,EAAE,eAAe;IACzB,cAAc,EAAE,sBAAsB;IACtC,QAAQ,EAAE,gBAAgB;IAC1B,QAAQ,EAAE,gBAAgB;IAC1B,OAAO,EAAE,eAAe;IACxB,OAAO,EAAE,eAAe;IACxB,OAAO,EAAE,cAAc;IACvB,OAAO,EAAE,cAAc;IACvB,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,aAAa;CACb,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA6B;IACxD,cAAc,EAAE,CAAC,gBAAgB,CAAC;IAClC,YAAY,EAAE,CAAC,gBAAgB,CAAC;IAChC,SAAS,EAAE,CAAC,gBAAgB,CAAC;CAC9B,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,IAAc,EAAE,UAAoC,gBAAgB;IAC7F,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACxB,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;QACvB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,SAAS;QACzB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACX,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAClB,CAAC"}
|