@sisense/sdk-ai-core 0.10.1 → 0.15.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.
Files changed (136) hide show
  1. package/dist/engines/build-chart/build-chart-engine.d.ts +2 -12
  2. package/dist/engines/build-chart/build-chart-engine.d.ts.map +1 -1
  3. package/dist/engines/build-chart/create-chart/assemble-chart-widget.d.ts +31 -0
  4. package/dist/engines/build-chart/create-chart/assemble-chart-widget.d.ts.map +1 -0
  5. package/dist/engines/build-chart/create-chart/chart-json-axes-mapping.d.ts +27 -0
  6. package/dist/engines/build-chart/create-chart/chart-json-axes-mapping.d.ts.map +1 -0
  7. package/dist/engines/build-chart/create-chart/create-chart.d.ts +4 -21
  8. package/dist/engines/build-chart/create-chart/create-chart.d.ts.map +1 -1
  9. package/dist/engines/build-chart/create-chart/generate-chart-recommendations.d.ts +8 -4
  10. package/dist/engines/build-chart/create-chart/generate-chart-recommendations.d.ts.map +1 -1
  11. package/dist/engines/build-chart/create-chart/generate-chart.d.ts +18 -0
  12. package/dist/engines/build-chart/create-chart/generate-chart.d.ts.map +1 -0
  13. package/dist/engines/build-chart/create-chart/get-columns-json.d.ts +15 -0
  14. package/dist/engines/build-chart/create-chart/get-columns-json.d.ts.map +1 -0
  15. package/dist/engines/build-chart/create-chart/rebind-chart-to-query.d.ts +11 -0
  16. package/dist/engines/build-chart/create-chart/rebind-chart-to-query.d.ts.map +1 -0
  17. package/dist/engines/build-chart/create-chart/resolve-chart-query.d.ts +11 -0
  18. package/dist/engines/build-chart/create-chart/resolve-chart-query.d.ts.map +1 -0
  19. package/dist/engines/build-chart/shared/chart-column-utils.d.ts +7 -0
  20. package/dist/engines/build-chart/shared/chart-column-utils.d.ts.map +1 -0
  21. package/dist/engines/build-chart/shared/csdk-data-options-for-llm.d.ts +14 -0
  22. package/dist/engines/build-chart/shared/csdk-data-options-for-llm.d.ts.map +1 -0
  23. package/dist/engines/build-chart/shared/finalize-chart-widget-save.d.ts +8 -0
  24. package/dist/engines/build-chart/shared/finalize-chart-widget-save.d.ts.map +1 -0
  25. package/dist/engines/build-chart/shared/normalize-cartesian-axes-mapping.d.ts +8 -0
  26. package/dist/engines/build-chart/shared/normalize-cartesian-axes-mapping.d.ts.map +1 -0
  27. package/dist/engines/build-chart/shared/sync-chart-state-measure-flags.d.ts +22 -0
  28. package/dist/engines/build-chart/shared/sync-chart-state-measure-flags.d.ts.map +1 -0
  29. package/dist/engines/build-chart/types.d.ts +388 -511
  30. package/dist/engines/build-chart/types.d.ts.map +1 -1
  31. package/dist/engines/build-chart/update-chart/chart-options-schemas.d.ts +1608 -8812
  32. package/dist/engines/build-chart/update-chart/chart-options-schemas.d.ts.map +1 -1
  33. package/dist/engines/build-chart/update-chart/schemas.d.ts +68 -977
  34. package/dist/engines/build-chart/update-chart/schemas.d.ts.map +1 -1
  35. package/dist/engines/build-chart/update-chart/update-chart-data-options.d.ts +1 -1
  36. package/dist/engines/build-chart/update-chart/update-chart-data-options.d.ts.map +1 -1
  37. package/dist/engines/build-chart/update-chart/update-chart-query.d.ts +1 -1
  38. package/dist/engines/build-chart/update-chart/update-chart-query.d.ts.map +1 -1
  39. package/dist/engines/build-chart/update-chart/update-chart-style-options.d.ts +1 -1
  40. package/dist/engines/build-chart/update-chart/update-chart-style-options.d.ts.map +1 -1
  41. package/dist/engines/build-chart/update-chart/update-chart-title.d.ts +1 -1
  42. package/dist/engines/build-chart/update-chart/update-chart-title.d.ts.map +1 -1
  43. package/dist/engines/build-chart/update-chart/update-chart-type.d.ts +1 -1
  44. package/dist/engines/build-chart/update-chart/update-chart-type.d.ts.map +1 -1
  45. package/dist/engines/build-csv-model/build-csv-model-engine.d.ts +1 -1
  46. package/dist/engines/build-csv-model/build-csv-model-engine.d.ts.map +1 -1
  47. package/dist/engines/build-csv-model/rest-build.d.ts +26 -0
  48. package/dist/engines/build-csv-model/rest-build.d.ts.map +1 -1
  49. package/dist/engines/build-csv-model/types.d.ts +9 -71
  50. package/dist/engines/build-csv-model/types.d.ts.map +1 -1
  51. package/dist/engines/build-dashboard/build-dashboard-engine.d.ts +2 -10
  52. package/dist/engines/build-dashboard/build-dashboard-engine.d.ts.map +1 -1
  53. package/dist/engines/build-dashboard/build-dashboard-service.d.ts +3 -3
  54. package/dist/engines/build-dashboard/build-dashboard-service.d.ts.map +1 -1
  55. package/dist/engines/build-dashboard/dashboard-filters/manipulate-dashboard-filters.d.ts +2 -2
  56. package/dist/engines/build-dashboard/dashboard-filters/manipulate-dashboard-filters.d.ts.map +1 -1
  57. package/dist/engines/build-dashboard/index.d.ts +1 -1
  58. package/dist/engines/build-dashboard/index.d.ts.map +1 -1
  59. package/dist/engines/build-dashboard/types.d.ts +74 -123
  60. package/dist/engines/build-dashboard/types.d.ts.map +1 -1
  61. package/dist/engines/build-data-model/build-data-model-engine.d.ts +1 -1
  62. package/dist/engines/build-data-model/build-data-model-engine.d.ts.map +1 -1
  63. package/dist/engines/build-data-model/types.d.ts +59 -316
  64. package/dist/engines/build-data-model/types.d.ts.map +1 -1
  65. package/dist/engines/build-query/build-query-engine.d.ts +1 -1
  66. package/dist/engines/build-query/build-query-engine.d.ts.map +1 -1
  67. package/dist/engines/build-query/types.d.ts +2 -10
  68. package/dist/engines/build-query/types.d.ts.map +1 -1
  69. package/dist/engines/get-dashboards/get-dashboards-engine.d.ts +1 -1
  70. package/dist/engines/get-dashboards/get-dashboards-engine.d.ts.map +1 -1
  71. package/dist/engines/get-dashboards/types.d.ts +2 -2
  72. package/dist/engines/get-dashboards/types.d.ts.map +1 -1
  73. package/dist/engines/get-data-source-fields/get-data-source-fields-engine.d.ts +5 -4
  74. package/dist/engines/get-data-source-fields/get-data-source-fields-engine.d.ts.map +1 -1
  75. package/dist/engines/get-data-source-fields/types.d.ts +7 -9
  76. package/dist/engines/get-data-source-fields/types.d.ts.map +1 -1
  77. package/dist/engines/get-data-sources/get-data-sources-engine.d.ts +1 -1
  78. package/dist/engines/get-data-sources/get-data-sources-engine.d.ts.map +1 -1
  79. package/dist/engines/get-data-sources/types.d.ts +2 -2
  80. package/dist/engines/get-data-sources/types.d.ts.map +1 -1
  81. package/dist/engines/index.d.ts +1 -1
  82. package/dist/engines/index.d.ts.map +1 -1
  83. package/dist/engines/manage-perspectives/manage-perspectives-engine.d.ts +1 -1
  84. package/dist/engines/manage-perspectives/manage-perspectives-engine.d.ts.map +1 -1
  85. package/dist/engines/manage-perspectives/types.d.ts +77 -199
  86. package/dist/engines/manage-perspectives/types.d.ts.map +1 -1
  87. package/dist/engines/recommend-queries/recommend-queries-engine.d.ts +1 -1
  88. package/dist/engines/recommend-queries/recommend-queries-engine.d.ts.map +1 -1
  89. package/dist/engines/recommend-queries/types.d.ts +5 -17
  90. package/dist/engines/recommend-queries/types.d.ts.map +1 -1
  91. package/dist/index.d.ts +6 -3
  92. package/dist/index.d.ts.map +1 -1
  93. package/dist/index.js +27903 -8724
  94. package/dist/index.js.map +1 -1
  95. package/dist/services/dashboards/dashboards-service.d.ts.map +1 -1
  96. package/dist/services/dashboards/fusion-dashboards-service.d.ts.map +1 -1
  97. package/dist/services/data-models/ecm-service.d.ts +14 -0
  98. package/dist/services/data-models/ecm-service.d.ts.map +1 -1
  99. package/dist/services/data-sources/data-sources-service.d.ts.map +1 -1
  100. package/dist/services/llm/llm-models-service.d.ts +15 -0
  101. package/dist/services/llm/llm-models-service.d.ts.map +1 -0
  102. package/dist/services/nlq/nlq-service.d.ts +3 -14
  103. package/dist/services/nlq/nlq-service.d.ts.map +1 -1
  104. package/dist/singleton-clients.d.ts +4 -22
  105. package/dist/singleton-clients.d.ts.map +1 -1
  106. package/dist/utils/abort-signal.d.ts +3 -0
  107. package/dist/utils/abort-signal.d.ts.map +1 -0
  108. package/dist/utils/create-custom-fetch.d.ts +2 -3
  109. package/dist/utils/create-custom-fetch.d.ts.map +1 -1
  110. package/dist/utils/create-serialized-tool-group.d.ts +24 -0
  111. package/dist/utils/create-serialized-tool-group.d.ts.map +1 -0
  112. package/dist/utils/create-stream-completion.d.ts +69 -0
  113. package/dist/utils/create-stream-completion.d.ts.map +1 -0
  114. package/dist/utils/create-structured-completion.d.ts +18 -0
  115. package/dist/utils/create-structured-completion.d.ts.map +1 -0
  116. package/dist/utils/create-tools-completion.d.ts +28 -0
  117. package/dist/utils/create-tools-completion.d.ts.map +1 -0
  118. package/dist/utils/llm-client.d.ts +8 -0
  119. package/dist/utils/llm-client.d.ts.map +1 -0
  120. package/dist/utils/llm-provider-options.d.ts +14 -0
  121. package/dist/utils/llm-provider-options.d.ts.map +1 -0
  122. package/dist/utils/zod-utils.d.ts +23 -17
  123. package/dist/utils/zod-utils.d.ts.map +1 -1
  124. package/package.json +19 -18
  125. package/dist/engines/build-chart/create-chart/generate-chart-table.d.ts +0 -28
  126. package/dist/engines/build-chart/create-chart/generate-chart-table.d.ts.map +0 -1
  127. package/dist/engines/build-dashboard/create-chart-widget.d.ts +0 -5
  128. package/dist/engines/build-dashboard/create-chart-widget.d.ts.map +0 -1
  129. package/dist/engines/build-dashboard/update-chart-widget.d.ts +0 -5
  130. package/dist/engines/build-dashboard/update-chart-widget.d.ts.map +0 -1
  131. package/dist/services/globals/globals-service.d.ts +0 -2
  132. package/dist/services/globals/globals-service.d.ts.map +0 -1
  133. package/dist/utils/chat-completion-utils.d.ts +0 -55
  134. package/dist/utils/chat-completion-utils.d.ts.map +0 -1
  135. package/dist/utils/openai-client.d.ts +0 -11
  136. package/dist/utils/openai-client.d.ts.map +0 -1
