@multiplayer-app/ai-agent-mongo 0.1.0-beta.70 → 0.1.0-beta.72

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 (43) hide show
  1. package/dist/cjs/index.cjs +5 -1
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/cjs/index.d.ts +2 -0
  4. package/dist/cjs/index.d.ts.map +1 -1
  5. package/dist/cjs/repositories/MongoTenantAICredentialRepository.cjs +129 -0
  6. package/dist/cjs/repositories/MongoTenantAICredentialRepository.cjs.map +1 -0
  7. package/dist/cjs/repositories/MongoTenantAICredentialRepository.d.ts +25 -0
  8. package/dist/cjs/repositories/MongoTenantAICredentialRepository.d.ts.map +1 -0
  9. package/dist/cjs/repositories/index.cjs +1 -0
  10. package/dist/cjs/repositories/index.cjs.map +1 -1
  11. package/dist/cjs/repositories/index.d.ts +1 -0
  12. package/dist/cjs/repositories/index.d.ts.map +1 -1
  13. package/dist/cjs/schemas/TenantAICredentialSchema.cjs +17 -0
  14. package/dist/cjs/schemas/TenantAICredentialSchema.cjs.map +1 -0
  15. package/dist/cjs/schemas/TenantAICredentialSchema.d.ts +20 -0
  16. package/dist/cjs/schemas/TenantAICredentialSchema.d.ts.map +1 -0
  17. package/dist/cjs/schemas/index.cjs +1 -0
  18. package/dist/cjs/schemas/index.cjs.map +1 -1
  19. package/dist/cjs/schemas/index.d.ts +1 -0
  20. package/dist/cjs/schemas/index.d.ts.map +1 -1
  21. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  22. package/dist/esm/index.d.ts +2 -0
  23. package/dist/esm/index.d.ts.map +1 -1
  24. package/dist/esm/index.js +2 -0
  25. package/dist/esm/index.js.map +1 -1
  26. package/dist/esm/repositories/MongoTenantAICredentialRepository.d.ts +25 -0
  27. package/dist/esm/repositories/MongoTenantAICredentialRepository.d.ts.map +1 -0
  28. package/dist/esm/repositories/MongoTenantAICredentialRepository.js +125 -0
  29. package/dist/esm/repositories/MongoTenantAICredentialRepository.js.map +1 -0
  30. package/dist/esm/repositories/index.d.ts +1 -0
  31. package/dist/esm/repositories/index.d.ts.map +1 -1
  32. package/dist/esm/repositories/index.js +1 -0
  33. package/dist/esm/repositories/index.js.map +1 -1
  34. package/dist/esm/schemas/TenantAICredentialSchema.d.ts +20 -0
  35. package/dist/esm/schemas/TenantAICredentialSchema.d.ts.map +1 -0
  36. package/dist/esm/schemas/TenantAICredentialSchema.js +14 -0
  37. package/dist/esm/schemas/TenantAICredentialSchema.js.map +1 -0
  38. package/dist/esm/schemas/index.d.ts +1 -0
  39. package/dist/esm/schemas/index.d.ts.map +1 -1
  40. package/dist/esm/schemas/index.js +1 -0
  41. package/dist/esm/schemas/index.js.map +1 -1
  42. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  43. package/package.json +3 -3
