@betterportal/config-manager 10.6.8 → 10.6.10

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.
Files changed (62) hide show
  1. package/lib/.bsb/clients/service-betterportal-config-manager.d.ts +27 -8
  2. package/lib/.bsb/clients/service-betterportal-config-manager.d.ts.map +1 -1
  3. package/lib/.bsb/clients/service-betterportal-config-manager.js +19 -6
  4. package/lib/.bsb/clients/service-betterportal-config-manager.js.map +1 -1
  5. package/lib/bp-contracts/org.betterportal.config-manager.json +4 -2
  6. package/lib/plugins/service-betterportal-config-manager/.bp-generated/registry.d.ts +10 -4
  7. package/lib/plugins/service-betterportal-config-manager/.bp-generated/registry.d.ts.map +1 -1
  8. package/lib/plugins/service-betterportal-config-manager/.bp-generated/registry.js +2 -1
  9. package/lib/plugins/service-betterportal-config-manager/.bp-generated/registry.js.map +1 -1
  10. package/lib/plugins/service-betterportal-config-manager/bootstrapEndpoint.d.ts +3 -0
  11. package/lib/plugins/service-betterportal-config-manager/bootstrapEndpoint.d.ts.map +1 -1
  12. package/lib/plugins/service-betterportal-config-manager/bootstrapEndpoint.js +85 -30
  13. package/lib/plugins/service-betterportal-config-manager/bootstrapEndpoint.js.map +1 -1
  14. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/GET.d.ts +2 -0
  15. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/GET.d.ts.map +1 -1
  16. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/GET.js +34 -24
  17. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/GET.js.map +1 -1
  18. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/config.GET.d.ts +5 -0
  19. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/config.GET.d.ts.map +1 -0
  20. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/config.GET.js +9 -0
  21. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/config.GET.js.map +1 -0
  22. package/lib/plugins/service-betterportal-config-manager/bp-routes/services/GET.d.ts +1 -1
  23. package/lib/plugins/service-betterportal-config-manager/bp-routes/services/_renderer.bootstrap5/GET.d.ts.map +1 -1
  24. package/lib/plugins/service-betterportal-config-manager/bp-routes/services/_renderer.bootstrap5/GET.js +11 -5
  25. package/lib/plugins/service-betterportal-config-manager/bp-routes/services/_renderer.bootstrap5/GET.js.map +1 -1
  26. package/lib/plugins/service-betterportal-config-manager/cpBootstrap.d.ts +3 -1
  27. package/lib/plugins/service-betterportal-config-manager/cpBootstrap.d.ts.map +1 -1
  28. package/lib/plugins/service-betterportal-config-manager/cpBootstrap.js +17 -9
  29. package/lib/plugins/service-betterportal-config-manager/cpBootstrap.js.map +1 -1
  30. package/lib/plugins/service-betterportal-config-manager/index.d.ts +25 -7
  31. package/lib/plugins/service-betterportal-config-manager/index.d.ts.map +1 -1
  32. package/lib/plugins/service-betterportal-config-manager/index.js +98 -25
  33. package/lib/plugins/service-betterportal-config-manager/index.js.map +1 -1
  34. package/lib/plugins/service-betterportal-config-manager/previewEnvironmentManagement.d.ts.map +1 -1
  35. package/lib/plugins/service-betterportal-config-manager/previewEnvironmentManagement.js +13 -11
  36. package/lib/plugins/service-betterportal-config-manager/previewEnvironmentManagement.js.map +1 -1
  37. package/lib/plugins/service-betterportal-config-manager/setupTokens.d.ts +3 -0
  38. package/lib/plugins/service-betterportal-config-manager/setupTokens.d.ts.map +1 -1
  39. package/lib/plugins/service-betterportal-config-manager/setupTokens.js +93 -16
  40. package/lib/plugins/service-betterportal-config-manager/setupTokens.js.map +1 -1
  41. package/lib/plugins/service-betterportal-config-manager/storage/core.d.ts +1 -0
  42. package/lib/plugins/service-betterportal-config-manager/storage/core.d.ts.map +1 -1
  43. package/lib/plugins/service-betterportal-config-manager/storage/core.js.map +1 -1
  44. package/lib/plugins/service-betterportal-config-manager/storage/index.d.ts +5 -0
  45. package/lib/plugins/service-betterportal-config-manager/storage/index.d.ts.map +1 -1
  46. package/lib/plugins/service-betterportal-config-manager/storage/index.js +5 -2
  47. package/lib/plugins/service-betterportal-config-manager/storage/index.js.map +1 -1
  48. package/lib/plugins/service-betterportal-config-manager/storage/postgres.d.ts +101 -1
  49. package/lib/plugins/service-betterportal-config-manager/storage/postgres.d.ts.map +1 -1
  50. package/lib/plugins/service-betterportal-config-manager/storage/postgres.js +393 -24
  51. package/lib/plugins/service-betterportal-config-manager/storage/postgres.js.map +1 -1
  52. package/lib/plugins/service-betterportal-config-manager/syncApi.d.ts +2 -0
  53. package/lib/plugins/service-betterportal-config-manager/syncApi.d.ts.map +1 -1
  54. package/lib/plugins/service-betterportal-config-manager/syncApi.js +19 -0
  55. package/lib/plugins/service-betterportal-config-manager/syncApi.js.map +1 -1
  56. package/lib/plugins/service-betterportal-config-manager/webhooks.d.ts +3 -1
  57. package/lib/plugins/service-betterportal-config-manager/webhooks.d.ts.map +1 -1
  58. package/lib/plugins/service-betterportal-config-manager/webhooks.js +41 -44
  59. package/lib/plugins/service-betterportal-config-manager/webhooks.js.map +1 -1
  60. package/lib/schemas/service-betterportal-config-manager.json +32 -15
  61. package/lib/schemas/service-betterportal-config-manager.plugin.json +9 -2
  62. package/package.json +3 -3
@@ -25,6 +25,7 @@ declare const Config: import("@bsb/base").BSBPluginConfigClass<av.ObjectSchema<{
25
25
  connectionString: av.StringSchema;
26
26
  tableName: av.OptionalSchema<av.StringSchema>;
27
27
  rowId: av.OptionalSchema<av.StringSchema>;
28
+ legacyConfigPath: av.OptionalSchema<av.StringSchema>;
28
29
  }>]>;
29
30
  requestTimeoutMs: av.IntSchema;
30
31
  /** Path to RSA keypair JSON used to sign envelope/setup tokens. Auto-generated on first boot. */
@@ -35,15 +36,20 @@ declare const Config: import("@bsb/base").BSBPluginConfigClass<av.ObjectSchema<{
35
36
  cpAudience: av.StringSchema;
36
37
  }>>;
37
38
  declare const EventSchemas: {
38
- readonly emitEvents: {};
39
+ readonly emitEvents: {
40
+ readonly "webhook.delivery.available": {
41
+ input: av.ObjectSchema<{}>;
42
+ description?: string;
43
+ readonly __brand: "fire-and-forget";
44
+ };
45
+ };
39
46
  readonly onEvents: {};
40
47
  readonly emitReturnableEvents: {};
41
48
  readonly onReturnableEvents: {};
42
49
  readonly emitBroadcast: {
43
50
  readonly "platform-config.changed": {
44
51
  input: av.ObjectSchema<{
45
- sourceId: av.StringSchema;
46
- backend: av.EnumSchema<readonly ["file", "postgres"]>;
52
+ revision: av.NumberSchema;
47
53
  }>;
48
54
  description?: string;
49
55
  readonly __brand: "broadcast";
@@ -74,6 +80,7 @@ export declare class Plugin extends BPService<InstanceType<typeof Config>, typeo
74
80
  connectionString: av.StringSchema;
75
81
  tableName: av.OptionalSchema<av.StringSchema>;
76
82
  rowId: av.OptionalSchema<av.StringSchema>;
83
+ legacyConfigPath: av.OptionalSchema<av.StringSchema>;
77
84
  }>]>;
78
85
  requestTimeoutMs: av.IntSchema;
79
86
  /** Path to RSA keypair JSON used to sign envelope/setup tokens. Auto-generated on first boot. */
@@ -84,15 +91,20 @@ export declare class Plugin extends BPService<InstanceType<typeof Config>, typeo
84
91
  cpAudience: av.StringSchema;
85
92
  }>>;
