@aaronsb/google-workspace-mcp 4.2.0 → 4.3.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 +6 -5
- package/build/accounts/auth.d.ts +18 -2
- package/build/accounts/auth.js +31 -7
- package/build/accounts/auth.js.map +1 -1
- package/build/accounts/credentials.d.ts +20 -0
- package/build/accounts/credentials.js.map +1 -1
- package/build/accounts/oauth.d.ts +51 -1
- package/build/accounts/oauth.js +69 -5
- package/build/accounts/oauth.js.map +1 -1
- package/build/accounts/registry.d.ts +2 -1
- package/build/accounts/registry.js +2 -2
- package/build/accounts/registry.js.map +1 -1
- package/build/factory/manifest/calendar.yaml +22 -22
- package/build/factory/manifest/contacts.yaml +247 -0
- package/build/factory/manifest/drive.yaml +16 -16
- package/build/factory/manifest/gmail.yaml +18 -18
- package/build/factory/manifest/meet.yaml +91 -13
- package/build/factory/manifest/sheets.yaml +29 -29
- package/build/factory/manifest/tasks.yaml +14 -14
- package/build/factory/patches.js +2 -0
- package/build/factory/patches.js.map +1 -1
- package/build/factory/safety.js +4 -0
- package/build/factory/safety.js.map +1 -1
- package/build/google/descriptor.d.ts +8 -0
- package/build/google/descriptor.js +9 -2
- package/build/google/descriptor.js.map +1 -1
- package/build/google/descriptor.json +1883 -0
- package/build/google/methods.d.ts +4 -1
- package/build/server/handler.js +16 -1
- package/build/server/handler.js.map +1 -1
- package/build/server/handlers/accounts.js +100 -6
- package/build/server/handlers/accounts.js.map +1 -1
- package/build/server/queue.d.ts +1 -1
- package/build/server/queue.js +16 -1
- package/build/server/queue.js.map +1 -1
- package/build/server/tools.js +31 -1
- package/build/server/tools.js.map +1 -1
- package/build/services/calendar/patch.js +62 -8
- package/build/services/calendar/patch.js.map +1 -1
- package/build/services/contacts/patch.d.ts +31 -0
- package/build/services/contacts/patch.js +496 -0
- package/build/services/contacts/patch.js.map +1 -0
- package/build/services/meet/patch.js +202 -0
- package/build/services/meet/patch.js.map +1 -1
- package/build/version.d.ts +1 -1
- package/build/version.js +1 -1
- package/package.json +1 -1
|
@@ -19,12 +19,14 @@ export type DriveMethod = 'about.get' | 'accessproposals.get' | 'accessproposals
|
|
|
19
19
|
export type GmailMethod = 'users.drafts.create' | 'users.drafts.delete' | 'users.drafts.get' | 'users.drafts.list' | 'users.drafts.send' | 'users.drafts.update' | 'users.getProfile' | 'users.history.list' | 'users.labels.create' | 'users.labels.delete' | 'users.labels.get' | 'users.labels.list' | 'users.labels.patch' | 'users.labels.update' | 'users.messages.attachments.get' | 'users.messages.batchDelete' | 'users.messages.batchModify' | 'users.messages.delete' | 'users.messages.get' | 'users.messages.import' | 'users.messages.insert' | 'users.messages.list' | 'users.messages.modify' | 'users.messages.send' | 'users.messages.trash' | 'users.messages.untrash' | 'users.settings.cse.identities.create' | 'users.settings.cse.identities.delete' | 'users.settings.cse.identities.get' | 'users.settings.cse.identities.list' | 'users.settings.cse.identities.patch' | 'users.settings.cse.keypairs.create' | 'users.settings.cse.keypairs.disable' | 'users.settings.cse.keypairs.enable' | 'users.settings.cse.keypairs.get' | 'users.settings.cse.keypairs.list' | 'users.settings.cse.keypairs.obliterate' | 'users.settings.delegates.create' | 'users.settings.delegates.delete' | 'users.settings.delegates.get' | 'users.settings.delegates.list' | 'users.settings.filters.create' | 'users.settings.filters.delete' | 'users.settings.filters.get' | 'users.settings.filters.list' | 'users.settings.forwardingAddresses.create' | 'users.settings.forwardingAddresses.delete' | 'users.settings.forwardingAddresses.get' | 'users.settings.forwardingAddresses.list' | 'users.settings.getAutoForwarding' | 'users.settings.getImap' | 'users.settings.getLanguage' | 'users.settings.getPop' | 'users.settings.getVacation' | 'users.settings.sendAs.create' | 'users.settings.sendAs.delete' | 'users.settings.sendAs.get' | 'users.settings.sendAs.list' | 'users.settings.sendAs.patch' | 'users.settings.sendAs.smimeInfo.delete' | 'users.settings.sendAs.smimeInfo.get' | 'users.settings.sendAs.smimeInfo.insert' | 'users.settings.sendAs.smimeInfo.list' | 'users.settings.sendAs.smimeInfo.setDefault' | 'users.settings.sendAs.update' | 'users.settings.sendAs.verify' | 'users.settings.updateAutoForwarding' | 'users.settings.updateImap' | 'users.settings.updateLanguage' | 'users.settings.updatePop' | 'users.settings.updateVacation' | 'users.stop' | 'users.threads.delete' | 'users.threads.get' | 'users.threads.list' | 'users.threads.modify' | 'users.threads.trash' | 'users.threads.untrash' | 'users.watch';
|
|
20
20
|
/** 18 methods declared by Google for meet v2. */
|
|
21
21
|
export type MeetMethod = 'conferenceRecords.get' | 'conferenceRecords.list' | 'conferenceRecords.participants.get' | 'conferenceRecords.participants.list' | 'conferenceRecords.participants.participantSessions.get' | 'conferenceRecords.participants.participantSessions.list' | 'conferenceRecords.recordings.get' | 'conferenceRecords.recordings.list' | 'conferenceRecords.smartNotes.get' | 'conferenceRecords.smartNotes.list' | 'conferenceRecords.transcripts.entries.get' | 'conferenceRecords.transcripts.entries.list' | 'conferenceRecords.transcripts.get' | 'conferenceRecords.transcripts.list' | 'spaces.create' | 'spaces.endActiveConference' | 'spaces.get' | 'spaces.patch';
|
|
22
|
+
/** 24 methods declared by Google for people v1. */
|
|
23
|
+
export type PeopleMethod = 'contactGroups.batchGet' | 'contactGroups.create' | 'contactGroups.delete' | 'contactGroups.get' | 'contactGroups.list' | 'contactGroups.members.modify' | 'contactGroups.update' | 'otherContacts.copyOtherContactToMyContactsGroup' | 'otherContacts.list' | 'otherContacts.search' | 'people.batchCreateContacts' | 'people.batchDeleteContacts' | 'people.batchUpdateContacts' | 'people.connections.list' | 'people.createContact' | 'people.deleteContact' | 'people.deleteContactPhoto' | 'people.get' | 'people.getBatchGet' | 'people.listDirectoryPeople' | 'people.searchContacts' | 'people.searchDirectoryPeople' | 'people.updateContact' | 'people.updateContactPhoto';
|
|
22
24
|
/** 17 methods declared by Google for sheets v4. */
|
|
23
25
|
export type SheetsMethod = 'spreadsheets.batchUpdate' | 'spreadsheets.create' | 'spreadsheets.developerMetadata.get' | 'spreadsheets.developerMetadata.search' | 'spreadsheets.get' | 'spreadsheets.getByDataFilter' | 'spreadsheets.sheets.copyTo' | 'spreadsheets.values.append' | 'spreadsheets.values.batchClear' | 'spreadsheets.values.batchClearByDataFilter' | 'spreadsheets.values.batchGet' | 'spreadsheets.values.batchGetByDataFilter' | 'spreadsheets.values.batchUpdate' | 'spreadsheets.values.batchUpdateByDataFilter' | 'spreadsheets.values.clear' | 'spreadsheets.values.get' | 'spreadsheets.values.update';
|
|
24
26
|
/** 14 methods declared by Google for tasks v1. */
|
|
25
27
|
export type TasksMethod = 'tasklists.delete' | 'tasklists.get' | 'tasklists.insert' | 'tasklists.list' | 'tasklists.patch' | 'tasklists.update' | 'tasks.clear' | 'tasks.delete' | 'tasks.get' | 'tasks.insert' | 'tasks.list' | 'tasks.move' | 'tasks.patch' | 'tasks.update';
|
|
26
28
|
/** Every service in the descriptor. */
|
|
27
|
-
export type GoogleService = 'calendar' | 'docs' | 'drive' | 'gmail' | 'meet' | 'sheets' | 'tasks';
|
|
29
|
+
export type GoogleService = 'calendar' | 'docs' | 'drive' | 'gmail' | 'meet' | 'people' | 'sheets' | 'tasks';
|
|
28
30
|
/** service -> the methods it declares. Indexing this is what makes `call()` safe. */
|
|
29
31
|
export interface ServiceMethods {
|
|
30
32
|
calendar: CalendarMethod;
|
|
@@ -32,6 +34,7 @@ export interface ServiceMethods {
|
|
|
32
34
|
drive: DriveMethod;
|
|
33
35
|
gmail: GmailMethod;
|
|
34
36
|
meet: MeetMethod;
|
|
37
|
+
people: PeopleMethod;
|
|
35
38
|
sheets: SheetsMethod;
|
|
36
39
|
tasks: TasksMethod;
|
|
37
40
|
}
|
package/build/server/handler.js
CHANGED
|
@@ -26,12 +26,27 @@ const domainHandlers = {
|
|
|
26
26
|
for (const tool of generatedTools) {
|
|
27
27
|
domainHandlers[tool.schema.name] = tool.handler;
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* What a queued operation may call: every tool, including `queue_operations`.
|
|
31
|
+
*
|
|
32
|
+
* A queue is a tool call like any other, so the set of things it can name is the set of
|
|
33
|
+
* tools — no carve-out, and nothing for a caller to discover by being refused. Nesting is
|
|
34
|
+
* bounded by depth inside handleQueue rather than by omission here, so the limit arrives
|
|
35
|
+
* as a sentence saying what it is instead of an "Unknown tool" for something the server
|
|
36
|
+
* plainly advertises.
|
|
37
|
+
*/
|
|
38
|
+
function queueableHandlers(depth) {
|
|
39
|
+
return {
|
|
40
|
+
...domainHandlers,
|
|
41
|
+
queue_operations: (params) => handleQueue(params, queueableHandlers(depth + 1), depth + 1),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
29
44
|
export async function handleToolCall(toolName, params) {
|
|
30
45
|
const currentEpoch = advanceEpoch();
|
|
31
46
|
const tracker = getSessionTracker();
|
|
32
47
|
// Queue wraps the domain handlers (each queued op also advances the epoch)
|
|
33
48
|
if (toolName === 'queue_operations') {
|
|
34
|
-
const result = await handleQueue(params,
|
|
49
|
+
const result = await handleQueue(params, queueableHandlers(1), 1);
|
|
35
50
|
const queueEmail = extractEmailFromQueue(params);
|
|
36
51
|
if (queueEmail) {
|
|
37
52
|
await tracker.ensureBaseline(queueEmail, currentEpoch);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/server/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAOvE,6DAA6D;AAC7D,gEAAgE;AAChE,mEAAmE;AAEnE,IAAI,KAAK,GAAG,CAAC,CAAC;AAEd,2BAA2B;AAC3B,MAAM,UAAU,QAAQ;IACtB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,YAAY;IAC1B,OAAO,EAAE,KAAK,CAAC;AACjB,CAAC;AAED,6DAA6D;AAE7D,MAAM,cAAc,GAAgC;IAClD,eAAe,EAAE,cAAc;IAC/B,gBAAgB,EAAE,eAAe;IACjC,iBAAiB,EAAE,gBAAgB;CACpC,CAAC;AAEF,sCAAsC;AACtC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;IAClC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,MAA+B;IAE/B,MAAM,YAAY,GAAG,YAAY,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IAEpC,2EAA2E;IAC3E,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/server/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { listAccounts, removeAccount, authenticateAndAddAccount } from '../../accounts/registry.js';
|
|
2
2
|
import { checkAccountStatus, reauthWithServices } from '../../accounts/auth.js';
|
|
3
|
+
import { scopesForServices, ALL_SERVICES } from '../../accounts/oauth.js';
|
|
3
4
|
import { getAccessToken, invalidateToken } from '../../accounts/token-service.js';
|
|
4
5
|
import { nextSteps } from '../formatting/next-steps.js';
|
|
5
6
|
import { getActivePolicies } from '../../factory/safety.js';
|
|
@@ -24,6 +25,19 @@ function formatAccountList(accounts) {
|
|
|
24
25
|
function formatStatus(status) {
|
|
25
26
|
const valid = status.tokenValid ? '[x] Token valid' : '[ ] Token invalid';
|
|
26
27
|
const refresh = status.hasRefreshToken ? '[x] Has refresh token' : '[ ] No refresh token';
|
|
28
|
+
// Say what this account can DO, not just which scope strings it holds — the scope list
|
|
29
|
+
// below is accurate and takes a Google reference to read.
|
|
30
|
+
//
|
|
31
|
+
// `access` is the level ASKED FOR. An account confirmed through confirmWriteAccess is
|
|
32
|
+
// stored as 'read' while holding write scopes for the services that had no read-only
|
|
33
|
+
// option, so the declared level alone would assert something false. The services that
|
|
34
|
+
// stayed writable are stored with it and named here.
|
|
35
|
+
const stillWritable = status.stillAllowWrites ?? [];
|
|
36
|
+
const level = status.access === 'read'
|
|
37
|
+
? (stillWritable.length
|
|
38
|
+
? `[~] Read-only, except: **${stillWritable.join(', ')}** — those have no read-only option and can still be changed`
|
|
39
|
+
: '[x] Read-only — this account cannot send, edit or delete')
|
|
40
|
+
: '[x] Full access — this account can create, edit and delete';
|
|
27
41
|
const scopeList = status.scopes.length > 0
|
|
28
42
|
? status.scopes.map(s => `- ${s.replace('https://www.googleapis.com/auth/', '')}`).join('\n')
|
|
29
43
|
: '(no scopes)';
|
|
@@ -33,6 +47,7 @@ function formatStatus(status) {
|
|
|
33
47
|
'',
|
|
34
48
|
valid,
|
|
35
49
|
refresh,
|
|
50
|
+
level,
|
|
36
51
|
`**Scopes (${status.scopeCount}):**`,
|
|
37
52
|
scopeList,
|
|
38
53
|
].join('\n'),
|
|
@@ -41,9 +56,66 @@ function formatStatus(status) {
|
|
|
41
56
|
tokenValid: status.tokenValid,
|
|
42
57
|
scopeCount: status.scopeCount,
|
|
43
58
|
scopes: status.scopes,
|
|
59
|
+
access: status.access,
|
|
60
|
+
stillAllowWrites: status.stillAllowWrites ?? [],
|
|
44
61
|
},
|
|
45
62
|
};
|
|
46
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Read the requested access level, rejecting anything that is not one of the two.
|
|
66
|
+
*
|
|
67
|
+
* This was a cast. The server registers tools through the low-level
|
|
68
|
+
* `setRequestHandler(CallToolRequestSchema, …)` path, which does NOT validate arguments
|
|
69
|
+
* against `inputSchema` — the enum in tools.ts is advertisement, not enforcement. So
|
|
70
|
+
* `access: 'read-only'` (a plausible thing to send, since the description says "read-only"
|
|
71
|
+
* three times) fell through `|| 'readwrite'` unchanged, requested FULL scopes, produced an
|
|
72
|
+
* empty stillAllowWrites, skipped the confirmation gate entirely, and wrote a credential
|
|
73
|
+
* claiming read. Asking for read and silently receiving write is the one thing this
|
|
74
|
+
* feature exists to prevent.
|
|
75
|
+
*/
|
|
76
|
+
function requestedAccess(params) {
|
|
77
|
+
const raw = params.access ?? 'readwrite';
|
|
78
|
+
if (raw !== 'read' && raw !== 'readwrite') {
|
|
79
|
+
throw new Error(`access must be 'read' or 'readwrite', got '${String(raw)}'. ` +
|
|
80
|
+
`Use 'read' for an account that should only look things up.`);
|
|
81
|
+
}
|
|
82
|
+
return raw;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Stop before the browser opens when read-only access was asked for and some services
|
|
86
|
+
* cannot provide it.
|
|
87
|
+
*
|
|
88
|
+
* Reporting this afterwards is too late: by then the token exists carrying write
|
|
89
|
+
* permissions, and taking it back means a manual trip to Google's permissions page. So
|
|
90
|
+
* the first call returns this instead of authorizing anything, and the caller either
|
|
91
|
+
* confirms or drops those services from the list.
|
|
92
|
+
*
|
|
93
|
+
* Returns null when there is nothing to warn about.
|
|
94
|
+
*/
|
|
95
|
+
function writeAccessWarning(stillAllowWrites, params, retry,
|
|
96
|
+
/**
|
|
97
|
+
* `authenticate` has no `services` parameter — it always requests every service — so
|
|
98
|
+
* telling its caller to drop one from `services` is advice they cannot take. That path
|
|
99
|
+
* gets pointed at `scopes`, which does take a list.
|
|
100
|
+
*/
|
|
101
|
+
canNarrowServices) {
|
|
102
|
+
if (stillAllowWrites.length === 0)
|
|
103
|
+
return null;
|
|
104
|
+
if (params.confirmWriteAccess === true)
|
|
105
|
+
return null;
|
|
106
|
+
const names = stillAllowWrites.join(', ');
|
|
107
|
+
return {
|
|
108
|
+
text: `Read-only access was requested, but Google has no read-only permission for: **${names}**.\n\n` +
|
|
109
|
+
`Authorizing anyway would let this account change ${stillAllowWrites.length === 1 ? 'that service' : 'those services'}, ` +
|
|
110
|
+
`not just read from ${stillAllowWrites.length === 1 ? 'it' : 'them'}. Nothing has been authorized yet.\n\n` +
|
|
111
|
+
`Either:\n` +
|
|
112
|
+
(canNarrowServices
|
|
113
|
+
? `- Leave ${names} out of \`services\` and re-run, to keep this account read-only.\n`
|
|
114
|
+
: `- Authorize with \`operation: 'scopes'\` instead, listing only the services you want read-only.\n`) +
|
|
115
|
+
`- Or re-run with \`confirmWriteAccess: true\` to accept it: ${retry}\n`,
|
|
116
|
+
refs: { status: 'needs-confirmation', stillAllowWrites },
|
|
117
|
+
};
|
|
118
|
+
}
|
|
47
119
|
export async function handleAccounts(params) {
|
|
48
120
|
const operation = params.operation;
|
|
49
121
|
switch (operation) {
|
|
@@ -72,13 +144,24 @@ export async function handleAccounts(params) {
|
|
|
72
144
|
}
|
|
73
145
|
const category = params.category || 'personal';
|
|
74
146
|
const description = params.description;
|
|
75
|
-
const
|
|
147
|
+
const access = requestedAccess(params);
|
|
148
|
+
// Check what this access level would actually grant BEFORE opening a browser.
|
|
149
|
+
const warning = writeAccessWarning(scopesForServices(ALL_SERVICES, access).stillAllowWrites, params, `manage_accounts {"operation":"authenticate","access":"read","confirmWriteAccess":true}`, false);
|
|
150
|
+
if (warning)
|
|
151
|
+
return warning;
|
|
152
|
+
const result = await authenticateAndAddAccount(clientId, clientSecret, category, description, access);
|
|
153
|
+
const grantNote = result.stillAllowWrites?.length
|
|
154
|
+
? `\n\n> Read-only was requested. ${result.stillAllowWrites.join(', ')} had no read-only option and can still be changed by this account.`
|
|
155
|
+
: '';
|
|
76
156
|
const statusText = result.status === 'success'
|
|
77
|
-
? `Account authenticated: **${result.account}
|
|
157
|
+
? `Account authenticated: **${result.account}** (${access === 'read' ? 'read-only' : 'full access'})${grantNote}`
|
|
78
158
|
: `Authentication failed: ${result.error}`;
|
|
79
159
|
return {
|
|
80
160
|
text: statusText + nextSteps('accounts', 'authenticate'),
|
|
81
|
-
refs: {
|
|
161
|
+
refs: {
|
|
162
|
+
status: result.status, account: result.account, email: result.account,
|
|
163
|
+
access, stillAllowWrites: result.stillAllowWrites ?? [],
|
|
164
|
+
},
|
|
82
165
|
};
|
|
83
166
|
}
|
|
84
167
|
case 'remove': {
|
|
@@ -125,13 +208,24 @@ export async function handleAccounts(params) {
|
|
|
125
208
|
if (!clientId || !clientSecret) {
|
|
126
209
|
throw new Error('GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET environment variables are required');
|
|
127
210
|
}
|
|
128
|
-
const
|
|
211
|
+
const access = requestedAccess(params);
|
|
212
|
+
// Same gate as authenticate — say it before the browser opens, not after.
|
|
213
|
+
const warning = writeAccessWarning(scopesForServices(services, access).stillAllowWrites, params, `manage_accounts {"operation":"scopes","email":"${email}","services":"${services}","access":"read","confirmWriteAccess":true}`, true);
|
|
214
|
+
if (warning)
|
|
215
|
+
return warning;
|
|
216
|
+
const result = await reauthWithServices(clientId, clientSecret, services, access);
|
|
217
|
+
const grantNote = result.stillAllowWrites?.length
|
|
218
|
+
? `\n\n> Read-only was requested. ${result.stillAllowWrites.join(', ')} had no read-only option and can still be changed by this account.`
|
|
219
|
+
: '';
|
|
129
220
|
const statusText = result.status === 'success'
|
|
130
|
-
? `Scopes updated for **${result.account}
|
|
221
|
+
? `Scopes updated for **${result.account}**: ${services} (${access === 'read' ? 'read-only' : 'full access'})${grantNote}`
|
|
131
222
|
: `Scope update failed: ${result.error}`;
|
|
132
223
|
return {
|
|
133
224
|
text: statusText + nextSteps('accounts', 'scopes', { email }),
|
|
134
|
-
refs: {
|
|
225
|
+
refs: {
|
|
226
|
+
status: result.status, email: result.account, services,
|
|
227
|
+
access, stillAllowWrites: result.stillAllowWrites ?? [],
|
|
228
|
+
},
|
|
135
229
|
};
|
|
136
230
|
}
|
|
137
231
|
case 'capabilities': {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../src/server/handlers/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,yBAAyB,EAAgB,MAAM,4BAA4B,CAAC;AAClH,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAO3C,SAAS,iBAAiB,CAAC,QAA2B;IACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7C,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,gBAAgB,QAAQ,CAAC,MAAM,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC/D,IAAI,EAAE;YACJ,KAAK,EAAE,QAAQ,CAAC,MAAM;YACtB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;YACpC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK;SAC1B;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../src/server/handlers/accounts.ts"],"names":[],"mappings":"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"}
|
package/build/server/queue.d.ts
CHANGED
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { HandlerResponse } from './handler.js';
|
|
9
9
|
type ToolHandler = (params: Record<string, unknown>) => Promise<HandlerResponse>;
|
|
10
|
-
export declare function handleQueue(params: Record<string, unknown>, handlers: Record<string, ToolHandler
|
|
10
|
+
export declare function handleQueue(params: Record<string, unknown>, handlers: Record<string, ToolHandler>, depth?: number): Promise<HandlerResponse>;
|
|
11
11
|
export {};
|
package/build/server/queue.js
CHANGED
|
@@ -11,7 +11,22 @@ function stripNextSteps(text) {
|
|
|
11
11
|
const idx = text.indexOf(NEXT_STEPS_SEPARATOR);
|
|
12
12
|
return idx >= 0 ? text.slice(0, idx) : text;
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* How deeply queues may nest.
|
|
16
|
+
*
|
|
17
|
+
* A queue is a tool call, so a queue can hold one — that is what makes the tool list
|
|
18
|
+
* uniform, and it is useful: a nested queue with `onError: 'continue'` fails inside
|
|
19
|
+
* itself without bailing its parent. What it cannot be is unbounded, because each level
|
|
20
|
+
* multiplies: 10 operations per queue means this ceiling is 1,000 calls, which is already
|
|
21
|
+
* more than any real workflow and enough to be worth naming.
|
|
22
|
+
*/
|
|
23
|
+
const MAX_QUEUE_DEPTH = 3;
|
|
24
|
+
export async function handleQueue(params, handlers, depth = 1) {
|
|
25
|
+
if (depth > MAX_QUEUE_DEPTH) {
|
|
26
|
+
throw new Error(`queue_operations nested more than ${MAX_QUEUE_DEPTH} deep. Each level multiplies the ` +
|
|
27
|
+
`work — at 10 operations per queue that ceiling is already 1,000 calls. Flatten the ` +
|
|
28
|
+
`inner queues into their parent.`);
|
|
29
|
+
}
|
|
15
30
|
const operations = params.operations;
|
|
16
31
|
if (!Array.isArray(operations) || operations.length === 0) {
|
|
17
32
|
throw new Error('operations array is required and must not be empty');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/server/queue.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAoB5C,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AAExD,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC/C,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAA+B,EAC/B,QAAqC;
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/server/queue.ts"],"names":[],"mappings":"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"}
|
package/build/server/tools.js
CHANGED
|
@@ -22,6 +22,15 @@ const handCodedSchemas = [
|
|
|
22
22
|
category: { type: 'string', enum: ['personal', 'work', 'other'], description: 'For authenticate (default: personal)' },
|
|
23
23
|
description: { type: 'string', description: 'For authenticate — optional label' },
|
|
24
24
|
services: { type: 'string', description: 'For scopes — comma-separated service names (e.g. gmail,drive,calendar,sheets)' },
|
|
25
|
+
access: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
enum: ['read', 'readwrite'],
|
|
28
|
+
description: "How much this account may do. 'readwrite' (default) is full access. 'read' asks Google for read-only permissions instead, so the account can look things up but cannot send, edit or delete. Some services have no read-only option — you will be told which before the browser opens, and nothing is authorized until you confirm.",
|
|
29
|
+
},
|
|
30
|
+
confirmWriteAccess: {
|
|
31
|
+
type: 'boolean',
|
|
32
|
+
description: "Set true to go ahead when 'read' was asked for but some services can only be granted full access. Only needed after a first call has told you which ones.",
|
|
33
|
+
},
|
|
25
34
|
},
|
|
26
35
|
required: ['operation'],
|
|
27
36
|
additionalProperties: false,
|
|
@@ -108,7 +117,11 @@ const handCodedSchemas = [
|
|
|
108
117
|
properties: {
|
|
109
118
|
tool: {
|
|
110
119
|
type: 'string',
|
|
111
|
-
|
|
120
|
+
// Filled in below from the tools this server actually advertises. Written
|
|
121
|
+
// out by hand, this list silently omitted every tool added after it: a new
|
|
122
|
+
// tool worked on its own and was unreachable from a queue, with nothing to
|
|
123
|
+
// say why. manage_contacts was the one that surfaced it.
|
|
124
|
+
enum: [],
|
|
112
125
|
description: 'Tool to call',
|
|
113
126
|
},
|
|
114
127
|
args: {
|
|
@@ -143,6 +156,23 @@ export const toolSchemas = [
|
|
|
143
156
|
...handCodedSchemas,
|
|
144
157
|
...factorySchemas,
|
|
145
158
|
];
|
|
159
|
+
/**
|
|
160
|
+
* Point queue_operations at every tool this server advertises — itself included.
|
|
161
|
+
*
|
|
162
|
+
* Done here rather than in the literal above because the factory schemas are not built
|
|
163
|
+
* until `generatedTools` has run, and queue_operations is declared alongside the
|
|
164
|
+
* hand-coded tools that come first.
|
|
165
|
+
*
|
|
166
|
+
* There is no carve-out. A queue is a tool call, so the tools a queue may name are the
|
|
167
|
+
* tools; nesting is bounded by depth in handleQueue, which answers with a sentence saying
|
|
168
|
+
* what the limit is, rather than by omission here, which would answer a plainly
|
|
169
|
+
* advertised tool with "Unknown tool".
|
|
170
|
+
*/
|
|
171
|
+
const queueTool = handCodedSchemas.find(t => t.name === 'queue_operations');
|
|
172
|
+
if (queueTool) {
|
|
173
|
+
const operations = queueTool.inputSchema.properties.operations;
|
|
174
|
+
operations.items.properties.tool.enum = toolSchemas.map(t => t.name);
|
|
175
|
+
}
|
|
146
176
|
export function getToolSchema(name) {
|
|
147
177
|
return toolSchemas.find(t => t.name === name);
|
|
148
178
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/server/tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAQxD,qDAAqD;AACrD,MAAM,gBAAgB,GAAiB;IACrC;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,sIAAsI;QACnJ,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,CAAC;oBACvF,WAAW,EAAE,kTAAkT;iBAChU;gBACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8CAA8C,EAAE;gBACtF,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,sCAAsC,EAAE;gBACtH,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE;gBACjF,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+EAA+E,EAAE;
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/server/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -146,6 +146,39 @@ function formatAgenda(events, window) {
|
|
|
146
146
|
},
|
|
147
147
|
};
|
|
148
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* Fields Google owns. events.update REPLACES the resource, so the existing event is read
|
|
151
|
+
* and echoed back — but these are server-generated and must not be echoed with it.
|
|
152
|
+
*/
|
|
153
|
+
const READ_ONLY_EVENT_FIELDS = [
|
|
154
|
+
'kind', 'etag', 'id', 'htmlLink', 'created', 'updated', 'iCalUID', 'sequence',
|
|
155
|
+
'creator', 'organizer', 'hangoutLink', 'conferenceData', 'eventType',
|
|
156
|
+
];
|
|
157
|
+
/**
|
|
158
|
+
* Remove an event's Meet link, preserving everything else about the event.
|
|
159
|
+
*
|
|
160
|
+
* The only call that removes a conference is a full events.update omitting
|
|
161
|
+
* conferenceData — patch accepts `null` and `{}` with a 200 and changes nothing
|
|
162
|
+
* (measured). A full update replaces the resource, so anything not echoed back is
|
|
163
|
+
* DESTROYED: read the event, drop the server-owned fields, layer the caller's changes on
|
|
164
|
+
* top, and send the result.
|
|
165
|
+
*
|
|
166
|
+
* `conferenceDataVersion: 1` is required for the omission to be honoured as a removal
|
|
167
|
+
* rather than ignored as an unmanaged field.
|
|
168
|
+
*/
|
|
169
|
+
async function removeMeetLink(calendarId, eventId, changes, account) {
|
|
170
|
+
const existing = await call('calendar', 'events.get', { calendarId, eventId }, { account });
|
|
171
|
+
const preserved = { ...existing };
|
|
172
|
+
for (const field of READ_ONLY_EVENT_FIELDS)
|
|
173
|
+
delete preserved[field];
|
|
174
|
+
return await call('calendar', 'events.update', {
|
|
175
|
+
calendarId,
|
|
176
|
+
eventId,
|
|
177
|
+
conferenceDataVersion: 1,
|
|
178
|
+
...preserved,
|
|
179
|
+
...changes,
|
|
180
|
+
}, { account });
|
|
181
|
+
}
|
|
149
182
|
export const calendarPatch = {
|
|
150
183
|
beforeExecute: {
|
|
151
184
|
// Default the range to "from the start of today" when the caller gave none.
|
|
@@ -355,9 +388,25 @@ export const calendarPatch = {
|
|
|
355
388
|
}
|
|
356
389
|
// Build --params: note the conferenceDataVersion=1 requirement when creating a Meet link.
|
|
357
390
|
const queryParams = { calendarId, eventId };
|
|
358
|
-
// Optional Meet link
|
|
359
|
-
//
|
|
360
|
-
|
|
391
|
+
// Optional Meet link.
|
|
392
|
+
//
|
|
393
|
+
// ADDING is a patch: conferenceData.createRequest plus conferenceDataVersion=1.
|
|
394
|
+
//
|
|
395
|
+
// REMOVING is not, and the comment that used to sit here said Google forbids it.
|
|
396
|
+
// Measured against live Google, that is not what happens: events.patch with
|
|
397
|
+
// `conferenceData: null` returns 200 and leaves the link in place, and so does
|
|
398
|
+
// `conferenceData: {}`. Removal works only through a FULL events.update that omits
|
|
399
|
+
// conferenceData. Both silent-success shapes, indistinguishable from a refusal —
|
|
400
|
+
// which is presumably how the claim survived unchallenged.
|
|
401
|
+
//
|
|
402
|
+
// events.update REPLACES the resource, so the existing event has to be read and
|
|
403
|
+
// echoed back. Skipping that is not a style question: a naive update during this
|
|
404
|
+
// investigation wiped the probe event's `location` without a word.
|
|
405
|
+
//
|
|
406
|
+
// None of which the agent should have to know. `meet: false` removes the link;
|
|
407
|
+
// the read-modify-write lives here. See removeMeetLink below.
|
|
408
|
+
const removingMeet = params.meet === false;
|
|
409
|
+
if (params.meet === true) {
|
|
361
410
|
const requestId = `meet-${eventId}-${Date.now()}`;
|
|
362
411
|
body.conferenceData = {
|
|
363
412
|
createRequest: {
|
|
@@ -367,13 +416,18 @@ export const calendarPatch = {
|
|
|
367
416
|
};
|
|
368
417
|
queryParams.conferenceDataVersion = 1;
|
|
369
418
|
}
|
|
370
|
-
|
|
419
|
+
// Removing the Meet link IS a change, even with no other field set. It used to
|
|
420
|
+
// fall through to this guard and report "no field to change" for a request that
|
|
421
|
+
// named one.
|
|
422
|
+
if (Object.keys(body).length === 0 && !removingMeet) {
|
|
371
423
|
throw new Error('update requires at least one field to change: summary, start, end, description, location, attendees, or meet');
|
|
372
424
|
}
|
|
373
|
-
const data =
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
425
|
+
const data = removingMeet
|
|
426
|
+
? await removeMeetLink(calendarId, eventId, body, account)
|
|
427
|
+
: await call('calendar', 'events.patch', {
|
|
428
|
+
...queryParams,
|
|
429
|
+
...body,
|
|
430
|
+
}, { account });
|
|
377
431
|
const changed = Object.keys(body);
|
|
378
432
|
const meetLink = data.hangoutLink ? `\n**Meet:** ${data.hangoutLink}` : '';
|
|
379
433
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/services/calendar/patch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/services/calendar/patch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAIlE,8DAA8D;AAC9D,SAAS,kBAAkB,CAAC,IAAa;IACvC,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAmC,CAAC;IAEnE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;IAC7D,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC5B,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,WAAW,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,OAAO,GAAG,OAAO,GAAG,OAAO,MAAM,IAAI,MAAM,EAAE,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,iBAAiB,KAAK,CAAC,MAAM,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC7D,IAAI,EAAE;YACJ,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;YACtC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;SAC9D;KACF,CAAC;AACJ,CAAC;AAED,oDAAoD;AACpD,SAAS,2BAA2B,CAAC,IAAa,EAAE,GAAiB;IACnE,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,UAAU,GAAI,GAAG,CAAC,MAAM,CAAC,UAAqB,IAAI,SAAS,CAAC;IAElE,8EAA8E;IAC9E,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC;IAE7C,iDAAiD;IACjD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAC/B,YAAY,EACZ,wBAAwB,UAAU,GAAG,CACtC,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+DAA+D;AAC/D,SAAS,cAAc,CAAC,IAAa,EAAE,GAAiB;IACtD,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,CAAyH,CAAC;IAEjK,MAAM,KAAK,GAAa,CAAC,mBAAmB,CAAC,CAAC;IAC9C,MAAM,OAAO,GAA4D,EAAE,CAAC;IAE5E,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACtD,6DAA6D;QAC7D,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,0BAA0B,OAAO,GAAG,CAAC,CAAC;YAC3D,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,2BAA2B,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,IAAI,CAAC,MAAM,cAAc,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrF,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtH,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClH,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,MAAM,GAAG,EAAE,CAAC,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,EAAE;YACJ,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YACjC,UAAU,EAAE,OAAO;YACnB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO;YAC3B,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO;SAC5B;KACF,CAAC;AACJ,CAAC;AAeD;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,MAA+B;IACnD,MAAM,UAAU,GAAG,CAAC,UAAkB,EAAQ,EAAE;QAC9C,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;QACpC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACvB,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC3D,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;IACxF,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;QACzD,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;AAC3F,CAAC;AAED,mFAAmF;AACnF,SAAS,YAAY,CAAC,MAAqB,EAAE,MAA4C;IACvF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;SACrE,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,CAAC,CAAc,EAAE,EAAE,CAC9B,CAAC,CAAC,MAAM;QACN,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1G,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACvB,UAAU,GAAG,GAAG,CAAC;YACjB,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;gBACpE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS;aAChD,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO;QACL,IAAI,EAAE,cAAc,MAAM,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAClG,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM,CAAC,MAAM;YACpB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACtB,yEAAyE;YACzE,uEAAuE;YACvE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;SACxF;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,sBAAsB,GAAG;IAC7B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU;IAC7E,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW;CACrE,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,cAAc,CAC3B,UAAkB,EAClB,OAAe,EACf,OAAgC,EAChC,OAAe;IAEf,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,YAAY,EAClD,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAA4B,CAAC;IAEnE,MAAM,SAAS,GAA4B,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC3D,KAAK,MAAM,KAAK,IAAI,sBAAsB;QAAE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;IAEpE,OAAO,MAAM,IAAI,CAAC,UAAU,EAAE,eAAe,EAAE;QAC7C,UAAU;QACV,OAAO;QACP,qBAAqB,EAAE,CAAC;QACxB,GAAG,SAAS;QACZ,GAAG,OAAO;KACX,EAAE,EAAE,OAAO,EAAE,CAA4B,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,aAAa,EAAE;QACb,4EAA4E;QAC5E,EAAE;QACF,kEAAkE;QAClE,kEAAkE;QAClE,yEAAyE;QACzE,yDAAyD;QACzD,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACrB,IAAI,MAAM,CAAC,OAAO;gBAAE,OAAO,MAAM,CAAC;YAClC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5F,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;QAC5C,CAAC;KACF;IAED,UAAU,EAAE,CAAC,IAAa,EAAE,GAAiB,EAAE,EAAE;QAC/C,QAAQ,GAAG,CAAC,SAAS,EAAE,CAAC;YACtB,KAAK,WAAW;gBACd,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAClC;gBACE,OAAO,2BAA2B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD,YAAY,EAAE,CAAC,IAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;IAExD,cAAc,EAAE;QACd;;;;;;;;;;WAUG;QACH,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAA4B,EAAE;YAC1D,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YAEpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAA4B,CAAC;YACxG,IAAI,SAAS,GAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAoC;iBACtE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAEvB,wEAAwE;YACxE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;gBACvD,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACjC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM;oBACrC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC1D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC3B,OAAO;wBACL,IAAI,EAAE,wBAAwB,MAAM,CAAC,UAAU,kDAAkD;wBACjG,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;qBACnB,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBAChE,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAClC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,UAAU,CAAC,CAAC;gBACvD,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE;wBAChD,UAAU;wBACV,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,YAAY,EAAE,IAAI,EAAW,oCAAoC;wBACjE,OAAO,EAAE,WAAW;qBACrB,EAAE,EAAE,OAAO,EAAE,CAA4B,CAAC;oBAE3C,OAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAoC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAe,EAAE;wBAClF,MAAM,KAAK,GAAG,CAAC,CAAC,KAAyD,CAAC;wBAC1E,MAAM,GAAG,GAAG,CAAC,CAAC,GAAuD,CAAC;wBACtE,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC;wBAChC,OAAO;4BACL,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;4BACtB,UAAU;4BACV,YAAY;4BACZ,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,YAAY,CAAC;4BAC1C,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;4BAClC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,IAAI,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC;4BACnD,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC;4BAC7C,MAAM;yBACP,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,sEAAsE;oBACtE,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACtF,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC,CAAC;YAEJ,2EAA2E;YAC3E,gDAAgD;YAChD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAEjF,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC9C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,QAAQ,CAAC,IAAI,IAAI,WAAW,QAAQ,CAAC,MAAM,mCAAmC;oBAC5E,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7C,QAAQ,CAAC,IAAI,GAAG,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC;YACtE,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAA4B,EAAE;YAC5D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAEjD,yEAAyE;YACzE,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YACxC,MAAM,KAAK,GAA0B,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAAC,CAAC,CAAC,CAAC,CAAC;YAE7F,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC3F,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC;YACH,CAAC;YACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;oBACzF,OAAO,CAAC,EAAE,CAAC,CAAC;gBACd,CAAC;YACH,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAChG,OAAO,cAAc,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAA4B,EAAE;YAC1D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC7C,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACzC,MAAM,UAAU,GAAI,MAAM,CAAC,UAAqB,IAAI,SAAS,CAAC;YAE9D,8EAA8E;YAC9E,MAAM,IAAI,GAA4B;gBACpC,UAAU;gBACV,OAAO;gBACP,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC1B,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE;aACvB,CAAC;YACF,IAAI,MAAM,CAAC,WAAW;gBAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACtE,IAAI,MAAM,CAAC,QAAQ;gBAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7D,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;qBACtC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;qBAC/C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACjC,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,2EAA2E;gBAC3E,wEAAwE;gBACxE,wEAAwE;gBACxE,sBAAsB;gBACtB,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC;qBACrC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC;qBAC5F,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9B,IAAI,CAAC,cAAc,GAAG;oBACpB,aAAa,EAAE;wBACb,SAAS,EAAE,WAAW;wBACtB,qBAAqB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;qBAChD;iBACF,CAAC;gBACF,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAG,sDAAsD;YAC1F,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAA4B,CAAC;YACnG,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,OAAO;gBACL,IAAI,EAAE,oBAAoB,OAAO,KAAK,QAAQ,MAAM;oBAClD,aAAa,KAAK,MAAM,GAAG,IAAI;oBAC/B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1D,iBAAiB,UAAU,IAAI;oBAC/B,iBAAiB,IAAI,CAAC,EAAE,IAAI,SAAS,EAAE;gBACzC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;aACzE,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAA4B,EAAE;YAC1D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACjD,MAAM,UAAU,GAAI,MAAM,CAAC,UAAqB,IAAI,SAAS,CAAC;YAC9D,MAAM,IAAI,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9E,OAAO;gBACL,IAAI,EAAE,kBAAkB,OAAO,EAAE;gBACjC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE;aACrC,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAA4B,EAAE;YAC1D,wEAAwE;YACxE,wEAAwE;YACxE,qEAAqE;YACrE,qEAAqE;YACrE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACjD,MAAM,UAAU,GAAI,MAAM,CAAC,UAAqB,IAAI,SAAS,CAAC;YAE9D,MAAM,IAAI,GAA4B,EAAE,CAAC;YACzC,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;gBAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACxE,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;gBAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACpF,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;gBAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3E,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;gBAAE,IAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAChF,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS;gBAAE,IAAI,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAE1E,gEAAgE;YAChE,kFAAkF;YAClF,2DAA2D;YAC3D,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;qBAC1C,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;qBAClB,MAAM,CAAC,OAAO,CAAC,CAAC;gBACnB,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC;YAED,0FAA0F;YAC1F,MAAM,WAAW,GAA4B,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;YAErE,sBAAsB;YACtB,EAAE;YACF,gFAAgF;YAChF,EAAE;YACF,iFAAiF;YACjF,4EAA4E;YAC5E,+EAA+E;YAC/E,mFAAmF;YACnF,iFAAiF;YACjF,2DAA2D;YAC3D,EAAE;YACF,gFAAgF;YAChF,iFAAiF;YACjF,mEAAmE;YACnE,EAAE;YACF,+EAA+E;YAC/E,8DAA8D;YAC9D,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC;YAC3C,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACzB,MAAM,SAAS,GAAG,QAAQ,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBAClD,IAAI,CAAC,cAAc,GAAG;oBACpB,aAAa,EAAE;wBACb,SAAS;wBACT,qBAAqB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;qBAChD;iBACF,CAAC;gBACF,WAAW,CAAC,qBAAqB,GAAG,CAAC,CAAC;YACxC,CAAC;YAED,+EAA+E;YAC/E,gFAAgF;YAChF,aAAa;YACb,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CACb,8GAA8G,CAC/G,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,YAAY;gBACvB,CAAC,CAAC,MAAM,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC;gBAC1D,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE;oBACvC,GAAG,WAAW;oBACd,GAAG,IAAI;iBACR,EAAE,EAAE,OAAO,EAAE,CAA4B,CAAC;YAE7C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,OAAO;gBACL,IAAI,EAAE,oBAAoB,IAAI,CAAC,OAAO,IAAI,OAAO,QAAQ;oBACvD,iBAAiB,IAAI,CAAC,EAAE,IAAI,OAAO,IAAI;oBACvC,iBAAiB,UAAU,IAAI;oBAC/B,uBAAuB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAC3C,QAAQ;gBACV,IAAI,EAAE;oBACJ,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,OAAO;oBAC3B,UAAU;oBACV,OAAO;oBACP,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC5D;aACF,CAAC;QACJ,CAAC;KACF;CACF,CAAC"}
|