@kodaris/krubble-app-components 1.0.112 → 1.0.114
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/chatbot.d.ts +247 -7
- package/dist/chatbot.d.ts.map +1 -1
- package/dist/chatbot.js +1594 -396
- package/dist/chatbot.js.map +1 -1
- package/dist/krubble-app.bundled.js +1597 -400
- package/dist/krubble-app.bundled.js.map +1 -1
- package/dist/krubble-app.bundled.min.js +925 -409
- package/dist/krubble-app.bundled.min.js.map +1 -1
- package/dist/krubble-app.umd.js +1594 -397
- package/dist/krubble-app.umd.js.map +1 -1
- package/dist/krubble-app.umd.min.js +905 -389
- package/dist/krubble-app.umd.min.js.map +1 -1
- package/package.json +1 -1
package/dist/chatbot.d.ts
CHANGED
|
@@ -45,14 +45,68 @@ export interface KRChatbotConversationFile {
|
|
|
45
45
|
/**
|
|
46
46
|
* Chat message interface. Field names mirror the backend
|
|
47
47
|
* ConversationMessageViewDto so loaded messages pass through without remapping.
|
|
48
|
+
*
|
|
49
|
+
* `tool_use` / `tool_result` are the two halves of a tool the assistant ran —
|
|
50
|
+
* the same {type, data} shape the stream emits and the DB persists, so live and
|
|
51
|
+
* reload need no transform. The render pairs a `tool_result` to its `tool_use` by
|
|
52
|
+
* `data.toolUseId` and shows them as one line (Claude-CLI style).
|
|
53
|
+
*
|
|
54
|
+
* `action_decision` is a record of a resolved action-confirmation (Rail 3) — the
|
|
55
|
+
* user's approve/deny, kept in the transcript and on reload. Same {type, data}
|
|
56
|
+
* shape the stream emits and the DB persists; its `data.{outcome, tools}` drive
|
|
57
|
+
* the line.
|
|
48
58
|
*/
|
|
49
59
|
export interface KRChatbotMessage {
|
|
50
|
-
type: 'user' | 'assistant';
|
|
60
|
+
type: 'user' | 'assistant' | 'tool_use' | 'tool_result' | 'action_decision';
|
|
51
61
|
content: string;
|
|
52
62
|
reasoning?: string;
|
|
53
63
|
/** Conversation files attached to this message. */
|
|
54
64
|
conversationFiles?: KRChatbotConversationFile[];
|
|
65
|
+
/**
|
|
66
|
+
* Payload for `tool_use` / `tool_result` / `action_decision` messages — the
|
|
67
|
+
* event/DB row content verbatim. A `tool_use` carries `{toolUseId, toolName,
|
|
68
|
+
* displayName, toolInput}`; a `tool_result` carries `{toolUseId,
|
|
69
|
+
* toolResultString, toolResultStatus}`; an `action_decision` carries `{outcome,
|
|
70
|
+
* tools:[{displayName, toolName}]}`. The render reads these directly.
|
|
71
|
+
*/
|
|
72
|
+
data?: any;
|
|
55
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* A guarded tool paused for the user's approval, from an
|
|
76
|
+
* `ACTION_CONFIRMATION_REQUIRED` SSE event's `data.actions[]`. A consequential
|
|
77
|
+
* ("guarded") tool doesn't run silently in NORMAL mode — the server pauses the
|
|
78
|
+
* whole batch, ends the turn with `finished:true`, and awaits the user's
|
|
79
|
+
* decision. Field names mirror the backend action shape so they pass through
|
|
80
|
+
* unchanged. See the Rail-3 action-confirmation contract.
|
|
81
|
+
*/
|
|
82
|
+
export interface KRChatbotPendingAction {
|
|
83
|
+
/** Bedrock `tool_use` id — identifies this call within the paused batch. */
|
|
84
|
+
toolUseId: string;
|
|
85
|
+
/** Internal tool/rule code. */
|
|
86
|
+
toolName: string;
|
|
87
|
+
/** Human-readable tool name shown in the prompt. */
|
|
88
|
+
displayName?: string;
|
|
89
|
+
/** Longer description of what the tool does. */
|
|
90
|
+
description?: string;
|
|
91
|
+
/**
|
|
92
|
+
* The model's declared intent in plain language ("I'm about to push order 100
|
|
93
|
+
* to the ERP"), forced by the guarded tool's required `confirmationMessage`
|
|
94
|
+
* field. This is the primary line the user reads before approving.
|
|
95
|
+
*/
|
|
96
|
+
confirmationMessage?: string;
|
|
97
|
+
/** The tool input the model proposed. */
|
|
98
|
+
input?: unknown;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* A Rail-3 confirmation decision resolving a paused tool batch. Sent to the same
|
|
102
|
+
* streaming endpoint as a normal turn (on the `confirmation` field), never as a
|
|
103
|
+
* `userText` message. Values match the backend (matched case-insensitively):
|
|
104
|
+
* - `approve` — run the batch once.
|
|
105
|
+
* - `approveAlways` — run it AND whitelist its guarded tools for the rest of the
|
|
106
|
+
* conversation, so they won't pause again.
|
|
107
|
+
* - `reject` — deny the whole batch.
|
|
108
|
+
*/
|
|
109
|
+
export type KRChatbotConfirmationDecision = 'approve' | 'approveAlways' | 'reject';
|
|
56
110
|
/**
|
|
57
111
|
* INTERNAL-ONLY debug telemetry carried by a `TOKEN_USAGE` SSE event's `data`.
|
|
58
112
|
*
|
|
@@ -191,6 +245,13 @@ export type KRChatbotSend = (params: {
|
|
|
191
245
|
* turn. Empty when nothing is selected. Forwarded as `selectionContext`.
|
|
192
246
|
*/
|
|
193
247
|
selectionContext: string;
|
|
248
|
+
/**
|
|
249
|
+
* Set only when this call resolves a paused guarded-tool batch (Rail 3)
|
|
250
|
+
* instead of sending a new message. When present, the built-in send hits the
|
|
251
|
+
* SAME streaming endpoint with `confirmation` set and no `userText` — the
|
|
252
|
+
* server ignores message text on this path. Absent for a normal turn.
|
|
253
|
+
*/
|
|
254
|
+
confirmation?: KRChatbotConfirmationDecision;
|
|
194
255
|
}) => Promise<Response>;
|
|
195
256
|
/**
|
|
196
257
|
* A file being sent with a message, paired with its analyze flag. Passed to the
|
|
@@ -202,6 +263,15 @@ export interface KRChatbotSendFile {
|
|
|
202
263
|
/** Whether the AI should read this file's contents (false = reference-only). */
|
|
203
264
|
aiAnalyze: boolean;
|
|
204
265
|
}
|
|
266
|
+
/**
|
|
267
|
+
* Conversation posture for guarded (consequential) tools — the backend
|
|
268
|
+
* `Conversation.mode`. Sent on the `mode` field of each turn's request and echoed
|
|
269
|
+
* back at turn start via the `CONVERSATION_STATE` event.
|
|
270
|
+
* - `NORMAL` — pause and ask before each guarded tool (the confirmation card).
|
|
271
|
+
* - `EDIT` — auto-run guarded tools, no prompt.
|
|
272
|
+
* - `PLAN` — refuse tools; the model proposes a plan instead of acting.
|
|
273
|
+
*/
|
|
274
|
+
export type KRChatbotMode = 'NORMAL' | 'EDIT' | 'PLAN';
|
|
205
275
|
/**
|
|
206
276
|
* AI chatbot component with SSE streaming.
|
|
207
277
|
*
|
|
@@ -216,9 +286,20 @@ export interface KRChatbotSendFile {
|
|
|
216
286
|
* - `TOOL_RESULT` — `{ type: "TOOL_RESULT", message: "tool_name", data: {...} }`
|
|
217
287
|
* - `ERROR` — `{ type: "ERROR", message: "Something went wrong" }`
|
|
218
288
|
* - `HEARTBEAT` — `{ type: "HEARTBEAT" }` (ignored)
|
|
289
|
+
* - `ACTION_CONFIRMATION_REQUIRED` — a guarded tool paused for approval;
|
|
290
|
+
* `{ type, data: { actions: [...] }, finished: true }` (Rail 3).
|
|
219
291
|
*
|
|
220
292
|
* The final event should include `finished: true` to signal stream completion.
|
|
221
293
|
*
|
|
294
|
+
* ## Turn locking (when the composer is free to send)
|
|
295
|
+
* `finished: true` is the single reliable "turn over, safe to send" signal — the
|
|
296
|
+
* component unlocks the composer on it, and also on stream close/error as a
|
|
297
|
+
* fallback so a dropped stream never wedges the UI. The one exception is
|
|
298
|
+
* `ACTION_CONFIRMATION_REQUIRED`: it too carries `finished: true`, but the
|
|
299
|
+
* conversation is now awaiting an approve/deny decision, so the composer stays
|
|
300
|
+
* blocked and only a confirmation decision (not a new message) is a valid next
|
|
301
|
+
* call.
|
|
302
|
+
*
|
|
222
303
|
* ## Usage
|
|
223
304
|
* ```html
|
|
224
305
|
* <kr-chatbot
|
|
@@ -243,6 +324,25 @@ export interface KRChatbotSendFile {
|
|
|
243
324
|
*/
|
|
244
325
|
export declare class KRChatbot extends LitElement {
|
|
245
326
|
static styles: import("lit").CSSResult;
|
|
327
|
+
/**
|
|
328
|
+
* Internal toggle for how the action-confirmation prompt (Rail 3) is presented:
|
|
329
|
+
* - `false`: the compact card that floats over the messages, pinned above the
|
|
330
|
+
* composer — plain-language ask + Yes/Always/No only, no tool arguments.
|
|
331
|
+
* - `true`: the prompt renders inline in the message stream (Claude-CLI style),
|
|
332
|
+
* grows to any height (no inner scroll — the transcript scrolls), and offers a
|
|
333
|
+
* "Show details" disclosure of the raw tool input for technical users.
|
|
334
|
+
* Flip here to switch approaches; the floating path is unchanged when false.
|
|
335
|
+
*/
|
|
336
|
+
private _inlineConfirm;
|
|
337
|
+
/**
|
|
338
|
+
* Internal toggle for how the assistant's reasoning ("thinking") is presented:
|
|
339
|
+
* - `false`: the current collapsible grey "Thinking" disclosure (kept so we can
|
|
340
|
+
* revert).
|
|
341
|
+
* - `true`: reasoning renders as a plain agentic message — same text style as a
|
|
342
|
+
* normal assistant reply, no box, no collapse.
|
|
343
|
+
* Flip here to switch approaches.
|
|
344
|
+
*/
|
|
345
|
+
private _reasoningAsMessage;
|
|
246
346
|
private _reader;
|
|
247
347
|
private _decoder;
|
|
248
348
|
private _buffer;
|
|
@@ -384,6 +484,32 @@ export declare class KRChatbot extends LitElement {
|
|
|
384
484
|
private _contextLimitReached;
|
|
385
485
|
/** Server-provided limit text (`CONVERSATION_LIMIT_REACHED`), if any. */
|
|
386
486
|
private _contextLimitMessage;
|
|
487
|
+
/**
|
|
488
|
+
* The guarded tool awaiting the user's decision, from the turn's
|
|
489
|
+
* `ACTION_CONFIRMATION_REQUIRED` event (`data.actions[]`, of which we handle the
|
|
490
|
+
* first — the framework confirms one guarded tool at a time). Non-empty means
|
|
491
|
+
* the conversation is paused on a confirmation: the normal composer is blocked
|
|
492
|
+
* (a new chat message would be rejected by the server with
|
|
493
|
+
* `awaitingConfirmation`) and the approve/deny prompt is shown instead. Cleared
|
|
494
|
+
* once a decision is sent.
|
|
495
|
+
*
|
|
496
|
+
* This is the one case where `finished:true` unlocks the turn lock but does
|
|
497
|
+
* NOT free the composer — the only valid next call is a confirmation decision.
|
|
498
|
+
*/
|
|
499
|
+
private _pendingActions;
|
|
500
|
+
/**
|
|
501
|
+
* Keyboard-highlighted confirmation option, as an index into the decision list
|
|
502
|
+
* (0 = Yes, 1 = Always allow, 2 = No). Yes is highlighted by default so Enter
|
|
503
|
+
* approves. Arrow Left/Right move it; Enter activates it. -1 when no batch is
|
|
504
|
+
* pending.
|
|
505
|
+
*/
|
|
506
|
+
private _confirmationHighlighted;
|
|
507
|
+
/**
|
|
508
|
+
* True while a confirmation decision (approve/deny) is being sent and its
|
|
509
|
+
* follow-up turn streams. Disables the approve/deny buttons so the batch can't
|
|
510
|
+
* be resolved twice.
|
|
511
|
+
*/
|
|
512
|
+
private _confirmationInFlight;
|
|
387
513
|
/**
|
|
388
514
|
* INTERNAL-ONLY latest telemetry snapshot (last-value-wins). Populated from
|
|
389
515
|
* `TOKEN_USAGE` events during streaming and hydrated from the conversation
|
|
@@ -398,11 +524,20 @@ export declare class KRChatbot extends LitElement {
|
|
|
398
524
|
private _iterationLog;
|
|
399
525
|
/** Latest cache-checkpoint info keyed by iteration, for the verbose table. */
|
|
400
526
|
private _cacheCheckpoints;
|
|
401
|
-
/**
|
|
402
|
-
|
|
403
|
-
|
|
527
|
+
/**
|
|
528
|
+
* Whether the side drawer is open (slid in). The drawer stays mounted and
|
|
529
|
+
* animates via a CSS transform, so this drives the slide and the content push.
|
|
530
|
+
*/
|
|
531
|
+
private _drawerOpen;
|
|
532
|
+
/**
|
|
533
|
+
* Which view the drawer shows — settings or debug. One drawer holds both; the
|
|
534
|
+
* header buttons switch this and the content/width swap inside. Never null, so
|
|
535
|
+
* the content stays visible while the drawer slides shut.
|
|
536
|
+
*/
|
|
537
|
+
private _drawerView;
|
|
538
|
+
/** Current width of the drawer in px (user-resizable, persisted). */
|
|
404
539
|
private _debugDrawerWidth;
|
|
405
|
-
/** True while the user is dragging the
|
|
540
|
+
/** True while the user is dragging the drawer's resize handle. */
|
|
406
541
|
private _isDebugResizing;
|
|
407
542
|
/** Files staged in the composer, before the message is sent. */
|
|
408
543
|
private _pendingConversationFiles;
|
|
@@ -453,6 +588,31 @@ export declare class KRChatbot extends LitElement {
|
|
|
453
588
|
private _skillBrowseQuery;
|
|
454
589
|
/** True while the mic is live and speech is being transcribed into the composer. */
|
|
455
590
|
private _isDictating;
|
|
591
|
+
/**
|
|
592
|
+
* Conversation posture for guarded tools (the composer's mode selector). Sent on
|
|
593
|
+
* each turn's `mode` field and kept in sync with the server's `CONVERSATION_STATE`
|
|
594
|
+
* event. Defaults to NORMAL (ask before each guarded tool).
|
|
595
|
+
*/
|
|
596
|
+
private _mode;
|
|
597
|
+
/** Whether the composer's mode menu (Ask / Auto / Plan) is open. */
|
|
598
|
+
private _modeMenuOpened;
|
|
599
|
+
/**
|
|
600
|
+
* Whether to show the tools the assistant ran, as activity lines in the
|
|
601
|
+
* transcript. On by default; a user can hide them from the settings panel.
|
|
602
|
+
* User-controlled in the settings panel; persisted in localStorage.
|
|
603
|
+
*/
|
|
604
|
+
private _showTools;
|
|
605
|
+
/**
|
|
606
|
+
* Whether to also show each tool's inputs and results under its line. Only
|
|
607
|
+
* has an effect when `_showTools` is on. Off by default.
|
|
608
|
+
*/
|
|
609
|
+
private _showToolInputs;
|
|
610
|
+
/**
|
|
611
|
+
* Whether to show the raw tool input inside the confirmation card (the JSON the
|
|
612
|
+
* model proposed for a guarded action). The plain-language ask + Yes/No always
|
|
613
|
+
* show; this only reveals the technical detail. Off by default.
|
|
614
|
+
*/
|
|
615
|
+
private _showConfirmationInput;
|
|
456
616
|
private _panelEl;
|
|
457
617
|
private _messagesEl;
|
|
458
618
|
private _inputEl;
|
|
@@ -573,6 +733,11 @@ export declare class KRChatbot extends LitElement {
|
|
|
573
733
|
private _handleGlobalSkillEnable;
|
|
574
734
|
/** The `+` button toggles the skill/attachment menu open (showing all skills). */
|
|
575
735
|
private _handlePlusClick;
|
|
736
|
+
private _handleModeToggle;
|
|
737
|
+
private _handleModeSelect;
|
|
738
|
+
private _handleShowToolsChange;
|
|
739
|
+
private _handleShowToolInputsChange;
|
|
740
|
+
private _handleShowConfirmationInputChange;
|
|
576
741
|
/**
|
|
577
742
|
* The mic button toggles dictation. Speech is transcribed straight into the
|
|
578
743
|
* composer as editable text — the user still reviews and presses send, so a
|
|
@@ -631,6 +796,25 @@ export declare class KRChatbot extends LitElement {
|
|
|
631
796
|
* firing the cancelable `message-submit` event; this owns the send + stream.
|
|
632
797
|
*/
|
|
633
798
|
private _send;
|
|
799
|
+
/**
|
|
800
|
+
* Keyboard control for the confirmation prompt. Bound at the document so it
|
|
801
|
+
* works even though the composer (where focus usually sits) is blocked while a
|
|
802
|
+
* batch is pending: Left/Right move the highlight across Yes / Always allow /
|
|
803
|
+
* No, Enter activates the highlighted one. No-op when nothing is pending or a
|
|
804
|
+
* decision is already in flight.
|
|
805
|
+
*/
|
|
806
|
+
private _handleDocumentKeydown;
|
|
807
|
+
/**
|
|
808
|
+
* Resolve the paused guarded-tool batch (Rail 3). Hits the SAME streaming
|
|
809
|
+
* endpoint as a normal turn but with a `confirmation` value instead of a
|
|
810
|
+
* message; the server runs (approve/approveAlways) or denies (reject) the batch
|
|
811
|
+
* and continues the turn, streaming the outcome into a fresh assistant bubble.
|
|
812
|
+
*
|
|
813
|
+
* The decision uses the same `send` callback so a custom `send` can own its own
|
|
814
|
+
* targeting — it just receives `confirmation` set and no message.
|
|
815
|
+
*/
|
|
816
|
+
private _handleConfirmationDecision;
|
|
817
|
+
/** Clear the in-flight confirmation flags (error paths, or once resolved). */
|
|
634
818
|
/**
|
|
635
819
|
* Capture ambient "where is the user / what are they looking at" context at
|
|
636
820
|
* send time, so the AI is grounded without the host passing anything in.
|
|
@@ -653,12 +837,58 @@ export declare class KRChatbot extends LitElement {
|
|
|
653
837
|
private _handleMessagesScroll;
|
|
654
838
|
private _handleErrorDismiss;
|
|
655
839
|
private _handleContextWarningDismiss;
|
|
656
|
-
|
|
840
|
+
/**
|
|
841
|
+
* A header button either opens the drawer to its view, switches the view if the
|
|
842
|
+
* drawer is already open on the other one, or closes the drawer if it's already
|
|
843
|
+
* showing this view. `_drawerView` is left intact on close so the content stays
|
|
844
|
+
* visible while the drawer slides shut.
|
|
845
|
+
*/
|
|
846
|
+
private _toggleDrawer;
|
|
847
|
+
/** Close the drawer. `_drawerView` is left intact so its content stays visible
|
|
848
|
+
* while the drawer slides shut. */
|
|
849
|
+
private _handleCloseDrawer;
|
|
657
850
|
private _handleDebugResizeMouseDown;
|
|
658
851
|
private _handleDebugResizeMouseMove;
|
|
659
852
|
private _handleDebugResizeMouseUp;
|
|
660
853
|
private _readStreamChunk;
|
|
854
|
+
/**
|
|
855
|
+
* The assistant bubble streamed text should append to. Returns the last message
|
|
856
|
+
* when it's already an assistant bubble; otherwise (the last message is a tool
|
|
857
|
+
* line, or there's nothing yet) opens a fresh assistant bubble so post-tool text
|
|
858
|
+
* doesn't get dropped or glued to a tool line.
|
|
859
|
+
*/
|
|
860
|
+
private _ensureAssistantBubble;
|
|
861
|
+
/**
|
|
862
|
+
* End the current turn: release the turn lock and the reader. Called on the
|
|
863
|
+
* primary unlock signal (`finished:true`) and the fallback (stream close).
|
|
864
|
+
*
|
|
865
|
+
* A turn that paused for confirmation (`_pendingActions` set) leaves the
|
|
866
|
+
* composer blocked even though the lock released — the approve/deny prompt
|
|
867
|
+
* owns the next call. Its trailing empty assistant bubble is dropped so the
|
|
868
|
+
* prompt doesn't sit under an empty message with a typing indicator.
|
|
869
|
+
*/
|
|
870
|
+
private _finishStream;
|
|
661
871
|
private _handleStreamError;
|
|
872
|
+
/**
|
|
873
|
+
* The composer's mode selector — a Gemini-style inline label + caret sitting
|
|
874
|
+
* just before the mic, that opens a small menu (Ask / Auto / Plan). Inline text
|
|
875
|
+
* rather than a pill so it doesn't grow the single-row composer's height. The
|
|
876
|
+
* menu opens upward above the trigger.
|
|
877
|
+
*/
|
|
878
|
+
private _renderModeSelector;
|
|
879
|
+
/**
|
|
880
|
+
* The approve/deny card shown when guarded tools are paused (Rail 3). Floats
|
|
881
|
+
* OVER the messages, anchored just above the composer — not part of the message
|
|
882
|
+
* scroll — so it stays in view while the transcript scrolls behind it.
|
|
883
|
+
*
|
|
884
|
+
* Written for a non-technical user. A single action reads as one plain-language
|
|
885
|
+
* ask (`Run "{tool}"?` + the model's `confirmationMessage`). When the model
|
|
886
|
+
* batches several guarded tools, they're listed together under one header and
|
|
887
|
+
* the user accepts or rejects them all at once — the backend decision is
|
|
888
|
+
* all-or-nothing. Either way: NO tool code, NO raw arguments/JSON — those are
|
|
889
|
+
* noise (or alarming) to a normal user.
|
|
890
|
+
*/
|
|
891
|
+
private _renderConfirmation;
|
|
662
892
|
/** The `/` skill menu shown above the composer while typing a slash command. */
|
|
663
893
|
private _renderSkillMenu;
|
|
664
894
|
/**
|
|
@@ -698,7 +928,17 @@ export declare class KRChatbot extends LitElement {
|
|
|
698
928
|
* three scopes from the latest TOKEN_USAGE event — context gauge, this turn,
|
|
699
929
|
* lifetime — plus a verbose per-iteration table. Never customer-facing.
|
|
700
930
|
*/
|
|
701
|
-
|
|
931
|
+
/**
|
|
932
|
+
* The side drawer — one sliding panel that holds both the Settings and Debug
|
|
933
|
+
* views. The header buttons switch `_drawerView`; the title and body swap
|
|
934
|
+
* inside. The panel keeps one consistent (resizable) width across both views —
|
|
935
|
+
* switching views only changes the content, never the panel size.
|
|
936
|
+
*/
|
|
937
|
+
private _renderDrawer;
|
|
938
|
+
/** The Settings view's body — user preferences, grouped in sections. */
|
|
939
|
+
private _renderSettingsContent;
|
|
940
|
+
/** The Debug view's body — telemetry scopes and the per-iteration table. */
|
|
941
|
+
private _renderDebugContent;
|
|
702
942
|
render(): import("lit-html").TemplateResult<1>;
|
|
703
943
|
}
|
|
704
944
|
declare global {
|
package/dist/chatbot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatbot.d.ts","sourceRoot":"","sources":["../src/chatbot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"chatbot.d.ts","sourceRoot":"","sources":["../src/chatbot.ts"],"names":[],"mappings":"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"}
|