const __vite_ssr_import_0__ = await __vite_ssr_import__("claude-code/testing", {"importedNames":["expect","mock","test"]}); const __vite_ssr_import_1__ = await __vite_ssr_import__("/hooks/statusline.ts", {"importedNames":["HIDE_ORDER","bar","layout","remainColor","usedColor"]}); const __vite_ssr_import_2__ = await __vite_ssr_import__("/hooks/characters.ts", {"importedNames":["CHARACTERS","packToCharacter","personaSection","registerCharacters","themeColor"]}); const seg = (id, text) => ({ id, parts: [{ text }] }); (0,__vite_ssr_import_0__.test)("啟動角色後 persona 注入系統提示", async ($, on) => { __vite_ssr_import_0__.mock.store(on); on("command.register", () => ({ value: { name: "x" } })); on("session.start", () => ({ cwd: "/tmp" })); on("command.run", () => ({ text: "" })); on("prompt.compose", () => ({ sections: [] })); await $.session.start({ source: "startup", cwd: "/tmp" }); await $.command.run({ command: "sao-asuna", args: "" }); const res = await $.prompt.compose({ model: "m", promptModel: "m", surfaces: [], tools: [], outputStyle: null, traits: [] }); (0,__vite_ssr_import_0__.expect)(res.sections.some((s) => s.id === "jsc-anima:persona" && s.text.includes("亞絲娜"))).toBe(true); }); (0,__vite_ssr_import_0__.test)("切換角色與離開", async ($, on) => { __vite_ssr_import_0__.mock.store(on); on("command.register", () => ({ value: { name: "x" } })); on("session.start", () => ({ cwd: "/tmp" })); on("command.run", () => ({ text: "" })); on("prompt.compose", () => ({ sections: [] })); await $.session.start({ source: "startup", cwd: "/tmp" }); await $.command.run({ command: "sao-asuna", args: "" }); await $.command.run({ command: "sao-suguha", args: "" }); const compose = () => $.prompt.compose({ model: "m", promptModel: "m", surfaces: [], tools: [], outputStyle: null, traits: [] }); (0,__vite_ssr_import_0__.expect)((await compose()).sections.find((s) => s.id === "jsc-anima:persona")?.text).toContain("直葉"); await $.command.run({ command: "anima-off", args: "" }); (0,__vite_ssr_import_0__.expect)((await compose()).sections.some((s) => s.id === "jsc-anima:persona")).toBe(false); }); (0,__vite_ssr_import_0__.test)("狀態列:窄時依序整欄隱藏,不截斷", () => { const all = [ seg("character", "AB"), seg("model", "CD"), seg("dir", "EF"), seg("branch", "GH"), seg("5h", "IJ"), seg("7d", "KL"), seg("ctx", "MN"), seg("sys", "OP") ]; (0,__vite_ssr_import_0__.expect)((0,__vite_ssr_import_1__.layout)(all, 999).length).toBe(8); (0,__vite_ssr_import_0__.expect)((0,__vite_ssr_import_1__.layout)(all, 26).map((s) => s.id)).not.toContain("sys"); const narrow = (0,__vite_ssr_import_1__.layout)(all, 14).map((s) => s.id); (0,__vite_ssr_import_0__.expect)(narrow).toEqual([ "character", "model", "5h", "ctx" ]); (0,__vite_ssr_import_0__.expect)([...__vite_ssr_import_1__.HIDE_ORDER]).toEqual([ "sys", "7d", "dir", "branch" ]); }); (0,__vite_ssr_import_0__.test)("量表固定長度,剩餘越少越紅", () => { (0,__vite_ssr_import_0__.expect)((0,__vite_ssr_import_1__.bar)(0).length).toBe((0,__vite_ssr_import_1__.bar)(100).length); (0,__vite_ssr_import_0__.expect)((0,__vite_ssr_import_1__.remainColor)(10, 60, 85)).toBe("red"); (0,__vite_ssr_import_0__.expect)((0,__vite_ssr_import_1__.remainColor)(90, 60, 85)).toBe("green"); (0,__vite_ssr_import_0__.expect)((0,__vite_ssr_import_1__.usedColor)(70, 60, 85)).toBe("yellow"); }); (0,__vite_ssr_import_0__.test)("persona 含動漫層與口頭禪,主題色可用於狀態列", () => { const c = __vite_ssr_import_2__.CHARACTERS[0]; const text = (0,__vite_ssr_import_2__.personaSection)(c, c.axes); (0,__vite_ssr_import_0__.expect)(text).toContain("動漫刻畫"); (0,__vite_ssr_import_0__.expect)(text).toContain("口頭禪"); (0,__vite_ssr_import_0__.expect)((0,__vite_ssr_import_2__.themeColor)(c)).toBe("red"); }); (0,__vite_ssr_import_0__.test)("角色包轉成可啟動角色:代號、年齡與原作戀人", () => { const pack = { slug: "rin", name: "凜", work: "demo", persona: { selfRef: "我", address: "你", tone: "冷靜", catchphrase: "嗯", values: "誠實", taboos: "不說謊" }, axes: __vite_ssr_import_2__.CHARACTERS[0].axes, anime: { moe: "m", speech: "s", emotions: "e", kaomoji: "k", themeColor: "blue" }, timeline: [{ chapter: "第2章", age: 19, relationships: [{ with: "蓮", kind: "romantic" }] }] }; const c = (0,__vite_ssr_import_2__.packToCharacter)(pack, "示範"); (0,__vite_ssr_import_0__.expect)(c.slug).toBe("demo-rin"); (0,__vite_ssr_import_0__.expect)(c.timeline).toEqual([{ chapter: 2, age: 19, romance: "蓮" }]); (0,__vite_ssr_import_0__.expect)((0,__vite_ssr_import_2__.themeColor)(c)).toBe("cyan"); (0,__vite_ssr_import_2__.registerCharacters)([c, c]); (0,__vite_ssr_import_0__.expect)(__vite_ssr_import_2__.CHARACTERS.filter((x) => x.slug === "demo-rin").length).toBe(1); }); (0,__vite_ssr_import_0__.test)("角色包:最新章節狀態、作品用語與語言設定進入 persona", () => { const pack = { slug: "mio", name: "澪", work: "demo2", persona: { selfRef: "我", address: "你", tone: "冷靜", catchphrase: "嗯", values: "誠實", taboos: "不說謊" }, axes: __vite_ssr_import_2__.CHARACTERS[0].axes, anime: { moe: "m", speech: "s", emotions: "e", kaomoji: "k", themeColor: "red" }, language: "繁體中文,不使用口癖", timeline: [{ chapter: "第1章", mood: "緊張", dialogueStyle: "客氣", monologue: "想變強", place: "學院", age: 16, relationships: [] }, { chapter: "第2章", mood: "安心", dialogueStyle: "放鬆", monologue: "想守護", place: "街上", age: 16, relationships: [] }] }; const c = (0,__vite_ssr_import_2__.packToCharacter)(pack, "示範二", [{ term: "魔核", definition: "力量來源" }]); const text = (0,__vite_ssr_import_2__.personaSection)(c, c.axes); (0,__vite_ssr_import_0__.expect)(text).toContain("最新章節(第2章)"); (0,__vite_ssr_import_0__.expect)(text).toContain("安心"); (0,__vite_ssr_import_0__.expect)(text).not.toContain("緊張"); (0,__vite_ssr_import_0__.expect)(text).toContain("魔核=力量來源"); (0,__vite_ssr_import_0__.expect)(text).toContain("不使用口癖"); }); //# sourceMappingSource=vite-generated //# sourceMappingURL=data:application/json;base64,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Q0FDQSxNQUFNLElBQUksMENBQWdCLE1BQU0sT0FBTyxDQUFDO0VBQUUsTUFBTTtFQUFNLFlBQVk7Q0FBTyxDQUFDLENBQUM7Q0FDM0UsTUFBTSxPQUFPLHlDQUFlLEdBQUcsRUFBRSxJQUFJO0NBQ3JDLGlDQUFPLElBQUksQ0FBQyxDQUFDLFVBQVUsV0FBVztDQUNsQyxpQ0FBTyxJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUk7Q0FDM0IsaUNBQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxVQUFVLElBQUk7Q0FDL0IsaUNBQU8sSUFBSSxDQUFDLENBQUMsVUFBVSxTQUFTO0NBQ2hDLGlDQUFPLElBQUksQ0FBQyxDQUFDLFVBQVUsT0FBTztBQUNoQyxDQUFDIiwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlcyI6WyJhbmltYS50ZXN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4cGVjdCwgbW9jaywgdGVzdCB9IGZyb20gJ2NsYXVkZS1jb2RlL3Rlc3RpbmcnXG5cbmltcG9ydCB7IEhJREVfT1JERVIsIGJhciwgbGF5b3V0LCByZW1haW5Db2xvciwgdXNlZENvbG9yIH0gZnJvbSAnLi9zdGF0dXNsaW5lJ1xuaW1wb3J0IHR5cGUgeyBTZWdtZW50IH0gZnJvbSAnLi9zdGF0dXNsaW5lJ1xuaW1wb3J0IHsgQ0hBUkFDVEVSUywgcGFja1RvQ2hhcmFjdGVyLCBwZXJzb25hU2VjdGlvbiwgcmVnaXN0ZXJDaGFyYWN0ZXJzLCB0aGVtZUNvbG9yIH0gZnJvbSAnLi9jaGFyYWN0ZXJzJ1xuaW1wb3J0IHR5cGUgeyBQYWNrTGlrZSB9IGZyb20gJy4vY2hhcmFjdGVycydcblxuY29uc3Qgc2VnID0gKGlkOiBzdHJpbmcsIHRleHQ6IHN0cmluZyk6IFNlZ21lbnQgPT4gKHsgaWQsIHBhcnRzOiBbeyB0ZXh0IH1dIH0pXG5cbnRlc3QoJ+WVn+WLleinkuiJsuW+jCBwZXJzb25hIOazqOWFpeezu+e1seaPkOekuicsIGFzeW5jICgkLCBvbikgPT4ge1xuICBtb2NrLnN0b3JlKG9uKVxuICBvbignY29tbWFuZC5yZWdpc3RlcicsICgpID0+ICh7IHZhbHVlOiB7IG5hbWU6ICd4JyB9IH0pIGFzIG5ldmVyKVxuICBvbignc2Vzc2lvbi5zdGFydCcsICgpID0+ICh7IGN3ZDogJy90bXAnIH0pIGFzIG5ldmVyKVxuICBvbignY29tbWFuZC5ydW4nLCAoKSA9PiAoeyB0ZXh0OiAnJyB9KSlcbiAgb24oJ3Byb21wdC5jb21wb3NlJywgKCkgPT4gKHsgc2VjdGlvbnM6IFtdIH0pKVxuICBhd2FpdCAkLnNlc3Npb24uc3RhcnQoeyBzb3VyY2U6ICdzdGFydHVwJywgY3dkOiAnL3RtcCcgfSBhcyBuZXZlcilcbiAgYXdhaXQgJC5jb21tYW5kLnJ1bih7IGNvbW1hbmQ6ICdzYW8tYXN1bmEnLCBhcmdzOiAnJyB9IGFzIG5ldmVyKVxuICBjb25zdCByZXMgPSBhd2FpdCAkLnByb21wdC5jb21wb3NlKHsgbW9kZWw6ICdtJywgcHJvbXB0TW9kZWw6ICdtJywgc3VyZmFjZXM6IFtdLCB0b29sczogW10sIG91dHB1dFN0eWxlOiBudWxsLCB0cmFpdHM6IFtdIH0gYXMgbmV2ZXIpXG4gIGV4cGVjdChyZXMuc2VjdGlvbnMuc29tZShzID0+IHMuaWQgPT09ICdqc2MtYW5pbWE6cGVyc29uYScgJiYgcy50ZXh0LmluY2x1ZGVzKCfkup7ntbLlqJwnKSkpLnRvQmUodHJ1ZSlcbn0pXG5cbnRlc3QoJ+WIh+aPm+inkuiJsuiIh+mboumWiycsIGFzeW5jICgkLCBvbikgPT4ge1xuICBtb2NrLnN0b3JlKG9uKVxuICBvbignY29tbWFuZC5yZWdpc3RlcicsICgpID0+ICh7IHZhbHVlOiB7IG5hbWU6ICd4JyB9IH0pIGFzIG5ldmVyKVxuICBvbignc2Vzc2lvbi5zdGFydCcsICgpID0+ICh7IGN3ZDogJy90bXAnIH0pIGFzIG5ldmVyKVxuICBvbignY29tbWFuZC5ydW4nLCAoKSA9PiAoeyB0ZXh0OiAnJyB9KSlcbiAgb24oJ3Byb21wdC5jb21wb3NlJywgKCkgPT4gKHsgc2VjdGlvbnM6IFtdIH0pKVxuICBhd2FpdCAkLnNlc3Npb24uc3RhcnQoeyBzb3VyY2U6ICdzdGFydHVwJywgY3dkOiAnL3RtcCcgfSBhcyBuZXZlcilcbiAgYXdhaXQgJC5jb21tYW5kLnJ1bih7IGNvbW1hbmQ6ICdzYW8tYXN1bmEnLCBhcmdzOiAnJyB9IGFzIG5ldmVyKVxuICBhd2FpdCAkLmNvbW1hbmQucnVuKHsgY29tbWFuZDogJ3Nhby1zdWd1aGEnLCBhcmdzOiAnJyB9IGFzIG5ldmVyKVxuICBjb25zdCBjb21wb3NlID0gKCkgPT4gJC5wcm9tcHQuY29tcG9zZSh7IG1vZGVsOiAnbScsIHByb21wdE1vZGVsOiAnbScsIHN1cmZhY2VzOiBbXSwgdG9vbHM6IFtdLCBvdXRwdXRTdHlsZTogbnVsbCwgdHJhaXRzOiBbXSB9IGFzIG5ldmVyKVxuICBleHBlY3QoKGF3YWl0IGNvbXBvc2UoKSkuc2VjdGlvbnMuZmluZChzID0+IHMuaWQgPT09ICdqc2MtYW5pbWE6cGVyc29uYScpPy50ZXh0KS50b0NvbnRhaW4oJ+ebtOiRiScpXG4gIGF3YWl0ICQuY29tbWFuZC5ydW4oeyBjb21tYW5kOiAnYW5pbWEtb2ZmJywgYXJnczogJycgfSBhcyBuZXZlcilcbiAgZXhwZWN0KChhd2FpdCBjb21wb3NlKCkpLnNlY3Rpb25zLnNvbWUocyA9PiBzLmlkID09PSAnanNjLWFuaW1hOnBlcnNvbmEnKSkudG9CZShmYWxzZSlcbn0pXG5cbnRlc3QoJ+eLgOaFi+WIl++8mueqhOaZguS+neW6j+aVtOashOmaseiXj++8jOS4jeaIquaWtycsICgpID0+IHtcbiAgY29uc3QgYWxsID0gW3NlZygnY2hhcmFjdGVyJywgJ0FCJyksIHNlZygnbW9kZWwnLCAnQ0QnKSwgc2VnKCdkaXInLCAnRUYnKSwgc2VnKCdicmFuY2gnLCAnR0gnKSwgc2VnKCc1aCcsICdJSicpLCBzZWcoJzdkJywgJ0tMJyksIHNlZygnY3R4JywgJ01OJyksIHNlZygnc3lzJywgJ09QJyldXG4gIGV4cGVjdChsYXlvdXQoYWxsLCA5OTkpLmxlbmd0aCkudG9CZSg4KVxuICBleHBlY3QobGF5b3V0KGFsbCwgMjYpLm1hcChzID0+IHMuaWQpKS5ub3QudG9Db250YWluKCdzeXMnKVxuICBjb25zdCBuYXJyb3cgPSBsYXlvdXQoYWxsLCAxNCkubWFwKHMgPT4gcy5pZClcbiAgZXhwZWN0KG5hcnJvdykudG9FcXVhbChbJ2NoYXJhY3RlcicsICdtb2RlbCcsICc1aCcsICdjdHgnXSlcbiAgZXhwZWN0KFsuLi5ISURFX09SREVSXSkudG9FcXVhbChbJ3N5cycsICc3ZCcsICdkaXInLCAnYnJhbmNoJ10pXG59KVxuXG50ZXN0KCfph4/ooajlm7rlrprplbfluqbvvIzlianppJjotorlsJHotorntIUnLCAoKSA9PiB7XG4gIGV4cGVjdChiYXIoMCkubGVuZ3RoKS50b0JlKGJhcigxMDApLmxlbmd0aClcbiAgZXhwZWN0KHJlbWFpbkNvbG9yKDEwLCA2MCwgODUpKS50b0JlKCdyZWQnKVxuICBleHBlY3QocmVtYWluQ29sb3IoOTAsIDYwLCA4NSkpLnRvQmUoJ2dyZWVuJylcbiAgZXhwZWN0KHVzZWRDb2xvcig3MCwgNjAsIDg1KSkudG9CZSgneWVsbG93Jylcbn0pXG5cbnRlc3QoJ3BlcnNvbmEg5ZCr5YuV5ryr5bGk6IiH5Y+j6aCt56aq77yM5Li76aGM6Imy5Y+v55So5pa854uA5oWL5YiXJywgKCkgPT4ge1xuICBjb25zdCBjID0gQ0hBUkFDVEVSU1swXSFcbiAgY29uc3QgdGV4dCA9IHBlcnNvbmFTZWN0aW9uKGMsIGMuYXhlcylcbiAgZXhwZWN0KHRleHQpLnRvQ29udGFpbign5YuV5ryr5Yi755WrJylcbiAgZXhwZWN0KHRleHQpLnRvQ29udGFpbign5Y+j6aCt56aqJylcbiAgZXhwZWN0KHRoZW1lQ29sb3IoYykpLnRvQmUoJ3JlZCcpXG59KVxuXG50ZXN0KCfop5LoibLljIXovYnmiJDlj6/llZ/li5Xop5LoibLvvJrku6PomZ/jgIHlubTpvaHoiIfljp/kvZzmiIDkuronLCAoKSA9PiB7XG4gIGNvbnN0IHBhY2s6IFBhY2tMaWtlID0ge1xuICAgIHNsdWc6ICdyaW4nLCBuYW1lOiAn5YecJywgd29yazogJ2RlbW8nLFxuICAgIHBlcnNvbmE6IHsgc2VsZlJlZjogJ+aIkScsIGFkZHJlc3M6ICfkvaAnLCB0b25lOiAn5Ya36Z2cJywgY2F0Y2hwaHJhc2U6ICfll68nLCB2YWx1ZXM6ICfoqqDlr6YnLCB0YWJvb3M6ICfkuI3oqqrorIonIH0sXG4gICAgYXhlczogQ0hBUkFDVEVSU1swXSEuYXhlcyxcbiAgICBhbmltZTogeyBtb2U6ICdtJywgc3BlZWNoOiAncycsIGVtb3Rpb25zOiAnZScsIGthb21vamk6ICdrJywgdGhlbWVDb2xvcjogJ2JsdWUnIH0sXG4gICAgdGltZWxpbmU6IFt7IGNoYXB0ZXI6ICfnrKwy56ugJywgYWdlOiAxOSwgcmVsYXRpb25zaGlwczogW3sgd2l0aDogJ+iTricsIGtpbmQ6ICdyb21hbnRpYycgfV0gfV0sXG4gIH1cbiAgY29uc3QgYyA9IHBhY2tUb0NoYXJhY3RlcihwYWNrLCAn56S656+EJylcbiAgZXhwZWN0KGMuc2x1ZykudG9CZSgnZGVtby1yaW4nKVxuICBleHBlY3QoYy50aW1lbGluZSkudG9FcXVhbChbeyBjaGFwdGVyOiAyLCBhZ2U6IDE5LCByb21hbmNlOiAn6JOuJyB9XSlcbiAgZXhwZWN0KHRoZW1lQ29sb3IoYykpLnRvQmUoJ2N5YW4nKVxuICByZWdpc3RlckNoYXJhY3RlcnMoW2MsIGNdKVxuICBleHBlY3QoQ0hBUkFDVEVSUy5maWx0ZXIoeCA9PiB4LnNsdWcgPT09ICdkZW1vLXJpbicpLmxlbmd0aCkudG9CZSgxKVxufSlcblxudGVzdCgn6KeS6Imy5YyF77ya5pyA5paw56ug56+A54uA5oWL44CB5L2c5ZOB55So6Kqe6IiH6Kqe6KiA6Kit5a6a6YCy5YWlIHBlcnNvbmEnLCAoKSA9PiB7XG4gIGNvbnN0IHBhY2s6IFBhY2tMaWtlID0ge1xuICAgIHNsdWc6ICdtaW8nLCBuYW1lOiAn5r6qJywgd29yazogJ2RlbW8yJyxcbiAgICBwZXJzb25hOiB7IHNlbGZSZWY6ICfmiJEnLCBhZGRyZXNzOiAn5L2gJywgdG9uZTogJ+WGt+mdnCcsIGNhdGNocGhyYXNlOiAn5ZevJywgdmFsdWVzOiAn6Kqg5a+mJywgdGFib29zOiAn5LiN6Kqq6KyKJyB9LFxuICAgIGF4ZXM6IENIQVJBQ1RFUlNbMF0hLmF4ZXMsXG4gICAgYW5pbWU6IHsgbW9lOiAnbScsIHNwZWVjaDogJ3MnLCBlbW90aW9uczogJ2UnLCBrYW9tb2ppOiAnaycsIHRoZW1lQ29sb3I6ICdyZWQnIH0sXG4gICAgbGFuZ3VhZ2U6ICfnuYHpq5TkuK3mlofvvIzkuI3kvb/nlKjlj6PnmZYnLFxuICAgIHRpbWVsaW5lOiBbXG4gICAgICB7IGNoYXB0ZXI6ICfnrKwx56ugJywgbW9vZDogJ+e3iuW8tScsIGRpYWxvZ3VlU3R5bGU6ICflrqLmsKMnLCBtb25vbG9ndWU6ICfmg7PororlvLcnLCBwbGFjZTogJ+WtuOmZoicsIGFnZTogMTYsIHJlbGF0aW9uc2hpcHM6IFtdIH0sXG4gICAgICB7IGNoYXB0ZXI6ICfnrKwy56ugJywgbW9vZDogJ+WuieW/gycsIGRpYWxvZ3VlU3R5bGU6ICfmlL7prIYnLCBtb25vbG9ndWU6ICfmg7PlrojorbcnLCBwbGFjZTogJ+ihl+S4iicsIGFnZTogMTYsIHJlbGF0aW9uc2hpcHM6IFtdIH0sXG4gICAgXSxcbiAgfVxuICBjb25zdCBjID0gcGFja1RvQ2hhcmFjdGVyKHBhY2ssICfnpLrnr4TkuownLCBbeyB0ZXJtOiAn6a2U5qC4JywgZGVmaW5pdGlvbjogJ+WKm+mHj+S+hua6kCcgfV0pXG4gIGNvbnN0IHRleHQgPSBwZXJzb25hU2VjdGlvbihjLCBjLmF4ZXMpXG4gIGV4cGVjdCh0ZXh0KS50b0NvbnRhaW4oJ+acgOaWsOeroOevgO+8iOesrDLnq6DvvIknKVxuICBleHBlY3QodGV4dCkudG9Db250YWluKCflronlv4MnKVxuICBleHBlY3QodGV4dCkubm90LnRvQ29udGFpbign57eK5by1JylcbiAgZXhwZWN0KHRleHQpLnRvQ29udGFpbign6a2U5qC477yd5Yqb6YeP5L6G5rqQJylcbiAgZXhwZWN0KHRleHQpLnRvQ29udGFpbign5LiN5L2/55So5Y+j55mWJylcbn0pXG4iXSwiZmlsZSI6Ii9ob29rcy9hbmltYS50ZXN0LnRzIn0= //# vitestCache=W3siZmlsZSI6IjEiLCJpZCI6IjEiLCJ1cmwiOiIyIiwiaW1wb3J0cyI6IjMiLCJtYXBwaW5ncyI6ZmFsc2UsImRlcHMiOiI0IiwiZHluYW1pY0RlcHMiOiI1Iiwic3RhdGljTW9ja3MiOm51bGx9LCIvcm9vdC9qc2MtYW5pbWEvaG9va3MvYW5pbWEudGVzdC50cyIsIi9ob29rcy9hbmltYS50ZXN0LnRzIix7InVybHMiOiI2IiwiaWRzIjoiNyJ9LFsiOCIsIjkiLCIxMCJdLFtdLFsiOCIsIjkiLCIxMCJdLHt9LCJjbGF1ZGUtY29kZS90ZXN0aW5nIiwiL2hvb2tzL3N0YXR1c2xpbmUudHMiLCIvaG9va3MvY2hhcmFjdGVycy50cyJd