@projectcor/maia-components 2.11.103-0 → 2.11.103-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -143,6 +143,8 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
143
143
  return 'homeMenu.contextHome.subtitleCollaborator';
144
144
  }, [isHeaderHoursAgentHome, isHeaderManagerHoursHome, user.role_id]);
145
145
  var isContextHomeStep = isHeaderHome && hasPinnedContext;
146
+ // Header paso 2 (FAQs/FUAs con contexto) y homes de sección comparten layout: sin isologo, texto a la izquierda.
147
+ var isLeftAlignedOrchestratorHome = isSectionOrchestratorHome || isContextHomeStep;
146
148
  var allowedRecentContextTypes = useMemo(function () {
147
149
  if (isHeaderManagerHoursHome) return getAllowedRecentContextTypes(user.role_id);
148
150
  if (isHeaderTaskContextHome && isManagerRole(user.role_id)) return getAllowedRecentContextTypes(user.role_id);
@@ -490,11 +492,11 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
490
492
  })]
491
493
  });
492
494
  }
493
- var contentAlignStart = isPlannerHome || isHeaderTaskContextHome || isSectionOrchestratorHome;
495
+ var contentAlignStart = isPlannerHome || isHeaderTaskContextHome || isLeftAlignedOrchestratorHome;
494
496
  return /*#__PURE__*/_jsxs(SCCAIHomeMaiaHeaderStack, {
495
497
  $noGap: !isRecentContextsStep && !isPlannerHome && !greeting,
496
498
  $align: contentAlignStart ? 'start' : 'center',
497
- children: [!isPlannerHome && !isHeaderTaskContextHome && !isSectionOrchestratorHome && /*#__PURE__*/_jsx(SCCAIHomeIconContainer, {
499
+ children: [!isPlannerHome && !isHeaderTaskContextHome && !isLeftAlignedOrchestratorHome && /*#__PURE__*/_jsx(SCCAIHomeIconContainer, {
498
500
  children: /*#__PURE__*/_jsx(SCCAIHomeLogoWrapper, {
499
501
  children: /*#__PURE__*/_jsx(MAIAIsologo, {})
500
502
  })
@@ -525,26 +527,26 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
525
527
  })]
526
528
  }), !isPlannerHome && isRecentContextsStep && !isHeaderTaskContextHome && /*#__PURE__*/_jsxs(_Fragment, {
527
529
  children: [/*#__PURE__*/_jsx(SCCAIHomeTitle, {
528
- $align: isSectionOrchestratorHome ? 'start' : undefined,
530
+ $align: isLeftAlignedOrchestratorHome ? 'start' : undefined,
529
531
  children: t('homeMenu.contextHome.greeting', {
530
532
  name: user.firstName
531
533
  })
532
534
  }), /*#__PURE__*/_jsx(SCCAIHomeSubtitle, {
533
- $align: isSectionOrchestratorHome ? 'start' : undefined,
535
+ $align: isLeftAlignedOrchestratorHome ? 'start' : undefined,
534
536
  children: t(isCollaboratorRole(user.role_id) ? 'homeMenu.contextHome.subtitleCollaborator' : 'homeMenu.contextHome.subtitle')
535
537
  })]
536
538
  }), !isPlannerHome && !isRecentContextsStep && greeting && /*#__PURE__*/_jsx(SCCAIHomeGreeting, {
537
- $align: isSectionOrchestratorHome ? 'start' : undefined,
538
- $size: isSectionOrchestratorHome ? 'md' : 'lg',
539
+ $align: isLeftAlignedOrchestratorHome ? 'start' : undefined,
540
+ $size: isLeftAlignedOrchestratorHome ? 'md' : 'lg',
539
541
  children: greeting
540
542
  })]
541
543
  });
542
544
  };
