@eclipse-lyra/extension-notebook 0.7.65 → 0.7.66
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/dist/index.js
CHANGED
|
@@ -11,7 +11,7 @@ extensionRegistry.registerExtension({
|
|
|
11
11
|
id: pkg.name,
|
|
12
12
|
name: t.EXT_NOTEBOOK_NAME,
|
|
13
13
|
description: t.EXT_NOTEBOOK_DESC,
|
|
14
|
-
loader: () => import("./notebook-extension-
|
|
14
|
+
loader: () => import("./notebook-extension-VRMt2nJk.js"),
|
|
15
15
|
icon: "lyra jupyter",
|
|
16
16
|
dependencies: []
|
|
17
17
|
});
|
|
@@ -16,7 +16,10 @@ var NOTEBOOK_CATALOG = {
|
|
|
16
16
|
items: [{
|
|
17
17
|
label: "JavaScript basics",
|
|
18
18
|
icon: "lyra jupyter",
|
|
19
|
-
state: {
|
|
19
|
+
state: {
|
|
20
|
+
url: new URL("data:application/octet-stream;base64,ewogICJjZWxscyI6IFsKICAgIHsKICAgICAgImNlbGxfdHlwZSI6ICJtYXJrZG93biIsCiAgICAgICJtZXRhZGF0YSI6IHt9LAogICAgICAic291cmNlIjogWwogICAgICAgICIjIEphdmFTY3JpcHQga2VybmVsXG4iLAogICAgICAgICJcbiIsCiAgICAgICAgIlJ1biBjb2RlIGNlbGxzIHdpdGggdGhlICoqSmF2YVNjcmlwdCoqIGtlcm5lbC4gRWFjaCBjZWxsIHJ1bnMgaW4gYSBzaGFyZWQgcnVudGltZS4iCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJjZWxsX3R5cGUiOiAiY29kZSIsCiAgICAgICJleGVjdXRpb25fY291bnQiOiBudWxsLAogICAgICAibWV0YWRhdGEiOiB7fSwKICAgICAgIm91dHB1dHMiOiBbXSwKICAgICAgInNvdXJjZSI6IFsKICAgICAgICAiY29uc3QgeCA9IDEgKyAyO1xuIiwKICAgICAgICAicmV0dXJuIHg7IgogICAgICBdCiAgICB9LAogICAgewogICAgICAiY2VsbF90eXBlIjogImNvZGUiLAogICAgICAiZXhlY3V0aW9uX2NvdW50IjogbnVsbCwKICAgICAgIm1ldGFkYXRhIjoge30sCiAgICAgICJvdXRwdXRzIjogW10sCiAgICAgICJzb3VyY2UiOiBbCiAgICAgICAgImNvbnN0IGl0ZW1zID0gWydEdWNrREInLCAnUEdsaXRlJywgJ05vdGVib29rcyddO1xuIiwKICAgICAgICAicmV0dXJuIGl0ZW1zLmpvaW4oJywgJyk7IgogICAgICBdCiAgICB9LAogICAgewogICAgICAiY2VsbF90eXBlIjogImNvZGUiLAogICAgICAiZXhlY3V0aW9uX2NvdW50IjogbnVsbCwKICAgICAgIm1ldGFkYXRhIjoge30sCiAgICAgICJvdXRwdXRzIjogW10sCiAgICAgICJzb3VyY2UiOiBbCiAgICAgICAgImNvbnN0IGZpYiA9IChuKSA9PiBuIDw9IDEgPyBuIDogZmliKG4gLSAxKSArIGZpYihuIC0gMik7XG4iLAogICAgICAgICJyZXR1cm4gZmliKDEwKTsiCiAgICAgIF0KICAgIH0KICBdLAogICJtZXRhZGF0YSI6IHsKICAgICJrZXJuZWwiOiAiamF2YXNjcmlwdCIsCiAgICAibGFuZ3VhZ2VfaW5mbyI6IHsKICAgICAgIm5hbWUiOiAicHl0aG9uIgogICAgfQogIH0sCiAgIm5iZm9ybWF0IjogNCwKICAibmJmb3JtYXRfbWlub3IiOiA0Cn0K", "" + import.meta.url).href,
|
|
21
|
+
filename: "javascript-basics.ipynb"
|
|
22
|
+
}
|
|
20
23
|
}]
|
|
21
24
|
},
|
|
22
25
|
{
|
|
@@ -26,7 +29,10 @@ var NOTEBOOK_CATALOG = {
|
|
|
26
29
|
items: [{
|
|
27
30
|
label: "DuckDB in notebooks",
|
|
28
31
|
icon: "lyra jupyter",
|
|
29
|
-
state: {
|
|
32
|
+
state: {
|
|
33
|
+
url: new URL("data:application/octet-stream;base64,ewogICJjZWxscyI6IFsKICAgIHsKICAgICAgImNlbGxfdHlwZSI6ICJtYXJrZG93biIsCiAgICAgICJzb3VyY2UiOiBbIiMgRHVja0RCIGluIG5vdGVib29rc1xuXG5Vc2UgdGhlICoqRHVja0RCKioga2VybmVsIHRvIHJ1biBTUUwgaW4gY2VsbHMuIFJlc3VsdHMgYXJlIHNob3duIGFzIHRleHQuIl0sCiAgICAgICJtZXRhZGF0YSI6IHt9CiAgICB9LAogICAgewogICAgICAiY2VsbF90eXBlIjogImNvZGUiLAogICAgICAic291cmNlIjogWyJTRUxFQ1QgJ0R1Y2tEQicgQVMgZW5naW5lLCB2ZXJzaW9uKCkgQVMgdjsiXSwKICAgICAgImV4ZWN1dGlvbl9jb3VudCI6IG51bGwsCiAgICAgICJvdXRwdXRzIjogW10sCiAgICAgICJtZXRhZGF0YSI6IHt9CiAgICB9LAogICAgewogICAgICAiY2VsbF90eXBlIjogImNvZGUiLAogICAgICAic291cmNlIjogWyJDUkVBVEUgT1IgUkVQTEFDRSBURU1QIFRBQkxFIHQgKGlkIElOVCwgbmFtZSBWQVJDSEFSKTtcbklOU0VSVCBJTlRPIHQgVkFMVUVTICgxLCAnYScpLCAoMiwgJ2InKSwgKDMsICdjJyk7XG5TRUxFQ1QgKiBGUk9NIHQ7Il0sCiAgICAgICJleGVjdXRpb25fY291bnQiOiBudWxsLAogICAgICAib3V0cHV0cyI6IFtdLAogICAgICAibWV0YWRhdGEiOiB7fQogICAgfSwKICAgIHsKICAgICAgImNlbGxfdHlwZSI6ICJjb2RlIiwKICAgICAgInNvdXJjZSI6IFsiU0VMRUNUIG5hbWUsIGlkICogMTAgQVMgc2NhbGVkIEZST00gdCBPUkRFUiBCWSBpZCBERVNDOyJdLAogICAgICAiZXhlY3V0aW9uX2NvdW50IjogbnVsbCwKICAgICAgIm91dHB1dHMiOiBbXSwKICAgICAgIm1ldGFkYXRhIjoge30KICAgIH0KICBdLAogICJtZXRhZGF0YSI6IHsgImtlcm5lbCI6ICJkdWNrZGIiIH0sCiAgIm5iZm9ybWF0IjogNCwKICAibmJmb3JtYXRfbWlub3IiOiA0Cn0K", "" + import.meta.url).href,
|
|
34
|
+
filename: "duckdb-sample.ipynb"
|
|
35
|
+
}
|
|
30
36
|
}]
|
|
31
37
|
},
|
|
32
38
|
{
|
|
@@ -36,7 +42,10 @@ var NOTEBOOK_CATALOG = {
|
|
|
36
42
|
items: [{
|
|
37
43
|
label: "PostgreSQL in notebooks",
|
|
38
44
|
icon: "lyra jupyter",
|
|
39
|
-
state: {
|
|
45
|
+
state: {
|
|
46
|
+
url: new URL("data:application/octet-stream;base64,ewogICJjZWxscyI6IFsKICAgIHsKICAgICAgImNlbGxfdHlwZSI6ICJtYXJrZG93biIsCiAgICAgICJzb3VyY2UiOiBbIiMgUG9zdGdyZVNRTCAoUEdsaXRlKSBpbiBub3RlYm9va3NcblxuVXNlIHRoZSAqKlBHbGl0ZSoqIGtlcm5lbCB0byBydW4gUG9zdGdyZVNRTCBTUUwgaW4gdGhlIGJyb3dzZXIuIl0sCiAgICAgICJtZXRhZGF0YSI6IHt9CiAgICB9LAogICAgewogICAgICAiY2VsbF90eXBlIjogImNvZGUiLAogICAgICAic291cmNlIjogWyJTRUxFQ1QgJ1BHbGl0ZScgQVMgZW5naW5lLCB2ZXJzaW9uKCkgQVMgdjsiXSwKICAgICAgImV4ZWN1dGlvbl9jb3VudCI6IG51bGwsCiAgICAgICJvdXRwdXRzIjogW10sCiAgICAgICJtZXRhZGF0YSI6IHt9CiAgICB9LAogICAgewogICAgICAiY2VsbF90eXBlIjogImNvZGUiLAogICAgICAic291cmNlIjogWyJDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBkZW1vIChpZCBTRVJJQUwgUFJJTUFSWSBLRVksIGxhYmVsIFRFWFQpO1xuSU5TRVJUIElOVE8gZGVtbyAobGFiZWwpIFZBTFVFUyAoJ2ZpcnN0JyksICgnc2Vjb25kJyksICgndGhpcmQnKTtcblNFTEVDVCAqIEZST00gZGVtbzsiXSwKICAgICAgImV4ZWN1dGlvbl9jb3VudCI6IG51bGwsCiAgICAgICJvdXRwdXRzIjogW10sCiAgICAgICJtZXRhZGF0YSI6IHt9CiAgICB9LAogICAgewogICAgICAiY2VsbF90eXBlIjogImNvZGUiLAogICAgICAic291cmNlIjogWyJTRUxFQ1QgbGFiZWwsIGlkICogMiBBUyBkb3VibGVfaWQgRlJPTSBkZW1vIE9SREVSIEJZIGlkOyJdLAogICAgICAiZXhlY3V0aW9uX2NvdW50IjogbnVsbCwKICAgICAgIm91dHB1dHMiOiBbXSwKICAgICAgIm1ldGFkYXRhIjoge30KICAgIH0KICBdLAogICJtZXRhZGF0YSI6IHsgImtlcm5lbCI6ICJwZ2xpdGUiIH0sCiAgIm5iZm9ybWF0IjogNCwKICAibmJmb3JtYXRfbWlub3IiOiA0Cn0K", "" + import.meta.url).href,
|
|
47
|
+
filename: "pglite-sample.ipynb"
|
|
48
|
+
}
|
|
40
49
|
}]
|
|
41
50
|
}
|
|
42
51
|
]
|
|
@@ -157,4 +166,4 @@ var notebook_extension_default = ({ editorRegistry, commandRegistry, contributio
|
|
|
157
166
|
//#endregion
|
|
158
167
|
export { notebook_extension_default as default };
|
|
159
168
|
|
|
160
|
-
//# sourceMappingURL=notebook-extension-
|
|
169
|
+
//# sourceMappingURL=notebook-extension-VRMt2nJk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notebook-extension-VRMt2nJk.js","names":[],"sources":["../src/notebook-catalog.ts","../src/javascript-kernel.ts","../src/notebook-extension.ts"],"sourcesContent":["import type { CatalogContribution } from \"@eclipse-lyra/extension-catalog/api\";\nimport { registerCatalog } from \"@eclipse-lyra/extension-catalog/api\";\n\nconst NOTEBOOK_CATALOG: CatalogContribution = {\n label: \"Notebooks\",\n icon: \"lyra jupyter\",\n contributionId: \"catalog.notebooks\",\n items: [\n {\n label: \"JavaScript\",\n icon: \"file-code\",\n contributionId: \"catalog.notebooks.javascript\",\n items: [\n { label: \"JavaScript basics\", icon: \"lyra jupyter\", state: { url: new URL(\"./catalog/javascript-basics.ipynb\", import.meta.url).href, filename: \"javascript-basics.ipynb\" } },\n ],\n },\n {\n label: \"DuckDB\",\n icon: \"file-code\",\n contributionId: \"catalog.notebooks.duckdb\",\n items: [\n { label: \"DuckDB in notebooks\", icon: \"lyra jupyter\", state: { url: new URL(\"./catalog/duckdb-sample.ipynb\", import.meta.url).href, filename: \"duckdb-sample.ipynb\" } },\n ],\n },\n {\n label: \"PGlite\",\n icon: \"file-code\",\n contributionId: \"catalog.notebooks.pglite\",\n items: [\n { label: \"PostgreSQL in notebooks\", icon: \"lyra jupyter\", state: { url: new URL(\"./catalog/pglite-sample.ipynb\", import.meta.url).href, filename: \"pglite-sample.ipynb\" } },\n ],\n },\n ],\n};\n\nexport function registerNotebookCatalog(): void {\n registerCatalog(NOTEBOOK_CATALOG);\n}\n","import { createJsRuntime, type JsRuntime } from '@eclipse-lyra/core';\nimport type { NotebookExecutionResult, NotebookKernel, NotebookKernelContribution } from './notebook-kernel-api';\n\nclass JavaScriptNotebookKernel implements NotebookKernel {\n readonly id = 'javascript';\n readonly label = 'JavaScript';\n readonly language = 'javascript';\n\n private runtime: JsRuntime | null = null;\n\n private getRuntime(): JsRuntime {\n if (!this.runtime) {\n this.runtime = createJsRuntime();\n }\n return this.runtime;\n }\n\n async getVersion(): Promise<string> {\n return 'JavaScript';\n }\n\n async execute(code: string): Promise<NotebookExecutionResult> {\n try {\n const result = await this.getRuntime().execute(code);\n if (result === undefined || result === null) {\n return {};\n }\n return { data: String(result) };\n } catch (err) {\n return { error: err instanceof Error ? err.message : String(err) };\n }\n }\n\n close(): void {\n if (this.runtime) {\n this.runtime.close();\n this.runtime = null;\n }\n }\n}\n\nexport const javascriptKernelContribution: NotebookKernelContribution = {\n id: 'javascript',\n label: 'JavaScript',\n language: 'javascript',\n loadKernel: async (): Promise<NotebookKernel> => new JavaScriptNotebookKernel(),\n};\n","import { html } from \"lit\";\nimport type { EditorInput } from \"@eclipse-lyra/core\";\nimport { File } from \"@eclipse-lyra/core\";\nimport { activeEditorSignal } from \"@eclipse-lyra/core\";\nimport type { ExecutionContext } from \"@eclipse-lyra/core\";\nimport { registerNotebookCatalog } from \"./notebook-catalog\";\nimport { NotebookData, isNotebookEditorLike } from \"./notebook-types\";\nimport { TARGET_NOTEBOOK_KERNELS } from \"./notebook-kernel-api\";\nimport { javascriptKernelContribution } from \"./javascript-kernel\";\n\nexport default ({ editorRegistry, commandRegistry, contributionRegistry }: any) => {\n registerNotebookCatalog();\n contributionRegistry.registerContribution(TARGET_NOTEBOOK_KERNELS, javascriptKernelContribution);\n\n const INITIAL_NOTEBOOK_CONTENT: NotebookData = {\n cells: [\n {\n cell_type: 'markdown',\n source: ['Press the **Run** button in the code cell below to execute it.'],\n metadata: {}\n },\n {\n cell_type: 'code',\n source: ['return \"Hello, World!\"'],\n execution_count: null,\n outputs: [],\n metadata: {}\n }\n ],\n metadata: { kernel: 'javascript' },\n nbformat: 4,\n nbformat_minor: 4\n };\n commandRegistry.registerHandler('notebook.runCell', {\n ranking: 10,\n canExecute: (context: ExecutionContext) => {\n const activeEditor = activeEditorSignal.get();\n if (isNotebookEditorLike(activeEditor)) {\n const cellIndex = context.params?.cellIndex;\n if (cellIndex !== undefined) {\n return cellIndex >= 0 && cellIndex < (activeEditor.notebook?.cells.length ?? 0);\n }\n return activeEditor.focusedCellIndex >= 0;\n }\n return false;\n },\n execute: async (context: ExecutionContext) => {\n const activeEditor = activeEditorSignal.get();\n if (isNotebookEditorLike(activeEditor)) {\n const cellIndex = context.params?.cellIndex ?? activeEditor.focusedCellIndex;\n if (cellIndex >= 0) {\n await activeEditor.executeCell(cellIndex);\n }\n }\n }\n });\n\n editorRegistry.registerEditorInputHandler({\n editorId: \"system.notebooeditor\",\n label: \"Jupyter Notebook\",\n icon: \"lyra jupyter\",\n lazyInit: () => import('./notebook-runtime'),\n canHandle: (input: any) => input instanceof File && input.getName().toLowerCase().endsWith(\".ipynb\"),\n handle: async (input: File) => {\n const editorInput = {\n title: input.getWorkspacePath(),\n data: input,\n key: input.getWorkspacePath(),\n icon: \"lyra jupyter\",\n state: {},\n } as EditorInput;\n editorInput.component = (id: string) => html`\n <lyra-notebook-editor id=\"${id}\" .input=${editorInput}></lyra-notebook-editor>`;\n return editorInput;\n },\n ranking: 100,\n });\n\n contributionRegistry.registerContribution('filebrowser.create', {\n label: 'Jupyter Notebook',\n icon: 'lyra jupyter',\n command: 'touch',\n params: {\n path: \"notebook.ipynb\",\n extension: '.ipynb',\n ask: true,\n contents: JSON.stringify(INITIAL_NOTEBOOK_CONTENT, null, 2)\n }\n });\n};\n\n\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"notebook-extension-De4Mcjwo.js","names":[],"sources":["../src/notebook-catalog.ts","../src/javascript-kernel.ts","../src/notebook-extension.ts"],"sourcesContent":["import type { CatalogContribution } from \"@eclipse-lyra/extension-catalog/api\";\nimport { registerCatalog } from \"@eclipse-lyra/extension-catalog/api\";\n\nconst NOTEBOOK_CATALOG: CatalogContribution = {\n label: \"Notebooks\",\n icon: \"lyra jupyter\",\n contributionId: \"catalog.notebooks\",\n items: [\n {\n label: \"JavaScript\",\n icon: \"file-code\",\n contributionId: \"catalog.notebooks.javascript\",\n items: [\n { label: \"JavaScript basics\", icon: \"lyra jupyter\", state: { url: new URL(\"./catalog/javascript-basics.ipynb\", import.meta.url).href } },\n ],\n },\n {\n label: \"DuckDB\",\n icon: \"file-code\",\n contributionId: \"catalog.notebooks.duckdb\",\n items: [\n { label: \"DuckDB in notebooks\", icon: \"lyra jupyter\", state: { url: new URL(\"./catalog/duckdb-sample.ipynb\", import.meta.url).href } },\n ],\n },\n {\n label: \"PGlite\",\n icon: \"file-code\",\n contributionId: \"catalog.notebooks.pglite\",\n items: [\n { label: \"PostgreSQL in notebooks\", icon: \"lyra jupyter\", state: { url: new URL(\"./catalog/pglite-sample.ipynb\", import.meta.url).href } },\n ],\n },\n ],\n};\n\nexport function registerNotebookCatalog(): void {\n registerCatalog(NOTEBOOK_CATALOG);\n}\n","import { createJsRuntime, type JsRuntime } from '@eclipse-lyra/core';\nimport type { NotebookExecutionResult, NotebookKernel, NotebookKernelContribution } from './notebook-kernel-api';\n\nclass JavaScriptNotebookKernel implements NotebookKernel {\n readonly id = 'javascript';\n readonly label = 'JavaScript';\n readonly language = 'javascript';\n\n private runtime: JsRuntime | null = null;\n\n private getRuntime(): JsRuntime {\n if (!this.runtime) {\n this.runtime = createJsRuntime();\n }\n return this.runtime;\n }\n\n async getVersion(): Promise<string> {\n return 'JavaScript';\n }\n\n async execute(code: string): Promise<NotebookExecutionResult> {\n try {\n const result = await this.getRuntime().execute(code);\n if (result === undefined || result === null) {\n return {};\n }\n return { data: String(result) };\n } catch (err) {\n return { error: err instanceof Error ? err.message : String(err) };\n }\n }\n\n close(): void {\n if (this.runtime) {\n this.runtime.close();\n this.runtime = null;\n }\n }\n}\n\nexport const javascriptKernelContribution: NotebookKernelContribution = {\n id: 'javascript',\n label: 'JavaScript',\n language: 'javascript',\n loadKernel: async (): Promise<NotebookKernel> => new JavaScriptNotebookKernel(),\n};\n","import { html } from \"lit\";\nimport type { EditorInput } from \"@eclipse-lyra/core\";\nimport { File } from \"@eclipse-lyra/core\";\nimport { activeEditorSignal } from \"@eclipse-lyra/core\";\nimport type { ExecutionContext } from \"@eclipse-lyra/core\";\nimport { registerNotebookCatalog } from \"./notebook-catalog\";\nimport { NotebookData, isNotebookEditorLike } from \"./notebook-types\";\nimport { TARGET_NOTEBOOK_KERNELS } from \"./notebook-kernel-api\";\nimport { javascriptKernelContribution } from \"./javascript-kernel\";\n\nexport default ({ editorRegistry, commandRegistry, contributionRegistry }: any) => {\n registerNotebookCatalog();\n contributionRegistry.registerContribution(TARGET_NOTEBOOK_KERNELS, javascriptKernelContribution);\n\n const INITIAL_NOTEBOOK_CONTENT: NotebookData = {\n cells: [\n {\n cell_type: 'markdown',\n source: ['Press the **Run** button in the code cell below to execute it.'],\n metadata: {}\n },\n {\n cell_type: 'code',\n source: ['return \"Hello, World!\"'],\n execution_count: null,\n outputs: [],\n metadata: {}\n }\n ],\n metadata: { kernel: 'javascript' },\n nbformat: 4,\n nbformat_minor: 4\n };\n commandRegistry.registerHandler('notebook.runCell', {\n ranking: 10,\n canExecute: (context: ExecutionContext) => {\n const activeEditor = activeEditorSignal.get();\n if (isNotebookEditorLike(activeEditor)) {\n const cellIndex = context.params?.cellIndex;\n if (cellIndex !== undefined) {\n return cellIndex >= 0 && cellIndex < (activeEditor.notebook?.cells.length ?? 0);\n }\n return activeEditor.focusedCellIndex >= 0;\n }\n return false;\n },\n execute: async (context: ExecutionContext) => {\n const activeEditor = activeEditorSignal.get();\n if (isNotebookEditorLike(activeEditor)) {\n const cellIndex = context.params?.cellIndex ?? activeEditor.focusedCellIndex;\n if (cellIndex >= 0) {\n await activeEditor.executeCell(cellIndex);\n }\n }\n }\n });\n\n editorRegistry.registerEditorInputHandler({\n editorId: \"system.notebooeditor\",\n label: \"Jupyter Notebook\",\n icon: \"lyra jupyter\",\n lazyInit: () => import('./notebook-runtime'),\n canHandle: (input: any) => input instanceof File && input.getName().toLowerCase().endsWith(\".ipynb\"),\n handle: async (input: File) => {\n const editorInput = {\n title: input.getWorkspacePath(),\n data: input,\n key: input.getWorkspacePath(),\n icon: \"lyra jupyter\",\n state: {},\n } as EditorInput;\n editorInput.component = (id: string) => html`\n <lyra-notebook-editor id=\"${id}\" .input=${editorInput}></lyra-notebook-editor>`;\n return editorInput;\n },\n ranking: 100,\n });\n\n contributionRegistry.registerContribution('filebrowser.create', {\n label: 'Jupyter Notebook',\n icon: 'lyra jupyter',\n command: 'touch',\n params: {\n path: \"notebook.ipynb\",\n extension: '.ipynb',\n ask: true,\n contents: JSON.stringify(INITIAL_NOTEBOOK_CONTENT, null, 2)\n }\n });\n};\n\n\n"],"mappings":"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"}
|