@projectcor/maia-components 2.11.92-0 → 2.11.92-1
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/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +7 -3
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +4 -2
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +29 -2
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +33 -24
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +23 -4
- package/lib/components/atoms/icons/SkillIcon.js +30 -0
- package/lib/components/atoms/icons/SkillsNavIcon.js +27 -0
- package/lib/components/atoms/icons/index.js +3 -1
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +14 -1
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +34 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +4 -2
- package/lib/components/molecules/ChatAIModal/constants.js +6 -2
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +357 -0
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +145 -0
- package/lib/components/molecules/ChatAIMySkills/index.js +2 -0
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +3 -1
- package/lib/components/molecules/Sidebar/Sidebar.js +25 -4
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +160 -0
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +34 -0
- package/lib/components/organisms/AbmSkillGenerateModal/index.js +2 -0
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +446 -0
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +98 -0
- package/lib/components/organisms/AbmSkillModal/index.js +2 -0
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +8 -1
- package/lib/constants/config.js +4 -1
- package/lib/constants/permissions/index.js +2 -2
- package/lib/constants/permissions/utils.js +4 -1
- package/lib/hooks/useContextMentions.js +47 -9
- package/lib/hooks/useEntitySearch.js +277 -91
- package/lib/hooks/useMentionAllowedTypes.js +26 -8
- package/lib/hooks/useMentionPopover.js +42 -13
- package/lib/lang/br/index.js +54 -3
- package/lib/lang/en/index.js +54 -3
- package/lib/lang/es/index.js +54 -3
- package/lib/lang/fr/index.js +54 -3
- package/lib/services/maia/Skills/createSkill.js +39 -0
- package/lib/services/maia/Skills/deleteSkill.js +38 -0
- package/lib/services/maia/Skills/generateSkill.js +41 -0
- package/lib/services/maia/Skills/getSkills.js +90 -0
- package/lib/services/maia/Skills/updateSkill.js +39 -0
- package/lib/types/contextMention.js +1 -1
- package/lib/types/skill.js +2 -0
- package/lib/utils/contextMentionIcons.js +29 -1
- package/lib/utils/contextMentionTriggers.js +3 -1
- package/lib/utils/renderContextMentions.js +9 -4
- package/package.json +1 -1
|
@@ -46,6 +46,10 @@ export var MENTION_CHIP_COLORS = {
|
|
|
46
46
|
mcp: {
|
|
47
47
|
bg: NON_TASK_CHIP_BG,
|
|
48
48
|
fg: NON_TASK_CHIP_FG
|
|
49
|
+
},
|
|
50
|
+
skill: {
|
|
51
|
+
bg: 'transparent',
|
|
52
|
+
fg: NON_TASK_CHIP_FG
|
|
49
53
|
}
|
|
50
54
|
};
|
|
51
55
|
|
|
@@ -102,7 +106,7 @@ var chipSurfaceCss = function chipSurfaceCss(type) {
|
|
|
102
106
|
/**
|
|
103
107
|
* Hover y superficie para chips montados por `buildChipElement` (estilos inline en el host).
|
|
104
108
|
*/
|
|
105
|
-
export var ContextMentionChipGlobalStyles = createGlobalStyle([".", ":not([data-mention-type='task']):hover{background:", " !important;}.", "[data-mention-type='project']:hover{background:", " !important;}[contenteditable='true'] .", "[data-mention-surface='editor']{display:inline !important;max-width:100% !important;white-space:normal !important;overflow-wrap:break-word !important;word-break:break-word !important;}[contenteditable='true'] .", "[data-mention-type='task'][data-mention-surface='editor']{display:inline !important;}[contenteditable='true'] .", "[data-mention-type='task'][data-mention-surface='editor']{text-decoration:none !important;color:#202020 !important;font-weight:600 !important;position:relative !important;padding:2px 0 !important;padding-left:22px !important;background:transparent !important;font-size:14px !important;line-height:20px !important;border-radius:0 !important;cursor:pointer !important;}[contenteditable='true'] .", "[data-mention-type='project'][data-mention-surface='editor']{cursor:pointer !important;}[contenteditable='true'] .", "[data-mention-type='task'][data-mention-surface='editor']::before{content:'';position:absolute;left:2px;top:1px;top:calc((1lh - 16px) / 2 - 1px);width:18px;height:18px;background-image:", ";background-size:contain;background-repeat:no-repeat;background-position:center;}[contenteditable='true'] .", "[data-mention-type='task'][data-mention-surface='editor']:hover{text-decoration-line:underline !important;text-decoration-color:#b3b3b3 !important;text-decoration-thickness:1px !important;text-underline-offset:2px !important;background:", " !important;border-radius:4px !important;}"], CONTEXT_MENTION_CHIP_CLASS, MENTION_CHIP_NON_TASK_HOVER_BG, CONTEXT_MENTION_CHIP_CLASS, VIOLET_IA_COLORS[100], CONTEXT_MENTION_CHIP_CLASS, CONTEXT_MENTION_CHIP_CLASS, CONTEXT_MENTION_CHIP_CLASS, CONTEXT_MENTION_CHIP_CLASS, CONTEXT_MENTION_CHIP_CLASS, TASK_LINK_ICON_CSS_URL, CONTEXT_MENTION_CHIP_CLASS, MENTION_CHIP_TASK_EDITOR_HOVER_BG);
|
|
109
|
+
export var ContextMentionChipGlobalStyles = createGlobalStyle([".", ":not([data-mention-type='task']):not([data-mention-type='skill']):hover{background:", " !important;}.", "[data-mention-type='project']:hover{background:", " !important;}[contenteditable='true'] .", "[data-mention-surface='editor']{display:inline !important;max-width:100% !important;white-space:normal !important;overflow-wrap:break-word !important;word-break:break-word !important;}[contenteditable='true'] .", "[data-mention-type='task'][data-mention-surface='editor']{display:inline !important;}[contenteditable='true'] .", "[data-mention-type='task'][data-mention-surface='editor']{text-decoration:none !important;color:#202020 !important;font-weight:600 !important;position:relative !important;padding:2px 0 !important;padding-left:22px !important;background:transparent !important;font-size:14px !important;line-height:20px !important;border-radius:0 !important;cursor:pointer !important;}[contenteditable='true'] .", "[data-mention-type='project'][data-mention-surface='editor']{cursor:pointer !important;}[contenteditable='true'] .", "[data-mention-type='task'][data-mention-surface='editor']::before{content:'';position:absolute;left:2px;top:1px;top:calc((1lh - 16px) / 2 - 1px);width:18px;height:18px;background-image:", ";background-size:contain;background-repeat:no-repeat;background-position:center;}[contenteditable='true'] .", "[data-mention-type='task'][data-mention-surface='editor']:hover{text-decoration-line:underline !important;text-decoration-color:#b3b3b3 !important;text-decoration-thickness:1px !important;text-underline-offset:2px !important;background:", " !important;border-radius:4px !important;}"], CONTEXT_MENTION_CHIP_CLASS, MENTION_CHIP_NON_TASK_HOVER_BG, CONTEXT_MENTION_CHIP_CLASS, VIOLET_IA_COLORS[100], CONTEXT_MENTION_CHIP_CLASS, CONTEXT_MENTION_CHIP_CLASS, CONTEXT_MENTION_CHIP_CLASS, CONTEXT_MENTION_CHIP_CLASS, CONTEXT_MENTION_CHIP_CLASS, TASK_LINK_ICON_CSS_URL, CONTEXT_MENTION_CHIP_CLASS, MENTION_CHIP_TASK_EDITOR_HOVER_BG);
|
|
106
110
|
|
|
107
111
|
/**
|
|
108
112
|
* Aplica los estilos del chip a un nodo DOM existente.
|
|
@@ -116,7 +120,7 @@ export var applyMentionChipStyles = function applyMentionChipStyles(el, type) {
|
|
|
116
120
|
}));
|
|
117
121
|
};
|
|
118
122
|
var chipHoverCss = function chipHoverCss(type) {
|
|
119
|
-
if (type === 'task') return css([""]);
|
|
123
|
+
if (type === 'task' || type === 'skill') return css([""]);
|
|
120
124
|
if (type === 'project') {
|
|
121
125
|
return css(["background:", ";"], VIOLET_IA_COLORS[100]);
|
|
122
126
|
}
|
|
@@ -181,4 +185,4 @@ export var SCMCChipPlainLabel = styled.span.withConfig({
|
|
|
181
185
|
displayName: "ContextMentionChipstyles__SCMCChipPlainLabel",
|
|
182
186
|
componentId: "sc-11ynxow-4"
|
|
183
187
|
})(["display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--cor-typography-font-family,'Work Sans');font-size:14px;font-weight:500;line-height:20px;color:", ";"], colors.text.primary);
|
|
184
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJjcmVhdGVHbG9iYWxTdHlsZSIsImNvbG9ycyIsIkJMVUVfSUFfQ09MT1JTIiwiVklPTEVUX0lBX0NPTE9SUyIsIkNPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTIiwiVEFTS19MSU5LX0lDT05fQ1NTX1VSTCIsIlRBU0tfQ0hJUF9CRyIsIlRBU0tfQ0hJUF9GRyIsInRleHQiLCJwcmltYXJ5IiwiTk9OX1RBU0tfQ0hJUF9CRyIsIk5PTl9UQVNLX0NISVBfRkciLCJNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkciLCJNRU5USU9OX0NISVBfVEFTS19IT1ZFUl9CRyIsIk1FTlRJT05fQ0hJUF9UQVNLX0VESVRPUl9IT1ZFUl9CRyIsIk1FTlRJT05fQ0hJUF9DT0xPUlMiLCJjbGllbnQiLCJiZyIsImZnIiwicHJvamVjdCIsInRhc2siLCJ1c2VyIiwibWNwIiwiTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfVEFTSyIsImRpc3BsYXkiLCJwYWRkaW5nIiwicGFkZGluZ0xlZnQiLCJtYXJnaW4iLCJtYXhXaWR0aCIsImJvcmRlclJhZGl1cyIsImZvbnRGYW1pbHkiLCJmb250U2l6ZSIsImZvbnRXZWlnaHQiLCJsaW5lSGVpZ2h0Iiwid2hpdGVTcGFjZSIsIm92ZXJmbG93V3JhcCIsIndvcmRCcmVhayIsInVzZXJTZWxlY3QiLCJ2ZXJ0aWNhbEFsaWduIiwiY3Vyc29yIiwiTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfTk9OX1RBU0siLCJNRU5USU9OX0NISVBfQkFTRV9TVFlMRSIsImNoaXBDb2xvcnMiLCJ0eXBlIiwiX01FTlRJT05fQ0hJUF9DT0xPUlMkIiwiY2hpcFN1cmZhY2VDc3MiLCJjIiwiQ29udGV4dE1lbnRpb25DaGlwR2xvYmFsU3R5bGVzIiwiYXBwbHlNZW50aW9uQ2hpcFN0eWxlcyIsImVsIiwiYmFzZSIsIk9iamVjdCIsImFzc2lnbiIsInN0eWxlIiwiX29iamVjdFNwcmVhZCIsImJhY2tncm91bmQiLCJjb2xvciIsImNoaXBIb3ZlckNzcyIsIlNDTUNDaGlwIiwic3BhbiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiX3JlZiIsIiR0eXBlIiwiX3JlZjIiLCJfcmVmMyIsIl9yZWY0IiwiX3JlZjUiLCJfcmVmNiIsIl9yZWY3IiwiX3JlZjgiLCJTQ01DQ2hpcEljb24iLCJfcmVmOSIsIiR0YXNrIiwiX3JlZjAiLCJfcmVmMSIsIlNDTUNUYXNrQ2hpcExhYmVsV3JhcCIsIlNDTUNUYXNrQ2hpcExhYmVsVGV4dCIsIlNDTUNDaGlwUGxhaW5MYWJlbCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uQ2hpcC9Db250ZXh0TWVudGlvbkNoaXAuc3R5bGVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkLCB7IGNzcywgY3JlYXRlR2xvYmFsU3R5bGUgfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcbmltcG9ydCBjb2xvcnMgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuaW1wb3J0IHsgQkxVRV9JQV9DT0xPUlMsIFZJT0xFVF9JQV9DT0xPUlMgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvY29uZmlnJ1xuaW1wb3J0IHsgQ09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1MsIENvbnRleHRFbnRpdHlUeXBlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQgeyBUQVNLX0xJTktfSUNPTl9DU1NfVVJMIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL3Rhc2tMaW5rSWNvbidcblxuY29uc3QgVEFTS19DSElQX0JHID0gJ3RyYW5zcGFyZW50J1xuY29uc3QgVEFTS19DSElQX0ZHID0gY29sb3JzLnRleHQucHJpbWFyeVxuXG5jb25zdCBOT05fVEFTS19DSElQX0JHID0gJyNiM2UxZmYnXG5jb25zdCBOT05fVEFTS19DSElQX0ZHID0gY29sb3JzLnRleHQucHJpbWFyeVxuXG4vKiogSG92ZXIgZGVsIGNoaXAg4oCcbnVldm/igJ0gKGNsaWVudCwgcHJvamVjdCwgdXNlciwgbWNwKS4gKi9cbmV4cG9ydCBjb25zdCBNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkcgPSAnI2VkZmFmZidcblxuLyoqIEhvdmVyIGRlbCBjaGlwIGRlIHRhcmVhIGVuIGNoYXQgLyBzdXBlcmZpY2llIOKAnG5vIGVkaXRvcuKAnS4gKi9cbmV4cG9ydCBjb25zdCBNRU5USU9OX0NISVBfVEFTS19IT1ZFUl9CRyA9IEJMVUVfSUFfQ09MT1JTWzEwMF1cblxuLyoqIEhvdmVyIGRlbCBjaGlwIGRlIHRhcmVhIGRlbnRybyBkZWwgaW5wdXQgKGNvbnRlbnRlZGl0YWJsZSkuICovXG5leHBvcnQgY29uc3QgTUVOVElPTl9DSElQX1RBU0tfRURJVE9SX0hPVkVSX0JHID0gJyNGMkYyRjInXG5cbi8qKiBNaXNtbyDDrWNvbm8gcXVlIGAuaGFzLXRhc2stbGlua3MgYTo6YmVmb3JlYCBlbiBtZW5zYWplcyBkZWwgYWdlbnRlIChjaGVja2xpc3QgYXp1bCkuICovXG5cbi8qKlxuICogUGFsZXRhIGNvbXBhcnRpZGEgZW50cmUgZWwgc3R5bGVkLWNvbXBvbmVudCAoYFNDTUNDaGlwYCkgeSBlbCBidWlsZGVyXG4gKiBpbXBlcmF0aXZvIChgYnVpbGRDaGlwRWxlbWVudGApIHF1ZSBpbnNlcnRhIGVsIGNoaXAgZGVudHJvIGRlbCBjb250ZW50ZWRpdGFibGUuXG4gKi9cbmV4cG9ydCBjb25zdCBNRU5USU9OX0NISVBfQ09MT1JTOiBSZWNvcmQ8Q29udGV4dEVudGl0eVR5cGUsIHsgYmc6IHN0cmluZzsgZmc6IHN0cmluZyB9PiA9IHtcbiAgY2xpZW50OiB7IGJnOiBOT05fVEFTS19DSElQX0JHLCBmZzogTk9OX1RBU0tfQ0hJUF9GRyB9LFxuICBwcm9qZWN0OiB7IGJnOiBWSU9MRVRfSUFfQ09MT1JTWzUwXSwgZmc6IE5PTl9UQVNLX0NISVBfRkcgfSxcbiAgdGFzazogeyBiZzogVEFTS19DSElQX0JHLCBmZzogVEFTS19DSElQX0ZHIH0sXG4gIHVzZXI6IHsgYmc6IE5PTl9UQVNLX0NISVBfQkcsIGZnOiBOT05fVEFTS19DSElQX0ZHIH0sXG4gIG1jcDogeyBiZzogTk9OX1RBU0tfQ0hJUF9CRywgZmc6IE5PTl9UQVNLX0NISVBfRkcgfSxcbn1cblxuLyoqIEVzdGlsbyB0YXJlYSBlbiBlZGl0b3I6IGlubGluZSAobm8gaW5saW5lLWJsb2NrKSBwYXJhIHF1ZSBlbCBzaHJpbmstdG8tZml0IG5vIG9jdXBlIHRvZG8gZWwgcmVuZ2zDs24uICovXG5leHBvcnQgY29uc3QgTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfVEFTSyA9IHtcbiAgZGlzcGxheTogJ2lubGluZScsXG4gIHBhZGRpbmc6ICcwJyxcbiAgcGFkZGluZ0xlZnQ6ICcyNHB4JyxcbiAgbWFyZ2luOiAnMCAxcHgnLFxuICBtYXhXaWR0aDogJzEwMCUnLFxuICBib3JkZXJSYWRpdXM6ICcwJyxcbiAgZm9udEZhbWlseTogYHZhcigtLWNvci10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCAnV29yayBTYW5zJylgLFxuICBmb250U2l6ZTogJzE0cHgnLFxuICBmb250V2VpZ2h0OiAnNjAwJyxcbiAgbGluZUhlaWdodDogJzIwcHgnLFxuICB3aGl0ZVNwYWNlOiAnbm9ybWFsJyxcbiAgb3ZlcmZsb3dXcmFwOiAnYnJlYWstd29yZCcsXG4gIHdvcmRCcmVhazogJ2JyZWFrLXdvcmQnLFxuICB1c2VyU2VsZWN0OiAnbm9uZScsXG4gIHZlcnRpY2FsQWxpZ246ICdiYXNlbGluZScsXG4gIGN1cnNvcjogJ2RlZmF1bHQnLFxufSBhcyBjb25zdFxuXG4vKiogRXN0aWxvIGFjdHVhbCAoY2xpZW50LCBwcm9qZWN0LCB1c2VyLCBtY3ApLiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9CQVNFX1NUWUxFX05PTl9UQVNLID0ge1xuICBkaXNwbGF5OiAnaW5saW5lJyxcbiAgcGFkZGluZzogJzJweCA0cHgnLFxuICBtYXJnaW46ICcwIDFweCcsXG4gIG1heFdpZHRoOiAnMTAwJScsXG4gIGJvcmRlclJhZGl1czogJzRweCcsXG4gIGZvbnRGYW1pbHk6IGB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LWZhbWlseSwgJ1dvcmsgU2FucycpYCxcbiAgZm9udFNpemU6ICcxNHB4JyxcbiAgZm9udFdlaWdodDogJzUwMCcsXG4gIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgd2hpdGVTcGFjZTogJ25vcm1hbCcsXG4gIG92ZXJmbG93V3JhcDogJ2JyZWFrLXdvcmQnLFxuICB3b3JkQnJlYWs6ICdicmVhay13b3JkJyxcbiAgdXNlclNlbGVjdDogJ25vbmUnLFxuICB2ZXJ0aWNhbEFsaWduOiAnYmFzZWxpbmUnLFxuICBjdXJzb3I6ICdkZWZhdWx0Jyxcbn0gYXMgY29uc3RcblxuLyoqIEBkZXByZWNhdGVkIHVzYXIgTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfVEFTSyAvIF9OT05fVEFTSyBzZWfDum4gdGlwbyAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9CQVNFX1NUWUxFID0gTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfVEFTS1xuXG5jb25zdCBjaGlwQ29sb3JzID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlKSA9PiBNRU5USU9OX0NISVBfQ09MT1JTW3R5cGVdID8/IE1FTlRJT05fQ0hJUF9DT0xPUlMudXNlclxuXG5jb25zdCBjaGlwU3VyZmFjZUNzcyA9ICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSkgPT4ge1xuICBjb25zdCBjID0gY2hpcENvbG9ycyh0eXBlKVxuICByZXR1cm4gY3NzYFxuICAgIGJhY2tncm91bmQ6ICR7Yy5iZ307XG4gICAgY29sb3I6ICR7Yy5mZ307XG4gIGBcbn1cblxuLyoqXG4gKiBIb3ZlciB5IHN1cGVyZmljaWUgcGFyYSBjaGlwcyBtb250YWRvcyBwb3IgYGJ1aWxkQ2hpcEVsZW1lbnRgIChlc3RpbG9zIGlubGluZSBlbiBlbCBob3N0KS5cbiAqL1xuZXhwb3J0IGNvbnN0IENvbnRleHRNZW50aW9uQ2hpcEdsb2JhbFN0eWxlcyA9IGNyZWF0ZUdsb2JhbFN0eWxlYFxuICAuJHtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU306bm90KFtkYXRhLW1lbnRpb24tdHlwZT0ndGFzayddKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkd9ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuJHtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31bZGF0YS1tZW50aW9uLXR5cGU9J3Byb2plY3QnXTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtWSU9MRVRfSUFfQ09MT1JTWzEwMF19ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvKiBNZW5jaW9uZXMgZW4gZWwgY29udGVudGVkaXRhYmxlOiBlbCB0ZXh0byBkZWJlIHBvZGVyIHBhc2FyIGEgbGEgbMOtbmVhIHNpZ3VpZW50ZSAoc2luIHNjcm9sbCBob3Jpem9udGFsKS4gKi9cbiAgW2NvbnRlbnRlZGl0YWJsZT0ndHJ1ZSddIC4ke0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVtkYXRhLW1lbnRpb24tc3VyZmFjZT0nZWRpdG9yJ10ge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLyogU29sbyB0YXNrIGVuIGVkaXRvciBzZSBjb21wb3J0YSBpbmxpbmUgcGFyYSBldml0YXIgcXVlIHRvbWUgZWwgYW5jaG8gY29tcGxldG8gZGVsIHJlbmdsw7NuLiAqL1xuICBbY29udGVudGVkaXRhYmxlPSd0cnVlJ10gLiR7Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9W2RhdGEtbWVudGlvbi10eXBlPSd0YXNrJ11bZGF0YS1tZW50aW9uLXN1cmZhY2U9J2VkaXRvciddIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8qIFRhcmVhIGVuIGVsIGlucHV0OiBtaXNtbyBhc3BlY3RvIHF1ZSAuaGFzLXRhc2stbGlua3MgYSAobWVuc2FqZXMgZGVsIGFnZW50ZSAvIHVzdWFyaW8pLiAqL1xuICBbY29udGVudGVkaXRhYmxlPSd0cnVlJ10gLiR7Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9W2RhdGEtbWVudGlvbi10eXBlPSd0YXNrJ11bZGF0YS1tZW50aW9uLXN1cmZhY2U9J2VkaXRvciddIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzIwMjAyMCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMjJweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHggIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvKiBQcm95ZWN0byBlbiBlbCBpbnB1dDogY2xpY2tlYWJsZSwgYWJyZSBlbiBudWV2YSBwZXN0YcOxYS4gKi9cbiAgW2NvbnRlbnRlZGl0YWJsZT0ndHJ1ZSddIC4ke0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVtkYXRhLW1lbnRpb24tdHlwZT0ncHJvamVjdCddW2RhdGEtbWVudGlvbi1zdXJmYWNlPSdlZGl0b3InXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvKiDDjWNvbm8gY2VudHJhZG8gZW4gbGEgY2FqYSBkZSBsYSBwcmltZXJhIGzDrW5lYSAobGggPSBsaW5lLWhlaWdodCBkZWwgY2hpcCwgU1ZHIDIwcHgpLiAqL1xuICBbY29udGVudGVkaXRhYmxlPSd0cnVlJ10gLiR7Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9W2RhdGEtbWVudGlvbi10eXBlPSd0YXNrJ11bZGF0YS1tZW50aW9uLXN1cmZhY2U9J2VkaXRvciddOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAycHg7XG4gICAgdG9wOiAxcHg7XG4gICAgdG9wOiBjYWxjKCgxbGggLSAxNnB4KSAvIDIgLSAxcHgpO1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAke1RBU0tfTElOS19JQ09OX0NTU19VUkx9O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgfVxuXG4gIFtjb250ZW50ZWRpdGFibGU9J3RydWUnXSAuJHtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31bZGF0YS1tZW50aW9uLXR5cGU9J3Rhc2snXVtkYXRhLW1lbnRpb24tc3VyZmFjZT0nZWRpdG9yJ106aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbi1saW5lOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6ICNiM2IzYjMgIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAxcHggIWltcG9ydGFudDtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDJweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICR7TUVOVElPTl9DSElQX1RBU0tfRURJVE9SX0hPVkVSX0JHfSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCAhaW1wb3J0YW50O1xuICB9XG5gXG5cbi8qKlxuICogQXBsaWNhIGxvcyBlc3RpbG9zIGRlbCBjaGlwIGEgdW4gbm9kbyBET00gZXhpc3RlbnRlLlxuICovXG5leHBvcnQgY29uc3QgYXBwbHlNZW50aW9uQ2hpcFN0eWxlcyA9IChlbDogSFRNTEVsZW1lbnQsIHR5cGU6IENvbnRleHRFbnRpdHlUeXBlKSA9PiB7XG4gIGNvbnN0IGMgPSBjaGlwQ29sb3JzKHR5cGUpXG4gIGNvbnN0IGJhc2UgPSB0eXBlID09PSAndGFzaycgPyBNRU5USU9OX0NISVBfQkFTRV9TVFlMRV9UQVNLIDogTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfTk9OX1RBU0tcbiAgT2JqZWN0LmFzc2lnbihlbC5zdHlsZSwgeyAuLi4oYmFzZSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSwgYmFja2dyb3VuZDogYy5iZywgY29sb3I6IGMuZmcgfSlcbn1cblxuY29uc3QgY2hpcEhvdmVyQ3NzID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlIHwgdW5kZWZpbmVkKSA9PiB7XG4gIGlmICh0eXBlID09PSAndGFzaycpIHJldHVybiBjc3NgYFxuICBpZiAodHlwZSA9PT0gJ3Byb2plY3QnKSB7XG4gICAgcmV0dXJuIGNzc2BcbiAgICAgIGJhY2tncm91bmQ6ICR7VklPTEVUX0lBX0NPTE9SU1sxMDBdfTtcbiAgICBgXG4gIH1cbiAgcmV0dXJuIGNzc2BcbiAgICBiYWNrZ3JvdW5kOiAke01FTlRJT05fQ0hJUF9OT05fVEFTS19IT1ZFUl9CR307XG4gIGBcbn1cblxuZXhwb3J0IGNvbnN0IFNDTUNDaGlwID0gc3R5bGVkLnNwYW48eyAkdHlwZT86IENvbnRleHRFbnRpdHlUeXBlIH0+YFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiAkeyh7ICR0eXBlIH0pID0+ICgkdHlwZSA9PT0gJ3Rhc2snID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcicpfTtcbiAgZ2FwOiAkeyh7ICR0eXBlIH0pID0+ICgkdHlwZSA9PT0gJ3Rhc2snID8gJzRweCcgOiAnMnB4Jyl9O1xuICBwYWRkaW5nOiAkeyh7ICR0eXBlIH0pID0+ICgkdHlwZSA9PT0gJ3Rhc2snID8gJzAgNHB4JyA6ICcycHggNHB4Jyl9O1xuICBtYXJnaW46IDAgMXB4O1xuICBib3JkZXItcmFkaXVzOiAkeyh7ICR0eXBlIH0pID0+ICgkdHlwZSA9PT0gJ3Rhc2snID8gJzAnIDogJzRweCcpfTtcbiAgJHsoeyAkdHlwZSB9KSA9PiBjaGlwU3VyZmFjZUNzcygkdHlwZSA/PyAndXNlcicpfVxuICBmb250LWZhbWlseTogdmFyKC0tY29yLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICdXb3JrIFNhbnMnKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogJHsoeyAkdHlwZSB9KSA9PiAoJHR5cGUgPT09ICd0YXNrJyA/IDYwMCA6IDUwMCl9O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLWhlaWdodDogJHsoeyAkdHlwZSB9KSA9PiAoJHR5cGUgPT09ICd0YXNrJyA/ICdhdXRvJyA6ICdhdXRvJyl9O1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgJjpob3ZlciB7XG4gICAgJHsoeyAkdHlwZSB9KSA9PiBjaGlwSG92ZXJDc3MoJHR5cGUpfVxuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01DQ2hpcEljb24gPSBzdHlsZWQuc3Bhbjx7ICR0YXNrPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogJHsoeyAkdGFzayB9KSA9PiAoJHRhc2sgPyAnMTZweCcgOiAnMTRweCcpfTtcbiAgaGVpZ2h0OiAkeyh7ICR0YXNrIH0pID0+ICgkdGFzayA/ICcxNnB4JyA6ICcxNHB4Jyl9O1xuICBmbGV4OiAwIDAgJHsoeyAkdGFzayB9KSA9PiAoJHRhc2sgPyAnMTZweCcgOiAnMTRweCcpfTtcbmBcblxuLyoqIFRleHRvIGRlIHRhcmVhIGNvbiBib3JkZSBpbmZlcmlvciAoc3BlYyBGaWdtYSkuICovXG5leHBvcnQgY29uc3QgU0NNQ1Rhc2tDaGlwTGFiZWxXcmFwID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtaW4td2lkdGg6IDA7XG4gIGZsZXg6IDEgMSAwO1xuICBnYXA6IDRweDtcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgdmFyKC0tY29yLWNvbG9yLWdyZXktNDAwLCAjYjNiM2IzKTtcbmBcblxuLyoqIFRleHRvIGludGVyaW9yIGNvbiBlbGxpcHNpcyAobWVuY2nDs24gdGlwbyB0YXJlYSkuICovXG5leHBvcnQgY29uc3QgU0NNQ1Rhc2tDaGlwTGFiZWxUZXh0ID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LWZhbWlseTogdmFyKC0tY29yLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICdXb3JrIFNhbnMnKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY29sb3I6ICR7Y29sb3JzLnRleHQucHJpbWFyeX07XG5gXG5cbi8qKiBUZXh0byBpbnRlcmlvciBjb24gZWxsaXBzaXMgKG1lbmNpw7NuIGNsaWVudGUvcHJveWVjdG8vdXN1YXJpby9tY3ApLiAqL1xuZXhwb3J0IGNvbnN0IFNDTUNDaGlwUGxhaW5MYWJlbCA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBibG9jaztcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWNvci10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCAnV29yayBTYW5zJyk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0LnByaW1hcnl9O1xuYFxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxPQUFPQSxNQUFNLElBQUlDLEdBQUcsRUFBRUMsaUJBQWlCLFFBQVEsbUJBQW1CO0FBQ2xFLE9BQU9DLE1BQU0sTUFBTSxtQ0FBbUM7QUFDdEQsU0FBU0MsY0FBYyxFQUFFQyxnQkFBZ0IsUUFBUSx3QkFBd0I7QUFDekUsU0FBU0MsMEJBQTBCLFFBQTJCLCtCQUErQjtBQUM3RixTQUFTQyxzQkFBc0IsUUFBUSxpQ0FBaUM7QUFFeEUsSUFBTUMsWUFBWSxHQUFHLGFBQWE7QUFDbEMsSUFBTUMsWUFBWSxHQUFHTixNQUFNLENBQUNPLElBQUksQ0FBQ0MsT0FBTztBQUV4QyxJQUFNQyxnQkFBZ0IsR0FBRyxTQUFTO0FBQ2xDLElBQU1DLGdCQUFnQixHQUFHVixNQUFNLENBQUNPLElBQUksQ0FBQ0MsT0FBTzs7QUFFNUM7QUFDQSxPQUFPLElBQU1HLDhCQUE4QixHQUFHLFNBQVM7O0FBRXZEO0FBQ0EsT0FBTyxJQUFNQywwQkFBMEIsR0FBR1gsY0FBYyxDQUFDLEdBQUcsQ0FBQzs7QUFFN0Q7QUFDQSxPQUFPLElBQU1ZLGlDQUFpQyxHQUFHLFNBQVM7O0FBRTFEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxJQUFNQyxtQkFBMEUsR0FBRztFQUN4RkMsTUFBTSxFQUFFO0lBQUVD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
|
|
188
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJjcmVhdGVHbG9iYWxTdHlsZSIsImNvbG9ycyIsIkJMVUVfSUFfQ09MT1JTIiwiVklPTEVUX0lBX0NPTE9SUyIsIkNPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTIiwiVEFTS19MSU5LX0lDT05fQ1NTX1VSTCIsIlRBU0tfQ0hJUF9CRyIsIlRBU0tfQ0hJUF9GRyIsInRleHQiLCJwcmltYXJ5IiwiTk9OX1RBU0tfQ0hJUF9CRyIsIk5PTl9UQVNLX0NISVBfRkciLCJNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkciLCJNRU5USU9OX0NISVBfVEFTS19IT1ZFUl9CRyIsIk1FTlRJT05fQ0hJUF9UQVNLX0VESVRPUl9IT1ZFUl9CRyIsIk1FTlRJT05fQ0hJUF9DT0xPUlMiLCJjbGllbnQiLCJiZyIsImZnIiwicHJvamVjdCIsInRhc2siLCJ1c2VyIiwibWNwIiwic2tpbGwiLCJNRU5USU9OX0NISVBfQkFTRV9TVFlMRV9UQVNLIiwiZGlzcGxheSIsInBhZGRpbmciLCJwYWRkaW5nTGVmdCIsIm1hcmdpbiIsIm1heFdpZHRoIiwiYm9yZGVyUmFkaXVzIiwiZm9udEZhbWlseSIsImZvbnRTaXplIiwiZm9udFdlaWdodCIsImxpbmVIZWlnaHQiLCJ3aGl0ZVNwYWNlIiwib3ZlcmZsb3dXcmFwIiwid29yZEJyZWFrIiwidXNlclNlbGVjdCIsInZlcnRpY2FsQWxpZ24iLCJjdXJzb3IiLCJNRU5USU9OX0NISVBfQkFTRV9TVFlMRV9OT05fVEFTSyIsIk1FTlRJT05fQ0hJUF9CQVNFX1NUWUxFIiwiY2hpcENvbG9ycyIsInR5cGUiLCJfTUVOVElPTl9DSElQX0NPTE9SUyQiLCJjaGlwU3VyZmFjZUNzcyIsImMiLCJDb250ZXh0TWVudGlvbkNoaXBHbG9iYWxTdHlsZXMiLCJhcHBseU1lbnRpb25DaGlwU3R5bGVzIiwiZWwiLCJiYXNlIiwiT2JqZWN0IiwiYXNzaWduIiwic3R5bGUiLCJfb2JqZWN0U3ByZWFkIiwiYmFja2dyb3VuZCIsImNvbG9yIiwiY2hpcEhvdmVyQ3NzIiwiU0NNQ0NoaXAiLCJzcGFuIiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJfcmVmIiwiJHR5cGUiLCJfcmVmMiIsIl9yZWYzIiwiX3JlZjQiLCJfcmVmNSIsIl9yZWY2IiwiX3JlZjciLCJfcmVmOCIsIlNDTUNDaGlwSWNvbiIsIl9yZWY5IiwiJHRhc2siLCJfcmVmMCIsIl9yZWYxIiwiU0NNQ1Rhc2tDaGlwTGFiZWxXcmFwIiwiU0NNQ1Rhc2tDaGlwTGFiZWxUZXh0IiwiU0NNQ0NoaXBQbGFpbkxhYmVsIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvQ29udGV4dE1lbnRpb25DaGlwL0NvbnRleHRNZW50aW9uQ2hpcC5zdHlsZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQsIHsgY3NzLCBjcmVhdGVHbG9iYWxTdHlsZSB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IGNvbG9ycyBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5pbXBvcnQgeyBCTFVFX0lBX0NPTE9SUywgVklPTEVUX0lBX0NPTE9SUyB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jb25maWcnXG5pbXBvcnQgeyBDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUywgQ29udGV4dEVudGl0eVR5cGUgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB7IFRBU0tfTElOS19JQ09OX0NTU19VUkwgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvdGFza0xpbmtJY29uJ1xuXG5jb25zdCBUQVNLX0NISVBfQkcgPSAndHJhbnNwYXJlbnQnXG5jb25zdCBUQVNLX0NISVBfRkcgPSBjb2xvcnMudGV4dC5wcmltYXJ5XG5cbmNvbnN0IE5PTl9UQVNLX0NISVBfQkcgPSAnI2IzZTFmZidcbmNvbnN0IE5PTl9UQVNLX0NISVBfRkcgPSBjb2xvcnMudGV4dC5wcmltYXJ5XG5cbi8qKiBIb3ZlciBkZWwgY2hpcCDigJxudWV2b+KAnSAoY2xpZW50LCBwcm9qZWN0LCB1c2VyLCBtY3ApLiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9OT05fVEFTS19IT1ZFUl9CRyA9ICcjZWRmYWZmJ1xuXG4vKiogSG92ZXIgZGVsIGNoaXAgZGUgdGFyZWEgZW4gY2hhdCAvIHN1cGVyZmljaWUg4oCcbm8gZWRpdG9y4oCdLiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9UQVNLX0hPVkVSX0JHID0gQkxVRV9JQV9DT0xPUlNbMTAwXVxuXG4vKiogSG92ZXIgZGVsIGNoaXAgZGUgdGFyZWEgZGVudHJvIGRlbCBpbnB1dCAoY29udGVudGVkaXRhYmxlKS4gKi9cbmV4cG9ydCBjb25zdCBNRU5USU9OX0NISVBfVEFTS19FRElUT1JfSE9WRVJfQkcgPSAnI0YyRjJGMidcblxuLyoqIE1pc21vIMOtY29ubyBxdWUgYC5oYXMtdGFzay1saW5rcyBhOjpiZWZvcmVgIGVuIG1lbnNhamVzIGRlbCBhZ2VudGUgKGNoZWNrbGlzdCBhenVsKS4gKi9cblxuLyoqXG4gKiBQYWxldGEgY29tcGFydGlkYSBlbnRyZSBlbCBzdHlsZWQtY29tcG9uZW50IChgU0NNQ0NoaXBgKSB5IGVsIGJ1aWxkZXJcbiAqIGltcGVyYXRpdm8gKGBidWlsZENoaXBFbGVtZW50YCkgcXVlIGluc2VydGEgZWwgY2hpcCBkZW50cm8gZGVsIGNvbnRlbnRlZGl0YWJsZS5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9DT0xPUlM6IFJlY29yZDxDb250ZXh0RW50aXR5VHlwZSwgeyBiZzogc3RyaW5nOyBmZzogc3RyaW5nIH0+ID0ge1xuICBjbGllbnQ6IHsgYmc6IE5PTl9UQVNLX0NISVBfQkcsIGZnOiBOT05fVEFTS19DSElQX0ZHIH0sXG4gIHByb2plY3Q6IHsgYmc6IFZJT0xFVF9JQV9DT0xPUlNbNTBdLCBmZzogTk9OX1RBU0tfQ0hJUF9GRyB9LFxuICB0YXNrOiB7IGJnOiBUQVNLX0NISVBfQkcsIGZnOiBUQVNLX0NISVBfRkcgfSxcbiAgdXNlcjogeyBiZzogTk9OX1RBU0tfQ0hJUF9CRywgZmc6IE5PTl9UQVNLX0NISVBfRkcgfSxcbiAgbWNwOiB7IGJnOiBOT05fVEFTS19DSElQX0JHLCBmZzogTk9OX1RBU0tfQ0hJUF9GRyB9LFxuICBza2lsbDogeyBiZzogJ3RyYW5zcGFyZW50JywgZmc6IE5PTl9UQVNLX0NISVBfRkcgfSxcbn1cblxuLyoqIEVzdGlsbyB0YXJlYSBlbiBlZGl0b3I6IGlubGluZSAobm8gaW5saW5lLWJsb2NrKSBwYXJhIHF1ZSBlbCBzaHJpbmstdG8tZml0IG5vIG9jdXBlIHRvZG8gZWwgcmVuZ2zDs24uICovXG5leHBvcnQgY29uc3QgTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfVEFTSyA9IHtcbiAgZGlzcGxheTogJ2lubGluZScsXG4gIHBhZGRpbmc6ICcwJyxcbiAgcGFkZGluZ0xlZnQ6ICcyNHB4JyxcbiAgbWFyZ2luOiAnMCAxcHgnLFxuICBtYXhXaWR0aDogJzEwMCUnLFxuICBib3JkZXJSYWRpdXM6ICcwJyxcbiAgZm9udEZhbWlseTogYHZhcigtLWNvci10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCAnV29yayBTYW5zJylgLFxuICBmb250U2l6ZTogJzE0cHgnLFxuICBmb250V2VpZ2h0OiAnNjAwJyxcbiAgbGluZUhlaWdodDogJzIwcHgnLFxuICB3aGl0ZVNwYWNlOiAnbm9ybWFsJyxcbiAgb3ZlcmZsb3dXcmFwOiAnYnJlYWstd29yZCcsXG4gIHdvcmRCcmVhazogJ2JyZWFrLXdvcmQnLFxuICB1c2VyU2VsZWN0OiAnbm9uZScsXG4gIHZlcnRpY2FsQWxpZ246ICdiYXNlbGluZScsXG4gIGN1cnNvcjogJ2RlZmF1bHQnLFxufSBhcyBjb25zdFxuXG4vKiogRXN0aWxvIGFjdHVhbCAoY2xpZW50LCBwcm9qZWN0LCB1c2VyLCBtY3ApLiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9CQVNFX1NUWUxFX05PTl9UQVNLID0ge1xuICBkaXNwbGF5OiAnaW5saW5lJyxcbiAgcGFkZGluZzogJzJweCA0cHgnLFxuICBtYXJnaW46ICcwIDFweCcsXG4gIG1heFdpZHRoOiAnMTAwJScsXG4gIGJvcmRlclJhZGl1czogJzRweCcsXG4gIGZvbnRGYW1pbHk6IGB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LWZhbWlseSwgJ1dvcmsgU2FucycpYCxcbiAgZm9udFNpemU6ICcxNHB4JyxcbiAgZm9udFdlaWdodDogJzUwMCcsXG4gIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgd2hpdGVTcGFjZTogJ25vcm1hbCcsXG4gIG92ZXJmbG93V3JhcDogJ2JyZWFrLXdvcmQnLFxuICB3b3JkQnJlYWs6ICdicmVhay13b3JkJyxcbiAgdXNlclNlbGVjdDogJ25vbmUnLFxuICB2ZXJ0aWNhbEFsaWduOiAnYmFzZWxpbmUnLFxuICBjdXJzb3I6ICdkZWZhdWx0Jyxcbn0gYXMgY29uc3RcblxuLyoqIEBkZXByZWNhdGVkIHVzYXIgTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfVEFTSyAvIF9OT05fVEFTSyBzZWfDum4gdGlwbyAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9CQVNFX1NUWUxFID0gTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfVEFTS1xuXG5jb25zdCBjaGlwQ29sb3JzID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlKSA9PiBNRU5USU9OX0NISVBfQ09MT1JTW3R5cGVdID8/IE1FTlRJT05fQ0hJUF9DT0xPUlMudXNlclxuXG5jb25zdCBjaGlwU3VyZmFjZUNzcyA9ICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSkgPT4ge1xuICBjb25zdCBjID0gY2hpcENvbG9ycyh0eXBlKVxuICByZXR1cm4gY3NzYFxuICAgIGJhY2tncm91bmQ6ICR7Yy5iZ307XG4gICAgY29sb3I6ICR7Yy5mZ307XG4gIGBcbn1cblxuLyoqXG4gKiBIb3ZlciB5IHN1cGVyZmljaWUgcGFyYSBjaGlwcyBtb250YWRvcyBwb3IgYGJ1aWxkQ2hpcEVsZW1lbnRgIChlc3RpbG9zIGlubGluZSBlbiBlbCBob3N0KS5cbiAqL1xuZXhwb3J0IGNvbnN0IENvbnRleHRNZW50aW9uQ2hpcEdsb2JhbFN0eWxlcyA9IGNyZWF0ZUdsb2JhbFN0eWxlYFxuICAuJHtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU306bm90KFtkYXRhLW1lbnRpb24tdHlwZT0ndGFzayddKTpub3QoW2RhdGEtbWVudGlvbi10eXBlPSdza2lsbCddKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkd9ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuJHtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31bZGF0YS1tZW50aW9uLXR5cGU9J3Byb2plY3QnXTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtWSU9MRVRfSUFfQ09MT1JTWzEwMF19ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvKiBNZW5jaW9uZXMgZW4gZWwgY29udGVudGVkaXRhYmxlOiBlbCB0ZXh0byBkZWJlIHBvZGVyIHBhc2FyIGEgbGEgbMOtbmVhIHNpZ3VpZW50ZSAoc2luIHNjcm9sbCBob3Jpem9udGFsKS4gKi9cbiAgW2NvbnRlbnRlZGl0YWJsZT0ndHJ1ZSddIC4ke0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVtkYXRhLW1lbnRpb24tc3VyZmFjZT0nZWRpdG9yJ10ge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLyogU29sbyB0YXNrIGVuIGVkaXRvciBzZSBjb21wb3J0YSBpbmxpbmUgcGFyYSBldml0YXIgcXVlIHRvbWUgZWwgYW5jaG8gY29tcGxldG8gZGVsIHJlbmdsw7NuLiAqL1xuICBbY29udGVudGVkaXRhYmxlPSd0cnVlJ10gLiR7Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9W2RhdGEtbWVudGlvbi10eXBlPSd0YXNrJ11bZGF0YS1tZW50aW9uLXN1cmZhY2U9J2VkaXRvciddIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8qIFRhcmVhIGVuIGVsIGlucHV0OiBtaXNtbyBhc3BlY3RvIHF1ZSAuaGFzLXRhc2stbGlua3MgYSAobWVuc2FqZXMgZGVsIGFnZW50ZSAvIHVzdWFyaW8pLiAqL1xuICBbY29udGVudGVkaXRhYmxlPSd0cnVlJ10gLiR7Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9W2RhdGEtbWVudGlvbi10eXBlPSd0YXNrJ11bZGF0YS1tZW50aW9uLXN1cmZhY2U9J2VkaXRvciddIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzIwMjAyMCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMjJweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHggIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvKiBQcm95ZWN0byBlbiBlbCBpbnB1dDogY2xpY2tlYWJsZSwgYWJyZSBlbiBudWV2YSBwZXN0YcOxYS4gKi9cbiAgW2NvbnRlbnRlZGl0YWJsZT0ndHJ1ZSddIC4ke0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVtkYXRhLW1lbnRpb24tdHlwZT0ncHJvamVjdCddW2RhdGEtbWVudGlvbi1zdXJmYWNlPSdlZGl0b3InXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvKiDDjWNvbm8gY2VudHJhZG8gZW4gbGEgY2FqYSBkZSBsYSBwcmltZXJhIGzDrW5lYSAobGggPSBsaW5lLWhlaWdodCBkZWwgY2hpcCwgU1ZHIDIwcHgpLiAqL1xuICBbY29udGVudGVkaXRhYmxlPSd0cnVlJ10gLiR7Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9W2RhdGEtbWVudGlvbi10eXBlPSd0YXNrJ11bZGF0YS1tZW50aW9uLXN1cmZhY2U9J2VkaXRvciddOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAycHg7XG4gICAgdG9wOiAxcHg7XG4gICAgdG9wOiBjYWxjKCgxbGggLSAxNnB4KSAvIDIgLSAxcHgpO1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAke1RBU0tfTElOS19JQ09OX0NTU19VUkx9O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgfVxuXG4gIFtjb250ZW50ZWRpdGFibGU9J3RydWUnXSAuJHtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31bZGF0YS1tZW50aW9uLXR5cGU9J3Rhc2snXVtkYXRhLW1lbnRpb24tc3VyZmFjZT0nZWRpdG9yJ106aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbi1saW5lOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6ICNiM2IzYjMgIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAxcHggIWltcG9ydGFudDtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDJweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICR7TUVOVElPTl9DSElQX1RBU0tfRURJVE9SX0hPVkVSX0JHfSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCAhaW1wb3J0YW50O1xuICB9XG5gXG5cbi8qKlxuICogQXBsaWNhIGxvcyBlc3RpbG9zIGRlbCBjaGlwIGEgdW4gbm9kbyBET00gZXhpc3RlbnRlLlxuICovXG5leHBvcnQgY29uc3QgYXBwbHlNZW50aW9uQ2hpcFN0eWxlcyA9IChlbDogSFRNTEVsZW1lbnQsIHR5cGU6IENvbnRleHRFbnRpdHlUeXBlKSA9PiB7XG4gIGNvbnN0IGMgPSBjaGlwQ29sb3JzKHR5cGUpXG4gIGNvbnN0IGJhc2UgPSB0eXBlID09PSAndGFzaycgPyBNRU5USU9OX0NISVBfQkFTRV9TVFlMRV9UQVNLIDogTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfTk9OX1RBU0tcbiAgT2JqZWN0LmFzc2lnbihlbC5zdHlsZSwgeyAuLi4oYmFzZSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSwgYmFja2dyb3VuZDogYy5iZywgY29sb3I6IGMuZmcgfSlcbn1cblxuY29uc3QgY2hpcEhvdmVyQ3NzID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlIHwgdW5kZWZpbmVkKSA9PiB7XG4gIGlmICh0eXBlID09PSAndGFzaycgfHwgdHlwZSA9PT0gJ3NraWxsJykgcmV0dXJuIGNzc2BgXG4gIGlmICh0eXBlID09PSAncHJvamVjdCcpIHtcbiAgICByZXR1cm4gY3NzYFxuICAgICAgYmFja2dyb3VuZDogJHtWSU9MRVRfSUFfQ09MT1JTWzEwMF19O1xuICAgIGBcbiAgfVxuICByZXR1cm4gY3NzYFxuICAgIGJhY2tncm91bmQ6ICR7TUVOVElPTl9DSElQX05PTl9UQVNLX0hPVkVSX0JHfTtcbiAgYFxufVxuXG5leHBvcnQgY29uc3QgU0NNQ0NoaXAgPSBzdHlsZWQuc3Bhbjx7ICR0eXBlPzogQ29udGV4dEVudGl0eVR5cGUgfT5gXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6ICR7KHsgJHR5cGUgfSkgPT4gKCR0eXBlID09PSAndGFzaycgPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJyl9O1xuICBnYXA6ICR7KHsgJHR5cGUgfSkgPT4gKCR0eXBlID09PSAndGFzaycgPyAnNHB4JyA6ICcycHgnKX07XG4gIHBhZGRpbmc6ICR7KHsgJHR5cGUgfSkgPT4gKCR0eXBlID09PSAndGFzaycgPyAnMCA0cHgnIDogJzJweCA0cHgnKX07XG4gIG1hcmdpbjogMCAxcHg7XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgJHR5cGUgfSkgPT4gKCR0eXBlID09PSAndGFzaycgPyAnMCcgOiAnNHB4Jyl9O1xuICAkeyh7ICR0eXBlIH0pID0+IGNoaXBTdXJmYWNlQ3NzKCR0eXBlID8/ICd1c2VyJyl9XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LWZhbWlseSwgJ1dvcmsgU2FucycpO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiAkeyh7ICR0eXBlIH0pID0+ICgkdHlwZSA9PT0gJ3Rhc2snID8gNjAwIDogNTAwKX07XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4taGVpZ2h0OiAkeyh7ICR0eXBlIH0pID0+ICgkdHlwZSA9PT0gJ3Rhc2snID8gJ2F1dG8nIDogJ2F1dG8nKX07XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGN1cnNvcjogZGVmYXVsdDtcblxuICAmOmhvdmVyIHtcbiAgICAkeyh7ICR0eXBlIH0pID0+IGNoaXBIb3ZlckNzcygkdHlwZSl9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUNDaGlwSWNvbiA9IHN0eWxlZC5zcGFuPHsgJHRhc2s/OiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAkeyh7ICR0YXNrIH0pID0+ICgkdGFzayA/ICcxNnB4JyA6ICcxNHB4Jyl9O1xuICBoZWlnaHQ6ICR7KHsgJHRhc2sgfSkgPT4gKCR0YXNrID8gJzE2cHgnIDogJzE0cHgnKX07XG4gIGZsZXg6IDAgMCAkeyh7ICR0YXNrIH0pID0+ICgkdGFzayA/ICcxNnB4JyA6ICcxNHB4Jyl9O1xuYFxuXG4vKiogVGV4dG8gZGUgdGFyZWEgY29uIGJvcmRlIGluZmVyaW9yIChzcGVjIEZpZ21hKS4gKi9cbmV4cG9ydCBjb25zdCBTQ01DVGFza0NoaXBMYWJlbFdyYXAgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi13aWR0aDogMDtcbiAgZmxleDogMSAxIDA7XG4gIGdhcDogNHB4O1xuICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCB2YXIoLS1jb3ItY29sb3ItZ3JleS00MDAsICNiM2IzYjMpO1xuYFxuXG4vKiogVGV4dG8gaW50ZXJpb3IgY29uIGVsbGlwc2lzIChtZW5jacOzbiB0aXBvIHRhcmVhKS4gKi9cbmV4cG9ydCBjb25zdCBTQ01DVGFza0NoaXBMYWJlbFRleHQgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LWZhbWlseSwgJ1dvcmsgU2FucycpO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogJHtjb2xvcnMudGV4dC5wcmltYXJ5fTtcbmBcblxuLyoqIFRleHRvIGludGVyaW9yIGNvbiBlbGxpcHNpcyAobWVuY2nDs24gY2xpZW50ZS9wcm95ZWN0by91c3VhcmlvL21jcCkuICovXG5leHBvcnQgY29uc3QgU0NNQ0NoaXBQbGFpbkxhYmVsID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LWZhbWlseTogdmFyKC0tY29yLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICdXb3JrIFNhbnMnKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY29sb3I6ICR7Y29sb3JzLnRleHQucHJpbWFyeX07XG5gXG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLE9BQU9BLE1BQU0sSUFBSUMsR0FBRyxFQUFFQyxpQkFBaUIsUUFBUSxtQkFBbUI7QUFDbEUsT0FBT0MsTUFBTSxNQUFNLG1DQUFtQztBQUN0RCxTQUFTQyxjQUFjLEVBQUVDLGdCQUFnQixRQUFRLHdCQUF3QjtBQUN6RSxTQUFTQywwQkFBMEIsUUFBMkIsK0JBQStCO0FBQzdGLFNBQVNDLHNCQUFzQixRQUFRLGlDQUFpQztBQUV4RSxJQUFNQyxZQUFZLEdBQUcsYUFBYTtBQUNsQyxJQUFNQyxZQUFZLEdBQUdOLE1BQU0sQ0FBQ08sSUFBSSxDQUFDQyxPQUFPO0FBRXhDLElBQU1DLGdCQUFnQixHQUFHLFNBQVM7QUFDbEMsSUFBTUMsZ0JBQWdCLEdBQUdWLE1BQU0sQ0FBQ08sSUFBSSxDQUFDQyxPQUFPOztBQUU1QztBQUNBLE9BQU8sSUFBTUcsOEJBQThCLEdBQUcsU0FBUzs7QUFFdkQ7QUFDQSxPQUFPLElBQU1DLDBCQUEwQixHQUFHWCxjQUFjLENBQUMsR0FBRyxDQUFDOztB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
|
|
@@ -48,6 +48,7 @@ export var ContextMentionEditor = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
48
48
|
updateTrigger = _useContextMentions.updateTrigger,
|
|
49
49
|
replaceTriggerWithChip = _useContextMentions.replaceTriggerWithChip,
|
|
50
50
|
syncTriggerAtRunLength = _useContextMentions.syncTriggerAtRunLength,
|
|
51
|
+
syncSkillTrigger = _useContextMentions.syncSkillTrigger,
|
|
51
52
|
updateSlashTrigger = _useContextMentions.updateSlashTrigger,
|
|
52
53
|
replaceTriggerWithSlashChip = _useContextMentions.replaceTriggerWithSlashChip,
|
|
53
54
|
serialize = _useContextMentions.serialize,
|
|
@@ -272,6 +273,7 @@ export var ContextMentionEditor = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
272
273
|
},
|
|
273
274
|
serialize: serialize,
|
|
274
275
|
syncTriggerAtRunLength: syncTriggerAtRunLength,
|
|
276
|
+
syncSkillTrigger: syncSkillTrigger,
|
|
275
277
|
hasVisualMultiline: function hasVisualMultiline() {
|
|
276
278
|
var _editor$textContent$t, _editor$textContent2;
|
|
277
279
|
var editor = editorRef.current;
|
|
@@ -342,7 +344,7 @@ export var ContextMentionEditor = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
342
344
|
});
|
|
343
345
|
}
|
|
344
346
|
};
|
|
345
|
-
}, [focus, clearEditorDom, serialize, syncTriggerAtRunLength, replaceTriggerWithChip, replaceTriggerWithSlashChip, onInput, recomputePlaceholderTruncation, syncEditorEmptyAttribute, emitInputState, disabled, editorRef]);
|
|
347
|
+
}, [focus, clearEditorDom, serialize, syncTriggerAtRunLength, syncSkillTrigger, replaceTriggerWithChip, replaceTriggerWithSlashChip, onInput, recomputePlaceholderTruncation, syncEditorEmptyAttribute, emitInputState, disabled, editorRef]);
|
|
346
348
|
var handleInput = function handleInput() {
|
|
347
349
|
if (skipNextInput.current) {
|
|
348
350
|
skipNextInput.current = false;
|
|
@@ -396,4 +398,4 @@ export var ContextMentionEditor = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
396
398
|
});
|
|
397
399
|
});
|
|
398
400
|
ContextMentionEditor.displayName = 'ContextMentionEditor';
|
|
399
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3J3YXJkUmVmIiwidXNlQ2FsbGJhY2siLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwidXNlTGF5b3V0RWZmZWN0IiwidXNlUmVmIiwidXNlU3RhdGUiLCJUb29sdGlwIiwidXNlQ29udGV4dE1lbnRpb25zIiwiYnVpbGRDaGlwRWxlbWVudCIsIkNvbnRleHRNZW50aW9uQ2hpcEdsb2JhbFN0eWxlcyIsImJ1aWxkU2xhc2hDaGlwRWxlbWVudCIsIlNDTUVFZGl0YWJsZSIsImpzeCIsIl9qc3giLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImpzeHMiLCJfanN4cyIsImlzUGxhY2Vob2xkZXJUcnVuY2F0ZWRJbkVkaXRvciIsImVkaXRvciIsInBsYWNlaG9sZGVyIiwidHJpbW1lZCIsInRyaW0iLCJjbGllbnRXaWR0aCIsInN0eWxlcyIsIndpbmRvdyIsImdldENvbXB1dGVkU3R5bGUiLCJjdHgiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJnZXRDb250ZXh0IiwiZm9udCIsImNvbmNhdCIsImZvbnRXZWlnaHQiLCJmb250U2l6ZSIsImZvbnRGYW1pbHkiLCJtZWFzdXJlZCIsIm1lYXN1cmVUZXh0Iiwid2lkdGgiLCJwYWRkaW5nTGVmdCIsInBhcnNlRmxvYXQiLCJwYWRkaW5nUmlnaHQiLCJib3JkZXJMZWZ0IiwiYm9yZGVyTGVmdFdpZHRoIiwiYm9yZGVyUmlnaHQiLCJib3JkZXJSaWdodFdpZHRoIiwiYXZhaWxhYmxlIiwiTWF0aCIsIm1heCIsIkNvbnRleHRNZW50aW9uRWRpdG9yIiwiX3JlZiIsInJlZiIsIl9wbGFjZWhvbGRlciR0cmltMiIsImRpc2FibGVkIiwiY2xhc3NOYW1lIiwibWF4SGVpZ2h0Iiwib25JbnB1dCIsIm9uS2V5RG93biIsIm9uRm9jdXMiLCJvbkJsdXIiLCJfdXNlQ29udGV4dE1lbnRpb25zIiwiZWRpdG9yUmVmIiwidXBkYXRlVHJpZ2dlciIsInJlcGxhY2VUcmlnZ2VyV2l0aENoaXAiLCJzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoIiwidXBkYXRlU2xhc2hUcmlnZ2VyIiwicmVwbGFjZVRyaWdnZXJXaXRoU2xhc2hDaGlwIiwic2VyaWFsaXplIiwiY2xlYXJFZGl0b3JEb20iLCJjbGVhciIsImZvY3VzIiwic2tpcE5leHRJbnB1dCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInBsYWNlaG9sZGVyVHJ1bmNhdGVkIiwic2V0UGxhY2Vob2xkZXJUcnVuY2F0ZWQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvZ2ljYWxFbXB0eSIsInNldExvZ2ljYWxFbXB0eSIsInN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZSIsImlzRW1wdHkiLCJjdXJyZW50Iiwic2V0QXR0cmlidXRlIiwiU3RyaW5nIiwibm9ybWFsaXplRW1wdHlFZGl0b3JEb20iLCJfZWRpdG9yJHRleHRDb250ZW50IiwidGV4dENvbnRlbnQiLCJpbm5lckhUTUwiLCJzZWxlY3Rpb24iLCJnZXRTZWxlY3Rpb24iLCJyYW5nZSIsImNyZWF0ZVJhbmdlIiwic2VsZWN0Tm9kZUNvbnRlbnRzIiwiY29sbGFwc2UiLCJyZW1vdmVBbGxSYW5nZXMiLCJhZGRSYW5nZSIsInJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbiIsIl9wbGFjZWhvbGRlciR0cmltIiwiZWwiLCJwaCIsImlzRWRpdG9yTG9naWNhbGx5RW1wdHkiLCJ0ZXh0IiwidW5kZWZpbmVkIiwicm8iLCJSZXNpemVPYnNlcnZlciIsInF1ZXVlTWljcm90YXNrIiwib2JzZXJ2ZSIsImRpc2Nvbm5lY3QiLCJlbWl0SW5wdXRTdGF0ZSIsInRyaWciLCJzbGFzaFRyaWciLCJzdGF0ZSIsIm1lbnRpb25zIiwic2xhc2hDb21tYW5kcyIsIl9vYmplY3RTcHJlYWQiLCJ0cmlnZ2VyIiwiYWN0aXZlIiwicXVlcnkiLCJhdFJ1bkxlbmd0aCIsInNsYXNoVHJpZ2dlciIsInNldFBsYWluVGV4dCIsInBsYWluIiwiY2hpbGROb2RlcyIsImxlbmd0aCIsImluc2VydE1lbnRpb25UcmlnZ2VyIiwiYW5jaG9yTm9kZSIsImNvbnRhaW5zIiwiZW5kUmFuZ2UiLCJnZXRSYW5nZUF0IiwicHJlZml4Iiwic3RhcnRDb250YWluZXIiLCJzdGFydE9mZnNldCIsIm5vZGVUeXBlIiwiTm9kZSIsIlRFWFRfTk9ERSIsInByZXZDaGFyIiwiZGF0YSIsImNoYXJBdCIsInRlc3QiLCJpbnNlcnRlZCIsInRleHROb2RlIiwiY3JlYXRlVGV4dE5vZGUiLCJpbnNlcnROb2RlIiwicHJldlNpYmxpbmciLCJwcmV2aW91c1NpYmxpbmciLCJjYXJldE5vZGUiLCJjYXJldE9mZnNldCIsImVuZHNXaXRoIiwicHJldlRleHQiLCJyZW1vdmUiLCJzZXRTdGFydCIsImluc2VydFNsYXNoVHJpZ2dlciIsImhhc1Zpc3VhbE11bHRpbGluZSIsIl9lZGl0b3IkdGV4dENvbnRlbnQkdCIsIl9lZGl0b3IkdGV4dENvbnRlbnQyIiwibGluZUhlaWdodCIsImVkaXRvckhlaWdodCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImhlaWdodCIsImlzTXVsdGlsaW5lIiwiZ2V0RWRpdG9yQ2xpZW50UmVjdCIsIl9lZGl0b3JSZWYkY3VycmVudCRnZSIsIl9lZGl0b3JSZWYkY3VycmVudCIsImluc2VydE1lbnRpb24iLCJtZW50aW9uIiwiY2hpcCIsImluc2VydFNsYXNoQ29tbWFuZCIsImNvbW1hbmQiLCJoYW5kbGVJbnB1dCIsImhhbmRsZVBhc3RlIiwiZSIsInByZXZlbnREZWZhdWx0IiwiY2xpcGJvYXJkRGF0YSIsImdldERhdGEiLCJyYW5nZUNvdW50IiwiZGVsZXRlRnJvbURvY3VtZW50IiwiY29sbGFwc2VUb0VuZCIsInRyaW1tZWRQbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyVG9vbHRpcFRpdGxlIiwiY2hpbGRyZW4iLCJ0aXRsZSIsInN0eWxlIiwiZGlzcGxheSIsIm1pbldpZHRoIiwiJG1heEhlaWdodCIsImNvbnRlbnRFZGl0YWJsZSIsInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyIsInJvbGUiLCJvblBhc3RlIiwiZGlzcGxheU5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9Db250ZXh0TWVudGlvbkVkaXRvci9Db250ZXh0TWVudGlvbkVkaXRvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2xpcGJvYXJkRXZlbnQsXG4gIGZvcndhcmRSZWYsXG4gIEtleWJvYXJkRXZlbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VJbXBlcmF0aXZlSGFuZGxlLFxuICB1c2VMYXlvdXRFZmZlY3QsXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlQ29udGV4dE1lbnRpb25zIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlQ29udGV4dE1lbnRpb25zJ1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB7IGJ1aWxkQ2hpcEVsZW1lbnQgfSBmcm9tICcuLi9Db250ZXh0TWVudGlvbkNoaXAnXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbkNoaXBHbG9iYWxTdHlsZXMgfSBmcm9tICcuLi9Db250ZXh0TWVudGlvbkNoaXAvQ29udGV4dE1lbnRpb25DaGlwLnN0eWxlcydcbmltcG9ydCB7IGJ1aWxkU2xhc2hDaGlwRWxlbWVudCwgU2xhc2hDb21tYW5kQ2hpcERhdGEgfSBmcm9tICcuLi9TbGFzaENvbW1hbmRDaGlwJ1xuaW1wb3J0IHsgU0NNRUVkaXRhYmxlIH0gZnJvbSAnLi9Db250ZXh0TWVudGlvbkVkaXRvci5zdHlsZXMnXG5cbmNvbnN0IGlzUGxhY2Vob2xkZXJUcnVuY2F0ZWRJbkVkaXRvciA9IChlZGl0b3I6IEhUTUxFbGVtZW50LCBwbGFjZWhvbGRlcjogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IHRyaW1tZWQgPSBwbGFjZWhvbGRlci50cmltKClcbiAgaWYgKCF0cmltbWVkKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgY29uc3QgeyBjbGllbnRXaWR0aCB9ID0gZWRpdG9yXG4gIGlmIChjbGllbnRXaWR0aCA8PSA0KSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjb25zdCBzdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlZGl0b3IpXG4gIGNvbnN0IGN0eCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpLmdldENvbnRleHQoJzJkJylcbiAgaWYgKCFjdHgpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBjdHguZm9udCA9IGAke3N0eWxlcy5mb250V2VpZ2h0fSAke3N0eWxlcy5mb250U2l6ZX0gJHtzdHlsZXMuZm9udEZhbWlseX1gXG4gIGNvbnN0IG1lYXN1cmVkID0gY3R4Lm1lYXN1cmVUZXh0KHRyaW1tZWQpLndpZHRoXG5cbiAgY29uc3QgcGFkZGluZ0xlZnQgPSBwYXJzZUZsb2F0KHN0eWxlcy5wYWRkaW5nTGVmdCkgfHwgMFxuICBjb25zdCBwYWRkaW5nUmlnaHQgPSBwYXJzZUZsb2F0KHN0eWxlcy5wYWRkaW5nUmlnaHQpIHx8IDBcbiAgY29uc3QgYm9yZGVyTGVmdCA9IHBhcnNlRmxvYXQoc3R5bGVzLmJvcmRlckxlZnRXaWR0aCkgfHwgMFxuICBjb25zdCBib3JkZXJSaWdodCA9IHBhcnNlRmxvYXQoc3R5bGVzLmJvcmRlclJpZ2h0V2lkdGgpIHx8IDBcbiAgY29uc3QgYXZhaWxhYmxlID0gTWF0aC5tYXgoMCwgY2xpZW50V2lkdGggLSBwYWRkaW5nTGVmdCAtIHBhZGRpbmdSaWdodCAtIGJvcmRlckxlZnQgLSBib3JkZXJSaWdodClcblxuICByZXR1cm4gbWVhc3VyZWQgPiBhdmFpbGFibGUgKyAxXG59XG5cbmV4cG9ydCB0eXBlIENvbnRleHRNZW50aW9uRWRpdG9ySGFuZGxlID0ge1xuICBmb2N1czogKCkgPT4gdm9pZFxuICBjbGVhcjogKCkgPT4gdm9pZFxuICBzZXRQbGFpblRleHQ6ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWRcbiAgLyoqIEluc2VydGEgYEBgIGVuIGVsIGNhcmV0IChjb24gZXNwYWNpbyBwcmV2aW8gc2kgaGFjZSBmYWx0YSkgeSBhYnJlIGVsIHRyaWdnZXIgZGUgbWVudGlvbnMuICovXG4gIGluc2VydE1lbnRpb25UcmlnZ2VyOiAoKSA9PiB2b2lkXG4gIC8qKiBJbnNlcnRhIGAvYCBlbiBlbCBjYXJldCAoY29uIGVzcGFjaW8gcHJldmlvIHNpIGhhY2UgZmFsdGEpIHkgYWJyZSBlbCB0cmlnZ2VyIGRlIHNsYXNoIGNvbW1hbmRzLiAqL1xuICBpbnNlcnRTbGFzaFRyaWdnZXI6ICgpID0+IHZvaWRcbiAgaW5zZXJ0TWVudGlvbjogKG1lbnRpb246IENvbnRleHRNZW50aW9uKSA9PiB2b2lkXG4gIGluc2VydFNsYXNoQ29tbWFuZDogKGNvbW1hbmQ6IFNsYXNoQ29tbWFuZENoaXBEYXRhKSA9PiB2b2lkXG4gIHN5bmNUcmlnZ2VyQXRSdW5MZW5ndGg6IChhdFJ1bkxlbmd0aDogbnVtYmVyKSA9PiB2b2lkXG4gIHNlcmlhbGl6ZTogKCkgPT4ge1xuICAgIHRleHQ6IHN0cmluZ1xuICAgIG1lbnRpb25zOiBDb250ZXh0TWVudGlvbltdXG4gICAgc2xhc2hDb21tYW5kczogU2xhc2hDb21tYW5kQ2hpcERhdGFbXVxuICB9XG4gIGhhc1Zpc3VhbE11bHRpbGluZTogKCkgPT4gYm9vbGVhblxuICAvKiogUmVjdCBkZWwgw6FyZWEgZWRpdGFibGUgKHZpZXdwb3J0KTsgbG8gdXNhIGVsIHBvcG92ZXIgZGUgQCBwYXJhIGFsaW5lYXIgYW5jaG8vb3JpZ2VuLiAqL1xuICBnZXRFZGl0b3JDbGllbnRSZWN0OiAoKSA9PiBET01SZWN0IHwgbnVsbFxufVxuXG5leHBvcnQgdHlwZSBDb250ZXh0TWVudGlvbkVkaXRvclByb3BzID0ge1xuICBwbGFjZWhvbGRlcj86IHN0cmluZ1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIC8qKiBBbHRvIG3DoXhpbW8gZGVsIMOhcmVhIGVkaXRhYmxlIChweCkuIFNlIGFqdXN0YSBjdWFuZG8gaGF5IGNoaXBzIGRlIGNvbnRleHRvL2FkanVudG9zLiAqL1xuICBtYXhIZWlnaHQ/OiBudW1iZXJcbiAgb25JbnB1dD86IChzdGF0ZToge1xuICAgIHRleHQ6IHN0cmluZ1xuICAgIG1lbnRpb25zOiBDb250ZXh0TWVudGlvbltdXG4gICAgc2xhc2hDb21tYW5kczogU2xhc2hDb21tYW5kQ2hpcERhdGFbXVxuICAgIHRyaWdnZXI6IHsgYWN0aXZlOiBib29sZWFuOyBxdWVyeTogc3RyaW5nOyBhdFJ1bkxlbmd0aDogbnVtYmVyIH1cbiAgICBzbGFzaFRyaWdnZXI6IHsgYWN0aXZlOiBib29sZWFuOyBxdWVyeTogc3RyaW5nIH1cbiAgfSkgPT4gdm9pZFxuICBvbktleURvd24/OiAoZTogS2V5Ym9hcmRFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWRcbiAgb25Gb2N1cz86ICgpID0+IHZvaWRcbiAgb25CbHVyPzogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgY29uc3QgQ29udGV4dE1lbnRpb25FZGl0b3IgPSBmb3J3YXJkUmVmPENvbnRleHRNZW50aW9uRWRpdG9ySGFuZGxlLCBDb250ZXh0TWVudGlvbkVkaXRvclByb3BzPihcbiAgKHsgcGxhY2Vob2xkZXIsIGRpc2FibGVkLCBjbGFzc05hbWUsIG1heEhlaWdodCwgb25JbnB1dCwgb25LZXlEb3duLCBvbkZvY3VzLCBvbkJsdXIgfSwgcmVmKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgZWRpdG9yUmVmLFxuICAgICAgdXBkYXRlVHJpZ2dlcixcbiAgICAgIHJlcGxhY2VUcmlnZ2VyV2l0aENoaXAsXG4gICAgICBzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoLFxuICAgICAgdXBkYXRlU2xhc2hUcmlnZ2VyLFxuICAgICAgcmVwbGFjZVRyaWdnZXJXaXRoU2xhc2hDaGlwLFxuICAgICAgc2VyaWFsaXplLFxuICAgICAgY2xlYXI6IGNsZWFyRWRpdG9yRG9tLFxuICAgICAgZm9jdXMsXG4gICAgfSA9IHVzZUNvbnRleHRNZW50aW9ucygpXG4gICAgY29uc3Qgc2tpcE5leHRJbnB1dCA9IHVzZVJlZihmYWxzZSlcbiAgICBjb25zdCBbcGxhY2Vob2xkZXJUcnVuY2F0ZWQsIHNldFBsYWNlaG9sZGVyVHJ1bmNhdGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICAgIGNvbnN0IFtsb2dpY2FsRW1wdHksIHNldExvZ2ljYWxFbXB0eV0gPSB1c2VTdGF0ZSh0cnVlKVxuXG4gICAgY29uc3Qgc3luY0VkaXRvckVtcHR5QXR0cmlidXRlID0gdXNlQ2FsbGJhY2soKGlzRW1wdHk6IGJvb2xlYW4pID0+IHtcbiAgICAgIGlmIChlZGl0b3JSZWYuY3VycmVudCkge1xuICAgICAgICBlZGl0b3JSZWYuY3VycmVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtZW1wdHknLCBTdHJpbmcoaXNFbXB0eSkpXG4gICAgICB9XG4gICAgfSwgW10pXG5cbiAgICBjb25zdCBub3JtYWxpemVFbXB0eUVkaXRvckRvbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGVkaXRvciA9IGVkaXRvclJlZi5jdXJyZW50XG4gICAgICBpZiAoIWVkaXRvcikgcmV0dXJuXG5cbiAgICAgIC8vIExpbXBpYXIgY3VhbHF1aWVyIHJlc2lkdW8gKGJyLCBlc3BhY2lvcykgcXVlIGRlamUgZWwgYnJvd3NlciBhbCB2YWNpYXIgZWwgY29udGVudGVkaXRhYmxlLlxuICAgICAgLy8gU2luIGVzdG8sIHVuIGVzcGFjaW8gc3VlbHRvIGFjdGl2YSBkYXRhLWVtcHR5PVwidHJ1ZVwiICsgOjpiZWZvcmUgcGxhY2Vob2xkZXIgZW4gbMOtbmVhIDFcbiAgICAgIC8vIHkgZGVzcGxhemEgZWwgY3Vyc29yIGEgbGEgbMOtbmVhIDIuXG4gICAgICBpZiAoZWRpdG9yLnRleHRDb250ZW50Py50cmltKCkgPT09ICcnKSB7XG4gICAgICAgIGVkaXRvci5pbm5lckhUTUwgPSAnJ1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgICAgIGlmICghc2VsZWN0aW9uKSByZXR1cm5cbiAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKVxuICAgICAgcmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGVkaXRvcilcbiAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpXG4gICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKClcbiAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSlcbiAgICB9LCBbZWRpdG9yUmVmXSlcblxuICAgIGNvbnN0IHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGVsID0gZWRpdG9yUmVmLmN1cnJlbnRcbiAgICAgIGNvbnN0IHBoID0gcGxhY2Vob2xkZXI/LnRyaW0oKSA/PyAnJ1xuICAgICAgY29uc3QgaXNFZGl0b3JMb2dpY2FsbHlFbXB0eSA9IHNlcmlhbGl6ZSgpLnRleHQudHJpbSgpID09PSAnJ1xuXG4gICAgICBpZiAoIWVsIHx8ICFwaCB8fCAhaXNFZGl0b3JMb2dpY2FsbHlFbXB0eSkge1xuICAgICAgICBzZXRQbGFjZWhvbGRlclRydW5jYXRlZChmYWxzZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHNldFBsYWNlaG9sZGVyVHJ1bmNhdGVkKGlzUGxhY2Vob2xkZXJUcnVuY2F0ZWRJbkVkaXRvcihlbCwgcGgpKVxuICAgIH0sIFtwbGFjZWhvbGRlciwgc2VyaWFsaXplXSlcblxuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24oKVxuICAgICAgY29uc3QgZWwgPSBlZGl0b3JSZWYuY3VycmVudFxuICAgICAgaWYgKCFlbCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9XG4gICAgICBjb25zdCBybyA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIHF1ZXVlTWljcm90YXNrKHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbilcbiAgICAgIH0pXG4gICAgICByby5vYnNlcnZlKGVsKVxuICAgICAgcmV0dXJuICgpID0+IHJvLmRpc2Nvbm5lY3QoKVxuICAgIH0sIFtwbGFjZWhvbGRlciwgZGlzYWJsZWQsIHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbl0pXG5cbiAgICBjb25zdCBlbWl0SW5wdXRTdGF0ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IHRyaWcgPSB1cGRhdGVUcmlnZ2VyKClcbiAgICAgIGNvbnN0IHNsYXNoVHJpZyA9IHVwZGF0ZVNsYXNoVHJpZ2dlcigpXG4gICAgICBsZXQgc3RhdGUgPSBzZXJpYWxpemUoKVxuICAgICAgY29uc3QgaXNFbXB0eSA9IHN0YXRlLnRleHQudHJpbSgpID09PSAnJ1xuICAgICAgaWYgKGlzRW1wdHkpIHtcbiAgICAgICAgbm9ybWFsaXplRW1wdHlFZGl0b3JEb20oKVxuICAgICAgICBzdGF0ZSA9IHsgdGV4dDogJycsIG1lbnRpb25zOiBbXSwgc2xhc2hDb21tYW5kczogW10gfVxuICAgICAgfVxuICAgICAgc3luY0VkaXRvckVtcHR5QXR0cmlidXRlKGlzRW1wdHkpXG4gICAgICBzZXRMb2dpY2FsRW1wdHkoaXNFbXB0eSlcbiAgICAgIG9uSW5wdXQ/Lih7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICB0cmlnZ2VyOiB7IGFjdGl2ZTogdHJpZy5hY3RpdmUsIHF1ZXJ5OiB0cmlnLnF1ZXJ5LCBhdFJ1bkxlbmd0aDogdHJpZy5hdFJ1bkxlbmd0aCB9LFxuICAgICAgICBzbGFzaFRyaWdnZXI6IHsgYWN0aXZlOiBzbGFzaFRyaWcuYWN0aXZlLCBxdWVyeTogc2xhc2hUcmlnLnF1ZXJ5IH0sXG4gICAgICB9KVxuICAgICAgcXVldWVNaWNyb3Rhc2socmVjb21wdXRlUGxhY2Vob2xkZXJUcnVuY2F0aW9uKVxuICAgIH0sIFtcbiAgICAgIHVwZGF0ZVRyaWdnZXIsXG4gICAgICB1cGRhdGVTbGFzaFRyaWdnZXIsXG4gICAgICBzZXJpYWxpemUsXG4gICAgICBub3JtYWxpemVFbXB0eUVkaXRvckRvbSxcbiAgICAgIHN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZSxcbiAgICAgIG9uSW5wdXQsXG4gICAgICByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24sXG4gICAgXSlcblxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUoXG4gICAgICByZWYsXG4gICAgICAoKSA9PiAoe1xuICAgICAgICBmb2N1cyxcbiAgICAgICAgY2xlYXI6ICgpID0+IHtcbiAgICAgICAgICBjbGVhckVkaXRvckRvbSgpXG4gICAgICAgICAgc3luY0VkaXRvckVtcHR5QXR0cmlidXRlKHRydWUpXG4gICAgICAgICAgc2V0TG9naWNhbEVtcHR5KHRydWUpXG4gICAgICAgICAgcXVldWVNaWNyb3Rhc2socmVjb21wdXRlUGxhY2Vob2xkZXJUcnVuY2F0aW9uKVxuICAgICAgICB9LFxuICAgICAgICBzZXRQbGFpblRleHQ6ICh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBjb25zdCBlZGl0b3IgPSBlZGl0b3JSZWYuY3VycmVudFxuICAgICAgICAgIGlmICghZWRpdG9yKSByZXR1cm5cbiAgICAgICAgICBjb25zdCBwbGFpbiA9IHRleHQgPz8gJydcbiAgICAgICAgICBlZGl0b3IudGV4dENvbnRlbnQgPSBwbGFpblxuICAgICAgICAgIHNraXBOZXh0SW5wdXQuY3VycmVudCA9IHRydWVcbiAgICAgICAgICBjb25zdCBzdGF0ZSA9IHNlcmlhbGl6ZSgpXG4gICAgICAgICAgY29uc3QgaXNFbXB0eSA9IHN0YXRlLnRleHQudHJpbSgpID09PSAnJ1xuICAgICAgICAgIGlmIChpc0VtcHR5KSB7XG4gICAgICAgICAgICBlZGl0b3IuaW5uZXJIVE1MID0gJydcbiAgICAgICAgICB9XG4gICAgICAgICAgc3luY0VkaXRvckVtcHR5QXR0cmlidXRlKGlzRW1wdHkpXG4gICAgICAgICAgc2V0TG9naWNhbEVtcHR5KGlzRW1wdHkpXG4gICAgICAgICAgb25JbnB1dD8uKHtcbiAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgdHJpZ2dlcjogeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwIH0sXG4gICAgICAgICAgICBzbGFzaFRyaWdnZXI6IHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgICAgICAgICBpZiAoc2VsZWN0aW9uICYmIGVkaXRvci5jaGlsZE5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKVxuICAgICAgICAgICAgcmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGVkaXRvcilcbiAgICAgICAgICAgIHJhbmdlLmNvbGxhcHNlKGZhbHNlKVxuICAgICAgICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpXG4gICAgICAgICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpXG4gICAgICAgICAgfVxuICAgICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgICAgIHNraXBOZXh0SW5wdXQuY3VycmVudCA9IGZhbHNlXG4gICAgICAgICAgICByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24oKVxuICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICAgIGluc2VydE1lbnRpb25UcmlnZ2VyOiAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZWRpdG9yID0gZWRpdG9yUmVmLmN1cnJlbnRcbiAgICAgICAgICBpZiAoIWVkaXRvciB8fCBkaXNhYmxlZCkgcmV0dXJuXG5cbiAgICAgICAgICBmb2N1cygpXG5cbiAgICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgICAgICAgICBpZiAoIXNlbGVjdGlvbikgcmV0dXJuXG5cbiAgICAgICAgICBpZiAoIXNlbGVjdGlvbi5hbmNob3JOb2RlIHx8ICFlZGl0b3IuY29udGFpbnMoc2VsZWN0aW9uLmFuY2hvck5vZGUpKSB7XG4gICAgICAgICAgICBjb25zdCBlbmRSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKClcbiAgICAgICAgICAgIGVuZFJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhlZGl0b3IpXG4gICAgICAgICAgICBlbmRSYW5nZS5jb2xsYXBzZShmYWxzZSlcbiAgICAgICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKVxuICAgICAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKGVuZFJhbmdlKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLmdldFJhbmdlQXQoMClcbiAgICAgICAgICByYW5nZS5jb2xsYXBzZSh0cnVlKVxuXG4gICAgICAgICAgbGV0IHByZWZpeCA9ICcnXG4gICAgICAgICAgY29uc3QgeyBzdGFydENvbnRhaW5lciwgc3RhcnRPZmZzZXQgfSA9IHJhbmdlXG4gICAgICAgICAgaWYgKHN0YXJ0Q29udGFpbmVyLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgICAgICAgICAgY29uc3QgcHJldkNoYXIgPSBzdGFydE9mZnNldCA+IDAgPyAoc3RhcnRDb250YWluZXIgYXMgVGV4dCkuZGF0YS5jaGFyQXQoc3RhcnRPZmZzZXQgLSAxKSA6ICcnXG4gICAgICAgICAgICAvLyBFc3BhY2lvIHNvbG8gc2kgaGF5IHRleHRvIHByZXZpbyBxdWUgbm8gc2VhIGzDrW1pdGUgbmkgYEBgIChAQCBkZWJlbiBxdWVkYXIgc2VndWlkb3MpLlxuICAgICAgICAgICAgaWYgKHByZXZDaGFyICYmICEvW1xccyhbe0BdLy50ZXN0KHByZXZDaGFyKSkge1xuICAgICAgICAgICAgICBwcmVmaXggPSAnICdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBpbnNlcnRlZCA9IGAke3ByZWZpeH1AYFxuICAgICAgICAgIGNvbnN0IHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoaW5zZXJ0ZWQpXG4gICAgICAgICAgcmFuZ2UuaW5zZXJ0Tm9kZSh0ZXh0Tm9kZSlcblxuICAgICAgICAgIC8vIFNpIGVsIGBAYCBxdWVkw7MgZW4gdW4gbm9kbyBudWV2bywgdW5pciBjb24gZWwgdGV4dCBub2RlIHByZXZpbyBxdWUgdGVybWluYSBlbiBgQGBcbiAgICAgICAgICAvLyBwYXJhIHF1ZSBkZXRlY3RNZW50aW9uVHJpZ2dlciB2ZWEgZWwgcnVuIGNvbXBsZXRvIChAQCwgQEBALCDigKYpLlxuICAgICAgICAgIGNvbnN0IHByZXZTaWJsaW5nID0gdGV4dE5vZGUucHJldmlvdXNTaWJsaW5nXG4gICAgICAgICAgbGV0IGNhcmV0Tm9kZSA9IHRleHROb2RlXG4gICAgICAgICAgbGV0IGNhcmV0T2Zmc2V0ID0gaW5zZXJ0ZWQubGVuZ3RoXG4gICAgICAgICAgaWYgKHByZWZpeCA9PT0gJycgJiYgcHJldlNpYmxpbmc/Lm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSAmJiAocHJldlNpYmxpbmcgYXMgVGV4dCkuZGF0YS5lbmRzV2l0aCgnQCcpKSB7XG4gICAgICAgICAgICBjb25zdCBwcmV2VGV4dCA9IHByZXZTaWJsaW5nIGFzIFRleHRcbiAgICAgICAgICAgIGNhcmV0T2Zmc2V0ID0gcHJldlRleHQuZGF0YS5sZW5ndGggKyBpbnNlcnRlZC5sZW5ndGhcbiAgICAgICAgICAgIHByZXZUZXh0LmRhdGEgKz0gaW5zZXJ0ZWRcbiAgICAgICAgICAgIHRleHROb2RlLnJlbW92ZSgpXG4gICAgICAgICAgICBjYXJldE5vZGUgPSBwcmV2VGV4dFxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEVsIGNhcmV0IGRlYmUgcXVlZGFyIERFTlRSTyBkZWwgdGV4dCBub2RlIChkZXNwdcOpcyBkZSBgQGApLlxuICAgICAgICAgIC8vIGBzZXRTdGFydEFmdGVyYCBsbyBkZWphIGVuIGVsIHBhZHJlIHkgZGV0ZWN0TWVudGlvblRyaWdnZXIgbm8gYWN0aXZhIGVsIHBvcG92ZXIuXG4gICAgICAgICAgcmFuZ2Uuc2V0U3RhcnQoY2FyZXROb2RlLCBjYXJldE9mZnNldClcbiAgICAgICAgICByYW5nZS5jb2xsYXBzZSh0cnVlKVxuICAgICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKVxuICAgICAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSlcblxuICAgICAgICAgIGVtaXRJbnB1dFN0YXRlKClcbiAgICAgICAgfSxcbiAgICAgICAgaW5zZXJ0U2xhc2hUcmlnZ2VyOiAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZWRpdG9yID0gZWRpdG9yUmVmLmN1cnJlbnRcbiAgICAgICAgICBpZiAoIWVkaXRvciB8fCBkaXNhYmxlZCkgcmV0dXJuXG5cbiAgICAgICAgICBmb2N1cygpXG5cbiAgICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgICAgICAgICBpZiAoIXNlbGVjdGlvbikgcmV0dXJuXG5cbiAgICAgICAgICBpZiAoIXNlbGVjdGlvbi5hbmNob3JOb2RlIHx8ICFlZGl0b3IuY29udGFpbnMoc2VsZWN0aW9uLmFuY2hvck5vZGUpKSB7XG4gICAgICAgICAgICBjb25zdCBlbmRSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKClcbiAgICAgICAgICAgIGVuZFJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhlZGl0b3IpXG4gICAgICAgICAgICBlbmRSYW5nZS5jb2xsYXBzZShmYWxzZSlcbiAgICAgICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKVxuICAgICAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKGVuZFJhbmdlKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLmdldFJhbmdlQXQoMClcbiAgICAgICAgICByYW5nZS5jb2xsYXBzZSh0cnVlKVxuXG4gICAgICAgICAgbGV0IHByZWZpeCA9ICcnXG4gICAgICAgICAgY29uc3QgeyBzdGFydENvbnRhaW5lciwgc3RhcnRPZmZzZXQgfSA9IHJhbmdlXG4gICAgICAgICAgaWYgKHN0YXJ0Q29udGFpbmVyLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgICAgICAgICAgY29uc3QgcHJldkNoYXIgPSBzdGFydE9mZnNldCA+IDAgPyAoc3RhcnRDb250YWluZXIgYXMgVGV4dCkuZGF0YS5jaGFyQXQoc3RhcnRPZmZzZXQgLSAxKSA6ICcnXG4gICAgICAgICAgICBpZiAocHJldkNoYXIgJiYgIS9bXFxzKFt7XS8udGVzdChwcmV2Q2hhcikpIHtcbiAgICAgICAgICAgICAgcHJlZml4ID0gJyAnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgaW5zZXJ0ZWQgPSBgJHtwcmVmaXh9L2BcbiAgICAgICAgICBjb25zdCB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGluc2VydGVkKVxuICAgICAgICAgIHJhbmdlLmluc2VydE5vZGUodGV4dE5vZGUpXG5cbiAgICAgICAgICAvLyBDYXJldCBkZW50cm8gZGVsIHRleHQgbm9kZSBwYXJhIHF1ZSBkZXRlY3RTbGFzaFRyaWdnZXIgYWN0aXZlIGVsIGRyb3Bkb3duLlxuICAgICAgICAgIHJhbmdlLnNldFN0YXJ0KHRleHROb2RlLCBpbnNlcnRlZC5sZW5ndGgpXG4gICAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSlcbiAgICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKClcbiAgICAgICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpXG5cbiAgICAgICAgICBlbWl0SW5wdXRTdGF0ZSgpXG4gICAgICAgIH0sXG4gICAgICAgIHNlcmlhbGl6ZSxcbiAgICAgICAgc3luY1RyaWdnZXJBdFJ1bkxlbmd0aCxcbiAgICAgICAgaGFzVmlzdWFsTXVsdGlsaW5lOiAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZWRpdG9yID0gZWRpdG9yUmVmLmN1cnJlbnRcbiAgICAgICAgICBpZiAoIWVkaXRvcikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgdGV4dCA9IGVkaXRvci50ZXh0Q29udGVudD8udHJpbSgpID8/ICcnXG4gICAgICAgICAgaWYgKCF0ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBzdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlZGl0b3IpXG4gICAgICAgICAgY29uc3QgbGluZUhlaWdodCA9IHBhcnNlRmxvYXQoc3R5bGVzLmxpbmVIZWlnaHQpIHx8IDIyXG4gICAgICAgICAgY29uc3QgZWRpdG9ySGVpZ2h0ID0gZWRpdG9yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodFxuICAgICAgICAgIGNvbnN0IGlzTXVsdGlsaW5lID0gZWRpdG9ySGVpZ2h0ID4gbGluZUhlaWdodCAqIDEuNVxuXG4gICAgICAgICAgcmV0dXJuIGlzTXVsdGlsaW5lXG4gICAgICAgIH0sXG4gICAgICAgIGdldEVkaXRvckNsaWVudFJlY3Q6ICgpID0+IGVkaXRvclJlZi5jdXJyZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSA/PyBudWxsLFxuICAgICAgICBpbnNlcnRNZW50aW9uOiAobWVudGlvbjogQ29udGV4dE1lbnRpb24pID0+IHtcbiAgICAgICAgICBjb25zdCBjaGlwID0gYnVpbGRDaGlwRWxlbWVudChtZW50aW9uKVxuICAgICAgICAgIHJlcGxhY2VUcmlnZ2VyV2l0aENoaXAoY2hpcCwgbWVudGlvbilcbiAgICAgICAgICBza2lwTmV4dElucHV0LmN1cnJlbnQgPSB0cnVlXG4gICAgICAgICAgY29uc3Qgc3RhdGUgPSBzZXJpYWxpemUoKVxuICAgICAgICAgIG9uSW5wdXQ/Lih7XG4gICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgIHRyaWdnZXI6IHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCB9LFxuICAgICAgICAgICAgc2xhc2hUcmlnZ2VyOiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJyB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICAgY29uc3QgaXNFbXB0eSA9IHN0YXRlLnRleHQudHJpbSgpID09PSAnJ1xuICAgICAgICAgIHN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZShpc0VtcHR5KVxuICAgICAgICAgIHNldExvZ2ljYWxFbXB0eShpc0VtcHR5KVxuICAgICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgICAgIC8vIFNpIGVsIG5hdmVnYWRvciBubyBkaXNwYXJhIGBpbnB1dGAgdHJhcyBlbCBjaGlwLCBlbCBmbGFnIHF1ZWRhYmEgZW4gdHJ1ZSB5IGVsIHByw7N4aW1vIEAgZGVsIHVzdWFyaW8gc2UgaWdub3JhYmEuXG4gICAgICAgICAgICBza2lwTmV4dElucHV0LmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICAgICAgcmVjb21wdXRlUGxhY2Vob2xkZXJUcnVuY2F0aW9uKClcbiAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgICBpbnNlcnRTbGFzaENvbW1hbmQ6IChjb21tYW5kOiBTbGFzaENvbW1hbmRDaGlwRGF0YSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNoaXAgPSBidWlsZFNsYXNoQ2hpcEVsZW1lbnQoY29tbWFuZClcbiAgICAgICAgICByZXBsYWNlVHJpZ2dlcldpdGhTbGFzaENoaXAoY2hpcCwgY29tbWFuZClcbiAgICAgICAgICBza2lwTmV4dElucHV0LmN1cnJlbnQgPSB0cnVlXG4gICAgICAgICAgY29uc3Qgc3RhdGUgPSBzZXJpYWxpemUoKVxuICAgICAgICAgIG9uSW5wdXQ/Lih7XG4gICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgIHRyaWdnZXI6IHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCB9LFxuICAgICAgICAgICAgc2xhc2hUcmlnZ2VyOiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJyB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICAgY29uc3QgaXNFbXB0eSA9IHN0YXRlLnRleHQudHJpbSgpID09PSAnJ1xuICAgICAgICAgIHN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZShpc0VtcHR5KVxuICAgICAgICAgIHNldExvZ2ljYWxFbXB0eShpc0VtcHR5KVxuICAgICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgICAgIHNraXBOZXh0SW5wdXQuY3VycmVudCA9IGZhbHNlXG4gICAgICAgICAgICByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24oKVxuICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIFtcbiAgICAgICAgZm9jdXMsXG4gICAgICAgIGNsZWFyRWRpdG9yRG9tLFxuICAgICAgICBzZXJpYWxpemUsXG4gICAgICAgIHN5bmNUcmlnZ2VyQXRSdW5MZW5ndGgsXG4gICAgICAgIHJlcGxhY2VUcmlnZ2VyV2l0aENoaXAsXG4gICAgICAgIHJlcGxhY2VUcmlnZ2VyV2l0aFNsYXNoQ2hpcCxcbiAgICAgICAgb25JbnB1dCxcbiAgICAgICAgcmVjb21wdXRlUGxhY2Vob2xkZXJUcnVuY2F0aW9uLFxuICAgICAgICBzeW5jRWRpdG9yRW1wdHlBdHRyaWJ1dGUsXG4gICAgICAgIGVtaXRJbnB1dFN0YXRlLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgZWRpdG9yUmVmLFxuICAgICAgXVxuICAgIClcblxuICAgIGNvbnN0IGhhbmRsZUlucHV0ID0gKCkgPT4ge1xuICAgICAgaWYgKHNraXBOZXh0SW5wdXQuY3VycmVudCkge1xuICAgICAgICBza2lwTmV4dElucHV0LmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGVtaXRJbnB1dFN0YXRlKClcbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGVQYXN0ZSA9IChlOiBDbGlwYm9hcmRFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgY29uc3QgdGV4dCA9IGUuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJylcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgICAgaWYgKCFzZWxlY3Rpb24gfHwgc2VsZWN0aW9uLnJhbmdlQ291bnQgPT09IDApIHJldHVyblxuICAgICAgc2VsZWN0aW9uLmRlbGV0ZUZyb21Eb2N1bWVudCgpXG4gICAgICBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKS5pbnNlcnROb2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpKVxuICAgICAgc2VsZWN0aW9uLmNvbGxhcHNlVG9FbmQoKVxuICAgICAgaGFuZGxlSW5wdXQoKVxuICAgIH1cblxuICAgIGNvbnN0IHRyaW1tZWRQbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyPy50cmltKCkgPz8gJydcbiAgICBjb25zdCBwbGFjZWhvbGRlclRvb2x0aXBUaXRsZSA9IGxvZ2ljYWxFbXB0eSAmJiBwbGFjZWhvbGRlclRydW5jYXRlZCAmJiB0cmltbWVkUGxhY2Vob2xkZXIgPyB0cmltbWVkUGxhY2Vob2xkZXIgOiAnJ1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxDb250ZXh0TWVudGlvbkNoaXBHbG9iYWxTdHlsZXMgLz5cbiAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3BsYWNlaG9sZGVyVG9vbHRpcFRpdGxlfT5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17eyBkaXNwbGF5OiAnYmxvY2snLCB3aWR0aDogJzEwMCUnLCBtaW5XaWR0aDogMCB9fT5cbiAgICAgICAgICAgIDxTQ01FRWRpdGFibGVcbiAgICAgICAgICAgICAgcmVmPXtlZGl0b3JSZWZ9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgICAgICAkbWF4SGVpZ2h0PXttYXhIZWlnaHR9XG4gICAgICAgICAgICAgIHN0eWxlPXttYXhIZWlnaHQgIT0gbnVsbCA/IHsgbWF4SGVpZ2h0IH0gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgIGRhdGEtcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICBkYXRhLWVtcHR5PXtTdHJpbmcobG9naWNhbEVtcHR5KX1cbiAgICAgICAgICAgICAgY29udGVudEVkaXRhYmxlPXshZGlzYWJsZWR9XG4gICAgICAgICAgICAgIGRhdGEtZGlzYWJsZWQ9e1N0cmluZyghIWRpc2FibGVkKX1cbiAgICAgICAgICAgICAgc3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXG4gICAgICAgICAgICAgIHJvbGU9XCJ0ZXh0Ym94XCJcbiAgICAgICAgICAgICAgYXJpYS1tdWx0aWxpbmU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgb25JbnB1dD17aGFuZGxlSW5wdXR9XG4gICAgICAgICAgICAgIG9uS2V5RG93bj17b25LZXlEb3dufVxuICAgICAgICAgICAgICBvblBhc3RlPXtoYW5kbGVQYXN0ZX1cbiAgICAgICAgICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgICAgICAgICAgb25CbHVyPXtvbkJsdXJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgPC8+XG4gICAgKVxuICB9XG4pXG5cbkNvbnRleHRNZW50aW9uRWRpdG9yLmRpc3BsYXlOYW1lID0gJ0NvbnRleHRNZW50aW9uRWRpdG9yJ1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsU0FFRUEsVUFBVSxFQUVWQyxXQUFXLEVBQ1hDLG1CQUFtQixFQUNuQkMsZUFBZSxFQUNmQyxNQUFNLEVBQ05DLFFBQVEsUUFDSCxPQUFPO0FBQ2Qs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
|
|
401
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3J3YXJkUmVmIiwidXNlQ2FsbGJhY2siLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwidXNlTGF5b3V0RWZmZWN0IiwidXNlUmVmIiwidXNlU3RhdGUiLCJUb29sdGlwIiwidXNlQ29udGV4dE1lbnRpb25zIiwiYnVpbGRDaGlwRWxlbWVudCIsIkNvbnRleHRNZW50aW9uQ2hpcEdsb2JhbFN0eWxlcyIsImJ1aWxkU2xhc2hDaGlwRWxlbWVudCIsIlNDTUVFZGl0YWJsZSIsImpzeCIsIl9qc3giLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImpzeHMiLCJfanN4cyIsImlzUGxhY2Vob2xkZXJUcnVuY2F0ZWRJbkVkaXRvciIsImVkaXRvciIsInBsYWNlaG9sZGVyIiwidHJpbW1lZCIsInRyaW0iLCJjbGllbnRXaWR0aCIsInN0eWxlcyIsIndpbmRvdyIsImdldENvbXB1dGVkU3R5bGUiLCJjdHgiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJnZXRDb250ZXh0IiwiZm9udCIsImNvbmNhdCIsImZvbnRXZWlnaHQiLCJmb250U2l6ZSIsImZvbnRGYW1pbHkiLCJtZWFzdXJlZCIsIm1lYXN1cmVUZXh0Iiwid2lkdGgiLCJwYWRkaW5nTGVmdCIsInBhcnNlRmxvYXQiLCJwYWRkaW5nUmlnaHQiLCJib3JkZXJMZWZ0IiwiYm9yZGVyTGVmdFdpZHRoIiwiYm9yZGVyUmlnaHQiLCJib3JkZXJSaWdodFdpZHRoIiwiYXZhaWxhYmxlIiwiTWF0aCIsIm1heCIsIkNvbnRleHRNZW50aW9uRWRpdG9yIiwiX3JlZiIsInJlZiIsIl9wbGFjZWhvbGRlciR0cmltMiIsImRpc2FibGVkIiwiY2xhc3NOYW1lIiwibWF4SGVpZ2h0Iiwib25JbnB1dCIsIm9uS2V5RG93biIsIm9uRm9jdXMiLCJvbkJsdXIiLCJfdXNlQ29udGV4dE1lbnRpb25zIiwiZWRpdG9yUmVmIiwidXBkYXRlVHJpZ2dlciIsInJlcGxhY2VUcmlnZ2VyV2l0aENoaXAiLCJzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoIiwic3luY1NraWxsVHJpZ2dlciIsInVwZGF0ZVNsYXNoVHJpZ2dlciIsInJlcGxhY2VUcmlnZ2VyV2l0aFNsYXNoQ2hpcCIsInNlcmlhbGl6ZSIsImNsZWFyRWRpdG9yRG9tIiwiY2xlYXIiLCJmb2N1cyIsInNraXBOZXh0SW5wdXQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJwbGFjZWhvbGRlclRydW5jYXRlZCIsInNldFBsYWNlaG9sZGVyVHJ1bmNhdGVkIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJsb2dpY2FsRW1wdHkiLCJzZXRMb2dpY2FsRW1wdHkiLCJzeW5jRWRpdG9yRW1wdHlBdHRyaWJ1dGUiLCJpc0VtcHR5IiwiY3VycmVudCIsInNldEF0dHJpYnV0ZSIsIlN0cmluZyIsIm5vcm1hbGl6ZUVtcHR5RWRpdG9yRG9tIiwiX2VkaXRvciR0ZXh0Q29udGVudCIsInRleHRDb250ZW50IiwiaW5uZXJIVE1MIiwic2VsZWN0aW9uIiwiZ2V0U2VsZWN0aW9uIiwicmFuZ2UiLCJjcmVhdGVSYW5nZSIsInNlbGVjdE5vZGVDb250ZW50cyIsImNvbGxhcHNlIiwicmVtb3ZlQWxsUmFuZ2VzIiwiYWRkUmFuZ2UiLCJyZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24iLCJfcGxhY2Vob2xkZXIkdHJpbSIsImVsIiwicGgiLCJpc0VkaXRvckxvZ2ljYWxseUVtcHR5IiwidGV4dCIsInVuZGVmaW5lZCIsInJvIiwiUmVzaXplT2JzZXJ2ZXIiLCJxdWV1ZU1pY3JvdGFzayIsIm9ic2VydmUiLCJkaXNjb25uZWN0IiwiZW1pdElucHV0U3RhdGUiLCJ0cmlnIiwic2xhc2hUcmlnIiwic3RhdGUiLCJtZW50aW9ucyIsInNsYXNoQ29tbWFuZHMiLCJfb2JqZWN0U3ByZWFkIiwidHJpZ2dlciIsImFjdGl2ZSIsInF1ZXJ5IiwiYXRSdW5MZW5ndGgiLCJzbGFzaFRyaWdnZXIiLCJzZXRQbGFpblRleHQiLCJwbGFpbiIsImNoaWxkTm9kZXMiLCJsZW5ndGgiLCJpbnNlcnRNZW50aW9uVHJpZ2dlciIsImFuY2hvck5vZGUiLCJjb250YWlucyIsImVuZFJhbmdlIiwiZ2V0UmFuZ2VBdCIsInByZWZpeCIsInN0YXJ0Q29udGFpbmVyIiwic3RhcnRPZmZzZXQiLCJub2RlVHlwZSIsIk5vZGUiLCJURVhUX05PREUiLCJwcmV2Q2hhciIsImRhdGEiLCJjaGFyQXQiLCJ0ZXN0IiwiaW5zZXJ0ZWQiLCJ0ZXh0Tm9kZSIsImNyZWF0ZVRleHROb2RlIiwiaW5zZXJ0Tm9kZSIsInByZXZTaWJsaW5nIiwicHJldmlvdXNTaWJsaW5nIiwiY2FyZXROb2RlIiwiY2FyZXRPZmZzZXQiLCJlbmRzV2l0aCIsInByZXZUZXh0IiwicmVtb3ZlIiwic2V0U3RhcnQiLCJpbnNlcnRTbGFzaFRyaWdnZXIiLCJoYXNWaXN1YWxNdWx0aWxpbmUiLCJfZWRpdG9yJHRleHRDb250ZW50JHQiLCJfZWRpdG9yJHRleHRDb250ZW50MiIsImxpbmVIZWlnaHQiLCJlZGl0b3JIZWlnaHQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJoZWlnaHQiLCJpc011bHRpbGluZSIsImdldEVkaXRvckNsaWVudFJlY3QiLCJfZWRpdG9yUmVmJGN1cnJlbnQkZ2UiLCJfZWRpdG9yUmVmJGN1cnJlbnQiLCJpbnNlcnRNZW50aW9uIiwibWVudGlvbiIsImNoaXAiLCJpbnNlcnRTbGFzaENvbW1hbmQiLCJjb21tYW5kIiwiaGFuZGxlSW5wdXQiLCJoYW5kbGVQYXN0ZSIsImUiLCJwcmV2ZW50RGVmYXVsdCIsImNsaXBib2FyZERhdGEiLCJnZXREYXRhIiwicmFuZ2VDb3VudCIsImRlbGV0ZUZyb21Eb2N1bWVudCIsImNvbGxhcHNlVG9FbmQiLCJ0cmltbWVkUGxhY2Vob2xkZXIiLCJwbGFjZWhvbGRlclRvb2x0aXBUaXRsZSIsImNoaWxkcmVuIiwidGl0bGUiLCJzdHlsZSIsImRpc3BsYXkiLCJtaW5XaWR0aCIsIiRtYXhIZWlnaHQiLCJjb250ZW50RWRpdGFibGUiLCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmciLCJyb2xlIiwib25QYXN0ZSIsImRpc3BsYXlOYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvQ29udGV4dE1lbnRpb25FZGl0b3IvQ29udGV4dE1lbnRpb25FZGl0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENsaXBib2FyZEV2ZW50LFxuICBmb3J3YXJkUmVmLFxuICBLZXlib2FyZEV2ZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZSxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IHVzZUNvbnRleHRNZW50aW9ucyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUNvbnRleHRNZW50aW9ucydcbmltcG9ydCB7IENvbnRleHRNZW50aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQgeyBidWlsZENoaXBFbGVtZW50IH0gZnJvbSAnLi4vQ29udGV4dE1lbnRpb25DaGlwJ1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb25DaGlwR2xvYmFsU3R5bGVzIH0gZnJvbSAnLi4vQ29udGV4dE1lbnRpb25DaGlwL0NvbnRleHRNZW50aW9uQ2hpcC5zdHlsZXMnXG5pbXBvcnQgeyBidWlsZFNsYXNoQ2hpcEVsZW1lbnQsIFNsYXNoQ29tbWFuZENoaXBEYXRhIH0gZnJvbSAnLi4vU2xhc2hDb21tYW5kQ2hpcCdcbmltcG9ydCB7IFNDTUVFZGl0YWJsZSB9IGZyb20gJy4vQ29udGV4dE1lbnRpb25FZGl0b3Iuc3R5bGVzJ1xuXG5jb25zdCBpc1BsYWNlaG9sZGVyVHJ1bmNhdGVkSW5FZGl0b3IgPSAoZWRpdG9yOiBIVE1MRWxlbWVudCwgcGxhY2Vob2xkZXI6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICBjb25zdCB0cmltbWVkID0gcGxhY2Vob2xkZXIudHJpbSgpXG4gIGlmICghdHJpbW1lZCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGNvbnN0IHsgY2xpZW50V2lkdGggfSA9IGVkaXRvclxuICBpZiAoY2xpZW50V2lkdGggPD0gNCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgY29uc3Qgc3R5bGVzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWRpdG9yKVxuICBjb25zdCBjdHggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKS5nZXRDb250ZXh0KCcyZCcpXG4gIGlmICghY3R4KSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgY3R4LmZvbnQgPSBgJHtzdHlsZXMuZm9udFdlaWdodH0gJHtzdHlsZXMuZm9udFNpemV9ICR7c3R5bGVzLmZvbnRGYW1pbHl9YFxuICBjb25zdCBtZWFzdXJlZCA9IGN0eC5tZWFzdXJlVGV4dCh0cmltbWVkKS53aWR0aFxuXG4gIGNvbnN0IHBhZGRpbmdMZWZ0ID0gcGFyc2VGbG9hdChzdHlsZXMucGFkZGluZ0xlZnQpIHx8IDBcbiAgY29uc3QgcGFkZGluZ1JpZ2h0ID0gcGFyc2VGbG9hdChzdHlsZXMucGFkZGluZ1JpZ2h0KSB8fCAwXG4gIGNvbnN0IGJvcmRlckxlZnQgPSBwYXJzZUZsb2F0KHN0eWxlcy5ib3JkZXJMZWZ0V2lkdGgpIHx8IDBcbiAgY29uc3QgYm9yZGVyUmlnaHQgPSBwYXJzZUZsb2F0KHN0eWxlcy5ib3JkZXJSaWdodFdpZHRoKSB8fCAwXG4gIGNvbnN0IGF2YWlsYWJsZSA9IE1hdGgubWF4KDAsIGNsaWVudFdpZHRoIC0gcGFkZGluZ0xlZnQgLSBwYWRkaW5nUmlnaHQgLSBib3JkZXJMZWZ0IC0gYm9yZGVyUmlnaHQpXG5cbiAgcmV0dXJuIG1lYXN1cmVkID4gYXZhaWxhYmxlICsgMVxufVxuXG5leHBvcnQgdHlwZSBDb250ZXh0TWVudGlvbkVkaXRvckhhbmRsZSA9IHtcbiAgZm9jdXM6ICgpID0+IHZvaWRcbiAgY2xlYXI6ICgpID0+IHZvaWRcbiAgc2V0UGxhaW5UZXh0OiAodGV4dDogc3RyaW5nKSA9PiB2b2lkXG4gIC8qKiBJbnNlcnRhIGBAYCBlbiBlbCBjYXJldCAoY29uIGVzcGFjaW8gcHJldmlvIHNpIGhhY2UgZmFsdGEpIHkgYWJyZSBlbCB0cmlnZ2VyIGRlIG1lbnRpb25zLiAqL1xuICBpbnNlcnRNZW50aW9uVHJpZ2dlcjogKCkgPT4gdm9pZFxuICAvKiogSW5zZXJ0YSBgL2AgZW4gZWwgY2FyZXQgKGNvbiBlc3BhY2lvIHByZXZpbyBzaSBoYWNlIGZhbHRhKSB5IGFicmUgZWwgdHJpZ2dlciBkZSBzbGFzaCBjb21tYW5kcy4gKi9cbiAgaW5zZXJ0U2xhc2hUcmlnZ2VyOiAoKSA9PiB2b2lkXG4gIGluc2VydE1lbnRpb246IChtZW50aW9uOiBDb250ZXh0TWVudGlvbikgPT4gdm9pZFxuICBpbnNlcnRTbGFzaENvbW1hbmQ6IChjb21tYW5kOiBTbGFzaENvbW1hbmRDaGlwRGF0YSkgPT4gdm9pZFxuICBzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoOiAoYXRSdW5MZW5ndGg6IG51bWJlcikgPT4gdm9pZFxuICAvKiogQ29udmllcnRlIGVsIHRyaWdnZXIgYWN0aXZvIGEgYEAvcXVlcnlgIHBhcmEgYWN0aXZhciBsYSB0YWIgZGUgc2tpbGxzLiAqL1xuICBzeW5jU2tpbGxUcmlnZ2VyOiAoKSA9PiB2b2lkXG4gIHNlcmlhbGl6ZTogKCkgPT4ge1xuICAgIHRleHQ6IHN0cmluZ1xuICAgIG1lbnRpb25zOiBDb250ZXh0TWVudGlvbltdXG4gICAgc2xhc2hDb21tYW5kczogU2xhc2hDb21tYW5kQ2hpcERhdGFbXVxuICB9XG4gIGhhc1Zpc3VhbE11bHRpbGluZTogKCkgPT4gYm9vbGVhblxuICAvKiogUmVjdCBkZWwgw6FyZWEgZWRpdGFibGUgKHZpZXdwb3J0KTsgbG8gdXNhIGVsIHBvcG92ZXIgZGUgQCBwYXJhIGFsaW5lYXIgYW5jaG8vb3JpZ2VuLiAqL1xuICBnZXRFZGl0b3JDbGllbnRSZWN0OiAoKSA9PiBET01SZWN0IHwgbnVsbFxufVxuXG5leHBvcnQgdHlwZSBDb250ZXh0TWVudGlvbkVkaXRvclByb3BzID0ge1xuICBwbGFjZWhvbGRlcj86IHN0cmluZ1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIC8qKiBBbHRvIG3DoXhpbW8gZGVsIMOhcmVhIGVkaXRhYmxlIChweCkuIFNlIGFqdXN0YSBjdWFuZG8gaGF5IGNoaXBzIGRlIGNvbnRleHRvL2FkanVudG9zLiAqL1xuICBtYXhIZWlnaHQ/OiBudW1iZXJcbiAgb25JbnB1dD86IChzdGF0ZToge1xuICAgIHRleHQ6IHN0cmluZ1xuICAgIG1lbnRpb25zOiBDb250ZXh0TWVudGlvbltdXG4gICAgc2xhc2hDb21tYW5kczogU2xhc2hDb21tYW5kQ2hpcERhdGFbXVxuICAgIHRyaWdnZXI6IHsgYWN0aXZlOiBib29sZWFuOyBxdWVyeTogc3RyaW5nOyBhdFJ1bkxlbmd0aDogbnVtYmVyIH1cbiAgICBzbGFzaFRyaWdnZXI6IHsgYWN0aXZlOiBib29sZWFuOyBxdWVyeTogc3RyaW5nIH1cbiAgfSkgPT4gdm9pZFxuICBvbktleURvd24/OiAoZTogS2V5Ym9hcmRFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWRcbiAgb25Gb2N1cz86ICgpID0+IHZvaWRcbiAgb25CbHVyPzogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgY29uc3QgQ29udGV4dE1lbnRpb25FZGl0b3IgPSBmb3J3YXJkUmVmPENvbnRleHRNZW50aW9uRWRpdG9ySGFuZGxlLCBDb250ZXh0TWVudGlvbkVkaXRvclByb3BzPihcbiAgKHsgcGxhY2Vob2xkZXIsIGRpc2FibGVkLCBjbGFzc05hbWUsIG1heEhlaWdodCwgb25JbnB1dCwgb25LZXlEb3duLCBvbkZvY3VzLCBvbkJsdXIgfSwgcmVmKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgZWRpdG9yUmVmLFxuICAgICAgdXBkYXRlVHJpZ2dlcixcbiAgICAgIHJlcGxhY2VUcmlnZ2VyV2l0aENoaXAsXG4gICAgICBzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoLFxuICAgICAgc3luY1NraWxsVHJpZ2dlcixcbiAgICAgIHVwZGF0ZVNsYXNoVHJpZ2dlcixcbiAgICAgIHJlcGxhY2VUcmlnZ2VyV2l0aFNsYXNoQ2hpcCxcbiAgICAgIHNlcmlhbGl6ZSxcbiAgICAgIGNsZWFyOiBjbGVhckVkaXRvckRvbSxcbiAgICAgIGZvY3VzLFxuICAgIH0gPSB1c2VDb250ZXh0TWVudGlvbnMoKVxuICAgIGNvbnN0IHNraXBOZXh0SW5wdXQgPSB1c2VSZWYoZmFsc2UpXG4gICAgY29uc3QgW3BsYWNlaG9sZGVyVHJ1bmNhdGVkLCBzZXRQbGFjZWhvbGRlclRydW5jYXRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbbG9naWNhbEVtcHR5LCBzZXRMb2dpY2FsRW1wdHldID0gdXNlU3RhdGUodHJ1ZSlcblxuICAgIGNvbnN0IHN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZSA9IHVzZUNhbGxiYWNrKChpc0VtcHR5OiBib29sZWFuKSA9PiB7XG4gICAgICBpZiAoZWRpdG9yUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQuc2V0QXR0cmlidXRlKCdkYXRhLWVtcHR5JywgU3RyaW5nKGlzRW1wdHkpKVxuICAgICAgfVxuICAgIH0sIFtdKVxuXG4gICAgY29uc3Qgbm9ybWFsaXplRW1wdHlFZGl0b3JEb20gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCBlZGl0b3IgPSBlZGl0b3JSZWYuY3VycmVudFxuICAgICAgaWYgKCFlZGl0b3IpIHJldHVyblxuXG4gICAgICAvLyBMaW1waWFyIGN1YWxxdWllciByZXNpZHVvIChiciwgZXNwYWNpb3MpIHF1ZSBkZWplIGVsIGJyb3dzZXIgYWwgdmFjaWFyIGVsIGNvbnRlbnRlZGl0YWJsZS5cbiAgICAgIC8vIFNpbiBlc3RvLCB1biBlc3BhY2lvIHN1ZWx0byBhY3RpdmEgZGF0YS1lbXB0eT1cInRydWVcIiArIDo6YmVmb3JlIHBsYWNlaG9sZGVyIGVuIGzDrW5lYSAxXG4gICAgICAvLyB5IGRlc3BsYXphIGVsIGN1cnNvciBhIGxhIGzDrW5lYSAyLlxuICAgICAgaWYgKGVkaXRvci50ZXh0Q29udGVudD8udHJpbSgpID09PSAnJykge1xuICAgICAgICBlZGl0b3IuaW5uZXJIVE1MID0gJydcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgICBpZiAoIXNlbGVjdGlvbikgcmV0dXJuXG4gICAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKClcbiAgICAgIHJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhlZGl0b3IpXG4gICAgICByYW5nZS5jb2xsYXBzZSh0cnVlKVxuICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpXG4gICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpXG4gICAgfSwgW2VkaXRvclJlZl0pXG5cbiAgICBjb25zdCByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCBlbCA9IGVkaXRvclJlZi5jdXJyZW50XG4gICAgICBjb25zdCBwaCA9IHBsYWNlaG9sZGVyPy50cmltKCkgPz8gJydcbiAgICAgIGNvbnN0IGlzRWRpdG9yTG9naWNhbGx5RW1wdHkgPSBzZXJpYWxpemUoKS50ZXh0LnRyaW0oKSA9PT0gJydcblxuICAgICAgaWYgKCFlbCB8fCAhcGggfHwgIWlzRWRpdG9yTG9naWNhbGx5RW1wdHkpIHtcbiAgICAgICAgc2V0UGxhY2Vob2xkZXJUcnVuY2F0ZWQoZmFsc2UpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBzZXRQbGFjZWhvbGRlclRydW5jYXRlZChpc1BsYWNlaG9sZGVyVHJ1bmNhdGVkSW5FZGl0b3IoZWwsIHBoKSlcbiAgICB9LCBbcGxhY2Vob2xkZXIsIHNlcmlhbGl6ZV0pXG5cbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgcmVjb21wdXRlUGxhY2Vob2xkZXJUcnVuY2F0aW9uKClcbiAgICAgIGNvbnN0IGVsID0gZWRpdG9yUmVmLmN1cnJlbnRcbiAgICAgIGlmICghZWwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgfVxuICAgICAgY29uc3Qgcm8gPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICBxdWV1ZU1pY3JvdGFzayhyZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24pXG4gICAgICB9KVxuICAgICAgcm8ub2JzZXJ2ZShlbClcbiAgICAgIHJldHVybiAoKSA9PiByby5kaXNjb25uZWN0KClcbiAgICB9LCBbcGxhY2Vob2xkZXIsIGRpc2FibGVkLCByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb25dKVxuXG4gICAgY29uc3QgZW1pdElucHV0U3RhdGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCB0cmlnID0gdXBkYXRlVHJpZ2dlcigpXG4gICAgICBjb25zdCBzbGFzaFRyaWcgPSB1cGRhdGVTbGFzaFRyaWdnZXIoKVxuICAgICAgbGV0IHN0YXRlID0gc2VyaWFsaXplKClcbiAgICAgIGNvbnN0IGlzRW1wdHkgPSBzdGF0ZS50ZXh0LnRyaW0oKSA9PT0gJydcbiAgICAgIGlmIChpc0VtcHR5KSB7XG4gICAgICAgIG5vcm1hbGl6ZUVtcHR5RWRpdG9yRG9tKClcbiAgICAgICAgc3RhdGUgPSB7IHRleHQ6ICcnLCBtZW50aW9uczogW10sIHNsYXNoQ29tbWFuZHM6IFtdIH1cbiAgICAgIH1cbiAgICAgIHN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZShpc0VtcHR5KVxuICAgICAgc2V0TG9naWNhbEVtcHR5KGlzRW1wdHkpXG4gICAgICBvbklucHV0Py4oe1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgdHJpZ2dlcjogeyBhY3RpdmU6IHRyaWcuYWN0aXZlLCBxdWVyeTogdHJpZy5xdWVyeSwgYXRSdW5MZW5ndGg6IHRyaWcuYXRSdW5MZW5ndGggfSxcbiAgICAgICAgc2xhc2hUcmlnZ2VyOiB7IGFjdGl2ZTogc2xhc2hUcmlnLmFjdGl2ZSwgcXVlcnk6IHNsYXNoVHJpZy5xdWVyeSB9LFxuICAgICAgfSlcbiAgICAgIHF1ZXVlTWljcm90YXNrKHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbilcbiAgICB9LCBbXG4gICAgICB1cGRhdGVUcmlnZ2VyLFxuICAgICAgdXBkYXRlU2xhc2hUcmlnZ2VyLFxuICAgICAgc2VyaWFsaXplLFxuICAgICAgbm9ybWFsaXplRW1wdHlFZGl0b3JEb20sXG4gICAgICBzeW5jRWRpdG9yRW1wdHlBdHRyaWJ1dGUsXG4gICAgICBvbklucHV0LFxuICAgICAgcmVjb21wdXRlUGxhY2Vob2xkZXJUcnVuY2F0aW9uLFxuICAgIF0pXG5cbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKFxuICAgICAgcmVmLFxuICAgICAgKCkgPT4gKHtcbiAgICAgICAgZm9jdXMsXG4gICAgICAgIGNsZWFyOiAoKSA9PiB7XG4gICAgICAgICAgY2xlYXJFZGl0b3JEb20oKVxuICAgICAgICAgIHN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZSh0cnVlKVxuICAgICAgICAgIHNldExvZ2ljYWxFbXB0eSh0cnVlKVxuICAgICAgICAgIHF1ZXVlTWljcm90YXNrKHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbilcbiAgICAgICAgfSxcbiAgICAgICAgc2V0UGxhaW5UZXh0OiAodGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgY29uc3QgZWRpdG9yID0gZWRpdG9yUmVmLmN1cnJlbnRcbiAgICAgICAgICBpZiAoIWVkaXRvcikgcmV0dXJuXG4gICAgICAgICAgY29uc3QgcGxhaW4gPSB0ZXh0ID8/ICcnXG4gICAgICAgICAgZWRpdG9yLnRleHRDb250ZW50ID0gcGxhaW5cbiAgICAgICAgICBza2lwTmV4dElucHV0LmN1cnJlbnQgPSB0cnVlXG4gICAgICAgICAgY29uc3Qgc3RhdGUgPSBzZXJpYWxpemUoKVxuICAgICAgICAgIGNvbnN0IGlzRW1wdHkgPSBzdGF0ZS50ZXh0LnRyaW0oKSA9PT0gJydcbiAgICAgICAgICBpZiAoaXNFbXB0eSkge1xuICAgICAgICAgICAgZWRpdG9yLmlubmVySFRNTCA9ICcnXG4gICAgICAgICAgfVxuICAgICAgICAgIHN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZShpc0VtcHR5KVxuICAgICAgICAgIHNldExvZ2ljYWxFbXB0eShpc0VtcHR5KVxuICAgICAgICAgIG9uSW5wdXQ/Lih7XG4gICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgIHRyaWdnZXI6IHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCB9LFxuICAgICAgICAgICAgc2xhc2hUcmlnZ2VyOiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJyB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgICAgICAgaWYgKHNlbGVjdGlvbiAmJiBlZGl0b3IuY2hpbGROb2Rlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKClcbiAgICAgICAgICAgIHJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhlZGl0b3IpXG4gICAgICAgICAgICByYW5nZS5jb2xsYXBzZShmYWxzZSlcbiAgICAgICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKVxuICAgICAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKVxuICAgICAgICAgIH1cbiAgICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgICAgICBza2lwTmV4dElucHV0LmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICAgICAgcmVjb21wdXRlUGxhY2Vob2xkZXJUcnVuY2F0aW9uKClcbiAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgICBpbnNlcnRNZW50aW9uVHJpZ2dlcjogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGVkaXRvciA9IGVkaXRvclJlZi5jdXJyZW50XG4gICAgICAgICAgaWYgKCFlZGl0b3IgfHwgZGlzYWJsZWQpIHJldHVyblxuXG4gICAgICAgICAgZm9jdXMoKVxuXG4gICAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgICAgICAgaWYgKCFzZWxlY3Rpb24pIHJldHVyblxuXG4gICAgICAgICAgaWYgKCFzZWxlY3Rpb24uYW5jaG9yTm9kZSB8fCAhZWRpdG9yLmNvbnRhaW5zKHNlbGVjdGlvbi5hbmNob3JOb2RlKSkge1xuICAgICAgICAgICAgY29uc3QgZW5kUmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpXG4gICAgICAgICAgICBlbmRSYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoZWRpdG9yKVxuICAgICAgICAgICAgZW5kUmFuZ2UuY29sbGFwc2UoZmFsc2UpXG4gICAgICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKClcbiAgICAgICAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShlbmRSYW5nZSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApXG4gICAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSlcblxuICAgICAgICAgIGxldCBwcmVmaXggPSAnJ1xuICAgICAgICAgIGNvbnN0IHsgc3RhcnRDb250YWluZXIsIHN0YXJ0T2Zmc2V0IH0gPSByYW5nZVxuICAgICAgICAgIGlmIChzdGFydENvbnRhaW5lci5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZDaGFyID0gc3RhcnRPZmZzZXQgPiAwID8gKHN0YXJ0Q29udGFpbmVyIGFzIFRleHQpLmRhdGEuY2hhckF0KHN0YXJ0T2Zmc2V0IC0gMSkgOiAnJ1xuICAgICAgICAgICAgLy8gRXNwYWNpbyBzb2xvIHNpIGhheSB0ZXh0byBwcmV2aW8gcXVlIG5vIHNlYSBsw61taXRlIG5pIGBAYCAoQEAgZGViZW4gcXVlZGFyIHNlZ3VpZG9zKS5cbiAgICAgICAgICAgIGlmIChwcmV2Q2hhciAmJiAhL1tcXHMoW3tAXS8udGVzdChwcmV2Q2hhcikpIHtcbiAgICAgICAgICAgICAgcHJlZml4ID0gJyAnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgaW5zZXJ0ZWQgPSBgJHtwcmVmaXh9QGBcbiAgICAgICAgICBjb25zdCB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGluc2VydGVkKVxuICAgICAgICAgIHJhbmdlLmluc2VydE5vZGUodGV4dE5vZGUpXG5cbiAgICAgICAgICAvLyBTaSBlbCBgQGAgcXVlZMOzIGVuIHVuIG5vZG8gbnVldm8sIHVuaXIgY29uIGVsIHRleHQgbm9kZSBwcmV2aW8gcXVlIHRlcm1pbmEgZW4gYEBgXG4gICAgICAgICAgLy8gcGFyYSBxdWUgZGV0ZWN0TWVudGlvblRyaWdnZXIgdmVhIGVsIHJ1biBjb21wbGV0byAoQEAsIEBAQCwg4oCmKS5cbiAgICAgICAgICBjb25zdCBwcmV2U2libGluZyA9IHRleHROb2RlLnByZXZpb3VzU2libGluZ1xuICAgICAgICAgIGxldCBjYXJldE5vZGUgPSB0ZXh0Tm9kZVxuICAgICAgICAgIGxldCBjYXJldE9mZnNldCA9IGluc2VydGVkLmxlbmd0aFxuICAgICAgICAgIGlmIChwcmVmaXggPT09ICcnICYmIHByZXZTaWJsaW5nPy5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUgJiYgKHByZXZTaWJsaW5nIGFzIFRleHQpLmRhdGEuZW5kc1dpdGgoJ0AnKSkge1xuICAgICAgICAgICAgY29uc3QgcHJldlRleHQgPSBwcmV2U2libGluZyBhcyBUZXh0XG4gICAgICAgICAgICBjYXJldE9mZnNldCA9IHByZXZUZXh0LmRhdGEubGVuZ3RoICsgaW5zZXJ0ZWQubGVuZ3RoXG4gICAgICAgICAgICBwcmV2VGV4dC5kYXRhICs9IGluc2VydGVkXG4gICAgICAgICAgICB0ZXh0Tm9kZS5yZW1vdmUoKVxuICAgICAgICAgICAgY2FyZXROb2RlID0gcHJldlRleHRcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBFbCBjYXJldCBkZWJlIHF1ZWRhciBERU5UUk8gZGVsIHRleHQgbm9kZSAoZGVzcHXDqXMgZGUgYEBgKS5cbiAgICAgICAgICAvLyBgc2V0U3RhcnRBZnRlcmAgbG8gZGVqYSBlbiBlbCBwYWRyZSB5IGRldGVjdE1lbnRpb25UcmlnZ2VyIG5vIGFjdGl2YSBlbCBwb3BvdmVyLlxuICAgICAgICAgIHJhbmdlLnNldFN0YXJ0KGNhcmV0Tm9kZSwgY2FyZXRPZmZzZXQpXG4gICAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSlcbiAgICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKClcbiAgICAgICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpXG5cbiAgICAgICAgICBlbWl0SW5wdXRTdGF0ZSgpXG4gICAgICAgIH0sXG4gICAgICAgIGluc2VydFNsYXNoVHJpZ2dlcjogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGVkaXRvciA9IGVkaXRvclJlZi5jdXJyZW50XG4gICAgICAgICAgaWYgKCFlZGl0b3IgfHwgZGlzYWJsZWQpIHJldHVyblxuXG4gICAgICAgICAgZm9jdXMoKVxuXG4gICAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgICAgICAgaWYgKCFzZWxlY3Rpb24pIHJldHVyblxuXG4gICAgICAgICAgaWYgKCFzZWxlY3Rpb24uYW5jaG9yTm9kZSB8fCAhZWRpdG9yLmNvbnRhaW5zKHNlbGVjdGlvbi5hbmNob3JOb2RlKSkge1xuICAgICAgICAgICAgY29uc3QgZW5kUmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpXG4gICAgICAgICAgICBlbmRSYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoZWRpdG9yKVxuICAgICAgICAgICAgZW5kUmFuZ2UuY29sbGFwc2UoZmFsc2UpXG4gICAgICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKClcbiAgICAgICAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShlbmRSYW5nZSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApXG4gICAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSlcblxuICAgICAgICAgIGxldCBwcmVmaXggPSAnJ1xuICAgICAgICAgIGNvbnN0IHsgc3RhcnRDb250YWluZXIsIHN0YXJ0T2Zmc2V0IH0gPSByYW5nZVxuICAgICAgICAgIGlmIChzdGFydENvbnRhaW5lci5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZDaGFyID0gc3RhcnRPZmZzZXQgPiAwID8gKHN0YXJ0Q29udGFpbmVyIGFzIFRleHQpLmRhdGEuY2hhckF0KHN0YXJ0T2Zmc2V0IC0gMSkgOiAnJ1xuICAgICAgICAgICAgaWYgKHByZXZDaGFyICYmICEvW1xccyhbe10vLnRlc3QocHJldkNoYXIpKSB7XG4gICAgICAgICAgICAgIHByZWZpeCA9ICcgJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGluc2VydGVkID0gYCR7cHJlZml4fS9gXG4gICAgICAgICAgY29uc3QgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShpbnNlcnRlZClcbiAgICAgICAgICByYW5nZS5pbnNlcnROb2RlKHRleHROb2RlKVxuXG4gICAgICAgICAgLy8gQ2FyZXQgZGVudHJvIGRlbCB0ZXh0IG5vZGUgcGFyYSBxdWUgZGV0ZWN0U2xhc2hUcmlnZ2VyIGFjdGl2ZSBlbCBkcm9wZG93bi5cbiAgICAgICAgICByYW5nZS5zZXRTdGFydCh0ZXh0Tm9kZSwgaW5zZXJ0ZWQubGVuZ3RoKVxuICAgICAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpXG4gICAgICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpXG4gICAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKVxuXG4gICAgICAgICAgZW1pdElucHV0U3RhdGUoKVxuICAgICAgICB9LFxuICAgICAgICBzZXJpYWxpemUsXG4gICAgICAgIHN5bmNUcmlnZ2VyQXRSdW5MZW5ndGgsXG4gICAgICAgIHN5bmNTa2lsbFRyaWdnZXIsXG4gICAgICAgIGhhc1Zpc3VhbE11bHRpbGluZTogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGVkaXRvciA9IGVkaXRvclJlZi5jdXJyZW50XG4gICAgICAgICAgaWYgKCFlZGl0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHRleHQgPSBlZGl0b3IudGV4dENvbnRlbnQ/LnRyaW0oKSA/PyAnJ1xuICAgICAgICAgIGlmICghdGV4dCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgc3R5bGVzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWRpdG9yKVxuICAgICAgICAgIGNvbnN0IGxpbmVIZWlnaHQgPSBwYXJzZUZsb2F0KHN0eWxlcy5saW5lSGVpZ2h0KSB8fCAyMlxuICAgICAgICAgIGNvbnN0IGVkaXRvckhlaWdodCA9IGVkaXRvci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHRcbiAgICAgICAgICBjb25zdCBpc011bHRpbGluZSA9IGVkaXRvckhlaWdodCA+IGxpbmVIZWlnaHQgKiAxLjVcblxuICAgICAgICAgIHJldHVybiBpc011bHRpbGluZVxuICAgICAgICB9LFxuICAgICAgICBnZXRFZGl0b3JDbGllbnRSZWN0OiAoKSA9PiBlZGl0b3JSZWYuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgPz8gbnVsbCxcbiAgICAgICAgaW5zZXJ0TWVudGlvbjogKG1lbnRpb246IENvbnRleHRNZW50aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgY2hpcCA9IGJ1aWxkQ2hpcEVsZW1lbnQobWVudGlvbilcbiAgICAgICAgICByZXBsYWNlVHJpZ2dlcldpdGhDaGlwKGNoaXAsIG1lbnRpb24pXG4gICAgICAgICAgc2tpcE5leHRJbnB1dC5jdXJyZW50ID0gdHJ1ZVxuICAgICAgICAgIGNvbnN0IHN0YXRlID0gc2VyaWFsaXplKClcbiAgICAgICAgICBvbklucHV0Py4oe1xuICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICB0cmlnZ2VyOiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAgfSxcbiAgICAgICAgICAgIHNsYXNoVHJpZ2dlcjogeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycgfSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIGNvbnN0IGlzRW1wdHkgPSBzdGF0ZS50ZXh0LnRyaW0oKSA9PT0gJydcbiAgICAgICAgICBzeW5jRWRpdG9yRW1wdHlBdHRyaWJ1dGUoaXNFbXB0eSlcbiAgICAgICAgICBzZXRMb2dpY2FsRW1wdHkoaXNFbXB0eSlcbiAgICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgICAgICAvLyBTaSBlbCBuYXZlZ2Fkb3Igbm8gZGlzcGFyYSBgaW5wdXRgIHRyYXMgZWwgY2hpcCwgZWwgZmxhZyBxdWVkYWJhIGVuIHRydWUgeSBlbCBwcsOzeGltbyBAIGRlbCB1c3VhcmlvIHNlIGlnbm9yYWJhLlxuICAgICAgICAgICAgc2tpcE5leHRJbnB1dC5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgICAgIHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbigpXG4gICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgICAgaW5zZXJ0U2xhc2hDb21tYW5kOiAoY29tbWFuZDogU2xhc2hDb21tYW5kQ2hpcERhdGEpID0+IHtcbiAgICAgICAgICBjb25zdCBjaGlwID0gYnVpbGRTbGFzaENoaXBFbGVtZW50KGNvbW1hbmQpXG4gICAgICAgICAgcmVwbGFjZVRyaWdnZXJXaXRoU2xhc2hDaGlwKGNoaXAsIGNvbW1hbmQpXG4gICAgICAgICAgc2tpcE5leHRJbnB1dC5jdXJyZW50ID0gdHJ1ZVxuICAgICAgICAgIGNvbnN0IHN0YXRlID0gc2VyaWFsaXplKClcbiAgICAgICAgICBvbklucHV0Py4oe1xuICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICB0cmlnZ2VyOiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAgfSxcbiAgICAgICAgICAgIHNsYXNoVHJpZ2dlcjogeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycgfSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIGNvbnN0IGlzRW1wdHkgPSBzdGF0ZS50ZXh0LnRyaW0oKSA9PT0gJydcbiAgICAgICAgICBzeW5jRWRpdG9yRW1wdHlBdHRyaWJ1dGUoaXNFbXB0eSlcbiAgICAgICAgICBzZXRMb2dpY2FsRW1wdHkoaXNFbXB0eSlcbiAgICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgICAgICBza2lwTmV4dElucHV0LmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICAgICAgcmVjb21wdXRlUGxhY2Vob2xkZXJUcnVuY2F0aW9uKClcbiAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBbXG4gICAgICAgIGZvY3VzLFxuICAgICAgICBjbGVhckVkaXRvckRvbSxcbiAgICAgICAgc2VyaWFsaXplLFxuICAgICAgICBzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoLFxuICAgICAgICBzeW5jU2tpbGxUcmlnZ2VyLFxuICAgICAgICByZXBsYWNlVHJpZ2dlcldpdGhDaGlwLFxuICAgICAgICByZXBsYWNlVHJpZ2dlcldpdGhTbGFzaENoaXAsXG4gICAgICAgIG9uSW5wdXQsXG4gICAgICAgIHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbixcbiAgICAgICAgc3luY0VkaXRvckVtcHR5QXR0cmlidXRlLFxuICAgICAgICBlbWl0SW5wdXRTdGF0ZSxcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIGVkaXRvclJlZixcbiAgICAgIF1cbiAgICApXG5cbiAgICBjb25zdCBoYW5kbGVJbnB1dCA9ICgpID0+IHtcbiAgICAgIGlmIChza2lwTmV4dElucHV0LmN1cnJlbnQpIHtcbiAgICAgICAgc2tpcE5leHRJbnB1dC5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBlbWl0SW5wdXRTdGF0ZSgpXG4gICAgfVxuXG4gICAgY29uc3QgaGFuZGxlUGFzdGUgPSAoZTogQ2xpcGJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIGNvbnN0IHRleHQgPSBlLmNsaXBib2FyZERhdGEuZ2V0RGF0YSgndGV4dC9wbGFpbicpXG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgICAgIGlmICghc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5yYW5nZUNvdW50ID09PSAwKSByZXR1cm5cbiAgICAgIHNlbGVjdGlvbi5kZWxldGVGcm9tRG9jdW1lbnQoKVxuICAgICAgc2VsZWN0aW9uLmdldFJhbmdlQXQoMCkuaW5zZXJ0Tm9kZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSlcbiAgICAgIHNlbGVjdGlvbi5jb2xsYXBzZVRvRW5kKClcbiAgICAgIGhhbmRsZUlucHV0KClcbiAgICB9XG5cbiAgICBjb25zdCB0cmltbWVkUGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcj8udHJpbSgpID8/ICcnXG4gICAgY29uc3QgcGxhY2Vob2xkZXJUb29sdGlwVGl0bGUgPSBsb2dpY2FsRW1wdHkgJiYgcGxhY2Vob2xkZXJUcnVuY2F0ZWQgJiYgdHJpbW1lZFBsYWNlaG9sZGVyID8gdHJpbW1lZFBsYWNlaG9sZGVyIDogJydcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8Q29udGV4dE1lbnRpb25DaGlwR2xvYmFsU3R5bGVzIC8+XG4gICAgICAgIDxUb29sdGlwIHRpdGxlPXtwbGFjZWhvbGRlclRvb2x0aXBUaXRsZX0+XG4gICAgICAgICAgPHNwYW4gc3R5bGU9e3sgZGlzcGxheTogJ2Jsb2NrJywgd2lkdGg6ICcxMDAlJywgbWluV2lkdGg6IDAgfX0+XG4gICAgICAgICAgICA8U0NNRUVkaXRhYmxlXG4gICAgICAgICAgICAgIHJlZj17ZWRpdG9yUmVmfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgICAgJG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgICAgICAgICBzdHlsZT17bWF4SGVpZ2h0ICE9IG51bGwgPyB7IG1heEhlaWdodCB9IDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICBkYXRhLXBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgZGF0YS1lbXB0eT17U3RyaW5nKGxvZ2ljYWxFbXB0eSl9XG4gICAgICAgICAgICAgIGNvbnRlbnRFZGl0YWJsZT17IWRpc2FibGVkfVxuICAgICAgICAgICAgICBkYXRhLWRpc2FibGVkPXtTdHJpbmcoISFkaXNhYmxlZCl9XG4gICAgICAgICAgICAgIHN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1xuICAgICAgICAgICAgICByb2xlPVwidGV4dGJveFwiXG4gICAgICAgICAgICAgIGFyaWEtbXVsdGlsaW5lPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIG9uSW5wdXQ9e2hhbmRsZUlucHV0fVxuICAgICAgICAgICAgICBvbktleURvd249e29uS2V5RG93bn1cbiAgICAgICAgICAgICAgb25QYXN0ZT17aGFuZGxlUGFzdGV9XG4gICAgICAgICAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICAgICAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuKVxuXG5Db250ZXh0TWVudGlvbkVkaXRvci5kaXNwbGF5TmFtZSA9ICdDb250ZXh0TWVudGlvbkVkaXRvcidcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLFNBRUVBLFVBQVUsRUFFVkMsV0FBVyxFQUNYQyxtQkFBbUIsRUFDbkJDLGVBQWUsRUFDZkMsTUFBTSxFQUNOQyxRQUFRLFFBQ0gsT0FBTztBQUNkLFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0Msa0JBQWtCLFFBQVEsbUNBQW1DO0FBRXRFLFNBQVNDLGdCQUFnQixRQUFRLHVCQUF1QjtBQUN4RCxTQUFTQyw4QkFBOEIsUUFBUSxpREFBaUQ7QUFDaEcsU0FBU0MscUJBQXFCLFFBQThCLHFCQUFxQjtBQUNqRixTQUFTQyxZQUFZLFFBQVEsK0JBQStCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLFFBQUEsSUFBQUMsU0FBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFFNUQsSUFBTUMsOEJBQThCLEdBQUcsU0FBakNBLDhCQUE4QkEsQ0FBSUMsTUFBbUIsRUFBRUMsV0FBbUIsRUFBYztFQUM1RixJQUFNQyxPQUFPLEdBQUdELFdBQVcsQ0FBQ0UsSUFBSSxDQUFDLENBQUM7RUFDbEMsSUFBSSxDQUFDRCxPQUFPLEVBQUU7SUFDWixPQUFPLEtBQUs7RUFDZDtFQUNBLElBQVFFLFdBQVcsR0FBS0osTUFBTSxDQUF0QkksV0FBVztFQUNuQixJQUFJQSxXQUFXLElBQUksQ0FBQyxFQUFFO0lBQ3BCLE9BQU8sS0FBSztFQUNkO0VBRUEsSUFBTUMsTUFBTSxHQUFHQyxNQUFNLENBQUNDLGdCQUFnQixDQUFDUCxNQUFNLENBQUM7RUFDOUMsSUFBTVEsR0FBRyxHQUFHQyxRQUFRLENBQUNDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQ0MsVUFBVSxDQUFDLElBQUksQ0FBQztFQUM3RCxJQUFJLENBQUNILEdBQUcsRUFBRTtJQUNSLE9BQU8sS0FBSztFQUNkO0VB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
|
|
@@ -7,7 +7,7 @@ import { NotionIcon } from '../icons/NotionIcon';
|
|
|
7
7
|
import { SubtaskIcon } from '../icons/SubtaskIcon';
|
|
8
8
|
import { TaskLinkIcon } from '../icons/TaskLinkIcon';
|
|
9
9
|
import { getContextMentionIcon, isNotionMcpSlug } from '../../../utils/contextMentionIcons';
|
|
10
|
-
import { SCMIRow, SCMIProjectRow, SCMIProjectContent, SCMIName, SCMITitle, SCMIProjectTitle, SCMITitleHighlight, SCMIBreadcrumb, SCMIBreadcrumbParent, SCMIRowUser, SCMUserAvatarWrap, SCMUserAvatarImg, SCMUserAvatarFallback, SCMUserInfo, SCMUserNamePositionRow, SCMUserNameCell, SCMUserNameText, SCMUserPositionText, SCMITaskRowWrap, SCMITaskRowSurface, SCMITaskRowInner, SCMITaskTitleRow, SCMITaskSubtaskIconWrap, SCMITaskProjectName, SCMITaskIconWrap, SCMITaskTitle } from './ContextMentionItem.styles';
|
|
10
|
+
import { SCMIRow, SCMIProjectRow, SCMIProjectContent, SCMIName, SCMITitle, SCMIProjectTitle, SCMITitleHighlight, SCMIBreadcrumb, SCMIBreadcrumbParent, SCMIRowUser, SCMUserAvatarWrap, SCMUserAvatarImg, SCMUserAvatarFallback, SCMUserInfo, SCMUserNamePositionRow, SCMUserNameCell, SCMUserNameText, SCMUserPositionText, SCMITaskRowWrap, SCMITaskRowSurface, SCMISkillRowSurface, SCMITaskRowInner, SCMITaskTitleRow, SCMITaskSubtaskIconWrap, SCMITaskProjectName, SCMITaskIconWrap, SCMITaskTitle } from './ContextMentionItem.styles';
|
|
11
11
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
12
|
var TASK_PROJECT_NAME_MAX_CHARS = 40;
|
|
13
13
|
var truncateWithEllipsis = function truncateWithEllipsis(value, maxChars) {
|
|
@@ -254,6 +254,33 @@ export var ContextMentionItem = function ContextMentionItem(_ref3) {
|
|
|
254
254
|
})
|
|
255
255
|
});
|
|
256
256
|
}
|
|
257
|
+
if (type === 'skill') {
|
|
258
|
+
return /*#__PURE__*/_jsx(SCMITaskRowWrap, {
|
|
259
|
+
onMouseDown: handleClick,
|
|
260
|
+
onMouseEnter: function onMouseEnter() {
|
|
261
|
+
return _onHover === null || _onHover === void 0 ? void 0 : _onHover(item);
|
|
262
|
+
},
|
|
263
|
+
children: /*#__PURE__*/_jsx(SCMISkillRowSurface, {
|
|
264
|
+
$active: active,
|
|
265
|
+
children: /*#__PURE__*/_jsxs(SCMITaskRowInner, {
|
|
266
|
+
children: [/*#__PURE__*/_jsx("span", {
|
|
267
|
+
style: {
|
|
268
|
+
display: 'inline-flex',
|
|
269
|
+
alignItems: 'center',
|
|
270
|
+
justifyContent: 'center',
|
|
271
|
+
width: 16,
|
|
272
|
+
height: 16,
|
|
273
|
+
flex: '0 0 16px'
|
|
274
|
+
},
|
|
275
|
+
children: getContextMentionIcon('skill', '#808080', raw.id, 16)
|
|
276
|
+
}), /*#__PURE__*/_jsx(SCMITaskTitle, {
|
|
277
|
+
title: primary,
|
|
278
|
+
children: renderTitle(primary, primaryHighlight)
|
|
279
|
+
})]
|
|
280
|
+
})
|
|
281
|
+
})
|
|
282
|
+
});
|
|
283
|
+
}
|
|
257
284
|
return /*#__PURE__*/_jsx(SCMIRow, {
|
|
258
285
|
$active: active,
|
|
259
286
|
onMouseDown: handleClick,
|
|
@@ -279,4 +306,4 @@ export var ContextMentionItem = function ContextMentionItem(_ref3) {
|
|
|
279
306
|
})
|
|
280
307
|
});
|
|
281
308
|
};
|
|
282
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkNoZXZyb25SaWdodCIsIlRvb2x0aXAiLCJ1c2VUIiwiTm90aW9uSWNvbiIsIlN1YnRhc2tJY29uIiwiVGFza0xpbmtJY29uIiwiZ2V0Q29udGV4dE1lbnRpb25JY29uIiwiaXNOb3Rpb25NY3BTbHVnIiwiU0NNSVJvdyIsIlNDTUlQcm9qZWN0Um93IiwiU0NNSVByb2plY3RDb250ZW50IiwiU0NNSU5hbWUiLCJTQ01JVGl0bGUiLCJTQ01JUHJvamVjdFRpdGxlIiwiU0NNSVRpdGxlSGlnaGxpZ2h0IiwiU0NNSUJyZWFkY3J1bWIiLCJTQ01JQnJlYWRjcnVtYlBhcmVudCIsIlNDTUlSb3dVc2VyIiwiU0NNVXNlckF2YXRhcldyYXAiLCJTQ01Vc2VyQXZhdGFySW1nIiwiU0NNVXNlckF2YXRhckZhbGxiYWNrIiwiU0NNVXNlckluZm8iLCJTQ01Vc2VyTmFtZVBvc2l0aW9uUm93IiwiU0NNVXNlck5hbWVDZWxsIiwiU0NNVXNlck5hbWVUZXh0IiwiU0NNVXNlclBvc2l0aW9uVGV4dCIsIlNDTUlUYXNrUm93V3JhcCIsIlNDTUlUYXNrUm93U3VyZmFjZSIsIlNDTUlUYXNrUm93SW5uZXIiLCJTQ01JVGFza1RpdGxlUm93IiwiU0NNSVRhc2tTdWJ0YXNrSWNvbldyYXAiLCJTQ01JVGFza1Byb2plY3ROYW1lIiwiU0NNSVRhc2tJY29uV3JhcCIsIlNDTUlUYXNrVGl0bGUiLCJqc3giLCJfanN4IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJUQVNLX1BST0pFQ1RfTkFNRV9NQVhfQ0hBUlMiLCJ0cnVuY2F0ZVdpdGhFbGxpcHNpcyIsInZhbHVlIiwibWF4Q2hhcnMiLCJsZW5ndGgiLCJjb25jYXQiLCJzbGljZSIsIk1hdGgiLCJtYXgiLCJ0cmltRW5kIiwicmVuZGVyVGl0bGUiLCJwcmltYXJ5IiwiaGlnaGxpZ2h0Iiwic3RhcnQiLCJlbmQiLCJjaGlsZHJlbiIsInVzZU92ZXJmbG93VG9vbHRpcCIsInJlZiIsImRlcHMiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzaG93VG9vbHRpcCIsInNldFNob3dUb29sdGlwIiwiZWwiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwibWVhc3VyZSIsInNjcm9sbFdpZHRoIiwiY2xpZW50V2lkdGgiLCJybyIsIlJlc2l6ZU9ic2VydmVyIiwib2JzZXJ2ZSIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJkaXNjb25uZWN0IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImluaXRpYWxzRnJvbURpc3BsYXlOYW1lIiwibmFtZSIsIl9wYXJ0cyQyIiwidHJpbW1lZCIsInRyaW0iLCJwYXJ0cyIsInNwbGl0IiwiZmlsdGVyIiwiQm9vbGVhbiIsIl9wYXJ0cyQwJGNoYXJBdCIsIl9wYXJ0cyQiLCJfcGFydHMkY2hhckF0IiwiX3BhcnRzIiwiZmlyc3QiLCJjaGFyQXQiLCJsYXN0IiwidG9VcHBlckNhc2UiLCJzaW5nbGUiLCJVc2VyUm93QXZhdGFyIiwiX3JlZiIsInBpY3R1cmUiLCJuYW1lRm9ySW5pdGlhbHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImJyb2tlbiIsInNldEJyb2tlbiIsImluaXRpYWxzIiwic3JjIiwiYWx0Iiwib25FcnJvciIsImxvYWRpbmciLCJkZWNvZGluZyIsIkNvbnRleHRNZW50aW9uVGFza1JvdyIsIl9yZWYyIiwiX3JhdyRwcm9qZWN0TmFtZSIsIl9icmVhZGNydW1iJHBhcmVudCIsIl9wcmltYXJ5SGlnaGxpZ2h0JHN0YSIsIl9wcmltYXJ5SGlnaGxpZ2h0JGxlbiIsIml0ZW0iLCJhY3RpdmUiLCJvbk1vdXNlRG93biIsIm9uSG92ZXIiLCJwcmltYXJ5SGlnaGxpZ2h0IiwiYnJlYWRjcnVtYiIsInJhdyIsInByb2plY3ROYW1lIiwicGFyZW50IiwicHJvamVjdE5hbWVEaXNwbGF5IiwiaXNQcm9qZWN0TmFtZVRydW5jYXRlZEJ5Q2hhcnMiLCJoYXNGYXRoZXIiLCJmYXRoZXJJZCIsInRpdGxlUmVmIiwicHJvamVjdFJlZiIsInNob3dUaXRsZVRvb2x0aXAiLCJzaG93UHJvamVjdFRvb2x0aXAiLCJzaG91bGRTaG93UHJvamVjdFRvb2x0aXAiLCJvbk1vdXNlRW50ZXIiLCIkYWN0aXZlIiwid2lkdGgiLCJoZWlnaHQiLCJjb2xvciIsInZhcmlhbnQiLCJ0aXRsZSIsIkNvbnRleHRNZW50aW9uSXRlbSIsIl9yZWYzIiwib25TZWxlY3QiLCJfdXNlVCIsInQiLCJ0eXBlIiwiaGFuZGxlQ2xpY2siLCJlIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJoYXNDb3VudCIsImNvdW50IiwiaGFzUGFyZW50IiwiY291bnRMYWJlbCIsImRlZmF1bHRWYWx1ZSIsInBvc2l0aW9uTmFtZVRyaW1tZWQiLCJwb3NpdGlvbk5hbWUiLCJwb3NpdGlvbkxpbmUiLCJ1c2VyTmFtZUZvckluaXRpYWxzIiwiJHdpdGhEaXZpZGVyIiwic3R5bGUiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwiZmxleCIsImlkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvQ29udGV4dE1lbnRpb25JdGVtL0NvbnRleHRNZW50aW9uSXRlbS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRkMsIE1vdXNlRXZlbnQsIHVzZUxheW91dEVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSwgdHlwZSBSZWZPYmplY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENoZXZyb25SaWdodCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0NoZXZyb25SaWdodCdcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb25JdGVtIGFzIENvbnRleHRNZW50aW9uSXRlbVR5cGUgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB7IE5vdGlvbkljb24gfSBmcm9tICcuLi9pY29ucy9Ob3Rpb25JY29uJ1xuaW1wb3J0IHsgU3VidGFza0ljb24gfSBmcm9tICcuLi9pY29ucy9TdWJ0YXNrSWNvbidcbmltcG9ydCB7IFRhc2tMaW5rSWNvbiB9IGZyb20gJy4uL2ljb25zL1Rhc2tMaW5rSWNvbidcbmltcG9ydCB7IGdldENvbnRleHRNZW50aW9uSWNvbiwgaXNOb3Rpb25NY3BTbHVnIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY29udGV4dE1lbnRpb25JY29ucydcbmltcG9ydCB7XG4gIFNDTUlSb3csXG4gIFNDTUlQcm9qZWN0Um93LFxuICBTQ01JUHJvamVjdENvbnRlbnQsXG4gIFNDTUlOYW1lLFxuICBTQ01JVGl0bGUsXG4gIFNDTUlQcm9qZWN0VGl0bGUsXG4gIFNDTUlUaXRsZUhpZ2hsaWdodCxcbiAgU0NNSUJyZWFkY3J1bWIsXG4gIFNDTUlCcmVhZGNydW1iUGFyZW50LFxuICBTQ01JUm93VXNlcixcbiAgU0NNVXNlckF2YXRhcldyYXAsXG4gIFNDTVVzZXJBdmF0YXJJbWcsXG4gIFNDTVVzZXJBdmF0YXJGYWxsYmFjayxcbiAgU0NNVXNlckluZm8sXG4gIFNDTVVzZXJOYW1lUG9zaXRpb25Sb3csXG4gIFNDTVVzZXJOYW1lQ2VsbCxcbiAgU0NNVXNlck5hbWVUZXh0LFxuICBTQ01Vc2VyUG9zaXRpb25UZXh0LFxuICBTQ01JVGFza1Jvd1dyYXAsXG4gIFNDTUlUYXNrUm93U3VyZmFjZSxcbiAgU0NNSVRhc2tSb3dJbm5lcixcbiAgU0NNSVRhc2tUaXRsZVJvdyxcbiAgU0NNSVRhc2tTdWJ0YXNrSWNvbldyYXAsXG4gIFNDTUlUYXNrUHJvamVjdE5hbWUsXG4gIFNDTUlUYXNrSWNvbldyYXAsXG4gIFNDTUlUYXNrVGl0bGUsXG59IGZyb20gJy4vQ29udGV4dE1lbnRpb25JdGVtLnN0eWxlcydcblxudHlwZSBDb250ZXh0TWVudGlvbkl0ZW1Qcm9wcyA9IHtcbiAgaXRlbTogQ29udGV4dE1lbnRpb25JdGVtVHlwZVxuICBhY3RpdmU/OiBib29sZWFuXG4gIG9uU2VsZWN0OiAoaXRlbTogQ29udGV4dE1lbnRpb25JdGVtVHlwZSkgPT4gdm9pZFxuICBvbkhvdmVyPzogKGl0ZW06IENvbnRleHRNZW50aW9uSXRlbVR5cGUpID0+IHZvaWRcbn1cblxuY29uc3QgVEFTS19QUk9KRUNUX05BTUVfTUFYX0NIQVJTID0gNDBcblxuY29uc3QgdHJ1bmNhdGVXaXRoRWxsaXBzaXMgPSAodmFsdWU6IHN0cmluZywgbWF4Q2hhcnM6IG51bWJlcik6IHN0cmluZyA9PiB7XG4gIGlmICh2YWx1ZS5sZW5ndGggPD0gbWF4Q2hhcnMpIHJldHVybiB2YWx1ZVxuICByZXR1cm4gYCR7dmFsdWUuc2xpY2UoMCwgTWF0aC5tYXgoMCwgbWF4Q2hhcnMgLSAxKSkudHJpbUVuZCgpfeKApmBcbn1cblxuY29uc3QgcmVuZGVyVGl0bGUgPSAocHJpbWFyeTogc3RyaW5nLCBoaWdobGlnaHQ/OiB7IHN0YXJ0OiBudW1iZXI7IGxlbmd0aDogbnVtYmVyIH0pID0+IHtcbiAgaWYgKCFoaWdobGlnaHQgfHwgaGlnaGxpZ2h0Lmxlbmd0aCA8PSAwKSByZXR1cm4gcHJpbWFyeVxuICBjb25zdCB7IHN0YXJ0LCBsZW5ndGggfSA9IGhpZ2hsaWdodFxuICBjb25zdCBlbmQgPSBzdGFydCArIGxlbmd0aFxuICBpZiAoc3RhcnQgPCAwIHx8IHN0YXJ0ID4gcHJpbWFyeS5sZW5ndGggfHwgZW5kID4gcHJpbWFyeS5sZW5ndGgpIHJldHVybiBwcmltYXJ5XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtwcmltYXJ5LnNsaWNlKDAsIHN0YXJ0KX1cbiAgICAgIDxTQ01JVGl0bGVIaWdobGlnaHQ+e3ByaW1hcnkuc2xpY2Uoc3RhcnQsIGVuZCl9PC9TQ01JVGl0bGVIaWdobGlnaHQ+XG4gICAgICB7cHJpbWFyeS5zbGljZShlbmQpfVxuICAgIDwvPlxuICApXG59XG5cbmZ1bmN0aW9uIHVzZU92ZXJmbG93VG9vbHRpcDxUIGV4dGVuZHMgSFRNTEVsZW1lbnQ+KHJlZjogUmVmT2JqZWN0PFQgfCBudWxsPiwgZGVwczogcmVhZG9ubHkgdW5rbm93bltdKSB7XG4gIGNvbnN0IFtzaG93VG9vbHRpcCwgc2V0U2hvd1Rvb2x0aXBdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbCA9IHJlZi5jdXJyZW50XG4gICAgaWYgKCFlbCkge1xuICAgICAgc2V0U2hvd1Rvb2x0aXAoZmFsc2UpXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgbWVhc3VyZSA9ICgpID0+IHtcbiAgICAgIHNldFNob3dUb29sdGlwKGVsLnNjcm9sbFdpZHRoID4gZWwuY2xpZW50V2lkdGgpXG4gICAgfVxuXG4gICAgbWVhc3VyZSgpXG4gICAgY29uc3Qgcm8gPSBuZXcgUmVzaXplT2JzZXJ2ZXIobWVhc3VyZSlcbiAgICByby5vYnNlcnZlKGVsKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBtZWFzdXJlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICByby5kaXNjb25uZWN0KClcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBtZWFzdXJlKVxuICAgIH1cbiAgfSwgZGVwcylcblxuICByZXR1cm4gc2hvd1Rvb2x0aXBcbn1cblxuLyoqIEluaWNpYWxlcyBwYXJhIGF2YXRhciAobm9tYnJlIGxlZ2FsKSwgbm8gZWwgdGV4dG8gdmlzaWJsZSBkZSBsYSBmaWxhIChlai4gXCJZb1wiKS4gKi9cbmNvbnN0IGluaXRpYWxzRnJvbURpc3BsYXlOYW1lID0gKG5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHRyaW1tZWQgPSBuYW1lLnRyaW0oKVxuICBpZiAoIXRyaW1tZWQpIHJldHVybiAnPydcbiAgY29uc3QgcGFydHMgPSB0cmltbWVkLnNwbGl0KC9cXHMrLykuZmlsdGVyKEJvb2xlYW4pXG4gIGlmIChwYXJ0cy5sZW5ndGggPj0gMikge1xuICAgIGNvbnN0IGZpcnN0ID0gcGFydHNbMF0/LmNoYXJBdCgwKSA/PyAnJ1xuICAgIGNvbnN0IGxhc3QgPSBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXT8uY2hhckF0KDApID8/ICcnXG4gICAgcmV0dXJuIGAke2ZpcnN0fSR7bGFzdH1gLnRvVXBwZXJDYXNlKClcbiAgfVxuICBjb25zdCBzaW5nbGUgPSBwYXJ0c1swXSA/PyAnJ1xuICBpZiAoc2luZ2xlLmxlbmd0aCA+PSAyKSByZXR1cm4gc2luZ2xlLnNsaWNlKDAsIDIpLnRvVXBwZXJDYXNlKClcbiAgcmV0dXJuIChzaW5nbGUuY2hhckF0KDApIHx8ICc/JykudG9VcHBlckNhc2UoKVxufVxuXG5jb25zdCBVc2VyUm93QXZhdGFyOiBGQzx7IHBpY3R1cmU/OiBzdHJpbmcgfCBudWxsOyBuYW1lRm9ySW5pdGlhbHM6IHN0cmluZyB9PiA9ICh7IHBpY3R1cmUsIG5hbWVGb3JJbml0aWFscyB9KSA9PiB7XG4gIGNvbnN0IFticm9rZW4sIHNldEJyb2tlbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgaW5pdGlhbHMgPSBpbml0aWFsc0Zyb21EaXNwbGF5TmFtZShuYW1lRm9ySW5pdGlhbHMpXG5cbiAgcmV0dXJuIChcbiAgICA8U0NNVXNlckF2YXRhcldyYXA+XG4gICAgICB7cGljdHVyZSAmJiAhYnJva2VuID8gKFxuICAgICAgICA8U0NNVXNlckF2YXRhckltZyBzcmM9e3BpY3R1cmV9IGFsdD1cIlwiIG9uRXJyb3I9eygpID0+IHNldEJyb2tlbih0cnVlKX0gbG9hZGluZz1cImxhenlcIiBkZWNvZGluZz1cImFzeW5jXCIgLz5cbiAgICAgICkgOiAoXG4gICAgICAgIDxTQ01Vc2VyQXZhdGFyRmFsbGJhY2sgYXJpYS1oaWRkZW4+e2luaXRpYWxzfTwvU0NNVXNlckF2YXRhckZhbGxiYWNrPlxuICAgICAgKX1cbiAgICA8L1NDTVVzZXJBdmF0YXJXcmFwPlxuICApXG59XG5cbmNvbnN0IENvbnRleHRNZW50aW9uVGFza1JvdzogRkM8e1xuICBpdGVtOiBDb250ZXh0TWVudGlvbkl0ZW1UeXBlXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgb25Nb3VzZURvd246IChlOiBNb3VzZUV2ZW50KSA9PiB2b2lkXG4gIG9uSG92ZXI/OiAoKSA9PiB2b2lkXG59PiA9ICh7IGl0ZW0sIGFjdGl2ZSwgb25Nb3VzZURvd24sIG9uSG92ZXIgfSkgPT4ge1xuICBjb25zdCB7IHByaW1hcnksIHByaW1hcnlIaWdobGlnaHQsIGJyZWFkY3J1bWIsIHJhdyB9ID0gaXRlbVxuICBjb25zdCBwcm9qZWN0TmFtZSA9IHJhdy5wcm9qZWN0TmFtZT8udHJpbSgpIHx8IGJyZWFkY3J1bWI/LnBhcmVudD8udHJpbSgpIHx8ICcnXG4gIGNvbnN0IHByb2plY3ROYW1lRGlzcGxheSA9IHRydW5jYXRlV2l0aEVsbGlwc2lzKHByb2plY3ROYW1lLCBUQVNLX1BST0pFQ1RfTkFNRV9NQVhfQ0hBUlMpXG4gIGNvbnN0IGlzUHJvamVjdE5hbWVUcnVuY2F0ZWRCeUNoYXJzID0gcHJvamVjdE5hbWVEaXNwbGF5ICE9PSBwcm9qZWN0TmFtZVxuICBjb25zdCBoYXNGYXRoZXIgPSByYXcuZmF0aGVySWQgIT0gbnVsbFxuICBjb25zdCB0aXRsZVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgcHJvamVjdFJlZiA9IHVzZVJlZjxIVE1MU3BhbkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHNob3dUaXRsZVRvb2x0aXAgPSB1c2VPdmVyZmxvd1Rvb2x0aXAodGl0bGVSZWYsIFtcbiAgICBwcmltYXJ5LFxuICAgIHByb2plY3ROYW1lLFxuICAgIHByaW1hcnlIaWdobGlnaHQ/LnN0YXJ0ID8/IC0xLFxuICAgIHByaW1hcnlIaWdobGlnaHQ/Lmxlbmd0aCA/PyAwLFxuICAgIGhhc0ZhdGhlcixcbiAgXSlcbiAgY29uc3Qgc2hvd1Byb2plY3RUb29sdGlwID0gdXNlT3ZlcmZsb3dUb29sdGlwKHByb2plY3RSZWYsIFtwcm9qZWN0TmFtZURpc3BsYXksIHByaW1hcnldKVxuICBjb25zdCBzaG91bGRTaG93UHJvamVjdFRvb2x0aXAgPSBpc1Byb2plY3ROYW1lVHJ1bmNhdGVkQnlDaGFycyB8fCBzaG93UHJvamVjdFRvb2x0aXBcblxuICByZXR1cm4gKFxuICAgIDxTQ01JVGFza1Jvd1dyYXAgb25Nb3VzZURvd249e29uTW91c2VEb3dufSBvbk1vdXNlRW50ZXI9e29uSG92ZXJ9PlxuICAgICAgPFNDTUlUYXNrUm93U3VyZmFjZSAkYWN0aXZlPXthY3RpdmV9PlxuICAgICAgICA8U0NNSVRhc2tSb3dJbm5lcj5cbiAgICAgICAgICA8U0NNSVRhc2tJY29uV3JhcD5cbiAgICAgICAgICAgIDxUYXNrTGlua0ljb24gd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgIDwvU0NNSVRhc2tJY29uV3JhcD5cbiAgICAgICAgICA8U0NNSVRhc2tUaXRsZVJvdz5cbiAgICAgICAgICAgIHtoYXNGYXRoZXIgPyAoXG4gICAgICAgICAgICAgIDxTQ01JVGFza1N1YnRhc2tJY29uV3JhcD5cbiAgICAgICAgICAgICAgICA8U3VidGFza0ljb24gd2lkdGg9XCIxNnB4XCIgaGVpZ2h0PVwiMTZweFwiIGNvbG9yPVwiIzAwMFwiIHZhcmlhbnQ9XCJyZWd1bGFyXCIgLz5cbiAgICAgICAgICAgICAgPC9TQ01JVGFza1N1YnRhc2tJY29uV3JhcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3Nob3dUaXRsZVRvb2x0aXAgPyBwcmltYXJ5IDogJyd9PlxuICAgICAgICAgICAgICA8U0NNSVRhc2tUaXRsZSByZWY9e3RpdGxlUmVmfT57cmVuZGVyVGl0bGUocHJpbWFyeSwgcHJpbWFyeUhpZ2hsaWdodCl9PC9TQ01JVGFza1RpdGxlPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAge3Byb2plY3ROYW1lID8gKFxuICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17c2hvdWxkU2hvd1Byb2plY3RUb29sdGlwID8gcHJvamVjdE5hbWUgOiAnJ30+XG4gICAgICAgICAgICAgICAgPFNDTUlUYXNrUHJvamVjdE5hbWUgcmVmPXtwcm9qZWN0UmVmfT57cHJvamVjdE5hbWVEaXNwbGF5fTwvU0NNSVRhc2tQcm9qZWN0TmFtZT5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TQ01JVGFza1RpdGxlUm93PlxuICAgICAgICA8L1NDTUlUYXNrUm93SW5uZXI+XG4gICAgICA8L1NDTUlUYXNrUm93U3VyZmFjZT5cbiAgICA8L1NDTUlUYXNrUm93V3JhcD5cbiAgKVxufVxuXG5leHBvcnQgY29uc3QgQ29udGV4dE1lbnRpb25JdGVtOiBGQzxDb250ZXh0TWVudGlvbkl0ZW1Qcm9wcz4gPSAoeyBpdGVtLCBhY3RpdmUsIG9uU2VsZWN0LCBvbkhvdmVyIH0pID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgeyBwcmltYXJ5LCBwcmltYXJ5SGlnaGxpZ2h0LCBicmVhZGNydW1iLCB0eXBlLCByYXcgfSA9IGl0ZW1cblxuICBjb25zdCBoYW5kbGVDbGljayA9IChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIG9uU2VsZWN0KGl0ZW0pXG4gIH1cblxuICBjb25zdCBoYXNDb3VudCA9IHR5cGVvZiBicmVhZGNydW1iPy5jb3VudCA9PT0gJ251bWJlcidcbiAgY29uc3QgaGFzUGFyZW50ID0gISFicmVhZGNydW1iPy5wYXJlbnRcbiAgY29uc3QgY291bnRMYWJlbCA9XG4gICAgYnJlYWRjcnVtYj8uY291bnRMYWJlbCAmJlxuICAgIHQoYGNvbnRleHRNZW50aW9uLmNvdW50ZXJzLiR7YnJlYWRjcnVtYi5jb3VudExhYmVsfWAsIHsgZGVmYXVsdFZhbHVlOiBicmVhZGNydW1iLmNvdW50TGFiZWwgfSlcblxuICBpZiAodHlwZSA9PT0gJ3VzZXInKSB7XG4gICAgY29uc3QgcG9zaXRpb25OYW1lVHJpbW1lZCA9IHR5cGVvZiByYXcucG9zaXRpb25OYW1lID09PSAnc3RyaW5nJyA/IHJhdy5wb3NpdGlvbk5hbWUudHJpbSgpIDogJydcbiAgICBjb25zdCBwb3NpdGlvbkxpbmUgPSBwb3NpdGlvbk5hbWVUcmltbWVkIHx8IHQoJ2NvbnRleHRNZW50aW9uLnVzZXJOb1Bvc2l0aW9uJywgeyBkZWZhdWx0VmFsdWU6ICdTaW4gcG9zaWNpw7NuJyB9KVxuICAgIGNvbnN0IHVzZXJOYW1lRm9ySW5pdGlhbHMgPSB0eXBlb2YgcmF3Lm5hbWUgPT09ICdzdHJpbmcnICYmIHJhdy5uYW1lLnRyaW0oKSA/IHJhdy5uYW1lIDogcHJpbWFyeVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ01JUm93VXNlciAkYWN0aXZlPXthY3RpdmV9IG9uTW91c2VEb3duPXtoYW5kbGVDbGlja30gb25Nb3VzZUVudGVyPXsoKSA9PiBvbkhvdmVyPy4oaXRlbSl9PlxuICAgICAgICA8VXNlclJvd0F2YXRhciBwaWN0dXJlPXtyYXcucGljdHVyZX0gbmFtZUZvckluaXRpYWxzPXt1c2VyTmFtZUZvckluaXRpYWxzfSAvPlxuICAgICAgICA8U0NNVXNlckluZm8+XG4gICAgICAgICAgPFNDTVVzZXJOYW1lUG9zaXRpb25Sb3c+XG4gICAgICAgICAgICA8U0NNVXNlck5hbWVDZWxsICR3aXRoRGl2aWRlcj5cbiAgICAgICAgICAgICAgPFNDTVVzZXJOYW1lVGV4dD57cmVuZGVyVGl0bGUocHJpbWFyeSwgcHJpbWFyeUhpZ2hsaWdodCl9PC9TQ01Vc2VyTmFtZVRleHQ+XG4gICAgICAgICAgICA8L1NDTVVzZXJOYW1lQ2VsbD5cbiAgICAgICAgICAgIDxTQ01Vc2VyUG9zaXRpb25UZXh0IHRpdGxlPXtwb3NpdGlvbkxpbmV9Pntwb3NpdGlvbkxpbmV9PC9TQ01Vc2VyUG9zaXRpb25UZXh0PlxuICAgICAgICAgIDwvU0NNVXNlck5hbWVQb3NpdGlvblJvdz5cbiAgICAgICAgPC9TQ01Vc2VySW5mbz5cbiAgICAgIDwvU0NNSVJvd1VzZXI+XG4gICAgKVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICdwcm9qZWN0Jykge1xuICAgIHJldHVybiAoXG4gICAgICA8U0NNSVByb2plY3RSb3cgb25Nb3VzZURvd249e2hhbmRsZUNsaWNrfSBvbk1vdXNlRW50ZXI9eygpID0+IG9uSG92ZXI/LihpdGVtKX0+XG4gICAgICAgIDxTQ01JUHJvamVjdENvbnRlbnQgJGFjdGl2ZT17YWN0aXZlfT5cbiAgICAgICAgICA8U0NNSU5hbWU+XG4gICAgICAgICAgICA8U0NNSVByb2plY3RUaXRsZSB0aXRsZT17cHJpbWFyeX0+e3JlbmRlclRpdGxlKHByaW1hcnksIHByaW1hcnlIaWdobGlnaHQpfTwvU0NNSVByb2plY3RUaXRsZT5cbiAgICAgICAgICA8L1NDTUlOYW1lPlxuICAgICAgICA8L1NDTUlQcm9qZWN0Q29udGVudD5cbiAgICAgIDwvU0NNSVByb2plY3RSb3c+XG4gICAgKVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICd0YXNrJykge1xuICAgIHJldHVybiAoXG4gICAgICA8Q29udGV4dE1lbnRpb25UYXNrUm93IGl0ZW09e2l0ZW19IGFjdGl2ZT17YWN0aXZlfSBvbk1vdXNlRG93bj17aGFuZGxlQ2xpY2t9IG9uSG92ZXI9eygpID0+IG9uSG92ZXI/LihpdGVtKX0gLz5cbiAgICApXG4gIH1cblxuICBpZiAodHlwZSA9PT0gJ21jcCcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDTUlSb3cgJGFjdGl2ZT17YWN0aXZlfSBvbk1vdXNlRG93bj17aGFuZGxlQ2xpY2t9IG9uTW91c2VFbnRlcj17KCkgPT4gb25Ib3Zlcj8uKGl0ZW0pfT5cbiAgICAgICAgPFNDTUlUYXNrUm93SW5uZXI+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIHdpZHRoOiAxNixcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxNixcbiAgICAgICAgICAgICAgZmxleDogJzAgMCAxNnB4JyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lzTm90aW9uTWNwU2x1ZyhyYXcuaWQpID8gKFxuICAgICAgICAgICAgICA8Tm90aW9uSWNvbiB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICBnZXRDb250ZXh0TWVudGlvbkljb24oJ21jcCcsICcjMmQ3N2JkJywgcmF3LmlkLCAxNilcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxTQ01JVGFza1RpdGxlIHRpdGxlPXtwcmltYXJ5fT57cmVuZGVyVGl0bGUocHJpbWFyeSwgcHJpbWFyeUhpZ2hsaWdodCl9PC9TQ01JVGFza1RpdGxlPlxuICAgICAgICA8L1NDTUlUYXNrUm93SW5uZXI+XG4gICAgICA8L1NDTUlSb3c+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NNSVJvdyAkYWN0aXZlPXthY3RpdmV9IG9uTW91c2VEb3duPXtoYW5kbGVDbGlja30gb25Nb3VzZUVudGVyPXsoKSA9PiBvbkhvdmVyPy4oaXRlbSl9PlxuICAgICAgPFNDTUlOYW1lPlxuICAgICAgICA8U0NNSVRpdGxlPntyZW5kZXJUaXRsZShwcmltYXJ5LCBwcmltYXJ5SGlnaGxpZ2h0KX08L1NDTUlUaXRsZT5cbiAgICAgICAgeyhoYXNDb3VudCB8fCBoYXNQYXJlbnQpICYmIChcbiAgICAgICAgICA8U0NNSUJyZWFkY3J1bWI+XG4gICAgICAgICAgICB7aGFzQ291bnQgJiYgKFxuICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICB7YnJlYWRjcnVtYj8uY291bnR9IHtjb3VudExhYmVsfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge2hhc1BhcmVudCAmJiAoXG4gICAgICAgICAgICAgIDxTQ01JQnJlYWRjcnVtYlBhcmVudD5cbiAgICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IHdpZHRoPVwiMTJweFwiIGhlaWdodD1cIjEycHhcIiBjb2xvcj1cIiM4MDgwODBcIiAvPlxuICAgICAgICAgICAgICAgIDxzcGFuPnticmVhZGNydW1iPy5wYXJlbnR9PC9zcGFuPlxuICAgICAgICAgICAgICA8L1NDTUlCcmVhZGNydW1iUGFyZW50PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1NDTUlCcmVhZGNydW1iPlxuICAgICAgICApfVxuICAgICAgPC9TQ01JTmFtZT5cbiAgICA8L1NDTUlSb3c+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQXlCQSxlQUFlLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUF3QixPQUFPO0FBQ3pGLFNBQVNDLFlBQVksUUFBUSwrQ0FBK0M7QUFDNUUsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBRTFDLFNBQVNDLFVBQVUsUUFBUSxxQkFBcUI7QUFDaEQsU0FBU0MsV0FBVyxRQUFRLHNCQUFzQjtBQUNsRCxTQUFTQyxZQUFZLFFBQVEsdUJBQXVCO0FBQ3BELFNBQVNDLHFCQUFxQixFQUFFQyxlQUFlLFFBQVEsb0NBQW9DO0FBQzNGLFNBQ0VDLE9BQU8sRUFDUEMsY0FBYyxFQUNkQyxrQkFBa0IsRUFDbEJDLFFBQVEsRUFDUkMsU0FBUyxFQUNUQyxnQkFBZ0IsRUFDaEJDLGtCQUFrQixFQUNsQkMsY0FBYyxFQUNkQyxvQkFBb0IsRUFDcEJDLFdBQVcsRUFDWEMsaUJBQWlCLEVBQ2pCQyxnQkFBZ0IsRUFDaEJDLHFCQUFxQixFQUNyQkMsV0FB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R0FBRyxDQUFDNEMsRUFBRSxDQUFDLGdCQUN0QmxJLElBQUEsQ0FBQ2hDLFVBQVU7WUFBQ29JLEtBQUssRUFBRSxFQUFHO1lBQUNDLE1BQU0sRUFBRTtVQUFHLENBQUUsQ0FBQyxHQUVyQ2xJLHFCQUFxQixDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUVtSCxHQUFHLENBQUM0QyxFQUFFLEVBQUUsRUFBRTtRQUNuRCxDQUNHLENBQUMsZUFDUGxJLElBQUEsQ0FBQ0YsYUFBYTtVQUFDMEcsS0FBSyxFQUFFeEYsT0FBUTtVQUFBSSxRQUFBLEVBQUVMLFdBQVcsQ0FBQ0MsT0FBTyxFQUFFb0UsZ0JBQWdCO1FBQUMsQ0FBZ0IsQ0FBQztNQUFBLENBQ3ZFO0lBQUMsQ0FDWixDQUFDO0VBRWQ7RUFFQSxvQkFDRXBGLElBQUEsQ0FBQzNCLE9BQU87SUFBQzhILE9BQU8sRUFBRWxCLE1BQU87SUFBQ0MsV0FBVyxFQUFFNkIsV0FBWTtJQUFDYixZQUFZLEVBQUUsU0FBZEEsWUFBWUEsQ0FBQTtNQUFBLE9BQVFmLFFBQU8sYUFBUEEsUUFBTyx1QkFBUEEsUUFBTyxDQUFHSCxJQUFJLENBQUM7SUFBQSxDQUFDO0lBQUE1RCxRQUFBLGVBQ3RGaEIsS0FBQSxDQUFDNUIsUUFBUTtNQUFBNEMsUUFBQSxnQkFDUHBCLElBQUEsQ0FBQ3ZCLFNBQVM7UUFBQTJDLFFBQUEsRUFBRUwsV0FBVyxDQUFDQyxPQUFPLEVBQUVvRSxnQkFBZ0I7TUFBQyxDQUFZLENBQUMsRUFDOUQsQ0FBQytCLFFBQVEsSUFBSUUsU0FBUyxrQkFDckJqSCxLQUFBLENBQUN4QixjQUFjO1FBQUF3QyxRQUFBLEdBQ1orRixRQUFRLGlCQUNQL0csS0FBQTtVQUFBZ0IsUUFBQSxHQUNHaUUsVUFBVSxhQUFWQSxVQUFVLHVCQUFWQSxVQUFVLENBQUUrQixLQUFLLEVBQUMsR0FBQyxFQUFDRSxVQUFVO1FBQUEsQ0FDM0IsQ0FDUCxFQUNBRCxTQUFTLGlCQUNSakgsS0FBQSxDQUFDdkIsb0JBQW9CO1VBQUF1QyxRQUFBLGdCQUNuQnBCLElBQUEsQ0FBQ25DLFlBQVk7WUFBQ3VJLEtBQUssRUFBQyxNQUFNO1lBQUNDLE1BQU0sRUFBQyxNQUFNO1lBQUNDLEtBQUssRUFBQztVQUFTLENBQUUsQ0FBQyxlQUMzRHRHLElBQUE7WUFBQW9CLFFBQUEsRUFBT2lFLFVBQVUsYUFBVkEsVUFBVSx1QkFBVkEsVUFBVSxDQUFFRztVQUFNLENBQU8sQ0FBQztRQUFBLENBQ2IsQ0FDdkI7TUFBQSxDQUNhLENBQ2pCO0lBQUEsQ0FDTztFQUFDLENBQ0osQ0FBQztBQUVkLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
309
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkNoZXZyb25SaWdodCIsIlRvb2x0aXAiLCJ1c2VUIiwiTm90aW9uSWNvbiIsIlN1YnRhc2tJY29uIiwiVGFza0xpbmtJY29uIiwiZ2V0Q29udGV4dE1lbnRpb25JY29uIiwiaXNOb3Rpb25NY3BTbHVnIiwiU0NNSVJvdyIsIlNDTUlQcm9qZWN0Um93IiwiU0NNSVByb2plY3RDb250ZW50IiwiU0NNSU5hbWUiLCJTQ01JVGl0bGUiLCJTQ01JUHJvamVjdFRpdGxlIiwiU0NNSVRpdGxlSGlnaGxpZ2h0IiwiU0NNSUJyZWFkY3J1bWIiLCJTQ01JQnJlYWRjcnVtYlBhcmVudCIsIlNDTUlSb3dVc2VyIiwiU0NNVXNlckF2YXRhcldyYXAiLCJTQ01Vc2VyQXZhdGFySW1nIiwiU0NNVXNlckF2YXRhckZhbGxiYWNrIiwiU0NNVXNlckluZm8iLCJTQ01Vc2VyTmFtZVBvc2l0aW9uUm93IiwiU0NNVXNlck5hbWVDZWxsIiwiU0NNVXNlck5hbWVUZXh0IiwiU0NNVXNlclBvc2l0aW9uVGV4dCIsIlNDTUlUYXNrUm93V3JhcCIsIlNDTUlUYXNrUm93U3VyZmFjZSIsIlNDTUlTa2lsbFJvd1N1cmZhY2UiLCJTQ01JVGFza1Jvd0lubmVyIiwiU0NNSVRhc2tUaXRsZVJvdyIsIlNDTUlUYXNrU3VidGFza0ljb25XcmFwIiwiU0NNSVRhc2tQcm9qZWN0TmFtZSIsIlNDTUlUYXNrSWNvbldyYXAiLCJTQ01JVGFza1RpdGxlIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwiVEFTS19QUk9KRUNUX05BTUVfTUFYX0NIQVJTIiwidHJ1bmNhdGVXaXRoRWxsaXBzaXMiLCJ2YWx1ZSIsIm1heENoYXJzIiwibGVuZ3RoIiwiY29uY2F0Iiwic2xpY2UiLCJNYXRoIiwibWF4IiwidHJpbUVuZCIsInJlbmRlclRpdGxlIiwicHJpbWFyeSIsImhpZ2hsaWdodCIsInN0YXJ0IiwiZW5kIiwiY2hpbGRyZW4iLCJ1c2VPdmVyZmxvd1Rvb2x0aXAiLCJyZWYiLCJkZXBzIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2hvd1Rvb2x0aXAiLCJzZXRTaG93VG9vbHRpcCIsImVsIiwiY3VycmVudCIsInVuZGVmaW5lZCIsIm1lYXN1cmUiLCJzY3JvbGxXaWR0aCIsImNsaWVudFdpZHRoIiwicm8iLCJSZXNpemVPYnNlcnZlciIsIm9ic2VydmUiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwiZGlzY29ubmVjdCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJpbml0aWFsc0Zyb21EaXNwbGF5TmFtZSIsIm5hbWUiLCJfcGFydHMkMiIsInRyaW1tZWQiLCJ0cmltIiwicGFydHMiLCJzcGxpdCIsImZpbHRlciIsIkJvb2xlYW4iLCJfcGFydHMkMCRjaGFyQXQiLCJfcGFydHMkIiwiX3BhcnRzJGNoYXJBdCIsIl9wYXJ0cyIsImZpcnN0IiwiY2hhckF0IiwibGFzdCIsInRvVXBwZXJDYXNlIiwic2luZ2xlIiwiVXNlclJvd0F2YXRhciIsIl9yZWYiLCJwaWN0dXJlIiwibmFtZUZvckluaXRpYWxzIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJicm9rZW4iLCJzZXRCcm9rZW4iLCJpbml0aWFscyIsInNyYyIsImFsdCIsIm9uRXJyb3IiLCJsb2FkaW5nIiwiZGVjb2RpbmciLCJDb250ZXh0TWVudGlvblRhc2tSb3ciLCJfcmVmMiIsIl9yYXckcHJvamVjdE5hbWUiLCJfYnJlYWRjcnVtYiRwYXJlbnQiLCJfcHJpbWFyeUhpZ2hsaWdodCRzdGEiLCJfcHJpbWFyeUhpZ2hsaWdodCRsZW4iLCJpdGVtIiwiYWN0aXZlIiwib25Nb3VzZURvd24iLCJvbkhvdmVyIiwicHJpbWFyeUhpZ2hsaWdodCIsImJyZWFkY3J1bWIiLCJyYXciLCJwcm9qZWN0TmFtZSIsInBhcmVudCIsInByb2plY3ROYW1lRGlzcGxheSIsImlzUHJvamVjdE5hbWVUcnVuY2F0ZWRCeUNoYXJzIiwiaGFzRmF0aGVyIiwiZmF0aGVySWQiLCJ0aXRsZVJlZiIsInByb2plY3RSZWYiLCJzaG93VGl0bGVUb29sdGlwIiwic2hvd1Byb2plY3RUb29sdGlwIiwic2hvdWxkU2hvd1Byb2plY3RUb29sdGlwIiwib25Nb3VzZUVudGVyIiwiJGFjdGl2ZSIsIndpZHRoIiwiaGVpZ2h0IiwiY29sb3IiLCJ2YXJpYW50IiwidGl0bGUiLCJDb250ZXh0TWVudGlvbkl0ZW0iLCJfcmVmMyIsIm9uU2VsZWN0IiwiX3VzZVQiLCJ0IiwidHlwZSIsImhhbmRsZUNsaWNrIiwiZSIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiaGFzQ291bnQiLCJjb3VudCIsImhhc1BhcmVudCIsImNvdW50TGFiZWwiLCJkZWZhdWx0VmFsdWUiLCJwb3NpdGlvbk5hbWVUcmltbWVkIiwicG9zaXRpb25OYW1lIiwicG9zaXRpb25MaW5lIiwidXNlck5hbWVGb3JJbml0aWFscyIsIiR3aXRoRGl2aWRlciIsInN0eWxlIiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJqdXN0aWZ5Q29udGVudCIsImZsZXgiLCJpZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uSXRlbS9Db250ZXh0TWVudGlvbkl0ZW0udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZDLCBNb3VzZUV2ZW50LCB1c2VMYXlvdXRFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUsIHR5cGUgUmVmT2JqZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDaGV2cm9uUmlnaHQgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGV2cm9uUmlnaHQnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IENvbnRleHRNZW50aW9uSXRlbSBhcyBDb250ZXh0TWVudGlvbkl0ZW1UeXBlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQgeyBOb3Rpb25JY29uIH0gZnJvbSAnLi4vaWNvbnMvTm90aW9uSWNvbidcbmltcG9ydCB7IFN1YnRhc2tJY29uIH0gZnJvbSAnLi4vaWNvbnMvU3VidGFza0ljb24nXG5pbXBvcnQgeyBUYXNrTGlua0ljb24gfSBmcm9tICcuLi9pY29ucy9UYXNrTGlua0ljb24nXG5pbXBvcnQgeyBnZXRDb250ZXh0TWVudGlvbkljb24sIGlzTm90aW9uTWNwU2x1ZyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NvbnRleHRNZW50aW9uSWNvbnMnXG5pbXBvcnQge1xuICBTQ01JUm93LFxuICBTQ01JUHJvamVjdFJvdyxcbiAgU0NNSVByb2plY3RDb250ZW50LFxuICBTQ01JTmFtZSxcbiAgU0NNSVRpdGxlLFxuICBTQ01JUHJvamVjdFRpdGxlLFxuICBTQ01JVGl0bGVIaWdobGlnaHQsXG4gIFNDTUlCcmVhZGNydW1iLFxuICBTQ01JQnJlYWRjcnVtYlBhcmVudCxcbiAgU0NNSVJvd1VzZXIsXG4gIFNDTVVzZXJBdmF0YXJXcmFwLFxuICBTQ01Vc2VyQXZhdGFySW1nLFxuICBTQ01Vc2VyQXZhdGFyRmFsbGJhY2ssXG4gIFNDTVVzZXJJbmZvLFxuICBTQ01Vc2VyTmFtZVBvc2l0aW9uUm93LFxuICBTQ01Vc2VyTmFtZUNlbGwsXG4gIFNDTVVzZXJOYW1lVGV4dCxcbiAgU0NNVXNlclBvc2l0aW9uVGV4dCxcbiAgU0NNSVRhc2tSb3dXcmFwLFxuICBTQ01JVGFza1Jvd1N1cmZhY2UsXG4gIFNDTUlTa2lsbFJvd1N1cmZhY2UsXG4gIFNDTUlUYXNrUm93SW5uZXIsXG4gIFNDTUlUYXNrVGl0bGVSb3csXG4gIFNDTUlUYXNrU3VidGFza0ljb25XcmFwLFxuICBTQ01JVGFza1Byb2plY3ROYW1lLFxuICBTQ01JVGFza0ljb25XcmFwLFxuICBTQ01JVGFza1RpdGxlLFxufSBmcm9tICcuL0NvbnRleHRNZW50aW9uSXRlbS5zdHlsZXMnXG5cbnR5cGUgQ29udGV4dE1lbnRpb25JdGVtUHJvcHMgPSB7XG4gIGl0ZW06IENvbnRleHRNZW50aW9uSXRlbVR5cGVcbiAgYWN0aXZlPzogYm9vbGVhblxuICBvblNlbGVjdDogKGl0ZW06IENvbnRleHRNZW50aW9uSXRlbVR5cGUpID0+IHZvaWRcbiAgb25Ib3Zlcj86IChpdGVtOiBDb250ZXh0TWVudGlvbkl0ZW1UeXBlKSA9PiB2b2lkXG59XG5cbmNvbnN0IFRBU0tfUFJPSkVDVF9OQU1FX01BWF9DSEFSUyA9IDQwXG5cbmNvbnN0IHRydW5jYXRlV2l0aEVsbGlwc2lzID0gKHZhbHVlOiBzdHJpbmcsIG1heENoYXJzOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuICBpZiAodmFsdWUubGVuZ3RoIDw9IG1heENoYXJzKSByZXR1cm4gdmFsdWVcbiAgcmV0dXJuIGAke3ZhbHVlLnNsaWNlKDAsIE1hdGgubWF4KDAsIG1heENoYXJzIC0gMSkpLnRyaW1FbmQoKX3igKZgXG59XG5cbmNvbnN0IHJlbmRlclRpdGxlID0gKHByaW1hcnk6IHN0cmluZywgaGlnaGxpZ2h0PzogeyBzdGFydDogbnVtYmVyOyBsZW5ndGg6IG51bWJlciB9KSA9PiB7XG4gIGlmICghaGlnaGxpZ2h0IHx8IGhpZ2hsaWdodC5sZW5ndGggPD0gMCkgcmV0dXJuIHByaW1hcnlcbiAgY29uc3QgeyBzdGFydCwgbGVuZ3RoIH0gPSBoaWdobGlnaHRcbiAgY29uc3QgZW5kID0gc3RhcnQgKyBsZW5ndGhcbiAgaWYgKHN0YXJ0IDwgMCB8fCBzdGFydCA+IHByaW1hcnkubGVuZ3RoIHx8IGVuZCA+IHByaW1hcnkubGVuZ3RoKSByZXR1cm4gcHJpbWFyeVxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7cHJpbWFyeS5zbGljZSgwLCBzdGFydCl9XG4gICAgICA8U0NNSVRpdGxlSGlnaGxpZ2h0PntwcmltYXJ5LnNsaWNlKHN0YXJ0LCBlbmQpfTwvU0NNSVRpdGxlSGlnaGxpZ2h0PlxuICAgICAge3ByaW1hcnkuc2xpY2UoZW5kKX1cbiAgICA8Lz5cbiAgKVxufVxuXG5mdW5jdGlvbiB1c2VPdmVyZmxvd1Rvb2x0aXA8VCBleHRlbmRzIEhUTUxFbGVtZW50PihyZWY6IFJlZk9iamVjdDxUIHwgbnVsbD4sIGRlcHM6IHJlYWRvbmx5IHVua25vd25bXSkge1xuICBjb25zdCBbc2hvd1Rvb2x0aXAsIHNldFNob3dUb29sdGlwXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZWwgPSByZWYuY3VycmVudFxuICAgIGlmICghZWwpIHtcbiAgICAgIHNldFNob3dUb29sdGlwKGZhbHNlKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGNvbnN0IG1lYXN1cmUgPSAoKSA9PiB7XG4gICAgICBzZXRTaG93VG9vbHRpcChlbC5zY3JvbGxXaWR0aCA+IGVsLmNsaWVudFdpZHRoKVxuICAgIH1cblxuICAgIG1lYXN1cmUoKVxuICAgIGNvbnN0IHJvID0gbmV3IFJlc2l6ZU9ic2VydmVyKG1lYXN1cmUpXG4gICAgcm8ub2JzZXJ2ZShlbClcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgbWVhc3VyZSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcm8uZGlzY29ubmVjdCgpXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgbWVhc3VyZSlcbiAgICB9XG4gIH0sIGRlcHMpXG5cbiAgcmV0dXJuIHNob3dUb29sdGlwXG59XG5cbi8qKiBJbmljaWFsZXMgcGFyYSBhdmF0YXIgKG5vbWJyZSBsZWdhbCksIG5vIGVsIHRleHRvIHZpc2libGUgZGUgbGEgZmlsYSAoZWouIFwiWW9cIikuICovXG5jb25zdCBpbml0aWFsc0Zyb21EaXNwbGF5TmFtZSA9IChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB0cmltbWVkID0gbmFtZS50cmltKClcbiAgaWYgKCF0cmltbWVkKSByZXR1cm4gJz8nXG4gIGNvbnN0IHBhcnRzID0gdHJpbW1lZC5zcGxpdCgvXFxzKy8pLmZpbHRlcihCb29sZWFuKVxuICBpZiAocGFydHMubGVuZ3RoID49IDIpIHtcbiAgICBjb25zdCBmaXJzdCA9IHBhcnRzWzBdPy5jaGFyQXQoMCkgPz8gJydcbiAgICBjb25zdCBsYXN0ID0gcGFydHNbcGFydHMubGVuZ3RoIC0gMV0/LmNoYXJBdCgwKSA/PyAnJ1xuICAgIHJldHVybiBgJHtmaXJzdH0ke2xhc3R9YC50b1VwcGVyQ2FzZSgpXG4gIH1cbiAgY29uc3Qgc2luZ2xlID0gcGFydHNbMF0gPz8gJydcbiAgaWYgKHNpbmdsZS5sZW5ndGggPj0gMikgcmV0dXJuIHNpbmdsZS5zbGljZSgwLCAyKS50b1VwcGVyQ2FzZSgpXG4gIHJldHVybiAoc2luZ2xlLmNoYXJBdCgwKSB8fCAnPycpLnRvVXBwZXJDYXNlKClcbn1cblxuY29uc3QgVXNlclJvd0F2YXRhcjogRkM8eyBwaWN0dXJlPzogc3RyaW5nIHwgbnVsbDsgbmFtZUZvckluaXRpYWxzOiBzdHJpbmcgfT4gPSAoeyBwaWN0dXJlLCBuYW1lRm9ySW5pdGlhbHMgfSkgPT4ge1xuICBjb25zdCBbYnJva2VuLCBzZXRCcm9rZW5dID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGluaXRpYWxzID0gaW5pdGlhbHNGcm9tRGlzcGxheU5hbWUobmFtZUZvckluaXRpYWxzKVxuXG4gIHJldHVybiAoXG4gICAgPFNDTVVzZXJBdmF0YXJXcmFwPlxuICAgICAge3BpY3R1cmUgJiYgIWJyb2tlbiA/IChcbiAgICAgICAgPFNDTVVzZXJBdmF0YXJJbWcgc3JjPXtwaWN0dXJlfSBhbHQ9XCJcIiBvbkVycm9yPXsoKSA9PiBzZXRCcm9rZW4odHJ1ZSl9IGxvYWRpbmc9XCJsYXp5XCIgZGVjb2Rpbmc9XCJhc3luY1wiIC8+XG4gICAgICApIDogKFxuICAgICAgICA8U0NNVXNlckF2YXRhckZhbGxiYWNrIGFyaWEtaGlkZGVuPntpbml0aWFsc308L1NDTVVzZXJBdmF0YXJGYWxsYmFjaz5cbiAgICAgICl9XG4gICAgPC9TQ01Vc2VyQXZhdGFyV3JhcD5cbiAgKVxufVxuXG5jb25zdCBDb250ZXh0TWVudGlvblRhc2tSb3c6IEZDPHtcbiAgaXRlbTogQ29udGV4dE1lbnRpb25JdGVtVHlwZVxuICBhY3RpdmU/OiBib29sZWFuXG4gIG9uTW91c2VEb3duOiAoZTogTW91c2VFdmVudCkgPT4gdm9pZFxuICBvbkhvdmVyPzogKCkgPT4gdm9pZFxufT4gPSAoeyBpdGVtLCBhY3RpdmUsIG9uTW91c2VEb3duLCBvbkhvdmVyIH0pID0+IHtcbiAgY29uc3QgeyBwcmltYXJ5LCBwcmltYXJ5SGlnaGxpZ2h0LCBicmVhZGNydW1iLCByYXcgfSA9IGl0ZW1cbiAgY29uc3QgcHJvamVjdE5hbWUgPSByYXcucHJvamVjdE5hbWU/LnRyaW0oKSB8fCBicmVhZGNydW1iPy5wYXJlbnQ/LnRyaW0oKSB8fCAnJ1xuICBjb25zdCBwcm9qZWN0TmFtZURpc3BsYXkgPSB0cnVuY2F0ZVdpdGhFbGxpcHNpcyhwcm9qZWN0TmFtZSwgVEFTS19QUk9KRUNUX05BTUVfTUFYX0NIQVJTKVxuICBjb25zdCBpc1Byb2plY3ROYW1lVHJ1bmNhdGVkQnlDaGFycyA9IHByb2plY3ROYW1lRGlzcGxheSAhPT0gcHJvamVjdE5hbWVcbiAgY29uc3QgaGFzRmF0aGVyID0gcmF3LmZhdGhlcklkICE9IG51bGxcbiAgY29uc3QgdGl0bGVSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHByb2plY3RSZWYgPSB1c2VSZWY8SFRNTFNwYW5FbGVtZW50PihudWxsKVxuICBjb25zdCBzaG93VGl0bGVUb29sdGlwID0gdXNlT3ZlcmZsb3dUb29sdGlwKHRpdGxlUmVmLCBbXG4gICAgcHJpbWFyeSxcbiAgICBwcm9qZWN0TmFtZSxcbiAgICBwcmltYXJ5SGlnaGxpZ2h0Py5zdGFydCA/PyAtMSxcbiAgICBwcmltYXJ5SGlnaGxpZ2h0Py5sZW5ndGggPz8gMCxcbiAgICBoYXNGYXRoZXIsXG4gIF0pXG4gIGNvbnN0IHNob3dQcm9qZWN0VG9vbHRpcCA9IHVzZU92ZXJmbG93VG9vbHRpcChwcm9qZWN0UmVmLCBbcHJvamVjdE5hbWVEaXNwbGF5LCBwcmltYXJ5XSlcbiAgY29uc3Qgc2hvdWxkU2hvd1Byb2plY3RUb29sdGlwID0gaXNQcm9qZWN0TmFtZVRydW5jYXRlZEJ5Q2hhcnMgfHwgc2hvd1Byb2plY3RUb29sdGlwXG5cbiAgcmV0dXJuIChcbiAgICA8U0NNSVRhc2tSb3dXcmFwIG9uTW91c2VEb3duPXtvbk1vdXNlRG93bn0gb25Nb3VzZUVudGVyPXtvbkhvdmVyfT5cbiAgICAgIDxTQ01JVGFza1Jvd1N1cmZhY2UgJGFjdGl2ZT17YWN0aXZlfT5cbiAgICAgICAgPFNDTUlUYXNrUm93SW5uZXI+XG4gICAgICAgICAgPFNDTUlUYXNrSWNvbldyYXA+XG4gICAgICAgICAgICA8VGFza0xpbmtJY29uIHdpZHRoPXsyMH0gaGVpZ2h0PXsyMH0gLz5cbiAgICAgICAgICA8L1NDTUlUYXNrSWNvbldyYXA+XG4gICAgICAgICAgPFNDTUlUYXNrVGl0bGVSb3c+XG4gICAgICAgICAgICB7aGFzRmF0aGVyID8gKFxuICAgICAgICAgICAgICA8U0NNSVRhc2tTdWJ0YXNrSWNvbldyYXA+XG4gICAgICAgICAgICAgICAgPFN1YnRhc2tJY29uIHdpZHRoPVwiMTZweFwiIGhlaWdodD1cIjE2cHhcIiBjb2xvcj1cIiMwMDBcIiB2YXJpYW50PVwicmVndWxhclwiIC8+XG4gICAgICAgICAgICAgIDwvU0NNSVRhc2tTdWJ0YXNrSWNvbldyYXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtzaG93VGl0bGVUb29sdGlwID8gcHJpbWFyeSA6ICcnfT5cbiAgICAgICAgICAgICAgPFNDTUlUYXNrVGl0bGUgcmVmPXt0aXRsZVJlZn0+e3JlbmRlclRpdGxlKHByaW1hcnksIHByaW1hcnlIaWdobGlnaHQpfTwvU0NNSVRhc2tUaXRsZT5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgIHtwcm9qZWN0TmFtZSA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3Nob3VsZFNob3dQcm9qZWN0VG9vbHRpcCA/IHByb2plY3ROYW1lIDogJyd9PlxuICAgICAgICAgICAgICAgIDxTQ01JVGFza1Byb2plY3ROYW1lIHJlZj17cHJvamVjdFJlZn0+e3Byb2plY3ROYW1lRGlzcGxheX08L1NDTUlUYXNrUHJvamVjdE5hbWU+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU0NNSVRhc2tUaXRsZVJvdz5cbiAgICAgICAgPC9TQ01JVGFza1Jvd0lubmVyPlxuICAgICAgPC9TQ01JVGFza1Jvd1N1cmZhY2U+XG4gICAgPC9TQ01JVGFza1Jvd1dyYXA+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IENvbnRleHRNZW50aW9uSXRlbTogRkM8Q29udGV4dE1lbnRpb25JdGVtUHJvcHM+ID0gKHsgaXRlbSwgYWN0aXZlLCBvblNlbGVjdCwgb25Ib3ZlciB9KSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IHsgcHJpbWFyeSwgcHJpbWFyeUhpZ2hsaWdodCwgYnJlYWRjcnVtYiwgdHlwZSwgcmF3IH0gPSBpdGVtXG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBvblNlbGVjdChpdGVtKVxuICB9XG5cbiAgY29uc3QgaGFzQ291bnQgPSB0eXBlb2YgYnJlYWRjcnVtYj8uY291bnQgPT09ICdudW1iZXInXG4gIGNvbnN0IGhhc1BhcmVudCA9ICEhYnJlYWRjcnVtYj8ucGFyZW50XG4gIGNvbnN0IGNvdW50TGFiZWwgPVxuICAgIGJyZWFkY3J1bWI/LmNvdW50TGFiZWwgJiZcbiAgICB0KGBjb250ZXh0TWVudGlvbi5jb3VudGVycy4ke2JyZWFkY3J1bWIuY291bnRMYWJlbH1gLCB7IGRlZmF1bHRWYWx1ZTogYnJlYWRjcnVtYi5jb3VudExhYmVsIH0pXG5cbiAgaWYgKHR5cGUgPT09ICd1c2VyJykge1xuICAgIGNvbnN0IHBvc2l0aW9uTmFtZVRyaW1tZWQgPSB0eXBlb2YgcmF3LnBvc2l0aW9uTmFtZSA9PT0gJ3N0cmluZycgPyByYXcucG9zaXRpb25OYW1lLnRyaW0oKSA6ICcnXG4gICAgY29uc3QgcG9zaXRpb25MaW5lID0gcG9zaXRpb25OYW1lVHJpbW1lZCB8fCB0KCdjb250ZXh0TWVudGlvbi51c2VyTm9Qb3NpdGlvbicsIHsgZGVmYXVsdFZhbHVlOiAnU2luIHBvc2ljacOzbicgfSlcbiAgICBjb25zdCB1c2VyTmFtZUZvckluaXRpYWxzID0gdHlwZW9mIHJhdy5uYW1lID09PSAnc3RyaW5nJyAmJiByYXcubmFtZS50cmltKCkgPyByYXcubmFtZSA6IHByaW1hcnlcblxuICAgIHJldHVybiAoXG4gICAgICA8U0NNSVJvd1VzZXIgJGFjdGl2ZT17YWN0aXZlfSBvbk1vdXNlRG93bj17aGFuZGxlQ2xpY2t9IG9uTW91c2VFbnRlcj17KCkgPT4gb25Ib3Zlcj8uKGl0ZW0pfT5cbiAgICAgICAgPFVzZXJSb3dBdmF0YXIgcGljdHVyZT17cmF3LnBpY3R1cmV9IG5hbWVGb3JJbml0aWFscz17dXNlck5hbWVGb3JJbml0aWFsc30gLz5cbiAgICAgICAgPFNDTVVzZXJJbmZvPlxuICAgICAgICAgIDxTQ01Vc2VyTmFtZVBvc2l0aW9uUm93PlxuICAgICAgICAgICAgPFNDTVVzZXJOYW1lQ2VsbCAkd2l0aERpdmlkZXI+XG4gICAgICAgICAgICAgIDxTQ01Vc2VyTmFtZVRleHQ+e3JlbmRlclRpdGxlKHByaW1hcnksIHByaW1hcnlIaWdobGlnaHQpfTwvU0NNVXNlck5hbWVUZXh0PlxuICAgICAgICAgICAgPC9TQ01Vc2VyTmFtZUNlbGw+XG4gICAgICAgICAgICA8U0NNVXNlclBvc2l0aW9uVGV4dCB0aXRsZT17cG9zaXRpb25MaW5lfT57cG9zaXRpb25MaW5lfTwvU0NNVXNlclBvc2l0aW9uVGV4dD5cbiAgICAgICAgICA8L1NDTVVzZXJOYW1lUG9zaXRpb25Sb3c+XG4gICAgICAgIDwvU0NNVXNlckluZm8+XG4gICAgICA8L1NDTUlSb3dVc2VyPlxuICAgIClcbiAgfVxuXG4gIGlmICh0eXBlID09PSAncHJvamVjdCcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDTUlQcm9qZWN0Um93IG9uTW91c2VEb3duPXtoYW5kbGVDbGlja30gb25Nb3VzZUVudGVyPXsoKSA9PiBvbkhvdmVyPy4oaXRlbSl9PlxuICAgICAgICA8U0NNSVByb2plY3RDb250ZW50ICRhY3RpdmU9e2FjdGl2ZX0+XG4gICAgICAgICAgPFNDTUlOYW1lPlxuICAgICAgICAgICAgPFNDTUlQcm9qZWN0VGl0bGUgdGl0bGU9e3ByaW1hcnl9PntyZW5kZXJUaXRsZShwcmltYXJ5LCBwcmltYXJ5SGlnaGxpZ2h0KX08L1NDTUlQcm9qZWN0VGl0bGU+XG4gICAgICAgICAgPC9TQ01JTmFtZT5cbiAgICAgICAgPC9TQ01JUHJvamVjdENvbnRlbnQ+XG4gICAgICA8L1NDTUlQcm9qZWN0Um93PlxuICAgIClcbiAgfVxuXG4gIGlmICh0eXBlID09PSAndGFzaycpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPENvbnRleHRNZW50aW9uVGFza1JvdyBpdGVtPXtpdGVtfSBhY3RpdmU9e2FjdGl2ZX0gb25Nb3VzZURvd249e2hhbmRsZUNsaWNrfSBvbkhvdmVyPXsoKSA9PiBvbkhvdmVyPy4oaXRlbSl9IC8+XG4gICAgKVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICdtY3AnKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ01JUm93ICRhY3RpdmU9e2FjdGl2ZX0gb25Nb3VzZURvd249e2hhbmRsZUNsaWNrfSBvbk1vdXNlRW50ZXI9eygpID0+IG9uSG92ZXI/LihpdGVtKX0+XG4gICAgICAgIDxTQ01JVGFza1Jvd0lubmVyPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWZsZXgnLFxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICB3aWR0aDogMTYsXG4gICAgICAgICAgICAgIGhlaWdodDogMTYsXG4gICAgICAgICAgICAgIGZsZXg6ICcwIDAgMTZweCcsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpc05vdGlvbk1jcFNsdWcocmF3LmlkKSA/IChcbiAgICAgICAgICAgICAgPE5vdGlvbkljb24gd2lkdGg9ezE2fSBoZWlnaHQ9ezE2fSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgZ2V0Q29udGV4dE1lbnRpb25JY29uKCdtY3AnLCAnIzJkNzdiZCcsIHJhdy5pZCwgMTYpXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8U0NNSVRhc2tUaXRsZSB0aXRsZT17cHJpbWFyeX0+e3JlbmRlclRpdGxlKHByaW1hcnksIHByaW1hcnlIaWdobGlnaHQpfTwvU0NNSVRhc2tUaXRsZT5cbiAgICAgICAgPC9TQ01JVGFza1Jvd0lubmVyPlxuICAgICAgPC9TQ01JUm93PlxuICAgIClcbiAgfVxuXG4gIGlmICh0eXBlID09PSAnc2tpbGwnKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ01JVGFza1Jvd1dyYXAgb25Nb3VzZURvd249e2hhbmRsZUNsaWNrfSBvbk1vdXNlRW50ZXI9eygpID0+IG9uSG92ZXI/LihpdGVtKX0+XG4gICAgICAgIDxTQ01JU2tpbGxSb3dTdXJmYWNlICRhY3RpdmU9e2FjdGl2ZX0+XG4gICAgICAgICAgPFNDTUlUYXNrUm93SW5uZXI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAxNixcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2LFxuICAgICAgICAgICAgICAgIGZsZXg6ICcwIDAgMTZweCcsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtnZXRDb250ZXh0TWVudGlvbkljb24oJ3NraWxsJywgJyM4MDgwODAnLCByYXcuaWQsIDE2KX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxTQ01JVGFza1RpdGxlIHRpdGxlPXtwcmltYXJ5fT57cmVuZGVyVGl0bGUocHJpbWFyeSwgcHJpbWFyeUhpZ2hsaWdodCl9PC9TQ01JVGFza1RpdGxlPlxuICAgICAgICAgIDwvU0NNSVRhc2tSb3dJbm5lcj5cbiAgICAgICAgPC9TQ01JU2tpbGxSb3dTdXJmYWNlPlxuICAgICAgPC9TQ01JVGFza1Jvd1dyYXA+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NNSVJvdyAkYWN0aXZlPXthY3RpdmV9IG9uTW91c2VEb3duPXtoYW5kbGVDbGlja30gb25Nb3VzZUVudGVyPXsoKSA9PiBvbkhvdmVyPy4oaXRlbSl9PlxuICAgICAgPFNDTUlOYW1lPlxuICAgICAgICA8U0NNSVRpdGxlPntyZW5kZXJUaXRsZShwcmltYXJ5LCBwcmltYXJ5SGlnaGxpZ2h0KX08L1NDTUlUaXRsZT5cbiAgICAgICAgeyhoYXNDb3VudCB8fCBoYXNQYXJlbnQpICYmIChcbiAgICAgICAgICA8U0NNSUJyZWFkY3J1bWI+XG4gICAgICAgICAgICB7aGFzQ291bnQgJiYgKFxuICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICB7YnJlYWRjcnVtYj8uY291bnR9IHtjb3VudExhYmVsfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge2hhc1BhcmVudCAmJiAoXG4gICAgICAgICAgICAgIDxTQ01JQnJlYWRjcnVtYlBhcmVudD5cbiAgICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IHdpZHRoPVwiMTJweFwiIGhlaWdodD1cIjEycHhcIiBjb2xvcj1cIiM4MDgwODBcIiAvPlxuICAgICAgICAgICAgICAgIDxzcGFuPnticmVhZGNydW1iPy5wYXJlbnR9PC9zcGFuPlxuICAgICAgICAgICAgICA8L1NDTUlCcmVhZGNydW1iUGFyZW50PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1NDTUlCcmVhZGNydW1iPlxuICAgICAgICApfVxuICAgICAgPC9TQ01JTmFtZT5cbiAgICA8L1NDTUlSb3c+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQXlCQSxlQUFlLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUF3QixPQUFPO0FBQ3pGLFNBQVNDLFlBQVksUUFBUSwrQ0FBK0M7QUFDNUUsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBRTFDLFNBQVNDLFVBQVUsUUFBUSxxQkFBcUI7QUFDaEQsU0FBU0MsV0FBVyxRQUFRLHNCQUFzQjtBQUNsRCxTQUFTQyxZQUFZLFFBQVEsdUJBQXVCO0FBQ3BELFNBQVNDLHFCQUFxQixFQUFFQyxlQUFlLFFBQVEsb0NBQW9DO0FBQzNGLFNBQ0VDLE9BQU8sRUFDUEMsY0FBYyxFQUNkQyxrQkFBa0IsRUFDbEJDLFFBQVEsRUFDUkMsU0FBUyxFQUNUQyxnQkFBZ0IsRUFDaEJDLGtCQUFrQixFQUNsQkMsY0FBYyxFQUNkQyxvQkFBb0IsRUFDcEJDLFdBQVcsRUFDWEMsaUJBQWlCLEVBQ2pCQyxnQkFBZ0IsRUFDaEJDLHFCQUFxQixFQUNyQkMsV0FBVyxFQUNYQyxzQkFBc0IsRUFDdEJDLGVBQWUsRUFDZkMsZUFBZSxFQUNmQyxtQkFBbUIsRUFDbkJDLGVB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
|