@casual-simulation/aux-records 3.8.1 → 3.10.2
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/AIChatInterface.d.ts +7 -43
- package/AIChatInterface.js +8 -6
- package/AIChatInterface.js.map +1 -1
- package/AIController.js +44 -49
- package/AIController.js.map +1 -1
- package/AIOpenAIRealtimeInterface.d.ts +1 -1
- package/AnthropicAIChatInterface.js +4 -4
- package/AnthropicAIChatInterface.js.map +1 -1
- package/AuthController.d.ts +78 -10
- package/AuthController.js +230 -166
- package/AuthController.js.map +1 -1
- package/AuthStore.d.ts +317 -4
- package/BigIntPatch.d.ts +1 -0
- package/BigIntPatch.js +24 -0
- package/BigIntPatch.js.map +1 -0
- package/BlockadeLabsGenerateSkyboxInterface.js +4 -4
- package/BlockadeLabsGenerateSkyboxInterface.js.map +1 -1
- package/CachingConfigStore.d.ts +8 -1
- package/CachingConfigStore.js +50 -0
- package/CachingConfigStore.js.map +1 -1
- package/ComIdConfig.d.ts +132 -86
- package/ComIdConfig.js +5 -5
- package/ComIdConfig.js.map +1 -1
- package/ConfigurationStore.d.ts +1393 -3
- package/ConfigurationStore.js +49 -0
- package/ConfigurationStore.js.map +1 -1
- package/DataRecordsController.js +28 -28
- package/DataRecordsController.js.map +1 -1
- package/EventRecordsController.js +9 -9
- package/EventRecordsController.js.map +1 -1
- package/FileRecordsController.js +18 -17
- package/FileRecordsController.js.map +1 -1
- package/GoogleAIChatInterface.js +4 -4
- package/GoogleAIChatInterface.js.map +1 -1
- package/HttpTestUtils.d.ts +48 -0
- package/HttpTestUtils.js +256 -0
- package/HttpTestUtils.js.map +1 -0
- package/LivekitController.js +2 -2
- package/LivekitController.js.map +1 -1
- package/LoomController.js +3 -4
- package/LoomController.js.map +1 -1
- package/MemoryStore.d.ts +60 -7
- package/MemoryStore.js +427 -59
- package/MemoryStore.js.map +1 -1
- package/MetricsStore.d.ts +11 -0
- package/ModerationConfiguration.d.ts +11 -85
- package/ModerationConfiguration.js +17 -17
- package/ModerationConfiguration.js.map +1 -1
- package/ModerationController.js +9 -11
- package/ModerationController.js.map +1 -1
- package/OpenAIChatInterface.js +8 -13
- package/OpenAIChatInterface.js.map +1 -1
- package/OpenAIImageInterface.js +4 -5
- package/OpenAIImageInterface.js.map +1 -1
- package/PolicyController.js +66 -73
- package/PolicyController.js.map +1 -1
- package/PolicyStore.d.ts +59 -33
- package/PolicyStore.js +35 -1
- package/PolicyStore.js.map +1 -1
- package/PrivoClient.d.ts +3 -1
- package/PrivoClient.js +2 -4
- package/PrivoClient.js.map +1 -1
- package/PrivoConfiguration.d.ts +6 -72
- package/PrivoConfiguration.js +30 -31
- package/PrivoConfiguration.js.map +1 -1
- package/README.md +276 -2
- package/RateLimitController.js +2 -2
- package/RateLimitController.js.map +1 -1
- package/RecordsClient.d.ts +3 -1
- package/RecordsClient.js +6 -6
- package/RecordsClient.js.map +1 -1
- package/RecordsController.d.ts +145 -3
- package/RecordsController.js +399 -61
- package/RecordsController.js.map +1 -1
- package/RecordsServer.d.ts +1932 -1109
- package/RecordsStore.d.ts +99 -14
- package/RecordsStore.js +8 -10
- package/RecordsStore.js.map +1 -1
- package/ServerConfig.d.ts +698 -9867
- package/ServerConfig.js +457 -377
- package/ServerConfig.js.map +1 -1
- package/SloydInterface.js +1 -1
- package/SloydInterface.js.map +1 -1
- package/StabilityAIImageInterface.js +6 -9
- package/StabilityAIImageInterface.js.map +1 -1
- package/StripeInterface.d.ts +431 -287
- package/StripeInterface.js +21 -1
- package/StripeInterface.js.map +1 -1
- package/SubscriptionConfigBuilder.d.ts +10 -1
- package/SubscriptionConfigBuilder.js +72 -41
- package/SubscriptionConfigBuilder.js.map +1 -1
- package/SubscriptionConfiguration.d.ts +606 -6334
- package/SubscriptionConfiguration.js +460 -277
- package/SubscriptionConfiguration.js.map +1 -1
- package/SubscriptionController.d.ts +677 -4
- package/SubscriptionController.js +2986 -186
- package/SubscriptionController.js.map +1 -1
- package/SystemNotificationMessenger.d.ts +14 -70
- package/SystemNotificationMessenger.js +17 -20
- package/SystemNotificationMessenger.js.map +1 -1
- package/TestUtils.d.ts +18 -3
- package/TestUtils.js +84 -8
- package/TestUtils.js.map +1 -1
- package/TypeUtils.d.ts +991 -0
- package/TypeUtils.js +2 -0
- package/TypeUtils.js.map +1 -0
- package/Utils.d.ts +59 -0
- package/Utils.js +507 -3
- package/Utils.js.map +1 -1
- package/Validations.d.ts +24 -108
- package/Validations.js +62 -45
- package/Validations.js.map +1 -1
- package/ViewTemplateRenderer.d.ts +39 -0
- package/ViewTemplateRenderer.js +19 -0
- package/ViewTemplateRenderer.js.map +1 -0
- package/contracts/ContractRecordsController.d.ts +58 -0
- package/contracts/ContractRecordsController.js +144 -0
- package/contracts/ContractRecordsController.js.map +1 -0
- package/contracts/ContractRecordsStore.d.ts +285 -0
- package/contracts/ContractRecordsStore.js +19 -0
- package/contracts/ContractRecordsStore.js.map +1 -0
- package/contracts/MemoryContractRecordsStore.d.ts +27 -0
- package/contracts/MemoryContractRecordsStore.js +124 -0
- package/contracts/MemoryContractRecordsStore.js.map +1 -0
- package/contracts/index.d.ts +4 -0
- package/contracts/index.js +21 -0
- package/contracts/index.js.map +1 -0
- package/crud/CrudHelpers.d.ts +25 -26
- package/crud/CrudHelpers.js +1 -1
- package/crud/CrudHelpers.js.map +1 -1
- package/crud/CrudRecordsController.js +13 -16
- package/crud/CrudRecordsController.js.map +1 -1
- package/crud/CrudRecordsControllerTests.d.ts +2 -2
- package/crud/CrudRecordsControllerTests.js +605 -580
- package/crud/CrudRecordsControllerTests.js.map +1 -1
- package/crud/MemoryCrudRecordsStore.js +1 -2
- package/crud/MemoryCrudRecordsStore.js.map +1 -1
- package/crud/sub/MemorySubCrudRecordsStore.js +4 -6
- package/crud/sub/MemorySubCrudRecordsStore.js.map +1 -1
- package/crud/sub/SubCrudRecordsController.js +8 -8
- package/crud/sub/SubCrudRecordsController.js.map +1 -1
- package/database/DatabaseRecordsController.js +1 -2
- package/database/DatabaseRecordsController.js.map +1 -1
- package/database/SqliteDatabaseInterface.js +1 -2
- package/database/SqliteDatabaseInterface.js.map +1 -1
- package/dns/DNSDomainNameValidator.d.ts +11 -0
- package/dns/DNSDomainNameValidator.js +59 -0
- package/dns/DNSDomainNameValidator.js.map +1 -0
- package/dns/DomainNameValidator.d.ts +36 -0
- package/dns/DomainNameValidator.js +19 -0
- package/dns/DomainNameValidator.js.map +1 -0
- package/dns/index.d.ts +3 -0
- package/dns/index.js +20 -0
- package/dns/index.js.map +1 -0
- package/financial/FinancialController.d.ts +272 -0
- package/financial/FinancialController.js +762 -0
- package/financial/FinancialController.js.map +1 -0
- package/financial/FinancialInterface.d.ts +352 -0
- package/financial/FinancialInterface.js +642 -0
- package/financial/FinancialInterface.js.map +1 -0
- package/financial/FinancialStore.d.ts +186 -0
- package/financial/FinancialStore.js +19 -0
- package/financial/FinancialStore.js.map +1 -0
- package/financial/MemoryFinancialInterface.d.ts +23 -0
- package/financial/MemoryFinancialInterface.js +592 -0
- package/financial/MemoryFinancialInterface.js.map +1 -0
- package/financial/TigerBeetleFinancialInterface.d.ts +46 -0
- package/financial/TigerBeetleFinancialInterface.js +109 -0
- package/financial/TigerBeetleFinancialInterface.js.map +1 -0
- package/financial/TigerBeetleTestUtils.d.ts +40 -0
- package/financial/TigerBeetleTestUtils.js +185 -0
- package/financial/TigerBeetleTestUtils.js.map +1 -0
- package/financial/Types.d.ts +1 -0
- package/financial/Types.js +801 -0
- package/financial/Types.js.map +1 -0
- package/financial/index.d.ts +6 -0
- package/financial/index.js +24 -0
- package/financial/index.js.map +1 -0
- package/index.d.ts +4 -0
- package/index.js +3 -0
- package/index.js.map +1 -1
- package/notifications/NotificationRecordsController.js +14 -14
- package/notifications/NotificationRecordsController.js.map +1 -1
- package/notifications/WebPushInterface.d.ts +24 -155
- package/notifications/WebPushInterface.js +2 -2
- package/notifications/WebPushInterface.js.map +1 -1
- package/package.json +72 -70
- package/packages/version/MemoryPackageVersionRecordsStore.js +12 -15
- package/packages/version/MemoryPackageVersionRecordsStore.js.map +1 -1
- package/packages/version/PackageVersionRecordsController.d.ts +19 -0
- package/packages/version/PackageVersionRecordsController.js +102 -22
- package/packages/version/PackageVersionRecordsController.js.map +1 -1
- package/packages/version/PackageVersionRecordsStore.js +6 -8
- package/packages/version/PackageVersionRecordsStore.js.map +1 -1
- package/purchasable-items/MemoryPurchasableItemRecordsStore.d.ts +7 -0
- package/purchasable-items/MemoryPurchasableItemRecordsStore.js +33 -0
- package/purchasable-items/MemoryPurchasableItemRecordsStore.js.map +1 -0
- package/purchasable-items/PurchasableItemRecordsController.d.ts +16 -0
- package/purchasable-items/PurchasableItemRecordsController.js +72 -0
- package/purchasable-items/PurchasableItemRecordsController.js.map +1 -0
- package/purchasable-items/PurchasableItemRecordsStore.d.ts +66 -0
- package/purchasable-items/PurchasableItemRecordsStore.js +2 -0
- package/purchasable-items/PurchasableItemRecordsStore.js.map +1 -0
- package/purchasable-items/index.d.ts +4 -0
- package/purchasable-items/index.js +21 -0
- package/purchasable-items/index.js.map +1 -0
- package/queue/MemoryQueue.js +1 -1
- package/queue/MemoryQueue.js.map +1 -1
- package/search/MemorySearchInterface.js +1 -2
- package/search/MemorySearchInterface.js.map +1 -1
- package/search/SearchRecordsController.d.ts +66 -244
- package/search/SearchRecordsController.js +35 -36
- package/search/SearchRecordsController.js.map +1 -1
- package/search/SearchSyncProcessor.d.ts +7 -83
- package/search/TypesenseSearchInterface.js +8 -11
- package/search/TypesenseSearchInterface.js.map +1 -1
- package/tracing/TracingDecorators.js +5 -8
- package/tracing/TracingDecorators.js.map +1 -1
- package/webhooks/WebhookEnvironment.d.ts +36 -560
- package/webhooks/WebhookEnvironment.js +1 -1
- package/webhooks/WebhookEnvironment.js.map +1 -1
- package/webhooks/WebhookRecordsController.js +14 -16
- package/webhooks/WebhookRecordsController.js.map +1 -1
- package/websockets/MemoryLockStore.d.ts +18 -0
- package/websockets/MemoryLockStore.js +2 -0
- package/websockets/MemoryLockStore.js.map +1 -0
- package/websockets/MemoryTempInstRecordsStore.js +15 -27
- package/websockets/MemoryTempInstRecordsStore.js.map +1 -1
- package/websockets/MemoryWebsocketConnectionStore.js +6 -8
- package/websockets/MemoryWebsocketConnectionStore.js.map +1 -1
- package/websockets/MemoryWebsocketMessenger.js +1 -2
- package/websockets/MemoryWebsocketMessenger.js.map +1 -1
- package/websockets/SplitInstRecordsStore.js +2 -2
- package/websockets/SplitInstRecordsStore.js.map +1 -1
- package/websockets/WebsocketController.d.ts +5 -0
- package/websockets/WebsocketController.js +122 -83
- package/websockets/WebsocketController.js.map +1 -1
- package/RecordsServer.js +0 -6435
- package/RecordsServer.js.map +0 -1
package/RecordsStore.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import type { ComIdConfig, ComIdPlayerConfig } from './ComIdConfig';
|
|
3
3
|
import type { PublicRecordKeyPolicy } from '@casual-simulation/aux-common';
|
|
4
|
+
import type { StripeAccountStatus, StripeRequirementsStatus } from './StripeInterface';
|
|
5
|
+
import type { WebManifest } from '@casual-simulation/aux-common/common/WebManifest';
|
|
4
6
|
/**
|
|
5
7
|
* Defines an interface for objects that can store records.
|
|
6
8
|
*/
|
|
@@ -165,6 +167,43 @@ export interface RecordsStore {
|
|
|
165
167
|
* @param config The config that should be updated for the studio.
|
|
166
168
|
*/
|
|
167
169
|
updateStudioHumeConfig(studioId: string, config: HumeConfig): Promise<void>;
|
|
170
|
+
/**
|
|
171
|
+
* Gets the studio with the given stripe account ID. Returns null if no studio has that stripe account ID.
|
|
172
|
+
* @param accountId The ID of the stripe account.
|
|
173
|
+
*/
|
|
174
|
+
getStudioByStripeAccountId(accountId: string): Promise<Studio | null>;
|
|
175
|
+
/**
|
|
176
|
+
* Saves the given custom domain to the store.
|
|
177
|
+
* @param domain The custom domain to save.
|
|
178
|
+
*/
|
|
179
|
+
saveCustomDomain(domain: CustomDomain): Promise<void>;
|
|
180
|
+
/**
|
|
181
|
+
* Removes the custom domain with the given ID from the store.
|
|
182
|
+
* @param domainId The ID of the custom domain to remove.
|
|
183
|
+
*/
|
|
184
|
+
deleteCustomDomain(domainId: string): Promise<void>;
|
|
185
|
+
/**
|
|
186
|
+
* Gets the custom domain with the given ID.
|
|
187
|
+
* @param domainId The ID of the custom domain.
|
|
188
|
+
*/
|
|
189
|
+
getCustomDomainById(domainId: string): Promise<CustomDomainWithStudio | null>;
|
|
190
|
+
/**
|
|
191
|
+
* Gets the list of custom domains for the given studio ID.
|
|
192
|
+
* @param studioId The ID of the studio.
|
|
193
|
+
*/
|
|
194
|
+
listCustomDomainsByStudioId(studioId: string): Promise<CustomDomain[]>;
|
|
195
|
+
/**
|
|
196
|
+
* Gets the verified custom domain with the given domain name.
|
|
197
|
+
* Returns null if no verified custom domain with the given name exists.
|
|
198
|
+
*
|
|
199
|
+
* @param domainName The domain name.
|
|
200
|
+
*/
|
|
201
|
+
getVerifiedCustomDomainByName(domainName: string): Promise<CustomDomainWithStudio | null>;
|
|
202
|
+
/**
|
|
203
|
+
* Marks the custom domain with the given ID as verified.
|
|
204
|
+
* @param domainId The ID of the custom domain to mark as verified.
|
|
205
|
+
*/
|
|
206
|
+
markCustomDomainAsVerified(domainId: string): Promise<void>;
|
|
168
207
|
}
|
|
169
208
|
export interface CountRecordsFilter {
|
|
170
209
|
/**
|
|
@@ -242,6 +281,28 @@ export interface Studio {
|
|
|
242
281
|
* The ID of the stripe customer for this studio.
|
|
243
282
|
*/
|
|
244
283
|
stripeCustomerId?: string;
|
|
284
|
+
/**
|
|
285
|
+
* The ID of the stripe account for this studio.
|
|
286
|
+
*/
|
|
287
|
+
stripeAccountId?: string | null;
|
|
288
|
+
/**
|
|
289
|
+
* The status of the stripe account requirements for this studio.
|
|
290
|
+
*
|
|
291
|
+
* If null, then the studio does not have a stripe account.
|
|
292
|
+
* If 'incomplete', then the studio has a stripe account but it is not fully set up.
|
|
293
|
+
* If 'complete', then the studio has a stripe account that is fully set up.
|
|
294
|
+
*/
|
|
295
|
+
stripeAccountRequirementsStatus?: StripeRequirementsStatus;
|
|
296
|
+
/**
|
|
297
|
+
* The status of the stripe account that is associated with this studio.
|
|
298
|
+
*
|
|
299
|
+
* If null, then the studio does not have a stripe account.
|
|
300
|
+
* If 'active', then the stripe account has been approved and is active.
|
|
301
|
+
* If 'pending', then the stripe account is waiting approval.
|
|
302
|
+
* If 'rejected', then the stripe account was rejected.
|
|
303
|
+
* If 'disabled', then the stripe account was disabled but not because it was rejected.
|
|
304
|
+
*/
|
|
305
|
+
stripeAccountStatus?: StripeAccountStatus;
|
|
245
306
|
/**
|
|
246
307
|
* The current subscription status for this studio.
|
|
247
308
|
*/
|
|
@@ -275,6 +336,10 @@ export interface Studio {
|
|
|
275
336
|
* The player web config for the studio.
|
|
276
337
|
*/
|
|
277
338
|
playerConfig?: ComIdPlayerConfig;
|
|
339
|
+
/**
|
|
340
|
+
* The PWA web manifest that should be served for the player.
|
|
341
|
+
*/
|
|
342
|
+
playerWebManifest?: WebManifest;
|
|
278
343
|
/**
|
|
279
344
|
* The config for comId features.
|
|
280
345
|
*/
|
|
@@ -284,23 +349,11 @@ export type LoomConfig = z.infer<typeof LOOM_CONFIG>;
|
|
|
284
349
|
export declare const LOOM_CONFIG: z.ZodObject<{
|
|
285
350
|
appId: z.ZodString;
|
|
286
351
|
privateKey: z.ZodString;
|
|
287
|
-
},
|
|
288
|
-
appId?: string;
|
|
289
|
-
privateKey?: string;
|
|
290
|
-
}, {
|
|
291
|
-
appId?: string;
|
|
292
|
-
privateKey?: string;
|
|
293
|
-
}>;
|
|
352
|
+
}, z.core.$strip>;
|
|
294
353
|
export declare const HUME_CONFIG: z.ZodObject<{
|
|
295
354
|
apiKey: z.ZodString;
|
|
296
355
|
secretKey: z.ZodString;
|
|
297
|
-
},
|
|
298
|
-
apiKey?: string;
|
|
299
|
-
secretKey?: string;
|
|
300
|
-
}, {
|
|
301
|
-
apiKey?: string;
|
|
302
|
-
secretKey?: string;
|
|
303
|
-
}>;
|
|
356
|
+
}, z.core.$strip>;
|
|
304
357
|
export type HumeConfig = z.infer<typeof HUME_CONFIG>;
|
|
305
358
|
/**
|
|
306
359
|
* Defines the list of possible studio roles that a user can be assigned.
|
|
@@ -509,4 +562,36 @@ export interface StudioComIdRequest {
|
|
|
509
562
|
*/
|
|
510
563
|
updatedAtMs: number;
|
|
511
564
|
}
|
|
565
|
+
/**
|
|
566
|
+
* Represents a custom domain that is associated with a studio.
|
|
567
|
+
*
|
|
568
|
+
* These domains may or may not be verified.
|
|
569
|
+
*/
|
|
570
|
+
export interface CustomDomain {
|
|
571
|
+
/**
|
|
572
|
+
* The ID of the custom domain.
|
|
573
|
+
*/
|
|
574
|
+
id: string;
|
|
575
|
+
/**
|
|
576
|
+
* The domain name.
|
|
577
|
+
*/
|
|
578
|
+
domainName: string;
|
|
579
|
+
/**
|
|
580
|
+
* The ID of the studio that the custom domain is associated with.
|
|
581
|
+
*/
|
|
582
|
+
studioId: string;
|
|
583
|
+
/**
|
|
584
|
+
* The HMAC-SHA-256 verification key.
|
|
585
|
+
*/
|
|
586
|
+
verificationKey: string;
|
|
587
|
+
/**
|
|
588
|
+
* Whether the custom domain has been verified.
|
|
589
|
+
* Null if not verified.
|
|
590
|
+
*/
|
|
591
|
+
verified: true | null;
|
|
592
|
+
}
|
|
593
|
+
export type ListedCustomDomain = Pick<CustomDomain, 'id' | 'domainName' | 'verified'>;
|
|
594
|
+
export interface CustomDomainWithStudio extends CustomDomain {
|
|
595
|
+
studio: Studio;
|
|
596
|
+
}
|
|
512
597
|
//# sourceMappingURL=RecordsStore.d.ts.map
|
package/RecordsStore.js
CHANGED
|
@@ -16,20 +16,18 @@
|
|
|
16
16
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
18
|
import { z } from 'zod';
|
|
19
|
-
export const LOOM_CONFIG = z
|
|
20
|
-
.
|
|
21
|
-
appId: z.string().describe('The ID of the loom app.').max(100),
|
|
19
|
+
export const LOOM_CONFIG = z.object({
|
|
20
|
+
appId: z.string().max(100).describe('The ID of the loom app.'),
|
|
22
21
|
privateKey: z
|
|
23
22
|
.string()
|
|
24
|
-
.
|
|
25
|
-
.
|
|
26
|
-
})
|
|
27
|
-
.describe('The configuration that can be used by studios to setup loom.');
|
|
23
|
+
.max(100)
|
|
24
|
+
.describe('The private key for the loom app.'),
|
|
25
|
+
});
|
|
28
26
|
export const HUME_CONFIG = z.object({
|
|
29
|
-
apiKey: z.string().describe('The API key for the Hume service.')
|
|
27
|
+
apiKey: z.string().max(100).describe('The API key for the Hume service.'),
|
|
30
28
|
secretKey: z
|
|
31
29
|
.string()
|
|
32
|
-
.
|
|
33
|
-
.
|
|
30
|
+
.max(100)
|
|
31
|
+
.describe('The secret key for the Hume service.'),
|
|
34
32
|
});
|
|
35
33
|
//# sourceMappingURL=RecordsStore.js.map
|
package/RecordsStore.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordsStore.js","sourceRoot":"","sources":["RecordsStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"RecordsStore.js","sourceRoot":"","sources":["RecordsStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkbxB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IAC9D,UAAU,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CAAC,mCAAmC,CAAC;CACrD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACzE,SAAS,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CAAC,sCAAsC,CAAC;CACxD,CAAC,CAAC"}
|