@@ -0,0 +1,25 @@
1
+ import type { TenantAICredential, AIProvider } from '@multiplayer-app/ai-agent-types';
2
+ import type { TenantAICredentialRepository } from '@multiplayer-app/ai-agent-db';
3
+ import { SortOrder } from '@multiplayer-app/ai-agent-types';
4
+ export declare class MongoTenantAICredentialRepository implements TenantAICredentialRepository {
5
+ findById(id: string): Promise<TenantAICredential | null>;
6
+ find(filter?: Partial<TenantAICredential>, options?: {
7
+ sort?: {
8
+ field: string;
9
+ order: SortOrder;
10
+ };
11
+ skip?: number;
12
+ limit?: number;
13
+ }): Promise<TenantAICredential[]>;
14
+ findOne(filter: Partial<TenantAICredential>): Promise<TenantAICredential | null>;
15
+ create(entity: Omit<TenantAICredential, 'id' | 'createdAt' | 'updatedAt'>): Promise<TenantAICredential>;
16
+ update(id: string, updates: Partial<Omit<TenantAICredential, 'id' | 'createdAt'>>): Promise<TenantAICredential | null>;
17
+ delete(id: string): Promise<boolean>;
18
+ exists(id: string): Promise<boolean>;
19
+ count(filter?: Partial<TenantAICredential>): Promise<number>;
20
+ findByTenantKey(tenantKey: string): Promise<TenantAICredential[]>;
21
+ findByTenantKeyAndProvider(tenantKey: string, provider: AIProvider): Promise<TenantAICredential | null>;
22
+ upsertByTenantKeyAndProvider(tenantKey: string, tenants: Record<string, string>, provider: AIProvider, encryptedApiKey: string, baseUrl?: string): Promise<TenantAICredential>;
23
+ deleteByTenantKeyAndProvider(tenantKey: string, provider: AIProvider): Promise<boolean>;
24
+ }
25
+ //# sourceMappingURL=MongoTenantAICredentialRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongoTenantAICredentialRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/MongoTenantAICredentialRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AA4B5D,qBAAa,iCAAkC,YAAW,4BAA4B;IAC9E,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAKxD,IAAI,CACR,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACpC,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,SAAS,CAAA;SAAE,CAAC;QAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACA,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAqB1B,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAUhF,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAQvG,MAAM,CACV,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GAC7D,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAS/B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKpC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKpC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAU5D,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAKjE,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAKvG,4BAA4B,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,QAAQ,EAAE,UAAU,EACpB,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC;IAwBxB,4BAA4B,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;CAI9F"}
@@ -0,0 +1,125 @@
1
+ import { SortOrder } from '@multiplayer-app/ai-agent-types';
2
+ import { TenantAICredentialModel, } from '../schemas/TenantAICredentialSchema';
3
+ function toTenantAICredential(doc) {
4
+ if (!doc)
5
+ return null;
6
+ const value = doc.toObject ? doc.toObject() : doc;
7
+ const tenantsValue = value.tenants;
8
+ const tenants = tenantsValue instanceof Map
9
+ ? Object.fromEntries(tenantsValue.entries())
10
+ : (tenantsValue ?? {});
11
+ return {
12
+ id: doc._id.toString(),
13
+ tenantKey: value.tenantKey,
14
+ tenants,
15
+ provider: value.provider,
16
+ encryptedApiKey: value.encryptedApiKey,
17
+ baseUrl: value.baseUrl,
18
+ createdAt: value.createdAt?.toISOString?.() ?? value.createdAt,
19
+ updatedAt: value.updatedAt?.toISOString?.() ?? value.updatedAt,
20
+ };
21
+ }
22
+ export class MongoTenantAICredentialRepository {
23
+ async findById(id) {
24
+ const doc = await TenantAICredentialModel.findById(id).exec();
25
+ return toTenantAICredential(doc);
26
+ }
27
+ async find(filter, options) {
28
+ const query = {};
29
+ if (filter) {
30
+ if (filter.id)
31
+ query._id = filter.id;
32
+ if (filter.tenantKey !== undefined)
33
+ query.tenantKey = filter.tenantKey;
34
+ if (filter.provider !== undefined)
35
+ query.provider = filter.provider;
36
+ }
37
+ let qb = TenantAICredentialModel.find(query);
38
+ if (options?.sort) {
39
+ const sortField = options.sort.field === 'id' ? '_id' : options.sort.field;
40
+ const sortOrder = options.sort.order === SortOrder.Asc ? 1 : -1;
41
+ qb = qb.sort({ [sortField]: sortOrder });
42
+ }
43
+ if (options?.skip)
44
+ qb = qb.skip(options.skip);
45
+ if (options?.limit)
46
+ qb = qb.limit(options.limit);
47
+ const docs = await qb.exec();
48
+ return docs.map((doc) => toTenantAICredential(doc)).filter(Boolean);
49
+ }
50
+ async findOne(filter) {
51
+ const query = {};
52
+ if (filter.id)
53
+ query._id = filter.id;
54
+ if (filter.tenantKey !== undefined)
55
+ query.tenantKey = filter.tenantKey;
56
+ if (filter.provider !== undefined)
57
+ query.provider = filter.provider;
58
+ const doc = await TenantAICredentialModel.findOne(query).exec();
59
+ return toTenantAICredential(doc);
60
+ }
61
+ async create(entity) {
62
+ const doc = new TenantAICredentialModel(entity);
63
+ const saved = await doc.save();
64
+ const result = toTenantAICredential(saved);
65
+ if (!result)
66
+ throw new Error('Failed to create tenant AI credential');
67
+ return result;
68
+ }
69
+ async update(id, updates) {
70
+ const doc = await TenantAICredentialModel.findByIdAndUpdate(id, { $set: updates }, { new: true, runValidators: true }).exec();
71
+ return toTenantAICredential(doc);
72
+ }
73
+ async delete(id) {
74
+ const result = await TenantAICredentialModel.findByIdAndDelete(id).exec();
75
+ return !!result;
76
+ }
77
+ async exists(id) {
78
+ const count = await TenantAICredentialModel.countDocuments({ _id: id }).exec();
79
+ return count > 0;
80
+ }
81
+ async count(filter) {
82
+ const query = {};
83
+ if (filter) {
84
+ if (filter.id)
85
+ query._id = filter.id;
86
+ if (filter.tenantKey !== undefined)
87
+ query.tenantKey = filter.tenantKey;
88
+ if (filter.provider !== undefined)
89
+ query.provider = filter.provider;
90
+ }
91
+ return TenantAICredentialModel.countDocuments(query).exec();
92
+ }
93
+ async findByTenantKey(tenantKey) {
94
+ const docs = await TenantAICredentialModel.find({ tenantKey }).exec();
95
+ return docs.map((doc) => toTenantAICredential(doc)).filter(Boolean);
96
+ }
97
+ async findByTenantKeyAndProvider(tenantKey, provider) {
98
+ const doc = await TenantAICredentialModel.findOne({ tenantKey, provider }).exec();
99
+ return toTenantAICredential(doc);
100
+ }
101
+ async upsertByTenantKeyAndProvider(tenantKey, tenants, provider, encryptedApiKey, baseUrl) {
102
+ const doc = await TenantAICredentialModel.findOneAndUpdate({ tenantKey, provider }, {
103
+ $set: {
104
+ tenantKey,
105
+ tenants,
106
+ provider,
107
+ encryptedApiKey,
108
+ baseUrl,
109
+ },
110
+ }, {
111
+ new: true,
112
+ upsert: true,
113
+ runValidators: true,
114
+ }).exec();
115
+ const result = toTenantAICredential(doc);
116
+ if (!result)
117
+ throw new Error('Failed to upsert tenant AI credential');
118
+ return result;
119
+ }
120
+ async deleteByTenantKeyAndProvider(tenantKey, provider) {
121
+ const result = await TenantAICredentialModel.findOneAndDelete({ tenantKey, provider }).exec();
122
+ return !!result;
123
+ }
124
+ }
125
+ //# sourceMappingURL=MongoTenantAICredentialRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongoTenantAICredentialRepository.js","sourceRoot":"","sources":["../../../src/repositories/MongoTenantAICredentialRepository.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,5 @@ export * from './MongoAgentChatRepository';
2
2
  export * from './MongoAgentMessageRepository';
