borgmcp-shared 0.3.0 → 0.4.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 CHANGED
@@ -41,7 +41,7 @@ import { ADAPTER_CONFORMANCE_FIXTURES } from 'borgmcp-shared/conformance';
41
41
  The supported subpaths are:
42
42
 
43
43
  - `borgmcp-shared/protocol`: wire entities, requests, responses, errors, and
44
- protocol compatibility metadata.
44
+ the exact protocol version tag.
45
45
  - `borgmcp-shared/domain`: pure role-section, address, and high-water-mark
46
46
  helpers plus shared domain types.
47
47
  - `borgmcp-shared/conformance`: test-runner-independent behavior vectors and
@@ -67,16 +67,21 @@ The first-slice HTTP contract has four shared paths:
67
67
  credential-proven retry is non-mutating, and a mismatched replay fails
68
68
  uniformly. Secrets never belong in a response, URL, query string, command-line
69
69
  argument, diagnostic, or serializable domain entity.
70
- - `GET /api/protocol` requires authentication and returns the protocol version,
71
- package version, capabilities, and bounded limits in the shared envelope.
70
+ - `GET /api/protocol` is credential-free and mutation-free. It returns ONLY the
71
+ exact protocol tag — no package version, limits, server identity, or other
72
+ fingerprint surface — so a client verifies pinned TLS and the exact tag before
73
+ it creates or sends any credential.
72
74
  - `POST /api/cubes` requires an active parent client with `create_cube`. Its
73
75
  strict, idempotent request selects a server-owned template; one atomic success
74
76
  creates a cube, two initial roles, and the creator's cube-scoped `manage`
75
77
  grant. Exact retries return the same non-secret identities without mutation.
76
78
 
77
- `negotiateProtocol` requires bearer authentication, revocation, cube isolation,
78
- verified TLS, and no-cloud-fallback capabilities. Missing security capabilities
79
- fail closed before an operation begins.
79
+ `decodeProtocolTagPreflight` fails closed on any tag other than the exact
80
+ expected version, on any extra field, or on a non-object body before any
81
+ credential is created or sent. The exact protocol tag is the sole acceptance
82
+ authority: there is no capability negotiation, and client and server ship and
83
+ update together as one clean-slate product. The attach request envelope still
84
+ decodes its version before any payload as defense in depth.
80
85
 
81
86
  Every JSON coordination request and successful JSON response is carried inside
82
87
  `ProtocolEnvelope<T>`. Failures use `ProtocolErrorEnvelope`. The only bodyless
@@ -94,8 +99,7 @@ readonly data rather than Vitest-specific helpers, so they work with any test
94
99
  runner and in any JavaScript runtime. Cases cover HTTP and canonical errors,
95
100
  credential misuse, isolation and revocation, SSE framing/replay/cursor ordering,
96
101
  executable enrollment authority/retry/mismatch/redaction and cube-create
97
- idempotency, acks, claims, decisions, and
98
- unsupported-capability failures.
102
+ idempotency, acks, claims, and decisions.
99
103
 
100
104
  Implement `AdapterConformanceDriver` with raw responses from the target adapter,
101
105
  then call `runAdapterConformance`. The runner creates and decodes envelopes,
@@ -110,23 +114,27 @@ response shapes.
110
114
 
111
115
  ## Compatibility
112
116
 
113
- `PROTOCOL_VERSION`, `SUPPORTED_PROTOCOL_VERSIONS`, and `COMPATIBILITY_MATRIX`
114
- describe the compatibility contract. During the pre-1.0 package series, new
115
- contracts may be added, but an existing wire shape will not change without a
116
- documented migration path and corresponding conformance coverage. Consumers pin
117
- `^0.3.0` (`>=0.3.0 <0.4.0`): before 1.0, breaking wire changes increment the
118
- minor version while compatible additions and corrections increment the patch.
117
+ `PROTOCOL_VERSION` is the sole acceptance authority: every envelope carries the
118
+ protocol tag, and each decoder fails closed on any value other than the exact
119
+ expected tag. There is no capability negotiation, supported-version list,
120
+ compatibility matrix, or version-range fallback. The client and server are one
121
+ clean-slate product a wire change increments the tag and both adopt it
122
+ together in a coordinated release, with no mixed-version window.
119
123
 
120
- See [docs/compatibility.md](docs/compatibility.md) for the current matrix and
121
- the policy for introducing protocol changes.
124
+ See [docs/compatibility.md](docs/compatibility.md) for the exact-tag policy and
125
+ the coordinated rollout order for introducing protocol changes.
122
126
 
123
127
  ## Distribution
124
128
 
125
- `borgmcp-shared@0.2.2` is the published legacy baseline. This source prepares
126
- `0.3.0` for the breaking retry-safe enrollment and multi-cube creation contract;
127
- the version change does not authorize a tag or publication. After a separately
128
- authorized registry release, consumers adopting this contract pin
129
- `borgmcp-shared@^0.3.0` and commit registry lockfiles. No registry token belongs
129
+ `borgmcp-shared@0.3.0` is the published v1 baseline on the registry (its latest
130
+ release) and is immutable. This source now identifies the still-unpublished
131
+ `0.4.0` candidate for the breaking clean-slate v2 contract its package
132
+ manifest, lockfile, exported identity, and the SBOM / packed-artifact verifiers
133
+ all read `0.4.0`. This reviewed version bump grants no tag or publish authority
134
+ and must not republish `0.3.0`; creating the annotated `v0.4.0` tag and the
135
+ registry publication remain separate, independently gated steps. After that
136
+ separately authorized registry release, consumers adopting this contract pin
137
+ `borgmcp-shared@^0.4.0` and commit registry lockfiles. No registry token belongs
130
138
  in this repository, package metadata, lockfiles, or a committed `.npmrc`;
131
139
  publishing uses protected external credentials and provenance.
132
140
 
