nsc-react-component 4.3.12 → 4.3.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/page/BasePage/index.d.ts +1 -0
- package/lib/page/BasePage/index.js +46 -52
- package/lib/page/BasePage/index.js.map +1 -1
- package/lib/page/BasePage/utils.js +3 -2
- package/lib/page/BasePage/utils.js.map +1 -1
- package/lib/page/FormPage/index.js +12 -10
- package/lib/page/FormPage/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -48,7 +48,8 @@ export const convertColumns = (columns, _ref) => {
|
|
|
48
48
|
dictName: temp.dictName,
|
|
49
49
|
required: temp.required,
|
|
50
50
|
show: temp.editorShow === false ? false : true,
|
|
51
|
-
props: _objectSpread({}, temp.props)
|
|
51
|
+
props: _objectSpread({}, temp.props),
|
|
52
|
+
formRender: temp.formRender
|
|
52
53
|
});
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -179,4 +180,4 @@ export const getNewColumns = (columns, props) => {
|
|
|
179
180
|
|
|
180
181
|
// const newData = data.map(item=>)
|
|
181
182
|
};
|
|
182
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkJ1dHRvbiIsIm5zY2ZpbGUiLCJsb2Rhc2giLCJjb252ZXJ0Q29sdW1ucyIsImNvbHVtbnMiLCJfcmVmIiwic2VhcmNoRm9ybXMiLCJlZGl0b3JGb3JtcyIsImZvckVhY2giLCJpdGVtIiwidGVtcCIsIl9vYmplY3RTcHJlYWQiLCJ3aWR0aCIsImNoaWxkcmVuIiwibGVuZ3RoIiwic2VhcmNoIiwic2hvdyIsInByb3BzIiwic2VhcmNoUHJvcHMiLCJvbkNoYW5nZSIsInB1c2giLCJuYW1lIiwiZmllbGQiLCJkYXRhSW5kZXgiLCJsYWJlbCIsInVuZGVmaW5lZCIsInRpdGxlIiwidHlwZSIsIm9taXQiLCJsYWJlbENvbCIsIndyYXBwZXJDb2wiLCJydWxlcyIsInNlYXJjaFJ1bGVzIiwiZWRpdG9yIiwic3BhbiIsImRpY3ROYW1lIiwicmVxdWlyZWQiLCJlZGl0b3JTaG93IiwiZ2V0VGV4dCIsInRleHQiLCJfcHJvcHMkZGF0YSIsIm5ld1RleHQiLCJkYXRhIiwiaSIsInZhbHVlIiwiZ2V0TmV3Q29sdW1ucyIsImNsb25lRGVlcCIsImNvbnZlckRhdGEiLCJtYXAiLCJvYmoiLCJfdGVtcFByb3AkZGF0YSIsIl90ZW1wIiwiX3RlbXAyIiwiZmlsdGVyIiwiY2hpbGQiLCJjb2x1bW5TaG93IiwiY29sdW1uU2VhcmNoIiwiZmlsdGVyUHJvcHMiLCJ0ZW1wUHJvcCIsImVsbGlwc2lzIiwic2hvd1RpdGxlIiwicmVuZGVyIiwicmVuZGVyU3RyIiwiX3RleHQiLCJfcmVjb3JkIiwiX2luZGV4IiwiZXZlbnRPcHRpb24iLCJyZWNvcmQiLCJpbmRleCIsImZ1bmNzIiwiZnVuYyIsIkZ1bmN0aW9uIiwicmVzIiwiVXRpbHMiLCJBcnJheSIsImlzQXJyYXkiLCJmaWxlcyIsIl9maWxlcyQiLCJjcmVhdGVFbGVtZW50Iiwib25DbGljayIsImRvd25sb2FkIiwiZmlsZUlkIiwiZmlsZU5hbWUiLCJmaWxlSWRzIiwiZG93bmxvYWRaaXAiLCJqb2luIiwiX2ZpbGVzJDIiLCJjbGFzc05hbWUiLCJjb2x1bW4iLCJmaWx0ZXJlZENvbHVtbnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYWdlL0Jhc2VQYWdlL3V0aWxzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBuc2NmaWxlIGZyb20gXCJuc2MtZmlsZVwiO1xyXG5pbXBvcnQgbG9kYXNoIGZyb20gXCJsb2Rhc2hcIjtcclxuZXhwb3J0IGNvbnN0IGNvbnZlcnRDb2x1bW5zID0gKFxyXG4gIGNvbHVtbnM6IGFueSxcclxuICB7IHNlYXJjaEZvcm1zID0gW10sIGVkaXRvckZvcm1zID0gW10gfTogYW55XHJcbikgPT4ge1xyXG4gIGNvbHVtbnMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICBsZXQgdGVtcCA9IHsgd2lkdGg6IDEwMCwgLi4uaXRlbSB9O1xyXG4gICAgaWYgKHRlbXAuY2hpbGRyZW4gJiYgdGVtcC5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnZlcnRDb2x1bW5zKHRlbXAuY2hpbGRyZW4sIHsgc2VhcmNoRm9ybXMsIGVkaXRvckZvcm1zIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gSGFuZGxlIHNlYXJjaCBmb3JtIGNvbnZlcnNpb25cclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRlbXAuc2VhcmNoID09PSB0cnVlIHx8XHJcbiAgICAgICAgKHR5cGVvZiB0ZW1wLnNlYXJjaCA9PT0gXCJvYmplY3RcIiAmJiB0ZW1wLnNlYXJjaC5zaG93ID09PSB0cnVlKVxyXG4gICAgICApIHtcclxuICAgICAgICBsZXQgcHJvcHMgPSB7IC4uLih0ZW1wLnByb3BzIHx8IHt9KSB9O1xyXG4gICAgICAgIGNvbnN0IHNlYXJjaFByb3BzID1cclxuICAgICAgICAgIHR5cGVvZiB0ZW1wLnNlYXJjaCA9PT0gXCJvYmplY3RcIiA/IHsgLi4udGVtcC5zZWFyY2ggfSA6IHt9O1xyXG4gICAgICAgIGRlbGV0ZSBwcm9wcy5vbkNoYW5nZTtcclxuICAgICAgICBzZWFyY2hGb3Jtcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICBsYWJlbDpcclxuICAgICAgICAgICAgKHR5cGVvZiB0ZW1wLnNlYXJjaCA9PT0gXCJvYmplY3RcIiA/IHRlbXAuc2VhcmNoLmxhYmVsIDogdW5kZWZpbmVkKSB8fFxyXG4gICAgICAgICAgICB0ZW1wLnRpdGxlLFxyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgcHJvcHM6IHtcclxuICAgICAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgICAgICAgIC4uLmxvZGFzaC5vbWl0KHNlYXJjaFByb3BzLCBbXHJcbiAgICAgICAgICAgICAgXCJsYWJlbFwiLFxyXG4gICAgICAgICAgICAgIFwibGFiZWxDb2xcIixcclxuICAgICAgICAgICAgICBcInNob3dcIixcclxuICAgICAgICAgICAgICBcIndyYXBwZXJDb2xcIixcclxuICAgICAgICAgICAgXSksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbGFiZWxDb2w6XHJcbiAgICAgICAgICAgIHR5cGVvZiB0ZW1wLnNlYXJjaCA9PT0gXCJvYmplY3RcIiA/IHRlbXAuc2VhcmNoLmxhYmVsQ29sIDogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgd3JhcHBlckNvbDpcclxuICAgICAgICAgICAgdHlwZW9mIHRlbXAuc2VhcmNoID09PSBcIm9iamVjdFwiXHJcbiAgICAgICAgICAgICAgPyB0ZW1wLnNlYXJjaC53cmFwcGVyQ29sXHJcbiAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICBydWxlczogdGVtcC5zZWFyY2hSdWxlcyB8fCBbXSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICAvLyBIYW5kbGUgZWRpdG9yIGZvcm0gY29udmVyc2lvblxyXG4gICAgICBpZiAodGVtcC5lZGl0b3IgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgZWRpdG9yRm9ybXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOiB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4LFxyXG4gICAgICAgICAgbGFiZWw6IHRlbXAudGl0bGUsXHJcbiAgICAgICAgICBydWxlczogdGVtcC5ydWxlcyB8fCBbXSxcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHNwYW46IHRlbXAuc3BhbixcclxuICAgICAgICAgIGRpY3ROYW1lOiB0ZW1wLmRpY3ROYW1lLFxyXG4gICAgICAgICAgcmVxdWlyZWQ6IHRlbXAucmVxdWlyZWQsXHJcbiAgICAgICAgICBzaG93OiB0ZW1wLmVkaXRvclNob3cgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlLFxyXG4gICAgICAgICAgcHJvcHM6IHsgLi4udGVtcC5wcm9wcyB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBzZWFyY2hGb3JtcyxcclxuICAgIGVkaXRvckZvcm1zLFxyXG4gIH07XHJcbn07XHJcbmNvbnN0IGdldFRleHQgPSAocHJvcHMsIHRleHQpID0+IHtcclxuICBsZXQgbmV3VGV4dCA9IHRleHQ7XHJcbiAgaWYgKHByb3BzPy5kYXRhICYmIHByb3BzPy5kYXRhPy5sZW5ndGggPiAwKSB7XHJcbiAgICBsZXQgZGF0YSA9IHByb3BzLmRhdGE7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGE/Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChkYXRhW2ldLnZhbHVlID09IHRleHQpIHtcclxuICAgICAgICBuZXdUZXh0ID0gZGF0YVtpXS5sYWJlbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gbmV3VGV4dDtcclxufTtcclxuZXhwb3J0IGNvbnN0IGdldE5ld0NvbHVtbnMgPSAoY29sdW1uczogYW55LCBwcm9wczogYW55KSA9PiB7XHJcbiAgbGV0IGRhdGEgPSBsb2Rhc2guY2xvbmVEZWVwKGNvbHVtbnMpO1xyXG5cclxuICBmdW5jdGlvbiBjb252ZXJEYXRhKGRhdGEpIHtcclxuICAgIHJldHVybiBkYXRhXHJcbiAgICAgIC5tYXAoKG9iaikgPT4ge1xyXG4gICAgICAgIGxldCB0ZW1wID0geyB3aWR0aDogMTUwLCAuLi5vYmogfTtcclxuICAgICAgICBkZWxldGUgdGVtcC5zZWFyY2g7XHJcbiAgICAgICAgZGVsZXRlIHRlbXAucnVsZXM7XHJcbiAgICAgICAgZGVsZXRlIHRlbXAuc3BhbjtcclxuICAgICAgICBkZWxldGUgdGVtcC5yZXF1aXJlZDtcclxuICAgICAgICBpZiAodGVtcC5jaGlsZHJlbikge1xyXG4gICAgICAgICAgdGVtcC5jaGlsZHJlbiA9IHRlbXAuY2hpbGRyZW4uZmlsdGVyKFxyXG4gICAgICAgICAgICAoY2hpbGQpID0+IGNoaWxkLmNvbHVtblNob3cgIT09IGZhbHNlXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGVtcC5jb2x1bW5TZWFyY2gpIHtcclxuICAgICAgICAgIHRlbXAuZmlsdGVyUHJvcHMgPSB7XHJcbiAgICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgICAgcHJvcHM6IHRlbXAucHJvcHMsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgdGVtcFByb3AgPSB7IC4uLnRlbXAucHJvcHMgfTtcclxuICAgICAgICBpZiAodGVtcFByb3A/LmRhdGEgJiYgdGVtcFByb3A/LmRhdGE/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRlbXAgPSB7XHJcbiAgICAgICAgICAgIGVsbGlwc2lzOiB7IHNob3dUaXRsZTogZmFsc2UgfSxcclxuICAgICAgICAgICAgcmVuZGVyOiAodGV4dDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGdldFRleHQodGVtcFByb3AsIHRleHQpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAuLi50ZW1wLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZGVsZXRlIHRlbXAucHJvcHM7XHJcbiAgICAgICAgZGVsZXRlIHRlbXAucHJvcHM7XHJcbiAgICAgICAgaWYgKHRlbXAucmVuZGVyICYmIHR5cGVvZiB0ZW1wLnJlbmRlciA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICBsZXQgcmVuZGVyU3RyID0gdGVtcC5yZW5kZXI7XHJcbiAgICAgICAgICB0ZW1wID0ge1xyXG4gICAgICAgICAgICAuLi50ZW1wLFxyXG4gICAgICAgICAgICByZW5kZXI6IChfdGV4dCwgX3JlY29yZCwgX2luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZXZlbnRPcHRpb24gPSB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0OiBfdGV4dCxcclxuICAgICAgICAgICAgICAgIHJlY29yZDogX3JlY29yZCxcclxuICAgICAgICAgICAgICAgIGluZGV4OiBfaW5kZXgsXHJcbiAgICAgICAgICAgICAgICBmdW5jczogcHJvcHMuZnVuY3MsXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICBjb25zdCBmdW5jID0gbmV3IEZ1bmN0aW9uKFwiZXZlbnRPcHRpb24sVXRpbHNcIiwgcmVuZGVyU3RyKTtcclxuICAgICAgICAgICAgICBjb25zdCByZXMgPSBmdW5jKGV2ZW50T3B0aW9uLCBwcm9wcy5VdGlscyk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0ZW1wLnR5cGUgPT0gXCJVcGxvYWRcIiAmJiB0ZW1wPy5jb2x1bW5TaG93ICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgdGVtcCA9IHtcclxuICAgICAgICAgICAgcmVuZGVyOiAoX3RleHQsIHJlY29yZCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlY29yZFt0ZW1wLmRhdGFJbmRleF0pKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlcyA9IHJlY29yZFt0ZW1wLmRhdGFJbmRleF07XHJcbiAgICAgICAgICAgICAgICBpZiAoZmlsZXMubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPXtcImxpbmtcIn1cclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnNjZmlsZS5kb3dubG9hZChmaWxlc1swXS5maWxlSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZXNbMF0/LmZpbGVOYW1lfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaWxlcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT17XCJsaW5rXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaWxlSWRzID0gW10gYXMgYW55O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlSWRzLnB1c2goaXRlbS5maWxlSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnNjZmlsZS5kb3dubG9hZFppcChmaWxlSWRzLmpvaW4oXCIsXCIpKTtcclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge1wi5paH5Lu25LiL6L29XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAuLi50ZW1wLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRlbXAudHlwZSA9PSBcIkltYWdlXCIgJiYgdGVtcD8uY29sdW1uU2hvdyAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgIHRlbXAgPSB7XHJcbiAgICAgICAgICAgIHJlbmRlcjogKF90ZXh0LCByZWNvcmQpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZWNvcmRbdGVtcC5kYXRhSW5kZXhdKSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZXMgPSByZWNvcmRbdGVtcC5kYXRhSW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgaWYgKGZpbGVzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtYmFzZXBhZ2UtdGFibGUtaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZXNbMF0/LmZpbGVOYW1lfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaWxlcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPXtcImxpbmtcIn0gb25DbGljaz17KCkgPT4ge319PlxyXG4gICAgICAgICAgICAgICAgICAgICAg5Zu+54mH5p+l55yLXHJcbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAuLi50ZW1wLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRlbXAuY29sdW1uU2hvdyAhPT0gZmFsc2UgPyB0ZW1wIDogbnVsbDtcclxuICAgICAgfSlcclxuICAgICAgLmZpbHRlcigoY29sdW1uKSA9PiBjb2x1bW4gIT09IG51bGwpO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZmlsdGVyZWRDb2x1bW5zID0gY29udmVyRGF0YShkYXRhKTtcclxuICByZXR1cm4gZmlsdGVyZWRDb2x1bW5zO1xyXG4gIC8vIOS9v+eUqG1hcOmBjeWOhuagkeS4reeahOavj+S4quiKgueCueW5tuW6lOeUqOS/ruaUueWHveaVsFxyXG5cclxuICAvLyBjb25zdCBuZXdEYXRhID0gZGF0YS5tYXAoaXRlbT0+KVxyXG59O1xyXG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBT0EsS0FBSyxNQUFNLE9BQU87QUFDekIsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxPQUFPLE1BQU0sVUFBVTtBQUM5QixPQUFPQyxNQUFNLE1BQU0sUUFBUTtBQUMzQixPQUFPLE1BQU1DLGNBQWMsR0FBR0EsQ0FDNUJDLE9BQVksRUFBQUMsSUFBQSxLQUVUO0VBQUEsSUFESDtJQUFFQyxXQUFXLEdBQUcsRUFBRTtJQUFFQyxXQUFXLEdBQUc7RUFBUSxDQUFDLEdBQUFGLElBQUE7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
|
|
183
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkJ1dHRvbiIsIm5zY2ZpbGUiLCJsb2Rhc2giLCJjb252ZXJ0Q29sdW1ucyIsImNvbHVtbnMiLCJfcmVmIiwic2VhcmNoRm9ybXMiLCJlZGl0b3JGb3JtcyIsImZvckVhY2giLCJpdGVtIiwidGVtcCIsIl9vYmplY3RTcHJlYWQiLCJ3aWR0aCIsImNoaWxkcmVuIiwibGVuZ3RoIiwic2VhcmNoIiwic2hvdyIsInByb3BzIiwic2VhcmNoUHJvcHMiLCJvbkNoYW5nZSIsInB1c2giLCJuYW1lIiwiZmllbGQiLCJkYXRhSW5kZXgiLCJsYWJlbCIsInVuZGVmaW5lZCIsInRpdGxlIiwidHlwZSIsIm9taXQiLCJsYWJlbENvbCIsIndyYXBwZXJDb2wiLCJydWxlcyIsInNlYXJjaFJ1bGVzIiwiZWRpdG9yIiwic3BhbiIsImRpY3ROYW1lIiwicmVxdWlyZWQiLCJlZGl0b3JTaG93IiwiZm9ybVJlbmRlciIsImdldFRleHQiLCJ0ZXh0IiwiX3Byb3BzJGRhdGEiLCJuZXdUZXh0IiwiZGF0YSIsImkiLCJ2YWx1ZSIsImdldE5ld0NvbHVtbnMiLCJjbG9uZURlZXAiLCJjb252ZXJEYXRhIiwibWFwIiwib2JqIiwiX3RlbXBQcm9wJGRhdGEiLCJfdGVtcCIsIl90ZW1wMiIsImZpbHRlciIsImNoaWxkIiwiY29sdW1uU2hvdyIsImNvbHVtblNlYXJjaCIsImZpbHRlclByb3BzIiwidGVtcFByb3AiLCJlbGxpcHNpcyIsInNob3dUaXRsZSIsInJlbmRlciIsInJlbmRlclN0ciIsIl90ZXh0IiwiX3JlY29yZCIsIl9pbmRleCIsImV2ZW50T3B0aW9uIiwicmVjb3JkIiwiaW5kZXgiLCJmdW5jcyIsImZ1bmMiLCJGdW5jdGlvbiIsInJlcyIsIlV0aWxzIiwiQXJyYXkiLCJpc0FycmF5IiwiZmlsZXMiLCJfZmlsZXMkIiwiY3JlYXRlRWxlbWVudCIsIm9uQ2xpY2siLCJkb3dubG9hZCIsImZpbGVJZCIsImZpbGVOYW1lIiwiZmlsZUlkcyIsImRvd25sb2FkWmlwIiwiam9pbiIsIl9maWxlcyQyIiwiY2xhc3NOYW1lIiwiY29sdW1uIiwiZmlsdGVyZWRDb2x1bW5zIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9CYXNlUGFnZS91dGlscy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi8uLi9iYXNlL2J1dHRvblwiO1xyXG5pbXBvcnQgbnNjZmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IGxvZGFzaCBmcm9tIFwibG9kYXNoXCI7XHJcbmV4cG9ydCBjb25zdCBjb252ZXJ0Q29sdW1ucyA9IChcclxuICBjb2x1bW5zOiBhbnksXHJcbiAgeyBzZWFyY2hGb3JtcyA9IFtdLCBlZGl0b3JGb3JtcyA9IFtdIH06IGFueVxyXG4pID0+IHtcclxuICBjb2x1bW5zLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgbGV0IHRlbXAgPSB7IHdpZHRoOiAxMDAsIC4uLml0ZW0gfTtcclxuICAgIGlmICh0ZW1wLmNoaWxkcmVuICYmIHRlbXAuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb252ZXJ0Q29sdW1ucyh0ZW1wLmNoaWxkcmVuLCB7IHNlYXJjaEZvcm1zLCBlZGl0b3JGb3JtcyB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIEhhbmRsZSBzZWFyY2ggZm9ybSBjb252ZXJzaW9uXHJcbiAgICAgIGlmIChcclxuICAgICAgICB0ZW1wLnNlYXJjaCA9PT0gdHJ1ZSB8fFxyXG4gICAgICAgICh0eXBlb2YgdGVtcC5zZWFyY2ggPT09IFwib2JqZWN0XCIgJiYgdGVtcC5zZWFyY2guc2hvdyA9PT0gdHJ1ZSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgbGV0IHByb3BzID0geyAuLi4odGVtcC5wcm9wcyB8fCB7fSkgfTtcclxuICAgICAgICBjb25zdCBzZWFyY2hQcm9wcyA9XHJcbiAgICAgICAgICB0eXBlb2YgdGVtcC5zZWFyY2ggPT09IFwib2JqZWN0XCIgPyB7IC4uLnRlbXAuc2VhcmNoIH0gOiB7fTtcclxuICAgICAgICBkZWxldGUgcHJvcHMub25DaGFuZ2U7XHJcbiAgICAgICAgc2VhcmNoRm9ybXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOiB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4LFxyXG4gICAgICAgICAgbGFiZWw6XHJcbiAgICAgICAgICAgICh0eXBlb2YgdGVtcC5zZWFyY2ggPT09IFwib2JqZWN0XCIgPyB0ZW1wLnNlYXJjaC5sYWJlbCA6IHVuZGVmaW5lZCkgfHxcclxuICAgICAgICAgICAgdGVtcC50aXRsZSxcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB7XHJcbiAgICAgICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgICAgICAuLi5sb2Rhc2gub21pdChzZWFyY2hQcm9wcywgW1xyXG4gICAgICAgICAgICAgIFwibGFiZWxcIixcclxuICAgICAgICAgICAgICBcImxhYmVsQ29sXCIsXHJcbiAgICAgICAgICAgICAgXCJzaG93XCIsXHJcbiAgICAgICAgICAgICAgXCJ3cmFwcGVyQ29sXCIsXHJcbiAgICAgICAgICAgIF0pLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxhYmVsQ29sOlxyXG4gICAgICAgICAgICB0eXBlb2YgdGVtcC5zZWFyY2ggPT09IFwib2JqZWN0XCIgPyB0ZW1wLnNlYXJjaC5sYWJlbENvbCA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgIHdyYXBwZXJDb2w6XHJcbiAgICAgICAgICAgIHR5cGVvZiB0ZW1wLnNlYXJjaCA9PT0gXCJvYmplY3RcIlxyXG4gICAgICAgICAgICAgID8gdGVtcC5zZWFyY2gud3JhcHBlckNvbFxyXG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgcnVsZXM6IHRlbXAuc2VhcmNoUnVsZXMgfHwgW10sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgLy8gSGFuZGxlIGVkaXRvciBmb3JtIGNvbnZlcnNpb25cclxuICAgICAgaWYgKHRlbXAuZWRpdG9yICE9PSBmYWxzZSkge1xyXG4gICAgICAgIGVkaXRvckZvcm1zLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogdGVtcC5maWVsZCB8fCB0ZW1wLmRhdGFJbmRleCxcclxuICAgICAgICAgIGxhYmVsOiB0ZW1wLnRpdGxlLFxyXG4gICAgICAgICAgcnVsZXM6IHRlbXAucnVsZXMgfHwgW10sXHJcbiAgICAgICAgICB0eXBlOiB0ZW1wLnR5cGUsXHJcbiAgICAgICAgICBzcGFuOiB0ZW1wLnNwYW4sXHJcbiAgICAgICAgICBkaWN0TmFtZTogdGVtcC5kaWN0TmFtZSxcclxuICAgICAgICAgIHJlcXVpcmVkOiB0ZW1wLnJlcXVpcmVkLFxyXG4gICAgICAgICAgc2hvdzogdGVtcC5lZGl0b3JTaG93ID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZSxcclxuICAgICAgICAgIHByb3BzOiB7IC4uLnRlbXAucHJvcHMgfSxcclxuICAgICAgICAgIGZvcm1SZW5kZXI6dGVtcC5mb3JtUmVuZGVyXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIHNlYXJjaEZvcm1zLFxyXG4gICAgZWRpdG9yRm9ybXMsXHJcbiAgfTtcclxufTtcclxuY29uc3QgZ2V0VGV4dCA9IChwcm9wcywgdGV4dCkgPT4ge1xyXG4gIGxldCBuZXdUZXh0ID0gdGV4dDtcclxuICBpZiAocHJvcHM/LmRhdGEgJiYgcHJvcHM/LmRhdGE/Lmxlbmd0aCA+IDApIHtcclxuICAgIGxldCBkYXRhID0gcHJvcHMuZGF0YTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YT8ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGRhdGFbaV0udmFsdWUgPT0gdGV4dCkge1xyXG4gICAgICAgIG5ld1RleHQgPSBkYXRhW2ldLmxhYmVsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBuZXdUZXh0O1xyXG59O1xyXG5leHBvcnQgY29uc3QgZ2V0TmV3Q29sdW1ucyA9IChjb2x1bW5zOiBhbnksIHByb3BzOiBhbnkpID0+IHtcclxuICBsZXQgZGF0YSA9IGxvZGFzaC5jbG9uZURlZXAoY29sdW1ucyk7XHJcblxyXG4gIGZ1bmN0aW9uIGNvbnZlckRhdGEoZGF0YSkge1xyXG4gICAgcmV0dXJuIGRhdGFcclxuICAgICAgLm1hcCgob2JqKSA9PiB7XHJcbiAgICAgICAgbGV0IHRlbXAgPSB7IHdpZHRoOiAxNTAsIC4uLm9iaiB9O1xyXG4gICAgICAgIGRlbGV0ZSB0ZW1wLnNlYXJjaDtcclxuICAgICAgICBkZWxldGUgdGVtcC5ydWxlcztcclxuICAgICAgICBkZWxldGUgdGVtcC5zcGFuO1xyXG4gICAgICAgIGRlbGV0ZSB0ZW1wLnJlcXVpcmVkO1xyXG4gICAgICAgIGlmICh0ZW1wLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgICB0ZW1wLmNoaWxkcmVuID0gdGVtcC5jaGlsZHJlbi5maWx0ZXIoXHJcbiAgICAgICAgICAgIChjaGlsZCkgPT4gY2hpbGQuY29sdW1uU2hvdyAhPT0gZmFsc2VcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0ZW1wLmNvbHVtblNlYXJjaCkge1xyXG4gICAgICAgICAgdGVtcC5maWx0ZXJQcm9wcyA9IHtcclxuICAgICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgICBwcm9wczogdGVtcC5wcm9wcyxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB0ZW1wUHJvcCA9IHsgLi4udGVtcC5wcm9wcyB9O1xyXG4gICAgICAgIGlmICh0ZW1wUHJvcD8uZGF0YSAmJiB0ZW1wUHJvcD8uZGF0YT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGVtcCA9IHtcclxuICAgICAgICAgICAgZWxsaXBzaXM6IHsgc2hvd1RpdGxlOiBmYWxzZSB9LFxyXG4gICAgICAgICAgICByZW5kZXI6ICh0ZXh0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gZ2V0VGV4dCh0ZW1wUHJvcCwgdGV4dCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIC4uLnRlbXAsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBkZWxldGUgdGVtcC5wcm9wcztcclxuICAgICAgICBkZWxldGUgdGVtcC5wcm9wcztcclxuICAgICAgICBpZiAodGVtcC5yZW5kZXIgJiYgdHlwZW9mIHRlbXAucmVuZGVyID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgIGxldCByZW5kZXJTdHIgPSB0ZW1wLnJlbmRlcjtcclxuICAgICAgICAgIHRlbXAgPSB7XHJcbiAgICAgICAgICAgIC4uLnRlbXAsXHJcbiAgICAgICAgICAgIHJlbmRlcjogKF90ZXh0LCBfcmVjb3JkLCBfaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBldmVudE9wdGlvbiA9IHtcclxuICAgICAgICAgICAgICAgIHRleHQ6IF90ZXh0LFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkOiBfcmVjb3JkLFxyXG4gICAgICAgICAgICAgICAgaW5kZXg6IF9pbmRleCxcclxuICAgICAgICAgICAgICAgIGZ1bmNzOiBwcm9wcy5mdW5jcyxcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIGNvbnN0IGZ1bmMgPSBuZXcgRnVuY3Rpb24oXCJldmVudE9wdGlvbixVdGlsc1wiLCByZW5kZXJTdHIpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGZ1bmMoZXZlbnRPcHRpb24sIHByb3BzLlV0aWxzKTtcclxuICAgICAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRlbXAudHlwZSA9PSBcIlVwbG9hZFwiICYmIHRlbXA/LmNvbHVtblNob3cgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICB0ZW1wID0ge1xyXG4gICAgICAgICAgICByZW5kZXI6IChfdGV4dCwgcmVjb3JkKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVjb3JkW3RlbXAuZGF0YUluZGV4XSkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVzID0gcmVjb3JkW3RlbXAuZGF0YUluZGV4XTtcclxuICAgICAgICAgICAgICAgIGlmIChmaWxlcy5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9e1wibGlua1wifVxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuc2NmaWxlLmRvd25sb2FkKGZpbGVzWzBdLmZpbGVJZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlc1swXT8uZmlsZU5hbWV9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZpbGVzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPXtcImxpbmtcIn1cclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpbGVJZHMgPSBbXSBhcyBhbnk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVJZHMucHVzaChpdGVtLmZpbGVJZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuc2NmaWxlLmRvd25sb2FkWmlwKGZpbGVJZHMuam9pbihcIixcIikpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7XCLmlofku7bkuIvovb1cIn1cclxuICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIC4uLnRlbXAsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGVtcC50eXBlID09IFwiSW1hZ2VcIiAmJiB0ZW1wPy5jb2x1bW5TaG93ICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgdGVtcCA9IHtcclxuICAgICAgICAgICAgcmVuZGVyOiAoX3RleHQsIHJlY29yZCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlY29yZFt0ZW1wLmRhdGFJbmRleF0pKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlcyA9IHJlY29yZFt0ZW1wLmRhdGFJbmRleF07XHJcbiAgICAgICAgICAgICAgICBpZiAoZmlsZXMubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1iYXNlcGFnZS10YWJsZS1pbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlc1swXT8uZmlsZU5hbWV9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZpbGVzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9e1wibGlua1wifSBvbkNsaWNrPXsoKSA9PiB7fX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICDlm77niYfmn6XnnItcclxuICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIC4uLnRlbXAsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGVtcC5jb2x1bW5TaG93ICE9PSBmYWxzZSA/IHRlbXAgOiBudWxsO1xyXG4gICAgICB9KVxyXG4gICAgICAuZmlsdGVyKChjb2x1bW4pID0+IGNvbHVtbiAhPT0gbnVsbCk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBmaWx0ZXJlZENvbHVtbnMgPSBjb252ZXJEYXRhKGRhdGEpO1xyXG4gIHJldHVybiBmaWx0ZXJlZENvbHVtbnM7XHJcbiAgLy8g5L2/55SobWFw6YGN5Y6G5qCR5Lit55qE5q+P5Liq6IqC54K55bm25bqU55So5L+u5pS55Ye95pWwXHJcblxyXG4gIC8vIGNvbnN0IG5ld0RhdGEgPSBkYXRhLm1hcChpdGVtPT4pXHJcbn07XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPQSxLQUFLLE1BQU0sT0FBTztBQUN6QixPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBQ3RDLE9BQU9DLE9BQU8sTUFBTSxVQUFVO0FBQzlCLE9BQU9DLE1BQU0sTUFBTSxRQUFRO0FBQzNCLE9BQU8sTUFBTUMsY0FBYyxHQUFHQSxDQUM1QkMsT0FBWSxFQUFBQyxJQUFBLEtBRVQ7RUFBQSxJQURIO0lBQUVD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["React","Button","nscfile","lodash","convertColumns","columns","_ref","searchForms","editorForms","forEach","item","temp","_objectSpread","width","children","length","search","show","props","searchProps","onChange","push","name","field","dataIndex","label","undefined","title","type","omit","labelCol","wrapperCol","rules","searchRules","editor","span","dictName","required","editorShow","getText","text","_props$data","newText","data","i","value","getNewColumns","cloneDeep","converData","map","obj","_tempProp$data","_temp","_temp2","filter","child","columnShow","columnSearch","filterProps","tempProp","ellipsis","showTitle","render","renderStr","_text","_record","_index","eventOption","record","index","funcs","func","Function","res","Utils","Array","isArray","files","_files$","createElement","onClick","download","fileId","fileName","fileIds","downloadZip","join","_files$2","className","column","filteredColumns"],"sources":["../../../src/components/page/BasePage/utils.tsx"],"sourcesContent":["import React from \"react\";\r\nimport Button from \"../../base/button\";\r\nimport nscfile from \"nsc-file\";\r\nimport lodash from \"lodash\";\r\nexport const convertColumns = (\r\n columns: any,\r\n { searchForms = [], editorForms = [] }: any\r\n) => {\r\n columns.forEach((item: any) => {\r\n let temp = { width: 100, ...item };\r\n if (temp.children && temp.children.length > 0) {\r\n convertColumns(temp.children, { searchForms, editorForms });\r\n } else {\r\n // Handle search form conversion\r\n if (\r\n temp.search === true ||\r\n (typeof temp.search === \"object\" && temp.search.show === true)\r\n ) {\r\n let props = { ...(temp.props || {}) };\r\n const searchProps =\r\n typeof temp.search === \"object\" ? { ...temp.search } : {};\r\n delete props.onChange;\r\n searchForms.push({\r\n name: temp.field || temp.dataIndex,\r\n label:\r\n (typeof temp.search === \"object\" ? temp.search.label : undefined) ||\r\n temp.title,\r\n type: temp.type,\r\n props: {\r\n ...props,\r\n ...lodash.omit(searchProps, [\r\n \"label\",\r\n \"labelCol\",\r\n \"show\",\r\n \"wrapperCol\",\r\n ]),\r\n },\r\n labelCol:\r\n typeof temp.search === \"object\" ? temp.search.labelCol : undefined,\r\n wrapperCol:\r\n typeof temp.search === \"object\"\r\n ? temp.search.wrapperCol\r\n : undefined,\r\n rules: temp.searchRules || [],\r\n });\r\n }\r\n // Handle editor form conversion\r\n if (temp.editor !== false) {\r\n editorForms.push({\r\n name: temp.field || temp.dataIndex,\r\n label: temp.title,\r\n rules: temp.rules || [],\r\n type: temp.type,\r\n span: temp.span,\r\n dictName: temp.dictName,\r\n required: temp.required,\r\n show: temp.editorShow === false ? false : true,\r\n props: { ...temp.props },\r\n });\r\n }\r\n }\r\n });\r\n\r\n return {\r\n searchForms,\r\n editorForms,\r\n };\r\n};\r\nconst getText = (props, text) => {\r\n let newText = text;\r\n if (props?.data && props?.data?.length > 0) {\r\n let data = props.data;\r\n for (let i = 0; i < data?.length; i++) {\r\n if (data[i].value == text) {\r\n newText = data[i].label;\r\n }\r\n }\r\n }\r\n return newText;\r\n};\r\nexport const getNewColumns = (columns: any, props: any) => {\r\n let data = lodash.cloneDeep(columns);\r\n\r\n function converData(data) {\r\n return data\r\n .map((obj) => {\r\n let temp = { width: 150, ...obj };\r\n delete temp.search;\r\n delete temp.rules;\r\n delete temp.span;\r\n delete temp.required;\r\n if (temp.children) {\r\n temp.children = temp.children.filter(\r\n (child) => child.columnShow !== false\r\n );\r\n }\r\n if (temp.columnSearch) {\r\n temp.filterProps = {\r\n type: temp.type,\r\n props: temp.props,\r\n };\r\n }\r\n let tempProp = { ...temp.props };\r\n if (tempProp?.data && tempProp?.data?.length > 0) {\r\n temp = {\r\n ellipsis: { showTitle: false },\r\n render: (text: any) => {\r\n return getText(tempProp, text);\r\n },\r\n ...temp,\r\n };\r\n }\r\n delete temp.props;\r\n delete temp.props;\r\n if (temp.render && typeof temp.render == \"string\") {\r\n let renderStr = temp.render;\r\n temp = {\r\n ...temp,\r\n render: (_text, _record, _index) => {\r\n const eventOption = {\r\n text: _text,\r\n record: _record,\r\n index: _index,\r\n funcs: props.funcs,\r\n };\r\n const func = new Function(\"eventOption,Utils\", renderStr);\r\n const res = func(eventOption, props.Utils);\r\n return res;\r\n },\r\n };\r\n }\r\n if (temp.type == \"Upload\" && temp?.columnShow !== false) {\r\n temp = {\r\n render: (_text, record) => {\r\n if (Array.isArray(record[temp.dataIndex])) {\r\n const files = record[temp.dataIndex];\r\n if (files.length == 1) {\r\n return (\r\n <Button\r\n type={\"link\"}\r\n onClick={() => {\r\n nscfile.download(files[0].fileId);\r\n }}\r\n >\r\n {files[0]?.fileName}\r\n </Button>\r\n );\r\n } else if (files.length > 1) {\r\n return (\r\n <Button\r\n type={\"link\"}\r\n onClick={() => {\r\n let fileIds = [] as any;\r\n files.map((item) => {\r\n fileIds.push(item.fileId);\r\n });\r\n nscfile.downloadZip(fileIds.join(\",\"));\r\n }}\r\n >\r\n {\"文件下载\"}\r\n </Button>\r\n );\r\n }\r\n }\r\n },\r\n ...temp,\r\n };\r\n }\r\n if (temp.type == \"Image\" && temp?.columnShow !== false) {\r\n temp = {\r\n render: (_text, record) => {\r\n if (Array.isArray(record[temp.dataIndex])) {\r\n const files = record[temp.dataIndex];\r\n if (files.length == 1) {\r\n return (\r\n <div className=\"nsc-basepage-table-img\">\r\n {files[0]?.fileName}\r\n </div>\r\n );\r\n } else if (files.length > 1) {\r\n return (\r\n <Button type={\"link\"} onClick={() => {}}>\r\n 图片查看\r\n </Button>\r\n );\r\n }\r\n }\r\n },\r\n ...temp,\r\n };\r\n }\r\n return temp.columnShow !== false ? temp : null;\r\n })\r\n .filter((column) => column !== null);\r\n }\r\n\r\n const filteredColumns = converData(data);\r\n return filteredColumns;\r\n // 使用map遍历树中的每个节点并应用修改函数\r\n\r\n // const newData = data.map(item=>)\r\n};\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","names":["React","Button","nscfile","lodash","convertColumns","columns","_ref","searchForms","editorForms","forEach","item","temp","_objectSpread","width","children","length","search","show","props","searchProps","onChange","push","name","field","dataIndex","label","undefined","title","type","omit","labelCol","wrapperCol","rules","searchRules","editor","span","dictName","required","editorShow","formRender","getText","text","_props$data","newText","data","i","value","getNewColumns","cloneDeep","converData","map","obj","_tempProp$data","_temp","_temp2","filter","child","columnShow","columnSearch","filterProps","tempProp","ellipsis","showTitle","render","renderStr","_text","_record","_index","eventOption","record","index","funcs","func","Function","res","Utils","Array","isArray","files","_files$","createElement","onClick","download","fileId","fileName","fileIds","downloadZip","join","_files$2","className","column","filteredColumns"],"sources":["../../../src/components/page/BasePage/utils.tsx"],"sourcesContent":["import React from \"react\";\r\nimport Button from \"../../base/button\";\r\nimport nscfile from \"nsc-file\";\r\nimport lodash from \"lodash\";\r\nexport const convertColumns = (\r\n columns: any,\r\n { searchForms = [], editorForms = [] }: any\r\n) => {\r\n columns.forEach((item: any) => {\r\n let temp = { width: 100, ...item };\r\n if (temp.children && temp.children.length > 0) {\r\n convertColumns(temp.children, { searchForms, editorForms });\r\n } else {\r\n // Handle search form conversion\r\n if (\r\n temp.search === true ||\r\n (typeof temp.search === \"object\" && temp.search.show === true)\r\n ) {\r\n let props = { ...(temp.props || {}) };\r\n const searchProps =\r\n typeof temp.search === \"object\" ? { ...temp.search } : {};\r\n delete props.onChange;\r\n searchForms.push({\r\n name: temp.field || temp.dataIndex,\r\n label:\r\n (typeof temp.search === \"object\" ? temp.search.label : undefined) ||\r\n temp.title,\r\n type: temp.type,\r\n props: {\r\n ...props,\r\n ...lodash.omit(searchProps, [\r\n \"label\",\r\n \"labelCol\",\r\n \"show\",\r\n \"wrapperCol\",\r\n ]),\r\n },\r\n labelCol:\r\n typeof temp.search === \"object\" ? temp.search.labelCol : undefined,\r\n wrapperCol:\r\n typeof temp.search === \"object\"\r\n ? temp.search.wrapperCol\r\n : undefined,\r\n rules: temp.searchRules || [],\r\n });\r\n }\r\n // Handle editor form conversion\r\n if (temp.editor !== false) {\r\n editorForms.push({\r\n name: temp.field || temp.dataIndex,\r\n label: temp.title,\r\n rules: temp.rules || [],\r\n type: temp.type,\r\n span: temp.span,\r\n dictName: temp.dictName,\r\n required: temp.required,\r\n show: temp.editorShow === false ? false : true,\r\n props: { ...temp.props },\r\n formRender:temp.formRender\r\n });\r\n }\r\n }\r\n });\r\n\r\n return {\r\n searchForms,\r\n editorForms,\r\n };\r\n};\r\nconst getText = (props, text) => {\r\n let newText = text;\r\n if (props?.data && props?.data?.length > 0) {\r\n let data = props.data;\r\n for (let i = 0; i < data?.length; i++) {\r\n if (data[i].value == text) {\r\n newText = data[i].label;\r\n }\r\n }\r\n }\r\n return newText;\r\n};\r\nexport const getNewColumns = (columns: any, props: any) => {\r\n let data = lodash.cloneDeep(columns);\r\n\r\n function converData(data) {\r\n return data\r\n .map((obj) => {\r\n let temp = { width: 150, ...obj };\r\n delete temp.search;\r\n delete temp.rules;\r\n delete temp.span;\r\n delete temp.required;\r\n if (temp.children) {\r\n temp.children = temp.children.filter(\r\n (child) => child.columnShow !== false\r\n );\r\n }\r\n if (temp.columnSearch) {\r\n temp.filterProps = {\r\n type: temp.type,\r\n props: temp.props,\r\n };\r\n }\r\n let tempProp = { ...temp.props };\r\n if (tempProp?.data && tempProp?.data?.length > 0) {\r\n temp = {\r\n ellipsis: { showTitle: false },\r\n render: (text: any) => {\r\n return getText(tempProp, text);\r\n },\r\n ...temp,\r\n };\r\n }\r\n delete temp.props;\r\n delete temp.props;\r\n if (temp.render && typeof temp.render == \"string\") {\r\n let renderStr = temp.render;\r\n temp = {\r\n ...temp,\r\n render: (_text, _record, _index) => {\r\n const eventOption = {\r\n text: _text,\r\n record: _record,\r\n index: _index,\r\n funcs: props.funcs,\r\n };\r\n const func = new Function(\"eventOption,Utils\", renderStr);\r\n const res = func(eventOption, props.Utils);\r\n return res;\r\n },\r\n };\r\n }\r\n if (temp.type == \"Upload\" && temp?.columnShow !== false) {\r\n temp = {\r\n render: (_text, record) => {\r\n if (Array.isArray(record[temp.dataIndex])) {\r\n const files = record[temp.dataIndex];\r\n if (files.length == 1) {\r\n return (\r\n <Button\r\n type={\"link\"}\r\n onClick={() => {\r\n nscfile.download(files[0].fileId);\r\n }}\r\n >\r\n {files[0]?.fileName}\r\n </Button>\r\n );\r\n } else if (files.length > 1) {\r\n return (\r\n <Button\r\n type={\"link\"}\r\n onClick={() => {\r\n let fileIds = [] as any;\r\n files.map((item) => {\r\n fileIds.push(item.fileId);\r\n });\r\n nscfile.downloadZip(fileIds.join(\",\"));\r\n }}\r\n >\r\n {\"文件下载\"}\r\n </Button>\r\n );\r\n }\r\n }\r\n },\r\n ...temp,\r\n };\r\n }\r\n if (temp.type == \"Image\" && temp?.columnShow !== false) {\r\n temp = {\r\n render: (_text, record) => {\r\n if (Array.isArray(record[temp.dataIndex])) {\r\n const files = record[temp.dataIndex];\r\n if (files.length == 1) {\r\n return (\r\n <div className=\"nsc-basepage-table-img\">\r\n {files[0]?.fileName}\r\n </div>\r\n );\r\n } else if (files.length > 1) {\r\n return (\r\n <Button type={\"link\"} onClick={() => {}}>\r\n 图片查看\r\n </Button>\r\n );\r\n }\r\n }\r\n },\r\n ...temp,\r\n };\r\n }\r\n return temp.columnShow !== false ? temp : null;\r\n })\r\n .filter((column) => column !== null);\r\n }\r\n\r\n const filteredColumns = converData(data);\r\n return filteredColumns;\r\n // 使用map遍历树中的每个节点并应用修改函数\r\n\r\n // const newData = data.map(item=>)\r\n};\r\n"],"mappings":"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"}
|
|
@@ -451,7 +451,7 @@ class FormPage extends PureComponent {
|
|
|
451
451
|
return /*#__PURE__*/React.createElement(Row, {
|
|
452
452
|
gutter: 24
|
|
453
453
|
}, forms.map((item, index) => {
|
|
454
|
-
var _item$props;
|
|
454
|
+
var _item$props, _item$props2;
|
|
455
455
|
const itemProps = item.props || {};
|
|
456
456
|
if (itemProps.format || itemProps.valueFormat) {
|
|
457
457
|
this.dateValueFormat[item.name] = itemProps.format || itemProps.valueFormat;
|
|
@@ -463,6 +463,7 @@ class FormPage extends PureComponent {
|
|
|
463
463
|
this.rangerDate[item.name] = item.name.split(",");
|
|
464
464
|
}
|
|
465
465
|
let allowChars = ((_item$props = item.props) === null || _item$props === void 0 ? void 0 : _item$props.allowChars) || false;
|
|
466
|
+
let children = (_item$props2 = item.props) === null || _item$props2 === void 0 ? void 0 : _item$props2.children;
|
|
466
467
|
let props = _objectSpread(_objectSpread({
|
|
467
468
|
placeholder: "\u8BF7\u8F93\u5165".concat(item.label)
|
|
468
469
|
}, item.props), {}, {
|
|
@@ -477,6 +478,7 @@ class FormPage extends PureComponent {
|
|
|
477
478
|
delete props.valueFormat;
|
|
478
479
|
delete props.format;
|
|
479
480
|
delete props.dataType;
|
|
481
|
+
delete props.children;
|
|
480
482
|
if (label == "查看") {
|
|
481
483
|
props.disabled = true;
|
|
482
484
|
props.placeholder = "";
|
|
@@ -493,7 +495,7 @@ class FormPage extends PureComponent {
|
|
|
493
495
|
item.span = 24;
|
|
494
496
|
}
|
|
495
497
|
if (item.type !== "Upload") {
|
|
496
|
-
var _item$
|
|
498
|
+
var _item$props3;
|
|
497
499
|
return /*#__PURE__*/React.createElement(Col, {
|
|
498
500
|
span: item.span || 12,
|
|
499
501
|
key: index,
|
|
@@ -507,13 +509,13 @@ class FormPage extends PureComponent {
|
|
|
507
509
|
allowChars: allowChars,
|
|
508
510
|
componentName: item.type ? item.type : "Input",
|
|
509
511
|
required: item.required,
|
|
510
|
-
type: (_item$
|
|
512
|
+
type: (_item$props3 = item.props) === null || _item$props3 === void 0 ? void 0 : _item$props3.type,
|
|
511
513
|
noStyle: item.noStyle || false
|
|
512
514
|
}, item.formRender ? item.formRender(props) : getNode(item.type, _objectSpread({
|
|
513
515
|
ref: itemRef
|
|
514
516
|
}, props))));
|
|
515
517
|
} else {
|
|
516
|
-
var _item$
|
|
518
|
+
var _item$props4;
|
|
517
519
|
this.fileFormat.push(item.name);
|
|
518
520
|
return /*#__PURE__*/React.createElement(Col, {
|
|
519
521
|
span: item.span || 12,
|
|
@@ -526,9 +528,9 @@ class FormPage extends PureComponent {
|
|
|
526
528
|
name: item.name,
|
|
527
529
|
rules: item.rules,
|
|
528
530
|
allowChars: allowChars,
|
|
529
|
-
type: (_item$
|
|
531
|
+
type: (_item$props4 = item.props) === null || _item$props4 === void 0 ? void 0 : _item$props4.type,
|
|
530
532
|
required: item.required
|
|
531
|
-
}, /*#__PURE__*/React.createElement(Upload, _extends({
|
|
533
|
+
}, item.formRender ? item.formRender(props) : /*#__PURE__*/React.createElement(Upload, _extends({
|
|
532
534
|
fileList: this.state.fileList[item.name] || [],
|
|
533
535
|
onListChange: list => {
|
|
534
536
|
const {
|
|
@@ -545,7 +547,7 @@ class FormPage extends PureComponent {
|
|
|
545
547
|
showRemoveIcon: label !== "查看"
|
|
546
548
|
},
|
|
547
549
|
ref: itemRef
|
|
548
|
-
}, props),
|
|
550
|
+
}, props), children ? children : label !== "查看" && /*#__PURE__*/React.createElement(Button, null, "\u4E0A\u4F20\u6587\u4EF6"))));
|
|
549
551
|
}
|
|
550
552
|
}));
|
|
551
553
|
}
|
|
@@ -578,8 +580,8 @@ class FormPage extends PureComponent {
|
|
|
578
580
|
}
|
|
579
581
|
});
|
|
580
582
|
} else {
|
|
581
|
-
var _item$
|
|
582
|
-
if ((item === null || item === void 0 || (_item$
|
|
583
|
+
var _item$props5;
|
|
584
|
+
if ((item === null || item === void 0 || (_item$props5 = item.props) === null || _item$props5 === void 0 ? void 0 : _item$props5.pageType) == "formPane") {
|
|
583
585
|
typeof item == "object" && selfPanes.push(item);
|
|
584
586
|
} else {
|
|
585
587
|
typeof item == "object" && selfButtons.push(item);
|
|
@@ -719,4 +721,4 @@ class FormPage extends PureComponent {
|
|
|
719
721
|
}
|
|
720
722
|
}
|
|
721
723
|
export default FormPage;
|
|
722
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiZ2V0Tm9kZSIsIm1lc3NhZ2UiLCJDb2wiLCJSb3ciLCJpc0VtcHR5T2JqIiwiZ2V0TG9jYWxTdG9yZSIsImRheWpzIiwibG9kYXNoIiwiQnV0dG9uIiwiVXBsb2FkIiwiY2xzIiwiTnNjUmVxdWVzdCIsImNvbnZlcnRTdHJpbmdUb09iaiIsImNvbmZpZyIsIkZvcm1QYWdlIiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkiLCJjcmVhdGVSZWYiLCJsb2FkaW5nIiwibGFiZWwiLCJwcm9wcyIsImVkaXRUeXBlIiwiZWRpdG9yRmxhZyIsInZhbHVlIiwiZGljdE5hbWVzIiwiZmlsZUxpc3QiLCJ3aWR0aCIsImVkaXRJZCIsImV2IiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsIl90aGlzIiwiZXZlbnRUeXBlIiwicGF5bG9hZCIsImNsb3NlIiwic2V0U3RhdGUiLCJjb21wb25lbnREaWRNb3VudCIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5NZXNzYWdlIiwiZm9ybVR5cGUiLCJyZXF1ZXN0T2JqZWN0IiwiZGV0YWlsVXJsIiwiZ2V0IiwicGFyYW1zIiwiaWQiLCJzdGF0ZSIsInhzc0ZpbHRlciIsImF1dG9QcmVmaXgiLCJ0aGVuIiwicmVzIiwiY29kZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudCIsImZvcm1SZWYiLCJjdXJyZW50Iiwic2V0RmllbGRzVmFsdWUiLCJfb2JqZWN0U3ByZWFkIiwiZGVmYXVsdFZhbHVlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MiIsImNvbnZlcnREZWZhdWx0VmFsdWUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJVdGlscyIsImZ1bmNzIiwicGFnZVJlZiIsInJlZnMiLCJyZWZMaXN0Iiwic2hvdyIsIm9yZ1ZhbHVlIiwiZWRpdG9yZmxhZyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImNhbGxCYWNrIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MyIsImNvbnZlcnRWYWx1ZSIsInNob3dGb3JtIiwiYWZ0ZXJSZW5kZXIiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ0IiwiaGlkZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDUiLCJvbkhpZGVGb3JtIiwiaGlkZUZvcm0iLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ2Iiwic2V0TG9hZGluZyIsInNldEVkaXRUeXBlIiwidHlwZSIsInNldEVkaXRJZCIsImdldEZvcm1WYWx1ZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDciLCJmb3JtVmFsdWUiLCJnZXRGaWVsZHNWYWx1ZSIsImNsb25lRGVlcCIsImZpbGVGb3JtYXQiLCJuZXdGaWxlTGlzdCIsIm1hcCIsIml0ZW0iLCJnZXRGaWxlTGlzdCIsInN1Ym1pdEZsYWciLCJlcnJvciIsImRhdGVWYWx1ZUZvcm1hdCIsImtleSIsIm9sZGRhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJmb3JtYXQiLCJyYW5nZXJEYXRlIiwiZGF0ZUZvcm1hdCIsImUiLCJuZXdEYXRhIiwic3RyaW5naWZ5IiwidmFsdWVzIiwiZm9yRWFjaCIsImZpbGVLZXkiLCJ2YWx1ZTEiLCJ2YWx1ZTIiLCJzZXRGb3JtVmFsdWUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ4IiwibmV3VmFsdWUiLCJkb1N1Ym1pdCIsImZvcm1kYXRhIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50OSIsInN1Ym1pdFVybCIsInN1Ym1pdFBhcmFtcyIsInJlcXVlc3RDb25maWciLCJhZGRVcmwiLCJlZGl0b3JVcmwiLCJhZGRQYXJhbXMiLCJlZGl0b3JQYXJhbXMiLCJ1cmwiLCJmdW5jIiwiRnVuY3Rpb24iLCJjb252ZXJQYXJhbXMiLCJjb25zb2xlIiwib3RoZXJQYXJhbXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJvblN1Ym1pdCIsIm5vVW5kZWZpbmVkIiwibXNnIiwic3VjY2VzcyIsInNldFRpbWVvdXQiLCJvYmoiLCJmaWxlSWQiLCJmaWxlTmFtZSIsInN0YXR1cyIsInB1c2giLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQxMCIsInZhbGlkIiwidmFsaWRhdGVGaWVsZHMiLCJyZXR1cm5EYXRhIiwiY2F0Y2giLCJlcnJvckluZm8iLCJ2YWx1ZUNoYW5nZSIsIl9yZWYiLCJ2YWx1ZU9wdGlvbiIsImRpY3ROYW1lIiwibmV3TmFtZXMiLCJvbkNoYW5nZSIsImV2ZW50T3B0aW9uIiwidmFsdWVTdHIiLCJzZWxmRnVuYyIsInJlbmRlckZvcm0iLCJmb3JtcyIsIm5ld1ZhbGlkIiwic3RvcmVQcmVmaXgiLCJhdXRvVHlwZSIsImNyZWF0ZUVsZW1lbnQiLCJndXR0ZXIiLCJpbmRleCIsIl9pdGVtJHByb3BzIiwiaXRlbVByb3BzIiwidmFsdWVGb3JtYXQiLCJuYW1lIiwic3BsaXQiLCJhbGxvd0NoYXJzIiwicGxhY2Vob2xkZXIiLCJjb25jYXQiLCJiaW5kIiwiZGF0YVR5cGUiLCJkaXNhYmxlZCIsInJ1bGVzIiwicmVxdWlyZWQiLCJpdGVtUmVmIiwic3BhbiIsIl9pdGVtJHByb3BzMiIsInN0eWxlIiwiZGlzcGxheSIsIkl0ZW0iLCJjb21wb25lbnROYW1lIiwibm9TdHlsZSIsImZvcm1SZW5kZXIiLCJyZWYiLCJfaXRlbSRwcm9wczMiLCJfaXRlbSRwcm9wczQiLCJfaXRlbSRwcm9wczUiLCJfZXh0ZW5kcyIsIm9uTGlzdENoYW5nZSIsImxpc3QiLCJzaG93VXBsb2FkTGlzdCIsInNob3dEb3dubG9hZEljb24iLCJzaG93UmVtb3ZlSWNvbiIsImNoaWxkcmVuIiwicmVuZGVyIiwiZm9vdGVyIiwidGl0bGUiLCJtb2RhbFByb3BzIiwiZGVmYXVsdE1vZGFsUHJvcHMiLCJkcmF3ZXJQcm9wcyIsImRlZmF1bHREcmF3ZXJQcm9wcyIsInNlbGZCdXR0b25zIiwic2VsZlBhbmVzIiwiY2hpbGQiLCJfY2hpbGQkcHJvcHMiLCJwYWdlVHlwZSIsIl9pdGVtJHByb3BzNiIsIm9uT2siLCJvbkNhbmNlbCIsIm9rQnV0dG9uUHJvcHMiLCJjZW50ZXJlZCIsImZvb3RlckJ1dHRvbiIsIm9uQ2xvc2UiLCJuZXdGb3Jtc09iaiIsImZvcm1Hcm91cHMiLCJvdGhlckdydXBzIiwic2hvd0Zvcm1zIiwiZ3JvdXBOYW1lIiwiaW5kZXhPZiIsImdyb3VwRm9ybXMiLCJmb3JtIiwiUGFuZVdpdGhvdXRQYWdlVHlwZSIsIlBhbmUiLCJjbGVhblByb3BzIiwiX2V4Y2x1ZGVkMiIsInNob3dNb2RlbCIsIm9uVmFsdWVzQ2hhbmdlIiwiY2hhbmdlZFZhbHVlcyIsImFsbFZhbHVlcyIsIm9uRm9ybUNoYW5nZSIsImNoYW5nZVZhbGlkIiwiY2xhc3NOYW1lIiwiT2JqZWN0Iiwia2V5cyIsImZvb3RlckNsYXNzTmFtZSIsImZvb3RlckZpeGVkIiwiY2FuY2VsQnV0dG9uUHJvcHMiLCJvbkNsaWNrIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9Gb3JtUGFnZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vYmFzZS9mb3JtXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL2Jhc2UvbWVzc2FnZVwiO1xyXG5pbXBvcnQgQ29sIGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvQ29sXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHsgaXNFbXB0eU9iaiwgZ2V0TG9jYWxTdG9yZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IGxvZGFzaCBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBVcGxvYWQgZnJvbSBcIi4uLy4uL2Jhc2UvdXBsb2FkXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHsgSUZvcm1Qcm9wcyB9IGZyb20gXCJzcmMvY29tcG9uZW50cy9iYXNlL2Zvcm0vRm9ybVwiO1xyXG5pbXBvcnQgTnNjUmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IENvbXBvdW5kZWRTcGFjZSBmcm9tIFwiYW50ZC9lcy9zcGFjZVwiO1xyXG5pbXBvcnQgeyBjb252ZXJ0U3RyaW5nVG9PYmogfSBmcm9tIFwiLi4vU2V0dGluZ1V0aWwvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1QYWdlUHJvcHMge1xyXG4gIGZvcm1zPzogQXJyYXk8YW55PjsgLy/mmK/lkKbmmL7npLrmk43kvZzliJdcclxuICBzdWJtaXRVcmw/OiBzdHJpbmc7XHJcbiAgb25TdWJtaXQ/OiAodmFsdWU/OiBhbnksIGxhYmVsPzogYW55KSA9PiB2b2lkO1xyXG4gIGZvb3RlckNsYXNzTmFtZT86IGFueTtcclxuICBva0J1dHRvblByb3BzPzogYW55O1xyXG4gIGNhbmNlbEJ1dHRvblByb3BzPzogYW55O1xyXG4gIGZvb3Rlcj86IFJlYWN0Tm9kZSB8IGJvb2xlYW47XHJcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgb25Gb3JtQ2hhbmdlPzogKHZhbHVlPzogYW55LCBhbGxWYWx1ZT86IGFueSkgPT4gdm9pZDtcclxuICBzdWJtaXRQYXJhbXM/OiBhbnk7IC8v5re75Yqg5Y+C5pWw77yM6buY6K6kbW90aG9kOnBvc3TvvIwg5Y+C5pWw6YCa6L+HZGF0YeS8oOmAklxyXG4gIGZ1bmNzPzogYW55O1xyXG4gIHByb3BzPzogSUZvcm1Qcm9wcztcclxuICByZXF1ZXN0T2JqZWN0Pzoge1xyXG4gICAgYWRkVXJsPzogc3RyaW5nO1xyXG4gICAgZWRpdG9yVXJsPzogc3RyaW5nO1xyXG4gICAgYWRkUGFyYW1zPzogYW55O1xyXG4gICAgZWRpdG9yUGFyYW1zPzogYW55O1xyXG4gICAgZGV0YWlsVXJsPzogc3RyaW5nO1xyXG4gIH07XHJcbiAgcmVxdWVzdENvbmZpZz86IGFueTtcclxuICBmb290ZXJXaWR0aD86IGJvb2xlYW47XHJcbiAgZWRpdFR5cGU/OiBcIuaWsOWinlwiIHwgXCLnvJbovpFcIiB8IFwi5p+l55yLXCI7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgZWRpdElkPzogc3RyaW5nO1xyXG4gIG1vZGFsUHJvcHM/OiBhbnk7XHJcbiAgZHJhd2VyUHJvcHM/OiBhbnk7XHJcbiAgW3Byb3BzTmFtZTogc3RyaW5nXTogYW55O1xyXG4gIGZvb3RlckZpeGVkPzogYm9vbGVhbjtcclxufVxyXG5jbGFzcyBGb3JtUGFnZSBleHRlbmRzIFB1cmVDb21wb25lbnQ8Rm9ybVBhZ2VQcm9wcywgYW55PiB7XHJcbiAgZm9ybVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgIGxhYmVsOiB0aGlzLnByb3BzLmVkaXRUeXBlIHx8IFwiXCIsXHJcbiAgICBlZGl0b3JGbGFnOiB0cnVlLFxyXG4gICAgdmFsdWU6IHt9IGFzIGFueSxcclxuICAgIGRpY3ROYW1lczoge30gYXMgYW55LFxyXG4gICAgZmlsZUxpc3Q6IHt9IGFzIGFueSxcclxuICAgIHdpZHRoOiBnZXRMb2NhbFN0b3JlKFwibnNjLWhvbWUtbWVudUNvbGxzYXBlXCIpIHx8IGZhbHNlLFxyXG4gICAgZWRpdElkOiB0aGlzLnByb3BzLmVkaXRJZCB8fCBcIlwiLFxyXG4gIH07XHJcbiAgdmFsaWQ6IGFueSA9IFtdO1xyXG4gIGRhdGVWYWx1ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIGZpbGVGb3JtYXQgPSBbXSBhcyBhbnk7XHJcbiAgcmFuZ2VyRGF0ZSA9IHt9IGFzIGFueTtcclxuICByZWZMaXN0ID0ge30gYXMgYW55O1xyXG4gIHN1Ym1pdEZsYWcgPSB0cnVlO1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGZvcm1UeXBlID0gXCJwYWdlXCIsXHJcbiAgICAgIHJlcXVlc3RPYmplY3QgPSB7fSxcclxuICAgICAgZWRpdFR5cGUgPSBcIuaWsOWinlwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoZm9ybVR5cGUgPT0gXCJwYWdlXCIpIHtcclxuICAgICAgaWYgKHJlcXVlc3RPYmplY3QuZGV0YWlsVXJsICYmIGVkaXRUeXBlICE9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgICAgTnNjUmVxdWVzdC5nZXQocmVxdWVzdE9iamVjdC5kZXRhaWxVcmwsIHtcclxuICAgICAgICAgIHBhcmFtczogeyBpZDogdGhpcy5zdGF0ZS5lZGl0SWQgfSxcclxuICAgICAgICAgIHhzc0ZpbHRlcjogZmFsc2UsXHJcbiAgICAgICAgICBhdXRvUHJlZml4OiB0cnVlLFxyXG4gICAgICAgIH0pLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUoeyAuLi5yZXMuZGF0YSB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChlZGl0VHlwZSA9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZGVmYXVsdFZhbHVlKSB7XHJcbiAgICAgICAgICBsZXQgZGVmYXVsdFZhbHVlID0gdGhpcy5jb252ZXJ0RGVmYXVsdFZhbHVlKCk7XHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUoZGVmYXVsdFZhbHVlIHx8IHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XHJcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5saXN0ZW5NZXNzYWdlKTtcclxuICB9XHJcbiAgbGlzdGVuTWVzc2FnZSA9IChldikgPT4ge1xyXG4gICAgY29uc3QgZGF0YSA9IHR5cGVvZiBldi5kYXRhID09PSBcInN0cmluZ1wiID8gSlNPTi5wYXJzZShldi5kYXRhKSA6IGV2LmRhdGE7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgaWYgKGRhdGEuZXZlbnRUeXBlID09IFwibWVudUNvbGxzYXBlXCIpIHtcclxuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBkYXRhO1xyXG4gICAgICBpZiAocGF5bG9hZC5jbG9zZSA9PT0gdHJ1ZSB8fCBwYXlsb2FkLmNsb3NlID09PSBmYWxzZSkge1xyXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHsgd2lkdGg6IHBheWxvYWQuY2xvc2UgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIGNvbnZlcnREZWZhdWx0VmFsdWUoKSB7XHJcbiAgICBjb25zdCB7IGRlZmF1bHRWYWx1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHJldHVybiBjb252ZXJ0U3RyaW5nVG9PYmooZGVmYXVsdFZhbHVlLCB0aGlzLnByb3BzLlV0aWxzIHx8IHt9LCB7XHJcbiAgICAgIGZ1bmNzOiB0aGlzLnByb3BzLmZ1bmNzLFxyXG4gICAgICBwYWdlUmVmOiB0aGlzLnByb3BzLnBhZ2VSZWYsXHJcbiAgICAgIGZvcm1SZWY6IHRoaXMuZm9ybVJlZixcclxuICAgICAgcmVmczogdGhpcy5yZWZMaXN0LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8v6KGo5Y2V5pi+56S6XHJcbiAgc2hvdyhvcmdWYWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIsIGNhbGxCYWNrPzogYW55KSB7XHJcbiAgICBsZXQgbGFiZWwgPSBcIuaWsOWinlwiO1xyXG4gICAgaWYgKG9yZ1ZhbHVlICYmIGVkaXRvcmZsYWcgPT0gXCJlZGl0b3JcIikge1xyXG4gICAgICBsYWJlbCA9IFwi57yW6L6RXCI7XHJcbiAgICB9IGVsc2UgaWYgKG9yZ1ZhbHVlICYmIChlZGl0b3JmbGFnID09IFwiZGV0YWlsXCIgfHwgZWRpdG9yZmxhZyA9PSBcInNlYXJjaFwiKSkge1xyXG4gICAgICBsYWJlbCA9IFwi5p+l55yLXCI7XHJcbiAgICB9XHJcbiAgICBpZiAob3JnVmFsdWUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogbGFiZWwsXHJcbiAgICAgICAgICB2YWx1ZTogb3JnVmFsdWUsXHJcbiAgICAgICAgICBlZGl0SWQ6IG9yZ1ZhbHVlLmlkLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5jb252ZXJ0VmFsdWUob3JnVmFsdWUsIGxhYmVsKTtcclxuICAgICAgICAgIC8v5aSE55CG5paH5Lu25pWw5o2uXHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2hvd0Zvcm0odmFsdWUsIHtcclxuICAgICAgICAgICAgYWZ0ZXJSZW5kZXI6ICgpID0+IHtcclxuICAgICAgICAgICAgICBjYWxsQmFjayAmJiBjYWxsQmFjaygpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogbGFiZWwsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICBsZXQgZGVmYXVsdFZhbHVlID0gdGhpcy5wcm9wcy5kZWZhdWx0VmFsdWVcclxuICAgICAgICAgICAgPyB0aGlzLmNvbnZlcnREZWZhdWx0VmFsdWUoKVxyXG4gICAgICAgICAgICA6IHt9O1xyXG4gICAgICAgICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNob3dGb3JtKGRlZmF1bHRWYWx1ZSB8fCB7fSwge1xyXG4gICAgICAgICAgICBhZnRlclJlbmRlcjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGhpZGUoaGlkZSA9IHRydWUpIHtcclxuICAgIGNvbnN0IHsgb25IaWRlRm9ybSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChvbkhpZGVGb3JtKSB7XHJcbiAgICAgIG9uSGlkZUZvcm0gJiYgb25IaWRlRm9ybSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UsIGZpbGVMaXN0OiB7fSB9KTtcclxuICAgIGhpZGUgJiYgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG4gIGhpZGVGb3JtKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlLCBmaWxlTGlzdDoge30gfSk7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICB9XHJcbiAgc2hvd0Zvcm0ob3JnVmFsdWU/OiBhbnksIGVkaXRvcmZsYWcgPSBcImFkZFwiLCBjYWxsQmFjaz86IGFueSkge1xyXG4gICAgdGhpcy5zaG93KG9yZ1ZhbHVlLCBlZGl0b3JmbGFnLCBjYWxsQmFjayk7XHJcbiAgfVxyXG4gIHNldExvYWRpbmcobG9hZGluZzogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGxvYWRpbmcgfSk7XHJcbiAgfVxyXG4gIHNldEVkaXRUeXBlKHR5cGUpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBsYWJlbDogdHlwZSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBzZXRFZGl0SWQoaWQpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBlZGl0SWQ6IGlkLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldEZvcm1WYWx1ZSgpIHtcclxuICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlLCBkaWN0TmFtZXMsIGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBsZXQgZGF0YSA9IGxvZGFzaC5jbG9uZURlZXAoeyAuLi5mb3JtVmFsdWUsIC4uLmRpY3ROYW1lcyB9KTtcclxuICAgIGlmICh0aGlzLmZpbGVGb3JtYXQubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgbmV3RmlsZUxpc3QgPSB7fSBhcyBhbnk7XHJcbiAgICAgIHRoaXMuZmlsZUZvcm1hdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBpZiAoZmlsZUxpc3RbaXRlbV0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgIG5ld0ZpbGVMaXN0W2l0ZW1dID0gbnVsbDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbmV3RmlsZUxpc3RbaXRlbV0gPSB0aGlzLmdldEZpbGVMaXN0KGZpbGVMaXN0W2l0ZW1dIHx8IFtdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCAuLi5uZXdGaWxlTGlzdCB9O1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnN1Ym1pdEZsYWcpIHtcclxuICAgICAgbWVzc2FnZS5lcnJvcihcIuivt+etieW+heaJgOacieaWh+S7tuS4iuS8oOWujOaIkO+8gVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc0VtcHR5T2JqKHRoaXMuZGF0ZVZhbHVlRm9ybWF0KSkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlVmFsdWVGb3JtYXQpIHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IGRhdGFba2V5XTtcclxuICAgICAgICBpZiAob2xkZGF0YSkge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgZGF0YVtrZXldID0gW1xyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMF0pLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzFdKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJhbmdlckRhdGVba2V5XSkge1xyXG4gICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzBdXSA9IGRheWpzKG9sZGRhdGFbMF0pLmZvcm1hdChcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2tleV1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBkYXRhW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzFdXSA9IGRheWpzKG9sZGRhdGFbMV0pLmZvcm1hdChcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2tleV1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgZGF0YVtrZXldO1xyXG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRhdGFba2V5XSA9IGRheWpzKG9sZGRhdGEpLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChsYWJlbCA9PSBcIue8lui+kVwiKSB7XHJcbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGlkOiB2YWx1ZT8uaWQgfHwgdGhpcy5zdGF0ZS5lZGl0SWQgfTtcclxuICAgIH1cclxuICAgIGxldCBuZXdEYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcbiAgICByZXR1cm4gbmV3RGF0YTtcclxuICB9XHJcbiAgY29udmVydFZhbHVlKHZhbHVlLCB0eXBlKSB7XHJcbiAgICBsZXQgdmFsdWVzID0gbG9kYXNoLmNsb25lRGVlcCh2YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5maWxlRm9ybWF0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGZpbGVMaXN0ID0ge30gYXMgYW55O1xyXG4gICAgICB0aGlzLmZpbGVGb3JtYXQuZm9yRWFjaCgoZmlsZUtleSkgPT4ge1xyXG4gICAgICAgIGxldCBvbGRkYXRhID0gdmFsdWVzW2ZpbGVLZXldO1xyXG4gICAgICAgIGlmIChvbGRkYXRhICYmIEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgIGZpbGVMaXN0W2ZpbGVLZXldID0gdGhpcy5nZXRGaWxlTGlzdChvbGRkYXRhIHx8IFtdLCB0eXBlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZmlsZUxpc3RbZmlsZUtleV0gPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHsgZmlsZUxpc3Q6IGZpbGVMaXN0IH0pO1xyXG4gICAgfVxyXG4gICAgLy/lpITnkIbml6XmnJ/moLzlvI/mlbDmja5cclxuICAgIGlmICghaXNFbXB0eU9iaih0aGlzLmRhdGVGb3JtYXQpKSB7XHJcbiAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGVGb3JtYXQpIHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IHZhbHVlc1trZXldO1xyXG4gICAgICAgIGlmIChvbGRkYXRhKSB7XHJcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvbGRkYXRhKSkge1xyXG4gICAgICAgICAgICB2YWx1ZXNba2V5XSA9IFtcclxuICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzBdLCB0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVsxXSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdmFsdWVzW2tleV0gPSBkYXlqcyhvbGRkYXRhLCB0aGlzLmRhdGVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmICh0aGlzLnJhbmdlckRhdGVba2V5XSkge1xyXG4gICAgICAgICAgICBsZXQgdmFsdWUxID0gdmFsdWVzW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzBdXTtcclxuICAgICAgICAgICAgbGV0IHZhbHVlMiA9IHZhbHVlc1t0aGlzLnJhbmdlckRhdGVba2V5XVsxXV07XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZTEgJiYgdmFsdWUyKSB7XHJcbiAgICAgICAgICAgICAgdmFsdWVzW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgICBkYXlqcyh2YWx1ZTEsIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICAgIGRheWpzKHZhbHVlMiwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZXM7XHJcbiAgfVxyXG4gIHNldEZvcm1WYWx1ZSh2YWx1ZSwgdHlwZSA9IFwi5p+l55yLXCIpIHtcclxuICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5jb252ZXJ0VmFsdWUodmFsdWUsIHR5cGUpO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNldEZpZWxkc1ZhbHVlKG5ld1ZhbHVlKTtcclxuICB9XHJcbiAgZG9TdWJtaXQoZm9ybWRhdGEsIGxhYmVsKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHN1Ym1pdFVybCxcclxuICAgICAgc3VibWl0UGFyYW1zID0ge30sXHJcbiAgICAgIGNhbGxCYWNrLFxyXG4gICAgICByZXF1ZXN0T2JqZWN0ID0ge30sXHJcbiAgICAgIHJlcXVlc3RDb25maWcgPSB7fSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBhZGRVcmwsIGVkaXRvclVybCwgYWRkUGFyYW1zLCBlZGl0b3JQYXJhbXMgfSA9IHJlcXVlc3RPYmplY3Q7XHJcbiAgICBsZXQgdXJsID0gc3VibWl0VXJsO1xyXG4gICAgbGV0IHBhcmFtczogYW55ID0ge307XHJcbiAgICBpZiAoIWxhYmVsIHx8IGxhYmVsID09IFwi5paw5aKeXCIpIHtcclxuICAgICAgdXJsID0gYWRkVXJsID8gYWRkVXJsIDogc3VibWl0VXJsO1xyXG4gICAgICBpZiAoYWRkUGFyYW1zICYmIHR5cGVvZiBhZGRQYXJhbXMgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIGNvbnN0IFV0aWxzID0gdGhpcy5wcm9wcy5VdGlscyB8fCB7fTtcclxuICAgICAgICBsZXQgZnVuYyA9IG5ldyBGdW5jdGlvbihcIlV0aWxzXCIsIGFkZFBhcmFtcyk7XHJcbiAgICAgICAgbGV0IGNvbnZlclBhcmFtcyA9IGZ1bmMoVXRpbHMpO1xyXG4gICAgICAgIHBhcmFtcyA9IGNvbnZlclBhcmFtcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwYXJhbXMgPSBhZGRQYXJhbXMgPyBhZGRQYXJhbXMgOiBzdWJtaXRQYXJhbXM7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAobGFiZWwgPT0gXCLnvJbovpFcIikge1xyXG4gICAgICB1cmwgPSBlZGl0b3JVcmwgPyBlZGl0b3JVcmwgOiBzdWJtaXRVcmw7XHJcbiAgICAgIGlmIChlZGl0b3JQYXJhbXMgJiYgdHlwZW9mIGVkaXRvclBhcmFtcyA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgY29uc3QgVXRpbHMgPSB0aGlzLnByb3BzLlV0aWxzIHx8IHt9O1xyXG4gICAgICAgIGxldCBmdW5jID0gbmV3IEZ1bmN0aW9uKFwiVXRpbHNcIiwgZWRpdG9yUGFyYW1zKTtcclxuICAgICAgICBsZXQgY29udmVyUGFyYW1zID0gZnVuYyhVdGlscyk7XHJcbiAgICAgICAgcGFyYW1zID0gY29udmVyUGFyYW1zO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHBhcmFtcyA9IGVkaXRvclBhcmFtcyA/IGVkaXRvclBhcmFtcyA6IHN1Ym1pdFBhcmFtcztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCF1cmwpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIumFjee9rlVybOS4jeiDveS4uuepuu+8gVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBkYXRhID0ge30sIC4uLm90aGVyUGFyYW1zIH0gPSBwYXJhbXM7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8ub25TdWJtaXQoXHJcbiAgICAgIHVybCxcclxuICAgICAge1xyXG4gICAgICAgIGRhdGE6IHsgLi4uZm9ybWRhdGEsIC4uLmRhdGEgfSxcclxuICAgICAgICBub1VuZGVmaW5lZDogbGFiZWwgPT0gXCLnvJbovpFcIixcclxuICAgICAgICAuLi5yZXF1ZXN0Q29uZmlnLFxyXG4gICAgICAgIC4uLm90aGVyUGFyYW1zLFxyXG4gICAgICB9LFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCB7IGNvZGUsIG1zZyB9ID0gcmVzO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcclxuICAgICAgICBpZiAoY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MobGFiZWwgKyBcIuaIkOWKn1wiKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhpZGUodHJ1ZSk7XHJcbiAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgICB9LCA1MDApO1xyXG5cclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG4gIGdldEZpbGVMaXN0KGRhdGEsIGxhYmVsID0gXCLmlrDlop5cIikge1xyXG4gICAgdGhpcy5zdWJtaXRGbGFnID0gdHJ1ZTtcclxuICAgIGxldCBmaWxlTGlzdCA9IFtdIGFzIGFueTtcclxuICAgIGlmIChkYXRhICYmIGRhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICBkYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGxldCBvYmogPSB7XHJcbiAgICAgICAgICBmaWxlSWQ6IGl0ZW0uZmlsZUlkLFxyXG4gICAgICAgICAgZmlsZU5hbWU6IGl0ZW0uZmlsZU5hbWUsXHJcbiAgICAgICAgfSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKGxhYmVsID09IFwi5p+l55yLXCIpIHtcclxuICAgICAgICAgIG9iai5zdGF0dXMgPSBcImRvbmVcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxhYmVsICE9PSBcIuafpeeci1wiICYmIGl0ZW0uc3RhdHVzICE9PSBcImRvbmVcIikge1xyXG4gICAgICAgICAgdGhpcy5zdWJtaXRGbGFnID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbGVMaXN0LnB1c2gob2JqKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmlsZUxpc3Q7XHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIGNvbnN0IHsgb25TdWJtaXQgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSwgZGljdE5hbWVzLCBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCB2YWxpZCA9IHRoaXMudmFsaWQ7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudFxyXG4gICAgICA/LnZhbGlkYXRlRmllbGRzKClcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGxldCBkYXRhID0gdGhpcy5nZXRGb3JtVmFsdWUoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdHJ1ZSB9KTtcclxuICAgICAgICBpZiAob25TdWJtaXQpIHtcclxuICAgICAgICAgIGxldCByZXR1cm5EYXRhID0gbG9kYXNoLmNsb25lRGVlcChkYXRhKTtcclxuICAgICAgICAgIG9uU3VibWl0ICYmIG9uU3VibWl0KHJldHVybkRhdGEsIGxhYmVsKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kb1N1Ym1pdChkYXRhLCBsYWJlbCk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaCgoZXJyb3JJbmZvOiBhbnkpID0+IHt9KTtcclxuICB9XHJcbiAgdmFsdWVDaGFuZ2UoeyB0eXBlLCBkaWN0TmFtZSB9LCBwcm9wcywgdmFsdWUsIHZhbHVlT3B0aW9uLCBkYXRhKSB7XHJcbiAgICBpZiAodmFsdWVPcHRpb24pIHtcclxuICAgICAgaWYgKGRpY3ROYW1lKSB7XHJcbiAgICAgICAgY29uc3QgeyBkaWN0TmFtZXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgY29uc3QgbmV3TmFtZXMgPSB7IC4uLmRpY3ROYW1lcyB9IGFzIGFueTtcclxuICAgICAgICBuZXdOYW1lc1tkaWN0TmFtZV0gPSB2YWx1ZU9wdGlvbi5sYWJlbDtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGRpY3ROYW1lczogbmV3TmFtZXMsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5vbkNoYW5nZSkge1xyXG4gICAgICBpZiAodHlwZW9mIHByb3BzLm9uQ2hhbmdlID09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlKHZhbHVlLCB2YWx1ZU9wdGlvbiwgZGF0YSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHByb3BzLm9uQ2hhbmdlID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICBjb25zdCBldmVudE9wdGlvbiA9IHtcclxuICAgICAgICAgIHZhbHVlLFxyXG4gICAgICAgICAgZGF0YSxcclxuICAgICAgICAgIGZvcm1SZWY6IHRoaXMuZm9ybVJlZixcclxuICAgICAgICAgIGZ1bmNzOiB0aGlzLnByb3BzLmZ1bmNzIHx8IHt9LFxyXG4gICAgICAgICAgcmVmczogdGhpcy5yZWZMaXN0LFxyXG4gICAgICAgICAgcGFnZVJlZjogdGhpcy5wcm9wcy5wYWdlUmVmLFxyXG4gICAgICAgIH0gYXMgYW55O1xyXG4gICAgICAgIGNvbnN0IFV0aWxzID0gdGhpcy5wcm9wcy5VdGlscyB8fCB7fTtcclxuICAgICAgICBpZiAodHlwZSA9PSBcIlNlbGVjdFwiKSB7XHJcbiAgICAgICAgICBldmVudE9wdGlvbi52YWx1ZU9wdGlvbiA9IHZhbHVlT3B0aW9uO1xyXG4gICAgICAgICAgZXZlbnRPcHRpb24uZGF0YSA9IGRhdGE7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwiRGF0ZVBpY2tlclwiIHx8IHR5cGUgPT0gXCJSYW5nZVBpY2tlclwiKSB7XHJcbiAgICAgICAgICBldmVudE9wdGlvbi52YWx1ZVN0ciA9IHZhbHVlT3B0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBzZWxmRnVuYyA9IG5ldyBGdW5jdGlvbihcImV2ZW50T3B0aW9uXCIsIFwiVXRpbHNcIiwgcHJvcHMub25DaGFuZ2UpO1xyXG4gICAgICAgIHNlbGZGdW5jKGV2ZW50T3B0aW9uLCBVdGlscyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbmRlckZvcm0oZm9ybXMsIGxhYmVsKSB7XHJcbiAgICBjb25zdCBuZXdWYWxpZDogYW55W10gPSBbXTtcclxuICAgIGNvbnN0IHsgZm9ybVR5cGUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHN0b3JlUHJlZml4IH0gPSBjb25maWcoKTtcclxuICAgIGxldCBhdXRvVHlwZSA9IGdldExvY2FsU3RvcmUoXHJcbiAgICAgIFwiZm9ybVR5cGVcIixcclxuICAgICAgc3RvcmVQcmVmaXggPyBzdG9yZVByZWZpeCA6IFwibnNjLWhvbWVcIlxyXG4gICAgKTtcclxuICAgIGF1dG9UeXBlID0gYXV0b1R5cGUgPyBhdXRvVHlwZSA6IG51bGw7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPFJvdyBndXR0ZXI9ezI0fT5cclxuICAgICAgICB7Zm9ybXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW1Qcm9wcyA9IGl0ZW0ucHJvcHMgfHwge307XHJcbiAgICAgICAgICBpZiAoaXRlbVByb3BzLmZvcm1hdCB8fCBpdGVtUHJvcHMudmFsdWVGb3JtYXQpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRlVmFsdWVGb3JtYXRbaXRlbS5uYW1lXSA9XHJcbiAgICAgICAgICAgICAgaXRlbVByb3BzLmZvcm1hdCB8fCBpdGVtUHJvcHMudmFsdWVGb3JtYXQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaXRlbVByb3BzLmZvcm1hdCkge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXRbaXRlbS5uYW1lXSA9IGl0ZW1Qcm9wcy5mb3JtYXQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaXRlbS50eXBlID09IFwiUmFuZ2VQaWNrZXJcIiAmJiBpdGVtLm5hbWUuc3BsaXQoXCIsXCIpLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5yYW5nZXJEYXRlW2l0ZW0ubmFtZV0gPSBpdGVtLm5hbWUuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgbGV0IGFsbG93Q2hhcnMgPSBpdGVtLnByb3BzPy5hbGxvd0NoYXJzIHx8IGZhbHNlO1xyXG4gICAgICAgICAgbGV0IHByb3BzID0ge1xyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogYOivt+i+k+WFpSR7aXRlbS5sYWJlbH1gLFxyXG4gICAgICAgICAgICAuLi5pdGVtLnByb3BzLFxyXG4gICAgICAgICAgICBvbkNoYW5nZTogdGhpcy52YWx1ZUNoYW5nZS5iaW5kKFxyXG4gICAgICAgICAgICAgIHRoaXMsXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgICAgICAgZGljdE5hbWU6IGl0ZW0uZGljdE5hbWUsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7IC4uLml0ZW0ucHJvcHMgfVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIGlmICghaXRlbS50eXBlIHx8IGl0ZW0udHlwZSA9PSBcIklucHV0XCIpIHtcclxuICAgICAgICAgICAgcHJvcHMuYWxsb3dDaGFycyA9IHRydWU7IC8vZm9ybS5pdGVtIOS9v+eUqGlucHV057uE5Lu2YWxsb3dDaGFyc+W/hemhu+m7mOiupHRydWUs5LiN54S26L6T5YWl54m55q6K5a2X56ym5ou/5Yiw55qE5YC85LiN5a+5XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkZWxldGUgcHJvcHMudmFsdWVGb3JtYXQ7XHJcbiAgICAgICAgICBkZWxldGUgcHJvcHMuZm9ybWF0O1xyXG4gICAgICAgICAgZGVsZXRlIHByb3BzLmRhdGFUeXBlO1xyXG4gICAgICAgICAgaWYgKGxhYmVsID09IFwi5p+l55yLXCIpIHtcclxuICAgICAgICAgICAgcHJvcHMuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICBwcm9wcy5wbGFjZWhvbGRlciA9IFwiXCI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoKGl0ZW0ucnVsZXMgJiYgaXRlbS5ydWxlcy5sZW5ndGggPiAwKSB8fCBpdGVtLnJlcXVpcmVkID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbGlkLnB1c2goaXRlbS5uYW1lKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpbmRleCArIDEgPT09IGZvcm1zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkID0gbmV3VmFsaWQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCBpdGVtUmVmOiBhbnkgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gICAgICAgICAgdGhpcy5yZWZMaXN0W2l0ZW0ubmFtZV0gPSBpdGVtUmVmO1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBmb3JtVHlwZSA9PSBcImRyYXdlclwiIHx8XHJcbiAgICAgICAgICAgIChmb3JtVHlwZSA9PSBcImF1dG9cIiAmJiBhdXRvVHlwZSA9PSBcImRyYXdlclwiKVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGl0ZW0uc3BhbiA9IDI0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGl0ZW0udHlwZSAhPT0gXCJVcGxvYWRcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgIDxDb2xcclxuICAgICAgICAgICAgICAgIHNwYW49e2l0ZW0uc3BhbiB8fCAxMn1cclxuICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiBpdGVtLnNob3chPT1mYWxzZSA/IFwiYmxvY2tcIiA6IFwibm9uZVwiIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbVxyXG4gICAgICAgICAgICAgICAgICBsYWJlbD17aXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICBydWxlcz17aXRlbS5ydWxlc31cclxuICAgICAgICAgICAgICAgICAgYWxsb3dDaGFycz17YWxsb3dDaGFyc31cclxuICAgICAgICAgICAgICAgICAgY29tcG9uZW50TmFtZT17aXRlbS50eXBlID8gaXRlbS50eXBlIDogXCJJbnB1dFwifVxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZD17aXRlbS5yZXF1aXJlZH1cclxuICAgICAgICAgICAgICAgICAgdHlwZT17aXRlbS5wcm9wcz8udHlwZX1cclxuICAgICAgICAgICAgICAgICAgbm9TdHlsZT17aXRlbS5ub1N0eWxlIHx8IGZhbHNlfVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7aXRlbS5mb3JtUmVuZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgPyBpdGVtLmZvcm1SZW5kZXIocHJvcHMpXHJcbiAgICAgICAgICAgICAgICAgICAgOiBnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWY6IGl0ZW1SZWYsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cclxuICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZUZvcm1hdC5wdXNoKGl0ZW0ubmFtZSk7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgPENvbFxyXG4gICAgICAgICAgICAgICAgc3Bhbj17aXRlbS5zcGFuIHx8IDEyfVxyXG4gICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6IGl0ZW0uaGlkZSA/IFwibm9uZVwiIDogXCJibG9ja1wiIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbVxyXG4gICAgICAgICAgICAgICAgICBsYWJlbD17aXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICBydWxlcz17aXRlbS5ydWxlc31cclxuICAgICAgICAgICAgICAgICAgYWxsb3dDaGFycz17YWxsb3dDaGFyc31cclxuICAgICAgICAgICAgICAgICAgdHlwZT17aXRlbS5wcm9wcz8udHlwZX1cclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e2l0ZW0ucmVxdWlyZWR9XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxVcGxvYWRcclxuICAgICAgICAgICAgICAgICAgICBmaWxlTGlzdD17dGhpcy5zdGF0ZS5maWxlTGlzdFtpdGVtLm5hbWVdIHx8IFtdfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uTGlzdENoYW5nZT17KGxpc3QpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZUxpc3Q6IHsgLi4uZmlsZUxpc3QsIFtpdGVtLm5hbWVdOiBsaXN0IH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0PXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzaG93RG93bmxvYWRJY29uOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgc2hvd1JlbW92ZUljb246IGxhYmVsICE9PSBcIuafpeeci1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpdGVtUmVmfVxyXG4gICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHtpdGVtLnByb3BzPy5jaGlsZHJlblxyXG4gICAgICAgICAgICAgICAgICAgICAgPyBpdGVtLnByb3BzPy5jaGlsZHJlblxyXG4gICAgICAgICAgICAgICAgICAgICAgOiBsYWJlbCAhPT0gXCLmn6XnnItcIiAmJiA8QnV0dG9uPuS4iuS8oOaWh+S7tjwvQnV0dG9uPn1cclxuICAgICAgICAgICAgICAgICAgPC9VcGxvYWQ+XHJcbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cclxuICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KX1cclxuICAgICAgPC9Sb3c+XHJcbiAgICApO1xyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGZvcm1zID0gW10sXHJcbiAgICAgIHByb3BzID0ge30sXHJcbiAgICAgIGZvb3RlciA9IHRydWUsXHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgICBmb3JtVHlwZSA9IFwicGFnZVwiLFxyXG4gICAgICB0aXRsZSA9IFwiXCIsXHJcbiAgICAgIG1vZGFsUHJvcHM6IGRlZmF1bHRNb2RhbFByb3BzID0ge30sXHJcbiAgICAgIGRyYXdlclByb3BzOiBkZWZhdWx0RHJhd2VyUHJvcHMsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgbG9hZGluZywgbGFiZWwgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgc2VsZkJ1dHRvbnMgPSBbXSBhcyBhbnk7XHJcbiAgICBsZXQgc2VsZlBhbmVzID0gW10gYXMgYW55O1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcclxuICAgICAgICAgIGl0ZW0ubWFwKChjaGlsZCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY2hpbGQ/LnByb3BzPy5wYWdlVHlwZSA9PSBcImZvcm1QYW5lXCIpIHtcclxuICAgICAgICAgICAgICB0eXBlb2YgaXRlbSA9PSBcIm9iamVjdFwiICYmIHNlbGZQYW5lcy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0eXBlb2YgaXRlbSA9PSBcIm9iamVjdFwiICYmIHNlbGZCdXR0b25zLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKGl0ZW0/LnByb3BzPy5wYWdlVHlwZSA9PSBcImZvcm1QYW5lXCIpIHtcclxuICAgICAgICAgICAgdHlwZW9mIGl0ZW0gPT0gXCJvYmplY3RcIiAmJiBzZWxmUGFuZXMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHR5cGVvZiBpdGVtID09IFwib2JqZWN0XCIgJiYgc2VsZkJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICBjb25zdCB7IHByb3BzIH06IGFueSA9IGNoaWxkcmVuO1xyXG4gICAgICBpZiAocHJvcHM/LnBhZ2VUeXBlID09IFwiZm9ybVBhbmVcIikge1xyXG4gICAgICAgIHR5cGVvZiBjaGlsZHJlbiA9PSBcIm9iamVjdFwiICYmIHNlbGZQYW5lcy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0eXBlb2YgY2hpbGRyZW4gPT0gXCJvYmplY3RcIiAmJiBzZWxmQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IG1vZGFsUHJvcHMgPSB7XHJcbiAgICAgIHRpdGxlOiBsYWJlbCArIHRpdGxlLFxyXG4gICAgICBvbk9rOiB0aGlzLm9uU3VibWl0LmJpbmQodGhpcyksXHJcbiAgICAgIG9uQ2FuY2VsOiB0aGlzLmhpZGUuYmluZCh0aGlzKSxcclxuICAgICAgb2tCdXR0b25Qcm9wczogeyBsb2FkaW5nOiBsb2FkaW5nIH0sXHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogXCI1MHZ3XCIsXHJcbiAgICAgIGZvb3RlckJ1dHRvbjogc2VsZkJ1dHRvbnMsXHJcbiAgICAgIC4uLmRlZmF1bHRNb2RhbFByb3BzLFxyXG4gICAgfSBhcyBhbnk7XHJcblxyXG4gICAgbGV0IGRyYXdlclByb3BzID0ge1xyXG4gICAgICBvbk9rOiB0aGlzLm9uU3VibWl0LmJpbmQodGhpcyksXHJcbiAgICAgIG9uQ2xvc2U6IHRoaXMuaGlkZS5iaW5kKHRoaXMpLFxyXG4gICAgICB3aWR0aDogNjUwLFxyXG4gICAgICBmb290ZXJCdXR0b246IHNlbGZCdXR0b25zLFxyXG4gICAgICAuLi5kZWZhdWx0RHJhd2VyUHJvcHMsXHJcbiAgICB9IGFzIGFueTtcclxuICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgIG1vZGFsUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgICAgZHJhd2VyUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZVZhbHVlRm9ybWF0ID0ge307XHJcbiAgICB0aGlzLmRhdGVGb3JtYXQgPSB7fTtcclxuICAgIHRoaXMuZmlsZUZvcm1hdCA9IFtdO1xyXG4gICAgbGV0IG5ld0Zvcm1zT2JqID0ge30gYXMgYW55O1xyXG4gICAgbGV0IGZvcm1Hcm91cHMgPSBbXSBhcyBhbnk7XHJcbiAgICBsZXQgb3RoZXJHcnVwcyA9IFtdIGFzIGFueTtcclxuICAgIGxldCBzaG93Rm9ybXMgPSBbXSBhcyBhbnk7XHJcbiAgICAvL+WkhOeQhuihqOWNleaVsOaNrlxyXG4gICAgZm9ybXMubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGl0ZW0uc2hvdyAhPT0gZmFsc2UpIHtcclxuICAgICAgICBzaG93Rm9ybXMucHVzaChpdGVtKTtcclxuICAgICAgICBpZiAoaXRlbS5ncm91cE5hbWUgJiYgZm9ybUdyb3Vwcy5pbmRleE9mKGl0ZW0uZ3JvdXBOYW1lKSA8IDApIHtcclxuICAgICAgICAgIGZvcm1Hcm91cHMucHVzaChpdGVtLmdyb3VwTmFtZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICghaXRlbS5ncm91cE5hbWUpIHtcclxuICAgICAgICAgIG90aGVyR3J1cHMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKGZvcm1Hcm91cHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3JtR3JvdXBzLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgbGV0IGdyb3VwRm9ybXMgPSBbXSBhcyBhbnk7XHJcbiAgICAgICAgc2hvd0Zvcm1zLm1hcCgoZm9ybTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZm9ybS5ncm91cE5hbWUgPT0gaXRlbSkge1xyXG4gICAgICAgICAgICBncm91cEZvcm1zLnB1c2goZm9ybSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbmV3Rm9ybXNPYmpbaXRlbV0gPSBncm91cEZvcm1zO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKG90aGVyR3J1cHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIG5ld0Zvcm1zT2JqW1wibm9Hcm91cE5hbWVcIl0gPSBvdGhlckdydXBzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBQYW5lV2l0aG91dFBhZ2VUeXBlID0gKFBhbmUsIHByb3BzKSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgcGFnZVR5cGUsIC4uLmNsZWFuUHJvcHMgfSA9IHByb3BzO1xyXG4gICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChQYW5lLnR5cGUsIGNsZWFuUHJvcHMpO1xyXG4gICAgfTtcclxuICAgIC8v6Ieq5a6a5LmJ5oyJ6ZKuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8Rm9ybVxyXG4gICAgICAgIHJlZj17dGhpcy5mb3JtUmVmfVxyXG4gICAgICAgIHNob3dNb2RlbD17dGhpcy5wcm9wcy5mb3JtVHlwZSA9PSBcInBhZ2VcIiA/IG51bGwgOiB0aGlzLnByb3BzLmZvcm1UeXBlfVxyXG4gICAgICAgIG1vZGFsUHJvcHM9e3sgLi4ubW9kYWxQcm9wcyB9fVxyXG4gICAgICAgIGRyYXdlclByb3BzPXt7IC4uLmRyYXdlclByb3BzIH19XHJcbiAgICAgICAgLy8gbGFiZWxDb2w9e3sgZmxleDogXCIxMDBweFwiIH19XHJcbiAgICAgICAgLy8gd3JhcHBlckNvbD17eyBmbGV4OiBcIjE1dndcIiB9fVxyXG4gICAgICAgIG9uVmFsdWVzQ2hhbmdlPXsoY2hhbmdlZFZhbHVlcywgYWxsVmFsdWVzKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB7IG9uRm9ybUNoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICAgIG9uRm9ybUNoYW5nZSAmJiBvbkZvcm1DaGFuZ2UoY2hhbmdlZFZhbHVlcywgYWxsVmFsdWVzKTtcclxuICAgICAgICB9fVxyXG4gICAgICAgIGNoYW5nZVZhbGlkPXt0aGlzLnByb3BzLmNoYW5nZVZhbGlkfVxyXG4gICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tcGFnZVwiPlxyXG4gICAgICAgICAge2Zvcm1Hcm91cHMubGVuZ3RoID09IDAgPyAoXHJcbiAgICAgICAgICAgIHRoaXMucHJvcHMuZm9ybVR5cGUgIT09IFwicGFnZVwiID8gKFxyXG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyRm9ybShzaG93Rm9ybXMsIGxhYmVsKVxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tcGFuZVwiPlxyXG4gICAgICAgICAgICAgICAge3RoaXMucmVuZGVyRm9ybShzaG93Rm9ybXMsIGxhYmVsKX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgT2JqZWN0LmtleXMobmV3Rm9ybXNPYmopLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxkaXYga2V5PXtrZXl9IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXBhbmVcIj5cclxuICAgICAgICAgICAgICAgICAge2tleSAhPSBcIm5vR3JvdXBOYW1lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tdGl0bGVcIj57a2V5fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJGb3JtKG5ld0Zvcm1zT2JqW2tleV0sIGxhYmVsKX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKX1cclxuXHJcbiAgICAgICAgICB7c2VsZlBhbmVzLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgc2VsZlBhbmVzLm1hcCgoUGFuZSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtZm9ybS1wYW5lXCIga2V5PXtpbmRleH0+XHJcbiAgICAgICAgICAgICAgICAgIHtQYW5lV2l0aG91dFBhZ2VUeXBlKFBhbmUsIHsgLi4uUGFuZS5wcm9wcyB9KX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAge2Zvcm1UeXBlID09PSBcInBhZ2VcIiAmJiBmb290ZXIgPT0gdHJ1ZSAmJiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NscyhcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuZm9vdGVyQ2xhc3NOYW1lLFxyXG4gICAgICAgICAgICAgICAgXCJuc2MtZm9ybS1wYWdlLWZvb3RlclwiLFxyXG4gICAgICAgICAgICAgICAgW1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmZvb3RlckZpeGVkICE9PSBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgID8gXCJuc2MtZm9ybS1wYWdlLWZvb3Rlci1maXhlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgIFt0aGlzLnN0YXRlLndpZHRoID8gXCJuc2MtZm9ybS1wYWdlLWZvb3Rlci1maXhlZC13aWR0aFwiIDogXCJcIl1cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgey4uLnRoaXMucHJvcHMuY2FuY2VsQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uQ2FuY2VsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkNhbmNlbCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIOWPlua2iFxyXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgIHsuLi50aGlzLnByb3BzLm9rQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMub25TdWJtaXQoKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBsb2FkaW5nPXt0aGlzLnN0YXRlLmxvYWRpbmd9XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1wibnNjLWZvcm0tcGFnZS1mb290ZXItYnRuXCJ9XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAg5L+d5a2YXHJcbiAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAge3NlbGZCdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJuc2MtZm9ybS1wYWdlLWZvb3Rlci1idG5cIn0ga2V5PXtpbmRleH0+XHJcbiAgICAgICAgICAgICAgICAgICAge2l0ZW19XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge2Zvcm1UeXBlID09PSBcInBhZ2VcIiAmJiBmb290ZXIgIT09IHRydWUgJiYgdGhpcy5wcm9wcy5mb290ZXJ9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvRm9ybT5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBGb3JtUGFnZTtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxhQUFhLFFBQW1CLE9BQU87QUFDdkQsT0FBT0MsSUFBSSxNQUFNLGlCQUFpQjtBQUNsQyxTQUFrQkMsT0FBTyxRQUFRLGFBQWE7QUFDOUMsT0FBT0MsT0FBTyxNQUFNLG9CQUFvQjtBQUN4QyxPQUFPQyxHQUFHLE1BQU0scUJBQXFCO0FBQ3JDLE9BQU9DLEdBQUcsTUFBTSxxQkFBcUI7QUFDckMsU0FBU0MsVUFBVSxFQUFFQyxhQUFhLFFBQVEsbUJBQW1CO0FBQzdELE9BQU9DLEtBQUssTUFBTSxPQUFPO0FBQ3pCLE9BQU8scUJBQXFCO0FBQzVCLE9BQU9DLE1BQU0sTUFBTSxRQUFRO0FBQzNCLE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxHQUFHLE1BQU0sWUFBWTtBQUU1QixPQUFPQyxVQUFVLE1BQU0sYUFBYTtBQUdwQyxTQUFTQyxrQkFBa0IsUUFBUSxzQkFBc0I7QUFDekQsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFnQ2pDLE1BQU1DLFFBQVEsU0FBU2hCLGFBQWEsQ0FBcUI7RUFBQWlCLFlBQUE7SUFBQSxTQUFBQyxTQUFBO0lBQUFDLGVBQUEsK0JBQzdDcEIsS0FBSyxDQUFDcUIsU0FBUyxDQUFNLENBQUM7SUFBQUQsZUFBQSxnQkFDeEI7TUFDTkUsT0FBTyxFQUFFLEtBQUs7TUFDZEMsS0FBSyxFQUFFLElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxRQUFRLElBQUksRUFBRTtNQUNoQ0MsVUFBVSxFQUFFLElBQUk7TUFDaEJDLEtBQUssRUFB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
|
|
724
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiZ2V0Tm9kZSIsIm1lc3NhZ2UiLCJDb2wiLCJSb3ciLCJpc0VtcHR5T2JqIiwiZ2V0TG9jYWxTdG9yZSIsImRheWpzIiwibG9kYXNoIiwiQnV0dG9uIiwiVXBsb2FkIiwiY2xzIiwiTnNjUmVxdWVzdCIsImNvbnZlcnRTdHJpbmdUb09iaiIsImNvbmZpZyIsIkZvcm1QYWdlIiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkiLCJjcmVhdGVSZWYiLCJsb2FkaW5nIiwibGFiZWwiLCJwcm9wcyIsImVkaXRUeXBlIiwiZWRpdG9yRmxhZyIsInZhbHVlIiwiZGljdE5hbWVzIiwiZmlsZUxpc3QiLCJ3aWR0aCIsImVkaXRJZCIsImV2IiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsIl90aGlzIiwiZXZlbnRUeXBlIiwicGF5bG9hZCIsImNsb3NlIiwic2V0U3RhdGUiLCJjb21wb25lbnREaWRNb3VudCIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5NZXNzYWdlIiwiZm9ybVR5cGUiLCJyZXF1ZXN0T2JqZWN0IiwiZGV0YWlsVXJsIiwiZ2V0IiwicGFyYW1zIiwiaWQiLCJzdGF0ZSIsInhzc0ZpbHRlciIsImF1dG9QcmVmaXgiLCJ0aGVuIiwicmVzIiwiY29kZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudCIsImZvcm1SZWYiLCJjdXJyZW50Iiwic2V0RmllbGRzVmFsdWUiLCJfb2JqZWN0U3ByZWFkIiwiZGVmYXVsdFZhbHVlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MiIsImNvbnZlcnREZWZhdWx0VmFsdWUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJVdGlscyIsImZ1bmNzIiwicGFnZVJlZiIsInJlZnMiLCJyZWZMaXN0Iiwic2hvdyIsIm9yZ1ZhbHVlIiwiZWRpdG9yZmxhZyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImNhbGxCYWNrIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MyIsImNvbnZlcnRWYWx1ZSIsInNob3dGb3JtIiwiYWZ0ZXJSZW5kZXIiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ0IiwiaGlkZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDUiLCJvbkhpZGVGb3JtIiwiaGlkZUZvcm0iLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ2Iiwic2V0TG9hZGluZyIsInNldEVkaXRUeXBlIiwidHlwZSIsInNldEVkaXRJZCIsImdldEZvcm1WYWx1ZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDciLCJmb3JtVmFsdWUiLCJnZXRGaWVsZHNWYWx1ZSIsImNsb25lRGVlcCIsImZpbGVGb3JtYXQiLCJuZXdGaWxlTGlzdCIsIm1hcCIsIml0ZW0iLCJnZXRGaWxlTGlzdCIsInN1Ym1pdEZsYWciLCJlcnJvciIsImRhdGVWYWx1ZUZvcm1hdCIsImtleSIsIm9sZGRhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJmb3JtYXQiLCJyYW5nZXJEYXRlIiwiZGF0ZUZvcm1hdCIsImUiLCJuZXdEYXRhIiwic3RyaW5naWZ5IiwidmFsdWVzIiwiZm9yRWFjaCIsImZpbGVLZXkiLCJ2YWx1ZTEiLCJ2YWx1ZTIiLCJzZXRGb3JtVmFsdWUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ4IiwibmV3VmFsdWUiLCJkb1N1Ym1pdCIsImZvcm1kYXRhIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50OSIsInN1Ym1pdFVybCIsInN1Ym1pdFBhcmFtcyIsInJlcXVlc3RDb25maWciLCJhZGRVcmwiLCJlZGl0b3JVcmwiLCJhZGRQYXJhbXMiLCJlZGl0b3JQYXJhbXMiLCJ1cmwiLCJmdW5jIiwiRnVuY3Rpb24iLCJjb252ZXJQYXJhbXMiLCJjb25zb2xlIiwib3RoZXJQYXJhbXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJvblN1Ym1pdCIsIm5vVW5kZWZpbmVkIiwibXNnIiwic3VjY2VzcyIsInNldFRpbWVvdXQiLCJvYmoiLCJmaWxlSWQiLCJmaWxlTmFtZSIsInN0YXR1cyIsInB1c2giLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQxMCIsInZhbGlkIiwidmFsaWRhdGVGaWVsZHMiLCJyZXR1cm5EYXRhIiwiY2F0Y2giLCJlcnJvckluZm8iLCJ2YWx1ZUNoYW5nZSIsIl9yZWYiLCJ2YWx1ZU9wdGlvbiIsImRpY3ROYW1lIiwibmV3TmFtZXMiLCJvbkNoYW5nZSIsImV2ZW50T3B0aW9uIiwidmFsdWVTdHIiLCJzZWxmRnVuYyIsInJlbmRlckZvcm0iLCJmb3JtcyIsIm5ld1ZhbGlkIiwic3RvcmVQcmVmaXgiLCJhdXRvVHlwZSIsImNyZWF0ZUVsZW1lbnQiLCJndXR0ZXIiLCJpbmRleCIsIl9pdGVtJHByb3BzIiwiX2l0ZW0kcHJvcHMyIiwiaXRlbVByb3BzIiwidmFsdWVGb3JtYXQiLCJuYW1lIiwic3BsaXQiLCJhbGxvd0NoYXJzIiwiY2hpbGRyZW4iLCJwbGFjZWhvbGRlciIsImNvbmNhdCIsImJpbmQiLCJkYXRhVHlwZSIsImRpc2FibGVkIiwicnVsZXMiLCJyZXF1aXJlZCIsIml0ZW1SZWYiLCJzcGFuIiwiX2l0ZW0kcHJvcHMzIiwic3R5bGUiLCJkaXNwbGF5IiwiSXRlbSIsImNvbXBvbmVudE5hbWUiLCJub1N0eWxlIiwiZm9ybVJlbmRlciIsInJlZiIsIl9pdGVtJHByb3BzNCIsIl9leHRlbmRzIiwib25MaXN0Q2hhbmdlIiwibGlzdCIsInNob3dVcGxvYWRMaXN0Iiwic2hvd0Rvd25sb2FkSWNvbiIsInNob3dSZW1vdmVJY29uIiwicmVuZGVyIiwiZm9vdGVyIiwidGl0bGUiLCJtb2RhbFByb3BzIiwiZGVmYXVsdE1vZGFsUHJvcHMiLCJkcmF3ZXJQcm9wcyIsImRlZmF1bHREcmF3ZXJQcm9wcyIsInNlbGZCdXR0b25zIiwic2VsZlBhbmVzIiwiY2hpbGQiLCJfY2hpbGQkcHJvcHMiLCJwYWdlVHlwZSIsIl9pdGVtJHByb3BzNSIsIm9uT2siLCJvbkNhbmNlbCIsIm9rQnV0dG9uUHJvcHMiLCJjZW50ZXJlZCIsImZvb3RlckJ1dHRvbiIsIm9uQ2xvc2UiLCJuZXdGb3Jtc09iaiIsImZvcm1Hcm91cHMiLCJvdGhlckdydXBzIiwic2hvd0Zvcm1zIiwiZ3JvdXBOYW1lIiwiaW5kZXhPZiIsImdyb3VwRm9ybXMiLCJmb3JtIiwiUGFuZVdpdGhvdXRQYWdlVHlwZSIsIlBhbmUiLCJjbGVhblByb3BzIiwiX2V4Y2x1ZGVkMiIsInNob3dNb2RlbCIsIm9uVmFsdWVzQ2hhbmdlIiwiY2hhbmdlZFZhbHVlcyIsImFsbFZhbHVlcyIsIm9uRm9ybUNoYW5nZSIsImNoYW5nZVZhbGlkIiwiY2xhc3NOYW1lIiwiT2JqZWN0Iiwia2V5cyIsImZvb3RlckNsYXNzTmFtZSIsImZvb3RlckZpeGVkIiwiY2FuY2VsQnV0dG9uUHJvcHMiLCJvbkNsaWNrIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9Gb3JtUGFnZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vYmFzZS9mb3JtXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL2Jhc2UvbWVzc2FnZVwiO1xyXG5pbXBvcnQgQ29sIGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvQ29sXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHsgaXNFbXB0eU9iaiwgZ2V0TG9jYWxTdG9yZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IGxvZGFzaCBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBVcGxvYWQgZnJvbSBcIi4uLy4uL2Jhc2UvdXBsb2FkXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHsgSUZvcm1Qcm9wcyB9IGZyb20gXCJzcmMvY29tcG9uZW50cy9iYXNlL2Zvcm0vRm9ybVwiO1xyXG5pbXBvcnQgTnNjUmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IENvbXBvdW5kZWRTcGFjZSBmcm9tIFwiYW50ZC9lcy9zcGFjZVwiO1xyXG5pbXBvcnQgeyBjb252ZXJ0U3RyaW5nVG9PYmogfSBmcm9tIFwiLi4vU2V0dGluZ1V0aWwvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1QYWdlUHJvcHMge1xyXG4gIGZvcm1zPzogQXJyYXk8YW55PjsgLy/mmK/lkKbmmL7npLrmk43kvZzliJdcclxuICBzdWJtaXRVcmw/OiBzdHJpbmc7XHJcbiAgb25TdWJtaXQ/OiAodmFsdWU/OiBhbnksIGxhYmVsPzogYW55KSA9PiB2b2lkO1xyXG4gIGZvb3RlckNsYXNzTmFtZT86IGFueTtcclxuICBva0J1dHRvblByb3BzPzogYW55O1xyXG4gIGNhbmNlbEJ1dHRvblByb3BzPzogYW55O1xyXG4gIGZvb3Rlcj86IFJlYWN0Tm9kZSB8IGJvb2xlYW47XHJcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgb25Gb3JtQ2hhbmdlPzogKHZhbHVlPzogYW55LCBhbGxWYWx1ZT86IGFueSkgPT4gdm9pZDtcclxuICBzdWJtaXRQYXJhbXM/OiBhbnk7IC8v5re75Yqg5Y+C5pWw77yM6buY6K6kbW90aG9kOnBvc3TvvIwg5Y+C5pWw6YCa6L+HZGF0YeS8oOmAklxyXG4gIGZ1bmNzPzogYW55O1xyXG4gIHByb3BzPzogSUZvcm1Qcm9wcztcclxuICByZXF1ZXN0T2JqZWN0Pzoge1xyXG4gICAgYWRkVXJsPzogc3RyaW5nO1xyXG4gICAgZWRpdG9yVXJsPzogc3RyaW5nO1xyXG4gICAgYWRkUGFyYW1zPzogYW55O1xyXG4gICAgZWRpdG9yUGFyYW1zPzogYW55O1xyXG4gICAgZGV0YWlsVXJsPzogc3RyaW5nO1xyXG4gIH07XHJcbiAgcmVxdWVzdENvbmZpZz86IGFueTtcclxuICBmb290ZXJXaWR0aD86IGJvb2xlYW47XHJcbiAgZWRpdFR5cGU/OiBcIuaWsOWinlwiIHwgXCLnvJbovpFcIiB8IFwi5p+l55yLXCI7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgZWRpdElkPzogc3RyaW5nO1xyXG4gIG1vZGFsUHJvcHM/OiBhbnk7XHJcbiAgZHJhd2VyUHJvcHM/OiBhbnk7XHJcbiAgW3Byb3BzTmFtZTogc3RyaW5nXTogYW55O1xyXG4gIGZvb3RlckZpeGVkPzogYm9vbGVhbjtcclxufVxyXG5jbGFzcyBGb3JtUGFnZSBleHRlbmRzIFB1cmVDb21wb25lbnQ8Rm9ybVBhZ2VQcm9wcywgYW55PiB7XHJcbiAgZm9ybVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgIGxhYmVsOiB0aGlzLnByb3BzLmVkaXRUeXBlIHx8IFwiXCIsXHJcbiAgICBlZGl0b3JGbGFnOiB0cnVlLFxyXG4gICAgdmFsdWU6IHt9IGFzIGFueSxcclxuICAgIGRpY3ROYW1lczoge30gYXMgYW55LFxyXG4gICAgZmlsZUxpc3Q6IHt9IGFzIGFueSxcclxuICAgIHdpZHRoOiBnZXRMb2NhbFN0b3JlKFwibnNjLWhvbWUtbWVudUNvbGxzYXBlXCIpIHx8IGZhbHNlLFxyXG4gICAgZWRpdElkOiB0aGlzLnByb3BzLmVkaXRJZCB8fCBcIlwiLFxyXG4gIH07XHJcbiAgdmFsaWQ6IGFueSA9IFtdO1xyXG4gIGRhdGVWYWx1ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIGZpbGVGb3JtYXQgPSBbXSBhcyBhbnk7XHJcbiAgcmFuZ2VyRGF0ZSA9IHt9IGFzIGFueTtcclxuICByZWZMaXN0ID0ge30gYXMgYW55O1xyXG4gIHN1Ym1pdEZsYWcgPSB0cnVlO1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGZvcm1UeXBlID0gXCJwYWdlXCIsXHJcbiAgICAgIHJlcXVlc3RPYmplY3QgPSB7fSxcclxuICAgICAgZWRpdFR5cGUgPSBcIuaWsOWinlwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoZm9ybVR5cGUgPT0gXCJwYWdlXCIpIHtcclxuICAgICAgaWYgKHJlcXVlc3RPYmplY3QuZGV0YWlsVXJsICYmIGVkaXRUeXBlICE9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgICAgTnNjUmVxdWVzdC5nZXQocmVxdWVzdE9iamVjdC5kZXRhaWxVcmwsIHtcclxuICAgICAgICAgIHBhcmFtczogeyBpZDogdGhpcy5zdGF0ZS5lZGl0SWQgfSxcclxuICAgICAgICAgIHhzc0ZpbHRlcjogZmFsc2UsXHJcbiAgICAgICAgICBhdXRvUHJlZml4OiB0cnVlLFxyXG4gICAgICAgIH0pLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUoeyAuLi5yZXMuZGF0YSB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChlZGl0VHlwZSA9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZGVmYXVsdFZhbHVlKSB7XHJcbiAgICAgICAgICBsZXQgZGVmYXVsdFZhbHVlID0gdGhpcy5jb252ZXJ0RGVmYXVsdFZhbHVlKCk7XHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUoZGVmYXVsdFZhbHVlIHx8IHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XHJcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5saXN0ZW5NZXNzYWdlKTtcclxuICB9XHJcbiAgbGlzdGVuTWVzc2FnZSA9IChldikgPT4ge1xyXG4gICAgY29uc3QgZGF0YSA9IHR5cGVvZiBldi5kYXRhID09PSBcInN0cmluZ1wiID8gSlNPTi5wYXJzZShldi5kYXRhKSA6IGV2LmRhdGE7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgaWYgKGRhdGEuZXZlbnRUeXBlID09IFwibWVudUNvbGxzYXBlXCIpIHtcclxuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBkYXRhO1xyXG4gICAgICBpZiAocGF5bG9hZC5jbG9zZSA9PT0gdHJ1ZSB8fCBwYXlsb2FkLmNsb3NlID09PSBmYWxzZSkge1xyXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHsgd2lkdGg6IHBheWxvYWQuY2xvc2UgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIGNvbnZlcnREZWZhdWx0VmFsdWUoKSB7XHJcbiAgICBjb25zdCB7IGRlZmF1bHRWYWx1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHJldHVybiBjb252ZXJ0U3RyaW5nVG9PYmooZGVmYXVsdFZhbHVlLCB0aGlzLnByb3BzLlV0aWxzIHx8IHt9LCB7XHJcbiAgICAgIGZ1bmNzOiB0aGlzLnByb3BzLmZ1bmNzLFxyXG4gICAgICBwYWdlUmVmOiB0aGlzLnByb3BzLnBhZ2VSZWYsXHJcbiAgICAgIGZvcm1SZWY6IHRoaXMuZm9ybVJlZixcclxuICAgICAgcmVmczogdGhpcy5yZWZMaXN0LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8v6KGo5Y2V5pi+56S6XHJcbiAgc2hvdyhvcmdWYWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIsIGNhbGxCYWNrPzogYW55KSB7XHJcbiAgICBsZXQgbGFiZWwgPSBcIuaWsOWinlwiO1xyXG4gICAgaWYgKG9yZ1ZhbHVlICYmIGVkaXRvcmZsYWcgPT0gXCJlZGl0b3JcIikge1xyXG4gICAgICBsYWJlbCA9IFwi57yW6L6RXCI7XHJcbiAgICB9IGVsc2UgaWYgKG9yZ1ZhbHVlICYmIChlZGl0b3JmbGFnID09IFwiZGV0YWlsXCIgfHwgZWRpdG9yZmxhZyA9PSBcInNlYXJjaFwiKSkge1xyXG4gICAgICBsYWJlbCA9IFwi5p+l55yLXCI7XHJcbiAgICB9XHJcbiAgICBpZiAob3JnVmFsdWUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogbGFiZWwsXHJcbiAgICAgICAgICB2YWx1ZTogb3JnVmFsdWUsXHJcbiAgICAgICAgICBlZGl0SWQ6IG9yZ1ZhbHVlLmlkLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5jb252ZXJ0VmFsdWUob3JnVmFsdWUsIGxhYmVsKTtcclxuICAgICAgICAgIC8v5aSE55CG5paH5Lu25pWw5o2uXHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2hvd0Zvcm0odmFsdWUsIHtcclxuICAgICAgICAgICAgYWZ0ZXJSZW5kZXI6ICgpID0+IHtcclxuICAgICAgICAgICAgICBjYWxsQmFjayAmJiBjYWxsQmFjaygpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogbGFiZWwsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICBsZXQgZGVmYXVsdFZhbHVlID0gdGhpcy5wcm9wcy5kZWZhdWx0VmFsdWVcclxuICAgICAgICAgICAgPyB0aGlzLmNvbnZlcnREZWZhdWx0VmFsdWUoKVxyXG4gICAgICAgICAgICA6IHt9O1xyXG4gICAgICAgICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNob3dGb3JtKGRlZmF1bHRWYWx1ZSB8fCB7fSwge1xyXG4gICAgICAgICAgICBhZnRlclJlbmRlcjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGhpZGUoaGlkZSA9IHRydWUpIHtcclxuICAgIGNvbnN0IHsgb25IaWRlRm9ybSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChvbkhpZGVGb3JtKSB7XHJcbiAgICAgIG9uSGlkZUZvcm0gJiYgb25IaWRlRm9ybSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UsIGZpbGVMaXN0OiB7fSB9KTtcclxuICAgIGhpZGUgJiYgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG4gIGhpZGVGb3JtKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlLCBmaWxlTGlzdDoge30gfSk7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICB9XHJcbiAgc2hvd0Zvcm0ob3JnVmFsdWU/OiBhbnksIGVkaXRvcmZsYWcgPSBcImFkZFwiLCBjYWxsQmFjaz86IGFueSkge1xyXG4gICAgdGhpcy5zaG93KG9yZ1ZhbHVlLCBlZGl0b3JmbGFnLCBjYWxsQmFjayk7XHJcbiAgfVxyXG4gIHNldExvYWRpbmcobG9hZGluZzogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGxvYWRpbmcgfSk7XHJcbiAgfVxyXG4gIHNldEVkaXRUeXBlKHR5cGUpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBsYWJlbDogdHlwZSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBzZXRFZGl0SWQoaWQpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBlZGl0SWQ6IGlkLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldEZvcm1WYWx1ZSgpIHtcclxuICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlLCBkaWN0TmFtZXMsIGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBsZXQgZGF0YSA9IGxvZGFzaC5jbG9uZURlZXAoeyAuLi5mb3JtVmFsdWUsIC4uLmRpY3ROYW1lcyB9KTtcclxuICAgIGlmICh0aGlzLmZpbGVGb3JtYXQubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgbmV3RmlsZUxpc3QgPSB7fSBhcyBhbnk7XHJcbiAgICAgIHRoaXMuZmlsZUZvcm1hdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBpZiAoZmlsZUxpc3RbaXRlbV0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgIG5ld0ZpbGVMaXN0W2l0ZW1dID0gbnVsbDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbmV3RmlsZUxpc3RbaXRlbV0gPSB0aGlzLmdldEZpbGVMaXN0KGZpbGVMaXN0W2l0ZW1dIHx8IFtdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCAuLi5uZXdGaWxlTGlzdCB9O1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnN1Ym1pdEZsYWcpIHtcclxuICAgICAgbWVzc2FnZS5lcnJvcihcIuivt+etieW+heaJgOacieaWh+S7tuS4iuS8oOWujOaIkO+8gVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc0VtcHR5T2JqKHRoaXMuZGF0ZVZhbHVlRm9ybWF0KSkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlVmFsdWVGb3JtYXQpIHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IGRhdGFba2V5XTtcclxuICAgICAgICBpZiAob2xkZGF0YSkge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgZGF0YVtrZXldID0gW1xyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMF0pLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzFdKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJhbmdlckRhdGVba2V5XSkge1xyXG4gICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzBdXSA9IGRheWpzKG9sZGRhdGFbMF0pLmZvcm1hdChcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2tleV1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBkYXRhW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzFdXSA9IGRheWpzKG9sZGRhdGFbMV0pLmZvcm1hdChcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2tleV1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgZGF0YVtrZXldO1xyXG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRhdGFba2V5XSA9IGRheWpzKG9sZGRhdGEpLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChsYWJlbCA9PSBcIue8lui+kVwiKSB7XHJcbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGlkOiB2YWx1ZT8uaWQgfHwgdGhpcy5zdGF0ZS5lZGl0SWQgfTtcclxuICAgIH1cclxuICAgIGxldCBuZXdEYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcbiAgICByZXR1cm4gbmV3RGF0YTtcclxuICB9XHJcbiAgY29udmVydFZhbHVlKHZhbHVlLCB0eXBlKSB7XHJcbiAgICBsZXQgdmFsdWVzID0gbG9kYXNoLmNsb25lRGVlcCh2YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5maWxlRm9ybWF0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGZpbGVMaXN0ID0ge30gYXMgYW55O1xyXG4gICAgICB0aGlzLmZpbGVGb3JtYXQuZm9yRWFjaCgoZmlsZUtleSkgPT4ge1xyXG4gICAgICAgIGxldCBvbGRkYXRhID0gdmFsdWVzW2ZpbGVLZXldO1xyXG4gICAgICAgIGlmIChvbGRkYXRhICYmIEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgIGZpbGVMaXN0W2ZpbGVLZXldID0gdGhpcy5nZXRGaWxlTGlzdChvbGRkYXRhIHx8IFtdLCB0eXBlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZmlsZUxpc3RbZmlsZUtleV0gPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHsgZmlsZUxpc3Q6IGZpbGVMaXN0IH0pO1xyXG4gICAgfVxyXG4gICAgLy/lpITnkIbml6XmnJ/moLzlvI/mlbDmja5cclxuICAgIGlmICghaXNFbXB0eU9iaih0aGlzLmRhdGVGb3JtYXQpKSB7XHJcbiAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGVGb3JtYXQpIHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IHZhbHVlc1trZXldO1xyXG4gICAgICAgIGlmIChvbGRkYXRhKSB7XHJcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvbGRkYXRhKSkge1xyXG4gICAgICAgICAgICB2YWx1ZXNba2V5XSA9IFtcclxuICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzBdLCB0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVsxXSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdmFsdWVzW2tleV0gPSBkYXlqcyhvbGRkYXRhLCB0aGlzLmRhdGVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmICh0aGlzLnJhbmdlckRhdGVba2V5XSkge1xyXG4gICAgICAgICAgICBsZXQgdmFsdWUxID0gdmFsdWVzW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzBdXTtcclxuICAgICAgICAgICAgbGV0IHZhbHVlMiA9IHZhbHVlc1t0aGlzLnJhbmdlckRhdGVba2V5XVsxXV07XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZTEgJiYgdmFsdWUyKSB7XHJcbiAgICAgICAgICAgICAgdmFsdWVzW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgICBkYXlqcyh2YWx1ZTEsIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICAgIGRheWpzKHZhbHVlMiwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZXM7XHJcbiAgfVxyXG4gIHNldEZvcm1WYWx1ZSh2YWx1ZSwgdHlwZSA9IFwi5p+l55yLXCIpIHtcclxuICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5jb252ZXJ0VmFsdWUodmFsdWUsIHR5cGUpO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNldEZpZWxkc1ZhbHVlKG5ld1ZhbHVlKTtcclxuICB9XHJcbiAgZG9TdWJtaXQoZm9ybWRhdGEsIGxhYmVsKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHN1Ym1pdFVybCxcclxuICAgICAgc3VibWl0UGFyYW1zID0ge30sXHJcbiAgICAgIGNhbGxCYWNrLFxyXG4gICAgICByZXF1ZXN0T2JqZWN0ID0ge30sXHJcbiAgICAgIHJlcXVlc3RDb25maWcgPSB7fSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBhZGRVcmwsIGVkaXRvclVybCwgYWRkUGFyYW1zLCBlZGl0b3JQYXJhbXMgfSA9IHJlcXVlc3RPYmplY3Q7XHJcbiAgICBsZXQgdXJsID0gc3VibWl0VXJsO1xyXG4gICAgbGV0IHBhcmFtczogYW55ID0ge307XHJcbiAgICBpZiAoIWxhYmVsIHx8IGxhYmVsID09IFwi5paw5aKeXCIpIHtcclxuICAgICAgdXJsID0gYWRkVXJsID8gYWRkVXJsIDogc3VibWl0VXJsO1xyXG4gICAgICBpZiAoYWRkUGFyYW1zICYmIHR5cGVvZiBhZGRQYXJhbXMgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIGNvbnN0IFV0aWxzID0gdGhpcy5wcm9wcy5VdGlscyB8fCB7fTtcclxuICAgICAgICBsZXQgZnVuYyA9IG5ldyBGdW5jdGlvbihcIlV0aWxzXCIsIGFkZFBhcmFtcyk7XHJcbiAgICAgICAgbGV0IGNvbnZlclBhcmFtcyA9IGZ1bmMoVXRpbHMpO1xyXG4gICAgICAgIHBhcmFtcyA9IGNvbnZlclBhcmFtcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwYXJhbXMgPSBhZGRQYXJhbXMgPyBhZGRQYXJhbXMgOiBzdWJtaXRQYXJhbXM7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAobGFiZWwgPT0gXCLnvJbovpFcIikge1xyXG4gICAgICB1cmwgPSBlZGl0b3JVcmwgPyBlZGl0b3JVcmwgOiBzdWJtaXRVcmw7XHJcbiAgICAgIGlmIChlZGl0b3JQYXJhbXMgJiYgdHlwZW9mIGVkaXRvclBhcmFtcyA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgY29uc3QgVXRpbHMgPSB0aGlzLnByb3BzLlV0aWxzIHx8IHt9O1xyXG4gICAgICAgIGxldCBmdW5jID0gbmV3IEZ1bmN0aW9uKFwiVXRpbHNcIiwgZWRpdG9yUGFyYW1zKTtcclxuICAgICAgICBsZXQgY29udmVyUGFyYW1zID0gZnVuYyhVdGlscyk7XHJcbiAgICAgICAgcGFyYW1zID0gY29udmVyUGFyYW1zO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHBhcmFtcyA9IGVkaXRvclBhcmFtcyA/IGVkaXRvclBhcmFtcyA6IHN1Ym1pdFBhcmFtcztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCF1cmwpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIumFjee9rlVybOS4jeiDveS4uuepuu+8gVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBkYXRhID0ge30sIC4uLm90aGVyUGFyYW1zIH0gPSBwYXJhbXM7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8ub25TdWJtaXQoXHJcbiAgICAgIHVybCxcclxuICAgICAge1xyXG4gICAgICAgIGRhdGE6IHsgLi4uZm9ybWRhdGEsIC4uLmRhdGEgfSxcclxuICAgICAgICBub1VuZGVmaW5lZDogbGFiZWwgPT0gXCLnvJbovpFcIixcclxuICAgICAgICAuLi5yZXF1ZXN0Q29uZmlnLFxyXG4gICAgICAgIC4uLm90aGVyUGFyYW1zLFxyXG4gICAgICB9LFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCB7IGNvZGUsIG1zZyB9ID0gcmVzO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcclxuICAgICAgICBpZiAoY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MobGFiZWwgKyBcIuaIkOWKn1wiKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhpZGUodHJ1ZSk7XHJcbiAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgICB9LCA1MDApO1xyXG5cclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG4gIGdldEZpbGVMaXN0KGRhdGEsIGxhYmVsID0gXCLmlrDlop5cIikge1xyXG4gICAgdGhpcy5zdWJtaXRGbGFnID0gdHJ1ZTtcclxuICAgIGxldCBmaWxlTGlzdCA9IFtdIGFzIGFueTtcclxuICAgIGlmIChkYXRhICYmIGRhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICBkYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGxldCBvYmogPSB7XHJcbiAgICAgICAgICBmaWxlSWQ6IGl0ZW0uZmlsZUlkLFxyXG4gICAgICAgICAgZmlsZU5hbWU6IGl0ZW0uZmlsZU5hbWUsXHJcbiAgICAgICAgfSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKGxhYmVsID09IFwi5p+l55yLXCIpIHtcclxuICAgICAgICAgIG9iai5zdGF0dXMgPSBcImRvbmVcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxhYmVsICE9PSBcIuafpeeci1wiICYmIGl0ZW0uc3RhdHVzICE9PSBcImRvbmVcIikge1xyXG4gICAgICAgICAgdGhpcy5zdWJtaXRGbGFnID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbGVMaXN0LnB1c2gob2JqKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmlsZUxpc3Q7XHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIGNvbnN0IHsgb25TdWJtaXQgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSwgZGljdE5hbWVzLCBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCB2YWxpZCA9IHRoaXMudmFsaWQ7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudFxyXG4gICAgICA/LnZhbGlkYXRlRmllbGRzKClcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGxldCBkYXRhID0gdGhpcy5nZXRGb3JtVmFsdWUoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdHJ1ZSB9KTtcclxuICAgICAgICBpZiAob25TdWJtaXQpIHtcclxuICAgICAgICAgIGxldCByZXR1cm5EYXRhID0gbG9kYXNoLmNsb25lRGVlcChkYXRhKTtcclxuICAgICAgICAgIG9uU3VibWl0ICYmIG9uU3VibWl0KHJldHVybkRhdGEsIGxhYmVsKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kb1N1Ym1pdChkYXRhLCBsYWJlbCk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaCgoZXJyb3JJbmZvOiBhbnkpID0+IHt9KTtcclxuICB9XHJcbiAgdmFsdWVDaGFuZ2UoeyB0eXBlLCBkaWN0TmFtZSB9LCBwcm9wcywgdmFsdWUsIHZhbHVlT3B0aW9uLCBkYXRhKSB7XHJcbiAgICBpZiAodmFsdWVPcHRpb24pIHtcclxuICAgICAgaWYgKGRpY3ROYW1lKSB7XHJcbiAgICAgICAgY29uc3QgeyBkaWN0TmFtZXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgY29uc3QgbmV3TmFtZXMgPSB7IC4uLmRpY3ROYW1lcyB9IGFzIGFueTtcclxuICAgICAgICBuZXdOYW1lc1tkaWN0TmFtZV0gPSB2YWx1ZU9wdGlvbi5sYWJlbDtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGRpY3ROYW1lczogbmV3TmFtZXMsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5vbkNoYW5nZSkge1xyXG4gICAgICBpZiAodHlwZW9mIHByb3BzLm9uQ2hhbmdlID09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlKHZhbHVlLCB2YWx1ZU9wdGlvbiwgZGF0YSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHByb3BzLm9uQ2hhbmdlID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICBjb25zdCBldmVudE9wdGlvbiA9IHtcclxuICAgICAgICAgIHZhbHVlLFxyXG4gICAgICAgICAgZGF0YSxcclxuICAgICAgICAgIGZvcm1SZWY6IHRoaXMuZm9ybVJlZixcclxuICAgICAgICAgIGZ1bmNzOiB0aGlzLnByb3BzLmZ1bmNzIHx8IHt9LFxyXG4gICAgICAgICAgcmVmczogdGhpcy5yZWZMaXN0LFxyXG4gICAgICAgICAgcGFnZVJlZjogdGhpcy5wcm9wcy5wYWdlUmVmLFxyXG4gICAgICAgIH0gYXMgYW55O1xyXG4gICAgICAgIGNvbnN0IFV0aWxzID0gdGhpcy5wcm9wcy5VdGlscyB8fCB7fTtcclxuICAgICAgICBpZiAodHlwZSA9PSBcIlNlbGVjdFwiKSB7XHJcbiAgICAgICAgICBldmVudE9wdGlvbi52YWx1ZU9wdGlvbiA9IHZhbHVlT3B0aW9uO1xyXG4gICAgICAgICAgZXZlbnRPcHRpb24uZGF0YSA9IGRhdGE7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwiRGF0ZVBpY2tlclwiIHx8IHR5cGUgPT0gXCJSYW5nZVBpY2tlclwiKSB7XHJcbiAgICAgICAgICBldmVudE9wdGlvbi52YWx1ZVN0ciA9IHZhbHVlT3B0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBzZWxmRnVuYyA9IG5ldyBGdW5jdGlvbihcImV2ZW50T3B0aW9uXCIsIFwiVXRpbHNcIiwgcHJvcHMub25DaGFuZ2UpO1xyXG4gICAgICAgIHNlbGZGdW5jKGV2ZW50T3B0aW9uLCBVdGlscyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbmRlckZvcm0oZm9ybXMsIGxhYmVsKSB7XHJcbiAgICBjb25zdCBuZXdWYWxpZDogYW55W10gPSBbXTtcclxuICAgIGNvbnN0IHsgZm9ybVR5cGUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHN0b3JlUHJlZml4IH0gPSBjb25maWcoKTtcclxuICAgIGxldCBhdXRvVHlwZSA9IGdldExvY2FsU3RvcmUoXHJcbiAgICAgIFwiZm9ybVR5cGVcIixcclxuICAgICAgc3RvcmVQcmVmaXggPyBzdG9yZVByZWZpeCA6IFwibnNjLWhvbWVcIlxyXG4gICAgKTtcclxuICAgIGF1dG9UeXBlID0gYXV0b1R5cGUgPyBhdXRvVHlwZSA6IG51bGw7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPFJvdyBndXR0ZXI9ezI0fT5cclxuICAgICAgICB7Zm9ybXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW1Qcm9wcyA9IGl0ZW0ucHJvcHMgfHwge307XHJcbiAgICAgICAgICBpZiAoaXRlbVByb3BzLmZvcm1hdCB8fCBpdGVtUHJvcHMudmFsdWVGb3JtYXQpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRlVmFsdWVGb3JtYXRbaXRlbS5uYW1lXSA9XHJcbiAgICAgICAgICAgICAgaXRlbVByb3BzLmZvcm1hdCB8fCBpdGVtUHJvcHMudmFsdWVGb3JtYXQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaXRlbVByb3BzLmZvcm1hdCkge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXRbaXRlbS5uYW1lXSA9IGl0ZW1Qcm9wcy5mb3JtYXQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaXRlbS50eXBlID09IFwiUmFuZ2VQaWNrZXJcIiAmJiBpdGVtLm5hbWUuc3BsaXQoXCIsXCIpLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5yYW5nZXJEYXRlW2l0ZW0ubmFtZV0gPSBpdGVtLm5hbWUuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgbGV0IGFsbG93Q2hhcnMgPSBpdGVtLnByb3BzPy5hbGxvd0NoYXJzIHx8IGZhbHNlO1xyXG4gICAgICAgICAgbGV0IGNoaWxkcmVuID0gaXRlbS5wcm9wcz8uY2hpbGRyZW47XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGxldCBwcm9wcyA9IHtcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGDor7fovpPlhaUke2l0ZW0ubGFiZWx9YCxcclxuICAgICAgICAgICAgLi4uaXRlbS5wcm9wcyxcclxuICAgICAgICAgICAgb25DaGFuZ2U6IHRoaXMudmFsdWVDaGFuZ2UuYmluZChcclxuICAgICAgICAgICAgICB0aGlzLFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICAgICAgICAgIGRpY3ROYW1lOiBpdGVtLmRpY3ROYW1lLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgeyAuLi5pdGVtLnByb3BzIH1cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBpZiAoIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT0gXCJJbnB1dFwiKSB7XHJcbiAgICAgICAgICAgIHByb3BzLmFsbG93Q2hhcnMgPSB0cnVlOyAvL2Zvcm0uaXRlbSDkvb/nlKhpbnB1dOe7hOS7tmFsbG93Q2hhcnPlv4Xpobvpu5jorqR0cnVlLOS4jeeEtui+k+WFpeeJueauiuWtl+espuaLv+WIsOeahOWAvOS4jeWvuVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZGVsZXRlIHByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgZGVsZXRlIHByb3BzLmZvcm1hdDtcclxuICAgICAgICAgIGRlbGV0ZSBwcm9wcy5kYXRhVHlwZTtcclxuICAgICAgICAgIGRlbGV0ZSBwcm9wcy5jaGlsZHJlbjtcclxuICAgICAgICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgICAgICAgIHByb3BzLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgcHJvcHMucGxhY2Vob2xkZXIgPSBcIlwiO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKChpdGVtLnJ1bGVzICYmIGl0ZW0ucnVsZXMubGVuZ3RoID4gMCkgfHwgaXRlbS5yZXF1aXJlZCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBuZXdWYWxpZC5wdXNoKGl0ZW0ubmFtZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaW5kZXggKyAxID09PSBmb3Jtcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZCA9IG5ld1ZhbGlkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29uc3QgaXRlbVJlZjogYW55ID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICAgICAgICAgIHRoaXMucmVmTGlzdFtpdGVtLm5hbWVdID0gaXRlbVJlZjtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgZm9ybVR5cGUgPT0gXCJkcmF3ZXJcIiB8fFxyXG4gICAgICAgICAgICAoZm9ybVR5cGUgPT0gXCJhdXRvXCIgJiYgYXV0b1R5cGUgPT0gXCJkcmF3ZXJcIilcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBpdGVtLnNwYW4gPSAyNDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpdGVtLnR5cGUgIT09IFwiVXBsb2FkXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICBzcGFuPXtpdGVtLnNwYW4gfHwgMTJ9XHJcbiAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogaXRlbS5zaG93ICE9PSBmYWxzZSA/IFwiYmxvY2tcIiA6IFwibm9uZVwiIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbVxyXG4gICAgICAgICAgICAgICAgICBsYWJlbD17aXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICBydWxlcz17aXRlbS5ydWxlc31cclxuICAgICAgICAgICAgICAgICAgYWxsb3dDaGFycz17YWxsb3dDaGFyc31cclxuICAgICAgICAgICAgICAgICAgY29tcG9uZW50TmFtZT17aXRlbS50eXBlID8gaXRlbS50eXBlIDogXCJJbnB1dFwifVxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZD17aXRlbS5yZXF1aXJlZH1cclxuICAgICAgICAgICAgICAgICAgdHlwZT17aXRlbS5wcm9wcz8udHlwZX1cclxuICAgICAgICAgICAgICAgICAgbm9TdHlsZT17aXRlbS5ub1N0eWxlIHx8IGZhbHNlfVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7aXRlbS5mb3JtUmVuZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgPyBpdGVtLmZvcm1SZW5kZXIocHJvcHMpXHJcbiAgICAgICAgICAgICAgICAgICAgOiBnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWY6IGl0ZW1SZWYsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cclxuICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZUZvcm1hdC5wdXNoKGl0ZW0ubmFtZSk7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgPENvbFxyXG4gICAgICAgICAgICAgICAgc3Bhbj17aXRlbS5zcGFuIHx8IDEyfVxyXG4gICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6IGl0ZW0uaGlkZSA/IFwibm9uZVwiIDogXCJibG9ja1wiIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbVxyXG4gICAgICAgICAgICAgICAgICBsYWJlbD17aXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICBydWxlcz17aXRlbS5ydWxlc31cclxuICAgICAgICAgICAgICAgICAgYWxsb3dDaGFycz17YWxsb3dDaGFyc31cclxuICAgICAgICAgICAgICAgICAgdHlwZT17aXRlbS5wcm9wcz8udHlwZX1cclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e2l0ZW0ucmVxdWlyZWR9XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHtpdGVtLmZvcm1SZW5kZXIgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5mb3JtUmVuZGVyKHByb3BzKVxyXG4gICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgIDxVcGxvYWRcclxuICAgICAgICAgICAgICAgICAgICAgIGZpbGVMaXN0PXt0aGlzLnN0YXRlLmZpbGVMaXN0W2l0ZW0ubmFtZV0gfHwgW119XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkxpc3RDaGFuZ2U9eyhsaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVMaXN0OiB7IC4uLmZpbGVMaXN0LCBbaXRlbS5uYW1lXTogbGlzdCB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdD17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93RG93bmxvYWRJY29uOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93UmVtb3ZlSWNvbjogbGFiZWwgIT09IFwi5p+l55yLXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXtpdGVtUmVmfVxyXG4gICAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGNoaWxkcmVuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogbGFiZWwgIT09IFwi5p+l55yLXCIgJiYgPEJ1dHRvbj7kuIrkvKDmlofku7Y8L0J1dHRvbj59XHJcbiAgICAgICAgICAgICAgICAgICAgPC9VcGxvYWQ+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cclxuICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KX1cclxuICAgICAgPC9Sb3c+XHJcbiAgICApO1xyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGZvcm1zID0gW10sXHJcbiAgICAgIHByb3BzID0ge30sXHJcbiAgICAgIGZvb3RlciA9IHRydWUsXHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgICBmb3JtVHlwZSA9IFwicGFnZVwiLFxyXG4gICAgICB0aXRsZSA9IFwiXCIsXHJcbiAgICAgIG1vZGFsUHJvcHM6IGRlZmF1bHRNb2RhbFByb3BzID0ge30sXHJcbiAgICAgIGRyYXdlclByb3BzOiBkZWZhdWx0RHJhd2VyUHJvcHMsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgbG9hZGluZywgbGFiZWwgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgc2VsZkJ1dHRvbnMgPSBbXSBhcyBhbnk7XHJcbiAgICBsZXQgc2VsZlBhbmVzID0gW10gYXMgYW55O1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcclxuICAgICAgICAgIGl0ZW0ubWFwKChjaGlsZCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY2hpbGQ/LnByb3BzPy5wYWdlVHlwZSA9PSBcImZvcm1QYW5lXCIpIHtcclxuICAgICAgICAgICAgICB0eXBlb2YgaXRlbSA9PSBcIm9iamVjdFwiICYmIHNlbGZQYW5lcy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0eXBlb2YgaXRlbSA9PSBcIm9iamVjdFwiICYmIHNlbGZCdXR0b25zLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKGl0ZW0/LnByb3BzPy5wYWdlVHlwZSA9PSBcImZvcm1QYW5lXCIpIHtcclxuICAgICAgICAgICAgdHlwZW9mIGl0ZW0gPT0gXCJvYmplY3RcIiAmJiBzZWxmUGFuZXMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHR5cGVvZiBpdGVtID09IFwib2JqZWN0XCIgJiYgc2VsZkJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICBjb25zdCB7IHByb3BzIH06IGFueSA9IGNoaWxkcmVuO1xyXG4gICAgICBpZiAocHJvcHM/LnBhZ2VUeXBlID09IFwiZm9ybVBhbmVcIikge1xyXG4gICAgICAgIHR5cGVvZiBjaGlsZHJlbiA9PSBcIm9iamVjdFwiICYmIHNlbGZQYW5lcy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0eXBlb2YgY2hpbGRyZW4gPT0gXCJvYmplY3RcIiAmJiBzZWxmQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IG1vZGFsUHJvcHMgPSB7XHJcbiAgICAgIHRpdGxlOiBsYWJlbCArIHRpdGxlLFxyXG4gICAgICBvbk9rOiB0aGlzLm9uU3VibWl0LmJpbmQodGhpcyksXHJcbiAgICAgIG9uQ2FuY2VsOiB0aGlzLmhpZGUuYmluZCh0aGlzKSxcclxuICAgICAgb2tCdXR0b25Qcm9wczogeyBsb2FkaW5nOiBsb2FkaW5nIH0sXHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogXCI1MHZ3XCIsXHJcbiAgICAgIGZvb3RlckJ1dHRvbjogc2VsZkJ1dHRvbnMsXHJcbiAgICAgIC4uLmRlZmF1bHRNb2RhbFByb3BzLFxyXG4gICAgfSBhcyBhbnk7XHJcblxyXG4gICAgbGV0IGRyYXdlclByb3BzID0ge1xyXG4gICAgICBvbk9rOiB0aGlzLm9uU3VibWl0LmJpbmQodGhpcyksXHJcbiAgICAgIG9uQ2xvc2U6IHRoaXMuaGlkZS5iaW5kKHRoaXMpLFxyXG4gICAgICB3aWR0aDogNjUwLFxyXG4gICAgICBmb290ZXJCdXR0b246IHNlbGZCdXR0b25zLFxyXG4gICAgICAuLi5kZWZhdWx0RHJhd2VyUHJvcHMsXHJcbiAgICB9IGFzIGFueTtcclxuICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgIG1vZGFsUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgICAgZHJhd2VyUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZVZhbHVlRm9ybWF0ID0ge307XHJcbiAgICB0aGlzLmRhdGVGb3JtYXQgPSB7fTtcclxuICAgIHRoaXMuZmlsZUZvcm1hdCA9IFtdO1xyXG4gICAgbGV0IG5ld0Zvcm1zT2JqID0ge30gYXMgYW55O1xyXG4gICAgbGV0IGZvcm1Hcm91cHMgPSBbXSBhcyBhbnk7XHJcbiAgICBsZXQgb3RoZXJHcnVwcyA9IFtdIGFzIGFueTtcclxuICAgIGxldCBzaG93Rm9ybXMgPSBbXSBhcyBhbnk7XHJcbiAgICAvL+WkhOeQhuihqOWNleaVsOaNrlxyXG4gICAgZm9ybXMubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGl0ZW0uc2hvdyAhPT0gZmFsc2UpIHtcclxuICAgICAgICBzaG93Rm9ybXMucHVzaChpdGVtKTtcclxuICAgICAgICBpZiAoaXRlbS5ncm91cE5hbWUgJiYgZm9ybUdyb3Vwcy5pbmRleE9mKGl0ZW0uZ3JvdXBOYW1lKSA8IDApIHtcclxuICAgICAgICAgIGZvcm1Hcm91cHMucHVzaChpdGVtLmdyb3VwTmFtZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICghaXRlbS5ncm91cE5hbWUpIHtcclxuICAgICAgICAgIG90aGVyR3J1cHMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKGZvcm1Hcm91cHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3JtR3JvdXBzLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgbGV0IGdyb3VwRm9ybXMgPSBbXSBhcyBhbnk7XHJcbiAgICAgICAgc2hvd0Zvcm1zLm1hcCgoZm9ybTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZm9ybS5ncm91cE5hbWUgPT0gaXRlbSkge1xyXG4gICAgICAgICAgICBncm91cEZvcm1zLnB1c2goZm9ybSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbmV3Rm9ybXNPYmpbaXRlbV0gPSBncm91cEZvcm1zO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKG90aGVyR3J1cHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIG5ld0Zvcm1zT2JqW1wibm9Hcm91cE5hbWVcIl0gPSBvdGhlckdydXBzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBQYW5lV2l0aG91dFBhZ2VUeXBlID0gKFBhbmUsIHByb3BzKSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgcGFnZVR5cGUsIC4uLmNsZWFuUHJvcHMgfSA9IHByb3BzO1xyXG4gICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChQYW5lLnR5cGUsIGNsZWFuUHJvcHMpO1xyXG4gICAgfTtcclxuICAgIC8v6Ieq5a6a5LmJ5oyJ6ZKuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8Rm9ybVxyXG4gICAgICAgIHJlZj17dGhpcy5mb3JtUmVmfVxyXG4gICAgICAgIHNob3dNb2RlbD17dGhpcy5wcm9wcy5mb3JtVHlwZSA9PSBcInBhZ2VcIiA/IG51bGwgOiB0aGlzLnByb3BzLmZvcm1UeXBlfVxyXG4gICAgICAgIG1vZGFsUHJvcHM9e3sgLi4ubW9kYWxQcm9wcyB9fVxyXG4gICAgICAgIGRyYXdlclByb3BzPXt7IC4uLmRyYXdlclByb3BzIH19XHJcbiAgICAgICAgLy8gbGFiZWxDb2w9e3sgZmxleDogXCIxMDBweFwiIH19XHJcbiAgICAgICAgLy8gd3JhcHBlckNvbD17eyBmbGV4OiBcIjE1dndcIiB9fVxyXG4gICAgICAgIG9uVmFsdWVzQ2hhbmdlPXsoY2hhbmdlZFZhbHVlcywgYWxsVmFsdWVzKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB7IG9uRm9ybUNoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICAgIG9uRm9ybUNoYW5nZSAmJiBvbkZvcm1DaGFuZ2UoY2hhbmdlZFZhbHVlcywgYWxsVmFsdWVzKTtcclxuICAgICAgICB9fVxyXG4gICAgICAgIGNoYW5nZVZhbGlkPXt0aGlzLnByb3BzLmNoYW5nZVZhbGlkfVxyXG4gICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tcGFnZVwiPlxyXG4gICAgICAgICAge2Zvcm1Hcm91cHMubGVuZ3RoID09IDAgPyAoXHJcbiAgICAgICAgICAgIHRoaXMucHJvcHMuZm9ybVR5cGUgIT09IFwicGFnZVwiID8gKFxyXG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyRm9ybShzaG93Rm9ybXMsIGxhYmVsKVxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tcGFuZVwiPlxyXG4gICAgICAgICAgICAgICAge3RoaXMucmVuZGVyRm9ybShzaG93Rm9ybXMsIGxhYmVsKX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgT2JqZWN0LmtleXMobmV3Rm9ybXNPYmopLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxkaXYga2V5PXtrZXl9IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXBhbmVcIj5cclxuICAgICAgICAgICAgICAgICAge2tleSAhPSBcIm5vR3JvdXBOYW1lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tdGl0bGVcIj57a2V5fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJGb3JtKG5ld0Zvcm1zT2JqW2tleV0sIGxhYmVsKX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKX1cclxuXHJcbiAgICAgICAgICB7c2VsZlBhbmVzLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgc2VsZlBhbmVzLm1hcCgoUGFuZSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtZm9ybS1wYW5lXCIga2V5PXtpbmRleH0+XHJcbiAgICAgICAgICAgICAgICAgIHtQYW5lV2l0aG91dFBhZ2VUeXBlKFBhbmUsIHsgLi4uUGFuZS5wcm9wcyB9KX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAge2Zvcm1UeXBlID09PSBcInBhZ2VcIiAmJiBmb290ZXIgPT0gdHJ1ZSAmJiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NscyhcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuZm9vdGVyQ2xhc3NOYW1lLFxyXG4gICAgICAgICAgICAgICAgXCJuc2MtZm9ybS1wYWdlLWZvb3RlclwiLFxyXG4gICAgICAgICAgICAgICAgW1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmZvb3RlckZpeGVkICE9PSBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgID8gXCJuc2MtZm9ybS1wYWdlLWZvb3Rlci1maXhlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgIFt0aGlzLnN0YXRlLndpZHRoID8gXCJuc2MtZm9ybS1wYWdlLWZvb3Rlci1maXhlZC13aWR0aFwiIDogXCJcIl1cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgey4uLnRoaXMucHJvcHMuY2FuY2VsQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uQ2FuY2VsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkNhbmNlbCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIOWPlua2iFxyXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgIHsuLi50aGlzLnByb3BzLm9rQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMub25TdWJtaXQoKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBsb2FkaW5nPXt0aGlzLnN0YXRlLmxvYWRpbmd9XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1wibnNjLWZvcm0tcGFnZS1mb290ZXItYnRuXCJ9XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAg5L+d5a2YXHJcbiAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAge3NlbGZCdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJuc2MtZm9ybS1wYWdlLWZvb3Rlci1idG5cIn0ga2V5PXtpbmRleH0+XHJcbiAgICAgICAgICAgICAgICAgICAge2l0ZW19XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge2Zvcm1UeXBlID09PSBcInBhZ2VcIiAmJiBmb290ZXIgIT09IHRydWUgJiYgdGhpcy5wcm9wcy5mb290ZXJ9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvRm9ybT5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBGb3JtUGFnZTtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxhQUFhLFFBQW1CLE9BQU87QUFDdkQsT0FBT0MsSUFBSSxNQUFNLGlCQUFpQjtBQUNsQyxTQUFrQkMsT0FBTyxRQUFRLGFBQWE7QUFDOUMsT0FBT0MsT0FBTyxNQUFNLG9CQUFvQjtBQUN4QyxPQUFPQyxHQUFHLE1BQU0scUJBQXFCO0FBQ3JDLE9BQU9DLEdBQUcsTUFBTSxxQkFBcUI7QUFDckMsU0FBU0MsVUFBVSxFQUFFQyxhQUFhLFFBQVEsbUJBQW1CO0FBQzdELE9BQU9DLEtBQUssTUFBTSxPQUFPO0FBQ3pCLE9BQU8scUJBQXFCO0FBQzVCLE9BQU9DLE1BQU0sTUFBTSxRQUFRO0FBQzNCLE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxHQUFHLE1BQU0sWUFBWTtBQUU1QixPQUFPQyxVQUFVLE1BQU0sYUFBYTtBQUdwQyxTQUFTQyxrQkFBa0IsUUFBUSxzQkFBc0I7QUFDekQsT0FBT0MsTUFBTSxNQUFNLGNBQWM7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
|