Files
speckle-server/scratch/edge-debug-selection/Default/Cache/Cache_Data/f_00013a
T

242 lines
19 KiB
Plaintext

import { createHotContext as __vite__createHotContext } from "/_nuxt/@vite/client";import.meta.hot = __vite__createHotContext("/components/header/nav/Share.vue");import { FormButton as __nuxt_component_0 } from "/_nuxt/@fs/D:/speckle-server/packages/ui-components/dist/lib.js";
import { default as __nuxt_component_1 } from "/_nuxt/components/project/model-page/dialog/embed/Embed.vue";
/* Injection by vite-plugin-vue-inspector Start */
import { createVNode as __createVNode,createElementVNode as __createElementVNode,createBlock as __createBlock } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29"
function _interopVNode(vnode) {
if (vnode && vnode.props && 'data-v-inspector' in vnode.props) {
const data = vnode.props['data-v-inspector']
delete vnode.props['data-v-inspector']
Object.defineProperty(vnode.props, '__v_inspector', { value: data, enumerable: false })
}
return vnode
}
function _createVNode(...args) { return _interopVNode(__createVNode(...args)) }
function _createElementVNode(...args) { return _interopVNode(__createElementVNode(...args)) }
function _createBlock(...args) { return _interopVNode(__createBlock(...args)) }
/* Injection by vite-plugin-vue-inspector End */
import { defineComponent as _defineComponent } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
import { Menu, MenuButton, MenuItems, MenuItem } from "/_nuxt/node_modules/@headlessui/vue/dist/headlessui.esm.js?v=e4f18c29";
import { ShareIcon } from "/_nuxt/node_modules/.cache/vite/client/deps/@heroicons_vue_24_outline.js?v=e4f18c29";
import { ChevronDownIcon, ChevronUpIcon } from "/_nuxt/node_modules/.cache/vite/client/deps/@heroicons_vue_20_solid.js?v=e4f18c29";
import { SpeckleViewer } from "/_nuxt/@fs/D:/speckle-server/packages/shared/dist/esm/index.js";
import { keyboardClick } from "/_nuxt/@fs/D:/speckle-server/packages/ui-components/dist/lib.js";
import { graphql } from "/_nuxt/lib/common/generated/gql/gql.ts";
import { useClipboard } from "/_nuxt/composables/browser.ts";
import { useId, ref, computed } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
const _sfc_main = /* @__PURE__ */ _defineComponent({
__name: "HeaderNavShare",
props: {
project: { type: Object, required: true },
resourceIdString: { type: String, required: true }
},
setup(__props, { expose: __expose }) {
__expose();
graphql(`
fragment HeaderNavShare_Project on Project {
id
visibility
...ProjectsModelPageEmbed_Project
}
`);
const props = __props;
const { copy } = useClipboard();
const menuButtonId = useId();
const embedDialogOpen = ref(false);
const parsedResourceIds = computed(
() => SpeckleViewer.ViewerRoute.parseUrlParameters(props.resourceIdString)
);
const isFederated = computed(() => parsedResourceIds.value.length > 1);
const handleCopyId = async () => {
await copy(props.resourceIdString, { successMessage: "ID copied to clipboard" });
};
const handleCopyLink = async () => {
if (false) return;
await copy(window.location.href, {
successMessage: "Copied link to clipboard"
});
};
const handleEmbed = () => {
embedDialogOpen.value = true;
};
const __returned__ = { props, copy, menuButtonId, embedDialogOpen, parsedResourceIds, isFederated, handleCopyId, handleCopyLink, handleEmbed, get Menu() {
return Menu;
}, get MenuButton() {
return MenuButton;
}, get MenuItems() {
return MenuItems;
}, get MenuItem() {
return MenuItem;
}, get ShareIcon() {
return ShareIcon;
}, get ChevronDownIcon() {
return ChevronDownIcon;
}, get ChevronUpIcon() {
return ChevronUpIcon;
}, get keyboardClick() {
return keyboardClick;
} };
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
return __returned__;
}
});
import { createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, normalizeClass as _normalizeClass, openBlock as _openBlock, } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_FormButton = __nuxt_component_0;
const _component_ProjectModelPageDialogEmbed = __nuxt_component_1;
return _openBlock(), _createBlock($setup["Menu"], {
as: "div",
class: "flex items-center relative",
"data-v-inspector": "components/header/nav/Share.vue:3:3"
}, {
default: _withCtx(() => [
_createVNode($setup["MenuButton"], {
id: $setup.menuButtonId,
as: "div",
"data-v-inspector": "components/header/nav/Share.vue:4:5"
}, {
default: _withCtx(({ open }) => [
_createCommentVNode(" Desktop Button "),
_createVNode(_component_FormButton, {
color: "outline",
class: "hidden sm:flex",
"icon-right": open ? $setup.ChevronUpIcon : $setup.ChevronDownIcon,
"data-v-inspector": "components/header/nav/Share.vue:6:7"
}, {
default: _withCtx(() => [..._cache[4] || (_cache[4] = [
_createTextVNode(
" Share ",
-1
/* CACHED */
)
])]),
_: 2
/* DYNAMIC */
}, 1032, ["icon-right"]),
_createCommentVNode(" Mobile Button "),
_createVNode(_component_FormButton, {
color: "subtle",
size: "sm",
class: "sm:hidden",
"icon-right": $setup.ShareIcon,
"hide-text": "",
"data-v-inspector": "components/header/nav/Share.vue:14:7"
}, {
default: _withCtx(() => [..._cache[5] || (_cache[5] = [
_createTextVNode(
" Share ",
-1
/* CACHED */
)
])]),
_: 1
/* STABLE */
}, 8, ["icon-right"])
]),
_: 1
/* STABLE */
}, 8, ["id"]),
_createVNode($setup["MenuItems"], {
class: "absolute z-50 flex flex-col gap-1 right-0 top-11 min-w-max w-full sm:w-32 py-1 origin-top-right bg-foundation outline outline-1 outline-primary-muted rounded-md shadow-lg overflow-hidden mt-1",
"data-v-inspector": "components/header/nav/Share.vue:25:5"
}, {
default: _withCtx(() => [
_createVNode($setup["MenuItem"], { "data-v-inspector": "components/header/nav/Share.vue:28:7" }, {
default: _withCtx(({ active }) => [
_createElementVNode(
"div",
{
class: _normalizeClass([
active ? "bg-highlight-1" : "",
"text-body-xs flex px-2 py-1 text-foreground cursor-pointer transition mx-1 rounded"
]),
onClick: $setup.handleCopyLink,
onKeypress: _cache[0] || (_cache[0] = ($event) => $setup.keyboardClick($setup.handleCopyLink)),
"data-v-inspector": "components/header/nav/Share.vue:29:9"
},
" Copy link ",
34
/* CLASS, NEED_HYDRATION */
)
]),
_: 1
/* STABLE */
}),
!$setup.isFederated ? (_openBlock(), _createBlock($setup["MenuItem"], {
key: 0,
"data-v-inspector": "components/header/nav/Share.vue:40:7"
}, {
default: _withCtx(({ active }) => [
_createElementVNode(
"div",
{
class: _normalizeClass([
active ? "bg-highlight-1" : "",
"text-body-xs flex px-2 py-1 text-foreground cursor-pointer transition mx-1 rounded"
]),
onClick: $setup.handleCopyId,
onKeypress: _cache[1] || (_cache[1] = ($event) => $setup.keyboardClick($setup.handleCopyId)),
"data-v-inspector": "components/header/nav/Share.vue:41:9"
},
" Copy ID ",
34
/* CLASS, NEED_HYDRATION */
)
]),
_: 1
/* STABLE */
})) : _createCommentVNode("v-if", true),
_createVNode($setup["MenuItem"], { "data-v-inspector": "components/header/nav/Share.vue:52:7" }, {
default: _withCtx(({ active }) => [
_createElementVNode(
"div",
{
class: _normalizeClass([
active ? "bg-highlight-1" : "",
"text-body-xs flex px-2 py-1 text-foreground cursor-pointer transition mx-1 rounded"
]),
onClick: $setup.handleEmbed,
onKeypress: _cache[2] || (_cache[2] = ($event) => $setup.keyboardClick($setup.handleEmbed)),
"data-v-inspector": "components/header/nav/Share.vue:53:9"
},
" Embed model ",
34
/* CLASS, NEED_HYDRATION */
)
]),
_: 1
/* STABLE */
})
]),
_: 1
/* STABLE */
}),
_createVNode(_component_ProjectModelPageDialogEmbed, {
open: $setup.embedDialogOpen,
"onUpdate:open": _cache[3] || (_cache[3] = ($event) => $setup.embedDialogOpen = $event),
project: $props.project,
"data-v-inspector": "components/header/nav/Share.vue:66:5"
}, null, 8, ["open", "project"])
]),
_: 1
/* STABLE */
});
}
_sfc_main.__hmrId = "74a5d97d";
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 "/_nuxt/@id/__x00__plugin-vue:export-helper";
export default /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "D:/speckle-server/packages/frontend-2/components/header/nav/Share.vue"]]);
//# sourceMappingURL=data:application/json;base64,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WSxPQUFNO0FBQUEsY0FDeEI7QUFBQSxnQkFTTTtBQUFBO0FBQUEsa0JBUkgsT0FBSztBQUFBLG9CQUFpQixTQUFNO0FBQUE7O2tCQUk1QixTQUFPO0FBQUEsa0JBQ1AsWUFBUSxzQ0FBRSxxQkFBYyxrQkFBVztBQUFBLGtCQUFHLG9CQUFpQjtBQUFBO2dCQUN6RDtBQUFBLGdCQUVEO0FBQUE7QUFBQTtBQUFBOzs7Ozs7OztNQUlKLGFBQXlJO0FBQUEsUUFBcEcsTUFBTTtBQUFBLHdGQUFlO0FBQUEsUUFBRyxTQUFTO0FBQUEsUUFBUyxvQkFBaUI7QUFBQSIsIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZXMiOlsiU2hhcmUudnVlIl0sInNvdXJjZXNDb250ZW50IjpbIjwhLS0gZXNsaW50LWRpc2FibGUgdnVlanMtYWNjZXNzaWJpbGl0eS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnMgLS0+XHJcbjx0ZW1wbGF0ZT5cclxuICA8TWVudSBhcz1cImRpdlwiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgcmVsYXRpdmVcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L1NoYXJlLnZ1ZTozOjNcIj5cclxuICAgIDxNZW51QnV0dG9uIDppZD1cIm1lbnVCdXR0b25JZFwiIHYtc2xvdD1cInsgb3BlbiB9XCIgYXM9XCJkaXZcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L1NoYXJlLnZ1ZTo0OjVcIj5cclxuICAgICAgPCEtLSBEZXNrdG9wIEJ1dHRvbiAtLT5cclxuICAgICAgPEZvcm1CdXR0b25cclxuICAgICAgICBjb2xvcj1cIm91dGxpbmVcIlxyXG4gICAgICAgIGNsYXNzPVwiaGlkZGVuIHNtOmZsZXhcIlxyXG4gICAgICAgIDppY29uLXJpZ2h0PVwib3BlbiA/IENoZXZyb25VcEljb24gOiBDaGV2cm9uRG93bkljb25cIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L1NoYXJlLnZ1ZTo2OjdcIlxyXG4gICAgICA+XHJcbiAgICAgICAgU2hhcmVcclxuICAgICAgPC9Gb3JtQnV0dG9uPlxyXG4gICAgICA8IS0tIE1vYmlsZSBCdXR0b24gLS0+XHJcbiAgICAgIDxGb3JtQnV0dG9uXHJcbiAgICAgICAgY29sb3I9XCJzdWJ0bGVcIlxyXG4gICAgICAgIHNpemU9XCJzbVwiXHJcbiAgICAgICAgY2xhc3M9XCJzbTpoaWRkZW5cIlxyXG4gICAgICAgIDppY29uLXJpZ2h0PVwiU2hhcmVJY29uXCJcclxuICAgICAgICBoaWRlLXRleHQgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL25hdi9TaGFyZS52dWU6MTQ6N1wiXHJcbiAgICAgID5cclxuICAgICAgICBTaGFyZVxyXG4gICAgICA8L0Zvcm1CdXR0b24+XHJcbiAgICA8L01lbnVCdXR0b24+XHJcblxyXG4gICAgPE1lbnVJdGVtc1xyXG4gICAgICBjbGFzcz1cImFic29sdXRlIHotNTAgZmxleCBmbGV4LWNvbCBnYXAtMSByaWdodC0wIHRvcC0xMSBtaW4tdy1tYXggdy1mdWxsIHNtOnctMzIgcHktMSBvcmlnaW4tdG9wLXJpZ2h0IGJnLWZvdW5kYXRpb24gb3V0bGluZSBvdXRsaW5lLTEgb3V0bGluZS1wcmltYXJ5LW11dGVkIHJvdW5kZWQtbWQgc2hhZG93LWxnIG92ZXJmbG93LWhpZGRlbiBtdC0xXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL25hdi9TaGFyZS52dWU6MjU6NVwiXHJcbiAgICA+XHJcbiAgICAgIDxNZW51SXRlbSB2LXNsb3Q9XCJ7IGFjdGl2ZSB9XCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL25hdi9TaGFyZS52dWU6Mjg6N1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIDpjbGFzcz1cIltcclxuICAgICAgICAgICAgYWN0aXZlID8gJ2JnLWhpZ2hsaWdodC0xJyA6ICcnLFxyXG4gICAgICAgICAgICAndGV4dC1ib2R5LXhzIGZsZXggcHgtMiBweS0xIHRleHQtZm9yZWdyb3VuZCBjdXJzb3ItcG9pbnRlciB0cmFuc2l0aW9uIG14LTEgcm91bmRlZCdcclxuICAgICAgICAgIF1cIlxyXG4gICAgICAgICAgQGNsaWNrPVwiaGFuZGxlQ29weUxpbmtcIlxyXG4gICAgICAgICAgQGtleXByZXNzPVwia2V5Ym9hcmRDbGljayhoYW5kbGVDb3B5TGluaylcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L1NoYXJlLnZ1ZToyOTo5XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBDb3B5IGxpbmtcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9NZW51SXRlbT5cclxuICAgICAgPE1lbnVJdGVtIHYtaWY9XCIhaXNGZWRlcmF0ZWRcIiB2LXNsb3Q9XCJ7IGFjdGl2ZSB9XCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL25hdi9TaGFyZS52dWU6NDA6N1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIDpjbGFzcz1cIltcclxuICAgICAgICAgICAgYWN0aXZlID8gJ2JnLWhpZ2hsaWdodC0xJyA6ICcnLFxyXG4gICAgICAgICAgICAndGV4dC1ib2R5LXhzIGZsZXggcHgtMiBweS0xIHRleHQtZm9yZWdyb3VuZCBjdXJzb3ItcG9pbnRlciB0cmFuc2l0aW9uIG14LTEgcm91bmRlZCdcclxuICAgICAgICAgIF1cIlxyXG4gICAgICAgICAgQGNsaWNrPVwiaGFuZGxlQ29weUlkXCJcclxuICAgICAgICAgIEBrZXlwcmVzcz1cImtleWJvYXJkQ2xpY2soaGFuZGxlQ29weUlkKVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2hlYWRlci9uYXYvU2hhcmUudnVlOjQxOjlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIENvcHkgSURcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9NZW51SXRlbT5cclxuICAgICAgPE1lbnVJdGVtIHYtc2xvdD1cInsgYWN0aXZlIH1cIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L1NoYXJlLnZ1ZTo1Mjo3XCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgOmNsYXNzPVwiW1xyXG4gICAgICAgICAgICBhY3RpdmUgPyAnYmctaGlnaGxpZ2h0LTEnIDogJycsXHJcbiAgICAgICAgICAgICd0ZXh0LWJvZHkteHMgZmxleCBweC0yIHB5LTEgdGV4dC1mb3JlZ3JvdW5kIGN1cnNvci1wb2ludGVyIHRyYW5zaXRpb24gbXgtMSByb3VuZGVkJ1xyXG4gICAgICAgICAgXVwiXHJcbiAgICAgICAgICBAY2xpY2s9XCJoYW5kbGVFbWJlZFwiXHJcbiAgICAgICAgICBAa2V5cHJlc3M9XCJrZXlib2FyZENsaWNrKGhhbmRsZUVtYmVkKVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2hlYWRlci9uYXYvU2hhcmUudnVlOjUzOjlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIEVtYmVkIG1vZGVsXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvTWVudUl0ZW0+XHJcbiAgICA8L01lbnVJdGVtcz5cclxuXHJcbiAgICA8UHJvamVjdE1vZGVsUGFnZURpYWxvZ0VtYmVkIHYtbW9kZWw6b3Blbj1cImVtYmVkRGlhbG9nT3BlblwiIDpwcm9qZWN0PVwicHJvamVjdFwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2hlYWRlci9uYXYvU2hhcmUudnVlOjY2OjVcIiAvPlxyXG4gIDwvTWVudT5cclxuPC90ZW1wbGF0ZT5cclxuPHNjcmlwdCBzZXR1cCBsYW5nPVwidHNcIj5cclxuaW1wb3J0IHsgTWVudSwgTWVudUJ1dHRvbiwgTWVudUl0ZW1zLCBNZW51SXRlbSB9IGZyb20gJ0BoZWFkbGVzc3VpL3Z1ZSdcclxuaW1wb3J0IHsgU2hhcmVJY29uIH0gZnJvbSAnQGhlcm9pY29ucy92dWUvMjQvb3V0bGluZSdcclxuaW1wb3J0IHsgQ2hldnJvbkRvd25JY29uLCBDaGV2cm9uVXBJY29uIH0gZnJvbSAnQGhlcm9pY29ucy92dWUvMjAvc29saWQnXHJcbmltcG9ydCB7IFNwZWNrbGVWaWV3ZXIgfSBmcm9tICdAc3BlY2tsZS9zaGFyZWQnXHJcbmltcG9ydCB7IGtleWJvYXJkQ2xpY2sgfSBmcm9tICdAc3BlY2tsZS91aS1jb21wb25lbnRzJ1xyXG5pbXBvcnQgeyBncmFwaHFsIH0gZnJvbSAnfi9saWIvY29tbW9uL2dlbmVyYXRlZC9ncWwvZ3FsJ1xyXG5pbXBvcnQgdHlwZSB7IEhlYWRlck5hdlNoYXJlX1Byb2plY3RGcmFnbWVudCB9IGZyb20gJ35+L2xpYi9jb21tb24vZ2VuZXJhdGVkL2dxbC9ncmFwaHFsJ1xyXG5cclxuZ3JhcGhxbChgXHJcbiAgZnJhZ21lbnQgSGVhZGVyTmF2U2hhcmVfUHJvamVjdCBvbiBQcm9qZWN0IHtcclxuICAgIGlkXHJcbiAgICB2aXNpYmlsaXR5XHJcbiAgICAuLi5Qcm9qZWN0c01vZGVsUGFnZUVtYmVkX1Byb2plY3RcclxuICB9XHJcbmApXHJcblxyXG5jb25zdCBwcm9wcyA9IGRlZmluZVByb3BzPHtcclxuICBwcm9qZWN0OiBIZWFkZXJOYXZTaGFyZV9Qcm9qZWN0RnJhZ21lbnRcclxuICByZXNvdXJjZUlkU3RyaW5nOiBzdHJpbmdcclxufT4oKVxyXG5cclxuY29uc3QgeyBjb3B5IH0gPSB1c2VDbGlwYm9hcmQoKVxyXG5jb25zdCBtZW51QnV0dG9uSWQgPSB1c2VJZCgpXHJcblxyXG5jb25zdCBlbWJlZERpYWxvZ09wZW4gPSByZWYoZmFsc2UpXHJcblxyXG5jb25zdCBwYXJzZWRSZXNvdXJjZUlkcyA9IGNvbXB1dGVkKCgpID0+XHJcbiAgU3BlY2tsZVZpZXdlci5WaWV3ZXJSb3V0ZS5wYXJzZVVybFBhcmFtZXRlcnMocHJvcHMucmVzb3VyY2VJZFN0cmluZylcclxuKVxyXG5cclxuY29uc3QgaXNGZWRlcmF0ZWQgPSBjb21wdXRlZCgoKSA9PiBwYXJzZWRSZXNvdXJjZUlkcy52YWx1ZS5sZW5ndGggPiAxKVxyXG5cclxuY29uc3QgaGFuZGxlQ29weUlkID0gYXN5bmMgKCkgPT4ge1xyXG4gIGF3YWl0IGNvcHkocHJvcHMucmVzb3VyY2VJZFN0cmluZywgeyBzdWNjZXNzTWVzc2FnZTogJ0lEIGNvcGllZCB0byBjbGlwYm9hcmQnIH0pXHJcbn1cclxuXHJcbmNvbnN0IGhhbmRsZUNvcHlMaW5rID0gYXN5bmMgKCkgPT4ge1xyXG4gIGlmIChpbXBvcnQubWV0YS5zZXJ2ZXIpIHJldHVyblxyXG4gIGF3YWl0IGNvcHkod2luZG93LmxvY2F0aW9uLmhyZWYsIHtcclxuICAgIHN1Y2Nlc3NNZXNzYWdlOiAnQ29waWVkIGxpbmsgdG8gY2xpcGJvYXJkJ1xyXG4gIH0pXHJcbn1cclxuXHJcbmNvbnN0IGhhbmRsZUVtYmVkID0gKCkgPT4ge1xyXG4gIGVtYmVkRGlhbG9nT3Blbi52YWx1ZSA9IHRydWVcclxufVxyXG48L3NjcmlwdD5cclxuIl0sImZpbGUiOiJEOi9zcGVja2xlLXNlcnZlci9wYWNrYWdlcy9mcm9udGVuZC0yL2NvbXBvbmVudHMvaGVhZGVyL25hdi9TaGFyZS52dWUifQ==