memory-journal-mcp 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dockerignore +88 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +76 -0
- package/.github/ISSUE_TEMPLATE/config.yml +11 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +89 -0
- package/.github/ISSUE_TEMPLATE/question.md +63 -0
- package/.github/dependabot.yml +110 -0
- package/.github/pull_request_template.md +110 -0
- package/.github/workflows/DOCKER_DEPLOYMENT_SETUP.md +346 -0
- package/.github/workflows/codeql.yml +45 -0
- package/.github/workflows/dependabot-auto-merge.yml +42 -0
- package/.github/workflows/docker-publish.yml +277 -0
- package/.github/workflows/lint-and-test.yml +58 -0
- package/.github/workflows/publish-npm.yml +75 -0
- package/.github/workflows/secrets-scanning.yml +32 -0
- package/.github/workflows/security-update.yml +99 -0
- package/.memory-journal-team.db +0 -0
- package/.trivyignore +18 -0
- package/CHANGELOG.md +19 -0
- package/CODE_OF_CONDUCT.md +128 -0
- package/CONTRIBUTING.md +209 -0
- package/DOCKER_README.md +377 -0
- package/Dockerfile +64 -0
- package/LICENSE +21 -0
- package/README.md +461 -0
- package/SECURITY.md +200 -0
- package/VERSION +1 -0
- package/dist/cli.d.ts +5 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +42 -0
- package/dist/cli.js.map +1 -0
- package/dist/constants/ServerInstructions.d.ts +8 -0
- package/dist/constants/ServerInstructions.d.ts.map +1 -0
- package/dist/constants/ServerInstructions.js +26 -0
- package/dist/constants/ServerInstructions.js.map +1 -0
- package/dist/database/SqliteAdapter.d.ts +198 -0
- package/dist/database/SqliteAdapter.d.ts.map +1 -0
- package/dist/database/SqliteAdapter.js +736 -0
- package/dist/database/SqliteAdapter.js.map +1 -0
- package/dist/filtering/ToolFilter.d.ts +63 -0
- package/dist/filtering/ToolFilter.d.ts.map +1 -0
- package/dist/filtering/ToolFilter.js +242 -0
- package/dist/filtering/ToolFilter.js.map +1 -0
- package/dist/github/GitHubIntegration.d.ts +91 -0
- package/dist/github/GitHubIntegration.d.ts.map +1 -0
- package/dist/github/GitHubIntegration.js +317 -0
- package/dist/github/GitHubIntegration.js.map +1 -0
- package/dist/handlers/prompts/index.d.ts +28 -0
- package/dist/handlers/prompts/index.d.ts.map +1 -0
- package/dist/handlers/prompts/index.js +366 -0
- package/dist/handlers/prompts/index.js.map +1 -0
- package/dist/handlers/resources/index.d.ts +27 -0
- package/dist/handlers/resources/index.d.ts.map +1 -0
- package/dist/handlers/resources/index.js +453 -0
- package/dist/handlers/resources/index.js.map +1 -0
- package/dist/handlers/tools/index.d.ts +26 -0
- package/dist/handlers/tools/index.d.ts.map +1 -0
- package/dist/handlers/tools/index.js +982 -0
- package/dist/handlers/tools/index.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/server/McpServer.d.ts +18 -0
- package/dist/server/McpServer.d.ts.map +1 -0
- package/dist/server/McpServer.js +171 -0
- package/dist/server/McpServer.js.map +1 -0
- package/dist/types/index.d.ts +300 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +15 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/McpLogger.d.ts +61 -0
- package/dist/utils/McpLogger.d.ts.map +1 -0
- package/dist/utils/McpLogger.js +113 -0
- package/dist/utils/McpLogger.js.map +1 -0
- package/dist/utils/logger.d.ts +30 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +70 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/vector/VectorSearchManager.d.ts +63 -0
- package/dist/vector/VectorSearchManager.d.ts.map +1 -0
- package/dist/vector/VectorSearchManager.js +235 -0
- package/dist/vector/VectorSearchManager.js.map +1 -0
- package/docker-compose.yml +37 -0
- package/eslint.config.js +86 -0
- package/mcp-config-example.json +21 -0
- package/package.json +71 -0
- package/releases/release-notes-v2.2.0.md +165 -0
- package/releases/release-notes.md +214 -0
- package/releases/v3.0.0.md +236 -0
- package/server.json +42 -0
- package/src/cli.ts +52 -0
- package/src/constants/ServerInstructions.ts +25 -0
- package/src/database/SqliteAdapter.ts +952 -0
- package/src/filtering/ToolFilter.ts +271 -0
- package/src/github/GitHubIntegration.ts +409 -0
- package/src/handlers/prompts/index.ts +420 -0
- package/src/handlers/resources/index.ts +529 -0
- package/src/handlers/tools/index.ts +1081 -0
- package/src/index.ts +53 -0
- package/src/server/McpServer.ts +230 -0
- package/src/types/index.ts +435 -0
- package/src/types/sql.js.d.ts +34 -0
- package/src/utils/McpLogger.ts +155 -0
- package/src/utils/logger.ts +98 -0
- package/src/vector/VectorSearchManager.ts +277 -0
- package/tools.json +300 -0
- package/tsconfig.json +51 -0
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Journal MCP Server - GitHub Integration
|
|
3
|
+
*
|
|
4
|
+
* GitHub API integration using @octokit/rest for API access
|
|
5
|
+
* and simple-git for local repository operations.
|
|
6
|
+
*/
|
|
7
|
+
import { Octokit } from '@octokit/rest';
|
|
8
|
+
import * as simpleGitImport from 'simple-git';
|
|
9
|
+
import { logger } from '../utils/logger.js';
|
|
10
|
+
const simpleGit = simpleGitImport.simpleGit;
|
|
11
|
+
/**
|
|
12
|
+
* GitHubIntegration - Handles GitHub API and local git operations
|
|
13
|
+
*/
|
|
14
|
+
export class GitHubIntegration {
|
|
15
|
+
octokit = null;
|
|
16
|
+
git;
|
|
17
|
+
token;
|
|
18
|
+
constructor(workingDir = '.') {
|
|
19
|
+
this.token = process.env['GITHUB_TOKEN'];
|
|
20
|
+
// Use GITHUB_REPO_PATH env var if set, otherwise fall back to workingDir
|
|
21
|
+
const envRepoPath = process.env['GITHUB_REPO_PATH'];
|
|
22
|
+
const effectiveDir = envRepoPath || workingDir;
|
|
23
|
+
// Resolve and log the actual working directory
|
|
24
|
+
const resolvedDir = effectiveDir === '.' ? process.cwd() : effectiveDir;
|
|
25
|
+
logger.info('GitHub integration using directory', {
|
|
26
|
+
module: 'GitHub',
|
|
27
|
+
workingDir,
|
|
28
|
+
envRepoPath: envRepoPath ?? 'not set',
|
|
29
|
+
effectiveDir,
|
|
30
|
+
resolvedDir,
|
|
31
|
+
cwd: process.cwd()
|
|
32
|
+
});
|
|
33
|
+
this.git = simpleGit(effectiveDir);
|
|
34
|
+
// Initialize Octokit if token is available
|
|
35
|
+
if (this.token) {
|
|
36
|
+
this.octokit = new Octokit({ auth: this.token });
|
|
37
|
+
logger.info('GitHub integration initialized with token', { module: 'GitHub' });
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
logger.info('GitHub integration initialized without token (limited functionality)', { module: 'GitHub' });
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Check if GitHub API is available (token present)
|
|
45
|
+
*/
|
|
46
|
+
isApiAvailable() {
|
|
47
|
+
return this.octokit !== null;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get local repository information
|
|
51
|
+
*/
|
|
52
|
+
async getRepoInfo() {
|
|
53
|
+
try {
|
|
54
|
+
// Get current branch
|
|
55
|
+
const branchResult = await this.git.branch();
|
|
56
|
+
const branch = branchResult.current || null;
|
|
57
|
+
// Get remote URL
|
|
58
|
+
const remotes = await this.git.getRemotes(true);
|
|
59
|
+
const origin = remotes.find(r => r.name === 'origin');
|
|
60
|
+
const remoteUrl = origin?.refs?.fetch || null;
|
|
61
|
+
// Parse owner/repo from remote URL
|
|
62
|
+
const { owner, repo } = this.parseRemoteUrl(remoteUrl);
|
|
63
|
+
return { owner, repo, branch, remoteUrl };
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
logger.debug('Failed to get repo info (may not be a git repo)', {
|
|
67
|
+
module: 'GitHub',
|
|
68
|
+
error: error instanceof Error ? error.message : String(error)
|
|
69
|
+
});
|
|
70
|
+
return { owner: null, repo: null, branch: null, remoteUrl: null };
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Parse owner and repo from GitHub remote URL
|
|
75
|
+
*/
|
|
76
|
+
parseRemoteUrl(remoteUrl) {
|
|
77
|
+
if (!remoteUrl)
|
|
78
|
+
return { owner: null, repo: null };
|
|
79
|
+
// Handle SSH format: git@github.com:owner/repo.git
|
|
80
|
+
if (remoteUrl.startsWith('git@github.com:')) {
|
|
81
|
+
const pathPart = remoteUrl.replace('git@github.com:', '').replace('.git', '');
|
|
82
|
+
const parts = pathPart.split('/');
|
|
83
|
+
if (parts.length >= 2) {
|
|
84
|
+
return { owner: parts[0] ?? null, repo: parts[1] ?? null };
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Handle HTTPS format: https://github.com/owner/repo.git
|
|
88
|
+
try {
|
|
89
|
+
const url = new URL(remoteUrl);
|
|
90
|
+
if (url.hostname === 'github.com') {
|
|
91
|
+
const path = url.pathname.replace('.git', '').replace(/^\//, '');
|
|
92
|
+
const parts = path.split('/');
|
|
93
|
+
if (parts.length >= 2) {
|
|
94
|
+
return { owner: parts[0] ?? null, repo: parts[1] ?? null };
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
// Not a valid URL
|
|
100
|
+
}
|
|
101
|
+
return { owner: null, repo: null };
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get repository issues
|
|
105
|
+
*/
|
|
106
|
+
async getIssues(owner, repo, state = 'open', limit = 20) {
|
|
107
|
+
if (!this.octokit) {
|
|
108
|
+
return [];
|
|
109
|
+
}
|
|
110
|
+
try {
|
|
111
|
+
const response = await this.octokit.issues.listForRepo({
|
|
112
|
+
owner,
|
|
113
|
+
repo,
|
|
114
|
+
state,
|
|
115
|
+
per_page: limit,
|
|
116
|
+
sort: 'updated',
|
|
117
|
+
direction: 'desc',
|
|
118
|
+
});
|
|
119
|
+
// Filter out pull requests (GitHub API includes PRs in issues)
|
|
120
|
+
return response.data
|
|
121
|
+
.filter(issue => !issue.pull_request)
|
|
122
|
+
.map(issue => ({
|
|
123
|
+
number: issue.number,
|
|
124
|
+
title: issue.title,
|
|
125
|
+
url: issue.html_url,
|
|
126
|
+
state: issue.state === 'open' ? 'OPEN' : 'CLOSED',
|
|
127
|
+
}));
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
logger.error('Failed to get issues', {
|
|
131
|
+
module: 'GitHub',
|
|
132
|
+
error: error instanceof Error ? error.message : String(error)
|
|
133
|
+
});
|
|
134
|
+
return [];
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get issue details
|
|
139
|
+
*/
|
|
140
|
+
async getIssue(owner, repo, issueNumber) {
|
|
141
|
+
if (!this.octokit) {
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
try {
|
|
145
|
+
const response = await this.octokit.issues.get({
|
|
146
|
+
owner,
|
|
147
|
+
repo,
|
|
148
|
+
issue_number: issueNumber,
|
|
149
|
+
});
|
|
150
|
+
const issue = response.data;
|
|
151
|
+
// Verify it's not a PR
|
|
152
|
+
if (issue.pull_request) {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
return {
|
|
156
|
+
number: issue.number,
|
|
157
|
+
title: issue.title,
|
|
158
|
+
url: issue.html_url,
|
|
159
|
+
state: issue.state === 'open' ? 'OPEN' : 'CLOSED',
|
|
160
|
+
body: issue.body ?? null,
|
|
161
|
+
labels: issue.labels.map(l => (typeof l === 'string' ? l : l.name ?? '')),
|
|
162
|
+
assignees: issue.assignees?.map(a => a.login) ?? [],
|
|
163
|
+
createdAt: issue.created_at,
|
|
164
|
+
updatedAt: issue.updated_at,
|
|
165
|
+
closedAt: issue.closed_at,
|
|
166
|
+
commentsCount: issue.comments,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
logger.error('Failed to get issue details', {
|
|
171
|
+
module: 'GitHub',
|
|
172
|
+
entityId: issueNumber,
|
|
173
|
+
error: error instanceof Error ? error.message : String(error)
|
|
174
|
+
});
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Get repository pull requests
|
|
180
|
+
*/
|
|
181
|
+
async getPullRequests(owner, repo, state = 'open', limit = 20) {
|
|
182
|
+
if (!this.octokit) {
|
|
183
|
+
return [];
|
|
184
|
+
}
|
|
185
|
+
try {
|
|
186
|
+
const response = await this.octokit.pulls.list({
|
|
187
|
+
owner,
|
|
188
|
+
repo,
|
|
189
|
+
state,
|
|
190
|
+
per_page: limit,
|
|
191
|
+
sort: 'updated',
|
|
192
|
+
direction: 'desc',
|
|
193
|
+
});
|
|
194
|
+
return response.data.map(pr => ({
|
|
195
|
+
number: pr.number,
|
|
196
|
+
title: pr.title,
|
|
197
|
+
url: pr.html_url,
|
|
198
|
+
state: pr.merged_at ? 'MERGED' : (pr.state === 'open' ? 'OPEN' : 'CLOSED'),
|
|
199
|
+
}));
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
logger.error('Failed to get pull requests', {
|
|
203
|
+
module: 'GitHub',
|
|
204
|
+
error: error instanceof Error ? error.message : String(error)
|
|
205
|
+
});
|
|
206
|
+
return [];
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Get PR details
|
|
211
|
+
*/
|
|
212
|
+
async getPullRequest(owner, repo, prNumber) {
|
|
213
|
+
if (!this.octokit) {
|
|
214
|
+
return null;
|
|
215
|
+
}
|
|
216
|
+
try {
|
|
217
|
+
const response = await this.octokit.pulls.get({
|
|
218
|
+
owner,
|
|
219
|
+
repo,
|
|
220
|
+
pull_number: prNumber,
|
|
221
|
+
});
|
|
222
|
+
const pr = response.data;
|
|
223
|
+
return {
|
|
224
|
+
number: pr.number,
|
|
225
|
+
title: pr.title,
|
|
226
|
+
url: pr.html_url,
|
|
227
|
+
state: pr.merged_at ? 'MERGED' : (pr.state === 'open' ? 'OPEN' : 'CLOSED'),
|
|
228
|
+
body: pr.body,
|
|
229
|
+
draft: pr.draft ?? false,
|
|
230
|
+
headBranch: pr.head.ref,
|
|
231
|
+
baseBranch: pr.base.ref,
|
|
232
|
+
author: pr.user?.login ?? 'unknown',
|
|
233
|
+
createdAt: pr.created_at,
|
|
234
|
+
updatedAt: pr.updated_at,
|
|
235
|
+
mergedAt: pr.merged_at,
|
|
236
|
+
closedAt: pr.closed_at,
|
|
237
|
+
additions: pr.additions,
|
|
238
|
+
deletions: pr.deletions,
|
|
239
|
+
changedFiles: pr.changed_files,
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
catch (error) {
|
|
243
|
+
logger.error('Failed to get PR details', {
|
|
244
|
+
module: 'GitHub',
|
|
245
|
+
entityId: prNumber,
|
|
246
|
+
error: error instanceof Error ? error.message : String(error)
|
|
247
|
+
});
|
|
248
|
+
return null;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Get workflow runs from GitHub Actions
|
|
253
|
+
*/
|
|
254
|
+
async getWorkflowRuns(owner, repo, limit = 10) {
|
|
255
|
+
if (!this.octokit) {
|
|
256
|
+
logger.debug('GitHub API not available - no token', { module: 'GitHub' });
|
|
257
|
+
return [];
|
|
258
|
+
}
|
|
259
|
+
try {
|
|
260
|
+
const response = await this.octokit.rest.actions.listWorkflowRunsForRepo({
|
|
261
|
+
owner,
|
|
262
|
+
repo,
|
|
263
|
+
per_page: limit,
|
|
264
|
+
});
|
|
265
|
+
return response.data.workflow_runs.map(run => ({
|
|
266
|
+
id: run.id,
|
|
267
|
+
name: run.name ?? 'Unknown Workflow',
|
|
268
|
+
status: run.status,
|
|
269
|
+
conclusion: run.conclusion,
|
|
270
|
+
url: run.html_url,
|
|
271
|
+
headBranch: run.head_branch ?? '',
|
|
272
|
+
headSha: run.head_sha,
|
|
273
|
+
createdAt: run.created_at,
|
|
274
|
+
updatedAt: run.updated_at,
|
|
275
|
+
}));
|
|
276
|
+
}
|
|
277
|
+
catch (error) {
|
|
278
|
+
logger.error('Failed to get workflow runs', {
|
|
279
|
+
module: 'GitHub',
|
|
280
|
+
error: error instanceof Error ? error.message : String(error),
|
|
281
|
+
});
|
|
282
|
+
return [];
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Get full repository context (issues, PRs, branch info)
|
|
287
|
+
*/
|
|
288
|
+
async getRepoContext() {
|
|
289
|
+
const repoInfo = await this.getRepoInfo();
|
|
290
|
+
const context = {
|
|
291
|
+
repoName: repoInfo.repo,
|
|
292
|
+
branch: repoInfo.branch,
|
|
293
|
+
commit: null,
|
|
294
|
+
remoteUrl: repoInfo.remoteUrl,
|
|
295
|
+
projects: [],
|
|
296
|
+
issues: [],
|
|
297
|
+
pullRequests: [],
|
|
298
|
+
workflowRuns: [],
|
|
299
|
+
};
|
|
300
|
+
// Get current commit
|
|
301
|
+
try {
|
|
302
|
+
const log = await this.git.log({ maxCount: 1 });
|
|
303
|
+
context.commit = log.latest?.hash ?? null;
|
|
304
|
+
}
|
|
305
|
+
catch {
|
|
306
|
+
// Ignore error
|
|
307
|
+
}
|
|
308
|
+
// Get issues, PRs, and workflow runs if we have owner/repo
|
|
309
|
+
if (repoInfo.owner && repoInfo.repo) {
|
|
310
|
+
context.issues = await this.getIssues(repoInfo.owner, repoInfo.repo, 'open', 10);
|
|
311
|
+
context.pullRequests = await this.getPullRequests(repoInfo.owner, repoInfo.repo, 'open', 10);
|
|
312
|
+
context.workflowRuns = await this.getWorkflowRuns(repoInfo.owner, repoInfo.repo, 10);
|
|
313
|
+
}
|
|
314
|
+
return context;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
//# sourceMappingURL=GitHubIntegration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitHubIntegration.js","sourceRoot":"","sources":["../../src/github/GitHubIntegration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Journal MCP Server - Prompt Handlers
|
|
3
|
+
*
|
|
4
|
+
* Exports all MCP prompts for workflow guidance.
|
|
5
|
+
*/
|
|
6
|
+
import type { SqliteAdapter } from '../../database/SqliteAdapter.js';
|
|
7
|
+
/**
|
|
8
|
+
* Message format for MCP prompts
|
|
9
|
+
*/
|
|
10
|
+
interface PromptMessage {
|
|
11
|
+
role: string;
|
|
12
|
+
content: {
|
|
13
|
+
type: string;
|
|
14
|
+
text: string;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Get all prompt definitions for MCP list
|
|
19
|
+
*/
|
|
20
|
+
export declare function getPrompts(): object[];
|
|
21
|
+
/**
|
|
22
|
+
* Get a prompt by name
|
|
23
|
+
*/
|
|
24
|
+
export declare function getPrompt(name: string, args: Record<string, string>, db: SqliteAdapter): {
|
|
25
|
+
messages: PromptMessage[];
|
|
26
|
+
};
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/handlers/prompts/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAErE;;GAEG;AACH,UAAU,aAAa;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC;CACL;AAkCD;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,EAAE,CAOrC;AAED;;GAEG;AACH,wBAAgB,SAAS,CACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,EAAE,EAAE,aAAa,GAClB;IAAE,QAAQ,EAAE,aAAa,EAAE,CAAA;CAAE,CAS/B"}
|