@@ -1,28 +0,0 @@
1
- import { ExtendedChartWidgetProps } from '../types';
2
- import { HttpClient } from '@sisense/sdk-rest-client';
3
- import { QueryExecutionResult, QueryState } from '../../../services/nlq/nlq-service';
4
- import { QueryResult } from '../../build-query/types';
5
- /** Internal synthetic ids for chart-inline prior NLQ; never part of LLM-facing schemas. */
6
- export declare const INLINE_PRIOR_NLQ_ID_PREFIX = "__inline_prior_nlq__:";
7
- /**
8
- * Minimal {@link QueryResult} for {@link buildQueryEngine}'s `retrieveQuery` —
9
- * only `nlqResult.queryState` is read when resolving `priorQueryId`.
10
- */
11
- export declare function minimalQueryResultShimFromQueryState(queryState: QueryState, syntheticQueryId: string): QueryResult;
12
- export type GenerateChartTableResult = {
13
- widgetProps: ExtendedChartWidgetProps;
14
- };
15
- /**
16
- * Build table-phase chart widget props from an NLQ execution result (translate query JSON → columns).
17
- */
18
- export declare function tableWidgetPropsFromNlqExecution(nlqResult: QueryExecutionResult, chartTitle: string): ExtendedChartWidgetProps;
19
- /**
20
- * Load table-phase widget props from a stored build-query result (verbatim reuse; no NLQ round-trip).
21
- */
22
- export declare function loadChartTableFromQueryId(queryId: string, retrieveQuery: (queryId: string) => QueryResult | null, fallbackTitle: string): Promise<GenerateChartTableResult>;
23
- /**
24
- * Run NLQ / build-query and materialize a table-phase chart widget (no verbatim `queryId` path).
25
- * For verbatim reuse of a stored query, use {@link loadChartTableFromQueryId} from the caller.
26
- */
27
- export declare const generateChartTable: (dataSourceTitle: string, queryPrompt: string, isNlqV3Enabled?: boolean, httpClient?: HttpClient, nlqCommonFilters?: unknown, priorQueryState?: QueryState, isNlqDeltaEnabled?: boolean, retrieveQuery?: (queryId: string) => QueryResult | null) => Promise<GenerateChartTableResult>;
28
- //# sourceMappingURL=generate-chart-table.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-chart-table.d.ts","sourceRoot":"","sources":["../../../../src/engines/build-chart/create-chart/generate-chart-table.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAOpD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD,OAAO,EAEN,KAAK,oBAAoB,EACzB,KAAK,UAAU,EACf,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,2FAA2F;AAC3F,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAElE;;;GAGG;AACH,wBAAgB,oCAAoC,CACnD,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,MAAM,GACtB,WAAW,CAUb;AAED,MAAM,MAAM,wBAAwB,GAAG;IACtC,WAAW,EAAE,wBAAwB,CAAC;CACtC,CAAC;AAEF;;GAEG;AACH,wBAAgB,gCAAgC,CAC/C,SAAS,EAAE,oBAAoB,EAC/B,UAAU,EAAE,MAAM,GAChB,wBAAwB,CAoC1B;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC9C,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,EACtD,aAAa,EAAE,MAAM,GACnB,OAAO,CAAC,wBAAwB,CAAC,CAYnC;AA8GD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC9B,iBAAiB,MAAM,EACvB,aAAa,MAAM,EACnB,iBAAiB,OAAO,EACxB,aAAa,UAAU,EACvB,mBAAmB,OAAO,EAC1B,kBAAkB,UAAU,EAC5B,oBAAoB,OAAO,EAC3B,gBAAgB,CAAC,OAAO,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,KACrD,OAAO,CAAC,wBAAwB,CA+BlC,CAAC"}
@@ -1,5 +0,0 @@
1
- import { CreateChartWidgetForDashboardParams, BuildDashboardContext } from './types';
2
- export declare const createChartWidgetForDashboard: ({ dashboardId, userPrompt }: CreateChartWidgetForDashboardParams, context: BuildDashboardContext) => Promise<{
3
- message: string;
4
- }>;
5
- //# sourceMappingURL=create-chart-widget.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-chart-widget.d.ts","sourceRoot":"","sources":["../../../src/engines/build-dashboard/create-chart-widget.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,mCAAmC,EACnC,qBAAqB,EACrB,MAAM,SAAS,CAAC;AAcjB,eAAO,MAAM,6BAA6B,GACzC,6BAA6B,mCAAmC,EAChE,SAAS,qBAAqB;;EAkF9B,CAAC"}
@@ -1,5 +0,0 @@
1
- import { UpdateChartWidgetForDashboardParams, BuildDashboardContext } from './types';
2
- export declare const updateChartWidgetForDashboard: ({ dashboardId, widgetId, userPrompt }: UpdateChartWidgetForDashboardParams, context: BuildDashboardContext) => Promise<{
3
- message: string;
4
- }>;
5
- //# sourceMappingURL=update-chart-widget.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-chart-widget.d.ts","sourceRoot":"","sources":["../../../src/engines/build-dashboard/update-chart-widget.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,mCAAmC,EACnC,qBAAqB,EACrB,MAAM,SAAS,CAAC;AAUjB,eAAO,MAAM,6BAA6B,GACzC,uCAAuC,mCAAmC,EAC1E,SAAS,qBAAqB;;EAmG9B,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function loadGlobals(): Promise<unknown>;
2
- //# sourceMappingURL=globals-service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"globals-service.d.ts","sourceRoot":"","sources":["../../../src/services/globals/globals-service.ts"],"names":[],"mappings":"AAEA,wBAAsB,WAAW,qBAIhC"}
@@ -1,55 +0,0 @@
1
- import { z } from 'zod';
2
- import { OpenAI } from 'openai';
3
- type StructuredCompletionParams<T> = {
4
- systemPrompt: string;
5
- userPrompt: string;
6
- responseFormat: {
7
- type: 'json_schema';
8
- schema: z.ZodSchema<T>;
9
- name: string;
10
- } | {
11
- type: 'json_object';
12
- };
13
- model?: string;
14
- temperature?: number;
15
- sessionId?: string | null;
16
- openAIClient?: OpenAI;
17
- };
18
- /**
19
- * Creates a structured completion using OpenAI with consistent configuration
20
- * across all tools.
21
- */
22
- export declare function createStructuredCompletion<T>(params: StructuredCompletionParams<T>): Promise<T>;
23
- type ToolsCompletionParams = {
24
- systemPrompt: string;
25
- userPrompt: string;
26
- tools: any[];
27
- model?: string;
28
- temperature?: number;
29
- toolChoice?: 'auto' | 'none' | {
30
- type: 'function';
31
- function: {
32
- name: string;
33
- };
34
- };
35
- openAIClient?: OpenAI;
36
- };
37
- type GenericMessage = {
38
- role: string;
39
- content?: string | any;
40
- tool_call_id?: string;
41
- [key: string]: any;
42
- };
43
- type ToolsCompletionResult = {
44
- toolMessages: GenericMessage[];
45
- assistantMessages: string[];
46
- combinedMessage: string;
47
- isError: boolean;
48
- };
49
- /**
50
- * Creates a tools completion using OpenAI with streaming support.
51
- * Returns captured messages and a combined message string ready for use.
52
- */
53
- export declare function createToolsCompletion(params: ToolsCompletionParams): Promise<ToolsCompletionResult>;
54
- export {};
55
- //# sourceMappingURL=chat-completion-utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat-completion-utils.d.ts","sourceRoot":"","sources":["../../src/utils/chat-completion-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKrC,KAAK,0BAA0B,CAAC,CAAC,IAAI;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EACX;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAC7D;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,0BAA0B,CAAC,CAAC,EACjD,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC,GACnC,OAAO,CAAC,CAAC,CAAC,CA0DZ;AAED,KAAK,qBAAqB,GAAG;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EACR,MAAM,GACN,MAAM,GACN;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAGF,KAAK,cAAc,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC5B,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,qBAAqB,CAC1C,MAAM,EAAE,qBAAqB,GAC3B,OAAO,CAAC,qBAAqB,CAAC,CA8HhC"}
@@ -1,11 +0,0 @@
1
- import { HttpClient } from '@sisense/sdk-rest-client';
2
- import { default as OpenAI } from 'openai';
3
- /**
4
- * Factory function to create an OpenAI client with custom configuration
5
- * @param baseURL - The base URL for the OpenAI API endpoint
6
- * @param fetchFn - Custom fetch function (e.g., with authentication headers)
7
- * @returns Configured OpenAI client instance
8
- */
9
- export declare function createOpenAIClientHelper(baseURL: string, fetchFn: typeof fetch): OpenAI;
10
- export declare function createOpenAIClient(httpClient: HttpClient): OpenAI;
11
- //# sourceMappingURL=openai-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai-client.d.ts","sourceRoot":"","sources":["../../src/utils/openai-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAM5B;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,KAAK,GACnB,MAAM,CAQR;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAGjE"}