86
93
  static EventSchemas: {
87
- readonly emitEvents: {};
94
+ readonly emitEvents: {
95
+ readonly "webhook.delivery.available": {
96
+ input: av.ObjectSchema<{}>;
97
+ description?: string;
98
+ readonly __brand: "fire-and-forget";
99
+ };
100
+ };
88
101
  readonly onEvents: {};
89
102
  readonly emitReturnableEvents: {};
90
103
  readonly onReturnableEvents: {};
91
104
  readonly emitBroadcast: {
92
105
  readonly "platform-config.changed": {
93
106
  input: av.ObjectSchema<{
94
- sourceId: av.StringSchema;
95
- backend: av.EnumSchema<readonly ["file", "postgres"]>;
107
+ revision: av.NumberSchema;
96
108
  }>;
97
109
  description?: string;
98
110
  readonly __brand: "broadcast";
@@ -104,7 +116,12 @@ export declare class Plugin extends BPService<InstanceType<typeof Config>, typeo
104
116
  private storage;
105
117
  private webhookRuntime?;
106
118
  private previewExpiryTimer?;
107
- private readonly changeSourceId;
119
+ private outboxTimer?;
120
+ private outboxDrain?;
121
+ private readonly workerId;
122
+ private lastConfigRevision;
123
+ private fileConfigRevision;
124
+ private postgresStorage?;
108
125
  private readonly selfClient;
109
126
  /** CP-side signing keypair + issuer/audience info. Built on first init. */
110
127
  private cpState;
@@ -158,6 +175,7 @@ export declare class Plugin extends BPService<InstanceType<typeof Config>, typeo
158
175
  private removeExpiredPreviews;
159
176
  dispose(): Promise<void>;
160
177
  private withChangeBroadcasts;
178
+ private startOutbox;
161
179
  private populateConfigAdminContext;
162
180
  private populateServicesContext;
163
181
  private populateRoutesContext;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/service-betterportal-config-manager/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/service-betterportal-config-manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAK1B,KAAK,UAAU,EAChB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,SAAS,EAA4B,MAAM,0BAA0B,CAAC;AAG/E,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAsB1E,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,kCAAkC,EACvC,KAAK,oBAAoB,EAG1B,MAAM,yBAAyB,CAAC;AA0EjC,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;IAdV,iGAAiG;;IAEjG,4GAA4G;;IAE5G,sDAAsD;;GAmBvD,CAAC;AAEF,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;CAiBhB,CAAC;AAEH,qBAAa,MAAO,SAAQ,SAAS,CAAC,YAAY,CAAC,OAAO,MAAM,CAAC,EAAE,OAAO,YAAY,CAAC;IACrF,MAAM,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;QA7Cb,iGAAiG;;QAEjG,4GAA4G;;QAE5G,sDAAsD;;QAyC/B;IACvB,MAAM,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;MAAgB;IACnC,SAAS,CAAC,QAAQ,CAAC,+BAA+B,SAAS;IAC3D,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,cAAc,CAAC,CAA0D;IACjF,OAAO,CAAC,kBAAkB,CAAC,CAAiB;IAC5C,OAAO,CAAC,WAAW,CAAC,CAAiB;IACrC,OAAO,CAAC,WAAW,CAAC,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,kBAAkB,CAAM;IAChC,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAC7D,2EAA2E;IAC3E,OAAO,CAAC,OAAO,CAAoB;IACnC,wFAAwF;IACxF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqK;IACrM,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAa;gBAEhC,GAAG,EAAE,qBAAqB,CAAC,YAAY,CAAC,OAAO,MAAM,CAAC,EAAE,OAAO,YAAY,CAAC;IAKxF,SAAS,CAAC,UAAU;;;;;;;;;;IAWpB;;;OAGG;IACH,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAItF,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIlF,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;IAOnF,SAAS,CAAC,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;IAItH;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;;;;OAKG;YACW,aAAa;YAgCb,gBAAgB;cAgCL,qBAAqB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kCAAkC,GAAG,IAAI,CAAC;cAe5G,0BAA0B,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;cASjI,YAAY,CAAC,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YAsI/E,qBAAqB;IAUpB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAOvC,OAAO,CAAC,oBAAoB;IA0B5B,OAAO,CAAC,WAAW;YAiCL,0BAA0B;YA4D1B,uBAAuB;YAyGvB,qBAAqB;YAmHrB,mBAAmB;YA8BnB,wBAAwB;YAcxB,sBAAsB;YAuCtB,wBAAwB;YAoIxB,uBAAuB;CAwDtC;AAED,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { createBroadcastEvent, createConfigSchema, createEventSchemas } from "@bsb/base";
1
+ import { createBroadcastEvent, createConfigSchema, createEventSchemas, createFireAndForgetEvent } from "@bsb/base";
2
2
  import * as av from "anyvali";
3
3
  import { BPService, BetterPortalConfigSchema } from "@betterportal/plugin-bsb";
4
4
  import { resolve } from "node:path";
@@ -10,7 +10,7 @@ import { registerAdminApiRoutes } from "./adminApi.js";
10
10
  import { registerMenuEditorRoutes } from "./menuEditor.js";
11
11
  import { registerFragmentsEditorRoutes } from "./fragmentsEditor.js";
12
12
  import { registerWebhookRoutes } from "./webhooks.js";
13
- import { analyzeOperationDependencies, deriveRolePermissions, getCachedManifestForService, getManifestCache, reconcileServiceRegistry, registerSyncEndpoint } from "./syncApi.js";
13
+ import { analyzeOperationDependencies, deriveRolePermissions, getCachedManifestForService, getManifestCache, hydrateManifestCache, reconcileServiceRegistry, registerSyncEndpoint } from "./syncApi.js";
14
14
  import { approveM2MConnections, buildM2MConnectionModel } from "./m2mConnections.js";
15
15
  import { registerPreviewDeploymentApi } from "./previewApi.js";
16
16
  import { deleteExpiredPreviewDeployments, reconcilePreviewService, visibleAdminConfig } from "./previewEnvironments.js";
@@ -18,7 +18,7 @@ import { setConfigManagerRouteContext } from "./routeContext.js";
18
18
  import { isApiRoute } from "./routeMounts.js";
19
19
  import { resolveRoleAuthority, resolveRoleSyncUrl } from "./roleAuthority.js";
20
20
  import { describeEmbeddedContextResolution, eventHeaders, resolveEmbeddedRequestContext, uuidv7 } from "@betterportal/framework";
21
- import { createStorageFromConfig, getAvailableServiceInstanceIdsForApp, getServicePluginId, PlatformConfigStorageSchema } from "./storage/index.js";
21
+ import { createStorageFromConfig, getAvailableServiceInstanceIdsForApp, getServicePluginId, PostgresStorage, PlatformConfigStorageSchema } from "./storage/index.js";
22
22
  import BetterportalConfigManagerClient from "../../.bsb/clients/service-betterportal-config-manager.js";
23
23
  // Parse-only base for relative request URLs. Never emit this origin.
24
24
  const RELATIVE_URL_PARSE_BASE = "http://betterportal.invalid";
@@ -27,7 +27,7 @@ function applyWellKnownCors(event) {
27
27
  event.res.headers.set("Access-Control-Allow-Origin", origin);
28
28
  event.res.headers.set("Vary", "Origin");
29
29
  event.res.headers.set("Access-Control-Allow-Methods", "GET,POST,PUT,PATCH,DELETE,OPTIONS");
30
- event.res.headers.set("Access-Control-Allow-Headers", "Authorization,Content-Type,Accept,HX-Request,HX-Current-URL,HX-Target,HX-Trigger,HX-Trigger-Name,X-BP-Tenant-Id,X-BP-App-Id,traceparent,tracestate,baggage");
30
+ event.res.headers.set("Access-Control-Allow-Headers", "Authorization,Content-Type,Accept,Idempotency-Key,HX-Request,HX-Current-URL,HX-Target,HX-Trigger,HX-Trigger-Name,X-BP-Tenant-Id,X-BP-App-Id,traceparent,tracestate,baggage");
31
31
  event.res.headers.set("Access-Control-Expose-Headers", "HX-Location,HX-Redirect,HX-Refresh,HX-Push-Url,HX-Replace-Url,BP-SetHeader,BP-RemoveHeader");
32
32
  event.res.headers.set("Access-Control-Max-Age", "600");
33
33
  if (event.req.method === "OPTIONS") {
@@ -52,7 +52,7 @@ function buildServiceIdAliases(config, tenantId) {
52
52
  }
53
53
  const PluginConfigSchema = av.object({
54
54
  host: av.string().minLength(1).default("0.0.0.0"),
55
- port: av.int().min(1).default(3300),
55
+ port: av.int().min(1).default(80),
56
56
  betterportal: BetterPortalConfigSchema,
57
57
  storage: PlatformConfigStorageSchema,
58
58
  requestTimeoutMs: av.int().min(1).default(2000),
@@ -64,9 +64,9 @@ const PluginConfigSchema = av.object({
64
64
  cpAudience: av.string().minLength(1).default("betterportal-control-plane")
65
65
  });
66
66
  const PlatformConfigChangedEventSchema = av.object({
67
- sourceId: av.string().minLength(1),
68
- backend: av.enum_(["file", "postgres"])
67
+ revision: av.number().min(0)
69
68
  });
69
+ const WebhookDeliveryAvailableEventSchema = av.object({});
70
70
  const Config = createConfigSchema({
71
71
  name: "service-betterportal-config-manager",
72
72
  description: "BetterPortal config management admin service",
@@ -75,12 +75,14 @@ const Config = createConfigSchema({
75
75
  image: "./betterportal-logo.png"
76
76
  }, PluginConfigSchema);
77
77
  const EventSchemas = createEventSchemas({
78
- emitEvents: {},
78
+ emitEvents: {
79
+ "webhook.delivery.available": createFireAndForgetEvent(WebhookDeliveryAvailableEventSchema, "Wakes one config-manager instance to process durable webhook deliveries.")
80
+ },
79
81
  onEvents: {},
80
82
  emitReturnableEvents: {},
81
83
  onReturnableEvents: {},
82
84
  emitBroadcast: {
83
- "platform-config.changed": createBroadcastEvent(PlatformConfigChangedEventSchema, "Emitted after platform config is saved by this config-manager instance.")
85
+ "platform-config.changed": createBroadcastEvent(PlatformConfigChangedEventSchema, "Emitted after a platform config revision is committed.")
84
86
  },
85
87
  onBroadcast: {}
86
88
  });
@@ -91,7 +93,12 @@ export class Plugin extends BPService {
91
93
  storage;
92
94
  webhookRuntime;
93
95
  previewExpiryTimer;
94
- changeSourceId = uuidv7();
96
+ outboxTimer;
97
+ outboxDrain;
98
+ workerId = uuidv7();
99
+ lastConfigRevision = -1;
100
+ fileConfigRevision = 0;
101
+ postgresStorage;
95
102
  selfClient;
96
103
  /** CP-side signing keypair + issuer/audience info. Built on first init. */
97
104
  cpState;
@@ -243,17 +250,27 @@ export class Plugin extends BPService {
243
250
  }
244
251
  async onRegistered(registry, _obs) {
245
252
  const resolvedStorage = createStorageFromConfig(this.config.storage, this.cwd);
253
+ const cwd = this.cwd ?? ".";
254
+ if (resolvedStorage.store instanceof PostgresStorage) {
255
+ this.postgresStorage = resolvedStorage.store;
256
+ await this.postgresStorage.initialize({
257
+ configPath: resolvedStorage.legacyConfigPath,
258
+ cpKeyPath: resolve(cwd, this.config.cpKeyStorePath ?? "./.bp-cp-state/keys.json"),
259
+ webhookDeliveryPath: resolve(cwd, "./.bp-webhook-deliveries.json")
260
+ });
261
+ }
246
262
  this.storage = this.withChangeBroadcasts(resolvedStorage.store, _obs, {
247
263
  backend: resolvedStorage.backend
248
264
  });
265
+ hydrateManifestCache(await this.storage.loadConfig());
249
266
  // Initialize CP keypair + JWKS (P7).
250
- const cwd = this.cwd ?? ".";
251
- this.cpState = cpBootstrap({
267
+ this.cpState = await cpBootstrap({
252
268
  keyStorePath: resolve(cwd, this.config.cpKeyStorePath ?? "./.bp-cp-state/keys.json"),
269
+ postgres: this.postgresStorage,
253
270
  issuer: this.config.cpIssuer,
254
271
  audience: this.config.cpAudience ?? "betterportal-control-plane",
255
272
  host: this.config.host ?? "0.0.0.0",
256
- port: this.config.port ?? 3300
273
+ port: this.config.port ?? 80
257
274
  });
258
275
  this.registerAsAuthProvider({
259
276
  issuer: this.cpState.issuer,
@@ -267,12 +284,17 @@ export class Plugin extends BPService {
267
284
  cpId: this.cpState.cpId
268
285
  });
269
286
  await this.selfClient.onPlatformConfigChanged(_obs, async (eventObs, event) => {
270
- if (event.sourceId === this.changeSourceId)
287
+ if (event.revision <= this.lastConfigRevision)
271
288
  return;
289
+ this.lastConfigRevision = event.revision;
272
290
  this.storage.invalidate();
291
+ hydrateManifestCache(await this.storage.loadConfig());
273
292
  // A config change may carry a freshly-pushed auth JWKS - rebuild verifiers.
274
293
  await this.warmAuthCache(eventObs);
275
294
  });
295
+ await this.selfClient.onWebhookDeliveryAvailable(_obs, async () => {
296
+ await this.webhookRuntime?.drain();
297
+ });
276
298
  setConfigManagerRouteContext({
277
299
  storage: this.storage,
278
300
  cpState: this.cpState,
@@ -295,7 +317,7 @@ export class Plugin extends BPService {
295
317
  registerAdminApiRoutes(this.app, this.storage, this.cpState);
296
318
  registerMenuEditorRoutes(this.app, this.storage);
297
319
  registerFragmentsEditorRoutes(this.app, this.storage);
298
- this.webhookRuntime = registerWebhookRoutes(this.app, this.storage);
320
+ this.webhookRuntime = registerWebhookRoutes(this.app, this.storage, this.postgresStorage, this.workerId);
299
321
  registerPreviewDeploymentApi({
300
322
  app: this.app,
301
323
  storage: this.storage,
@@ -323,18 +345,27 @@ export class Plugin extends BPService {
323
345
  }
324
346
  });
325
347
  // Setup token mint + redeem endpoints (P4)
326
- registerSetupEndpoints({ app: this.app, storage: this.storage, cpState: this.cpState });
348
+ registerSetupEndpoints({
349
+ app: this.app,
350
+ storage: this.storage,
351
+ cpState: this.cpState,
352
+ postgres: this.postgresStorage,
353
+ owner: this.workerId
354
+ });
327
355
  // Bootstrap detection + endpoint (P6) - opens vanilla HTML wizard on empty DB
328
356
  await registerBootstrapEndpoint({
329
357
  app: this.app,
330
358
  storage: this.storage,
331
359
  cpState: this.cpState,
332
- logger: _obs
360
+ logger: _obs,
361
+ postgres: this.postgresStorage,
362
+ owner: this.workerId
333
363
  });
334
364
  // Warm auth verifiers from persisted JWKS so the first authenticated request
335
365
  // after a restart never races an empty cache (#6).
336
366
  await this.warmAuthCache(_obs);
337
- this.webhookRuntime.start();
367
+ this.webhookRuntime?.start();
368
+ this.startOutbox(_obs);
338
369
  await this.removeExpiredPreviews();
339
370
  this.previewExpiryTimer = setInterval(() => {
340
371
  void this.removeExpiredPreviews().catch((error) => _obs.log.warn("Preview expiry cleanup failed: {msg}", {
@@ -344,13 +375,22 @@ export class Plugin extends BPService {
344
375
  this.previewExpiryTimer.unref();
345
376
  }
346
377
  async removeExpiredPreviews() {
347
- const config = await this.storage.loadConfig();
348
- if (deleteExpiredPreviewDeployments(config).length > 0)
349
- await this.storage.saveConfig(config);
378
+ const cleanup = async () => {
379
+ const config = await this.storage.loadConfig();
380
+ if (deleteExpiredPreviewDeployments(config).length > 0)
381
+ await this.storage.saveConfig(config);
382
+ await this.postgresStorage?.cleanupExpiredActions();
383
+ };
384
+ if (this.postgresStorage)
385
+ await this.postgresStorage.tryRunExclusive("maintenance", cleanup);
386
+ else
387
+ await cleanup();
350
388
  }
351
389
  async dispose() {
352
390
  if (this.previewExpiryTimer)
353
391
  clearInterval(this.previewExpiryTimer);
392
+ if (this.outboxTimer)
393
+ clearInterval(this.outboxTimer);
354
394
  this.webhookRuntime?.stop();
355
395
  await super.dispose();
356
396
  }
@@ -358,11 +398,12 @@ export class Plugin extends BPService {
358
398
  return {
359
399
  loadConfig: () => store.loadConfig(),
360
400
  saveConfig: async (config, options) => {
361
- await store.saveConfig(config, options);
362
- if (options?.notify !== false) {
401
+ await store.saveConfig(config, metadata.backend === "file" && options?.notify !== false
402
+ ? { ...options, notify: false }
403
+ : options);
404
+ if (options?.notify !== false && metadata.backend === "file") {
363
405
  await this.events.emitBroadcast("platform-config.changed", obs, {
364
- sourceId: this.changeSourceId,
365
- backend: metadata.backend
406
+ revision: ++this.fileConfigRevision
366
407
  });
367
408
  }
368
409
  },
@@ -373,6 +414,38 @@ export class Plugin extends BPService {
373
414
  onChange: (listener) => store.onChange(listener)
374
415
  };
375
416
  }
417
+ startOutbox(obs) {
418
+ if (!this.postgresStorage)
419
+ return;
420
+ const run = async () => {
421
+ const records = await this.postgresStorage.claimOutbox(this.workerId);
422
+ for (const record of records) {
423
+ try {
424
+ if (record.eventName === "platform-config.changed") {
425
+ await this.events.emitBroadcast("platform-config.changed", obs, {
426
+ revision: Number(record.payload.revision)
427
+ });
428
+ }
429
+ else if (record.eventName === "webhook.delivery.available") {
430
+ await this.events.emitEvent("webhook.delivery.available", obs, {});
431
+ }
432
+ await this.postgresStorage.completeOutbox(record.id, this.workerId);
433
+ }
434
+ catch (error) {
435
+ await this.postgresStorage.releaseOutbox(record.id, this.workerId);
436
+ obs.log.warn("Config-manager outbox delivery failed: {message}", {
437
+ message: error instanceof Error ? error.message : String(error)
438
+ });
439
+ }
440
+ }
441
+ };
442
+ const drain = () => this.outboxDrain ??= run().finally(() => { this.outboxDrain = undefined; });
443
+ void drain().catch((error) => obs.log.warn("Config-manager outbox drain failed: {message}", {
444
+ message: error instanceof Error ? error.message : String(error)
445
+ }));
446
+ this.outboxTimer = setInterval(() => void drain().catch((error) => obs.log.warn("Config-manager outbox drain failed: {message}", { message: error instanceof Error ? error.message : String(error) })), 1_000);
447
+ this.outboxTimer.unref();
448
+ }
376
449
  async populateConfigAdminContext(event) {
377
450
  const portalConfig = visibleAdminConfig(await this.storage.loadConfig());
378
451
  const requestContext = resolveEmbeddedRequestContext(portalConfig, eventHeaders(event));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/service-betterportal-config-manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EACL,WAAW,EAEZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAClL,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EACL,+BAA+B,EAC/B,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EACL,iCAAiC,EACjC,YAAY,EACZ,6BAA6B,EAK7B,MAAM,EACP,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,uBAAuB,EACvB,oCAAoC,EACpC,kBAAkB,EAClB,2BAA2B,EAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,+BAA+B,MAAM,2DAA2D,CAAC;AAExG,qEAAqE;AACrE,MAAM,uBAAuB,GAAG,6BAA6B,CAAC;AAE9D,SAAS,kBAAkB,CAAC,KAAwB;IAClD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC;IACtD,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;IAC7D,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,mCAAmC,CAAC,CAAC;IAC3F,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CACnB,8BAA8B,EAC9B,4JAA4J,CAC7J,CAAC;IACF,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CACnB,+BAA+B,EAC/B,4FAA4F,CAC7F,CAAC;IACF,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IACvD,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,sFAAsF;AACtF,SAAS,qBAAqB,CAC5B,MAGC,EACD,QAAgB;IAEhB,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;IAC7D,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,QAAQ,IAAI,EAAE,EAAE,CAAC;QACzC,IAAI,GAAG,CAAC,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC;IACrD,CAAC;IACD,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,wBAAwB,IAAI,EAAE,EAAE,CAAC;QAC/D,IAAI,UAAU,CAAC,OAAO,KAAK,KAAK,IAAI,UAAU,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACrE,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,eAAe,CAAC;QACtD,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,kBAAkB,GAAG,EAAE,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IACjD,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACnC,YAAY,EAAE,wBAAwB;IACtC,OAAO,EAAE,2BAA2B;IACpC,gBAAgB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAC/C,iGAAiG;IACjG,cAAc,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC;IAC5E,4GAA4G;IAC5G,QAAQ,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAClC,sDAAsD;IACtD,UAAU,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC;CAC3E,CAAC,CAAC;AAEH,MAAM,gCAAgC,GAAG,EAAE,CAAC,MAAM,CAAC;IACjD,QAAQ,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAClC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,UAAU,CAAU,CAAC;CACjD,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,kBAAkB,CAC/B;IACE,IAAI,EAAE,qCAAqC;IAC3C,WAAW,EAAE,8CAA8C;IAC3D,IAAI,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;IACpD,aAAa,EAAE,CAAC,aAAa,CAAC;IAC9B,KAAK,EAAE,yBAAyB;CACjC,EACD,kBAAkB,CACnB,CAAC;AAEF,MAAM,YAAY,GAAG,kBAAkB,CAAC;IACtC,UAAU,EAAE,EAAE;IACd,QAAQ,EAAE,EAAE;IACZ,oBAAoB,EAAE,EAAE;IACxB,kBAAkB,EAAE,EAAE;IACtB,aAAa,EAAE;QACb,yBAAyB,EAAE,oBAAoB,CAC7C,gCAAgC,EAChC,yEAAyE,CAC1E;KACF;IACD,WAAW,EAAE,EAAE;CAChB,CAAC,CAAC;AAEH,MAAM,OAAO,MAAO,SAAQ,SAA2D;IACrF,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;IAChB,+BAA+B,GAAG,KAAK,CAAC;IACnD,OAAO,CAAuB;IAC9B,cAAc,CAAmC;IACjD,kBAAkB,CAAkB;IAC3B,cAAc,GAAG,MAAM,EAAE,CAAC;IAC1B,UAAU,CAAkC;IAC7D,2EAA2E;IACnE,OAAO,CAAoB;IACnC,wFAAwF;IACvE,eAAe,GAAG,IAAI,GAAG,EAA0J,CAAC;IACpL,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC;IAE5C,YAAY,GAA4E;QACtF,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,+BAA+B,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAES,UAAU;QAClB,OAAO;YACL,QAAQ,EAAE;gBACR,QAAQ,EAAE,iCAAiC;gBAC3C,KAAK,EAAE,6BAA6B;gBACpC,WAAW,EAAE,yFAAyF;gBACtG,UAAU,EAAE,EAAE,kBAAkB,EAAE,GAAG,EAAE;aACxC;SACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACO,gBAAgB,CAAC,QAAgB,EAAE,KAAa;QACxD,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC;IACxD,CAAC;IAES,cAAc,CAAC,QAAgB,EAAE,KAAa;QACtD,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC;IAC5D,CAAC;IAES,mBAAmB,CAAC,QAAgB;QAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAChD,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,QAAQ,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC,OAAO,CAAC;QAC5D,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAES,wBAAwB,CAAC,QAAgB,EAAE,KAAa;QAChE,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,QAAQ,KAAK,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC;IACjE,CAAC;IAED;;;;;;OAMG;IACK,kBAAkB,CAAC,QAAgB,EAAE,KAAa;QACxD,MAAM,GAAG,GAAG,GAAG,QAAQ,KAAK,KAAK,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1D,KAAK,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,aAAa,CAAC,GAAgB;QAC1C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC/C,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAI,GAA2C,CAAC,IAAI,CAAC;gBAC/D,IAAI,CAAC,IAAI,EAAE,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACnG,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE;oBACrD,IAAI;oBACJ,QAAQ,EAAE,wBAAwB,CAAC;wBACjC,IAAI,EAAE,IAAI,CAAC,UAAU;wBACrB,cAAc,EAAE,IAAI,CAAC,cAAc;wBACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;wBACvC,iBAAiB,EAAE,QAAQ;qBAC5B,CAAC;oBACF,OAAO,EAAE,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC;oBACpD,IAAI,EAAE;wBACJ,QAAQ,EAAE,MAAM,CAAC,gBAAgB,CAAC,aAAa;wBAC/C,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,eAAe;qBAC/C;oBACD,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;iBACrB,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,CAAC;YACd,CAAC;YACD,IAAI,MAAM,GAAG,CAAC;gBAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,+CAA+C,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACrG,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;QACrE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,KAAa;QAC5D,MAAM,GAAG,GAAG,GAAG,QAAQ,KAAK,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;YAC/E,MAAM,IAAI,GAAI,GAA2C,EAAE,IAAI,CAAC;YAChE,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,oFAAoF;YACpF,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClG,OAAO;YACT,CAAC;YACD,MAAM,QAAQ,GAAG,wBAAwB,CAAC;gBACxC,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,iBAAiB,EAAE,QAAQ;aAC5B,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE;gBAC5B,IAAI;gBACJ,QAAQ;gBACR,OAAO,EAAE,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC;gBAChD,IAAI,EAAE;oBACJ,QAAQ,EAAE,MAAM,CAAC,gBAAgB,CAAC,aAAa;oBAC/C,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,eAAe;iBAC/C;gBACD,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;aACrB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,gCAAgC;QAClC,CAAC;IACH,CAAC;IAEkB,KAAK,CAAC,qBAAqB,CAAC,KAAwB;QACrE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,6BAA6B,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,IAAI,cAAc,CAAC;QAC9E,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,aAAa,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAES,KAAK,CAAC,0BAA0B,CAAC,KAAwB;QACjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,iCAAiC,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/E,OAAO;YACL,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;YAC5C,kBAAkB,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SACrG,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,QAA8B,EAAE,IAAgB;QAC3E,MAAM,eAAe,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE;YACpE,OAAO,EAAE,eAAe,CAAC,OAAO;SACjC,CAAC,CAAC;QAEH,qCAAqC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;YACzB,YAAY,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,0BAA0B,CAAC;YACpF,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YAC5B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,4BAA4B;YAChE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,SAAS;YACnC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI;SAC/B,CAAC,CAAC;QACH,IAAI,CAAC,sBAAsB,CAAC;YAC1B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAC7B,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kFAAkF,EAAE;YAChG,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG;YAC7B,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;SACxB,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;YAC5E,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,cAAc;gBAAE,OAAO;YACnD,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1B,4EAA4E;YAC5E,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,4BAA4B,CAAC;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;SACpC,CAAC,CAAC;QAEH,MAAM,wBAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE;YAC7E,eAAe,EAAE,OAAO;YACxB,KAAK,EAAE,6BAA6B;YACpC,YAAY,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,CAAC;SACxF,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;QAEtE,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7D,wBAAwB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,6BAA6B,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACpE,4BAA4B,CAAC;YAC3B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;SACrC,CAAC,CAAC;QACH,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE;YAC3C,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE;gBAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC/C,IAAI,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACnG,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,6BAA6B,EAAE,CAAC;oBAC9D,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC;yBACjE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;yBACxE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;wBACb,eAAe,EAAE,GAAG,CAAC,eAAe;wBACpC,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,eAAe,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,eAAe;wBAClD,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY;qBAC7C,CAAC,CAAC,CAAC;oBACN,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1B,OAAO,GAAG,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC;oBACtG,CAAC;gBACH,CAAC;gBACD,IAAI,OAAO;oBAAE,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACrD,CAAC;SACF,CAAC,CAAC;QAEH,2CAA2C;QAC3C,sBAAsB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAExF,8EAA8E;QAC9E,MAAM,yBAAyB,CAAC;YAC9B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;QAEH,6EAA6E;QAC7E,mDAAmD;QACnD,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACnC,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;YACzC,KAAK,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,EAAE;gBACvG,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC5D,CAAC,CAAC,CAAC;QACN,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;QACf,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,qBAAqB;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC/C,IAAI,+BAA+B,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAChG,CAAC;IAEQ,KAAK,CAAC,OAAO;QACpB,IAAI,IAAI,CAAC,kBAAkB;YAAE,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpE,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;QAC5B,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAEO,oBAAoB,CAC1B,KAA0B,EAC1B,GAAe,EACf,QAA0C;QAE1C,OAAO;YACL,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE;YACpC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;gBACpC,MAAM,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACxC,IAAI,OAAO,EAAE,MAAM,KAAK,KAAK,EAAE,CAAC;oBAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,yBAAyB,EAAE,GAAG,EAAE;wBAC9D,QAAQ,EAAE,IAAI,CAAC,cAAc;wBAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;qBAC1B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;YACxD,eAAe,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC;YAClG,wBAAwB,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CACrF,KAAK,CAAC,wBAAwB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC;YAC1F,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE;YACpC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;SACjD,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,0BAA0B,CAAC,KAAwB;QAC/D,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACzE,MAAM,cAAc,GAAG,6BAA6B,CAAC,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAExF,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;YACrC,MAAM,WAAW,GAAG;gBAClB,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACtD,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE;oBAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,cAAc,EAAE,CAAC,CAAC,cAAc;oBAChC,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,KAAK,EAAE,QAAiB;iBACzB,CAAC,CAAC;gBACH,GAAG,MAAM,CAAC,yBAAyB;qBAChC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;qBACvF,MAAM,CAAC,CAAC,EAAE,EAAgC,EAAE,CAAC,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,CAAC;qBAC7E,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACZ,SAAS,EAAE,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE;oBAChC,QAAQ,EAAE,EAAE,CAAC,QAAQ;oBACrB,cAAc,EAAE,WAAoB;oBACpC,KAAK,EAAE,EAAE,CAAC,KAAK;oBACf,KAAK,EAAE,UAAmB;iBAC3B,CAAC,CAAC;gBACL,GAAG,YAAY,CAAC,wBAAwB;qBACrC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;qBACpJ,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;oBAClB,MAAM,MAAM,GAAG,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,KAAK,UAAU,CAAC,eAAe,CAAC,CAAC;oBACjI,IAAI,CAAC,MAAM;wBAAE,OAAO,SAAS,CAAC;oBAC9B,OAAO;wBACL,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE;wBACxC,QAAQ,EAAE,MAAM,CAAC,OAAO;wBACxB,cAAc,EAAE,WAAoB;wBACpC,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,KAAK,EAAE,QAAiB;qBACzB,CAAC;gBACJ,CAAC,CAAC;qBACD,MAAM,CAAC,CAAC,OAAO,EAA0C,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aAC1E,CAAC;YAEF,MAAM,aAAa,GAAG;gBACpB,KAAK,EAAE,gBAAgB;gBACvB,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE;gBAC5B,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;gBAC9C,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBAClC,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,eAAe,EAAE,GAAG,CAAC,QAAQ;oBAC7B,cAAc,EAAE,GAAG,CAAC,cAAc;oBAClC,SAAS,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,wBAAwB;oBACtE,SAAS,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,+BAA+B;oBAC7E,WAAW,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,0BAA0B;iBAC3E,CAAC,CAAC;aACJ,CAAC;YAED,KAAmD,CAAC,iBAAiB,GAAG,aAAa,CAAC;QACzF,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,KAAwB;QAC5D,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,uBAAuB,CAAC,CAAC;QAClE,MAAM,iBAAiB,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC;QACxE,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,iBAAiB,CAAC;YACvF,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC1B,MAAM,cAAc,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;QAClE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,cAAc,IAAI,GAAG,CAAC,QAAQ,KAAK,gBAAgB,CAAC;eACxG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,gBAAgB,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,WAAW,EAAE,EAAE,CAAC;QAEtC,MAAM,UAAU,GAAkF,EAAE,CAAC;QACrG,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/B,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI;iBAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;iBAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;QACzC,MAAM,cAAc,GAAG,CAAC,iBAAyB,EAAE,QAAiB,EAAE,EAAE;YACtE,MAAM,MAAM,GAAG,2BAA2B,CAAC,MAAM,EAAE,iBAAiB,EAAE,aAAa,CAAC;mBAC/E,CAAC,QAAQ,CAAC,CAAC,CAAC,2BAA2B,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC3F,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACnF,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAClE,OAAO;gBACL,gBAAgB,EAAE,KAAK;gBACvB,YAAY,EAAE,SAA+B;gBAC7C,mBAAmB;gBACnB,sBAAsB,EAAE,gBAAgB;aACzC,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACjD,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACnB,MAAM,MAAM,GAAG,2BAA2B,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;YACxE,MAAM,YAAY,GAAG,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;YACjG,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACvC,OAAO;gBACL,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,YAAY;gBACpE,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC3D,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU;gBAC1E,aAAa,EAAE,MAAM,EAAE,eAAe;gBACtC,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,OAAgB,CAAC,CAAC,CAAC,QAAiB;gBACrD,QAAQ,EAAE,CAAC,CAAC,EAAwB;gBACpC,QAAQ,EAAE,qBAAqB,CAAC,CAAC,EAAE,EAAE;gBACrC,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC;aACrC,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3D,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC,YAAY,IAAI,EAAE;YAC9F,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW;YAC5C,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,SAA+B;YACpE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,UAAmB,EAAE,QAAQ,EAAE,SAA+B;YAC1F,QAAQ,EAAE,sBAAsB,EAAE,CAAC,EAAE,EAAE;YACvC,GAAG,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;SACvC,CAAC,CAAC,CAAC;QAEJ,MAAM,aAAa,GAAG,MAAM,CAAC,wBAAwB;aAClD,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;aAC1C,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YAClB,MAAM,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,UAAU,CAAC,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3H,IAAI,CAAC,MAAM;gBAAE,OAAO,SAAS,CAAC;YAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACvC,OAAO;gBACL,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,QAAQ,EAAE,MAAM,CAAC,OAAO;gBACxB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE;gBACxC,YAAY;gBACZ,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,SAAS,EAAE,UAAU,CAAC,WAAW;gBACjC,UAAU,EAAE,SAA+B;gBAC3C,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,KAAK,EAAE,QAAiB;gBACxB,QAAQ,EAAE,UAAU,CAAC,QAA8B;gBACnD,QAAQ,EAAE,oBAAoB,UAAU,CAAC,EAAE,EAAE;gBAC7C,GAAG,cAAc,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;aAC5C,CAAC;QACJ,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,OAAO,EAA0C,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAE1E,MAAM,WAAW,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,aAAa,EAAE,GAAG,eAAe,CAAC,CAAC;QAC5E,KAAmD,CAAC,iBAAiB,GAAG;YACvE,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAClE,gBAAgB;YAChB,aAAa;YACb,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE;YAClG,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAClE,GAAG,OAAO;gBACV,SAAS,EAAE,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;aACnF,CAAC,CAAC;YACH,wBAAwB,EAAE,MAAM,CAAC,wBAAwB;YACzD,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAClF,UAAU;YACV,YAAY,EAAE,uBAAuB;YACrC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;SACpC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,KAAwB;QAC1D,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,uBAAuB,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;QACjE,MAAM,gBAAgB,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC;QAC3E,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChG,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE3G,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,cAAc,GAAG,CAAC,iBAAyB,EAAE,KAAa,EAAE,SAAiB,EAAE,EAAE;YACrF,MAAM,QAAQ,GAAG,2BAA2B,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC;YAC/E,OAAO;gBACL,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,KAAK;gBAC/B,SAAS,EAAE,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,SAAS;gBACrE,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC;gBACjC,KAAK,EAAE,QAAQ;oBACb,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACjD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;wBAClC,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,WAAW,EAAE,SAAS,CAAC,WAAW;wBAClC,KAAK,EAAE,SAAS,CAAC,KAAK;wBACtB,WAAW,EAAE,SAAS,CAAC,WAAW;wBAClC,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,YAAY,EAAE,IAAI,CAAC,YAAY;wBAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;wBAC/B,MAAM,EAAE,SAAS,CAAC,MAAM;wBACxB,UAAU,EAAE,SAAS,CAAC,MAAM,KAAK,KAAK,IAAI,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAChF,YAAY,EAAE,SAAS,CAAC,YAAY;qBACrC,CAAC,CAAC,CACJ;oBACH,CAAC,CAAC,EAAE;aACP,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,iBAAiB,GAAG,cAAc;YACtC,CAAC,CAAC;gBACE,GAAG,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC9D,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC;iBACnF,CAAC,CAAC;gBACH,GAAG,cAAc,CAAC,yBAAyB;qBACxC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;qBACjF,MAAM,CAAC,CAAC,EAAE,EAAgC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAClD,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACZ,EAAE,EAAE,EAAE,CAAC,EAAE;oBACT,QAAQ,EAAE,EAAE,CAAC,QAAQ;oBACrB,GAAG,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,aAAa,EAAE,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;iBAC1E,CAAC,CAAC;gBACL,GAAG,MAAM,CAAC,wBAAwB;qBAC/B,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CACrB,UAAU,CAAC,OAAO;uBACf,UAAU,CAAC,QAAQ,KAAK,cAAc,CAAC,EAAE;uBACzC,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,WAAW,EAAE,EAAE,CAAC,CAC/D;qBACA,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;oBAClB,MAAM,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,UAAU,CAAC,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC3H,IAAI,CAAC,MAAM;wBAAE,OAAO,SAAS,CAAC;oBAC9B,OAAO;wBACL,EAAE,EAAE,UAAU,CAAC,EAAE;wBACjB,QAAQ,EAAE,MAAM,CAAC,OAAO;wBACxB,GAAG,cAAc,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,KAAK,WAAW,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC;qBAC5F,CAAC;gBACJ,CAAC,CAAC;qBACD,MAAM,CAAC,CAAC,OAAO,EAA0C,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aAC1E;YACH,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACvD,MAAM,IAAI,GAAG,2BAA2B,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC1F,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9G,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,KAAK,IAAI,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;YACvJ,OAAO;gBACL,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;gBAChD,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,EAAE,IAAI;gBACtC,kBAAkB,EAAE,CAAC,CAAC,kBAAkB;gBACxC,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;gBAChC,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;gBACxD,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,UAAU;gBACV,OAAO,EAAE,CAAC,CAAC,OAAO;aACnB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,4BAA4B,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5G,MAAM,cAAc,GAAG,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAChE,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;gBACvE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,CAAC,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,GAAG,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,iBAAiB,yBAAyB,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,iBAAiB,WAAW,KAAK,CAAC,eAAe,CAAC,MAAM,cAAc,cAAc,CAAC,MAAM,GAAG;gBACvQ,KAAK,EAAE,KAAK,CAAC,eAAe,CAAC,MAAM;gBACnC,cAAc;aACf,CAAC;QACJ,CAAC,CAAC,CAAC;QAEF,KAAmD,CAAC,iBAAiB,GAAG;YACvE,KAAK,EAAE,gBAAgB;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAClF,aAAa;YACb,gBAAgB;YAChB,MAAM,EAAE,UAAU;YAClB,iBAAiB;YACjB,gBAAgB;YAChB,YAAY,EAAE,uBAAuB;YACrC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;SACpC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,KAAwB;QACxD,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,uBAAuB,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;QACjE,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE/F,KAAmD,CAAC,iBAAiB,GAAG;YACvE,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAClF,aAAa;YACb,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC1C,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK;gBACtC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK;aAC/D,CAAC,CAAC;YACH,MAAM,EAAE,CAAC,WAAW,EAAE,MAAM,IAAI,EAAE,CAAC;iBAChC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBACZ,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACtE,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CACrD,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,KAAK,IAAI,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CACrH,CAAC;gBACF,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YACjD,CAAC,CAAC;iBACD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACX,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI;aACjD,CAAC,CAAC;YACL,YAAY,EAAE,uBAAuB;YACrC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;SACpC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,KAAwB;QAC7D,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,uBAAuB,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;QAEhE,KAAmD,CAAC,iBAAiB,GAAG;YACvE,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAClF,aAAa;YACb,YAAY,EAAE,uBAAuB;YACrC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;SACpC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,KAAwB;QAC3D,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACnE,MAAM,QAAQ,GAST,EAAE,CAAC;QAER,MAAM,mBAAmB,GAAG;YAC1B,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/E,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrD,CAAC,CAAC,CAAC;YACJ,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACjE,SAAS,EAAE,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ;aACxD,CAAC,CAAC;SACJ,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,SAAS;YACrC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC;gBACZ,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,eAAe,EAAE,GAAG,CAAC,QAAQ;gBAC7B,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;QACL,CAAC;QAEA,KAAmD,CAAC,iBAAiB,GAAG;YACvE,KAAK,EAAE,mBAAmB;YAC1B,QAAQ;SACT,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,KAAwB;QAC7D,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,uBAAuB,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;QACjE,MAAM,WAAW,GAAG,aAAa;YAC/B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC;YACjD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,gBAAgB,GAAG,WAAW,EAAE,QAAQ,CAAC;QAE/C,oFAAoF;QACpF,MAAM,WAAW,GAAG;YAClB,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/E,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE;gBAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE;aACtC,CAAC,CAAC,CAAC;YACJ,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACjE,EAAE,EAAE,EAAE,CAAC,EAAE;gBACT,SAAS,EAAE,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE;gBAChC,QAAQ,EAAE,EAAE,CAAC,QAAQ;gBACrB,KAAK,EAAE,EAAE,CAAC,KAAK;aAChB,CAAC,CAAC;YACH,GAAG,MAAM,CAAC,wBAAwB;iBAC/B,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,gBAAgB,IAAI,UAAU,CAAC,QAAQ,KAAK,gBAAgB,CAAC,CAAC;iBAC7G,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;gBAClB,MAAM,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,UAAU,CAAC,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC3H,IAAI,CAAC,MAAM;oBAAE,OAAO,SAAS,CAAC;gBAC9B,OAAO;oBACL,EAAE,EAAE,UAAU,CAAC,EAAE;oBACjB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE;oBACxC,QAAQ,EAAE,MAAM,CAAC,OAAO;oBACxB,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB,CAAC;YACJ,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,OAAO,EAA0C,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;SAC1E,CAAC;QAEF,kCAAkC;QAClC,MAAM,mBAAmB,GAAG,WAAW;YACrC,CAAC,CAAC,oCAAoC,CAAC,MAAM,EAAE,WAAW,CAAC;YAC3D,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;QACtB,MAAM,YAAY,GAAG,IAAI,GAAG,EAA8E,CAAC;QAC3G,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,IAAI,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAClG,CAAC;QAED,oFAAoF;QACpF,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACvE,MAAM,cAAc,GAAG,2BAA2B,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC1E,MAAM,KAAK,GAAG,cAAc;gBAC1B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACrD,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;wBAC9C,WAAW,EAAE,SAAS,CAAC,WAAW;wBAClC,MAAM,EAAE,SAAS,CAAC,MAAM;wBACxB,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACnD,mBAAmB,EAAE,SAAS,CAAC,WAAW;qBAC3C,CAAC,CAAC;iBACJ,CAAC,CAAC;gBACL,CAAC,CAAC,EAAE,CAAC;YACP,OAAO;gBACL,SAAS,EAAE,GAAG,CAAC,EAAE;gBACjB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,eAAe,EAAE,cAAc,EAAE,eAAe;gBAChD,KAAK;aACN,CAAC;QACJ,CAAC,CAAC,CAAC;QAGH,MAAM,WAAW,GAAG,WASP,CAAC;QACd,MAAM,cAAc,GAAG,OAAO,CAC5B,WAAW,EAAE,IAAI,EAAE,SAAS;eACzB,WAAW,CAAC,IAAI,CAAC,cAAc;eAC/B,WAAW,CAAC,IAAI,CAAC,gBAAgB;eACjC,WAAW,CAAC,IAAI,CAAC,OAAO,CAC5B,CAAC;QACF,MAAM,YAAY,GAAc,WAAW,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAC/D,MAAM,uBAAuB,GAAG,WAAW,EAAE,IAAI;YAC/C,CAAC,CAAC,qBAAqB,CACnB,WAAW,CAAC,IAAI,EAChB,WAAW,CAAC,MAAM,EAClB,CAAC,SAAS,EAAE,EAAE,CAAC,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CACrE,CAAC,OAAO;YACX,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,WAAW,GAAG,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5G,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,2BAA2B,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1G,MAAM,aAAa,GAAG,oBAAoB,CAAC,YAAY,EAAE,YAAY,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAC/G,MAAM,WAAW,GAAG,WAAW,IAAI,gBAAgB,IAAI,WAAW;YAChE,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC;YACzG,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,gBAAgB,GAAG,aAAa,KAAK,UAAU,IAAI,WAAW,IAAI,WAAW;YACjF,CAAC,CAAC;gBACE,YAAY,EAAE,WAAW,CAAC,KAAK;gBAC/B,WAAW,EAAE,WAAW;aACzB;YACH,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,eAAe,GAAG,aAAa,KAAK,cAAc,IAAI,WAAW,IAAI,WAAW;YACpF,CAAC,CAAC;gBACE,YAAY,EAAE,WAAW,CAAC,KAAK;gBAC/B,OAAO,EAAE,WAAW;aACrB;YACH,CAAC,CAAC,SAAS,CAAC;QAEb,KAAmD,CAAC,iBAAiB,GAAG;YACvE,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAClF,aAAa,EAAE,WAAW,EAAE,EAAE;YAC9B,gBAAgB;YAChB,cAAc;YACd,kBAAkB;YAClB,YAAY;YACZ,uBAAuB;YACvB,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,YAAY,EAAE,uBAAuB;YACrC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;SACpC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,KAAwB;QAC5D,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,uBAAuB,CAAC,CAAC;QAClE,MAAM,cAAc,GAAG,6BAA6B,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAClF,MAAM,cAAc,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;QAClE,MAAM,GAAG,GAAG,cAAc,EAAE,GAAG;eAC1B,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;eAC/F,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,MAAM,MAAM,GAAG,cAAc,EAAE,MAAM;eAChC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,sBAAsB,GAAG,IAAI,GAAG,CACpC,MAAM,CAAC,wBAAwB;aAC5B,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CACrB,UAAU,CAAC,OAAO;eACf,UAAU,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE;eACjC,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,GAAG,CAAC,EAAE,CAAC,CACtD;aACA,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CACnD,CAAC;QAED,KAAmD,CAAC,iBAAiB,GAAG;YACvE,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;YAC9C,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE;YACvF,UAAU,EAAE,IAAI;YAChB,sBAAsB,EAAE,4BAA4B;YACpD,oBAAoB,EAAE,4CAA4C,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAC9F,SAAS,EAAE;gBACT,OAAO,EAAE,gCAAgC;gBACzC,QAAQ,EAAE,iCAAiC;gBAC3C,eAAe,EAAE,0CAA0C;gBAC3D,MAAM,EAAE,+BAA+B;gBACvC,SAAS,EAAE,kCAAkC;gBAC7C,KAAK,EAAE,8BAA8B;gBACrC,QAAQ,EAAE,yCAAyC;gBACnD,aAAa,EAAE,wCAAwC;aACxD;YACD,cAAc,EAAE,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC5D,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,MAAM,EAAE,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;aAC/C,CAAC,CAAC;YACH,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;YAC7B,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM;SACpC,CAAC;IACJ,CAAC;;AAGH,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/service-betterportal-config-manager/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"previewEnvironmentManagement.d.ts","sourceRoot":"","sources":["../../../src/plugins/service-betterportal-config-manager/previewEnvironmentManagement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAE7B,MAAM,yBAAyB,CAAC;AAsGjC,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYzB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD,eAAO,MAAM,KAAK,yBAAyB,CAAC;AAC5C,eAAO,MAAM,WAAW,gFAAgF,CAAC;AACzG,eAAO,MAAM,UAAU,EAAE,UAA4D,CAAC;AACtF,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,YAAY,CAAC,EAapD,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAGrB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAgDtB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAyBrB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAYxB,CAAC;AAyMF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAaxH"}
1
+ {"version":3,"file":"previewEnvironmentManagement.d.ts","sourceRoot":"","sources":["../../../src/plugins/service-betterportal-config-manager/previewEnvironmentManagement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAE7B,MAAM,yBAAyB,CAAC;AAsGjC,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYzB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD,eAAO,MAAM,KAAK,yBAAyB,CAAC;AAC5C,eAAO,MAAM,WAAW,gFAAgF,CAAC;AACzG,eAAO,MAAM,UAAU,EAAE,UAA4D,CAAC;AACtF,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,YAAY,CAAC,EAapD,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAOrB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAgDtB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAyBrB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAYxB,CAAC;AA+MF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAaxH"}
@@ -108,7 +108,7 @@ export const demoScenarios = [{
108
108
  issuedCredentials: []
109
109
  }
110
110
  }];
111
- export const handleGet = createHandler({ response: ResponseSchema }, (ctx) => buildResponse(previewPath(ctx)));
111
+ export const handleGet = createHandler({ response: ResponseSchema }, (ctx) => buildResponse(previewPath(ctx), {}, stringValue(ctx.query._c) === "config" ? stringValue(ctx.query.groupId) : undefined));
112
112
  export const handlePost = createHandler({ response: ResponseSchema }, async (ctx) => mutate(ctx, async () => {
113
113
  const action = stringValue(ctx.request.action);
114
114
  const routeContext = getConfigManagerRouteContext();
@@ -201,32 +201,34 @@ function previewPath(ctx) {
201
201
  ?? ctx.routeUrl?.("preview-environments.index")
202
202
  ?? "/preview-environments";
203
203
  }
204
- async function buildResponse(path, transient = {}) {
204
+ async function buildResponse(path, transient = {}, configGroupId) {
205
205
  const routeContext = getConfigManagerRouteContext();
206
206
  const fullConfig = await routeContext.storage.loadConfig();
207
- const config = visibleAdminConfig(fullConfig);
208
- const sourceApps = config.apps.map((app) => {
209
- const tenant = config.tenants.find((candidate) => candidate.id === app.tenantId);
207
+ const visibleConfig = configGroupId === undefined ? visibleAdminConfig(fullConfig) : undefined;
208
+ const sourceApps = (visibleConfig?.apps ?? []).map((app) => {
209
+ const tenant = visibleConfig.tenants.find((candidate) => candidate.id === app.tenantId);
210
210
  return {
211
211
  id: app.id,
212
212
  tenantId: tenant.id,
213
213
  title: app.title
214
214
  };
215
215
  });
216
- const groups = fullConfig.previewEnvironmentGroups.map((group) => groupModel(fullConfig, group));
216
+ const groups = fullConfig.previewEnvironmentGroups
217
+ .filter((group) => configGroupId === undefined || group.id === configGroupId)
218
+ .map((group) => groupModel(fullConfig, group, configGroupId === group.id));
217
219
  return {
218
220
  title,
219
221
  previewPath: path,
220
222
  deploymentApiBase: PREVIEW_DEPLOYMENT_API_BASE,
221
223
  configTicketUrl: `${routeContext.serviceBaseUrl.replace(/\/+$/, "")}/.well-known/bp/admin/config-ticket`,
222
- sourceTenants: config.tenants.map((tenant) => ({ id: tenant.id, title: tenant.title })),
224
+ sourceTenants: (visibleConfig?.tenants ?? []).map((tenant) => ({ id: tenant.id, title: tenant.title })),
223
225
  sourceApps,
224
226
  groups,
225
227
  issuedCredentials: [],
226
228
  ...transient
227
229
  };
228
230
  }
229
- function groupModel(config, group) {
231
+ function groupModel(config, group, includeConfig = false) {
230
232
  const sourceTenant = config.tenants.find((tenant) => tenant.id === group.sourceTenantId);
231
233
  const sourceApp = config.apps.find((app) => app.id === group.sourceAppId);
232
234
  return {
@@ -244,7 +246,7 @@ function groupModel(config, group) {
244
246
  requiredClaimsJson: JSON.stringify(group.oidc.requiredClaims, null, 2)
245
247
  } : undefined,
246
248
  services: group.services.map((service) => {
247
- const descriptors = resolvePreviewConfigSchemas(config, group, service.serviceId) ?? [];
249
+ const descriptors = includeConfig ? resolvePreviewConfigSchemas(config, group, service.serviceId) ?? [] : [];
248
250
  const source = sourceConfigService(config, group, service.serviceId);
249
251
  const fields = [...new Map(descriptors.flatMap((descriptor) => descriptor.fields).map((field) => [
250
252
  `${field.scope}:${field.key}`,
@@ -265,8 +267,8 @@ function groupModel(config, group) {
265
267
  title: service.title ?? service.serviceId,
266
268
  fields,
267
269
  ...(source ? { source: { instanceId: source.instanceId, hostname: source.hostname } } : {}),
268
- encryptedTenantConfig: JSON.stringify(service.config.tenant),
269
- encryptedAppConfig: JSON.stringify(service.config.app)
270
+ encryptedTenantConfig: includeConfig ? JSON.stringify(service.config.tenant) : "{}",
271
+ encryptedAppConfig: includeConfig ? JSON.stringify(service.config.app) : "{}"
270
272
  };
271
273
  }),
272
274
  deployments: config.previewEnvironmentDeployments