@@ -29,6 +29,7 @@ export interface ConformanceCreatedCubeState {
29
29
  export interface ConformanceEnrollmentPrincipalState {
30
30
  response_client_matches: boolean;
31
31
  active_credential_bindings: number;
32
+ bound_credential_matches_enrollment: boolean;
32
33
  }
33
34
  export interface ConformanceReplayBarrier {
34
35
  readonly reached: Promise<void>;
@@ -73,8 +74,11 @@ export declare const ADAPTER_CONFORMANCE_FIXTURES: readonly [{
73
74
  readonly id: "http.unauthenticated-liveness";
74
75
  readonly area: "http";
75
76
  }, {
76
- readonly id: "protocol.enrollment-auth";
77
+ readonly id: "protocol.credential-free-preflight";
77
78
  readonly area: "protocol";
79
+ }, {
80
+ readonly id: "enrollment.retry-authority";
81
+ readonly area: "enrollment";
78
82
  }, {
79
83
  readonly id: "security.adapter-boundary-injection";
80
84
  readonly area: "security";
@@ -102,9 +106,6 @@ export declare const ADAPTER_CONFORMANCE_FIXTURES: readonly [{
102
106
  }, {
103
107
  readonly id: "decisions.topic-supersession";
104
108
  readonly area: "decisions";
105
- }, {
106
- readonly id: "capabilities.unsupported-fails-closed";
107
- readonly area: "capabilities";
108
109
  }, {
109
110
  readonly id: "security.active-stream-revocation";
110
111
  readonly area: "security";
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/conformance/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/conformance/adapter.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
- import { ErrorCode, ProtocolContractError, compareLogCursor, createProtocolEnvelope, decodeCreateCubeResponseEnvelope, decodeAppendLogResultEnvelope, decodeDecisionResultEnvelope, decodeDecisionsResultEnvelope, decodeEnrollmentExchangeResponseEnvelope, decodeProtocolErrorEnvelope, decodeProtocolInfoEnvelope, decodeReadLogResultEnvelope, decodeSseFrames, negotiateProtocol, utf8ByteLength, } from '../protocol/index.js';
1
+ import { ErrorCode, compareLogCursor, createProtocolEnvelope, decodeCreateCubeResponseEnvelope, decodeAppendLogResultEnvelope, decodeDecisionResultEnvelope, decodeDecisionsResultEnvelope, decodeEnrollmentExchangeResponseEnvelope, decodeProtocolErrorEnvelope, decodeProtocolTagPreflight, decodeReadLogResultEnvelope, decodeSseFrames, PROTOCOL_LIMIT_CEILINGS, PROTOCOL_VERSION, utf8ByteLength, } from '../protocol/index.js';
2
2
  import { ENROLLMENT_RETRY_CONFORMANCE } from './index.js';
3
3
  export const ADAPTER_CONFORMANCE_FIXTURES = [
4
4
  { id: 'http.unauthenticated-liveness', area: 'http' },
5
- { id: 'protocol.enrollment-auth', area: 'protocol' },
5
+ { id: 'protocol.credential-free-preflight', area: 'protocol' },
6
+ { id: 'enrollment.retry-authority', area: 'enrollment' },
6
7
  { id: 'security.adapter-boundary-injection', area: 'security' },
7
8
  { id: 'security.oversize-request', area: 'security' },
8
9
  { id: 'security.cross-cube-isolation', area: 'security' },
@@ -12,7 +13,6 @@ export const ADAPTER_CONFORMANCE_FIXTURES = [
12
13
  { id: 'acks.idempotent', area: 'acks' },
13
14
  { id: 'claims.durable-noncursor', area: 'claims' },
14
15
  { id: 'decisions.topic-supersession', area: 'decisions' },
15
- { id: 'capabilities.unsupported-fails-closed', area: 'capabilities' },
16
16
  { id: 'security.active-stream-revocation', area: 'security' },
17
17
  ];
18
18
  const DEFAULT_STREAM_DEADLINE_MS = 5_000;
@@ -166,16 +166,22 @@ export async function runAdapterConformance(environment, options = {}) {
166
166
  let cubeB;
167
167
  let credentialA = '';
168
168
  let credentialB = '';
169
- let protocolBody;
170
- let protocolInfo = null;
171
169
  await record('http.unauthenticated-liveness', async () => {
172
170
  const response = await environment.operations.health();
173
171
  expectStatus(response, 204, 'Unauthenticated liveness');
174
172
  invariant(response.body === '' || response.body === undefined, 'Unauthenticated liveness exposed a response body.');
175
173
  return { status: 204, bodyless: true };
176
174
  });
177
- await record('protocol.enrollment-auth', async () => {
178
- expectError(await environment.operations.protocol(null), 401, ErrorCode.AUTH_MISSING, 'Unauthenticated protocol request');
175
+ await record('protocol.credential-free-preflight', async () => {
176
+ const before = await environment.admin.observeAuthorityState();
177
+ const response = await environment.operations.protocol(null);
178
+ expectStatus(response, 200, 'Credential-free protocol-tag preflight');
179
+ const preflight = decodeProtocolTagPreflight(response.body);
180
+ invariant(Object.keys(preflight).length === 1 && preflight.protocol_version === PROTOCOL_VERSION, 'Protocol-tag preflight exposed more than the exact tag.');
181
+ assertStateDelta(before, await environment.admin.observeAuthorityState(), {}, 'Protocol-tag preflight');
182
+ return { authenticated: false, mutation_free: true, protocol_version: preflight.protocol_version };
183
+ });
184
+ await record('enrollment.retry-authority', async () => {
179
185
  const retryVectorErrors = [];
180
186
  for (const [index, vector] of ENROLLMENT_RETRY_CONFORMANCE.entries()) {
181
187
  for (const purpose of ['client', 'owner']) {
@@ -212,13 +218,10 @@ export async function runAdapterConformance(environment, options = {}) {
212
218
  assertEnrollmentErrorIsSecretFree(retryResponse, [initialPayload, retryPayload], `${purpose} ${vector.name}`);
213
219
  }
214
220
  assertStateDelta(beforeRetry, await environment.admin.observeAuthorityState(), {}, `${purpose} ${vector.name} retry`);
215
- expectStatus(await environment.operations.protocol(vector.initial.client_credential), 200, `${purpose} ${vector.name} original credential continuity`);
216
- if (vector.retry.client_credential !== vector.initial.client_credential) {
217
- expectError(await environment.operations.protocol(vector.retry.client_credential), 401, ErrorCode.AUTH_INVALID, `${purpose} ${vector.name} mismatched credential rejection`);
218
- }
219
221
  invariant(same(await environment.admin.inspectEnrollmentPrincipal(principal, initial.client_id), {
220
222
  response_client_matches: true,
221
223
  active_credential_bindings: 1,
224
+ bound_credential_matches_enrollment: true,
222
225
  }), `${purpose} ${vector.name} changed enrollment binding ownership.`);
223
226
  }
224
227
  catch (error) {
@@ -358,32 +361,18 @@ export async function runAdapterConformance(environment, options = {}) {
358
361
  ...enrollmentARequest.payload,
359
362
  retry_key: '00000000-0000-4000-8000-000000000203',
360
363
  })), 401, ErrorCode.AUTH_INVALID, 'Enrollment retry mismatch');
361
- const protocolResponse = await environment.operations.protocol(credentialA);
362
- expectStatus(protocolResponse, 200, 'Authenticated protocol request');
363
- protocolBody = protocolResponse.body;
364
- protocolInfo = negotiateProtocol(decodeProtocolInfoEnvelope(protocolBody).payload, [
365
- 'log.cursor',
366
- 'stream.sse',
367
- 'stream.replay',
368
- 'acks',
369
- 'claims',
370
- 'decisions',
371
- ]);
372
364
  return {
373
- unauthenticated: ErrorCode.AUTH_MISSING,
374
365
  enrollment_status: 201,
375
366
  exact_retry_status: 201,
376
367
  mismatched_retry: ErrorCode.AUTH_INVALID,
377
368
  response_secret_free: true,
378
- protocol_version: protocolInfo.protocol_version,
379
369
  };
380
370
  });
381
371
  await record('security.adapter-boundary-injection', async () => {
382
- invariant(protocolInfo, 'Protocol fixture did not produce request limits.');
383
372
  const injectedMessage = "'); DROP TABLE log_entries; --\r\ndata: forged-sse-frame";
384
373
  const injectedBody = JSON.stringify(createProtocolEnvelope('inject-b1', { message: injectedMessage }));
385
- invariant(utf8ByteLength(injectedBody) <= protocolInfo.limits.max_request_bytes &&
386
- utf8ByteLength(injectedMessage) <= protocolInfo.limits.max_log_message_bytes, 'Injection fixture exceeded an advertised request limit.');
374
+ invariant(utf8ByteLength(injectedBody) <= PROTOCOL_LIMIT_CEILINGS.max_request_bytes &&
375
+ utf8ByteLength(injectedMessage) <= PROTOCOL_LIMIT_CEILINGS.max_log_message_bytes, 'Injection fixture exceeded the shared request-limit ceiling.');
387
376
  const injected = await environment.operations.appendRaw(credentialB, cubeB, injectedBody);
388
377
  expectStatus(injected, 201, 'Adapter-boundary injection append');
389
378
  const injectedEntry = decodeAppendLogResultEnvelope(injected.body).payload.entry;
@@ -417,10 +406,9 @@ export async function runAdapterConformance(environment, options = {}) {
417
406
  };
418
407
  });
419
408
  await record('security.oversize-request', async () => {
420
- invariant(protocolInfo, 'Protocol fixture did not produce request limits.');
421
409
  const baseBody = JSON.stringify(createProtocolEnvelope('oversize-a1', { message: 'must-not-persist' }));
422
- const oversizedBody = baseBody + ' '.repeat(Math.max(0, protocolInfo.limits.max_request_bytes - utf8ByteLength(baseBody) + 1));
423
- invariant(utf8ByteLength(oversizedBody) > protocolInfo.limits.max_request_bytes, 'Oversize fixture did not exceed max_request_bytes.');
410
+ const oversizedBody = baseBody + ' '.repeat(Math.max(0, PROTOCOL_LIMIT_CEILINGS.max_request_bytes - utf8ByteLength(baseBody) + 1));
411
+ invariant(utf8ByteLength(oversizedBody) > PROTOCOL_LIMIT_CEILINGS.max_request_bytes, 'Oversize fixture did not exceed max_request_bytes.');
424
412
  const response = await environment.operations.appendRaw(credentialA, cubeA, oversizedBody);
425
413
  expectError(response, 413, ErrorCode.CONTENT_TOO_LARGE, 'Oversized append request');
426
414
  const read = await environment.operations.read(credentialA, cubeA, createProtocolEnvelope('oversize-read', { cursor: null, limit: 10 }));
@@ -541,21 +529,6 @@ export async function runAdapterConformance(environment, options = {}) {
541
529
  invariant(second.supersedes === first.id, 'Superseding decision did not reference its predecessor.');
542
530
  return { active_count: 1, active_decision: 'second', supersedes_first: true };
543
531
  });
544
- await record('capabilities.unsupported-fails-closed', async () => {
545
- invariant(protocolBody, 'Protocol fixture did not produce an envelope.');
546
- let code = null;
547
- try {
548
- negotiateProtocol(decodeProtocolInfoEnvelope(protocolBody).payload, ['future.required']);
549
- }
550
- catch (error) {
551
- if (error instanceof ProtocolContractError)
552
- code = error.code;
553
- else
554
- throw error;
555
- }
556
- invariant(code === ErrorCode.UNSUPPORTED_CAPABILITY, 'Unsupported capability did not fail closed client-side.');
557
- return { code };
558
- });
559
532
  await record('security.active-stream-revocation', async () => {
560
533
  invariant(liveCursor, 'Stream fixture did not produce a live cursor.');
561
534
  const opened = await environment.operations.openStream(credentialA, cubeA, liveCursor);
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/conformance/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/conformance/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,sBAAsB,EACtB,gCAAgC,EAChC,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,wCAAwC,EACxC,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAC3B,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,GAIf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAoI1D,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,EAAE,EAAE,EAAE,+BAA+B,EAAE,IAAI,EAAE,MAAM,EAAE;IACrD,EAAE,EAAE,EAAE,oCAAoC,EAAE,IAAI,EAAE,UAAU,EAAE;IAC9D,EAAE,EAAE,EAAE,4BAA4B,EAAE,IAAI,EAAE,YAAY,EAAE;IACxD,EAAE,EAAE,EAAE,qCAAqC,EAAE,IAAI,EAAE,UAAU,EAAE;IAC/D,EAAE,EAAE,EAAE,2BAA2B,EAAE,IAAI,EAAE,UAAU,EAAE;IACrD,EAAE,EAAE,EAAE,+BAA+B,EAAE,IAAI,EAAE,UAAU,EAAE;IACzD,EAAE,EAAE,EAAE,uBAAuB,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC/C,EAAE,EAAE,EAAE,4BAA4B,EAAE,IAAI,EAAE,KAAK,EAAE;IACjD,EAAE,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChD,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE;IACvC,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,QAAQ,EAAE;IAClD,EAAE,EAAE,EAAE,8BAA8B,EAAE,IAAI,EAAE,WAAW,EAAE;IACzD,EAAE,EAAE,EAAE,mCAAmC,EAAE,IAAI,EAAE,UAAU,EAAE;CACrD,CAAC;AAoCX,MAAM,0BAA0B,GAAG,KAAK,CAAC;AACzC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAEpC,SAAS,SAAS,CAAC,SAAkB,EAAE,OAAe;IACpD,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,aAAa,CAAC,QAAiC;IACtD,IAAI,CAAC;QACH,OAAO,2BAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,YAAoB;IACjC,MAAM,eAAe,GAAI,UAEvB,CAAC,UAAU,CAAC;IACd,IAAI,CAAC,eAAe;QAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAC7F,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,KAAK,UAAU,MAAM,CACnB,OAAmB,EACnB,WAAmB,EACnB,UAAkB;IAElB,MAAM,MAAM,GAAG,UAGd,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAW,CAAC,GAAG,EAAE;YACpC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,WAAW,0BAA0B,UAAU,KAAK,CAAC,CAAC,CAAC;QAC7E,CAAC,EAAE,UAAU,CAAC,CAAC;QACf,OAAO,CAAC,IAAI,CACV,CAAC,KAAK,EAAE,EAAE;YACR,MAAM,CAAC,YAAa,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,MAAM,CAAC,YAAa,CAAC,KAAK,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,OAAmB,EACnB,WAAmB,EACnB,OAAe;IAEf,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;QACjC,OAAO,CAAC,IAAI,CACV,GAAG,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,CAAC,IAAI,CACX;QACD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;KACjC,CAAC,CAAC;IACH,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,WAAW,+BAA+B,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,cAAc;IACD,QAAQ,CAAwB;IACzC,MAAM,GAAG,EAAE,CAAC;IACZ,KAAK,GAAG,KAAK,CAAC;IAEtB,YAAY,MAA6B;QACvC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;iBACtB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;iBACtB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;gBAClB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC1D,SAAS,CAAC,KAAK,EAAE,oCAAoC,CAAC,CAAC;gBACvD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC5D,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;oBAAE,SAAS;gBAClC,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;gBAC/C,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,2CAA2C,CAAC,CAAC;gBAC5E,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;YAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;oBAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;gBAC7F,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACzC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,SAAS;YACX,CAAC;YACD,SAAS,CAAC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,wCAAwC,CAAC,CAAC;YACrF,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IACzD,CAAC;CACF;AAED,SAAS,YAAY,CAAC,QAAiC,EAAE,MAAc,EAAE,SAAiB;IACxF,SAAS,CACP,QAAQ,CAAC,MAAM,KAAK,MAAM,EAC1B,GAAG,SAAS,kBAAkB,QAAQ,CAAC,MAAM,cAAc,MAAM,GAAG,CACrE,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,QAAiC,EACjC,MAAc,EACd,IAAe,EACf,SAAiB;IAEjB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC1C,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,GAAG,SAAS,mBAAmB,IAAI,GAAG,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,QAAQ,CAAC,KAAkB,EAAE,WAAmB;IACvD,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,GAAG,WAAW,aAAa,KAAK,CAAC,IAAI,oBAAoB,CAAC,CAAC;IAC3F,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,IAAI,CAAC,IAAa,EAAE,KAAc;IACzC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,gBAAgB,CACvB,MAAiC,EACjC,KAAgC,EAChC,QAA4C,EAC5C,WAAmB;IAEnB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAA2C,EAAE,CAAC;QAChF,SAAS,CACP,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EACjD,GAAG,WAAW,YAAY,GAAG,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAChG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,iCAAiC,CACxC,QAAiC,EACjC,QAAyF,EACzF,WAAmB;IAEnB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACpD,OAAO,CAAC,UAAU;QAClB,OAAO,CAAC,SAAS;QACjB,OAAO,CAAC,iBAAiB;KAC1B,CAAC,CAAC,CAAC;IACJ,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,SAAS,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,WAAW,qCAAqC,CAAC,CAAC;IAC/F,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,QAAiC,EACjC,MAAc,EACd,IAAe,EACf,SAAiB,EACjB,OAA0B;IAE1B,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,KAAK,MAAM,MAAM,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,SAAS,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,0BAA0B,CAAC,CAAC;IAClF,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAAmC,EACnC,UAAqC,EAAE;IAEvC,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,0BAA0B,CAAC;IAChF,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,wBAAwB,CAAC;IAC1E,SAAS,CAAC,gBAAgB,GAAG,CAAC,EAAE,oCAAoC,CAAC,CAAC;IACtE,SAAS,CAAC,cAAc,GAAG,CAAC,EAAE,kCAAkC,CAAC,CAAC;IAClE,MAAM,OAAO,GAA+B,EAAE,CAAC;IAC/C,MAAM,MAAM,GAAG,KAAK,EAClB,EAA+B,EAC/B,OAA+C,EAChC,EAAE;QACjB,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,OAAO,EAAE,EAAE,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE;gBACF,EAAE,EAAE,KAAK;gBACT,YAAY,EAAE,EAAE;gBAChB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAChC,IAAI,UAAiC,CAAC;IACtC,IAAI,UAAiC,CAAC;IACtC,IAAI,KAAuB,CAAC;IAC5B,IAAI,KAAuB,CAAC;IAE5B,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,MAAM,MAAM,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACvD,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,0BAA0B,CAAC,CAAC;QACxD,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,mDAAmD,CAAC,CAAC;QACpH,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAI5D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAC/D,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7D,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,wCAAwC,CAAC,CAAC;QACtE,MAAM,SAAS,GAAG,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5D,SAAS,CACP,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,gBAAgB,KAAK,gBAAgB,EACtF,yDAAyD,CAC1D,CAAC;QACF,gBAAgB,CAAC,MAAM,EAAE,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,EAAE,EAAE,wBAAwB,CAAC,CAAC;QACxG,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,CAAC,gBAAgB,EAAE,CAAC;IACrG,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,4BAA4B,CAAC,OAAO,EAAE,EAAE,CAAC;YACrE,KAAK,MAAM,OAAO,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAU,EAAE,CAAC;gBACnD,MAAM,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,OAAO,iBAAiB,KAAK,EAAE,CAAC,CAAC;oBAC9F,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,wBAAwB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBACxF,MAAM,cAAc,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;oBACzD,MAAM,YAAY,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC;oBACrD,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;oBACtE,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CACzD,sBAAsB,CAAC,SAAS,KAAK,UAAU,EAAE,cAAc,CAAC,CACjE,CAAC;oBACF,YAAY,CAAC,eAAe,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,kBAAkB,CAAC,CAAC;oBACrE,MAAM,OAAO,GAAG,wCAAwC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;oBACvF,SAAS,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE,GAAG,OAAO,IAAI,MAAM,CAAC,IAAI,8BAA8B,CAAC,CAAC;oBAChG,SAAS,CACP,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAC7E,GAAG,OAAO,IAAI,MAAM,CAAC,IAAI,uCAAuC,CACjE,CAAC;oBACF,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;oBACrE,gBAAgB,CACd,aAAa,EACb,YAAY,EACZ;wBACE,gBAAgB,EAAE,CAAC;wBACnB,iBAAiB,EAAE,CAAC;wBACpB,mBAAmB,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACjD,EACD,GAAG,OAAO,IAAI,MAAM,CAAC,IAAI,kBAAkB,CAC5C,CAAC;oBAEF,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;oBACpE,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CACvD,sBAAsB,CAAC,SAAS,KAAK,QAAQ,EAAE,YAAY,CAAC,CAC7D,CAAC;oBACF,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,KAAK,4BAA4B,EAAE,CAAC;wBAC7D,YAAY,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;wBAC9D,MAAM,KAAK,GAAG,wCAAwC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;wBACnF,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,GAAG,OAAO,IAAI,MAAM,CAAC,IAAI,iCAAiC,CAAC,CAAC;wBAC5F,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,yBAAyB,EAAE,CAAC;4BAC9D,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,GAAG,OAAO,IAAI,MAAM,CAAC,IAAI,6BAA6B,KAAK,GAAG,CAAC,CAAC;wBAC/F,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,GAAG,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;wBACxG,iCAAiC,CAC/B,aAAa,EACb,CAAC,cAAc,EAAE,YAAY,CAAC,EAC9B,GAAG,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,CAC5B,CAAC;oBACJ,CAAC;oBACD,gBAAgB,CAAC,WAAW,EAAE,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,IAAI,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC;oBACtH,SAAS,CACP,IAAI,CAAC,MAAM,WAAW,CAAC,KAAK,CAAC,0BAA0B,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE;wBACrF,uBAAuB,EAAE,IAAI;wBAC7B,0BAA0B,EAAE,CAAC;wBAC7B,mCAAmC,EAAE,IAAI;qBAC1C,CAAC,EACF,GAAG,OAAO,IAAI,MAAM,CAAC,IAAI,wCAAwC,CAClE,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,iBAAiB,CAAC,IAAI,CACpB,GAAG,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACvF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,SAAS,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAEzE,MAAM,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACxE,MAAM,iBAAiB,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAC9E,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,wBAAwB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAClG,MAAM,kBAAkB,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QACzG,MAAM,eAAe,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;QAC7C,MAAM,kBAAkB,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;QAChD,MAAM,yBAAyB,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAClF,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,sBAAsB,CAAC,cAAc,EAAE;YAC/F,UAAU,EAAE,eAAe;YAC3B,SAAS,EAAE,sCAAsC;YACjD,iBAAiB,EAAE,eAAe;YAClC,WAAW,EAAE,cAAc;SAC5B,CAAC,CAAC,CAAC;QACJ,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,sBAAsB,CAAC,iBAAiB,EAAE;YACrG,UAAU,EAAE,kBAAkB;YAC9B,SAAS,EAAE,sCAAsC;YACjD,iBAAiB,EAAE,kBAAkB;YACrC,WAAW,EAAE,iBAAiB;SAC/B,CAAC,CAAC,CAAC;QACJ,YAAY,CAAC,aAAa,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAC;QACrD,YAAY,CAAC,gBAAgB,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,wCAAwC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QACnF,MAAM,QAAQ,GAAG,wCAAwC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QACzF,SAAS,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,sDAAsD,CAAC,CAAC;QACjJ,SAAS,CAAC,QAAQ,CAAC,OAAO,KAAK,QAAQ,IAAI,QAAQ,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,uCAAuC,CAAC,CAAC;QAC/H,gBAAgB,CACd,yBAAyB,EACzB,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAC/C,EAAE,gBAAgB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,EACrE,+BAA+B,CAChC,CAAC;QAEF,MAAM,WAAW,GAAG;YAClB,SAAS,EAAE,sCAAsC;YACjD,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,SAAS;SACpB,CAAC;QACF,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAClF,MAAM,kBAAkB,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAC3E,qBAAqB,CACnB,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,sBAAsB,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC,EACvG,GAAG,EACH,SAAS,CAAC,YAAY,EACtB,0BAA0B,EAC1B,CAAC,WAAW,CAAC,SAAS,CAAC,CACxB,CAAC;QACF,qBAAqB,CACnB,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC,EACvH,GAAG,EACH,SAAS,CAAC,YAAY,EACtB,0BAA0B,EAC1B,CAAC,WAAW,CAAC,SAAS,CAAC,CACxB,CAAC;QACF,qBAAqB,CACnB,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,EAC/G,GAAG,EACH,SAAS,CAAC,aAAa,EACvB,sBAAsB,EACtB,CAAC,WAAW,CAAC,SAAS,CAAC,CACxB,CAAC;QACF,qBAAqB,CACnB,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,eAAe,EAAE,sBAAsB,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC,EAClH,GAAG,EACH,SAAS,CAAC,aAAa,EACvB,2BAA2B,EAC3B,CAAC,WAAW,CAAC,SAAS,CAAC,CACxB,CAAC;QACF,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,EAAE,EAAE,6BAA6B,CAAC,CAAC;QACzH,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;QACrE,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,eAAe,EAAE,sBAAsB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;QACrI,YAAY,CAAC,eAAe,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,gCAAgC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QAC/E,gBAAgB,CAAC,YAAY,EAAE,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;QACjK,SAAS,CACP,IAAI,CAAC,MAAM,WAAW,CAAC,KAAK,CAAC,kBAAkB,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE;YACxE,WAAW,EAAE,IAAI;YACjB,iBAAiB,EAAE,IAAI;YACvB,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,uBAAuB,EAAE,IAAI;YAC7B,2BAA2B,EAAE,IAAI;SAClC,CAAC,EACF,mFAAmF,CACpF,CAAC;QACF,MAAM,iBAAiB,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAC1E,MAAM,qBAAqB,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,eAAe,EAAE,sBAAsB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;QAC1I,YAAY,CAAC,qBAAqB,EAAE,GAAG,EAAE,yBAAyB,CAAC,CAAC;QACpE,SAAS,CAAC,IAAI,CAAC,gCAAgC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,wDAAwD,CAAC,CAAC;QACzJ,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,EAAE,EAAE,yBAAyB,CAAC,CAAC;QACpH,MAAM,oBAAoB,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAC7E,qBAAqB,CACnB,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,eAAe,EAAE,sBAAsB,CAAC,eAAe,EAAE,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,EAC7I,GAAG,EACH,SAAS,CAAC,aAAa,EACvB,4BAA4B,EAC5B,CAAC,WAAW,CAAC,SAAS,CAAC,CACxB,CAAC;QACF,gBAAgB,CAAC,oBAAoB,EAAE,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,EAAE,EAAE,4BAA4B,CAAC,CAAC;QAC1H,MAAM,WAAW,CAAC,KAAK,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;QACrE,MAAM,kBAAkB,GAAG,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;QAC3E,MAAM,uBAAuB,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAChF,MAAM,mBAAmB,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CACjE,kBAAkB,EAClB,sBAAsB,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAChE,CAAC;QACF,YAAY,CAAC,mBAAmB,EAAE,GAAG,EAAE,gDAAgD,CAAC,CAAC;QACzF,MAAM,kBAAkB,GAAG,gCAAgC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QAC9F,SAAS,CAAC,kBAAkB,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,uDAAuD,CAAC,CAAC;QACnH,gBAAgB,CACd,uBAAuB,EACvB,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAC/C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAC1D,0BAA0B,CAC3B,CAAC;QACF,SAAS,CACP,CAAC,MAAM,WAAW,CAAC,KAAK,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,EACrG,qEAAqE,CACtE,CAAC;QACF,MAAM,sBAAsB,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAC/E,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAC9D,kBAAkB,EAClB,sBAAsB,CAAC,yBAAyB,EAAE,kBAAkB,CAAC,CACtE,CAAC;QACF,YAAY,CAAC,gBAAgB,EAAE,GAAG,EAAE,sCAAsC,CAAC,CAAC;QAC5E,SAAS,CACP,IAAI,CAAC,gCAAgC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,kBAAkB,CAAC,EACzF,qEAAqE,CACtE,CAAC;QACF,gBAAgB,CAAC,sBAAsB,EAAE,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,EAAE,EAAE,sCAAsC,CAAC,CAAC;QACtI,MAAM,kBAAkB,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAC3E,MAAM,qBAAqB,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,eAAe,EAAE,sBAAsB,CAAC,oBAAoB,EAAE;YAClI,GAAG,WAAW;YACd,SAAS,EAAE,sCAAsC;YACjD,IAAI,EAAE,gBAAgB;SACvB,CAAC,CAAC,CAAC;QACJ,YAAY,CAAC,qBAAqB,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,gCAAgC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QAC3F,SAAS,CAAC,aAAa,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,sDAAsD,CAAC,CAAC;QAC7G,gBAAgB,CACd,kBAAkB,EAClB,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAC/C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAC1D,oBAAoB,CACrB,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QACxD,MAAM,mBAAmB,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAC5E,qBAAqB,CACnB,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,eAAe,EAAE,sBAAsB,CAAC,cAAc,EAAE;YAC9F,GAAG,WAAW;YACd,SAAS,EAAE,sCAAsC;SAClD,CAAC,CAAC,EACH,GAAG,EACH,SAAS,CAAC,eAAe,EACzB,2BAA2B,EAC3B,CAAC,sCAAsC,CAAC,CACzC,CAAC;QACF,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,EAAE,EAAE,2BAA2B,CAAC,CAAC;QAExH,MAAM,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAChC,UAAU,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QACpE,UAAU,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QACpE,KAAK,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACrD,KAAK,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACrD,MAAM,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,wBAAwB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC3F,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,wBAAwB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC3F,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7B,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,WAAW,EAAE;YAC7D,UAAU,EAAE,WAAW;YACvB,SAAS,EAAE,sCAAsC;YACjD,iBAAiB,EAAE,WAAW;YAC9B,WAAW,EAAE,eAAe;SAC7B,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,WAAW,EAAE;YAC7D,UAAU,EAAE,WAAW;YACvB,SAAS,EAAE,sCAAsC;YACjD,iBAAiB,EAAE,WAAW;YAC9B,WAAW,EAAE,eAAe;SAC7B,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAClF,MAAM,iBAAiB,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAClF,YAAY,CAAC,iBAAiB,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAC;QAC/D,YAAY,CAAC,iBAAiB,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,wCAAwC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QAC3F,MAAM,SAAS,GAAG,wCAAwC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QAC3F,SAAS,CAAC,SAAS,CAAC,OAAO,KAAK,QAAQ,IAAI,SAAS,CAAC,OAAO,KAAK,QAAQ,EAAE,+CAA+C,CAAC,CAAC;QAC7H,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,mDAAmD,CAAC,CAAC;QACzJ,SAAS,CAAC,CAAC,CAAC,YAAY,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,YAAY,IAAI,SAAS,CAAC,EAAE,wCAAwC,CAAC,CAAC;QAClH,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACjF,YAAY,CAAC,gBAAgB,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAC;QAC9D,SAAS,CACP,IAAI,CAAC,SAAS,CAAC,wCAAwC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YACvF,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EACzB,uDAAuD,CACxD,CAAC;QACF,WAAW,CACT,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,sBAAsB,CAAC,mBAAmB,EAAE;YAC9E,GAAG,kBAAkB,CAAC,OAAO;YAC7B,SAAS,EAAE,sCAAsC;SAClD,CAAC,CAAC,EACH,GAAG,EACH,SAAS,CAAC,YAAY,EACtB,2BAA2B,CAC5B,CAAC;QACF,OAAO;YACL,iBAAiB,EAAE,GAAG;YACtB,kBAAkB,EAAE,GAAG;YACvB,gBAAgB,EAAE,SAAS,CAAC,YAAY;YACxC,oBAAoB,EAAE,IAAI;SAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,eAAe,GAAG,0DAA0D,CAAC;QACnF,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CACjC,sBAAsB,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAClE,CAAC;QACF,SAAS,CACP,cAAc,CAAC,YAAY,CAAC,IAAI,uBAAuB,CAAC,iBAAiB;YACvE,cAAc,CAAC,eAAe,CAAC,IAAI,uBAAuB,CAAC,qBAAqB,EAClF,8DAA8D,CAC/D,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,SAAS,CACrD,WAAW,EACX,KAAK,EACL,YAAY,CACb,CAAC;QACF,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,mCAAmC,CAAC,CAAC;QACjE,MAAM,aAAa,GAAG,6BAA6B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QACjF,SAAS,CAAC,aAAa,CAAC,OAAO,KAAK,eAAe,EAAE,2DAA2D,CAAC,CAAC;QAElH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CAClD,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAC5E,CAAC;QACF,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,gCAAgC,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAC5C,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACnE,CAAC;QACF,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtG,SAAS,CACP,IAAI,CAAC,QAAQ,EAAE,CAAC,eAAe,EAAE,yBAAyB,CAAC,CAAC,EAC5D,+DAA+D,CAChE,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACjF,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,4BAA4B,CAAC,CAAC;QACxD,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,kDAAkD,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,QAAQ,CACpB,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,EACnE,oBAAoB,CACrB,CAAC;YACF,MAAM,MAAM,GAAG,QAAQ,CACrB,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,mCAAmC,EAAE,gBAAgB,CAAC,EAClF,mCAAmC,CACpC,CAAC;YACF,SAAS,CACP,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,eAAe,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,yBAAyB,EAC7F,wDAAwD,CACzD,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;YAC1F,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,uDAAuD,CAAC,CAAC;QACnG,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QACD,OAAO;YACL,MAAM,EAAE,GAAG;YACX,iBAAiB,EAAE,IAAI;YACvB,0BAA0B,EAAE,IAAI;YAChC,gBAAgB,EAAE,CAAC;YACnB,UAAU,EAAE,CAAC;SACd,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAC7B,sBAAsB,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CACvE,CAAC;QACF,MAAM,aAAa,GAAG,QAAQ,GAAG,GAAG,CAAC,MAAM,CACzC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC,iBAAiB,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CACtF,CAAC;QACF,SAAS,CACP,cAAc,CAAC,aAAa,CAAC,GAAG,uBAAuB,CAAC,iBAAiB,EACzE,oDAAoD,CACrD,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QAC3F,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,iBAAiB,EAAE,0BAA0B,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAC5C,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACrE,CAAC;QACF,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC;QAC9C,SAAS,CACP,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EACnE,mDAAmD,CACpD,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CACtD,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CACvE,CAAC;QACF,YAAY,CAAC,YAAY,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAC9C,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAClE,CAAC;QACF,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QACjE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAA+D,EAAE,CAAC;IAC/E,IAAI,UAAU,GAAqB,IAAI,CAAC;IACxC,MAAM,MAAM,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;QAC/C,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACpE,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CAClD,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,WAAW,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAC5D,CAAC;YACF,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,OAAO,EAAE,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,6BAA6B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAChD,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CACjE,CAAC;QACF,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,2BAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QAChE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,8CAA8C,CAAC,CAAC;QAC/H,SAAS,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE,wCAAwC,CAAC,CAAC;QAC3F,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,+BAA+B,CAAC,CAAC;QACjE,SAAS,CACP,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,EACpF,6DAA6D,CAC9D,CAAC;QACF,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC;IACxG,CAAC,CAAC,CAAC;IAEH,IAAI,UAAU,GAAqB,IAAI,CAAC;IACxC,MAAM,MAAM,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QACpD,SAAS,CAAC,UAAU,EAAE,0CAA0C,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;QACxD,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACtF,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,CAAC,CAAC;QAC9E,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAC/C,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAC1D,CAAC;YACF,YAAY,CAAC,MAAM,WAAW,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;QAC5D,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,CAAC;QACjF,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC;QAChD,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,uDAAuD,CAAC,CAAC;QAClF,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,QAAQ,CAAC,CAAC;YACjG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE,wDAAwD,CAAC,CAAC;YACtG,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,gCAAgC,CAAC,CAAC;YAC7F,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,wBAAwB,EAAE,gBAAgB,CAAC,EAAE,mBAAmB,CAAC,CAAC;YACrH,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE,sDAAsD,CAAC,CAAC;YACnG,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,oCAAoC,CAAC,CAAC;YACnG,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,0BAA0B,EAAE,gBAAgB,CAAC,CAAC;YAC3F,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,QAAQ,CAAC,eAAe,EAAE,8CAA8C,CAAC,CAAC;YACpH,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,YAAY,CAAC,WAAW,EAAE,yBAAyB,EAAE,cAAc,CAAC,CAAC;YAC3E,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CACzD,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAC5D,CAAC;YACF,YAAY,CAAC,eAAe,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,WAAW,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,EAAE,aAAa,CAAC,CAAC;YAC3G,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,+CAA+C,CAAC,CAAC;YAChG,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,sCAAsC,CAAC,CAAC;YACtG,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,qCAAqC,CAAC,CAAC;YAC1H,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;YAC5B,OAAO,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;QAClG,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QAChD,SAAS,CAAC,UAAU,EAAE,0CAA0C,CAAC,CAAC;QAClE,MAAM,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAChD,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAC1E,CAAC;QACF,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACvF,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC;QAC5E,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,8CAA8C,CAAC,CAAC;QAClF,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,cAAc,EAAE,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QACzC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,0CAA0C,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,sBAAsB,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/F,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7E,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,uBAAuB,CAAC,CAAC;QAClD,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,0BAA0B,CAAC,CAAC;QACtD,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,6CAA6C,CAAC,CAAC;QAC/J,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QAClD,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,2CAA2C,CAAC,CAAC;QACjF,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,GAAG,CAC5C,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CACnF,CAAC;QACF,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAC5C,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACzE,CAAC;QACF,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QAC5D,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,yCAAyC,CAAC,CAAC;QAChF,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,gCAAgC,CAAC,CAAC;QACrH,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,wCAAwC,CAAC,CAAC;QACrH,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,cAAc,CAC/D,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAC7E,CAAC;QACF,YAAY,CAAC,aAAa,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,4BAA4B,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QAChF,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,cAAc,CAChE,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CACzG,CAAC;QACF,YAAY,CAAC,cAAc,EAAE,GAAG,EAAE,sBAAsB,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,4BAA4B,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QAClF,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,aAAa,CAC7D,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,WAAW,EAAE,EAAE,CAAC,CACxC,CAAC;QACF,YAAY,CAAC,YAAY,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,6BAA6B,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAClF,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE,qEAAqE,CAAC,CAAC;QACzI,SAAS,CAAC,MAAM,CAAC,UAAU,KAAK,KAAK,CAAC,EAAE,EAAE,yDAAyD,CAAC,CAAC;QACrG,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QAC3D,SAAS,CAAC,UAAU,EAAE,+CAA+C,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACvF,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAC;QACpD,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,yDAAyD,CAAC,CAAC;QACpF,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,kCAAkC,EAAE,gBAAgB,CAAC,CAAC;YACnG,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,QAAQ,CAAC,eAAe,EAAE,4CAA4C,CAAC,CAAC;YAClH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,YAAY,CAAC,OAAO,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC;YAChE,MAAM,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,CAAC,CAAC;YACxE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;oBAAE,MAAM,KAAK,CAAC;gBACpF,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;YACD,SAAS,CAAC,UAAU,EAAE,qDAAqD,CAAC,CAAC;QAC/E,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAChD,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAC1E,CAAC;QACF,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,eAAe,EAAE,yBAAyB,CAAC,CAAC;QACjF,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,eAAe,EAAE,SAAS,CAAC,eAAe,EAAE,CAAC;IACzG,CAAC,CAAC,CAAC;IAEH,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAC3F,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;AACrF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,KAA6B,EAC7B,KAA6B,EAC7B,UAAqC,EAAE;IAEvC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACnD,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;QACrC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;KACtC,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAC5F,OAAO;QACL,EAAE,EAAE,WAAW,CAAC,EAAE,IAAI,WAAW,CAAC,EAAE,IAAI,UAAU;QAClD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,WAAW;QAClB,UAAU;KACX,CAAC;AACJ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { ErrorCode } from './errors.js';
2
2
  import { type ProtocolVersion } from './version.js';
3
3
  export declare const SHARED_PACKAGE_NAME: "borgmcp-shared";
4
- export declare const SHARED_PACKAGE_VERSION: "0.3.0";
4
+ export declare const SHARED_PACKAGE_VERSION: "0.4.0";
5
5
  export declare const HEALTH_PATH: "/healthz";
6
6
  export declare const PROTOCOL_INFO_PATH: "/api/protocol";
7
7
  export declare const ENROLLMENT_EXCHANGE_PATH: "/api/enrollment/exchange";
@@ -17,7 +17,7 @@ export declare const PROTOCOL_HTTP_CONTRACT: {
17
17
  readonly protocol: {
18
18
  readonly method: "GET";
19
19
  readonly path: "/api/protocol";
20
- readonly authenticated: true;
20
+ readonly authenticated: false;
21
21
  readonly success_status: 200;
22
22
  };
23
23
  readonly enrollment: {
@@ -37,7 +37,6 @@ export declare const PROTOCOL_HTTP_CONTRACT: {
37
37
  readonly cursor_expired_status: 410;
38
38
  readonly content_too_large_status: 413;
39
39
  readonly unsupported_protocol_status: 426;
40
- readonly unsupported_capability_status: 501;
41
40
  readonly redirect_policy: "error";
42
41
  };
43
42
  export declare const PROTOCOL_LIMIT_CEILINGS: {
@@ -46,24 +45,8 @@ export declare const PROTOCOL_LIMIT_CEILINGS: {
46
45
  readonly max_read_page_size: 500;
47
46
  readonly max_replay_page_size: 1000;
48
47
  };
49
- export declare const KNOWN_CAPABILITIES: readonly ["coordination.core", "auth.bearer", "auth.revocation", "auth.retry-safe-enrollment", "scope.cube-isolation", "transport.tls", "authority.no-cloud-fallback", "log.cursor", "stream.sse", "stream.replay", "acks", "claims", "decisions"];
50
- export type KnownCapability = (typeof KNOWN_CAPABILITIES)[number];
51
- export type Capability = KnownCapability | (string & {});
52
- export declare const REQUIRED_SECURITY_CAPABILITIES: readonly ["auth.bearer", "auth.revocation", "auth.retry-safe-enrollment", "scope.cube-isolation", "transport.tls", "authority.no-cloud-fallback"];
53
- export interface ProtocolLimits {
54
- max_request_bytes: number;
55
- max_log_message_bytes: number;
56
- max_read_page_size: number;
57
- max_replay_page_size: number;
58
- }
59
- export interface ProtocolInfo {
48
+ export interface ProtocolTagPreflight {
60
49
  protocol_version: ProtocolVersion;
61
- package: {
62
- name: typeof SHARED_PACKAGE_NAME;
63
- version: string;
64
- };
65
- capabilities: Capability[];
66
- limits: ProtocolLimits;
67
50
  }
68
51
  export interface ProtocolEnvelope<T> {
69
52
  protocol_version: ProtocolVersion;
@@ -78,8 +61,6 @@ export interface ProtocolErrorEnvelope {
78
61
  message: string;
79
62
  details?: string;
80
63
  retry_after?: number;
81
- required_capability?: string;
82
- supported_versions?: readonly string[];
83
64
  };
84
65
  }
85
66
  export interface EnrollmentExchangeRequest {
@@ -133,11 +114,10 @@ export declare class ProtocolContractError extends Error {
133
114
  constructor(message: string, code?: ErrorCode, path?: readonly (string | number)[]);
134
115
  }
135
116
  export declare function utf8ByteLength(value: string): number;
136
- export declare function decodeProtocolInfo(value: unknown): ProtocolInfo;
137
- export declare function negotiateProtocol(value: unknown, requiredCapabilities?: readonly Capability[]): ProtocolInfo;
117
+ export declare function createProtocolTagPreflight(): ProtocolTagPreflight;
118
+ export declare function decodeProtocolTagPreflight(value: unknown): ProtocolTagPreflight;
138
119
  export declare function createProtocolEnvelope<T>(requestId: string, payload: T): ProtocolEnvelope<T>;
139
120
  export declare function decodeProtocolEnvelope<T>(value: unknown, decodePayload: (payload: unknown) => T): ProtocolEnvelope<T>;
140
- export declare function decodeProtocolInfoEnvelope(value: unknown): ProtocolEnvelope<ProtocolInfo>;
141
121
  export declare function decodeProtocolErrorEnvelope(value: unknown): ProtocolErrorEnvelope;
142
122
  export declare function decodeEnrollmentExchangeRequest(value: unknown): EnrollmentExchangeRequest;
143
123
  export declare function decodeEnrollmentExchangeRequestEnvelope(value: unknown): ProtocolEnvelope<EnrollmentExchangeRequest>;
@@ -159,4 +139,42 @@ export declare function decodeOpaqueIdentifier(value: unknown, path?: readonly (
159
139
  export declare function redactProtocolDiagnostic(value: string): string;
160
140
  export declare function compareLogCursor(a: LogCursor, b: LogCursor): -1 | 0 | 1;
161
141
  export declare function maxLogCursor(a: LogCursor | null, b: LogCursor | null): LogCursor | null;
142
+ export declare const ATTACH_PATH: "/api/client/attach";
143
+ export interface AttachRequest {
144
+ cube_id: string;
145
+ role_id: string;
146
+ session_credential: string;
147
+ prior_drone_id?: string;
148
+ }
149
+ export interface AttachCube {
150
+ id: string;
151
+ name: string;
152
+ }
153
+ export type AttachRoleClass = 'queen' | 'worker';
154
+ export interface AttachRole {
155
+ id: string;
156
+ name: string;
157
+ role_class?: AttachRoleClass;
158
+ is_human_seat?: boolean;
159
+ }
160
+ export interface AttachDrone {
161
+ id: string;
162
+ label: string;
163
+ }
164
+ export interface AttachSession {
165
+ id: string;
166
+ expires_at: string;
167
+ }
168
+ export interface AttachResponse {
169
+ result: 'created' | 'reused';
170
+ cube: AttachCube;
171
+ role: AttachRole;
172
+ drone: AttachDrone;
173
+ session: AttachSession;
174
+ }
175
+ export declare function decodeAttachRequest(value: unknown): AttachRequest;
176
+ export declare function createAttachRequestEnvelope(requestId: string, payload: AttachRequest): ProtocolEnvelope<AttachRequest>;
177
+ export declare function decodeAttachRequestEnvelope(value: unknown): ProtocolEnvelope<AttachRequest>;
178
+ export declare function decodeAttachResponse(value: unknown): AttachResponse;
179
+ export declare function decodeAttachResponseEnvelope(value: unknown): ProtocolEnvelope<AttachResponse>;
162
180
  //# sourceMappingURL=contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/protocol/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/protocol/contract.ts"],"names":[],"mappings":"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"}