@projectcor/maia-components 2.11.65-2 → 2.11.65-21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/atoms/Chip/Chip.js +4 -3
- package/lib/components/atoms/Chip/styles.js +3 -3
- package/lib/components/atoms/MAIAInput/MAIAInput.js +26 -11
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +291 -43
- package/lib/components/molecules/ChatAIHome/styles.js +62 -25
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +20 -120
- package/lib/components/molecules/ChatAIMessages/newStyles.js +19 -9
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +213 -40
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +27 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +5 -6
- package/lib/components/molecules/ChatFooter/ChatFooter.js +24 -51
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +22 -7
- package/lib/components/molecules/ChatFooter/styles.js +4 -4
- package/lib/components/molecules/Sidebar/Sidebar.js +5 -5
- package/lib/constants/taskUrls.js +3 -1
- package/lib/hooks/index.js +2 -1
- package/lib/hooks/useChatManager/useChatManager.js +110 -62
- package/lib/hooks/useChatMessages/useChatMessages.js +20 -2
- package/lib/hooks/useContextPinPopover.js +8 -1
- package/lib/hooks/useEvent.js +2 -1
- package/lib/hooks/useFrequentlyAskedQuestions.js +12 -10
- package/lib/hooks/useFrequentlyUsedActions.js +5 -3
- package/lib/hooks/useRecentContexts.js +86 -0
- package/lib/lang/br/index.js +16 -2
- package/lib/lang/en/index.js +16 -2
- package/lib/lang/es/index.js +16 -2
- package/lib/lang/fr/index.js +16 -2
- package/lib/services/maia/Actions/getFrequentlyUsedActions.js +6 -3
- package/lib/services/maia/Agents/getAgents.js +170 -98
- package/lib/services/maia/Chats/getChatMessages.js +3 -1
- package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.js +6 -4
- package/lib/services/maia/RecentContexts/getRecentContexts.js +54 -0
- package/lib/services/maia/RecentContexts/index.js +6 -0
- package/lib/services/maia/index.js +4 -2
- package/lib/types/agent.js +1 -1
- package/lib/utils/agentDisplayName.js +9 -1
- package/lib/utils/entityLinkRender.js +132 -0
- package/lib/utils/renderContextMentions.js +3 -1
- package/package.json +1 -1
|
@@ -165,6 +165,7 @@ export var renderMentionLink = function renderMentionLink(href, children) {
|
|
|
165
165
|
return /*#__PURE__*/_jsx(SCTaskLink, {
|
|
166
166
|
href: taskUrl,
|
|
167
167
|
className: CONTEXT_MENTION_CHIP_CLASS,
|
|
168
|
+
"data-cor-link": "task",
|
|
168
169
|
"data-mention-type": type,
|
|
169
170
|
"data-mention-surface": "chat",
|
|
170
171
|
onClick: handleTaskClick,
|
|
@@ -289,6 +290,7 @@ var MentionChip = function MentionChip(_ref7) {
|
|
|
289
290
|
return /*#__PURE__*/_jsx(SCTaskLink, {
|
|
290
291
|
href: url !== null && url !== void 0 ? url : '#',
|
|
291
292
|
className: CONTEXT_MENTION_CHIP_CLASS,
|
|
293
|
+
"data-cor-link": "task",
|
|
292
294
|
"data-mention-type": "task",
|
|
293
295
|
"data-mention-surface": "chat",
|
|
294
296
|
onClick: handleClick,
|
|
@@ -385,4 +387,4 @@ export var renderTextWithMentions = function renderTextWithMentions(text) {
|
|
|
385
387
|
if (lastIdx < text.length) out.push(text.slice(lastIdx));
|
|
386
388
|
return out;
|
|
387
389
|
};
|
|
388
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyIsIk1FTlRJT05fQ0hJUF9DT0xPUlMiLCJNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkciLCJTbGFzaENvbW1hbmRDaGlwIiwiU0xBU0hfQ09NTUFORF9NQVJLRVJfUkVHRVgiLCJWSU9MRVRfSUFfQ09MT1JTIiwiU0NUYXNrTGluayIsImdldENvbnRleHRNZW50aW9uSWNvbiIsIm5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwiLCJvcGVuVGFza0luQ29yUGFuZWwiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJNRU5USU9OX01BUktFUl9SRUdFWCIsIk1BSUFfTUVOVElPTl9QUk9UT0NPTCIsIklOQ09NUExFVEVfTUVOVElPTl9NQVJLRVJfUkVHRVgiLCJJTkNPTVBMRVRFX1NMQVNIX01BUktFUl9SRUdFWCIsIkFMTE9XRURfVFlQRVMiLCJwYXJzZU1lbnRpb25Qcm90b2NvbEhyZWYiLCJocmVmIiwicmVzdCIsInNsaWNlIiwibGVuZ3RoIiwic2xhc2hJZHgiLCJpbmRleE9mIiwicmF3VHlwZSIsInJhd0lkIiwiaWQiLCJkZWNvZGVVUklDb21wb25lbnQiLCJfdW51c2VkIiwidHlwZSIsImluY2x1ZGVzIiwic2VyaWFsaXplTWVudGlvbiIsIm1lbnRpb24iLCJjb25jYXQiLCJsYWJlbCIsInRyYW5zZm9ybU1lbnRpb25NYXJrZXJzIiwidGV4dCIsInJlcGxhY2UiLCJfbSIsInNhZmVMYWJlbCIsIlN0cmluZyIsImVuY29kZVVSSUNvbXBvbmVudCIsIm1lbnRpb25DaGlsZHJlblRvTGFiZWwiLCJjaGlsZHJlbiIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsImMiLCJqb2luIiwic3BsaXRMYWJlbEZpcnN0V29yZCIsIm5vcm1hbGl6ZWQiLCJ0cmltIiwiZmlyc3RXb3JkIiwiZmlyc3RXaGl0ZXNwYWNlSWR4Iiwic2VhcmNoIiwiaW5saW5lTWVudGlvbkhvdmVyQ3NzIiwiaXNDbGlja2FibGUiLCJiZyIsIlNDSW5saW5lTWVudGlvbiIsInNwYW4iLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIl9yZWYiLCJfTUVOVElPTl9DSElQX0NPTE9SUyQiLCIkdHlwZSIsInVzZXIiLCJfcmVmMiIsIl9NRU5USU9OX0NISVBfQ09MT1JTJDIiLCJmZyIsIl9yZWYzIiwiJGlzQ2xpY2thYmxlIiwiX3JlZjQiLCJTQ0lubGluZU1lbnRpb25JY29uIiwiX3JlZjUiLCIkdGFzayIsIl9yZWY2IiwiU0NJbmxpbmVNZW50aW9uSWNvblJvdyIsIlNDSW5saW5lTWVudGlvbldvcmQiLCJyZW5kZXJNZW50aW9uTGluayIsInN0YXJ0c1dpdGgiLCJfcGFyc2VNZW50aW9uUHJvdG9jb2wiLCJpc1Rhc2siLCJpY29uU2l6ZSIsInRhc2tVcmwiLCJoYW5kbGVUYXNrQ2xpY2siLCJlIiwibWV0YUtleSIsImN0cmxLZXkiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsImhhbmRsZVRhc2tLZXlEb3duIiwia2V5IiwiY2xhc3NOYW1lIiwib25DbGljayIsIm9uS2V5RG93biIsImlzUHJvamVjdCIsInByb2plY3RVcmwiLCJzaG93SWNvbiIsIl9zcGxpdExhYmVsRmlyc3RXb3JkIiwiaGFuZGxlUHJvamVjdENsaWNrIiwid2luZG93Iiwib3BlbiIsInVuZGVmaW5lZCIsInJvbGUiLCJ0YWJJbmRleCIsInN0cmlwTWVudGlvbk1hcmtlcnMiLCJfdHlwZSIsIl9pZCIsImZvcm1hdENoYXRMaXN0VGl0bGVNZW50aW9ucyIsIndpdGhvdXRNZW50aW9ucyIsInNsYXNoUmVnZXgiLCJSZWdFeHAiLCJzb3VyY2UiLCJ3aXRob3V0U2xhc2giLCJ3aXRob3V0SW5jb21wbGV0ZVNsYXNoIiwiZ2V0TWVudGlvblVybCIsIk1lbnRpb25DaGlwIiwiX3JlZjciLCJub3JtYWxpemVkTGFiZWwiLCJ1cmwiLCJfc3BsaXRMYWJlbEZpcnN0V29yZDIiLCJoYW5kbGVDbGljayIsImhhbmRsZUtleURvd24iLCJoYXNJbmxpbmVNYXJrZXJzIiwiY29sbGVjdElubGluZU1hcmtlcnMiLCJtYXJrZXJzIiwibGFzdEluZGV4IiwibSIsImV4ZWMiLCJfbTIiLCJfbTMiLCJfc2xpY2VkVG9BcnJheSIsInB1c2giLCJraW5kIiwiaW5kZXgiLCJzIiwic29ydCIsImEiLCJiIiwicmVuZGVyVGV4dFdpdGhNZW50aW9ucyIsIm91dCIsImxhc3RJZHgiLCJmb3JFYWNoIiwibWFya2VyIiwiaW5saW5lIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3JlbmRlckNvbnRleHRNZW50aW9ucy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCBSZWFjdEVsZW1lbnQsIE1vdXNlRXZlbnQsIEtleWJvYXJkRXZlbnQgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBzdHlsZWQsIHsgY3NzIH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5pbXBvcnQgeyBDb250ZXh0RW50aXR5VHlwZSwgQ29udGV4dE1lbnRpb24sIENPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTIH0gZnJvbSAnLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQge1xuICBNRU5USU9OX0NISVBfQ09MT1JTLFxuICBNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkcsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvYXRvbXMvQ29udGV4dE1lbnRpb25DaGlwL0NvbnRleHRNZW50aW9uQ2hpcC5zdHlsZXMnXG5pbXBvcnQgeyBTbGFzaENvbW1hbmRDaGlwIH0gZnJvbSAnLi4vY29tcG9uZW50cy9hdG9tcy9TbGFzaENvbW1hbmRDaGlwJ1xuaW1wb3J0IHsgU0xBU0hfQ09NTUFORF9NQVJLRVJfUkVHRVggfSBmcm9tICcuL3NsYXNoQ29tbWFuZE1hcmtlcidcbmltcG9ydCB7IFZJT0xFVF9JQV9DT0xPUlMgfSBmcm9tICcuLi9zdHlsZXMvY29uZmlnJ1xuaW1wb3J0IHsgU0NUYXNrTGluayB9IGZyb20gJy4uL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU1lc3NhZ2VzL25ld1N0eWxlcydcbmltcG9ydCB7IGdldENvbnRleHRNZW50aW9uSWNvbiB9IGZyb20gJy4vY29udGV4dE1lbnRpb25JY29ucydcbmltcG9ydCB7IG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwgfSBmcm9tICcuL2NvbnRleHRNZW50aW9uTGFiZWwnXG5pbXBvcnQgeyBvcGVuVGFza0luQ29yUGFuZWwgfSBmcm9tICcuL29wZW5UYXNrSW5Db3JQYW5lbCdcblxuLyoqXG4gKiBGb3JtYXRvIGRlbCBtYXJjYWRvciBxdWUgdmlhamEgZW4gZWwgdGV4dG8gZGVsIG1lbnNhamU6XG4gKiAgIFtbbWVudGlvbjo8dHlwZT46PGlkPnw8bGFiZWw+XV1cbiAqXG4gKiBFbCBlZGl0b3IgbG8gZW1pdGUgY3VhbmRvIHNlcmlhbGl6YSBlbCBjb250ZW50ZWRpdGFibGUsIGVsIGJhY2tlbmQgbG9cbiAqIHBlcnNpc3RlIHRhbCBjdWFsIHkgYWwgcmVuZGVyaXphciBzZSB0cmFuc2Zvcm1hIGVuIHVuIGxpbmsgbWFya2Rvd24gY29uXG4gKiB1biBwcm90b2NvbG8gcHJvcGlvIHF1ZSBgQ3VzdG9tTGlua2AgaW50ZXJjZXB0YSB5IGRpYnVqYSBjb21vIHNwYW5cbiAqIGVzdGlsYWRvLlxuICpcbiAqIFBvciBzZXBhcmFkbywgbGEgbWV0YWRhdGEgYGNvbnRleHRfbWVzc2FnZWAgbGxldmEgbG9zIHZhbG9yZXMgbGltcGlvc1xuICogKGlkICsgbmFtZSkgcGFyYSBxdWUgZWwgYmFja2VuZCBwdWVkYSBpbnRlcnByZXRhciBsYXMgZW50aWRhZGVzIHNpblxuICogdGVuZXIgcXVlIHBhcnNlYXIgZWwgdGV4dG8uXG4gKi9cbi8qKlxuICogTGFiZWwgcHVlZGUgY29udGVuZXIgYF1gIChlajogXCJbRWR1Y2F0ZV1CbG9nIFBvc3QgLi4uXCIpLCBwb3IgZXNvXG4gKiBzZSBjYXB0dXJhIGRlIGZvcm1hIGxhenkgaGFzdGEgZWwgY2llcnJlIHJlYWwgYF1dYC5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fTUFSS0VSX1JFR0VYID0gL1xcW1xcW21lbnRpb246KGNsaWVudHxwcm9qZWN0fHRhc2t8dXNlcnxtY3ApOihbXnxcXF1dKylcXHwoW1xcc1xcU10qPylcXF1cXF0vZ1xuZXhwb3J0IGNvbnN0IE1BSUFfTUVOVElPTl9QUk9UT0NPTCA9ICdtYWlhLW1lbnRpb246Ly8nXG5jb25zdCBJTkNPTVBMRVRFX01FTlRJT05fTUFSS0VSX1JFR0VYID0gL1xcW1xcW21lbnRpb246W1xcc1xcU10qJC9cbmNvbnN0IElOQ09NUExFVEVfU0xBU0hfTUFSS0VSX1JFR0VYID0gL1xcW1xcW3NsYXNoX2NvbW1hbmQ6W158XFxdXStcXHwoW1xcc1xcU10qKSQvXG5cbmNvbnN0IEFMTE9XRURfVFlQRVM6IENvbnRleHRFbnRpdHlUeXBlW10gPSBbJ2NsaWVudCcsICdwcm9qZWN0JywgJ3Rhc2snLCAndXNlcicsICdtY3AnXVxuXG5jb25zdCBwYXJzZU1lbnRpb25Qcm90b2NvbEhyZWYgPSAoaHJlZjogc3RyaW5nKTogeyB0eXBlOiBDb250ZXh0RW50aXR5VHlwZTsgaWQ6IHN0cmluZyB9ID0+IHtcbiAgY29uc3QgcmVzdCA9IGhyZWYuc2xpY2UoTUFJQV9NRU5USU9OX1BST1RPQ09MLmxlbmd0aClcbiAgY29uc3Qgc2xhc2hJZHggPSByZXN0LmluZGV4T2YoJy8nKVxuICBjb25zdCByYXdUeXBlID0gc2xhc2hJZHggPj0gMCA/IHJlc3Quc2xpY2UoMCwgc2xhc2hJZHgpIDogcmVzdFxuICBjb25zdCByYXdJZCA9IHNsYXNoSWR4ID49IDAgPyByZXN0LnNsaWNlKHNsYXNoSWR4ICsgMSkgOiAnJ1xuICBsZXQgaWQgPSAnJ1xuICB0cnkge1xuICAgIGlkID0gcmF3SWQgPyBkZWNvZGVVUklDb21wb25lbnQocmF3SWQpIDogJydcbiAgfSBjYXRjaCB7XG4gICAgaWQgPSByYXdJZFxuICB9XG4gIGNvbnN0IHR5cGUgPSBBTExPV0VEX1RZUEVTLmluY2x1ZGVzKHJhd1R5cGUgYXMgQ29udGV4dEVudGl0eVR5cGUpID8gKHJhd1R5cGUgYXMgQ29udGV4dEVudGl0eVR5cGUpIDogJ3VzZXInXG4gIHJldHVybiB7IHR5cGUsIGlkIH1cbn1cblxuLyoqIEdlbmVyYSBlbCBtYXJjYWRvciBwYXJhIHVuIG1lbnRpb24gZGFkby4gTG8gdXNhIGVsIGVkaXRvciBhbCBzZXJpYWxpemFyLiAqL1xuZXhwb3J0IGNvbnN0IHNlcmlhbGl6ZU1lbnRpb24gPSAobWVudGlvbjogQ29udGV4dE1lbnRpb24pOiBzdHJpbmcgPT5cbiAgYFtbbWVudGlvbjoke21lbnRpb24udHlwZX06JHttZW50aW9uLmlkfXwke21lbnRpb24ubGFiZWx9XV1gXG5cbi8qKlxuICogQ29udmllcnRlIGNhZGEgYFtbbWVudGlvbjouLi5dXWAgZW4gdW4gbGluayBtYXJrZG93biBjb24gcHJvdG9jb2xvIHByb3Bpb1xuICogcGFyYSBxdWUgU3RyZWFtZG93biBsbyBlbWl0YSBjb21vIGA8YT5gIHkgYEN1c3RvbUxpbmtgIGxvIGludGVyY2VwdGUuXG4gKi9cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1NZW50aW9uTWFya2VycyA9ICh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBpZiAoIXRleHQpIHJldHVybiB0ZXh0XG4gIHJldHVybiB0ZXh0LnJlcGxhY2UoTUVOVElPTl9NQVJLRVJfUkVHRVgsIChfbSwgdHlwZSwgaWQsIGxhYmVsKSA9PiB7XG4gICAgY29uc3Qgc2FmZUxhYmVsID0gU3RyaW5nKGxhYmVsKS5yZXBsYWNlKC9bXFxcXFxcXV0vZywgJ1xcXFwkJicpXG4gICAgcmV0dXJuIGBbJHtzYWZlTGFiZWx9XSgke01BSUFfTUVOVElPTl9QUk9UT0NPTH0ke3R5cGV9LyR7ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhpZCkpfSlgXG4gIH0pXG59XG5cbmNvbnN0IG1lbnRpb25DaGlsZHJlblRvTGFiZWwgPSAoY2hpbGRyZW46IFJlYWN0Tm9kZSk6IHN0cmluZyA9PiB7XG4gIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnKSByZXR1cm4gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChjaGlsZHJlbilcbiAgaWYgKGNoaWxkcmVuID09IG51bGwgfHwgY2hpbGRyZW4gPT09IGZhbHNlKSByZXR1cm4gJydcbiAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwoY2hpbGRyZW4ubWFwKGMgPT4gKHR5cGVvZiBjID09PSAnc3RyaW5nJyA/IGMgOiAnJykpLmpvaW4oJycpKVxuICB9XG4gIHJldHVybiBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKFN0cmluZyhjaGlsZHJlbikpXG59XG5cbmNvbnN0IHNwbGl0TGFiZWxGaXJzdFdvcmQgPSAobGFiZWw6IHN0cmluZyk6IHsgZmlyc3RXb3JkOiBzdHJpbmc7IHJlc3Q6IHN0cmluZyB9ID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwobGFiZWwpLnRyaW0oKVxuICBpZiAoIW5vcm1hbGl6ZWQpIHJldHVybiB7IGZpcnN0V29yZDogJycsIHJlc3Q6ICcnIH1cbiAgY29uc3QgZmlyc3RXaGl0ZXNwYWNlSWR4ID0gbm9ybWFsaXplZC5zZWFyY2goL1xccy8pXG4gIGlmIChmaXJzdFdoaXRlc3BhY2VJZHggPCAwKSByZXR1cm4geyBmaXJzdFdvcmQ6IG5vcm1hbGl6ZWQsIHJlc3Q6ICcnIH1cbiAgcmV0dXJuIHtcbiAgICBmaXJzdFdvcmQ6IG5vcm1hbGl6ZWQuc2xpY2UoMCwgZmlyc3RXaGl0ZXNwYWNlSWR4KSxcbiAgICByZXN0OiBub3JtYWxpemVkLnNsaWNlKGZpcnN0V2hpdGVzcGFjZUlkeCksXG4gIH1cbn1cblxuY29uc3QgaW5saW5lTWVudGlvbkhvdmVyQ3NzID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlLCBpc0NsaWNrYWJsZT86IGJvb2xlYW4pID0+IHtcbiAgY29uc3QgYmcgPSB0eXBlID09PSAncHJvamVjdCcgPyBWSU9MRVRfSUFfQ09MT1JTWzEwMF0gOiBNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkdcbiAgcmV0dXJuIGNzc2BcbiAgICBiYWNrZ3JvdW5kOiAke2JnfTtcbiAgICBvcGFjaXR5OiAke2lzQ2xpY2thYmxlID8gMC45NSA6IDF9O1xuICBgXG59XG5cbi8qKiBTcGFuIGlubGluZSBlc3RpbGFkbyAobWVuY2lvbmVzIG5vLXRhc2sgZW4gY2hhdCkuICovXG5jb25zdCBTQ0lubGluZU1lbnRpb24gPSBzdHlsZWQuc3Bhbjx7ICR0eXBlOiBDb250ZXh0RW50aXR5VHlwZTsgJGlzQ2xpY2thYmxlPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogaW5saW5lO1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBtYXJnaW46IDAgMXB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LWZhbWlseSwgJ1dvcmsgU2FucycpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiAkeyh7ICR0eXBlIH0pID0+IChNRU5USU9OX0NISVBfQ09MT1JTWyR0eXBlXSA/PyBNRU5USU9OX0NISVBfQ09MT1JTLnVzZXIpLmJnfTtcbiAgY29sb3I6ICR7KHsgJHR5cGUgfSkgPT4gKE1FTlRJT05fQ0hJUF9DT0xPUlNbJHR5cGVdID8/IE1FTlRJT05fQ0hJUF9DT0xPUlMudXNlcikuZmd9O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICBjdXJzb3I6ICR7KHsgJGlzQ2xpY2thYmxlIH0pID0+ICgkaXNDbGlja2FibGUgPyAncG9pbnRlcicgOiAnZGVmYXVsdCcpfTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICY6aG92ZXIge1xuICAgICR7KHsgJHR5cGUsICRpc0NsaWNrYWJsZSB9KSA9PiBpbmxpbmVNZW50aW9uSG92ZXJDc3MoJHR5cGUsICRpc0NsaWNrYWJsZSl9XG4gIH1cbmBcblxuY29uc3QgU0NJbmxpbmVNZW50aW9uSWNvbiA9IHN0eWxlZC5zcGFuPHsgJHRhc2s/OiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogMnB4O1xuICB3aWR0aDogJHsoeyAkdGFzayB9KSA9PiAoJHRhc2sgPyAnMTZweCcgOiAnMTRweCcpfTtcbiAgaGVpZ2h0OiAkeyh7ICR0YXNrIH0pID0+ICgkdGFzayA/ICcxNnB4JyA6ICcxNHB4Jyl9O1xuYFxuXG5jb25zdCBTQ0lubGluZU1lbnRpb25JY29uUm93ID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG5gXG5cbmNvbnN0IFNDSW5saW5lTWVudGlvbldvcmQgPSBzdHlsZWQuc3BhbmBcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbmBcblxuLyoqXG4gKiBTaSBlbCBocmVmIGNvcnJlc3BvbmRlIGFsIHByb3RvY29sbyBkZSBtZW50aW9uLCBkZXZ1ZWx2ZSB1biBub2RvIGVzdGlsYWRvIHBvciB0aXBvLlxuICogTGFzIHRhcmVhcyB1c2FuIGA8YT5gIGNvbW8gbG9zIGVubGFjZXMgZGUgdGFyZWEgZGVsIGFnZW50ZSAoYC5oYXMtdGFzay1saW5rc2ApLlxuICovXG5leHBvcnQgY29uc3QgcmVuZGVyTWVudGlvbkxpbmsgPSAoaHJlZjogc3RyaW5nIHwgdW5kZWZpbmVkLCBjaGlsZHJlbjogUmVhY3ROb2RlKTogUmVhY3ROb2RlIHwgbnVsbCA9PiB7XG4gIGlmICghaHJlZiB8fCAhaHJlZi5zdGFydHNXaXRoKE1BSUFfTUVOVElPTl9QUk9UT0NPTCkpIHJldHVybiBudWxsXG4gIGNvbnN0IHsgdHlwZSwgaWQgfSA9IHBhcnNlTWVudGlvblByb3RvY29sSHJlZihocmVmKVxuICBjb25zdCBsYWJlbCA9IG1lbnRpb25DaGlsZHJlblRvTGFiZWwoY2hpbGRyZW4pXG4gIGNvbnN0IGlzVGFzayA9IHR5cGUgPT09ICd0YXNrJ1xuICBjb25zdCBpY29uU2l6ZSA9IGlzVGFzayA/IDE2IDogMTRcbiAgY29uc3QgdGFza1VybCA9IGAvdGFza3MvJHtpZH0vZGV0YWlsYFxuXG4gIGNvbnN0IGhhbmRsZVRhc2tDbGljayA9IChlOiBNb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLm1ldGFLZXkgfHwgZS5jdHJsS2V5KSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgb3BlblRhc2tJbkNvclBhbmVsKGlkLCAnZGV0YWlsJylcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVRhc2tLZXlEb3duID0gKGU6IEtleWJvYXJkRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKGUua2V5ICE9PSAnRW50ZXInICYmIGUua2V5ICE9PSAnICcpIHJldHVyblxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIG9wZW5UYXNrSW5Db3JQYW5lbChpZCwgJ2RldGFpbCcpXG4gIH1cblxuICBpZiAoaXNUYXNrKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ1Rhc2tMaW5rXG4gICAgICAgIGhyZWY9e3Rhc2tVcmx9XG4gICAgICAgIGNsYXNzTmFtZT17Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9XG4gICAgICAgIGRhdGEtbWVudGlvbi10eXBlPXt0eXBlfVxuICAgICAgICBkYXRhLW1lbnRpb24tc3VyZmFjZT1cImNoYXRcIlxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVUYXNrQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17aGFuZGxlVGFza0tleURvd259XG4gICAgICA+XG4gICAgICAgIHtsYWJlbH1cbiAgICAgIDwvU0NUYXNrTGluaz5cbiAgICApXG4gIH1cblxuICBjb25zdCBpc1Byb2plY3QgPSB0eXBlID09PSAncHJvamVjdCdcbiAgY29uc3QgcHJvamVjdFVybCA9IGlzUHJvamVjdCA/IGAvcHJvamVjdHMvJHtpZH0vZGFzaGJvYXJkYCA6IG51bGxcbiAgY29uc3Qgc2hvd0ljb24gPSAhaXNQcm9qZWN0XG4gIGNvbnN0IHsgZmlyc3RXb3JkLCByZXN0IH0gPSBzcGxpdExhYmVsRmlyc3RXb3JkKGxhYmVsKVxuXG4gIGNvbnN0IGhhbmRsZVByb2plY3RDbGljayA9IChlOiBNb3VzZUV2ZW50PEhUTUxTcGFuRWxlbWVudD4pID0+IHtcbiAgICBpZiAoIXByb2plY3RVcmwpIHJldHVyblxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICB3aW5kb3cub3Blbihwcm9qZWN0VXJsLCAnX2JsYW5rJylcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDSW5saW5lTWVudGlvblxuICAgICAgJHR5cGU9e3R5cGV9XG4gICAgICAkaXNDbGlja2FibGU9e2lzUHJvamVjdH1cbiAgICAgIGNsYXNzTmFtZT17Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9XG4gICAgICBkYXRhLW1lbnRpb24tdHlwZT17dHlwZX1cbiAgICAgIGRhdGEtbWVudGlvbi1zdXJmYWNlPVwiY2hhdFwiXG4gICAgICBvbkNsaWNrPXtpc1Byb2plY3QgPyBoYW5kbGVQcm9qZWN0Q2xpY2sgOiB1bmRlZmluZWR9XG4gICAgICByb2xlPXtpc1Byb2plY3QgPyAnYnV0dG9uJyA6IHVuZGVmaW5lZH1cbiAgICAgIHRhYkluZGV4PXtpc1Byb2plY3QgPyAwIDogdW5kZWZpbmVkfVxuICAgID5cbiAgICAgIHtzaG93SWNvbiA/IChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uSWNvblJvdz5cbiAgICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25JY29uICR0YXNrPXtpc1Rhc2t9PlxuICAgICAgICAgICAgICB7Z2V0Q29udGV4dE1lbnRpb25JY29uKHR5cGUsIE1FTlRJT05fQ0hJUF9DT0xPUlNbdHlwZV0uZmcsIGlkLCBpY29uU2l6ZSl9XG4gICAgICAgICAgICA8L1NDSW5saW5lTWVudGlvbkljb24+XG4gICAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uV29yZD57Zmlyc3RXb3JkfTwvU0NJbmxpbmVNZW50aW9uV29yZD5cbiAgICAgICAgICA8L1NDSW5saW5lTWVudGlvbkljb25Sb3c+XG4gICAgICAgICAge3Jlc3QgPyA8c3Bhbj57cmVzdH08L3NwYW4+IDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApIDogbnVsbH1cbiAgICAgIHshc2hvd0ljb24gPyBsYWJlbCA6IG51bGx9XG4gICAgPC9TQ0lubGluZU1lbnRpb24+XG4gIClcbn1cblxuLyoqIFF1aXRhIGxvcyBtYXJrZXJzIGRlbCB0ZXh0bywgZGVqYW5kbyBzb2xvIGBsYWJlbGAuIMOadGlsIHBhcmEgZmFsbGJhY2sgcGxhbm8uICovXG5leHBvcnQgY29uc3Qgc3RyaXBNZW50aW9uTWFya2VycyA9ICh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcgPT5cbiAgdGV4dC5yZXBsYWNlKE1FTlRJT05fTUFSS0VSX1JFR0VYLCAoX20sIF90eXBlLCBfaWQsIGxhYmVsKSA9PiBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKFN0cmluZyhsYWJlbCkpKVxuXG4vKipcbiAqIFTDrXR1bG9zIGRlIGNvbnZlcnNhY2nDs24gKHAuIGVqLiBgbGFzdF9xdWVzdGlvbmAgZGVyaXZhZG8gZGVsIHByaW1lciBtZW5zYWplKSBwdWVkZW5cbiAqIGluY2x1aXIgZWwgdGV4dG8gc2VyaWFsaXphZG8gYFtbbWVudGlvbjp0eXBlOmlkfGxhYmVsXV1gLiBQYXJhIHNpZGViYXIgeSBsaXN0YWRvcyxcbiAqIHJlZW1wbGF6YSBjYWRhIGJsb3F1ZSBwb3IgYGxhYmVsYCBlbiB0ZXh0byBwbGFubywgc2luIGVsIG1hcmNhZG9yIGNydWRvLlxuICovXG5leHBvcnQgY29uc3QgZm9ybWF0Q2hhdExpc3RUaXRsZU1lbnRpb25zID0gKHRleHQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcgPT4ge1xuICBpZiAodGV4dCA9PSBudWxsIHx8IHRleHQgPT09ICcnKSByZXR1cm4gdGV4dCA/PyAnJ1xuICBjb25zdCB3aXRob3V0TWVudGlvbnMgPSB0ZXh0LnJlcGxhY2UoTUVOVElPTl9NQVJLRVJfUkVHRVgsIChfbSwgX3R5cGUsIF9pZCwgbGFiZWwpID0+XG4gICAgbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChTdHJpbmcobGFiZWwpLnRyaW0oKSlcbiAgKVxuICBjb25zdCBzbGFzaFJlZ2V4ID0gbmV3IFJlZ0V4cChTTEFTSF9DT01NQU5EX01BUktFUl9SRUdFWC5zb3VyY2UsICdnJylcbiAgY29uc3Qgd2l0aG91dFNsYXNoID0gd2l0aG91dE1lbnRpb25zLnJlcGxhY2Uoc2xhc2hSZWdleCwgKF9tLCBfaWQsIGxhYmVsKSA9PiBgLyR7U3RyaW5nKGxhYmVsKS50cmltKCl9YClcbiAgY29uc3Qgd2l0aG91dEluY29tcGxldGVTbGFzaCA9IHdpdGhvdXRTbGFzaC5yZXBsYWNlKFxuICAgIElOQ09NUExFVEVfU0xBU0hfTUFSS0VSX1JFR0VYLFxuICAgIChfbSwgbGFiZWwpID0+IGAvJHtTdHJpbmcobGFiZWwpLnRyaW0oKX1gXG4gIClcbiAgcmV0dXJuIHdpdGhvdXRJbmNvbXBsZXRlU2xhc2gucmVwbGFjZShJTkNPTVBMRVRFX01FTlRJT05fTUFSS0VSX1JFR0VYLCAnJykudHJpbSgpXG59XG5cbi8qKiBHZW5lcmEgbGEgVVJMIGRlIG5hdmVnYWNpw7NuIHBhcmEgdW4gbWVudGlvbiBzZWfDum4gc3UgdGlwby4gKi9cbmNvbnN0IGdldE1lbnRpb25VcmwgPSAodHlwZTogQ29udGV4dEVudGl0eVR5cGUsIGlkOiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnY2xpZW50JzpcbiAgICAgIHJldHVybiBgL2NsaWVudHMvJHtpZH1gXG4gICAgY2FzZSAncHJvamVjdCc6XG4gICAgICByZXR1cm4gYC9wcm9qZWN0cy8ke2lkfS9kYXNoYm9hcmRgXG4gICAgY2FzZSAndGFzayc6XG4gICAgICByZXR1cm4gYC90YXNrcy8ke2lkfS9kZXRhaWxgXG4gICAgY2FzZSAndXNlcic6XG4gICAgICByZXR1cm4gbnVsbCAvLyBMb3MgdXNlcnMgbm8gc29uIGNsaWNrZWFibGVzXG4gICAgY2FzZSAnbWNwJzpcbiAgICAgIHJldHVybiBudWxsXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuY29uc3QgTWVudGlvbkNoaXAgPSAoeyB0eXBlLCBpZCwgbGFiZWwgfTogeyB0eXBlOiBDb250ZXh0RW50aXR5VHlwZTsgaWQ6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9KSA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRMYWJlbCA9IG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwobGFiZWwpXG4gIGNvbnN0IHVybCA9IGdldE1lbnRpb25VcmwodHlwZSwgaWQpXG4gIGNvbnN0IGlzQ2xpY2thYmxlID0gISF1cmxcbiAgY29uc3QgaXNUYXNrID0gdHlwZSA9PT0gJ3Rhc2snXG4gIGNvbnN0IGlzUHJvamVjdCA9IHR5cGUgPT09ICdwcm9qZWN0J1xuICBjb25zdCBzaG93SWNvbiA9ICFpc1Byb2plY3RcbiAgY29uc3QgaWNvblNpemUgPSBpc1Rhc2sgPyAxNiA6IDE0XG4gIGNvbnN0IHsgZmlyc3RXb3JkLCByZXN0IH0gPSBzcGxpdExhYmVsRmlyc3RXb3JkKG5vcm1hbGl6ZWRMYWJlbClcblxuICBjb25zdCBoYW5kbGVDbGljayA9IChlOiBNb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50IHwgSFRNTFNwYW5FbGVtZW50PikgPT4ge1xuICAgIGlmICghaXNDbGlja2FibGUgfHwgIXVybCkgcmV0dXJuXG4gICAgaWYgKHR5cGUgPT09ICd0YXNrJykge1xuICAgICAgaWYgKGUubWV0YUtleSB8fCBlLmN0cmxLZXkpIHJldHVyblxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICBvcGVuVGFza0luQ29yUGFuZWwoaWQsICdkZXRhaWwnKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpXG4gIH1cblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGU6IEtleWJvYXJkRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQgfCBIVE1MU3BhbkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKCFpc0NsaWNrYWJsZSB8fCB0eXBlICE9PSAndGFzaycpIHJldHVyblxuICAgIGlmIChlLmtleSAhPT0gJ0VudGVyJyAmJiBlLmtleSAhPT0gJyAnKSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBvcGVuVGFza0luQ29yUGFuZWwoaWQsICdkZXRhaWwnKVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICd0YXNrJykge1xuICAgIHJldHVybiAoXG4gICAgICA8U0NUYXNrTGlua1xuICAgICAgICBocmVmPXt1cmwgPz8gJyMnfVxuICAgICAgICBjbGFzc05hbWU9e0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVxuICAgICAgICBkYXRhLW1lbnRpb24tdHlwZT1cInRhc2tcIlxuICAgICAgICBkYXRhLW1lbnRpb24tc3VyZmFjZT1cImNoYXRcIlxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgPlxuICAgICAgICB7bm9ybWFsaXplZExhYmVsfVxuICAgICAgPC9TQ1Rhc2tMaW5rPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDSW5saW5lTWVudGlvblxuICAgICAgJHR5cGU9e3R5cGV9XG4gICAgICAkaXNDbGlja2FibGU9e2lzQ2xpY2thYmxlfVxuICAgICAgY2xhc3NOYW1lPXtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31cbiAgICAgIGRhdGEtbWVudGlvbi10eXBlPXt0eXBlfVxuICAgICAgZGF0YS1tZW50aW9uLXN1cmZhY2U9XCJjaGF0XCJcbiAgICAgIG9uQ2xpY2s9e2lzQ2xpY2thYmxlID8gaGFuZGxlQ2xpY2sgOiB1bmRlZmluZWR9XG4gICAgICByb2xlPXtpc0NsaWNrYWJsZSA/ICdidXR0b24nIDogdW5kZWZpbmVkfVxuICAgICAgdGFiSW5kZXg9e2lzQ2xpY2thYmxlID8gMCA6IHVuZGVmaW5lZH1cbiAgICA+XG4gICAgICB7c2hvd0ljb24gPyAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPFNDSW5saW5lTWVudGlvbkljb25Sb3c+XG4gICAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uSWNvbiAkdGFzaz17aXNUYXNrfT5cbiAgICAgICAgICAgICAge2dldENvbnRleHRNZW50aW9uSWNvbih0eXBlLCBNRU5USU9OX0NISVBfQ09MT1JTW3R5cGVdLmZnLCBpZCwgaWNvblNpemUpfVxuICAgICAgICAgICAgPC9TQ0lubGluZU1lbnRpb25JY29uPlxuICAgICAgICAgICAgPFNDSW5saW5lTWVudGlvbldvcmQ+e2ZpcnN0V29yZH08L1NDSW5saW5lTWVudGlvbldvcmQ+XG4gICAgICAgICAgPC9TQ0lubGluZU1lbnRpb25JY29uUm93PlxuICAgICAgICAgIHtyZXN0ID8gPHNwYW4+e3Jlc3R9PC9zcGFuPiA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7IXNob3dJY29uID8gbm9ybWFsaXplZExhYmVsIDogbnVsbH1cbiAgICA8L1NDSW5saW5lTWVudGlvbj5cbiAgKVxufVxuXG5leHBvcnQgY29uc3QgaGFzSW5saW5lTWFya2VycyA9ICh0ZXh0OiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgaWYgKCF0ZXh0KSByZXR1cm4gZmFsc2VcbiAgcmV0dXJuIHRleHQuaW5jbHVkZXMoJ1tbbWVudGlvbjonKSB8fCB0ZXh0LmluY2x1ZGVzKCdbW3NsYXNoX2NvbW1hbmQ6Jylcbn1cblxudHlwZSBJbmxpbmVNYXJrZXIgPVxuICB8IHsga2luZDogJ21lbnRpb24nOyBpbmRleDogbnVtYmVyOyBsZW5ndGg6IG51bWJlcjsgdHlwZTogQ29udGV4dEVudGl0eVR5cGU7IGlkOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfVxuICB8IHsga2luZDogJ3NsYXNoJzsgaW5kZXg6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXI7IGlkOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfVxuXG5jb25zdCBjb2xsZWN0SW5saW5lTWFya2VycyA9ICh0ZXh0OiBzdHJpbmcpOiBJbmxpbmVNYXJrZXJbXSA9PiB7XG4gIGNvbnN0IG1hcmtlcnM6IElubGluZU1hcmtlcltdID0gW11cblxuICBNRU5USU9OX01BUktFUl9SRUdFWC5sYXN0SW5kZXggPSAwXG4gIGxldCBtOiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsID0gTUVOVElPTl9NQVJLRVJfUkVHRVguZXhlYyh0ZXh0KVxuICB3aGlsZSAobSkge1xuICAgIGNvbnN0IFssIHJhd1R5cGUsIGlkLCBsYWJlbF0gPSBtXG4gICAgY29uc3QgdHlwZSA9IEFMTE9XRURfVFlQRVMuaW5jbHVkZXMocmF3VHlwZSBhcyBDb250ZXh0RW50aXR5VHlwZSkgPyAocmF3VHlwZSBhcyBDb250ZXh0RW50aXR5VHlwZSkgOiAndXNlcidcbiAgICBtYXJrZXJzLnB1c2goeyBraW5kOiAnbWVudGlvbicsIGluZGV4OiBtLmluZGV4LCBsZW5ndGg6IG1bMF0ubGVuZ3RoLCB0eXBlLCBpZCwgbGFiZWwgfSlcbiAgICBtID0gTUVOVElPTl9NQVJLRVJfUkVHRVguZXhlYyh0ZXh0KVxuICB9XG5cbiAgY29uc3Qgc2xhc2hSZWdleCA9IG5ldyBSZWdFeHAoU0xBU0hfQ09NTUFORF9NQVJLRVJfUkVHRVguc291cmNlLCAnZycpXG4gIGxldCBzOiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsID0gc2xhc2hSZWdleC5leGVjKHRleHQpXG4gIHdoaWxlIChzKSB7XG4gICAgbWFya2Vycy5wdXNoKHsga2luZDogJ3NsYXNoJywgaW5kZXg6IHMuaW5kZXgsIGxlbmd0aDogc1swXS5sZW5ndGgsIGlkOiBzWzFdLCBsYWJlbDogc1syXSB9KVxuICAgIHMgPSBzbGFzaFJlZ2V4LmV4ZWModGV4dClcbiAgfVxuXG4gIHJldHVybiBtYXJrZXJzLnNvcnQoKGEsIGIpID0+IGEuaW5kZXggLSBiLmluZGV4KVxufVxuXG5leHBvcnQgY29uc3QgcmVuZGVyVGV4dFdpdGhNZW50aW9ucyA9ICh0ZXh0OiBzdHJpbmcpOiBBcnJheTxzdHJpbmcgfCBSZWFjdEVsZW1lbnQ+ID0+IHtcbiAgaWYgKCF0ZXh0KSByZXR1cm4gW3RleHRdXG4gIGNvbnN0IG1hcmtlcnMgPSBjb2xsZWN0SW5saW5lTWFya2Vycyh0ZXh0KVxuICBpZiAobWFya2Vycy5sZW5ndGggPT09IDApIHJldHVybiBbdGV4dF1cblxuICBjb25zdCBvdXQ6IEFycmF5PHN0cmluZyB8IFJlYWN0RWxlbWVudD4gPSBbXVxuICBsZXQgbGFzdElkeCA9IDBcbiAgbWFya2Vycy5mb3JFYWNoKG1hcmtlciA9PiB7XG4gICAgaWYgKG1hcmtlci5pbmRleCA+IGxhc3RJZHgpIG91dC5wdXNoKHRleHQuc2xpY2UobGFzdElkeCwgbWFya2VyLmluZGV4KSlcbiAgICBpZiAobWFya2VyLmtpbmQgPT09ICdtZW50aW9uJykge1xuICAgICAgb3V0LnB1c2goXG4gICAgICAgIDxNZW50aW9uQ2hpcFxuICAgICAgICAgIGtleT17YG1lbnRpb24tJHttYXJrZXIuaW5kZXh9LSR7bWFya2VyLnR5cGV9LSR7bWFya2VyLmlkfWB9XG4gICAgICAgICAgdHlwZT17bWFya2VyLnR5cGV9XG4gICAgICAgICAgaWQ9e21hcmtlci5pZH1cbiAgICAgICAgICBsYWJlbD17bWFya2VyLmxhYmVsfVxuICAgICAgICAvPlxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXQucHVzaCg8U2xhc2hDb21tYW5kQ2hpcCBrZXk9e2BzbGFzaC0ke21hcmtlci5pbmRleH0tJHttYXJrZXIuaWR9YH0gbGFiZWw9e21hcmtlci5sYWJlbH0gaW5saW5lPXtmYWxzZX0gLz4pXG4gICAgfVxuICAgIGxhc3RJZHggPSBtYXJrZXIuaW5kZXggKyBtYXJrZXIubGVuZ3RoXG4gIH0pXG4gIGlmIChsYXN0SWR4IDwgdGV4dC5sZW5ndGgpIG91dC5wdXNoKHRleHQuc2xpY2UobGFzdElkeCkpXG4gIHJldHVybiBvdXRcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU9BLE1BQU0sSUFBSUMsR0FBRyxRQUFRLG1CQUFtQjtBQUMvQyxTQUE0Q0MsMEJBQTBCLFFBQVEseUJBQXlCO0FBQ3ZHLFNBQ0VDLG1CQUFtQixFQUNuQkMsOEJBQThCLFFBQ3pCLGtFQUFrRTtBQUN6RSxTQUFTQyxnQkFBZ0IsUUFBUSxzQ0FBc0M7QUFDdkUsU0FBU0MsMEJBQTBCLFFBQVEsc0JBQXNCO0FBQ2pFLFNBQVNDLGdCQUFnQixRQUFRLGtCQUFrQjtBQUNuRCxTQUFTQyxVQUFVLFFBQVEsa0RBQWtEO0FBQzdFLFNBQVNDLHFCQUFxQixRQUFRLHVCQUF1QjtBQUM3RCxTQUFTQyw0QkFBNEIsUUFBUSx1QkFBdUI7QUFDcEUsU0FBU0Msa0JBQWtCLFFBQVEsc0JBQXNCOztBQUV6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQSxFQUFBQyxRQUFB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
|
|
390
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyIsIk1FTlRJT05fQ0hJUF9DT0xPUlMiLCJNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkciLCJTbGFzaENvbW1hbmRDaGlwIiwiU0xBU0hfQ09NTUFORF9NQVJLRVJfUkVHRVgiLCJWSU9MRVRfSUFfQ09MT1JTIiwiU0NUYXNrTGluayIsImdldENvbnRleHRNZW50aW9uSWNvbiIsIm5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwiLCJvcGVuVGFza0luQ29yUGFuZWwiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJNRU5USU9OX01BUktFUl9SRUdFWCIsIk1BSUFfTUVOVElPTl9QUk9UT0NPTCIsIklOQ09NUExFVEVfTUVOVElPTl9NQVJLRVJfUkVHRVgiLCJJTkNPTVBMRVRFX1NMQVNIX01BUktFUl9SRUdFWCIsIkFMTE9XRURfVFlQRVMiLCJwYXJzZU1lbnRpb25Qcm90b2NvbEhyZWYiLCJocmVmIiwicmVzdCIsInNsaWNlIiwibGVuZ3RoIiwic2xhc2hJZHgiLCJpbmRleE9mIiwicmF3VHlwZSIsInJhd0lkIiwiaWQiLCJkZWNvZGVVUklDb21wb25lbnQiLCJfdW51c2VkIiwidHlwZSIsImluY2x1ZGVzIiwic2VyaWFsaXplTWVudGlvbiIsIm1lbnRpb24iLCJjb25jYXQiLCJsYWJlbCIsInRyYW5zZm9ybU1lbnRpb25NYXJrZXJzIiwidGV4dCIsInJlcGxhY2UiLCJfbSIsInNhZmVMYWJlbCIsIlN0cmluZyIsImVuY29kZVVSSUNvbXBvbmVudCIsIm1lbnRpb25DaGlsZHJlblRvTGFiZWwiLCJjaGlsZHJlbiIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsImMiLCJqb2luIiwic3BsaXRMYWJlbEZpcnN0V29yZCIsIm5vcm1hbGl6ZWQiLCJ0cmltIiwiZmlyc3RXb3JkIiwiZmlyc3RXaGl0ZXNwYWNlSWR4Iiwic2VhcmNoIiwiaW5saW5lTWVudGlvbkhvdmVyQ3NzIiwiaXNDbGlja2FibGUiLCJiZyIsIlNDSW5saW5lTWVudGlvbiIsInNwYW4iLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIl9yZWYiLCJfTUVOVElPTl9DSElQX0NPTE9SUyQiLCIkdHlwZSIsInVzZXIiLCJfcmVmMiIsIl9NRU5USU9OX0NISVBfQ09MT1JTJDIiLCJmZyIsIl9yZWYzIiwiJGlzQ2xpY2thYmxlIiwiX3JlZjQiLCJTQ0lubGluZU1lbnRpb25JY29uIiwiX3JlZjUiLCIkdGFzayIsIl9yZWY2IiwiU0NJbmxpbmVNZW50aW9uSWNvblJvdyIsIlNDSW5saW5lTWVudGlvbldvcmQiLCJyZW5kZXJNZW50aW9uTGluayIsInN0YXJ0c1dpdGgiLCJfcGFyc2VNZW50aW9uUHJvdG9jb2wiLCJpc1Rhc2siLCJpY29uU2l6ZSIsInRhc2tVcmwiLCJoYW5kbGVUYXNrQ2xpY2siLCJlIiwibWV0YUtleSIsImN0cmxLZXkiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsImhhbmRsZVRhc2tLZXlEb3duIiwia2V5IiwiY2xhc3NOYW1lIiwib25DbGljayIsIm9uS2V5RG93biIsImlzUHJvamVjdCIsInByb2plY3RVcmwiLCJzaG93SWNvbiIsIl9zcGxpdExhYmVsRmlyc3RXb3JkIiwiaGFuZGxlUHJvamVjdENsaWNrIiwid2luZG93Iiwib3BlbiIsInVuZGVmaW5lZCIsInJvbGUiLCJ0YWJJbmRleCIsInN0cmlwTWVudGlvbk1hcmtlcnMiLCJfdHlwZSIsIl9pZCIsImZvcm1hdENoYXRMaXN0VGl0bGVNZW50aW9ucyIsIndpdGhvdXRNZW50aW9ucyIsInNsYXNoUmVnZXgiLCJSZWdFeHAiLCJzb3VyY2UiLCJ3aXRob3V0U2xhc2giLCJ3aXRob3V0SW5jb21wbGV0ZVNsYXNoIiwiZ2V0TWVudGlvblVybCIsIk1lbnRpb25DaGlwIiwiX3JlZjciLCJub3JtYWxpemVkTGFiZWwiLCJ1cmwiLCJfc3BsaXRMYWJlbEZpcnN0V29yZDIiLCJoYW5kbGVDbGljayIsImhhbmRsZUtleURvd24iLCJoYXNJbmxpbmVNYXJrZXJzIiwiY29sbGVjdElubGluZU1hcmtlcnMiLCJtYXJrZXJzIiwibGFzdEluZGV4IiwibSIsImV4ZWMiLCJfbTIiLCJfbTMiLCJfc2xpY2VkVG9BcnJheSIsInB1c2giLCJraW5kIiwiaW5kZXgiLCJzIiwic29ydCIsImEiLCJiIiwicmVuZGVyVGV4dFdpdGhNZW50aW9ucyIsIm91dCIsImxhc3RJZHgiLCJmb3JFYWNoIiwibWFya2VyIiwiaW5saW5lIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3JlbmRlckNvbnRleHRNZW50aW9ucy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCBSZWFjdEVsZW1lbnQsIE1vdXNlRXZlbnQsIEtleWJvYXJkRXZlbnQgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBzdHlsZWQsIHsgY3NzIH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5pbXBvcnQgeyBDb250ZXh0RW50aXR5VHlwZSwgQ29udGV4dE1lbnRpb24sIENPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTIH0gZnJvbSAnLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQge1xuICBNRU5USU9OX0NISVBfQ09MT1JTLFxuICBNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkcsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvYXRvbXMvQ29udGV4dE1lbnRpb25DaGlwL0NvbnRleHRNZW50aW9uQ2hpcC5zdHlsZXMnXG5pbXBvcnQgeyBTbGFzaENvbW1hbmRDaGlwIH0gZnJvbSAnLi4vY29tcG9uZW50cy9hdG9tcy9TbGFzaENvbW1hbmRDaGlwJ1xuaW1wb3J0IHsgU0xBU0hfQ09NTUFORF9NQVJLRVJfUkVHRVggfSBmcm9tICcuL3NsYXNoQ29tbWFuZE1hcmtlcidcbmltcG9ydCB7IFZJT0xFVF9JQV9DT0xPUlMgfSBmcm9tICcuLi9zdHlsZXMvY29uZmlnJ1xuaW1wb3J0IHsgU0NUYXNrTGluayB9IGZyb20gJy4uL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU1lc3NhZ2VzL25ld1N0eWxlcydcbmltcG9ydCB7IGdldENvbnRleHRNZW50aW9uSWNvbiB9IGZyb20gJy4vY29udGV4dE1lbnRpb25JY29ucydcbmltcG9ydCB7IG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwgfSBmcm9tICcuL2NvbnRleHRNZW50aW9uTGFiZWwnXG5pbXBvcnQgeyBvcGVuVGFza0luQ29yUGFuZWwgfSBmcm9tICcuL29wZW5UYXNrSW5Db3JQYW5lbCdcblxuLyoqXG4gKiBGb3JtYXRvIGRlbCBtYXJjYWRvciBxdWUgdmlhamEgZW4gZWwgdGV4dG8gZGVsIG1lbnNhamU6XG4gKiAgIFtbbWVudGlvbjo8dHlwZT46PGlkPnw8bGFiZWw+XV1cbiAqXG4gKiBFbCBlZGl0b3IgbG8gZW1pdGUgY3VhbmRvIHNlcmlhbGl6YSBlbCBjb250ZW50ZWRpdGFibGUsIGVsIGJhY2tlbmQgbG9cbiAqIHBlcnNpc3RlIHRhbCBjdWFsIHkgYWwgcmVuZGVyaXphciBzZSB0cmFuc2Zvcm1hIGVuIHVuIGxpbmsgbWFya2Rvd24gY29uXG4gKiB1biBwcm90b2NvbG8gcHJvcGlvIHF1ZSBgQ3VzdG9tTGlua2AgaW50ZXJjZXB0YSB5IGRpYnVqYSBjb21vIHNwYW5cbiAqIGVzdGlsYWRvLlxuICpcbiAqIFBvciBzZXBhcmFkbywgbGEgbWV0YWRhdGEgYGNvbnRleHRfbWVzc2FnZWAgbGxldmEgbG9zIHZhbG9yZXMgbGltcGlvc1xuICogKGlkICsgbmFtZSkgcGFyYSBxdWUgZWwgYmFja2VuZCBwdWVkYSBpbnRlcnByZXRhciBsYXMgZW50aWRhZGVzIHNpblxuICogdGVuZXIgcXVlIHBhcnNlYXIgZWwgdGV4dG8uXG4gKi9cbi8qKlxuICogTGFiZWwgcHVlZGUgY29udGVuZXIgYF1gIChlajogXCJbRWR1Y2F0ZV1CbG9nIFBvc3QgLi4uXCIpLCBwb3IgZXNvXG4gKiBzZSBjYXB0dXJhIGRlIGZvcm1hIGxhenkgaGFzdGEgZWwgY2llcnJlIHJlYWwgYF1dYC5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fTUFSS0VSX1JFR0VYID0gL1xcW1xcW21lbnRpb246KGNsaWVudHxwcm9qZWN0fHRhc2t8dXNlcnxtY3ApOihbXnxcXF1dKylcXHwoW1xcc1xcU10qPylcXF1cXF0vZ1xuZXhwb3J0IGNvbnN0IE1BSUFfTUVOVElPTl9QUk9UT0NPTCA9ICdtYWlhLW1lbnRpb246Ly8nXG5jb25zdCBJTkNPTVBMRVRFX01FTlRJT05fTUFSS0VSX1JFR0VYID0gL1xcW1xcW21lbnRpb246W1xcc1xcU10qJC9cbmNvbnN0IElOQ09NUExFVEVfU0xBU0hfTUFSS0VSX1JFR0VYID0gL1xcW1xcW3NsYXNoX2NvbW1hbmQ6W158XFxdXStcXHwoW1xcc1xcU10qKSQvXG5cbmNvbnN0IEFMTE9XRURfVFlQRVM6IENvbnRleHRFbnRpdHlUeXBlW10gPSBbJ2NsaWVudCcsICdwcm9qZWN0JywgJ3Rhc2snLCAndXNlcicsICdtY3AnXVxuXG5jb25zdCBwYXJzZU1lbnRpb25Qcm90b2NvbEhyZWYgPSAoaHJlZjogc3RyaW5nKTogeyB0eXBlOiBDb250ZXh0RW50aXR5VHlwZTsgaWQ6IHN0cmluZyB9ID0+IHtcbiAgY29uc3QgcmVzdCA9IGhyZWYuc2xpY2UoTUFJQV9NRU5USU9OX1BST1RPQ09MLmxlbmd0aClcbiAgY29uc3Qgc2xhc2hJZHggPSByZXN0LmluZGV4T2YoJy8nKVxuICBjb25zdCByYXdUeXBlID0gc2xhc2hJZHggPj0gMCA/IHJlc3Quc2xpY2UoMCwgc2xhc2hJZHgpIDogcmVzdFxuICBjb25zdCByYXdJZCA9IHNsYXNoSWR4ID49IDAgPyByZXN0LnNsaWNlKHNsYXNoSWR4ICsgMSkgOiAnJ1xuICBsZXQgaWQgPSAnJ1xuICB0cnkge1xuICAgIGlkID0gcmF3SWQgPyBkZWNvZGVVUklDb21wb25lbnQocmF3SWQpIDogJydcbiAgfSBjYXRjaCB7XG4gICAgaWQgPSByYXdJZFxuICB9XG4gIGNvbnN0IHR5cGUgPSBBTExPV0VEX1RZUEVTLmluY2x1ZGVzKHJhd1R5cGUgYXMgQ29udGV4dEVudGl0eVR5cGUpID8gKHJhd1R5cGUgYXMgQ29udGV4dEVudGl0eVR5cGUpIDogJ3VzZXInXG4gIHJldHVybiB7IHR5cGUsIGlkIH1cbn1cblxuLyoqIEdlbmVyYSBlbCBtYXJjYWRvciBwYXJhIHVuIG1lbnRpb24gZGFkby4gTG8gdXNhIGVsIGVkaXRvciBhbCBzZXJpYWxpemFyLiAqL1xuZXhwb3J0IGNvbnN0IHNlcmlhbGl6ZU1lbnRpb24gPSAobWVudGlvbjogQ29udGV4dE1lbnRpb24pOiBzdHJpbmcgPT5cbiAgYFtbbWVudGlvbjoke21lbnRpb24udHlwZX06JHttZW50aW9uLmlkfXwke21lbnRpb24ubGFiZWx9XV1gXG5cbi8qKlxuICogQ29udmllcnRlIGNhZGEgYFtbbWVudGlvbjouLi5dXWAgZW4gdW4gbGluayBtYXJrZG93biBjb24gcHJvdG9jb2xvIHByb3Bpb1xuICogcGFyYSBxdWUgU3RyZWFtZG93biBsbyBlbWl0YSBjb21vIGA8YT5gIHkgYEN1c3RvbUxpbmtgIGxvIGludGVyY2VwdGUuXG4gKi9cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1NZW50aW9uTWFya2VycyA9ICh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBpZiAoIXRleHQpIHJldHVybiB0ZXh0XG4gIHJldHVybiB0ZXh0LnJlcGxhY2UoTUVOVElPTl9NQVJLRVJfUkVHRVgsIChfbSwgdHlwZSwgaWQsIGxhYmVsKSA9PiB7XG4gICAgY29uc3Qgc2FmZUxhYmVsID0gU3RyaW5nKGxhYmVsKS5yZXBsYWNlKC9bXFxcXFxcXV0vZywgJ1xcXFwkJicpXG4gICAgcmV0dXJuIGBbJHtzYWZlTGFiZWx9XSgke01BSUFfTUVOVElPTl9QUk9UT0NPTH0ke3R5cGV9LyR7ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhpZCkpfSlgXG4gIH0pXG59XG5cbmNvbnN0IG1lbnRpb25DaGlsZHJlblRvTGFiZWwgPSAoY2hpbGRyZW46IFJlYWN0Tm9kZSk6IHN0cmluZyA9PiB7XG4gIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnKSByZXR1cm4gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChjaGlsZHJlbilcbiAgaWYgKGNoaWxkcmVuID09IG51bGwgfHwgY2hpbGRyZW4gPT09IGZhbHNlKSByZXR1cm4gJydcbiAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwoY2hpbGRyZW4ubWFwKGMgPT4gKHR5cGVvZiBjID09PSAnc3RyaW5nJyA/IGMgOiAnJykpLmpvaW4oJycpKVxuICB9XG4gIHJldHVybiBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKFN0cmluZyhjaGlsZHJlbikpXG59XG5cbmNvbnN0IHNwbGl0TGFiZWxGaXJzdFdvcmQgPSAobGFiZWw6IHN0cmluZyk6IHsgZmlyc3RXb3JkOiBzdHJpbmc7IHJlc3Q6IHN0cmluZyB9ID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwobGFiZWwpLnRyaW0oKVxuICBpZiAoIW5vcm1hbGl6ZWQpIHJldHVybiB7IGZpcnN0V29yZDogJycsIHJlc3Q6ICcnIH1cbiAgY29uc3QgZmlyc3RXaGl0ZXNwYWNlSWR4ID0gbm9ybWFsaXplZC5zZWFyY2goL1xccy8pXG4gIGlmIChmaXJzdFdoaXRlc3BhY2VJZHggPCAwKSByZXR1cm4geyBmaXJzdFdvcmQ6IG5vcm1hbGl6ZWQsIHJlc3Q6ICcnIH1cbiAgcmV0dXJuIHtcbiAgICBmaXJzdFdvcmQ6IG5vcm1hbGl6ZWQuc2xpY2UoMCwgZmlyc3RXaGl0ZXNwYWNlSWR4KSxcbiAgICByZXN0OiBub3JtYWxpemVkLnNsaWNlKGZpcnN0V2hpdGVzcGFjZUlkeCksXG4gIH1cbn1cblxuY29uc3QgaW5saW5lTWVudGlvbkhvdmVyQ3NzID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlLCBpc0NsaWNrYWJsZT86IGJvb2xlYW4pID0+IHtcbiAgY29uc3QgYmcgPSB0eXBlID09PSAncHJvamVjdCcgPyBWSU9MRVRfSUFfQ09MT1JTWzEwMF0gOiBNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkdcbiAgcmV0dXJuIGNzc2BcbiAgICBiYWNrZ3JvdW5kOiAke2JnfTtcbiAgICBvcGFjaXR5OiAke2lzQ2xpY2thYmxlID8gMC45NSA6IDF9O1xuICBgXG59XG5cbi8qKiBTcGFuIGlubGluZSBlc3RpbGFkbyAobWVuY2lvbmVzIG5vLXRhc2sgZW4gY2hhdCkuICovXG5jb25zdCBTQ0lubGluZU1lbnRpb24gPSBzdHlsZWQuc3Bhbjx7ICR0eXBlOiBDb250ZXh0RW50aXR5VHlwZTsgJGlzQ2xpY2thYmxlPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogaW5saW5lO1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBtYXJnaW46IDAgMXB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LWZhbWlseSwgJ1dvcmsgU2FucycpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiAkeyh7ICR0eXBlIH0pID0+IChNRU5USU9OX0NISVBfQ09MT1JTWyR0eXBlXSA/PyBNRU5USU9OX0NISVBfQ09MT1JTLnVzZXIpLmJnfTtcbiAgY29sb3I6ICR7KHsgJHR5cGUgfSkgPT4gKE1FTlRJT05fQ0hJUF9DT0xPUlNbJHR5cGVdID8/IE1FTlRJT05fQ0hJUF9DT0xPUlMudXNlcikuZmd9O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICBjdXJzb3I6ICR7KHsgJGlzQ2xpY2thYmxlIH0pID0+ICgkaXNDbGlja2FibGUgPyAncG9pbnRlcicgOiAnZGVmYXVsdCcpfTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICY6aG92ZXIge1xuICAgICR7KHsgJHR5cGUsICRpc0NsaWNrYWJsZSB9KSA9PiBpbmxpbmVNZW50aW9uSG92ZXJDc3MoJHR5cGUsICRpc0NsaWNrYWJsZSl9XG4gIH1cbmBcblxuY29uc3QgU0NJbmxpbmVNZW50aW9uSWNvbiA9IHN0eWxlZC5zcGFuPHsgJHRhc2s/OiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogMnB4O1xuICB3aWR0aDogJHsoeyAkdGFzayB9KSA9PiAoJHRhc2sgPyAnMTZweCcgOiAnMTRweCcpfTtcbiAgaGVpZ2h0OiAkeyh7ICR0YXNrIH0pID0+ICgkdGFzayA/ICcxNnB4JyA6ICcxNHB4Jyl9O1xuYFxuXG5jb25zdCBTQ0lubGluZU1lbnRpb25JY29uUm93ID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG5gXG5cbmNvbnN0IFNDSW5saW5lTWVudGlvbldvcmQgPSBzdHlsZWQuc3BhbmBcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbmBcblxuLyoqXG4gKiBTaSBlbCBocmVmIGNvcnJlc3BvbmRlIGFsIHByb3RvY29sbyBkZSBtZW50aW9uLCBkZXZ1ZWx2ZSB1biBub2RvIGVzdGlsYWRvIHBvciB0aXBvLlxuICogTGFzIHRhcmVhcyB1c2FuIGA8YT5gIGNvbW8gbG9zIGVubGFjZXMgZGUgdGFyZWEgZGVsIGFnZW50ZSAoYC5oYXMtdGFzay1saW5rc2ApLlxuICovXG5leHBvcnQgY29uc3QgcmVuZGVyTWVudGlvbkxpbmsgPSAoaHJlZjogc3RyaW5nIHwgdW5kZWZpbmVkLCBjaGlsZHJlbjogUmVhY3ROb2RlKTogUmVhY3ROb2RlIHwgbnVsbCA9PiB7XG4gIGlmICghaHJlZiB8fCAhaHJlZi5zdGFydHNXaXRoKE1BSUFfTUVOVElPTl9QUk9UT0NPTCkpIHJldHVybiBudWxsXG4gIGNvbnN0IHsgdHlwZSwgaWQgfSA9IHBhcnNlTWVudGlvblByb3RvY29sSHJlZihocmVmKVxuICBjb25zdCBsYWJlbCA9IG1lbnRpb25DaGlsZHJlblRvTGFiZWwoY2hpbGRyZW4pXG4gIGNvbnN0IGlzVGFzayA9IHR5cGUgPT09ICd0YXNrJ1xuICBjb25zdCBpY29uU2l6ZSA9IGlzVGFzayA/IDE2IDogMTRcbiAgY29uc3QgdGFza1VybCA9IGAvdGFza3MvJHtpZH0vZGV0YWlsYFxuXG4gIGNvbnN0IGhhbmRsZVRhc2tDbGljayA9IChlOiBNb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLm1ldGFLZXkgfHwgZS5jdHJsS2V5KSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgb3BlblRhc2tJbkNvclBhbmVsKGlkLCAnZGV0YWlsJylcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVRhc2tLZXlEb3duID0gKGU6IEtleWJvYXJkRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKGUua2V5ICE9PSAnRW50ZXInICYmIGUua2V5ICE9PSAnICcpIHJldHVyblxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIG9wZW5UYXNrSW5Db3JQYW5lbChpZCwgJ2RldGFpbCcpXG4gIH1cblxuICBpZiAoaXNUYXNrKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ1Rhc2tMaW5rXG4gICAgICAgIGhyZWY9e3Rhc2tVcmx9XG4gICAgICAgIGNsYXNzTmFtZT17Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9XG4gICAgICAgIGRhdGEtY29yLWxpbms9XCJ0YXNrXCJcbiAgICAgICAgZGF0YS1tZW50aW9uLXR5cGU9e3R5cGV9XG4gICAgICAgIGRhdGEtbWVudGlvbi1zdXJmYWNlPVwiY2hhdFwiXG4gICAgICAgIG9uQ2xpY2s9e2hhbmRsZVRhc2tDbGlja31cbiAgICAgICAgb25LZXlEb3duPXtoYW5kbGVUYXNrS2V5RG93bn1cbiAgICAgID5cbiAgICAgICAge2xhYmVsfVxuICAgICAgPC9TQ1Rhc2tMaW5rPlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGlzUHJvamVjdCA9IHR5cGUgPT09ICdwcm9qZWN0J1xuICBjb25zdCBwcm9qZWN0VXJsID0gaXNQcm9qZWN0ID8gYC9wcm9qZWN0cy8ke2lkfS9kYXNoYm9hcmRgIDogbnVsbFxuICBjb25zdCBzaG93SWNvbiA9ICFpc1Byb2plY3RcbiAgY29uc3QgeyBmaXJzdFdvcmQsIHJlc3QgfSA9IHNwbGl0TGFiZWxGaXJzdFdvcmQobGFiZWwpXG5cbiAgY29uc3QgaGFuZGxlUHJvamVjdENsaWNrID0gKGU6IE1vdXNlRXZlbnQ8SFRNTFNwYW5FbGVtZW50PikgPT4ge1xuICAgIGlmICghcHJvamVjdFVybCkgcmV0dXJuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIHdpbmRvdy5vcGVuKHByb2plY3RVcmwsICdfYmxhbmsnKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NJbmxpbmVNZW50aW9uXG4gICAgICAkdHlwZT17dHlwZX1cbiAgICAgICRpc0NsaWNrYWJsZT17aXNQcm9qZWN0fVxuICAgICAgY2xhc3NOYW1lPXtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31cbiAgICAgIGRhdGEtbWVudGlvbi10eXBlPXt0eXBlfVxuICAgICAgZGF0YS1tZW50aW9uLXN1cmZhY2U9XCJjaGF0XCJcbiAgICAgIG9uQ2xpY2s9e2lzUHJvamVjdCA/IGhhbmRsZVByb2plY3RDbGljayA6IHVuZGVmaW5lZH1cbiAgICAgIHJvbGU9e2lzUHJvamVjdCA/ICdidXR0b24nIDogdW5kZWZpbmVkfVxuICAgICAgdGFiSW5kZXg9e2lzUHJvamVjdCA/IDAgOiB1bmRlZmluZWR9XG4gICAgPlxuICAgICAge3Nob3dJY29uID8gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25JY29uUm93PlxuICAgICAgICAgICAgPFNDSW5saW5lTWVudGlvbkljb24gJHRhc2s9e2lzVGFza30+XG4gICAgICAgICAgICAgIHtnZXRDb250ZXh0TWVudGlvbkljb24odHlwZSwgTUVOVElPTl9DSElQX0NPTE9SU1t0eXBlXS5mZywgaWQsIGljb25TaXplKX1cbiAgICAgICAgICAgIDwvU0NJbmxpbmVNZW50aW9uSWNvbj5cbiAgICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25Xb3JkPntmaXJzdFdvcmR9PC9TQ0lubGluZU1lbnRpb25Xb3JkPlxuICAgICAgICAgIDwvU0NJbmxpbmVNZW50aW9uSWNvblJvdz5cbiAgICAgICAgICB7cmVzdCA/IDxzcGFuPntyZXN0fTwvc3Bhbj4gOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICkgOiBudWxsfVxuICAgICAgeyFzaG93SWNvbiA/IGxhYmVsIDogbnVsbH1cbiAgICA8L1NDSW5saW5lTWVudGlvbj5cbiAgKVxufVxuXG4vKiogUXVpdGEgbG9zIG1hcmtlcnMgZGVsIHRleHRvLCBkZWphbmRvIHNvbG8gYGxhYmVsYC4gw5p0aWwgcGFyYSBmYWxsYmFjayBwbGFuby4gKi9cbmV4cG9ydCBjb25zdCBzdHJpcE1lbnRpb25NYXJrZXJzID0gKHRleHQ6IHN0cmluZyk6IHN0cmluZyA9PlxuICB0ZXh0LnJlcGxhY2UoTUVOVElPTl9NQVJLRVJfUkVHRVgsIChfbSwgX3R5cGUsIF9pZCwgbGFiZWwpID0+IG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwoU3RyaW5nKGxhYmVsKSkpXG5cbi8qKlxuICogVMOtdHVsb3MgZGUgY29udmVyc2FjacOzbiAocC4gZWouIGBsYXN0X3F1ZXN0aW9uYCBkZXJpdmFkbyBkZWwgcHJpbWVyIG1lbnNhamUpIHB1ZWRlblxuICogaW5jbHVpciBlbCB0ZXh0byBzZXJpYWxpemFkbyBgW1ttZW50aW9uOnR5cGU6aWR8bGFiZWxdXWAuIFBhcmEgc2lkZWJhciB5IGxpc3RhZG9zLFxuICogcmVlbXBsYXphIGNhZGEgYmxvcXVlIHBvciBgbGFiZWxgIGVuIHRleHRvIHBsYW5vLCBzaW4gZWwgbWFyY2Fkb3IgY3J1ZG8uXG4gKi9cbmV4cG9ydCBjb25zdCBmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMgPSAodGV4dDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyA9PiB7XG4gIGlmICh0ZXh0ID09IG51bGwgfHwgdGV4dCA9PT0gJycpIHJldHVybiB0ZXh0ID8/ICcnXG4gIGNvbnN0IHdpdGhvdXRNZW50aW9ucyA9IHRleHQucmVwbGFjZShNRU5USU9OX01BUktFUl9SRUdFWCwgKF9tLCBfdHlwZSwgX2lkLCBsYWJlbCkgPT5cbiAgICBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKFN0cmluZyhsYWJlbCkudHJpbSgpKVxuICApXG4gIGNvbnN0IHNsYXNoUmVnZXggPSBuZXcgUmVnRXhwKFNMQVNIX0NPTU1BTkRfTUFSS0VSX1JFR0VYLnNvdXJjZSwgJ2cnKVxuICBjb25zdCB3aXRob3V0U2xhc2ggPSB3aXRob3V0TWVudGlvbnMucmVwbGFjZShzbGFzaFJlZ2V4LCAoX20sIF9pZCwgbGFiZWwpID0+IGAvJHtTdHJpbmcobGFiZWwpLnRyaW0oKX1gKVxuICBjb25zdCB3aXRob3V0SW5jb21wbGV0ZVNsYXNoID0gd2l0aG91dFNsYXNoLnJlcGxhY2UoXG4gICAgSU5DT01QTEVURV9TTEFTSF9NQVJLRVJfUkVHRVgsXG4gICAgKF9tLCBsYWJlbCkgPT4gYC8ke1N0cmluZyhsYWJlbCkudHJpbSgpfWBcbiAgKVxuICByZXR1cm4gd2l0aG91dEluY29tcGxldGVTbGFzaC5yZXBsYWNlKElOQ09NUExFVEVfTUVOVElPTl9NQVJLRVJfUkVHRVgsICcnKS50cmltKClcbn1cblxuLyoqIEdlbmVyYSBsYSBVUkwgZGUgbmF2ZWdhY2nDs24gcGFyYSB1biBtZW50aW9uIHNlZ8O6biBzdSB0aXBvLiAqL1xuY29uc3QgZ2V0TWVudGlvblVybCA9ICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSwgaWQ6IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB8IG51bGwgPT4ge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdjbGllbnQnOlxuICAgICAgcmV0dXJuIGAvY2xpZW50cy8ke2lkfWBcbiAgICBjYXNlICdwcm9qZWN0JzpcbiAgICAgIHJldHVybiBgL3Byb2plY3RzLyR7aWR9L2Rhc2hib2FyZGBcbiAgICBjYXNlICd0YXNrJzpcbiAgICAgIHJldHVybiBgL3Rhc2tzLyR7aWR9L2RldGFpbGBcbiAgICBjYXNlICd1c2VyJzpcbiAgICAgIHJldHVybiBudWxsIC8vIExvcyB1c2VycyBubyBzb24gY2xpY2tlYWJsZXNcbiAgICBjYXNlICdtY3AnOlxuICAgICAgcmV0dXJuIG51bGxcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG51bGxcbiAgfVxufVxuXG5jb25zdCBNZW50aW9uQ2hpcCA9ICh7IHR5cGUsIGlkLCBsYWJlbCB9OiB7IHR5cGU6IENvbnRleHRFbnRpdHlUeXBlOyBpZDogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH0pID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZExhYmVsID0gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChsYWJlbClcbiAgY29uc3QgdXJsID0gZ2V0TWVudGlvblVybCh0eXBlLCBpZClcbiAgY29uc3QgaXNDbGlja2FibGUgPSAhIXVybFxuICBjb25zdCBpc1Rhc2sgPSB0eXBlID09PSAndGFzaydcbiAgY29uc3QgaXNQcm9qZWN0ID0gdHlwZSA9PT0gJ3Byb2plY3QnXG4gIGNvbnN0IHNob3dJY29uID0gIWlzUHJvamVjdFxuICBjb25zdCBpY29uU2l6ZSA9IGlzVGFzayA/IDE2IDogMTRcbiAgY29uc3QgeyBmaXJzdFdvcmQsIHJlc3QgfSA9IHNwbGl0TGFiZWxGaXJzdFdvcmQobm9ybWFsaXplZExhYmVsKVxuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKGU6IE1vdXNlRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQgfCBIVE1MU3BhbkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKCFpc0NsaWNrYWJsZSB8fCAhdXJsKSByZXR1cm5cbiAgICBpZiAodHlwZSA9PT0gJ3Rhc2snKSB7XG4gICAgICBpZiAoZS5tZXRhS2V5IHx8IGUuY3RybEtleSkgcmV0dXJuXG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgIG9wZW5UYXNrSW5Db3JQYW5lbChpZCwgJ2RldGFpbCcpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJylcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZTogS2V5Ym9hcmRFdmVudDxIVE1MQW5jaG9yRWxlbWVudCB8IEhUTUxTcGFuRWxlbWVudD4pID0+IHtcbiAgICBpZiAoIWlzQ2xpY2thYmxlIHx8IHR5cGUgIT09ICd0YXNrJykgcmV0dXJuXG4gICAgaWYgKGUua2V5ICE9PSAnRW50ZXInICYmIGUua2V5ICE9PSAnICcpIHJldHVyblxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIG9wZW5UYXNrSW5Db3JQYW5lbChpZCwgJ2RldGFpbCcpXG4gIH1cblxuICBpZiAodHlwZSA9PT0gJ3Rhc2snKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ1Rhc2tMaW5rXG4gICAgICAgIGhyZWY9e3VybCA/PyAnIyd9XG4gICAgICAgIGNsYXNzTmFtZT17Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9XG4gICAgICAgIGRhdGEtY29yLWxpbms9XCJ0YXNrXCJcbiAgICAgICAgZGF0YS1tZW50aW9uLXR5cGU9XCJ0YXNrXCJcbiAgICAgICAgZGF0YS1tZW50aW9uLXN1cmZhY2U9XCJjaGF0XCJcbiAgICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgID5cbiAgICAgICAge25vcm1hbGl6ZWRMYWJlbH1cbiAgICAgIDwvU0NUYXNrTGluaz5cbiAgICApXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ0lubGluZU1lbnRpb25cbiAgICAgICR0eXBlPXt0eXBlfVxuICAgICAgJGlzQ2xpY2thYmxlPXtpc0NsaWNrYWJsZX1cbiAgICAgIGNsYXNzTmFtZT17Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9XG4gICAgICBkYXRhLW1lbnRpb24tdHlwZT17dHlwZX1cbiAgICAgIGRhdGEtbWVudGlvbi1zdXJmYWNlPVwiY2hhdFwiXG4gICAgICBvbkNsaWNrPXtpc0NsaWNrYWJsZSA/IGhhbmRsZUNsaWNrIDogdW5kZWZpbmVkfVxuICAgICAgcm9sZT17aXNDbGlja2FibGUgPyAnYnV0dG9uJyA6IHVuZGVmaW5lZH1cbiAgICAgIHRhYkluZGV4PXtpc0NsaWNrYWJsZSA/IDAgOiB1bmRlZmluZWR9XG4gICAgPlxuICAgICAge3Nob3dJY29uID8gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25JY29uUm93PlxuICAgICAgICAgICAgPFNDSW5saW5lTWVudGlvbkljb24gJHRhc2s9e2lzVGFza30+XG4gICAgICAgICAgICAgIHtnZXRDb250ZXh0TWVudGlvbkljb24odHlwZSwgTUVOVElPTl9DSElQX0NPTE9SU1t0eXBlXS5mZywgaWQsIGljb25TaXplKX1cbiAgICAgICAgICAgIDwvU0NJbmxpbmVNZW50aW9uSWNvbj5cbiAgICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25Xb3JkPntmaXJzdFdvcmR9PC9TQ0lubGluZU1lbnRpb25Xb3JkPlxuICAgICAgICAgIDwvU0NJbmxpbmVNZW50aW9uSWNvblJvdz5cbiAgICAgICAgICB7cmVzdCA/IDxzcGFuPntyZXN0fTwvc3Bhbj4gOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICkgOiBudWxsfVxuICAgICAgeyFzaG93SWNvbiA/IG5vcm1hbGl6ZWRMYWJlbCA6IG51bGx9XG4gICAgPC9TQ0lubGluZU1lbnRpb24+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IGhhc0lubGluZU1hcmtlcnMgPSAodGV4dDogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIGlmICghdGV4dCkgcmV0dXJuIGZhbHNlXG4gIHJldHVybiB0ZXh0LmluY2x1ZGVzKCdbW21lbnRpb246JykgfHwgdGV4dC5pbmNsdWRlcygnW1tzbGFzaF9jb21tYW5kOicpXG59XG5cbnR5cGUgSW5saW5lTWFya2VyID1cbiAgfCB7IGtpbmQ6ICdtZW50aW9uJzsgaW5kZXg6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXI7IHR5cGU6IENvbnRleHRFbnRpdHlUeXBlOyBpZDogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1cbiAgfCB7IGtpbmQ6ICdzbGFzaCc7IGluZGV4OiBudW1iZXI7IGxlbmd0aDogbnVtYmVyOyBpZDogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1cblxuY29uc3QgY29sbGVjdElubGluZU1hcmtlcnMgPSAodGV4dDogc3RyaW5nKTogSW5saW5lTWFya2VyW10gPT4ge1xuICBjb25zdCBtYXJrZXJzOiBJbmxpbmVNYXJrZXJbXSA9IFtdXG5cbiAgTUVOVElPTl9NQVJLRVJfUkVHRVgubGFzdEluZGV4ID0gMFxuICBsZXQgbTogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IE1FTlRJT05fTUFSS0VSX1JFR0VYLmV4ZWModGV4dClcbiAgd2hpbGUgKG0pIHtcbiAgICBjb25zdCBbLCByYXdUeXBlLCBpZCwgbGFiZWxdID0gbVxuICAgIGNvbnN0IHR5cGUgPSBBTExPV0VEX1RZUEVTLmluY2x1ZGVzKHJhd1R5cGUgYXMgQ29udGV4dEVudGl0eVR5cGUpID8gKHJhd1R5cGUgYXMgQ29udGV4dEVudGl0eVR5cGUpIDogJ3VzZXInXG4gICAgbWFya2Vycy5wdXNoKHsga2luZDogJ21lbnRpb24nLCBpbmRleDogbS5pbmRleCwgbGVuZ3RoOiBtWzBdLmxlbmd0aCwgdHlwZSwgaWQsIGxhYmVsIH0pXG4gICAgbSA9IE1FTlRJT05fTUFSS0VSX1JFR0VYLmV4ZWModGV4dClcbiAgfVxuXG4gIGNvbnN0IHNsYXNoUmVnZXggPSBuZXcgUmVnRXhwKFNMQVNIX0NPTU1BTkRfTUFSS0VSX1JFR0VYLnNvdXJjZSwgJ2cnKVxuICBsZXQgczogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IHNsYXNoUmVnZXguZXhlYyh0ZXh0KVxuICB3aGlsZSAocykge1xuICAgIG1hcmtlcnMucHVzaCh7IGtpbmQ6ICdzbGFzaCcsIGluZGV4OiBzLmluZGV4LCBsZW5ndGg6IHNbMF0ubGVuZ3RoLCBpZDogc1sxXSwgbGFiZWw6IHNbMl0gfSlcbiAgICBzID0gc2xhc2hSZWdleC5leGVjKHRleHQpXG4gIH1cblxuICByZXR1cm4gbWFya2Vycy5zb3J0KChhLCBiKSA9PiBhLmluZGV4IC0gYi5pbmRleClcbn1cblxuZXhwb3J0IGNvbnN0IHJlbmRlclRleHRXaXRoTWVudGlvbnMgPSAodGV4dDogc3RyaW5nKTogQXJyYXk8c3RyaW5nIHwgUmVhY3RFbGVtZW50PiA9PiB7XG4gIGlmICghdGV4dCkgcmV0dXJuIFt0ZXh0XVxuICBjb25zdCBtYXJrZXJzID0gY29sbGVjdElubGluZU1hcmtlcnModGV4dClcbiAgaWYgKG1hcmtlcnMubGVuZ3RoID09PSAwKSByZXR1cm4gW3RleHRdXG5cbiAgY29uc3Qgb3V0OiBBcnJheTxzdHJpbmcgfCBSZWFjdEVsZW1lbnQ+ID0gW11cbiAgbGV0IGxhc3RJZHggPSAwXG4gIG1hcmtlcnMuZm9yRWFjaChtYXJrZXIgPT4ge1xuICAgIGlmIChtYXJrZXIuaW5kZXggPiBsYXN0SWR4KSBvdXQucHVzaCh0ZXh0LnNsaWNlKGxhc3RJZHgsIG1hcmtlci5pbmRleCkpXG4gICAgaWYgKG1hcmtlci5raW5kID09PSAnbWVudGlvbicpIHtcbiAgICAgIG91dC5wdXNoKFxuICAgICAgICA8TWVudGlvbkNoaXBcbiAgICAgICAgICBrZXk9e2BtZW50aW9uLSR7bWFya2VyLmluZGV4fS0ke21hcmtlci50eXBlfS0ke21hcmtlci5pZH1gfVxuICAgICAgICAgIHR5cGU9e21hcmtlci50eXBlfVxuICAgICAgICAgIGlkPXttYXJrZXIuaWR9XG4gICAgICAgICAgbGFiZWw9e21hcmtlci5sYWJlbH1cbiAgICAgICAgLz5cbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0LnB1c2goPFNsYXNoQ29tbWFuZENoaXAga2V5PXtgc2xhc2gtJHttYXJrZXIuaW5kZXh9LSR7bWFya2VyLmlkfWB9IGxhYmVsPXttYXJrZXIubGFiZWx9IGlubGluZT17ZmFsc2V9IC8+KVxuICAgIH1cbiAgICBsYXN0SWR4ID0gbWFya2VyLmluZGV4ICsgbWFya2VyLmxlbmd0aFxuICB9KVxuICBpZiAobGFzdElkeCA8IHRleHQubGVuZ3RoKSBvdXQucHVzaCh0ZXh0LnNsaWNlKGxhc3RJZHgpKVxuICByZXR1cm4gb3V0XG59XG4iXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPQSxNQUFNLElBQUlDLEdBQUcsUUFBUSxtQkFBbUI7QUFDL0MsU0FBNENDLDBCQUEwQixRQUFRLHlCQUF5QjtBQUN2RyxTQUNFQyxtQkFBbUIsRUFDbkJDLDhCQUE4QixRQUN6QixrRUFBa0U7QUFDekUsU0FBU0MsZ0JBQWdCLFFBQVEsc0NBQXNDO0FBQ3ZFLFNBQVNDLDBCQUEwQixRQUFRLHNCQUFzQjtBQUNqRSxTQUFTQyxnQkFBZ0IsUUFBUSxrQkFBa0I7QUFDbkQsU0FBU0MsVUFBVSxRQUFRLGtEQUFrRDtBQUM3RSxTQUFTQyxxQkFBcUIsUUFBUSx1QkFBdUI7QUFDN0QsU0FBU0MsNEJBQTRCLFFBQVEsdUJBQXVCO0FBQ3BFLFNBQVNDLGtCQUFrQixRQUFRLHNCQUFzQjs7QUFFekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QUFDQSxJQUFJLENBQUM7RUFDeEIsSUFBTTBGLE9BQU8sR0FBR0Qsb0JBQW9CLENBQUN6RixJQUFJLENBQUM7RUFDMUMsSUFBSTBGLE9BQU8sQ0FBQ3pHLE1BQU0sS0FBSyxDQUFDLEVBQUUsT0FBTyxDQUFDZSxJQUFJLENBQUM7RUFFdkMsSUFBTXlHLEdBQWlDLEdBQUcsRUFBRTtFQUM1QyxJQUFJQyxPQUFPLEdBQUcsQ0FBQztFQUNmaEIsT0FBTyxDQUFDaUIsT0FBTyxDQUFDLFVBQUFDLE1BQU0sRUFBSTtJQUN4QixJQUFJQSxNQUFNLENBQUNULEtBQUssR0FBR08sT0FBTyxFQUFFRCxHQUFHLENBQUNSLElBQUksQ0FBQ2pHLElBQUksQ0FBQ2hCLEtBQUssQ0FBQzBILE9BQU8sRUFBRUUsTUFBTSxDQUFDVCxLQUFLLENBQUMsQ0FBQztJQUN2RSxJQUFJUyxNQUFNLENBQUNWLElBQUksS0FBSyxTQUFTLEVBQUU7TUFDN0JPLEdBQUcsQ0FBQ1IsSUFBSSxjQUNOOUgsSUFBQSxDQUFDOEcsV0FBVztRQUVWeEYsSUFBSSxFQUFFbUgsTUFBTSxDQUFDbkgsSUFBSztRQUNsQkgsRUFBRSxFQUFFc0gsTUFBTSxDQUFDdEgsRUFBRztRQUNkUSxLQUFLLEVBQUU4RyxNQUFNLENBQUM5RztNQUFNLGNBQUFELE1BQUEsQ0FISitHLE1BQU0sQ0FBQ1QsS0FBSyxPQUFBdEcsTUFBQSxDQUFJK0csTUFBTSxDQUFDbkgsSUFBSSxPQUFBSSxNQUFBLENBQUkrRyxNQUFNLENBQUN0SCxFQUFFLENBSXpELENBQ0gsQ0FBQztJQUNILENBQUMsTUFBTTtNQUNMbUgsR0FBRyxDQUFDUixJQUFJLGNBQUM5SCxJQUFBLENBQUNSLGdCQUFnQjtRQUE0Q21DLEtBQUssRUFBRThHLE1BQU0sQ0FBQzlHLEtBQU07UUFBQytHLE1BQU0sRUFBRTtNQUFNLFlBQUFoSCxNQUFBLENBQWhFK0csTUFBTSxDQUFDVCxLQUFLLE9BQUF0RyxNQUFBLENBQUkrRyxNQUFNLENBQUN0SCxFQUFFLENBQXlDLENBQUMsQ0FBQztJQUMvRztJQUNBb0gsT0FBTyxHQUFHRSxNQUFNLENBQUNULEtBQUssR0FBR1MsTUFBTSxDQUFDM0gsTUFBTTtFQUN4QyxDQUFDLENBQUM7RUFDRixJQUFJeUgsT0FBTyxHQUFHMUcsSUFBSSxDQUFDZixNQUFNLEVBQUV3SCxHQUFHLENBQUNSLElBQUksQ0FBQ2pHLElBQUksQ0FBQ2hCLEtBQUssQ0FBQzBILE9BQU8sQ0FBQyxDQUFDO0VBQ3hELE9BQU9ELEdBQUc7QUFDWixDQUFDIiwiaWdub3JlTGlzdCI6W119
|