@projectcor/maia-components 2.11.62-1 → 2.11.62-3
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.
|
@@ -106,7 +106,7 @@ var chipSurfaceCss = function chipSurfaceCss(type) {
|
|
|
106
106
|
/**
|
|
107
107
|
* Hover y superficie para chips montados por `buildChipElement` (estilos inline en el host).
|
|
108
108
|
*/
|
|
109
|
-
export var ContextMentionChipGlobalStyles = createGlobalStyle([".", ":not([data-mention-type='task']):
|
|
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_EDITOR_LINK_ICON_DATA_URL, CONTEXT_MENTION_CHIP_CLASS, MENTION_CHIP_TASK_EDITOR_HOVER_BG);
|
|
110
110
|
|
|
111
111
|
/**
|
|
112
112
|
* Aplica los estilos del chip a un nodo DOM existente.
|
|
@@ -120,10 +120,7 @@ export var applyMentionChipStyles = function applyMentionChipStyles(el, type) {
|
|
|
120
120
|
}));
|
|
121
121
|
};
|
|
122
122
|
var chipHoverCss = function chipHoverCss(type) {
|
|
123
|
-
if (type === 'task') return css([""]);
|
|
124
|
-
if (type === 'skill') {
|
|
125
|
-
return css(["background:#f9f9f9;"]);
|
|
126
|
-
}
|
|
123
|
+
if (type === 'task' || type === 'skill') return css([""]);
|
|
127
124
|
if (type === 'project') {
|
|
128
125
|
return css(["background:", ";"], VIOLET_IA_COLORS[100]);
|
|
129
126
|
}
|
|
@@ -188,4 +185,4 @@ export var SCMCChipPlainLabel = styled.span.withConfig({
|
|
|
188
185
|
displayName: "ContextMentionChipstyles__SCMCChipPlainLabel",
|
|
189
186
|
componentId: "sc-11ynxow-4"
|
|
190
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);
|
|
191
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJjcmVhdGVHbG9iYWxTdHlsZSIsImNvbG9ycyIsIkJMVUVfSUFfQ09MT1JTIiwiVklPTEVUX0lBX0NPTE9SUyIsIkNPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTIiwiVEFTS19DSElQX0JHIiwiVEFTS19DSElQX0ZHIiwidGV4dCIsInByaW1hcnkiLCJOT05fVEFTS19DSElQX0JHIiwiTk9OX1RBU0tfQ0hJUF9GRyIsIk1FTlRJT05fQ0hJUF9OT05fVEFTS19IT1ZFUl9CRyIsIk1FTlRJT05fQ0hJUF9UQVNLX0hPVkVSX0JHIiwiTUVOVElPTl9DSElQX1RBU0tfRURJVE9SX0hPVkVSX0JHIiwiVEFTS19FRElUT1JfTElOS19JQ09OX0RBVEFfVVJMIiwiTUVOVElPTl9DSElQX0NPTE9SUyIsImNsaWVudCIsImJnIiwiZmciLCJwcm9qZWN0IiwidGFzayIsInVzZXIiLCJtY3AiLCJza2lsbCIsIk1FTlRJT05fQ0hJUF9CQVNFX1NUWUxFX1RBU0siLCJkaXNwbGF5IiwicGFkZGluZyIsInBhZGRpbmdMZWZ0IiwibWFyZ2luIiwibWF4V2lkdGgiLCJib3JkZXJSYWRpdXMiLCJmb250RmFtaWx5IiwiZm9udFNpemUiLCJmb250V2VpZ2h0IiwibGluZUhlaWdodCIsIndoaXRlU3BhY2UiLCJvdmVyZmxvd1dyYXAiLCJ3b3JkQnJlYWsiLCJ1c2VyU2VsZWN0IiwidmVydGljYWxBbGlnbiIsImN1cnNvciIsIk1FTlRJT05fQ0hJUF9CQVNFX1NUWUxFX05PTl9UQVNLIiwiTUVOVElPTl9DSElQX0JBU0VfU1RZTEUiLCJjaGlwQ29sb3JzIiwidHlwZSIsIl9NRU5USU9OX0NISVBfQ09MT1JTJCIsImNoaXBTdXJmYWNlQ3NzIiwiYyIsIkNvbnRleHRNZW50aW9uQ2hpcEdsb2JhbFN0eWxlcyIsImFwcGx5TWVudGlvbkNoaXBTdHlsZXMiLCJlbCIsImJhc2UiLCJPYmplY3QiLCJhc3NpZ24iLCJzdHlsZSIsIl9vYmplY3RTcHJlYWQiLCJiYWNrZ3JvdW5kIiwiY29sb3IiLCJjaGlwSG92ZXJDc3MiLCJTQ01DQ2hpcCIsInNwYW4iLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIl9yZWYiLCIkdHlwZSIsIl9yZWYyIiwiX3JlZjMiLCJfcmVmNCIsIl9yZWY1IiwiX3JlZjYiLCJfcmVmNyIsIl9yZWY4IiwiU0NNQ0NoaXBJY29uIiwiX3JlZjkiLCIkdGFzayIsIl9yZWYwIiwiX3JlZjEiLCJTQ01DVGFza0NoaXBMYWJlbFdyYXAiLCJTQ01DVGFza0NoaXBMYWJlbFRleHQiLCJTQ01DQ2hpcFBsYWluTGFiZWwiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9Db250ZXh0TWVudGlvbkNoaXAvQ29udGV4dE1lbnRpb25DaGlwLnN0eWxlcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCwgeyBjc3MsIGNyZWF0ZUdsb2JhbFN0eWxlIH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5pbXBvcnQgY29sb3JzIGZyb20gJ0Bwcm9qZWN0Y29yL3RoZW1lL2xpYi9iYXNlL2NvbG9ycydcbmltcG9ydCB7IEJMVUVfSUFfQ09MT1JTLCBWSU9MRVRfSUFfQ09MT1JTIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL2NvbmZpZydcbmltcG9ydCB7IENPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTLCBDb250ZXh0RW50aXR5VHlwZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuXG5jb25zdCBUQVNLX0NISVBfQkcgPSAndHJhbnNwYXJlbnQnXG5jb25zdCBUQVNLX0NISVBfRkcgPSBjb2xvcnMudGV4dC5wcmltYXJ5XG5cbmNvbnN0IE5PTl9UQVNLX0NISVBfQkcgPSAnI2IzZTFmZidcbmNvbnN0IE5PTl9UQVNLX0NISVBfRkcgPSBjb2xvcnMudGV4dC5wcmltYXJ5XG5cbi8qKiBIb3ZlciBkZWwgY2hpcCDigJxudWV2b+KAnSAoY2xpZW50LCBwcm9qZWN0LCB1c2VyLCBtY3ApLiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9OT05fVEFTS19IT1ZFUl9CRyA9ICcjZWRmYWZmJ1xuXG4vKiogSG92ZXIgZGVsIGNoaXAgZGUgdGFyZWEgZW4gY2hhdCAvIHN1cGVyZmljaWUg4oCcbm8gZWRpdG9y4oCdLiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9UQVNLX0hPVkVSX0JHID0gQkxVRV9JQV9DT0xPUlNbMTAwXVxuXG4vKiogSG92ZXIgZGVsIGNoaXAgZGUgdGFyZWEgZGVudHJvIGRlbCBpbnB1dCAoY29udGVudGVkaXRhYmxlKS4gKi9cbmV4cG9ydCBjb25zdCBNRU5USU9OX0NISVBfVEFTS19FRElUT1JfSE9WRVJfQkcgPSAnI0YyRjJGMidcblxuLyoqIE1pc21vIMOtY29ubyBxdWUgYC5oYXMtdGFzay1saW5rcyBhOjpiZWZvcmVgIGVuIG1lbnNhamVzIGRlbCBhZ2VudGUgKGVuZ3JhbmFqZSBhenVsKS4gKi9cbmNvbnN0IFRBU0tfRURJVE9SX0xJTktfSUNPTl9EQVRBX1VSTCA9IGB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScyMCcgaGVpZ2h0PScyMCcgdmlld0JveD0nMCAwIDIwIDIwJyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdNMTAgMThDMTEuMTI1IDE4IDEyLjEyNSAxNy40Mzc1IDEyLjY4NzUgMTYuNTYyNUMxMy43MTg4IDE2Ljc4MTIgMTQuODQzOCAxNi40Njg4IDE1LjY1NjIgMTUuNjU2MkMxNi40Mzc1IDE0Ljg3NSAxNi43NSAxMy43NSAxNi41MzEyIDEyLjcxODhDMTcuNDA2MiAxMi4xNTYyIDE4IDExLjE1NjIgMTggMTBDMTggOC44NzUgMTcuNDA2MiA3Ljg3NSAxNi41MzEyIDcuMzEyNUMxNi43NSA2LjI4MTI1IDE2LjQzNzUgNS4xNTYyNSAxNS42NTYyIDQuMzQzNzVDMTQuODQzOCAzLjU2MjUgMTMuNzE4OCAzLjI1IDEyLjY4NzUgMy40Njg3NUMxMi4xMjUgMi41OTM3NSAxMS4xMjUgMiAxMCAyQzguODQzNzUgMiA3Ljg0Mzc1IDIuNTkzNzUgNy4yODEyNSAzLjQ2ODc1QzYuMjUgMy4yNSA1LjEyNSAzLjU2MjUgNC4zNDM3NSA0LjM0Mzc1QzMuNTMxMjUgNS4xNTYyNSAzLjIxODc1IDYuMjgxMjUgMy40Mzc1IDcuMzEyNUMyLjU2MjUgNy44NzUgMiA4Ljg3NSAyIDEwQzIgMTEuMTU2MiAyLjU2MjUgMTIuMTU2MiAzLjQzNzUgMTIuNzE4OEMzLjIxODc1IDEzLjc1IDMuNTMxMjUgMTQuODc1IDQuMzQzNzUgMTUuNjU2MkM1LjEyNSAxNi40Njg4IDYuMjUgMTYuNzgxMiA3LjI4MTI1IDE2LjU2MjVDNy44NDM3NSAxNy40Mzc1IDguODQzNzUgMTggMTAgMThaTTguMDYyNSAxNC42MjVDNy40MDYyNSAxNC45Mzc1IDYuMzQzNzUgMTUuNTYyNSA1LjM3NSAxNC41OTM4QzQuMzc1IDEzLjU5MzggNS4xMjUgMTIuNDY4OCA1LjM3NSAxMS45Mzc1QzQuNzE4NzUgMTEuNjg3NSAzLjUgMTEuMzc1IDMuNSAxMEMzLjUgOC41OTM3NSA0LjgxMjUgOC4zMTI1IDUuMzc1IDguMDkzNzVDNS4wOTM3NSA3LjQ2ODc1IDQuNDM3NSA2LjM3NSA1LjQwNjI1IDUuNDA2MjVDNi40MDYyNSA0LjQwNjI1IDcuNTMxMjUgNS4xNTYyNSA4LjA2MjUgNS40MDYyNUM4LjMxMjUgNC43NSA4LjYyNSAzLjUgMTAgMy41QzExLjQwNjIgMy41IDExLjY4NzUgNC44NDM3NSAxMS45MDYyIDUuNDA2MjVDMTIuNTMxMiA1LjEyNSAxMy42MjUgNC40Njg3NSAxNC41OTM4IDUuNDM3NUMxNS41OTM4IDYuNDM3NSAxNC44NDM4IDcuNTYyNSAxNC41OTM4IDguMDkzNzVDMTUuMjUgOC4zNDM3NSAxNi40Njg4IDguNjU2MjUgMTYuNDY4OCAxMC4wMzEyQzE2LjQ2ODggMTEuNDM3NSAxNS4xNTYyIDExLjcxODggMTQuNTkzOCAxMS45Mzc1QzE0Ljg3NSAxMi41NjI1IDE1LjU2MjUgMTMuNjU2MiAxNC41OTM4IDE0LjYyNUMxMy43MTg4IDE1LjUgMTIuODQzOCAxNS4wNjI1IDExLjkwNjIgMTQuNjI1QzExLjY1NjIgMTUuMjgxMiAxMS4zNDM4IDE2LjUgMTAgMTYuNUM4LjU2MjUgMTYuNSA4LjI4MTI1IDE1LjE4NzUgOC4wNjI1IDE0LjYyNVonIGZpbGw9JyUyMzJENzdCRCcvJTNFJTNDL3N2ZyUzRVwiKWBcblxuLyoqXG4gKiBQYWxldGEgY29tcGFydGlkYSBlbnRyZSBlbCBzdHlsZWQtY29tcG9uZW50IChgU0NNQ0NoaXBgKSB5IGVsIGJ1aWxkZXJcbiAqIGltcGVyYXRpdm8gKGBidWlsZENoaXBFbGVtZW50YCkgcXVlIGluc2VydGEgZWwgY2hpcCBkZW50cm8gZGVsIGNvbnRlbnRlZGl0YWJsZS5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9DT0xPUlM6IFJlY29yZDxDb250ZXh0RW50aXR5VHlwZSwgeyBiZzogc3RyaW5nOyBmZzogc3RyaW5nIH0+ID0ge1xuICBjbGllbnQ6IHsgYmc6IE5PTl9UQVNLX0NISVBfQkcsIGZnOiBOT05fVEFTS19DSElQX0ZHIH0sXG4gIHByb2plY3Q6IHsgYmc6IFZJT0xFVF9JQV9DT0xPUlNbNTBdLCBmZzogTk9OX1RBU0tfQ0hJUF9GRyB9LFxuICB0YXNrOiB7IGJnOiBUQVNLX0NISVBfQkcsIGZnOiBUQVNLX0NISVBfRkcgfSxcbiAgdXNlcjogeyBiZzogTk9OX1RBU0tfQ0hJUF9CRywgZmc6IE5PTl9UQVNLX0NISVBfRkcgfSxcbiAgbWNwOiB7IGJnOiBOT05fVEFTS19DSElQX0JHLCBmZzogTk9OX1RBU0tfQ0hJUF9GRyB9LFxuICBza2lsbDogeyBiZzogJ3RyYW5zcGFyZW50JywgZmc6IE5PTl9UQVNLX0NISVBfRkcgfSxcbn1cblxuLyoqIEVzdGlsbyB0YXJlYSBlbiBlZGl0b3I6IGlubGluZSAobm8gaW5saW5lLWJsb2NrKSBwYXJhIHF1ZSBlbCBzaHJpbmstdG8tZml0IG5vIG9jdXBlIHRvZG8gZWwgcmVuZ2zDs24uICovXG5leHBvcnQgY29uc3QgTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfVEFTSyA9IHtcbiAgZGlzcGxheTogJ2lubGluZScsXG4gIHBhZGRpbmc6ICcwJyxcbiAgcGFkZGluZ0xlZnQ6ICcyNHB4JyxcbiAgbWFyZ2luOiAnMCAxcHgnLFxuICBtYXhXaWR0aDogJzEwMCUnLFxuICBib3JkZXJSYWRpdXM6ICcwJyxcbiAgZm9udEZhbWlseTogYHZhcigtLWNvci10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCAnV29yayBTYW5zJylgLFxuICBmb250U2l6ZTogJzE0cHgnLFxuICBmb250V2VpZ2h0OiAnNjAwJyxcbiAgbGluZUhlaWdodDogJzIwcHgnLFxuICB3aGl0ZVNwYWNlOiAnbm9ybWFsJyxcbiAgb3ZlcmZsb3dXcmFwOiAnYnJlYWstd29yZCcsXG4gIHdvcmRCcmVhazogJ2JyZWFrLXdvcmQnLFxuICB1c2VyU2VsZWN0OiAnbm9uZScsXG4gIHZlcnRpY2FsQWxpZ246ICdiYXNlbGluZScsXG4gIGN1cnNvcjogJ2RlZmF1bHQnLFxufSBhcyBjb25zdFxuXG4vKiogRXN0aWxvIGFjdHVhbCAoY2xpZW50LCBwcm9qZWN0LCB1c2VyLCBtY3ApLiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9CQVNFX1NUWUxFX05PTl9UQVNLID0ge1xuICBkaXNwbGF5OiAnaW5saW5lJyxcbiAgcGFkZGluZzogJzJweCA0cHgnLFxuICBtYXJnaW46ICcwIDFweCcsXG4gIG1heFdpZHRoOiAnMTAwJScsXG4gIGJvcmRlclJhZGl1czogJzRweCcsXG4gIGZvbnRGYW1pbHk6IGB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LWZhbWlseSwgJ1dvcmsgU2FucycpYCxcbiAgZm9udFNpemU6ICcxNHB4JyxcbiAgZm9udFdlaWdodDogJzUwMCcsXG4gIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgd2hpdGVTcGFjZTogJ25vcm1hbCcsXG4gIG92ZXJmbG93V3JhcDogJ2JyZWFrLXdvcmQnLFxuICB3b3JkQnJlYWs6ICdicmVhay13b3JkJyxcbiAgdXNlclNlbGVjdDogJ25vbmUnLFxuICB2ZXJ0aWNhbEFsaWduOiAnYmFzZWxpbmUnLFxuICBjdXJzb3I6ICdkZWZhdWx0Jyxcbn0gYXMgY29uc3RcblxuLyoqIEBkZXByZWNhdGVkIHVzYXIgTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfVEFTSyAvIF9OT05fVEFTSyBzZWfDum4gdGlwbyAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9CQVNFX1NUWUxFID0gTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfVEFTS1xuXG5jb25zdCBjaGlwQ29sb3JzID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlKSA9PiBNRU5USU9OX0NISVBfQ09MT1JTW3R5cGVdID8/IE1FTlRJT05fQ0hJUF9DT0xPUlMudXNlclxuXG5jb25zdCBjaGlwU3VyZmFjZUNzcyA9ICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSkgPT4ge1xuICBjb25zdCBjID0gY2hpcENvbG9ycyh0eXBlKVxuICByZXR1cm4gY3NzYFxuICAgIGJhY2tncm91bmQ6ICR7Yy5iZ307XG4gICAgY29sb3I6ICR7Yy5mZ307XG4gIGBcbn1cblxuLyoqXG4gKiBIb3ZlciB5IHN1cGVyZmljaWUgcGFyYSBjaGlwcyBtb250YWRvcyBwb3IgYGJ1aWxkQ2hpcEVsZW1lbnRgIChlc3RpbG9zIGlubGluZSBlbiBlbCBob3N0KS5cbiAqL1xuZXhwb3J0IGNvbnN0IENvbnRleHRNZW50aW9uQ2hpcEdsb2JhbFN0eWxlcyA9IGNyZWF0ZUdsb2JhbFN0eWxlYFxuICAuJHtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU306bm90KFtkYXRhLW1lbnRpb24tdHlwZT0ndGFzayddKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkd9ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuJHtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31bZGF0YS1tZW50aW9uLXR5cGU9J3Byb2plY3QnXTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtWSU9MRVRfSUFfQ09MT1JTWzEwMF19ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuJHtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31bZGF0YS1tZW50aW9uLXR5cGU9J3NraWxsJ106aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmOWY5ZjkgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8qIE1lbmNpb25lcyBlbiBlbCBjb250ZW50ZWRpdGFibGU6IGVsIHRleHRvIGRlYmUgcG9kZXIgcGFzYXIgYSBsYSBsw61uZWEgc2lndWllbnRlIChzaW4gc2Nyb2xsIGhvcml6b250YWwpLiAqL1xuICBbY29udGVudGVkaXRhYmxlPSd0cnVlJ10gLiR7Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9W2RhdGEtbWVudGlvbi1zdXJmYWNlPSdlZGl0b3InXSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvKiBTb2xvIHRhc2sgZW4gZWRpdG9yIHNlIGNvbXBvcnRhIGlubGluZSBwYXJhIGV2aXRhciBxdWUgdG9tZSBlbCBhbmNobyBjb21wbGV0byBkZWwgcmVuZ2zDs24uICovXG4gIFtjb250ZW50ZWRpdGFibGU9J3RydWUnXSAuJHtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31bZGF0YS1tZW50aW9uLXR5cGU9J3Rhc2snXVtkYXRhLW1lbnRpb24tc3VyZmFjZT0nZWRpdG9yJ10ge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLyogVGFyZWEgZW4gZWwgaW5wdXQ6IG1pc21vIGFzcGVjdG8gcXVlIC5oYXMtdGFzay1saW5rcyBhIChtZW5zYWplcyBkZWwgYWdlbnRlIC8gdXN1YXJpbykuICovXG4gIFtjb250ZW50ZWRpdGFibGU9J3RydWUnXSAuJHtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31bZGF0YS1tZW50aW9uLXR5cGU9J3Rhc2snXVtkYXRhLW1lbnRpb24tc3VyZmFjZT0nZWRpdG9yJ10ge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMjAyMDIwICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDJweCAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAyMnB4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDogMjBweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8qIFByb3llY3RvIGVuIGVsIGlucHV0OiBjbGlja2VhYmxlLCBhYnJlIGVuIG51ZXZhIHBlc3Rhw7FhLiAqL1xuICBbY29udGVudGVkaXRhYmxlPSd0cnVlJ10gLiR7Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9W2RhdGEtbWVudGlvbi10eXBlPSdwcm9qZWN0J11bZGF0YS1tZW50aW9uLXN1cmZhY2U9J2VkaXRvciddIHtcbiAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8qIMONY29ubyBjZW50cmFkbyBlbiBsYSBjYWphIGRlIGxhIHByaW1lcmEgbMOtbmVhIChsaCA9IGxpbmUtaGVpZ2h0IGRlbCBjaGlwLCBTVkcgMjBweCkuICovXG4gIFtjb250ZW50ZWRpdGFibGU9J3RydWUnXSAuJHtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31bZGF0YS1tZW50aW9uLXR5cGU9J3Rhc2snXVtkYXRhLW1lbnRpb24tc3VyZmFjZT0nZWRpdG9yJ106OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDJweDtcbiAgICB0b3A6IDFweDtcbiAgICB0b3A6IGNhbGMoKDFsaCAtIDE2cHgpIC8gMiAtIDFweCk7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICR7VEFTS19FRElUT1JfTElOS19JQ09OX0RBVEFfVVJMfTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIH1cblxuICBbY29udGVudGVkaXRhYmxlPSd0cnVlJ10gLiR7Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9W2RhdGEtbWVudGlvbi10eXBlPSd0YXNrJ11bZGF0YS1tZW50aW9uLXN1cmZhY2U9J2VkaXRvciddOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb24tbGluZTogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiAjYjNiM2IzICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMXB4ICFpbXBvcnRhbnQ7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAycHggIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAke01FTlRJT05fQ0hJUF9UQVNLX0VESVRPUl9IT1ZFUl9CR30gIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggIWltcG9ydGFudDtcbiAgfVxuYFxuXG4vKipcbiAqIEFwbGljYSBsb3MgZXN0aWxvcyBkZWwgY2hpcCBhIHVuIG5vZG8gRE9NIGV4aXN0ZW50ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGFwcGx5TWVudGlvbkNoaXBTdHlsZXMgPSAoZWw6IEhUTUxFbGVtZW50LCB0eXBlOiBDb250ZXh0RW50aXR5VHlwZSkgPT4ge1xuICBjb25zdCBjID0gY2hpcENvbG9ycyh0eXBlKVxuICBjb25zdCBiYXNlID0gdHlwZSA9PT0gJ3Rhc2snID8gTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfVEFTSyA6IE1FTlRJT05fQ0hJUF9CQVNFX1NUWUxFX05PTl9UQVNLXG4gIE9iamVjdC5hc3NpZ24oZWwuc3R5bGUsIHsgLi4uKGJhc2UgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPiksIGJhY2tncm91bmQ6IGMuYmcsIGNvbG9yOiBjLmZnIH0pXG59XG5cbmNvbnN0IGNoaXBIb3ZlckNzcyA9ICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSB8IHVuZGVmaW5lZCkgPT4ge1xuICBpZiAodHlwZSA9PT0gJ3Rhc2snKSByZXR1cm4gY3NzYGBcbiAgaWYgKHR5cGUgPT09ICdza2lsbCcpIHtcbiAgICByZXR1cm4gY3NzYFxuICAgICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbiAgICBgXG4gIH1cbiAgaWYgKHR5cGUgPT09ICdwcm9qZWN0Jykge1xuICAgIHJldHVybiBjc3NgXG4gICAgICBiYWNrZ3JvdW5kOiAke1ZJT0xFVF9JQV9DT0xPUlNbMTAwXX07XG4gICAgYFxuICB9XG4gIHJldHVybiBjc3NgXG4gICAgYmFja2dyb3VuZDogJHtNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkd9O1xuICBgXG59XG5cbmV4cG9ydCBjb25zdCBTQ01DQ2hpcCA9IHN0eWxlZC5zcGFuPHsgJHR5cGU/OiBDb250ZXh0RW50aXR5VHlwZSB9PmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogJHsoeyAkdHlwZSB9KSA9PiAoJHR5cGUgPT09ICd0YXNrJyA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInKX07XG4gIGdhcDogJHsoeyAkdHlwZSB9KSA9PiAoJHR5cGUgPT09ICd0YXNrJyA/ICc0cHgnIDogJzJweCcpfTtcbiAgcGFkZGluZzogJHsoeyAkdHlwZSB9KSA9PiAoJHR5cGUgPT09ICd0YXNrJyA/ICcwIDRweCcgOiAnMnB4IDRweCcpfTtcbiAgbWFyZ2luOiAwIDFweDtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyAkdHlwZSB9KSA9PiAoJHR5cGUgPT09ICd0YXNrJyA/ICcwJyA6ICc0cHgnKX07XG4gICR7KHsgJHR5cGUgfSkgPT4gY2hpcFN1cmZhY2VDc3MoJHR5cGUgPz8gJ3VzZXInKX1cbiAgZm9udC1mYW1pbHk6IHZhcigtLWNvci10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCAnV29yayBTYW5zJyk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6ICR7KHsgJHR5cGUgfSkgPT4gKCR0eXBlID09PSAndGFzaycgPyA2MDAgOiA1MDApfTtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi1oZWlnaHQ6ICR7KHsgJHR5cGUgfSkgPT4gKCR0eXBlID09PSAndGFzaycgPyAnYXV0bycgOiAnYXV0bycpfTtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICY6aG92ZXIge1xuICAgICR7KHsgJHR5cGUgfSkgPT4gY2hpcEhvdmVyQ3NzKCR0eXBlKX1cbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNQ0NoaXBJY29uID0gc3R5bGVkLnNwYW48eyAkdGFzaz86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6ICR7KHsgJHRhc2sgfSkgPT4gKCR0YXNrID8gJzE2cHgnIDogJzE0cHgnKX07XG4gIGhlaWdodDogJHsoeyAkdGFzayB9KSA9PiAoJHRhc2sgPyAnMTZweCcgOiAnMTRweCcpfTtcbiAgZmxleDogMCAwICR7KHsgJHRhc2sgfSkgPT4gKCR0YXNrID8gJzE2cHgnIDogJzE0cHgnKX07XG5gXG5cbi8qKiBUZXh0byBkZSB0YXJlYSBjb24gYm9yZGUgaW5mZXJpb3IgKHNwZWMgRmlnbWEpLiAqL1xuZXhwb3J0IGNvbnN0IFNDTUNUYXNrQ2hpcExhYmVsV3JhcCA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWluLXdpZHRoOiAwO1xuICBmbGV4OiAxIDEgMDtcbiAgZ2FwOiA0cHg7XG4gIGJvcmRlci1ib3R0b206IDAuNXB4IHNvbGlkIHZhcigtLWNvci1jb2xvci1ncmV5LTQwMCwgI2IzYjNiMyk7XG5gXG5cbi8qKiBUZXh0byBpbnRlcmlvciBjb24gZWxsaXBzaXMgKG1lbmNpw7NuIHRpcG8gdGFyZWEpLiAqL1xuZXhwb3J0IGNvbnN0IFNDTUNUYXNrQ2hpcExhYmVsVGV4dCA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBibG9jaztcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWNvci10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCAnV29yayBTYW5zJyk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0LnByaW1hcnl9O1xuYFxuXG4vKiogVGV4dG8gaW50ZXJpb3IgY29uIGVsbGlwc2lzIChtZW5jacOzbiBjbGllbnRlL3Byb3llY3RvL3VzdWFyaW8vbWNwKS4gKi9cbmV4cG9ydCBjb25zdCBTQ01DQ2hpcFBsYWluTGFiZWwgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LWZhbWlseSwgJ1dvcmsgU2FucycpO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogJHtjb2xvcnMudGV4dC5wcmltYXJ5fTtcbmBcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsT0FBT0EsTUFBTSxJQUFJQyxHQUFHLEVBQUVDLGlCQUFpQixRQUFRLG1CQUFtQjtBQUNsRSxPQUFPQyxNQUFNLE1BQU0sbUNBQW1DO0FBQ3RELFNBQVNDLGNBQWMsRUFBRUMsZ0JBQWdCLFFBQVEsd0JBQXdCO0FBQ3pFLFNBQVNDLDBCQUEwQixRQUEyQiwrQkFBK0I7QUFFN0YsSUFBTUMsWUFBWSxHQUFHLGFBQWE7QUFDbEMsSUFBTUMsWUFBWSxHQUFHTCxNQUFNLENBQUNNLElBQUksQ0FBQ0MsT0FBTztBQUV4QyxJQUFNQyxnQkFBZ0IsR0FBRyxTQUFTO0FBQ2xDLElBQU1DLGdCQUFnQixHQUFHVCxNQUFNLENBQUNNLElBQUksQ0FBQ0MsT0FBTzs7QUFFNUM7QUFDQSxPQUFPLElBQU1HLDhCQUE4QixHQUFHLFNBQVM7O0FBRXZEO0FBQ0EsT0FBTyxJQUFNQywwQkFBMEIsR0FBR1YsY0FBYyxDQUFDLEdBQUcsQ0FBQzs7QUFFN0Q7QUFDQSxPQUFPLElBQU1XLGlDQUFpQyxHQUFHLFNBQVM7O0FBRTFEO0FBQ0EsSUFBTUMsOEJBQThCLHkrQ0FBdStDOztBQUUzZ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1DLG1CQUEwRSxHQUFHO0VBQ3hGQyxNQUFNLEVBQUU7SUFBRUMsRUFBRSxFQUFFUixnQkFBZ0I7SUFBRVMsRUFBRSxFQUFFUjtFQUFpQixDQUFDO0VB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
|
|
188
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJjcmVhdGVHbG9iYWxTdHlsZSIsImNvbG9ycyIsIkJMVUVfSUFfQ09MT1JTIiwiVklPTEVUX0lBX0NPTE9SUyIsIkNPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTIiwiVEFTS19DSElQX0JHIiwiVEFTS19DSElQX0ZHIiwidGV4dCIsInByaW1hcnkiLCJOT05fVEFTS19DSElQX0JHIiwiTk9OX1RBU0tfQ0hJUF9GRyIsIk1FTlRJT05fQ0hJUF9OT05fVEFTS19IT1ZFUl9CRyIsIk1FTlRJT05fQ0hJUF9UQVNLX0hPVkVSX0JHIiwiTUVOVElPTl9DSElQX1RBU0tfRURJVE9SX0hPVkVSX0JHIiwiVEFTS19FRElUT1JfTElOS19JQ09OX0RBVEFfVVJMIiwiTUVOVElPTl9DSElQX0NPTE9SUyIsImNsaWVudCIsImJnIiwiZmciLCJwcm9qZWN0IiwidGFzayIsInVzZXIiLCJtY3AiLCJza2lsbCIsIk1FTlRJT05fQ0hJUF9CQVNFX1NUWUxFX1RBU0siLCJkaXNwbGF5IiwicGFkZGluZyIsInBhZGRpbmdMZWZ0IiwibWFyZ2luIiwibWF4V2lkdGgiLCJib3JkZXJSYWRpdXMiLCJmb250RmFtaWx5IiwiZm9udFNpemUiLCJmb250V2VpZ2h0IiwibGluZUhlaWdodCIsIndoaXRlU3BhY2UiLCJvdmVyZmxvd1dyYXAiLCJ3b3JkQnJlYWsiLCJ1c2VyU2VsZWN0IiwidmVydGljYWxBbGlnbiIsImN1cnNvciIsIk1FTlRJT05fQ0hJUF9CQVNFX1NUWUxFX05PTl9UQVNLIiwiTUVOVElPTl9DSElQX0JBU0VfU1RZTEUiLCJjaGlwQ29sb3JzIiwidHlwZSIsIl9NRU5USU9OX0NISVBfQ09MT1JTJCIsImNoaXBTdXJmYWNlQ3NzIiwiYyIsIkNvbnRleHRNZW50aW9uQ2hpcEdsb2JhbFN0eWxlcyIsImFwcGx5TWVudGlvbkNoaXBTdHlsZXMiLCJlbCIsImJhc2UiLCJPYmplY3QiLCJhc3NpZ24iLCJzdHlsZSIsIl9vYmplY3RTcHJlYWQiLCJiYWNrZ3JvdW5kIiwiY29sb3IiLCJjaGlwSG92ZXJDc3MiLCJTQ01DQ2hpcCIsInNwYW4iLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIl9yZWYiLCIkdHlwZSIsIl9yZWYyIiwiX3JlZjMiLCJfcmVmNCIsIl9yZWY1IiwiX3JlZjYiLCJfcmVmNyIsIl9yZWY4IiwiU0NNQ0NoaXBJY29uIiwiX3JlZjkiLCIkdGFzayIsIl9yZWYwIiwiX3JlZjEiLCJTQ01DVGFza0NoaXBMYWJlbFdyYXAiLCJTQ01DVGFza0NoaXBMYWJlbFRleHQiLCJTQ01DQ2hpcFBsYWluTGFiZWwiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9Db250ZXh0TWVudGlvbkNoaXAvQ29udGV4dE1lbnRpb25DaGlwLnN0eWxlcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCwgeyBjc3MsIGNyZWF0ZUdsb2JhbFN0eWxlIH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5pbXBvcnQgY29sb3JzIGZyb20gJ0Bwcm9qZWN0Y29yL3RoZW1lL2xpYi9iYXNlL2NvbG9ycydcbmltcG9ydCB7IEJMVUVfSUFfQ09MT1JTLCBWSU9MRVRfSUFfQ09MT1JTIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL2NvbmZpZydcbmltcG9ydCB7IENPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTLCBDb250ZXh0RW50aXR5VHlwZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuXG5jb25zdCBUQVNLX0NISVBfQkcgPSAndHJhbnNwYXJlbnQnXG5jb25zdCBUQVNLX0NISVBfRkcgPSBjb2xvcnMudGV4dC5wcmltYXJ5XG5cbmNvbnN0IE5PTl9UQVNLX0NISVBfQkcgPSAnI2IzZTFmZidcbmNvbnN0IE5PTl9UQVNLX0NISVBfRkcgPSBjb2xvcnMudGV4dC5wcmltYXJ5XG5cbi8qKiBIb3ZlciBkZWwgY2hpcCDigJxudWV2b+KAnSAoY2xpZW50LCBwcm9qZWN0LCB1c2VyLCBtY3ApLiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9OT05fVEFTS19IT1ZFUl9CRyA9ICcjZWRmYWZmJ1xuXG4vKiogSG92ZXIgZGVsIGNoaXAgZGUgdGFyZWEgZW4gY2hhdCAvIHN1cGVyZmljaWUg4oCcbm8gZWRpdG9y4oCdLiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9UQVNLX0hPVkVSX0JHID0gQkxVRV9JQV9DT0xPUlNbMTAwXVxuXG4vKiogSG92ZXIgZGVsIGNoaXAgZGUgdGFyZWEgZGVudHJvIGRlbCBpbnB1dCAoY29udGVudGVkaXRhYmxlKS4gKi9cbmV4cG9ydCBjb25zdCBNRU5USU9OX0NISVBfVEFTS19FRElUT1JfSE9WRVJfQkcgPSAnI0YyRjJGMidcblxuLyoqIE1pc21vIMOtY29ubyBxdWUgYC5oYXMtdGFzay1saW5rcyBhOjpiZWZvcmVgIGVuIG1lbnNhamVzIGRlbCBhZ2VudGUgKGVuZ3JhbmFqZSBhenVsKS4gKi9cbmNvbnN0IFRBU0tfRURJVE9SX0xJTktfSUNPTl9EQVRBX1VSTCA9IGB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScyMCcgaGVpZ2h0PScyMCcgdmlld0JveD0nMCAwIDIwIDIwJyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdNMTAgMThDMTEuMTI1IDE4IDEyLjEyNSAxNy40Mzc1IDEyLjY4NzUgMTYuNTYyNUMxMy43MTg4IDE2Ljc4MTIgMTQuODQzOCAxNi40Njg4IDE1LjY1NjIgMTUuNjU2MkMxNi40Mzc1IDE0Ljg3NSAxNi43NSAxMy43NSAxNi41MzEyIDEyLjcxODhDMTcuNDA2MiAxMi4xNTYyIDE4IDExLjE1NjIgMTggMTBDMTggOC44NzUgMTcuNDA2MiA3Ljg3NSAxNi41MzEyIDcuMzEyNUMxNi43NSA2LjI4MTI1IDE2LjQzNzUgNS4xNTYyNSAxNS42NTYyIDQuMzQzNzVDMTQuODQzOCAzLjU2MjUgMTMuNzE4OCAzLjI1IDEyLjY4NzUgMy40Njg3NUMxMi4xMjUgMi41OTM3NSAxMS4xMjUgMiAxMCAyQzguODQzNzUgMiA3Ljg0Mzc1IDIuNTkzNzUgNy4yODEyNSAzLjQ2ODc1QzYuMjUgMy4yNSA1LjEyNSAzLjU2MjUgNC4zNDM3NSA0LjM0Mzc1QzMuNTMxMjUgNS4xNTYyNSAzLjIxODc1IDYuMjgxMjUgMy40Mzc1IDcuMzEyNUMyLjU2MjUgNy44NzUgMiA4Ljg3NSAyIDEwQzIgMTEuMTU2MiAyLjU2MjUgMTIuMTU2MiAzLjQzNzUgMTIuNzE4OEMzLjIxODc1IDEzLjc1IDMuNTMxMjUgMTQuODc1IDQuMzQzNzUgMTUuNjU2MkM1LjEyNSAxNi40Njg4IDYuMjUgMTYuNzgxMiA3LjI4MTI1IDE2LjU2MjVDNy44NDM3NSAxNy40Mzc1IDguODQzNzUgMTggMTAgMThaTTguMDYyNSAxNC42MjVDNy40MDYyNSAxNC45Mzc1IDYuMzQzNzUgMTUuNTYyNSA1LjM3NSAxNC41OTM4QzQuMzc1IDEzLjU5MzggNS4xMjUgMTIuNDY4OCA1LjM3NSAxMS45Mzc1QzQuNzE4NzUgMTEuNjg3NSAzLjUgMTEuMzc1IDMuNSAxMEMzLjUgOC41OTM3NSA0LjgxMjUgOC4zMTI1IDUuMzc1IDguMDkzNzVDNS4wOTM3NSA3LjQ2ODc1IDQuNDM3NSA2LjM3NSA1LjQwNjI1IDUuNDA2MjVDNi40MDYyNSA0LjQwNjI1IDcuNTMxMjUgNS4xNTYyNSA4LjA2MjUgNS40MDYyNUM4LjMxMjUgNC43NSA4LjYyNSAzLjUgMTAgMy41QzExLjQwNjIgMy41IDExLjY4NzUgNC44NDM3NSAxMS45MDYyIDUuNDA2MjVDMTIuNTMxMiA1LjEyNSAxMy42MjUgNC40Njg3NSAxNC41OTM4IDUuNDM3NUMxNS41OTM4IDYuNDM3NSAxNC44NDM4IDcuNTYyNSAxNC41OTM4IDguMDkzNzVDMTUuMjUgOC4zNDM3NSAxNi40Njg4IDguNjU2MjUgMTYuNDY4OCAxMC4wMzEyQzE2LjQ2ODggMTEuNDM3NSAxNS4xNTYyIDExLjcxODggMTQuNTkzOCAxMS45Mzc1QzE0Ljg3NSAxMi41NjI1IDE1LjU2MjUgMTMuNjU2MiAxNC41OTM4IDE0LjYyNUMxMy43MTg4IDE1LjUgMTIuODQzOCAxNS4wNjI1IDExLjkwNjIgMTQuNjI1QzExLjY1NjIgMTUuMjgxMiAxMS4zNDM4IDE2LjUgMTAgMTYuNUM4LjU2MjUgMTYuNSA4LjI4MTI1IDE1LjE4NzUgOC4wNjI1IDE0LjYyNVonIGZpbGw9JyUyMzJENzdCRCcvJTNFJTNDL3N2ZyUzRVwiKWBcblxuLyoqXG4gKiBQYWxldGEgY29tcGFydGlkYSBlbnRyZSBlbCBzdHlsZWQtY29tcG9uZW50IChgU0NNQ0NoaXBgKSB5IGVsIGJ1aWxkZXJcbiAqIGltcGVyYXRpdm8gKGBidWlsZENoaXBFbGVtZW50YCkgcXVlIGluc2VydGEgZWwgY2hpcCBkZW50cm8gZGVsIGNvbnRlbnRlZGl0YWJsZS5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9DT0xPUlM6IFJlY29yZDxDb250ZXh0RW50aXR5VHlwZSwgeyBiZzogc3RyaW5nOyBmZzogc3RyaW5nIH0+ID0ge1xuICBjbGllbnQ6IHsgYmc6IE5PTl9UQVNLX0NISVBfQkcsIGZnOiBOT05fVEFTS19DSElQX0ZHIH0sXG4gIHByb2plY3Q6IHsgYmc6IFZJT0xFVF9JQV9DT0xPUlNbNTBdLCBmZzogTk9OX1RBU0tfQ0hJUF9GRyB9LFxuICB0YXNrOiB7IGJnOiBUQVNLX0NISVBfQkcsIGZnOiBUQVNLX0NISVBfRkcgfSxcbiAgdXNlcjogeyBiZzogTk9OX1RBU0tfQ0hJUF9CRywgZmc6IE5PTl9UQVNLX0NISVBfRkcgfSxcbiAgbWNwOiB7IGJnOiBOT05fVEFTS19DSElQX0JHLCBmZzogTk9OX1RBU0tfQ0hJUF9GRyB9LFxuICBza2lsbDogeyBiZzogJ3RyYW5zcGFyZW50JywgZmc6IE5PTl9UQVNLX0NISVBfRkcgfSxcbn1cblxuLyoqIEVzdGlsbyB0YXJlYSBlbiBlZGl0b3I6IGlubGluZSAobm8gaW5saW5lLWJsb2NrKSBwYXJhIHF1ZSBlbCBzaHJpbmstdG8tZml0IG5vIG9jdXBlIHRvZG8gZWwgcmVuZ2zDs24uICovXG5leHBvcnQgY29uc3QgTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfVEFTSyA9IHtcbiAgZGlzcGxheTogJ2lubGluZScsXG4gIHBhZGRpbmc6ICcwJyxcbiAgcGFkZGluZ0xlZnQ6ICcyNHB4JyxcbiAgbWFyZ2luOiAnMCAxcHgnLFxuICBtYXhXaWR0aDogJzEwMCUnLFxuICBib3JkZXJSYWRpdXM6ICcwJyxcbiAgZm9udEZhbWlseTogYHZhcigtLWNvci10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCAnV29yayBTYW5zJylgLFxuICBmb250U2l6ZTogJzE0cHgnLFxuICBmb250V2VpZ2h0OiAnNjAwJyxcbiAgbGluZUhlaWdodDogJzIwcHgnLFxuICB3aGl0ZVNwYWNlOiAnbm9ybWFsJyxcbiAgb3ZlcmZsb3dXcmFwOiAnYnJlYWstd29yZCcsXG4gIHdvcmRCcmVhazogJ2JyZWFrLXdvcmQnLFxuICB1c2VyU2VsZWN0OiAnbm9uZScsXG4gIHZlcnRpY2FsQWxpZ246ICdiYXNlbGluZScsXG4gIGN1cnNvcjogJ2RlZmF1bHQnLFxufSBhcyBjb25zdFxuXG4vKiogRXN0aWxvIGFjdHVhbCAoY2xpZW50LCBwcm9qZWN0LCB1c2VyLCBtY3ApLiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9CQVNFX1NUWUxFX05PTl9UQVNLID0ge1xuICBkaXNwbGF5OiAnaW5saW5lJyxcbiAgcGFkZGluZzogJzJweCA0cHgnLFxuICBtYXJnaW46ICcwIDFweCcsXG4gIG1heFdpZHRoOiAnMTAwJScsXG4gIGJvcmRlclJhZGl1czogJzRweCcsXG4gIGZvbnRGYW1pbHk6IGB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LWZhbWlseSwgJ1dvcmsgU2FucycpYCxcbiAgZm9udFNpemU6ICcxNHB4JyxcbiAgZm9udFdlaWdodDogJzUwMCcsXG4gIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgd2hpdGVTcGFjZTogJ25vcm1hbCcsXG4gIG92ZXJmbG93V3JhcDogJ2JyZWFrLXdvcmQnLFxuICB3b3JkQnJlYWs6ICdicmVhay13b3JkJyxcbiAgdXNlclNlbGVjdDogJ25vbmUnLFxuICB2ZXJ0aWNhbEFsaWduOiAnYmFzZWxpbmUnLFxuICBjdXJzb3I6ICdkZWZhdWx0Jyxcbn0gYXMgY29uc3RcblxuLyoqIEBkZXByZWNhdGVkIHVzYXIgTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfVEFTSyAvIF9OT05fVEFTSyBzZWfDum4gdGlwbyAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fQ0hJUF9CQVNFX1NUWUxFID0gTUVOVElPTl9DSElQX0JBU0VfU1RZTEVfVEFTS1xuXG5jb25zdCBjaGlwQ29sb3JzID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlKSA9PiBNRU5USU9OX0NISVBfQ09MT1JTW3R5cGVdID8/IE1FTlRJT05fQ0hJUF9DT0xPUlMudXNlclxuXG5jb25zdCBjaGlwU3VyZmFjZUNzcyA9ICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSkgPT4ge1xuICBjb25zdCBjID0gY2hpcENvbG9ycyh0eXBlKVxuICByZXR1cm4gY3NzYFxuICAgIGJhY2tncm91bmQ6ICR7Yy5iZ307XG4gICAgY29sb3I6ICR7Yy5mZ307XG4gIGBcbn1cblxuLyoqXG4gKiBIb3ZlciB5IHN1cGVyZmljaWUgcGFyYSBjaGlwcyBtb250YWRvcyBwb3IgYGJ1aWxkQ2hpcEVsZW1lbnRgIChlc3RpbG9zIGlubGluZSBlbiBlbCBob3N0KS5cbiAqL1xuZXhwb3J0IGNvbnN0IENvbnRleHRNZW50aW9uQ2hpcEdsb2JhbFN0eWxlcyA9IGNyZWF0ZUdsb2JhbFN0eWxlYFxuICAuJHtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU306bm90KFtkYXRhLW1lbnRpb24tdHlwZT0ndGFzayddKTpub3QoW2RhdGEtbWVudGlvbi10eXBlPSdza2lsbCddKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkd9ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuJHtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31bZGF0YS1tZW50aW9uLXR5cGU9J3Byb2plY3QnXTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtWSU9MRVRfSUFfQ09MT1JTWzEwMF19ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvKiBNZW5jaW9uZXMgZW4gZWwgY29udGVudGVkaXRhYmxlOiBlbCB0ZXh0byBkZWJlIHBvZGVyIHBhc2FyIGEgbGEgbMOtbmVhIHNpZ3VpZW50ZSAoc2luIHNjcm9sbCBob3Jpem9udGFsKS4gKi9cbiAgW2NvbnRlbnRlZGl0YWJsZT0ndHJ1ZSddIC4ke0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVtkYXRhLW1lbnRpb24tc3VyZmFjZT0nZWRpdG9yJ10ge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLyogU29sbyB0YXNrIGVuIGVkaXRvciBzZSBjb21wb3J0YSBpbmxpbmUgcGFyYSBldml0YXIgcXVlIHRvbWUgZWwgYW5jaG8gY29tcGxldG8gZGVsIHJlbmdsw7NuLiAqL1xuICBbY29udGVudGVkaXRhYmxlPSd0cnVlJ10gLiR7Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9W2RhdGEtbWVudGlvbi10eXBlPSd0YXNrJ11bZGF0YS1tZW50aW9uLXN1cmZhY2U9J2VkaXRvciddIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8qIFRhcmVhIGVuIGVsIGlucHV0OiBtaXNtbyBhc3BlY3RvIHF1ZSAuaGFzLXRhc2stbGlua3MgYSAobWVuc2FqZXMgZGVsIGFnZW50ZSAvIHVzdWFyaW8pLiAqL1xuICBbY29udGVudGVkaXRhYmxlPSd0cnVlJ10gLiR7Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9W2RhdGEtbWVudGlvbi10eXBlPSd0YXNrJ11bZGF0YS1tZW50aW9uLXN1cmZhY2U9J2VkaXRvciddIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzIwMjAyMCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMjJweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHggIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvKiBQcm95ZWN0byBlbiBlbCBpbnB1dDogY2xpY2tlYWJsZSwgYWJyZSBlbiBudWV2YSBwZXN0YcOxYS4gKi9cbiAgW2NvbnRlbnRlZGl0YWJsZT0ndHJ1ZSddIC4ke0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVtkYXRhLW1lbnRpb24tdHlwZT0ncHJvamVjdCddW2RhdGEtbWVudGlvbi1zdXJmYWNlPSdlZGl0b3InXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvKiDDjWNvbm8gY2VudHJhZG8gZW4gbGEgY2FqYSBkZSBsYSBwcmltZXJhIGzDrW5lYSAobGggPSBsaW5lLWhlaWdodCBkZWwgY2hpcCwgU1ZHIDIwcHgpLiAqL1xuICBbY29udGVudGVkaXRhYmxlPSd0cnVlJ10gLiR7Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9W2RhdGEtbWVudGlvbi10eXBlPSd0YXNrJ11bZGF0YS1tZW50aW9uLXN1cmZhY2U9J2VkaXRvciddOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAycHg7XG4gICAgdG9wOiAxcHg7XG4gICAgdG9wOiBjYWxjKCgxbGggLSAxNnB4KSAvIDIgLSAxcHgpO1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAke1RBU0tfRURJVE9SX0xJTktfSUNPTl9EQVRBX1VSTH07XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICB9XG5cbiAgW2NvbnRlbnRlZGl0YWJsZT0ndHJ1ZSddIC4ke0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVtkYXRhLW1lbnRpb24tdHlwZT0ndGFzayddW2RhdGEtbWVudGlvbi1zdXJmYWNlPSdlZGl0b3InXTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IHVuZGVybGluZSAhaW1wb3J0YW50O1xuICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogI2IzYjNiMyAhaW1wb3J0YW50O1xuICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDFweCAhaW1wb3J0YW50O1xuICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMnB4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogJHtNRU5USU9OX0NISVBfVEFTS19FRElUT1JfSE9WRVJfQkd9ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbmBcblxuLyoqXG4gKiBBcGxpY2EgbG9zIGVzdGlsb3MgZGVsIGNoaXAgYSB1biBub2RvIERPTSBleGlzdGVudGUuXG4gKi9cbmV4cG9ydCBjb25zdCBhcHBseU1lbnRpb25DaGlwU3R5bGVzID0gKGVsOiBIVE1MRWxlbWVudCwgdHlwZTogQ29udGV4dEVudGl0eVR5cGUpID0+IHtcbiAgY29uc3QgYyA9IGNoaXBDb2xvcnModHlwZSlcbiAgY29uc3QgYmFzZSA9IHR5cGUgPT09ICd0YXNrJyA/IE1FTlRJT05fQ0hJUF9CQVNFX1NUWUxFX1RBU0sgOiBNRU5USU9OX0NISVBfQkFTRV9TVFlMRV9OT05fVEFTS1xuICBPYmplY3QuYXNzaWduKGVsLnN0eWxlLCB7IC4uLihiYXNlIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pLCBiYWNrZ3JvdW5kOiBjLmJnLCBjb2xvcjogYy5mZyB9KVxufVxuXG5jb25zdCBjaGlwSG92ZXJDc3MgPSAodHlwZTogQ29udGV4dEVudGl0eVR5cGUgfCB1bmRlZmluZWQpID0+IHtcbiAgaWYgKHR5cGUgPT09ICd0YXNrJyB8fCB0eXBlID09PSAnc2tpbGwnKSByZXR1cm4gY3NzYGBcbiAgaWYgKHR5cGUgPT09ICdwcm9qZWN0Jykge1xuICAgIHJldHVybiBjc3NgXG4gICAgICBiYWNrZ3JvdW5kOiAke1ZJT0xFVF9JQV9DT0xPUlNbMTAwXX07XG4gICAgYFxuICB9XG4gIHJldHVybiBjc3NgXG4gICAgYmFja2dyb3VuZDogJHtNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkd9O1xuICBgXG59XG5cbmV4cG9ydCBjb25zdCBTQ01DQ2hpcCA9IHN0eWxlZC5zcGFuPHsgJHR5cGU/OiBDb250ZXh0RW50aXR5VHlwZSB9PmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogJHsoeyAkdHlwZSB9KSA9PiAoJHR5cGUgPT09ICd0YXNrJyA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInKX07XG4gIGdhcDogJHsoeyAkdHlwZSB9KSA9PiAoJHR5cGUgPT09ICd0YXNrJyA/ICc0cHgnIDogJzJweCcpfTtcbiAgcGFkZGluZzogJHsoeyAkdHlwZSB9KSA9PiAoJHR5cGUgPT09ICd0YXNrJyA/ICcwIDRweCcgOiAnMnB4IDRweCcpfTtcbiAgbWFyZ2luOiAwIDFweDtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyAkdHlwZSB9KSA9PiAoJHR5cGUgPT09ICd0YXNrJyA/ICcwJyA6ICc0cHgnKX07XG4gICR7KHsgJHR5cGUgfSkgPT4gY2hpcFN1cmZhY2VDc3MoJHR5cGUgPz8gJ3VzZXInKX1cbiAgZm9udC1mYW1pbHk6IHZhcigtLWNvci10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCAnV29yayBTYW5zJyk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6ICR7KHsgJHR5cGUgfSkgPT4gKCR0eXBlID09PSAndGFzaycgPyA2MDAgOiA1MDApfTtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi1oZWlnaHQ6ICR7KHsgJHR5cGUgfSkgPT4gKCR0eXBlID09PSAndGFzaycgPyAnYXV0bycgOiAnYXV0bycpfTtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICY6aG92ZXIge1xuICAgICR7KHsgJHR5cGUgfSkgPT4gY2hpcEhvdmVyQ3NzKCR0eXBlKX1cbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNQ0NoaXBJY29uID0gc3R5bGVkLnNwYW48eyAkdGFzaz86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6ICR7KHsgJHRhc2sgfSkgPT4gKCR0YXNrID8gJzE2cHgnIDogJzE0cHgnKX07XG4gIGhlaWdodDogJHsoeyAkdGFzayB9KSA9PiAoJHRhc2sgPyAnMTZweCcgOiAnMTRweCcpfTtcbiAgZmxleDogMCAwICR7KHsgJHRhc2sgfSkgPT4gKCR0YXNrID8gJzE2cHgnIDogJzE0cHgnKX07XG5gXG5cbi8qKiBUZXh0byBkZSB0YXJlYSBjb24gYm9yZGUgaW5mZXJpb3IgKHNwZWMgRmlnbWEpLiAqL1xuZXhwb3J0IGNvbnN0IFNDTUNUYXNrQ2hpcExhYmVsV3JhcCA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWluLXdpZHRoOiAwO1xuICBmbGV4OiAxIDEgMDtcbiAgZ2FwOiA0cHg7XG4gIGJvcmRlci1ib3R0b206IDAuNXB4IHNvbGlkIHZhcigtLWNvci1jb2xvci1ncmV5LTQwMCwgI2IzYjNiMyk7XG5gXG5cbi8qKiBUZXh0byBpbnRlcmlvciBjb24gZWxsaXBzaXMgKG1lbmNpw7NuIHRpcG8gdGFyZWEpLiAqL1xuZXhwb3J0IGNvbnN0IFNDTUNUYXNrQ2hpcExhYmVsVGV4dCA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBibG9jaztcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWNvci10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCAnV29yayBTYW5zJyk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0LnByaW1hcnl9O1xuYFxuXG4vKiogVGV4dG8gaW50ZXJpb3IgY29uIGVsbGlwc2lzIChtZW5jacOzbiBjbGllbnRlL3Byb3llY3RvL3VzdWFyaW8vbWNwKS4gKi9cbmV4cG9ydCBjb25zdCBTQ01DQ2hpcFBsYWluTGFiZWwgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LWZhbWlseSwgJ1dvcmsgU2FucycpO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogJHtjb2xvcnMudGV4dC5wcmltYXJ5fTtcbmBcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsT0FBT0EsTUFBTSxJQUFJQyxHQUFHLEVBQUVDLGlCQUFpQixRQUFRLG1CQUFtQjtBQUNsRSxPQUFPQyxNQUFNLE1BQU0sbUNBQW1DO0FBQ3RELFNBQVNDLGNBQWMsRUFBRUMsZ0JBQWdCLFFBQVEsd0JBQXdCO0FBQ3pFLFNBQVNDLDBCQUEwQixRQUEyQiwrQkFBK0I7QUFFN0YsSUFBTUMsWUFBWSxHQUFHLGFBQWE7QUFDbEMsSUFBTUMsWUFBWSxHQUFHTCxNQUFNLENBQUNNLElBQUksQ0FBQ0MsT0FBTztBQUV4QyxJQUFNQyxnQkFBZ0IsR0FBRyxTQUFTO0FBQ2xDLElBQU1DLGdCQUFnQixHQUFHVCxNQUFNLENBQUNNLElBQUksQ0FBQ0MsT0FBTzs7QUFFNUM7QUFDQSxPQUFPLElBQU1HLDhCQUE4QixHQUFHLFNBQVM7O0FBRXZEO0FBQ0EsT0FBTyxJQUFNQywwQkFBMEIsR0FBR1YsY0FBYyxDQUFDLEdBQUcsQ0FBQzs7QUFFN0Q7QUFDQSxPQUFPLElBQU1XLGlDQUFpQyxHQUFHLFNBQVM7O0FBRTFEO0FBQ0EsSUFBTUMsOEJBQThCLHkrQ0FBdStDOztBQUUzZ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1DLG1CQUEwRSxHQUFHO0VBQ3hGQyxNQUFNLEVBQUU7SUFBRUMsRUFBRSxFQUFFUixnQkFBZ0I7SUFBRVMsRUFBRSxFQUFFUjtFQUFpQixDQUFDO0VBQ3REUyxPQUFPLEVBQUU7SUFBRUYsRUFBRSxFQUFFZCxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7SUFBRWUsRUFBRSxFQUFFUjtFQUFpQixDQUFDO0VBQzNEVSxJQUFJLEVBQUU7SUFBRUgsRUFBRSxFQUFFWixZQUFZO0lBQUVhLEVBQUUsRUFBRVo7RUFBYSxD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
|
|
@@ -515,7 +515,7 @@ export var useEntitySearch = function useEntitySearch(type, scope) {
|
|
|
515
515
|
_context.prev = 3;
|
|
516
516
|
_context.next = 4;
|
|
517
517
|
return fetchMaia({
|
|
518
|
-
path: 'skills
|
|
518
|
+
path: 'skills',
|
|
519
519
|
method: 'GET'
|
|
520
520
|
});
|
|
521
521
|
case 4:
|
|
@@ -853,7 +853,7 @@ export var useEntitySearch = function useEntitySearch(type, scope) {
|
|
|
853
853
|
setLoading(true);
|
|
854
854
|
setError(false);
|
|
855
855
|
fetchMaia({
|
|
856
|
-
path: "skills?
|
|
856
|
+
path: "skills?q=".concat(encodeURIComponent(q)),
|
|
857
857
|
method: 'GET'
|
|
858
858
|
}).then(function (r) {
|
|
859
859
|
return r.json();
|
|
@@ -1268,4 +1268,4 @@ export var useEntitySearch = function useEntitySearch(type, scope) {
|
|
|
1268
1268
|
fetchRecent: fetchRecent
|
|
1269
1269
|
};
|
|
1270
1270
|
};
|
|
1271
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXp5UXVlcnkiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImdldFJlY2VudENsaWVudHMiLCJnZXRSZWNlbnRQcm9qZWN0cyIsImdldFJlY2VudFRhc2tzIiwidXNlVXNlciIsIlBST0pFQ1RTX0ZBTExCQUNLIiwiU0VBUkNIX0VOVElUSUVTIiwiVEFTS19GQU1JTFlfRkFMTEJBQ0siLCJTRUFSQ0hfQ0xJRU5UUyIsIlVTRVJTX0RJUkVDVE9SWSIsIlNFQVJDSF9RVUVSWV9ERUJPVU5DRV9NUyIsInVzZURlYm91bmNlIiwidXNlVCIsImZldGNoTWFpYSIsIm5vcm1hbGl6ZVBvc2l0aXZlSW50IiwidmFsdWUiLCJmYWxsYmFjayIsInBhcnNlZCIsIk51bWJlciIsImlzRmluaXRlIiwibm9ybWFsaXplZCIsIk1hdGgiLCJmbG9vciIsIkJBU0VfRklMVEVSU19CWV9UWVBFIiwicHJvamVjdCIsImFyY2hpdmVkIiwidGFzayIsImJ1aWxkVGFza1NlYXJjaEV4dHJhRW50cmllcyIsInNjb3BlIiwicmF3Q2xpZW50IiwiY2xpZW50SWQiLCJ1bmRlZmluZWQiLCJTdHJpbmciLCJyYXdQcm9qZWN0IiwicHJvamVjdElkIiwiYWdlbnRFbnRpdHkiLCJlbnRyaWVzIiwicHVzaENsaWVudCIsInB1c2giLCJwdXNoUHJvamVjdCIsImJ1aWxkVGFza1NlYXJjaEV4dHJhIiwibGVuZ3RoIiwiSlNPTiIsInN0cmluZ2lmeSIsImJ1aWxkUHJvamVjdFNlYXJjaEV4dHJhIiwiYnVpbGRTZWFyY2hFbnRpdGllc0V4dHJhIiwidHlwZSIsImJ1aWxkRmlsdGVyc0ZvclR5cGUiLCJidWlsZFVzZXJzRGlyZWN0b3J5RmlsdGVycyIsInEiLCJiYXNlIiwid2l0aFBvc2l0aW9uIiwid2l0aFRlYW1zIiwidHJpbW1lZFEiLCJ0cmltIiwic2VhcmNoSW5wdXQiLCJoaWdobGlnaHRSYW5nZSIsInRleHQiLCJzZWFyY2hWYWx1ZSIsImlkeCIsInRvTG93ZXJDYXNlIiwiaW5kZXhPZiIsInN0YXJ0IiwiZmlyc3REZWZpbmVkIiwiX2xlbiIsImFyZ3VtZW50cyIsInZhbHVlcyIsIkFycmF5IiwiX2tleSIsImZpbmQiLCJub3JtYWxpemVUcmltbWVkU3RyaW5nIiwiZ2V0VXNlclBvc2l0aW9uTmFtZSIsInVzZXJQb3NpdGlvbiIsIl90eXBlb2YiLCJuYW1lIiwibWFwQ2xpZW50VG9JdGVtIiwiYyIsIl9jJHRvdGFsUHJveWVjdG9zIiwiX2MkdG90YWxQcm95ZWN0b3MyIiwiaWQiLCJwcmltYXJ5IiwicHJpbWFyeUhpZ2hsaWdodCIsImJyZWFkY3J1bWIiLCJjb3VudCIsInRvdGFsUHJveWVjdG9zIiwiY291bnRMYWJlbCIsInJhdyIsIm1hcFVzZXJUb0l0ZW0iLCJ1IiwiX3UkZmlyc3ROYW1lIiwiX3UkbGFzdE5hbWUiLCJfdSRwaWN0dXJlIiwiX3UkdXNlclBvc2l0aW9uJG5hbWUiLCJfdSR1c2VyUG9zaXRpb24iLCJfdSRlbWFpbCIsImZ1bGxOYW1lIiwiY29uY2F0IiwiZmlyc3ROYW1lIiwibGFzdE5hbWUiLCJlbWFpbCIsInBpY3R1cmUiLCJwb3NpdGlvbk5hbWUiLCJtYXBDb3JVc2VyVG9Vc2VySXRlbSIsInVzZXIiLCJtZUxhYmVsIiwiX3VzZXIkZmlyc3ROYW1lIiwiX3VzZXIkbGFzdE5hbWUiLCJwb3NpdGlvbkxpbmUiLCJ1c2VyX3Bvc2l0aW9uIiwibWFwUmVjZW50VGFza1RvSXRlbSIsIl90YXNrJHByb2plY3ROYW1lIiwic2hvd1Byb2plY3ROYW1lSW5UYXNrUm93IiwidGl0bGUiLCJwcm9qZWN0TmFtZSIsInBhcmVudCIsIm5vcm1hbGl6ZVRhc2tGYW1pbHlSZWNvcmQiLCJyZWNvcmQiLCJfcmVjb3JkJHRpdGxlIiwiX2ZpcnN0RGVmaW5lZCIsIl9yZWNvcmQkcHJvamVjdCIsIl9yZWNvcmQkZmF0aGVyIiwiX3JlY29yZCRmYXRoZXIyIiwidGFza0ZhbWlseUlkIiwiX2lkIiwiZmF0aGVyIiwiaGFzRmF0aGVyIiwidGFza0ZhdGhlciIsIm5vcm1hbGl6ZVByb2plY3RzRmFsbGJhY2tSZWNvcmQiLCJfcmVjb3JkJG5hbWUiLCJfZmlyc3REZWZpbmVkMiIsIl9yZWNvcmQkY2xpZW50IiwiX3JlY29yZCRjbGllbnQkbmFtZSIsIl9yZWNvcmQkY2xpZW50MiIsImNsaWVudCIsImNsaWVudE5hbWUiLCJtYXBTZWFyY2hUb0l0ZW0iLCJyIiwiX3IkcHJvamVjdE5hbWUiLCJfciRwcm9qZWN0TmFtZTIiLCJfciRjbGllbnRJZCIsIl9yJGNsaWVudE5hbWUiLCJfciRmZWVJZCIsIl9mYXRoZXIkdGl0bGUiLCJ0YXNrUHJvamVjdE5hbWUiLCJmZWVJZCIsImZhdGhlcklkIiwiZmF0aGVyVGl0bGUiLCJmb3JtYXRNY3BQcmltYXJ5TGFiZWwiLCJzbHVnIiwicmVwbGFjZSIsImNoYXIiLCJ0b1VwcGVyQ2FzZSIsIm1hcFNraWxsc1RvSXRlbXMiLCJza2lsbHMiLCJmaWx0ZXJlZCIsImZpbHRlciIsInMiLCJpbmNsdWRlcyIsIm1hcCIsInNraWxsIiwibWFwTWNwU2x1Z3NUb0l0ZW1zIiwic2x1Z3MiLCJ1c2VFbnRpdHlTZWFyY2giLCJfc2NvcGUkbWNwU2x1Z3MiLCJfc2NvcGUkc2tpbGxzIiwiX3N0YWJsZVNjb3BlJHByb2plY3RJIiwiX3N0YWJsZVNjb3BlJGNsaWVudElkIiwiX3N0YWJsZVNjb3BlJGFnZW50RW50IiwiY29yVXNlciIsIl91c2VUIiwidCIsInJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZXRTZWFyY2hWYWx1ZSIsImRlYm91bmNlZFNlYXJjaFZhbHVlIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJpdGVtcyIsInNldEl0ZW1zIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiZXJyb3IiLCJzZXRFcnJvciIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwiaGlkZVJlY2VudHNMYWJlbCIsInNldEhpZGVSZWNlbnRzTGFiZWwiLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJoYXNNb3JlIiwic2V0SGFzTW9yZSIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJpc0xvYWRpbmdNb3JlIiwic2V0SXNMb2FkaW5nTW9yZSIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJjdXJyZW50UGFnZSIsInNldEN1cnJlbnRQYWdlIiwiX3VzZVN0YXRlMTUiLCJfdXNlU3RhdGUxNiIsImFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UiLCJzZXRBY3RpdmVQYWdpbmF0aW9uU291cmNlIiwibWNwU2x1Z3NLZXkiLCJtY3BTbHVncyIsImpvaW4iLCJza2lsbHNLZXkiLCJzdGFibGVTY29wZSIsIl9zY29wZSRjbGllbnRJZCIsIl9zY29wZSRwcm9qZWN0SWQiLCJfc2NvcGUkbWNwU2x1Z3MyIiwiX3Njb3BlJGFnZW50RW50aXR5IiwiX3VzZUxhenlRdWVyeSIsInZhcmlhYmxlcyIsImxpbWl0IiwiZmV0Y2hQb2xpY3kiLCJfdXNlTGF6eVF1ZXJ5MiIsImZldGNoU2VhcmNoRW50aXRpZXMiLCJfdXNlTGF6eVF1ZXJ5MiQiLCJzZWFyY2hEYXRhIiwiZGF0YSIsInNlYXJjaExvYWRpbmciLCJzZWFyY2hFcnJvciIsIl91c2VMYXp5UXVlcnkzIiwiX3VzZUxhenlRdWVyeTQiLCJmZXRjaFNlYXJjaENsaWVudHMiLCJfdXNlTGF6eVF1ZXJ5NCQiLCJjbGllbnRzRGF0YSIsImNsaWVudHNMb2FkaW5nIiwiY2xpZW50c0Vycm9yIiwiX3VzZUxhenlRdWVyeTUiLCJfdXNlTGF6eVF1ZXJ5NiIsImZldGNoVXNlcnNEaXJlY3RvcnkiLCJfdXNlTGF6eVF1ZXJ5NiQiLCJ1c2Vyc0RhdGEiLCJ1c2Vyc0xvYWRpbmciLCJ1c2Vyc0Vycm9yIiwic3luY1VzZXJzUGFnaW5hdGlvbiIsInBheWxvYWQiLCJfcGF5bG9hZCR1c2VycyIsIl9wYXlsb2FkJHVzZXJzMiIsInBhZ2UiLCJ1c2VycyIsImxhc3RQYWdlIiwic3luY0NsaWVudHNQYWdpbmF0aW9uIiwiX3BheWxvYWQkY2xpZW50cyIsIl9wYXlsb2FkJGNsaWVudHMyIiwiY2xpZW50cyIsInN5bmNUYXNrRmFsbGJhY2tQYWdpbmF0aW9uIiwiX3BheWxvYWQkdGFza0ZhbWlseSIsIl9wYXlsb2FkJHRhc2tGYW1pbHkyIiwicmF3UGFnZSIsInRhc2tGYW1pbHkiLCJzeW5jUHJvamVjdEZhbGxiYWNrUGFnaW5hdGlvbiIsIl9wYXlsb2FkJHByb2plY3RzIiwiX3BheWxvYWQkcHJvamVjdHMyIiwicHJvamVjdHMiLCJfdXNlTGF6eVF1ZXJ5NyIsIl91c2VMYXp5UXVlcnk4IiwiZmV0Y2hUYXNrRmFtaWx5RmFsbGJhY2siLCJfdXNlTGF6eVF1ZXJ5OSIsIl91c2VMYXp5UXVlcnkwIiwiZmV0Y2hQcm9qZWN0c0ZhbGxiYWNrIiwiZmV0Y2hSZWNlbnQiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImdlbmVyYXRpb24iLCJfc3RhYmxlU2NvcGUkbWNwU2x1Z3MiLCJfZGF0YSRkYXRhIiwiX2RhdGEkbmV4dF9vZmZzZXQiLCJyZXNwb25zZSIsImNhblBhZ2luYXRlIiwiX2RhdGEiLCJtYXBwZWQiLCJfZGF0YTIiLCJfbWFwcGVkIiwiX2ZhbGxiYWNrRGF0YSRwcm9qZWN0IiwiX2ZhbGxiYWNrRGF0YSRwcm9qZWN0MiIsImFyZ3VtZW50c0ZpbHRlciIsIl95aWVsZCRmZXRjaFByb2plY3RzRiIsImZhbGxiYWNrRGF0YSIsImZhbGxiYWNrTWFwcGVkIiwicmVjZW50VGFza0ZpbHRlcnMiLCJfZGF0YTMiLCJ0YXNrSXRlbXMiLCJfZmFsbGJhY2tEYXRhJHRhc2tGYW0iLCJfZmFsbGJhY2tEYXRhJHRhc2tGYW0yIiwiX3lpZWxkJGZldGNoVGFza0ZhbWlsIiwiX2ZhbGxiYWNrRGF0YSIsIl9kYXRhNCR1c2VycyRkYXRhIiwiX2RhdGE0JHVzZXJzIiwiX3lpZWxkJGZldGNoVXNlcnNEaXJlIiwiX2RhdGE0IiwiX21hcHBlZDIiLCJtZUl0ZW0iLCJ3aXRob3V0TWUiLCJfdCIsIl90MiIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiY3VycmVudCIsImFicnVwdCIsInBhdGgiLCJtZXRob2QiLCJzZW50IiwianNvbiIsImhhc19tb3JlIiwibmV4dF9vZmZzZXQiLCJmaW5pc2giLCJpc0FycmF5IiwicCIsImNsaWVudF9pZCIsIl9vYmplY3RTcHJlYWQiLCJwZXJQYWdlIiwiaXRlbSIsInByb2plY3RJZHMiLCJjbGllbnRJZHMiLCJwYWdpbmF0aW9uIiwib2Zmc2V0Iiwic2l6ZSIsImZpbHRlcnMiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJzdG9wIiwiX3N0YWJsZVNjb3BlJG1jcFNsdWdzMiIsInNlYXJjaEdlbiIsImVuY29kZVVSSUNvbXBvbmVudCIsInRoZW4iLCJfZGF0YSRkYXRhMiIsIl9kYXRhJG5leHRfb2Zmc2V0MiIsImV4dHJhIiwiX2NsaWVudHNEYXRhJGNsaWVudHMiLCJfdXNlcnNEYXRhJHVzZXJzIiwibWVJZCIsImhhc01lSW5SZXN1bHRzIiwic29tZSIsInNlYXJjaCIsImxvYWRNb3JlIiwiX2NhbGxlZTIiLCJzYWZlQ3VycmVudFBhZ2UiLCJuZXh0UGFnZSIsImxvYWRNb3JlQmFzZWxpbmVHZW4iLCJfZGF0YSR1c2VycyRkYXRhIiwiX2RhdGEkdXNlcnMiLCJfeWllbGQkZmV0Y2hVc2Vyc0RpcmUyIiwibmV4dEl0ZW1zIiwiX2RhdGE1JGNsaWVudHMkZGF0YSIsIl9kYXRhNSRjbGllbnRzIiwiX3lpZWxkJGZldGNoU2VhcmNoQ2xpIiwiX2RhdGE1IiwiX25leHRJdGVtcyIsIl9kYXRhNiR0YXNrRmFtaWx5JGRhdCIsIl9kYXRhNiR0YXNrRmFtaWx5IiwiX3lpZWxkJGZldGNoVGFza0ZhbWlsMiIsIl9kYXRhNiIsIl9uZXh0SXRlbXMyIiwiX2RhdGE3JHByb2plY3RzJGRhdGEiLCJfZGF0YTckcHJvamVjdHMiLCJfeWllbGQkZmV0Y2hQcm9qZWN0c0YyIiwiX2RhdGE3IiwiX25leHRJdGVtczMiLCJfc2tpbGxEYXRhJGRhdGEiLCJfc2tpbGxEYXRhJG5leHRfb2Zmc2UiLCJza2lsbE9mZnNldCIsInNraWxsUSIsInNraWxsUGF0aCIsInNraWxsUmVzcG9uc2UiLCJza2lsbERhdGEiLCJfbmV4dEl0ZW1zNCIsIl90MyIsIl9jb250ZXh0MiIsIl9wcmV2JCIsImV4aXN0aW5nSWRzIiwiU2V0IiwiYXBwZW5kZWQiLCJoYXMiLCJjb25zb2xlIiwic291cmNlIiwiZmV0Y2hSZWNlbnRSZWYiLCJyZWNlbnRzVHJpZ2dlciIsInVwZGF0ZVNlYXJjaFZhbHVlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZUVudGl0eVNlYXJjaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VMYXp5UXVlcnkgfSBmcm9tICdAYXBvbGxvL2NsaWVudCdcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGdldFJlY2VudENsaWVudHMgfSBmcm9tICcuLi9zZXJ2aWNlcy9tYWlhL1JlY2VudENsaWVudHMvZ2V0UmVjZW50Q2xpZW50cydcbmltcG9ydCB7IGdldFJlY2VudFByb2plY3RzIH0gZnJvbSAnLi4vc2VydmljZXMvbWFpYS9SZWNlbnRQcm9qZWN0cy9nZXRSZWNlbnRQcm9qZWN0cydcbmltcG9ydCB7IGdldFJlY2VudFRhc2tzIH0gZnJvbSAnLi4vc2VydmljZXMvbWFpYS9SZWNlbnRUYXNrcy9nZXRSZWNlbnRUYXNrcydcbmltcG9ydCB0eXBlIHsgUmVjZW50VGFza0l0ZW0gfSBmcm9tICcuLi9zZXJ2aWNlcy9tYWlhL1JlY2VudFRhc2tzL2dldFJlY2VudFRhc2tzJ1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBQUk9KRUNUU19GQUxMQkFDSywgU0VBUkNIX0VOVElUSUVTLCBUQVNLX0ZBTUlMWV9GQUxMQkFDSyB9IGZyb20gJy4uL3NlcnZpY2VzL3F1ZXJ5L2VudGl0eVNlYXJjaFF1ZXJ5J1xuaW1wb3J0IHsgU0VBUkNIX0NMSUVOVFMgfSBmcm9tICcuLi9zZXJ2aWNlcy9xdWVyeS9DbGllbnRTZWFyY2hRdWVyeSdcbmltcG9ydCB7IFVTRVJTX0RJUkVDVE9SWSB9IGZyb20gJy4uL3NlcnZpY2VzL3F1ZXJ5L3VzZXJzRGlyZWN0b3J5UXVlcnknXG5pbXBvcnQgeyBTRUFSQ0hfUVVFUllfREVCT1VOQ0VfTVMgfSBmcm9tICcuLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgdXNlRGVib3VuY2UgfSBmcm9tICcuL3VzZURlYm91bmNlJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4vdXNlVCdcbmltcG9ydCB7IENvbnRleHRFbnRpdHlUeXBlLCBDb250ZXh0TWVudGlvbkl0ZW0gfSBmcm9tICcuLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB0eXBlIHsgQWdlbnRFbnRpdHkgfSBmcm9tICcuLi90eXBlcy9hZ2VudCdcbmltcG9ydCB0eXBlIHsgU2tpbGwgfSBmcm9tICcuLi90eXBlcy9za2lsbCdcbmltcG9ydCB7IGZldGNoTWFpYSB9IGZyb20gJy4uL3NlcnZpY2VzL21haWEvY2xpZW50J1xuXG50eXBlIFJhd1NlYXJjaFJlc3VsdCA9IHtcbiAgaWQ6IHN0cmluZyB8IG51bWJlclxuICB0aXRsZTogc3RyaW5nXG4gIHR5cGU/OiBzdHJpbmdcbiAgY2xpZW50SWQ/OiBudW1iZXIgfCBzdHJpbmcgfCBudWxsXG4gIGZlZUlkPzogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbFxuICBjbGllbnROYW1lPzogc3RyaW5nIHwgbnVsbFxuICBwcm9qZWN0TmFtZT86IHN0cmluZyB8IG51bGxcbiAgZmF0aGVyPzogeyBpZDogc3RyaW5nIHwgbnVtYmVyOyB0aXRsZT86IHN0cmluZyB8IG51bGwgfSB8IG51bGxcbn1cblxudHlwZSBSYXdDbGllbnQgPSB7XG4gIGlkOiBudW1iZXIgfCBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHRvdGFsUHJveWVjdG9zPzogbnVtYmVyIHwgbnVsbFxufVxuXG50eXBlIFJhd0RpcmVjdG9yeVVzZXIgPSB7XG4gIGlkOiBzdHJpbmcgfCBudW1iZXJcbiAgZmlyc3ROYW1lPzogc3RyaW5nIHwgbnVsbFxuICBsYXN0TmFtZT86IHN0cmluZyB8IG51bGxcbiAgZW1haWw/OiBzdHJpbmcgfCBudWxsXG4gIHBpY3R1cmU/OiBzdHJpbmcgfCBudWxsXG4gIHVzZXJQb3NpdGlvbj86IHsgbmFtZT86IHN0cmluZyB8IG51bGwgfSB8IG51bGxcbn1cblxudHlwZSBTZWFyY2hFbnRpdGllc0RhdGEgPSB7IHNlYXJjaDogUmF3U2VhcmNoUmVzdWx0W10gfCBudWxsIH1cbnR5cGUgU2VhcmNoQ2xpZW50c0RhdGEgPSB7XG4gIGNsaWVudHM6IHtcbiAgICB0b3RhbD86IG51bWJlciB8IG51bGxcbiAgICBwZXJQYWdlPzogbnVtYmVyIHwgbnVsbFxuICAgIHBhZ2U/OiBudW1iZXIgfCBudWxsXG4gICAgbGFzdFBhZ2U/OiBudW1iZXIgfCBudWxsXG4gICAgZGF0YTogUmF3Q2xpZW50W11cbiAgfSB8IG51bGxcbn1cbnR5cGUgVXNlcnNEaXJlY3RvcnlEYXRhID0ge1xuICB1c2Vyczoge1xuICAgIHRvdGFsPzogbnVtYmVyIHwgbnVsbFxuICAgIHBlclBhZ2U/OiBudW1iZXIgfCBudWxsXG4gICAgcGFnZT86IG51bWJlciB8IG51bGxcbiAgICBsYXN0UGFnZT86IG51bWJlciB8IG51bGxcbiAgICBkYXRhOiBSYXdEaXJlY3RvcnlVc2VyW10gfCBudWxsXG4gIH0gfCBudWxsXG59XG5cbnR5cGUgVGFza0ZhbWlseVJlY29yZCA9IHtcbiAgX2lkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbFxuICB0aXRsZT86IHN0cmluZyB8IG51bGxcbiAgcHJvamVjdElkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbFxuICB0YXNrRmF0aGVyPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbFxuICBmYXRoZXI/OiB7IGlkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbDsgdGl0bGU/OiBzdHJpbmcgfCBudWxsIH0gfCBudWxsXG4gIHByb2plY3Q/OiB7IGlkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbDsgbmFtZT86IHN0cmluZyB8IG51bGwgfSB8IG51bGxcbn1cblxudHlwZSBUYXNrRmFtaWx5RGF0YSA9IHtcbiAgdGFza0ZhbWlseT86IHtcbiAgICB0b3RhbD86IG51bWJlciB8IG51bGxcbiAgICBwZXJQYWdlPzogbnVtYmVyIHwgbnVsbFxuICAgIHBhZ2U/OiBudW1iZXIgfCBudWxsXG4gICAgbGFzdFBhZ2U/OiBudW1iZXIgfCBudWxsXG4gICAgZGF0YT86IFRhc2tGYW1pbHlSZWNvcmRbXSB8IG51bGxcbiAgfSB8IG51bGxcbn1cblxudHlwZSBGYWxsYmFja1Byb2plY3RSZWNvcmQgPSB7XG4gIGlkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbFxuICBuYW1lPzogc3RyaW5nIHwgbnVsbFxuICBjbGllbnRJZD86IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgY2xpZW50PzogeyBpZD86IHN0cmluZyB8IG51bWJlciB8IG51bGw7IG5hbWU/OiBzdHJpbmcgfCBudWxsIH0gfCBudWxsXG59XG5cbnR5cGUgUHJvamVjdHNGYWxsYmFja0RhdGEgPSB7XG4gIHByb2plY3RzPzoge1xuICAgIHRvdGFsPzogbnVtYmVyIHwgbnVsbFxuICAgIHBlclBhZ2U/OiBudW1iZXIgfCBudWxsXG4gICAgcGFnZT86IG51bWJlciB8IG51bGxcbiAgICBsYXN0UGFnZT86IG51bWJlciB8IG51bGxcbiAgICBkYXRhPzogRmFsbGJhY2tQcm9qZWN0UmVjb3JkW10gfCBudWxsXG4gIH0gfCBudWxsXG59XG5cbnR5cGUgUGFnaW5hdGlvblNvdXJjZSA9ICdub25lJyB8ICd1c2VycycgfCAnY2xpZW50cy1zZWFyY2gnIHwgJ3Rhc2stZmFsbGJhY2snIHwgJ3Byb2plY3QtZmFsbGJhY2snIHwgJ3NraWxscydcblxuY29uc3Qgbm9ybWFsaXplUG9zaXRpdmVJbnQgPSAodmFsdWU6IHVua25vd24sIGZhbGxiYWNrOiBudW1iZXIpOiBudW1iZXIgPT4ge1xuICBjb25zdCBwYXJzZWQgPSBOdW1iZXIodmFsdWUpXG4gIGlmICghTnVtYmVyLmlzRmluaXRlKHBhcnNlZCkpIHJldHVybiBmYWxsYmFja1xuICBjb25zdCBub3JtYWxpemVkID0gTWF0aC5mbG9vcihwYXJzZWQpXG4gIHJldHVybiBub3JtYWxpemVkID4gMCA/IG5vcm1hbGl6ZWQgOiBmYWxsYmFja1xufVxuXG4vKipcbiAqIFJlc3RyaW5nZSBsb3MgcmVzdWx0YWRvcyBhbCBgY2xpZW50SWRgL2Bwcm9qZWN0SWRgIGRlbCBhZ2VudGUgYWN0aXZvLlxuICogQ3VhbmRvIGVsIGFnZW50ZSBlc3TDoSBzY29wZWFkbyBhIHVuIGNsaWVudC9wcm9qZWN0LCB0YW50byBsb3MgcmVjZW50cyBjb21vXG4gKiBlbCBzZWFyY2ggZGViZW4gZmlsdHJhciBwb3IgZXNlIGNvbnRleHRvLiBTaSBlbCBiYWNrZW5kIG5vIGVudGllbmRlIGFsZ8O6blxuICogY2FtcG8gbG8gaWdub3JhIHkgc2UgY2FlIGFsIGNvbXBvcnRhbWllbnRvIGdsb2JhbC5cbiAqL1xuZXhwb3J0IHR5cGUgRW50aXR5U2VhcmNoU2NvcGUgPSB7XG4gIGNsaWVudElkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbFxuICBwcm9qZWN0SWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIC8qKiBTbHVncyBkZWwgY29uZWN0b3IgTUNQIGRlbCBhZ2VudGUgKGxpc3RhZG8gbG9jYWwsIHNpbiBHcmFwaFFMKS4gKi9cbiAgbWNwU2x1Z3M/OiBzdHJpbmdbXVxuICAvKipcbiAgICogU2tpbGxzIHByZWNhcmdhZGFzIChsaXN0YWRvIGxvY2FsLCBzaW4gUkVTVCkuIEN1YW5kbyBzZSBwcm92ZWVuLCBzZSB1c2FuIGRpcmVjdGFtZW50ZVxuICAgKiBlbiBsdWdhciBkZSBmZXRjaGVhciBkZXNkZSBsYSBBUEkuIMOadGlsIHBhcmEgZGV2L3Rlc3RpbmcgeSBwYXJhIFNTUi5cbiAgICovXG4gIHNraWxscz86IFNraWxsW11cbiAgLyoqXG4gICAqIGBlbnRpdHlgIGRlbCBhZ2VudGUgYWN0aXZvLiBQYXJhIGVzcGVjaWFsaXN0YXM6XG4gICAqIC0gYHByb2plY3RgOiBiw7pzcXVlZGEgZGUgdGFyZWFzIGZ1ZXJ6YSBmaWx0cm8gcG9yIGBwcm9qZWN0SWRgIGRlbCBjb250ZXh0by5cbiAgICogLSBgY2xpZW50YDogYsO6c3F1ZWRhIGRlIHByb3llY3RvcyBwb3IgYGNsaWVudElkYDsgdGFyZWFzIHBvciBjbGllbnRlICh5IHByb3llY3RvIHNpIGFwbGljYSkuXG4gICAqL1xuICBhZ2VudEVudGl0eT86IEFnZW50RW50aXR5IHwgbnVsbFxufVxuXG50eXBlIFNlYXJjaEZpbHRlcmFibGVUeXBlID0gJ3Byb2plY3QnIHwgJ3Rhc2snXG5cbmNvbnN0IEJBU0VfRklMVEVSU19CWV9UWVBFOiBSZWNvcmQ8U2VhcmNoRmlsdGVyYWJsZVR5cGUsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0ge1xuICBwcm9qZWN0OiB7IHByb2plY3Q6ICd0cnVlJywgYXJjaGl2ZWQ6ICdhbGwnIH0sXG4gIHRhc2s6IHsgdGFzazogJ3RydWUnLCBhcmNoaXZlZDogJ2ZhbHNlJyB9LFxufVxuXG4vKipcbiAqIEVudHJhZGFzIHBhcmEgZWwgYXJndW1lbnRvIEdyYXBoUUwgYGV4dHJhYCAoSlNPTiBzdHJpbmcgZGUgYXJyYXkpIGFsIGJ1c2NhciB0YXJlYXMgY29uIGNvbnRleHRvLlxuICogRWouOiBbe1wicHJvamVjdElkXCI6XCI4ODE1NTJcIn1dXG4gKi9cbmNvbnN0IGJ1aWxkVGFza1NlYXJjaEV4dHJhRW50cmllcyA9IChzY29wZT86IEVudGl0eVNlYXJjaFNjb3BlKTogQXJyYXk8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4gPT4ge1xuICBjb25zdCByYXdDbGllbnQgPVxuICAgIHNjb3BlPy5jbGllbnRJZCAhPT0gdW5kZWZpbmVkICYmIHNjb3BlPy5jbGllbnRJZCAhPT0gbnVsbCAmJiBzY29wZT8uY2xpZW50SWQgIT09ICcnID8gU3RyaW5nKHNjb3BlLmNsaWVudElkKSA6IG51bGxcbiAgY29uc3QgcmF3UHJvamVjdCA9XG4gICAgc2NvcGU/LnByb2plY3RJZCAhPT0gdW5kZWZpbmVkICYmIHNjb3BlPy5wcm9qZWN0SWQgIT09IG51bGwgJiYgc2NvcGU/LnByb2plY3RJZCAhPT0gJydcbiAgICAgID8gU3RyaW5nKHNjb3BlLnByb2plY3RJZClcbiAgICAgIDogbnVsbFxuXG4gIGNvbnN0IGFnZW50RW50aXR5ID0gc2NvcGU/LmFnZW50RW50aXR5XG4gIGNvbnN0IGVudHJpZXM6IEFycmF5PFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0gW11cblxuICBjb25zdCBwdXNoQ2xpZW50ID0gKCkgPT4ge1xuICAgIGlmIChyYXdDbGllbnQpIGVudHJpZXMucHVzaCh7IGNsaWVudElkOiByYXdDbGllbnQgfSlcbiAgfVxuICBjb25zdCBwdXNoUHJvamVjdCA9ICgpID0+IHtcbiAgICBpZiAocmF3UHJvamVjdCkgZW50cmllcy5wdXNoKHsgcHJvamVjdElkOiByYXdQcm9qZWN0IH0pXG4gIH1cblxuICBpZiAoYWdlbnRFbnRpdHkgPT09ICdwcm9qZWN0Jykge1xuICAgIGlmIChyYXdQcm9qZWN0KSB7XG4gICAgICBwdXNoUHJvamVjdCgpXG4gICAgfSBlbHNlIGlmIChyYXdDbGllbnQpIHtcbiAgICAgIHB1c2hDbGllbnQoKVxuICAgIH1cbiAgfSBlbHNlIGlmIChhZ2VudEVudGl0eSA9PT0gJ2NsaWVudCcpIHtcbiAgICBwdXNoQ2xpZW50KClcbiAgICBwdXNoUHJvamVjdCgpXG4gIH0gZWxzZSB7XG4gICAgcHVzaENsaWVudCgpXG4gICAgcHVzaFByb2plY3QoKVxuICB9XG5cbiAgcmV0dXJuIGVudHJpZXNcbn1cblxuY29uc3QgYnVpbGRUYXNrU2VhcmNoRXh0cmEgPSAoc2NvcGU/OiBFbnRpdHlTZWFyY2hTY29wZSk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IGVudHJpZXMgPSBidWlsZFRhc2tTZWFyY2hFeHRyYUVudHJpZXMoc2NvcGUpXG4gIGlmIChlbnRyaWVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHVuZGVmaW5lZFxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZW50cmllcylcbn1cblxuLyoqXG4gKiBUYWIgcHJveWVjdG86IGNvbiBgY2xpZW50SWRgIGVuIGVsIHNjb3BlLCBgZXh0cmFgIGFjb3RhIGxhIGLDunNxdWVkYSBhIHByb3llY3RvcyBkZSBlc2UgY2xpZW50ZS5cbiAqIEVqLjogYFt7XCJjbGllbnRJZFwiOlwiNDcxMDVcIn1dYCBqdW50byBhIGBmaWx0ZXJzYCBge1wicHJvamVjdFwiOlwidHJ1ZVwiLFwiYXJjaGl2ZWRcIjpcImFsbFwifWAuXG4gKi9cbmNvbnN0IGJ1aWxkUHJvamVjdFNlYXJjaEV4dHJhID0gKHNjb3BlPzogRW50aXR5U2VhcmNoU2NvcGUpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCByYXdDbGllbnQgPVxuICAgIHNjb3BlPy5jbGllbnRJZCAhPT0gdW5kZWZpbmVkICYmIHNjb3BlPy5jbGllbnRJZCAhPT0gbnVsbCAmJiBzY29wZT8uY2xpZW50SWQgIT09ICcnID8gU3RyaW5nKHNjb3BlLmNsaWVudElkKSA6IG51bGxcbiAgaWYgKCFyYXdDbGllbnQpIHJldHVybiB1bmRlZmluZWRcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KFt7IGNsaWVudElkOiByYXdDbGllbnQgfV0pXG59XG5cbmNvbnN0IGJ1aWxkU2VhcmNoRW50aXRpZXNFeHRyYSA9ICh0eXBlOiBTZWFyY2hGaWx0ZXJhYmxlVHlwZSwgc2NvcGU/OiBFbnRpdHlTZWFyY2hTY29wZSk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmICh0eXBlID09PSAndGFzaycpIHJldHVybiBidWlsZFRhc2tTZWFyY2hFeHRyYShzY29wZSlcbiAgaWYgKHR5cGUgPT09ICdwcm9qZWN0JykgcmV0dXJuIGJ1aWxkUHJvamVjdFNlYXJjaEV4dHJhKHNjb3BlKVxuICByZXR1cm4gdW5kZWZpbmVkXG59XG5cbi8qKlxuICogVGFiIGB0YXNrYCAvIGBwcm9qZWN0YDogYGZpbHRlcnNgIHPDs2xvIHRpcG8gKyBhcmNoaXZlZCAodGFyZWFzOiBubyBhcmNoaXZhZGFzKTsgc2NvcGUgKGNsaWVudElkIC8gcHJvamVjdElkIGVuIHRhcmVhcykgZW4gYGV4dHJhYC5cbiAqL1xuY29uc3QgYnVpbGRGaWx0ZXJzRm9yVHlwZSA9ICh0eXBlOiBTZWFyY2hGaWx0ZXJhYmxlVHlwZSk6IHN0cmluZyA9PiB7XG4gIGlmICh0eXBlID09PSAncHJvamVjdCcpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoQkFTRV9GSUxURVJTX0JZX1RZUEUucHJvamVjdClcbiAgfVxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoQkFTRV9GSUxURVJTX0JZX1RZUEUudGFzaylcbn1cblxuLyoqXG4gKiBGaWx0cm9zIHBhcmEgbGEgcXVlcnkgdXNlcnMuIEVsIGJhY2tlbmQgZXNwZXJhIHVuIEpTT04gc3RyaW5nIGNvblxuICogd2l0aFBvc2l0aW9uLCB3aXRoVGVhbXMgeSBzZWFyY2hJbnB1dC4gTGUgYWdyZWdhbW9zIGNsaWVudElkL3Byb2plY3RJZFxuICogZGVsIHNjb3BlIGVuIGNhc28gZGUgcXVlIGVsIGJhY2tlbmQgbG9zIGFwcm92ZWNoZSBwYXJhIGZpbHRyYXIgcG9yXG4gKiBjb250ZXh0byAoc2kgbm8gbG9zIGVudGllbmRlIGxvcyBpZ25vcmEpLlxuICovXG5jb25zdCBidWlsZFVzZXJzRGlyZWN0b3J5RmlsdGVycyA9IChxOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBiYXNlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICB3aXRoUG9zaXRpb246IHRydWUsXG4gICAgd2l0aFRlYW1zOiB0cnVlLFxuICB9XG4gIGNvbnN0IHRyaW1tZWRRID0gcS50cmltKClcbiAgaWYgKHRyaW1tZWRRKSB7XG4gICAgYmFzZS5zZWFyY2hJbnB1dCA9IHRyaW1tZWRRXG4gIH1cbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGJhc2UpXG59XG5cbmNvbnN0IGhpZ2hsaWdodFJhbmdlID0gKHRleHQ6IHN0cmluZywgc2VhcmNoVmFsdWU6IHN0cmluZykgPT4ge1xuICBpZiAoIXNlYXJjaFZhbHVlKSByZXR1cm4gdW5kZWZpbmVkXG4gIGNvbnN0IGlkeCA9IHRleHQudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpXG4gIGlmIChpZHggPCAwKSByZXR1cm4gdW5kZWZpbmVkXG4gIHJldHVybiB7IHN0YXJ0OiBpZHgsIGxlbmd0aDogc2VhcmNoVmFsdWUubGVuZ3RoIH1cbn1cblxuY29uc3QgZmlyc3REZWZpbmVkID0gPFQ+KC4uLnZhbHVlczogQXJyYXk8VCB8IG51bGwgfCB1bmRlZmluZWQ+KTogVCB8IHVuZGVmaW5lZCA9PlxuICB2YWx1ZXMuZmluZCh2YWx1ZSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsKVxuXG5jb25zdCBub3JtYWxpemVUcmltbWVkU3RyaW5nID0gKHZhbHVlOiB1bmtub3duKTogc3RyaW5nID0+IHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHJldHVybiAnJ1xuICByZXR1cm4gdmFsdWUudHJpbSgpXG59XG5cbmNvbnN0IGdldFVzZXJQb3NpdGlvbk5hbWUgPSAodXNlclBvc2l0aW9uOiBSZXR1cm5UeXBlPHR5cGVvZiB1c2VVc2VyPlsndXNlcl9wb3NpdGlvbiddKTogc3RyaW5nID0+IHtcbiAgaWYgKHR5cGVvZiB1c2VyUG9zaXRpb24gPT09ICdzdHJpbmcnKSByZXR1cm4gdXNlclBvc2l0aW9uLnRyaW0oKVxuICBpZiAodXNlclBvc2l0aW9uICYmIHR5cGVvZiB1c2VyUG9zaXRpb24gPT09ICdvYmplY3QnICYmICduYW1lJyBpbiB1c2VyUG9zaXRpb24pIHtcbiAgICByZXR1cm4gbm9ybWFsaXplVHJpbW1lZFN0cmluZyh1c2VyUG9zaXRpb24ubmFtZSlcbiAgfVxuICByZXR1cm4gJydcbn1cblxuY29uc3QgbWFwQ2xpZW50VG9JdGVtID0gKGM6IFJhd0NsaWVudCwgc2VhcmNoVmFsdWU6IHN0cmluZyk6IENvbnRleHRNZW50aW9uSXRlbSA9PiAoe1xuICBpZDogYy5pZCxcbiAgdHlwZTogJ2NsaWVudCcsXG4gIHByaW1hcnk6IGMubmFtZSxcbiAgcHJpbWFyeUhpZ2hsaWdodDogaGlnaGxpZ2h0UmFuZ2UoYy5uYW1lLCBzZWFyY2hWYWx1ZSksXG4gIGJyZWFkY3J1bWI6IHtcbiAgICBjb3VudDogYy50b3RhbFByb3llY3RvcyA/PyB1bmRlZmluZWQsXG4gICAgY291bnRMYWJlbDogJ3Byb2plY3RzJyxcbiAgfSxcbiAgcmF3OiB7XG4gICAgaWQ6IGMuaWQsXG4gICAgbmFtZTogYy5uYW1lLFxuICAgIHRvdGFsUHJveWVjdG9zOiBjLnRvdGFsUHJveWVjdG9zID8/IG51bGwsXG4gIH0sXG59KVxuXG5jb25zdCBtYXBVc2VyVG9JdGVtID0gKHU6IFJhd0RpcmVjdG9yeVVzZXIsIHNlYXJjaFZhbHVlOiBzdHJpbmcpOiBDb250ZXh0TWVudGlvbkl0ZW0gPT4ge1xuICBjb25zdCBmdWxsTmFtZSA9IGAke3UuZmlyc3ROYW1lID8/ICcnfSAke3UubGFzdE5hbWUgPz8gJyd9YC50cmltKClcbiAgY29uc3QgcHJpbWFyeSA9IGZ1bGxOYW1lIHx8IHUuZW1haWwgfHwgU3RyaW5nKHUuaWQpXG5cbiAgcmV0dXJuIHtcbiAgICBpZDogdS5pZCxcbiAgICB0eXBlOiAndXNlcicsXG4gICAgcHJpbWFyeSxcbiAgICBwcmltYXJ5SGlnaGxpZ2h0OiBoaWdobGlnaHRSYW5nZShwcmltYXJ5LCBzZWFyY2hWYWx1ZSksXG4gICAgcmF3OiB7XG4gICAgICBpZDogdS5pZCxcbiAgICAgIG5hbWU6IHByaW1hcnksXG4gICAgICBwaWN0dXJlOiB1LnBpY3R1cmUgPz8gbnVsbCxcbiAgICAgIHBvc2l0aW9uTmFtZTogdS51c2VyUG9zaXRpb24/Lm5hbWUgPz8gbnVsbCxcbiAgICAgIGVtYWlsOiB1LmVtYWlsID8/IG51bGwsXG4gICAgfSxcbiAgfVxufVxuXG5jb25zdCBtYXBDb3JVc2VyVG9Vc2VySXRlbSA9IChcbiAgdXNlcjogUmV0dXJuVHlwZTx0eXBlb2YgdXNlVXNlcj4sXG4gIHNlYXJjaFZhbHVlOiBzdHJpbmcsXG4gIG1lTGFiZWw6IHN0cmluZ1xuKTogQ29udGV4dE1lbnRpb25JdGVtID0+IHtcbiAgY29uc3QgZnVsbE5hbWUgPSBgJHt1c2VyLmZpcnN0TmFtZSA/PyAnJ30gJHt1c2VyLmxhc3ROYW1lID8/ICcnfWAudHJpbSgpXG4gIC8qKiBTb2xvIGNhcmdvIHJlYWw7IHNpbiBmYWxsYmFjayBhIGByb2xlYCAobGEgVUkgbXVlc3RyYSDigJxTaW4gcG9zaWNpw7Nu4oCdIHNpIGZhbHRhKS4gKi9cbiAgY29uc3QgcG9zaXRpb25MaW5lID0gZ2V0VXNlclBvc2l0aW9uTmFtZSh1c2VyLnVzZXJfcG9zaXRpb24pIHx8IG51bGxcbiAgY29uc3QgZW1haWwgPSBub3JtYWxpemVUcmltbWVkU3RyaW5nKHVzZXIuZW1haWwpIHx8IG51bGxcblxuICByZXR1cm4ge1xuICAgIGlkOiB1c2VyLmlkLFxuICAgIHR5cGU6ICd1c2VyJyxcbiAgICBwcmltYXJ5OiBtZUxhYmVsLFxuICAgIHByaW1hcnlIaWdobGlnaHQ6IGhpZ2hsaWdodFJhbmdlKG1lTGFiZWwsIHNlYXJjaFZhbHVlKSxcbiAgICByYXc6IHtcbiAgICAgIGlkOiB1c2VyLmlkLFxuICAgICAgbmFtZTogZnVsbE5hbWUgfHwgU3RyaW5nKHVzZXIuaWQpLFxuICAgICAgcGljdHVyZTogdXNlci5waWN0dXJlIHx8IG51bGwsXG4gICAgICBwb3NpdGlvbk5hbWU6IHBvc2l0aW9uTGluZSxcbiAgICAgIGVtYWlsLFxuICAgIH0sXG4gIH1cbn1cblxuY29uc3QgbWFwUmVjZW50VGFza1RvSXRlbSA9IChcbiAgdGFzazogUmVjZW50VGFza0l0ZW0sXG4gIHNlYXJjaFZhbHVlOiBzdHJpbmcsXG4gIHNob3dQcm9qZWN0TmFtZUluVGFza1JvdyA9IHRydWVcbik6IENvbnRleHRNZW50aW9uSXRlbSA9PiB7XG4gIGNvbnN0IHByaW1hcnkgPSAodGFzay50aXRsZSAmJiB0YXNrLnRpdGxlLnRyaW0oKSkgfHwgU3RyaW5nKHRhc2suaWQpXG4gIGNvbnN0IHByb2plY3ROYW1lID0gc2hvd1Byb2plY3ROYW1lSW5UYXNrUm93ID8gKHRhc2sucHJvamVjdE5hbWUgPz8gbnVsbCkgOiBudWxsXG4gIHJldHVybiB7XG4gICAgaWQ6IHRhc2suaWQsXG4gICAgdHlwZTogJ3Rhc2snLFxuICAgIHByaW1hcnksXG4gICAgcHJpbWFyeUhpZ2hsaWdodDogaGlnaGxpZ2h0UmFuZ2UocHJpbWFyeSwgc2VhcmNoVmFsdWUpLFxuICAgIGJyZWFkY3J1bWI6IHByb2plY3ROYW1lID8geyBwYXJlbnQ6IHByb2plY3ROYW1lIH0gOiB1bmRlZmluZWQsXG4gICAgcmF3OiB7XG4gICAgICBpZDogdGFzay5pZCxcbiAgICAgIG5hbWU6IHByaW1hcnksXG4gICAgICBwcm9qZWN0TmFtZSxcbiAgICB9LFxuICB9XG59XG5cbmNvbnN0IG5vcm1hbGl6ZVRhc2tGYW1pbHlSZWNvcmQgPSAocmVjb3JkOiBUYXNrRmFtaWx5UmVjb3JkKTogUmVjZW50VGFza0l0ZW0gfCBudWxsID0+IHtcbiAgY29uc3QgeyBfaWQ6IHRhc2tGYW1pbHlJZCB9ID0gcmVjb3JkXG4gIGNvbnN0IGlkID0gdGFza0ZhbWlseUlkXG4gIGlmIChpZCA9PT0gdW5kZWZpbmVkIHx8IGlkID09PSBudWxsIHx8IFN0cmluZyhpZCkgPT09ICcnKSByZXR1cm4gbnVsbFxuICBjb25zdCB0aXRsZSA9IChyZWNvcmQudGl0bGUgPz8gJycpLnRyaW0oKSB8fCBTdHJpbmcoaWQpXG4gIGNvbnN0IHByb2plY3ROYW1lID0gZmlyc3REZWZpbmVkKHJlY29yZC5wcm9qZWN0Py5uYW1lLCByZWNvcmQuZmF0aGVyPy50aXRsZSkgPz8gbnVsbFxuICBjb25zdCBoYXNGYXRoZXIgPSAhIWZpcnN0RGVmaW5lZChyZWNvcmQudGFza0ZhdGhlciwgcmVjb3JkLmZhdGhlcj8uaWQpXG4gIHJldHVybiB7XG4gICAgaWQsXG4gICAgdGl0bGUsXG4gICAgdHlwZTogaGFzRmF0aGVyID8gJ3N1YnRhc2snIDogJ3Rhc2snLFxuICAgIHByb2plY3ROYW1lLFxuICB9XG59XG5cbmNvbnN0IG5vcm1hbGl6ZVByb2plY3RzRmFsbGJhY2tSZWNvcmQgPSAocmVjb3JkOiBGYWxsYmFja1Byb2plY3RSZWNvcmQpOiBSYXdTZWFyY2hSZXN1bHQgfCBudWxsID0+IHtcbiAgY29uc3QgeyBpZCB9ID0gcmVjb3JkXG4gIGlmIChpZCA9PT0gdW5kZWZpbmVkIHx8IGlkID09PSBudWxsIHx8IFN0cmluZyhpZCkgPT09ICcnKSByZXR1cm4gbnVsbFxuICBjb25zdCB0aXRsZSA9IHJlY29yZC5uYW1lID8/ICcnXG4gIGNvbnN0IGNsaWVudElkID0gZmlyc3REZWZpbmVkKHJlY29yZC5jbGllbnRJZCwgcmVjb3JkLmNsaWVudD8uaWQpID8/IG51bGxcbiAgY29uc3QgY2xpZW50TmFtZSA9IHJlY29yZC5jbGllbnQ/Lm5hbWUgPz8gbnVsbFxuICByZXR1cm4ge1xuICAgIGlkLFxuICAgIHRpdGxlLFxuICAgIHR5cGU6ICdwcm9qZWN0JyxcbiAgICBjbGllbnRJZCxcbiAgICBjbGllbnROYW1lLFxuICB9XG59XG5cbmNvbnN0IG1hcFNlYXJjaFRvSXRlbSA9IChcbiAgcjogUmF3U2VhcmNoUmVzdWx0LFxuICB0eXBlOiBDb250ZXh0RW50aXR5VHlwZSxcbiAgc2VhcmNoVmFsdWU6IHN0cmluZyxcbiAgc2hvd1Byb2plY3ROYW1lSW5UYXNrUm93ID0gdHJ1ZVxuKTogQ29udGV4dE1lbnRpb25JdGVtID0+IHtcbiAgY29uc3QgcHJpbWFyeSA9IHIudGl0bGUgfHwgci5wcm9qZWN0TmFtZSB8fCAnJ1xuICBsZXQgcGFyZW50OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkXG4gIGlmICh0eXBlID09PSAncHJvamVjdCcpIHBhcmVudCA9IHIuY2xpZW50TmFtZVxuICBlbHNlIGlmICh0eXBlID09PSAndGFzaycpIHBhcmVudCA9IHVuZGVmaW5lZFxuICBlbHNlIHBhcmVudCA9IHIucHJvamVjdE5hbWUgPz8gci5jbGllbnROYW1lXG5cbiAgY29uc3QgZmF0aGVyID0gdHlwZSA9PT0gJ3Rhc2snID8gci5mYXRoZXIgOiBudWxsXG4gIGNvbnN0IGhhc0ZhdGhlciA9IHR5cGUgPT09ICd0YXNrJyAmJiBmYXRoZXIgIT0gbnVsbCAmJiBmYXRoZXIuaWQgIT0gbnVsbCAmJiBTdHJpbmcoZmF0aGVyLmlkKS5sZW5ndGggPiAwXG5cbiAgY29uc3QgdGFza1Byb2plY3ROYW1lID0gdHlwZSA9PT0gJ3Rhc2snICYmICFzaG93UHJvamVjdE5hbWVJblRhc2tSb3cgPyBudWxsIDogKHIucHJvamVjdE5hbWUgPz8gbnVsbClcblxuICByZXR1cm4ge1xuICAgIGlkOiByLmlkLFxuICAgIHR5cGUsXG4gICAgcHJpbWFyeSxcbiAgICBwcmltYXJ5SGlnaGxpZ2h0OiBoaWdobGlnaHRSYW5nZShwcmltYXJ5LCBzZWFyY2hWYWx1ZSksXG4gICAgYnJlYWRjcnVtYjogcGFyZW50ID8geyBwYXJlbnQgfSA6IHVuZGVmaW5lZCxcbiAgICByYXc6IHtcbiAgICAgIGlkOiByLmlkLFxuICAgICAgbmFtZTogcHJpbWFyeSxcbiAgICAgIGNsaWVudElkOiByLmNsaWVudElkID8/IG51bGwsXG4gICAgICBjbGllbnROYW1lOiByLmNsaWVudE5hbWUgPz8gbnVsbCxcbiAgICAgIHByb2plY3ROYW1lOiB0YXNrUHJvamVjdE5hbWUsXG4gICAgICBmZWVJZDogci5mZWVJZCA/PyBudWxsLFxuICAgICAgZmF0aGVySWQ6IGhhc0ZhdGhlciA/IGZhdGhlci5pZCA6IG51bGwsXG4gICAgICBmYXRoZXJUaXRsZTogaGFzRmF0aGVyID8gZmF0aGVyLnRpdGxlPy50cmltKCkgfHwgbnVsbCA6IG51bGwsXG4gICAgfSxcbiAgfVxufVxuXG5jb25zdCBmb3JtYXRNY3BQcmltYXJ5TGFiZWwgPSAoc2x1Zzogc3RyaW5nKTogc3RyaW5nID0+XG4gIHNsdWcucmVwbGFjZSgvXy9nLCAnICcpLnJlcGxhY2UoL1xcYlxcdy9nLCBjaGFyID0+IGNoYXIudG9VcHBlckNhc2UoKSlcblxudHlwZSBTa2lsbHNBcGlSZXNwb25zZSA9IHsgZGF0YT86IFNraWxsW107IGhhc19tb3JlPzogYm9vbGVhbjsgbmV4dF9vZmZzZXQ/OiBudW1iZXIgfCBudWxsIH1cblxuY29uc3QgbWFwU2tpbGxzVG9JdGVtcyA9IChza2lsbHM6IFNraWxsW10sIHNlYXJjaFZhbHVlOiBzdHJpbmcpOiBDb250ZXh0TWVudGlvbkl0ZW1bXSA9PiB7XG4gIGNvbnN0IHEgPSBzZWFyY2hWYWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKVxuICBjb25zdCBmaWx0ZXJlZCA9IHEgPyBza2lsbHMuZmlsdGVyKHMgPT4gcy5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSkpIDogc2tpbGxzXG4gIHJldHVybiBmaWx0ZXJlZC5tYXAoc2tpbGwgPT4gKHtcbiAgICBpZDogc2tpbGwuaWQsXG4gICAgdHlwZTogJ3NraWxsJyBhcyBjb25zdCxcbiAgICBwcmltYXJ5OiBza2lsbC5uYW1lLFxuICAgIHByaW1hcnlIaWdobGlnaHQ6IGhpZ2hsaWdodFJhbmdlKHNraWxsLm5hbWUsIHNlYXJjaFZhbHVlKSxcbiAgICByYXc6IHtcbiAgICAgIGlkOiBza2lsbC5pZCxcbiAgICAgIG5hbWU6IHNraWxsLm5hbWUsXG4gICAgfSxcbiAgfSkpXG59XG5cbmNvbnN0IG1hcE1jcFNsdWdzVG9JdGVtcyA9IChzbHVnczogc3RyaW5nW10sIHNlYXJjaFZhbHVlOiBzdHJpbmcpOiBDb250ZXh0TWVudGlvbkl0ZW1bXSA9PiB7XG4gIGNvbnN0IHEgPSBzZWFyY2hWYWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKVxuICBsZXQgZmlsdGVyZWQgPSBzbHVnc1xuICBpZiAocSkge1xuICAgIGZpbHRlcmVkID0gc2x1Z3MuZmlsdGVyKHMgPT4ge1xuICAgICAgY29uc3QgcHJpbWFyeSA9IGZvcm1hdE1jcFByaW1hcnlMYWJlbChzKVxuICAgICAgcmV0dXJuIHMudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxKSB8fCBwcmltYXJ5LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSlcbiAgICB9KVxuICB9XG4gIHJldHVybiBmaWx0ZXJlZC5tYXAoc2x1ZyA9PiB7XG4gICAgY29uc3QgcHJpbWFyeSA9IGZvcm1hdE1jcFByaW1hcnlMYWJlbChzbHVnKVxuICAgIHJldHVybiB7XG4gICAgICBpZDogc2x1ZyxcbiAgICAgIHR5cGU6ICdtY3AnIGFzIGNvbnN0LFxuICAgICAgcHJpbWFyeSxcbiAgICAgIHByaW1hcnlIaWdobGlnaHQ6IGhpZ2hsaWdodFJhbmdlKHByaW1hcnksIHNlYXJjaFZhbHVlKSxcbiAgICAgIHJhdzoge1xuICAgICAgICBpZDogc2x1ZyxcbiAgICAgICAgbmFtZTogcHJpbWFyeSxcbiAgICAgIH0sXG4gICAgfVxuICB9KVxufVxuXG5leHBvcnQgY29uc3QgdXNlRW50aXR5U2VhcmNoID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlLCBzY29wZT86IEVudGl0eVNlYXJjaFNjb3BlKSA9PiB7XG4gIGNvbnN0IGNvclVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgLyoqIEV2aXRhIGFwbGljYXIgcmVzdWx0YWRvcyBkZSB1biBgZmV0Y2hSZWNlbnRgIHZpZWpvIGN1YW5kbyBlbCB1c3VhcmlvIHlhIGNhbWJpw7MgZGUgdGFiIChyYWNlIGFzeW5jKS4gKi9cbiAgY29uc3QgcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZiA9IHVzZVJlZigwKVxuICBjb25zdCBbc2VhcmNoVmFsdWUsIHNldFNlYXJjaFZhbHVlXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBkZWJvdW5jZWRTZWFyY2hWYWx1ZSA9IHVzZURlYm91bmNlKHNlYXJjaFZhbHVlLCBTRUFSQ0hfUVVFUllfREVCT1VOQ0VfTVMpXG4gIGNvbnN0IFtpdGVtcywgc2V0SXRlbXNdID0gdXNlU3RhdGU8Q29udGV4dE1lbnRpb25JdGVtW10+KFtdKVxuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2hpZGVSZWNlbnRzTGFiZWwsIHNldEhpZGVSZWNlbnRzTGFiZWxdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtoYXNNb3JlLCBzZXRIYXNNb3JlXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaXNMb2FkaW5nTW9yZSwgc2V0SXNMb2FkaW5nTW9yZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2N1cnJlbnRQYWdlLCBzZXRDdXJyZW50UGFnZV0gPSB1c2VTdGF0ZSgxKVxuICBjb25zdCBbYWN0aXZlUGFnaW5hdGlvblNvdXJjZSwgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZV0gPSB1c2VTdGF0ZTxQYWdpbmF0aW9uU291cmNlPignbm9uZScpXG5cbiAgY29uc3QgbWNwU2x1Z3NLZXkgPSAoc2NvcGU/Lm1jcFNsdWdzID8/IFtdKS5qb2luKCd8JylcbiAgY29uc3Qgc2tpbGxzS2V5ID0gKHNjb3BlPy5za2lsbHMgPz8gW10pLm1hcChzID0+IHMuaWQpLmpvaW4oJ3wnKVxuICBjb25zdCBzaG93UHJvamVjdE5hbWVJblRhc2tSb3cgPSBzY29wZT8uYWdlbnRFbnRpdHkgIT09ICdwcm9qZWN0J1xuXG4gIC8vIEVzdGFiaWxpemFtb3MgZWwgc2NvcGUgcGFyYSBubyBkaXNwYXJhciBmZXRjaHMgcG9yIGNhbWJpb3MgZGUgaWRlbnRpZGFkIGRlIG9iamV0by5cbiAgY29uc3Qgc3RhYmxlU2NvcGUgPSB1c2VNZW1vPEVudGl0eVNlYXJjaFNjb3BlPihcbiAgICAoKSA9PiAoe1xuICAgICAgY2xpZW50SWQ6IHNjb3BlPy5jbGllbnRJZCA/PyBudWxsLFxuICAgICAgcHJvamVjdElkOiBzY29wZT8ucHJvamVjdElkID8/IG51bGwsXG4gICAgICBtY3BTbHVnczogc2NvcGU/Lm1jcFNsdWdzID8/IFtdLFxuICAgICAgc2tpbGxzOiBzY29wZT8uc2tpbGxzLFxuICAgICAgYWdlbnRFbnRpdHk6IHNjb3BlPy5hZ2VudEVudGl0eSA/PyBudWxsLFxuICAgIH0pLFxuICAgIFtzY29wZT8uY2xpZW50SWQsIHNjb3BlPy5wcm9qZWN0SWQsIG1jcFNsdWdzS2V5LCBza2lsbHNLZXksIHNjb3BlPy5hZ2VudEVudGl0eV1cbiAgKVxuXG4gIC8vIC0tLSBTZWFyY2g6IHByb2plY3QgfCB0YXNrIChHcmFwaFFMOiBzZWFyY2gpIC0tLVxuICBjb25zdCBbZmV0Y2hTZWFyY2hFbnRpdGllcywgeyBkYXRhOiBzZWFyY2hEYXRhLCBsb2FkaW5nOiBzZWFyY2hMb2FkaW5nLCBlcnJvcjogc2VhcmNoRXJyb3IgfV0gPVxuICAgIHVzZUxhenlRdWVyeTxTZWFyY2hFbnRpdGllc0RhdGE+KFNFQVJDSF9FTlRJVElFUywge1xuICAgICAgdmFyaWFibGVzOiB7IGxpbWl0OiAyMCB9LFxuICAgICAgZmV0Y2hQb2xpY3k6ICduZXR3b3JrLW9ubHknLFxuICAgIH0pXG5cbiAgLy8gLS0tIFNlYXJjaDogY2xpZW50IChHcmFwaFFMKSAtLS1cbiAgY29uc3QgW2ZldGNoU2VhcmNoQ2xpZW50cywgeyBkYXRhOiBjbGllbnRzRGF0YSwgbG9hZGluZzogY2xpZW50c0xvYWRpbmcsIGVycm9yOiBjbGllbnRzRXJyb3IgfV0gPVxuICAgIHVzZUxhenlRdWVyeTxTZWFyY2hDbGllbnRzRGF0YT4oU0VBUkNIX0NMSUVOVFMsIHtcbiAgICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgICB9KVxuXG4gIC8vIC0tLSBTZWFyY2g6IHVzZXIgKEdyYXBoUUw6IHVzZXJzKSAtLS1cbiAgY29uc3QgW2ZldGNoVXNlcnNEaXJlY3RvcnksIHsgZGF0YTogdXNlcnNEYXRhLCBsb2FkaW5nOiB1c2Vyc0xvYWRpbmcsIGVycm9yOiB1c2Vyc0Vycm9yIH1dID1cbiAgICB1c2VMYXp5UXVlcnk8VXNlcnNEaXJlY3RvcnlEYXRhPihVU0VSU19ESVJFQ1RPUlksIHtcbiAgICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgICB9KVxuXG4gIGNvbnN0IHN5bmNVc2Vyc1BhZ2luYXRpb24gPSB1c2VDYWxsYmFjaygocGF5bG9hZD86IFVzZXJzRGlyZWN0b3J5RGF0YSB8IG51bGwpID0+IHtcbiAgICBjb25zdCBwYWdlID0gbm9ybWFsaXplUG9zaXRpdmVJbnQocGF5bG9hZD8udXNlcnM/LnBhZ2UsIDEpXG4gICAgY29uc3QgbGFzdFBhZ2UgPSBub3JtYWxpemVQb3NpdGl2ZUludChwYXlsb2FkPy51c2Vycz8ubGFzdFBhZ2UsIHBhZ2UpXG4gICAgc2V0Q3VycmVudFBhZ2UocGFnZSlcbiAgICBzZXRIYXNNb3JlKHBhZ2UgPCBsYXN0UGFnZSlcbiAgfSwgW10pXG5cbiAgY29uc3Qgc3luY0NsaWVudHNQYWdpbmF0aW9uID0gdXNlQ2FsbGJhY2soKHBheWxvYWQ/OiBTZWFyY2hDbGllbnRzRGF0YSB8IG51bGwpID0+IHtcbiAgICBjb25zdCBwYWdlID0gbm9ybWFsaXplUG9zaXRpdmVJbnQocGF5bG9hZD8uY2xpZW50cz8ucGFnZSwgMSlcbiAgICBjb25zdCBsYXN0UGFnZSA9IG5vcm1hbGl6ZVBvc2l0aXZlSW50KHBheWxvYWQ/LmNsaWVudHM/Lmxhc3RQYWdlLCBwYWdlKVxuICAgIHNldEN1cnJlbnRQYWdlKHBhZ2UpXG4gICAgc2V0SGFzTW9yZShwYWdlIDwgbGFzdFBhZ2UpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHN5bmNUYXNrRmFsbGJhY2tQYWdpbmF0aW9uID0gdXNlQ2FsbGJhY2soKHBheWxvYWQ/OiBUYXNrRmFtaWx5RGF0YSB8IG51bGwpID0+IHtcbiAgICBjb25zdCByYXdQYWdlID0gTnVtYmVyKHBheWxvYWQ/LnRhc2tGYW1pbHk/LnBhZ2UpXG4gICAgLy8gdGFza0ZhbWlseSB1c2EgcMOhZ2luYXMgMC1iYXNlZDsgY29udmVydGltb3MgYSAxLWJhc2VkIHBhcmEgY29uc2lzdGVuY2lhIGNvbiBlbCByZXN0b1xuICAgIGNvbnN0IHBhZ2UgPSBOdW1iZXIuaXNGaW5pdGUocmF3UGFnZSkgJiYgcmF3UGFnZSA+PSAwID8gTWF0aC5mbG9vcihyYXdQYWdlKSArIDEgOiAxXG4gICAgY29uc3QgbGFzdFBhZ2UgPSBub3JtYWxpemVQb3NpdGl2ZUludChwYXlsb2FkPy50YXNrRmFtaWx5Py5sYXN0UGFnZSwgcGFnZSlcbiAgICBzZXRDdXJyZW50UGFnZShwYWdlKVxuICAgIHNldEhhc01vcmUocGFnZSA8IGxhc3RQYWdlKVxuICB9LCBbXSlcblxuICBjb25zdCBzeW5jUHJvamVjdEZhbGxiYWNrUGFnaW5hdGlvbiA9IHVzZUNhbGxiYWNrKChwYXlsb2FkPzogUHJvamVjdHNGYWxsYmFja0RhdGEgfCBudWxsKSA9PiB7XG4gICAgY29uc3QgcGFnZSA9IG5vcm1hbGl6ZVBvc2l0aXZlSW50KHBheWxvYWQ/LnByb2plY3RzPy5wYWdlLCAxKVxuICAgIGNvbnN0IGxhc3RQYWdlID0gbm9ybWFsaXplUG9zaXRpdmVJbnQocGF5bG9hZD8ucHJvamVjdHM/Lmxhc3RQYWdlLCBwYWdlKVxuICAgIHNldEN1cnJlbnRQYWdlKHBhZ2UpXG4gICAgc2V0SGFzTW9yZShwYWdlIDwgbGFzdFBhZ2UpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IFtmZXRjaFRhc2tGYW1pbHlGYWxsYmFja10gPSB1c2VMYXp5UXVlcnk8VGFza0ZhbWlseURhdGE+KFRBU0tfRkFNSUxZX0ZBTExCQUNLLCB7XG4gICAgZmV0Y2hQb2xpY3k6ICduZXR3b3JrLW9ubHknLFxuICB9KVxuXG4gIGNvbnN0IFtmZXRjaFByb2plY3RzRmFsbGJhY2tdID0gdXNlTGF6eVF1ZXJ5PFByb2plY3RzRmFsbGJhY2tEYXRhPihQUk9KRUNUU19GQUxMQkFDSywge1xuICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgfSlcblxuICBjb25zdCBmZXRjaFJlY2VudCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQgKz0gMVxuICAgIGNvbnN0IGdlbmVyYXRpb24gPSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnRcblxuICAgIGlmICh0eXBlID09PSAnbWNwJykge1xuICAgICAgY29uc3Qgc2x1Z3MgPSBzdGFibGVTY29wZS5tY3BTbHVncyA/PyBbXVxuICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIHNldEVycm9yKGZhbHNlKVxuICAgICAgc2V0SXRlbXMobWFwTWNwU2x1Z3NUb0l0ZW1zKHNsdWdzLCAnJykpXG4gICAgICBzZXRIaWRlUmVjZW50c0xhYmVsKGZhbHNlKVxuICAgICAgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZSgnbm9uZScpXG4gICAgICBzZXRIYXNNb3JlKGZhbHNlKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09ICdza2lsbCcpIHtcbiAgICAgIGlmIChzdGFibGVTY29wZS5za2lsbHMpIHtcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgICAgIHNldEl0ZW1zKG1hcFNraWxsc1RvSXRlbXMoc3RhYmxlU2NvcGUuc2tpbGxzLCAnJykpXG4gICAgICAgIHNldEhpZGVSZWNlbnRzTGFiZWwodHJ1ZSlcbiAgICAgICAgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZSgnbm9uZScpXG4gICAgICAgIHNldEhhc01vcmUoZmFsc2UpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgc2V0TG9hZGluZyh0cnVlKVxuICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7IHBhdGg6ICdza2lsbHM/b2Zmc2V0PTAnLCBtZXRob2Q6ICdHRVQnIH0pXG4gICAgICAgIGNvbnN0IGRhdGE6IFNraWxsc0FwaVJlc3BvbnNlID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgICAgIGlmIChnZW5lcmF0aW9uICE9PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgICBjb25zdCBza2lsbHM6IFNraWxsW10gPSBkYXRhLmRhdGEgPz8gW11cbiAgICAgICAgY29uc3QgY2FuUGFnaW5hdGUgPSAhIWRhdGEuaGFzX21vcmUgJiYgZGF0YS5uZXh0X29mZnNldCAhPSBudWxsXG4gICAgICAgIHNldEl0ZW1zKG1hcFNraWxsc1RvSXRlbXMoc2tpbGxzLCAnJykpXG4gICAgICAgIHNldEhpZGVSZWNlbnRzTGFiZWwodHJ1ZSlcbiAgICAgICAgc2V0SGFzTW9yZShjYW5QYWdpbmF0ZSlcbiAgICAgICAgc2V0Q3VycmVudFBhZ2UoZGF0YS5uZXh0X29mZnNldCA/PyAwKVxuICAgICAgICBzZXRBY3RpdmVQYWdpbmF0aW9uU291cmNlKGNhblBhZ2luYXRlID8gJ3NraWxscycgOiAnbm9uZScpXG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgaWYgKGdlbmVyYXRpb24gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIHNldEVycm9yKHRydWUpXG4gICAgICAgIHNldEl0ZW1zKFtdKVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaWYgKGdlbmVyYXRpb24gPT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIH1cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICBzZXRFcnJvcihmYWxzZSlcbiAgICB0cnkge1xuICAgICAgaWYgKHR5cGUgPT09ICdjbGllbnQnKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBnZXRSZWNlbnRDbGllbnRzKClcbiAgICAgICAgaWYgKGdlbmVyYXRpb24gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIGNvbnN0IG1hcHBlZCA9IChkYXRhID8/IFtdKS5tYXAoYyA9PiBtYXBDbGllbnRUb0l0ZW0oYywgJycpKVxuICAgICAgICBpZiAoZ2VuZXJhdGlvbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgc2V0SXRlbXMobWFwcGVkKVxuICAgICAgICBzZXRIaWRlUmVjZW50c0xhYmVsKGZhbHNlKVxuICAgICAgICBzZXRBY3RpdmVQYWdpbmF0aW9uU291cmNlKCdub25lJylcbiAgICAgICAgc2V0SGFzTW9yZShmYWxzZSlcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3Byb2plY3QnKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBnZXRSZWNlbnRQcm9qZWN0cyhzdGFibGVTY29wZS5jbGllbnRJZCA/IHsgY2xpZW50SWQ6IHN0YWJsZVNjb3BlLmNsaWVudElkIH0gOiB1bmRlZmluZWQpXG4gICAgICAgIGlmIChnZW5lcmF0aW9uICE9PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgICBsZXQgbWFwcGVkID0gKEFycmF5LmlzQXJyYXkoZGF0YSkgPyBkYXRhIDogW10pLm1hcChwID0+XG4gICAgICAgICAgbWFwU2VhcmNoVG9JdGVtKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogcC5pZCxcbiAgICAgICAgICAgICAgdGl0bGU6IHAudGl0bGUsXG4gICAgICAgICAgICAgIHR5cGU6ICdwcm9qZWN0JyxcbiAgICAgICAgICAgICAgY2xpZW50SWQ6IHAuY2xpZW50SWQsXG4gICAgICAgICAgICAgIGZlZUlkOiBwLmZlZUlkLFxuICAgICAgICAgICAgICBjbGllbnROYW1lOiBwLmNsaWVudE5hbWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgJ3Byb2plY3QnLFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICAgaWYgKG1hcHBlZC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBjb25zdCBhcmd1bWVudHNGaWx0ZXIgPVxuICAgICAgICAgICAgc3RhYmxlU2NvcGUuY2xpZW50SWQgIT09IG51bGwgJiYgc3RhYmxlU2NvcGUuY2xpZW50SWQgIT09IHVuZGVmaW5lZCAmJiBzdGFibGVTY29wZS5jbGllbnRJZCAhPT0gJydcbiAgICAgICAgICAgICAgPyB7IGNsaWVudF9pZDogW1N0cmluZyhzdGFibGVTY29wZS5jbGllbnRJZCldIH1cbiAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICBjb25zdCB7IGRhdGE6IGZhbGxiYWNrRGF0YSB9ID0gYXdhaXQgZmV0Y2hQcm9qZWN0c0ZhbGxiYWNrKHtcbiAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAuLi4oYXJndW1lbnRzRmlsdGVyID8geyBhcmd1bWVudHM6IGFyZ3VtZW50c0ZpbHRlciB9IDoge30pLFxuICAgICAgICAgICAgICBwYWdlOiAxLFxuICAgICAgICAgICAgICBwZXJQYWdlOiAyMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgICBpZiAoZ2VuZXJhdGlvbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgICBjb25zdCBmYWxsYmFja01hcHBlZCA9IChmYWxsYmFja0RhdGE/LnByb2plY3RzPy5kYXRhID8/IFtdKVxuICAgICAgICAgICAgLm1hcChub3JtYWxpemVQcm9qZWN0c0ZhbGxiYWNrUmVjb3JkKVxuICAgICAgICAgICAgLmZpbHRlcigoaXRlbSk6IGl0ZW0gaXMgUmF3U2VhcmNoUmVzdWx0ID0+IGl0ZW0gIT09IG51bGwpXG4gICAgICAgICAgICAubWFwKGl0ZW0gPT4gbWFwU2VhcmNoVG9JdGVtKGl0ZW0sICdwcm9qZWN0JywgJycpKVxuICAgICAgICAgIG1hcHBlZCA9IGZhbGxiYWNrTWFwcGVkXG4gICAgICAgICAgc2V0SGlkZVJlY2VudHNMYWJlbChmYWxsYmFja01hcHBlZC5sZW5ndGggPiAwKVxuICAgICAgICAgIHNldEFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UoJ3Byb2plY3QtZmFsbGJhY2snKVxuICAgICAgICAgIHN5bmNQcm9qZWN0RmFsbGJhY2tQYWdpbmF0aW9uKGZhbGxiYWNrRGF0YSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRIaWRlUmVjZW50c0xhYmVsKGZhbHNlKVxuICAgICAgICAgIHNldEFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UoJ25vbmUnKVxuICAgICAgICAgIHNldEhhc01vcmUoZmFsc2UpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGdlbmVyYXRpb24gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIHNldEl0ZW1zKG1hcHBlZClcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3Rhc2snKSB7XG4gICAgICAgIGxldCByZWNlbnRUYXNrRmlsdGVyczogeyBwcm9qZWN0SWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsOyBjbGllbnRJZD86IHN0cmluZyB8IG51bWJlciB8IG51bGwgfSB8IHVuZGVmaW5lZFxuICAgICAgICBpZiAoc3RhYmxlU2NvcGUuYWdlbnRFbnRpdHkgPT09ICdwcm9qZWN0Jykge1xuICAgICAgICAgIHJlY2VudFRhc2tGaWx0ZXJzID0geyBwcm9qZWN0SWQ6IHN0YWJsZVNjb3BlLnByb2plY3RJZCB9XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhYmxlU2NvcGUuYWdlbnRFbnRpdHkgPT09ICdjbGllbnQnKSB7XG4gICAgICAgICAgcmVjZW50VGFza0ZpbHRlcnMgPSB7IGNsaWVudElkOiBzdGFibGVTY29wZS5jbGllbnRJZCB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGdldFJlY2VudFRhc2tzKHJlY2VudFRhc2tGaWx0ZXJzKVxuICAgICAgICBpZiAoZ2VuZXJhdGlvbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgbGV0IHRhc2tJdGVtcyA9IChkYXRhID8/IFtdKS5tYXAodGFzayA9PiBtYXBSZWNlbnRUYXNrVG9JdGVtKHRhc2ssICcnLCBzaG93UHJvamVjdE5hbWVJblRhc2tSb3cpKVxuICAgICAgICBpZiAodGFza0l0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGNvbnN0IGZpbHRlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge31cbiAgICAgICAgICBpZiAoc3RhYmxlU2NvcGUucHJvamVjdElkICE9PSBudWxsICYmIHN0YWJsZVNjb3BlLnByb2plY3RJZCAhPT0gdW5kZWZpbmVkICYmIHN0YWJsZVNjb3BlLnByb2plY3RJZCAhPT0gJycpIHtcbiAgICAgICAgICAgIGZpbHRlci5wcm9qZWN0SWRzID0gW1N0cmluZyhzdGFibGVTY29wZS5wcm9qZWN0SWQpXVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc3RhYmxlU2NvcGUuY2xpZW50SWQgIT09IG51bGwgJiYgc3RhYmxlU2NvcGUuY2xpZW50SWQgIT09IHVuZGVmaW5lZCAmJiBzdGFibGVTY29wZS5jbGllbnRJZCAhPT0gJycpIHtcbiAgICAgICAgICAgIGZpbHRlci5jbGllbnRJZHMgPSBbU3RyaW5nKHN0YWJsZVNjb3BlLmNsaWVudElkKV1cbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgeyBkYXRhOiBmYWxsYmFja0RhdGEgfSA9IGF3YWl0IGZldGNoVGFza0ZhbWlseUZhbGxiYWNrKHtcbiAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICBmaWx0ZXI6IHsgYXJjaGl2ZWQ6IGZhbHNlLCAuLi5maWx0ZXIgfSxcbiAgICAgICAgICAgICAgcGFnaW5hdGlvbjogeyBvZmZzZXQ6IDAsIHNpemU6IDIwIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICAgaWYgKGdlbmVyYXRpb24gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgICAgdGFza0l0ZW1zID0gKGZhbGxiYWNrRGF0YT8udGFza0ZhbWlseT8uZGF0YSA/PyBbXSlcbiAgICAgICAgICAgIC5tYXAobm9ybWFsaXplVGFza0ZhbWlseVJlY29yZClcbiAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pOiBpdGVtIGlzIFJlY2VudFRhc2tJdGVtID0+IGl0ZW0gIT09IG51bGwpXG4gICAgICAgICAgICAubWFwKHRhc2sgPT4gbWFwUmVjZW50VGFza1RvSXRlbSh0YXNrLCAnJywgc2hvd1Byb2plY3ROYW1lSW5UYXNrUm93KSlcbiAgICAgICAgICBzZXRIaWRlUmVjZW50c0xhYmVsKHRhc2tJdGVtcy5sZW5ndGggPiAwKVxuICAgICAgICAgIHNldEFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UoJ3Rhc2stZmFsbGJhY2snKVxuICAgICAgICAgIHN5bmNUYXNrRmFsbGJhY2tQYWdpbmF0aW9uKGZhbGxiYWNrRGF0YSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRIaWRlUmVjZW50c0xhYmVsKGZhbHNlKVxuICAgICAgICAgIHNldEFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UoJ25vbmUnKVxuICAgICAgICAgIHNldEhhc01vcmUoZmFsc2UpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGdlbmVyYXRpb24gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIHNldEl0ZW1zKHRhc2tJdGVtcylcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3VzZXInKSB7XG4gICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgZmV0Y2hVc2Vyc0RpcmVjdG9yeSh7XG4gICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICBmaWx0ZXJzOiBidWlsZFVzZXJzRGlyZWN0b3J5RmlsdGVycygnJyksXG4gICAgICAgICAgICBwYWdlOiAxLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgIGlmIChnZW5lcmF0aW9uICE9PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgICBjb25zdCBtYXBwZWQgPSAoZGF0YT8udXNlcnM/LmRhdGEgPz8gW10pLm1hcCh1ID0+IG1hcFVzZXJUb0l0ZW0odSwgJycpKVxuICAgICAgICBpZiAoZ2VuZXJhdGlvbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgY29uc3QgbWVJdGVtID0gbWFwQ29yVXNlclRvVXNlckl0ZW0oY29yVXNlciwgJycsIHQoJ2NvbnRleHRNZW50aW9uLm1lJykpXG4gICAgICAgIGNvbnN0IHdpdGhvdXRNZSA9IG1hcHBlZC5maWx0ZXIoaXRlbSA9PiBTdHJpbmcoaXRlbS5pZCkgIT09IFN0cmluZyhtZUl0ZW0uaWQpKVxuICAgICAgICBzZXRJdGVtcyhbbWVJdGVtLCAuLi53aXRob3V0TWVdKVxuICAgICAgICBzeW5jVXNlcnNQYWdpbmF0aW9uKGRhdGEpXG4gICAgICAgIHNldEhpZGVSZWNlbnRzTGFiZWwoZmFsc2UpXG4gICAgICAgIHNldEFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UoJ3VzZXJzJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChnZW5lcmF0aW9uICE9PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgICBzZXRJdGVtcyhbXSlcbiAgICAgICAgc2V0SGlkZVJlY2VudHNMYWJlbChmYWxzZSlcbiAgICAgICAgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZSgnbm9uZScpXG4gICAgICAgIHNldEhhc01vcmUoZmFsc2UpXG4gICAgICAgIHNldEN1cnJlbnRQYWdlKDEpXG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICBpZiAoZ2VuZXJhdGlvbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgIHNldEVycm9yKHRydWUpXG4gICAgICBzZXRJdGVtcyhbXSlcbiAgICAgIHNldEhpZGVSZWNlbnRzTGFiZWwoZmFsc2UpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChnZW5lcmF0aW9uID09PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtcbiAgICB0eXBlLFxuICAgIHN0YWJsZVNjb3BlLFxuICAgIGZldGNoVXNlcnNEaXJlY3RvcnksXG4gICAgZmV0Y2hUYXNrRmFtaWx5RmFsbGJhY2ssXG4gICAgZmV0Y2hQcm9qZWN0c0ZhbGxiYWNrLFxuICAgIHN5bmNVc2Vyc1BhZ2luYXRpb24sXG4gICAgc3luY1Rhc2tGYWxsYmFja1BhZ2luYXRpb24sXG4gICAgc3luY1Byb2plY3RGYWxsYmFja1BhZ2luYXRpb24sXG4gICAgc2hvd1Byb2plY3ROYW1lSW5UYXNrUm93LFxuICAgIGNvclVzZXIsXG4gICAgdCxcbiAgXSlcblxuICAvLyBEaXNwYXJhciBzZWFyY2ggYWwgY2FtYmlhciBkZWJvdW5jZWQgdmFsdWVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBxID0gZGVib3VuY2VkU2VhcmNoVmFsdWUudHJpbSgpXG5cbiAgICBpZiAodHlwZSA9PT0gJ21jcCcpIHtcbiAgICAgIGNvbnN0IHNsdWdzID0gc3RhYmxlU2NvcGUubWNwU2x1Z3MgPz8gW11cbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICAgIHNldEl0ZW1zKG1hcE1jcFNsdWdzVG9JdGVtcyhzbHVncywgcSkpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ3NraWxsJykge1xuICAgICAgaWYgKHN0YWJsZVNjb3BlLnNraWxscykge1xuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICAgICAgc2V0SXRlbXMobWFwU2tpbGxzVG9JdGVtcyhzdGFibGVTY29wZS5za2lsbHMsIHEpKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmICghcSkgcmV0dXJuXG4gICAgICByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQgKz0gMVxuICAgICAgY29uc3Qgc2VhcmNoR2VuID0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50XG4gICAgICBzZXRMb2FkaW5nKHRydWUpXG4gICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICAgIGZldGNoTWFpYSh7XG4gICAgICAgIHBhdGg6IGBza2lsbHM/b2Zmc2V0PTAmcT0ke2VuY29kZVVSSUNvbXBvbmVudChxKX1gLFxuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgfSlcbiAgICAgICAgLnRoZW4ociA9PiByLmpzb24oKSBhcyBQcm9taXNlPFNraWxsc0FwaVJlc3BvbnNlPilcbiAgICAgICAgLnRoZW4oZGF0YSA9PiB7XG4gICAgICAgICAgaWYgKHNlYXJjaEdlbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgICBjb25zdCBjYW5QYWdpbmF0ZSA9ICEhZGF0YS5oYXNfbW9yZSAmJiBkYXRhLm5leHRfb2Zmc2V0ICE9IG51bGxcbiAgICAgICAgICBzZXRJdGVtcyhtYXBTa2lsbHNUb0l0ZW1zKGRhdGEuZGF0YSA/PyBbXSwgcSkpXG4gICAgICAgICAgc2V0SGFzTW9yZShjYW5QYWdpbmF0ZSlcbiAgICAgICAgICBzZXRDdXJyZW50UGFnZShkYXRhLm5leHRfb2Zmc2V0ID8/IDApXG4gICAgICAgICAgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZShjYW5QYWdpbmF0ZSA/ICdza2lsbHMnIDogJ25vbmUnKVxuICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHNlYXJjaEdlbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgICBzZXRFcnJvcih0cnVlKVxuICAgICAgICAgIHNldEl0ZW1zKFtdKVxuICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICAgIH0pXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIXEpIHJldHVyblxuXG4gICAgaWYgKHR5cGUgPT09ICdjbGllbnQnKSB7XG4gICAgICBmZXRjaFNlYXJjaENsaWVudHMoe1xuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICBmaWx0ZXI6IHsgbmFtZTogcSB9LFxuICAgICAgICAgIHBhZ2U6IDEsXG4gICAgICAgICAgcGVyUGFnZTogMjAsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZSgnY2xpZW50cy1zZWFyY2gnKVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3VzZXInKSB7XG4gICAgICBmZXRjaFVzZXJzRGlyZWN0b3J5KHtcbiAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgZmlsdGVyczogYnVpbGRVc2Vyc0RpcmVjdG9yeUZpbHRlcnMocSksXG4gICAgICAgICAgcGFnZTogMSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICBzZXRBY3RpdmVQYWdpbmF0aW9uU291cmNlKCd1c2VycycpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZpbHRlcnMgPSBidWlsZEZpbHRlcnNGb3JUeXBlKHR5cGUpXG4gICAgICBjb25zdCBleHRyYSA9IGJ1aWxkU2VhcmNoRW50aXRpZXNFeHRyYSh0eXBlLCBzdGFibGVTY29wZSlcbiAgICAgIGZldGNoU2VhcmNoRW50aXRpZXMoe1xuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICBxLFxuICAgICAgICAgIGZpbHRlcnMsXG4gICAgICAgICAgLi4uKGV4dHJhICE9PSB1bmRlZmluZWQgPyB7IGV4dHJhIH0gOiB7fSksXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZSgnbm9uZScpXG4gICAgICBzZXRIYXNNb3JlKGZhbHNlKVxuICAgIH1cbiAgfSwgW2RlYm91bmNlZFNlYXJjaFZhbHVlLCB0eXBlLCBzdGFibGVTY29wZSwgZmV0Y2hTZWFyY2hFbnRpdGllcywgZmV0Y2hTZWFyY2hDbGllbnRzLCBmZXRjaFVzZXJzRGlyZWN0b3J5XSlcblxuICAvLyBTaW5jcm9uaXphciByZXN1bHRhZG9zIGRlIHNlYXJjaFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0eXBlID09PSAnbWNwJykgcmV0dXJuXG4gICAgaWYgKHR5cGUgPT09ICdza2lsbCcpIHJldHVyblxuXG4gICAgY29uc3QgcSA9IGRlYm91bmNlZFNlYXJjaFZhbHVlLnRyaW0oKVxuICAgIGlmICghcSkgcmV0dXJuXG4gICAgc2V0SGlkZVJlY2VudHNMYWJlbChmYWxzZSlcblxuICAgIGlmICh0eXBlID09PSAnY2xpZW50Jykge1xuICAgICAgc2V0TG9hZGluZyhjbGllbnRzTG9hZGluZylcbiAgICAgIGlmIChjbGllbnRzRXJyb3IpIHtcbiAgICAgICAgc2V0RXJyb3IodHJ1ZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpZiAoY2xpZW50c0RhdGE/LmNsaWVudHM/LmRhdGEpIHtcbiAgICAgICAgc2V0SXRlbXMoY2xpZW50c0RhdGEuY2xpZW50cy5kYXRhLm1hcChjID0+IG1hcENsaWVudFRvSXRlbShjLCBxKSkpXG4gICAgICAgIHN5bmNDbGllbnRzUGFnaW5hdGlvbihjbGllbnRzRGF0YSlcbiAgICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAndXNlcicpIHtcbiAgICAgIHNldExvYWRpbmcodXNlcnNMb2FkaW5nKVxuICAgICAgaWYgKHVzZXJzRXJyb3IpIHtcbiAgICAgICAgc2V0RXJyb3IodHJ1ZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpZiAodXNlcnNEYXRhPy51c2Vycz8uZGF0YSkge1xuICAgICAgICBjb25zdCBtYXBwZWQgPSB1c2Vyc0RhdGEudXNlcnMuZGF0YS5tYXAodSA9PiBtYXBVc2VyVG9JdGVtKHUsIHEpKVxuICAgICAgICBjb25zdCBtZUlkID0gU3RyaW5nKGNvclVzZXIuaWQpXG4gICAgICAgIGNvbnN0IGhhc01lSW5SZXN1bHRzID0gbWFwcGVkLnNvbWUoaXRlbSA9PiBTdHJpbmcoaXRlbS5pZCkgPT09IG1lSWQpXG4gICAgICAgIGNvbnN0IHdpdGhvdXRNZSA9IG1hcHBlZC5maWx0ZXIoaXRlbSA9PiBTdHJpbmcoaXRlbS5pZCkgIT09IG1lSWQpXG4gICAgICAgIGNvbnN0IG1lSXRlbSA9IG1hcENvclVzZXJUb1VzZXJJdGVtKGNvclVzZXIsIHEsIHQoJ2NvbnRleHRNZW50aW9uLm1lJykpXG4gICAgICAgIHNldEl0ZW1zKGhhc01lSW5SZXN1bHRzID8gW21lSXRlbSwgLi4ud2l0aG91dE1lXSA6IG1hcHBlZClcbiAgICAgICAgc3luY1VzZXJzUGFnaW5hdGlvbih1c2Vyc0RhdGEpXG4gICAgICAgIHNldEVycm9yKGZhbHNlKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRMb2FkaW5nKHNlYXJjaExvYWRpbmcpXG4gICAgICBpZiAoc2VhcmNoRXJyb3IpIHtcbiAgICAgICAgc2V0RXJyb3IodHJ1ZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpZiAoc2VhcmNoRGF0YT8uc2VhcmNoKSB7XG4gICAgICAgIHNldEl0ZW1zKHNlYXJjaERhdGEuc2VhcmNoLm1hcChyID0+IG1hcFNlYXJjaFRvSXRlbShyLCB0eXBlLCBxLCBzaG93UHJvamVjdE5hbWVJblRhc2tSb3cpKSlcbiAgICAgICAgc2V0SGFzTW9yZShmYWxzZSlcbiAgICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgICB9XG4gICAgfVxuICB9LCBbXG4gICAgc2VhcmNoRGF0YSxcbiAgICBjbGllbnRzRGF0YSxcbiAgICB1c2Vyc0RhdGEsXG4gICAgc2VhcmNoTG9hZGluZyxcbiAgICBjbGllbnRzTG9hZGluZyxcbiAgICB1c2Vyc0xvYWRpbmcsXG4gICAgc2VhcmNoRXJyb3IsXG4gICAgY2xpZW50c0Vycm9yLFxuICAgIHVzZXJzRXJyb3IsXG4gICAgZGVib3VuY2VkU2VhcmNoVmFsdWUsXG4gICAgdHlwZSxcbiAgICBzeW5jQ2xpZW50c1BhZ2luYXRpb24sXG4gICAgc3luY1VzZXJzUGFnaW5hdGlvbixcbiAgICBzaG93UHJvamVjdE5hbWVJblRhc2tSb3csXG4gICAgY29yVXNlcixcbiAgICB0LFxuICBdKVxuXG4gIGNvbnN0IGxvYWRNb3JlID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGlmIChpc0xvYWRpbmdNb3JlIHx8ICFoYXNNb3JlIHx8IGFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UgPT09ICdub25lJykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IHNhZmVDdXJyZW50UGFnZSA9IG5vcm1hbGl6ZVBvc2l0aXZlSW50KGN1cnJlbnRQYWdlLCAxKVxuICAgIGNvbnN0IG5leHRQYWdlID0gc2FmZUN1cnJlbnRQYWdlICsgMVxuICAgIGNvbnN0IHEgPSBkZWJvdW5jZWRTZWFyY2hWYWx1ZS50cmltKClcbiAgICBjb25zdCBsb2FkTW9yZUJhc2VsaW5lR2VuID0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50XG4gICAgc2V0SXNMb2FkaW5nTW9yZSh0cnVlKVxuICAgIHRyeSB7XG4gICAgICBpZiAoYWN0aXZlUGFnaW5hdGlvblNvdXJjZSA9PT0gJ3VzZXJzJykge1xuICAgICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IGZldGNoVXNlcnNEaXJlY3Rvcnkoe1xuICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgZmlsdGVyczogYnVpbGRVc2Vyc0RpcmVjdG9yeUZpbHRlcnMocSksXG4gICAgICAgICAgICBwYWdlOiBuZXh0UGFnZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICBpZiAobG9hZE1vcmVCYXNlbGluZUdlbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgY29uc3QgbmV4dEl0ZW1zID0gKGRhdGE/LnVzZXJzPy5kYXRhID8/IFtdKS5tYXAodSA9PiBtYXBVc2VyVG9JdGVtKHUsIHEpKVxuICAgICAgICBzZXRJdGVtcyhwcmV2ID0+IHtcbiAgICAgICAgICBpZiAoIXEpIHtcbiAgICAgICAgICAgIGNvbnN0IG1lSXRlbSA9XG4gICAgICAgICAgICAgIHByZXZbMF0/LnR5cGUgPT09ICd1c2VyJyA/IHByZXZbMF0gOiBtYXBDb3JVc2VyVG9Vc2VySXRlbShjb3JVc2VyLCAnJywgdCgnY29udGV4dE1lbnRpb24ubWUnKSlcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2Lm1hcChpdGVtID0+IFN0cmluZyhpdGVtLmlkKSkpXG4gICAgICAgICAgICBjb25zdCBhcHBlbmRlZCA9IG5leHRJdGVtcy5maWx0ZXIoaXRlbSA9PiAhZXhpc3RpbmdJZHMuaGFzKFN0cmluZyhpdGVtLmlkKSkpXG4gICAgICAgICAgICBjb25zdCB3aXRob3V0TWUgPSBwcmV2LmZpbHRlcihpdGVtID0+IFN0cmluZyhpdGVtLmlkKSAhPT0gU3RyaW5nKG1lSXRlbS5pZCkpXG4gICAgICAgICAgICByZXR1cm4gW21lSXRlbSwgLi4ud2l0aG91dE1lLCAuLi5hcHBlbmRlZF1cbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0KHByZXYubWFwKGl0ZW0gPT4gYCR7aXRlbS50eXBlfS0ke2l0ZW0uaWR9YCkpXG4gICAgICAgICAgY29uc3QgYXBwZW5kZWQgPSBuZXh0SXRlbXMuZmlsdGVyKGl0ZW0gPT4gIWV4aXN0aW5nSWRzLmhhcyhgJHtpdGVtLnR5cGV9LSR7aXRlbS5pZH1gKSlcbiAgICAgICAgICByZXR1cm4gWy4uLnByZXYsIC4uLmFwcGVuZGVkXVxuICAgICAgICB9KVxuICAgICAgICBzeW5jVXNlcnNQYWdpbmF0aW9uKGRhdGEpXG4gICAgICB9IGVsc2UgaWYgKGFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UgPT09ICdjbGllbnRzLXNlYXJjaCcpIHtcbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCBmZXRjaFNlYXJjaENsaWVudHMoe1xuICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgZmlsdGVyOiB7IG5hbWU6IHEgfSxcbiAgICAgICAgICAgIHBhZ2U6IG5leHRQYWdlLFxuICAgICAgICAgICAgcGVyUGFnZTogMjAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGxvYWRNb3JlQmFzZWxpbmVHZW4gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIGNvbnN0IG5leHRJdGVtcyA9IChkYXRhPy5jbGllbnRzPy5kYXRhID8/IFtdKS5tYXAoYyA9PiBtYXBDbGllbnRUb0l0ZW0oYywgcSkpXG4gICAgICAgIHNldEl0ZW1zKHByZXYgPT4ge1xuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2Lm1hcChpdGVtID0+IGAke2l0ZW0udHlwZX0tJHtpdGVtLmlkfWApKVxuICAgICAgICAgIGNvbnN0IGFwcGVuZGVkID0gbmV4dEl0ZW1zLmZpbHRlcihpdGVtID0+ICFleGlzdGluZ0lkcy5oYXMoYCR7aXRlbS50eXBlfS0ke2l0ZW0uaWR9YCkpXG4gICAgICAgICAgcmV0dXJuIFsuLi5wcmV2LCAuLi5hcHBlbmRlZF1cbiAgICAgICAgfSlcbiAgICAgICAgc3luY0NsaWVudHNQYWdpbmF0aW9uKGRhdGEpXG4gICAgICB9IGVsc2UgaWYgKGFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UgPT09ICd0YXNrLWZhbGxiYWNrJykge1xuICAgICAgICBjb25zdCBmaWx0ZXI6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHt9XG4gICAgICAgIGlmIChzdGFibGVTY29wZS5wcm9qZWN0SWQgIT09IG51bGwgJiYgc3RhYmxlU2NvcGUucHJvamVjdElkICE9PSB1bmRlZmluZWQgJiYgc3RhYmxlU2NvcGUucHJvamVjdElkICE9PSAnJykge1xuICAgICAgICAgIGZpbHRlci5wcm9qZWN0SWRzID0gW1N0cmluZyhzdGFibGVTY29wZS5wcm9qZWN0SWQpXVxuICAgICAgICB9XG4gICAgICAgIGlmIChzdGFibGVTY29wZS5jbGllbnRJZCAhPT0gbnVsbCAmJiBzdGFibGVTY29wZS5jbGllbnRJZCAhPT0gdW5kZWZpbmVkICYmIHN0YWJsZVNjb3BlLmNsaWVudElkICE9PSAnJykge1xuICAgICAgICAgIGZpbHRlci5jbGllbnRJZHMgPSBbU3RyaW5nKHN0YWJsZVNjb3BlLmNsaWVudElkKV1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IGZldGNoVGFza0ZhbWlseUZhbGxiYWNrKHtcbiAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgIGZpbHRlcjogeyBhcmNoaXZlZDogZmFsc2UsIC4uLmZpbHRlciB9LFxuICAgICAgICAgICAgcGFnaW5hdGlvbjogeyBvZmZzZXQ6IChuZXh0UGFnZSAtIDEpICogMjAsIHNpemU6IDIwIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGxvYWRNb3JlQmFzZWxpbmVHZW4gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIGNvbnN0IG5leHRJdGVtcyA9IChkYXRhPy50YXNrRmFtaWx5Py5kYXRhID8/IFtdKVxuICAgICAgICAgIC5tYXAobm9ybWFsaXplVGFza0ZhbWlseVJlY29yZClcbiAgICAgICAgICAuZmlsdGVyKChpdGVtKTogaXRlbSBpcyBSZWNlbnRUYXNrSXRlbSA9PiBpdGVtICE9PSBudWxsKVxuICAgICAgICAgIC5tYXAodGFzayA9PiBtYXBSZWNlbnRUYXNrVG9JdGVtKHRhc2ssICcnLCBzaG93UHJvamVjdE5hbWVJblRhc2tSb3cpKVxuICAgICAgICBzZXRJdGVtcyhwcmV2ID0+IHtcbiAgICAgICAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQocHJldi5tYXAoaXRlbSA9PiBgJHtpdGVtLnR5cGV9LSR7aXRlbS5pZH1gKSlcbiAgICAgICAgICBjb25zdCBhcHBlbmRlZCA9IG5leHRJdGVtcy5maWx0ZXIoaXRlbSA9PiAhZXhpc3RpbmdJZHMuaGFzKGAke2l0ZW0udHlwZX0tJHtpdGVtLmlkfWApKVxuICAgICAgICAgIHJldHVybiBbLi4ucHJldiwgLi4uYXBwZW5kZWRdXG4gICAgICAgIH0pXG4gICAgICAgIHN5bmNUYXNrRmFsbGJhY2tQYWdpbmF0aW9uKGRhdGEpXG4gICAgICB9IGVsc2UgaWYgKGFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UgPT09ICdwcm9qZWN0LWZhbGxiYWNrJykge1xuICAgICAgICBjb25zdCBhcmd1bWVudHNGaWx0ZXIgPVxuICAgICAgICAgIHN0YWJsZVNjb3BlLmNsaWVudElkICE9PSBudWxsICYmIHN0YWJsZVNjb3BlLmNsaWVudElkICE9PSB1bmRlZmluZWQgJiYgc3RhYmxlU2NvcGUuY2xpZW50SWQgIT09ICcnXG4gICAgICAgICAgICA/IHsgY2xpZW50X2lkOiBbU3RyaW5nKHN0YWJsZVNjb3BlLmNsaWVudElkKV0gfVxuICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCBmZXRjaFByb2plY3RzRmFsbGJhY2soe1xuICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgLi4uKGFyZ3VtZW50c0ZpbHRlciA/IHsgYXJndW1lbnRzOiBhcmd1bWVudHNGaWx0ZXIgfSA6IHt9KSxcbiAgICAgICAgICAgIHBhZ2U6IG5leHRQYWdlLFxuICAgICAgICAgICAgcGVyUGFnZTogMjAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGxvYWRNb3JlQmFzZWxpbmVHZW4gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIGNvbnN0IG5leHRJdGVtcyA9IChkYXRhPy5wcm9qZWN0cz8uZGF0YSA/PyBbXSlcbiAgICAgICAgICAubWFwKG5vcm1hbGl6ZVByb2plY3RzRmFsbGJhY2tSZWNvcmQpXG4gICAgICAgICAgLmZpbHRlcigoaXRlbSk6IGl0ZW0gaXMgUmF3U2VhcmNoUmVzdWx0ID0+IGl0ZW0gIT09IG51bGwpXG4gICAgICAgICAgLm1hcChpdGVtID0+IG1hcFNlYXJjaFRvSXRlbShpdGVtLCAncHJvamVjdCcsICcnKSlcbiAgICAgICAgc2V0SXRlbXMocHJldiA9PiB7XG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0KHByZXYubWFwKGl0ZW0gPT4gYCR7aXRlbS50eXBlfS0ke2l0ZW0uaWR9YCkpXG4gICAgICAgICAgY29uc3QgYXBwZW5kZWQgPSBuZXh0SXRlbXMuZmlsdGVyKGl0ZW0gPT4gIWV4aXN0aW5nSWRzLmhhcyhgJHtpdGVtLnR5cGV9LSR7aXRlbS5pZH1gKSlcbiAgICAgICAgICByZXR1cm4gWy4uLnByZXYsIC4uLmFwcGVuZGVkXVxuICAgICAgICB9KVxuICAgICAgICBzeW5jUHJvamVjdEZhbGxiYWNrUGFnaW5hdGlvbihkYXRhKVxuICAgICAgfSBlbHNlIGlmIChhY3RpdmVQYWdpbmF0aW9uU291cmNlID09PSAnc2tpbGxzJykge1xuICAgICAgICBjb25zdCBza2lsbE9mZnNldCA9IGN1cnJlbnRQYWdlXG4gICAgICAgIGNvbnN0IHNraWxsUSA9IGRlYm91bmNlZFNlYXJjaFZhbHVlLnRyaW0oKVxuICAgICAgICBjb25zdCBza2lsbFBhdGggPSBza2lsbFFcbiAgICAgICAgICA/IGBza2lsbHM/b2Zmc2V0PSR7c2tpbGxPZmZzZXR9JnE9JHtlbmNvZGVVUklDb21wb25lbnQoc2tpbGxRKX1gXG4gICAgICAgICAgOiBgc2tpbGxzP29mZnNldD0ke3NraWxsT2Zmc2V0fWBcbiAgICAgICAgY29uc3Qgc2tpbGxSZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7IHBhdGg6IHNraWxsUGF0aCwgbWV0aG9kOiAnR0VUJyB9KVxuICAgICAgICBjb25zdCBza2lsbERhdGE6IFNraWxsc0FwaVJlc3BvbnNlID0gYXdhaXQgc2tpbGxSZXNwb25zZS5qc29uKClcbiAgICAgICAgaWYgKGxvYWRNb3JlQmFzZWxpbmVHZW4gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIGNvbnN0IGNhblBhZ2luYXRlID0gISFza2lsbERhdGEuaGFzX21vcmUgJiYgc2tpbGxEYXRhLm5leHRfb2Zmc2V0ICE9IG51bGxcbiAgICAgICAgY29uc3QgbmV4dEl0ZW1zID0gbWFwU2tpbGxzVG9JdGVtcyhza2lsbERhdGEuZGF0YSA/PyBbXSwgc2tpbGxRKVxuICAgICAgICBzZXRJdGVtcyhwcmV2ID0+IHtcbiAgICAgICAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQocHJldi5tYXAoaXRlbSA9PiBgJHtpdGVtLnR5cGV9LSR7aXRlbS5pZH1gKSlcbiAgICAgICAgICBjb25zdCBhcHBlbmRlZCA9IG5leHRJdGVtcy5maWx0ZXIoaXRlbSA9PiAhZXhpc3RpbmdJZHMuaGFzKGAke2l0ZW0udHlwZX0tJHtpdGVtLmlkfWApKVxuICAgICAgICAgIHJldHVybiBbLi4ucHJldiwgLi4uYXBwZW5kZWRdXG4gICAgICAgIH0pXG4gICAgICAgIHNldEhhc01vcmUoY2FuUGFnaW5hdGUpXG4gICAgICAgIHNldEN1cnJlbnRQYWdlKHNraWxsRGF0YS5uZXh0X29mZnNldCA/PyAwKVxuICAgICAgICBzZXRBY3RpdmVQYWdpbmF0aW9uU291cmNlKGNhblBhZ2luYXRlID8gJ3NraWxscycgOiAnbm9uZScpXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAobG9hZE1vcmVCYXNlbGluZUdlbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1t1c2VFbnRpdHlTZWFyY2hdIGxvYWRNb3JlIGZhaWxlZCcsIHtcbiAgICAgICAgc291cmNlOiBhY3RpdmVQYWdpbmF0aW9uU291cmNlLFxuICAgICAgICBuZXh0UGFnZSxcbiAgICAgICAgZXJyb3I6IGVycixcbiAgICAgIH0pXG4gICAgICAvLyBFdml0YSBsb29wIGRlIHJlaW50ZW50b3MgYXV0b23DoXRpY29zIHBvciBzY3JvbGwgY3VhbmRvIGJhY2tlbmQgZXN0w6EgY2HDrWRvIChlai4gNTAzKS5cbiAgICAgIHNldEVycm9yKHRydWUpXG4gICAgICBzZXRIYXNNb3JlKGZhbHNlKVxuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRJc0xvYWRpbmdNb3JlKGZhbHNlKVxuICAgIH1cbiAgfSwgW1xuICAgIGlzTG9hZGluZ01vcmUsXG4gICAgaGFzTW9yZSxcbiAgICBjdXJyZW50UGFnZSxcbiAgICBhY3RpdmVQYWdpbmF0aW9uU291cmNlLFxuICAgIGRlYm91bmNlZFNlYXJjaFZhbHVlLFxuICAgIGZldGNoVXNlcnNEaXJlY3RvcnksXG4gICAgZmV0Y2hTZWFyY2hDbGllbnRzLFxuICAgIGZldGNoVGFza0ZhbWlseUZhbGxiYWNrLFxuICAgIGZldGNoUHJvamVjdHNGYWxsYmFjayxcbiAgICBzdGFibGVTY29wZS5wcm9qZWN0SWQsXG4gICAgc3RhYmxlU2NvcGUuY2xpZW50SWQsXG4gICAgc2hvd1Byb2plY3ROYW1lSW5UYXNrUm93LFxuICAgIGNvclVzZXIsXG4gICAgdCxcbiAgICBzeW5jQ2xpZW50c1BhZ2luYXRpb24sXG4gICAgc3luY1VzZXJzUGFnaW5hdGlvbixcbiAgICBzeW5jVGFza0ZhbGxiYWNrUGFnaW5hdGlvbixcbiAgICBzeW5jUHJvamVjdEZhbGxiYWNrUGFnaW5hdGlvbixcbiAgXSlcblxuICAvLyBNYW50ZW5lbW9zIHVuYSByZWYgYSBsYSDDumx0aW1hIGZldGNoUmVjZW50IHBhcmEgcXVlIGVsIGVmZmVjdCBkZSByZWNlbnRzIG5vIHNlXG4gIC8vIHJlLWRpc3BhcmUgc29sbyBwb3JxdWUgY2FtYmnDsyBsYSBpZGVudGlkYWQgZGUgZmV0Y2hSZWNlbnQgKHNjb3BlL2NvclVzZXIvdCkuXG4gIGNvbnN0IGZldGNoUmVjZW50UmVmID0gdXNlUmVmKGZldGNoUmVjZW50KVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZldGNoUmVjZW50UmVmLmN1cnJlbnQgPSBmZXRjaFJlY2VudFxuICB9LCBbZmV0Y2hSZWNlbnRdKVxuXG4gIC8vIFRyaWdnZXIgZGUgcmVjZW50czogbG9zIHJlY2VudHMgZGUgdXNlciBOTyBkZXBlbmRlbiBkZWwgc2NvcGUsIGFzw60gcXVlIGNhbWJpYXJcbiAgLy8gZGUgcHJveWVjdG8vY2xpZW50ZSBubyBkZWJlIHJlLWZldGNoZWFybG9zLiBMb3MgdGlwb3Mgc2NvcGVhZG9zIChwcm9qZWN0L3Rhc2spIHPDrS5cbiAgY29uc3QgcmVjZW50c1RyaWdnZXIgPVxuICAgIHR5cGUgPT09ICd1c2VyJyB8fCB0eXBlID09PSAnc2tpbGwnXG4gICAgICA/IHR5cGVcbiAgICAgIDogYCR7dHlwZX18JHtzdGFibGVTY29wZS5wcm9qZWN0SWQgPz8gJyd9fCR7c3RhYmxlU2NvcGUuY2xpZW50SWQgPz8gJyd9fCR7c3RhYmxlU2NvcGUuYWdlbnRFbnRpdHkgPz8gJyd9fCR7bWNwU2x1Z3NLZXl9YFxuXG4gIC8vIEN1YW5kbyBzZSBsaW1waWEgZWwgc2VhcmNoLCB2b2x2ZXIgYSByZWNlbnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFkZWJvdW5jZWRTZWFyY2hWYWx1ZS50cmltKCkpIHtcbiAgICAgIGZldGNoUmVjZW50UmVmLmN1cnJlbnQoKVxuICAgIH1cbiAgfSwgW2RlYm91bmNlZFNlYXJjaFZhbHVlLCByZWNlbnRzVHJpZ2dlcl0pXG5cbiAgcmV0dXJuIHtcbiAgICBpdGVtcyxcbiAgICBsb2FkaW5nLFxuICAgIGVycm9yLFxuICAgIGhpZGVSZWNlbnRzTGFiZWwsXG4gICAgaGFzTW9yZSxcbiAgICBpc0xvYWRpbmdNb3JlLFxuICAgIGxvYWRNb3JlLFxuICAgIHNlYXJjaFZhbHVlLFxuICAgIHVwZGF0ZVNlYXJjaFZhbHVlOiBzZXRTZWFyY2hWYWx1ZSxcbiAgICBmZXRjaFJlY2VudCxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLFNBQVNBLFlBQVksUUFBUSxnQkFBZ0I7QUFDN0MsU0FBU0MsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUN6RSxTQUFTQyxnQkFBZ0IsUUFBUSxpREFBaUQ7QUFDbEYsU0FBU0MsaUJBQWlCLFFBQVEsbURBQW1EO0FBQ3JGLFNBQVNDLGNBQWMsUUFBUSw2Q0FBNkM7QUFFNUUsU0FBU0MsT0FBTyxRQUFRLHFCQUFxQjtBQUM3QyxTQUFTQyxpQkFBaUIsRUFBRUMsZUFBZSxFQUFFQyxvQkFBb0IsUUFBUSxxQ0FBcUM7QUFDOUcsU0FBU0MsY0FBYyxRQUFRLHFDQUFxQztBQUNwRSxTQUFTQyxlQUFlLFFBQVEsdUNBQXVDO0FBQ3ZFLFNBQVNDLHdCQUF3QixRQUFRLHFCQUFxQjtBQUM5RCxTQUFTQyxXQUFXLFFBQVEsZUFBZTtBQUMzQyxTQUFTQyxJQUFJLFFBQVEsUUFBUTtBQUk3QixTQUFTQyxTQUFTLFFBQVEseUJBQXlCO0FBc0ZuRCxJQUFNQyxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFJQyxLQUFjLEVBQUVDLFFBQWdCLEVBQWE7RUFDekUsSUFBTUMsTUFBTSxHQUFHQyxNQUFNLENBQUNILEtBQUssQ0FBQztFQUM1QixJQUFJLENBQUNHLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDRixNQUFNLENBQUMsRUFBRSxPQUFPRCxRQUFRO0VBQzdDLElBQU1JLFVBQVUsR0FBR0MsSUFBSSxDQUFDQyxLQUFLLENBQUNMLE1BQU0sQ0FBQztFQUNyQyxPQUFPRyxVQUFVLEdBQUcsQ0FBQyxHQUFHQSxVQUFVLEdBQUdKLFFBQVE7QUFDL0Ms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
|
|
1271
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXp5UXVlcnkiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImdldFJlY2VudENsaWVudHMiLCJnZXRSZWNlbnRQcm9qZWN0cyIsImdldFJlY2VudFRhc2tzIiwidXNlVXNlciIsIlBST0pFQ1RTX0ZBTExCQUNLIiwiU0VBUkNIX0VOVElUSUVTIiwiVEFTS19GQU1JTFlfRkFMTEJBQ0siLCJTRUFSQ0hfQ0xJRU5UUyIsIlVTRVJTX0RJUkVDVE9SWSIsIlNFQVJDSF9RVUVSWV9ERUJPVU5DRV9NUyIsInVzZURlYm91bmNlIiwidXNlVCIsImZldGNoTWFpYSIsIm5vcm1hbGl6ZVBvc2l0aXZlSW50IiwidmFsdWUiLCJmYWxsYmFjayIsInBhcnNlZCIsIk51bWJlciIsImlzRmluaXRlIiwibm9ybWFsaXplZCIsIk1hdGgiLCJmbG9vciIsIkJBU0VfRklMVEVSU19CWV9UWVBFIiwicHJvamVjdCIsImFyY2hpdmVkIiwidGFzayIsImJ1aWxkVGFza1NlYXJjaEV4dHJhRW50cmllcyIsInNjb3BlIiwicmF3Q2xpZW50IiwiY2xpZW50SWQiLCJ1bmRlZmluZWQiLCJTdHJpbmciLCJyYXdQcm9qZWN0IiwicHJvamVjdElkIiwiYWdlbnRFbnRpdHkiLCJlbnRyaWVzIiwicHVzaENsaWVudCIsInB1c2giLCJwdXNoUHJvamVjdCIsImJ1aWxkVGFza1NlYXJjaEV4dHJhIiwibGVuZ3RoIiwiSlNPTiIsInN0cmluZ2lmeSIsImJ1aWxkUHJvamVjdFNlYXJjaEV4dHJhIiwiYnVpbGRTZWFyY2hFbnRpdGllc0V4dHJhIiwidHlwZSIsImJ1aWxkRmlsdGVyc0ZvclR5cGUiLCJidWlsZFVzZXJzRGlyZWN0b3J5RmlsdGVycyIsInEiLCJiYXNlIiwid2l0aFBvc2l0aW9uIiwid2l0aFRlYW1zIiwidHJpbW1lZFEiLCJ0cmltIiwic2VhcmNoSW5wdXQiLCJoaWdobGlnaHRSYW5nZSIsInRleHQiLCJzZWFyY2hWYWx1ZSIsImlkeCIsInRvTG93ZXJDYXNlIiwiaW5kZXhPZiIsInN0YXJ0IiwiZmlyc3REZWZpbmVkIiwiX2xlbiIsImFyZ3VtZW50cyIsInZhbHVlcyIsIkFycmF5IiwiX2tleSIsImZpbmQiLCJub3JtYWxpemVUcmltbWVkU3RyaW5nIiwiZ2V0VXNlclBvc2l0aW9uTmFtZSIsInVzZXJQb3NpdGlvbiIsIl90eXBlb2YiLCJuYW1lIiwibWFwQ2xpZW50VG9JdGVtIiwiYyIsIl9jJHRvdGFsUHJveWVjdG9zIiwiX2MkdG90YWxQcm95ZWN0b3MyIiwiaWQiLCJwcmltYXJ5IiwicHJpbWFyeUhpZ2hsaWdodCIsImJyZWFkY3J1bWIiLCJjb3VudCIsInRvdGFsUHJveWVjdG9zIiwiY291bnRMYWJlbCIsInJhdyIsIm1hcFVzZXJUb0l0ZW0iLCJ1IiwiX3UkZmlyc3ROYW1lIiwiX3UkbGFzdE5hbWUiLCJfdSRwaWN0dXJlIiwiX3UkdXNlclBvc2l0aW9uJG5hbWUiLCJfdSR1c2VyUG9zaXRpb24iLCJfdSRlbWFpbCIsImZ1bGxOYW1lIiwiY29uY2F0IiwiZmlyc3ROYW1lIiwibGFzdE5hbWUiLCJlbWFpbCIsInBpY3R1cmUiLCJwb3NpdGlvbk5hbWUiLCJtYXBDb3JVc2VyVG9Vc2VySXRlbSIsInVzZXIiLCJtZUxhYmVsIiwiX3VzZXIkZmlyc3ROYW1lIiwiX3VzZXIkbGFzdE5hbWUiLCJwb3NpdGlvbkxpbmUiLCJ1c2VyX3Bvc2l0aW9uIiwibWFwUmVjZW50VGFza1RvSXRlbSIsIl90YXNrJHByb2plY3ROYW1lIiwic2hvd1Byb2plY3ROYW1lSW5UYXNrUm93IiwidGl0bGUiLCJwcm9qZWN0TmFtZSIsInBhcmVudCIsIm5vcm1hbGl6ZVRhc2tGYW1pbHlSZWNvcmQiLCJyZWNvcmQiLCJfcmVjb3JkJHRpdGxlIiwiX2ZpcnN0RGVmaW5lZCIsIl9yZWNvcmQkcHJvamVjdCIsIl9yZWNvcmQkZmF0aGVyIiwiX3JlY29yZCRmYXRoZXIyIiwidGFza0ZhbWlseUlkIiwiX2lkIiwiZmF0aGVyIiwiaGFzRmF0aGVyIiwidGFza0ZhdGhlciIsIm5vcm1hbGl6ZVByb2plY3RzRmFsbGJhY2tSZWNvcmQiLCJfcmVjb3JkJG5hbWUiLCJfZmlyc3REZWZpbmVkMiIsIl9yZWNvcmQkY2xpZW50IiwiX3JlY29yZCRjbGllbnQkbmFtZSIsIl9yZWNvcmQkY2xpZW50MiIsImNsaWVudCIsImNsaWVudE5hbWUiLCJtYXBTZWFyY2hUb0l0ZW0iLCJyIiwiX3IkcHJvamVjdE5hbWUiLCJfciRwcm9qZWN0TmFtZTIiLCJfciRjbGllbnRJZCIsIl9yJGNsaWVudE5hbWUiLCJfciRmZWVJZCIsIl9mYXRoZXIkdGl0bGUiLCJ0YXNrUHJvamVjdE5hbWUiLCJmZWVJZCIsImZhdGhlcklkIiwiZmF0aGVyVGl0bGUiLCJmb3JtYXRNY3BQcmltYXJ5TGFiZWwiLCJzbHVnIiwicmVwbGFjZSIsImNoYXIiLCJ0b1VwcGVyQ2FzZSIsIm1hcFNraWxsc1RvSXRlbXMiLCJza2lsbHMiLCJmaWx0ZXJlZCIsImZpbHRlciIsInMiLCJpbmNsdWRlcyIsIm1hcCIsInNraWxsIiwibWFwTWNwU2x1Z3NUb0l0ZW1zIiwic2x1Z3MiLCJ1c2VFbnRpdHlTZWFyY2giLCJfc2NvcGUkbWNwU2x1Z3MiLCJfc2NvcGUkc2tpbGxzIiwiX3N0YWJsZVNjb3BlJHByb2plY3RJIiwiX3N0YWJsZVNjb3BlJGNsaWVudElkIiwiX3N0YWJsZVNjb3BlJGFnZW50RW50IiwiY29yVXNlciIsIl91c2VUIiwidCIsInJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZXRTZWFyY2hWYWx1ZSIsImRlYm91bmNlZFNlYXJjaFZhbHVlIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJpdGVtcyIsInNldEl0ZW1zIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiZXJyb3IiLCJzZXRFcnJvciIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwiaGlkZVJlY2VudHNMYWJlbCIsInNldEhpZGVSZWNlbnRzTGFiZWwiLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJoYXNNb3JlIiwic2V0SGFzTW9yZSIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJpc0xvYWRpbmdNb3JlIiwic2V0SXNMb2FkaW5nTW9yZSIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJjdXJyZW50UGFnZSIsInNldEN1cnJlbnRQYWdlIiwiX3VzZVN0YXRlMTUiLCJfdXNlU3RhdGUxNiIsImFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UiLCJzZXRBY3RpdmVQYWdpbmF0aW9uU291cmNlIiwibWNwU2x1Z3NLZXkiLCJtY3BTbHVncyIsImpvaW4iLCJza2lsbHNLZXkiLCJzdGFibGVTY29wZSIsIl9zY29wZSRjbGllbnRJZCIsIl9zY29wZSRwcm9qZWN0SWQiLCJfc2NvcGUkbWNwU2x1Z3MyIiwiX3Njb3BlJGFnZW50RW50aXR5IiwiX3VzZUxhenlRdWVyeSIsInZhcmlhYmxlcyIsImxpbWl0IiwiZmV0Y2hQb2xpY3kiLCJfdXNlTGF6eVF1ZXJ5MiIsImZldGNoU2VhcmNoRW50aXRpZXMiLCJfdXNlTGF6eVF1ZXJ5MiQiLCJzZWFyY2hEYXRhIiwiZGF0YSIsInNlYXJjaExvYWRpbmciLCJzZWFyY2hFcnJvciIsIl91c2VMYXp5UXVlcnkzIiwiX3VzZUxhenlRdWVyeTQiLCJmZXRjaFNlYXJjaENsaWVudHMiLCJfdXNlTGF6eVF1ZXJ5NCQiLCJjbGllbnRzRGF0YSIsImNsaWVudHNMb2FkaW5nIiwiY2xpZW50c0Vycm9yIiwiX3VzZUxhenlRdWVyeTUiLCJfdXNlTGF6eVF1ZXJ5NiIsImZldGNoVXNlcnNEaXJlY3RvcnkiLCJfdXNlTGF6eVF1ZXJ5NiQiLCJ1c2Vyc0RhdGEiLCJ1c2Vyc0xvYWRpbmciLCJ1c2Vyc0Vycm9yIiwic3luY1VzZXJzUGFnaW5hdGlvbiIsInBheWxvYWQiLCJfcGF5bG9hZCR1c2VycyIsIl9wYXlsb2FkJHVzZXJzMiIsInBhZ2UiLCJ1c2VycyIsImxhc3RQYWdlIiwic3luY0NsaWVudHNQYWdpbmF0aW9uIiwiX3BheWxvYWQkY2xpZW50cyIsIl9wYXlsb2FkJGNsaWVudHMyIiwiY2xpZW50cyIsInN5bmNUYXNrRmFsbGJhY2tQYWdpbmF0aW9uIiwiX3BheWxvYWQkdGFza0ZhbWlseSIsIl9wYXlsb2FkJHRhc2tGYW1pbHkyIiwicmF3UGFnZSIsInRhc2tGYW1pbHkiLCJzeW5jUHJvamVjdEZhbGxiYWNrUGFnaW5hdGlvbiIsIl9wYXlsb2FkJHByb2plY3RzIiwiX3BheWxvYWQkcHJvamVjdHMyIiwicHJvamVjdHMiLCJfdXNlTGF6eVF1ZXJ5NyIsIl91c2VMYXp5UXVlcnk4IiwiZmV0Y2hUYXNrRmFtaWx5RmFsbGJhY2siLCJfdXNlTGF6eVF1ZXJ5OSIsIl91c2VMYXp5UXVlcnkwIiwiZmV0Y2hQcm9qZWN0c0ZhbGxiYWNrIiwiZmV0Y2hSZWNlbnQiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImdlbmVyYXRpb24iLCJfc3RhYmxlU2NvcGUkbWNwU2x1Z3MiLCJfZGF0YSRkYXRhIiwiX2RhdGEkbmV4dF9vZmZzZXQiLCJyZXNwb25zZSIsImNhblBhZ2luYXRlIiwiX2RhdGEiLCJtYXBwZWQiLCJfZGF0YTIiLCJfbWFwcGVkIiwiX2ZhbGxiYWNrRGF0YSRwcm9qZWN0IiwiX2ZhbGxiYWNrRGF0YSRwcm9qZWN0MiIsImFyZ3VtZW50c0ZpbHRlciIsIl95aWVsZCRmZXRjaFByb2plY3RzRiIsImZhbGxiYWNrRGF0YSIsImZhbGxiYWNrTWFwcGVkIiwicmVjZW50VGFza0ZpbHRlcnMiLCJfZGF0YTMiLCJ0YXNrSXRlbXMiLCJfZmFsbGJhY2tEYXRhJHRhc2tGYW0iLCJfZmFsbGJhY2tEYXRhJHRhc2tGYW0yIiwiX3lpZWxkJGZldGNoVGFza0ZhbWlsIiwiX2ZhbGxiYWNrRGF0YSIsIl9kYXRhNCR1c2VycyRkYXRhIiwiX2RhdGE0JHVzZXJzIiwiX3lpZWxkJGZldGNoVXNlcnNEaXJlIiwiX2RhdGE0IiwiX21hcHBlZDIiLCJtZUl0ZW0iLCJ3aXRob3V0TWUiLCJfdCIsIl90MiIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiY3VycmVudCIsImFicnVwdCIsInBhdGgiLCJtZXRob2QiLCJzZW50IiwianNvbiIsImhhc19tb3JlIiwibmV4dF9vZmZzZXQiLCJmaW5pc2giLCJpc0FycmF5IiwicCIsImNsaWVudF9pZCIsIl9vYmplY3RTcHJlYWQiLCJwZXJQYWdlIiwiaXRlbSIsInByb2plY3RJZHMiLCJjbGllbnRJZHMiLCJwYWdpbmF0aW9uIiwib2Zmc2V0Iiwic2l6ZSIsImZpbHRlcnMiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJzdG9wIiwiX3N0YWJsZVNjb3BlJG1jcFNsdWdzMiIsInNlYXJjaEdlbiIsImVuY29kZVVSSUNvbXBvbmVudCIsInRoZW4iLCJfZGF0YSRkYXRhMiIsIl9kYXRhJG5leHRfb2Zmc2V0MiIsImV4dHJhIiwiX2NsaWVudHNEYXRhJGNsaWVudHMiLCJfdXNlcnNEYXRhJHVzZXJzIiwibWVJZCIsImhhc01lSW5SZXN1bHRzIiwic29tZSIsInNlYXJjaCIsImxvYWRNb3JlIiwiX2NhbGxlZTIiLCJzYWZlQ3VycmVudFBhZ2UiLCJuZXh0UGFnZSIsImxvYWRNb3JlQmFzZWxpbmVHZW4iLCJfZGF0YSR1c2VycyRkYXRhIiwiX2RhdGEkdXNlcnMiLCJfeWllbGQkZmV0Y2hVc2Vyc0RpcmUyIiwibmV4dEl0ZW1zIiwiX2RhdGE1JGNsaWVudHMkZGF0YSIsIl9kYXRhNSRjbGllbnRzIiwiX3lpZWxkJGZldGNoU2VhcmNoQ2xpIiwiX2RhdGE1IiwiX25leHRJdGVtcyIsIl9kYXRhNiR0YXNrRmFtaWx5JGRhdCIsIl9kYXRhNiR0YXNrRmFtaWx5IiwiX3lpZWxkJGZldGNoVGFza0ZhbWlsMiIsIl9kYXRhNiIsIl9uZXh0SXRlbXMyIiwiX2RhdGE3JHByb2plY3RzJGRhdGEiLCJfZGF0YTckcHJvamVjdHMiLCJfeWllbGQkZmV0Y2hQcm9qZWN0c0YyIiwiX2RhdGE3IiwiX25leHRJdGVtczMiLCJfc2tpbGxEYXRhJGRhdGEiLCJfc2tpbGxEYXRhJG5leHRfb2Zmc2UiLCJza2lsbE9mZnNldCIsInNraWxsUSIsInNraWxsUGF0aCIsInNraWxsUmVzcG9uc2UiLCJza2lsbERhdGEiLCJfbmV4dEl0ZW1zNCIsIl90MyIsIl9jb250ZXh0MiIsIl9wcmV2JCIsImV4aXN0aW5nSWRzIiwiU2V0IiwiYXBwZW5kZWQiLCJoYXMiLCJjb25zb2xlIiwic291cmNlIiwiZmV0Y2hSZWNlbnRSZWYiLCJyZWNlbnRzVHJpZ2dlciIsInVwZGF0ZVNlYXJjaFZhbHVlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZUVudGl0eVNlYXJjaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VMYXp5UXVlcnkgfSBmcm9tICdAYXBvbGxvL2NsaWVudCdcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGdldFJlY2VudENsaWVudHMgfSBmcm9tICcuLi9zZXJ2aWNlcy9tYWlhL1JlY2VudENsaWVudHMvZ2V0UmVjZW50Q2xpZW50cydcbmltcG9ydCB7IGdldFJlY2VudFByb2plY3RzIH0gZnJvbSAnLi4vc2VydmljZXMvbWFpYS9SZWNlbnRQcm9qZWN0cy9nZXRSZWNlbnRQcm9qZWN0cydcbmltcG9ydCB7IGdldFJlY2VudFRhc2tzIH0gZnJvbSAnLi4vc2VydmljZXMvbWFpYS9SZWNlbnRUYXNrcy9nZXRSZWNlbnRUYXNrcydcbmltcG9ydCB0eXBlIHsgUmVjZW50VGFza0l0ZW0gfSBmcm9tICcuLi9zZXJ2aWNlcy9tYWlhL1JlY2VudFRhc2tzL2dldFJlY2VudFRhc2tzJ1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBQUk9KRUNUU19GQUxMQkFDSywgU0VBUkNIX0VOVElUSUVTLCBUQVNLX0ZBTUlMWV9GQUxMQkFDSyB9IGZyb20gJy4uL3NlcnZpY2VzL3F1ZXJ5L2VudGl0eVNlYXJjaFF1ZXJ5J1xuaW1wb3J0IHsgU0VBUkNIX0NMSUVOVFMgfSBmcm9tICcuLi9zZXJ2aWNlcy9xdWVyeS9DbGllbnRTZWFyY2hRdWVyeSdcbmltcG9ydCB7IFVTRVJTX0RJUkVDVE9SWSB9IGZyb20gJy4uL3NlcnZpY2VzL3F1ZXJ5L3VzZXJzRGlyZWN0b3J5UXVlcnknXG5pbXBvcnQgeyBTRUFSQ0hfUVVFUllfREVCT1VOQ0VfTVMgfSBmcm9tICcuLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgdXNlRGVib3VuY2UgfSBmcm9tICcuL3VzZURlYm91bmNlJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4vdXNlVCdcbmltcG9ydCB7IENvbnRleHRFbnRpdHlUeXBlLCBDb250ZXh0TWVudGlvbkl0ZW0gfSBmcm9tICcuLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB0eXBlIHsgQWdlbnRFbnRpdHkgfSBmcm9tICcuLi90eXBlcy9hZ2VudCdcbmltcG9ydCB0eXBlIHsgU2tpbGwgfSBmcm9tICcuLi90eXBlcy9za2lsbCdcbmltcG9ydCB7IGZldGNoTWFpYSB9IGZyb20gJy4uL3NlcnZpY2VzL21haWEvY2xpZW50J1xuXG50eXBlIFJhd1NlYXJjaFJlc3VsdCA9IHtcbiAgaWQ6IHN0cmluZyB8IG51bWJlclxuICB0aXRsZTogc3RyaW5nXG4gIHR5cGU/OiBzdHJpbmdcbiAgY2xpZW50SWQ/OiBudW1iZXIgfCBzdHJpbmcgfCBudWxsXG4gIGZlZUlkPzogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbFxuICBjbGllbnROYW1lPzogc3RyaW5nIHwgbnVsbFxuICBwcm9qZWN0TmFtZT86IHN0cmluZyB8IG51bGxcbiAgZmF0aGVyPzogeyBpZDogc3RyaW5nIHwgbnVtYmVyOyB0aXRsZT86IHN0cmluZyB8IG51bGwgfSB8IG51bGxcbn1cblxudHlwZSBSYXdDbGllbnQgPSB7XG4gIGlkOiBudW1iZXIgfCBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHRvdGFsUHJveWVjdG9zPzogbnVtYmVyIHwgbnVsbFxufVxuXG50eXBlIFJhd0RpcmVjdG9yeVVzZXIgPSB7XG4gIGlkOiBzdHJpbmcgfCBudW1iZXJcbiAgZmlyc3ROYW1lPzogc3RyaW5nIHwgbnVsbFxuICBsYXN0TmFtZT86IHN0cmluZyB8IG51bGxcbiAgZW1haWw/OiBzdHJpbmcgfCBudWxsXG4gIHBpY3R1cmU/OiBzdHJpbmcgfCBudWxsXG4gIHVzZXJQb3NpdGlvbj86IHsgbmFtZT86IHN0cmluZyB8IG51bGwgfSB8IG51bGxcbn1cblxudHlwZSBTZWFyY2hFbnRpdGllc0RhdGEgPSB7IHNlYXJjaDogUmF3U2VhcmNoUmVzdWx0W10gfCBudWxsIH1cbnR5cGUgU2VhcmNoQ2xpZW50c0RhdGEgPSB7XG4gIGNsaWVudHM6IHtcbiAgICB0b3RhbD86IG51bWJlciB8IG51bGxcbiAgICBwZXJQYWdlPzogbnVtYmVyIHwgbnVsbFxuICAgIHBhZ2U/OiBudW1iZXIgfCBudWxsXG4gICAgbGFzdFBhZ2U/OiBudW1iZXIgfCBudWxsXG4gICAgZGF0YTogUmF3Q2xpZW50W11cbiAgfSB8IG51bGxcbn1cbnR5cGUgVXNlcnNEaXJlY3RvcnlEYXRhID0ge1xuICB1c2Vyczoge1xuICAgIHRvdGFsPzogbnVtYmVyIHwgbnVsbFxuICAgIHBlclBhZ2U/OiBudW1iZXIgfCBudWxsXG4gICAgcGFnZT86IG51bWJlciB8IG51bGxcbiAgICBsYXN0UGFnZT86IG51bWJlciB8IG51bGxcbiAgICBkYXRhOiBSYXdEaXJlY3RvcnlVc2VyW10gfCBudWxsXG4gIH0gfCBudWxsXG59XG5cbnR5cGUgVGFza0ZhbWlseVJlY29yZCA9IHtcbiAgX2lkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbFxuICB0aXRsZT86IHN0cmluZyB8IG51bGxcbiAgcHJvamVjdElkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbFxuICB0YXNrRmF0aGVyPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbFxuICBmYXRoZXI/OiB7IGlkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbDsgdGl0bGU/OiBzdHJpbmcgfCBudWxsIH0gfCBudWxsXG4gIHByb2plY3Q/OiB7IGlkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbDsgbmFtZT86IHN0cmluZyB8IG51bGwgfSB8IG51bGxcbn1cblxudHlwZSBUYXNrRmFtaWx5RGF0YSA9IHtcbiAgdGFza0ZhbWlseT86IHtcbiAgICB0b3RhbD86IG51bWJlciB8IG51bGxcbiAgICBwZXJQYWdlPzogbnVtYmVyIHwgbnVsbFxuICAgIHBhZ2U/OiBudW1iZXIgfCBudWxsXG4gICAgbGFzdFBhZ2U/OiBudW1iZXIgfCBudWxsXG4gICAgZGF0YT86IFRhc2tGYW1pbHlSZWNvcmRbXSB8IG51bGxcbiAgfSB8IG51bGxcbn1cblxudHlwZSBGYWxsYmFja1Byb2plY3RSZWNvcmQgPSB7XG4gIGlkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbFxuICBuYW1lPzogc3RyaW5nIHwgbnVsbFxuICBjbGllbnRJZD86IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgY2xpZW50PzogeyBpZD86IHN0cmluZyB8IG51bWJlciB8IG51bGw7IG5hbWU/OiBzdHJpbmcgfCBudWxsIH0gfCBudWxsXG59XG5cbnR5cGUgUHJvamVjdHNGYWxsYmFja0RhdGEgPSB7XG4gIHByb2plY3RzPzoge1xuICAgIHRvdGFsPzogbnVtYmVyIHwgbnVsbFxuICAgIHBlclBhZ2U/OiBudW1iZXIgfCBudWxsXG4gICAgcGFnZT86IG51bWJlciB8IG51bGxcbiAgICBsYXN0UGFnZT86IG51bWJlciB8IG51bGxcbiAgICBkYXRhPzogRmFsbGJhY2tQcm9qZWN0UmVjb3JkW10gfCBudWxsXG4gIH0gfCBudWxsXG59XG5cbnR5cGUgUGFnaW5hdGlvblNvdXJjZSA9ICdub25lJyB8ICd1c2VycycgfCAnY2xpZW50cy1zZWFyY2gnIHwgJ3Rhc2stZmFsbGJhY2snIHwgJ3Byb2plY3QtZmFsbGJhY2snIHwgJ3NraWxscydcblxuY29uc3Qgbm9ybWFsaXplUG9zaXRpdmVJbnQgPSAodmFsdWU6IHVua25vd24sIGZhbGxiYWNrOiBudW1iZXIpOiBudW1iZXIgPT4ge1xuICBjb25zdCBwYXJzZWQgPSBOdW1iZXIodmFsdWUpXG4gIGlmICghTnVtYmVyLmlzRmluaXRlKHBhcnNlZCkpIHJldHVybiBmYWxsYmFja1xuICBjb25zdCBub3JtYWxpemVkID0gTWF0aC5mbG9vcihwYXJzZWQpXG4gIHJldHVybiBub3JtYWxpemVkID4gMCA/IG5vcm1hbGl6ZWQgOiBmYWxsYmFja1xufVxuXG4vKipcbiAqIFJlc3RyaW5nZSBsb3MgcmVzdWx0YWRvcyBhbCBgY2xpZW50SWRgL2Bwcm9qZWN0SWRgIGRlbCBhZ2VudGUgYWN0aXZvLlxuICogQ3VhbmRvIGVsIGFnZW50ZSBlc3TDoSBzY29wZWFkbyBhIHVuIGNsaWVudC9wcm9qZWN0LCB0YW50byBsb3MgcmVjZW50cyBjb21vXG4gKiBlbCBzZWFyY2ggZGViZW4gZmlsdHJhciBwb3IgZXNlIGNvbnRleHRvLiBTaSBlbCBiYWNrZW5kIG5vIGVudGllbmRlIGFsZ8O6blxuICogY2FtcG8gbG8gaWdub3JhIHkgc2UgY2FlIGFsIGNvbXBvcnRhbWllbnRvIGdsb2JhbC5cbiAqL1xuZXhwb3J0IHR5cGUgRW50aXR5U2VhcmNoU2NvcGUgPSB7XG4gIGNsaWVudElkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbFxuICBwcm9qZWN0SWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIC8qKiBTbHVncyBkZWwgY29uZWN0b3IgTUNQIGRlbCBhZ2VudGUgKGxpc3RhZG8gbG9jYWwsIHNpbiBHcmFwaFFMKS4gKi9cbiAgbWNwU2x1Z3M/OiBzdHJpbmdbXVxuICAvKipcbiAgICogU2tpbGxzIHByZWNhcmdhZGFzIChsaXN0YWRvIGxvY2FsLCBzaW4gUkVTVCkuIEN1YW5kbyBzZSBwcm92ZWVuLCBzZSB1c2FuIGRpcmVjdGFtZW50ZVxuICAgKiBlbiBsdWdhciBkZSBmZXRjaGVhciBkZXNkZSBsYSBBUEkuIMOadGlsIHBhcmEgZGV2L3Rlc3RpbmcgeSBwYXJhIFNTUi5cbiAgICovXG4gIHNraWxscz86IFNraWxsW11cbiAgLyoqXG4gICAqIGBlbnRpdHlgIGRlbCBhZ2VudGUgYWN0aXZvLiBQYXJhIGVzcGVjaWFsaXN0YXM6XG4gICAqIC0gYHByb2plY3RgOiBiw7pzcXVlZGEgZGUgdGFyZWFzIGZ1ZXJ6YSBmaWx0cm8gcG9yIGBwcm9qZWN0SWRgIGRlbCBjb250ZXh0by5cbiAgICogLSBgY2xpZW50YDogYsO6c3F1ZWRhIGRlIHByb3llY3RvcyBwb3IgYGNsaWVudElkYDsgdGFyZWFzIHBvciBjbGllbnRlICh5IHByb3llY3RvIHNpIGFwbGljYSkuXG4gICAqL1xuICBhZ2VudEVudGl0eT86IEFnZW50RW50aXR5IHwgbnVsbFxufVxuXG50eXBlIFNlYXJjaEZpbHRlcmFibGVUeXBlID0gJ3Byb2plY3QnIHwgJ3Rhc2snXG5cbmNvbnN0IEJBU0VfRklMVEVSU19CWV9UWVBFOiBSZWNvcmQ8U2VhcmNoRmlsdGVyYWJsZVR5cGUsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0ge1xuICBwcm9qZWN0OiB7IHByb2plY3Q6ICd0cnVlJywgYXJjaGl2ZWQ6ICdhbGwnIH0sXG4gIHRhc2s6IHsgdGFzazogJ3RydWUnLCBhcmNoaXZlZDogJ2ZhbHNlJyB9LFxufVxuXG4vKipcbiAqIEVudHJhZGFzIHBhcmEgZWwgYXJndW1lbnRvIEdyYXBoUUwgYGV4dHJhYCAoSlNPTiBzdHJpbmcgZGUgYXJyYXkpIGFsIGJ1c2NhciB0YXJlYXMgY29uIGNvbnRleHRvLlxuICogRWouOiBbe1wicHJvamVjdElkXCI6XCI4ODE1NTJcIn1dXG4gKi9cbmNvbnN0IGJ1aWxkVGFza1NlYXJjaEV4dHJhRW50cmllcyA9IChzY29wZT86IEVudGl0eVNlYXJjaFNjb3BlKTogQXJyYXk8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4gPT4ge1xuICBjb25zdCByYXdDbGllbnQgPVxuICAgIHNjb3BlPy5jbGllbnRJZCAhPT0gdW5kZWZpbmVkICYmIHNjb3BlPy5jbGllbnRJZCAhPT0gbnVsbCAmJiBzY29wZT8uY2xpZW50SWQgIT09ICcnID8gU3RyaW5nKHNjb3BlLmNsaWVudElkKSA6IG51bGxcbiAgY29uc3QgcmF3UHJvamVjdCA9XG4gICAgc2NvcGU/LnByb2plY3RJZCAhPT0gdW5kZWZpbmVkICYmIHNjb3BlPy5wcm9qZWN0SWQgIT09IG51bGwgJiYgc2NvcGU/LnByb2plY3RJZCAhPT0gJydcbiAgICAgID8gU3RyaW5nKHNjb3BlLnByb2plY3RJZClcbiAgICAgIDogbnVsbFxuXG4gIGNvbnN0IGFnZW50RW50aXR5ID0gc2NvcGU/LmFnZW50RW50aXR5XG4gIGNvbnN0IGVudHJpZXM6IEFycmF5PFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0gW11cblxuICBjb25zdCBwdXNoQ2xpZW50ID0gKCkgPT4ge1xuICAgIGlmIChyYXdDbGllbnQpIGVudHJpZXMucHVzaCh7IGNsaWVudElkOiByYXdDbGllbnQgfSlcbiAgfVxuICBjb25zdCBwdXNoUHJvamVjdCA9ICgpID0+IHtcbiAgICBpZiAocmF3UHJvamVjdCkgZW50cmllcy5wdXNoKHsgcHJvamVjdElkOiByYXdQcm9qZWN0IH0pXG4gIH1cblxuICBpZiAoYWdlbnRFbnRpdHkgPT09ICdwcm9qZWN0Jykge1xuICAgIGlmIChyYXdQcm9qZWN0KSB7XG4gICAgICBwdXNoUHJvamVjdCgpXG4gICAgfSBlbHNlIGlmIChyYXdDbGllbnQpIHtcbiAgICAgIHB1c2hDbGllbnQoKVxuICAgIH1cbiAgfSBlbHNlIGlmIChhZ2VudEVudGl0eSA9PT0gJ2NsaWVudCcpIHtcbiAgICBwdXNoQ2xpZW50KClcbiAgICBwdXNoUHJvamVjdCgpXG4gIH0gZWxzZSB7XG4gICAgcHVzaENsaWVudCgpXG4gICAgcHVzaFByb2plY3QoKVxuICB9XG5cbiAgcmV0dXJuIGVudHJpZXNcbn1cblxuY29uc3QgYnVpbGRUYXNrU2VhcmNoRXh0cmEgPSAoc2NvcGU/OiBFbnRpdHlTZWFyY2hTY29wZSk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IGVudHJpZXMgPSBidWlsZFRhc2tTZWFyY2hFeHRyYUVudHJpZXMoc2NvcGUpXG4gIGlmIChlbnRyaWVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHVuZGVmaW5lZFxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZW50cmllcylcbn1cblxuLyoqXG4gKiBUYWIgcHJveWVjdG86IGNvbiBgY2xpZW50SWRgIGVuIGVsIHNjb3BlLCBgZXh0cmFgIGFjb3RhIGxhIGLDunNxdWVkYSBhIHByb3llY3RvcyBkZSBlc2UgY2xpZW50ZS5cbiAqIEVqLjogYFt7XCJjbGllbnRJZFwiOlwiNDcxMDVcIn1dYCBqdW50byBhIGBmaWx0ZXJzYCBge1wicHJvamVjdFwiOlwidHJ1ZVwiLFwiYXJjaGl2ZWRcIjpcImFsbFwifWAuXG4gKi9cbmNvbnN0IGJ1aWxkUHJvamVjdFNlYXJjaEV4dHJhID0gKHNjb3BlPzogRW50aXR5U2VhcmNoU2NvcGUpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCByYXdDbGllbnQgPVxuICAgIHNjb3BlPy5jbGllbnRJZCAhPT0gdW5kZWZpbmVkICYmIHNjb3BlPy5jbGllbnRJZCAhPT0gbnVsbCAmJiBzY29wZT8uY2xpZW50SWQgIT09ICcnID8gU3RyaW5nKHNjb3BlLmNsaWVudElkKSA6IG51bGxcbiAgaWYgKCFyYXdDbGllbnQpIHJldHVybiB1bmRlZmluZWRcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KFt7IGNsaWVudElkOiByYXdDbGllbnQgfV0pXG59XG5cbmNvbnN0IGJ1aWxkU2VhcmNoRW50aXRpZXNFeHRyYSA9ICh0eXBlOiBTZWFyY2hGaWx0ZXJhYmxlVHlwZSwgc2NvcGU/OiBFbnRpdHlTZWFyY2hTY29wZSk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmICh0eXBlID09PSAndGFzaycpIHJldHVybiBidWlsZFRhc2tTZWFyY2hFeHRyYShzY29wZSlcbiAgaWYgKHR5cGUgPT09ICdwcm9qZWN0JykgcmV0dXJuIGJ1aWxkUHJvamVjdFNlYXJjaEV4dHJhKHNjb3BlKVxuICByZXR1cm4gdW5kZWZpbmVkXG59XG5cbi8qKlxuICogVGFiIGB0YXNrYCAvIGBwcm9qZWN0YDogYGZpbHRlcnNgIHPDs2xvIHRpcG8gKyBhcmNoaXZlZCAodGFyZWFzOiBubyBhcmNoaXZhZGFzKTsgc2NvcGUgKGNsaWVudElkIC8gcHJvamVjdElkIGVuIHRhcmVhcykgZW4gYGV4dHJhYC5cbiAqL1xuY29uc3QgYnVpbGRGaWx0ZXJzRm9yVHlwZSA9ICh0eXBlOiBTZWFyY2hGaWx0ZXJhYmxlVHlwZSk6IHN0cmluZyA9PiB7XG4gIGlmICh0eXBlID09PSAncHJvamVjdCcpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoQkFTRV9GSUxURVJTX0JZX1RZUEUucHJvamVjdClcbiAgfVxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoQkFTRV9GSUxURVJTX0JZX1RZUEUudGFzaylcbn1cblxuLyoqXG4gKiBGaWx0cm9zIHBhcmEgbGEgcXVlcnkgdXNlcnMuIEVsIGJhY2tlbmQgZXNwZXJhIHVuIEpTT04gc3RyaW5nIGNvblxuICogd2l0aFBvc2l0aW9uLCB3aXRoVGVhbXMgeSBzZWFyY2hJbnB1dC4gTGUgYWdyZWdhbW9zIGNsaWVudElkL3Byb2plY3RJZFxuICogZGVsIHNjb3BlIGVuIGNhc28gZGUgcXVlIGVsIGJhY2tlbmQgbG9zIGFwcm92ZWNoZSBwYXJhIGZpbHRyYXIgcG9yXG4gKiBjb250ZXh0byAoc2kgbm8gbG9zIGVudGllbmRlIGxvcyBpZ25vcmEpLlxuICovXG5jb25zdCBidWlsZFVzZXJzRGlyZWN0b3J5RmlsdGVycyA9IChxOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBiYXNlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICB3aXRoUG9zaXRpb246IHRydWUsXG4gICAgd2l0aFRlYW1zOiB0cnVlLFxuICB9XG4gIGNvbnN0IHRyaW1tZWRRID0gcS50cmltKClcbiAgaWYgKHRyaW1tZWRRKSB7XG4gICAgYmFzZS5zZWFyY2hJbnB1dCA9IHRyaW1tZWRRXG4gIH1cbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGJhc2UpXG59XG5cbmNvbnN0IGhpZ2hsaWdodFJhbmdlID0gKHRleHQ6IHN0cmluZywgc2VhcmNoVmFsdWU6IHN0cmluZykgPT4ge1xuICBpZiAoIXNlYXJjaFZhbHVlKSByZXR1cm4gdW5kZWZpbmVkXG4gIGNvbnN0IGlkeCA9IHRleHQudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpXG4gIGlmIChpZHggPCAwKSByZXR1cm4gdW5kZWZpbmVkXG4gIHJldHVybiB7IHN0YXJ0OiBpZHgsIGxlbmd0aDogc2VhcmNoVmFsdWUubGVuZ3RoIH1cbn1cblxuY29uc3QgZmlyc3REZWZpbmVkID0gPFQ+KC4uLnZhbHVlczogQXJyYXk8VCB8IG51bGwgfCB1bmRlZmluZWQ+KTogVCB8IHVuZGVmaW5lZCA9PlxuICB2YWx1ZXMuZmluZCh2YWx1ZSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsKVxuXG5jb25zdCBub3JtYWxpemVUcmltbWVkU3RyaW5nID0gKHZhbHVlOiB1bmtub3duKTogc3RyaW5nID0+IHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHJldHVybiAnJ1xuICByZXR1cm4gdmFsdWUudHJpbSgpXG59XG5cbmNvbnN0IGdldFVzZXJQb3NpdGlvbk5hbWUgPSAodXNlclBvc2l0aW9uOiBSZXR1cm5UeXBlPHR5cGVvZiB1c2VVc2VyPlsndXNlcl9wb3NpdGlvbiddKTogc3RyaW5nID0+IHtcbiAgaWYgKHR5cGVvZiB1c2VyUG9zaXRpb24gPT09ICdzdHJpbmcnKSByZXR1cm4gdXNlclBvc2l0aW9uLnRyaW0oKVxuICBpZiAodXNlclBvc2l0aW9uICYmIHR5cGVvZiB1c2VyUG9zaXRpb24gPT09ICdvYmplY3QnICYmICduYW1lJyBpbiB1c2VyUG9zaXRpb24pIHtcbiAgICByZXR1cm4gbm9ybWFsaXplVHJpbW1lZFN0cmluZyh1c2VyUG9zaXRpb24ubmFtZSlcbiAgfVxuICByZXR1cm4gJydcbn1cblxuY29uc3QgbWFwQ2xpZW50VG9JdGVtID0gKGM6IFJhd0NsaWVudCwgc2VhcmNoVmFsdWU6IHN0cmluZyk6IENvbnRleHRNZW50aW9uSXRlbSA9PiAoe1xuICBpZDogYy5pZCxcbiAgdHlwZTogJ2NsaWVudCcsXG4gIHByaW1hcnk6IGMubmFtZSxcbiAgcHJpbWFyeUhpZ2hsaWdodDogaGlnaGxpZ2h0UmFuZ2UoYy5uYW1lLCBzZWFyY2hWYWx1ZSksXG4gIGJyZWFkY3J1bWI6IHtcbiAgICBjb3VudDogYy50b3RhbFByb3llY3RvcyA/PyB1bmRlZmluZWQsXG4gICAgY291bnRMYWJlbDogJ3Byb2plY3RzJyxcbiAgfSxcbiAgcmF3OiB7XG4gICAgaWQ6IGMuaWQsXG4gICAgbmFtZTogYy5uYW1lLFxuICAgIHRvdGFsUHJveWVjdG9zOiBjLnRvdGFsUHJveWVjdG9zID8/IG51bGwsXG4gIH0sXG59KVxuXG5jb25zdCBtYXBVc2VyVG9JdGVtID0gKHU6IFJhd0RpcmVjdG9yeVVzZXIsIHNlYXJjaFZhbHVlOiBzdHJpbmcpOiBDb250ZXh0TWVudGlvbkl0ZW0gPT4ge1xuICBjb25zdCBmdWxsTmFtZSA9IGAke3UuZmlyc3ROYW1lID8/ICcnfSAke3UubGFzdE5hbWUgPz8gJyd9YC50cmltKClcbiAgY29uc3QgcHJpbWFyeSA9IGZ1bGxOYW1lIHx8IHUuZW1haWwgfHwgU3RyaW5nKHUuaWQpXG5cbiAgcmV0dXJuIHtcbiAgICBpZDogdS5pZCxcbiAgICB0eXBlOiAndXNlcicsXG4gICAgcHJpbWFyeSxcbiAgICBwcmltYXJ5SGlnaGxpZ2h0OiBoaWdobGlnaHRSYW5nZShwcmltYXJ5LCBzZWFyY2hWYWx1ZSksXG4gICAgcmF3OiB7XG4gICAgICBpZDogdS5pZCxcbiAgICAgIG5hbWU6IHByaW1hcnksXG4gICAgICBwaWN0dXJlOiB1LnBpY3R1cmUgPz8gbnVsbCxcbiAgICAgIHBvc2l0aW9uTmFtZTogdS51c2VyUG9zaXRpb24/Lm5hbWUgPz8gbnVsbCxcbiAgICAgIGVtYWlsOiB1LmVtYWlsID8/IG51bGwsXG4gICAgfSxcbiAgfVxufVxuXG5jb25zdCBtYXBDb3JVc2VyVG9Vc2VySXRlbSA9IChcbiAgdXNlcjogUmV0dXJuVHlwZTx0eXBlb2YgdXNlVXNlcj4sXG4gIHNlYXJjaFZhbHVlOiBzdHJpbmcsXG4gIG1lTGFiZWw6IHN0cmluZ1xuKTogQ29udGV4dE1lbnRpb25JdGVtID0+IHtcbiAgY29uc3QgZnVsbE5hbWUgPSBgJHt1c2VyLmZpcnN0TmFtZSA/PyAnJ30gJHt1c2VyLmxhc3ROYW1lID8/ICcnfWAudHJpbSgpXG4gIC8qKiBTb2xvIGNhcmdvIHJlYWw7IHNpbiBmYWxsYmFjayBhIGByb2xlYCAobGEgVUkgbXVlc3RyYSDigJxTaW4gcG9zaWNpw7Nu4oCdIHNpIGZhbHRhKS4gKi9cbiAgY29uc3QgcG9zaXRpb25MaW5lID0gZ2V0VXNlclBvc2l0aW9uTmFtZSh1c2VyLnVzZXJfcG9zaXRpb24pIHx8IG51bGxcbiAgY29uc3QgZW1haWwgPSBub3JtYWxpemVUcmltbWVkU3RyaW5nKHVzZXIuZW1haWwpIHx8IG51bGxcblxuICByZXR1cm4ge1xuICAgIGlkOiB1c2VyLmlkLFxuICAgIHR5cGU6ICd1c2VyJyxcbiAgICBwcmltYXJ5OiBtZUxhYmVsLFxuICAgIHByaW1hcnlIaWdobGlnaHQ6IGhpZ2hsaWdodFJhbmdlKG1lTGFiZWwsIHNlYXJjaFZhbHVlKSxcbiAgICByYXc6IHtcbiAgICAgIGlkOiB1c2VyLmlkLFxuICAgICAgbmFtZTogZnVsbE5hbWUgfHwgU3RyaW5nKHVzZXIuaWQpLFxuICAgICAgcGljdHVyZTogdXNlci5waWN0dXJlIHx8IG51bGwsXG4gICAgICBwb3NpdGlvbk5hbWU6IHBvc2l0aW9uTGluZSxcbiAgICAgIGVtYWlsLFxuICAgIH0sXG4gIH1cbn1cblxuY29uc3QgbWFwUmVjZW50VGFza1RvSXRlbSA9IChcbiAgdGFzazogUmVjZW50VGFza0l0ZW0sXG4gIHNlYXJjaFZhbHVlOiBzdHJpbmcsXG4gIHNob3dQcm9qZWN0TmFtZUluVGFza1JvdyA9IHRydWVcbik6IENvbnRleHRNZW50aW9uSXRlbSA9PiB7XG4gIGNvbnN0IHByaW1hcnkgPSAodGFzay50aXRsZSAmJiB0YXNrLnRpdGxlLnRyaW0oKSkgfHwgU3RyaW5nKHRhc2suaWQpXG4gIGNvbnN0IHByb2plY3ROYW1lID0gc2hvd1Byb2plY3ROYW1lSW5UYXNrUm93ID8gKHRhc2sucHJvamVjdE5hbWUgPz8gbnVsbCkgOiBudWxsXG4gIHJldHVybiB7XG4gICAgaWQ6IHRhc2suaWQsXG4gICAgdHlwZTogJ3Rhc2snLFxuICAgIHByaW1hcnksXG4gICAgcHJpbWFyeUhpZ2hsaWdodDogaGlnaGxpZ2h0UmFuZ2UocHJpbWFyeSwgc2VhcmNoVmFsdWUpLFxuICAgIGJyZWFkY3J1bWI6IHByb2plY3ROYW1lID8geyBwYXJlbnQ6IHByb2plY3ROYW1lIH0gOiB1bmRlZmluZWQsXG4gICAgcmF3OiB7XG4gICAgICBpZDogdGFzay5pZCxcbiAgICAgIG5hbWU6IHByaW1hcnksXG4gICAgICBwcm9qZWN0TmFtZSxcbiAgICB9LFxuICB9XG59XG5cbmNvbnN0IG5vcm1hbGl6ZVRhc2tGYW1pbHlSZWNvcmQgPSAocmVjb3JkOiBUYXNrRmFtaWx5UmVjb3JkKTogUmVjZW50VGFza0l0ZW0gfCBudWxsID0+IHtcbiAgY29uc3QgeyBfaWQ6IHRhc2tGYW1pbHlJZCB9ID0gcmVjb3JkXG4gIGNvbnN0IGlkID0gdGFza0ZhbWlseUlkXG4gIGlmIChpZCA9PT0gdW5kZWZpbmVkIHx8IGlkID09PSBudWxsIHx8IFN0cmluZyhpZCkgPT09ICcnKSByZXR1cm4gbnVsbFxuICBjb25zdCB0aXRsZSA9IChyZWNvcmQudGl0bGUgPz8gJycpLnRyaW0oKSB8fCBTdHJpbmcoaWQpXG4gIGNvbnN0IHByb2plY3ROYW1lID0gZmlyc3REZWZpbmVkKHJlY29yZC5wcm9qZWN0Py5uYW1lLCByZWNvcmQuZmF0aGVyPy50aXRsZSkgPz8gbnVsbFxuICBjb25zdCBoYXNGYXRoZXIgPSAhIWZpcnN0RGVmaW5lZChyZWNvcmQudGFza0ZhdGhlciwgcmVjb3JkLmZhdGhlcj8uaWQpXG4gIHJldHVybiB7XG4gICAgaWQsXG4gICAgdGl0bGUsXG4gICAgdHlwZTogaGFzRmF0aGVyID8gJ3N1YnRhc2snIDogJ3Rhc2snLFxuICAgIHByb2plY3ROYW1lLFxuICB9XG59XG5cbmNvbnN0IG5vcm1hbGl6ZVByb2plY3RzRmFsbGJhY2tSZWNvcmQgPSAocmVjb3JkOiBGYWxsYmFja1Byb2plY3RSZWNvcmQpOiBSYXdTZWFyY2hSZXN1bHQgfCBudWxsID0+IHtcbiAgY29uc3QgeyBpZCB9ID0gcmVjb3JkXG4gIGlmIChpZCA9PT0gdW5kZWZpbmVkIHx8IGlkID09PSBudWxsIHx8IFN0cmluZyhpZCkgPT09ICcnKSByZXR1cm4gbnVsbFxuICBjb25zdCB0aXRsZSA9IHJlY29yZC5uYW1lID8/ICcnXG4gIGNvbnN0IGNsaWVudElkID0gZmlyc3REZWZpbmVkKHJlY29yZC5jbGllbnRJZCwgcmVjb3JkLmNsaWVudD8uaWQpID8/IG51bGxcbiAgY29uc3QgY2xpZW50TmFtZSA9IHJlY29yZC5jbGllbnQ/Lm5hbWUgPz8gbnVsbFxuICByZXR1cm4ge1xuICAgIGlkLFxuICAgIHRpdGxlLFxuICAgIHR5cGU6ICdwcm9qZWN0JyxcbiAgICBjbGllbnRJZCxcbiAgICBjbGllbnROYW1lLFxuICB9XG59XG5cbmNvbnN0IG1hcFNlYXJjaFRvSXRlbSA9IChcbiAgcjogUmF3U2VhcmNoUmVzdWx0LFxuICB0eXBlOiBDb250ZXh0RW50aXR5VHlwZSxcbiAgc2VhcmNoVmFsdWU6IHN0cmluZyxcbiAgc2hvd1Byb2plY3ROYW1lSW5UYXNrUm93ID0gdHJ1ZVxuKTogQ29udGV4dE1lbnRpb25JdGVtID0+IHtcbiAgY29uc3QgcHJpbWFyeSA9IHIudGl0bGUgfHwgci5wcm9qZWN0TmFtZSB8fCAnJ1xuICBsZXQgcGFyZW50OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkXG4gIGlmICh0eXBlID09PSAncHJvamVjdCcpIHBhcmVudCA9IHIuY2xpZW50TmFtZVxuICBlbHNlIGlmICh0eXBlID09PSAndGFzaycpIHBhcmVudCA9IHVuZGVmaW5lZFxuICBlbHNlIHBhcmVudCA9IHIucHJvamVjdE5hbWUgPz8gci5jbGllbnROYW1lXG5cbiAgY29uc3QgZmF0aGVyID0gdHlwZSA9PT0gJ3Rhc2snID8gci5mYXRoZXIgOiBudWxsXG4gIGNvbnN0IGhhc0ZhdGhlciA9IHR5cGUgPT09ICd0YXNrJyAmJiBmYXRoZXIgIT0gbnVsbCAmJiBmYXRoZXIuaWQgIT0gbnVsbCAmJiBTdHJpbmcoZmF0aGVyLmlkKS5sZW5ndGggPiAwXG5cbiAgY29uc3QgdGFza1Byb2plY3ROYW1lID0gdHlwZSA9PT0gJ3Rhc2snICYmICFzaG93UHJvamVjdE5hbWVJblRhc2tSb3cgPyBudWxsIDogKHIucHJvamVjdE5hbWUgPz8gbnVsbClcblxuICByZXR1cm4ge1xuICAgIGlkOiByLmlkLFxuICAgIHR5cGUsXG4gICAgcHJpbWFyeSxcbiAgICBwcmltYXJ5SGlnaGxpZ2h0OiBoaWdobGlnaHRSYW5nZShwcmltYXJ5LCBzZWFyY2hWYWx1ZSksXG4gICAgYnJlYWRjcnVtYjogcGFyZW50ID8geyBwYXJlbnQgfSA6IHVuZGVmaW5lZCxcbiAgICByYXc6IHtcbiAgICAgIGlkOiByLmlkLFxuICAgICAgbmFtZTogcHJpbWFyeSxcbiAgICAgIGNsaWVudElkOiByLmNsaWVudElkID8/IG51bGwsXG4gICAgICBjbGllbnROYW1lOiByLmNsaWVudE5hbWUgPz8gbnVsbCxcbiAgICAgIHByb2plY3ROYW1lOiB0YXNrUHJvamVjdE5hbWUsXG4gICAgICBmZWVJZDogci5mZWVJZCA/PyBudWxsLFxuICAgICAgZmF0aGVySWQ6IGhhc0ZhdGhlciA/IGZhdGhlci5pZCA6IG51bGwsXG4gICAgICBmYXRoZXJUaXRsZTogaGFzRmF0aGVyID8gZmF0aGVyLnRpdGxlPy50cmltKCkgfHwgbnVsbCA6IG51bGwsXG4gICAgfSxcbiAgfVxufVxuXG5jb25zdCBmb3JtYXRNY3BQcmltYXJ5TGFiZWwgPSAoc2x1Zzogc3RyaW5nKTogc3RyaW5nID0+XG4gIHNsdWcucmVwbGFjZSgvXy9nLCAnICcpLnJlcGxhY2UoL1xcYlxcdy9nLCBjaGFyID0+IGNoYXIudG9VcHBlckNhc2UoKSlcblxudHlwZSBTa2lsbHNBcGlSZXNwb25zZSA9IHsgZGF0YT86IFNraWxsW107IGhhc19tb3JlPzogYm9vbGVhbjsgbmV4dF9vZmZzZXQ/OiBudW1iZXIgfCBudWxsIH1cblxuY29uc3QgbWFwU2tpbGxzVG9JdGVtcyA9IChza2lsbHM6IFNraWxsW10sIHNlYXJjaFZhbHVlOiBzdHJpbmcpOiBDb250ZXh0TWVudGlvbkl0ZW1bXSA9PiB7XG4gIGNvbnN0IHEgPSBzZWFyY2hWYWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKVxuICBjb25zdCBmaWx0ZXJlZCA9IHEgPyBza2lsbHMuZmlsdGVyKHMgPT4gcy5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSkpIDogc2tpbGxzXG4gIHJldHVybiBmaWx0ZXJlZC5tYXAoc2tpbGwgPT4gKHtcbiAgICBpZDogc2tpbGwuaWQsXG4gICAgdHlwZTogJ3NraWxsJyBhcyBjb25zdCxcbiAgICBwcmltYXJ5OiBza2lsbC5uYW1lLFxuICAgIHByaW1hcnlIaWdobGlnaHQ6IGhpZ2hsaWdodFJhbmdlKHNraWxsLm5hbWUsIHNlYXJjaFZhbHVlKSxcbiAgICByYXc6IHtcbiAgICAgIGlkOiBza2lsbC5pZCxcbiAgICAgIG5hbWU6IHNraWxsLm5hbWUsXG4gICAgfSxcbiAgfSkpXG59XG5cbmNvbnN0IG1hcE1jcFNsdWdzVG9JdGVtcyA9IChzbHVnczogc3RyaW5nW10sIHNlYXJjaFZhbHVlOiBzdHJpbmcpOiBDb250ZXh0TWVudGlvbkl0ZW1bXSA9PiB7XG4gIGNvbnN0IHEgPSBzZWFyY2hWYWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKVxuICBsZXQgZmlsdGVyZWQgPSBzbHVnc1xuICBpZiAocSkge1xuICAgIGZpbHRlcmVkID0gc2x1Z3MuZmlsdGVyKHMgPT4ge1xuICAgICAgY29uc3QgcHJpbWFyeSA9IGZvcm1hdE1jcFByaW1hcnlMYWJlbChzKVxuICAgICAgcmV0dXJuIHMudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxKSB8fCBwcmltYXJ5LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSlcbiAgICB9KVxuICB9XG4gIHJldHVybiBmaWx0ZXJlZC5tYXAoc2x1ZyA9PiB7XG4gICAgY29uc3QgcHJpbWFyeSA9IGZvcm1hdE1jcFByaW1hcnlMYWJlbChzbHVnKVxuICAgIHJldHVybiB7XG4gICAgICBpZDogc2x1ZyxcbiAgICAgIHR5cGU6ICdtY3AnIGFzIGNvbnN0LFxuICAgICAgcHJpbWFyeSxcbiAgICAgIHByaW1hcnlIaWdobGlnaHQ6IGhpZ2hsaWdodFJhbmdlKHByaW1hcnksIHNlYXJjaFZhbHVlKSxcbiAgICAgIHJhdzoge1xuICAgICAgICBpZDogc2x1ZyxcbiAgICAgICAgbmFtZTogcHJpbWFyeSxcbiAgICAgIH0sXG4gICAgfVxuICB9KVxufVxuXG5leHBvcnQgY29uc3QgdXNlRW50aXR5U2VhcmNoID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlLCBzY29wZT86IEVudGl0eVNlYXJjaFNjb3BlKSA9PiB7XG4gIGNvbnN0IGNvclVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgLyoqIEV2aXRhIGFwbGljYXIgcmVzdWx0YWRvcyBkZSB1biBgZmV0Y2hSZWNlbnRgIHZpZWpvIGN1YW5kbyBlbCB1c3VhcmlvIHlhIGNhbWJpw7MgZGUgdGFiIChyYWNlIGFzeW5jKS4gKi9cbiAgY29uc3QgcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZiA9IHVzZVJlZigwKVxuICBjb25zdCBbc2VhcmNoVmFsdWUsIHNldFNlYXJjaFZhbHVlXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBkZWJvdW5jZWRTZWFyY2hWYWx1ZSA9IHVzZURlYm91bmNlKHNlYXJjaFZhbHVlLCBTRUFSQ0hfUVVFUllfREVCT1VOQ0VfTVMpXG4gIGNvbnN0IFtpdGVtcywgc2V0SXRlbXNdID0gdXNlU3RhdGU8Q29udGV4dE1lbnRpb25JdGVtW10+KFtdKVxuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2hpZGVSZWNlbnRzTGFiZWwsIHNldEhpZGVSZWNlbnRzTGFiZWxdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtoYXNNb3JlLCBzZXRIYXNNb3JlXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaXNMb2FkaW5nTW9yZSwgc2V0SXNMb2FkaW5nTW9yZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2N1cnJlbnRQYWdlLCBzZXRDdXJyZW50UGFnZV0gPSB1c2VTdGF0ZSgxKVxuICBjb25zdCBbYWN0aXZlUGFnaW5hdGlvblNvdXJjZSwgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZV0gPSB1c2VTdGF0ZTxQYWdpbmF0aW9uU291cmNlPignbm9uZScpXG5cbiAgY29uc3QgbWNwU2x1Z3NLZXkgPSAoc2NvcGU/Lm1jcFNsdWdzID8/IFtdKS5qb2luKCd8JylcbiAgY29uc3Qgc2tpbGxzS2V5ID0gKHNjb3BlPy5za2lsbHMgPz8gW10pLm1hcChzID0+IHMuaWQpLmpvaW4oJ3wnKVxuICBjb25zdCBzaG93UHJvamVjdE5hbWVJblRhc2tSb3cgPSBzY29wZT8uYWdlbnRFbnRpdHkgIT09ICdwcm9qZWN0J1xuXG4gIC8vIEVzdGFiaWxpemFtb3MgZWwgc2NvcGUgcGFyYSBubyBkaXNwYXJhciBmZXRjaHMgcG9yIGNhbWJpb3MgZGUgaWRlbnRpZGFkIGRlIG9iamV0by5cbiAgY29uc3Qgc3RhYmxlU2NvcGUgPSB1c2VNZW1vPEVudGl0eVNlYXJjaFNjb3BlPihcbiAgICAoKSA9PiAoe1xuICAgICAgY2xpZW50SWQ6IHNjb3BlPy5jbGllbnRJZCA/PyBudWxsLFxuICAgICAgcHJvamVjdElkOiBzY29wZT8ucHJvamVjdElkID8/IG51bGwsXG4gICAgICBtY3BTbHVnczogc2NvcGU/Lm1jcFNsdWdzID8/IFtdLFxuICAgICAgc2tpbGxzOiBzY29wZT8uc2tpbGxzLFxuICAgICAgYWdlbnRFbnRpdHk6IHNjb3BlPy5hZ2VudEVudGl0eSA/PyBudWxsLFxuICAgIH0pLFxuICAgIFtzY29wZT8uY2xpZW50SWQsIHNjb3BlPy5wcm9qZWN0SWQsIG1jcFNsdWdzS2V5LCBza2lsbHNLZXksIHNjb3BlPy5hZ2VudEVudGl0eV1cbiAgKVxuXG4gIC8vIC0tLSBTZWFyY2g6IHByb2plY3QgfCB0YXNrIChHcmFwaFFMOiBzZWFyY2gpIC0tLVxuICBjb25zdCBbZmV0Y2hTZWFyY2hFbnRpdGllcywgeyBkYXRhOiBzZWFyY2hEYXRhLCBsb2FkaW5nOiBzZWFyY2hMb2FkaW5nLCBlcnJvcjogc2VhcmNoRXJyb3IgfV0gPVxuICAgIHVzZUxhenlRdWVyeTxTZWFyY2hFbnRpdGllc0RhdGE+KFNFQVJDSF9FTlRJVElFUywge1xuICAgICAgdmFyaWFibGVzOiB7IGxpbWl0OiAyMCB9LFxuICAgICAgZmV0Y2hQb2xpY3k6ICduZXR3b3JrLW9ubHknLFxuICAgIH0pXG5cbiAgLy8gLS0tIFNlYXJjaDogY2xpZW50IChHcmFwaFFMKSAtLS1cbiAgY29uc3QgW2ZldGNoU2VhcmNoQ2xpZW50cywgeyBkYXRhOiBjbGllbnRzRGF0YSwgbG9hZGluZzogY2xpZW50c0xvYWRpbmcsIGVycm9yOiBjbGllbnRzRXJyb3IgfV0gPVxuICAgIHVzZUxhenlRdWVyeTxTZWFyY2hDbGllbnRzRGF0YT4oU0VBUkNIX0NMSUVOVFMsIHtcbiAgICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgICB9KVxuXG4gIC8vIC0tLSBTZWFyY2g6IHVzZXIgKEdyYXBoUUw6IHVzZXJzKSAtLS1cbiAgY29uc3QgW2ZldGNoVXNlcnNEaXJlY3RvcnksIHsgZGF0YTogdXNlcnNEYXRhLCBsb2FkaW5nOiB1c2Vyc0xvYWRpbmcsIGVycm9yOiB1c2Vyc0Vycm9yIH1dID1cbiAgICB1c2VMYXp5UXVlcnk8VXNlcnNEaXJlY3RvcnlEYXRhPihVU0VSU19ESVJFQ1RPUlksIHtcbiAgICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgICB9KVxuXG4gIGNvbnN0IHN5bmNVc2Vyc1BhZ2luYXRpb24gPSB1c2VDYWxsYmFjaygocGF5bG9hZD86IFVzZXJzRGlyZWN0b3J5RGF0YSB8IG51bGwpID0+IHtcbiAgICBjb25zdCBwYWdlID0gbm9ybWFsaXplUG9zaXRpdmVJbnQocGF5bG9hZD8udXNlcnM/LnBhZ2UsIDEpXG4gICAgY29uc3QgbGFzdFBhZ2UgPSBub3JtYWxpemVQb3NpdGl2ZUludChwYXlsb2FkPy51c2Vycz8ubGFzdFBhZ2UsIHBhZ2UpXG4gICAgc2V0Q3VycmVudFBhZ2UocGFnZSlcbiAgICBzZXRIYXNNb3JlKHBhZ2UgPCBsYXN0UGFnZSlcbiAgfSwgW10pXG5cbiAgY29uc3Qgc3luY0NsaWVudHNQYWdpbmF0aW9uID0gdXNlQ2FsbGJhY2soKHBheWxvYWQ/OiBTZWFyY2hDbGllbnRzRGF0YSB8IG51bGwpID0+IHtcbiAgICBjb25zdCBwYWdlID0gbm9ybWFsaXplUG9zaXRpdmVJbnQocGF5bG9hZD8uY2xpZW50cz8ucGFnZSwgMSlcbiAgICBjb25zdCBsYXN0UGFnZSA9IG5vcm1hbGl6ZVBvc2l0aXZlSW50KHBheWxvYWQ/LmNsaWVudHM/Lmxhc3RQYWdlLCBwYWdlKVxuICAgIHNldEN1cnJlbnRQYWdlKHBhZ2UpXG4gICAgc2V0SGFzTW9yZShwYWdlIDwgbGFzdFBhZ2UpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHN5bmNUYXNrRmFsbGJhY2tQYWdpbmF0aW9uID0gdXNlQ2FsbGJhY2soKHBheWxvYWQ/OiBUYXNrRmFtaWx5RGF0YSB8IG51bGwpID0+IHtcbiAgICBjb25zdCByYXdQYWdlID0gTnVtYmVyKHBheWxvYWQ/LnRhc2tGYW1pbHk/LnBhZ2UpXG4gICAgLy8gdGFza0ZhbWlseSB1c2EgcMOhZ2luYXMgMC1iYXNlZDsgY29udmVydGltb3MgYSAxLWJhc2VkIHBhcmEgY29uc2lzdGVuY2lhIGNvbiBlbCByZXN0b1xuICAgIGNvbnN0IHBhZ2UgPSBOdW1iZXIuaXNGaW5pdGUocmF3UGFnZSkgJiYgcmF3UGFnZSA+PSAwID8gTWF0aC5mbG9vcihyYXdQYWdlKSArIDEgOiAxXG4gICAgY29uc3QgbGFzdFBhZ2UgPSBub3JtYWxpemVQb3NpdGl2ZUludChwYXlsb2FkPy50YXNrRmFtaWx5Py5sYXN0UGFnZSwgcGFnZSlcbiAgICBzZXRDdXJyZW50UGFnZShwYWdlKVxuICAgIHNldEhhc01vcmUocGFnZSA8IGxhc3RQYWdlKVxuICB9LCBbXSlcblxuICBjb25zdCBzeW5jUHJvamVjdEZhbGxiYWNrUGFnaW5hdGlvbiA9IHVzZUNhbGxiYWNrKChwYXlsb2FkPzogUHJvamVjdHNGYWxsYmFja0RhdGEgfCBudWxsKSA9PiB7XG4gICAgY29uc3QgcGFnZSA9IG5vcm1hbGl6ZVBvc2l0aXZlSW50KHBheWxvYWQ/LnByb2plY3RzPy5wYWdlLCAxKVxuICAgIGNvbnN0IGxhc3RQYWdlID0gbm9ybWFsaXplUG9zaXRpdmVJbnQocGF5bG9hZD8ucHJvamVjdHM/Lmxhc3RQYWdlLCBwYWdlKVxuICAgIHNldEN1cnJlbnRQYWdlKHBhZ2UpXG4gICAgc2V0SGFzTW9yZShwYWdlIDwgbGFzdFBhZ2UpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IFtmZXRjaFRhc2tGYW1pbHlGYWxsYmFja10gPSB1c2VMYXp5UXVlcnk8VGFza0ZhbWlseURhdGE+KFRBU0tfRkFNSUxZX0ZBTExCQUNLLCB7XG4gICAgZmV0Y2hQb2xpY3k6ICduZXR3b3JrLW9ubHknLFxuICB9KVxuXG4gIGNvbnN0IFtmZXRjaFByb2plY3RzRmFsbGJhY2tdID0gdXNlTGF6eVF1ZXJ5PFByb2plY3RzRmFsbGJhY2tEYXRhPihQUk9KRUNUU19GQUxMQkFDSywge1xuICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgfSlcblxuICBjb25zdCBmZXRjaFJlY2VudCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQgKz0gMVxuICAgIGNvbnN0IGdlbmVyYXRpb24gPSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnRcblxuICAgIGlmICh0eXBlID09PSAnbWNwJykge1xuICAgICAgY29uc3Qgc2x1Z3MgPSBzdGFibGVTY29wZS5tY3BTbHVncyA/PyBbXVxuICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIHNldEVycm9yKGZhbHNlKVxuICAgICAgc2V0SXRlbXMobWFwTWNwU2x1Z3NUb0l0ZW1zKHNsdWdzLCAnJykpXG4gICAgICBzZXRIaWRlUmVjZW50c0xhYmVsKGZhbHNlKVxuICAgICAgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZSgnbm9uZScpXG4gICAgICBzZXRIYXNNb3JlKGZhbHNlKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09ICdza2lsbCcpIHtcbiAgICAgIGlmIChzdGFibGVTY29wZS5za2lsbHMpIHtcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgICAgIHNldEl0ZW1zKG1hcFNraWxsc1RvSXRlbXMoc3RhYmxlU2NvcGUuc2tpbGxzLCAnJykpXG4gICAgICAgIHNldEhpZGVSZWNlbnRzTGFiZWwodHJ1ZSlcbiAgICAgICAgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZSgnbm9uZScpXG4gICAgICAgIHNldEhhc01vcmUoZmFsc2UpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgc2V0TG9hZGluZyh0cnVlKVxuICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7IHBhdGg6ICdza2lsbHMnLCBtZXRob2Q6ICdHRVQnIH0pXG4gICAgICAgIGNvbnN0IGRhdGE6IFNraWxsc0FwaVJlc3BvbnNlID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgICAgIGlmIChnZW5lcmF0aW9uICE9PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgICBjb25zdCBza2lsbHM6IFNraWxsW10gPSBkYXRhLmRhdGEgPz8gW11cbiAgICAgICAgY29uc3QgY2FuUGFnaW5hdGUgPSAhIWRhdGEuaGFzX21vcmUgJiYgZGF0YS5uZXh0X29mZnNldCAhPSBudWxsXG4gICAgICAgIHNldEl0ZW1zKG1hcFNraWxsc1RvSXRlbXMoc2tpbGxzLCAnJykpXG4gICAgICAgIHNldEhpZGVSZWNlbnRzTGFiZWwodHJ1ZSlcbiAgICAgICAgc2V0SGFzTW9yZShjYW5QYWdpbmF0ZSlcbiAgICAgICAgc2V0Q3VycmVudFBhZ2UoZGF0YS5uZXh0X29mZnNldCA/PyAwKVxuICAgICAgICBzZXRBY3RpdmVQYWdpbmF0aW9uU291cmNlKGNhblBhZ2luYXRlID8gJ3NraWxscycgOiAnbm9uZScpXG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgaWYgKGdlbmVyYXRpb24gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIHNldEVycm9yKHRydWUpXG4gICAgICAgIHNldEl0ZW1zKFtdKVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaWYgKGdlbmVyYXRpb24gPT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIH1cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICBzZXRFcnJvcihmYWxzZSlcbiAgICB0cnkge1xuICAgICAgaWYgKHR5cGUgPT09ICdjbGllbnQnKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBnZXRSZWNlbnRDbGllbnRzKClcbiAgICAgICAgaWYgKGdlbmVyYXRpb24gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIGNvbnN0IG1hcHBlZCA9IChkYXRhID8/IFtdKS5tYXAoYyA9PiBtYXBDbGllbnRUb0l0ZW0oYywgJycpKVxuICAgICAgICBpZiAoZ2VuZXJhdGlvbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgc2V0SXRlbXMobWFwcGVkKVxuICAgICAgICBzZXRIaWRlUmVjZW50c0xhYmVsKGZhbHNlKVxuICAgICAgICBzZXRBY3RpdmVQYWdpbmF0aW9uU291cmNlKCdub25lJylcbiAgICAgICAgc2V0SGFzTW9yZShmYWxzZSlcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3Byb2plY3QnKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBnZXRSZWNlbnRQcm9qZWN0cyhzdGFibGVTY29wZS5jbGllbnRJZCA/IHsgY2xpZW50SWQ6IHN0YWJsZVNjb3BlLmNsaWVudElkIH0gOiB1bmRlZmluZWQpXG4gICAgICAgIGlmIChnZW5lcmF0aW9uICE9PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgICBsZXQgbWFwcGVkID0gKEFycmF5LmlzQXJyYXkoZGF0YSkgPyBkYXRhIDogW10pLm1hcChwID0+XG4gICAgICAgICAgbWFwU2VhcmNoVG9JdGVtKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogcC5pZCxcbiAgICAgICAgICAgICAgdGl0bGU6IHAudGl0bGUsXG4gICAgICAgICAgICAgIHR5cGU6ICdwcm9qZWN0JyxcbiAgICAgICAgICAgICAgY2xpZW50SWQ6IHAuY2xpZW50SWQsXG4gICAgICAgICAgICAgIGZlZUlkOiBwLmZlZUlkLFxuICAgICAgICAgICAgICBjbGllbnROYW1lOiBwLmNsaWVudE5hbWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgJ3Byb2plY3QnLFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICAgaWYgKG1hcHBlZC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBjb25zdCBhcmd1bWVudHNGaWx0ZXIgPVxuICAgICAgICAgICAgc3RhYmxlU2NvcGUuY2xpZW50SWQgIT09IG51bGwgJiYgc3RhYmxlU2NvcGUuY2xpZW50SWQgIT09IHVuZGVmaW5lZCAmJiBzdGFibGVTY29wZS5jbGllbnRJZCAhPT0gJydcbiAgICAgICAgICAgICAgPyB7IGNsaWVudF9pZDogW1N0cmluZyhzdGFibGVTY29wZS5jbGllbnRJZCldIH1cbiAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICBjb25zdCB7IGRhdGE6IGZhbGxiYWNrRGF0YSB9ID0gYXdhaXQgZmV0Y2hQcm9qZWN0c0ZhbGxiYWNrKHtcbiAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAuLi4oYXJndW1lbnRzRmlsdGVyID8geyBhcmd1bWVudHM6IGFyZ3VtZW50c0ZpbHRlciB9IDoge30pLFxuICAgICAgICAgICAgICBwYWdlOiAxLFxuICAgICAgICAgICAgICBwZXJQYWdlOiAyMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgICBpZiAoZ2VuZXJhdGlvbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgICBjb25zdCBmYWxsYmFja01hcHBlZCA9IChmYWxsYmFja0RhdGE/LnByb2plY3RzPy5kYXRhID8/IFtdKVxuICAgICAgICAgICAgLm1hcChub3JtYWxpemVQcm9qZWN0c0ZhbGxiYWNrUmVjb3JkKVxuICAgICAgICAgICAgLmZpbHRlcigoaXRlbSk6IGl0ZW0gaXMgUmF3U2VhcmNoUmVzdWx0ID0+IGl0ZW0gIT09IG51bGwpXG4gICAgICAgICAgICAubWFwKGl0ZW0gPT4gbWFwU2VhcmNoVG9JdGVtKGl0ZW0sICdwcm9qZWN0JywgJycpKVxuICAgICAgICAgIG1hcHBlZCA9IGZhbGxiYWNrTWFwcGVkXG4gICAgICAgICAgc2V0SGlkZVJlY2VudHNMYWJlbChmYWxsYmFja01hcHBlZC5sZW5ndGggPiAwKVxuICAgICAgICAgIHNldEFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UoJ3Byb2plY3QtZmFsbGJhY2snKVxuICAgICAgICAgIHN5bmNQcm9qZWN0RmFsbGJhY2tQYWdpbmF0aW9uKGZhbGxiYWNrRGF0YSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRIaWRlUmVjZW50c0xhYmVsKGZhbHNlKVxuICAgICAgICAgIHNldEFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UoJ25vbmUnKVxuICAgICAgICAgIHNldEhhc01vcmUoZmFsc2UpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGdlbmVyYXRpb24gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIHNldEl0ZW1zKG1hcHBlZClcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3Rhc2snKSB7XG4gICAgICAgIGxldCByZWNlbnRUYXNrRmlsdGVyczogeyBwcm9qZWN0SWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsOyBjbGllbnRJZD86IHN0cmluZyB8IG51bWJlciB8IG51bGwgfSB8IHVuZGVmaW5lZFxuICAgICAgICBpZiAoc3RhYmxlU2NvcGUuYWdlbnRFbnRpdHkgPT09ICdwcm9qZWN0Jykge1xuICAgICAgICAgIHJlY2VudFRhc2tGaWx0ZXJzID0geyBwcm9qZWN0SWQ6IHN0YWJsZVNjb3BlLnByb2plY3RJZCB9XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhYmxlU2NvcGUuYWdlbnRFbnRpdHkgPT09ICdjbGllbnQnKSB7XG4gICAgICAgICAgcmVjZW50VGFza0ZpbHRlcnMgPSB7IGNsaWVudElkOiBzdGFibGVTY29wZS5jbGllbnRJZCB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGdldFJlY2VudFRhc2tzKHJlY2VudFRhc2tGaWx0ZXJzKVxuICAgICAgICBpZiAoZ2VuZXJhdGlvbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgbGV0IHRhc2tJdGVtcyA9IChkYXRhID8/IFtdKS5tYXAodGFzayA9PiBtYXBSZWNlbnRUYXNrVG9JdGVtKHRhc2ssICcnLCBzaG93UHJvamVjdE5hbWVJblRhc2tSb3cpKVxuICAgICAgICBpZiAodGFza0l0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGNvbnN0IGZpbHRlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge31cbiAgICAgICAgICBpZiAoc3RhYmxlU2NvcGUucHJvamVjdElkICE9PSBudWxsICYmIHN0YWJsZVNjb3BlLnByb2plY3RJZCAhPT0gdW5kZWZpbmVkICYmIHN0YWJsZVNjb3BlLnByb2plY3RJZCAhPT0gJycpIHtcbiAgICAgICAgICAgIGZpbHRlci5wcm9qZWN0SWRzID0gW1N0cmluZyhzdGFibGVTY29wZS5wcm9qZWN0SWQpXVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc3RhYmxlU2NvcGUuY2xpZW50SWQgIT09IG51bGwgJiYgc3RhYmxlU2NvcGUuY2xpZW50SWQgIT09IHVuZGVmaW5lZCAmJiBzdGFibGVTY29wZS5jbGllbnRJZCAhPT0gJycpIHtcbiAgICAgICAgICAgIGZpbHRlci5jbGllbnRJZHMgPSBbU3RyaW5nKHN0YWJsZVNjb3BlLmNsaWVudElkKV1cbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgeyBkYXRhOiBmYWxsYmFja0RhdGEgfSA9IGF3YWl0IGZldGNoVGFza0ZhbWlseUZhbGxiYWNrKHtcbiAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICBmaWx0ZXI6IHsgYXJjaGl2ZWQ6IGZhbHNlLCAuLi5maWx0ZXIgfSxcbiAgICAgICAgICAgICAgcGFnaW5hdGlvbjogeyBvZmZzZXQ6IDAsIHNpemU6IDIwIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICAgaWYgKGdlbmVyYXRpb24gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgICAgdGFza0l0ZW1zID0gKGZhbGxiYWNrRGF0YT8udGFza0ZhbWlseT8uZGF0YSA/PyBbXSlcbiAgICAgICAgICAgIC5tYXAobm9ybWFsaXplVGFza0ZhbWlseVJlY29yZClcbiAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pOiBpdGVtIGlzIFJlY2VudFRhc2tJdGVtID0+IGl0ZW0gIT09IG51bGwpXG4gICAgICAgICAgICAubWFwKHRhc2sgPT4gbWFwUmVjZW50VGFza1RvSXRlbSh0YXNrLCAnJywgc2hvd1Byb2plY3ROYW1lSW5UYXNrUm93KSlcbiAgICAgICAgICBzZXRIaWRlUmVjZW50c0xhYmVsKHRhc2tJdGVtcy5sZW5ndGggPiAwKVxuICAgICAgICAgIHNldEFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UoJ3Rhc2stZmFsbGJhY2snKVxuICAgICAgICAgIHN5bmNUYXNrRmFsbGJhY2tQYWdpbmF0aW9uKGZhbGxiYWNrRGF0YSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRIaWRlUmVjZW50c0xhYmVsKGZhbHNlKVxuICAgICAgICAgIHNldEFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UoJ25vbmUnKVxuICAgICAgICAgIHNldEhhc01vcmUoZmFsc2UpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGdlbmVyYXRpb24gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIHNldEl0ZW1zKHRhc2tJdGVtcylcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3VzZXInKSB7XG4gICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgZmV0Y2hVc2Vyc0RpcmVjdG9yeSh7XG4gICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICBmaWx0ZXJzOiBidWlsZFVzZXJzRGlyZWN0b3J5RmlsdGVycygnJyksXG4gICAgICAgICAgICBwYWdlOiAxLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgIGlmIChnZW5lcmF0aW9uICE9PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgICBjb25zdCBtYXBwZWQgPSAoZGF0YT8udXNlcnM/LmRhdGEgPz8gW10pLm1hcCh1ID0+IG1hcFVzZXJUb0l0ZW0odSwgJycpKVxuICAgICAgICBpZiAoZ2VuZXJhdGlvbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgY29uc3QgbWVJdGVtID0gbWFwQ29yVXNlclRvVXNlckl0ZW0oY29yVXNlciwgJycsIHQoJ2NvbnRleHRNZW50aW9uLm1lJykpXG4gICAgICAgIGNvbnN0IHdpdGhvdXRNZSA9IG1hcHBlZC5maWx0ZXIoaXRlbSA9PiBTdHJpbmcoaXRlbS5pZCkgIT09IFN0cmluZyhtZUl0ZW0uaWQpKVxuICAgICAgICBzZXRJdGVtcyhbbWVJdGVtLCAuLi53aXRob3V0TWVdKVxuICAgICAgICBzeW5jVXNlcnNQYWdpbmF0aW9uKGRhdGEpXG4gICAgICAgIHNldEhpZGVSZWNlbnRzTGFiZWwoZmFsc2UpXG4gICAgICAgIHNldEFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UoJ3VzZXJzJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChnZW5lcmF0aW9uICE9PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgICBzZXRJdGVtcyhbXSlcbiAgICAgICAgc2V0SGlkZVJlY2VudHNMYWJlbChmYWxzZSlcbiAgICAgICAgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZSgnbm9uZScpXG4gICAgICAgIHNldEhhc01vcmUoZmFsc2UpXG4gICAgICAgIHNldEN1cnJlbnRQYWdlKDEpXG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICBpZiAoZ2VuZXJhdGlvbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgIHNldEVycm9yKHRydWUpXG4gICAgICBzZXRJdGVtcyhbXSlcbiAgICAgIHNldEhpZGVSZWNlbnRzTGFiZWwoZmFsc2UpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChnZW5lcmF0aW9uID09PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtcbiAgICB0eXBlLFxuICAgIHN0YWJsZVNjb3BlLFxuICAgIGZldGNoVXNlcnNEaXJlY3RvcnksXG4gICAgZmV0Y2hUYXNrRmFtaWx5RmFsbGJhY2ssXG4gICAgZmV0Y2hQcm9qZWN0c0ZhbGxiYWNrLFxuICAgIHN5bmNVc2Vyc1BhZ2luYXRpb24sXG4gICAgc3luY1Rhc2tGYWxsYmFja1BhZ2luYXRpb24sXG4gICAgc3luY1Byb2plY3RGYWxsYmFja1BhZ2luYXRpb24sXG4gICAgc2hvd1Byb2plY3ROYW1lSW5UYXNrUm93LFxuICAgIGNvclVzZXIsXG4gICAgdCxcbiAgXSlcblxuICAvLyBEaXNwYXJhciBzZWFyY2ggYWwgY2FtYmlhciBkZWJvdW5jZWQgdmFsdWVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBxID0gZGVib3VuY2VkU2VhcmNoVmFsdWUudHJpbSgpXG5cbiAgICBpZiAodHlwZSA9PT0gJ21jcCcpIHtcbiAgICAgIGNvbnN0IHNsdWdzID0gc3RhYmxlU2NvcGUubWNwU2x1Z3MgPz8gW11cbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICAgIHNldEl0ZW1zKG1hcE1jcFNsdWdzVG9JdGVtcyhzbHVncywgcSkpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ3NraWxsJykge1xuICAgICAgaWYgKHN0YWJsZVNjb3BlLnNraWxscykge1xuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICAgICAgc2V0SXRlbXMobWFwU2tpbGxzVG9JdGVtcyhzdGFibGVTY29wZS5za2lsbHMsIHEpKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmICghcSkgcmV0dXJuXG4gICAgICByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQgKz0gMVxuICAgICAgY29uc3Qgc2VhcmNoR2VuID0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50XG4gICAgICBzZXRMb2FkaW5nKHRydWUpXG4gICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICAgIGZldGNoTWFpYSh7XG4gICAgICAgIHBhdGg6IGBza2lsbHM/cT0ke2VuY29kZVVSSUNvbXBvbmVudChxKX1gLFxuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgfSlcbiAgICAgICAgLnRoZW4ociA9PiByLmpzb24oKSBhcyBQcm9taXNlPFNraWxsc0FwaVJlc3BvbnNlPilcbiAgICAgICAgLnRoZW4oZGF0YSA9PiB7XG4gICAgICAgICAgaWYgKHNlYXJjaEdlbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgICBjb25zdCBjYW5QYWdpbmF0ZSA9ICEhZGF0YS5oYXNfbW9yZSAmJiBkYXRhLm5leHRfb2Zmc2V0ICE9IG51bGxcbiAgICAgICAgICBzZXRJdGVtcyhtYXBTa2lsbHNUb0l0ZW1zKGRhdGEuZGF0YSA/PyBbXSwgcSkpXG4gICAgICAgICAgc2V0SGFzTW9yZShjYW5QYWdpbmF0ZSlcbiAgICAgICAgICBzZXRDdXJyZW50UGFnZShkYXRhLm5leHRfb2Zmc2V0ID8/IDApXG4gICAgICAgICAgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZShjYW5QYWdpbmF0ZSA/ICdza2lsbHMnIDogJ25vbmUnKVxuICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHNlYXJjaEdlbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgICBzZXRFcnJvcih0cnVlKVxuICAgICAgICAgIHNldEl0ZW1zKFtdKVxuICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICAgIH0pXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIXEpIHJldHVyblxuXG4gICAgaWYgKHR5cGUgPT09ICdjbGllbnQnKSB7XG4gICAgICBmZXRjaFNlYXJjaENsaWVudHMoe1xuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICBmaWx0ZXI6IHsgbmFtZTogcSB9LFxuICAgICAgICAgIHBhZ2U6IDEsXG4gICAgICAgICAgcGVyUGFnZTogMjAsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZSgnY2xpZW50cy1zZWFyY2gnKVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3VzZXInKSB7XG4gICAgICBmZXRjaFVzZXJzRGlyZWN0b3J5KHtcbiAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgZmlsdGVyczogYnVpbGRVc2Vyc0RpcmVjdG9yeUZpbHRlcnMocSksXG4gICAgICAgICAgcGFnZTogMSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICBzZXRBY3RpdmVQYWdpbmF0aW9uU291cmNlKCd1c2VycycpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZpbHRlcnMgPSBidWlsZEZpbHRlcnNGb3JUeXBlKHR5cGUpXG4gICAgICBjb25zdCBleHRyYSA9IGJ1aWxkU2VhcmNoRW50aXRpZXNFeHRyYSh0eXBlLCBzdGFibGVTY29wZSlcbiAgICAgIGZldGNoU2VhcmNoRW50aXRpZXMoe1xuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICBxLFxuICAgICAgICAgIGZpbHRlcnMsXG4gICAgICAgICAgLi4uKGV4dHJhICE9PSB1bmRlZmluZWQgPyB7IGV4dHJhIH0gOiB7fSksXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZSgnbm9uZScpXG4gICAgICBzZXRIYXNNb3JlKGZhbHNlKVxuICAgIH1cbiAgfSwgW2RlYm91bmNlZFNlYXJjaFZhbHVlLCB0eXBlLCBzdGFibGVTY29wZSwgZmV0Y2hTZWFyY2hFbnRpdGllcywgZmV0Y2hTZWFyY2hDbGllbnRzLCBmZXRjaFVzZXJzRGlyZWN0b3J5XSlcblxuICAvLyBTaW5jcm9uaXphciByZXN1bHRhZG9zIGRlIHNlYXJjaFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0eXBlID09PSAnbWNwJykgcmV0dXJuXG4gICAgaWYgKHR5cGUgPT09ICdza2lsbCcpIHJldHVyblxuXG4gICAgY29uc3QgcSA9IGRlYm91bmNlZFNlYXJjaFZhbHVlLnRyaW0oKVxuICAgIGlmICghcSkgcmV0dXJuXG4gICAgc2V0SGlkZVJlY2VudHNMYWJlbChmYWxzZSlcblxuICAgIGlmICh0eXBlID09PSAnY2xpZW50Jykge1xuICAgICAgc2V0TG9hZGluZyhjbGllbnRzTG9hZGluZylcbiAgICAgIGlmIChjbGllbnRzRXJyb3IpIHtcbiAgICAgICAgc2V0RXJyb3IodHJ1ZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpZiAoY2xpZW50c0RhdGE/LmNsaWVudHM/LmRhdGEpIHtcbiAgICAgICAgc2V0SXRlbXMoY2xpZW50c0RhdGEuY2xpZW50cy5kYXRhLm1hcChjID0+IG1hcENsaWVudFRvSXRlbShjLCBxKSkpXG4gICAgICAgIHN5bmNDbGllbnRzUGFnaW5hdGlvbihjbGllbnRzRGF0YSlcbiAgICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAndXNlcicpIHtcbiAgICAgIHNldExvYWRpbmcodXNlcnNMb2FkaW5nKVxuICAgICAgaWYgKHVzZXJzRXJyb3IpIHtcbiAgICAgICAgc2V0RXJyb3IodHJ1ZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpZiAodXNlcnNEYXRhPy51c2Vycz8uZGF0YSkge1xuICAgICAgICBjb25zdCBtYXBwZWQgPSB1c2Vyc0RhdGEudXNlcnMuZGF0YS5tYXAodSA9PiBtYXBVc2VyVG9JdGVtKHUsIHEpKVxuICAgICAgICBjb25zdCBtZUlkID0gU3RyaW5nKGNvclVzZXIuaWQpXG4gICAgICAgIGNvbnN0IGhhc01lSW5SZXN1bHRzID0gbWFwcGVkLnNvbWUoaXRlbSA9PiBTdHJpbmcoaXRlbS5pZCkgPT09IG1lSWQpXG4gICAgICAgIGNvbnN0IHdpdGhvdXRNZSA9IG1hcHBlZC5maWx0ZXIoaXRlbSA9PiBTdHJpbmcoaXRlbS5pZCkgIT09IG1lSWQpXG4gICAgICAgIGNvbnN0IG1lSXRlbSA9IG1hcENvclVzZXJUb1VzZXJJdGVtKGNvclVzZXIsIHEsIHQoJ2NvbnRleHRNZW50aW9uLm1lJykpXG4gICAgICAgIHNldEl0ZW1zKGhhc01lSW5SZXN1bHRzID8gW21lSXRlbSwgLi4ud2l0aG91dE1lXSA6IG1hcHBlZClcbiAgICAgICAgc3luY1VzZXJzUGFnaW5hdGlvbih1c2Vyc0RhdGEpXG4gICAgICAgIHNldEVycm9yKGZhbHNlKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRMb2FkaW5nKHNlYXJjaExvYWRpbmcpXG4gICAgICBpZiAoc2VhcmNoRXJyb3IpIHtcbiAgICAgICAgc2V0RXJyb3IodHJ1ZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpZiAoc2VhcmNoRGF0YT8uc2VhcmNoKSB7XG4gICAgICAgIHNldEl0ZW1zKHNlYXJjaERhdGEuc2VhcmNoLm1hcChyID0+IG1hcFNlYXJjaFRvSXRlbShyLCB0eXBlLCBxLCBzaG93UHJvamVjdE5hbWVJblRhc2tSb3cpKSlcbiAgICAgICAgc2V0SGFzTW9yZShmYWxzZSlcbiAgICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgICB9XG4gICAgfVxuICB9LCBbXG4gICAgc2VhcmNoRGF0YSxcbiAgICBjbGllbnRzRGF0YSxcbiAgICB1c2Vyc0RhdGEsXG4gICAgc2VhcmNoTG9hZGluZyxcbiAgICBjbGllbnRzTG9hZGluZyxcbiAgICB1c2Vyc0xvYWRpbmcsXG4gICAgc2VhcmNoRXJyb3IsXG4gICAgY2xpZW50c0Vycm9yLFxuICAgIHVzZXJzRXJyb3IsXG4gICAgZGVib3VuY2VkU2VhcmNoVmFsdWUsXG4gICAgdHlwZSxcbiAgICBzeW5jQ2xpZW50c1BhZ2luYXRpb24sXG4gICAgc3luY1VzZXJzUGFnaW5hdGlvbixcbiAgICBzaG93UHJvamVjdE5hbWVJblRhc2tSb3csXG4gICAgY29yVXNlcixcbiAgICB0LFxuICBdKVxuXG4gIGNvbnN0IGxvYWRNb3JlID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGlmIChpc0xvYWRpbmdNb3JlIHx8ICFoYXNNb3JlIHx8IGFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UgPT09ICdub25lJykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IHNhZmVDdXJyZW50UGFnZSA9IG5vcm1hbGl6ZVBvc2l0aXZlSW50KGN1cnJlbnRQYWdlLCAxKVxuICAgIGNvbnN0IG5leHRQYWdlID0gc2FmZUN1cnJlbnRQYWdlICsgMVxuICAgIGNvbnN0IHEgPSBkZWJvdW5jZWRTZWFyY2hWYWx1ZS50cmltKClcbiAgICBjb25zdCBsb2FkTW9yZUJhc2VsaW5lR2VuID0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50XG4gICAgc2V0SXNMb2FkaW5nTW9yZSh0cnVlKVxuICAgIHRyeSB7XG4gICAgICBpZiAoYWN0aXZlUGFnaW5hdGlvblNvdXJjZSA9PT0gJ3VzZXJzJykge1xuICAgICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IGZldGNoVXNlcnNEaXJlY3Rvcnkoe1xuICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgZmlsdGVyczogYnVpbGRVc2Vyc0RpcmVjdG9yeUZpbHRlcnMocSksXG4gICAgICAgICAgICBwYWdlOiBuZXh0UGFnZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICBpZiAobG9hZE1vcmVCYXNlbGluZUdlbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgY29uc3QgbmV4dEl0ZW1zID0gKGRhdGE/LnVzZXJzPy5kYXRhID8/IFtdKS5tYXAodSA9PiBtYXBVc2VyVG9JdGVtKHUsIHEpKVxuICAgICAgICBzZXRJdGVtcyhwcmV2ID0+IHtcbiAgICAgICAgICBpZiAoIXEpIHtcbiAgICAgICAgICAgIGNvbnN0IG1lSXRlbSA9XG4gICAgICAgICAgICAgIHByZXZbMF0/LnR5cGUgPT09ICd1c2VyJyA/IHByZXZbMF0gOiBtYXBDb3JVc2VyVG9Vc2VySXRlbShjb3JVc2VyLCAnJywgdCgnY29udGV4dE1lbnRpb24ubWUnKSlcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2Lm1hcChpdGVtID0+IFN0cmluZyhpdGVtLmlkKSkpXG4gICAgICAgICAgICBjb25zdCBhcHBlbmRlZCA9IG5leHRJdGVtcy5maWx0ZXIoaXRlbSA9PiAhZXhpc3RpbmdJZHMuaGFzKFN0cmluZyhpdGVtLmlkKSkpXG4gICAgICAgICAgICBjb25zdCB3aXRob3V0TWUgPSBwcmV2LmZpbHRlcihpdGVtID0+IFN0cmluZyhpdGVtLmlkKSAhPT0gU3RyaW5nKG1lSXRlbS5pZCkpXG4gICAgICAgICAgICByZXR1cm4gW21lSXRlbSwgLi4ud2l0aG91dE1lLCAuLi5hcHBlbmRlZF1cbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0KHByZXYubWFwKGl0ZW0gPT4gYCR7aXRlbS50eXBlfS0ke2l0ZW0uaWR9YCkpXG4gICAgICAgICAgY29uc3QgYXBwZW5kZWQgPSBuZXh0SXRlbXMuZmlsdGVyKGl0ZW0gPT4gIWV4aXN0aW5nSWRzLmhhcyhgJHtpdGVtLnR5cGV9LSR7aXRlbS5pZH1gKSlcbiAgICAgICAgICByZXR1cm4gWy4uLnByZXYsIC4uLmFwcGVuZGVkXVxuICAgICAgICB9KVxuICAgICAgICBzeW5jVXNlcnNQYWdpbmF0aW9uKGRhdGEpXG4gICAgICB9IGVsc2UgaWYgKGFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UgPT09ICdjbGllbnRzLXNlYXJjaCcpIHtcbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCBmZXRjaFNlYXJjaENsaWVudHMoe1xuICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgZmlsdGVyOiB7IG5hbWU6IHEgfSxcbiAgICAgICAgICAgIHBhZ2U6IG5leHRQYWdlLFxuICAgICAgICAgICAgcGVyUGFnZTogMjAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGxvYWRNb3JlQmFzZWxpbmVHZW4gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIGNvbnN0IG5leHRJdGVtcyA9IChkYXRhPy5jbGllbnRzPy5kYXRhID8/IFtdKS5tYXAoYyA9PiBtYXBDbGllbnRUb0l0ZW0oYywgcSkpXG4gICAgICAgIHNldEl0ZW1zKHByZXYgPT4ge1xuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2Lm1hcChpdGVtID0+IGAke2l0ZW0udHlwZX0tJHtpdGVtLmlkfWApKVxuICAgICAgICAgIGNvbnN0IGFwcGVuZGVkID0gbmV4dEl0ZW1zLmZpbHRlcihpdGVtID0+ICFleGlzdGluZ0lkcy5oYXMoYCR7aXRlbS50eXBlfS0ke2l0ZW0uaWR9YCkpXG4gICAgICAgICAgcmV0dXJuIFsuLi5wcmV2LCAuLi5hcHBlbmRlZF1cbiAgICAgICAgfSlcbiAgICAgICAgc3luY0NsaWVudHNQYWdpbmF0aW9uKGRhdGEpXG4gICAgICB9IGVsc2UgaWYgKGFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UgPT09ICd0YXNrLWZhbGxiYWNrJykge1xuICAgICAgICBjb25zdCBmaWx0ZXI6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHt9XG4gICAgICAgIGlmIChzdGFibGVTY29wZS5wcm9qZWN0SWQgIT09IG51bGwgJiYgc3RhYmxlU2NvcGUucHJvamVjdElkICE9PSB1bmRlZmluZWQgJiYgc3RhYmxlU2NvcGUucHJvamVjdElkICE9PSAnJykge1xuICAgICAgICAgIGZpbHRlci5wcm9qZWN0SWRzID0gW1N0cmluZyhzdGFibGVTY29wZS5wcm9qZWN0SWQpXVxuICAgICAgICB9XG4gICAgICAgIGlmIChzdGFibGVTY29wZS5jbGllbnRJZCAhPT0gbnVsbCAmJiBzdGFibGVTY29wZS5jbGllbnRJZCAhPT0gdW5kZWZpbmVkICYmIHN0YWJsZVNjb3BlLmNsaWVudElkICE9PSAnJykge1xuICAgICAgICAgIGZpbHRlci5jbGllbnRJZHMgPSBbU3RyaW5nKHN0YWJsZVNjb3BlLmNsaWVudElkKV1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IGZldGNoVGFza0ZhbWlseUZhbGxiYWNrKHtcbiAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgIGZpbHRlcjogeyBhcmNoaXZlZDogZmFsc2UsIC4uLmZpbHRlciB9LFxuICAgICAgICAgICAgcGFnaW5hdGlvbjogeyBvZmZzZXQ6IChuZXh0UGFnZSAtIDEpICogMjAsIHNpemU6IDIwIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGxvYWRNb3JlQmFzZWxpbmVHZW4gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIGNvbnN0IG5leHRJdGVtcyA9IChkYXRhPy50YXNrRmFtaWx5Py5kYXRhID8/IFtdKVxuICAgICAgICAgIC5tYXAobm9ybWFsaXplVGFza0ZhbWlseVJlY29yZClcbiAgICAgICAgICAuZmlsdGVyKChpdGVtKTogaXRlbSBpcyBSZWNlbnRUYXNrSXRlbSA9PiBpdGVtICE9PSBudWxsKVxuICAgICAgICAgIC5tYXAodGFzayA9PiBtYXBSZWNlbnRUYXNrVG9JdGVtKHRhc2ssICcnLCBzaG93UHJvamVjdE5hbWVJblRhc2tSb3cpKVxuICAgICAgICBzZXRJdGVtcyhwcmV2ID0+IHtcbiAgICAgICAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQocHJldi5tYXAoaXRlbSA9PiBgJHtpdGVtLnR5cGV9LSR7aXRlbS5pZH1gKSlcbiAgICAgICAgICBjb25zdCBhcHBlbmRlZCA9IG5leHRJdGVtcy5maWx0ZXIoaXRlbSA9PiAhZXhpc3RpbmdJZHMuaGFzKGAke2l0ZW0udHlwZX0tJHtpdGVtLmlkfWApKVxuICAgICAgICAgIHJldHVybiBbLi4ucHJldiwgLi4uYXBwZW5kZWRdXG4gICAgICAgIH0pXG4gICAgICAgIHN5bmNUYXNrRmFsbGJhY2tQYWdpbmF0aW9uKGRhdGEpXG4gICAgICB9IGVsc2UgaWYgKGFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UgPT09ICdwcm9qZWN0LWZhbGxiYWNrJykge1xuICAgICAgICBjb25zdCBhcmd1bWVudHNGaWx0ZXIgPVxuICAgICAgICAgIHN0YWJsZVNjb3BlLmNsaWVudElkICE9PSBudWxsICYmIHN0YWJsZVNjb3BlLmNsaWVudElkICE9PSB1bmRlZmluZWQgJiYgc3RhYmxlU2NvcGUuY2xpZW50SWQgIT09ICcnXG4gICAgICAgICAgICA/IHsgY2xpZW50X2lkOiBbU3RyaW5nKHN0YWJsZVNjb3BlLmNsaWVudElkKV0gfVxuICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCBmZXRjaFByb2plY3RzRmFsbGJhY2soe1xuICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgLi4uKGFyZ3VtZW50c0ZpbHRlciA/IHsgYXJndW1lbnRzOiBhcmd1bWVudHNGaWx0ZXIgfSA6IHt9KSxcbiAgICAgICAgICAgIHBhZ2U6IG5leHRQYWdlLFxuICAgICAgICAgICAgcGVyUGFnZTogMjAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGxvYWRNb3JlQmFzZWxpbmVHZW4gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIGNvbnN0IG5leHRJdGVtcyA9IChkYXRhPy5wcm9qZWN0cz8uZGF0YSA/PyBbXSlcbiAgICAgICAgICAubWFwKG5vcm1hbGl6ZVByb2plY3RzRmFsbGJhY2tSZWNvcmQpXG4gICAgICAgICAgLmZpbHRlcigoaXRlbSk6IGl0ZW0gaXMgUmF3U2VhcmNoUmVzdWx0ID0+IGl0ZW0gIT09IG51bGwpXG4gICAgICAgICAgLm1hcChpdGVtID0+IG1hcFNlYXJjaFRvSXRlbShpdGVtLCAncHJvamVjdCcsICcnKSlcbiAgICAgICAgc2V0SXRlbXMocHJldiA9PiB7XG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0KHByZXYubWFwKGl0ZW0gPT4gYCR7aXRlbS50eXBlfS0ke2l0ZW0uaWR9YCkpXG4gICAgICAgICAgY29uc3QgYXBwZW5kZWQgPSBuZXh0SXRlbXMuZmlsdGVyKGl0ZW0gPT4gIWV4aXN0aW5nSWRzLmhhcyhgJHtpdGVtLnR5cGV9LSR7aXRlbS5pZH1gKSlcbiAgICAgICAgICByZXR1cm4gWy4uLnByZXYsIC4uLmFwcGVuZGVkXVxuICAgICAgICB9KVxuICAgICAgICBzeW5jUHJvamVjdEZhbGxiYWNrUGFnaW5hdGlvbihkYXRhKVxuICAgICAgfSBlbHNlIGlmIChhY3RpdmVQYWdpbmF0aW9uU291cmNlID09PSAnc2tpbGxzJykge1xuICAgICAgICBjb25zdCBza2lsbE9mZnNldCA9IGN1cnJlbnRQYWdlXG4gICAgICAgIGNvbnN0IHNraWxsUSA9IGRlYm91bmNlZFNlYXJjaFZhbHVlLnRyaW0oKVxuICAgICAgICBjb25zdCBza2lsbFBhdGggPSBza2lsbFFcbiAgICAgICAgICA/IGBza2lsbHM/b2Zmc2V0PSR7c2tpbGxPZmZzZXR9JnE9JHtlbmNvZGVVUklDb21wb25lbnQoc2tpbGxRKX1gXG4gICAgICAgICAgOiBgc2tpbGxzP29mZnNldD0ke3NraWxsT2Zmc2V0fWBcbiAgICAgICAgY29uc3Qgc2tpbGxSZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7IHBhdGg6IHNraWxsUGF0aCwgbWV0aG9kOiAnR0VUJyB9KVxuICAgICAgICBjb25zdCBza2lsbERhdGE6IFNraWxsc0FwaVJlc3BvbnNlID0gYXdhaXQgc2tpbGxSZXNwb25zZS5qc29uKClcbiAgICAgICAgaWYgKGxvYWRNb3JlQmFzZWxpbmVHZW4gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIGNvbnN0IGNhblBhZ2luYXRlID0gISFza2lsbERhdGEuaGFzX21vcmUgJiYgc2tpbGxEYXRhLm5leHRfb2Zmc2V0ICE9IG51bGxcbiAgICAgICAgY29uc3QgbmV4dEl0ZW1zID0gbWFwU2tpbGxzVG9JdGVtcyhza2lsbERhdGEuZGF0YSA/PyBbXSwgc2tpbGxRKVxuICAgICAgICBzZXRJdGVtcyhwcmV2ID0+IHtcbiAgICAgICAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQocHJldi5tYXAoaXRlbSA9PiBgJHtpdGVtLnR5cGV9LSR7aXRlbS5pZH1gKSlcbiAgICAgICAgICBjb25zdCBhcHBlbmRlZCA9IG5leHRJdGVtcy5maWx0ZXIoaXRlbSA9PiAhZXhpc3RpbmdJZHMuaGFzKGAke2l0ZW0udHlwZX0tJHtpdGVtLmlkfWApKVxuICAgICAgICAgIHJldHVybiBbLi4ucHJldiwgLi4uYXBwZW5kZWRdXG4gICAgICAgIH0pXG4gICAgICAgIHNldEhhc01vcmUoY2FuUGFnaW5hdGUpXG4gICAgICAgIHNldEN1cnJlbnRQYWdlKHNraWxsRGF0YS5uZXh0X29mZnNldCA/PyAwKVxuICAgICAgICBzZXRBY3RpdmVQYWdpbmF0aW9uU291cmNlKGNhblBhZ2luYXRlID8gJ3NraWxscycgOiAnbm9uZScpXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAobG9hZE1vcmVCYXNlbGluZUdlbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1t1c2VFbnRpdHlTZWFyY2hdIGxvYWRNb3JlIGZhaWxlZCcsIHtcbiAgICAgICAgc291cmNlOiBhY3RpdmVQYWdpbmF0aW9uU291cmNlLFxuICAgICAgICBuZXh0UGFnZSxcbiAgICAgICAgZXJyb3I6IGVycixcbiAgICAgIH0pXG4gICAgICAvLyBFdml0YSBsb29wIGRlIHJlaW50ZW50b3MgYXV0b23DoXRpY29zIHBvciBzY3JvbGwgY3VhbmRvIGJhY2tlbmQgZXN0w6EgY2HDrWRvIChlai4gNTAzKS5cbiAgICAgIHNldEVycm9yKHRydWUpXG4gICAgICBzZXRIYXNNb3JlKGZhbHNlKVxuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRJc0xvYWRpbmdNb3JlKGZhbHNlKVxuICAgIH1cbiAgfSwgW1xuICAgIGlzTG9hZGluZ01vcmUsXG4gICAgaGFzTW9yZSxcbiAgICBjdXJyZW50UGFnZSxcbiAgICBhY3RpdmVQYWdpbmF0aW9uU291cmNlLFxuICAgIGRlYm91bmNlZFNlYXJjaFZhbHVlLFxuICAgIGZldGNoVXNlcnNEaXJlY3RvcnksXG4gICAgZmV0Y2hTZWFyY2hDbGllbnRzLFxuICAgIGZldGNoVGFza0ZhbWlseUZhbGxiYWNrLFxuICAgIGZldGNoUHJvamVjdHNGYWxsYmFjayxcbiAgICBzdGFibGVTY29wZS5wcm9qZWN0SWQsXG4gICAgc3RhYmxlU2NvcGUuY2xpZW50SWQsXG4gICAgc2hvd1Byb2plY3ROYW1lSW5UYXNrUm93LFxuICAgIGNvclVzZXIsXG4gICAgdCxcbiAgICBzeW5jQ2xpZW50c1BhZ2luYXRpb24sXG4gICAgc3luY1VzZXJzUGFnaW5hdGlvbixcbiAgICBzeW5jVGFza0ZhbGxiYWNrUGFnaW5hdGlvbixcbiAgICBzeW5jUHJvamVjdEZhbGxiYWNrUGFnaW5hdGlvbixcbiAgXSlcblxuICAvLyBNYW50ZW5lbW9zIHVuYSByZWYgYSBsYSDDumx0aW1hIGZldGNoUmVjZW50IHBhcmEgcXVlIGVsIGVmZmVjdCBkZSByZWNlbnRzIG5vIHNlXG4gIC8vIHJlLWRpc3BhcmUgc29sbyBwb3JxdWUgY2FtYmnDsyBsYSBpZGVudGlkYWQgZGUgZmV0Y2hSZWNlbnQgKHNjb3BlL2NvclVzZXIvdCkuXG4gIGNvbnN0IGZldGNoUmVjZW50UmVmID0gdXNlUmVmKGZldGNoUmVjZW50KVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZldGNoUmVjZW50UmVmLmN1cnJlbnQgPSBmZXRjaFJlY2VudFxuICB9LCBbZmV0Y2hSZWNlbnRdKVxuXG4gIC8vIFRyaWdnZXIgZGUgcmVjZW50czogbG9zIHJlY2VudHMgZGUgdXNlciBOTyBkZXBlbmRlbiBkZWwgc2NvcGUsIGFzw60gcXVlIGNhbWJpYXJcbiAgLy8gZGUgcHJveWVjdG8vY2xpZW50ZSBubyBkZWJlIHJlLWZldGNoZWFybG9zLiBMb3MgdGlwb3Mgc2NvcGVhZG9zIChwcm9qZWN0L3Rhc2spIHPDrS5cbiAgY29uc3QgcmVjZW50c1RyaWdnZXIgPVxuICAgIHR5cGUgPT09ICd1c2VyJyB8fCB0eXBlID09PSAnc2tpbGwnXG4gICAgICA/IHR5cGVcbiAgICAgIDogYCR7dHlwZX18JHtzdGFibGVTY29wZS5wcm9qZWN0SWQgPz8gJyd9fCR7c3RhYmxlU2NvcGUuY2xpZW50SWQgPz8gJyd9fCR7c3RhYmxlU2NvcGUuYWdlbnRFbnRpdHkgPz8gJyd9fCR7bWNwU2x1Z3NLZXl9YFxuXG4gIC8vIEN1YW5kbyBzZSBsaW1waWEgZWwgc2VhcmNoLCB2b2x2ZXIgYSByZWNlbnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFkZWJvdW5jZWRTZWFyY2hWYWx1ZS50cmltKCkpIHtcbiAgICAgIGZldGNoUmVjZW50UmVmLmN1cnJlbnQoKVxuICAgIH1cbiAgfSwgW2RlYm91bmNlZFNlYXJjaFZhbHVlLCByZWNlbnRzVHJpZ2dlcl0pXG5cbiAgcmV0dXJuIHtcbiAgICBpdGVtcyxcbiAgICBsb2FkaW5nLFxuICAgIGVycm9yLFxuICAgIGhpZGVSZWNlbnRzTGFiZWwsXG4gICAgaGFzTW9yZSxcbiAgICBpc0xvYWRpbmdNb3JlLFxuICAgIGxvYWRNb3JlLFxuICAgIHNlYXJjaFZhbHVlLFxuICAgIHVwZGF0ZVNlYXJjaFZhbHVlOiBzZXRTZWFyY2hWYWx1ZSxcbiAgICBmZXRjaFJlY2VudCxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLFNBQVNBLFlBQVksUUFBUSxnQkFBZ0I7QUFDN0MsU0FBU0MsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUN6RSxTQUFTQyxnQkFBZ0IsUUFBUSxpREFBaUQ7QUFDbEYsU0FBU0MsaUJBQWlCLFFBQVEsbURBQW1EO0FBQ3JGLFNBQVNDLGNBQWMsUUFBUSw2Q0FBNkM7QUFFNUUsU0FBU0MsT0FBTyxRQUFRLHFCQUFxQjtBQUM3QyxTQUFTQyxpQkFBaUIsRUFBRUMsZUFBZSxFQUFFQyxvQkFBb0IsUUFBUSxxQ0FBcUM7QUFDOUcsU0FBU0MsY0FBYyxRQUFRLHFDQUFxQztBQUNwRSxTQUFTQyxlQUFlLFFBQVEsdUNBQXVDO0FBQ3ZFLFNBQVNDLHdCQUF3QixRQUFRLHFCQUFxQjtBQUM5RCxTQUFTQyxXQUFXLFFBQVEsZUFBZTtBQUMzQyxTQUFTQyxJQUFJLFFBQVEsUUFBUTtBQUk3QixTQUFTQyxTQUFTLFFBQVEseUJBQXlCO0FBc0ZuRCxJQUFNQyxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFJQyxLQUFjLEVBQUVDLFFBQWdCLEVBQWE7RUFDekUsSUFBTUMsTUFBTSxHQUFHQyxNQUFNLENBQUNILEtBQUssQ0FBQztFQUM1QixJQUFJLENBQUNHLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDRixNQUFNLENBQUMsRUFBRSxPQUFPRCxRQUFRO0VBQzdDLElBQU1JLFVBQVUsR0FBR0MsSUFBSSxDQUFDQyxLQUFLLENBQUNMLE1BQU0sQ0FBQztFQUNyQyxPQUFPRyxVQUFVLEdBQUcsQ0FBQyxHQUFHQSxVQUFVLEdBQUdKLFFBQVE7QUFDL0MsQ0FBQzs7QUFFRDtBQUNBO0FB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
|
|
@@ -9,10 +9,14 @@ export var openTaskInCorPanel = function openTaskInCorPanel(taskId) {
|
|
|
9
9
|
var tabSegment = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'detail';
|
|
10
10
|
var newPathname = "/tasks/".concat(taskId, "/").concat(tabSegment);
|
|
11
11
|
if ('openPanel' in window && typeof window.openPanel === 'function') {
|
|
12
|
+
var panelAlreadyOpen = Boolean(window.taskPanel);
|
|
12
13
|
history.replaceState('', '', "".concat(newPathname).concat(window.location.search));
|
|
13
14
|
window.openPanel(taskId, SECTIONS.chatAI);
|
|
15
|
+
if (panelAlreadyOpen) {
|
|
16
|
+
window.dispatchEvent(new PopStateEvent('popstate'));
|
|
17
|
+
}
|
|
14
18
|
} else {
|
|
15
19
|
window.open("".concat(window.location.origin).concat(newPathname), '_blank');
|
|
16
20
|
}
|
|
17
21
|
};
|
|
18
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRUNUSU9OUyIsIm9wZW5UYXNrSW5Db3JQYW5lbCIsInRhc2tJZCIsInRhYlNlZ21lbnQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJuZXdQYXRobmFtZSIsImNvbmNhdCIsIndpbmRvdyIsIm9wZW5QYW5lbCIsInBhbmVsQWxyZWFkeU9wZW4iLCJCb29sZWFuIiwidGFza1BhbmVsIiwiaGlzdG9yeSIsInJlcGxhY2VTdGF0ZSIsImxvY2F0aW9uIiwic2VhcmNoIiwiY2hhdEFJIiwiZGlzcGF0Y2hFdmVudCIsIlBvcFN0YXRlRXZlbnQiLCJvcGVuIiwib3JpZ2luIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL29wZW5UYXNrSW5Db3JQYW5lbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLWdsb2JhbHMgKi9cbmltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vY29uc3RhbnRzL2NvbmZpZydcblxuLyoqXG4gKiBBYnJlIGxhIHRhcmVhIGVuIGVsIHBhbmVsL21vZGFsIGRlIENPUiAobWlzbW8gZmx1am8gcXVlIGB1c2VUYXNrUGFuZWxgIC8gZW5sYWNlcyBkZSB0YXJlYSBlbiBjaGF0KS5cbiAqIFNpIGB3aW5kb3cub3BlblBhbmVsYCBubyBleGlzdGUsIGNhZSBhIG51ZXZhIHBlc3Rhw7FhLlxuICovXG5leHBvcnQgY29uc3Qgb3BlblRhc2tJbkNvclBhbmVsID0gKHRhc2tJZDogc3RyaW5nIHwgbnVtYmVyLCB0YWJTZWdtZW50OiBzdHJpbmcgPSAnZGV0YWlsJyk6IHZvaWQgPT4ge1xuICBjb25zdCBuZXdQYXRobmFtZSA9IGAvdGFza3MvJHt0YXNrSWR9LyR7dGFiU2VnbWVudH1gXG5cbiAgaWYgKCdvcGVuUGFuZWwnIGluIHdpbmRvdyAmJiB0eXBlb2Ygd2luZG93Lm9wZW5QYW5lbCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbnN0IHBhbmVsQWxyZWFkeU9wZW4gPSBCb29sZWFuKHdpbmRvdy50YXNrUGFuZWwpXG4gICAgaGlzdG9yeS5yZXBsYWNlU3RhdGUoJycsICcnLCBgJHtuZXdQYXRobmFtZX0ke3dpbmRvdy5sb2NhdGlvbi5zZWFyY2h9YClcbiAgICB3aW5kb3cub3BlblBhbmVsKHRhc2tJZCwgU0VDVElPTlMuY2hhdEFJKVxuICAgIGlmIChwYW5lbEFscmVhZHlPcGVuKSB7XG4gICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgUG9wU3RhdGVFdmVudCgncG9wc3RhdGUnKSlcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgd2luZG93Lm9wZW4oYCR7d2luZG93LmxvY2F0aW9uLm9yaWdpbn0ke25ld1BhdGhuYW1lfWAsICdfYmxhbmsnKVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsU0FBU0EsUUFBUSxRQUFRLHFCQUFxQjs7QUFFOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1DLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUlDLE1BQXVCLEVBQTBDO0VBQUEsSUFBeENDLFVBQWtCLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLFFBQVE7RUFDdkYsSUFBTUcsV0FBVyxhQUFBQyxNQUFBLENBQWFOLE1BQU0sT0FBQU0sTUFBQSxDQUFJTCxVQUFVLENBQUU7RUFFcEQsSUFBSSxXQUFXLElBQUlNLE1BQU0sSUFBSSxPQUFPQSxNQUFNLENBQUNDLFNBQVMsS0FBSyxVQUFVLEVBQUU7SUFDbkUsSUFBTUMsZ0JBQWdCLEdBQUdDLE9BQU8sQ0FBQ0gsTUFBTSxDQUFDSSxTQUFTLENBQUM7SUFDbERDLE9BQU8sQ0FBQ0MsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUFQLE1BQUEsQ0FBS0QsV0FBVyxFQUFBQyxNQUFBLENBQUdDLE1BQU0sQ0FBQ08sUUFBUSxDQUFDQyxNQUFNLENBQUUsQ0FBQztJQUN2RVIsTUFBTSxDQUFDQyxTQUFTLENBQUNSLE1BQU0sRUFBRUYsUUFBUSxDQUFDa0IsTUFBTSxDQUFDO0lBQ3pDLElBQUlQLGdCQUFnQixFQUFFO01BQ3BCRixNQUFNLENBQUNVLGFBQWEsQ0FBQyxJQUFJQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckQ7RUFDRixDQUFDLE1BQU07SUFDTFgsTUFBTSxDQUFDWSxJQUFJLElBQUFiLE1BQUEsQ0FBSUMsTUFBTSxDQUFDTyxRQUFRLENBQUNNLE1BQU0sRUFBQWQsTUFBQSxDQUFHRCxXQUFXLEdBQUksUUFBUSxDQUFDO0VBQ2xFO0FBQ0YsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -94,11 +94,11 @@ var splitLabelFirstWord = function splitLabelFirstWord(label) {
|
|
|
94
94
|
};
|
|
95
95
|
};
|
|
96
96
|
var INLINE_MENTION_HOVER_BG = {
|
|
97
|
-
project: VIOLET_IA_COLORS[100]
|
|
98
|
-
skill: '#f9f9f9'
|
|
97
|
+
project: VIOLET_IA_COLORS[100]
|
|
99
98
|
};
|
|
100
99
|
var inlineMentionHoverCss = function inlineMentionHoverCss(type, isClickable) {
|
|
101
100
|
var _INLINE_MENTION_HOVER;
|
|
101
|
+
if (type === 'skill') return css([""]);
|
|
102
102
|
var bg = (_INLINE_MENTION_HOVER = INLINE_MENTION_HOVER_BG[type]) !== null && _INLINE_MENTION_HOVER !== void 0 ? _INLINE_MENTION_HOVER : MENTION_CHIP_NON_TASK_HOVER_BG;
|
|
103
103
|
return css(["background:", ";opacity:", ";"], bg, isClickable ? 0.95 : 1);
|
|
104
104
|
};
|
|
@@ -390,4 +390,4 @@ export var renderTextWithMentions = function renderTextWithMentions(text) {
|
|
|
390
390
|
if (lastIdx < text.length) out.push(text.slice(lastIdx));
|
|
391
391
|
return out;
|
|
392
392
|
};
|
|
393
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyIsIk1FTlRJT05fQ0hJUF9DT0xPUlMiLCJNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkciLCJTbGFzaENvbW1hbmRDaGlwIiwiU0xBU0hfQ09NTUFORF9NQVJLRVJfUkVHRVgiLCJWSU9MRVRfSUFfQ09MT1JTIiwiU0NUYXNrTGluayIsImdldENvbnRleHRNZW50aW9uSWNvbiIsIm5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwiLCJvcGVuVGFza0luQ29yUGFuZWwiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJNRU5USU9OX01BUktFUl9SRUdFWCIsIk1BSUFfTUVOVElPTl9QUk9UT0NPTCIsIklOQ09NUExFVEVfTUVOVElPTl9NQVJLRVJfUkVHRVgiLCJJTkNPTVBMRVRFX1NMQVNIX01BUktFUl9SRUdFWCIsIkFMTE9XRURfVFlQRVMiLCJwYXJzZU1lbnRpb25Qcm90b2NvbEhyZWYiLCJocmVmIiwicmVzdCIsInNsaWNlIiwibGVuZ3RoIiwic2xhc2hJZHgiLCJpbmRleE9mIiwicmF3VHlwZSIsInJhd0lkIiwiaWQiLCJkZWNvZGVVUklDb21wb25lbnQiLCJfdW51c2VkIiwidHlwZSIsImluY2x1ZGVzIiwic2VyaWFsaXplTWVudGlvbiIsIm1lbnRpb24iLCJjb25jYXQiLCJsYWJlbCIsInRyYW5zZm9ybU1lbnRpb25NYXJrZXJzIiwidGV4dCIsInJlcGxhY2UiLCJfbSIsInNhZmVMYWJlbCIsIlN0cmluZyIsImVuY29kZVVSSUNvbXBvbmVudCIsIm1lbnRpb25DaGlsZHJlblRvTGFiZWwiLCJjaGlsZHJlbiIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsImMiLCJqb2luIiwic3BsaXRMYWJlbEZpcnN0V29yZCIsIm5vcm1hbGl6ZWQiLCJ0cmltIiwiZmlyc3RXb3JkIiwiZmlyc3RXaGl0ZXNwYWNlSWR4Iiwic2VhcmNoIiwiSU5MSU5FX01FTlRJT05fSE9WRVJfQkciLCJwcm9qZWN0Iiwic2tpbGwiLCJpbmxpbmVNZW50aW9uSG92ZXJDc3MiLCJpc0NsaWNrYWJsZSIsIl9JTkxJTkVfTUVOVElPTl9IT1ZFUiIsImJnIiwiU0NJbmxpbmVNZW50aW9uIiwic3BhbiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiX3JlZiIsIl9NRU5USU9OX0NISVBfQ09MT1JTJCIsIiR0eXBlIiwidXNlciIsIl9yZWYyIiwiX01FTlRJT05fQ0hJUF9DT0xPUlMkMiIsImZnIiwiX3JlZjMiLCIkaXNDbGlja2FibGUiLCJfcmVmNCIsIlNDSW5saW5lTWVudGlvbkljb24iLCJfcmVmNSIsIiR0YXNrIiwiX3JlZjYiLCJTQ0lubGluZU1lbnRpb25JY29uUm93IiwiU0NJbmxpbmVNZW50aW9uV29yZCIsInJlbmRlck1lbnRpb25MaW5rIiwic3RhcnRzV2l0aCIsIl9wYXJzZU1lbnRpb25Qcm90b2NvbCIsImlzVGFzayIsImljb25TaXplIiwidGFza1VybCIsImhhbmRsZVRhc2tDbGljayIsImUiLCJtZXRhS2V5IiwiY3RybEtleSIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiaGFuZGxlVGFza0tleURvd24iLCJrZXkiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwib25LZXlEb3duIiwiaXNQcm9qZWN0IiwicHJvamVjdFVybCIsInNob3dJY29uIiwiX3NwbGl0TGFiZWxGaXJzdFdvcmQiLCJoYW5kbGVQcm9qZWN0Q2xpY2siLCJ3aW5kb3ciLCJvcGVuIiwidW5kZWZpbmVkIiwicm9sZSIsInRhYkluZGV4Iiwic3RyaXBNZW50aW9uTWFya2VycyIsIl90eXBlIiwiX2lkIiwiZm9ybWF0Q2hhdExpc3RUaXRsZU1lbnRpb25zIiwid2l0aG91dE1lbnRpb25zIiwic2xhc2hSZWdleCIsIlJlZ0V4cCIsInNvdXJjZSIsIndpdGhvdXRTbGFzaCIsIndpdGhvdXRJbmNvbXBsZXRlU2xhc2giLCJnZXRNZW50aW9uVXJsIiwiTWVudGlvbkNoaXAiLCJfcmVmNyIsIm5vcm1hbGl6ZWRMYWJlbCIsInVybCIsIl9zcGxpdExhYmVsRmlyc3RXb3JkMiIsImhhbmRsZUNsaWNrIiwiaGFuZGxlS2V5RG93biIsImhhc0lubGluZU1hcmtlcnMiLCJjb2xsZWN0SW5saW5lTWFya2VycyIsIm1hcmtlcnMiLCJsYXN0SW5kZXgiLCJtIiwiZXhlYyIsIl9tMiIsIl9tMyIsIl9zbGljZWRUb0FycmF5IiwicHVzaCIsImtpbmQiLCJpbmRleCIsInMiLCJzb3J0IiwiYSIsImIiLCJyZW5kZXJUZXh0V2l0aE1lbnRpb25zIiwib3V0IiwibGFzdElkeCIsImZvckVhY2giLCJtYXJrZXIiLCJpbmxpbmUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvcmVuZGVyQ29udGV4dE1lbnRpb25zLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWFjdE5vZGUsIFJlYWN0RWxlbWVudCwgTW91c2VFdmVudCwgS2V5Ym9hcmRFdmVudCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHN0eWxlZCwgeyBjc3MgfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcbmltcG9ydCB7IENvbnRleHRFbnRpdHlUeXBlLCBDb250ZXh0TWVudGlvbiwgQ09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1MgfSBmcm9tICcuLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB7XG4gIE1FTlRJT05fQ0hJUF9DT0xPUlMsXG4gIE1FTlRJT05fQ0hJUF9OT05fVEFTS19IT1ZFUl9CRyxcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9hdG9tcy9Db250ZXh0TWVudGlvbkNoaXAvQ29udGV4dE1lbnRpb25DaGlwLnN0eWxlcydcbmltcG9ydCB7IFNsYXNoQ29tbWFuZENoaXAgfSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL1NsYXNoQ29tbWFuZENoaXAnXG5pbXBvcnQgeyBTTEFTSF9DT01NQU5EX01BUktFUl9SRUdFWCB9IGZyb20gJy4vc2xhc2hDb21tYW5kTWFya2VyJ1xuaW1wb3J0IHsgVklPTEVUX0lBX0NPTE9SUyB9IGZyb20gJy4uL3N0eWxlcy9jb25maWcnXG5pbXBvcnQgeyBTQ1Rhc2tMaW5rIH0gZnJvbSAnLi4vY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTWVzc2FnZXMvbmV3U3R5bGVzJ1xuaW1wb3J0IHsgZ2V0Q29udGV4dE1lbnRpb25JY29uIH0gZnJvbSAnLi9jb250ZXh0TWVudGlvbkljb25zJ1xuaW1wb3J0IHsgbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbCB9IGZyb20gJy4vY29udGV4dE1lbnRpb25MYWJlbCdcbmltcG9ydCB7IG9wZW5UYXNrSW5Db3JQYW5lbCB9IGZyb20gJy4vb3BlblRhc2tJbkNvclBhbmVsJ1xuXG4vKipcbiAqIEZvcm1hdG8gZGVsIG1hcmNhZG9yIHF1ZSB2aWFqYSBlbiBlbCB0ZXh0byBkZWwgbWVuc2FqZTpcbiAqICAgW1ttZW50aW9uOjx0eXBlPjo8aWQ+fDxsYWJlbD5dXVxuICpcbiAqIEVsIGVkaXRvciBsbyBlbWl0ZSBjdWFuZG8gc2VyaWFsaXphIGVsIGNvbnRlbnRlZGl0YWJsZSwgZWwgYmFja2VuZCBsb1xuICogcGVyc2lzdGUgdGFsIGN1YWwgeSBhbCByZW5kZXJpemFyIHNlIHRyYW5zZm9ybWEgZW4gdW4gbGluayBtYXJrZG93biBjb25cbiAqIHVuIHByb3RvY29sbyBwcm9waW8gcXVlIGBDdXN0b21MaW5rYCBpbnRlcmNlcHRhIHkgZGlidWphIGNvbW8gc3BhblxuICogZXN0aWxhZG8uXG4gKlxuICogUG9yIHNlcGFyYWRvLCBsYSBtZXRhZGF0YSBgY29udGV4dF9tZXNzYWdlYCBsbGV2YSBsb3MgdmFsb3JlcyBsaW1waW9zXG4gKiAoaWQgKyBuYW1lKSBwYXJhIHF1ZSBlbCBiYWNrZW5kIHB1ZWRhIGludGVycHJldGFyIGxhcyBlbnRpZGFkZXMgc2luXG4gKiB0ZW5lciBxdWUgcGFyc2VhciBlbCB0ZXh0by5cbiAqL1xuLyoqXG4gKiBMYWJlbCBwdWVkZSBjb250ZW5lciBgXWAgKGVqOiBcIltFZHVjYXRlXUJsb2cgUG9zdCAuLi5cIiksIHBvciBlc29cbiAqIHNlIGNhcHR1cmEgZGUgZm9ybWEgbGF6eSBoYXN0YSBlbCBjaWVycmUgcmVhbCBgXV1gLlxuICovXG5leHBvcnQgY29uc3QgTUVOVElPTl9NQVJLRVJfUkVHRVggPSAvXFxbXFxbbWVudGlvbjooY2xpZW50fHByb2plY3R8dGFza3x1c2VyfG1jcHxza2lsbCk6KFtefFxcXV0rKVxcfChbXFxzXFxTXSo/KVxcXVxcXS9nXG5leHBvcnQgY29uc3QgTUFJQV9NRU5USU9OX1BST1RPQ09MID0gJ21haWEtbWVudGlvbjovLydcbmNvbnN0IElOQ09NUExFVEVfTUVOVElPTl9NQVJLRVJfUkVHRVggPSAvXFxbXFxbbWVudGlvbjpbXFxzXFxTXSokL1xuY29uc3QgSU5DT01QTEVURV9TTEFTSF9NQVJLRVJfUkVHRVggPSAvXFxbXFxbc2xhc2hfY29tbWFuZDpbXnxcXF1dK1xcfChbXFxzXFxTXSopJC9cblxuY29uc3QgQUxMT1dFRF9UWVBFUzogQ29udGV4dEVudGl0eVR5cGVbXSA9IFsnY2xpZW50JywgJ3Byb2plY3QnLCAndGFzaycsICd1c2VyJywgJ21jcCcsICdza2lsbCddXG5cbmNvbnN0IHBhcnNlTWVudGlvblByb3RvY29sSHJlZiA9IChocmVmOiBzdHJpbmcpOiB7IHR5cGU6IENvbnRleHRFbnRpdHlUeXBlOyBpZDogc3RyaW5nIH0gPT4ge1xuICBjb25zdCByZXN0ID0gaHJlZi5zbGljZShNQUlBX01FTlRJT05fUFJPVE9DT0wubGVuZ3RoKVxuICBjb25zdCBzbGFzaElkeCA9IHJlc3QuaW5kZXhPZignLycpXG4gIGNvbnN0IHJhd1R5cGUgPSBzbGFzaElkeCA+PSAwID8gcmVzdC5zbGljZSgwLCBzbGFzaElkeCkgOiByZXN0XG4gIGNvbnN0IHJhd0lkID0gc2xhc2hJZHggPj0gMCA/IHJlc3Quc2xpY2Uoc2xhc2hJZHggKyAxKSA6ICcnXG4gIGxldCBpZCA9ICcnXG4gIHRyeSB7XG4gICAgaWQgPSByYXdJZCA/IGRlY29kZVVSSUNvbXBvbmVudChyYXdJZCkgOiAnJ1xuICB9IGNhdGNoIHtcbiAgICBpZCA9IHJhd0lkXG4gIH1cbiAgY29uc3QgdHlwZSA9IEFMTE9XRURfVFlQRVMuaW5jbHVkZXMocmF3VHlwZSBhcyBDb250ZXh0RW50aXR5VHlwZSkgPyAocmF3VHlwZSBhcyBDb250ZXh0RW50aXR5VHlwZSkgOiAndXNlcidcbiAgcmV0dXJuIHsgdHlwZSwgaWQgfVxufVxuXG4vKiogR2VuZXJhIGVsIG1hcmNhZG9yIHBhcmEgdW4gbWVudGlvbiBkYWRvLiBMbyB1c2EgZWwgZWRpdG9yIGFsIHNlcmlhbGl6YXIuICovXG5leHBvcnQgY29uc3Qgc2VyaWFsaXplTWVudGlvbiA9IChtZW50aW9uOiBDb250ZXh0TWVudGlvbik6IHN0cmluZyA9PlxuICBgW1ttZW50aW9uOiR7bWVudGlvbi50eXBlfToke21lbnRpb24uaWR9fCR7bWVudGlvbi5sYWJlbH1dXWBcblxuLyoqXG4gKiBDb252aWVydGUgY2FkYSBgW1ttZW50aW9uOi4uLl1dYCBlbiB1biBsaW5rIG1hcmtkb3duIGNvbiBwcm90b2NvbG8gcHJvcGlvXG4gKiBwYXJhIHF1ZSBTdHJlYW1kb3duIGxvIGVtaXRhIGNvbW8gYDxhPmAgeSBgQ3VzdG9tTGlua2AgbG8gaW50ZXJjZXB0ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybU1lbnRpb25NYXJrZXJzID0gKHRleHQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGlmICghdGV4dCkgcmV0dXJuIHRleHRcbiAgcmV0dXJuIHRleHQucmVwbGFjZShNRU5USU9OX01BUktFUl9SRUdFWCwgKF9tLCB0eXBlLCBpZCwgbGFiZWwpID0+IHtcbiAgICBjb25zdCBzYWZlTGFiZWwgPSBTdHJpbmcobGFiZWwpLnJlcGxhY2UoL1tcXFxcXFxdXS9nLCAnXFxcXCQmJylcbiAgICByZXR1cm4gYFske3NhZmVMYWJlbH1dKCR7TUFJQV9NRU5USU9OX1BST1RPQ09MfSR7dHlwZX0vJHtlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGlkKSl9KWBcbiAgfSlcbn1cblxuY29uc3QgbWVudGlvbkNoaWxkcmVuVG9MYWJlbCA9IChjaGlsZHJlbjogUmVhY3ROb2RlKTogc3RyaW5nID0+IHtcbiAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ3N0cmluZycpIHJldHVybiBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKGNoaWxkcmVuKVxuICBpZiAoY2hpbGRyZW4gPT0gbnVsbCB8fCBjaGlsZHJlbiA9PT0gZmFsc2UpIHJldHVybiAnJ1xuICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICByZXR1cm4gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChjaGlsZHJlbi5tYXAoYyA9PiAodHlwZW9mIGMgPT09ICdzdHJpbmcnID8gYyA6ICcnKSkuam9pbignJykpXG4gIH1cbiAgcmV0dXJuIG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwoU3RyaW5nKGNoaWxkcmVuKSlcbn1cblxuY29uc3Qgc3BsaXRMYWJlbEZpcnN0V29yZCA9IChsYWJlbDogc3RyaW5nKTogeyBmaXJzdFdvcmQ6IHN0cmluZzsgcmVzdDogc3RyaW5nIH0gPT4ge1xuICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChsYWJlbCkudHJpbSgpXG4gIGlmICghbm9ybWFsaXplZCkgcmV0dXJuIHsgZmlyc3RXb3JkOiAnJywgcmVzdDogJycgfVxuICBjb25zdCBmaXJzdFdoaXRlc3BhY2VJZHggPSBub3JtYWxpemVkLnNlYXJjaCgvXFxzLylcbiAgaWYgKGZpcnN0V2hpdGVzcGFjZUlkeCA8IDApIHJldHVybiB7IGZpcnN0V29yZDogbm9ybWFsaXplZCwgcmVzdDogJycgfVxuICByZXR1cm4ge1xuICAgIGZpcnN0V29yZDogbm9ybWFsaXplZC5zbGljZSgwLCBmaXJzdFdoaXRlc3BhY2VJZHgpLFxuICAgIHJlc3Q6IG5vcm1hbGl6ZWQuc2xpY2UoZmlyc3RXaGl0ZXNwYWNlSWR4KSxcbiAgfVxufVxuXG5jb25zdCBJTkxJTkVfTUVOVElPTl9IT1ZFUl9CRzogUGFydGlhbDxSZWNvcmQ8Q29udGV4dEVudGl0eVR5cGUsIHN0cmluZz4+ID0ge1xuICBwcm9qZWN0OiBWSU9MRVRfSUFfQ09MT1JTWzEwMF0sXG4gIHNraWxsOiAnI2Y5ZjlmOScsXG59XG5cbmNvbnN0IGlubGluZU1lbnRpb25Ib3ZlckNzcyA9ICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSwgaXNDbGlja2FibGU/OiBib29sZWFuKSA9PiB7XG4gIGNvbnN0IGJnID0gSU5MSU5FX01FTlRJT05fSE9WRVJfQkdbdHlwZV0gPz8gTUVOVElPTl9DSElQX05PTl9UQVNLX0hPVkVSX0JHXG4gIHJldHVybiBjc3NgXG4gICAgYmFja2dyb3VuZDogJHtiZ307XG4gICAgb3BhY2l0eTogJHtpc0NsaWNrYWJsZSA/IDAuOTUgOiAxfTtcbiAgYFxufVxuXG4vKiogU3BhbiBpbmxpbmUgZXN0aWxhZG8gKG1lbmNpb25lcyBuby10YXNrIGVuIGNoYXQpLiAqL1xuY29uc3QgU0NJbmxpbmVNZW50aW9uID0gc3R5bGVkLnNwYW48eyAkdHlwZTogQ29udGV4dEVudGl0eVR5cGU7ICRpc0NsaWNrYWJsZT86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGlubGluZTtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgbWFyZ2luOiAwIDFweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LWZhbWlseTogdmFyKC0tY29yLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICdXb3JrIFNhbnMnKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgYmFja2dyb3VuZDogJHsoeyAkdHlwZSB9KSA9PiAoTUVOVElPTl9DSElQX0NPTE9SU1skdHlwZV0gPz8gTUVOVElPTl9DSElQX0NPTE9SUy51c2VyKS5iZ307XG4gIGNvbG9yOiAkeyh7ICR0eXBlIH0pID0+IChNRU5USU9OX0NISVBfQ09MT1JTWyR0eXBlXSA/PyBNRU5USU9OX0NISVBfQ09MT1JTLnVzZXIpLmZnfTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgY3Vyc29yOiAkeyh7ICRpc0NsaWNrYWJsZSB9KSA9PiAoJGlzQ2xpY2thYmxlID8gJ3BvaW50ZXInIDogJ2RlZmF1bHQnKX07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAmOmhvdmVyIHtcbiAgICAkeyh7ICR0eXBlLCAkaXNDbGlja2FibGUgfSkgPT4gaW5saW5lTWVudGlvbkhvdmVyQ3NzKCR0eXBlLCAkaXNDbGlja2FibGUpfVxuICB9XG5gXG5cbmNvbnN0IFNDSW5saW5lTWVudGlvbkljb24gPSBzdHlsZWQuc3Bhbjx7ICR0YXNrPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgd2lkdGg6ICR7KHsgJHRhc2sgfSkgPT4gKCR0YXNrID8gJzE2cHgnIDogJzE0cHgnKX07XG4gIGhlaWdodDogJHsoeyAkdGFzayB9KSA9PiAoJHRhc2sgPyAnMTZweCcgOiAnMTRweCcpfTtcbmBcblxuY29uc3QgU0NJbmxpbmVNZW50aW9uSWNvblJvdyA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuYFxuXG5jb25zdCBTQ0lubGluZU1lbnRpb25Xb3JkID0gc3R5bGVkLnNwYW5gXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5gXG5cbi8qKlxuICogU2kgZWwgaHJlZiBjb3JyZXNwb25kZSBhbCBwcm90b2NvbG8gZGUgbWVudGlvbiwgZGV2dWVsdmUgdW4gbm9kbyBlc3RpbGFkbyBwb3IgdGlwby5cbiAqIExhcyB0YXJlYXMgdXNhbiBgPGE+YCBjb21vIGxvcyBlbmxhY2VzIGRlIHRhcmVhIGRlbCBhZ2VudGUgKGAuaGFzLXRhc2stbGlua3NgKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlbmRlck1lbnRpb25MaW5rID0gKGhyZWY6IHN0cmluZyB8IHVuZGVmaW5lZCwgY2hpbGRyZW46IFJlYWN0Tm9kZSk6IFJlYWN0Tm9kZSB8IG51bGwgPT4ge1xuICBpZiAoIWhyZWYgfHwgIWhyZWYuc3RhcnRzV2l0aChNQUlBX01FTlRJT05fUFJPVE9DT0wpKSByZXR1cm4gbnVsbFxuICBjb25zdCB7IHR5cGUsIGlkIH0gPSBwYXJzZU1lbnRpb25Qcm90b2NvbEhyZWYoaHJlZilcbiAgY29uc3QgbGFiZWwgPSBtZW50aW9uQ2hpbGRyZW5Ub0xhYmVsKGNoaWxkcmVuKVxuICBjb25zdCBpc1Rhc2sgPSB0eXBlID09PSAndGFzaydcbiAgY29uc3QgaWNvblNpemUgPSBpc1Rhc2sgPyAxNiA6IDE0XG4gIGNvbnN0IHRhc2tVcmwgPSBgL3Rhc2tzLyR7aWR9L2RldGFpbGBcblxuICBjb25zdCBoYW5kbGVUYXNrQ2xpY2sgPSAoZTogTW91c2VFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHtcbiAgICBpZiAoZS5tZXRhS2V5IHx8IGUuY3RybEtleSkgcmV0dXJuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIG9wZW5UYXNrSW5Db3JQYW5lbChpZCwgJ2RldGFpbCcpXG4gIH1cblxuICBjb25zdCBoYW5kbGVUYXNrS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLmtleSAhPT0gJ0VudGVyJyAmJiBlLmtleSAhPT0gJyAnKSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBvcGVuVGFza0luQ29yUGFuZWwoaWQsICdkZXRhaWwnKVxuICB9XG5cbiAgaWYgKGlzVGFzaykge1xuICAgIHJldHVybiAoXG4gICAgICA8U0NUYXNrTGlua1xuICAgICAgICBocmVmPXt0YXNrVXJsfVxuICAgICAgICBjbGFzc05hbWU9e0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVxuICAgICAgICBkYXRhLW1lbnRpb24tdHlwZT17dHlwZX1cbiAgICAgICAgZGF0YS1tZW50aW9uLXN1cmZhY2U9XCJjaGF0XCJcbiAgICAgICAgb25DbGljaz17aGFuZGxlVGFza0NsaWNrfVxuICAgICAgICBvbktleURvd249e2hhbmRsZVRhc2tLZXlEb3dufVxuICAgICAgPlxuICAgICAgICB7bGFiZWx9XG4gICAgICA8L1NDVGFza0xpbms+XG4gICAgKVxuICB9XG5cbiAgY29uc3QgaXNQcm9qZWN0ID0gdHlwZSA9PT0gJ3Byb2plY3QnXG4gIGNvbnN0IHByb2plY3RVcmwgPSBpc1Byb2plY3QgPyBgL3Byb2plY3RzLyR7aWR9L2Rhc2hib2FyZGAgOiBudWxsXG4gIGNvbnN0IHNob3dJY29uID0gIWlzUHJvamVjdFxuICBjb25zdCB7IGZpcnN0V29yZCwgcmVzdCB9ID0gc3BsaXRMYWJlbEZpcnN0V29yZChsYWJlbClcblxuICBjb25zdCBoYW5kbGVQcm9qZWN0Q2xpY2sgPSAoZTogTW91c2VFdmVudDxIVE1MU3BhbkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKCFwcm9qZWN0VXJsKSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgd2luZG93Lm9wZW4ocHJvamVjdFVybCwgJ19ibGFuaycpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ0lubGluZU1lbnRpb25cbiAgICAgICR0eXBlPXt0eXBlfVxuICAgICAgJGlzQ2xpY2thYmxlPXtpc1Byb2plY3R9XG4gICAgICBjbGFzc05hbWU9e0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVxuICAgICAgZGF0YS1tZW50aW9uLXR5cGU9e3R5cGV9XG4gICAgICBkYXRhLW1lbnRpb24tc3VyZmFjZT1cImNoYXRcIlxuICAgICAgb25DbGljaz17aXNQcm9qZWN0ID8gaGFuZGxlUHJvamVjdENsaWNrIDogdW5kZWZpbmVkfVxuICAgICAgcm9sZT17aXNQcm9qZWN0ID8gJ2J1dHRvbicgOiB1bmRlZmluZWR9XG4gICAgICB0YWJJbmRleD17aXNQcm9qZWN0ID8gMCA6IHVuZGVmaW5lZH1cbiAgICA+XG4gICAgICB7c2hvd0ljb24gPyAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPFNDSW5saW5lTWVudGlvbkljb25Sb3c+XG4gICAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uSWNvbiAkdGFzaz17aXNUYXNrfT5cbiAgICAgICAgICAgICAge2dldENvbnRleHRNZW50aW9uSWNvbih0eXBlLCBNRU5USU9OX0NISVBfQ09MT1JTW3R5cGVdLmZnLCBpZCwgaWNvblNpemUpfVxuICAgICAgICAgICAgPC9TQ0lubGluZU1lbnRpb25JY29uPlxuICAgICAgICAgICAgPFNDSW5saW5lTWVudGlvbldvcmQ+e2ZpcnN0V29yZH08L1NDSW5saW5lTWVudGlvbldvcmQ+XG4gICAgICAgICAgPC9TQ0lubGluZU1lbnRpb25JY29uUm93PlxuICAgICAgICAgIHtyZXN0ID8gPHNwYW4+e3Jlc3R9PC9zcGFuPiA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7IXNob3dJY29uID8gbGFiZWwgOiBudWxsfVxuICAgIDwvU0NJbmxpbmVNZW50aW9uPlxuICApXG59XG5cbi8qKiBRdWl0YSBsb3MgbWFya2VycyBkZWwgdGV4dG8sIGRlamFuZG8gc29sbyBgbGFiZWxgLiDDmnRpbCBwYXJhIGZhbGxiYWNrIHBsYW5vLiAqL1xuZXhwb3J0IGNvbnN0IHN0cmlwTWVudGlvbk1hcmtlcnMgPSAodGV4dDogc3RyaW5nKTogc3RyaW5nID0+XG4gIHRleHQucmVwbGFjZShNRU5USU9OX01BUktFUl9SRUdFWCwgKF9tLCBfdHlwZSwgX2lkLCBsYWJlbCkgPT4gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChTdHJpbmcobGFiZWwpKSlcblxuLyoqXG4gKiBUw610dWxvcyBkZSBjb252ZXJzYWNpw7NuIChwLiBlai4gYGxhc3RfcXVlc3Rpb25gIGRlcml2YWRvIGRlbCBwcmltZXIgbWVuc2FqZSkgcHVlZGVuXG4gKiBpbmNsdWlyIGVsIHRleHRvIHNlcmlhbGl6YWRvIGBbW21lbnRpb246dHlwZTppZHxsYWJlbF1dYC4gUGFyYSBzaWRlYmFyIHkgbGlzdGFkb3MsXG4gKiByZWVtcGxhemEgY2FkYSBibG9xdWUgcG9yIGBsYWJlbGAgZW4gdGV4dG8gcGxhbm8sIHNpbiBlbCBtYXJjYWRvciBjcnVkby5cbiAqL1xuZXhwb3J0IGNvbnN0IGZvcm1hdENoYXRMaXN0VGl0bGVNZW50aW9ucyA9ICh0ZXh0OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RyaW5nID0+IHtcbiAgaWYgKHRleHQgPT0gbnVsbCB8fCB0ZXh0ID09PSAnJykgcmV0dXJuIHRleHQgPz8gJydcbiAgY29uc3Qgd2l0aG91dE1lbnRpb25zID0gdGV4dC5yZXBsYWNlKE1FTlRJT05fTUFSS0VSX1JFR0VYLCAoX20sIF90eXBlLCBfaWQsIGxhYmVsKSA9PlxuICAgIG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwoU3RyaW5nKGxhYmVsKS50cmltKCkpXG4gIClcbiAgY29uc3Qgc2xhc2hSZWdleCA9IG5ldyBSZWdFeHAoU0xBU0hfQ09NTUFORF9NQVJLRVJfUkVHRVguc291cmNlLCAnZycpXG4gIGNvbnN0IHdpdGhvdXRTbGFzaCA9IHdpdGhvdXRNZW50aW9ucy5yZXBsYWNlKHNsYXNoUmVnZXgsIChfbSwgX2lkLCBsYWJlbCkgPT4gYC8ke1N0cmluZyhsYWJlbCkudHJpbSgpfWApXG4gIGNvbnN0IHdpdGhvdXRJbmNvbXBsZXRlU2xhc2ggPSB3aXRob3V0U2xhc2gucmVwbGFjZShcbiAgICBJTkNPTVBMRVRFX1NMQVNIX01BUktFUl9SRUdFWCxcbiAgICAoX20sIGxhYmVsKSA9PiBgLyR7U3RyaW5nKGxhYmVsKS50cmltKCl9YFxuICApXG4gIHJldHVybiB3aXRob3V0SW5jb21wbGV0ZVNsYXNoLnJlcGxhY2UoSU5DT01QTEVURV9NRU5USU9OX01BUktFUl9SRUdFWCwgJycpLnRyaW0oKVxufVxuXG4vKiogR2VuZXJhIGxhIFVSTCBkZSBuYXZlZ2FjacOzbiBwYXJhIHVuIG1lbnRpb24gc2Vnw7puIHN1IHRpcG8uICovXG5jb25zdCBnZXRNZW50aW9uVXJsID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlLCBpZDogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHwgbnVsbCA9PiB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ2NsaWVudCc6XG4gICAgICByZXR1cm4gYC9jbGllbnRzLyR7aWR9YFxuICAgIGNhc2UgJ3Byb2plY3QnOlxuICAgICAgcmV0dXJuIGAvcHJvamVjdHMvJHtpZH0vZGFzaGJvYXJkYFxuICAgIGNhc2UgJ3Rhc2snOlxuICAgICAgcmV0dXJuIGAvdGFza3MvJHtpZH0vZGV0YWlsYFxuICAgIGNhc2UgJ3VzZXInOlxuICAgICAgcmV0dXJuIG51bGwgLy8gTG9zIHVzZXJzIG5vIHNvbiBjbGlja2VhYmxlc1xuICAgIGNhc2UgJ21jcCc6XG4gICAgICByZXR1cm4gbnVsbFxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmNvbnN0IE1lbnRpb25DaGlwID0gKHsgdHlwZSwgaWQsIGxhYmVsIH06IHsgdHlwZTogQ29udGV4dEVudGl0eVR5cGU7IGlkOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfSkgPT4ge1xuICBjb25zdCBub3JtYWxpemVkTGFiZWwgPSBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKGxhYmVsKVxuICBjb25zdCB1cmwgPSBnZXRNZW50aW9uVXJsKHR5cGUsIGlkKVxuICBjb25zdCBpc0NsaWNrYWJsZSA9ICEhdXJsXG4gIGNvbnN0IGlzVGFzayA9IHR5cGUgPT09ICd0YXNrJ1xuICBjb25zdCBpc1Byb2plY3QgPSB0eXBlID09PSAncHJvamVjdCdcbiAgY29uc3Qgc2hvd0ljb24gPSAhaXNQcm9qZWN0XG4gIGNvbnN0IGljb25TaXplID0gaXNUYXNrID8gMTYgOiAxNFxuICBjb25zdCB7IGZpcnN0V29yZCwgcmVzdCB9ID0gc3BsaXRMYWJlbEZpcnN0V29yZChub3JtYWxpemVkTGFiZWwpXG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoZTogTW91c2VFdmVudDxIVE1MQW5jaG9yRWxlbWVudCB8IEhUTUxTcGFuRWxlbWVudD4pID0+IHtcbiAgICBpZiAoIWlzQ2xpY2thYmxlIHx8ICF1cmwpIHJldHVyblxuICAgIGlmICh0eXBlID09PSAndGFzaycpIHtcbiAgICAgIGlmIChlLm1ldGFLZXkgfHwgZS5jdHJsS2V5KSByZXR1cm5cbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgb3BlblRhc2tJbkNvclBhbmVsKGlkLCAnZGV0YWlsJylcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50PEhUTUxBbmNob3JFbGVtZW50IHwgSFRNTFNwYW5FbGVtZW50PikgPT4ge1xuICAgIGlmICghaXNDbGlja2FibGUgfHwgdHlwZSAhPT0gJ3Rhc2snKSByZXR1cm5cbiAgICBpZiAoZS5rZXkgIT09ICdFbnRlcicgJiYgZS5rZXkgIT09ICcgJykgcmV0dXJuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgb3BlblRhc2tJbkNvclBhbmVsKGlkLCAnZGV0YWlsJylcbiAgfVxuXG4gIGlmICh0eXBlID09PSAndGFzaycpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDVGFza0xpbmtcbiAgICAgICAgaHJlZj17dXJsID8/ICcjJ31cbiAgICAgICAgY2xhc3NOYW1lPXtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31cbiAgICAgICAgZGF0YS1tZW50aW9uLXR5cGU9XCJ0YXNrXCJcbiAgICAgICAgZGF0YS1tZW50aW9uLXN1cmZhY2U9XCJjaGF0XCJcbiAgICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgID5cbiAgICAgICAge25vcm1hbGl6ZWRMYWJlbH1cbiAgICAgIDwvU0NUYXNrTGluaz5cbiAgICApXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ0lubGluZU1lbnRpb25cbiAgICAgICR0eXBlPXt0eXBlfVxuICAgICAgJGlzQ2xpY2thYmxlPXtpc0NsaWNrYWJsZX1cbiAgICAgIGNsYXNzTmFtZT17Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9XG4gICAgICBkYXRhLW1lbnRpb24tdHlwZT17dHlwZX1cbiAgICAgIGRhdGEtbWVudGlvbi1zdXJmYWNlPVwiY2hhdFwiXG4gICAgICBvbkNsaWNrPXtpc0NsaWNrYWJsZSA/IGhhbmRsZUNsaWNrIDogdW5kZWZpbmVkfVxuICAgICAgcm9sZT17aXNDbGlja2FibGUgPyAnYnV0dG9uJyA6IHVuZGVmaW5lZH1cbiAgICAgIHRhYkluZGV4PXtpc0NsaWNrYWJsZSA/IDAgOiB1bmRlZmluZWR9XG4gICAgPlxuICAgICAge3Nob3dJY29uID8gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25JY29uUm93PlxuICAgICAgICAgICAgPFNDSW5saW5lTWVudGlvbkljb24gJHRhc2s9e2lzVGFza30+XG4gICAgICAgICAgICAgIHtnZXRDb250ZXh0TWVudGlvbkljb24odHlwZSwgTUVOVElPTl9DSElQX0NPTE9SU1t0eXBlXS5mZywgaWQsIGljb25TaXplKX1cbiAgICAgICAgICAgIDwvU0NJbmxpbmVNZW50aW9uSWNvbj5cbiAgICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25Xb3JkPntmaXJzdFdvcmR9PC9TQ0lubGluZU1lbnRpb25Xb3JkPlxuICAgICAgICAgIDwvU0NJbmxpbmVNZW50aW9uSWNvblJvdz5cbiAgICAgICAgICB7cmVzdCA/IDxzcGFuPntyZXN0fTwvc3Bhbj4gOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICkgOiBudWxsfVxuICAgICAgeyFzaG93SWNvbiA/IG5vcm1hbGl6ZWRMYWJlbCA6IG51bGx9XG4gICAgPC9TQ0lubGluZU1lbnRpb24+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IGhhc0lubGluZU1hcmtlcnMgPSAodGV4dDogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIGlmICghdGV4dCkgcmV0dXJuIGZhbHNlXG4gIHJldHVybiB0ZXh0LmluY2x1ZGVzKCdbW21lbnRpb246JykgfHwgdGV4dC5pbmNsdWRlcygnW1tzbGFzaF9jb21tYW5kOicpXG59XG5cbnR5cGUgSW5saW5lTWFya2VyID1cbiAgfCB7IGtpbmQ6ICdtZW50aW9uJzsgaW5kZXg6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXI7IHR5cGU6IENvbnRleHRFbnRpdHlUeXBlOyBpZDogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1cbiAgfCB7IGtpbmQ6ICdzbGFzaCc7IGluZGV4OiBudW1iZXI7IGxlbmd0aDogbnVtYmVyOyBpZDogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1cblxuY29uc3QgY29sbGVjdElubGluZU1hcmtlcnMgPSAodGV4dDogc3RyaW5nKTogSW5saW5lTWFya2VyW10gPT4ge1xuICBjb25zdCBtYXJrZXJzOiBJbmxpbmVNYXJrZXJbXSA9IFtdXG5cbiAgTUVOVElPTl9NQVJLRVJfUkVHRVgubGFzdEluZGV4ID0gMFxuICBsZXQgbTogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IE1FTlRJT05fTUFSS0VSX1JFR0VYLmV4ZWModGV4dClcbiAgd2hpbGUgKG0pIHtcbiAgICBjb25zdCBbLCByYXdUeXBlLCBpZCwgbGFiZWxdID0gbVxuICAgIGNvbnN0IHR5cGUgPSBBTExPV0VEX1RZUEVTLmluY2x1ZGVzKHJhd1R5cGUgYXMgQ29udGV4dEVudGl0eVR5cGUpID8gKHJhd1R5cGUgYXMgQ29udGV4dEVudGl0eVR5cGUpIDogJ3VzZXInXG4gICAgbWFya2Vycy5wdXNoKHsga2luZDogJ21lbnRpb24nLCBpbmRleDogbS5pbmRleCwgbGVuZ3RoOiBtWzBdLmxlbmd0aCwgdHlwZSwgaWQsIGxhYmVsIH0pXG4gICAgbSA9IE1FTlRJT05fTUFSS0VSX1JFR0VYLmV4ZWModGV4dClcbiAgfVxuXG4gIGNvbnN0IHNsYXNoUmVnZXggPSBuZXcgUmVnRXhwKFNMQVNIX0NPTU1BTkRfTUFSS0VSX1JFR0VYLnNvdXJjZSwgJ2cnKVxuICBsZXQgczogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IHNsYXNoUmVnZXguZXhlYyh0ZXh0KVxuICB3aGlsZSAocykge1xuICAgIG1hcmtlcnMucHVzaCh7IGtpbmQ6ICdzbGFzaCcsIGluZGV4OiBzLmluZGV4LCBsZW5ndGg6IHNbMF0ubGVuZ3RoLCBpZDogc1sxXSwgbGFiZWw6IHNbMl0gfSlcbiAgICBzID0gc2xhc2hSZWdleC5leGVjKHRleHQpXG4gIH1cblxuICByZXR1cm4gbWFya2Vycy5zb3J0KChhLCBiKSA9PiBhLmluZGV4IC0gYi5pbmRleClcbn1cblxuZXhwb3J0IGNvbnN0IHJlbmRlclRleHRXaXRoTWVudGlvbnMgPSAodGV4dDogc3RyaW5nKTogQXJyYXk8c3RyaW5nIHwgUmVhY3RFbGVtZW50PiA9PiB7XG4gIGlmICghdGV4dCkgcmV0dXJuIFt0ZXh0XVxuICBjb25zdCBtYXJrZXJzID0gY29sbGVjdElubGluZU1hcmtlcnModGV4dClcbiAgaWYgKG1hcmtlcnMubGVuZ3RoID09PSAwKSByZXR1cm4gW3RleHRdXG5cbiAgY29uc3Qgb3V0OiBBcnJheTxzdHJpbmcgfCBSZWFjdEVsZW1lbnQ+ID0gW11cbiAgbGV0IGxhc3RJZHggPSAwXG4gIG1hcmtlcnMuZm9yRWFjaChtYXJrZXIgPT4ge1xuICAgIGlmIChtYXJrZXIuaW5kZXggPiBsYXN0SWR4KSBvdXQucHVzaCh0ZXh0LnNsaWNlKGxhc3RJZHgsIG1hcmtlci5pbmRleCkpXG4gICAgaWYgKG1hcmtlci5raW5kID09PSAnbWVudGlvbicpIHtcbiAgICAgIG91dC5wdXNoKFxuICAgICAgICA8TWVudGlvbkNoaXBcbiAgICAgICAgICBrZXk9e2BtZW50aW9uLSR7bWFya2VyLmluZGV4fS0ke21hcmtlci50eXBlfS0ke21hcmtlci5pZH1gfVxuICAgICAgICAgIHR5cGU9e21hcmtlci50eXBlfVxuICAgICAgICAgIGlkPXttYXJrZXIuaWR9XG4gICAgICAgICAgbGFiZWw9e21hcmtlci5sYWJlbH1cbiAgICAgICAgLz5cbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0LnB1c2goPFNsYXNoQ29tbWFuZENoaXAga2V5PXtgc2xhc2gtJHttYXJrZXIuaW5kZXh9LSR7bWFya2VyLmlkfWB9IGxhYmVsPXttYXJrZXIubGFiZWx9IGlubGluZT17ZmFsc2V9IC8+KVxuICAgIH1cbiAgICBsYXN0SWR4ID0gbWFya2VyLmluZGV4ICsgbWFya2VyLmxlbmd0aFxuICB9KVxuICBpZiAobGFzdElkeCA8IHRleHQubGVuZ3RoKSBvdXQucHVzaCh0ZXh0LnNsaWNlKGxhc3RJZHgpKVxuICByZXR1cm4gb3V0XG59XG4iXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPQSxNQUFNLElBQUlDLEdBQUcsUUFBUSxtQkFBbUI7QUFDL0MsU0FBNENDLDBCQUEwQixRQUFRLHlCQUF5QjtBQUN2RyxTQUNFQyxtQkFBbUIsRUFDbkJDLDhCQUE4QixRQUN6QixrRUFBa0U7QUFDekUsU0FBU0MsZ0JBQWdCLFFBQVEsc0NBQXNDO0FBQ3ZFLFNBQVNDLDBCQUEwQixRQUFRLHNCQUFzQjtBQUNqRSxTQUFTQyxnQkFBZ0IsUUFBUSxrQkFBa0I7QUFDbkQsU0FBU0MsVUFBVSxRQUFRLGtEQUFrRDtBQUM3RSxTQUFTQyxxQkFBcUIsUUFBUSx1QkFB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
|
|
393
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyIsIk1FTlRJT05fQ0hJUF9DT0xPUlMiLCJNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkciLCJTbGFzaENvbW1hbmRDaGlwIiwiU0xBU0hfQ09NTUFORF9NQVJLRVJfUkVHRVgiLCJWSU9MRVRfSUFfQ09MT1JTIiwiU0NUYXNrTGluayIsImdldENvbnRleHRNZW50aW9uSWNvbiIsIm5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwiLCJvcGVuVGFza0luQ29yUGFuZWwiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJNRU5USU9OX01BUktFUl9SRUdFWCIsIk1BSUFfTUVOVElPTl9QUk9UT0NPTCIsIklOQ09NUExFVEVfTUVOVElPTl9NQVJLRVJfUkVHRVgiLCJJTkNPTVBMRVRFX1NMQVNIX01BUktFUl9SRUdFWCIsIkFMTE9XRURfVFlQRVMiLCJwYXJzZU1lbnRpb25Qcm90b2NvbEhyZWYiLCJocmVmIiwicmVzdCIsInNsaWNlIiwibGVuZ3RoIiwic2xhc2hJZHgiLCJpbmRleE9mIiwicmF3VHlwZSIsInJhd0lkIiwiaWQiLCJkZWNvZGVVUklDb21wb25lbnQiLCJfdW51c2VkIiwidHlwZSIsImluY2x1ZGVzIiwic2VyaWFsaXplTWVudGlvbiIsIm1lbnRpb24iLCJjb25jYXQiLCJsYWJlbCIsInRyYW5zZm9ybU1lbnRpb25NYXJrZXJzIiwidGV4dCIsInJlcGxhY2UiLCJfbSIsInNhZmVMYWJlbCIsIlN0cmluZyIsImVuY29kZVVSSUNvbXBvbmVudCIsIm1lbnRpb25DaGlsZHJlblRvTGFiZWwiLCJjaGlsZHJlbiIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsImMiLCJqb2luIiwic3BsaXRMYWJlbEZpcnN0V29yZCIsIm5vcm1hbGl6ZWQiLCJ0cmltIiwiZmlyc3RXb3JkIiwiZmlyc3RXaGl0ZXNwYWNlSWR4Iiwic2VhcmNoIiwiSU5MSU5FX01FTlRJT05fSE9WRVJfQkciLCJwcm9qZWN0IiwiaW5saW5lTWVudGlvbkhvdmVyQ3NzIiwiaXNDbGlja2FibGUiLCJfSU5MSU5FX01FTlRJT05fSE9WRVIiLCJiZyIsIlNDSW5saW5lTWVudGlvbiIsInNwYW4iLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIl9yZWYiLCJfTUVOVElPTl9DSElQX0NPTE9SUyQiLCIkdHlwZSIsInVzZXIiLCJfcmVmMiIsIl9NRU5USU9OX0NISVBfQ09MT1JTJDIiLCJmZyIsIl9yZWYzIiwiJGlzQ2xpY2thYmxlIiwiX3JlZjQiLCJTQ0lubGluZU1lbnRpb25JY29uIiwiX3JlZjUiLCIkdGFzayIsIl9yZWY2IiwiU0NJbmxpbmVNZW50aW9uSWNvblJvdyIsIlNDSW5saW5lTWVudGlvbldvcmQiLCJyZW5kZXJNZW50aW9uTGluayIsInN0YXJ0c1dpdGgiLCJfcGFyc2VNZW50aW9uUHJvdG9jb2wiLCJpc1Rhc2siLCJpY29uU2l6ZSIsInRhc2tVcmwiLCJoYW5kbGVUYXNrQ2xpY2siLCJlIiwibWV0YUtleSIsImN0cmxLZXkiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsImhhbmRsZVRhc2tLZXlEb3duIiwia2V5IiwiY2xhc3NOYW1lIiwib25DbGljayIsIm9uS2V5RG93biIsImlzUHJvamVjdCIsInByb2plY3RVcmwiLCJzaG93SWNvbiIsIl9zcGxpdExhYmVsRmlyc3RXb3JkIiwiaGFuZGxlUHJvamVjdENsaWNrIiwid2luZG93Iiwib3BlbiIsInVuZGVmaW5lZCIsInJvbGUiLCJ0YWJJbmRleCIsInN0cmlwTWVudGlvbk1hcmtlcnMiLCJfdHlwZSIsIl9pZCIsImZvcm1hdENoYXRMaXN0VGl0bGVNZW50aW9ucyIsIndpdGhvdXRNZW50aW9ucyIsInNsYXNoUmVnZXgiLCJSZWdFeHAiLCJzb3VyY2UiLCJ3aXRob3V0U2xhc2giLCJ3aXRob3V0SW5jb21wbGV0ZVNsYXNoIiwiZ2V0TWVudGlvblVybCIsIk1lbnRpb25DaGlwIiwiX3JlZjciLCJub3JtYWxpemVkTGFiZWwiLCJ1cmwiLCJfc3BsaXRMYWJlbEZpcnN0V29yZDIiLCJoYW5kbGVDbGljayIsImhhbmRsZUtleURvd24iLCJoYXNJbmxpbmVNYXJrZXJzIiwiY29sbGVjdElubGluZU1hcmtlcnMiLCJtYXJrZXJzIiwibGFzdEluZGV4IiwibSIsImV4ZWMiLCJfbTIiLCJfbTMiLCJfc2xpY2VkVG9BcnJheSIsInB1c2giLCJraW5kIiwiaW5kZXgiLCJzIiwic29ydCIsImEiLCJiIiwicmVuZGVyVGV4dFdpdGhNZW50aW9ucyIsIm91dCIsImxhc3RJZHgiLCJmb3JFYWNoIiwibWFya2VyIiwiaW5saW5lIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3JlbmRlckNvbnRleHRNZW50aW9ucy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCBSZWFjdEVsZW1lbnQsIE1vdXNlRXZlbnQsIEtleWJvYXJkRXZlbnQgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBzdHlsZWQsIHsgY3NzIH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5pbXBvcnQgeyBDb250ZXh0RW50aXR5VHlwZSwgQ29udGV4dE1lbnRpb24sIENPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTIH0gZnJvbSAnLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQge1xuICBNRU5USU9OX0NISVBfQ09MT1JTLFxuICBNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkcsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvYXRvbXMvQ29udGV4dE1lbnRpb25DaGlwL0NvbnRleHRNZW50aW9uQ2hpcC5zdHlsZXMnXG5pbXBvcnQgeyBTbGFzaENvbW1hbmRDaGlwIH0gZnJvbSAnLi4vY29tcG9uZW50cy9hdG9tcy9TbGFzaENvbW1hbmRDaGlwJ1xuaW1wb3J0IHsgU0xBU0hfQ09NTUFORF9NQVJLRVJfUkVHRVggfSBmcm9tICcuL3NsYXNoQ29tbWFuZE1hcmtlcidcbmltcG9ydCB7IFZJT0xFVF9JQV9DT0xPUlMgfSBmcm9tICcuLi9zdHlsZXMvY29uZmlnJ1xuaW1wb3J0IHsgU0NUYXNrTGluayB9IGZyb20gJy4uL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU1lc3NhZ2VzL25ld1N0eWxlcydcbmltcG9ydCB7IGdldENvbnRleHRNZW50aW9uSWNvbiB9IGZyb20gJy4vY29udGV4dE1lbnRpb25JY29ucydcbmltcG9ydCB7IG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwgfSBmcm9tICcuL2NvbnRleHRNZW50aW9uTGFiZWwnXG5pbXBvcnQgeyBvcGVuVGFza0luQ29yUGFuZWwgfSBmcm9tICcuL29wZW5UYXNrSW5Db3JQYW5lbCdcblxuLyoqXG4gKiBGb3JtYXRvIGRlbCBtYXJjYWRvciBxdWUgdmlhamEgZW4gZWwgdGV4dG8gZGVsIG1lbnNhamU6XG4gKiAgIFtbbWVudGlvbjo8dHlwZT46PGlkPnw8bGFiZWw+XV1cbiAqXG4gKiBFbCBlZGl0b3IgbG8gZW1pdGUgY3VhbmRvIHNlcmlhbGl6YSBlbCBjb250ZW50ZWRpdGFibGUsIGVsIGJhY2tlbmQgbG9cbiAqIHBlcnNpc3RlIHRhbCBjdWFsIHkgYWwgcmVuZGVyaXphciBzZSB0cmFuc2Zvcm1hIGVuIHVuIGxpbmsgbWFya2Rvd24gY29uXG4gKiB1biBwcm90b2NvbG8gcHJvcGlvIHF1ZSBgQ3VzdG9tTGlua2AgaW50ZXJjZXB0YSB5IGRpYnVqYSBjb21vIHNwYW5cbiAqIGVzdGlsYWRvLlxuICpcbiAqIFBvciBzZXBhcmFkbywgbGEgbWV0YWRhdGEgYGNvbnRleHRfbWVzc2FnZWAgbGxldmEgbG9zIHZhbG9yZXMgbGltcGlvc1xuICogKGlkICsgbmFtZSkgcGFyYSBxdWUgZWwgYmFja2VuZCBwdWVkYSBpbnRlcnByZXRhciBsYXMgZW50aWRhZGVzIHNpblxuICogdGVuZXIgcXVlIHBhcnNlYXIgZWwgdGV4dG8uXG4gKi9cbi8qKlxuICogTGFiZWwgcHVlZGUgY29udGVuZXIgYF1gIChlajogXCJbRWR1Y2F0ZV1CbG9nIFBvc3QgLi4uXCIpLCBwb3IgZXNvXG4gKiBzZSBjYXB0dXJhIGRlIGZvcm1hIGxhenkgaGFzdGEgZWwgY2llcnJlIHJlYWwgYF1dYC5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fTUFSS0VSX1JFR0VYID0gL1xcW1xcW21lbnRpb246KGNsaWVudHxwcm9qZWN0fHRhc2t8dXNlcnxtY3B8c2tpbGwpOihbXnxcXF1dKylcXHwoW1xcc1xcU10qPylcXF1cXF0vZ1xuZXhwb3J0IGNvbnN0IE1BSUFfTUVOVElPTl9QUk9UT0NPTCA9ICdtYWlhLW1lbnRpb246Ly8nXG5jb25zdCBJTkNPTVBMRVRFX01FTlRJT05fTUFSS0VSX1JFR0VYID0gL1xcW1xcW21lbnRpb246W1xcc1xcU10qJC9cbmNvbnN0IElOQ09NUExFVEVfU0xBU0hfTUFSS0VSX1JFR0VYID0gL1xcW1xcW3NsYXNoX2NvbW1hbmQ6W158XFxdXStcXHwoW1xcc1xcU10qKSQvXG5cbmNvbnN0IEFMTE9XRURfVFlQRVM6IENvbnRleHRFbnRpdHlUeXBlW10gPSBbJ2NsaWVudCcsICdwcm9qZWN0JywgJ3Rhc2snLCAndXNlcicsICdtY3AnLCAnc2tpbGwnXVxuXG5jb25zdCBwYXJzZU1lbnRpb25Qcm90b2NvbEhyZWYgPSAoaHJlZjogc3RyaW5nKTogeyB0eXBlOiBDb250ZXh0RW50aXR5VHlwZTsgaWQ6IHN0cmluZyB9ID0+IHtcbiAgY29uc3QgcmVzdCA9IGhyZWYuc2xpY2UoTUFJQV9NRU5USU9OX1BST1RPQ09MLmxlbmd0aClcbiAgY29uc3Qgc2xhc2hJZHggPSByZXN0LmluZGV4T2YoJy8nKVxuICBjb25zdCByYXdUeXBlID0gc2xhc2hJZHggPj0gMCA/IHJlc3Quc2xpY2UoMCwgc2xhc2hJZHgpIDogcmVzdFxuICBjb25zdCByYXdJZCA9IHNsYXNoSWR4ID49IDAgPyByZXN0LnNsaWNlKHNsYXNoSWR4ICsgMSkgOiAnJ1xuICBsZXQgaWQgPSAnJ1xuICB0cnkge1xuICAgIGlkID0gcmF3SWQgPyBkZWNvZGVVUklDb21wb25lbnQocmF3SWQpIDogJydcbiAgfSBjYXRjaCB7XG4gICAgaWQgPSByYXdJZFxuICB9XG4gIGNvbnN0IHR5cGUgPSBBTExPV0VEX1RZUEVTLmluY2x1ZGVzKHJhd1R5cGUgYXMgQ29udGV4dEVudGl0eVR5cGUpID8gKHJhd1R5cGUgYXMgQ29udGV4dEVudGl0eVR5cGUpIDogJ3VzZXInXG4gIHJldHVybiB7IHR5cGUsIGlkIH1cbn1cblxuLyoqIEdlbmVyYSBlbCBtYXJjYWRvciBwYXJhIHVuIG1lbnRpb24gZGFkby4gTG8gdXNhIGVsIGVkaXRvciBhbCBzZXJpYWxpemFyLiAqL1xuZXhwb3J0IGNvbnN0IHNlcmlhbGl6ZU1lbnRpb24gPSAobWVudGlvbjogQ29udGV4dE1lbnRpb24pOiBzdHJpbmcgPT5cbiAgYFtbbWVudGlvbjoke21lbnRpb24udHlwZX06JHttZW50aW9uLmlkfXwke21lbnRpb24ubGFiZWx9XV1gXG5cbi8qKlxuICogQ29udmllcnRlIGNhZGEgYFtbbWVudGlvbjouLi5dXWAgZW4gdW4gbGluayBtYXJrZG93biBjb24gcHJvdG9jb2xvIHByb3Bpb1xuICogcGFyYSBxdWUgU3RyZWFtZG93biBsbyBlbWl0YSBjb21vIGA8YT5gIHkgYEN1c3RvbUxpbmtgIGxvIGludGVyY2VwdGUuXG4gKi9cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1NZW50aW9uTWFya2VycyA9ICh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBpZiAoIXRleHQpIHJldHVybiB0ZXh0XG4gIHJldHVybiB0ZXh0LnJlcGxhY2UoTUVOVElPTl9NQVJLRVJfUkVHRVgsIChfbSwgdHlwZSwgaWQsIGxhYmVsKSA9PiB7XG4gICAgY29uc3Qgc2FmZUxhYmVsID0gU3RyaW5nKGxhYmVsKS5yZXBsYWNlKC9bXFxcXFxcXV0vZywgJ1xcXFwkJicpXG4gICAgcmV0dXJuIGBbJHtzYWZlTGFiZWx9XSgke01BSUFfTUVOVElPTl9QUk9UT0NPTH0ke3R5cGV9LyR7ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhpZCkpfSlgXG4gIH0pXG59XG5cbmNvbnN0IG1lbnRpb25DaGlsZHJlblRvTGFiZWwgPSAoY2hpbGRyZW46IFJlYWN0Tm9kZSk6IHN0cmluZyA9PiB7XG4gIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnKSByZXR1cm4gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChjaGlsZHJlbilcbiAgaWYgKGNoaWxkcmVuID09IG51bGwgfHwgY2hpbGRyZW4gPT09IGZhbHNlKSByZXR1cm4gJydcbiAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwoY2hpbGRyZW4ubWFwKGMgPT4gKHR5cGVvZiBjID09PSAnc3RyaW5nJyA/IGMgOiAnJykpLmpvaW4oJycpKVxuICB9XG4gIHJldHVybiBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKFN0cmluZyhjaGlsZHJlbikpXG59XG5cbmNvbnN0IHNwbGl0TGFiZWxGaXJzdFdvcmQgPSAobGFiZWw6IHN0cmluZyk6IHsgZmlyc3RXb3JkOiBzdHJpbmc7IHJlc3Q6IHN0cmluZyB9ID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwobGFiZWwpLnRyaW0oKVxuICBpZiAoIW5vcm1hbGl6ZWQpIHJldHVybiB7IGZpcnN0V29yZDogJycsIHJlc3Q6ICcnIH1cbiAgY29uc3QgZmlyc3RXaGl0ZXNwYWNlSWR4ID0gbm9ybWFsaXplZC5zZWFyY2goL1xccy8pXG4gIGlmIChmaXJzdFdoaXRlc3BhY2VJZHggPCAwKSByZXR1cm4geyBmaXJzdFdvcmQ6IG5vcm1hbGl6ZWQsIHJlc3Q6ICcnIH1cbiAgcmV0dXJuIHtcbiAgICBmaXJzdFdvcmQ6IG5vcm1hbGl6ZWQuc2xpY2UoMCwgZmlyc3RXaGl0ZXNwYWNlSWR4KSxcbiAgICByZXN0OiBub3JtYWxpemVkLnNsaWNlKGZpcnN0V2hpdGVzcGFjZUlkeCksXG4gIH1cbn1cblxuY29uc3QgSU5MSU5FX01FTlRJT05fSE9WRVJfQkc6IFBhcnRpYWw8UmVjb3JkPENvbnRleHRFbnRpdHlUeXBlLCBzdHJpbmc+PiA9IHtcbiAgcHJvamVjdDogVklPTEVUX0lBX0NPTE9SU1sxMDBdLFxufVxuXG5jb25zdCBpbmxpbmVNZW50aW9uSG92ZXJDc3MgPSAodHlwZTogQ29udGV4dEVudGl0eVR5cGUsIGlzQ2xpY2thYmxlPzogYm9vbGVhbikgPT4ge1xuICBpZiAodHlwZSA9PT0gJ3NraWxsJykgcmV0dXJuIGNzc2BgXG4gIGNvbnN0IGJnID0gSU5MSU5FX01FTlRJT05fSE9WRVJfQkdbdHlwZV0gPz8gTUVOVElPTl9DSElQX05PTl9UQVNLX0hPVkVSX0JHXG4gIHJldHVybiBjc3NgXG4gICAgYmFja2dyb3VuZDogJHtiZ307XG4gICAgb3BhY2l0eTogJHtpc0NsaWNrYWJsZSA/IDAuOTUgOiAxfTtcbiAgYFxufVxuXG4vKiogU3BhbiBpbmxpbmUgZXN0aWxhZG8gKG1lbmNpb25lcyBuby10YXNrIGVuIGNoYXQpLiAqL1xuY29uc3QgU0NJbmxpbmVNZW50aW9uID0gc3R5bGVkLnNwYW48eyAkdHlwZTogQ29udGV4dEVudGl0eVR5cGU7ICRpc0NsaWNrYWJsZT86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGlubGluZTtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgbWFyZ2luOiAwIDFweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LWZhbWlseTogdmFyKC0tY29yLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICdXb3JrIFNhbnMnKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgYmFja2dyb3VuZDogJHsoeyAkdHlwZSB9KSA9PiAoTUVOVElPTl9DSElQX0NPTE9SU1skdHlwZV0gPz8gTUVOVElPTl9DSElQX0NPTE9SUy51c2VyKS5iZ307XG4gIGNvbG9yOiAkeyh7ICR0eXBlIH0pID0+IChNRU5USU9OX0NISVBfQ09MT1JTWyR0eXBlXSA/PyBNRU5USU9OX0NISVBfQ09MT1JTLnVzZXIpLmZnfTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgY3Vyc29yOiAkeyh7ICRpc0NsaWNrYWJsZSB9KSA9PiAoJGlzQ2xpY2thYmxlID8gJ3BvaW50ZXInIDogJ2RlZmF1bHQnKX07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAmOmhvdmVyIHtcbiAgICAkeyh7ICR0eXBlLCAkaXNDbGlja2FibGUgfSkgPT4gaW5saW5lTWVudGlvbkhvdmVyQ3NzKCR0eXBlLCAkaXNDbGlja2FibGUpfVxuICB9XG5gXG5cbmNvbnN0IFNDSW5saW5lTWVudGlvbkljb24gPSBzdHlsZWQuc3Bhbjx7ICR0YXNrPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgd2lkdGg6ICR7KHsgJHRhc2sgfSkgPT4gKCR0YXNrID8gJzE2cHgnIDogJzE0cHgnKX07XG4gIGhlaWdodDogJHsoeyAkdGFzayB9KSA9PiAoJHRhc2sgPyAnMTZweCcgOiAnMTRweCcpfTtcbmBcblxuY29uc3QgU0NJbmxpbmVNZW50aW9uSWNvblJvdyA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuYFxuXG5jb25zdCBTQ0lubGluZU1lbnRpb25Xb3JkID0gc3R5bGVkLnNwYW5gXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5gXG5cbi8qKlxuICogU2kgZWwgaHJlZiBjb3JyZXNwb25kZSBhbCBwcm90b2NvbG8gZGUgbWVudGlvbiwgZGV2dWVsdmUgdW4gbm9kbyBlc3RpbGFkbyBwb3IgdGlwby5cbiAqIExhcyB0YXJlYXMgdXNhbiBgPGE+YCBjb21vIGxvcyBlbmxhY2VzIGRlIHRhcmVhIGRlbCBhZ2VudGUgKGAuaGFzLXRhc2stbGlua3NgKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlbmRlck1lbnRpb25MaW5rID0gKGhyZWY6IHN0cmluZyB8IHVuZGVmaW5lZCwgY2hpbGRyZW46IFJlYWN0Tm9kZSk6IFJlYWN0Tm9kZSB8IG51bGwgPT4ge1xuICBpZiAoIWhyZWYgfHwgIWhyZWYuc3RhcnRzV2l0aChNQUlBX01FTlRJT05fUFJPVE9DT0wpKSByZXR1cm4gbnVsbFxuICBjb25zdCB7IHR5cGUsIGlkIH0gPSBwYXJzZU1lbnRpb25Qcm90b2NvbEhyZWYoaHJlZilcbiAgY29uc3QgbGFiZWwgPSBtZW50aW9uQ2hpbGRyZW5Ub0xhYmVsKGNoaWxkcmVuKVxuICBjb25zdCBpc1Rhc2sgPSB0eXBlID09PSAndGFzaydcbiAgY29uc3QgaWNvblNpemUgPSBpc1Rhc2sgPyAxNiA6IDE0XG4gIGNvbnN0IHRhc2tVcmwgPSBgL3Rhc2tzLyR7aWR9L2RldGFpbGBcblxuICBjb25zdCBoYW5kbGVUYXNrQ2xpY2sgPSAoZTogTW91c2VFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHtcbiAgICBpZiAoZS5tZXRhS2V5IHx8IGUuY3RybEtleSkgcmV0dXJuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIG9wZW5UYXNrSW5Db3JQYW5lbChpZCwgJ2RldGFpbCcpXG4gIH1cblxuICBjb25zdCBoYW5kbGVUYXNrS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLmtleSAhPT0gJ0VudGVyJyAmJiBlLmtleSAhPT0gJyAnKSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBvcGVuVGFza0luQ29yUGFuZWwoaWQsICdkZXRhaWwnKVxuICB9XG5cbiAgaWYgKGlzVGFzaykge1xuICAgIHJldHVybiAoXG4gICAgICA8U0NUYXNrTGlua1xuICAgICAgICBocmVmPXt0YXNrVXJsfVxuICAgICAgICBjbGFzc05hbWU9e0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVxuICAgICAgICBkYXRhLW1lbnRpb24tdHlwZT17dHlwZX1cbiAgICAgICAgZGF0YS1tZW50aW9uLXN1cmZhY2U9XCJjaGF0XCJcbiAgICAgICAgb25DbGljaz17aGFuZGxlVGFza0NsaWNrfVxuICAgICAgICBvbktleURvd249e2hhbmRsZVRhc2tLZXlEb3dufVxuICAgICAgPlxuICAgICAgICB7bGFiZWx9XG4gICAgICA8L1NDVGFza0xpbms+XG4gICAgKVxuICB9XG5cbiAgY29uc3QgaXNQcm9qZWN0ID0gdHlwZSA9PT0gJ3Byb2plY3QnXG4gIGNvbnN0IHByb2plY3RVcmwgPSBpc1Byb2plY3QgPyBgL3Byb2plY3RzLyR7aWR9L2Rhc2hib2FyZGAgOiBudWxsXG4gIGNvbnN0IHNob3dJY29uID0gIWlzUHJvamVjdFxuICBjb25zdCB7IGZpcnN0V29yZCwgcmVzdCB9ID0gc3BsaXRMYWJlbEZpcnN0V29yZChsYWJlbClcblxuICBjb25zdCBoYW5kbGVQcm9qZWN0Q2xpY2sgPSAoZTogTW91c2VFdmVudDxIVE1MU3BhbkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKCFwcm9qZWN0VXJsKSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgd2luZG93Lm9wZW4ocHJvamVjdFVybCwgJ19ibGFuaycpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ0lubGluZU1lbnRpb25cbiAgICAgICR0eXBlPXt0eXBlfVxuICAgICAgJGlzQ2xpY2thYmxlPXtpc1Byb2plY3R9XG4gICAgICBjbGFzc05hbWU9e0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVxuICAgICAgZGF0YS1tZW50aW9uLXR5cGU9e3R5cGV9XG4gICAgICBkYXRhLW1lbnRpb24tc3VyZmFjZT1cImNoYXRcIlxuICAgICAgb25DbGljaz17aXNQcm9qZWN0ID8gaGFuZGxlUHJvamVjdENsaWNrIDogdW5kZWZpbmVkfVxuICAgICAgcm9sZT17aXNQcm9qZWN0ID8gJ2J1dHRvbicgOiB1bmRlZmluZWR9XG4gICAgICB0YWJJbmRleD17aXNQcm9qZWN0ID8gMCA6IHVuZGVmaW5lZH1cbiAgICA+XG4gICAgICB7c2hvd0ljb24gPyAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPFNDSW5saW5lTWVudGlvbkljb25Sb3c+XG4gICAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uSWNvbiAkdGFzaz17aXNUYXNrfT5cbiAgICAgICAgICAgICAge2dldENvbnRleHRNZW50aW9uSWNvbih0eXBlLCBNRU5USU9OX0NISVBfQ09MT1JTW3R5cGVdLmZnLCBpZCwgaWNvblNpemUpfVxuICAgICAgICAgICAgPC9TQ0lubGluZU1lbnRpb25JY29uPlxuICAgICAgICAgICAgPFNDSW5saW5lTWVudGlvbldvcmQ+e2ZpcnN0V29yZH08L1NDSW5saW5lTWVudGlvbldvcmQ+XG4gICAgICAgICAgPC9TQ0lubGluZU1lbnRpb25JY29uUm93PlxuICAgICAgICAgIHtyZXN0ID8gPHNwYW4+e3Jlc3R9PC9zcGFuPiA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7IXNob3dJY29uID8gbGFiZWwgOiBudWxsfVxuICAgIDwvU0NJbmxpbmVNZW50aW9uPlxuICApXG59XG5cbi8qKiBRdWl0YSBsb3MgbWFya2VycyBkZWwgdGV4dG8sIGRlamFuZG8gc29sbyBgbGFiZWxgLiDDmnRpbCBwYXJhIGZhbGxiYWNrIHBsYW5vLiAqL1xuZXhwb3J0IGNvbnN0IHN0cmlwTWVudGlvbk1hcmtlcnMgPSAodGV4dDogc3RyaW5nKTogc3RyaW5nID0+XG4gIHRleHQucmVwbGFjZShNRU5USU9OX01BUktFUl9SRUdFWCwgKF9tLCBfdHlwZSwgX2lkLCBsYWJlbCkgPT4gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChTdHJpbmcobGFiZWwpKSlcblxuLyoqXG4gKiBUw610dWxvcyBkZSBjb252ZXJzYWNpw7NuIChwLiBlai4gYGxhc3RfcXVlc3Rpb25gIGRlcml2YWRvIGRlbCBwcmltZXIgbWVuc2FqZSkgcHVlZGVuXG4gKiBpbmNsdWlyIGVsIHRleHRvIHNlcmlhbGl6YWRvIGBbW21lbnRpb246dHlwZTppZHxsYWJlbF1dYC4gUGFyYSBzaWRlYmFyIHkgbGlzdGFkb3MsXG4gKiByZWVtcGxhemEgY2FkYSBibG9xdWUgcG9yIGBsYWJlbGAgZW4gdGV4dG8gcGxhbm8sIHNpbiBlbCBtYXJjYWRvciBjcnVkby5cbiAqL1xuZXhwb3J0IGNvbnN0IGZvcm1hdENoYXRMaXN0VGl0bGVNZW50aW9ucyA9ICh0ZXh0OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RyaW5nID0+IHtcbiAgaWYgKHRleHQgPT0gbnVsbCB8fCB0ZXh0ID09PSAnJykgcmV0dXJuIHRleHQgPz8gJydcbiAgY29uc3Qgd2l0aG91dE1lbnRpb25zID0gdGV4dC5yZXBsYWNlKE1FTlRJT05fTUFSS0VSX1JFR0VYLCAoX20sIF90eXBlLCBfaWQsIGxhYmVsKSA9PlxuICAgIG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwoU3RyaW5nKGxhYmVsKS50cmltKCkpXG4gIClcbiAgY29uc3Qgc2xhc2hSZWdleCA9IG5ldyBSZWdFeHAoU0xBU0hfQ09NTUFORF9NQVJLRVJfUkVHRVguc291cmNlLCAnZycpXG4gIGNvbnN0IHdpdGhvdXRTbGFzaCA9IHdpdGhvdXRNZW50aW9ucy5yZXBsYWNlKHNsYXNoUmVnZXgsIChfbSwgX2lkLCBsYWJlbCkgPT4gYC8ke1N0cmluZyhsYWJlbCkudHJpbSgpfWApXG4gIGNvbnN0IHdpdGhvdXRJbmNvbXBsZXRlU2xhc2ggPSB3aXRob3V0U2xhc2gucmVwbGFjZShcbiAgICBJTkNPTVBMRVRFX1NMQVNIX01BUktFUl9SRUdFWCxcbiAgICAoX20sIGxhYmVsKSA9PiBgLyR7U3RyaW5nKGxhYmVsKS50cmltKCl9YFxuICApXG4gIHJldHVybiB3aXRob3V0SW5jb21wbGV0ZVNsYXNoLnJlcGxhY2UoSU5DT01QTEVURV9NRU5USU9OX01BUktFUl9SRUdFWCwgJycpLnRyaW0oKVxufVxuXG4vKiogR2VuZXJhIGxhIFVSTCBkZSBuYXZlZ2FjacOzbiBwYXJhIHVuIG1lbnRpb24gc2Vnw7puIHN1IHRpcG8uICovXG5jb25zdCBnZXRNZW50aW9uVXJsID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlLCBpZDogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHwgbnVsbCA9PiB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ2NsaWVudCc6XG4gICAgICByZXR1cm4gYC9jbGllbnRzLyR7aWR9YFxuICAgIGNhc2UgJ3Byb2plY3QnOlxuICAgICAgcmV0dXJuIGAvcHJvamVjdHMvJHtpZH0vZGFzaGJvYXJkYFxuICAgIGNhc2UgJ3Rhc2snOlxuICAgICAgcmV0dXJuIGAvdGFza3MvJHtpZH0vZGV0YWlsYFxuICAgIGNhc2UgJ3VzZXInOlxuICAgICAgcmV0dXJuIG51bGwgLy8gTG9zIHVzZXJzIG5vIHNvbiBjbGlja2VhYmxlc1xuICAgIGNhc2UgJ21jcCc6XG4gICAgICByZXR1cm4gbnVsbFxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmNvbnN0IE1lbnRpb25DaGlwID0gKHsgdHlwZSwgaWQsIGxhYmVsIH06IHsgdHlwZTogQ29udGV4dEVudGl0eVR5cGU7IGlkOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfSkgPT4ge1xuICBjb25zdCBub3JtYWxpemVkTGFiZWwgPSBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKGxhYmVsKVxuICBjb25zdCB1cmwgPSBnZXRNZW50aW9uVXJsKHR5cGUsIGlkKVxuICBjb25zdCBpc0NsaWNrYWJsZSA9ICEhdXJsXG4gIGNvbnN0IGlzVGFzayA9IHR5cGUgPT09ICd0YXNrJ1xuICBjb25zdCBpc1Byb2plY3QgPSB0eXBlID09PSAncHJvamVjdCdcbiAgY29uc3Qgc2hvd0ljb24gPSAhaXNQcm9qZWN0XG4gIGNvbnN0IGljb25TaXplID0gaXNUYXNrID8gMTYgOiAxNFxuICBjb25zdCB7IGZpcnN0V29yZCwgcmVzdCB9ID0gc3BsaXRMYWJlbEZpcnN0V29yZChub3JtYWxpemVkTGFiZWwpXG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoZTogTW91c2VFdmVudDxIVE1MQW5jaG9yRWxlbWVudCB8IEhUTUxTcGFuRWxlbWVudD4pID0+IHtcbiAgICBpZiAoIWlzQ2xpY2thYmxlIHx8ICF1cmwpIHJldHVyblxuICAgIGlmICh0eXBlID09PSAndGFzaycpIHtcbiAgICAgIGlmIChlLm1ldGFLZXkgfHwgZS5jdHJsS2V5KSByZXR1cm5cbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgb3BlblRhc2tJbkNvclBhbmVsKGlkLCAnZGV0YWlsJylcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50PEhUTUxBbmNob3JFbGVtZW50IHwgSFRNTFNwYW5FbGVtZW50PikgPT4ge1xuICAgIGlmICghaXNDbGlja2FibGUgfHwgdHlwZSAhPT0gJ3Rhc2snKSByZXR1cm5cbiAgICBpZiAoZS5rZXkgIT09ICdFbnRlcicgJiYgZS5rZXkgIT09ICcgJykgcmV0dXJuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgb3BlblRhc2tJbkNvclBhbmVsKGlkLCAnZGV0YWlsJylcbiAgfVxuXG4gIGlmICh0eXBlID09PSAndGFzaycpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDVGFza0xpbmtcbiAgICAgICAgaHJlZj17dXJsID8/ICcjJ31cbiAgICAgICAgY2xhc3NOYW1lPXtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31cbiAgICAgICAgZGF0YS1tZW50aW9uLXR5cGU9XCJ0YXNrXCJcbiAgICAgICAgZGF0YS1tZW50aW9uLXN1cmZhY2U9XCJjaGF0XCJcbiAgICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgID5cbiAgICAgICAge25vcm1hbGl6ZWRMYWJlbH1cbiAgICAgIDwvU0NUYXNrTGluaz5cbiAgICApXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ0lubGluZU1lbnRpb25cbiAgICAgICR0eXBlPXt0eXBlfVxuICAgICAgJGlzQ2xpY2thYmxlPXtpc0NsaWNrYWJsZX1cbiAgICAgIGNsYXNzTmFtZT17Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9XG4gICAgICBkYXRhLW1lbnRpb24tdHlwZT17dHlwZX1cbiAgICAgIGRhdGEtbWVudGlvbi1zdXJmYWNlPVwiY2hhdFwiXG4gICAgICBvbkNsaWNrPXtpc0NsaWNrYWJsZSA/IGhhbmRsZUNsaWNrIDogdW5kZWZpbmVkfVxuICAgICAgcm9sZT17aXNDbGlja2FibGUgPyAnYnV0dG9uJyA6IHVuZGVmaW5lZH1cbiAgICAgIHRhYkluZGV4PXtpc0NsaWNrYWJsZSA/IDAgOiB1bmRlZmluZWR9XG4gICAgPlxuICAgICAge3Nob3dJY29uID8gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25JY29uUm93PlxuICAgICAgICAgICAgPFNDSW5saW5lTWVudGlvbkljb24gJHRhc2s9e2lzVGFza30+XG4gICAgICAgICAgICAgIHtnZXRDb250ZXh0TWVudGlvbkljb24odHlwZSwgTUVOVElPTl9DSElQX0NPTE9SU1t0eXBlXS5mZywgaWQsIGljb25TaXplKX1cbiAgICAgICAgICAgIDwvU0NJbmxpbmVNZW50aW9uSWNvbj5cbiAgICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25Xb3JkPntmaXJzdFdvcmR9PC9TQ0lubGluZU1lbnRpb25Xb3JkPlxuICAgICAgICAgIDwvU0NJbmxpbmVNZW50aW9uSWNvblJvdz5cbiAgICAgICAgICB7cmVzdCA/IDxzcGFuPntyZXN0fTwvc3Bhbj4gOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICkgOiBudWxsfVxuICAgICAgeyFzaG93SWNvbiA/IG5vcm1hbGl6ZWRMYWJlbCA6IG51bGx9XG4gICAgPC9TQ0lubGluZU1lbnRpb24+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IGhhc0lubGluZU1hcmtlcnMgPSAodGV4dDogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIGlmICghdGV4dCkgcmV0dXJuIGZhbHNlXG4gIHJldHVybiB0ZXh0LmluY2x1ZGVzKCdbW21lbnRpb246JykgfHwgdGV4dC5pbmNsdWRlcygnW1tzbGFzaF9jb21tYW5kOicpXG59XG5cbnR5cGUgSW5saW5lTWFya2VyID1cbiAgfCB7IGtpbmQ6ICdtZW50aW9uJzsgaW5kZXg6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXI7IHR5cGU6IENvbnRleHRFbnRpdHlUeXBlOyBpZDogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1cbiAgfCB7IGtpbmQ6ICdzbGFzaCc7IGluZGV4OiBudW1iZXI7IGxlbmd0aDogbnVtYmVyOyBpZDogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1cblxuY29uc3QgY29sbGVjdElubGluZU1hcmtlcnMgPSAodGV4dDogc3RyaW5nKTogSW5saW5lTWFya2VyW10gPT4ge1xuICBjb25zdCBtYXJrZXJzOiBJbmxpbmVNYXJrZXJbXSA9IFtdXG5cbiAgTUVOVElPTl9NQVJLRVJfUkVHRVgubGFzdEluZGV4ID0gMFxuICBsZXQgbTogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IE1FTlRJT05fTUFSS0VSX1JFR0VYLmV4ZWModGV4dClcbiAgd2hpbGUgKG0pIHtcbiAgICBjb25zdCBbLCByYXdUeXBlLCBpZCwgbGFiZWxdID0gbVxuICAgIGNvbnN0IHR5cGUgPSBBTExPV0VEX1RZUEVTLmluY2x1ZGVzKHJhd1R5cGUgYXMgQ29udGV4dEVudGl0eVR5cGUpID8gKHJhd1R5cGUgYXMgQ29udGV4dEVudGl0eVR5cGUpIDogJ3VzZXInXG4gICAgbWFya2Vycy5wdXNoKHsga2luZDogJ21lbnRpb24nLCBpbmRleDogbS5pbmRleCwgbGVuZ3RoOiBtWzBdLmxlbmd0aCwgdHlwZSwgaWQsIGxhYmVsIH0pXG4gICAgbSA9IE1FTlRJT05fTUFSS0VSX1JFR0VYLmV4ZWModGV4dClcbiAgfVxuXG4gIGNvbnN0IHNsYXNoUmVnZXggPSBuZXcgUmVnRXhwKFNMQVNIX0NPTU1BTkRfTUFSS0VSX1JFR0VYLnNvdXJjZSwgJ2cnKVxuICBsZXQgczogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IHNsYXNoUmVnZXguZXhlYyh0ZXh0KVxuICB3aGlsZSAocykge1xuICAgIG1hcmtlcnMucHVzaCh7IGtpbmQ6ICdzbGFzaCcsIGluZGV4OiBzLmluZGV4LCBsZW5ndGg6IHNbMF0ubGVuZ3RoLCBpZDogc1sxXSwgbGFiZWw6IHNbMl0gfSlcbiAgICBzID0gc2xhc2hSZWdleC5leGVjKHRleHQpXG4gIH1cblxuICByZXR1cm4gbWFya2Vycy5zb3J0KChhLCBiKSA9PiBhLmluZGV4IC0gYi5pbmRleClcbn1cblxuZXhwb3J0IGNvbnN0IHJlbmRlclRleHRXaXRoTWVudGlvbnMgPSAodGV4dDogc3RyaW5nKTogQXJyYXk8c3RyaW5nIHwgUmVhY3RFbGVtZW50PiA9PiB7XG4gIGlmICghdGV4dCkgcmV0dXJuIFt0ZXh0XVxuICBjb25zdCBtYXJrZXJzID0gY29sbGVjdElubGluZU1hcmtlcnModGV4dClcbiAgaWYgKG1hcmtlcnMubGVuZ3RoID09PSAwKSByZXR1cm4gW3RleHRdXG5cbiAgY29uc3Qgb3V0OiBBcnJheTxzdHJpbmcgfCBSZWFjdEVsZW1lbnQ+ID0gW11cbiAgbGV0IGxhc3RJZHggPSAwXG4gIG1hcmtlcnMuZm9yRWFjaChtYXJrZXIgPT4ge1xuICAgIGlmIChtYXJrZXIuaW5kZXggPiBsYXN0SWR4KSBvdXQucHVzaCh0ZXh0LnNsaWNlKGxhc3RJZHgsIG1hcmtlci5pbmRleCkpXG4gICAgaWYgKG1hcmtlci5raW5kID09PSAnbWVudGlvbicpIHtcbiAgICAgIG91dC5wdXNoKFxuICAgICAgICA8TWVudGlvbkNoaXBcbiAgICAgICAgICBrZXk9e2BtZW50aW9uLSR7bWFya2VyLmluZGV4fS0ke21hcmtlci50eXBlfS0ke21hcmtlci5pZH1gfVxuICAgICAgICAgIHR5cGU9e21hcmtlci50eXBlfVxuICAgICAgICAgIGlkPXttYXJrZXIuaWR9XG4gICAgICAgICAgbGFiZWw9e21hcmtlci5sYWJlbH1cbiAgICAgICAgLz5cbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0LnB1c2goPFNsYXNoQ29tbWFuZENoaXAga2V5PXtgc2xhc2gtJHttYXJrZXIuaW5kZXh9LSR7bWFya2VyLmlkfWB9IGxhYmVsPXttYXJrZXIubGFiZWx9IGlubGluZT17ZmFsc2V9IC8+KVxuICAgIH1cbiAgICBsYXN0SWR4ID0gbWFya2VyLmluZGV4ICsgbWFya2VyLmxlbmd0aFxuICB9KVxuICBpZiAobGFzdElkeCA8IHRleHQubGVuZ3RoKSBvdXQucHVzaCh0ZXh0LnNsaWNlKGxhc3RJZHgpKVxuICByZXR1cm4gb3V0XG59XG4iXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPQSxNQUFNLElBQUlDLEdBQUcsUUFBUSxtQkFBbUI7QUFDL0MsU0FBNENDLDBCQUEwQixRQUFRLHlCQUF5QjtBQUN2RyxTQUNFQyxtQkFBbUIsRUFDbkJDLDhCQUE4QixRQUN6QixrRUFBa0U7QUFDekUsU0FBU0MsZ0JBQWdCLFFBQVEsc0NBQXNDO0FBQ3ZFLFNBQVNDLDBCQUEwQixRQUFRLHNCQUFzQjtBQUNqRSxTQUFTQyxnQkFBZ0IsUUFBUSxrQkFBa0I7QUFDbkQsU0FBU0MsVUFBVSxRQUFRLGtEQUFrRDtBQUM3RSxTQUFTQyxxQkFBcUIs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
|