Files
dnd-claw/agent-console/.electron-userdata/Cache/Cache_Data/f_00000f
T

291 lines
30 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { createHotContext as __vite__createHotContext } from "/@vite/client";import.meta.hot = __vite__createHotContext("/components/Sidebar.vue");import { defineComponent as _defineComponent } from "/@fs/D:/dndClaw/agent-console/node_modules/.vite/deps/vue.js?v=cc68ba0b";
import { computed } from "/@fs/D:/dndClaw/agent-console/node_modules/.vite/deps/vue.js?v=cc68ba0b";
import { useTheme } from "/composables/useTheme.ts";
import { nextTick, onMounted, onUnmounted, ref } from "/@fs/D:/dndClaw/agent-console/node_modules/.vite/deps/vue.js?v=cc68ba0b";
const _sfc_main = /* @__PURE__ */ _defineComponent({
__name: "Sidebar",
props: {
menus: { type: Array, required: true },
conversations: { type: Array, required: true },
activeId: { type: String, required: true },
activeView: { type: String, required: true }
},
emits: ["select", "openSetting", "rename"],
setup(__props, { expose: __expose, emit: __emit }) {
__expose();
const emit = __emit;
const editingId = ref("");
const editTitle = ref("");
const titleInput = ref();
const menuId = ref("");
function toggleMenu(id, e) {
e.stopPropagation();
menuId.value = menuId.value === id ? "" : id;
}
function closeMenu() {
menuId.value = "";
}
onMounted(() => document.addEventListener("click", closeMenu));
onUnmounted(() => document.removeEventListener("click", closeMenu));
function startEdit(c) {
editingId.value = c.id;
editTitle.value = c.title;
menuId.value = "";
nextTick(() => titleInput.value?.focus());
}
function saveTitle(id) {
const newTitle = editTitle.value.trim();
if (newTitle && newTitle !== "") {
emit("rename", id, newTitle);
}
editingId.value = "";
}
const { theme, toggle } = useTheme();
const themeText = computed(
() => theme.value === "light" ? "切换到深色" : "切换到浅色"
);
const iconMap = {
features: '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 1 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 1 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 1 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 1 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/></svg>',
api: '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 11h-6"/><path d="M19 8v6"/></svg>',
workflow: '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 1l4 4-4 4"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><path d="M7 23l-4-4 4-4"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg>'
};
const __returned__ = { emit, editingId, editTitle, titleInput, menuId, toggleMenu, closeMenu, startEdit, saveTitle, theme, toggle, themeText, iconMap };
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
return __returned__;
}
});
import { createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, vModelText as _vModelText, withModifiers as _withModifiers, withKeys as _withKeys, withDirectives as _withDirectives } from "/@fs/D:/dndClaw/agent-console/node_modules/.vite/deps/vue.js?v=cc68ba0b";
const _hoisted_1 = { class: "sidebar" };
const _hoisted_2 = { class: "brand" };
const _hoisted_3 = ["title"];
const _hoisted_4 = { class: "section" };
const _hoisted_5 = ["onClick"];
const _hoisted_6 = ["innerHTML"];
const _hoisted_7 = { class: "menu-label" };
const _hoisted_8 = { class: "section grow" };
const _hoisted_9 = { class: "section-title" };
const _hoisted_10 = { class: "conv-list" };
const _hoisted_11 = ["onClick"];
const _hoisted_12 = { class: "conv-row" };
const _hoisted_13 = ["onKeydown", "onBlur"];
const _hoisted_14 = {
key: 1,
class: "conv-title"
};
const _hoisted_15 = ["onClick"];
const _hoisted_16 = { class: "conv-meta" };
const _hoisted_17 = ["onClick"];
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return _openBlock(), _createElementBlock("aside", _hoisted_1, [
_createCommentVNode(" 品牌区 + 主题开关 "),
_createElementVNode("div", _hoisted_2, [
_cache[7] || (_cache[7] = _createElementVNode(
"span",
{ class: "title" },
"dndClaw",
-1
/* CACHED */
)),
_createElementVNode("button", {
class: _normalizeClass(["theme-switch", { dark: $setup.theme === "dark" }]),
title: $setup.themeText,
onClick: _cache[0] || (_cache[0] = (...args) => $setup.toggle && $setup.toggle(...args))
}, [..._cache[6] || (_cache[6] = [
_createElementVNode(
"span",
{ class: "switch-thumb" },
null,
-1
/* CACHED */
),
_createElementVNode(
"span",
{ class: "switch-label light" },
"浅色",
-1
/* CACHED */
),
_createElementVNode(
"span",
{ class: "switch-label dark" },
"深色",
-1
/* CACHED */
)
])], 10, _hoisted_3)
]),
_createCommentVNode(" 功能设置区 "),
_createElementVNode("section", _hoisted_4, [
_cache[8] || (_cache[8] = _createElementVNode(
"div",
{ class: "section-title" },
"功能设置",
-1
/* CACHED */
)),
(_openBlock(true), _createElementBlock(
_Fragment,
null,
_renderList($props.menus, (m) => {
return _openBlock(), _createElementBlock("button", {
key: m.key,
class: _normalizeClass(["menu-item", { active: $props.activeView === m.key }]),
onClick: ($event) => _ctx.$emit("openSetting", m.key)
}, [
_createElementVNode("span", {
class: "menu-icon",
innerHTML: $setup.iconMap[m.key]
}, null, 8, _hoisted_6),
_createElementVNode(
"span",
_hoisted_7,
_toDisplayString(m.label),
1
/* TEXT */
)
], 10, _hoisted_5);
}),
128
/* KEYED_FRAGMENT */
))
]),
_cache[11] || (_cache[11] = _createElementVNode(
"div",
{ class: "divider" },
null,
-1
/* CACHED */
)),
_createCommentVNode(" 对话管理区 "),
_createElementVNode("section", _hoisted_8, [
_createElementVNode("div", _hoisted_9, [
_cache[9] || (_cache[9] = _createElementVNode(
"span",
null,
"对话管理",
-1
/* CACHED */
)),
_createElementVNode("button", {
class: "add-btn",
title: "新建对话",
onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("select", "new"))
}, "+")
]),
_createElementVNode("ul", _hoisted_10, [
(_openBlock(true), _createElementBlock(
_Fragment,
null,
_renderList($props.conversations, (c) => {
return _openBlock(), _createElementBlock("li", {
key: c.id,
class: _normalizeClass(["conv-item", { active: c.id === $props.activeId }]),
onClick: ($event) => _ctx.$emit("select", c.id)
}, [
_createElementVNode("div", _hoisted_12, [
$setup.editingId === c.id ? _withDirectives((_openBlock(), _createElementBlock("input", {
key: 0,
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $setup.editTitle = $event),
class: "title-input",
onClick: _cache[3] || (_cache[3] = _withModifiers(() => {
}, ["stop"])),
onKeydown: [
_withKeys(($event) => $setup.saveTitle(c.id), ["enter"]),
_cache[4] || (_cache[4] = _withKeys(($event) => $setup.editingId = "", ["esc"]))
],
onBlur: ($event) => $setup.saveTitle(c.id),
ref_for: true,
ref: "titleInput"
}, null, 40, _hoisted_13)), [
[_vModelText, $setup.editTitle]
]) : (_openBlock(), _createElementBlock(
"div",
_hoisted_14,
_toDisplayString(c.title),
1
/* TEXT */
)),
_createElementVNode("button", {
class: "more-btn",
title: "更多",
onClick: _withModifiers(($event) => $setup.toggleMenu(c.id, $event), ["stop"])
}, [..._cache[10] || (_cache[10] = [
_createElementVNode(
"svg",
{
width: "16",
height: "16",
viewBox: "0 0 24 24",
fill: "currentColor"
},
[
_createElementVNode("circle", {
cx: "5",
cy: "12",
r: "2"
}),
_createElementVNode("circle", {
cx: "12",
cy: "12",
r: "2"
}),
_createElementVNode("circle", {
cx: "19",
cy: "12",
r: "2"
})
],
-1
/* CACHED */
)
])], 8, _hoisted_15)
]),
_createElementVNode("div", _hoisted_16, [
_createElementVNode(
"span",
null,
_toDisplayString(c.updatedAt),
1
/* TEXT */
)
]),
_createCommentVNode(" 下拉菜单 "),
$setup.menuId === c.id ? (_openBlock(), _createElementBlock("div", {
key: 0,
class: "dropdown-menu",
onClick: _cache[5] || (_cache[5] = _withModifiers(() => {
}, ["stop"]))
}, [
_createElementVNode("div", {
class: "menu-item",
onClick: ($event) => $setup.startEdit(c)
}, "修改名称", 8, _hoisted_17)
])) : _createCommentVNode("v-if", true)
], 10, _hoisted_11);
}),
128
/* KEYED_FRAGMENT */
))
])
])
]);
}
import "/components/Sidebar.vue?vue&type=style&index=0&scoped=3801e5de&lang.css";
_sfc_main.__hmrId = "3801e5de";
typeof __VUE_HMR_RUNTIME__ !== "undefined" && __VUE_HMR_RUNTIME__.createRecord(_sfc_main.__hmrId, _sfc_main);
import.meta.hot.on("file-changed", ({ file }) => {
__VUE_HMR_RUNTIME__.CHANGED_FILE = file;
});
import.meta.hot.accept((mod) => {
if (!mod) return;
const { default: updated, _rerender_only } = mod;
if (_rerender_only) {
__VUE_HMR_RUNTIME__.rerender(updated.__hmrId, updated.render);
} else {
__VUE_HMR_RUNTIME__.reload(updated.__hmrId, updated);
}
});
import _export_sfc from "/@id/__x00__plugin-vue:export-helper";
export default /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-3801e5de"], ["__file", "D:/dndClaw/agent-console/src/renderer/components/Sidebar.vue"]]);
//# sourceMappingURL=data:application/json;base64,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QUEsa0JBQWxEO0FBQUEsa0JBQWtELGlCQUFoQixFQUFFLEtBQUs7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFDekMsb0JBUVM7QUFBQSxrQkFQUCxPQUFNO0FBQUEsa0JBQ04sT0FBTTtBQUFBLGtCQUNMLFNBQUssMkJBQU8sa0JBQVcsRUFBRSxJQUFJLE1BQU07QUFBQTtrQkFFcEM7QUFBQSxvQkFFTTtBQUFBO0FBQUEsc0JBRkQsT0FBTTtBQUFBLHNCQUFLLFFBQU87QUFBQSxzQkFBSyxTQUFRO0FBQUEsc0JBQVksTUFBSztBQUFBOztzQkFDbkQsb0JBQThCO0FBQUEsd0JBQXRCLElBQUc7QUFBQSx3QkFBSSxJQUFHO0FBQUEsd0JBQUssR0FBRTtBQUFBO3NCQUFLLG9CQUErQjtBQUFBLHdCQUF2QixJQUFHO0FBQUEsd0JBQUssSUFBRztBQUFBLHdCQUFLLEdBQUU7QUFBQTtzQkFBSyxvQkFBK0I7QUFBQSx3QkFBdkIsSUFBRztBQUFBLHdCQUFLLElBQUc7QUFBQSx3QkFBSyxHQUFFO0FBQUE7Ozs7Ozs7Y0FJN0Ysb0JBRU0sT0FGTixhQUVNO0FBQUEsZ0JBREo7QUFBQSxrQkFBOEI7QUFBQTtBQUFBLG1DQUFyQixFQUFFLFNBQVM7QUFBQTtBQUFBO0FBQUE7QUFBQTtjQUV0QjtBQUFBLGNBRVEsa0JBQVcsRUFBRSxvQkFEckIsb0JBTU07QUFBQTtnQkFKSixPQUFNO0FBQUEsZ0JBQ0wsU0FBSyx5Q0FBTjtBQUFBLG1CQUFXO0FBQUE7Z0JBRVgsb0JBQXVEO0FBQUEsa0JBQWxELE9BQU07QUFBQSxrQkFBYSxTQUFLLFlBQUUsaUJBQVUsQ0FBQztBQUFBLG1CQUFHLFFBQUk7QUFBQSIsIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZXMiOlsiU2lkZWJhci52dWUiXSwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxuICA8YXNpZGUgY2xhc3M9XCJzaWRlYmFyXCI+XG4gICAgPCEtLSDlk4HniYzljLogKyDkuLvpopjlvIDlhbMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImJyYW5kXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+ZG5kQ2xhdzwvc3Bhbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJ0aGVtZS1zd2l0Y2hcIlxuICAgICAgICA6Y2xhc3M9XCJ7IGRhcms6IHRoZW1lID09PSAnZGFyaycgfVwiXG4gICAgICAgIDp0aXRsZT1cInRoZW1lVGV4dFwiXG4gICAgICAgIEBjbGljaz1cInRvZ2dsZVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3dpdGNoLXRodW1iXCIgLz5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzd2l0Y2gtbGFiZWwgbGlnaHRcIj7mtYXoibI8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3dpdGNoLWxhYmVsIGRhcmtcIj7mt7HoibI8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0g5Yqf6IO96K6+572u5Yy6IC0tPlxuICAgIDxzZWN0aW9uIGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj7lip/og73orr7nva48L2Rpdj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdi1mb3I9XCJtIGluIG1lbnVzXCJcbiAgICAgICAgOmtleT1cIm0ua2V5XCJcbiAgICAgICAgY2xhc3M9XCJtZW51LWl0ZW1cIlxuICAgICAgICA6Y2xhc3M9XCJ7IGFjdGl2ZTogYWN0aXZlVmlldyA9PT0gbS5rZXkgfVwiXG4gICAgICAgIEBjbGljaz1cIiRlbWl0KCdvcGVuU2V0dGluZycsIG0ua2V5KVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pY29uXCIgdi1odG1sPVwiaWNvbk1hcFttLmtleV1cIiAvPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtbGFiZWxcIj57eyBtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9zZWN0aW9uPlxuXG4gICAgPGRpdiBjbGFzcz1cImRpdmlkZXJcIiAvPlxuXG4gICAgPCEtLSDlr7nor53nrqHnkIbljLogLS0+XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJzZWN0aW9uIGdyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+XG4gICAgICAgIDxzcGFuPuWvueivneeuoeeQhjwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYWRkLWJ0blwiXG4gICAgICAgICAgdGl0bGU9XCLmlrDlu7rlr7nor51cIlxuICAgICAgICAgIEBjbGljaz1cIiRlbWl0KCdzZWxlY3QnLCAnbmV3JylcIlxuICAgICAgICA+77yLPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDx1bCBjbGFzcz1cImNvbnYtbGlzdFwiPlxuICAgICAgICA8bGlcbiAgICAgICAgICB2LWZvcj1cImMgaW4gY29udmVyc2F0aW9uc1wiXG4gICAgICAgICAgOmtleT1cImMuaWRcIlxuICAgICAgICAgIGNsYXNzPVwiY29udi1pdGVtXCJcbiAgICAgICAgICA6Y2xhc3M9XCJ7IGFjdGl2ZTogYy5pZCA9PT0gYWN0aXZlSWQgfVwiXG4gICAgICAgICAgQGNsaWNrPVwiJGVtaXQoJ3NlbGVjdCcsIGMuaWQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb252LXJvd1wiPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHYtaWY9XCJlZGl0aW5nSWQgPT09IGMuaWRcIlxuICAgICAgICAgICAgICB2LW1vZGVsPVwiZWRpdFRpdGxlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0aXRsZS1pbnB1dFwiXG4gICAgICAgICAgICAgIEBjbGljay5zdG9wXG4gICAgICAgICAgICAgIEBrZXlkb3duLmVudGVyPVwic2F2ZVRpdGxlKGMuaWQpXCJcbiAgICAgICAgICAgICAgQGtleWRvd24uZXNjPVwiZWRpdGluZ0lkID0gJydcIlxuICAgICAgICAgICAgICBAYmx1cj1cInNhdmVUaXRsZShjLmlkKVwiXG4gICAgICAgICAgICAgIHJlZj1cInRpdGxlSW5wdXRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXYgdi1lbHNlIGNsYXNzPVwiY29udi10aXRsZVwiPnt7IGMudGl0bGUgfX08L2Rpdj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJtb3JlLWJ0blwiXG4gICAgICAgICAgICAgIHRpdGxlPVwi5pu05aSaXCJcbiAgICAgICAgICAgICAgQGNsaWNrLnN0b3A9XCJ0b2dnbGVNZW51KGMuaWQsICRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjVcIiBjeT1cIjEyXCIgcj1cIjJcIi8+PGNpcmNsZSBjeD1cIjEyXCIgY3k9XCIxMlwiIHI9XCIyXCIvPjxjaXJjbGUgY3g9XCIxOVwiIGN5PVwiMTJcIiByPVwiMlwiLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udi1tZXRhXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyBjLnVwZGF0ZWRBdCB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8IS0tIOS4i+aLieiPnOWNlSAtLT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICB2LWlmPVwibWVudUlkID09PSBjLmlkXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd24tbWVudVwiXG4gICAgICAgICAgICBAY2xpY2suc3RvcFxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW1cIiBAY2xpY2s9XCJzdGFydEVkaXQoYylcIj7kv67mlLnlkI3np7A8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9zZWN0aW9uPlxuICA8L2FzaWRlPlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdCBzZXR1cCBsYW5nPVwidHNcIj5cbmltcG9ydCB7IGNvbXB1dGVkIH0gZnJvbSAndnVlJ1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICcuLi9jb21wb3NhYmxlcy91c2VUaGVtZSdcbmltcG9ydCB0eXBlIHsgQ29udmVyc2F0aW9uLCBTZXR0aW5nTWVudSwgVmlld1R5cGUgfSBmcm9tICcuLi90eXBlcydcblxuZGVmaW5lUHJvcHM8e1xuICBtZW51czogU2V0dGluZ01lbnVbXVxuICBjb252ZXJzYXRpb25zOiBDb252ZXJzYXRpb25bXVxuICBhY3RpdmVJZDogc3RyaW5nXG4gIGFjdGl2ZVZpZXc6IFZpZXdUeXBlXG59PigpXG5cbmltcG9ydCB7IG5leHRUaWNrLCBvbk1vdW50ZWQsIG9uVW5tb3VudGVkLCByZWYgfSBmcm9tICd2dWUnXG5cbmNvbnN0IGVtaXQgPSBkZWZpbmVFbWl0czx7XG4gIChlOiAnc2VsZWN0JywgaWQ6IHN0cmluZyk6IHZvaWRcbiAgKGU6ICdvcGVuU2V0dGluZycsIGtleTogc3RyaW5nKTogdm9pZFxuICAoZTogJ3JlbmFtZScsIGlkOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcpOiB2b2lkXG59PigpXG5cbmNvbnN0IGVkaXRpbmdJZCA9IHJlZignJylcbmNvbnN0IGVkaXRUaXRsZSA9IHJlZignJylcbmNvbnN0IHRpdGxlSW5wdXQgPSByZWY8SFRNTElucHV0RWxlbWVudD4oKVxuY29uc3QgbWVudUlkID0gcmVmKCcnKVxuXG5mdW5jdGlvbiB0b2dnbGVNZW51KGlkOiBzdHJpbmcsIGU6IE1vdXNlRXZlbnQpIHtcbiAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICBtZW51SWQudmFsdWUgPSBtZW51SWQudmFsdWUgPT09IGlkID8gJycgOiBpZFxufVxuXG5mdW5jdGlvbiBjbG9zZU1lbnUoKSB7XG4gIG1lbnVJZC52YWx1ZSA9ICcnXG59XG5cbm9uTW91bnRlZCgoKSA9PiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNsb3NlTWVudSkpXG5vblVubW91bnRlZCgoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGNsb3NlTWVudSkpXG5cbmZ1bmN0aW9uIHN0YXJ0RWRpdChjOiB7IGlkOiBzdHJpbmc7IHRpdGxlOiBzdHJpbmcgfSkge1xuICBlZGl0aW5nSWQudmFsdWUgPSBjLmlkXG4gIGVkaXRUaXRsZS52YWx1ZSA9IGMudGl0bGVcbiAgbWVudUlkLnZhbHVlID0gJydcbiAgbmV4dFRpY2soKCkgPT4gdGl0bGVJbnB1dC52YWx1ZT8uZm9jdXMoKSlcbn1cblxuZnVuY3Rpb24gc2F2ZVRpdGxlKGlkOiBzdHJpbmcpIHtcbiAgY29uc3QgbmV3VGl0bGUgPSBlZGl0VGl0bGUudmFsdWUudHJpbSgpXG4gIGlmIChuZXdUaXRsZSAmJiBuZXdUaXRsZSAhPT0gJycpIHtcbiAgICBlbWl0KCdyZW5hbWUnLCBpZCwgbmV3VGl0bGUpXG4gIH1cbiAgZWRpdGluZ0lkLnZhbHVlID0gJydcbn1cblxuY29uc3QgeyB0aGVtZSwgdG9nZ2xlIH0gPSB1c2VUaGVtZSgpXG5jb25zdCB0aGVtZVRleHQgPSBjb21wdXRlZCgoKSA9PlxuICB0aGVtZS52YWx1ZSA9PT0gJ2xpZ2h0JyA/ICfliIfmjaLliLDmt7HoibInIDogJ+WIh+aNouWIsOa1heiJsidcbilcblxuY29uc3QgaWNvbk1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZmVhdHVyZXM6XG4gICAgJzxzdmcgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTJcIiByPVwiM1wiLz48cGF0aCBkPVwiTTE5LjQgMTVhMS42NSAxLjY1IDAgMCAwIC4zMyAxLjgybC4wNi4wNmEyIDIgMCAxIDEtMi44MyAyLjgzbC0uMDYtLjA2YTEuNjUgMS42NSAwIDAgMC0xLjgyLS4zMyAxLjY1IDEuNjUgMCAwIDAtMSAxLjUxVjIxYTIgMiAwIDEgMS00IDB2LS4wOUExLjY1IDEuNjUgMCAwIDAgOSAxOS40YTEuNjUgMS42NSAwIDAgMC0xLjgyLjMzbC0uMDYuMDZhMiAyIDAgMSAxLTIuODMtMi44M2wuMDYtLjA2YTEuNjUgMS42NSAwIDAgMCAuMzMtMS44MiAxLjY1IDEuNjUgMCAwIDAtMS41MS0xSDNhMiAyIDAgMSAxIDAtNGguMDlBMS42NSAxLjY1IDAgMCAwIDQuNiA5YTEuNjUgMS42NSAwIDAgMC0uMzMtMS44MmwtLjA2LS4wNmEyIDIgMCAxIDEgMi44My0yLjgzbC4wNi4wNmExLjY1IDEuNjUgMCAwIDAgMS44Mi4zM0g5YTEuNjUgMS42NSAwIDAgMCAxLTEuNTFWM2EyIDIgMCAxIDEgNCAwdi4wOWExLjY1IDEuNjUgMCAwIDAgMSAxLjUxIDEuNjUgMS42NSAwIDAgMCAxLjgyLS4zM2wuMDYtLjA2YTIgMiAwIDEgMSAyLjgzIDIuODNsLS4wNi4wNmExLjY1IDEuNjUgMCAwIDAtLjMzIDEuODJWOWExLjY1IDEuNjUgMCAwIDAgMS41MSAxSDIxYTIgMiAwIDEgMSAwIDRoLS4wOWExLjY1IDEuNjUgMCAwIDAtMS41MSAxelwiLz48L3N2Zz4nLFxuICBhcGk6XG4gICAgJzxzdmcgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjxwYXRoIGQ9XCJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MlwiLz48Y2lyY2xlIGN4PVwiOVwiIGN5PVwiN1wiIHI9XCI0XCIvPjxwYXRoIGQ9XCJNMjIgMTFoLTZcIi8+PHBhdGggZD1cIk0xOSA4djZcIi8+PC9zdmc+JyxcbiAgd29ya2Zsb3c6XG4gICAgJzxzdmcgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjxwYXRoIGQ9XCJNMTcgMWw0IDQtNCA0XCIvPjxwYXRoIGQ9XCJNMyAxMVY5YTQgNCAwIDAgMSA0LTRoMTRcIi8+PHBhdGggZD1cIk03IDIzbC00LTQgNC00XCIvPjxwYXRoIGQ9XCJNMjEgMTN2MmE0IDQgMCAwIDEtNCA0SDNcIi8+PC9zdmc+J1xufVxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG4uc2lkZWJhciB7XG4gIHdpZHRoOiAyNjBweDtcbiAgbWluLXdpZHRoOiAyNjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmctc2lkZWJhcik7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XG4gIHBhZGRpbmc6IDE0cHg7XG4gIGdhcDogMTRweDtcbn1cbi5icmFuZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xufVxuLnRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZmxleDogMTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBwYWRkaW5nLWxlZnQ6IDE0cHg7XG59XG5cbi8qIGlPUyDpo47moLzkuLvpopjmu5HliqjlvIDlhbMgKi9cbi50aGVtZS1zd2l0Y2gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA2NHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdmVyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGVhc2U7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnN3aXRjaC10aHVtYiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAycHg7XG4gIGxlZnQ6IDJweDtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjZweDtcbiAgYm9yZGVyLXJhZGl1czogMTNweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIHotaW5kZXg6IDE7XG59XG4udGhlbWUtc3dpdGNoLmRhcmsgLnN3aXRjaC10aHVtYiB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMnB4KTtcbn1cbi8qIOaWh+Wtl+WIhuWxgu+8mumdnuW9k+WJjeeKtuaAgemakOiXj++8jOW9k+WJjeeKtuaAgeaYvuekuiAqL1xuLnN3aXRjaC1sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjM1cyBlYXNlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMjtcbn1cbi5zd2l0Y2gtbGFiZWwubGlnaHQge1xuICByaWdodDogN3B4O1xuICBjb2xvcjogdmFyKC0tcHJpbWFyeSk7XG4gIG9wYWNpdHk6IDE7XG59XG4uc3dpdGNoLWxhYmVsLmRhcmsge1xuICBsZWZ0OiA3cHg7XG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcbiAgb3BhY2l0eTogMDtcbn1cbi50aGVtZS1zd2l0Y2guZGFyayAuc3dpdGNoLWxhYmVsLmxpZ2h0IHtcbiAgb3BhY2l0eTogMDtcbn1cbi50aGVtZS1zd2l0Y2guZGFyayAuc3dpdGNoLWxhYmVsLmRhcmsge1xuICBvcGFjaXR5OiAxO1xufVxuLnNlY3Rpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDhweDtcbn1cbi5zZWN0aW9uLmdyb3cge1xuICBmbGV4OiAxO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnNlY3Rpb24tdGl0bGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG59XG4uYWRkLWJ0biB7XG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMTtcbn1cbi5kaXZpZGVyIHtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJvcmRlcik7XG59XG4ubWVudS1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICBwYWRkaW5nOiA5cHggMTBweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xufVxuLm1lbnUtaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdmVyKTtcbn1cbi5tZW51LWl0ZW0uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmctYWN0aXZlKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcbn1cbi5tZW51LWljb24ge1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7XG59XG4ubWVudS1pdGVtLmFjdGl2ZSAubWVudS1pY29uIHtcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xufVxuLm1lbnUtbGFiZWwge1xuICBmbGV4OiAxO1xufVxuLmNvbnYtbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGZsZXg6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNHB4O1xufVxuLmNvbnYtaXRlbSB7XG4gIHBhZGRpbmc6IDlweCAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uY29udi1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmctaG92ZXIpO1xufVxuLmNvbnYtaXRlbS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1hY3RpdmUpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xufVxuLmNvbnYtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG59XG4uY29udi1yb3cgLmNvbnYtdGl0bGUge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG59XG4ubW9yZS1idG4ge1xuICBmbGV4LXNocmluazogMDtcbiAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xuICBwYWRkaW5nOiAycHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cztcbn1cbi5jb252LWl0ZW06aG92ZXIgLm1vcmUtYnRuIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5tb3JlLWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdmVyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7XG59XG4udGl0bGUtaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMnB4IDZweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcHJpbWFyeSk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmctaW5wdXQpO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4uY29udi10aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4uY29udi1tZXRhIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcbiAgbWFyZ2luLXRvcDogM3B4O1xufVxuLmRyb3Bkb3duLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDMycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJnLXBhbmVsKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3cpO1xuICBwYWRkaW5nOiA0cHg7XG4gIHotaW5kZXg6IDEwMDtcbiAgbWluLXdpZHRoOiAxMDBweDtcbn1cbi5tZW51LWl0ZW0ge1xuICBwYWRkaW5nOiA3cHggMTJweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5tZW51LWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3Zlcik7XG59XG4uY29udi1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuPC9zdHlsZT5cbiJdLCJmaWxlIjoiRDovZG5kQ2xhdy9hZ2VudC1jb25zb2xlL3NyYy9yZW5kZXJlci9jb21wb25lbnRzL1NpZGViYXIudnVlIn0=