3
3
  export * from './MongoActivityRepository';
4
4
  export * from './MongoAgentConfigRepository';
5
+ export * from './MongoTenantAICredentialRepository';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/repositories/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/repositories/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC"}
@@ -2,4 +2,5 @@ export * from './MongoAgentChatRepository';
2
2
  export * from './MongoAgentMessageRepository';
3
3
  export * from './MongoActivityRepository';
4
4
  export * from './MongoAgentConfigRepository';
5
+ export * from './MongoTenantAICredentialRepository';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { ObjectId, type Document } from '../mongo';
2
+ import type { TenantAICredential } from '@multiplayer-app/ai-agent-types';
3
+ export interface TenantAICredentialDocument extends Omit<TenantAICredential, 'id'>, Document {
4
+ _id: ObjectId;
5
+ }
6
+ export declare const TenantAICredentialSchema: import("mongoose").Schema<TenantAICredentialDocument, import("mongoose").Model<TenantAICredentialDocument, any, any, any, Document<unknown, any, TenantAICredentialDocument, any, {}> & TenantAICredentialDocument & Required<{
7
+ _id: import("mongoose").Types.ObjectId;
8
+ }> & {
9
+ __v: number;
10
+ }, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, TenantAICredentialDocument, Document<unknown, {}, import("mongoose").FlatRecord<TenantAICredentialDocument>, {}, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & import("mongoose").FlatRecord<TenantAICredentialDocument> & Required<{
11
+ _id: import("mongoose").Types.ObjectId;
12
+ }> & {
13
+ __v: number;
14
+ }>;
15
+ export declare const TenantAICredentialModel: import("mongoose").Model<TenantAICredentialDocument, {}, {}, {}, Document<unknown, {}, TenantAICredentialDocument, {}, {}> & TenantAICredentialDocument & Required<{
16
+ _id: import("mongoose").Types.ObjectId;
17
+ }> & {
18
+ __v: number;
19
+ }, any>;
20
+ //# sourceMappingURL=TenantAICredentialSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TenantAICredentialSchema.d.ts","sourceRoot":"","sources":["../../../src/schemas/TenantAICredentialSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAU,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,EAAE,QAAQ;IAC1F,GAAG,EAAE,QAAQ,CAAC;CACf;AAED,eAAO,MAAM,wBAAwB;;;;;;;;EASnC,CAAC;AAIH,eAAO,MAAM,uBAAuB;;;;OAGnC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { mongoose, Schema } from '../mongo';
2
+ export const TenantAICredentialSchema = new Schema({
3
+ tenantKey: { type: String, required: true },
4
+ tenants: { type: Map, of: String, required: true, default: {} },
5
+ provider: { type: String, required: true },
6
+ encryptedApiKey: { type: String, required: true },
7
+ baseUrl: { type: String, required: false },
8
+ }, {
9
+ timestamps: true,
10
+ _id: true,
11
+ });
12
+ TenantAICredentialSchema.index({ tenantKey: 1, provider: 1 }, { unique: true });
13
+ export const TenantAICredentialModel = mongoose.model('TenantAICredential', TenantAICredentialSchema);
14
+ //# sourceMappingURL=TenantAICredentialSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TenantAICredentialSchema.js","sourceRoot":"","sources":["../../../src/schemas/TenantAICredentialSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAY,MAAM,EAAiB,MAAM,UAAU,CAAC;AAOrE,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,MAAM,CAA6B;IAC7E,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3C,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;IAC/D,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC1C,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACjD,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;CAC3C,EAAE;IACD,UAAU,EAAE,IAAI;IAChB,GAAG,EAAE,IAAI;CACV,CAAC,CAAC;AAEH,wBAAwB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAEhF,MAAM,CAAC,MAAM,uBAAuB,GAAG,QAAQ,CAAC,KAAK,CACnD,oBAAoB,EACpB,wBAAwB,CACzB,CAAC"}
@@ -2,4 +2,5 @@ export * from './AgentChatSchema';
2
2
  export * from './AgentMessageSchema';
3
3
  export * from './ActivitySchema';
4
4
  export * from './AgentConfigPreferenceSchema';
5
+ export * from './TenantAICredentialSchema';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC"}
@@ -2,4 +2,5 @@ export * from './AgentChatSchema';
2
2
  export * from './AgentMessageSchema';
3
3
  export * from './ActivitySchema';
4
4
  export * from './AgentConfigPreferenceSchema';
5
+ export * from './TenantAICredentialSchema';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC"}