@agentunion/fastaun 0.2.17 → 0.2.18
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/auth.js +306 -209
- package/dist/auth.js.map +1 -1
- package/dist/client.js +1041 -704
- package/dist/client.js.map +1 -1
- package/dist/discovery.d.ts +3 -0
- package/dist/discovery.js +29 -2
- package/dist/discovery.js.map +1 -1
- package/dist/e2ee-group.d.ts +2 -1
- package/dist/e2ee-group.js +207 -56
- package/dist/e2ee-group.js.map +1 -1
- package/dist/e2ee.js +24 -9
- package/dist/e2ee.js.map +1 -1
- package/dist/events.js +1 -1
- package/dist/events.js.map +1 -1
- package/dist/keystore/aid-db.d.ts +7 -1
- package/dist/keystore/aid-db.js +10 -3
- package/dist/keystore/aid-db.js.map +1 -1
- package/dist/keystore/file.js +12 -9
- package/dist/keystore/file.js.map +1 -1
- package/dist/keystore/sqlite-backup.js +5 -5
- package/dist/keystore/sqlite-backup.js.map +1 -1
- package/dist/logger.d.ts +2 -0
- package/dist/logger.js +69 -13
- package/dist/logger.js.map +1 -1
- package/dist/namespaces/auth.d.ts +1 -0
- package/dist/namespaces/auth.js +289 -146
- package/dist/namespaces/auth.js.map +1 -1
- package/dist/namespaces/custody.d.ts +1 -0
- package/dist/namespaces/custody.js +138 -56
- package/dist/namespaces/custody.js.map +1 -1
- package/dist/namespaces/meta.d.ts +1 -0
- package/dist/namespaces/meta.js +26 -0
- package/dist/namespaces/meta.js.map +1 -1
- package/dist/secret-store/file-store.js +3 -2
- package/dist/secret-store/file-store.js.map +1 -1
- package/dist/transport.js +83 -2
- package/dist/transport.js.map +1 -1
- package/package.json +1 -1
package/dist/namespaces/auth.js
CHANGED
|
@@ -132,8 +132,10 @@ async function fetchWithTimeout(input, init, timeoutMs = AGENT_MD_HTTP_TIMEOUT_M
|
|
|
132
132
|
}
|
|
133
133
|
export class AuthNamespace {
|
|
134
134
|
_client;
|
|
135
|
+
_log;
|
|
135
136
|
constructor(client) {
|
|
136
137
|
this._client = client;
|
|
138
|
+
this._log = client._logger.for('aun_core.namespace.auth');
|
|
137
139
|
}
|
|
138
140
|
get _internal() {
|
|
139
141
|
return this._client;
|
|
@@ -152,8 +154,10 @@ export class AuthNamespace {
|
|
|
152
154
|
// 访问内部属性
|
|
153
155
|
const client = this._internal;
|
|
154
156
|
const gatewayUrl = client._gatewayUrl;
|
|
155
|
-
if (gatewayUrl)
|
|
157
|
+
if (gatewayUrl) {
|
|
158
|
+
this._log.debug(`_resolveGateway: using preset gateway=${gatewayUrl}`);
|
|
156
159
|
return gatewayUrl;
|
|
160
|
+
}
|
|
157
161
|
const resolvedAid = aid ?? client._aid;
|
|
158
162
|
if (resolvedAid) {
|
|
159
163
|
const parts = resolvedAid.split('.');
|
|
@@ -169,139 +173,209 @@ export class AuthNamespace {
|
|
|
169
173
|
const [primaryUrl, fallbackUrl] = configModel.verifySsl
|
|
170
174
|
? [aidUrl, gatewayDomainUrl]
|
|
171
175
|
: [gatewayDomainUrl, aidUrl];
|
|
176
|
+
this._log.debug(`_resolveGateway start: aid=${resolvedAid} primary=${primaryUrl}`);
|
|
172
177
|
try {
|
|
173
|
-
|
|
178
|
+
const url = await discovery.discover(primaryUrl);
|
|
179
|
+
this._log.debug(`_resolveGateway primary ok: aid=${resolvedAid} gateway=${url}`);
|
|
180
|
+
return url;
|
|
174
181
|
}
|
|
175
|
-
catch {
|
|
182
|
+
catch (exc) {
|
|
176
183
|
// 主路径失败,尝试 fallback
|
|
184
|
+
this._log.warn(`_resolveGateway primary failed, trying fallback: aid=${resolvedAid} primary=${primaryUrl} err=${exc instanceof Error ? exc.message : String(exc)}`);
|
|
177
185
|
}
|
|
178
|
-
|
|
186
|
+
const url = await discovery.discover(fallbackUrl);
|
|
187
|
+
this._log.debug(`_resolveGateway fallback ok: aid=${resolvedAid} gateway=${url}`);
|
|
188
|
+
return url;
|
|
179
189
|
}
|
|
180
190
|
throw new ValidationError("unable to resolve gateway: set client._gatewayUrl or provide 'aid' for auto-discovery");
|
|
181
191
|
}
|
|
182
192
|
/** 创建新 AID */
|
|
183
193
|
async createAid(params) {
|
|
194
|
+
const tStart = Date.now();
|
|
184
195
|
const aid = String(params?.aid ?? '');
|
|
185
196
|
if (!aid)
|
|
186
197
|
throw new Error("auth.create_aid requires 'aid'");
|
|
187
198
|
const client = this._internal;
|
|
199
|
+
this._log.debug(`createAid enter: aid=${aid}`);
|
|
188
200
|
const gatewayUrl = await this._resolveGateway(aid);
|
|
189
201
|
client._gatewayUrl = gatewayUrl;
|
|
190
202
|
const auth = client._auth;
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
203
|
+
try {
|
|
204
|
+
const result = await auth.createAid(gatewayUrl, aid);
|
|
205
|
+
client._aid = result.aid ?? null;
|
|
206
|
+
client._identity = auth.loadIdentityOrNone(String(result.aid));
|
|
207
|
+
this._log.info(`createAid success: aid=${result.aid} gateway=${gatewayUrl}`);
|
|
208
|
+
this._log.debug(`createAid exit: elapsed=${Date.now() - tStart}ms aid=${aid}`);
|
|
209
|
+
return {
|
|
210
|
+
aid: result.aid,
|
|
211
|
+
cert_pem: result.cert,
|
|
212
|
+
gateway: gatewayUrl,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
catch (err) {
|
|
216
|
+
this._log.error(`createAid failed: aid=${aid} err=${err instanceof Error ? err.message : String(err)}`, err instanceof Error ? err : undefined);
|
|
217
|
+
this._log.debug(`createAid exit (error): elapsed=${Date.now() - tStart}ms aid=${aid} err=${err instanceof Error ? err.message : String(err)}`);
|
|
218
|
+
throw err;
|
|
219
|
+
}
|
|
199
220
|
}
|
|
200
221
|
/** 认证(登录) */
|
|
201
222
|
async authenticate(params) {
|
|
223
|
+
const tStart = Date.now();
|
|
202
224
|
const request = { ...(params ?? {}) };
|
|
203
225
|
const aid = request.aid;
|
|
204
226
|
const client = this._internal;
|
|
227
|
+
this._log.debug(`authenticate enter: aid=${aid ?? '-'}`);
|
|
205
228
|
const gatewayUrl = await this._resolveGateway(aid);
|
|
206
229
|
client._gatewayUrl = gatewayUrl;
|
|
207
230
|
const auth = client._auth;
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
231
|
+
try {
|
|
232
|
+
const result = await auth.authenticate(gatewayUrl, { aid });
|
|
233
|
+
client._aid = result.aid ?? null;
|
|
234
|
+
client._identity = auth.loadIdentityOrNone(String(result.aid));
|
|
235
|
+
this._log.info(`authenticate success: aid=${result.aid} gateway=${gatewayUrl}`);
|
|
236
|
+
this._log.debug(`authenticate exit: elapsed=${Date.now() - tStart}ms aid=${aid ?? '-'}`);
|
|
237
|
+
return result;
|
|
238
|
+
}
|
|
239
|
+
catch (err) {
|
|
240
|
+
this._log.error(`authenticate failed: aid=${aid ?? '-'} err=${err instanceof Error ? err.message : String(err)}`, err instanceof Error ? err : undefined);
|
|
241
|
+
this._log.debug(`authenticate exit (error): elapsed=${Date.now() - tStart}ms aid=${aid ?? '-'} err=${err instanceof Error ? err.message : String(err)}`);
|
|
242
|
+
throw err;
|
|
243
|
+
}
|
|
212
244
|
}
|
|
213
245
|
async signAgentMd(content, opts) {
|
|
246
|
+
const tStart = Date.now();
|
|
214
247
|
const client = this._internal;
|
|
215
248
|
const targetAid = String(opts?.aid ?? client._aid ?? '').trim();
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
249
|
+
this._log.debug(`signAgentMd enter: aid=${targetAid || '-'} content_len=${content?.length ?? 0}`);
|
|
250
|
+
try {
|
|
251
|
+
const identity = client._auth.loadIdentityOrNone(targetAid || undefined);
|
|
252
|
+
if (!identity) {
|
|
253
|
+
this._log.error(`signAgentMd failed: no local identity for aid=${targetAid || '-'}`);
|
|
254
|
+
throw new StateError('no local identity found, call auth.createAid() first');
|
|
255
|
+
}
|
|
256
|
+
const privateKeyPem = String(identity.private_key_pem ?? '').trim();
|
|
257
|
+
const certPem = normalizeIdentityCertPem(identity);
|
|
258
|
+
if (!privateKeyPem || !certPem) {
|
|
259
|
+
this._log.error(`signAgentMd failed: identity missing key/cert aid=${identity.aid ?? '-'}`);
|
|
260
|
+
throw new StateError('local identity missing private key or certificate');
|
|
261
|
+
}
|
|
262
|
+
let payload = parseAgentMdTailSignature(String(content ?? '')).payload;
|
|
263
|
+
if (payload && !payload.endsWith('\n') && !payload.endsWith('\r')) {
|
|
264
|
+
payload += '\n';
|
|
265
|
+
}
|
|
266
|
+
const signer = createSign('sha256');
|
|
267
|
+
signer.update(payload);
|
|
268
|
+
signer.end();
|
|
269
|
+
const signature = signer.sign(privateKeyPem).toString('base64');
|
|
270
|
+
const fingerprint = certificateSha256Fingerprint(certPem);
|
|
271
|
+
if (!fingerprint) {
|
|
272
|
+
this._log.error(`signAgentMd failed: cert fingerprint computation failed aid=${identity.aid ?? '-'}`);
|
|
273
|
+
throw new StateError('agent.md cert fingerprint failed');
|
|
274
|
+
}
|
|
275
|
+
const signedBlock = [
|
|
276
|
+
AGENT_MD_SIGNATURE_MARKER,
|
|
277
|
+
`cert_fingerprint: ${fingerprint}`,
|
|
278
|
+
`timestamp: ${Math.floor(Date.now() / 1000)}`,
|
|
279
|
+
`signature: ${signature}`,
|
|
280
|
+
'-->',
|
|
281
|
+
].join('\n');
|
|
282
|
+
this._log.debug(`signAgentMd exit: elapsed=${Date.now() - tStart}ms aid=${identity.aid ?? '-'} fingerprint=${fingerprint.slice(0, 23)}...`);
|
|
283
|
+
return payload + signedBlock;
|
|
284
|
+
}
|
|
285
|
+
catch (err) {
|
|
286
|
+
this._log.debug(`signAgentMd exit (error): elapsed=${Date.now() - tStart}ms err=${err instanceof Error ? err.message : String(err)}`);
|
|
287
|
+
throw err;
|
|
219
288
|
}
|
|
220
|
-
const privateKeyPem = String(identity.private_key_pem ?? '').trim();
|
|
221
|
-
const certPem = normalizeIdentityCertPem(identity);
|
|
222
|
-
if (!privateKeyPem || !certPem) {
|
|
223
|
-
throw new StateError('local identity missing private key or certificate');
|
|
224
|
-
}
|
|
225
|
-
let payload = parseAgentMdTailSignature(String(content ?? '')).payload;
|
|
226
|
-
if (payload && !payload.endsWith('\n') && !payload.endsWith('\r')) {
|
|
227
|
-
payload += '\n';
|
|
228
|
-
}
|
|
229
|
-
const signer = createSign('sha256');
|
|
230
|
-
signer.update(payload);
|
|
231
|
-
signer.end();
|
|
232
|
-
const signature = signer.sign(privateKeyPem).toString('base64');
|
|
233
|
-
const fingerprint = certificateSha256Fingerprint(certPem);
|
|
234
|
-
if (!fingerprint) {
|
|
235
|
-
throw new StateError('agent.md cert fingerprint failed');
|
|
236
|
-
}
|
|
237
|
-
const signedBlock = [
|
|
238
|
-
AGENT_MD_SIGNATURE_MARKER,
|
|
239
|
-
`cert_fingerprint: ${fingerprint}`,
|
|
240
|
-
`timestamp: ${Math.floor(Date.now() / 1000)}`,
|
|
241
|
-
`signature: ${signature}`,
|
|
242
|
-
'-->',
|
|
243
|
-
].join('\n');
|
|
244
|
-
return payload + signedBlock;
|
|
245
289
|
}
|
|
246
290
|
async verifyAgentMd(content, opts) {
|
|
247
|
-
const
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
291
|
+
const tStart = Date.now();
|
|
292
|
+
this._log.debug(`verifyAgentMd enter: aid_hint=${opts?.aid ?? '-'} content_len=${content?.length ?? 0}`);
|
|
293
|
+
try {
|
|
294
|
+
const { payload, fields, parseError } = parseAgentMdTailSignature(String(content ?? ''));
|
|
295
|
+
if (!fields) {
|
|
296
|
+
if (!parseError) {
|
|
297
|
+
this._log.debug(`verifyAgentMd exit: elapsed=${Date.now() - tStart}ms (unsigned)`);
|
|
298
|
+
return agentMdResult('unsigned', payload);
|
|
299
|
+
}
|
|
300
|
+
this._log.warn(`verifyAgentMd invalid: parse_error=${parseError}`);
|
|
301
|
+
this._log.debug(`verifyAgentMd exit: elapsed=${Date.now() - tStart}ms (parse_error)`);
|
|
302
|
+
return agentMdResult('invalid', payload, parseError);
|
|
303
|
+
}
|
|
304
|
+
let expectedAid = String(opts?.aid ?? '').trim();
|
|
305
|
+
const payloadAid = extractAgentMDAid(payload);
|
|
306
|
+
if (expectedAid && payloadAid && expectedAid !== payloadAid) {
|
|
307
|
+
this._log.warn(`verifyAgentMd invalid: aid_mismatch hint=${expectedAid} payload_aid=${payloadAid}`);
|
|
308
|
+
this._log.debug(`verifyAgentMd exit: elapsed=${Date.now() - tStart}ms (aid_mismatch)`);
|
|
309
|
+
return agentMdResult('invalid', payload, 'aid mismatch', payloadAid);
|
|
251
310
|
}
|
|
252
|
-
return agentMdResult('invalid', payload, parseError);
|
|
253
|
-
}
|
|
254
|
-
let expectedAid = String(opts?.aid ?? '').trim();
|
|
255
|
-
const payloadAid = extractAgentMDAid(payload);
|
|
256
|
-
if (expectedAid && payloadAid && expectedAid !== payloadAid) {
|
|
257
|
-
return agentMdResult('invalid', payload, 'aid mismatch', payloadAid);
|
|
258
|
-
}
|
|
259
|
-
if (!expectedAid) {
|
|
260
|
-
expectedAid = payloadAid;
|
|
261
|
-
}
|
|
262
|
-
let certPem = String(opts?.certPem ?? opts?.cert_pem ?? '').trim();
|
|
263
|
-
if (!certPem) {
|
|
264
311
|
if (!expectedAid) {
|
|
265
|
-
|
|
312
|
+
expectedAid = payloadAid;
|
|
266
313
|
}
|
|
267
|
-
|
|
268
|
-
if (
|
|
269
|
-
|
|
314
|
+
let certPem = String(opts?.certPem ?? opts?.cert_pem ?? '').trim();
|
|
315
|
+
if (!certPem) {
|
|
316
|
+
if (!expectedAid) {
|
|
317
|
+
this._log.warn('verifyAgentMd invalid: aid required to verify agent.md');
|
|
318
|
+
this._log.debug(`verifyAgentMd exit: elapsed=${Date.now() - tStart}ms (aid_required)`);
|
|
319
|
+
return agentMdResult('invalid', payload, 'aid required to verify agent.md');
|
|
320
|
+
}
|
|
321
|
+
const fetchPeerCert = this._internal._fetchPeerCert;
|
|
322
|
+
if (typeof fetchPeerCert !== 'function') {
|
|
323
|
+
this._log.warn(`verifyAgentMd invalid: client cannot fetch peer cert aid=${expectedAid}`);
|
|
324
|
+
this._log.debug(`verifyAgentMd exit: elapsed=${Date.now() - tStart}ms (no_fetch_fn)`);
|
|
325
|
+
return agentMdResult('invalid', payload, 'aid required to verify agent.md', expectedAid);
|
|
326
|
+
}
|
|
327
|
+
try {
|
|
328
|
+
certPem = String(await fetchPeerCert(expectedAid, fields.cert_fingerprint)).trim();
|
|
329
|
+
}
|
|
330
|
+
catch (error) {
|
|
331
|
+
this._log.warn(`verifyAgentMd invalid: peer cert fetch failed aid=${expectedAid} err=${String(error)}`);
|
|
332
|
+
this._log.debug(`verifyAgentMd exit: elapsed=${Date.now() - tStart}ms (cert_fetch_failed)`);
|
|
333
|
+
return agentMdResult('invalid', payload, String(error), expectedAid, fields.cert_fingerprint);
|
|
334
|
+
}
|
|
270
335
|
}
|
|
336
|
+
let cert;
|
|
271
337
|
try {
|
|
272
|
-
|
|
338
|
+
cert = new X509Certificate(certPem);
|
|
273
339
|
}
|
|
274
340
|
catch (error) {
|
|
275
|
-
|
|
341
|
+
this._log.warn(`verifyAgentMd invalid: cert parse failed aid=${expectedAid || '-'} err=${String(error)}`);
|
|
342
|
+
this._log.debug(`verifyAgentMd exit: elapsed=${Date.now() - tStart}ms (cert_parse_failed)`);
|
|
343
|
+
return agentMdResult('invalid', payload, `invalid certificate: ${String(error)}`, expectedAid, fields.cert_fingerprint);
|
|
276
344
|
}
|
|
345
|
+
const actualFingerprint = certificateSha256Fingerprint(certPem);
|
|
346
|
+
if (!actualFingerprint || actualFingerprint.toLowerCase() !== fields.cert_fingerprint.toLowerCase()) {
|
|
347
|
+
this._log.warn(`verifyAgentMd invalid: fingerprint_mismatch expected=${fields.cert_fingerprint} actual=${actualFingerprint}`);
|
|
348
|
+
this._log.debug(`verifyAgentMd exit: elapsed=${Date.now() - tStart}ms (fingerprint_mismatch)`);
|
|
349
|
+
return agentMdResult('invalid', payload, 'certificate fingerprint mismatch', expectedAid, fields.cert_fingerprint);
|
|
350
|
+
}
|
|
351
|
+
const cn = extractCommonName(cert.subject);
|
|
352
|
+
if (expectedAid && cn && cn !== expectedAid) {
|
|
353
|
+
this._log.warn(`verifyAgentMd invalid: cert cn=${cn} aid=${expectedAid}`);
|
|
354
|
+
this._log.debug(`verifyAgentMd exit: elapsed=${Date.now() - tStart}ms (cn_mismatch)`);
|
|
355
|
+
return agentMdResult('invalid', payload, 'certificate aid mismatch', expectedAid, fields.cert_fingerprint);
|
|
356
|
+
}
|
|
357
|
+
const signature = Buffer.from(fields.signature, 'base64');
|
|
358
|
+
if (!signature.length) {
|
|
359
|
+
this._log.warn(`verifyAgentMd invalid: empty signature aid=${expectedAid || '-'}`);
|
|
360
|
+
this._log.debug(`verifyAgentMd exit: elapsed=${Date.now() - tStart}ms (empty_signature)`);
|
|
361
|
+
return agentMdResult('invalid', payload, 'invalid signature', expectedAid, fields.cert_fingerprint);
|
|
362
|
+
}
|
|
363
|
+
const verifier = createVerify('sha256');
|
|
364
|
+
verifier.update(payload);
|
|
365
|
+
verifier.end();
|
|
366
|
+
const ok = verifier.verify(cert.publicKey, signature);
|
|
367
|
+
if (!ok) {
|
|
368
|
+
this._log.warn(`verifyAgentMd invalid: signature verification failed aid=${expectedAid || '-'}`);
|
|
369
|
+
this._log.debug(`verifyAgentMd exit: elapsed=${Date.now() - tStart}ms (signature_failed)`);
|
|
370
|
+
return agentMdResult('invalid', payload, 'signature verification failed', expectedAid, fields.cert_fingerprint, parseAgentMdTimestamp(fields.timestamp));
|
|
371
|
+
}
|
|
372
|
+
this._log.debug(`verifyAgentMd exit: elapsed=${Date.now() - tStart}ms (verified) aid=${expectedAid || payloadAid}`);
|
|
373
|
+
return agentMdResult('verified', payload, '', expectedAid || payloadAid, fields.cert_fingerprint, parseAgentMdTimestamp(fields.timestamp));
|
|
277
374
|
}
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
}
|
|
282
|
-
catch (error) {
|
|
283
|
-
return agentMdResult('invalid', payload, `invalid certificate: ${String(error)}`, expectedAid, fields.cert_fingerprint);
|
|
284
|
-
}
|
|
285
|
-
const actualFingerprint = certificateSha256Fingerprint(certPem);
|
|
286
|
-
if (!actualFingerprint || actualFingerprint.toLowerCase() !== fields.cert_fingerprint.toLowerCase()) {
|
|
287
|
-
return agentMdResult('invalid', payload, 'certificate fingerprint mismatch', expectedAid, fields.cert_fingerprint);
|
|
288
|
-
}
|
|
289
|
-
const cn = extractCommonName(cert.subject);
|
|
290
|
-
if (expectedAid && cn && cn !== expectedAid) {
|
|
291
|
-
return agentMdResult('invalid', payload, 'certificate aid mismatch', expectedAid, fields.cert_fingerprint);
|
|
292
|
-
}
|
|
293
|
-
const signature = Buffer.from(fields.signature, 'base64');
|
|
294
|
-
if (!signature.length) {
|
|
295
|
-
return agentMdResult('invalid', payload, 'invalid signature', expectedAid, fields.cert_fingerprint);
|
|
296
|
-
}
|
|
297
|
-
const verifier = createVerify('sha256');
|
|
298
|
-
verifier.update(payload);
|
|
299
|
-
verifier.end();
|
|
300
|
-
const ok = verifier.verify(cert.publicKey, signature);
|
|
301
|
-
if (!ok) {
|
|
302
|
-
return agentMdResult('invalid', payload, 'signature verification failed', expectedAid, fields.cert_fingerprint, parseAgentMdTimestamp(fields.timestamp));
|
|
375
|
+
catch (err) {
|
|
376
|
+
this._log.debug(`verifyAgentMd exit (error): elapsed=${Date.now() - tStart}ms err=${err instanceof Error ? err.message : String(err)}`);
|
|
377
|
+
throw err;
|
|
303
378
|
}
|
|
304
|
-
return agentMdResult('verified', payload, '', expectedAid || payloadAid, fields.cert_fingerprint, parseAgentMdTimestamp(fields.timestamp));
|
|
305
379
|
}
|
|
306
380
|
async _resolveAgentMdUrl(aid) {
|
|
307
381
|
const resolvedAid = String(aid ?? '').trim();
|
|
@@ -355,79 +429,148 @@ export class AuthNamespace {
|
|
|
355
429
|
return token;
|
|
356
430
|
}
|
|
357
431
|
async uploadAgentMd(content) {
|
|
358
|
-
const
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
432
|
+
const tStart = Date.now();
|
|
433
|
+
this._log.debug(`uploadAgentMd enter: content_len=${content?.length ?? 0}`);
|
|
434
|
+
try {
|
|
435
|
+
const client = this._internal;
|
|
436
|
+
const auth = client._auth;
|
|
437
|
+
const identity = auth.loadIdentityOrNone(client._aid ?? undefined);
|
|
438
|
+
if (!identity) {
|
|
439
|
+
throw new StateError('no local identity found, call auth.createAid() first');
|
|
440
|
+
}
|
|
441
|
+
const aid = String(identity.aid ?? client._aid ?? '').trim();
|
|
442
|
+
if (!aid) {
|
|
443
|
+
throw new StateError('no local identity found, call auth.createAid() first');
|
|
444
|
+
}
|
|
445
|
+
const gatewayUrl = await this._resolveGateway(aid);
|
|
446
|
+
client._gatewayUrl = gatewayUrl;
|
|
447
|
+
const token = await this._ensureAgentMdUploadToken(aid, gatewayUrl);
|
|
448
|
+
const response = await fetchWithTimeout(await this._resolveAgentMdUrl(aid), {
|
|
449
|
+
method: 'PUT',
|
|
450
|
+
headers: {
|
|
451
|
+
Authorization: `Bearer ${token}`,
|
|
452
|
+
'Content-Type': 'text/markdown; charset=utf-8',
|
|
453
|
+
},
|
|
454
|
+
body: content,
|
|
455
|
+
});
|
|
456
|
+
if (response.status === 404) {
|
|
457
|
+
throw new NotFoundError(`agent.md endpoint not found for aid: ${aid}`);
|
|
458
|
+
}
|
|
459
|
+
if (!response.ok) {
|
|
460
|
+
const message = (await response.text()).trim();
|
|
461
|
+
throw new AUNError(`upload agent.md failed: HTTP ${response.status}${message ? ` - ${message}` : ''}`);
|
|
462
|
+
}
|
|
463
|
+
const payload = await response.json();
|
|
464
|
+
if (!isJsonObject(payload)) {
|
|
465
|
+
throw new AUNError('upload agent.md returned invalid JSON payload');
|
|
466
|
+
}
|
|
467
|
+
this._log.debug(`uploadAgentMd exit: elapsed=${Date.now() - tStart}ms aid=${aid}`);
|
|
468
|
+
return payload;
|
|
363
469
|
}
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
throw
|
|
470
|
+
catch (err) {
|
|
471
|
+
this._log.debug(`uploadAgentMd exit (error): elapsed=${Date.now() - tStart}ms err=${err instanceof Error ? err.message : String(err)}`);
|
|
472
|
+
throw err;
|
|
367
473
|
}
|
|
368
|
-
const gatewayUrl = await this._resolveGateway(aid);
|
|
369
|
-
client._gatewayUrl = gatewayUrl;
|
|
370
|
-
const token = await this._ensureAgentMdUploadToken(aid, gatewayUrl);
|
|
371
|
-
const response = await fetchWithTimeout(await this._resolveAgentMdUrl(aid), {
|
|
372
|
-
method: 'PUT',
|
|
373
|
-
headers: {
|
|
374
|
-
Authorization: `Bearer ${token}`,
|
|
375
|
-
'Content-Type': 'text/markdown; charset=utf-8',
|
|
376
|
-
},
|
|
377
|
-
body: content,
|
|
378
|
-
});
|
|
379
|
-
if (response.status === 404) {
|
|
380
|
-
throw new NotFoundError(`agent.md endpoint not found for aid: ${aid}`);
|
|
381
|
-
}
|
|
382
|
-
if (!response.ok) {
|
|
383
|
-
const message = (await response.text()).trim();
|
|
384
|
-
throw new AUNError(`upload agent.md failed: HTTP ${response.status}${message ? ` - ${message}` : ''}`);
|
|
385
|
-
}
|
|
386
|
-
const payload = await response.json();
|
|
387
|
-
if (!isJsonObject(payload)) {
|
|
388
|
-
throw new AUNError('upload agent.md returned invalid JSON payload');
|
|
389
|
-
}
|
|
390
|
-
return payload;
|
|
391
474
|
}
|
|
392
475
|
async downloadAgentMd(aid) {
|
|
393
|
-
const
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
476
|
+
const tStart = Date.now();
|
|
477
|
+
this._log.debug(`downloadAgentMd enter: aid=${aid}`);
|
|
478
|
+
try {
|
|
479
|
+
const targetAid = String(aid ?? '').trim();
|
|
480
|
+
if (!targetAid) {
|
|
481
|
+
throw new ValidationError('downloadAgentMd requires non-empty aid');
|
|
482
|
+
}
|
|
483
|
+
const response = await fetchWithTimeout(await this._resolveAgentMdUrl(targetAid), {
|
|
484
|
+
method: 'GET',
|
|
485
|
+
headers: {
|
|
486
|
+
Accept: 'text/markdown',
|
|
487
|
+
},
|
|
488
|
+
});
|
|
489
|
+
if (response.status === 404) {
|
|
490
|
+
throw new NotFoundError(`agent.md not found for aid: ${targetAid}`);
|
|
491
|
+
}
|
|
492
|
+
if (!response.ok) {
|
|
493
|
+
const message = (await response.text()).trim();
|
|
494
|
+
throw new AUNError(`download agent.md failed: HTTP ${response.status}${message ? ` - ${message}` : ''}`);
|
|
495
|
+
}
|
|
496
|
+
const text = await response.text();
|
|
497
|
+
this._log.debug(`downloadAgentMd exit: elapsed=${Date.now() - tStart}ms aid=${targetAid} bytes=${text.length}`);
|
|
498
|
+
return text;
|
|
499
|
+
}
|
|
500
|
+
catch (err) {
|
|
501
|
+
this._log.debug(`downloadAgentMd exit (error): elapsed=${Date.now() - tStart}ms err=${err instanceof Error ? err.message : String(err)}`);
|
|
502
|
+
throw err;
|
|
503
|
+
}
|
|
411
504
|
}
|
|
412
505
|
/** 下载证书 */
|
|
413
506
|
async downloadCert(params) {
|
|
414
|
-
|
|
507
|
+
const tStart = Date.now();
|
|
508
|
+
this._log.debug(`downloadCert enter`);
|
|
509
|
+
try {
|
|
510
|
+
const result = await this._client.call('auth.download_cert', params ?? {});
|
|
511
|
+
this._log.debug(`downloadCert exit: elapsed=${Date.now() - tStart}ms`);
|
|
512
|
+
return result;
|
|
513
|
+
}
|
|
514
|
+
catch (err) {
|
|
515
|
+
this._log.debug(`downloadCert exit (error): elapsed=${Date.now() - tStart}ms err=${err instanceof Error ? err.message : String(err)}`);
|
|
516
|
+
throw err;
|
|
517
|
+
}
|
|
415
518
|
}
|
|
416
519
|
/** 请求签发证书 */
|
|
417
520
|
async requestCert(params) {
|
|
418
|
-
|
|
521
|
+
const tStart = Date.now();
|
|
522
|
+
this._log.debug(`requestCert enter`);
|
|
523
|
+
try {
|
|
524
|
+
const result = await this._client.call('auth.request_cert', params);
|
|
525
|
+
this._log.debug(`requestCert exit: elapsed=${Date.now() - tStart}ms`);
|
|
526
|
+
return result;
|
|
527
|
+
}
|
|
528
|
+
catch (err) {
|
|
529
|
+
this._log.debug(`requestCert exit (error): elapsed=${Date.now() - tStart}ms err=${err instanceof Error ? err.message : String(err)}`);
|
|
530
|
+
throw err;
|
|
531
|
+
}
|
|
419
532
|
}
|
|
420
533
|
/** 续期证书 */
|
|
421
534
|
async renewCert(params) {
|
|
422
|
-
|
|
535
|
+
const tStart = Date.now();
|
|
536
|
+
this._log.debug(`renewCert enter`);
|
|
537
|
+
try {
|
|
538
|
+
const result = await this._client.call('auth.renew_cert', params ?? {});
|
|
539
|
+
this._log.debug(`renewCert exit: elapsed=${Date.now() - tStart}ms`);
|
|
540
|
+
return result;
|
|
541
|
+
}
|
|
542
|
+
catch (err) {
|
|
543
|
+
this._log.debug(`renewCert exit (error): elapsed=${Date.now() - tStart}ms err=${err instanceof Error ? err.message : String(err)}`);
|
|
544
|
+
throw err;
|
|
545
|
+
}
|
|
423
546
|
}
|
|
424
547
|
/** 密钥轮换 */
|
|
425
548
|
async rekey(params) {
|
|
426
|
-
|
|
549
|
+
const tStart = Date.now();
|
|
550
|
+
this._log.debug(`rekey enter`);
|
|
551
|
+
try {
|
|
552
|
+
const result = await this._client.call('auth.rekey', params ?? {});
|
|
553
|
+
this._log.debug(`rekey exit: elapsed=${Date.now() - tStart}ms`);
|
|
554
|
+
return result;
|
|
555
|
+
}
|
|
556
|
+
catch (err) {
|
|
557
|
+
this._log.debug(`rekey exit (error): elapsed=${Date.now() - tStart}ms err=${err instanceof Error ? err.message : String(err)}`);
|
|
558
|
+
throw err;
|
|
559
|
+
}
|
|
427
560
|
}
|
|
428
561
|
/** 获取信任根证书列表 */
|
|
429
562
|
async trustRoots(params) {
|
|
430
|
-
|
|
563
|
+
const tStart = Date.now();
|
|
564
|
+
this._log.debug(`trustRoots enter`);
|
|
565
|
+
try {
|
|
566
|
+
const result = await this._client.call('meta.trust_roots', params ?? {});
|
|
567
|
+
this._log.debug(`trustRoots exit: elapsed=${Date.now() - tStart}ms`);
|
|
568
|
+
return result;
|
|
569
|
+
}
|
|
570
|
+
catch (err) {
|
|
571
|
+
this._log.debug(`trustRoots exit (error): elapsed=${Date.now() - tStart}ms err=${err instanceof Error ? err.message : String(err)}`);
|
|
572
|
+
throw err;
|
|
573
|
+
}
|
|
431
574
|
}
|
|
432
575
|
}
|
|
433
576
|
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/namespaces/auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/namespaces/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAIpF,OAAO,EAAE,YAAY,EAAwF,MAAM,aAAa,CAAC;AACjI,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAExE,MAAM,wBAAwB,GAAG,MAAM,CAAC;AACxC,MAAM,yBAAyB,GAAG,oBAAoB,CAAC;AACvD,MAAM,qBAAqB,GAAG,uDAAuD,CAAC;AACtF,MAAM,uBAAuB,GAAG,uBAAuB,CAAC;AAgDxD,SAAS,iBAAiB,CAAC,UAAkB;IAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1D,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AACpD,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW,EAAE,aAAwC;IAC7E,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,IAAI,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,GAAG,IAAI,IAAI,aAAa,EAAE,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,yBAAyB,CAAC,OAAe;IAChD,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAC3D,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;IACD,IAAI,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACtE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,2BAA2B,EAAE,CAAC;IACnG,CAAC;IAED,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,8BAA8B,IAAI,EAAE,EAAE,CAAC;QAC5G,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,CAAC,kBAAkB,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtB,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,2BAA2B,QAAQ,EAAE,EAAE,CAAC;QAC7G,CAAC;IACH,CAAC;IACD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QACzE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,0BAA0B,EAAE,CAAC;IAClG,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAC3F,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AAC3E,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5D,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;QAC/C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,OAAO,KAAK,KAAK;YAAE,MAAM;QAC7B,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;gBACzG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,aAAa,CACpB,MAA2C,EAC3C,OAAe,EACf,MAAM,GAAG,EAAE,EACX,GAAG,GAAG,EAAE,EACR,eAAe,GAAG,EAAE,EACpB,SAAkB;IAElB,MAAM,MAAM,GAAwB;QAClC,MAAM;QACN,QAAQ,EAAE,MAAM,KAAK,UAAU;QAC/B,OAAO;KACR,CAAC;IACF,IAAI,MAAM;QAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IACnC,IAAI,GAAG;QAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;IAC1B,IAAI,eAAe;QAAE,MAAM,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAC/D,IAAI,SAAS,KAAK,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,wBAAwB,CAAC,QAA+B;IAC/D,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACpD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,KAAa,EACb,IAAiB,EACjB,YAAoB,wBAAwB;IAE5C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAC9D,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,QAAQ,CAAC,oCAAoC,SAAS,IAAI,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,aAAa;IAChB,OAAO,CAAY;IACnB,IAAI,CAAe;IAE3B,YAAY,MAAiB;QAC3B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,IAAI,GAAI,MAA8B,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACrF,CAAC;IAED,IAAY,SAAS;QACnB,OAAO,IAAI,CAAC,OAA8B,CAAC;IAC7C,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,eAAe,CAAC,GAAY;QAChC,SAAS;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,yCAAyC,UAAU,EAAE,CAAC,CAAC;YACvE,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,WAAW,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC;QACvC,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAE/E,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;YACxC,MAAM,IAAI,GAAG,WAAW,CAAC,aAAa,CAAC;YACvC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAE1C,MAAM,MAAM,GAAG,WAAW,WAAW,GAAG,UAAU,0BAA0B,CAAC;YAC7E,MAAM,gBAAgB,GAAG,mBAAmB,YAAY,GAAG,UAAU,0BAA0B,CAAC;YAChG,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;YAEpC,sDAAsD;YACtD,gDAAgD;YAChD,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,WAAW,CAAC,SAAS;gBACrD,CAAC,CAAC,CAAC,MAAM,EAAE,gBAAgB,CAAC;gBAC5B,CAAC,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;YAE/B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,WAAW,YAAY,UAAU,EAAE,CAAC,CAAC;YACnF,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACjD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mCAAmC,WAAW,YAAY,GAAG,EAAE,CAAC,CAAC;gBACjF,OAAO,GAAG,CAAC;YACb,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,oBAAoB;gBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,wDAAwD,WAAW,YAAY,UAAU,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtK,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oCAAoC,WAAW,YAAY,GAAG,EAAE,CAAC,CAAC;YAClF,OAAO,GAAG,CAAC;QACb,CAAC;QAED,MAAM,IAAI,eAAe,CACvB,uFAAuF,CACxF,CAAC;IACJ,CAAC;IAED,cAAc;IACd,KAAK,CAAC,SAAS,CAAC,MAAiB;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAE5D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC;QAEhC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YACrD,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC;YACjC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,MAAM,CAAC,GAAG,YAAY,UAAU,EAAE,CAAC,CAAC;YAC7E,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,UAAU,GAAG,EAAE,CAAC,CAAC;YAC/E,OAAO;gBACL,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,QAAQ,EAAE,MAAM,CAAC,IAAI;gBACrB,OAAO,EAAE,UAAU;aACpB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,yBAAyB,GAAG,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAChJ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mCAAmC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,UAAU,GAAG,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/I,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,aAAa;IACb,KAAK,CAAC,YAAY,CAAC,MAAkB;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAyB,CAAC;QAE9C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC;QAEhC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5D,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC;YACjC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,MAAM,CAAC,GAAG,YAAY,UAAU,EAAE,CAAC,CAAC;YAChF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;YACzF,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,4BAA4B,GAAG,IAAI,GAAG,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC1J,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,sCAAsC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,UAAU,GAAG,IAAI,GAAG,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzJ,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,IAAyB;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,SAAS,IAAI,GAAG,gBAAgB,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;QAClG,IAAI,CAAC;YACL,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC;YACzE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iDAAiD,SAAS,IAAI,GAAG,EAAE,CAAC,CAAC;gBACrF,MAAM,IAAI,UAAU,CAAC,sDAAsD,CAAC,CAAC;YAC/E,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACpE,MAAM,OAAO,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,CAAC,aAAa,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,qDAAqD,QAAQ,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;gBAC5F,MAAM,IAAI,UAAU,CAAC,mDAAmD,CAAC,CAAC;YAC5E,CAAC;YAED,IAAI,OAAO,GAAG,yBAAyB,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACvE,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClE,OAAO,IAAI,IAAI,CAAC;YAClB,CAAC;YAED,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACvB,MAAM,CAAC,GAAG,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChE,MAAM,WAAW,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;YAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,+DAA+D,QAAQ,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;gBACtG,MAAM,IAAI,UAAU,CAAC,kCAAkC,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,WAAW,GAAG;gBAClB,yBAAyB;gBACzB,qBAAqB,WAAW,EAAE;gBAClC,cAAc,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE;gBAC7C,cAAc,SAAS,EAAE;gBACzB,KAAK;aACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,UAAU,QAAQ,CAAC,GAAG,IAAI,GAAG,gBAAgB,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;YAC5I,OAAO,OAAO,GAAG,WAAW,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,qCAAqC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtI,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,IAA2B;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iCAAiC,IAAI,EAAE,GAAG,IAAI,GAAG,gBAAgB,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;QACzG,IAAI,CAAC;YACL,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,yBAAyB,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;YACzF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,eAAe,CAAC,CAAC;oBACnF,OAAO,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAC5C,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,sCAAsC,UAAU,EAAE,CAAC,CAAC;gBACnE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,kBAAkB,CAAC,CAAC;gBACtF,OAAO,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACjD,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;gBAC5D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,4CAA4C,WAAW,gBAAgB,UAAU,EAAE,CAAC,CAAC;gBACpG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,mBAAmB,CAAC,CAAC;gBACvF,OAAO,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;YACvE,CAAC;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,WAAW,GAAG,UAAU,CAAC;YAC3B,CAAC;YAED,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACnE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;oBACzE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,mBAAmB,CAAC,CAAC;oBACvF,OAAO,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,iCAAiC,CAAC,CAAC;gBAC9E,CAAC;gBACD,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;gBACpD,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE,CAAC;oBACxC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,4DAA4D,WAAW,EAAE,CAAC,CAAC;oBAC1F,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,kBAAkB,CAAC,CAAC;oBACtF,OAAO,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,iCAAiC,EAAE,WAAW,CAAC,CAAC;gBAC3F,CAAC;gBACD,IAAI,CAAC;oBACH,OAAO,GAAG,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrF,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qDAAqD,WAAW,QAAQ,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACxG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,wBAAwB,CAAC,CAAC;oBAC5F,OAAO,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;gBAChG,CAAC;YACH,CAAC;YAED,IAAI,IAAqB,CAAC;YAC1B,IAAI,CAAC;gBACH,IAAI,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gDAAgD,WAAW,IAAI,GAAG,QAAQ,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC1G,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,wBAAwB,CAAC,CAAC;gBAC5F,OAAO,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,wBAAwB,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC1H,CAAC;YAED,MAAM,iBAAiB,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;YAChE,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC;gBACpG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,wDAAwD,MAAM,CAAC,gBAAgB,WAAW,iBAAiB,EAAE,CAAC,CAAC;gBAC9H,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,2BAA2B,CAAC,CAAC;gBAC/F,OAAO,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,kCAAkC,EAAE,WAAW,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACrH,CAAC;YAED,MAAM,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,WAAW,IAAI,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,CAAC;gBAC5C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kCAAkC,EAAE,QAAQ,WAAW,EAAE,CAAC,CAAC;gBAC1E,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,kBAAkB,CAAC,CAAC;gBACtF,OAAO,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC7G,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,8CAA8C,WAAW,IAAI,GAAG,EAAE,CAAC,CAAC;gBACnF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,sBAAsB,CAAC,CAAC;gBAC1F,OAAO,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACtG,CAAC;YAED,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACxC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACzB,QAAQ,CAAC,GAAG,EAAE,CAAC;YACf,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACtD,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,4DAA4D,WAAW,IAAI,GAAG,EAAE,CAAC,CAAC;gBACjG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,uBAAuB,CAAC,CAAC;gBAC3F,OAAO,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,+BAA+B,EAAE,WAAW,EAAE,MAAM,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YAC3J,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,qBAAqB,WAAW,IAAI,UAAU,EAAE,CAAC,CAAC;YACpH,OAAO,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,IAAI,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3I,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uCAAuC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxI,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,GAAW;QAC1C,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,eAAe,CAAC,iCAAiC,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,IAAI,UAAU,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACvD,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU,GAAG,EAAE,CAAC;YAClB,CAAC;QACH,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;QAChD,MAAM,SAAS,GAAG,gBAAgB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAC/D,OAAO,GAAG,iBAAiB,CAAC,UAAU,CAAC,MAAM,SAAS,WAAW,CAAC;IACpE,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,GAAW,EAAE,UAAkB;QACrE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAElC,IAAI,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,UAAU,CAAC,sDAAsD,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzF,IAAI,WAAW,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC;YAC9E,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,IAAI,OAAO,IAAI,CAAC,mBAAmB,KAAK,UAAU,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC7E,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAChE,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;gBAC3D,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC/F,IAAI,cAAc,IAAI,CAAC,eAAe,KAAK,IAAI,IAAI,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC;oBAC7F,OAAO,cAAc,CAAC;gBACxB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,gCAAgC;YAClC,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,UAAU,CAAC,0CAA0C,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oCAAoC,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC;YACL,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;YAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;YAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC;YACnE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,UAAU,CAAC,sDAAsD,CAAC,CAAC;YAC/E,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7D,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,UAAU,CAAC,sDAAsD,CAAC,CAAC;YAC/E,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC;YAChC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YACpE,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE;gBAC1E,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,KAAK,EAAE;oBAChC,cAAc,EAAE,8BAA8B;iBAC/C;gBACD,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,aAAa,CAAC,wCAAwC,GAAG,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC/C,MAAM,IAAI,QAAQ,CAChB,gCAAgC,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACnF,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAe,CAAC;YACnD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,QAAQ,CAAC,+CAA+C,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,UAAU,GAAG,EAAE,CAAC,CAAC;YACnF,OAAO,OAAO,CAAC;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uCAAuC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxI,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAW;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC;YACL,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,eAAe,CAAC,wCAAwC,CAAC,CAAC;YACtE,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE;gBAChF,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE;oBACP,MAAM,EAAE,eAAe;iBACxB;aACF,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,aAAa,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC/C,MAAM,IAAI,QAAQ,CAChB,kCAAkC,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACrF,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iCAAiC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,UAAU,SAAS,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAChH,OAAO,IAAI,CAAC;QACZ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,yCAAyC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1I,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,WAAW;IACX,KAAK,CAAC,YAAY,CAAC,MAAkB;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;YAC3E,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC;YACvE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,sCAAsC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvI,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,aAAa;IACb,KAAK,CAAC,WAAW,CAAC,MAAiB;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;YACpE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC;YACtE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,qCAAqC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtI,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,WAAW;IACX,KAAK,CAAC,SAAS,CAAC,MAAkB;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;YACxE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC;YACpE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mCAAmC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpI,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,WAAW;IACX,KAAK,CAAC,KAAK,CAAC,MAAkB;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;YACnE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC;YAChE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChI,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,KAAK,CAAC,UAAU,CAAC,MAAkB;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC;YACrE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oCAAoC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrI,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
|