543
- var fixedHomeContentWidth = isHeaderTaskContextHome || isSectionOrchestratorHome ? MAIA_HEADER_COLLABORATOR_HOME_CONTENT_WIDTH_PX : undefined;
544
- var contentAlignStart = isPlannerHome || isHeaderTaskContextHome || isSectionOrchestratorHome;
545
+ var fixedHomeContentWidth = isHeaderTaskContextHome || isLeftAlignedOrchestratorHome ? MAIA_HEADER_COLLABORATOR_HOME_CONTENT_WIDTH_PX : undefined;
546
+ var contentAlignStart = isPlannerHome || isHeaderTaskContextHome || isLeftAlignedOrchestratorHome;
545
547
  return /*#__PURE__*/_jsxs(SCCAIHomeContainer, {
546
548
  showFAQs: showFAQs,
547
- $alignStart: isSectionOrchestratorHome,
549
+ $alignStart: isLeftAlignedOrchestratorHome,
548
550
  children: [homeScrollableLayout && /*#__PURE__*/_jsx(SCCAIHomeGradientTop, {
549
551
  $show: showTopGradient
550
552
  }), /*#__PURE__*/_jsx(SCCAIHomeContent, {
@@ -553,16 +555,16 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
553
555
  $isAgentView: !isMAIA,
554
556
  $floatingCustomCenter: floatingCustomCenter,
555
557
  $centerVertically: isPlannerHome,
556
- $alignStart: isSectionOrchestratorHome,
558
+ $alignStart: isLeftAlignedOrchestratorHome,
557
559
  $fixedContentWidth: fixedHomeContentWidth,
558
560
  children: /*#__PURE__*/_jsxs(SCCAIHomeContentInner, {
559
561
  showFAQs: homeScrollableLayout,
560
562
  $isAgentView: !isMAIA,
561
563
  $floatingCustomCenter: floatingCustomCenter,
562
564
  $centerVertically: isPlannerHome,
563
- $alignStart: isHeaderTaskContextHome || isSectionOrchestratorHome,
565
+ $alignStart: isHeaderTaskContextHome || isLeftAlignedOrchestratorHome,
564
566
  $headerCollaboratorHome: isHeaderTaskContextHome,
565
- $sectionOrchestratorHome: isSectionOrchestratorHome,
567
+ $sectionOrchestratorHome: isLeftAlignedOrchestratorHome,
566
568
  children: [/*#__PURE__*/_jsxs(SCCAIHomeHeader, {
567
569
  $gap: isMAIA && section !== 'project' ? '8px' : '20px',
568
570
  $maxWidth: isMAIA ? '100%' : '380px',
@@ -588,7 +590,7 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
588
590
  })]
589
591
  }), showDynamicSection && /*#__PURE__*/_jsxs(SCCAIHomeDynamicSection, {
590
592
  $grow: isMaiaker,
591
- $alignStart: isHeaderTaskContextHome || isSectionOrchestratorHome,
593
+ $alignStart: isHeaderTaskContextHome || isLeftAlignedOrchestratorHome,
592
594
  children: [shouldShowPlannerFuasLoading ? /*#__PURE__*/_jsx(FrequentlyUsedActions, {
593
595
  variant: "planner",
594
596
  onStartChat: handleHomeStartChat,
@@ -632,4 +634,4 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
632
634
  })]
633
635
  });
634
636
  };
635
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsImZsdXNoU3luYyIsIlRvb2x0aXAiLCJMaXN0Q2hlY2tsaXN0IiwidXNlVCIsIkVWRU5UUyIsInVzZUV2ZW50IiwiU0NDQUlIb21lQ29udGFpbmVyIiwiU0NDQUlIb21lQ29udGVudCIsIlNDQ0FJSG9tZUNvbnRlbnRJbm5lciIsIlNDQ0FJSG9tZUdyYWRpZW50VG9wIiwiU0NDQUlIb21lR3JhZGllbnRCb3R0b20iLCJTQ0NBSUhvbWVIZWFkZXIiLCJTQ0NBSUhvbWVHcmVldGluZyIsIlNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lciIsIlNDQ0FJSG9tZUFnZW50SW5mbyIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5IiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50IiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZSIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24iLCJTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCIsIlNDQ0FJSG9tZUludHJvZHVjdGlvbiIsIlNDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lciIsIlNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQiLCJTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZSIsIlNDQ0FJSG9tZUljb25Db250YWluZXIiLCJTQ0NBSUhvbWVMb2dvV3JhcHBlciIsIlNDQ0FJSG9tZU1haWFIZWFkZXJTdGFjayIsIlNDQ0FJSG9tZVRpdGxlIiwiU0NDQUlIb21lVGl0bGVCbG9jayIsIlNDQ0FJSG9tZVN1YnRpdGxlIiwiU0NDQUlIb21lRHluYW1pY1NlY3Rpb24iLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0cyIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzTGlzdCIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvbkhlYWRlciIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvblRpdGxlIiwiU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uU3VidGl0bGUiLCJTQ0NBSUhvbWVDb2xsYWJvcmF0b3JTZWN0aW9uIiwiU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGwiLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbEljb24iLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFRleHQiLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFNrZWxldG9uIiwiTUFJQV9IRUFERVJfQ09MTEFCT1JBVE9SX0hPTUVfQ09OVEVOVF9XSURUSF9QWCIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VVc2VyIiwiQ09SVXNlclJvbGUiLCJpc0NvbGxhYm9yYXRvclJvbGUiLCJpc01hbmFnZXJSb2xlIiwidXNlUmVzaXplTGlzdGVuZXIiLCJnZXRDb250ZXh0TWVudGlvbkljb24iLCJvcmNoZXN0cmF0b3JIYXNIb3Vyc1N1YmFnZW50IiwidmFsaWRhdGVJc01haWEiLCJpc01haWFrZXJBZ2VudCIsIkZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyIsIkZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsInVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsInVzZUZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyIsInVzZVJlY2VudENvbnRleHRzIiwiTUFJQUlzb2xvZ28iLCJUZW1wbGF0ZUdyYWRpZW50SWNvbiIsIkNoYXRBSUhvbWVNYWlha2VyIiwic2VsZWN0TWFuYWdlckhvdXJzSG9tZUZ1YXMiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJGcmVxdWVudFF1ZXN0aW9ucyIsIlJFQ0VOVF9DT05URVhUU19MSU1JVCIsIlJFQ0VOVF9DT05URVhUX0lDT05fQ09MT1IiLCJSRUNFTlRfQ09OVEVYVF9TS0VMRVRPTl9LRVlTIiwiUmVjZW50Q29udGV4dFBpbGwiLCJfcmVmIiwiY29udGV4dCIsImxhYmVsIiwib25DbGljayIsIl9yZWYkZnVsbFdpZHRoIiwiZnVsbFdpZHRoIiwidGV4dFJlZiIsIl91c2VSZXNpemVMaXN0ZW5lciIsInNob3dUb29sdGlwIiwidHlwZSIsIiRmdWxsV2lkdGgiLCJjaGlsZHJlbiIsImNvbG9yIiwid2lkdGgiLCJoZWlnaHQiLCJ1bmRlZmluZWQiLCJyZWYiLCJ0aXRsZSIsInBhcnNlTnVtZXJpY0lkIiwidmFsdWUiLCJwYXJzZWQiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsImdldEFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXMiLCJyb2xlSWQiLCJub3JtYWxpemVkUm9sZUlkIiwiQ0xFVkVMIiwiRElSRUNUT1IiLCJQUk9KRUNUX01BTkFHRVIiLCJTZXQiLCJDaGF0QUlIb21lIiwiX3JlZjIiLCJoYW5kbGVycyIsIm9uU3RhcnRDaGF0IiwiZXhwYW5kZWQiLCJmbG9hdGluZyIsIl91c2VUIiwidCIsImkxOG4iLCJldmVudCIsInVzZXIiLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50Iiwic2VjdGlvbiIsImNsaWVudCIsInByb2plY3QiLCJ0YXNrIiwiY2hpcHNQcm9qZWN0Iiwic2V0Q2xpZW50Iiwic2V0UHJvamVjdCIsInNldFRhc2siLCJzZXRDaGlwc1Byb2plY3QiLCJpc01BSUEiLCJmbG9hdGluZ0N1c3RvbUNlbnRlciIsImxhbmciLCJsYW5ndWFnZSIsInN1bW1hcnlQcm9qZWN0QWNjZXNzIiwid2luZG93IiwiU3RyaW5nIiwiTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MiLCJ0b0xvd2VyQ2FzZSIsIm1haWFQcm9qZWN0U3VtbWFyeUFjY2VzcyIsImZhcXNBY2Nlc3MiLCJzaG93UHJvamVjdFN1bW1hcnkiLCJpc01haWFrZXIiLCJpc0hlYWRlckhvbWUiLCJpc09yY2hlc3RyYXRvciIsImlzUGxhbm5lckhvbWUiLCJpc1NlY3Rpb25PcmNoZXN0cmF0b3JIb21lIiwiaGFzSG91cnNTdWJhZ2VudCIsImhhc1Bpbm5lZENvbnRleHQiLCJpZCIsInByb2plY3RJZCIsImlzUmVjZW50Q29udGV4dHNTdGVwIiwiaXNIZWFkZXJUYXNrQ29udGV4dEhvbWUiLCJyb2xlX2lkIiwiaXNIZWFkZXJIb3Vyc0FnZW50SG9tZSIsImlzSGVhZGVyTWFuYWdlckhvdXJzSG9tZSIsImhlYWRlclRhc2tDb250ZXh0U3VidGl0bGVLZXkiLCJpc0NvbnRleHRIb21lU3RlcCIsImFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXMiLCJfdXNlUmVjZW50Q29udGV4dHMiLCJlbmFibGVkIiwibGltaXQiLCJmZXRjaGVkUmVjZW50Q29udGV4dHMiLCJjb250ZXh0cyIsInJlY2VudENvbnRleHRzTG9hZGluZyIsImxvYWRpbmciLCJyZWNlbnRDb250ZXh0cyIsImZpbHRlciIsImhhcyIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNlbGVjdGVkQ29udGV4dCIsInNldFNlbGVjdGVkQ29udGV4dCIsImFjdGl2ZUNvbnRleHQiLCJuYW1lIiwicHJvamVjdE5hbWUiLCJwaW5uZWRFbnRpdHlUeXBlIiwiaXNUYXNrQ29udGV4dCIsImlzRnVhc09ubHlIb21lIiwiZnVhc1NlY3Rpb24iLCJyZWFsTGlzdHNBZ2VudElkIiwicmVhbExpc3RzRW50aXR5VHlwZSIsIl9hY3RpdmVDb250ZXh0JHR5cGUiLCJfdXNlRnJlcXVlbnRseVVzZWRBY3QiLCJhZ2VudEZ1YXMiLCJhY3Rpb25zIiwiZnVhc0xvYWRpbmciLCJfdXNlRnJlcXVlbnRseVVzZWRBY3QyIiwiY29sbGFib3JhdG9yUGxhbm5lckZ1YXMiLCJjb2xsYWJvcmF0b3JQbGFubmVyRnVhc0xvYWRpbmciLCJfdXNlRnJlcXVlbnRseVVzZWRBY3QzIiwibWFuYWdlckhvbWVGdWFzUmF3IiwibWFuYWdlckhvbWVGdWFzTG9hZGluZyIsImhlYWRlckhvdXJzRnVhcyIsImhlYWRlckhvdXJzRnVhc0xvYWRpbmciLCJfdXNlRnJlcXVlbnRseUFza2VkUXUiLCJhZ2VudEZhcXMiLCJmYXFzIiwiZmFxc0xvYWRpbmciLCJoYW5kbGVHZXRGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMiLCJmYXFzRmV0Y2hSZWYiLCJfZmFxc0ZldGNoUmVmJGN1cnJlbnQiLCJjdXJyZW50S2V5IiwiY29uY2F0IiwibGFzdEtleSIsImN1cnJlbnQiLCJhZ2VudElkIiwiZW50aXR5VHlwZSIsImZ1YXMiLCJmYXFzQXJlTG9hZGluZyIsImZ1YXNBcmVMb2FkaW5nIiwic2hvd1JlY2VudENvbnRleHRzQmxvY2siLCJsZW5ndGgiLCJzaG91bGRTaG93RmFxcyIsInNob3VsZFNob3dGdWFzIiwic2hvdWxkU2hvd1BsYW5uZXJGdWFzTG9hZGluZyIsInNob3VsZFNob3dQbGFubmVyRnVhc0NvbnRlbnQiLCJzaG91bGRTaG93UGxhbm5lckZ1YXMiLCJzaG93UHJvamVjdFN1bW1hcnlDYXJkIiwiZW50aXR5Iiwic2hvd0ZBUXMiLCJob21lU2Nyb2xsYWJsZUxheW91dCIsInNob3dEeW5hbWljU2VjdGlvbiIsImNvbnRlbnRDb250YWluZXJSZWYiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNob3dUb3BHcmFkaWVudCIsInNldFNob3dUb3BHcmFkaWVudCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2Iiwic2hvd0JvdHRvbUdyYWRpZW50Iiwic2V0U2hvd0JvdHRvbUdyYWRpZW50IiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJpc1Njcm9sbGluZyIsInNldElzU2Nyb2xsaW5nIiwic2Nyb2xsVGltZW91dFJlZiIsImdyZWV0aW5nIiwiaW50cm8iLCJpbnRyb2R1Y3Rpb24iLCJBcnJheSIsImlzQXJyYXkiLCJNYXRoIiwiZmxvb3IiLCJyYW5kb20iLCJoYW5kbGVTZWxlY3RSZWNlbnRDb250ZXh0Iiwib3JkZXIiLCJfY29udGV4dCRwYXJlbnRzIiwiX2NvbnRleHQkcGFyZW50czIiLCJfY29udGV4dCRwYXJlbnRzMyIsIl9jb250ZXh0JHBhcmVudHM0IiwiYWlDaGF0Q29udGV4dFNlbGVjdGVkIiwiY29udGV4dElkIiwiY2xpZW50SWQiLCJwYXJlbnRzIiwiY2xpZW50X2lkIiwicHJvamVjdF9pZCIsImNsaWVudE5hbWUiLCJjbGllbnRfbmFtZSIsInByb2plY3RfbmFtZSIsIl9vYmplY3RTcHJlYWQiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJkb2N1bWVudCIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsImhhbmRsZUhvbWVTdGFydENoYXQiLCJtZXNzYWdlIiwiYXR0YWNobWVudHMiLCJmYXFJZCIsImFnZW50U3VnZ2VzdGlvbklkIiwibWVudGlvbnMiLCJmdWFJZCIsInJlbmRlclJlY2VudENvbnRleHRzIiwiJGZpeGVkQ29udGVudFdpZHRoIiwiJGNvbnRlbnRHYXAiLCIkZmx1c2hQaWxscyIsIm1hcCIsImtleSIsImluZGV4IiwidHJpbSIsImNoZWNrU2Nyb2xsIiwiY29udGFpbmVyIiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiaXNTY3JvbGxhYmxlIiwiaXNBdFRvcCIsImlzQXRCb3R0b20iLCJjbGVhclRpbWVvdXQiLCJzZXRUaW1lb3V0IiwiYWRkRXZlbnRMaXN0ZW5lciIsInRpbWVvdXRJZCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZW5kZXJIZWFkZXJDb250ZW50IiwiX2FnZW50JGNyZWF0ZWRfYnkiLCJfYWdlbnQkY3JlYXRlZF9ieTIiLCJlbW9qaSIsImNyZWF0ZWRfYnkiLCJpc19kZWxldGVkIiwiY29udGVudEFsaWduU3RhcnQiLCIkbm9HYXAiLCIkYWxpZ24iLCIkc2l6ZSIsImZpcnN0TmFtZSIsIiRjb2xsYWJvcmF0b3JIb21lIiwiZml4ZWRIb21lQ29udGVudFdpZHRoIiwiJGFsaWduU3RhcnQiLCIkc2hvdyIsIiRpc0FnZW50VmlldyIsIiRmbG9hdGluZ0N1c3RvbUNlbnRlciIsIiRjZW50ZXJWZXJ0aWNhbGx5IiwiJGhlYWRlckNvbGxhYm9yYXRvckhvbWUiLCIkc2VjdGlvbk9yY2hlc3RyYXRvckhvbWUiLCIkZ2FwIiwiJG1heFdpZHRoIiwicHJvamVjdFN1bW1hcnkiLCIkZ3JvdyIsInZhcmlhbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJSG9tZS9DaGF0QUlIb21lLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9mdW5jdGlvbi1jb21wb25lbnQtZGVmaW5pdGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBmbHVzaFN5bmMgfSBmcm9tICdyZWFjdC1kb20nXG5cbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IExpc3RDaGVja2xpc3QgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9MaXN0Q2hlY2tsaXN0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5cbmltcG9ydCB7IG9wdGlvbnMgfSBmcm9tICcuLi9DaGF0QUlNb2RhbC9jb25zdGFudHMnXG5cbmltcG9ydCB7XG4gIFNDQ0FJSG9tZUNvbnRhaW5lcixcbiAgU0NDQUlIb21lQ29udGVudCxcbiAgU0NDQUlIb21lQ29udGVudElubmVyLFxuICBTQ0NBSUhvbWVHcmFkaWVudFRvcCxcbiAgU0NDQUlIb21lR3JhZGllbnRCb3R0b20sXG4gIFNDQ0FJSG9tZUhlYWRlcixcbiAgU0NDQUlIb21lR3JlZXRpbmcsXG4gIFNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcixcbiAgU0NDQUlIb21lQWdlbnRJbmZvLFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeSxcbiAgU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50LFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlLFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uLFxuICBTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCxcbiAgU0NDQUlIb21lSW50cm9kdWN0aW9uLFxuICBTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXIsXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQsXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHROYW1lLFxuICBTQ0NBSUhvbWVJY29uQ29udGFpbmVyLFxuICBTQ0NBSUhvbWVMb2dvV3JhcHBlcixcbiAgU0NDQUlIb21lTWFpYUhlYWRlclN0YWNrLFxuICBTQ0NBSUhvbWVUaXRsZSxcbiAgU0NDQUlIb21lVGl0bGVCbG9jayxcbiAgU0NDQUlIb21lU3VidGl0bGUsXG4gIFNDQ0FJSG9tZUR5bmFtaWNTZWN0aW9uLFxuICBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0cyxcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dHNMaXN0LFxuICBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25IZWFkZXIsXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvblRpdGxlLFxuICBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25TdWJ0aXRsZSxcbiAgU0NDQUlIb21lQ29sbGFib3JhdG9yU2VjdGlvbixcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGwsXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsSWNvbixcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxUZXh0LFxuICBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFNrZWxldG9uLFxuICBNQUlBX0hFQURFUl9DT0xMQUJPUkFUT1JfSE9NRV9DT05URU5UX1dJRFRIX1BYLFxufSBmcm9tICcuL3N0eWxlcydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQsIHR5cGUgU2VjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VVc2VyLCBDT1JVc2VyUm9sZSwgaXNDb2xsYWJvcmF0b3JSb2xlLCBpc01hbmFnZXJSb2xlIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IHVzZVJlc2l6ZUxpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUmVzaXplJ1xuaW1wb3J0IHsgZ2V0Q29udGV4dE1lbnRpb25JY29uIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY29udGV4dE1lbnRpb25JY29ucydcbmltcG9ydCB7IG9yY2hlc3RyYXRvckhhc0hvdXJzU3ViYWdlbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9vcmNoZXN0cmF0b3JTdWJhZ2VudHMnXG5pbXBvcnQgeyB2YWxpZGF0ZUlzTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzL3ZhbGlkYXRlSXNNYWlhJ1xuaW1wb3J0IHsgaXNNYWlha2VyQWdlbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9hZ2VudERpc3BsYXlOYW1lJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIH0gZnJvbSAnLi4vLi4vYXRvbXMvRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zJ1xuaW1wb3J0IHsgRnJlcXVlbnRseVVzZWRBY3Rpb25zIH0gZnJvbSAnLi4vLi4vYXRvbXMvRnJlcXVlbnRseVVzZWRBY3Rpb25zJ1xuaW1wb3J0IHsgdXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zJ1xuaW1wb3J0IHsgdXNlRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zJ1xuaW1wb3J0IHsgdXNlUmVjZW50Q29udGV4dHMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VSZWNlbnRDb250ZXh0cydcbmltcG9ydCB0eXBlIHsgUmVjZW50Q29udGV4dEl0ZW0sIFJlY2VudENvbnRleHRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFpYS9SZWNlbnRDb250ZXh0cydcbmltcG9ydCB7IE1BSUFJc29sb2dvIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvTUFJQUlzb2xvZ28nXG5pbXBvcnQgeyBUZW1wbGF0ZUdyYWRpZW50SWNvbiB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL1RlbXBsYXRlR3JhZGllbnRJY29uJ1xuaW1wb3J0IHsgQ2hhdEFJSG9tZU1haWFrZXIgfSBmcm9tICcuL0NoYXRBSUhvbWVNYWlha2VyJ1xuaW1wb3J0IHsgc2VsZWN0TWFuYWdlckhvdXJzSG9tZUZ1YXMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9tYW5hZ2VySG91cnNIb21lRnVhcydcblxudHlwZSBDaGF0QUlIb21lUHJvcHMgPSB7XG4gIG9uU3RhcnRDaGF0OiAoXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSB8IG51bGwsXG4gICAgZmFxSWQ/OiBzdHJpbmcsXG4gICAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmcsXG4gICAgbWVudGlvbnM/OiBudWxsLFxuICAgIGZ1YUlkPzogc3RyaW5nXG4gICkgPT4gdm9pZFxuICBoYW5kbGVyczogUmVjb3JkPG9wdGlvbnMsICgpID0+IHZvaWQ+XG4gIGV4cGFuZGVkPzogYm9vbGVhblxuICBmbG9hdGluZz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGVudW0gRnJlcXVlbnRRdWVzdGlvbnMge1xuICByZW50YWJpbGlkYWRfcHJveWVjdG8gPSAncmVudGFiaWxpZGFkX3Byb3llY3RvJyxcbiAgYXZhbmNlX3Byb3llY3RvID0gJ2F2YW5jZV9wcm95ZWN0bycsXG59XG5cbmNvbnN0IFJFQ0VOVF9DT05URVhUU19MSU1JVCA9IDlcbmNvbnN0IFJFQ0VOVF9DT05URVhUX0lDT05fQ09MT1IgPSAnIzRENEQ0RCdcbmNvbnN0IFJFQ0VOVF9DT05URVhUX1NLRUxFVE9OX0tFWVMgPSBbXG4gICdyZWNlbnQtY29udGV4dC1za2VsZXRvbi0xJyxcbiAgJ3JlY2VudC1jb250ZXh0LXNrZWxldG9uLTInLFxuICAncmVjZW50LWNvbnRleHQtc2tlbGV0b24tMycsXG5dXG5cbmNvbnN0IFJlY2VudENvbnRleHRQaWxsID0gKHtcbiAgY29udGV4dCxcbiAgbGFiZWwsXG4gIG9uQ2xpY2ssXG4gIGZ1bGxXaWR0aCA9IGZhbHNlLFxufToge1xuICBjb250ZXh0OiBSZWNlbnRDb250ZXh0SXRlbVxuICBsYWJlbDogc3RyaW5nXG4gIG9uQ2xpY2s6ICgpID0+IHZvaWRcbiAgZnVsbFdpZHRoPzogYm9vbGVhblxufSkgPT4ge1xuICBjb25zdCB0ZXh0UmVmID0gdXNlUmVmPEhUTUxTcGFuRWxlbWVudD4obnVsbClcbiAgY29uc3QgeyBzaG93VG9vbHRpcCB9ID0gdXNlUmVzaXplTGlzdGVuZXIodGV4dFJlZiwgW2xhYmVsXSlcblxuICByZXR1cm4gKFxuICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbCB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17b25DbGlja30gJGZ1bGxXaWR0aD17ZnVsbFdpZHRofT5cbiAgICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbEljb24+XG4gICAgICAgIHtjb250ZXh0LnR5cGUgPT09ICd0YXNrJyA/IChcbiAgICAgICAgICA8TGlzdENoZWNrbGlzdCBjb2xvcj17UkVDRU5UX0NPTlRFWFRfSUNPTl9DT0xPUn0gd2lkdGg9XCIxNHB4XCIgaGVpZ2h0PVwiMTRweFwiIC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgZ2V0Q29udGV4dE1lbnRpb25JY29uKGNvbnRleHQudHlwZSwgUkVDRU5UX0NPTlRFWFRfSUNPTl9DT0xPUiwgdW5kZWZpbmVkLCAxNClcbiAgICAgICAgKX1cbiAgICAgIDwvU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxJY29uPlxuICAgICAgPFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsVGV4dCByZWY9e3RleHRSZWZ9PlxuICAgICAgICB7c2hvd1Rvb2x0aXAgPyAoXG4gICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2xhYmVsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICApIDogKFxuICAgICAgICAgIGxhYmVsXG4gICAgICAgICl9XG4gICAgICA8L1NDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsVGV4dD5cbiAgICA8L1NDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsPlxuICApXG59XG5cbmNvbnN0IHBhcnNlTnVtZXJpY0lkID0gKHZhbHVlPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCk6IG51bWJlciB8IG51bGwgPT4ge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHJldHVybiBudWxsXG4gIGNvbnN0IHBhcnNlZCA9IE51bWJlcih2YWx1ZSlcbiAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShwYXJzZWQpID8gcGFyc2VkIDogbnVsbFxufVxuXG5jb25zdCBnZXRBbGxvd2VkUmVjZW50Q29udGV4dFR5cGVzID0gKHJvbGVJZD86IENPUlVzZXJSb2xlIHwgbnVtYmVyIHwgc3RyaW5nKTogU2V0PFJlY2VudENvbnRleHRUeXBlPiA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRSb2xlSWQgPSBOdW1iZXIocm9sZUlkKVxuICBpZiAoXG4gICAgbm9ybWFsaXplZFJvbGVJZCA9PT0gQ09SVXNlclJvbGUuQ0xFVkVMIHx8XG4gICAgbm9ybWFsaXplZFJvbGVJZCA9PT0gQ09SVXNlclJvbGUuRElSRUNUT1IgfHxcbiAgICBub3JtYWxpemVkUm9sZUlkID09PSBDT1JVc2VyUm9sZS5QUk9KRUNUX01BTkFHRVJcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBTZXQoWydjbGllbnQnLCAncHJvamVjdCcsICd0YXNrJ10pXG4gIH1cbiAgaWYgKGlzQ29sbGFib3JhdG9yUm9sZShyb2xlSWQpKSB7XG4gICAgcmV0dXJuIG5ldyBTZXQoWyd0YXNrJ10pXG4gIH1cbiAgcmV0dXJuIG5ldyBTZXQoKVxufVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJSG9tZSA9ICh7IGhhbmRsZXJzLCBvblN0YXJ0Q2hhdCwgZXhwYW5kZWQsIGZsb2F0aW5nIH06IENoYXRBSUhvbWVQcm9wcykgPT4ge1xuICBjb25zdCB7IHQsIGkxOG4gfSA9IHVzZVQoKVxuICBjb25zdCBldmVudCA9IHVzZUV2ZW50KClcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7IGFnZW50LCBzZWN0aW9uLCBjbGllbnQsIHByb2plY3QsIHRhc2ssIGNoaXBzUHJvamVjdCwgc2V0Q2xpZW50LCBzZXRQcm9qZWN0LCBzZXRUYXNrLCBzZXRDaGlwc1Byb2plY3QgfSA9XG4gICAgdXNlR2xvYmFsQ29udGV4dCgpXG5cbiAgY29uc3QgaXNNQUlBID0gdmFsaWRhdGVJc01haWEoYWdlbnQgYXMgQWdlbnQpXG4gIGNvbnN0IGZsb2F0aW5nQ3VzdG9tQ2VudGVyID0gISEoZmxvYXRpbmcgJiYgYWdlbnQ/LnR5cGUgPT09ICdjdXN0b20nKVxuICBjb25zdCBsYW5nID0gaTE4bi5sYW5ndWFnZSA9PT0gJ2JyJyA/ICdwdCcgOiBpMThuLmxhbmd1YWdlXG5cbiAgY29uc3Qgc3VtbWFyeVByb2plY3RBY2Nlc3MgPVxuICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXG4gICAgKFN0cmluZyh3aW5kb3cuTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyB8fFxuICAgICAgU3RyaW5nKHdpbmRvdy5tYWlhUHJvamVjdFN1bW1hcnlBY2Nlc3MpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJylcbiAgY29uc3QgZmFxc0FjY2VzcyA9IHRydWVcbiAgY29uc3Qgc2hvd1Byb2plY3RTdW1tYXJ5ID0gISEoaXNNQUlBICYmIHN1bW1hcnlQcm9qZWN0QWNjZXNzKVxuICAvLyBFbCBvcmNoZXN0cmF0b3IgKHR5cGUgPT09ICdvcmNoZXN0cmF0b3InKSBtdWVzdHJhIEZBUXMvRlVBcyBhZ3JlZ2FkYXMgZGUgc3VzIHN1YmFnZW50ZXMsXG4gIC8vIGFzw60gcXVlIE5PIHNlIHRyYXRhIGNvbW8gbWFpYWtlciBhY8OhLlxuICBjb25zdCBpc01haWFrZXIgPSBpc01haWFrZXJBZ2VudChhZ2VudClcbiAgY29uc3QgaXNIZWFkZXJIb21lID0gaXNNQUlBICYmIHNlY3Rpb24gPT09ICdoZWFkZXInICYmIGFnZW50Py50eXBlID09PSAnb3JjaGVzdHJhdG9yJ1xuICAvLyBFbCBvcmNoZXN0cmF0b3IgdXNhIGVsIGhvbWUgZW4gMiBwYXNvcyAoY29udGV4dG9zIHJlY2llbnRlcyDihpQgRkFRcy9GVUFzKSBlbiBoZWFkZXIvcHJvamVjdC9jbGllbnQvdGFzay5cbiAgLy8gRW4gcHJvamVjdC9jbGllbnQvdGFzaywgYWwgbGltcGlhciBlbCBjb250ZXh0byAocC4gZWouIGFsIHJlc2VsZWNjaW9uYXIgTUFJQVxuICAvLyBkZXNkZSBlbCBsaXN0YWRvIGRlIGFnZW50ZXMpIHNlIG11ZXN0cmEgZWwgc2VsZWN0b3IgZGUgY29udGV4dG9zIHJlY2llbnRlcyBlbiBsdWdhciBkZSB1biBob21lIHZhY8Otby5cbiAgY29uc3QgaXNPcmNoZXN0cmF0b3IgPSBpc01BSUEgJiYgYWdlbnQ/LnR5cGUgPT09ICdvcmNoZXN0cmF0b3InXG4gIC8vIFBsYW5uZXI6IGhvbWUgZGUgRlVBcyBkZWwgb3JjaGVzdHJhdG9yIChzaW4gc2VsZWN0b3IgZGUgY29udGV4dG9zKS5cbiAgLy8gU2kgZWwgdXN1YXJpbyBuYXZlZ2EgYSBNYWlha2VyIHUgb3RybyBhZ2VudGUsIHNlY3Rpb24gc2lndWUgc2llbmRvIGBwbGFubmVyYCBwZXJvIHlhIG5vIGVzIGVzdGUgaG9tZS5cbiAgY29uc3QgaXNQbGFubmVySG9tZSA9IHNlY3Rpb24gPT09ICdwbGFubmVyJyAmJiBpc09yY2hlc3RyYXRvclxuICAvLyBIb21lcyBkZSBzZWNjacOzbiAocHJvamVjdC9jbGllbnQvdGFzayk6IHNpbiBpc29sb2dvLCBjb250ZW5pZG8gdG9wLWxlZnQsIGNvbHVtbmEgNDU4cHggY2VudHJhZGEuXG4gIGNvbnN0IGlzU2VjdGlvbk9yY2hlc3RyYXRvckhvbWUgPSBpc09yY2hlc3RyYXRvciAmJiAhaXNIZWFkZXJIb21lICYmICFpc1BsYW5uZXJIb21lXG4gIGNvbnN0IGhhc0hvdXJzU3ViYWdlbnQgPSBvcmNoZXN0cmF0b3JIYXNIb3Vyc1N1YmFnZW50KGFnZW50KVxuXG4gIC8vIEhvbWUgZGVsIG9yY2hlc3RyYXRvciBlbiAyIHBhc29zOlxuICAvLyAgLSBQYXNvIDEgKHNpbiBjb250ZXh0byBwaW5lYWRvKTogc2UgbXVlc3RyYW4gc29sbyBsb3MgY29udGV4dG9zIHJlY2llbnRlcy5cbiAgLy8gIC0gUGFzbyAyIChjb250ZXh0byBwaW5lYWRvKTogc2UgbXVlc3RyYW4gbGFzIEZBUXMvYWNjaW9uZXMgcXVlIHJlZmVyZW5jaWFuIGVzZSBjb250ZXh0by5cbiAgY29uc3QgaGFzUGlubmVkQ29udGV4dCA9ICEhKHRhc2s/LmlkIHx8IGNoaXBzUHJvamVjdD8ucHJvamVjdElkIHx8IGNsaWVudD8uaWQgfHwgcHJvamVjdD8uaWQpXG4gIGNvbnN0IGlzUmVjZW50Q29udGV4dHNTdGVwID0gaXNPcmNoZXN0cmF0b3IgJiYgIWhhc1Bpbm5lZENvbnRleHQgJiYgIWlzUGxhbm5lckhvbWVcbiAgLy8gSGVhZGVyIHBhc28gMSBjb21wYWN0byAoc2luIGlzb2xvZ28sIHBpbGxzIGZ1bGwtd2lkdGgpOiBjb2xhYm9yYWRvciB5IG1hbmFnZXJzIChDLUxldmVsL0RpcmVjdG9yL1BNKS5cbiAgY29uc3QgaXNIZWFkZXJUYXNrQ29udGV4dEhvbWUgPVxuICAgIHNlY3Rpb24gPT09ICdoZWFkZXInICYmIGlzUmVjZW50Q29udGV4dHNTdGVwICYmIChpc0NvbGxhYm9yYXRvclJvbGUodXNlci5yb2xlX2lkKSB8fCBpc01hbmFnZXJSb2xlKHVzZXIucm9sZV9pZCkpXG4gIC8vIEJsb3F1ZSDigJxDYXJnYSBob3Jhc+KAnSArIHNlY2Npw7NuIGRlIHRhcmVhcyByZWNpZW50ZXMgY29uIHTDrXR1bG9zIChjb2xhYm9yYWRvciBvIG1hbmFnZXIgY29uIGhvdXIpLlxuICBjb25zdCBpc0hlYWRlckhvdXJzQWdlbnRIb21lID0gaXNIZWFkZXJUYXNrQ29udGV4dEhvbWUgJiYgaGFzSG91cnNTdWJhZ2VudFxuICBjb25zdCBpc0hlYWRlck1hbmFnZXJIb3Vyc0hvbWUgPSBpc0hlYWRlckhvdXJzQWdlbnRIb21lICYmIGlzTWFuYWdlclJvbGUodXNlci5yb2xlX2lkKVxuICBjb25zdCBoZWFkZXJUYXNrQ29udGV4dFN1YnRpdGxlS2V5ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGlzSGVhZGVySG91cnNBZ2VudEhvbWUpIHtcbiAgICAgIGlmIChpc0hlYWRlck1hbmFnZXJIb3Vyc0hvbWUpIHJldHVybiAnaG9tZU1lbnUuY29udGV4dEhvbWUuc3VidGl0bGVNYW5hZ2VyV2l0aEhvdXJzJ1xuICAgICAgcmV0dXJuICdob21lTWVudS5jb250ZXh0SG9tZS5zdWJ0aXRsZUNvbGxhYm9yYXRvcldpdGhIb3VycydcbiAgICB9XG4gICAgaWYgKGlzTWFuYWdlclJvbGUodXNlci5yb2xlX2lkKSkgcmV0dXJuICdob21lTWVudS5jb250ZXh0SG9tZS5zdWJ0aXRsZSdcbiAgICByZXR1cm4gJ2hvbWVNZW51LmNvbnRleHRIb21lLnN1YnRpdGxlQ29sbGFib3JhdG9yJ1xuICB9LCBbaXNIZWFkZXJIb3Vyc0FnZW50SG9tZSwgaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lLCB1c2VyLnJvbGVfaWRdKVxuICBjb25zdCBpc0NvbnRleHRIb21lU3RlcCA9IGlzSGVhZGVySG9tZSAmJiBoYXNQaW5uZWRDb250ZXh0XG5cbiAgY29uc3QgYWxsb3dlZFJlY2VudENvbnRleHRUeXBlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc0hlYWRlck1hbmFnZXJIb3Vyc0hvbWUpIHJldHVybiBnZXRBbGxvd2VkUmVjZW50Q29udGV4dFR5cGVzKHVzZXIucm9sZV9pZClcbiAgICBpZiAoaXNIZWFkZXJUYXNrQ29udGV4dEhvbWUgJiYgaXNNYW5hZ2VyUm9sZSh1c2VyLnJvbGVfaWQpKSByZXR1cm4gZ2V0QWxsb3dlZFJlY2VudENvbnRleHRUeXBlcyh1c2VyLnJvbGVfaWQpXG4gICAgaWYgKGlzSGVhZGVyVGFza0NvbnRleHRIb21lKSByZXR1cm4gbmV3IFNldDxSZWNlbnRDb250ZXh0VHlwZT4oWyd0YXNrJ10pXG4gICAgcmV0dXJuIGdldEFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXModXNlci5yb2xlX2lkKVxuICB9LCBbdXNlci5yb2xlX2lkLCBpc0hlYWRlck1hbmFnZXJIb3Vyc0hvbWUsIGlzSGVhZGVyVGFza0NvbnRleHRIb21lXSlcbiAgY29uc3QgeyBjb250ZXh0czogZmV0Y2hlZFJlY2VudENvbnRleHRzLCBsb2FkaW5nOiByZWNlbnRDb250ZXh0c0xvYWRpbmcgfSA9IHVzZVJlY2VudENvbnRleHRzKHtcbiAgICBlbmFibGVkOiBpc09yY2hlc3RyYXRvciAmJiAhaXNQbGFubmVySG9tZSxcbiAgICBsaW1pdDogUkVDRU5UX0NPTlRFWFRTX0xJTUlULFxuICB9KVxuICBjb25zdCByZWNlbnRDb250ZXh0cyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gZmV0Y2hlZFJlY2VudENvbnRleHRzLmZpbHRlcihjb250ZXh0ID0+IGFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXMuaGFzKGNvbnRleHQudHlwZSkpLFxuICAgIFtmZXRjaGVkUmVjZW50Q29udGV4dHMsIGFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXNdXG4gIClcblxuICAvLyBDb250ZXh0byBhY3Rpdm8gcGFyYSBkZXJpdmFyIEZBUXMvYWNjaW9uZXMgKHBhc28gMikuIFByZWZlcmltb3MgZWwgcGlsbCBjbGlja2VhZG87XG4gIC8vIHNpIG5vLCBsbyByZWNvbnN0cnVpbW9zIGRlc2RlIGVsIGNvbnRleHRvIGdsb2JhbC5cbiAgY29uc3QgW3NlbGVjdGVkQ29udGV4dCwgc2V0U2VsZWN0ZWRDb250ZXh0XSA9IHVzZVN0YXRlPFJlY2VudENvbnRleHRJdGVtIHwgbnVsbD4obnVsbClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWhhc1Bpbm5lZENvbnRleHQpIHNldFNlbGVjdGVkQ29udGV4dChudWxsKVxuICB9LCBbaGFzUGlubmVkQ29udGV4dF0pXG5cbiAgY29uc3QgYWN0aXZlQ29udGV4dCA9IHVzZU1lbW88UmVjZW50Q29udGV4dEl0ZW0gfCBudWxsPigoKSA9PiB7XG4gICAgaWYgKHNlbGVjdGVkQ29udGV4dCkgcmV0dXJuIHNlbGVjdGVkQ29udGV4dFxuICAgIGlmICghaXNDb250ZXh0SG9tZVN0ZXApIHJldHVybiBudWxsXG4gICAgaWYgKHRhc2s/LmlkKSByZXR1cm4geyB0eXBlOiAndGFzaycsIGlkOiB0YXNrLmlkLCBuYW1lOiB0YXNrLm5hbWUgfVxuICAgIGlmIChjaGlwc1Byb2plY3Q/LnByb2plY3RJZCkgcmV0dXJuIHsgdHlwZTogJ3Byb2plY3QnLCBpZDogY2hpcHNQcm9qZWN0LnByb2plY3RJZCwgbmFtZTogY2hpcHNQcm9qZWN0LnByb2plY3ROYW1lIH1cbiAgICBpZiAoY2xpZW50Py5pZCkgcmV0dXJuIHsgdHlwZTogJ2NsaWVudCcsIGlkOiBjbGllbnQuaWQsIG5hbWU6IGNsaWVudC5uYW1lIH1cbiAgICByZXR1cm4gbnVsbFxuICB9LCBbXG4gICAgc2VsZWN0ZWRDb250ZXh0LFxuICAgIGlzQ29udGV4dEhvbWVTdGVwLFxuICAgIHRhc2s/LmlkLFxuICAgIHRhc2s/Lm5hbWUsXG4gICAgY2hpcHNQcm9qZWN0Py5wcm9qZWN0SWQsXG4gICAgY2hpcHNQcm9qZWN0Py5wcm9qZWN0TmFtZSxcbiAgICBjbGllbnQ/LmlkLFxuICAgIGNsaWVudD8ubmFtZSxcbiAgXSlcblxuICAvLyBlbnRpdHlfdHlwZSBkZWwgY29udGV4dG8gcGluZWFkbyAocHJvamVjdC9jbGllbnQvdGFzayksIHRvbWFkbyBkZWwgY29udGV4dG8gZ2xvYmFsLlxuICAvLyBBcGxpY2EgdGFudG8gYWwgYWJyaXIgTUFJQSBkZXNkZSB1bmEgc2VjY2nDs24gZXNwZWPDrWZpY2EgY29tbyBhbCBjYW1iaWFyIGRlIGNvbnZlcnNhY2nDs24uXG4gIGNvbnN0IHBpbm5lZEVudGl0eVR5cGUgPSB1c2VNZW1vPFJlY2VudENvbnRleHRUeXBlIHwgdW5kZWZpbmVkPigoKSA9PiB7XG4gICAgaWYgKHRhc2s/LmlkKSByZXR1cm4gJ3Rhc2snXG4gICAgaWYgKGNoaXBzUHJvamVjdD8ucHJvamVjdElkIHx8IHByb2plY3Q/LmlkKSByZXR1cm4gJ3Byb2plY3QnXG4gICAgaWYgKGNsaWVudD8uaWQpIHJldHVybiAnY2xpZW50J1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfSwgW3Rhc2s/LmlkLCBjaGlwc1Byb2plY3Q/LnByb2plY3RJZCwgcHJvamVjdD8uaWQsIGNsaWVudD8uaWRdKVxuXG4gIC8vIEVuIHByb2plY3QvY2xpZW50L3Rhc2ssIGNvbiBlbCByZWluaWNpbyBkZSBjb250ZXh0byBlbCB1c3VhcmlvIHB1ZWRlIHBpbmVhciB1biBjb250ZXh0byBkZSB1blxuICAvLyB0aXBvIGRpc3RpbnRvIGFsIGRlIGxhIHNlY2Npw7NuIGRlIGFwZXJ0dXJhIChwLiBlai4gdW4gcHJvamVjdCBhYnJpZW5kbyBkZXNkZSB1bmEgdGFyZWEsIG9cbiAgLy8gdmljZXZlcnNhKS4gTGFzIEZBUXMvRlVBcyBkZWJlbiBkZXBlbmRlciBkZWwgY29udGV4dG8gcmVhbG1lbnRlIHBpbmVhZG8sIG5vIGRlIGxhIHNlY2Npw7NuIGZpamEuXG4gIC8vIEVuIGVsIGhlYWRlciBzZSBtYW50aWVuZSBsYSBsw7NnaWNhIGV4aXN0ZW50ZSAoYmFzYWRhIGVuIGVsIGNvbnRleHRvIHNlbGVjY2lvbmFkbyAvIGFjdGl2ZUNvbnRleHQpLlxuICBjb25zdCBpc1Rhc2tDb250ZXh0ID0gIWlzSGVhZGVySG9tZSAmJiBwaW5uZWRFbnRpdHlUeXBlID09PSAndGFzaydcbiAgLy8gU29sbyBGVUFzIChzaW4gRkFRcyk6IHRhc2sgcGFuZWwgbyBwbGFubmVyLlxuICBjb25zdCBpc0Z1YXNPbmx5SG9tZSA9IGlzUGxhbm5lckhvbWUgfHwgaXNUYXNrQ29udGV4dFxuICAvLyBgc2VjdGlvbmAgcXVlIHNlIGNvbnN1bHRhIHBhcmEgbGFzIEZVQXM6IGVuIG5vLWhlYWRlciBzaWd1ZSBlbCB0aXBvIGRlIGNvbnRleHRvIHBpbmVhZG8uXG4gIC8vIEVuIHBsYW5uZXIgc2UgZnVlcnphIGxhIHNlY3Rpb24gQVBJIGBwbGFubmVyYC5cbiAgY29uc3QgZnVhc1NlY3Rpb246IFNlY3Rpb24gPSAoKCkgPT4ge1xuICAgIGlmIChpc1BsYW5uZXJIb21lKSByZXR1cm4gJ3BsYW5uZXInXG4gICAgaWYgKCFpc0hlYWRlckhvbWUgJiYgcGlubmVkRW50aXR5VHlwZSkgcmV0dXJuIHBpbm5lZEVudGl0eVR5cGVcbiAgICByZXR1cm4gc2VjdGlvblxuICB9KSgpXG5cbiAgLy8gRkFRcy9hY2Npb25lczpcbiAgLy8gIC0gaGVhZGVyLWhvbWUgKG9yY2hlc3RyYXRvciksIHBhc28gMjogZmlsdHJhZGFzIHBvciBgZW50aXR5X3R5cGVgIGRlbCBjb250ZXh0byBzZWxlY2Npb25hZG8uXG4gIC8vICAtIGhvbWVzIGRlIHByb3llY3RvL2NsaWVudGUvdGFyZWEgKHNlY2Npw7NuKTogZmlsdHJhZGFzIHBvciBlbCBgZW50aXR5X3R5cGVgIGRlbCBjb250ZXh0byBzZXRlYWRvLlxuICAvLyAgLSBwbGFubmVyOiBGVUFzIGNvbiBzZWN0aW9uPXBsYW5uZXIsIHNpbiBlbnRpdHlfdHlwZSBuaSBGQVFzLlxuICBjb25zdCByZWFsTGlzdHNBZ2VudElkID0gKCgpID0+IHtcbiAgICBpZiAoIWlzTUFJQSB8fCBpc01haWFrZXIpIHJldHVybiB1bmRlZmluZWRcbiAgICAvLyBQYXNvIDEgKGNvbnRleHRvcyByZWNpZW50ZXMsIHNpbiBjb250ZXh0byk6IG5vIHNlIHBpZGVuIEZBUXMvRlVBcy5cbiAgICBpZiAoaXNSZWNlbnRDb250ZXh0c1N0ZXApIHJldHVybiB1bmRlZmluZWRcbiAgICBpZiAoaXNIZWFkZXJIb21lKSByZXR1cm4gaXNDb250ZXh0SG9tZVN0ZXAgPyBhZ2VudD8uaWQgOiB1bmRlZmluZWRcbiAgICByZXR1cm4gYWdlbnQ/LmlkXG4gIH0pKClcbiAgY29uc3QgcmVhbExpc3RzRW50aXR5VHlwZSA9ICgoKSA9PiB7XG4gICAgaWYgKGlzUGxhbm5lckhvbWUpIHJldHVybiAncGxhbm5lcidcbiAgICBpZiAoIWlzSGVhZGVySG9tZSkgcmV0dXJuIHBpbm5lZEVudGl0eVR5cGVcbiAgICByZXR1cm4gaXNDb250ZXh0SG9tZVN0ZXAgPyAoYWN0aXZlQ29udGV4dD8udHlwZSA/PyBwaW5uZWRFbnRpdHlUeXBlKSA6IHVuZGVmaW5lZFxuICB9KSgpXG4gIGNvbnN0IHsgYWN0aW9uczogYWdlbnRGdWFzLCBsb2FkaW5nOiBmdWFzTG9hZGluZyB9ID0gdXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zKFxuICAgIHJlYWxMaXN0c0FnZW50SWQsXG4gICAgZnVhc1NlY3Rpb24sXG4gICAgcmVhbExpc3RzRW50aXR5VHlwZVxuICApXG4gIGNvbnN0IHsgYWN0aW9uczogY29sbGFib3JhdG9yUGxhbm5lckZ1YXMsIGxvYWRpbmc6IGNvbGxhYm9yYXRvclBsYW5uZXJGdWFzTG9hZGluZyB9ID0gdXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zKFxuICAgIGlzSGVhZGVySG91cnNBZ2VudEhvbWUgJiYgIWlzSGVhZGVyTWFuYWdlckhvdXJzSG9tZSA/IGFnZW50Py5pZCA6IHVuZGVmaW5lZCxcbiAgICAncGxhbm5lcidcbiAgKVxuICBjb25zdCB7IGFjdGlvbnM6IG1hbmFnZXJIb21lRnVhc1JhdywgbG9hZGluZzogbWFuYWdlckhvbWVGdWFzTG9hZGluZyB9ID0gdXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zKFxuICAgIGlzSGVhZGVyTWFuYWdlckhvdXJzSG9tZSA/IGFnZW50Py5pZCA6IHVuZGVmaW5lZCxcbiAgICAnaGVhZGVyJ1xuICApXG4gIGNvbnN0IGhlYWRlckhvdXJzRnVhcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc0hlYWRlck1hbmFnZXJIb3Vyc0hvbWUpIHJldHVybiBzZWxlY3RNYW5hZ2VySG91cnNIb21lRnVhcyhtYW5hZ2VySG9tZUZ1YXNSYXcpXG4gICAgcmV0dXJuIGNvbGxhYm9yYXRvclBsYW5uZXJGdWFzXG4gIH0sIFtpc0hlYWRlck1hbmFnZXJIb3Vyc0hvbWUsIG1hbmFnZXJIb21lRnVhc1JhdywgY29sbGFib3JhdG9yUGxhbm5lckZ1YXNdKVxuICBjb25zdCBoZWFkZXJIb3Vyc0Z1YXNMb2FkaW5nID0gaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lID8gbWFuYWdlckhvbWVGdWFzTG9hZGluZyA6IGNvbGxhYm9yYXRvclBsYW5uZXJGdWFzTG9hZGluZ1xuICBjb25zdCB7XG4gICAgZmFxczogYWdlbnRGYXFzLFxuICAgIGxvYWRpbmc6IGZhcXNMb2FkaW5nLFxuICAgIGhhbmRsZUdldEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyxcbiAgfSA9IHVzZUZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyhyZWFsTGlzdHNBZ2VudElkLCBsYW5nLCByZWFsTGlzdHNFbnRpdHlUeXBlKVxuICBjb25zdCBmYXFzRmV0Y2hSZWYgPSB1c2VSZWY8eyBhZ2VudElkOiBzdHJpbmc7IGxhbmc6IHN0cmluZzsgZW50aXR5VHlwZT86IHN0cmluZyB9IHwgbnVsbD4obnVsbClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBUYXNrIC8gcGxhbm5lcjogc29sbyBGVUFzLCBzaW4gRkFRcy5cbiAgICBpZiAoIXJlYWxMaXN0c0FnZW50SWQgfHwgaXNGdWFzT25seUhvbWUpIHJldHVyblxuICAgIGNvbnN0IGN1cnJlbnRLZXkgPSBgJHtyZWFsTGlzdHNBZ2VudElkfS0ke2xhbmd9LSR7cmVhbExpc3RzRW50aXR5VHlwZSA/PyAnYWxsJ31gXG4gICAgY29uc3QgbGFzdEtleSA9IGZhcXNGZXRjaFJlZi5jdXJyZW50XG4gICAgICA/IGAke2ZhcXNGZXRjaFJlZi5jdXJyZW50LmFnZW50SWR9LSR7ZmFxc0ZldGNoUmVmLmN1cnJlbnQubGFuZ30tJHtmYXFzRmV0Y2hSZWYuY3VycmVudC5lbnRpdHlUeXBlID8/ICdhbGwnfWBcbiAgICAgIDogbnVsbFxuICAgIGlmIChjdXJyZW50S2V5ICE9PSBsYXN0S2V5KSB7XG4gICAgICBmYXFzRmV0Y2hSZWYuY3VycmVudCA9IHsgYWdlbnRJZDogcmVhbExpc3RzQWdlbnRJZCwgbGFuZywgZW50aXR5VHlwZTogcmVhbExpc3RzRW50aXR5VHlwZSB9XG4gICAgICBoYW5kbGVHZXRGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMoeyBhZ2VudElkOiByZWFsTGlzdHNBZ2VudElkLCBsYW5nLCBlbnRpdHlUeXBlOiByZWFsTGlzdHNFbnRpdHlUeXBlIH0pXG4gICAgfVxuICB9LCBbcmVhbExpc3RzQWdlbnRJZCwgcmVhbExpc3RzRW50aXR5VHlwZSwgaXNGdWFzT25seUhvbWUsIGxhbmcsIGhhbmRsZUdldEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc10pXG5cbiAgY29uc3QgZmFxcyA9IGFnZW50RmFxc1xuICBjb25zdCBmdWFzID0gYWdlbnRGdWFzXG4gIGNvbnN0IGZhcXNBcmVMb2FkaW5nID0gZmFxc0xvYWRpbmdcbiAgY29uc3QgZnVhc0FyZUxvYWRpbmcgPSBmdWFzTG9hZGluZ1xuXG4gIGNvbnN0IHNob3dSZWNlbnRDb250ZXh0c0Jsb2NrID0gaXNSZWNlbnRDb250ZXh0c1N0ZXAgJiYgKHJlY2VudENvbnRleHRzTG9hZGluZyB8fCByZWNlbnRDb250ZXh0cy5sZW5ndGggPiAwKVxuICBjb25zdCBzaG91bGRTaG93RmFxcyA9XG4gICAgIWlzUmVjZW50Q29udGV4dHNTdGVwICYmXG4gICAgIWlzRnVhc09ubHlIb21lICYmXG4gICAgKGlzQ29udGV4dEhvbWVTdGVwIHx8ICghaXNIZWFkZXJIb21lICYmIGZhcXNBY2Nlc3MpKSAmJlxuICAgICFpc01haWFrZXIgJiZcbiAgICAoZmFxcy5sZW5ndGggPiAwIHx8IGZhcXNBcmVMb2FkaW5nKVxuICBjb25zdCBzaG91bGRTaG93RnVhcyA9XG4gICAgIWlzUmVjZW50Q29udGV4dHNTdGVwICYmICFpc01haWFrZXIgJiYgKGlzQ29udGV4dEhvbWVTdGVwIHx8ICFpc0hlYWRlckhvbWUpICYmIChmdWFzLmxlbmd0aCA+IDAgfHwgZnVhc0FyZUxvYWRpbmcpXG4gIGNvbnN0IHNob3VsZFNob3dQbGFubmVyRnVhc0xvYWRpbmcgPSBpc0hlYWRlckhvdXJzQWdlbnRIb21lICYmIGhlYWRlckhvdXJzRnVhc0xvYWRpbmcgJiYgaGVhZGVySG91cnNGdWFzLmxlbmd0aCA9PT0gMFxuICBjb25zdCBzaG91bGRTaG93UGxhbm5lckZ1YXNDb250ZW50ID0gaXNIZWFkZXJIb3Vyc0FnZW50SG9tZSAmJiBoZWFkZXJIb3Vyc0Z1YXMubGVuZ3RoID4gMFxuICBjb25zdCBzaG91bGRTaG93UGxhbm5lckZ1YXMgPSBzaG91bGRTaG93UGxhbm5lckZ1YXNMb2FkaW5nIHx8IHNob3VsZFNob3dQbGFubmVyRnVhc0NvbnRlbnRcblxuICBjb25zdCBzaG93UHJvamVjdFN1bW1hcnlDYXJkID0gc2hvd1Byb2plY3RTdW1tYXJ5ICYmIGFnZW50Py5lbnRpdHkgPT09ICdwcm9qZWN0J1xuICBjb25zdCBzaG93RkFRcyA9ICEhKFxuICAgIHNob3dSZWNlbnRDb250ZXh0c0Jsb2NrIHx8XG4gICAgc2hvdWxkU2hvd0ZhcXMgfHxcbiAgICBzaG91bGRTaG93RnVhcyB8fFxuICAgIHNob3VsZFNob3dQbGFubmVyRnVhcyB8fFxuICAgIHNob3dQcm9qZWN0U3VtbWFyeUNhcmQgfHxcbiAgICBpc01haWFrZXJcbiAgKVxuICBjb25zdCBob21lU2Nyb2xsYWJsZUxheW91dCA9IHNob3dGQVFzXG4gIGNvbnN0IHNob3dEeW5hbWljU2VjdGlvbiA9XG4gICAgc2hvd1JlY2VudENvbnRleHRzQmxvY2sgfHwgc2hvdWxkU2hvd0ZhcXMgfHwgc2hvdWxkU2hvd0Z1YXMgfHwgc2hvdWxkU2hvd1BsYW5uZXJGdWFzIHx8IGlzTWFpYWtlclxuXG4gIC8vIEzDs2dpY2EgZGVsIHNjcm9sbCBjb24gZ3JhZGllbnRlc1xuICBjb25zdCBjb250ZW50Q29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBbc2hvd1RvcEdyYWRpZW50LCBzZXRTaG93VG9wR3JhZGllbnRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzaG93Qm90dG9tR3JhZGllbnQsIHNldFNob3dCb3R0b21HcmFkaWVudF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzU2Nyb2xsaW5nLCBzZXRJc1Njcm9sbGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3Qgc2Nyb2xsVGltZW91dFJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGw+KG51bGwpXG5cbiAgLy8gU2FsdWRvIGZpam8gcG9yIHRpcG8gZGUgY29udGV4dG8gKGkxOG4pLiBDdXN0b20gYWdlbnRzIHNpZ3VlbiB1c2FuZG8gYWdlbnQuaW50cm9kdWN0aW9uLlxuICAvLyBQbGFubmVyIHVzYSB0w610dWxvICsgYmFqYWRhIHByb3Bpb3MgKGBwbGFubmVySG9tZWApLCBubyBlc3RlIGdyZWV0aW5nLlxuICBjb25zdCBncmVldGluZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc01haWFrZXIgfHwgaXNQbGFubmVySG9tZSB8fCBpc1JlY2VudENvbnRleHRzU3RlcCkgcmV0dXJuICcnXG5cbiAgICBpZiAoaXNNQUlBICYmIHBpbm5lZEVudGl0eVR5cGUpIHtcbiAgICAgIHJldHVybiB0KGBob21lTWVudS5jb250ZXh0SG9tZS5jb250ZXh0R3JlZXRpbmcuJHtwaW5uZWRFbnRpdHlUeXBlfWApXG4gICAgfVxuXG4gICAgY29uc3QgaW50cm8gPSBhZ2VudD8uaW50cm9kdWN0aW9uXG4gICAgaWYgKCFpbnRybykgcmV0dXJuICcnXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaW50cm8pICYmIGludHJvLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBpbnRyb1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBpbnRyby5sZW5ndGgpXVxuICAgIH1cbiAgICByZXR1cm4gdHlwZW9mIGludHJvID09PSAnc3RyaW5nJyA/IGludHJvIDogJydcbiAgfSwgW2FnZW50Py5pZCwgYWdlbnQ/LmludHJvZHVjdGlvbiwgaXNNYWlha2VyLCBpc1BsYW5uZXJIb21lLCBpc01BSUEsIHBpbm5lZEVudGl0eVR5cGUsIGlzUmVjZW50Q29udGV4dHNTdGVwLCB0XSlcblxuICBjb25zdCBoYW5kbGVTZWxlY3RSZWNlbnRDb250ZXh0ID0gdXNlQ2FsbGJhY2soXG4gICAgKGNvbnRleHQ6IFJlY2VudENvbnRleHRJdGVtLCBvcmRlcjogbnVtYmVyKSA9PiB7XG4gICAgICBldmVudChFVkVOVFMuYWlDaGF0Q29udGV4dFNlbGVjdGVkLCB7IG9yZGVyLCB0eXBlOiBjb250ZXh0LnR5cGUgfSlcblxuICAgICAgY29uc3QgY29udGV4dElkID0gcGFyc2VOdW1lcmljSWQoY29udGV4dC5pZClcbiAgICAgIGNvbnN0IGNsaWVudElkID0gcGFyc2VOdW1lcmljSWQoY29udGV4dC5wYXJlbnRzPy5jbGllbnRfaWQpXG4gICAgICBjb25zdCBwcm9qZWN0SWQgPSBwYXJzZU51bWVyaWNJZChjb250ZXh0LnBhcmVudHM/LnByb2plY3RfaWQpXG4gICAgICBjb25zdCBjbGllbnROYW1lID0gY29udGV4dC5wYXJlbnRzPy5jbGllbnRfbmFtZSB8fCAnJ1xuICAgICAgY29uc3QgcHJvamVjdE5hbWUgPSBjb250ZXh0LnBhcmVudHM/LnByb2plY3RfbmFtZSB8fCAnJ1xuXG4gICAgICBzZXRTZWxlY3RlZENvbnRleHQoY29udGV4dClcbiAgICAgIHNldFRhc2sobnVsbClcbiAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcblxuICAgICAgaWYgKGNvbnRleHQudHlwZSA9PT0gJ2NsaWVudCcpIHtcbiAgICAgICAgaWYgKGNvbnRleHRJZCA9PSBudWxsKSByZXR1cm5cbiAgICAgICAgc2V0Q2xpZW50Py4oeyBpZDogY29udGV4dElkLCBuYW1lOiBjb250ZXh0Lm5hbWUgfSlcbiAgICAgIH0gZWxzZSBpZiAoY29udGV4dC50eXBlID09PSAncHJvamVjdCcpIHtcbiAgICAgICAgaWYgKGNvbnRleHRJZCA9PSBudWxsKSByZXR1cm5cbiAgICAgICAgc2V0UHJvamVjdCh7XG4gICAgICAgICAgaWQ6IGNvbnRleHRJZCxcbiAgICAgICAgICBuYW1lOiBjb250ZXh0Lm5hbWUsXG4gICAgICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudElkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudDogeyBpZDogY2xpZW50SWQsIG5hbWU6IGNsaWVudE5hbWUgfSB9IDoge30pLFxuICAgICAgICB9KVxuICAgICAgICBzZXRDaGlwc1Byb2plY3Qoe1xuICAgICAgICAgIHByb2plY3RJZDogU3RyaW5nKGNvbnRleHRJZCksXG4gICAgICAgICAgcHJvamVjdE5hbWU6IGNvbnRleHQubmFtZSxcbiAgICAgICAgICBjbGllbnROYW1lLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIGlmIChjb250ZXh0LnR5cGUgPT09ICd0YXNrJykge1xuICAgICAgICBzZXRUYXNrKHtcbiAgICAgICAgICBpZDogY29udGV4dC5pZCxcbiAgICAgICAgICBuYW1lOiBjb250ZXh0Lm5hbWUsXG4gICAgICAgICAgLi4uKHByb2plY3RJZCAhPSBudWxsID8geyBwcm9qZWN0SWQgfSA6IHt9KSxcbiAgICAgICAgICAuLi4oY2xpZW50SWQgIT0gbnVsbCA/IHsgY2xpZW50SWQgfSA6IHt9KSxcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGNsaWVudElkICE9IG51bGwpIHtcbiAgICAgICAgICBzZXRDbGllbnQ/Lih7IGlkOiBjbGllbnRJZCwgbmFtZTogY2xpZW50TmFtZSB9KVxuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9qZWN0SWQgIT0gbnVsbCkge1xuICAgICAgICAgIHNldFByb2plY3Qoe1xuICAgICAgICAgICAgaWQ6IHByb2plY3RJZCxcbiAgICAgICAgICAgIG5hbWU6IHByb2plY3ROYW1lIHx8IGAke3QoJ2hvbWVNZW51LnJlY2VudENvbnRleHRzLnR5cGVzLnByb2plY3QnKX0gJHtwcm9qZWN0SWR9YCxcbiAgICAgICAgICAgIC4uLihjbGllbnRJZCAhPSBudWxsID8geyBjbGllbnRJZCB9IDoge30pLFxuICAgICAgICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudDogeyBpZDogY2xpZW50SWQsIG5hbWU6IGNsaWVudE5hbWUgfSB9IDoge30pLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KHtcbiAgICAgICAgICAgIHByb2plY3RJZDogU3RyaW5nKHByb2plY3RJZCksXG4gICAgICAgICAgICBwcm9qZWN0TmFtZTogcHJvamVjdE5hbWUgfHwgYCR7dCgnaG9tZU1lbnUucmVjZW50Q29udGV4dHMudHlwZXMucHJvamVjdCcpfSAke3Byb2plY3RJZH1gLFxuICAgICAgICAgICAgY2xpZW50TmFtZSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdtYWlhLWlucHV0LXJlZm9jdXMnKSlcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbZXZlbnQsIHNldENoaXBzUHJvamVjdCwgc2V0Q2xpZW50LCBzZXRQcm9qZWN0LCBzZXRUYXNrLCB0XVxuICApXG5cbiAgY29uc3QgaGFuZGxlSG9tZVN0YXJ0Q2hhdCA9IHVzZUNhbGxiYWNrKFxuICAgIChcbiAgICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICAgIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSB8IG51bGwsXG4gICAgICBmYXFJZD86IHN0cmluZyxcbiAgICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgICAgbWVudGlvbnM/OiBudWxsLFxuICAgICAgZnVhSWQ/OiBzdHJpbmdcbiAgICApID0+IHtcbiAgICAgIGlmIChpc0hlYWRlck1hbmFnZXJIb3Vyc0hvbWUgJiYgZnVhSWQpIHtcbiAgICAgICAgZmx1c2hTeW5jKCgpID0+IHtcbiAgICAgICAgICBzZXRTZWxlY3RlZENvbnRleHQobnVsbClcbiAgICAgICAgICBzZXRUYXNrKG51bGwpXG4gICAgICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgICBvblN0YXJ0Q2hhdChtZXNzYWdlLCBhdHRhY2htZW50cywgZmFxSWQsIGFnZW50U3VnZ2VzdGlvbklkLCBtZW50aW9ucywgZnVhSWQpXG4gICAgfSxcbiAgICBbaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lLCBvblN0YXJ0Q2hhdCwgc2V0Q2hpcHNQcm9qZWN0LCBzZXRDbGllbnQsIHNldFByb2plY3QsIHNldFRhc2tdXG4gIClcblxuICBjb25zdCByZW5kZXJSZWNlbnRDb250ZXh0cyA9ICgpID0+IHtcbiAgICBpZiAoIWlzUmVjZW50Q29udGV4dHNTdGVwKSByZXR1cm4gbnVsbFxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1xuICAgICAgICAkZml4ZWRDb250ZW50V2lkdGg9e2lzSGVhZGVyVGFza0NvbnRleHRIb21lID8gTUFJQV9IRUFERVJfQ09MTEFCT1JBVE9SX0hPTUVfQ09OVEVOVF9XSURUSF9QWCA6IHVuZGVmaW5lZH1cbiAgICAgICAgJGNvbnRlbnRHYXA9e2lzSGVhZGVySG91cnNBZ2VudEhvbWUgPyA4IDogdW5kZWZpbmVkfVxuICAgICAgPlxuICAgICAgICB7aXNIZWFkZXJIb3Vyc0FnZW50SG9tZSA/IChcbiAgICAgICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uSGVhZGVyPlxuICAgICAgICAgICAgPFNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvblRpdGxlPlxuICAgICAgICAgICAgICB7dChcbiAgICAgICAgICAgICAgICBpc0hlYWRlck1hbmFnZXJIb3Vyc0hvbWVcbiAgICAgICAgICAgICAgICAgID8gJ2hvbWVNZW51LmNvbnRleHRIb21lLnJlY2VudENvbnRleHRzU2VjdGlvbk1hbmFnZXIudGl0bGUnXG4gICAgICAgICAgICAgICAgICA6ICdob21lTWVudS5jb250ZXh0SG9tZS5yZWNlbnRUYXNrc1NlY3Rpb24udGl0bGUnXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvblRpdGxlPlxuICAgICAgICAgICAgPFNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvblN1YnRpdGxlPlxuICAgICAgICAgICAgICB7dChcbiAgICAgICAgICAgICAgICBpc0hlYWRlck1hbmFnZXJIb3Vyc0hvbWVcbiAgICAgICAgICAgICAgICAgID8gJ2hvbWVNZW51LmNvbnRleHRIb21lLnJlY2VudENvbnRleHRzU2VjdGlvbk1hbmFnZXIuc3VidGl0bGUnXG4gICAgICAgICAgICAgICAgICA6ICdob21lTWVudS5jb250ZXh0SG9tZS5yZWNlbnRUYXNrc1NlY3Rpb24uc3VidGl0bGUnXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvblN1YnRpdGxlPlxuICAgICAgICAgIDwvU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uSGVhZGVyPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPFNDQ0FJSG9tZVJlY2VudENvbnRleHRzTGlzdCAkZmx1c2hQaWxscz17aXNIZWFkZXJUYXNrQ29udGV4dEhvbWV9PlxuICAgICAgICAgIHtyZWNlbnRDb250ZXh0c0xvYWRpbmcgJiZcbiAgICAgICAgICAgIFJFQ0VOVF9DT05URVhUX1NLRUxFVE9OX0tFWVMubWFwKGtleSA9PiA8U0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxTa2VsZXRvbiBrZXk9e2tleX0gLz4pfVxuICAgICAgICAgIHshcmVjZW50Q29udGV4dHNMb2FkaW5nICYmXG4gICAgICAgICAgICByZWNlbnRDb250ZXh0cy5tYXAoKGNvbnRleHQsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgIDxSZWNlbnRDb250ZXh0UGlsbFxuICAgICAgICAgICAgICAgIGtleT17YCR7Y29udGV4dC50eXBlfS0ke2NvbnRleHQuaWR9YH1cbiAgICAgICAgICAgICAgICBjb250ZXh0PXtjb250ZXh0fVxuICAgICAgICAgICAgICAgIGxhYmVsPXtjb250ZXh0Lm5hbWUudHJpbSgpfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVNlbGVjdFJlY2VudENvbnRleHQoY29udGV4dCwgaW5kZXggKyAxKX1cbiAgICAgICAgICAgICAgICBmdWxsV2lkdGg9e2lzSGVhZGVyVGFza0NvbnRleHRIb21lfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgIDwvU0NDQUlIb21lUmVjZW50Q29udGV4dHNMaXN0PlxuICAgICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0cz5cbiAgICApXG4gIH1cblxuICBjb25zdCBjaGVja1Njcm9sbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBjb250YWluZXIgPSBjb250ZW50Q29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICBpZiAoIWNvbnRhaW5lciB8fCAhaG9tZVNjcm9sbGFibGVMYXlvdXQpIHJldHVyblxuXG4gICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBjb250YWluZXJcbiAgICBjb25zdCBpc1Njcm9sbGFibGUgPSBzY3JvbGxIZWlnaHQgPiBjbGllbnRIZWlnaHRcbiAgICBjb25zdCBpc0F0VG9wID0gc2Nyb2xsVG9wID09PSAwXG4gICAgY29uc3QgaXNBdEJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSAxXG5cbiAgICBzZXRTaG93VG9wR3JhZGllbnQoaXNTY3JvbGxhYmxlICYmICFpc0F0VG9wKVxuICAgIHNldFNob3dCb3R0b21HcmFkaWVudChpc1Njcm9sbGFibGUgJiYgIWlzQXRCb3R0b20pXG4gICAgc2V0SXNTY3JvbGxpbmcodHJ1ZSlcblxuICAgIGlmIChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpIHtcbiAgICAgIGNsZWFyVGltZW91dChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpXG4gICAgfVxuXG4gICAgc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzZXRJc1Njcm9sbGluZyhmYWxzZSlcbiAgICB9LCAxNTApXG4gIH0sIFtob21lU2Nyb2xsYWJsZUxheW91dF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWhvbWVTY3JvbGxhYmxlTGF5b3V0KSB7XG4gICAgICBzZXRTaG93VG9wR3JhZGllbnQoZmFsc2UpXG4gICAgICBzZXRTaG93Qm90dG9tR3JhZGllbnQoZmFsc2UpXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID0gY29udGVudENvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjaGVja1Njcm9sbCgpXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGNoZWNrU2Nyb2xsKVxuXG4gICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dChjaGVja1Njcm9sbCwgMTAwKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBjaGVja1Njcm9sbClcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gICAgICBpZiAoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGNsZWFyVGltZW91dChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpXG4gICAgICB9XG4gICAgfVxuICB9LCBbaG9tZVNjcm9sbGFibGVMYXlvdXQsIGNoZWNrU2Nyb2xsXSlcblxuICBjb25zdCByZW5kZXJIZWFkZXJDb250ZW50ID0gKCkgPT4ge1xuICAgIGlmICghaXNNQUlBKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U0NDQUlIb21lQWdlbnRJbmZvQ29udGFpbmVyPlxuICAgICAgICAgIDxTQ0NBSUhvbWVBZ2VudEluZm8+XG4gICAgICAgICAgICB7YWdlbnQ/LmVtb2ppfSB7YWdlbnQ/Lm5hbWV9XG4gICAgICAgICAgPC9TQ0NBSUhvbWVBZ2VudEluZm8+XG4gICAgICAgICAge2FnZW50Py5jcmVhdGVkX2J5ICYmICFpc01BSUEgJiYgKFxuICAgICAgICAgICAgPFNDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0aXRsZT17XG4gICAgICAgICAgICAgICAgICBhZ2VudD8uY3JlYXRlZF9ieT8uaXNfZGVsZXRlZCA/IHQoJ2hvbWVNZW51LmNyZWF0ZWRCeVRvb2x0aXBEZWxldGVkJykgOiB0KCdob21lTWVudS5jcmVhdGVkQnlUb29sdGlwJylcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U0NDQUlIb21lQ3JlYXRlZEJ5VGV4dD5cbiAgICAgICAgICAgICAgICAgIHt0KCdob21lTWVudS5jcmVhdGVkQnknKX17JyAnfVxuICAgICAgICAgICAgICAgICAgPFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHROYW1lPnthZ2VudD8uY3JlYXRlZF9ieT8ubmFtZX08L1NDQ0FJSG9tZUNyZWF0ZWRCeVRleHROYW1lPlxuICAgICAgICAgICAgICAgIDwvU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dD5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXI+XG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgY29udGVudEFsaWduU3RhcnQgPSBpc1BsYW5uZXJIb21lIHx8IGlzSGVhZGVyVGFza0NvbnRleHRIb21lIHx8IGlzU2VjdGlvbk9yY2hlc3RyYXRvckhvbWVcblxuICAgIHJldHVybiAoXG4gICAgICA8U0NDQUlIb21lTWFpYUhlYWRlclN0YWNrXG4gICAgICAgICRub0dhcD17IWlzUmVjZW50Q29udGV4dHNTdGVwICYmICFpc1BsYW5uZXJIb21lICYmICFncmVldGluZ31cbiAgICAgICAgJGFsaWduPXtjb250ZW50QWxpZ25TdGFydCA/ICdzdGFydCcgOiAnY2VudGVyJ31cbiAgICAgID5cbiAgICAgICAgeyFpc1BsYW5uZXJIb21lICYmICFpc0hlYWRlclRhc2tDb250ZXh0SG9tZSAmJiAhaXNTZWN0aW9uT3JjaGVzdHJhdG9ySG9tZSAmJiAoXG4gICAgICAgICAgPFNDQ0FJSG9tZUljb25Db250YWluZXI+XG4gICAgICAgICAgICA8U0NDQUlIb21lTG9nb1dyYXBwZXI+XG4gICAgICAgICAgICAgIDxNQUlBSXNvbG9nbyAvPlxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVMb2dvV3JhcHBlcj5cbiAgICAgICAgICA8L1NDQ0FJSG9tZUljb25Db250YWluZXI+XG4gICAgICAgICl9XG4gICAgICAgIHtpc1BsYW5uZXJIb21lICYmIChcbiAgICAgICAgICA8U0NDQUlIb21lVGl0bGVCbG9jayAkYWxpZ249XCJzdGFydFwiPlxuICAgICAgICAgICAgPFNDQ0FJSG9tZVRpdGxlICRzaXplPVwibWRcIiAkYWxpZ249XCJzdGFydFwiPlxuICAgICAgICAgICAgICB7dCgnaG9tZU1lbnUucGxhbm5lckhvbWUudGl0bGUnKX1cbiAgICAgICAgICAgIDwvU0NDQUlIb21lVGl0bGU+XG4gICAgICAgICAgICA8U0NDQUlIb21lU3VidGl0bGUgJGFsaWduPVwic3RhcnRcIj57dCgnaG9tZU1lbnUucGxhbm5lckhvbWUuc3VidGl0bGUnKX08L1NDQ0FJSG9tZVN1YnRpdGxlPlxuICAgICAgICAgIDwvU0NDQUlIb21lVGl0bGVCbG9jaz5cbiAgICAgICAgKX1cbiAgICAgICAgeyFpc1BsYW5uZXJIb21lICYmIGlzUmVjZW50Q29udGV4dHNTdGVwICYmIGlzSGVhZGVyVGFza0NvbnRleHRIb21lICYmIChcbiAgICAgICAgICA8U0NDQUlIb21lVGl0bGVCbG9jayAkYWxpZ249XCJzdGFydFwiICRmdWxsV2lkdGg+XG4gICAgICAgICAgICA8U0NDQUlIb21lVGl0bGUgJHNpemU9XCJjb250ZXh0XCIgJGFsaWduPVwic3RhcnRcIiAkZnVsbFdpZHRoPlxuICAgICAgICAgICAgICB7dCgnaG9tZU1lbnUuY29udGV4dEhvbWUuZ3JlZXRpbmcnLCB7IG5hbWU6IHVzZXIuZmlyc3ROYW1lIH0pfVxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVUaXRsZT5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVTdWJ0aXRsZSAkYWxpZ249XCJzdGFydFwiICRjb2xsYWJvcmF0b3JIb21lPlxuICAgICAgICAgICAgICB7dChoZWFkZXJUYXNrQ29udGV4dFN1YnRpdGxlS2V5KX1cbiAgICAgICAgICAgIDwvU0NDQUlIb21lU3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0NBSUhvbWVUaXRsZUJsb2NrPlxuICAgICAgICApfVxuICAgICAgICB7IWlzUGxhbm5lckhvbWUgJiYgaXNSZWNlbnRDb250ZXh0c1N0ZXAgJiYgIWlzSGVhZGVyVGFza0NvbnRleHRIb21lICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPFNDQ0FJSG9tZVRpdGxlICRhbGlnbj17aXNTZWN0aW9uT3JjaGVzdHJhdG9ySG9tZSA/ICdzdGFydCcgOiB1bmRlZmluZWR9PlxuICAgICAgICAgICAgICB7dCgnaG9tZU1lbnUuY29udGV4dEhvbWUuZ3JlZXRpbmcnLCB7IG5hbWU6IHVzZXIuZmlyc3ROYW1lIH0pfVxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVUaXRsZT5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVTdWJ0aXRsZSAkYWxpZ249e2lzU2VjdGlvbk9yY2hlc3RyYXRvckhvbWUgPyAnc3RhcnQnIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgICAge3QoXG4gICAgICAgICAgICAgICAgaXNDb2xsYWJvcmF0b3JSb2xlKHVzZXIucm9sZV9pZClcbiAgICAgICAgICAgICAgICAgID8gJ2hvbWVNZW51LmNvbnRleHRIb21lLnN1YnRpdGxlQ29sbGFib3JhdG9yJ1xuICAgICAgICAgICAgICAgICAgOiAnaG9tZU1lbnUuY29udGV4dEhvbWUuc3VidGl0bGUnXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZVN1YnRpdGxlPlxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgICB7IWlzUGxhbm5lckhvbWUgJiYgIWlzUmVjZW50Q29udGV4dHNTdGVwICYmIGdyZWV0aW5nICYmIChcbiAgICAgICAgICA8U0NDQUlIb21lR3JlZXRpbmdcbiAgICAgICAgICAgICRhbGlnbj17aXNTZWN0aW9uT3JjaGVzdHJhdG9ySG9tZSA/ICdzdGFydCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAkc2l6ZT17aXNTZWN0aW9uT3JjaGVzdHJhdG9ySG9tZSA/ICdtZCcgOiAnbGcnfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtncmVldGluZ31cbiAgICAgICAgICA8L1NDQ0FJSG9tZUdyZWV0aW5nPlxuICAgICAgICApfVxuICAgICAgPC9TQ0NBSUhvbWVNYWlhSGVhZGVyU3RhY2s+XG4gICAgKVxuICB9XG5cbiAgY29uc3QgZml4ZWRIb21lQ29udGVudFdpZHRoID1cbiAgICBpc0hlYWRlclRhc2tDb250ZXh0SG9tZSB8fCBpc1NlY3Rpb25PcmNoZXN0cmF0b3JIb21lID8gTUFJQV9IRUFERVJfQ09MTEFCT1JBVE9SX0hPTUVfQ09OVEVOVF9XSURUSF9QWCA6IHVuZGVmaW5lZFxuICBjb25zdCBjb250ZW50QWxpZ25TdGFydCA9IGlzUGxhbm5lckhvbWUgfHwgaXNIZWFkZXJUYXNrQ29udGV4dEhvbWUgfHwgaXNTZWN0aW9uT3JjaGVzdHJhdG9ySG9tZVxuXG4gIHJldHVybiAoXG4gICAgPFNDQ0FJSG9tZUNvbnRhaW5lciBzaG93RkFRcz17c2hvd0ZBUXN9ICRhbGlnblN0YXJ0PXtpc1NlY3Rpb25PcmNoZXN0cmF0b3JIb21lfT5cbiAgICAgIHtob21lU2Nyb2xsYWJsZUxheW91dCAmJiA8U0NDQUlIb21lR3JhZGllbnRUb3AgJHNob3c9e3Nob3dUb3BHcmFkaWVudH0gLz59XG4gICAgICA8U0NDQUlIb21lQ29udGVudFxuICAgICAgICByZWY9e2NvbnRlbnRDb250YWluZXJSZWZ9XG4gICAgICAgIHNob3dGQVFzPXtob21lU2Nyb2xsYWJsZUxheW91dH1cbiAgICAgICAgJGlzQWdlbnRWaWV3PXshaXNNQUlBfVxuICAgICAgICAkZmxvYXRpbmdDdXN0b21DZW50ZXI9e2Zsb2F0aW5nQ3VzdG9tQ2VudGVyfVxuICAgICAgICAkY2VudGVyVmVydGljYWxseT17aXNQbGFubmVySG9tZX1cbiAgICAgICAgJGFsaWduU3RhcnQ9e2lzU2VjdGlvbk9yY2hlc3RyYXRvckhvbWV9XG4gICAgICAgICRmaXhlZENvbnRlbnRXaWR0aD17Zml4ZWRIb21lQ29udGVudFdpZHRofVxuICAgICAgPlxuICAgICAgICA8U0NDQUlIb21lQ29udGVudElubmVyXG4gICAgICAgICAgc2hvd0ZBUXM9e2hvbWVTY3JvbGxhYmxlTGF5b3V0fVxuICAgICAgICAgICRpc0FnZW50Vmlldz17IWlzTUFJQX1cbiAgICAgICAgICAkZmxvYXRpbmdDdXN0b21DZW50ZXI9e2Zsb2F0aW5nQ3VzdG9tQ2VudGVyfVxuICAgICAgICAgICRjZW50ZXJWZXJ0aWNhbGx5PXtpc1BsYW5uZXJIb21lfVxuICAgICAgICAgICRhbGlnblN0YXJ0PXtpc0hlYWRlclRhc2tDb250ZXh0SG9tZSB8fCBpc1NlY3Rpb25PcmNoZXN0cmF0b3JIb21lfVxuICAgICAgICAgICRoZWFkZXJDb2xsYWJvcmF0b3JIb21lPXtpc0hlYWRlclRhc2tDb250ZXh0SG9tZX1cbiAgICAgICAgICAkc2VjdGlvbk9yY2hlc3RyYXRvckhvbWU9e2lzU2VjdGlvbk9yY2hlc3RyYXRvckhvbWV9XG4gICAgICAgID5cbiAgICAgICAgICA8U0NDQUlIb21lSGVhZGVyXG4gICAgICAgICAgICAkZ2FwPXtpc01BSUEgJiYgc2VjdGlvbiAhPT0gJ3Byb2plY3QnID8gJzhweCcgOiAnMjBweCd9XG4gICAgICAgICAgICAkbWF4V2lkdGg9e2lzTUFJQSA/ICcxMDAlJyA6ICczODBweCd9XG4gICAgICAgICAgICAkaXNBZ2VudFZpZXc9eyFpc01BSUF9XG4gICAgICAgICAgICAkYWxpZ249e2NvbnRlbnRBbGlnblN0YXJ0ID8gJ3N0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtyZW5kZXJIZWFkZXJDb250ZW50KCl9XG5cbiAgICAgICAgICAgIHtzZWN0aW9uICE9PSAncHJvamVjdCcgJiYgKFxuICAgICAgICAgICAgICA8U0NDQUlIb21lSW50cm9kdWN0aW9uIGV4cGFuZGVkPXtleHBhbmRlZH0+eyFpc01BSUEgJiYgYWdlbnQ/LmludHJvZHVjdGlvbn08L1NDQ0FJSG9tZUludHJvZHVjdGlvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TQ0NBSUhvbWVIZWFkZXI+XG4gICAgICAgICAge3Nob3dQcm9qZWN0U3VtbWFyeUNhcmQgJiYgKFxuICAgICAgICAgICAgPFNDQ0FIV3JhcHBlclN1bW1hcnlQcm9qZWN0IG9uQ2xpY2s9e2hhbmRsZXJzLnByb2plY3RTdW1tYXJ5fT5cbiAgICAgICAgICAgICAgPFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5PlxuICAgICAgICAgICAgICAgIDxUZW1wbGF0ZUdyYWRpZW50SWNvbiBoZWlnaHQ9ezI0fSB3aWR0aD17MjR9IC8+XG4gICAgICAgICAgICAgIDwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnk+XG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGU+e3QoJ2hvbWVNZW51LnByb2plY3RTdW1tYXJ5LnRpdGxlJyl9PC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlPlxuICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LnByb2plY3RTdW1tYXJ5LmRlc2NyaXB0aW9uJyl9XG4gICAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICA8L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudD5cbiAgICAgICAgICAgIDwvU0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3Q+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7c2hvd0R5bmFtaWNTZWN0aW9uICYmIChcbiAgICAgICAgICAgIDxTQ0NBSUhvbWVEeW5hbWljU2VjdGlvblxuICAgICAgICAgICAgICAkZ3Jvdz17aXNNYWlha2VyfVxuICAgICAgICAgICAgICAkYWxpZ25TdGFydD17aXNIZWFkZXJUYXNrQ29udGV4dEhvbWUgfHwgaXNTZWN0aW9uT3JjaGVzdHJhdG9ySG9tZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3Nob3VsZFNob3dQbGFubmVyRnVhc0xvYWRpbmcgPyAoXG4gICAgICAgICAgICAgICAgPEZyZXF1ZW50bHlVc2VkQWN0aW9uc1xuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInBsYW5uZXJcIlxuICAgICAgICAgICAgICAgICAgb25TdGFydENoYXQ9e2hhbmRsZUhvbWVTdGFydENoYXR9XG4gICAgICAgICAgICAgICAgICBhZ2VudElkPXthZ2VudD8uaWR9XG4gICAgICAgICAgICAgICAgICBpc1Njcm9sbGluZz17aXNTY3JvbGxpbmd9XG4gICAgICAgICAgICAgICAgICBhY3Rpb25zPXtoZWFkZXJIb3Vyc0Z1YXN9XG4gICAgICAgICAgICAgICAgICBsb2FkaW5nPXtoZWFkZXJIb3Vyc0Z1YXNMb2FkaW5nfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1BsYW5uZXJGdWFzQ29udGVudCA/IChcbiAgICAgICAgICAgICAgICA8U0NDQUlIb21lQ29sbGFib3JhdG9yU2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25UaXRsZT5cbiAgICAgICAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LmNvbnRleHRIb21lLmhvdXJzU2VjdGlvbi50aXRsZScpfVxuICAgICAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25UaXRsZT5cbiAgICAgICAgICAgICAgICAgIDxGcmVxdWVudGx5VXNlZEFjdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInBsYW5uZXJcIlxuICAgICAgICAgICAgICAgICAgICBvblN0YXJ0Q2hhdD17aGFuZGxlSG9tZVN0YXJ0Q2hhdH1cbiAgICAgICAgICAgICAgICAgICAgYWdlbnRJZD17YWdlbnQ/LmlkfVxuICAgICAgICAgICAgICAgICAgICBpc1Njcm9sbGluZz17aXNTY3JvbGxpbmd9XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbnM9e2hlYWRlckhvdXJzRnVhc31cbiAgICAgICAgICAgICAgICAgICAgbG9hZGluZz17aGVhZGVySG91cnNGdWFzTG9hZGluZ31cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVDb2xsYWJvcmF0b3JTZWN0aW9uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3JlbmRlclJlY2VudENvbnRleHRzKCl9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93RmFxcyAmJiAoXG4gICAgICAgICAgICAgICAgPEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc1xuICAgICAgICAgICAgICAgICAgb25TdGFydENoYXQ9e29uU3RhcnRDaGF0fVxuICAgICAgICAgICAgICAgICAgc2hvd0ZBUXM9e3Nob3dGQVFzfVxuICAgICAgICAgICAgICAgICAgc2hvd1Byb2plY3RTdW1tYXJ5PXtzaG93UHJvamVjdFN1bW1hcnl9XG4gICAgICAgICAgICAgICAgICBhZ2VudElkPXthZ2VudD8uaWR9XG4gICAgICAgICAgICAgICAgICBsYW5nPXtsYW5nfVxuICAgICAgICAgICAgICAgICAgaXNTY3JvbGxpbmc9e2lzU2Nyb2xsaW5nfVxuICAgICAgICAgICAgICAgICAgZmFxcz17ZmFxc31cbiAgICAgICAgICAgICAgICAgIGxvYWRpbmc9e2ZhcXNBcmVMb2FkaW5nfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93RnVhcyAmJiAoXG4gICAgICAgICAgICAgICAgPEZyZXF1ZW50bHlVc2VkQWN0aW9uc1xuICAgICAgICAgICAgICAgICAgb25TdGFydENoYXQ9e29uU3RhcnRDaGF0fVxuICAgICAgICAgICAgICAgICAgYWdlbnRJZD17YWdlbnQ/LmlkfVxuICAgICAgICAgICAgICAgICAgaXNTY3JvbGxpbmc9e2lzU2Nyb2xsaW5nfVxuICAgICAgICAgICAgICAgICAgYWN0aW9ucz17ZnVhc31cbiAgICAgICAgICAgICAgICAgIGxvYWRpbmc9e2Z1YXNBcmVMb2FkaW5nfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHtpc01haWFrZXIgPyA8Q2hhdEFJSG9tZU1haWFrZXIgb25TdGFydENoYXQ9e29uU3RhcnRDaGF0fSAvPiA6IG51bGx9XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZUR5bmFtaWNTZWN0aW9uPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU0NDQUlIb21lQ29udGVudElubmVyPlxuICAgICAgPC9TQ0NBSUhvbWVDb250ZW50PlxuICAgICAge2hvbWVTY3JvbGxhYmxlTGF5b3V0ICYmIDxTQ0NBSUhvbWVHcmFkaWVudEJvdHRvbSAkc2hvdz17c2hvd0JvdHRvbUdyYWRpZW50fSAvPn1cbiAgICA8L1NDQ0FJSG9tZUNvbnRhaW5lcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLFFBQVEsT0FBTztBQUN6RSxTQUFTQyxTQUFTLFFBQVEsV0FBVztBQUVyQyxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLGFBQWEsUUFBUSxnREFBZ0Q7QUFDOUUsU0FBU0MsSUFBSSxRQUFRLHFCQUFxQjtBQUMxQyxTQUFTQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSx5QkFBeUI7QUFJMUQsU0FDRUMsa0JBQWtCLEVBQ2xCQyxnQkFBZ0IsRUFDaEJDLHFCQUFxQixFQUNyQkMsb0JBQW9CLEVBQ3BCQyx1QkFBdUIsRUFDdkJDLGVBQWUsRUFDZkMsaUJBQWlCLEVBQ2pCQywyQkFBMkIs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
637
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsImZsdXNoU3luYyIsIlRvb2x0aXAiLCJMaXN0Q2hlY2tsaXN0IiwidXNlVCIsIkVWRU5UUyIsInVzZUV2ZW50IiwiU0NDQUlIb21lQ29udGFpbmVyIiwiU0NDQUlIb21lQ29udGVudCIsIlNDQ0FJSG9tZUNvbnRlbnRJbm5lciIsIlNDQ0FJSG9tZUdyYWRpZW50VG9wIiwiU0NDQUlIb21lR3JhZGllbnRCb3R0b20iLCJTQ0NBSUhvbWVIZWFkZXIiLCJTQ0NBSUhvbWVHcmVldGluZyIsIlNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lciIsIlNDQ0FJSG9tZUFnZW50SW5mbyIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5IiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50IiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZSIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24iLCJTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCIsIlNDQ0FJSG9tZUludHJvZHVjdGlvbiIsIlNDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lciIsIlNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQiLCJTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZSIsIlNDQ0FJSG9tZUljb25Db250YWluZXIiLCJTQ0NBSUhvbWVMb2dvV3JhcHBlciIsIlNDQ0FJSG9tZU1haWFIZWFkZXJTdGFjayIsIlNDQ0FJSG9tZVRpdGxlIiwiU0NDQUlIb21lVGl0bGVCbG9jayIsIlNDQ0FJSG9tZVN1YnRpdGxlIiwiU0NDQUlIb21lRHluYW1pY1NlY3Rpb24iLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0cyIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzTGlzdCIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvbkhlYWRlciIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvblRpdGxlIiwiU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uU3VidGl0bGUiLCJTQ0NBSUhvbWVDb2xsYWJvcmF0b3JTZWN0aW9uIiwiU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGwiLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbEljb24iLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFRleHQiLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFNrZWxldG9uIiwiTUFJQV9IRUFERVJfQ09MTEFCT1JBVE9SX0hPTUVfQ09OVEVOVF9XSURUSF9QWCIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VVc2VyIiwiQ09SVXNlclJvbGUiLCJpc0NvbGxhYm9yYXRvclJvbGUiLCJpc01hbmFnZXJSb2xlIiwidXNlUmVzaXplTGlzdGVuZXIiLCJnZXRDb250ZXh0TWVudGlvbkljb24iLCJvcmNoZXN0cmF0b3JIYXNIb3Vyc1N1YmFnZW50IiwidmFsaWRhdGVJc01haWEiLCJpc01haWFrZXJBZ2VudCIsIkZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyIsIkZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsInVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsInVzZUZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyIsInVzZVJlY2VudENvbnRleHRzIiwiTUFJQUlzb2xvZ28iLCJUZW1wbGF0ZUdyYWRpZW50SWNvbiIsIkNoYXRBSUhvbWVNYWlha2VyIiwic2VsZWN0TWFuYWdlckhvdXJzSG9tZUZ1YXMiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJGcmVxdWVudFF1ZXN0aW9ucyIsIlJFQ0VOVF9DT05URVhUU19MSU1JVCIsIlJFQ0VOVF9DT05URVhUX0lDT05fQ09MT1IiLCJSRUNFTlRfQ09OVEVYVF9TS0VMRVRPTl9LRVlTIiwiUmVjZW50Q29udGV4dFBpbGwiLCJfcmVmIiwiY29udGV4dCIsImxhYmVsIiwib25DbGljayIsIl9yZWYkZnVsbFdpZHRoIiwiZnVsbFdpZHRoIiwidGV4dFJlZiIsIl91c2VSZXNpemVMaXN0ZW5lciIsInNob3dUb29sdGlwIiwidHlwZSIsIiRmdWxsV2lkdGgiLCJjaGlsZHJlbiIsImNvbG9yIiwid2lkdGgiLCJoZWlnaHQiLCJ1bmRlZmluZWQiLCJyZWYiLCJ0aXRsZSIsInBhcnNlTnVtZXJpY0lkIiwidmFsdWUiLCJwYXJzZWQiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsImdldEFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXMiLCJyb2xlSWQiLCJub3JtYWxpemVkUm9sZUlkIiwiQ0xFVkVMIiwiRElSRUNUT1IiLCJQUk9KRUNUX01BTkFHRVIiLCJTZXQiLCJDaGF0QUlIb21lIiwiX3JlZjIiLCJoYW5kbGVycyIsIm9uU3RhcnRDaGF0IiwiZXhwYW5kZWQiLCJmbG9hdGluZyIsIl91c2VUIiwidCIsImkxOG4iLCJldmVudCIsInVzZXIiLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50Iiwic2VjdGlvbiIsImNsaWVudCIsInByb2plY3QiLCJ0YXNrIiwiY2hpcHNQcm9qZWN0Iiwic2V0Q2xpZW50Iiwic2V0UHJvamVjdCIsInNldFRhc2siLCJzZXRDaGlwc1Byb2plY3QiLCJpc01BSUEiLCJmbG9hdGluZ0N1c3RvbUNlbnRlciIsImxhbmciLCJsYW5ndWFnZSIsInN1bW1hcnlQcm9qZWN0QWNjZXNzIiwid2luZG93IiwiU3RyaW5nIiwiTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MiLCJ0b0xvd2VyQ2FzZSIsIm1haWFQcm9qZWN0U3VtbWFyeUFjY2VzcyIsImZhcXNBY2Nlc3MiLCJzaG93UHJvamVjdFN1bW1hcnkiLCJpc01haWFrZXIiLCJpc0hlYWRlckhvbWUiLCJpc09yY2hlc3RyYXRvciIsImlzUGxhbm5lckhvbWUiLCJpc1NlY3Rpb25PcmNoZXN0cmF0b3JIb21lIiwiaGFzSG91cnNTdWJhZ2VudCIsImhhc1Bpbm5lZENvbnRleHQiLCJpZCIsInByb2plY3RJZCIsImlzUmVjZW50Q29udGV4dHNTdGVwIiwiaXNIZWFkZXJUYXNrQ29udGV4dEhvbWUiLCJyb2xlX2lkIiwiaXNIZWFkZXJIb3Vyc0FnZW50SG9tZSIsImlzSGVhZGVyTWFuYWdlckhvdXJzSG9tZSIsImhlYWRlclRhc2tDb250ZXh0U3VidGl0bGVLZXkiLCJpc0NvbnRleHRIb21lU3RlcCIsImlzTGVmdEFsaWduZWRPcmNoZXN0cmF0b3JIb21lIiwiYWxsb3dlZFJlY2VudENvbnRleHRUeXBlcyIsIl91c2VSZWNlbnRDb250ZXh0cyIsImVuYWJsZWQiLCJsaW1pdCIsImZldGNoZWRSZWNlbnRDb250ZXh0cyIsImNvbnRleHRzIiwicmVjZW50Q29udGV4dHNMb2FkaW5nIiwibG9hZGluZyIsInJlY2VudENvbnRleHRzIiwiZmlsdGVyIiwiaGFzIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2VsZWN0ZWRDb250ZXh0Iiwic2V0U2VsZWN0ZWRDb250ZXh0IiwiYWN0aXZlQ29udGV4dCIsIm5hbWUiLCJwcm9qZWN0TmFtZSIsInBpbm5lZEVudGl0eVR5cGUiLCJpc1Rhc2tDb250ZXh0IiwiaXNGdWFzT25seUhvbWUiLCJmdWFzU2VjdGlvbiIsInJlYWxMaXN0c0FnZW50SWQiLCJyZWFsTGlzdHNFbnRpdHlUeXBlIiwiX2FjdGl2ZUNvbnRleHQkdHlwZSIsIl91c2VGcmVxdWVudGx5VXNlZEFjdCIsImFnZW50RnVhcyIsImFjdGlvbnMiLCJmdWFzTG9hZGluZyIsIl91c2VGcmVxdWVudGx5VXNlZEFjdDIiLCJjb2xsYWJvcmF0b3JQbGFubmVyRnVhcyIsImNvbGxhYm9yYXRvclBsYW5uZXJGdWFzTG9hZGluZyIsIl91c2VGcmVxdWVudGx5VXNlZEFjdDMiLCJtYW5hZ2VySG9tZUZ1YXNSYXciLCJtYW5hZ2VySG9tZUZ1YXNMb2FkaW5nIiwiaGVhZGVySG91cnNGdWFzIiwiaGVhZGVySG91cnNGdWFzTG9hZGluZyIsIl91c2VGcmVxdWVudGx5QXNrZWRRdSIsImFnZW50RmFxcyIsImZhcXMiLCJmYXFzTG9hZGluZyIsImhhbmRsZUdldEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyIsImZhcXNGZXRjaFJlZiIsIl9mYXFzRmV0Y2hSZWYkY3VycmVudCIsImN1cnJlbnRLZXkiLCJjb25jYXQiLCJsYXN0S2V5IiwiY3VycmVudCIsImFnZW50SWQiLCJlbnRpdHlUeXBlIiwiZnVhcyIsImZhcXNBcmVMb2FkaW5nIiwiZnVhc0FyZUxvYWRpbmciLCJzaG93UmVjZW50Q29udGV4dHNCbG9jayIsImxlbmd0aCIsInNob3VsZFNob3dGYXFzIiwic2hvdWxkU2hvd0Z1YXMiLCJzaG91bGRTaG93UGxhbm5lckZ1YXNMb2FkaW5nIiwic2hvdWxkU2hvd1BsYW5uZXJGdWFzQ29udGVudCIsInNob3VsZFNob3dQbGFubmVyRnVhcyIsInNob3dQcm9qZWN0U3VtbWFyeUNhcmQiLCJlbnRpdHkiLCJzaG93RkFRcyIsImhvbWVTY3JvbGxhYmxlTGF5b3V0Iiwic2hvd0R5bmFtaWNTZWN0aW9uIiwiY29udGVudENvbnRhaW5lclJlZiIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2hvd1RvcEdyYWRpZW50Iiwic2V0U2hvd1RvcEdyYWRpZW50IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzaG93Qm90dG9tR3JhZGllbnQiLCJzZXRTaG93Qm90dG9tR3JhZGllbnQiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImlzU2Nyb2xsaW5nIiwic2V0SXNTY3JvbGxpbmciLCJzY3JvbGxUaW1lb3V0UmVmIiwiZ3JlZXRpbmciLCJpbnRybyIsImludHJvZHVjdGlvbiIsIkFycmF5IiwiaXNBcnJheSIsIk1hdGgiLCJmbG9vciIsInJhbmRvbSIsImhhbmRsZVNlbGVjdFJlY2VudENvbnRleHQiLCJvcmRlciIsIl9jb250ZXh0JHBhcmVudHMiLCJfY29udGV4dCRwYXJlbnRzMiIsIl9jb250ZXh0JHBhcmVudHMzIiwiX2NvbnRleHQkcGFyZW50czQiLCJhaUNoYXRDb250ZXh0U2VsZWN0ZWQiLCJjb250ZXh0SWQiLCJjbGllbnRJZCIsInBhcmVudHMiLCJjbGllbnRfaWQiLCJwcm9qZWN0X2lkIiwiY2xpZW50TmFtZSIsImNsaWVudF9uYW1lIiwicHJvamVjdF9uYW1lIiwiX29iamVjdFNwcmVhZCIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImRvY3VtZW50IiwiZGlzcGF0Y2hFdmVudCIsIkN1c3RvbUV2ZW50IiwiaGFuZGxlSG9tZVN0YXJ0Q2hhdCIsIm1lc3NhZ2UiLCJhdHRhY2htZW50cyIsImZhcUlkIiwiYWdlbnRTdWdnZXN0aW9uSWQiLCJtZW50aW9ucyIsImZ1YUlkIiwicmVuZGVyUmVjZW50Q29udGV4dHMiLCIkZml4ZWRDb250ZW50V2lkdGgiLCIkY29udGVudEdhcCIsIiRmbHVzaFBpbGxzIiwibWFwIiwia2V5IiwiaW5kZXgiLCJ0cmltIiwiY2hlY2tTY3JvbGwiLCJjb250YWluZXIiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpc1Njcm9sbGFibGUiLCJpc0F0VG9wIiwiaXNBdEJvdHRvbSIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJhZGRFdmVudExpc3RlbmVyIiwidGltZW91dElkIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlbmRlckhlYWRlckNvbnRlbnQiLCJfYWdlbnQkY3JlYXRlZF9ieSIsIl9hZ2VudCRjcmVhdGVkX2J5MiIsImVtb2ppIiwiY3JlYXRlZF9ieSIsImlzX2RlbGV0ZWQiLCJjb250ZW50QWxpZ25TdGFydCIsIiRub0dhcCIsIiRhbGlnbiIsIiRzaXplIiwiZmlyc3ROYW1lIiwiJGNvbGxhYm9yYXRvckhvbWUiLCJmaXhlZEhvbWVDb250ZW50V2lkdGgiLCIkYWxpZ25TdGFydCIsIiRzaG93IiwiJGlzQWdlbnRWaWV3IiwiJGZsb2F0aW5nQ3VzdG9tQ2VudGVyIiwiJGNlbnRlclZlcnRpY2FsbHkiLCIkaGVhZGVyQ29sbGFib3JhdG9ySG9tZSIsIiRzZWN0aW9uT3JjaGVzdHJhdG9ySG9tZSIsIiRnYXAiLCIkbWF4V2lkdGgiLCJwcm9qZWN0U3VtbWFyeSIsIiRncm93IiwidmFyaWFudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlIb21lL0NoYXRBSUhvbWUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2Z1bmN0aW9uLWNvbXBvbmVudC1kZWZpbml0aW9uICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnMgKi9cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGZsdXNoU3luYyB9IGZyb20gJ3JlYWN0LWRvbSdcblxuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgTGlzdENoZWNrbGlzdCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0xpc3RDaGVja2xpc3QnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcblxuaW1wb3J0IHsgb3B0aW9ucyB9IGZyb20gJy4uL0NoYXRBSU1vZGFsL2NvbnN0YW50cydcblxuaW1wb3J0IHtcbiAgU0NDQUlIb21lQ29udGFpbmVyLFxuICBTQ0NBSUhvbWVDb250ZW50LFxuICBTQ0NBSUhvbWVDb250ZW50SW5uZXIsXG4gIFNDQ0FJSG9tZUdyYWRpZW50VG9wLFxuICBTQ0NBSUhvbWVHcmFkaWVudEJvdHRvbSxcbiAgU0NDQUlIb21lSGVhZGVyLFxuICBTQ0NBSUhvbWVHcmVldGluZyxcbiAgU0NDQUlIb21lQWdlbnRJbmZvQ29udGFpbmVyLFxuICBTQ0NBSUhvbWVBZ2VudEluZm8sXG4gIFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5LFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQsXG4gIFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGUsXG4gIFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24sXG4gIFNDQ0FIV3JhcHBlclN1bW1hcnlQcm9qZWN0LFxuICBTQ0NBSUhvbWVJbnRyb2R1Y3Rpb24sXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lcixcbiAgU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dCxcbiAgU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWUsXG4gIFNDQ0FJSG9tZUljb25Db250YWluZXIsXG4gIFNDQ0FJSG9tZUxvZ29XcmFwcGVyLFxuICBTQ0NBSUhvbWVNYWlhSGVhZGVyU3RhY2ssXG4gIFNDQ0FJSG9tZVRpdGxlLFxuICBTQ0NBSUhvbWVUaXRsZUJsb2NrLFxuICBTQ0NBSUhvbWVTdWJ0aXRsZSxcbiAgU0NDQUlIb21lRHluYW1pY1NlY3Rpb24sXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRzLFxuICBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c0xpc3QsXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvbkhlYWRlcixcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uVGl0bGUsXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvblN1YnRpdGxlLFxuICBTQ0NBSUhvbWVDb2xsYWJvcmF0b3JTZWN0aW9uLFxuICBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbCxcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxJY29uLFxuICBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFRleHQsXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsU2tlbGV0b24sXG4gIE1BSUFfSEVBREVSX0NPTExBQk9SQVRPUl9IT01FX0NPTlRFTlRfV0lEVEhfUFgsXG59IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCwgdHlwZSBTZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZVVzZXIsIENPUlVzZXJSb2xlLCBpc0NvbGxhYm9yYXRvclJvbGUsIGlzTWFuYWdlclJvbGUgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgdXNlUmVzaXplTGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VSZXNpemUnXG5pbXBvcnQgeyBnZXRDb250ZXh0TWVudGlvbkljb24gfSBmcm9tICcuLi8uLi8uLi91dGlscy9jb250ZXh0TWVudGlvbkljb25zJ1xuaW1wb3J0IHsgb3JjaGVzdHJhdG9ySGFzSG91cnNTdWJhZ2VudCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL29yY2hlc3RyYXRvclN1YmFnZW50cydcbmltcG9ydCB7IHZhbGlkYXRlSXNNYWlhIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbHMvdmFsaWRhdGVJc01haWEnXG5pbXBvcnQgeyBpc01haWFrZXJBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2FnZW50RGlzcGxheU5hbWUnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgeyBGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMgfSBmcm9tICcuLi8uLi9hdG9tcy9GcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMnXG5pbXBvcnQgeyBGcmVxdWVudGx5VXNlZEFjdGlvbnMgfSBmcm9tICcuLi8uLi9hdG9tcy9GcmVxdWVudGx5VXNlZEFjdGlvbnMnXG5pbXBvcnQgeyB1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMnXG5pbXBvcnQgeyB1c2VGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMnXG5pbXBvcnQgeyB1c2VSZWNlbnRDb250ZXh0cyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVJlY2VudENvbnRleHRzJ1xuaW1wb3J0IHR5cGUgeyBSZWNlbnRDb250ZXh0SXRlbSwgUmVjZW50Q29udGV4dFR5cGUgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYWlhL1JlY2VudENvbnRleHRzJ1xuaW1wb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9NQUlBSXNvbG9nbydcbmltcG9ydCB7IFRlbXBsYXRlR3JhZGllbnRJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvVGVtcGxhdGVHcmFkaWVudEljb24nXG5pbXBvcnQgeyBDaGF0QUlIb21lTWFpYWtlciB9IGZyb20gJy4vQ2hhdEFJSG9tZU1haWFrZXInXG5pbXBvcnQgeyBzZWxlY3RNYW5hZ2VySG91cnNIb21lRnVhcyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL21hbmFnZXJIb3Vyc0hvbWVGdWFzJ1xuXG50eXBlIENoYXRBSUhvbWVQcm9wcyA9IHtcbiAgb25TdGFydENoYXQ6IChcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdIHwgbnVsbCxcbiAgICBmYXFJZD86IHN0cmluZyxcbiAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZyxcbiAgICBtZW50aW9ucz86IG51bGwsXG4gICAgZnVhSWQ/OiBzdHJpbmdcbiAgKSA9PiB2b2lkXG4gIGhhbmRsZXJzOiBSZWNvcmQ8b3B0aW9ucywgKCkgPT4gdm9pZD5cbiAgZXhwYW5kZWQ/OiBib29sZWFuXG4gIGZsb2F0aW5nPzogYm9vbGVhblxufVxuXG5leHBvcnQgZW51bSBGcmVxdWVudFF1ZXN0aW9ucyB7XG4gIHJlbnRhYmlsaWRhZF9wcm95ZWN0byA9ICdyZW50YWJpbGlkYWRfcHJveWVjdG8nLFxuICBhdmFuY2VfcHJveWVjdG8gPSAnYXZhbmNlX3Byb3llY3RvJyxcbn1cblxuY29uc3QgUkVDRU5UX0NPTlRFWFRTX0xJTUlUID0gOVxuY29uc3QgUkVDRU5UX0NPTlRFWFRfSUNPTl9DT0xPUiA9ICcjNEQ0RDREJ1xuY29uc3QgUkVDRU5UX0NPTlRFWFRfU0tFTEVUT05fS0VZUyA9IFtcbiAgJ3JlY2VudC1jb250ZXh0LXNrZWxldG9uLTEnLFxuICAncmVjZW50LWNvbnRleHQtc2tlbGV0b24tMicsXG4gICdyZWNlbnQtY29udGV4dC1za2VsZXRvbi0zJyxcbl1cblxuY29uc3QgUmVjZW50Q29udGV4dFBpbGwgPSAoe1xuICBjb250ZXh0LFxuICBsYWJlbCxcbiAgb25DbGljayxcbiAgZnVsbFdpZHRoID0gZmFsc2UsXG59OiB7XG4gIGNvbnRleHQ6IFJlY2VudENvbnRleHRJdGVtXG4gIGxhYmVsOiBzdHJpbmdcbiAgb25DbGljazogKCkgPT4gdm9pZFxuICBmdWxsV2lkdGg/OiBib29sZWFuXG59KSA9PiB7XG4gIGNvbnN0IHRleHRSZWYgPSB1c2VSZWY8SFRNTFNwYW5FbGVtZW50PihudWxsKVxuICBjb25zdCB7IHNob3dUb29sdGlwIH0gPSB1c2VSZXNpemVMaXN0ZW5lcih0ZXh0UmVmLCBbbGFiZWxdKVxuXG4gIHJldHVybiAoXG4gICAgPFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtvbkNsaWNrfSAkZnVsbFdpZHRoPXtmdWxsV2lkdGh9PlxuICAgICAgPFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsSWNvbj5cbiAgICAgICAge2NvbnRleHQudHlwZSA9PT0gJ3Rhc2snID8gKFxuICAgICAgICAgIDxMaXN0Q2hlY2tsaXN0IGNvbG9yPXtSRUNFTlRfQ09OVEVYVF9JQ09OX0NPTE9SfSB3aWR0aD1cIjE0cHhcIiBoZWlnaHQ9XCIxNHB4XCIgLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICBnZXRDb250ZXh0TWVudGlvbkljb24oY29udGV4dC50eXBlLCBSRUNFTlRfQ09OVEVYVF9JQ09OX0NPTE9SLCB1bmRlZmluZWQsIDE0KVxuICAgICAgICApfVxuICAgICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbEljb24+XG4gICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxUZXh0IHJlZj17dGV4dFJlZn0+XG4gICAgICAgIHtzaG93VG9vbHRpcCA/IChcbiAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17bGFiZWx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgbGFiZWxcbiAgICAgICAgKX1cbiAgICAgIDwvU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxUZXh0PlxuICAgIDwvU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGw+XG4gIClcbn1cblxuY29uc3QgcGFyc2VOdW1lcmljSWQgPSAodmFsdWU/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsKTogbnVtYmVyIHwgbnVsbCA9PiB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJykgcmV0dXJuIG51bGxcbiAgY29uc3QgcGFyc2VkID0gTnVtYmVyKHZhbHVlKVxuICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKHBhcnNlZCkgPyBwYXJzZWQgOiBudWxsXG59XG5cbmNvbnN0IGdldEFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXMgPSAocm9sZUlkPzogQ09SVXNlclJvbGUgfCBudW1iZXIgfCBzdHJpbmcpOiBTZXQ8UmVjZW50Q29udGV4dFR5cGU+ID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZFJvbGVJZCA9IE51bWJlcihyb2xlSWQpXG4gIGlmIChcbiAgICBub3JtYWxpemVkUm9sZUlkID09PSBDT1JVc2VyUm9sZS5DTEVWRUwgfHxcbiAgICBub3JtYWxpemVkUm9sZUlkID09PSBDT1JVc2VyUm9sZS5ESVJFQ1RPUiB8fFxuICAgIG5vcm1hbGl6ZWRSb2xlSWQgPT09IENPUlVzZXJSb2xlLlBST0pFQ1RfTUFOQUdFUlxuICApIHtcbiAgICByZXR1cm4gbmV3IFNldChbJ2NsaWVudCcsICdwcm9qZWN0JywgJ3Rhc2snXSlcbiAgfVxuICBpZiAoaXNDb2xsYWJvcmF0b3JSb2xlKHJvbGVJZCkpIHtcbiAgICByZXR1cm4gbmV3IFNldChbJ3Rhc2snXSlcbiAgfVxuICByZXR1cm4gbmV3IFNldCgpXG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUlIb21lID0gKHsgaGFuZGxlcnMsIG9uU3RhcnRDaGF0LCBleHBhbmRlZCwgZmxvYXRpbmcgfTogQ2hhdEFJSG9tZVByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCwgaTE4biB9ID0gdXNlVCgpXG4gIGNvbnN0IGV2ZW50ID0gdXNlRXZlbnQoKVxuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IHsgYWdlbnQsIHNlY3Rpb24sIGNsaWVudCwgcHJvamVjdCwgdGFzaywgY2hpcHNQcm9qZWN0LCBzZXRDbGllbnQsIHNldFByb2plY3QsIHNldFRhc2ssIHNldENoaXBzUHJvamVjdCB9ID1cbiAgICB1c2VHbG9iYWxDb250ZXh0KClcblxuICBjb25zdCBpc01BSUEgPSB2YWxpZGF0ZUlzTWFpYShhZ2VudCBhcyBBZ2VudClcbiAgY29uc3QgZmxvYXRpbmdDdXN0b21DZW50ZXIgPSAhIShmbG9hdGluZyAmJiBhZ2VudD8udHlwZSA9PT0gJ2N1c3RvbScpXG4gIGNvbnN0IGxhbmcgPSBpMThuLmxhbmd1YWdlID09PSAnYnInID8gJ3B0JyA6IGkxOG4ubGFuZ3VhZ2VcblxuICBjb25zdCBzdW1tYXJ5UHJvamVjdEFjY2VzcyA9XG4gICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAoU3RyaW5nKHdpbmRvdy5NQUlBX1BST0pFQ1RfU1VNTUFSWV9GRUFUVVJFX0FDQ0VTUykudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnIHx8XG4gICAgICBTdHJpbmcod2luZG93Lm1haWFQcm9qZWN0U3VtbWFyeUFjY2VzcykudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnKVxuICBjb25zdCBmYXFzQWNjZXNzID0gdHJ1ZVxuICBjb25zdCBzaG93UHJvamVjdFN1bW1hcnkgPSAhIShpc01BSUEgJiYgc3VtbWFyeVByb2plY3RBY2Nlc3MpXG4gIC8vIEVsIG9yY2hlc3RyYXRvciAodHlwZSA9PT0gJ29yY2hlc3RyYXRvcicpIG11ZXN0cmEgRkFRcy9GVUFzIGFncmVnYWRhcyBkZSBzdXMgc3ViYWdlbnRlcyxcbiAgLy8gYXPDrSBxdWUgTk8gc2UgdHJhdGEgY29tbyBtYWlha2VyIGFjw6EuXG4gIGNvbnN0IGlzTWFpYWtlciA9IGlzTWFpYWtlckFnZW50KGFnZW50KVxuICBjb25zdCBpc0hlYWRlckhvbWUgPSBpc01BSUEgJiYgc2VjdGlvbiA9PT0gJ2hlYWRlcicgJiYgYWdlbnQ/LnR5cGUgPT09ICdvcmNoZXN0cmF0b3InXG4gIC8vIEVsIG9yY2hlc3RyYXRvciB1c2EgZWwgaG9tZSBlbiAyIHBhc29zIChjb250ZXh0b3MgcmVjaWVudGVzIOKGlCBGQVFzL0ZVQXMpIGVuIGhlYWRlci9wcm9qZWN0L2NsaWVudC90YXNrLlxuICAvLyBFbiBwcm9qZWN0L2NsaWVudC90YXNrLCBhbCBsaW1waWFyIGVsIGNvbnRleHRvIChwLiBlai4gYWwgcmVzZWxlY2Npb25hciBNQUlBXG4gIC8vIGRlc2RlIGVsIGxpc3RhZG8gZGUgYWdlbnRlcykgc2UgbXVlc3RyYSBlbCBzZWxlY3RvciBkZSBjb250ZXh0b3MgcmVjaWVudGVzIGVuIGx1Z2FyIGRlIHVuIGhvbWUgdmFjw61vLlxuICBjb25zdCBpc09yY2hlc3RyYXRvciA9IGlzTUFJQSAmJiBhZ2VudD8udHlwZSA9PT0gJ29yY2hlc3RyYXRvcidcbiAgLy8gUGxhbm5lcjogaG9tZSBkZSBGVUFzIGRlbCBvcmNoZXN0cmF0b3IgKHNpbiBzZWxlY3RvciBkZSBjb250ZXh0b3MpLlxuICAvLyBTaSBlbCB1c3VhcmlvIG5hdmVnYSBhIE1haWFrZXIgdSBvdHJvIGFnZW50ZSwgc2VjdGlvbiBzaWd1ZSBzaWVuZG8gYHBsYW5uZXJgIHBlcm8geWEgbm8gZXMgZXN0ZSBob21lLlxuICBjb25zdCBpc1BsYW5uZXJIb21lID0gc2VjdGlvbiA9PT0gJ3BsYW5uZXInICYmIGlzT3JjaGVzdHJhdG9yXG4gIC8vIEhvbWVzIGRlIHNlY2Npw7NuIChwcm9qZWN0L2NsaWVudC90YXNrKTogc2luIGlzb2xvZ28sIGNvbnRlbmlkbyB0b3AtbGVmdCwgY29sdW1uYSA0NThweCBjZW50cmFkYS5cbiAgY29uc3QgaXNTZWN0aW9uT3JjaGVzdHJhdG9ySG9tZSA9IGlzT3JjaGVzdHJhdG9yICYmICFpc0hlYWRlckhvbWUgJiYgIWlzUGxhbm5lckhvbWVcbiAgY29uc3QgaGFzSG91cnNTdWJhZ2VudCA9IG9yY2hlc3RyYXRvckhhc0hvdXJzU3ViYWdlbnQoYWdlbnQpXG5cbiAgLy8gSG9tZSBkZWwgb3JjaGVzdHJhdG9yIGVuIDIgcGFzb3M6XG4gIC8vICAtIFBhc28gMSAoc2luIGNvbnRleHRvIHBpbmVhZG8pOiBzZSBtdWVzdHJhbiBzb2xvIGxvcyBjb250ZXh0b3MgcmVjaWVudGVzLlxuICAvLyAgLSBQYXNvIDIgKGNvbnRleHRvIHBpbmVhZG8pOiBzZSBtdWVzdHJhbiBsYXMgRkFRcy9hY2Npb25lcyBxdWUgcmVmZXJlbmNpYW4gZXNlIGNvbnRleHRvLlxuICBjb25zdCBoYXNQaW5uZWRDb250ZXh0ID0gISEodGFzaz8uaWQgfHwgY2hpcHNQcm9qZWN0Py5wcm9qZWN0SWQgfHwgY2xpZW50Py5pZCB8fCBwcm9qZWN0Py5pZClcbiAgY29uc3QgaXNSZWNlbnRDb250ZXh0c1N0ZXAgPSBpc09yY2hlc3RyYXRvciAmJiAhaGFzUGlubmVkQ29udGV4dCAmJiAhaXNQbGFubmVySG9tZVxuICAvLyBIZWFkZXIgcGFzbyAxIGNvbXBhY3RvIChzaW4gaXNvbG9nbywgcGlsbHMgZnVsbC13aWR0aCk6IGNvbGFib3JhZG9yIHkgbWFuYWdlcnMgKEMtTGV2ZWwvRGlyZWN0b3IvUE0pLlxuICBjb25zdCBpc0hlYWRlclRhc2tDb250ZXh0SG9tZSA9XG4gICAgc2VjdGlvbiA9PT0gJ2hlYWRlcicgJiYgaXNSZWNlbnRDb250ZXh0c1N0ZXAgJiYgKGlzQ29sbGFib3JhdG9yUm9sZSh1c2VyLnJvbGVfaWQpIHx8IGlzTWFuYWdlclJvbGUodXNlci5yb2xlX2lkKSlcbiAgLy8gQmxvcXVlIOKAnENhcmdhIGhvcmFz4oCdICsgc2VjY2nDs24gZGUgdGFyZWFzIHJlY2llbnRlcyBjb24gdMOtdHVsb3MgKGNvbGFib3JhZG9yIG8gbWFuYWdlciBjb24gaG91cikuXG4gIGNvbnN0IGlzSGVhZGVySG91cnNBZ2VudEhvbWUgPSBpc0hlYWRlclRhc2tDb250ZXh0SG9tZSAmJiBoYXNIb3Vyc1N1YmFnZW50XG4gIGNvbnN0IGlzSGVhZGVyTWFuYWdlckhvdXJzSG9tZSA9IGlzSGVhZGVySG91cnNBZ2VudEhvbWUgJiYgaXNNYW5hZ2VyUm9sZSh1c2VyLnJvbGVfaWQpXG4gIGNvbnN0IGhlYWRlclRhc2tDb250ZXh0U3VidGl0bGVLZXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNIZWFkZXJIb3Vyc0FnZW50SG9tZSkge1xuICAgICAgaWYgKGlzSGVhZGVyTWFuYWdlckhvdXJzSG9tZSkgcmV0dXJuICdob21lTWVudS5jb250ZXh0SG9tZS5zdWJ0aXRsZU1hbmFnZXJXaXRoSG91cnMnXG4gICAgICByZXR1cm4gJ2hvbWVNZW51LmNvbnRleHRIb21lLnN1YnRpdGxlQ29sbGFib3JhdG9yV2l0aEhvdXJzJ1xuICAgIH1cbiAgICBpZiAoaXNNYW5hZ2VyUm9sZSh1c2VyLnJvbGVfaWQpKSByZXR1cm4gJ2hvbWVNZW51LmNvbnRleHRIb21lLnN1YnRpdGxlJ1xuICAgIHJldHVybiAnaG9tZU1lbnUuY29udGV4dEhvbWUuc3VidGl0bGVDb2xsYWJvcmF0b3InXG4gIH0sIFtpc0hlYWRlckhvdXJzQWdlbnRIb21lLCBpc0hlYWRlck1hbmFnZXJIb3Vyc0hvbWUsIHVzZXIucm9sZV9pZF0pXG4gIGNvbnN0IGlzQ29udGV4dEhvbWVTdGVwID0gaXNIZWFkZXJIb21lICYmIGhhc1Bpbm5lZENvbnRleHRcbiAgLy8gSGVhZGVyIHBhc28gMiAoRkFRcy9GVUFzIGNvbiBjb250ZXh0bykgeSBob21lcyBkZSBzZWNjacOzbiBjb21wYXJ0ZW4gbGF5b3V0OiBzaW4gaXNvbG9nbywgdGV4dG8gYSBsYSBpenF1aWVyZGEuXG4gIGNvbnN0IGlzTGVmdEFsaWduZWRPcmNoZXN0cmF0b3JIb21lID0gaXNTZWN0aW9uT3JjaGVzdHJhdG9ySG9tZSB8fCBpc0NvbnRleHRIb21lU3RlcFxuXG4gIGNvbnN0IGFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lKSByZXR1cm4gZ2V0QWxsb3dlZFJlY2VudENvbnRleHRUeXBlcyh1c2VyLnJvbGVfaWQpXG4gICAgaWYgKGlzSGVhZGVyVGFza0NvbnRleHRIb21lICYmIGlzTWFuYWdlclJvbGUodXNlci5yb2xlX2lkKSkgcmV0dXJuIGdldEFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXModXNlci5yb2xlX2lkKVxuICAgIGlmIChpc0hlYWRlclRhc2tDb250ZXh0SG9tZSkgcmV0dXJuIG5ldyBTZXQ8UmVjZW50Q29udGV4dFR5cGU+KFsndGFzayddKVxuICAgIHJldHVybiBnZXRBbGxvd2VkUmVjZW50Q29udGV4dFR5cGVzKHVzZXIucm9sZV9pZClcbiAgfSwgW3VzZXIucm9sZV9pZCwgaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lLCBpc0hlYWRlclRhc2tDb250ZXh0SG9tZV0pXG4gIGNvbnN0IHsgY29udGV4dHM6IGZldGNoZWRSZWNlbnRDb250ZXh0cywgbG9hZGluZzogcmVjZW50Q29udGV4dHNMb2FkaW5nIH0gPSB1c2VSZWNlbnRDb250ZXh0cyh7XG4gICAgZW5hYmxlZDogaXNPcmNoZXN0cmF0b3IgJiYgIWlzUGxhbm5lckhvbWUsXG4gICAgbGltaXQ6IFJFQ0VOVF9DT05URVhUU19MSU1JVCxcbiAgfSlcbiAgY29uc3QgcmVjZW50Q29udGV4dHMgPSB1c2VNZW1vKFxuICAgICgpID0+IGZldGNoZWRSZWNlbnRDb250ZXh0cy5maWx0ZXIoY29udGV4dCA9PiBhbGxvd2VkUmVjZW50Q29udGV4dFR5cGVzLmhhcyhjb250ZXh0LnR5cGUpKSxcbiAgICBbZmV0Y2hlZFJlY2VudENvbnRleHRzLCBhbGxvd2VkUmVjZW50Q29udGV4dFR5cGVzXVxuICApXG5cbiAgLy8gQ29udGV4dG8gYWN0aXZvIHBhcmEgZGVyaXZhciBGQVFzL2FjY2lvbmVzIChwYXNvIDIpLiBQcmVmZXJpbW9zIGVsIHBpbGwgY2xpY2tlYWRvO1xuICAvLyBzaSBubywgbG8gcmVjb25zdHJ1aW1vcyBkZXNkZSBlbCBjb250ZXh0byBnbG9iYWwuXG4gIGNvbnN0IFtzZWxlY3RlZENvbnRleHQsIHNldFNlbGVjdGVkQ29udGV4dF0gPSB1c2VTdGF0ZTxSZWNlbnRDb250ZXh0SXRlbSB8IG51bGw+KG51bGwpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFoYXNQaW5uZWRDb250ZXh0KSBzZXRTZWxlY3RlZENvbnRleHQobnVsbClcbiAgfSwgW2hhc1Bpbm5lZENvbnRleHRdKVxuXG4gIGNvbnN0IGFjdGl2ZUNvbnRleHQgPSB1c2VNZW1vPFJlY2VudENvbnRleHRJdGVtIHwgbnVsbD4oKCkgPT4ge1xuICAgIGlmIChzZWxlY3RlZENvbnRleHQpIHJldHVybiBzZWxlY3RlZENvbnRleHRcbiAgICBpZiAoIWlzQ29udGV4dEhvbWVTdGVwKSByZXR1cm4gbnVsbFxuICAgIGlmICh0YXNrPy5pZCkgcmV0dXJuIHsgdHlwZTogJ3Rhc2snLCBpZDogdGFzay5pZCwgbmFtZTogdGFzay5uYW1lIH1cbiAgICBpZiAoY2hpcHNQcm9qZWN0Py5wcm9qZWN0SWQpIHJldHVybiB7IHR5cGU6ICdwcm9qZWN0JywgaWQ6IGNoaXBzUHJvamVjdC5wcm9qZWN0SWQsIG5hbWU6IGNoaXBzUHJvamVjdC5wcm9qZWN0TmFtZSB9XG4gICAgaWYgKGNsaWVudD8uaWQpIHJldHVybiB7IHR5cGU6ICdjbGllbnQnLCBpZDogY2xpZW50LmlkLCBuYW1lOiBjbGllbnQubmFtZSB9XG4gICAgcmV0dXJuIG51bGxcbiAgfSwgW1xuICAgIHNlbGVjdGVkQ29udGV4dCxcbiAgICBpc0NvbnRleHRIb21lU3RlcCxcbiAgICB0YXNrPy5pZCxcbiAgICB0YXNrPy5uYW1lLFxuICAgIGNoaXBzUHJvamVjdD8ucHJvamVjdElkLFxuICAgIGNoaXBzUHJvamVjdD8ucHJvamVjdE5hbWUsXG4gICAgY2xpZW50Py5pZCxcbiAgICBjbGllbnQ/Lm5hbWUsXG4gIF0pXG5cbiAgLy8gZW50aXR5X3R5cGUgZGVsIGNvbnRleHRvIHBpbmVhZG8gKHByb2plY3QvY2xpZW50L3Rhc2spLCB0b21hZG8gZGVsIGNvbnRleHRvIGdsb2JhbC5cbiAgLy8gQXBsaWNhIHRhbnRvIGFsIGFicmlyIE1BSUEgZGVzZGUgdW5hIHNlY2Npw7NuIGVzcGVjw61maWNhIGNvbW8gYWwgY2FtYmlhciBkZSBjb252ZXJzYWNpw7NuLlxuICBjb25zdCBwaW5uZWRFbnRpdHlUeXBlID0gdXNlTWVtbzxSZWNlbnRDb250ZXh0VHlwZSB8IHVuZGVmaW5lZD4oKCkgPT4ge1xuICAgIGlmICh0YXNrPy5pZCkgcmV0dXJuICd0YXNrJ1xuICAgIGlmIChjaGlwc1Byb2plY3Q/LnByb2plY3RJZCB8fCBwcm9qZWN0Py5pZCkgcmV0dXJuICdwcm9qZWN0J1xuICAgIGlmIChjbGllbnQ/LmlkKSByZXR1cm4gJ2NsaWVudCdcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH0sIFt0YXNrPy5pZCwgY2hpcHNQcm9qZWN0Py5wcm9qZWN0SWQsIHByb2plY3Q/LmlkLCBjbGllbnQ/LmlkXSlcblxuICAvLyBFbiBwcm9qZWN0L2NsaWVudC90YXNrLCBjb24gZWwgcmVpbmljaW8gZGUgY29udGV4dG8gZWwgdXN1YXJpbyBwdWVkZSBwaW5lYXIgdW4gY29udGV4dG8gZGUgdW5cbiAgLy8gdGlwbyBkaXN0aW50byBhbCBkZSBsYSBzZWNjacOzbiBkZSBhcGVydHVyYSAocC4gZWouIHVuIHByb2plY3QgYWJyaWVuZG8gZGVzZGUgdW5hIHRhcmVhLCBvXG4gIC8vIHZpY2V2ZXJzYSkuIExhcyBGQVFzL0ZVQXMgZGViZW4gZGVwZW5kZXIgZGVsIGNvbnRleHRvIHJlYWxtZW50ZSBwaW5lYWRvLCBubyBkZSBsYSBzZWNjacOzbiBmaWphLlxuICAvLyBFbiBlbCBoZWFkZXIgc2UgbWFudGllbmUgbGEgbMOzZ2ljYSBleGlzdGVudGUgKGJhc2FkYSBlbiBlbCBjb250ZXh0byBzZWxlY2Npb25hZG8gLyBhY3RpdmVDb250ZXh0KS5cbiAgY29uc3QgaXNUYXNrQ29udGV4dCA9ICFpc0hlYWRlckhvbWUgJiYgcGlubmVkRW50aXR5VHlwZSA9PT0gJ3Rhc2snXG4gIC8vIFNvbG8gRlVBcyAoc2luIEZBUXMpOiB0YXNrIHBhbmVsIG8gcGxhbm5lci5cbiAgY29uc3QgaXNGdWFzT25seUhvbWUgPSBpc1BsYW5uZXJIb21lIHx8IGlzVGFza0NvbnRleHRcbiAgLy8gYHNlY3Rpb25gIHF1ZSBzZSBjb25zdWx0YSBwYXJhIGxhcyBGVUFzOiBlbiBuby1oZWFkZXIgc2lndWUgZWwgdGlwbyBkZSBjb250ZXh0byBwaW5lYWRvLlxuICAvLyBFbiBwbGFubmVyIHNlIGZ1ZXJ6YSBsYSBzZWN0aW9uIEFQSSBgcGxhbm5lcmAuXG4gIGNvbnN0IGZ1YXNTZWN0aW9uOiBTZWN0aW9uID0gKCgpID0+IHtcbiAgICBpZiAoaXNQbGFubmVySG9tZSkgcmV0dXJuICdwbGFubmVyJ1xuICAgIGlmICghaXNIZWFkZXJIb21lICYmIHBpbm5lZEVudGl0eVR5cGUpIHJldHVybiBwaW5uZWRFbnRpdHlUeXBlXG4gICAgcmV0dXJuIHNlY3Rpb25cbiAgfSkoKVxuXG4gIC8vIEZBUXMvYWNjaW9uZXM6XG4gIC8vICAtIGhlYWRlci1ob21lIChvcmNoZXN0cmF0b3IpLCBwYXNvIDI6IGZpbHRyYWRhcyBwb3IgYGVudGl0eV90eXBlYCBkZWwgY29udGV4dG8gc2VsZWNjaW9uYWRvLlxuICAvLyAgLSBob21lcyBkZSBwcm95ZWN0by9jbGllbnRlL3RhcmVhIChzZWNjacOzbik6IGZpbHRyYWRhcyBwb3IgZWwgYGVudGl0eV90eXBlYCBkZWwgY29udGV4dG8gc2V0ZWFkby5cbiAgLy8gIC0gcGxhbm5lcjogRlVBcyBjb24gc2VjdGlvbj1wbGFubmVyLCBzaW4gZW50aXR5X3R5cGUgbmkgRkFRcy5cbiAgY29uc3QgcmVhbExpc3RzQWdlbnRJZCA9ICgoKSA9PiB7XG4gICAgaWYgKCFpc01BSUEgfHwgaXNNYWlha2VyKSByZXR1cm4gdW5kZWZpbmVkXG4gICAgLy8gUGFzbyAxIChjb250ZXh0b3MgcmVjaWVudGVzLCBzaW4gY29udGV4dG8pOiBubyBzZSBwaWRlbiBGQVFzL0ZVQXMuXG4gICAgaWYgKGlzUmVjZW50Q29udGV4dHNTdGVwKSByZXR1cm4gdW5kZWZpbmVkXG4gICAgaWYgKGlzSGVhZGVySG9tZSkgcmV0dXJuIGlzQ29udGV4dEhvbWVTdGVwID8gYWdlbnQ/LmlkIDogdW5kZWZpbmVkXG4gICAgcmV0dXJuIGFnZW50Py5pZFxuICB9KSgpXG4gIGNvbnN0IHJlYWxMaXN0c0VudGl0eVR5cGUgPSAoKCkgPT4ge1xuICAgIGlmIChpc1BsYW5uZXJIb21lKSByZXR1cm4gJ3BsYW5uZXInXG4gICAgaWYgKCFpc0hlYWRlckhvbWUpIHJldHVybiBwaW5uZWRFbnRpdHlUeXBlXG4gICAgcmV0dXJuIGlzQ29udGV4dEhvbWVTdGVwID8gKGFjdGl2ZUNvbnRleHQ/LnR5cGUgPz8gcGlubmVkRW50aXR5VHlwZSkgOiB1bmRlZmluZWRcbiAgfSkoKVxuICBjb25zdCB7IGFjdGlvbnM6IGFnZW50RnVhcywgbG9hZGluZzogZnVhc0xvYWRpbmcgfSA9IHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyhcbiAgICByZWFsTGlzdHNBZ2VudElkLFxuICAgIGZ1YXNTZWN0aW9uLFxuICAgIHJlYWxMaXN0c0VudGl0eVR5cGVcbiAgKVxuICBjb25zdCB7IGFjdGlvbnM6IGNvbGxhYm9yYXRvclBsYW5uZXJGdWFzLCBsb2FkaW5nOiBjb2xsYWJvcmF0b3JQbGFubmVyRnVhc0xvYWRpbmcgfSA9IHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyhcbiAgICBpc0hlYWRlckhvdXJzQWdlbnRIb21lICYmICFpc0hlYWRlck1hbmFnZXJIb3Vyc0hvbWUgPyBhZ2VudD8uaWQgOiB1bmRlZmluZWQsXG4gICAgJ3BsYW5uZXInXG4gIClcbiAgY29uc3QgeyBhY3Rpb25zOiBtYW5hZ2VySG9tZUZ1YXNSYXcsIGxvYWRpbmc6IG1hbmFnZXJIb21lRnVhc0xvYWRpbmcgfSA9IHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyhcbiAgICBpc0hlYWRlck1hbmFnZXJIb3Vyc0hvbWUgPyBhZ2VudD8uaWQgOiB1bmRlZmluZWQsXG4gICAgJ2hlYWRlcidcbiAgKVxuICBjb25zdCBoZWFkZXJIb3Vyc0Z1YXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lKSByZXR1cm4gc2VsZWN0TWFuYWdlckhvdXJzSG9tZUZ1YXMobWFuYWdlckhvbWVGdWFzUmF3KVxuICAgIHJldHVybiBjb2xsYWJvcmF0b3JQbGFubmVyRnVhc1xuICB9LCBbaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lLCBtYW5hZ2VySG9tZUZ1YXNSYXcsIGNvbGxhYm9yYXRvclBsYW5uZXJGdWFzXSlcbiAgY29uc3QgaGVhZGVySG91cnNGdWFzTG9hZGluZyA9IGlzSGVhZGVyTWFuYWdlckhvdXJzSG9tZSA/IG1hbmFnZXJIb21lRnVhc0xvYWRpbmcgOiBjb2xsYWJvcmF0b3JQbGFubmVyRnVhc0xvYWRpbmdcbiAgY29uc3Qge1xuICAgIGZhcXM6IGFnZW50RmFxcyxcbiAgICBsb2FkaW5nOiBmYXFzTG9hZGluZyxcbiAgICBoYW5kbGVHZXRGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMsXG4gIH0gPSB1c2VGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMocmVhbExpc3RzQWdlbnRJZCwgbGFuZywgcmVhbExpc3RzRW50aXR5VHlwZSlcbiAgY29uc3QgZmFxc0ZldGNoUmVmID0gdXNlUmVmPHsgYWdlbnRJZDogc3RyaW5nOyBsYW5nOiBzdHJpbmc7IGVudGl0eVR5cGU/OiBzdHJpbmcgfSB8IG51bGw+KG51bGwpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gVGFzayAvIHBsYW5uZXI6IHNvbG8gRlVBcywgc2luIEZBUXMuXG4gICAgaWYgKCFyZWFsTGlzdHNBZ2VudElkIHx8IGlzRnVhc09ubHlIb21lKSByZXR1cm5cbiAgICBjb25zdCBjdXJyZW50S2V5ID0gYCR7cmVhbExpc3RzQWdlbnRJZH0tJHtsYW5nfS0ke3JlYWxMaXN0c0VudGl0eVR5cGUgPz8gJ2FsbCd9YFxuICAgIGNvbnN0IGxhc3RLZXkgPSBmYXFzRmV0Y2hSZWYuY3VycmVudFxuICAgICAgPyBgJHtmYXFzRmV0Y2hSZWYuY3VycmVudC5hZ2VudElkfS0ke2ZhcXNGZXRjaFJlZi5jdXJyZW50Lmxhbmd9LSR7ZmFxc0ZldGNoUmVmLmN1cnJlbnQuZW50aXR5VHlwZSA/PyAnYWxsJ31gXG4gICAgICA6IG51bGxcbiAgICBpZiAoY3VycmVudEtleSAhPT0gbGFzdEtleSkge1xuICAgICAgZmFxc0ZldGNoUmVmLmN1cnJlbnQgPSB7IGFnZW50SWQ6IHJlYWxMaXN0c0FnZW50SWQsIGxhbmcsIGVudGl0eVR5cGU6IHJlYWxMaXN0c0VudGl0eVR5cGUgfVxuICAgICAgaGFuZGxlR2V0RnJlcXVlbnRseUFza2VkUXVlc3Rpb25zKHsgYWdlbnRJZDogcmVhbExpc3RzQWdlbnRJZCwgbGFuZywgZW50aXR5VHlwZTogcmVhbExpc3RzRW50aXR5VHlwZSB9KVxuICAgIH1cbiAgfSwgW3JlYWxMaXN0c0FnZW50SWQsIHJlYWxMaXN0c0VudGl0eVR5cGUsIGlzRnVhc09ubHlIb21lLCBsYW5nLCBoYW5kbGVHZXRGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNdKVxuXG4gIGNvbnN0IGZhcXMgPSBhZ2VudEZhcXNcbiAgY29uc3QgZnVhcyA9IGFnZW50RnVhc1xuICBjb25zdCBmYXFzQXJlTG9hZGluZyA9IGZhcXNMb2FkaW5nXG4gIGNvbnN0IGZ1YXNBcmVMb2FkaW5nID0gZnVhc0xvYWRpbmdcblxuICBjb25zdCBzaG93UmVjZW50Q29udGV4dHNCbG9jayA9IGlzUmVjZW50Q29udGV4dHNTdGVwICYmIChyZWNlbnRDb250ZXh0c0xvYWRpbmcgfHwgcmVjZW50Q29udGV4dHMubGVuZ3RoID4gMClcbiAgY29uc3Qgc2hvdWxkU2hvd0ZhcXMgPVxuICAgICFpc1JlY2VudENvbnRleHRzU3RlcCAmJlxuICAgICFpc0Z1YXNPbmx5SG9tZSAmJlxuICAgIChpc0NvbnRleHRIb21lU3RlcCB8fCAoIWlzSGVhZGVySG9tZSAmJiBmYXFzQWNjZXNzKSkgJiZcbiAgICAhaXNNYWlha2VyICYmXG4gICAgKGZhcXMubGVuZ3RoID4gMCB8fCBmYXFzQXJlTG9hZGluZylcbiAgY29uc3Qgc2hvdWxkU2hvd0Z1YXMgPVxuICAgICFpc1JlY2VudENvbnRleHRzU3RlcCAmJiAhaXNNYWlha2VyICYmIChpc0NvbnRleHRIb21lU3RlcCB8fCAhaXNIZWFkZXJIb21lKSAmJiAoZnVhcy5sZW5ndGggPiAwIHx8IGZ1YXNBcmVMb2FkaW5nKVxuICBjb25zdCBzaG91bGRTaG93UGxhbm5lckZ1YXNMb2FkaW5nID0gaXNIZWFkZXJIb3Vyc0FnZW50SG9tZSAmJiBoZWFkZXJIb3Vyc0Z1YXNMb2FkaW5nICYmIGhlYWRlckhvdXJzRnVhcy5sZW5ndGggPT09IDBcbiAgY29uc3Qgc2hvdWxkU2hvd1BsYW5uZXJGdWFzQ29udGVudCA9IGlzSGVhZGVySG91cnNBZ2VudEhvbWUgJiYgaGVhZGVySG91cnNGdWFzLmxlbmd0aCA+IDBcbiAgY29uc3Qgc2hvdWxkU2hvd1BsYW5uZXJGdWFzID0gc2hvdWxkU2hvd1BsYW5uZXJGdWFzTG9hZGluZyB8fCBzaG91bGRTaG93UGxhbm5lckZ1YXNDb250ZW50XG5cbiAgY29uc3Qgc2hvd1Byb2plY3RTdW1tYXJ5Q2FyZCA9IHNob3dQcm9qZWN0U3VtbWFyeSAmJiBhZ2VudD8uZW50aXR5ID09PSAncHJvamVjdCdcbiAgY29uc3Qgc2hvd0ZBUXMgPSAhIShcbiAgICBzaG93UmVjZW50Q29udGV4dHNCbG9jayB8fFxuICAgIHNob3VsZFNob3dGYXFzIHx8XG4gICAgc2hvdWxkU2hvd0Z1YXMgfHxcbiAgICBzaG91bGRTaG93UGxhbm5lckZ1YXMgfHxcbiAgICBzaG93UHJvamVjdFN1bW1hcnlDYXJkIHx8XG4gICAgaXNNYWlha2VyXG4gIClcbiAgY29uc3QgaG9tZVNjcm9sbGFibGVMYXlvdXQgPSBzaG93RkFRc1xuICBjb25zdCBzaG93RHluYW1pY1NlY3Rpb24gPVxuICAgIHNob3dSZWNlbnRDb250ZXh0c0Jsb2NrIHx8IHNob3VsZFNob3dGYXFzIHx8IHNob3VsZFNob3dGdWFzIHx8IHNob3VsZFNob3dQbGFubmVyRnVhcyB8fCBpc01haWFrZXJcblxuICAvLyBMw7NnaWNhIGRlbCBzY3JvbGwgY29uIGdyYWRpZW50ZXNcbiAgY29uc3QgY29udGVudENvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgW3Nob3dUb3BHcmFkaWVudCwgc2V0U2hvd1RvcEdyYWRpZW50XSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2hvd0JvdHRvbUdyYWRpZW50LCBzZXRTaG93Qm90dG9tR3JhZGllbnRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtpc1Njcm9sbGluZywgc2V0SXNTY3JvbGxpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHNjcm9sbFRpbWVvdXRSZWYgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsPihudWxsKVxuXG4gIC8vIFNhbHVkbyBmaWpvIHBvciB0aXBvIGRlIGNvbnRleHRvIChpMThuKS4gQ3VzdG9tIGFnZW50cyBzaWd1ZW4gdXNhbmRvIGFnZW50LmludHJvZHVjdGlvbi5cbiAgLy8gUGxhbm5lciB1c2EgdMOtdHVsbyArIGJhamFkYSBwcm9waW9zIChgcGxhbm5lckhvbWVgKSwgbm8gZXN0ZSBncmVldGluZy5cbiAgY29uc3QgZ3JlZXRpbmcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNNYWlha2VyIHx8IGlzUGxhbm5lckhvbWUgfHwgaXNSZWNlbnRDb250ZXh0c1N0ZXApIHJldHVybiAnJ1xuXG4gICAgaWYgKGlzTUFJQSAmJiBwaW5uZWRFbnRpdHlUeXBlKSB7XG4gICAgICByZXR1cm4gdChgaG9tZU1lbnUuY29udGV4dEhvbWUuY29udGV4dEdyZWV0aW5nLiR7cGlubmVkRW50aXR5VHlwZX1gKVxuICAgIH1cblxuICAgIGNvbnN0IGludHJvID0gYWdlbnQ/LmludHJvZHVjdGlvblxuICAgIGlmICghaW50cm8pIHJldHVybiAnJ1xuICAgIGlmIChBcnJheS5pc0FycmF5KGludHJvKSAmJiBpbnRyby5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gaW50cm9bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogaW50cm8ubGVuZ3RoKV1cbiAgICB9XG4gICAgcmV0dXJuIHR5cGVvZiBpbnRybyA9PT0gJ3N0cmluZycgPyBpbnRybyA6ICcnXG4gIH0sIFthZ2VudD8uaWQsIGFnZW50Py5pbnRyb2R1Y3Rpb24sIGlzTWFpYWtlciwgaXNQbGFubmVySG9tZSwgaXNNQUlBLCBwaW5uZWRFbnRpdHlUeXBlLCBpc1JlY2VudENvbnRleHRzU3RlcCwgdF0pXG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0UmVjZW50Q29udGV4dCA9IHVzZUNhbGxiYWNrKFxuICAgIChjb250ZXh0OiBSZWNlbnRDb250ZXh0SXRlbSwgb3JkZXI6IG51bWJlcikgPT4ge1xuICAgICAgZXZlbnQoRVZFTlRTLmFpQ2hhdENvbnRleHRTZWxlY3RlZCwgeyBvcmRlciwgdHlwZTogY29udGV4dC50eXBlIH0pXG5cbiAgICAgIGNvbnN0IGNvbnRleHRJZCA9IHBhcnNlTnVtZXJpY0lkKGNvbnRleHQuaWQpXG4gICAgICBjb25zdCBjbGllbnRJZCA9IHBhcnNlTnVtZXJpY0lkKGNvbnRleHQucGFyZW50cz8uY2xpZW50X2lkKVxuICAgICAgY29uc3QgcHJvamVjdElkID0gcGFyc2VOdW1lcmljSWQoY29udGV4dC5wYXJlbnRzPy5wcm9qZWN0X2lkKVxuICAgICAgY29uc3QgY2xpZW50TmFtZSA9IGNvbnRleHQucGFyZW50cz8uY2xpZW50X25hbWUgfHwgJydcbiAgICAgIGNvbnN0IHByb2plY3ROYW1lID0gY29udGV4dC5wYXJlbnRzPy5wcm9qZWN0X25hbWUgfHwgJydcblxuICAgICAgc2V0U2VsZWN0ZWRDb250ZXh0KGNvbnRleHQpXG4gICAgICBzZXRUYXNrKG51bGwpXG4gICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG5cbiAgICAgIGlmIChjb250ZXh0LnR5cGUgPT09ICdjbGllbnQnKSB7XG4gICAgICAgIGlmIChjb250ZXh0SWQgPT0gbnVsbCkgcmV0dXJuXG4gICAgICAgIHNldENsaWVudD8uKHsgaWQ6IGNvbnRleHRJZCwgbmFtZTogY29udGV4dC5uYW1lIH0pXG4gICAgICB9IGVsc2UgaWYgKGNvbnRleHQudHlwZSA9PT0gJ3Byb2plY3QnKSB7XG4gICAgICAgIGlmIChjb250ZXh0SWQgPT0gbnVsbCkgcmV0dXJuXG4gICAgICAgIHNldFByb2plY3Qoe1xuICAgICAgICAgIGlkOiBjb250ZXh0SWQsXG4gICAgICAgICAgbmFtZTogY29udGV4dC5uYW1lLFxuICAgICAgICAgIC4uLihjbGllbnRJZCAhPSBudWxsID8geyBjbGllbnRJZCB9IDoge30pLFxuICAgICAgICAgIC4uLihjbGllbnRJZCAhPSBudWxsID8geyBjbGllbnQ6IHsgaWQ6IGNsaWVudElkLCBuYW1lOiBjbGllbnROYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgfSlcbiAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KHtcbiAgICAgICAgICBwcm9qZWN0SWQ6IFN0cmluZyhjb250ZXh0SWQpLFxuICAgICAgICAgIHByb2plY3ROYW1lOiBjb250ZXh0Lm5hbWUsXG4gICAgICAgICAgY2xpZW50TmFtZSxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSBpZiAoY29udGV4dC50eXBlID09PSAndGFzaycpIHtcbiAgICAgICAgc2V0VGFzayh7XG4gICAgICAgICAgaWQ6IGNvbnRleHQuaWQsXG4gICAgICAgICAgbmFtZTogY29udGV4dC5uYW1lLFxuICAgICAgICAgIC4uLihwcm9qZWN0SWQgIT0gbnVsbCA/IHsgcHJvamVjdElkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudElkIH0gOiB7fSksXG4gICAgICAgIH0pXG4gICAgICAgIGlmIChjbGllbnRJZCAhPSBudWxsKSB7XG4gICAgICAgICAgc2V0Q2xpZW50Py4oeyBpZDogY2xpZW50SWQsIG5hbWU6IGNsaWVudE5hbWUgfSlcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvamVjdElkICE9IG51bGwpIHtcbiAgICAgICAgICBzZXRQcm9qZWN0KHtcbiAgICAgICAgICAgIGlkOiBwcm9qZWN0SWQsXG4gICAgICAgICAgICBuYW1lOiBwcm9qZWN0TmFtZSB8fCBgJHt0KCdob21lTWVudS5yZWNlbnRDb250ZXh0cy50eXBlcy5wcm9qZWN0Jyl9ICR7cHJvamVjdElkfWAsXG4gICAgICAgICAgICAuLi4oY2xpZW50SWQgIT0gbnVsbCA/IHsgY2xpZW50SWQgfSA6IHt9KSxcbiAgICAgICAgICAgIC4uLihjbGllbnRJZCAhPSBudWxsID8geyBjbGllbnQ6IHsgaWQ6IGNsaWVudElkLCBuYW1lOiBjbGllbnROYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHNldENoaXBzUHJvamVjdCh7XG4gICAgICAgICAgICBwcm9qZWN0SWQ6IFN0cmluZyhwcm9qZWN0SWQpLFxuICAgICAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3ROYW1lIHx8IGAke3QoJ2hvbWVNZW51LnJlY2VudENvbnRleHRzLnR5cGVzLnByb2plY3QnKX0gJHtwcm9qZWN0SWR9YCxcbiAgICAgICAgICAgIGNsaWVudE5hbWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnbWFpYS1pbnB1dC1yZWZvY3VzJykpXG4gICAgICB9KVxuICAgIH0sXG4gICAgW2V2ZW50LCBzZXRDaGlwc1Byb2plY3QsIHNldENsaWVudCwgc2V0UHJvamVjdCwgc2V0VGFzaywgdF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUhvbWVTdGFydENoYXQgPSB1c2VDYWxsYmFjayhcbiAgICAoXG4gICAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10gfCBudWxsLFxuICAgICAgZmFxSWQ/OiBzdHJpbmcsXG4gICAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZyxcbiAgICAgIG1lbnRpb25zPzogbnVsbCxcbiAgICAgIGZ1YUlkPzogc3RyaW5nXG4gICAgKSA9PiB7XG4gICAgICBpZiAoaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lICYmIGZ1YUlkKSB7XG4gICAgICAgIGZsdXNoU3luYygoKSA9PiB7XG4gICAgICAgICAgc2V0U2VsZWN0ZWRDb250ZXh0KG51bGwpXG4gICAgICAgICAgc2V0VGFzayhudWxsKVxuICAgICAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgICAgIHNldENoaXBzUHJvamVjdChudWxsKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgb25TdGFydENoYXQobWVzc2FnZSwgYXR0YWNobWVudHMsIGZhcUlkLCBhZ2VudFN1Z2dlc3Rpb25JZCwgbWVudGlvbnMsIGZ1YUlkKVxuICAgIH0sXG4gICAgW2lzSGVhZGVyTWFuYWdlckhvdXJzSG9tZSwgb25TdGFydENoYXQsIHNldENoaXBzUHJvamVjdCwgc2V0Q2xpZW50LCBzZXRQcm9qZWN0LCBzZXRUYXNrXVxuICApXG5cbiAgY29uc3QgcmVuZGVyUmVjZW50Q29udGV4dHMgPSAoKSA9PiB7XG4gICAgaWYgKCFpc1JlY2VudENvbnRleHRzU3RlcCkgcmV0dXJuIG51bGxcblxuICAgIHJldHVybiAoXG4gICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dHNcbiAgICAgICAgJGZpeGVkQ29udGVudFdpZHRoPXtpc0hlYWRlclRhc2tDb250ZXh0SG9tZSA/IE1BSUFfSEVBREVSX0NPTExBQk9SQVRPUl9IT01FX0NPTlRFTlRfV0lEVEhfUFggOiB1bmRlZmluZWR9XG4gICAgICAgICRjb250ZW50R2FwPXtpc0hlYWRlckhvdXJzQWdlbnRIb21lID8gOCA6IHVuZGVmaW5lZH1cbiAgICAgID5cbiAgICAgICAge2lzSGVhZGVySG91cnNBZ2VudEhvbWUgPyAoXG4gICAgICAgICAgPFNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvbkhlYWRlcj5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25UaXRsZT5cbiAgICAgICAgICAgICAge3QoXG4gICAgICAgICAgICAgICAgaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lXG4gICAgICAgICAgICAgICAgICA/ICdob21lTWVudS5jb250ZXh0SG9tZS5yZWNlbnRDb250ZXh0c1NlY3Rpb25NYW5hZ2VyLnRpdGxlJ1xuICAgICAgICAgICAgICAgICAgOiAnaG9tZU1lbnUuY29udGV4dEhvbWUucmVjZW50VGFza3NTZWN0aW9uLnRpdGxlJ1xuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25UaXRsZT5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25TdWJ0aXRsZT5cbiAgICAgICAgICAgICAge3QoXG4gICAgICAgICAgICAgICAgaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lXG4gICAgICAgICAgICAgICAgICA/ICdob21lTWVudS5jb250ZXh0SG9tZS5yZWNlbnRDb250ZXh0c1NlY3Rpb25NYW5hZ2VyLnN1YnRpdGxlJ1xuICAgICAgICAgICAgICAgICAgOiAnaG9tZU1lbnUuY29udGV4dEhvbWUucmVjZW50VGFza3NTZWN0aW9uLnN1YnRpdGxlJ1xuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25TdWJ0aXRsZT5cbiAgICAgICAgICA8L1NDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvbkhlYWRlcj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c0xpc3QgJGZsdXNoUGlsbHM9e2lzSGVhZGVyVGFza0NvbnRleHRIb21lfT5cbiAgICAgICAgICB7cmVjZW50Q29udGV4dHNMb2FkaW5nICYmXG4gICAgICAgICAgICBSRUNFTlRfQ09OVEVYVF9TS0VMRVRPTl9LRVlTLm1hcChrZXkgPT4gPFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsU2tlbGV0b24ga2V5PXtrZXl9IC8+KX1cbiAgICAgICAgICB7IXJlY2VudENvbnRleHRzTG9hZGluZyAmJlxuICAgICAgICAgICAgcmVjZW50Q29udGV4dHMubWFwKChjb250ZXh0LCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICA8UmVjZW50Q29udGV4dFBpbGxcbiAgICAgICAgICAgICAgICBrZXk9e2Ake2NvbnRleHQudHlwZX0tJHtjb250ZXh0LmlkfWB9XG4gICAgICAgICAgICAgICAgY29udGV4dD17Y29udGV4dH1cbiAgICAgICAgICAgICAgICBsYWJlbD17Y29udGV4dC5uYW1lLnRyaW0oKX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVTZWxlY3RSZWNlbnRDb250ZXh0KGNvbnRleHQsIGluZGV4ICsgMSl9XG4gICAgICAgICAgICAgICAgZnVsbFdpZHRoPXtpc0hlYWRlclRhc2tDb250ZXh0SG9tZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkpfVxuICAgICAgICA8L1NDQ0FJSG9tZVJlY2VudENvbnRleHRzTGlzdD5cbiAgICAgIDwvU0NDQUlIb21lUmVjZW50Q29udGV4dHM+XG4gICAgKVxuICB9XG5cbiAgY29uc3QgY2hlY2tTY3JvbGwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gY29udGVudENvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250YWluZXIgfHwgIWhvbWVTY3JvbGxhYmxlTGF5b3V0KSByZXR1cm5cblxuICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gY29udGFpbmVyXG4gICAgY29uc3QgaXNTY3JvbGxhYmxlID0gc2Nyb2xsSGVpZ2h0ID4gY2xpZW50SGVpZ2h0XG4gICAgY29uc3QgaXNBdFRvcCA9IHNjcm9sbFRvcCA9PT0gMFxuICAgIGNvbnN0IGlzQXRCb3R0b20gPSBzY3JvbGxUb3AgKyBjbGllbnRIZWlnaHQgPj0gc2Nyb2xsSGVpZ2h0IC0gMVxuXG4gICAgc2V0U2hvd1RvcEdyYWRpZW50KGlzU2Nyb2xsYWJsZSAmJiAhaXNBdFRvcClcbiAgICBzZXRTaG93Qm90dG9tR3JhZGllbnQoaXNTY3JvbGxhYmxlICYmICFpc0F0Qm90dG9tKVxuICAgIHNldElzU2Nyb2xsaW5nKHRydWUpXG5cbiAgICBpZiAoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KSB7XG4gICAgICBjbGVhclRpbWVvdXQoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KVxuICAgIH1cblxuICAgIHNjcm9sbFRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2V0SXNTY3JvbGxpbmcoZmFsc2UpXG4gICAgfSwgMTUwKVxuICB9LCBbaG9tZVNjcm9sbGFibGVMYXlvdXRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFob21lU2Nyb2xsYWJsZUxheW91dCkge1xuICAgICAgc2V0U2hvd1RvcEdyYWRpZW50KGZhbHNlKVxuICAgICAgc2V0U2hvd0JvdHRvbUdyYWRpZW50KGZhbHNlKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRlbnRDb250YWluZXJSZWYuY3VycmVudFxuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY2hlY2tTY3JvbGwoKVxuICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBjaGVja1Njcm9sbClcblxuICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoY2hlY2tTY3JvbGwsIDEwMClcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgY2hlY2tTY3JvbGwpXG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKVxuICAgICAgaWYgKHNjcm9sbFRpbWVvdXRSZWYuY3VycmVudCkge1xuICAgICAgICBjbGVhclRpbWVvdXQoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2hvbWVTY3JvbGxhYmxlTGF5b3V0LCBjaGVja1Njcm9sbF0pXG5cbiAgY29uc3QgcmVuZGVySGVhZGVyQ29udGVudCA9ICgpID0+IHtcbiAgICBpZiAoIWlzTUFJQSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcj5cbiAgICAgICAgICA8U0NDQUlIb21lQWdlbnRJbmZvPlxuICAgICAgICAgICAge2FnZW50Py5lbW9qaX0ge2FnZW50Py5uYW1lfVxuICAgICAgICAgIDwvU0NDQUlIb21lQWdlbnRJbmZvPlxuICAgICAgICAgIHthZ2VudD8uY3JlYXRlZF9ieSAmJiAhaXNNQUlBICYmIChcbiAgICAgICAgICAgIDxTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGl0bGU9e1xuICAgICAgICAgICAgICAgICAgYWdlbnQ/LmNyZWF0ZWRfYnk/LmlzX2RlbGV0ZWQgPyB0KCdob21lTWVudS5jcmVhdGVkQnlUb29sdGlwRGVsZXRlZCcpIDogdCgnaG9tZU1lbnUuY3JlYXRlZEJ5VG9vbHRpcCcpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQ+XG4gICAgICAgICAgICAgICAgICB7dCgnaG9tZU1lbnUuY3JlYXRlZEJ5Jyl9eycgJ31cbiAgICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZT57YWdlbnQ/LmNyZWF0ZWRfYnk/Lm5hbWV9PC9TQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZT5cbiAgICAgICAgICAgICAgICA8L1NDQ0FJSG9tZUNyZWF0ZWRCeVRleHQ+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgIDwvU0NDQUlIb21lQ3JlYXRlZEJ5Q29udGFpbmVyPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU0NDQUlIb21lQWdlbnRJbmZvQ29udGFpbmVyPlxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGNvbnRlbnRBbGlnblN0YXJ0ID0gaXNQbGFubmVySG9tZSB8fCBpc0hlYWRlclRhc2tDb250ZXh0SG9tZSB8fCBpc0xlZnRBbGlnbmVkT3JjaGVzdHJhdG9ySG9tZVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0NBSUhvbWVNYWlhSGVhZGVyU3RhY2tcbiAgICAgICAgJG5vR2FwPXshaXNSZWNlbnRDb250ZXh0c1N0ZXAgJiYgIWlzUGxhbm5lckhvbWUgJiYgIWdyZWV0aW5nfVxuICAgICAgICAkYWxpZ249e2NvbnRlbnRBbGlnblN0YXJ0ID8gJ3N0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgPlxuICAgICAgICB7IWlzUGxhbm5lckhvbWUgJiYgIWlzSGVhZGVyVGFza0NvbnRleHRIb21lICYmICFpc0xlZnRBbGlnbmVkT3JjaGVzdHJhdG9ySG9tZSAmJiAoXG4gICAgICAgICAgPFNDQ0FJSG9tZUljb25Db250YWluZXI+XG4gICAgICAgICAgICA8U0NDQUlIb21lTG9nb1dyYXBwZXI+XG4gICAgICAgICAgICAgIDxNQUlBSXNvbG9nbyAvPlxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVMb2dvV3JhcHBlcj5cbiAgICAgICAgICA8L1NDQ0FJSG9tZUljb25Db250YWluZXI+XG4gICAgICAgICl9XG4gICAgICAgIHtpc1BsYW5uZXJIb21lICYmIChcbiAgICAgICAgICA8U0NDQUlIb21lVGl0bGVCbG9jayAkYWxpZ249XCJzdGFydFwiPlxuICAgICAgICAgICAgPFNDQ0FJSG9tZVRpdGxlICRzaXplPVwibWRcIiAkYWxpZ249XCJzdGFydFwiPlxuICAgICAgICAgICAgICB7dCgnaG9tZU1lbnUucGxhbm5lckhvbWUudGl0bGUnKX1cbiAgICAgICAgICAgIDwvU0NDQUlIb21lVGl0bGU+XG4gICAgICAgICAgICA8U0NDQUlIb21lU3VidGl0bGUgJGFsaWduPVwic3RhcnRcIj57dCgnaG9tZU1lbnUucGxhbm5lckhvbWUuc3VidGl0bGUnKX08L1NDQ0FJSG9tZVN1YnRpdGxlPlxuICAgICAgICAgIDwvU0NDQUlIb21lVGl0bGVCbG9jaz5cbiAgICAgICAgKX1cbiAgICAgICAgeyFpc1BsYW5uZXJIb21lICYmIGlzUmVjZW50Q29udGV4dHNTdGVwICYmIGlzSGVhZGVyVGFza0NvbnRleHRIb21lICYmIChcbiAgICAgICAgICA8U0NDQUlIb21lVGl0bGVCbG9jayAkYWxpZ249XCJzdGFydFwiICRmdWxsV2lkdGg+XG4gICAgICAgICAgICA8U0NDQUlIb21lVGl0bGUgJHNpemU9XCJjb250ZXh0XCIgJGFsaWduPVwic3RhcnRcIiAkZnVsbFdpZHRoPlxuICAgICAgICAgICAgICB7dCgnaG9tZU1lbnUuY29udGV4dEhvbWUuZ3JlZXRpbmcnLCB7IG5hbWU6IHVzZXIuZmlyc3ROYW1lIH0pfVxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVUaXRsZT5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVTdWJ0aXRsZSAkYWxpZ249XCJzdGFydFwiICRjb2xsYWJvcmF0b3JIb21lPlxuICAgICAgICAgICAgICB7dChoZWFkZXJUYXNrQ29udGV4dFN1YnRpdGxlS2V5KX1cbiAgICAgICAgICAgIDwvU0NDQUlIb21lU3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0NBSUhvbWVUaXRsZUJsb2NrPlxuICAgICAgICApfVxuICAgICAgICB7IWlzUGxhbm5lckhvbWUgJiYgaXNSZWNlbnRDb250ZXh0c1N0ZXAgJiYgIWlzSGVhZGVyVGFza0NvbnRleHRIb21lICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPFNDQ0FJSG9tZVRpdGxlICRhbGlnbj17aXNMZWZ0QWxpZ25lZE9yY2hlc3RyYXRvckhvbWUgPyAnc3RhcnQnIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LmNvbnRleHRIb21lLmdyZWV0aW5nJywgeyBuYW1lOiB1c2VyLmZpcnN0TmFtZSB9KX1cbiAgICAgICAgICAgIDwvU0NDQUlIb21lVGl0bGU+XG4gICAgICAgICAgICA8U0NDQUlIb21lU3VidGl0bGUgJGFsaWduPXtpc0xlZnRBbGlnbmVkT3JjaGVzdHJhdG9ySG9tZSA/ICdzdGFydCcgOiB1bmRlZmluZWR9PlxuICAgICAgICAgICAgICB7dChcbiAgICAgICAgICAgICAgICBpc0NvbGxhYm9yYXRvclJvbGUodXNlci5yb2xlX2lkKVxuICAgICAgICAgICAgICAgICAgPyAnaG9tZU1lbnUuY29udGV4dEhvbWUuc3VidGl0bGVDb2xsYWJvcmF0b3InXG4gICAgICAgICAgICAgICAgICA6ICdob21lTWVudS5jb250ZXh0SG9tZS5zdWJ0aXRsZSdcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvU0NDQUlIb21lU3VidGl0bGU+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICAgIHshaXNQbGFubmVySG9tZSAmJiAhaXNSZWNlbnRDb250ZXh0c1N0ZXAgJiYgZ3JlZXRpbmcgJiYgKFxuICAgICAgICAgIDxTQ0NBSUhvbWVHcmVldGluZ1xuICAgICAgICAgICAgJGFsaWduPXtpc0xlZnRBbGlnbmVkT3JjaGVzdHJhdG9ySG9tZSA/ICdzdGFydCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAkc2l6ZT17aXNMZWZ0QWxpZ25lZE9yY2hlc3RyYXRvckhvbWUgPyAnbWQnIDogJ2xnJ31cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Z3JlZXRpbmd9XG4gICAgICAgICAgPC9TQ0NBSUhvbWVHcmVldGluZz5cbiAgICAgICAgKX1cbiAgICAgIDwvU0NDQUlIb21lTWFpYUhlYWRlclN0YWNrPlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGZpeGVkSG9tZUNvbnRlbnRXaWR0aCA9XG4gICAgaXNIZWFkZXJUYXNrQ29udGV4dEhvbWUgfHwgaXNMZWZ0QWxpZ25lZE9yY2hlc3RyYXRvckhvbWVcbiAgICAgID8gTUFJQV9IRUFERVJfQ09MTEFCT1JBVE9SX0hPTUVfQ09OVEVOVF9XSURUSF9QWFxuICAgICAgOiB1bmRlZmluZWRcbiAgY29uc3QgY29udGVudEFsaWduU3RhcnQgPSBpc1BsYW5uZXJIb21lIHx8IGlzSGVhZGVyVGFza0NvbnRleHRIb21lIHx8IGlzTGVmdEFsaWduZWRPcmNoZXN0cmF0b3JIb21lXG5cbiAgcmV0dXJuIChcbiAgICA8U0NDQUlIb21lQ29udGFpbmVyIHNob3dGQVFzPXtzaG93RkFRc30gJGFsaWduU3RhcnQ9e2lzTGVmdEFsaWduZWRPcmNoZXN0cmF0b3JIb21lfT5cbiAgICAgIHtob21lU2Nyb2xsYWJsZUxheW91dCAmJiA8U0NDQUlIb21lR3JhZGllbnRUb3AgJHNob3c9e3Nob3dUb3BHcmFkaWVudH0gLz59XG4gICAgICA8U0NDQUlIb21lQ29udGVudFxuICAgICAgICByZWY9e2NvbnRlbnRDb250YWluZXJSZWZ9XG4gICAgICAgIHNob3dGQVFzPXtob21lU2Nyb2xsYWJsZUxheW91dH1cbiAgICAgICAgJGlzQWdlbnRWaWV3PXshaXNNQUlBfVxuICAgICAgICAkZmxvYXRpbmdDdXN0b21DZW50ZXI9e2Zsb2F0aW5nQ3VzdG9tQ2VudGVyfVxuICAgICAgICAkY2VudGVyVmVydGljYWxseT17aXNQbGFubmVySG9tZX1cbiAgICAgICAgJGFsaWduU3RhcnQ9e2lzTGVmdEFsaWduZWRPcmNoZXN0cmF0b3JIb21lfVxuICAgICAgICAkZml4ZWRDb250ZW50V2lkdGg9e2ZpeGVkSG9tZUNvbnRlbnRXaWR0aH1cbiAgICAgID5cbiAgICAgICAgPFNDQ0FJSG9tZUNvbnRlbnRJbm5lclxuICAgICAgICAgIHNob3dGQVFzPXtob21lU2Nyb2xsYWJsZUxheW91dH1cbiAgICAgICAgICAkaXNBZ2VudFZpZXc9eyFpc01BSUF9XG4gICAgICAgICAgJGZsb2F0aW5nQ3VzdG9tQ2VudGVyPXtmbG9hdGluZ0N1c3RvbUNlbnRlcn1cbiAgICAgICAgICAkY2VudGVyVmVydGljYWxseT17aXNQbGFubmVySG9tZX1cbiAgICAgICAgICAkYWxpZ25TdGFydD17aXNIZWFkZXJUYXNrQ29udGV4dEhvbWUgfHwgaXNMZWZ0QWxpZ25lZE9yY2hlc3RyYXRvckhvbWV9XG4gICAgICAgICAgJGhlYWRlckNvbGxhYm9yYXRvckhvbWU9e2lzSGVhZGVyVGFza0NvbnRleHRIb21lfVxuICAgICAgICAgICRzZWN0aW9uT3JjaGVzdHJhdG9ySG9tZT17aXNMZWZ0QWxpZ25lZE9yY2hlc3RyYXRvckhvbWV9XG4gICAgICAgID5cbiAgICAgICAgICA8U0NDQUlIb21lSGVhZGVyXG4gICAgICAgICAgICAkZ2FwPXtpc01BSUEgJiYgc2VjdGlvbiAhPT0gJ3Byb2plY3QnID8gJzhweCcgOiAnMjBweCd9XG4gICAgICAgICAgICAkbWF4V2lkdGg9e2lzTUFJQSA/ICcxMDAlJyA6ICczODBweCd9XG4gICAgICAgICAgICAkaXNBZ2VudFZpZXc9eyFpc01BSUF9XG4gICAgICAgICAgICAkYWxpZ249e2NvbnRlbnRBbGlnblN0YXJ0ID8gJ3N0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtyZW5kZXJIZWFkZXJDb250ZW50KCl9XG5cbiAgICAgICAgICAgIHtzZWN0aW9uICE9PSAncHJvamVjdCcgJiYgKFxuICAgICAgICAgICAgICA8U0NDQUlIb21lSW50cm9kdWN0aW9uIGV4cGFuZGVkPXtleHBhbmRlZH0+eyFpc01BSUEgJiYgYWdlbnQ/LmludHJvZHVjdGlvbn08L1NDQ0FJSG9tZUludHJvZHVjdGlvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TQ0NBSUhvbWVIZWFkZXI+XG4gICAgICAgICAge3Nob3dQcm9qZWN0U3VtbWFyeUNhcmQgJiYgKFxuICAgICAgICAgICAgPFNDQ0FIV3JhcHBlclN1bW1hcnlQcm9qZWN0IG9uQ2xpY2s9e2hhbmRsZXJzLnByb2plY3RTdW1tYXJ5fT5cbiAgICAgICAgICAgICAgPFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5PlxuICAgICAgICAgICAgICAgIDxUZW1wbGF0ZUdyYWRpZW50SWNvbiBoZWlnaHQ9ezI0fSB3aWR0aD17MjR9IC8+XG4gICAgICAgICAgICAgIDwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnk+XG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGU+e3QoJ2hvbWVNZW51LnByb2plY3RTdW1tYXJ5LnRpdGxlJyl9PC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlPlxuICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LnByb2plY3RTdW1tYXJ5LmRlc2NyaXB0aW9uJyl9XG4gICAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICA8L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudD5cbiAgICAgICAgICAgIDwvU0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3Q+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7c2hvd0R5bmFtaWNTZWN0aW9uICYmIChcbiAgICAgICAgICAgIDxTQ0NBSUhvbWVEeW5hbWljU2VjdGlvblxuICAgICAgICAgICAgICAkZ3Jvdz17aXNNYWlha2VyfVxuICAgICAgICAgICAgICAkYWxpZ25TdGFydD17aXNIZWFkZXJUYXNrQ29udGV4dEhvbWUgfHwgaXNMZWZ0QWxpZ25lZE9yY2hlc3RyYXRvckhvbWV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93UGxhbm5lckZ1YXNMb2FkaW5nID8gKFxuICAgICAgICAgICAgICAgIDxGcmVxdWVudGx5VXNlZEFjdGlvbnNcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJwbGFubmVyXCJcbiAgICAgICAgICAgICAgICAgIG9uU3RhcnRDaGF0PXtoYW5kbGVIb21lU3RhcnRDaGF0fVxuICAgICAgICAgICAgICAgICAgYWdlbnRJZD17YWdlbnQ/LmlkfVxuICAgICAgICAgICAgICAgICAgaXNTY3JvbGxpbmc9e2lzU2Nyb2xsaW5nfVxuICAgICAgICAgICAgICAgICAgYWN0aW9ucz17aGVhZGVySG91cnNGdWFzfVxuICAgICAgICAgICAgICAgICAgbG9hZGluZz17aGVhZGVySG91cnNGdWFzTG9hZGluZ31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3Nob3VsZFNob3dQbGFubmVyRnVhc0NvbnRlbnQgPyAoXG4gICAgICAgICAgICAgICAgPFNDQ0FJSG9tZUNvbGxhYm9yYXRvclNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICAgICAgICAgIHt0KCdob21lTWVudS5jb250ZXh0SG9tZS5ob3Vyc1NlY3Rpb24udGl0bGUnKX1cbiAgICAgICAgICAgICAgICAgIDwvU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICAgICAgICA8RnJlcXVlbnRseVVzZWRBY3Rpb25zXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJwbGFubmVyXCJcbiAgICAgICAgICAgICAgICAgICAgb25TdGFydENoYXQ9e2hhbmRsZUhvbWVTdGFydENoYXR9XG4gICAgICAgICAgICAgICAgICAgIGFnZW50SWQ9e2FnZW50Py5pZH1cbiAgICAgICAgICAgICAgICAgICAgaXNTY3JvbGxpbmc9e2lzU2Nyb2xsaW5nfVxuICAgICAgICAgICAgICAgICAgICBhY3Rpb25zPXtoZWFkZXJIb3Vyc0Z1YXN9XG4gICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9e2hlYWRlckhvdXJzRnVhc0xvYWRpbmd9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvU0NDQUlIb21lQ29sbGFib3JhdG9yU2VjdGlvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtyZW5kZXJSZWNlbnRDb250ZXh0cygpfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd0ZhcXMgJiYgKFxuICAgICAgICAgICAgICAgIDxGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNcbiAgICAgICAgICAgICAgICAgIG9uU3RhcnRDaGF0PXtvblN0YXJ0Q2hhdH1cbiAgICAgICAgICAgICAgICAgIHNob3dGQVFzPXtzaG93RkFRc31cbiAgICAgICAgICAgICAgICAgIHNob3dQcm9qZWN0U3VtbWFyeT17c2hvd1Byb2plY3RTdW1tYXJ5fVxuICAgICAgICAgICAgICAgICAgYWdlbnRJZD17YWdlbnQ/LmlkfVxuICAgICAgICAgICAgICAgICAgbGFuZz17bGFuZ31cbiAgICAgICAgICAgICAgICAgIGlzU2Nyb2xsaW5nPXtpc1Njcm9sbGluZ31cbiAgICAgICAgICAgICAgICAgIGZhcXM9e2ZhcXN9XG4gICAgICAgICAgICAgICAgICBsb2FkaW5nPXtmYXFzQXJlTG9hZGluZ31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd0Z1YXMgJiYgKFxuICAgICAgICAgICAgICAgIDxGcmVxdWVudGx5VXNlZEFjdGlvbnNcbiAgICAgICAgICAgICAgICAgIG9uU3RhcnRDaGF0PXtvblN0YXJ0Q2hhdH1cbiAgICAgICAgICAgICAgICAgIGFnZW50SWQ9e2FnZW50Py5pZH1cbiAgICAgICAgICAgICAgICAgIGlzU2Nyb2xsaW5nPXtpc1Njcm9sbGluZ31cbiAgICAgICAgICAgICAgICAgIGFjdGlvbnM9e2Z1YXN9XG4gICAgICAgICAgICAgICAgICBsb2FkaW5nPXtmdWFzQXJlTG9hZGluZ31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB7aXNNYWlha2VyID8gPENoYXRBSUhvbWVNYWlha2VyIG9uU3RhcnRDaGF0PXtvblN0YXJ0Q2hhdH0gLz4gOiBudWxsfVxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVEeW5hbWljU2VjdGlvbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDQ0FJSG9tZUNvbnRlbnRJbm5lcj5cbiAgICAgIDwvU0NDQUlIb21lQ29udGVudD5cbiAgICAgIHtob21lU2Nyb2xsYWJsZUxheW91dCAmJiA8U0NDQUlIb21lR3JhZGllbnRCb3R0b20gJHNob3c9e3Nob3dCb3R0b21HcmFkaWVudH0gLz59XG4gICAgPC9TQ0NBSUhvbWVDb250YWluZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLFNBQVMsRUFBRUMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxRQUFRLE9BQU87QUFDekUsU0FBU0MsU0FBUyxRQUFRLFdBQVc7QUFFckMsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxhQUFhLFFBQVEsZ0RBQWdEO0FBQzlFLFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFDMUMsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEseUJBQXlCO0FBSTFELFNBQ0VDLGtCQUFrQixFQUNsQkMsZ0JBQWdCLEVBQ2hCQyxxQkFBcUIsRUFDckJDLG9CQUFvQixFQUNwQkMsdUJBQXVCLEVBQ3ZCQyxlQUFlLEVBQ2ZDLGlCQUFpQixFQUNqQkMsMkJBQTJCLEVBQzNCQyxrQkFBa0IsRUFDbEJDLHVCQUF1QixFQUN2QkMsOEJBQThCLEVBQzlCQyw0QkFBNEIsRUFDNUJDLGtDQUFrQyxFQUNsQ0MsMEJBQTBCLEVBQzFCQyxxQkFBcUIsRUFDckJDLDJCQUEyQixFQUMzQkMsc0JBQXNCLEVBQ3RCQywwQkFBMEIsRUFDMUJDLHNCQUFzQixFQUN0QkMsb0JBQW9CLEVBQ3BCQyx3QkFBd0IsRUFDeEJDLGNBQWMsRUFDZEMsbUJBQW1CLEVBQ25CQyxpQkFBaUIsRUFDakJDLHVCQUF1QixFQUN2QkMsdUJBQXVCLEVBQ3ZCQywyQkFBMkIsRUFDM0JDLG9DQUFvQyxFQUNwQ0MsbUNBQW1DLEVBQ25DQyxzQ0FBc0MsRUFDdENDLDRCQUE0QixFQUM1QkMsMEJBQTBCLEVBQzFCQyw4QkFBOEIsRUFDOUJDLDhCQUE4QixFQUM5QkMsa0NBQWtDLEVBQ2xDQyw4Q0FBOEMsUUFDekMsVUFBVTtBQUNqQixTQUFTQyxnQkFBZ0IsUUFBc0IsaUNBQWlDO0FBQ2hGLFNBQVNDLE9BQU8sRUFBRUMsV0FBVyxFQUFFQyxrQkFBa0IsRUFBRUMsYUFBYSxRQUFRLDJCQUEyQjtBQUNuRyxTQUFTQyxpQkFBaUIsUUFBUSwwQkFBMEI7QUFDNUQsU0FBU0MscUJBQXFCLFFBQVEsb0NBQW9DO0FBQzFFLFNBQVNDLDRCQUE0QixRQUFRLHNDQUFzQztBQUNuRixTQUFTQyxjQUFjLFFBQVEsd0NBQXdDO0FBQ3ZFLFNBQVNDLGNBQWMsUUFBUSxpQ0FBaUM7QUFHaEUsU0FBU0Msd0JBQXdCLFFBQVEsc0NBQXNDO0FBQy9FLFNBQVNDLHFCQUFxQixRQUFRLG1DQUFtQztBQUN6RSxTQUFTQyx3QkFBd0IsUUFBUSx5Q0FBeUM7QUFDbEYsU0FBU0MsMkJBQTJCLFFBQVEsNENBQTRDO0FBQ3hGLFNBQVNDLGlCQUFpQixRQUFRLGtDQUFrQztBQUVwRSxTQUFTQyxXQUFXLFFBQVEsK0JBQStCO0FBQzNELFNBQVNDLG9CQUFvQixRQUFRLHdDQUF3QztBQUM3RSxTQUFTQyxpQkFBaUIsUUFBUSxxQkFBcUI7QUFDdkQsU0FBU0MsMEJBQTBCLFFBQVEscUNBQXFDO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQSxFQUFBQyxRQUFBLElBQUFDLFNBQUE7QUFnQmhGLFdBQVlDLGlCQUFpQiwwQkFBakJBLGlCQUFpQjtFQUFqQkEsaUJBQWlCO0VBQWpCQSxpQkFBaUI7RUFBQSxPQUFqQkEsaUJBQWlCO0FBQUE7QUFLN0IsSUFBTUMscUJBQXFCLEdBQUcsQ0FBQztBQUMvQixJQUFNQyx5QkFBeUIsR0FBRyxTQUFTO0FBQzNDLElBQU1DLDRCQUE0QixHQUFHLENBQ25DLDJCQUEyQixFQUMzQiwyQkFBMkIsRUFDM0IsMkJBQTJCLENBQzVCO0FBRUQsSUFBTUMsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBQUMsSUFBQSxFQVVqQjtFQUFBLElBVEpDLE9BQU8sR0FBQUQsSUFBQSxDQUFQQyxPQUFPO0lBQ1BDLEtBQUssR0FBQUYsSUFBQSxDQUFMRSxLQUFLO0lBQ0xDLE9BQU8sR0FBQUgsSUFBQSxDQUFQRyxPQUFPO0lBQUFDLGNBQUEsR0FBQUosSUFBQSxDQUNQSyxTQUFTO0lBQVRBLFNBQVMsR0FBQUQsY0FBQSxjQUFHLEtBQUssR0FBQUEsY0FBQTtFQU9qQixJQUFNRSxPQUFPLEdBQUdsRixNQUFNLENBQWtCLElBQUksQ0FBQztFQUM3QyxJQUFBbUYsa0JBQUEsR0FBd0JoQyxpQkFBaUIsQ0FBQytCLE9BQU8sRUFBRSxDQUFDSixLQUFLLENBQUMsQ0FBQztJQUFuRE0sV0FBVyxHQUFBRCxrQkFBQSxDQUFYQyxXQUFXO0VBRW5CLG9CQUNFaEIsS0FBQSxDQUFDM0IsMEJBQTBCO0lBQUM0QyxJQUFJLEVBQUMsUUFBUTtJQUFDTixPQUFPLEVBQUVBLE9BQVE7SUFBQ08sVUFBVSxFQUFFTCxTQUFVO0lBQUFNLFFBQUEsZ0JBQ2hGckIsSUFBQSxDQUFDeEIsOEJBQThCO01BQUE2QyxRQUFBLEVBQzVCVixPQUFPLENBQUNRLElBQUksS0FBSyxNQUFNLGdCQUN0Qm5CLElBQUEsQ0FBQzVELGFBQWE7UUFBQ2tGLEtBQUssRUFBRWYseUJBQTBCO1FBQUNnQixLQUFLLEVBQUMsTUFBTTtRQUFDQyxNQUFNLEVBQUM7TUFBTSxDQUFFLENBQUMsR0FFOUV0QyxxQkFBcUIsQ0FBQ3lCLE9BQU8sQ0FBQ1EsSUFBSSxFQUFFWix5QkFBeUIsRUFBRWtCLFNBQVMsRUFBRSxFQUFFO0lBQzdFLENBQzZCLENBQUMsZUFDakN6QixJQUFBLENBQUN2Qiw4QkFBOEI7TUFBQ2lELEdBQUcsRUFBRVYsT0FBUTtNQUFBSyxRQUFBLEVBQzFDSCxXQUFXLGdCQUNWbEIsSUFBQSxDQUFDN0QsT0FBTztRQUFDd0YsS0FBSyxFQUFFZixLQUFNO1FBQUFTLFFBQUEsZUFDcEJyQixJQUFBO1VBQUFxQixRQUFBLEVBQU9UO1FBQUssQ0FBTztNQUFDLENBQ2IsQ0FBQyxHQUVWQTtJQUNELENBQzZCLENBQUM7RUFBQSxDQUNQLENBQUM7QUFFakMsQ0FBQztBQUVELElBQU1nQixjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUlDLEtBQThCLEVBQW9CO0VBQ3hFLElBQUlBLEtBQUssS0FBSyxJQUFJLElBQUlBLEtBQUssS0FBS0osU0FBUyxJQUFJSSxLQUFLLEtBQUssRUFBRSxFQUFFLE9BQU8sSUFBSTtFQUN0RSxJQUFNQyxNQUFNLEdBQUdDLE1BQU0sQ0FBQ0YsS0FBSyxDQUFDO0VBQzVCLE9BQU9FLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDRixNQUFNLENBQUMsR0FBR0EsTUFBTSxHQUFHLElBQUk7QUFDaEQsQ0FBQztBQUVELElBQU1HLDRCQUE0QixHQUFHLFNBQS9CQSw0QkFBNEJBLENBQUlDLE1BQXNDLEVBQTZCO0VBQ3ZHLElBQU1DLGdCQUFnQixHQUFHSixNQUFNLENBQUNHLE1BQU0sQ0FBQztFQUN2QyxJQUNFQyxnQkFBZ0IsS0FBS3JELFdBQVcsQ0FBQ3NELE1BQU0sSUFDdkNELGdCQUFnQixLQUFLckQsV0FBVyxDQUFDdUQsUUFBUSxJQUN6Q0YsZ0JBQWdCLEtBQUtyRCxXQUFXLENBQUN3RCxlQUFlLEVBQ2hEO0lBQ0EsT0FBTyxJQUFJQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0VBQy9DO0VBQ0EsSUFBSXhELGtCQUFrQixDQUFDbUQsTUFBTSxDQUFDLEVBQUU7SUFDOUIsT0FBTyxJQUFJSyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztFQUMxQjtFQUNBLE9BQU8sSUFBSUEsR0FBRyxDQUFDLENBQUM7QUFDbEIsQ0FBQztBQUVELE9BQU8sSUFBTUMsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUFDLEtBQUEsRUFBdUU7RUFBQSxJQUFqRUMsUUFBUSxHQUFBRCxLQUFBLENBQVJDLFFBQVE7SUFBRUMsV0FBVyxHQUFBRixLQUFBLENBQVhFLFdBQVc7SUFBRUMsUUFBUSxHQUFBSCxLQUFBLENBQVJHLFFBQVE7SUFBRUMsUUFBUSxHQUFBSixLQUFBLENBQVJJLFFBQVE7RUFDcEUsSUFBQUMsS0FBQSxHQUFvQnpHLElBQUksQ0FBQyxDQUFDO0lBQWxCMEcsQ0FBQyxHQUFBRCxLQUFBLENBQURDLENBQUM7SUFBRUMsSUFBSSxHQUFBRixLQUFBLENBQUpFLElBQUk7RUFDZixJQUFNQyxLQUFLLEdBQUcxRyxRQUFRLENBQUMsQ0FBQztFQUN4QixJQUFNMkcsSUFBSSxHQUFHckUsT0FBTyxDQUFDLENBQUM7RUFDdEIsSUFBQXNFLGlCQUFBLEdBQ0V2RSxnQkFBZ0IsQ0FBQyxDQUFDO0lBRFp3RSxLQUFLLEdBQUFELGlCQUFBLENBQUxDLEtBQUs7SUFBRUMsT0FBTyxHQUFBRixpQkFBQSxDQUFQRSxPQUFPO0lBQUVDLE1BQU0sR0FBQUgsaUJBQUEsQ0FBTkcsTUFBTTtJQUFFQyxPQUFPLEdBQUFKLGlCQUFBLENBQVBJLE9BQU87SUFBRUMsSUFBSSxHQUFBTCxpQkFBQSxDQUFKSyxJQUFJO0lBQUVDLFlBQVksR0FBQU4saUJBQUEsQ0FBWk0sWUFBWTtJQUFFQyxTQUFTLEdBQUFQLGlCQUFBLENBQVRPLFNBQVM7SUFBRUMsVUFBVSxHQUFBUixpQkFBQSxDQUFWUSxVQUFVO0lBQUVDLE9BQU8sR0FBQVQsaUJBQUEsQ0FBUFMsT0FBTztJQUFFQyxlQUFlLEdBQUFWLGlCQUFBLENBQWZVLGVBQWU7RUFHNUcsSUFBTUMsTUFBTSxHQUFHMUUsY0FBYyxDQUFDZ0UsS0FBYyxDQUFDO0VBQzdDLElBQU1XLG9CQUFvQixHQUFHLENBQUMsRUFBRWxCLFFBQVEsSUFBSSxDQUFBTyxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRWpDLElBQUksTUFBSyxRQUFRLENBQUM7RUFDckUsSUFBTTZDLElBQUksR0FBR2hCLElBQUksQ0FBQ2lCLFFBQVEsS0FBSyxJQUFJLEdBQUcsSUFBSSxHQUFHakIsSUFBSSxDQUFDaUIsUUFBUTtFQUUxRCxJQUFNQyxvQkFBb0IsR0FDeEIsT0FBT0MsTUFBTSxLQUFLLFdBQVcsS0FDNUJDLE1BQU0sQ0FBQ0QsTUFBTSxDQUFDRSxtQ0FBbUMsQ0FBQyxDQUFDQyxXQUFXLENBQUMsQ0FBQyxLQUFLLE1BQU0sSUFDMUVGLE1BQU0sQ0FBQ0QsTUFBTSxDQUFDSSx3QkFBd0IsQ0FBQyxDQUFDRCxXQUFXLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQztFQUNyRSxJQUFNRSxVQUFVLEdBQUcsSUFBSTtFQUN2QixJQUFNQyxrQkFBa0IsR0FBRyxDQUFDLEVBQUVYLE1BQU0sSUFBSUksb0JBQW9CLENBQUM7RUFDN0Q7RUFDQTtFQUNBLElBQU1RLFNBQVMsR0FBR3JGLGNBQWMsQ0FBQytELEtBQUssQ0FBQztFQUN2QyxJQUFNdUIsWUFBWSxHQUFHYixNQUFNLElBQUlULE9BQU8sS0FBSyxRQUFRLElBQUksQ0FBQUQsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVqQyxJQUFJLE1BQUssY0FBYztFQUNyRjtFQUNBO0VBQ0E7RUFDQSxJQUFNeUQsY0FBYyxHQUFHZCxNQUFNLElBQUksQ0FBQVYsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVqQyxJQUFJLE1BQUssY0FBYztFQUMvRDtFQUNBO0VBQ0EsSUFBTTBELGFBQWEsR0FBR3hCLE9BQU8sS0FBSyxTQUFTLElBQUl1QixjQUFjO0VBQzdEO0VBQ0EsSUFBTUUseUJBQXlCLEdBQUdGLGNBQWMsSUFBSSxDQUFDRCxZQUFZLElBQUksQ0FBQ0UsYUFBYTtFQUNuRixJQUFNRSxnQkFBZ0IsR0FBRzVGLDRCQUE0QixDQUFDaUUsS0FBSyxDQUFDOztFQUU1RDtFQUNBO0VBQ0E7RUFDQSxJQUFNNEIsZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFeEIsSUFBSSxhQUFKQSxJQUFJLGVBQUpBLElBQUksQ0FBRXlCLEVBQUUsSUFBSXhCLFlBQVksYUFBWkEsWUFBWSxlQUFaQSxZQUFZLENBQUV5QixTQUFTLElBQUk1QixNQUFNLGFBQU5BLE1BQU0sZUFBTkEsTUFBTSxDQUFFMkIsRUFBRSxJQUFJMUIsT0FBTyxhQUFQQSxPQUFPLGVBQVBBLE9BQU8sQ0FBRTBCLEVBQUUsQ0FBQztFQUM3RixJQUFNRSxvQkFBb0IsR0FBR1AsY0FBYyxJQUFJLENBQUNJLGdCQUFnQixJQUFJLENBQUNILGFBQWE7RUFDbEY7RUFDQSxJQUFNTyx1QkFBdUIsR0FDM0IvQixPQUFPLEtBQUssUUFBUSxJQUFJOEIsb0JBQW9CLEtBQUtwRyxrQkFBa0IsQ0FBQ21FLElBQUksQ0FBQ21DLE9BQU8sQ0FBQyxJQUFJckcsYUFBYSxDQUFDa0UsSUFBSSxDQUFDbUMsT0FBTyxDQUFDLENBQUM7RUFDbkg7RUFDQSxJQUFNQyxzQkFBc0IsR0FBR0YsdUJBQXVCLElBQUlMLGdCQUFnQjtFQUMxRSxJQUFNUSx3QkFBd0IsR0FBR0Qsc0JBQXNCLElBQUl0RyxhQUFhLENBQUNrRSxJQUFJLENBQUNtQyxPQUFPLENBQUM7RUFDdEYsSUFBTUcsNEJBQTRCLEdBQUd2SixPQUFPLENBQUMsWUFBTTtJQUNqRCxJQUFJcUosc0JBQXNCLEVBQUU7TUFDMUIsSUFBSUMsd0JBQXdCLEVBQUUsT0FBTywrQ0FBK0M7TUFDcEYsT0FBTyxvREFBb0Q7SUFDN0Q7SUFDQSxJQUFJdkcsYUFBYSxDQUFDa0UsSUFBSSxDQUFDbUMsT0FBTyxDQUFDLEVBQUUsT0FBTywrQkFBK0I7SUFDdkUsT0FBTywyQ0FBMkM7RUFDcEQsQ0FBQyxFQUFFLENBQUNDLHNCQUFzQixFQUFFQyx3QkFBd0IsRUFBRXJDLElBQUksQ0FBQ21DLE9BQU8sQ0FBQyxDQUFDO0VBQ3BFLElBQU1JLGlCQUFpQixHQUFHZCxZQUFZLElBQUlLLGdCQUFnQjtFQUMxRDtFQUNBLElBQU1VLDZCQUE2QixHQUFHWix5QkFBeUIsSUFBSVcsaUJBQWlCO0VBRXBGLElBQU1FLHlCQUF5QixHQUFHMUosT0FBTyxDQUFDLFlBQU07SUFDOUMsSUFBSXNKLHdCQUF3QixFQUFFLE9BQU90RCw0QkFBNEIsQ0FBQ2lCLElBQUksQ0FBQ21DLE9BQU8sQ0FBQztJQUMvRSxJQUFJRCx1QkFBdUIsSUFBSXBHLGFBQWEsQ0FBQ2tFLElBQUksQ0FBQ21DLE9BQU8sQ0FBQyxFQUFFLE9BQU9wRCw0QkFBNEIsQ0FBQ2lCLElBQUksQ0FBQ21DLE9BQU8sQ0FBQztJQUM3RyxJQUFJRCx1QkFBdUIsRUFBRSxPQUFPLElBQUk3QyxHQUFHLENBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEUsT0FBT04sNEJBQTRCLENBQUNpQixJQUFJLENBQUNtQyxPQUFPLENBQUM7RUFDbkQsQ0FBQyxFQUFFLENBQUNuQyxJQUFJLENBQUNtQyxPQUFPLEVBQUVFLHdCQUF3QixFQUFFSCx1QkFBdUIsQ0FBQyxDQUFDO0VBQ3JFLElBQUFRLGtCQUFBLEdBQTRFbEcsaUJBQWlCLENBQUM7TUFDNUZtRyxPQUFPLEVBQUVqQixjQUFjLElBQUksQ0FBQ0MsYUFBYTtNQUN6Q2lCLEtBQUssRUFBRXhGO0lBQ1QsQ0FBQyxDQUFDO0lBSGdCeUYscUJBQXFCLEdBQUFILGtCQUFBLENBQS9CSSxRQUFRO0lBQWtDQyxxQkFBcUIsR0FBQUwsa0JBQUEsQ0FBOUJNLE9BQU87RUFJaEQsSUFBTUMsY0FBYyxHQUFHbEssT0FBTyxDQUM1QjtJQUFBLE9BQU04SixxQkFBcUIsQ0FBQ0ssTUFBTSxDQUFDLFVBQUF6RixPQUFPO01BQUEsT0FBSWdGLHlCQUF5QixDQUFDVSxHQUFHLENBQUMxRixPQUFPLENBQUNRLElBQUksQ0FBQztJQUFBLEVBQUM7RUFBQSxHQUMxRixDQUFDNEUscUJBQXFCLEVBQUVKLHlCQUF5QixDQUNuRCxDQUFDOztFQUVEO0VBQ0E7RUFDQSxJQUFBVyxTQUFBLEdBQThDdkssUUFBUSxDQUEyQixJQUFJLENBQUM7SUFBQXdLLFVBQUEsR0FBQUMsY0FBQSxDQUFBRixTQUFBO0lBQS9FRyxlQUFlLEdBQUFGLFVBQUE7SUFBRUcsa0JBQWtCLEdBQUFILFVBQUE7RUFDMUMxSyxTQUFTLENBQUMsWUFBTTtJQUNkLElBQUksQ0FBQ21KLGdCQUFnQixFQUFFMEIsa0JBQWtCLENBQUMsSUFBSSxDQUFDO0VBQ2pELENBQUMsRUFBRSxDQUFDMUIsZ0JBQWdCLENBQUMsQ0FBQztFQUV0QixJQUFNMkIsYUFBYSxHQUFHMUssT0FBTyxDQUEyQixZQUFNO0lBQzVELElBQUl3SyxlQUFlLEVBQUUsT0FBT0EsZUFBZTtJQUMzQyxJQUFJLENBQUNoQixpQkFBaUIsRUFBRSxPQUFPLElBQUk7SUFDbkMsSUFBSWpDLElBQUksYUFBSkEsSUFBSSxlQUFKQSxJQUFJLENBQUV5QixFQUFFLEVBQUUsT0FBTztNQUFFOUQsSUFBSSxFQUFFLE1BQU07TUFBRThELEVBQUUsRUFBRXpCLElBQUksQ0FBQ3lCLEVBQUU7TUFBRTJCLElBQUksRUFBRXBELElBQUksQ0FBQ29EO0lBQUssQ0FBQztJQUNuRSxJQUFJbkQsWUFBWSxhQUFaQSxZQUFZLGVBQVpBLFlBQVksQ0FBRXlCLFNBQVMsRUFBRSxPQUFPO01BQUUvRCxJQUFJLEVBQUUsU0FBUztNQUFFOEQsRUFBRSxFQUFFeEIsWUFBWSxDQUFDeUIsU0FBUztNQUFFMEIsSUFBSSxFQUFFbkQsWUFBWSxDQUFDb0Q7SUFBWSxDQUFDO0lBQ25ILElBQUl2RCxNQUFNLGFBQU5BLE1BQU0sZUFBTkEsTUFBTSxDQUFFMkIsRUFBRSxFQUFFLE9BQU87TUFBRTlELElBQUksRUFBRSxRQUFRO01BQUU4RCxFQUFFLEVBQUUzQixNQUFNLENBQUMyQixFQUFFO01BQUUyQixJQUFJLEVBQUV0RCxNQUFNLENBQUNzRDtJQUFLLENBQUM7SUFDM0UsT0FBTyxJQUFJO0VBQ2IsQ0FBQyxFQUFFLENBQ0RILGVBQWUsRUFDZmhCLGlCQUFpQixFQUNqQmpDLElBQUksYUFBSkEsSUFBSSx1QkFBSkEsSUFBSSxDQUFFeUIsRUFBRSxFQUNSekIsSUFBSSxhQUFKQSxJQUFJLHVCQUFKQSxJQUFJLENBQUVvRCxJQUFJLEVBQ1ZuRCxZQUFZLGFBQVpBLFlBQVksdUJBQVpBLFlBQVksQ0FBRXlCLFNBQVMsRUFDdkJ6QixZQUFZLGFBQVpBLFlBQVksdUJBQVpBLFlBQVksQ0FBRW9ELFdBQVcsRUFDekJ2RCxNQUFNLGFBQU5BLE1BQU0sdUJBQU5BLE1BQU0sQ0FBRTJCLEVBQUUsRUFDVjNCLE1BQU0sYUFBTkEsTUFBTSx1QkFBTkEsTUFBTSxDQUFFc0QsSUFBSSxDQUNiLENBQUM7O0VBRUY7RUFDQTtFQUNBLElBQU1FLGdCQUFnQixHQUFHN0ssT0FBTyxDQUFnQyxZQUFNO0lBQ3BFLElBQUl1SCxJQUFJLGFBQUpBLElBQUksZUFBSkEsSUFBSSxDQUFFeUIsRUFBRSxFQUFFLE9BQU8sTUFBTTtJQUMzQixJQUFJeEIsWUFBWSxhQUFaQSxZQUFZLGVBQVpBLFlBQVksQ0FBRXlCLFNBQVMsSUFBSTNCLE9BQU8sYUFBUEEsT0FBTyxlQUFQQSxPQUFPLENBQUUwQixFQUFFLEVBQUUsT0FBTyxTQUFTO0lBQzVELElBQUkzQixNQUFNLGFBQU5BLE1BQU0sZUFBTkEsTUFBTSxDQUFFMkIsRUFBRSxFQUFFLE9BQU8sUUFBUTtJQUMvQixPQUFPeEQsU0FBUztFQUNsQixDQUFDLEVBQUUsQ0FBQytCLElBQUksYUFBSkEsSUFBSSx1QkFBSkEsSUFBSSxDQUFFeUIsRUFBRSxFQUFFeEIsWUFBWSxhQUFaQSxZQUFZLHVCQUFaQSxZQUFZLENBQUV5QixTQUFTLEVBQUUzQixPQUFPLGFBQVBBLE9BQU8sdUJBQVBBLE9BQU8sQ0FBRTBCLEVBQUUsRUFBRTNCLE1BQU0sYUFBTkEsTUFBTSx1QkFBTkEsTUFBTSxDQUFFMkIsRUFBRSxDQUFDLENBQUM7O0VBRWhFO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsSUFBTThCLGFBQWEsR0FBRyxDQUFDcEMsWUFBWSxJQUFJbUMsZ0JBQWdCLEtBQUssTUFBTTtFQUNsRTtFQUNBLElBQU1FLGNBQWMsR0FBR25DLGFBQWEsSUFBSWtDLGFBQWE7RUFDckQ7RUFDQTtFQUNBLElBQU1FLFdBQW9CLEdBQUksWUFBTTtJQUNsQyxJQUFJcEMsYUFBYSxFQUFFLE9BQU8sU0FBUztJQUNuQyxJQUFJLENBQUNGLFlBQVksSUFBSW1DLGdCQUFnQixFQUFFLE9BQU9BLGdCQUFnQjtJQUM5RCxPQUFPekQsT0FBTztFQUNoQixDQUFDLENBQUUsQ0FBQzs7RUFFSjtFQUNBO0VBQ0E7RUFDQTtFQUNBLElBQU02RCxnQkFBZ0IsR0FBSSxZQUFNO0lBQzlCLElBQUksQ0FBQ3BELE1BQU0sSUFBSVksU0FBUyxFQUFFLE9BQU9qRCxTQUFTO0lBQzFDO0lBQ0EsSUFBSTBELG9CQUFvQixFQUFFLE9BQU8xRCxTQUFTO0lBQzFDLElBQUlrRCxZQUFZLEVBQUUsT0FBT2MsaUJBQWlCLEdBQUdyQyxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRTZCLEVBQUUsR0FBR3hELFNBQVM7SUFDbEUsT0FBTzJCLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFNkIsRUFBRTtFQUNsQixDQUFDLENBQUUsQ0FBQztFQUNKLElBQU1rQyxtQkFBbUIsR0FBSSxVQUFBQyxtQkFBQSxFQUFNO0lBQ2pDLElBQUl2QyxhQUFhLEVBQUUsT0FBTyxTQUFTO0lBQ25DLElBQUksQ0FBQ0YsWUFBWSxFQUFFLE9BQU9tQyxnQkFBZ0I7SUFDMUMsT0FBT3JCLGlCQUFpQixJQUFBMkIsbUJBQUEsR0FBSVQsYUFBYSxhQUFiQSxhQUFhLHVCQUFiQSxhQUFhLENBQUV4RixJQUFJLGNBQUFpRyxtQkFBQSxjQUFBQSxtQkFBQSxHQUFJTixnQkFBZ0IsR0FBSXJGLFNBQVM7RUFDbEYsQ0FBQyxDQUFFLENBQUM7RUFDSixJQUFBNEYscUJBQUEsR0FBcUQ3SCx3QkFBd0IsQ0FDM0UwSCxnQkFBZ0IsRUFDaEJELFdBQVcsRUFDWEUsbUJBQ0YsQ0FBQztJQUpnQkcsU0FBUyxHQUFBRCxxQkFBQSxDQUFsQkUsT0FBTztJQUFzQkMsV0FBVyxHQUFBSCxxQkFBQSxDQUFwQm5CLE9BQU87RUFLbkMsSUFBQXVCLHNCQUFBLEdBQXNGakksd0JBQXdCLENBQzVHOEYsc0JBQXNCLElBQUksQ0FBQ0Msd0JBQXdCLEdBQUduQyxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRTZCLEVBQUUsR0FBR3hELFNBQVMsRUFDM0UsU0FDRixDQUFDO0lBSGdCaUcsdUJBQXVCLEdBQUFELHNCQUFBLENBQWhDRixPQUFPO0lBQW9DSSw4QkFBOEIsR0FBQUYsc0JBQUEsQ0FBdkN2QixPQUFPO0VBSWpELElBQUEwQixzQkFBQSxHQUF5RXBJLHdCQUF3QixDQUMvRitGLHdCQUF3QixHQUFHbkMsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUU2QixFQUFFLEdBQUd4RCxTQUFTLEVBQ2hELFFBQ0YsQ0FBQztJQUhnQm9HLGtCQUFrQixHQUFBRCxzQkFBQSxDQUEzQkwsT0FBTztJQUErQk8sc0JBQXNCLEdBQUFGLHNCQUFBLENBQS9CMUIsT0FBTztFQUk1QyxJQUFNNkIsZUFBZSxHQUFHOUwsT0FBTyxDQUFDLFlBQU07SUFDcEMsSUFBSXNKLHdCQUF3QixFQUFFLE9BQU96RiwwQkFBMEIsQ0FBQytILGtCQUFrQixDQUFDO0lBQ25GLE9BQU9ILHVCQUF1QjtFQUNoQyxDQUFDLEVBQUUsQ0FBQ25DLHdCQUF3QixFQUFFc0Msa0JBQWtCLEVBQUVILHVCQUF1QixDQUFDLENBQUM7RUFDM0UsSUFBTU0sc0JBQXNCLEdBQUd6Qyx3QkFBd0IsR0FBR3VDLHNCQUFzQixHQUFHSCw4QkFBOEI7RUFDakgsSUFBQU0scUJBQUEsR0FJSXhJLDJCQUEyQixDQUFDeUgsZ0JBQWdCLEVBQUVsRCxJQUFJLEVBQUVtRCxtQkFBbUIsQ0FBQztJQUhwRWUsU0FBUyxHQUFBRCxxQkFBQSxDQUFmRSxJQUFJO0lBQ0tDLFdBQVcsR0FBQUgscUJBQUEsQ0FBcEIvQixPQUFPO0lBQ1BtQyxpQ0FBaUMsR0FBQUoscUJBQUEsQ0FBakNJLGlDQUFpQztFQUVuQyxJQUFNQyxZQUFZLEdBQUd4TSxNQUFNLENBQWdFLElBQUksQ0FBQztFQUNoR0QsU0FBUyxDQUFDLFlBQU07SUFBQSxJQUFBME0scUJBQUE7SUFDZDtJQUNBLElBQUksQ0FBQ3JCLGdCQUFnQixJQUFJRixjQUFjLEVBQUU7SUFDekMsSUFBTXdCLFVBQVUsTUFBQUMsTUFBQSxDQUFNdkIsZ0JBQWdCLE9BQUF1QixNQUFBLENBQUl6RSxJQUFJLE9BQUF5RSxNQUFBLENBQUl0QixtQkFBbUIsYUFBbkJBLG1CQUFtQixjQUFuQkEsbUJBQW1CLEdBQUksS0FBSyxDQUFFO0lBQ2hGLElBQU11QixPQUFPLEdBQUdKLFlBQVksQ0FBQ0ssT0FBTyxNQUFBRixNQUFBLENBQzdCSCxZQUFZLENBQUNLLE9BQU8sQ0FBQ0MsT0FBTyxPQUFBSCxNQUFBLENBQUlILFlBQVksQ0FBQ0ssT0FBTyxDQUFDM0UsSUFBSSxPQUFBeUUsTUFBQSxFQUFBRixxQkFBQSxHQUFJRCxZQUFZLENBQUNLLE9BQU8sQ0FBQ0UsVUFBVSxjQUFBTixxQkFBQSxjQUFBQSxxQkFBQSxHQUFJLEtBQUssSUFDeEcsSUFBSTtJQUNSLElBQUlDLFVBQVUsS0FBS0UsT0FBTyxFQUFFO01BQzFCSixZQUFZLENBQUNLLE9BQU8sR0FBRztRQUFFQyxPQUFPLEVBQUUxQixnQkFBZ0I7UUFBRWxELElBQUksRUFBSkEsSUFBSTtRQUFFNkUsVUFBVSxFQUFFMUI7TUFBb0IsQ0FBQztNQUMzRmtCLGlDQUFpQyxDQUFDO1FBQUVPLE9BQU8sRUFBRTFCLGdCQUFnQjtRQUFFbEQsSUFBSSxFQUFKQSxJQUFJO1FBQUU2RSxVQUFVLEVBQUUxQjtNQUFvQixDQUFDLENBQUM7SUFDekc7RUFDRixDQUFDLEVBQUUsQ0FBQ0QsZ0JBQWdCLEVBQUVDLG1CQUFtQixFQUFFSCxjQUFjLEVBQUVoRCxJQUFJLEVBQUVxRSxpQ0FBaUMsQ0FBQyxDQUFDO0VBRXBHLElBQU1GLElBQUksR0FBR0QsU0FBUztFQUN0QixJQUFNWSxJQUFJLEdBQUd4QixTQUFTO0VBQ3RCLElBQU15QixjQUFjLEdBQUdYLFdBQVc7RUFDbEMsSUFBTVksY0FBYyxHQUFHeEIsV0FBVztFQUVsQyxJQUFNeUIsdUJBQXVCLEdBQUc5RCxvQkFBb0IsS0FBS2MscUJBQXFCLElBQUlFLGNBQWMsQ0FBQytDLE1BQU0sR0FBRyxDQUFDLENBQUM7RUFDNUcsSUFBTUMsY0FBYyxHQUNsQixDQUFDaEUsb0JBQW9CLElBQ3JCLENBQUM2QixjQUFjLEtBQ2R2QixpQkFBaUIsSUFBSyxDQUFDZCxZQUFZLElBQUlILFVBQVcsQ0FBQyxJQUNwRCxDQUFDRSxTQUFTLEtBQ1R5RCxJQUFJLENBQUNlLE1BQU0sR0FBRyxDQUFDLElBQUlILGNBQWMsQ0FBQztFQUNyQyxJQUFNSyxjQUFjLEdBQ2xCLENBQUNqRSxvQkFBb0IsSUFBSSxDQUFDVCxTQUFTLEtBQUtlLGlCQUFpQixJQUFJLENBQUNkLFlBQVksQ0FBQyxLQUFLbUUsSUFBSSxDQUFDSSxNQUFNLEdBQUcsQ0FBQyxJQUFJRixjQUFjLENBQUM7RUFDcEgsSUFBTUssNEJBQTRCLEdBQUcvRCxzQkFBc0IsSUFBSTBDLHNCQUFzQixJQUFJRCxlQUFlLENBQUNtQixNQUFNLEtBQUssQ0FBQztFQUNySCxJQUFNSSw0QkFBNEIsR0FBR2hFLHNCQUFzQixJQUFJeUMsZUFBZSxDQUFDbUIsTUFBTSxHQUFHLENBQUM7RUFDekYsSUFBTUsscUJBQXFCLEdBQUdGLDRCQUE0QixJQUFJQyw0QkFBNEI7RUFFMUYsSUFBTUUsc0JBQXNCLEdBQUcvRSxrQkFBa0IsSUFBSSxDQUFBckIsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVxRyxNQUFNLE1BQUssU0FBUztFQUNoRixJQUFNQyxRQUFRLEdBQUcsQ0FBQyxFQUNoQlQsdUJBQXVCLElBQ3ZCRSxjQUFjLElBQ2RDLGNBQWMsSUFDZEcscUJBQXFCLElBQ3JCQyxzQkFBc0IsSUFDdEI5RSxTQUFTLENBQ1Y7RUFDRCxJQUFNaUYsb0JBQW9CLEdBQUdELFFBQVE7RUFDckMsSUFBTUUsa0JBQWtCLEdBQ3RCWCx1QkFBdUIsSUFBSUUsY0FBYyxJQUFJQyxjQUFjLElBQUlHLHFCQUFxQixJQUFJN0UsU0FBUzs7RUFFbkc7RUFDQSxJQUFNbUYsbUJBQW1CLEdBQUcvTixNQUFNLENBQWlCLElBQUksQ0FBQztFQUN4RCxJQUFBZ08sVUFBQSxHQUE4Qy9OLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQWdPLFVBQUEsR0FBQXZELGNBQUEsQ0FBQXNELFVBQUE7SUFBdERFLGVBQWUsR0FBQUQsVUFBQTtJQUFFRSxrQkFBa0IsR0FBQUYsVUFBQTtFQUMxQyxJQUFBRyxVQUFBLEdBQW9Ebk8sUUFBUSxDQUFDLEtBQUssQ0FBQztJQUFBb08sVUFBQSxHQUFBM0QsY0FBQSxDQUFBMEQsVUFBQTtJQUE1REUsa0JBQWtCLEdBQUFELFVBQUE7SUFBRUUscUJBQXFCLEdBQUFGLFVBQUE7RUFDaEQsSUFBQUcsVUFBQSxHQUFzQ3ZPLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQXdPLFVBQUEsR0FBQS9ELGNBQUEsQ0FBQThELFVBQUE7SUFBOUNFLFdBQVcsR0FBQUQsVUFBQTtJQUFFRSxjQUFjLEdBQUFGLFVBQUE7RUFDbEMsSUFBTUcsZ0JBQWdCLEdBQUc1TyxNQUFNLENBQXVDLElBQUksQ0FBQzs7RUFFM0U7RUFDQTtFQUNBLElBQU02TyxRQUFRLEdBQUcxTyxPQUFPLENBQUMsWUFBTTtJQUM3QixJQUFJeUksU0FBUyxJQUFJRyxhQUFhLElBQUlNLG9CQUFvQixFQUFFLE9BQU8sRUFBRTtJQUVqRSxJQUFJckIsTUFBTSxJQUFJZ0QsZ0JBQWdCLEVBQUU7TUFDOUIsT0FBTy9ELENBQUMseUNBQUEwRixNQUFBLENBQXlDM0IsZ0JBQWdCLENBQUUsQ0FBQztJQUN0RTtJQUVBLElBQU04RCxLQUFLLEdBQUd4SCxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRXlILFlBQVk7SUFDakMsSUFBSSxDQUFDRCxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQ3JCLElBQUlFLEtBQUssQ0FBQ0MsT0FBTyxDQUFDSCxLQUFLLENBQUMsSUFBSUEsS0FBSyxDQUFDMUIsTUFBTSxHQUFHLENBQUMsRUFBRTtNQUM1QyxPQUFPMEIsS0FBSyxDQUFDSSxJQUFJLENBQUNDLEtBQUssQ0FBQ0QsSUFBSSxDQUFDRSxNQUFNLENBQUMsQ0FBQyxHQUFHTixLQUFLLENBQUMxQixNQUFNLENBQUMsQ0FBQztJQUN4RDtJQUNBLE9BQU8sT0FBTzBCLEtBQUssS0FBSyxRQUFRLEdBQUdBLEtBQUssR0FBRyxFQUFFO0VBQy9DLENBQUMsRUFBRSxDQUFDeEgsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUU2QixFQUFFLEVBQUU3QixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRXlILFlBQVksRUFBRW5HLFNBQVMsRUFBRUcsYUFBYSxFQUFFZixNQUFNLEVBQUVnRCxnQkFBZ0IsRUFBRTNCLG9CQUFvQixFQUFFcEMsQ0FBQyxDQUFDLENBQUM7RUFFakgsSUFBTW9JLHlCQUF5QixHQUFHblAsV0FBVyxDQUMzQyxVQUFDMkUsT0FBMEIsRUFBRXlLLEtBQWEsRUFBSztJQUFBLElBQUFDLGdCQUFBLEVBQUFDLGlCQUFBLEVBQUFDLGlCQUFBLEVBQUFDLGlCQUFBO0lBQzdDdkksS0FBSyxDQUFDM0csTUFBTSxDQUFDbVAscUJBQXFCLEVBQUU7TUFBRUwsS0FBSyxFQUFMQSxLQUFLO01BQUVqSyxJQUFJLEVBQUVSLE9BQU8sQ0FBQ1E7SUFBSyxDQUFDLENBQUM7SUFFbEUsSUFBTXVLLFNBQVMsR0FBRzlKLGNBQWMsQ0FBQ2pCLE9BQU8sQ0FBQ3NFLEVBQUUsQ0FBQztJQUM1QyxJQUFNMEcsUUFBUSxHQUFHL0osY0FBYyxFQUFBeUosZ0JBQUEsR0FBQzFLLE9BQU8sQ0FBQ2lMLE9BQU8sY0FBQVAsZ0JBQUEsdUJBQWZBLGdCQUFBLENBQWlCUSxTQUFTLENBQUM7SUFDM0QsSUFBTTNHLFNBQVMsR0FBR3RELGNBQWMsRUFBQTBKLGlCQUFBLEdBQUMzSyxPQUFPLENBQUNpTCxPQUFPLGNBQUFOLGlCQUFBLHVCQUFmQSxpQkFBQSxDQUFpQlEsVUFBVSxDQUFDO0lBQzdELElBQU1DLFVBQVUsR0FBRyxFQUFBUixpQkFBQSxHQUFBNUssT0FBTyxDQUFDaUwsT0FBTyxjQUFBTCxpQkFBQSx1QkFBZkEsaUJBQUEsQ0FBaUJTLFdBQVcsS0FBSSxFQUFFO0lBQ3JELElBQU1uRixXQUFXLEdBQUcsRUFBQTJFLGlCQUFBLEdBQUE3SyxPQUFPLENBQUNpTCxPQUFPLGNBQUFKLGlCQUFBLHVCQUFmQSxpQkFBQSxDQUFpQlMsWUFBWSxLQUFJLEVBQUU7SUFFdkR2RixrQkFBa0IsQ0FBQy9GLE9BQU8sQ0FBQztJQUMzQmlELE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDYkQsVUFBVSxDQUFDLElBQUksQ0FBQztJQUNoQkQsU0FBUyxhQUFUQSxTQUFTLGVBQVRBLFNBQVMsQ0FBRyxJQUFJLENBQUM7SUFDakJHLGVBQWUsQ0FBQyxJQUFJLENBQUM7SUFFckIsSUFBSWxELE9BQU8sQ0FBQ1EsSUFBSSxLQUFLLFFBQVEsRUFBRTtNQUM3QixJQUFJdUssU0FBUyxJQUFJLElBQUksRUFBRTtNQUN2QmhJLFNBQVMsYUFBVEEsU0FBUyxlQUFUQSxTQUFTLENBQUc7UUFBRXVCLEVBQUUsRUFBRXlHLFNBQVM7UUFBRTlFLElBQUksRUFBRWpHLE9BQU8sQ0FBQ2lHO01BQUssQ0FBQyxDQUFDO0lBQ3BELENBQUMsTUFBTSxJQUFJakcsT0FBTyxDQUFDUSxJQUFJLEtBQUssU0FBUyxFQUFFO01BQ3JDLElBQUl1SyxTQUFTLElBQUksSUFBSSxFQUFFO01BQ3ZCL0gsVUFBVSxDQUFBdUksYUFBQSxDQUFBQSxhQUFBO1FBQ1JqSCxFQUFFLEVBQUV5RyxTQUFTO1FBQ2I5RSxJQUFJLEVBQUVqRyxPQUFPLENBQUNpRztNQUFJLEdBQ2QrRSxRQUFRLElBQUksSUFBSSxHQUFHO1FBQUVBLFFBQVEsRUFBUkE7TUFBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQ3BDQSxRQUFRLElBQUksSUFBSSxHQUFHO1FBQUVySSxNQUFNLEVBQUU7VUFBRTJCLEVBQUUsRUFBRTBHLFFBQVE7VUFBRS9FLElBQUksRUFBRW1GO1FBQVc7TUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzNFLENBQUM7TUFDRmxJLGVBQWUsQ0FBQztRQUNkcUIsU0FBUyxFQUFFZCxNQUFNLENBQUNzSCxTQUFTLENBQUM7UUFDNUI3RSxXQUFXLEVBQUVsRyxPQUFPLENBQUNpRyxJQUFJO1FBQ3pCbUYsVUFBVSxFQUFWQTtNQUNGLENBQUMsQ0FBQztJQUNKLENBQUMsTUFBTSxJQUFJcEwsT0FBTyxDQUFDUSxJQUFJLEtBQUssTUFBTSxFQUFFO01BQ2xDeUMsT0FBTyxDQUFBc0ksYUFBQSxDQUFBQSxhQUFBO1FBQ0xqSCxFQUFFLEVBQUV0RSxPQUFPLENBQUNzRSxFQUFFO1FBQ2QyQixJQUFJLEVBQUVqRyxPQUFPLENBQUNpRztNQUFJLEdBQ2QxQixTQUFTLElBQUksSUFBSSxHQUFHO1FBQUVBLFNBQVMsRUFBVEE7TUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQ3RDeUcsUUFBUSxJQUFJLElBQUksR0FBRztRQUFFQSxRQUFRLEVBQVJBO01BQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUN6QyxDQUFDO01BQ0YsSUFBSUEsUUFBUSxJQUFJLElBQUksRUFBRTtRQUNwQmpJLFNBQVMsYUFBVEEsU0FBUyxlQUFUQSxTQUFTLENBQUc7VUFBRXVCLEVBQUUsRUFBRTBHLFFBQVE7VUFBRS9FLElBQUksRUFBRW1GO1FBQVcsQ0FBQyxDQUFDO01BQ2pEO01BQ0EsSUFBSTdHLFNBQVMsSUFBSSxJQUFJLEVBQUU7UUFDckJ2QixVQUFVLENBQUF1SSxhQUFBLENBQUFBLGFBQUE7VUFDUmpILEVBQUUsRUFBRUMsU0FBUztVQUNiMEIsSUFBSSxFQUFFQyxXQUFXLE9BQUE0QixNQUFBLENBQU8xRixDQUFDLENBQUMsdUNBQXVDLENBQUMsT0FBQTBGLE1BQUEsQ0FBSXZELFNBQVM7UUFBRSxHQUM3RXlHLFFBQVEsSUFBSSxJQUFJLEdBQUc7VUFBRUEsUUFBUSxFQUFSQTtRQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsR0FDcENBLFFBQVEsSUFBSSxJQUFJLEdBQUc7VUFBRXJJLE1BQU0sRUFBRTtZQUFFMkIsRUFBRSxFQUFFMEcsUUFBUTtZQUFFL0UsSUFBSSxFQUFFbUY7VUFBVztRQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDM0UsQ0FBQztRQUNGbEksZUFBZSxDQUFDO1VBQ2RxQixTQUFTLEVBQUVkLE1BQU0sQ0FBQ2MsU0FBUyxDQUFDO1VBQzVCMkIsV0FBVyxFQUFFQSxXQUFXLE9BQUE0QixNQUFBLENBQU8xRixDQUFDLENBQUMsdUNBQXVDLENBQUMsT0FBQTBGLE1BQUEsQ0FBSXZELFNBQVMsQ0FBRTtVQUN4RjZHLFVBQVUsRUFBVkE7UUFDRixDQUFDLENBQUM7TUFDSjtJQUNGO0lBRUFJLHFCQUFxQixDQUFDLFlBQU07TUFDMUJDLFFBQVEsQ0FBQ0MsYUFBYSxDQUFDLElBQUlDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQy9ELENBQUMsQ0FBQztFQUNKLENBQUMsRUFDRCxDQUFDckosS0FBSyxFQUFFWSxlQUFlLEVBQUVILFNBQVMsRUFBRUMsVUFBVSxFQUFFQyxPQUFPLEVBQUViLENBQUMsQ0FDNUQsQ0FBQztFQUVELElBQU13SixtQkFBbUIsR0FBR3ZRLFdBQVcsQ0FDckMsVUFDRXdRLE9BQWUsRUFDZkMsV0FBcUMsRUFDckNDLEtBQWMsRUFDZEMsaUJBQTBCLEVBQzFCQyxRQUFlLEVBQ2ZDLEtBQWMsRUFDWDtJQUNILElBQUl0SCx3QkFBd0IsSUFBSXNILEtBQUssRUFBRTtNQUNyQzNRLFNBQVMsQ0FBQyxZQUFNO1FBQ2R3SyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7UUFDeEI5QyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ2JELFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDaEJELFNBQVMsYUFBVEEsU0FBUyxlQUFUQSxTQUFTLENBQUcsSUFBSSxDQUFDO1FBQ2pCRyxlQUFlLENBQUMsSUFBSSxDQUFDO01BQ3ZCLENBQUMsQ0FBQztJQUNKO0lBQ0FsQixXQUFXLENBQUM2SixPQUFPLEVBQUVDLFdBQVcsRUFBRUMsS0FBSyxFQUFFQyxpQkFBaUIsRUFBRUMsUUFBUSxFQUFFQyxLQUFLLENBQUM7RUFDOUUsQ0FBQyxFQUNELENBQUN0SCx3QkFBd0IsRUFBRTVDLFdBQVcsRUFBRWtCLGVBQWUsRUFBRUgsU0FBUyxFQUFFQyxVQUFVLEVBQUVDLE9BQU8sQ0FDekYsQ0FBQztFQUVELElBQU1rSixvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFBLEVBQVM7SUFDakMsSUFBSSxDQUFDM0gsb0JBQW9CLEVBQUUsT0FBTyxJQUFJO0lBRXRDLG9CQUNFakYsS0FBQSxDQUFDakMsdUJBQXVCO01BQ3RCOE8sa0JBQWtCLEVBQUUzSCx1QkFBdUIsR0FBR3pHLDhDQUE4QyxHQUFHOEMsU0FBVTtNQUN6R3VMLFdBQVcsRUFBRTFILHNCQUFzQixHQUFHLENBQUMsR0FBRzdELFNBQVU7TUFBQUosUUFBQSxHQUVuRGlFLHNCQUFzQixnQkFDckJwRixLQUFBLENBQUMvQixvQ0FBb0M7UUFBQWtELFFBQUEsZ0JBQ25DckIsSUFBQSxDQUFDNUIsbUNBQW1DO1VBQUFpRCxRQUFBLEVBQ2pDMEIsQ0FBQyxDQUNBd0Msd0JBQXdCLEdBQ3BCLHlEQUF5RCxHQUN6RCwrQ0FDTjtRQUFDLENBQ2tDLENBQUMsZUFDdEN2RixJQUFBLENBQUMzQixzQ0FBc0M7VUFBQWdELFFBQUEsRUFDcEMwQixDQUFDLENBQ0F3Qyx3QkFBd0IsR0FDcEIsNERBQTRELEdBQzVELGtEQUNOO1FBQUMsQ0FDcUMsQ0FBQztNQUFBLENBQ0wsQ0FBQyxHQUNyQyxJQUFJLGVBQ1JyRixLQUFBLENBQUNoQywyQkFBMkI7UUFBQytPLFdBQVcsRUFBRTdILHVCQUF3QjtRQUFBL0QsUUFBQSxHQUMvRDRFLHFCQUFxQixJQUNwQnpGLDRCQUE0QixDQUFDME0sR0FBRyxDQUFDLFVBQUFDLEdBQUc7VUFBQSxvQkFBSW5OLElBQUEsQ0FBQ3RCLGtDQUFrQyxNQUFNeU8sR0FBTSxDQUFDO1FBQUEsRUFBQyxFQUMxRixDQUFDbEgscUJBQXFCLElBQ3JCRSxjQUFjLENBQUMrRyxHQUFHLENBQUMsVUFBQ3ZNLE9BQU8sRUFBRXlNLEtBQUs7VUFBQSxvQkFDaENwTixJQUFBLENBQUNTLGlCQUFpQjtZQUVoQkUsT0FBTyxFQUFFQSxPQUFRO1lBQ2pCQyxLQUFLLEVBQUVELE9BQU8sQ0FBQ2lHLElBQUksQ0FBQ3lHLElBQUksQ0FBQyxDQUFFO1lBQzNCeE0sT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7Y0FBQSxPQUFRc0sseUJBQXlCLENBQUN4SyxPQUFPLEVBQUV5TSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQUEsQ0FBQztZQUM3RHJNLFNBQVMsRUFBRXFFO1VBQXdCLE1BQUFxRCxNQUFBLENBSjNCOUgsT0FBTyxDQUFDUSxJQUFJLE9BQUFzSCxNQUFBLENBQUk5SCxPQUFPLENBQUNzRSxFQUFFLENBS25DLENBQUM7UUFBQSxDQUNILENBQUM7TUFBQSxDQUN1QixDQUFDO0lBQUEsQ0FDUCxDQUFDO0VBRTlCLENBQUM7RUFFRCxJQUFNcUksV0FBVyxHQUFHdFIsV0FBVyxDQUFDLFlBQU07SUFDcEMsSUFBTXVSLFNBQVMsR0FBRzFELG1CQUFtQixDQUFDbEIsT0FBTztJQUM3QyxJQUFJLENBQUM0RSxTQUFTLElBQUksQ0FBQzVELG9CQUFvQixFQUFFO0lBRXpDLElBQVE2RCxTQUFTLEdBQWlDRCxTQUFTLENBQW5EQyxTQUFTO01BQUVDLFlBQVksR0FBbUJGLFNBQVMsQ0FBeENFLFlBQVk7TUFBRUMsWUFBWSxHQUFLSCxTQUFTLENBQTFCRyxZQUFZO0lBQzdDLElBQU1DLFlBQVksR0FBR0YsWUFBWSxHQUFHQyxZQUFZO0lBQ2hELElBQU1FLE9BQU8sR0FBR0osU0FBUyxLQUFLLENBQUM7SUFDL0IsSUFBTUssVUFBVSxHQUFHTCxTQUFTLEdBQUdFLFlBQVksSUFBSUQsWUFBWSxHQUFHLENBQUM7SUFFL0R4RCxrQkFBa0IsQ0FBQzBELFlBQVksSUFBSSxDQUFDQyxPQUFPLENBQUM7SUFDNUN2RCxxQkFBcUIsQ0FBQ3NELFlBQVksSUFBSSxDQUFDRSxVQUFVLENBQUM7SUFDbERwRCxjQUFjLENBQUMsSUFBSSxDQUFDO0lBRXBCLElBQUlDLGdCQUFnQixDQUFDL0IsT0FBTyxFQUFFO01BQzVCbUYsWUFBWSxDQUFDcEQsZ0JBQWdCLENBQUMvQixPQUFPLENBQUM7SUFDeEM7SUFFQStCLGdCQUFnQixDQUFDL0IsT0FBTyxHQUFHb0YsVUFBVSxDQUFDLFlBQU07TUFDMUN0RCxjQUFjLENBQUMsS0FBSyxDQUFDO0lBQ3ZCLENBQUMsRUFBRSxHQUFHLENBQUM7RUFDVCxDQUFDLEVBQUUsQ0FBQ2Qsb0JBQW9CLENBQUMsQ0FBQztFQUUxQjlOLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSSxDQUFDOE4sb0JBQW9CLEVBQUU7TUFDekJNLGtCQUFrQixDQUFDLEtBQUssQ0FBQztNQUN6QkkscUJBQXFCLENBQUMsS0FBSyxDQUFDO01BQzVCLE9BQU81SSxTQUFTO0lBQ2xCO0lBRUEsSUFBTThMLFNBQVMsR0FBRzFELG1CQUFtQixDQUFDbEIsT0FBTztJQUM3QyxJQUFJLENBQUM0RSxTQUFTLEVBQUU7TUFDZCxPQUFPOUwsU0FBUztJQUNsQjtJQUVBNkwsV0FBVyxDQUFDLENBQUM7SUFDYkMsU0FBUyxDQUFDUyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUVWLFdBQVcsQ0FBQztJQUVqRCxJQUFNVyxTQUFTLEdBQUdGLFVBQVUsQ0FBQ1QsV0FBVyxFQUFFLEdBQUcsQ0FBQztJQUU5QyxPQUFPLFlBQU07TUFDWEMsU0FBUyxDQUFDVyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUVaLFdBQVcsQ0FBQztNQUNwRFEsWUFBWSxDQUFDRyxTQUFTLENBQUM7TUFDdkIsSUFBSXZELGdCQUFnQixDQUFDL0IsT0FBTyxFQUFFO1FBQzVCbUYsWUFBWSxDQUFDcEQsZ0JBQWdCLENBQUMvQixPQUFPLENBQUM7TUFDeEM7SUFDRixDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUNnQixvQkFBb0IsRUFBRTJELFdBQVcsQ0FBQyxDQUFDO0VBRXZDLElBQU1hLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUEsRUFBUztJQUNoQyxJQUFJLENBQUNySyxNQUFNLEVBQUU7TUFBQSxJQUFBc0ssaUJBQUEsRUFBQUMsa0JBQUE7TUFDWCxvQkFDRW5PLEtBQUEsQ0FBQ25ELDJCQUEyQjtRQUFBc0UsUUFBQSxnQkFDMUJuQixLQUFBLENBQUNsRCxrQkFBa0I7VUFBQXFFLFFBQUEsR0FDaEIrQixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRWtMLEtBQUssRUFBQyxHQUFDLEVBQUNsTCxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRXdELElBQUk7UUFBQSxDQUNULENBQUMsRUFDcEIsQ0FBQXhELEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFbUwsVUFBVSxLQUFJLENBQUN6SyxNQUFNLGlCQUMzQjlELElBQUEsQ0FBQ3pDLDJCQUEyQjtVQUFBOEQsUUFBQSxlQUMxQnJCLElBQUEsQ0FBQzdELE9BQU87WUFDTndGLEtBQUssRUFDSHlCLEtBQUssYUFBTEEsS0FBSyxnQkFBQWdMLGlCQUFBLEdBQUxoTCxLQUFLLENBQUVtTCxVQUFVLGNBQUFILGlCQUFBLGVBQWpCQSxpQkFBQSxDQUFtQkksVUFBVSxHQUFHekwsQ0FBQyxDQUFDLGtDQUFrQyxDQUFDLEdBQUdBLENBQUMsQ0FBQywyQkFBMkIsQ0FDdEc7WUFBQTFCLFFBQUEsZUFFRG5CLEtBQUEsQ0FBQzFDLHNCQUFzQjtjQUFBNkQsUUFBQSxHQUNwQjBCLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLEdBQUcsZUFDN0IvQyxJQUFBLENBQUN2QywwQkFBMEI7Z0JBQUE0RCxRQUFBLEVBQUUrQixLQUFLLGFBQUxBLEtBQUssZ0JBQUFpTCxrQkFBQSxHQUFMakwsS0FBSyxDQUFFbUwsVUFBVSxjQUFBRixrQkFBQSx1QkFBakJBLGtCQUFBLENBQW1Cekg7Y0FBSSxDQUE2QixDQUFDO1lBQUEsQ0FDNUQ7VUFBQyxDQUNsQjtRQUFDLENBQ2lCLENBQzlCO01BQUEsQ0FDMEIsQ0FBQztJQUVsQztJQUVBLElBQU02SCxpQkFBaUIsR0FBRzVKLGFBQWEsSUFBSU8sdUJBQXVCLElBQUlNLDZCQUE2QjtJQUVuRyxvQkFDRXhGLEtBQUEsQ0FBQ3RDLHdCQUF3QjtNQUN2QjhRLE1BQU0sRUFBRSxDQUFDdkosb0JBQW9CLElBQUksQ0FBQ04sYUFBYSxJQUFJLENBQUM4RixRQUFTO01BQzdEZ0UsTUFBTSxFQUFFRixpQkFBaUIsR0FBRyxPQUFPLEdBQUcsUUFBUztNQUFBcE4sUUFBQSxHQUU5QyxDQUFDd0QsYUFBYSxJQUFJLENBQUNPLHVCQUF1QixJQUFJLENBQUNNLDZCQUE2QixpQkFDM0UxRixJQUFBLENBQUN0QyxzQkFBc0I7UUFBQTJELFFBQUEsZUFDckJyQixJQUFBLENBQUNyQyxvQkFBb0I7VUFBQTBELFFBQUEsZUFDbkJyQixJQUFBLENBQUNMLFdBQVcsSUFBRTtRQUFDLENBQ0s7TUFBQyxDQUNELENBQ3pCLEVBQ0FrRixhQUFhLGlCQUNaM0UsS0FBQSxDQUFDcEMsbUJBQW1CO1FBQUM2USxNQUFNLEVBQUMsT0FBTztRQUFBdE4sUUFBQSxnQkFDakNyQixJQUFBLENBQUNuQyxjQUFjO1VBQUMrUSxLQUFLLEVBQUMsSUFBSTtVQUFDRCxNQUFNLEVBQUMsT0FBTztVQUFBdE4sUUFBQSxFQUN0QzBCLENBQUMsQ0FBQyw0QkFBNEI7UUFBQyxDQUNsQixDQUFDLGVBQ2pCL0MsSUFBQSxDQUFDakMsaUJBQWlCO1VBQUM0USxNQUFNLEVBQUMsT0FBTztVQUFBdE4sUUFBQSxFQUFFMEIsQ0FBQyxDQUFDLCtCQUErQjtRQUFDLENBQW9CLENBQUM7TUFBQSxDQUN2RSxDQUN0QixFQUNBLENBQUM4QixhQUFhLElBQUlNLG9CQUFvQixJQUFJQyx1QkFBdUIsaUJBQ2hFbEYsS0FBQSxDQUFDcEMsbUJBQW1CO1FBQUM2USxNQUFNLEVBQUMsT0FBTztRQUFDdk4sVUFBVTtRQUFBQyxRQUFBLGdCQUM1Q3JCLElBQUEsQ0FBQ25DLGNBQWM7VUFBQytRLEtBQUssRUFBQyxTQUFTO1VBQUNELE1BQU0sRUFBQyxPQUFPO1VBQUN2TixVQUFVO1VBQUFDLFFBQUEsRUFDdEQwQixDQUFDLENBQUMsK0JBQStCLEVBQUU7WUFBRTZELElBQUksRUFBRTFELElBQUksQ0FBQzJMO1VBQVUsQ0FBQztRQUFDLENBQy9DLENBQUMsZUFDakI3TyxJQUFBLENBQUNqQyxpQkFBaUI7VUFBQzRRLE1BQU0sRUFBQyxPQUFPO1VBQUNHLGlCQUFpQjtVQUFBek4sUUFBQSxFQUNoRDBCLENBQUMsQ0FBQ3lDLDRCQUE0QjtRQUFDLENBQ2YsQ0FBQztNQUFBLENBQ0QsQ0FDdEIsRUFDQSxDQUFDWCxhQUFhLElBQUlNLG9CQUFvQixJQUFJLENBQUNDLHVCQUF1QixpQkFDakVsRixLQUFBLENBQUFFLFNBQUE7UUFBQWlCLFFBQUEsZ0JBQ0VyQixJQUFBLENBQUNuQyxjQUFjO1VBQUM4USxNQUFNLEVBQUVqSiw2QkFBNkIsR0FBRyxPQUFPLEdBQUdqRSxTQUFVO1VBQUFKLFFBQUEsRUFDekUwQixDQUFDLENBQUMsK0JBQStCLEVBQUU7WUFBRTZELElBQUksRUFBRTFELElBQUksQ0FBQzJMO1VBQVUsQ0FBQztRQUFDLENBQy9DLENBQUMsZUFDakI3TyxJQUFBLENBQUNqQyxpQkFBaUI7VUFBQzRRLE1BQU0sRUFBRWpKLDZCQUE2QixHQUFHLE9BQU8sR0FBR2pFLFNBQVU7VUFBQUosUUFBQSxFQUM1RTBCLENBQUMsQ0FDQWhFLGtCQUFrQixDQUFDbUUsSUFBSSxDQUFDbUMsT0FBTyxDQUFDLEdBQzVCLDJDQUEyQyxHQUMzQywrQkFDTjtRQUFDLENBQ2dCLENBQUM7TUFBQSxDQUNwQixDQUNILEVBQ0EsQ0FBQ1IsYUFBYSxJQUFJLENBQUNNLG9CQUFvQixJQUFJd0YsUUFBUSxpQkFDbEQzSyxJQUFBLENBQUNsRCxpQkFBaUI7UUFDaEI2UixNQUFNLEVBQUVqSiw2QkFBNkIsR0FBRyxPQUFPLEdBQUdqRSxTQUFVO1FBQzVEbU4sS0FBSyxFQUFFbEosNkJBQTZCLEdBQUcsSUFBSSxHQUFHLElBQUs7UUFBQXJFLFFBQUEsRUFFbERzSjtNQUFRLENBQ1EsQ0FDcEI7SUFBQSxDQUN1QixDQUFDO0VBRS9CLENBQUM7RUFFRCxJQUFNb0UscUJBQXFCLEdBQ3pCM0osdUJBQXVCLElBQUlNLDZCQUE2QixHQUNwRC9HLDhDQUE4QyxHQUM5QzhDLFNBQVM7RUFDZixJQUFNZ04saUJBQWlCLEdBQUc1SixhQUFhLElBQUlPLHVCQUF1QixJQUFJTSw2QkFBNkI7RUFFbkcsb0JBQ0V4RixLQUFBLENBQUMxRCxrQkFBa0I7SUFBQ2tOLFFBQVEsRUFBRUEsUUFBUztJQUFDc0YsV0FBVyxFQUFFdEosNkJBQThCO0lBQUFyRSxRQUFBLEdBQ2hGc0ksb0JBQW9CLGlCQUFJM0osSUFBQSxDQUFDckQsb0JBQW9CO01BQUNzUyxLQUFLLEVBQUVqRjtJQUFnQixDQUFFLENBQUMsZUFDekVoSyxJQUFBLENBQUN2RCxnQkFBZ0I7TUFDZmlGLEdBQUcsRUFBRW1JLG1CQUFvQjtNQUN6QkgsUUFBUSxFQUFFQyxvQkFBcUI7TUFDL0J1RixZQUFZLEVBQUUsQ0FBQ3BMLE1BQU87TUFDdEJxTCxxQkFBcUIsRUFBRXBMLG9CQUFxQjtNQUM1Q3FMLGlCQUFpQixFQUFFdkssYUFBYztNQUNqQ21LLFdBQVcsRUFBRXRKLDZCQUE4QjtNQUMzQ3FILGtCQUFrQixFQUFFZ0MscUJBQXNCO01BQUExTixRQUFBLGVBRTFDbkIsS0FBQSxDQUFDeEQscUJBQXFCO1FBQ3BCZ04sUUFBUSxFQUFFQyxvQkFBcUI7UUFDL0J1RixZQUFZLEVBQUUsQ0FBQ3BMLE1BQU87UUFDdEJxTCxxQkFBcUIsRUFBRXBMLG9CQUFxQjtRQUM1Q3FMLGlCQUFpQixFQUFFdkssYUFBYztRQUNqQ21LLFdBQVcsRUFBRTVKLHVCQUF1QixJQUFJTSw2QkFBOEI7UUFDdEUySix1QkFBdUIsRUFBRWpLLHVCQUF3QjtRQUNqRGtLLHdCQUF3QixFQUFFNUosNkJBQThCO1FBQUFyRSxRQUFBLGdCQUV4RG5CLEtBQUEsQ0FBQ3JELGVBQWU7VUFDZDBTLElBQUksRUFBRXpMLE1BQU0sSUFBSVQsT0FBTyxLQUFLLFNBQVMsR0FBRyxLQUFLLEdBQUcsTUFBTztVQUN2RG1NLFNBQVMsRUFBRTFMLE1BQU0sR0FBRyxNQUFNLEdBQUcsT0FBUTtVQUNyQ29MLFlBQVksRUFBRSxDQUFDcEwsTUFBTztVQUN0QjZLLE1BQU0sRUFBRUYsaUJBQWlCLEdBQUcsT0FBTyxHQUFHLFFBQVM7VUFBQXBOLFFBQUEsR0FFOUM4TSxtQkFBbUIsQ0FBQyxDQUFDLEVBRXJCOUssT0FBTyxLQUFLLFNBQVMsaUJBQ3BCckQsSUFBQSxDQUFDMUMscUJBQXFCO1lBQUNzRixRQUFRLEVBQUVBLFFBQVM7WUFBQXZCLFFBQUEsRUFBRSxDQUFDeUMsTUFBTSxLQUFJVixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRXlILFlBQVk7VUFBQSxDQUF3QixDQUNuRztRQUFBLENBQ2MsQ0FBQyxFQUNqQnJCLHNCQUFzQixpQkFDckJ0SixLQUFBLENBQUM3QywwQkFBMEI7VUFBQ3dELE9BQU8sRUFBRTZCLFFBQVEsQ0FBQytNLGNBQWU7VUFBQXBPLFFBQUEsZ0JBQzNEckIsSUFBQSxDQUFDL0MsdUJBQXVCO1lBQUFvRSxRQUFBLGVBQ3RCckIsSUFBQSxDQUFDSixvQkFBb0I7Y0FBQzRCLE1BQU0sRUFBRSxFQUFHO2NBQUNELEtBQUssRUFBRTtZQUFHLENBQUU7VUFBQyxDQUN4QixDQUFDLGVBQzFCckIsS0FBQSxDQUFDaEQsOEJBQThCO1lBQUFtRSxRQUFBLGdCQUM3QnJCLElBQUEsQ0FBQzdDLDRCQUE0QjtjQUFBa0UsUUFBQSxFQUFFMEIsQ0FBQyxDQUFDLCtCQUErQjtZQUFDLENBQStCLENBQUMsZUFDakcvQyxJQUFBLENBQUM1QyxrQ0FBa0M7Y0FBQWlFLFFBQUEsRUFDaEMwQixDQUFDLENBQUMscUNBQXFDO1lBQUMsQ0FDUCxDQUFDO1VBQUEsQ0FDUCxDQUFDO1FBQUEsQ0FDUCxDQUM3QixFQUNBNkcsa0JBQWtCLGlCQUNqQjFKLEtBQUEsQ0FBQ2xDLHVCQUF1QjtVQUN0QjBSLEtBQUssRUFBRWhMLFNBQVU7VUFDakJzSyxXQUFXLEVBQUU1Six1QkFBdUIsSUFBSU0sNkJBQThCO1VBQUFyRSxRQUFBLEdBRXJFZ0ksNEJBQTRCLGdCQUMzQnJKLElBQUEsQ0FBQ1QscUJBQXFCO1lBQ3BCb1EsT0FBTyxFQUFDLFNBQVM7WUFDakJoTixXQUFXLEVBQUU0SixtQkFBb0I7WUFDakMzRCxPQUFPLEVBQUV4RixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRTZCLEVBQUc7WUFDbkJ1RixXQUFXLEVBQUVBLFdBQVk7WUFDekJqRCxPQUFPLEVBQUVRLGVBQWdCO1lBQ3pCN0IsT0FBTyxFQUFFOEI7VUFBdUIsQ0FDakMsQ0FBQyxHQUNBLElBQUksRUFDUHNCLDRCQUE0QixnQkFDM0JwSixLQUFBLENBQUM1Qiw0QkFBNEI7WUFBQStDLFFBQUEsZ0JBQzNCckIsSUFBQSxDQUFDNUIsbUNBQW1DO2NBQUFpRCxRQUFBLEVBQ2pDMEIsQ0FBQyxDQUFDLHlDQUF5QztZQUFDLENBQ1YsQ0FBQyxlQUN0Qy9DLElBQUEsQ0FBQ1QscUJBQXFCO2NBQ3BCb1EsT0FBTyxFQUFDLFNBQVM7Y0FDakJoTixXQUFXLEVBQUU0SixtQkFBb0I7Y0FDakMzRCxPQUFPLEVBQUV4RixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRTZCLEVBQUc7Y0FDbkJ1RixXQUFXLEVBQUVBLFdBQVk7Y0FDekJqRCxPQUFPLEVBQUVRLGVBQWdCO2NBQ3pCN0IsT0FBTyxFQUFFOEI7WUFBdUIsQ0FDakMsQ0FBQztVQUFBLENBQzBCLENBQUMsR0FDN0IsSUFBSSxFQUNQOEUsb0JBQW9CLENBQUMsQ0FBQyxFQUN0QjNELGNBQWMsaUJBQ2JuSixJQUFBLENBQUNWLHdCQUF3QjtZQUN2QnFELFdBQVcsRUFBRUEsV0FBWTtZQUN6QitHLFFBQVEsRUFBRUEsUUFBUztZQUNuQmpGLGtCQUFrQixFQUFFQSxrQkFBbUI7WUFDdkNtRSxPQUFPLEVBQUV4RixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRTZCLEVBQUc7WUFDbkJqQixJQUFJLEVBQUVBLElBQUs7WUFDWHdHLFdBQVcsRUFBRUEsV0FBWTtZQUN6QnJDLElBQUksRUFBRUEsSUFBSztZQUNYakMsT0FBTyxFQUFFNkM7VUFBZSxDQUN6QixDQUNGLEVBQ0FLLGNBQWMsaUJBQ2JwSixJQUFBLENBQUNULHFCQUFxQjtZQUNwQm9ELFdBQVcsRUFBRUEsV0FBWTtZQUN6QmlHLE9BQU8sRUFBRXhGLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFNkIsRUFBRztZQUNuQnVGLFdBQVcsRUFBRUEsV0FBWTtZQUN6QmpELE9BQU8sRUFBRXVCLElBQUs7WUFDZDVDLE9BQU8sRUFBRThDO1VBQWUsQ0FDekIsQ0FDRixFQUNBdEUsU0FBUyxnQkFBRzFFLElBQUEsQ0FBQ0gsaUJBQWlCO1lBQUM4QyxXQUFXLEVBQUVBO1VBQVksQ0FBRSxDQUFDLEdBQUcsSUFBSTtRQUFBLENBQzVDLENBQzFCO01BQUEsQ0FDb0I7SUFBQyxDQUNSLENBQUMsRUFDbEJnSCxvQkFBb0IsaUJBQUkzSixJQUFBLENBQUNwRCx1QkFBdUI7TUFBQ3FTLEtBQUssRUFBRTdFO0lBQW1CLENBQUUsQ0FBQztFQUFBLENBQzdELENBQUM7QUFFekIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@projectcor/maia-components",
3
- "version": "2.11.103-0",
3
+ "version": "2.11.103-1",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "repository": {