@projectcor/maia-components 2.11.37-1 → 2.11.37-3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -112,6 +112,21 @@ export var MAIAInput = function MAIAInput(_ref) {
112
112
  var analyticsCloneEntityPayload = (agent === null || agent === void 0 ? void 0 : agent.type) === 'clone' ? {
113
113
  entity: (_agent$entity = agent.entity) !== null && _agent$entity !== void 0 ? _agent$entity : null
114
114
  } : {};
115
+
116
+ /** Tras elegir o quitar búsqueda web/profunda: volver al textarea (Popover/menu puede robar foco). */
117
+ var scheduleInputFocusAfterToolAction = function scheduleInputFocusAfterToolAction() {
118
+ if (disabled) {
119
+ return;
120
+ }
121
+ requestAnimationFrame(function () {
122
+ window.setTimeout(function () {
123
+ var _inputRef$current;
124
+ (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus({
125
+ preventScroll: true
126
+ });
127
+ }, 0);
128
+ });
129
+ };
115
130
  var closePlusMenu = function closePlusMenu() {
116
131
  setPlusMenuAnchor(null);
117
132
  };
@@ -157,6 +172,7 @@ export var MAIAInput = function MAIAInput(_ref) {
157
172
  toggleDeepSearch();
158
173
  }
159
174
  setToolChipExiting(false);
175
+ scheduleInputFocusAfterToolAction();
160
176
  }, TOOL_CHIP_EXIT_MS);
161
177
  };
162
178
  var handlePlusMenuWebSearch = function handlePlusMenuWebSearch() {
@@ -173,6 +189,7 @@ export var MAIAInput = function MAIAInput(_ref) {
173
189
  agent_type: analyticsAgentType,
174
190
  option: 'search'
175
191
  }, analyticsCloneEntityPayload));
192
+ scheduleInputFocusAfterToolAction();
176
193
  };
177
194
  var handlePlusMenuDeepSearch = function handlePlusMenuDeepSearch() {
178
195
  closePlusMenu();
@@ -188,6 +205,7 @@ export var MAIAInput = function MAIAInput(_ref) {
188
205
  agent_type: analyticsAgentType,
189
206
  option: 'deep_search'
190
207
  }, analyticsCloneEntityPayload));
208
+ scheduleInputFocusAfterToolAction();
191
209
  };
192
210
 
193
211
  // Inicializar las referencias como undefined para detectar el primer cambio correctamente
@@ -401,9 +419,9 @@ export var MAIAInput = function MAIAInput(_ref) {
401
419
  };
402
420
  var handlePaste = function handlePaste() {
403
421
  setTimeout(function () {
404
- var _inputRef$current$val, _inputRef$current;
422
+ var _inputRef$current$val, _inputRef$current2;
405
423
  handleResize();
406
- var currentValue = (_inputRef$current$val = (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.value) !== null && _inputRef$current$val !== void 0 ? _inputRef$current$val : '';
424
+ var currentValue = (_inputRef$current$val = (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.value) !== null && _inputRef$current$val !== void 0 ? _inputRef$current$val : '';
407
425
  var hasText = currentValue.trim().length > 0;
408
426
  var hasAttachments = attachments.length > 0;
409
427
  setValueTextarea(currentValue);
@@ -739,4 +757,4 @@ export var MAIAInput = function MAIAInput(_ref) {
739
757
  })]
740
758
  });
741
759
  };
742
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIlBvcG92ZXIiLCJQYXBlclBsYW5lIiwiQXR0YWNoIiwiR2xvYmUiLCJUcmFzaCIsIlBsdXMiLCJDaGVjayIsIkNyb3NzIiwiVG9vbHRpcCIsIkFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvbiIsIkFjdGl2ZVRvb2xDaGlwTGFiZWwiLCJBY3RpdmVUb29sQ2hpcFJvb3QiLCJQbHVzTWVudURpdmlkZXIiLCJQbHVzTWVudUlubmVyQ29sdW1uIiwiUGx1c01lbnVJdGVtQnV0dG9uIiwiUGx1c01lbnVJdGVtTGFiZWwiLCJQbHVzTWVudVBhcGVyIiwiUGx1c01lbnVUb29sc1JvdyIsIlBsdXNUb2dnbGVCdXR0b24iLCJTQ01JQXR0YWNobWVudCIsIlNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiIsIlN0eWxlZE1BSUFJbnB1dCIsIlN0eWxlZE1BSUFJbnB1dEJ1dHRvbnMiLCJTdHlsZWRNQUlBSW5wdXRXcmFwcGVyIiwiU3R5bGVkTUFJQVNlbmRCdXR0b24iLCJTdHlsZWRNQUlBU3RvcEJ1dHRvbiIsIlN0eWxlZE1BSUFTdG9wSWNvbiIsInVzZUdsb2JhbENvbnRleHQiLCJNb2RhbEZpbGVFeGNlZWRzIiwidXNlVCIsIlRlbGVzY29wZUljb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImdldENoYXRUb29sc01lbnVBZ2VudFR5cGUiLCJhbGxvd2VkRmlsZVR5cGVzIiwiZmlsZVR5cGVzIiwiTUFYX0ZJTEVfU0laRV9NQl9NQUlBX1ZJU0lPTiIsIk1BWF9GSUxFX1NJWkVfTUJfT0xEIiwiTUFYX0ZJTEVfU0laRV9NQl9BVURJTyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsIlRPT0xfQ0hJUF9FWElUX01TIiwiTUFJQUlucHV0IiwiX3JlZiIsIl9hZ2VudCRlbnRpdHkiLCJvblNlbmRNZXNzYWdlIiwiY2xhc3NOYW1lIiwiZGlzYWJsZWQiLCJpc1N0cmVhbWluZyIsImlzV3JpdGluZyIsIm9uU3RvcEdlbmVyYXRpb24iLCJwbGFjZWhvbGRlciIsIm9uQ2hhbmdlIiwiX3JlZiRhbGlnbkJ1dHRvbnMiLCJhbGlnbkJ1dHRvbnMiLCJvbkZpbGVBdHRhY2giLCJvbkRlbGV0ZUF0dGFjaG1lbnQiLCJfcmVmJGF0dGFjaG1lbnRzIiwiYXR0YWNobWVudHMiLCJjaGF0SWQiLCJuZXdDaGF0S2V5IiwiX3VzZVQiLCJ0IiwiaW5wdXRSZWYiLCJmaWxlSW5wdXRSZWYiLCJ3cmFwcGVyUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwidmFsdWVUZXh0YXJlYSIsInNldFZhbHVlVGV4dGFyZWEiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImlzRGlzYWJsZWQiLCJzZXRJc0Rpc2FibGVkIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc0ZvY3VzZWQiLCJzZXRJc0ZvY3VzZWQiLCJfdXNlU3RhdGU3IiwiaXNPcGVuIiwiZXhjbHVkZWRGaWxlcyIsImV4Y2VlZGVkRmlsZXMiLCJmaWxlU2l6ZXMiLCJfdXNlU3RhdGU4IiwibW9kYWxQcm9wcyIsInNldE1vZGFsUHJvcHMiLCJldmVudEFtcGxpdHVkZSIsIl91c2VHbG9iYWxDb250ZXh0IiwidG9nZ2xlV2ViU2VhcmNoIiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJ0b2dnbGVEZWVwU2VhcmNoIiwiaXNEZWVwU2VhcmNoQWN0aXZlIiwiYWdlbnQiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsInBsdXNNZW51QW5jaG9yIiwic2V0UGx1c01lbnVBbmNob3IiLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJhY3RpdmVUb29sQ2hpcEhvdmVyZWQiLCJzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWQiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwidG9vbENoaXBFeGl0aW5nIiwic2V0VG9vbENoaXBFeGl0aW5nIiwidG9vbENoaXBFeGl0VGltZXJSZWYiLCJzZWFyY2hNb2RlQWN0aXZlUmVmIiwid2ViIiwiZGVlcCIsInBsdXNNZW51T3BlbiIsIkJvb2xlYW4iLCJjdXJyZW50IiwiYW5hbHl0aWNzQWdlbnRUeXBlIiwiYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkIiwidHlwZSIsImVudGl0eSIsImNsb3NlUGx1c01lbnUiLCJoYW5kbGVQbHVzQnV0dG9uQ2xpY2siLCJlIiwic3RvcFByb3BhZ2F0aW9uIiwiY3VycmVudFRhcmdldCIsImFpQ2hhdFBsdXNPcGVuIiwiX29iamVjdFNwcmVhZCIsImFnZW50X3R5cGUiLCJoYW5kbGVQbHVzTWVudUF0dGFjaCIsIl9maWxlSW5wdXRSZWYkY3VycmVudCIsImFpQ2hhdFRvb2xzIiwib3B0aW9uIiwibGVuZ3RoIiwiY2xpY2siLCJiZWdpblRvb2xDaGlwRXhpdCIsIndhc1dlYiIsIndhc0RlZXAiLCJzZXRUaW1lb3V0IiwiX3NlYXJjaE1vZGVBY3RpdmVSZWYkIiwiaGFuZGxlUGx1c01lbnVXZWJTZWFyY2giLCJoYW5kbGVQbHVzTWVudURlZXBTZWFyY2giLCJwcmV2aW91c0FnZW50SWRSZWYiLCJ1bmRlZmluZWQiLCJwcmV2aW91c0NoYXRJZFJlZiIsInByZXZpb3VzTmV3Q2hhdEtleVJlZiIsImhhbmRsZVJlc2l6ZSIsInRleHRhcmVhIiwibWluSGVpZ2h0IiwibWF4SGVpZ2h0IiwicHJldmlvdXNNaW5IZWlnaHQiLCJzdHlsZSIsInByZXZpb3VzTWF4SGVpZ2h0IiwiaGVpZ2h0Iiwib2Zmc2V0SGVpZ2h0Iiwic2Nyb2xsSGVpZ2h0IiwiY29tcHV0ZWRTdHlsZSIsIndpbmRvdyIsImdldENvbXB1dGVkU3R5bGUiLCJsaW5lSGVpZ2h0IiwicGFyc2VGbG9hdCIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIiwiYm9yZGVyVG9wIiwiYm9yZGVyVG9wV2lkdGgiLCJib3JkZXJCb3R0b20iLCJib3JkZXJCb3R0b21XaWR0aCIsInNpbmdsZUxpbmVIZWlnaHQiLCJpc0VtcHR5IiwidmFsdWUiLCJ0cmltIiwiaGFzTXVsdGlwbGVWaXN1YWxMaW5lcyIsImNhbnZhcyIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImNvbnRleHQiLCJnZXRDb250ZXh0IiwidGV4dGFyZWFTdHlsZXMiLCJmb250IiwiY29uY2F0IiwiZm9udFdlaWdodCIsImZvbnRTaXplIiwiZm9udEZhbWlseSIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ1JpZ2h0IiwiYm9yZGVyTGVmdCIsImJvcmRlckxlZnRXaWR0aCIsImJvcmRlclJpZ2h0IiwiYm9yZGVyUmlnaHRXaWR0aCIsInRleHRhcmVhV2lkdGgiLCJvZmZzZXRXaWR0aCIsInRleHQiLCJsaW5lcyIsInNwbGl0IiwiX2l0ZXJhdG9yIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJfc3RlcCIsInMiLCJuIiwiZG9uZSIsImxpbmUiLCJ0ZXh0V2lkdGgiLCJtZWFzdXJlVGV4dCIsIndpZHRoIiwiZXJyIiwiZiIsIm5ld0hlaWdodCIsIk1hdGgiLCJtaW4iLCJtYXgiLCJmb2N1cyIsImNsZWFyVGltZW91dCIsImFnZW50Q2hhbmdlZCIsImlkIiwicHJldmlvdXNDaGF0SWQiLCJjdXJyZW50Q2hhdElkIiwiY2hhdENoYW5nZWQiLCJjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQiLCJuZXdDaGF0U3RhcnRlZCIsImlzSW5pdGlhbE1vdW50IiwiZGVsYXkiLCJoYW5kbGVTZXNzaW9uQ2hhbmdlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJhbmltYXRpb25GcmFtZUlkIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJoYXNUZXh0IiwiaGFzQXR0YWNobWVudHMiLCJoYW5kbGVTZW5kTWVzc2FnZSIsImhhbmRsZUtleURvd24iLCJrZXkiLCJzaGlmdEtleSIsInByZXZlbnREZWZhdWx0IiwiaGFuZGxlQ2hhbmdlIiwidGFyZ2V0IiwiaGFuZGxlUGFzdGUiLCJfaW5wdXRSZWYkY3VycmVudCR2YWwiLCJfaW5wdXRSZWYkY3VycmVudCIsImN1cnJlbnRWYWx1ZSIsImhhbmRsZUZpbGVTZWxlY3QiLCJmaWxlcyIsImZpbGVzSW5zZXJ0ZWQiLCJpc05ld0Zvcm1hdCIsImV4dGVuc2lvbiIsImluY2x1ZGVzIiwiaXNPbGRGb3JtYXQiLCJpc0F1ZGlvRm9ybWF0IiwiQXJyYXkiLCJmcm9tIiwiZm9yRWFjaCIsImZpbGUiLCJfZmlsZU5hbWVQYXJ0cyRwb3AiLCJleGNsdWRlZEZpbGUiLCJmaWxlTmFtZVBhcnRzIiwibmFtZSIsImZpbGVFeHRlbnNpb24iLCJwb3AiLCJ0b0xvd2VyQ2FzZSIsInNpemUiLCJwdXNoIiwidHlwZUZpbGUiLCJwYXJzZWRGaWxlIiwiRmlsZSIsImhhbmRsZURlbGV0ZUF0dGFjaG1lbnQiLCJmaWxlSWQiLCJoYW5kbGVCbHVyIiwiaGFuZGxlV3JhcHBlckZvY3VzIiwiaGFuZGxlV3JhcHBlckJsdXIiLCJfd3JhcHBlclJlZiRjdXJyZW50IiwiY29udGFpbnMiLCJhY3RpdmVFbGVtZW50IiwiaGFuZGxlU3RvcEdlbmVyYXRpb24iLCJhaUNoYXRTdG9wUmVzcG9uc2UiLCJwbHVzSWNvbkNvbG9yIiwicGx1c01lbnVJY29uQ29sb3IiLCJwbHVzTWVudVNlbGVjdGVkQ29sb3IiLCJhY3RpdmVUb29sQ2hpcExlYWRpbmdJY29uIiwiY29sb3IiLCJjaGlsZHJlbiIsInJlZiIsIm9uRm9jdXMiLCJvbkJsdXIiLCJkaXNwbGF5IiwiZ2FwIiwiYWxpZ25JdGVtcyIsIm1hcCIsImF0dGFjaG1lbnQiLCJpbmRleCIsIl9maWxlTmFtZVBhcnRzJHBvcDIiLCJfYXR0YWNobWVudCR0eXBlIiwiaXNJbWFnZUJ5RXh0ZW5zaW9uIiwiaXNJbWFnZUJ5TWltZSIsInN0YXJ0c1dpdGgiLCJpc0ltYWdlIiwidGl0bGUiLCJpY29uIiwib25DbGljayIsIm9uS2V5RG93biIsIm9uUGFzdGUiLCIkbWVudU9wZW4iLCJvcGVuIiwiYW5jaG9yRWwiLCJvbkNsb3NlIiwiYW5jaG9yT3JpZ2luIiwidmVydGljYWwiLCJob3Jpem9udGFsIiwidHJhbnNmb3JtT3JpZ2luIiwic2xvdFByb3BzIiwicGFwZXIiLCJlbGV2YXRpb24iLCJzeCIsIm92ZXJmbG93IiwiYm9yZGVyUmFkaXVzIiwiYm94U2hhZG93IiwiYmFja2dyb3VuZENvbG9yIiwibWFyZ2luVG9wIiwiJHNlbGVjdGVkIiwiJGhvdmVyZWQiLCIkZXhpdGluZyIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsIiRjbG9zZVNob3duIiwiaGFzVmFsdWVzIiwibXVsdGlwbGUiLCJhY2NlcHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9NQUlBSW5wdXQvTUFJQUlucHV0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29udGludWUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXZvaWQgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L25vLWFycmF5LWluZGV4LWtleSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbG9uZWx5LWlmICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBwcmVmZXItZGVzdHJ1Y3R1cmluZyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgeyBDaGFuZ2VFdmVudCwgS2V5Ym9hcmRFdmVudCwgTW91c2VFdmVudCwgUmVhY3ROb2RlLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFBvcG92ZXIgfSBmcm9tICdAbXVpL21hdGVyaWFsJ1xuaW1wb3J0IHsgUGFwZXJQbGFuZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1BhcGVyUGxhbmUnXG5pbXBvcnQgeyBBdHRhY2ggfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9BdHRhY2gnXG5pbXBvcnQgeyBHbG9iZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0dsb2JlJ1xuaW1wb3J0IHsgVHJhc2ggfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9UcmFzaCdcbmltcG9ydCB7IFBsdXMgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9QbHVzJ1xuaW1wb3J0IHsgQ2hlY2sgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGVjaydcbmltcG9ydCB7IENyb3NzIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ3Jvc3MnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5cbmltcG9ydCB7XG4gIEFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvbixcbiAgQWN0aXZlVG9vbENoaXBMYWJlbCxcbiAgQWN0aXZlVG9vbENoaXBSb290LFxuICBQbHVzTWVudURpdmlkZXIsXG4gIFBsdXNNZW51SW5uZXJDb2x1bW4sXG4gIFBsdXNNZW51SXRlbUJ1dHRvbixcbiAgUGx1c01lbnVJdGVtTGFiZWwsXG4gIFBsdXNNZW51UGFwZXIsXG4gIFBsdXNNZW51VG9vbHNSb3csXG4gIFBsdXNUb2dnbGVCdXR0b24sXG4gIFNDTUlBdHRhY2htZW50LFxuICBTQ01JQXR0YWNobWVudERlbGV0ZUljb24sXG4gIFN0eWxlZE1BSUFJbnB1dCxcbiAgU3R5bGVkTUFJQUlucHV0QnV0dG9ucyxcbiAgU3R5bGVkTUFJQUlucHV0V3JhcHBlcixcbiAgU3R5bGVkTUFJQVNlbmRCdXR0b24sXG4gIFN0eWxlZE1BSUFTdG9wQnV0dG9uLFxuICBTdHlsZWRNQUlBU3RvcEljb24sXG59IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBNb2RhbEZpbGVFeGNlZWRzIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL01vZGFsRmlsZUV4Y2VlZHMnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IFRlbGVzY29wZUljb24gfSBmcm9tICcuLi9pY29ucy9UZWxlc2NvcGVJY29uJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgZ2V0Q2hhdFRvb2xzTWVudUFnZW50VHlwZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2hpdGxBbmFseXRpY3MnXG5pbXBvcnQge1xuICBhbGxvd2VkRmlsZVR5cGVzLFxuICBmaWxlVHlwZXMsXG4gIE1BWF9GSUxFX1NJWkVfTUJfTUFJQV9WSVNJT04sXG4gIE1BWF9GSUxFX1NJWkVfTUJfT0xELFxuICBNQVhfRklMRV9TSVpFX01CX0FVRElPLFxufSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvZm9ybWF0RXh0ZW5zaW9ucydcblxuY29uc3QgVE9PTF9DSElQX0VYSVRfTVMgPSAyMjBcblxudHlwZSBBdHRhY2htZW50RmlsZSA9IHtcbiAgZmlsZTogRmlsZVxuICBvcmlnaW5hbEZpbGU/OiBGaWxlXG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHNpemU6IG51bWJlclxuICB0eXBlOiBzdHJpbmdcbiAgaWNvbj86IFJlYWN0Tm9kZVxufVxuXG50eXBlIE1BSUFJbnB1dFByb3BzID0ge1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIG9uU2VuZE1lc3NhZ2U6IChtZXNzYWdlOiBzdHJpbmcsIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSkgPT4gdm9pZFxuICBvblN0b3BHZW5lcmF0aW9uPzogKCkgPT4gdm9pZFxuICBpc1N0cmVhbWluZz86IGJvb2xlYW5cbiAgaXNXcml0aW5nPzogYm9vbGVhblxuICBwbGFjZWhvbGRlcj86IHN0cmluZ1xuICBvbkNoYW5nZT86ICgpID0+IHZvaWRcbiAgYWxpZ25CdXR0b25zPzogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJ1xuICBvbkZpbGVBdHRhY2g/OiAoZmlsZTogRmlsZSkgPT4gdm9pZFxuICBvbkRlbGV0ZUF0dGFjaG1lbnQ/OiAoZmlsZUlkOiBzdHJpbmcpID0+IHZvaWRcbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdXG4gIGNoYXRJZD86IHN0cmluZ1xuICBuZXdDaGF0S2V5PzogbnVtYmVyXG59XG5cbmV4cG9ydCBjb25zdCBNQUlBSW5wdXQgPSAoe1xuICBvblNlbmRNZXNzYWdlLFxuICBjbGFzc05hbWUsXG4gIGRpc2FibGVkLFxuICBpc1N0cmVhbWluZyxcbiAgaXNXcml0aW5nLFxuICBvblN0b3BHZW5lcmF0aW9uLFxuICBwbGFjZWhvbGRlcixcbiAgb25DaGFuZ2UsXG4gIGFsaWduQnV0dG9ucyA9ICd2ZXJ0aWNhbCcsXG4gIG9uRmlsZUF0dGFjaCxcbiAgb25EZWxldGVBdHRhY2htZW50LFxuICBhdHRhY2htZW50cyA9IFtdLFxuICBjaGF0SWQsXG4gIG5ld0NoYXRLZXksXG59OiBNQUlBSW5wdXRQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKVxuICBjb25zdCBmaWxlSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbClcbiAgY29uc3Qgd3JhcHBlclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgW3ZhbHVlVGV4dGFyZWEsIHNldFZhbHVlVGV4dGFyZWFdID0gdXNlU3RhdGUoJycpXG4gIGNvbnN0IFtpc0Rpc2FibGVkLCBzZXRJc0Rpc2FibGVkXSA9IHVzZVN0YXRlKHRydWUpXG4gIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW21vZGFsUHJvcHMsIHNldE1vZGFsUHJvcHNdID0gdXNlU3RhdGUoe1xuICAgIGlzT3BlbjogZmFsc2UsXG4gICAgZXhjbHVkZWRGaWxlczogW10gYXMgc3RyaW5nW10sXG4gICAgZXhjZWVkZWRGaWxlczogW10gYXMgc3RyaW5nW10sXG4gICAgZmlsZVNpemVzOiB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+LFxuICB9KVxuICBjb25zdCBldmVudEFtcGxpdHVkZSA9IHVzZUV2ZW50KClcbiAgY29uc3QgeyB0b2dnbGVXZWJTZWFyY2gsIGlzV2ViU2VhcmNoQWN0aXZlLCB0b2dnbGVEZWVwU2VhcmNoLCBpc0RlZXBTZWFyY2hBY3RpdmUsIGFnZW50IH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgW3BsdXNNZW51QW5jaG9yLCBzZXRQbHVzTWVudUFuY2hvcl0gPSB1c2VTdGF0ZTxIVE1MQnV0dG9uRWxlbWVudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFthY3RpdmVUb29sQ2hpcEhvdmVyZWQsIHNldEFjdGl2ZVRvb2xDaGlwSG92ZXJlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3Rvb2xDaGlwRXhpdGluZywgc2V0VG9vbENoaXBFeGl0aW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCB0b29sQ2hpcEV4aXRUaW1lclJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHNlYXJjaE1vZGVBY3RpdmVSZWYgPSB1c2VSZWYoeyB3ZWI6IGZhbHNlLCBkZWVwOiBmYWxzZSB9KVxuICBjb25zdCBwbHVzTWVudU9wZW4gPSBCb29sZWFuKHBsdXNNZW51QW5jaG9yKVxuXG4gIHNlYXJjaE1vZGVBY3RpdmVSZWYuY3VycmVudCA9IHsgd2ViOiBpc1dlYlNlYXJjaEFjdGl2ZSwgZGVlcDogaXNEZWVwU2VhcmNoQWN0aXZlIH1cblxuICBjb25zdCBhbmFseXRpY3NBZ2VudFR5cGUgPSBnZXRDaGF0VG9vbHNNZW51QWdlbnRUeXBlKGFnZW50KVxuICBjb25zdCBhbmFseXRpY3NDbG9uZUVudGl0eVBheWxvYWQgPSBhZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyA/IHsgZW50aXR5OiBhZ2VudC5lbnRpdHkgPz8gbnVsbCB9IDoge31cblxuICBjb25zdCBjbG9zZVBsdXNNZW51ID0gKCkgPT4ge1xuICAgIHNldFBsdXNNZW51QW5jaG9yKG51bGwpXG4gIH1cblxuICBjb25zdCBoYW5kbGVQbHVzQnV0dG9uQ2xpY2sgPSAoZTogTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgaWYgKHBsdXNNZW51QW5jaG9yKSB7XG4gICAgICBjbG9zZVBsdXNNZW51KClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXRQbHVzTWVudUFuY2hvcihlLmN1cnJlbnRUYXJnZXQpXG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFBsdXNPcGVuLCB7IGFnZW50X3R5cGU6IGFuYWx5dGljc0FnZW50VHlwZSwgLi4uYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkIH0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVQbHVzTWVudUF0dGFjaCA9ICgpID0+IHtcbiAgICBjbG9zZVBsdXNNZW51KClcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0VG9vbHMsIHtcbiAgICAgIGFnZW50X3R5cGU6IGFuYWx5dGljc0FnZW50VHlwZSxcbiAgICAgIG9wdGlvbjogJ2ZpbGVzJyxcbiAgICAgIC4uLmFuYWx5dGljc0Nsb25lRW50aXR5UGF5bG9hZCxcbiAgICB9KVxuICAgIGlmIChhdHRhY2htZW50cy5sZW5ndGggPj0gNSkgcmV0dXJuXG4gICAgZmlsZUlucHV0UmVmLmN1cnJlbnQ/LmNsaWNrKClcbiAgfVxuXG4gIGNvbnN0IGJlZ2luVG9vbENoaXBFeGl0ID0gKCkgPT4ge1xuICAgIGlmICh0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY29uc3Qgd2FzV2ViID0gaXNXZWJTZWFyY2hBY3RpdmVcbiAgICBjb25zdCB3YXNEZWVwID0gaXNEZWVwU2VhcmNoQWN0aXZlXG4gICAgaWYgKCF3YXNXZWIgJiYgIXdhc0RlZXApIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXRUb29sQ2hpcEV4aXRpbmcodHJ1ZSlcbiAgICB0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgY29uc3QgeyB3ZWIsIGRlZXAgfSA9IHNlYXJjaE1vZGVBY3RpdmVSZWYuY3VycmVudFxuICAgICAgaWYgKHdhc1dlYiAmJiB3ZWIpIHtcbiAgICAgICAgdG9nZ2xlV2ViU2VhcmNoKClcbiAgICAgIH0gZWxzZSBpZiAod2FzRGVlcCAmJiBkZWVwKSB7XG4gICAgICAgIHRvZ2dsZURlZXBTZWFyY2goKVxuICAgICAgfVxuICAgICAgc2V0VG9vbENoaXBFeGl0aW5nKGZhbHNlKVxuICAgIH0sIFRPT0xfQ0hJUF9FWElUX01TKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUGx1c01lbnVXZWJTZWFyY2ggPSAoKSA9PiB7XG4gICAgY2xvc2VQbHVzTWVudSgpXG4gICAgaWYgKGlzV2ViU2VhcmNoQWN0aXZlKSB7XG4gICAgICBiZWdpblRvb2xDaGlwRXhpdCgpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKGlzRGVlcFNlYXJjaEFjdGl2ZSkge1xuICAgICAgdG9nZ2xlRGVlcFNlYXJjaCgpXG4gICAgfVxuICAgIHRvZ2dsZVdlYlNlYXJjaCgpXG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFRvb2xzLCB7XG4gICAgICBhZ2VudF90eXBlOiBhbmFseXRpY3NBZ2VudFR5cGUsXG4gICAgICBvcHRpb246ICdzZWFyY2gnLFxuICAgICAgLi4uYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkLFxuICAgIH0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVQbHVzTWVudURlZXBTZWFyY2ggPSAoKSA9PiB7XG4gICAgY2xvc2VQbHVzTWVudSgpXG4gICAgaWYgKGlzRGVlcFNlYXJjaEFjdGl2ZSkge1xuICAgICAgYmVnaW5Ub29sQ2hpcEV4aXQoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmIChpc1dlYlNlYXJjaEFjdGl2ZSkge1xuICAgICAgdG9nZ2xlV2ViU2VhcmNoKClcbiAgICB9XG4gICAgdG9nZ2xlRGVlcFNlYXJjaCgpXG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFRvb2xzLCB7XG4gICAgICBhZ2VudF90eXBlOiBhbmFseXRpY3NBZ2VudFR5cGUsXG4gICAgICBvcHRpb246ICdkZWVwX3NlYXJjaCcsXG4gICAgICAuLi5hbmFseXRpY3NDbG9uZUVudGl0eVBheWxvYWQsXG4gICAgfSlcbiAgfVxuXG4gIC8vIEluaWNpYWxpemFyIGxhcyByZWZlcmVuY2lhcyBjb21vIHVuZGVmaW5lZCBwYXJhIGRldGVjdGFyIGVsIHByaW1lciBjYW1iaW8gY29ycmVjdGFtZW50ZVxuICBjb25zdCBwcmV2aW91c0FnZW50SWRSZWYgPSB1c2VSZWY8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG4gIGNvbnN0IHByZXZpb3VzQ2hhdElkUmVmID0gdXNlUmVmPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuICBjb25zdCBwcmV2aW91c05ld0NoYXRLZXlSZWYgPSB1c2VSZWY8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG5cbiAgY29uc3QgaGFuZGxlUmVzaXplID0gKCkgPT4ge1xuICAgIGNvbnN0IHRleHRhcmVhID0gaW5wdXRSZWYuY3VycmVudFxuICAgIGlmICghdGV4dGFyZWEpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIEFsdHVyYSBtw61uaW1hIGVxdWl2YWxlbnRlIGEgdW5hIGzDrW5lYVxuICAgIGNvbnN0IG1pbkhlaWdodCA9IDIyLjFcbiAgICBjb25zdCBtYXhIZWlnaHQgPSAxMjIuMVxuXG4gICAgLy8gUGFyYSBtZWRpciBjb3JyZWN0YW1lbnRlIGVsIHNjcm9sbEhlaWdodCwgbmVjZXNpdGFtb3MgcXVpdGFyIHRlbXBvcmFsbWVudGUgbGFzIHJlc3RyaWNjaW9uZXNcbiAgICBjb25zdCBwcmV2aW91c01pbkhlaWdodCA9IHRleHRhcmVhLnN0eWxlLm1pbkhlaWdodFxuICAgIGNvbnN0IHByZXZpb3VzTWF4SGVpZ2h0ID0gdGV4dGFyZWEuc3R5bGUubWF4SGVpZ2h0XG5cbiAgICAvLyBFc3RhYmxlY2VyIGFsdHVyYSBhICdhdXRvJyB5IHF1aXRhciB0ZW1wb3JhbG1lbnRlIG1pbi1oZWlnaHQgeSBtYXgtaGVpZ2h0IHBhcmEgbWVkaXIgY29ycmVjdGFtZW50ZVxuICAgIHRleHRhcmVhLnN0eWxlLmhlaWdodCA9ICdhdXRvJ1xuICAgIHRleHRhcmVhLnN0eWxlLm1pbkhlaWdodCA9ICcwcHgnXG4gICAgdGV4dGFyZWEuc3R5bGUubWF4SGVpZ2h0ID0gJ25vbmUnXG5cbiAgICAvLyBGb3J6YXIgcmVmbG93IHBhcmEgcXVlIGVsIG5hdmVnYWRvciByZWNhbGN1bGVcbiAgICB2b2lkIHRleHRhcmVhLm9mZnNldEhlaWdodFxuXG4gICAgLy8gQWhvcmEgbWVkaXIgZWwgc2Nyb2xsSGVpZ2h0IHJlYWwgc2luIHJlc3RyaWNjaW9uZXNcbiAgICBjb25zdCBzY3JvbGxIZWlnaHQgPSB0ZXh0YXJlYS5zY3JvbGxIZWlnaHRcblxuICAgIC8vIENhbGN1bGFyIGxhIGFsdHVyYSBkZSB1bmEgbMOtbmVhIHVzYW5kbyBsb3MgZXN0aWxvcyBjb21wdXRhZG9zXG4gICAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRleHRhcmVhKVxuICAgIGNvbnN0IGxpbmVIZWlnaHQgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUubGluZUhlaWdodCkgfHwgMjAgLy8gRmFsbGJhY2sgYSAyMHB4IHNpIG5vIGVzdMOhIGRlZmluaWRvXG4gICAgY29uc3QgcGFkZGluZ1RvcCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5wYWRkaW5nVG9wKSB8fCAwXG4gICAgY29uc3QgcGFkZGluZ0JvdHRvbSA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5wYWRkaW5nQm90dG9tKSB8fCAwXG4gICAgY29uc3QgYm9yZGVyVG9wID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLmJvcmRlclRvcFdpZHRoKSB8fCAwXG4gICAgY29uc3QgYm9yZGVyQm90dG9tID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLmJvcmRlckJvdHRvbVdpZHRoKSB8fCAwXG5cbiAgICAvLyBBbHR1cmEgZGUgdW5hIGzDrW5lYSBjb21wbGV0YSAobGluZS1oZWlnaHQgKyBwYWRkaW5nICsgYm9yZGVyKVxuICAgIGNvbnN0IHNpbmdsZUxpbmVIZWlnaHQgPSBsaW5lSGVpZ2h0ICsgcGFkZGluZ1RvcCArIHBhZGRpbmdCb3R0b20gKyBib3JkZXJUb3AgKyBib3JkZXJCb3R0b21cblxuICAgIGNvbnN0IGlzRW1wdHkgPSB0ZXh0YXJlYS52YWx1ZS50cmltKCkgPT09ICcnXG5cbiAgICAvLyBNZWRpciBlbCBhbmNobyBkZWwgdGV4dG8gdXNhbmRvIENhbnZhcyBwYXJhIGRldGVybWluYXIgc2kgc2UgZW52dWVsdmUgYSBtw7psdGlwbGVzIGzDrW5lYXNcbiAgICBsZXQgaGFzTXVsdGlwbGVWaXN1YWxMaW5lcyA9IGZhbHNlXG5cbiAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKVxuICAgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKVxuXG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICAvLyBGYWxsYmFjayBzaSBDYW52YXMgbm8gZXN0w6EgZGlzcG9uaWJsZTogdXNhciBzY3JvbGxIZWlnaHRcbiAgICAgIGhhc011bHRpcGxlVmlzdWFsTGluZXMgPSBzY3JvbGxIZWlnaHQgPiBzaW5nbGVMaW5lSGVpZ2h0ICogMS41XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRleHRhcmVhU3R5bGVzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGV4dGFyZWEpXG4gICAgICBjb250ZXh0LmZvbnQgPSBgJHt0ZXh0YXJlYVN0eWxlcy5mb250V2VpZ2h0fSAke3RleHRhcmVhU3R5bGVzLmZvbnRTaXplfSAke3RleHRhcmVhU3R5bGVzLmZvbnRGYW1pbHl9YFxuXG4gICAgICAvLyBDYWxjdWxhciBlbCBhbmNobyBkaXNwb25pYmxlIChhbmNobyB0b3RhbCBtZW5vcyBwYWRkaW5nIGl6cXVpZXJkby9kZXJlY2hvIHkgYm9yZGVyIGl6cXVpZXJkby9kZXJlY2hvKVxuICAgICAgY29uc3QgcGFkZGluZ0xlZnQgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUucGFkZGluZ0xlZnQpIHx8IDBcbiAgICAgIGNvbnN0IHBhZGRpbmdSaWdodCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5wYWRkaW5nUmlnaHQpIHx8IDBcbiAgICAgIGNvbnN0IGJvcmRlckxlZnQgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUuYm9yZGVyTGVmdFdpZHRoKSB8fCAwXG4gICAgICBjb25zdCBib3JkZXJSaWdodCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5ib3JkZXJSaWdodFdpZHRoKSB8fCAwXG4gICAgICBjb25zdCB0ZXh0YXJlYVdpZHRoID0gdGV4dGFyZWEub2Zmc2V0V2lkdGggLSBwYWRkaW5nTGVmdCAtIHBhZGRpbmdSaWdodCAtIGJvcmRlckxlZnQgLSBib3JkZXJSaWdodFxuICAgICAgY29uc3QgdGV4dCA9IHRleHRhcmVhLnZhbHVlIHx8ICcnXG4gICAgICBjb25zdCBsaW5lcyA9IHRleHQuc3BsaXQoJ1xcbicpXG5cbiAgICAgIC8vIFNpIGhheSBtw7psdGlwbGVzIGzDrW5lYXMgcG9yIHNhbHRvcyBkZSBsw61uZWEgZXhwbMOtY2l0b3NcbiAgICAgIGlmIChsaW5lcy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGhhc011bHRpcGxlVmlzdWFsTGluZXMgPSB0cnVlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgdGV4dG8gc2UgZW52dWVsdmUgbWlkaWVuZG8gZWwgYW5jaG8gZGUgY2FkYSBsw61uZWFcbiAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgICAgICAgaWYgKGxpbmUudHJpbSgpID09PSAnJykgY29udGludWVcbiAgICAgICAgICBjb25zdCB0ZXh0V2lkdGggPSBjb250ZXh0Lm1lYXN1cmVUZXh0KGxpbmUpLndpZHRoXG4gICAgICAgICAgLy8gU2kgYWxndW5hIGzDrW5lYSBlcyBtw6FzIGFuY2hhIHF1ZSBlbCB0ZXh0YXJlYSBkaXNwb25pYmxlLCBzZSBlbnZ1ZWx2ZVxuICAgICAgICAgIGlmICh0ZXh0V2lkdGggPiB0ZXh0YXJlYVdpZHRoKSB7XG4gICAgICAgICAgICBoYXNNdWx0aXBsZVZpc3VhbExpbmVzID0gdHJ1ZVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgbmV3SGVpZ2h0OiBudW1iZXJcbiAgICBpZiAoaXNFbXB0eSkge1xuICAgICAgLy8gQ3VhbmRvIGVzdMOhIHZhY8OtbywgdXNhciBhbHR1cmEgbcOtbmltYVxuICAgICAgbmV3SGVpZ2h0ID0gbWluSGVpZ2h0XG4gICAgfSBlbHNlIGlmICghaGFzTXVsdGlwbGVWaXN1YWxMaW5lcykge1xuICAgICAgLy8gQ3VhbmRvIGhheSBjb250ZW5pZG8gcGVybyBzb2xvIHVuYSBsw61uZWEgdmlzdWFsLCB1c2FyIGFsdHVyYSBtw61uaW1hXG4gICAgICBuZXdIZWlnaHQgPSBtaW5IZWlnaHRcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUGFyYSBtw7psdGlwbGVzIGzDrW5lYXMgdmlzdWFsZXMsIHVzYXIgZWwgc2Nyb2xsSGVpZ2h0XG4gICAgICBuZXdIZWlnaHQgPSBNYXRoLm1pbihNYXRoLm1heChzY3JvbGxIZWlnaHQsIG1pbkhlaWdodCksIG1heEhlaWdodClcbiAgICB9XG5cbiAgICAvLyBSZXN0YXVyYXIgZXN0aWxvcyBhbnRlcyBkZSBhcGxpY2FyIGxhIG51ZXZhIGFsdHVyYVxuICAgIHRleHRhcmVhLnN0eWxlLm1pbkhlaWdodCA9IHByZXZpb3VzTWluSGVpZ2h0IHx8ICcyMi4xcHgnXG4gICAgdGV4dGFyZWEuc3R5bGUubWF4SGVpZ2h0ID0gcHJldmlvdXNNYXhIZWlnaHQgfHwgJzEyMi4xcHgnXG5cbiAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSBgJHtuZXdIZWlnaHR9cHhgXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpbnB1dFJlZi5jdXJyZW50ICYmICFkaXNhYmxlZCkge1xuICAgICAgaW5wdXRSZWYuY3VycmVudC5mb2N1cygpXG4gICAgICBoYW5kbGVSZXNpemUoKVxuICAgIH1cbiAgfSwgW2Rpc2FibGVkXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAodG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICBjbGVhclRpbWVvdXQodG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc1dlYlNlYXJjaEFjdGl2ZSAmJiAhaXNEZWVwU2VhcmNoQWN0aXZlKSB7XG4gICAgICBzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWQoZmFsc2UpXG4gICAgfVxuICB9LCBbaXNXZWJTZWFyY2hBY3RpdmUsIGlzRGVlcFNlYXJjaEFjdGl2ZV0pXG5cbiAgLy8gQXV0by1mb2N1cyBjdWFuZG8gY2FtYmlhIGVsIGFnZW50ZSBvIGxhIGNvbnZlcnNhY2nDs24sIG8gYWwgbW9udGFyIGVsIGNvbXBvbmVudGVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBDb21wYXJhY2nDs24gcXVlIG1hbmVqYSBjb3JyZWN0YW1lbnRlIHVuZGVmaW5lZC9udWxsXG4gICAgY29uc3QgYWdlbnRDaGFuZ2VkID0gcHJldmlvdXNBZ2VudElkUmVmLmN1cnJlbnQgIT09IGFnZW50Py5pZFxuICAgIC8vIENvbXBhcmFjacOzbiBlc3RyaWN0YSBxdWUgZGV0ZWN0YSBjYW1iaW9zIGluY2x1c28gY3VhbmRvIHVubyBlcyB1bmRlZmluZWRcbiAgICBjb25zdCBwcmV2aW91c0NoYXRJZCA9IHByZXZpb3VzQ2hhdElkUmVmLmN1cnJlbnRcbiAgICBjb25zdCBjdXJyZW50Q2hhdElkID0gY2hhdElkXG4gICAgY29uc3QgY2hhdENoYW5nZWQgPSBwcmV2aW91c0NoYXRJZCAhPT0gY3VycmVudENoYXRJZFxuICAgIC8vIERldGVjdGFyIGNhbWJpbyBlc3BlY8OtZmljbyBkZSB1bmRlZmluZWQvbnVsbCBhIHVuIHZhbG9yIChudWV2byBjaGF0IC0+IGNvbnZlcnNhY2nDs24gdmllamEpXG4gICAgY29uc3QgY2hhbmdlZEZyb21OZXdDaGF0VG9PbGRDaGF0ID1cbiAgICAgIChwcmV2aW91c0NoYXRJZCA9PT0gdW5kZWZpbmVkIHx8IHByZXZpb3VzQ2hhdElkID09PSBudWxsKSAmJiBjdXJyZW50Q2hhdElkICE9PSB1bmRlZmluZWQgJiYgY3VycmVudENoYXRJZCAhPT0gbnVsbFxuICAgIGNvbnN0IG5ld0NoYXRTdGFydGVkID0gcHJldmlvdXNOZXdDaGF0S2V5UmVmLmN1cnJlbnQgIT09IG5ld0NoYXRLZXlcbiAgICBjb25zdCBpc0luaXRpYWxNb3VudCA9IHByZXZpb3VzQWdlbnRJZFJlZi5jdXJyZW50ID09PSB1bmRlZmluZWQgJiYgcHJldmlvdXNDaGF0SWRSZWYuY3VycmVudCA9PT0gdW5kZWZpbmVkXG5cbiAgICBpZiAoXG4gICAgICAoYWdlbnRDaGFuZ2VkIHx8IGNoYXRDaGFuZ2VkIHx8IGNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCB8fCBuZXdDaGF0U3RhcnRlZCB8fCBpc0luaXRpYWxNb3VudCkgJiZcbiAgICAgIGlucHV0UmVmLmN1cnJlbnQgJiZcbiAgICAgICFkaXNhYmxlZFxuICAgICkge1xuICAgICAgLy8gVXNhciBzZXRUaW1lb3V0IHBhcmEgYXNlZ3VyYXIgcXVlIGVsIERPTSBlc3TDqSBsaXN0b1xuICAgICAgLy8gQXVtZW50YXIgZWwgZGVsYXkgcGFyYSBjYXNvcyBkb25kZSBlbCBjb21wb25lbnRlIHNlIGVzdMOhIG1vbnRhbmRvXG4gICAgICBjb25zdCBkZWxheSA9IGlzSW5pdGlhbE1vdW50IHx8IGNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCA/IDIwMCA6IDEwMFxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmIChpbnB1dFJlZi5jdXJyZW50ICYmICFkaXNhYmxlZCkge1xuICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKVxuICAgICAgICB9XG4gICAgICB9LCBkZWxheSlcbiAgICB9XG5cbiAgICAvLyBBY3R1YWxpemFyIGxhcyByZWZlcmVuY2lhcyBERVNQVcOJUyBkZSBsYSBjb21wYXJhY2nDs25cbiAgICBwcmV2aW91c0FnZW50SWRSZWYuY3VycmVudCA9IGFnZW50Py5pZFxuICAgIHByZXZpb3VzQ2hhdElkUmVmLmN1cnJlbnQgPSBjaGF0SWRcbiAgICBwcmV2aW91c05ld0NoYXRLZXlSZWYuY3VycmVudCA9IG5ld0NoYXRLZXlcbiAgfSwgW2FnZW50Py5pZCwgY2hhdElkLCBuZXdDaGF0S2V5LCBkaXNhYmxlZF0pXG5cbiAgLy8gQ2xlYXIgaW5wdXQgd2hlbiBzZXNzaW9uIGNoYW5nZXMgKHVzZXIgc3dpdGNoZXMgdG8gYSBkaWZmZXJlbnQgY2hhdClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVTZXNzaW9uQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgc2V0VmFsdWVUZXh0YXJlYSgnJylcbiAgICAgIHNldElzRGlzYWJsZWQodHJ1ZSlcbiAgICAgIGlmIChpbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQudmFsdWUgPSAnJ1xuICAgICAgfVxuICAgICAgaGFuZGxlUmVzaXplKClcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGF0LXNlc3Npb24tY2hhbmdlZCcsIGhhbmRsZVNlc3Npb25DaGFuZ2UpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBhbmltYXRpb25GcmFtZUlkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIGhhbmRsZVJlc2l6ZSgpXG4gICAgfSlcblxuICAgIHJldHVybiAoKSA9PiBjYW5jZWxBbmltYXRpb25GcmFtZShhbmltYXRpb25GcmFtZUlkKVxuICB9LCBbdmFsdWVUZXh0YXJlYV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYXNUZXh0ID0gdmFsdWVUZXh0YXJlYS50cmltKCkubGVuZ3RoID4gMFxuICAgIGNvbnN0IGhhc0F0dGFjaG1lbnRzID0gYXR0YWNobWVudHMubGVuZ3RoID4gMFxuICAgIHNldElzRGlzYWJsZWQoIWhhc1RleHQgJiYgIWhhc0F0dGFjaG1lbnRzKVxuICB9LCBbYXR0YWNobWVudHMsIHZhbHVlVGV4dGFyZWFdKVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRNZXNzYWdlID0gKCkgPT4ge1xuICAgIGlmIChpbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICBvblNlbmRNZXNzYWdlKGlucHV0UmVmLmN1cnJlbnQudmFsdWUsIGF0dGFjaG1lbnRzKVxuICAgICAgaW5wdXRSZWYuY3VycmVudC52YWx1ZSA9ICcnXG4gICAgICBzZXRWYWx1ZVRleHRhcmVhKCcnKVxuICAgICAgc2V0SXNEaXNhYmxlZCh0cnVlKVxuICAgICAgaGFuZGxlUmVzaXplKClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAoYXR0YWNobWVudHMubGVuZ3RoKSB7XG4gICAgICBvblNlbmRNZXNzYWdlKCcnLCBhdHRhY2htZW50cylcbiAgICAgIHNldFZhbHVlVGV4dGFyZWEoJycpXG4gICAgICBzZXRJc0Rpc2FibGVkKHRydWUpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSAnRW50ZXInICYmICFlLnNoaWZ0S2V5KSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIGlmICghaXNEaXNhYmxlZCAmJiAhZGlzYWJsZWQpIHtcbiAgICAgICAgaGFuZGxlU2VuZE1lc3NhZ2UoKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IChlOiBDaGFuZ2VFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50PikgPT4ge1xuICAgIGNvbnN0IGhhc1RleHQgPSBlLnRhcmdldC52YWx1ZS50cmltKCkubGVuZ3RoID4gMFxuICAgIGNvbnN0IGhhc0F0dGFjaG1lbnRzID0gYXR0YWNobWVudHMubGVuZ3RoID4gMFxuICAgIHNldElzRGlzYWJsZWQoIWhhc1RleHQgJiYgIWhhc0F0dGFjaG1lbnRzKVxuICAgIHNldFZhbHVlVGV4dGFyZWEoZS50YXJnZXQudmFsdWUpXG4gICAgb25DaGFuZ2U/LigpXG4gIH1cblxuICBjb25zdCBoYW5kbGVQYXN0ZSA9ICgpID0+IHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGhhbmRsZVJlc2l6ZSgpXG4gICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBpbnB1dFJlZi5jdXJyZW50Py52YWx1ZSA/PyAnJ1xuICAgICAgY29uc3QgaGFzVGV4dCA9IGN1cnJlbnRWYWx1ZS50cmltKCkubGVuZ3RoID4gMFxuICAgICAgY29uc3QgaGFzQXR0YWNobWVudHMgPSBhdHRhY2htZW50cy5sZW5ndGggPiAwXG4gICAgICBzZXRWYWx1ZVRleHRhcmVhKGN1cnJlbnRWYWx1ZSlcbiAgICAgIHNldElzRGlzYWJsZWQoIWhhc1RleHQgJiYgIWhhc0F0dGFjaG1lbnRzKVxuICAgIH0sIDEwKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRmlsZVNlbGVjdCA9IChlOiBDaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIGNvbnN0IGZpbGVzID0gZS50YXJnZXQuZmlsZXNcbiAgICBpZiAoIWZpbGVzKSByZXR1cm5cblxuICAgIGNvbnN0IGV4Y2VlZGVkRmlsZXM6IHN0cmluZ1tdID0gW11cbiAgICBjb25zdCBleGNsdWRlZEZpbGVzOiBzdHJpbmdbXSA9IFtdXG4gICAgY29uc3QgZmlsZVNpemVzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge31cbiAgICBsZXQgZmlsZXNJbnNlcnRlZCA9IGF0dGFjaG1lbnRzLmxlbmd0aFxuXG4gICAgLy8gRGVmaW5pciBsw61taXRlcyBwYXJhIGRpZmVyZW50ZXMgdGlwb3MgZGUgYXJjaGl2b3NcbiAgICBjb25zdCBpc05ld0Zvcm1hdCA9IChleHRlbnNpb246IHN0cmluZykgPT4gWycucG5nJywgJy5qcGcnLCAnLmpwZWcnLCAnLnBkZiddLmluY2x1ZGVzKGV4dGVuc2lvbilcbiAgICBjb25zdCBpc09sZEZvcm1hdCA9IChleHRlbnNpb246IHN0cmluZykgPT5cbiAgICAgIFsnLnR4dCcsICcubWQnLCAnLmNzdicsICcuZG9jJywgJy5kb2N4JywgJy54bHN4JywgJy54bHMnXS5pbmNsdWRlcyhleHRlbnNpb24pXG4gICAgY29uc3QgaXNBdWRpb0Zvcm1hdCA9IChleHRlbnNpb246IHN0cmluZykgPT5cbiAgICAgIFsnLmZsYWMnLCAnLm00YScsICcubXAzJywgJy5tcDQnLCAnLm9nYScsICcub2dnJywgJy53YXYnLCAnLndlYm0nXS5pbmNsdWRlcyhleHRlbnNpb24pXG5cbiAgICBBcnJheS5mcm9tKGZpbGVzKS5mb3JFYWNoKGZpbGUgPT4ge1xuICAgICAgbGV0IGV4Y2x1ZGVkRmlsZSA9IGZhbHNlXG4gICAgICBjb25zdCBmaWxlTmFtZVBhcnRzID0gZmlsZS5uYW1lLnNwbGl0KCcuJylcbiAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVBhcnRzLmxlbmd0aCA+IDEgPyBgLiR7ZmlsZU5hbWVQYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKX1gIDogJydcblxuICAgICAgaWYgKCFhbGxvd2VkRmlsZVR5cGVzPy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgZmlsZVNpemVzW2ZpbGUubmFtZV0gPSBmaWxlLnNpemVcblxuICAgICAgLy8gVmFsaWRhY2lvbmVzIGVzcGVjw61maWNhcyBzZWfDum4gZWwgdGlwbyBkZSBhcmNoaXZvXG4gICAgICBpZiAoaXNOZXdGb3JtYXQoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgLy8gUGFyYSBudWV2b3MgZm9ybWF0b3M6IGhhc3RhIDQuOTlNQiBwb3IgYXJjaGl2bywgaGFzdGEgNSBhcmNoaXZvc1xuICAgICAgICBpZiAoZmlsZS5zaXplID4gTUFYX0ZJTEVfU0laRV9NQl9NQUlBX1ZJU0lPTiAqIDEwMjQgKiAxMDI0KSB7XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZXNJbnNlcnRlZCArIDEgPiA1KSB7XG4gICAgICAgICAgZXhjbHVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXNPbGRGb3JtYXQoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgLy8gUGFyYSBmb3JtYXRvcyBhbnRlcmlvcmVzOiBoYXN0YSAxTUIgcG9yIGFyY2hpdm8sIGhhc3RhIDUgYXJjaGl2b3NcbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IE1BWF9GSUxFX1NJWkVfTUJfT0xEICogMTAyNCAqIDEwMjQpIHtcbiAgICAgICAgICBleGNlZWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlc0luc2VydGVkICsgMSA+IDUpIHtcbiAgICAgICAgICBleGNsdWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpc0F1ZGlvRm9ybWF0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgIC8vIFBhcmEgYXJjaGl2b3MgZGUgYXVkaW86IGhhc3RhIDEwTUIgcG9yIGFyY2hpdm8sIGhhc3RhIDUgYXJjaGl2b3NcbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IE1BWF9GSUxFX1NJWkVfTUJfQVVESU8gKiAxMDI0ICogMTAyNCkge1xuICAgICAgICAgIGV4Y2VlZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGVzSW5zZXJ0ZWQgKyAxID4gNSkge1xuICAgICAgICAgIGV4Y2x1ZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghZXhjbHVkZWRGaWxlKSB7XG4gICAgICAgIGZpbGVzSW5zZXJ0ZWQgKz0gMVxuICAgICAgICBjb25zdCB0eXBlRmlsZSA9IGZpbGUudHlwZSB8fCBmaWxlVHlwZXNbZmlsZUV4dGVuc2lvbl1cbiAgICAgICAgY29uc3QgcGFyc2VkRmlsZSA9IG5ldyBGaWxlKFtmaWxlXSwgZmlsZS5uYW1lLCB7IHR5cGU6IHR5cGVGaWxlIH0pXG4gICAgICAgIG9uRmlsZUF0dGFjaD8uKHBhcnNlZEZpbGUpXG4gICAgICB9XG4gICAgfSlcblxuICAgIHNldElzRGlzYWJsZWQoZmFsc2UpXG4gICAgaWYgKGV4Y2x1ZGVkRmlsZXMubGVuZ3RoIHx8IGV4Y2VlZGVkRmlsZXMubGVuZ3RoKSB7XG4gICAgICBzZXRNb2RhbFByb3BzKHsgaXNPcGVuOiB0cnVlLCBleGNsdWRlZEZpbGVzLCBleGNlZWRlZEZpbGVzLCBmaWxlU2l6ZXMgfSlcbiAgICB9XG5cbiAgICBpZiAoZmlsZUlucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgIGZpbGVJbnB1dFJlZi5jdXJyZW50LnZhbHVlID0gJydcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVEZWxldGVBdHRhY2htZW50ID0gKGZpbGVJZDogc3RyaW5nKSA9PiB7XG4gICAgb25EZWxldGVBdHRhY2htZW50Py4oZmlsZUlkKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQmx1ciA9ICgpID0+IHtcbiAgICBjb25zdCBoYXNUZXh0ID0gdmFsdWVUZXh0YXJlYS50cmltKCkubGVuZ3RoID4gMFxuICAgIGNvbnN0IGhhc0F0dGFjaG1lbnRzID0gYXR0YWNobWVudHMubGVuZ3RoID4gMFxuICAgIHNldElzRGlzYWJsZWQoIWhhc1RleHQgJiYgIWhhc0F0dGFjaG1lbnRzKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlV3JhcHBlckZvY3VzID0gKCkgPT4gc2V0SXNGb2N1c2VkKHRydWUpXG4gIGNvbnN0IGhhbmRsZVdyYXBwZXJCbHVyID0gKCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF3cmFwcGVyUmVmLmN1cnJlbnQ/LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgIHNldElzRm9jdXNlZChmYWxzZSlcbiAgICAgIH1cbiAgICB9LCAwKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU3RvcEdlbmVyYXRpb24gPSAoKSA9PiB7XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFN0b3BSZXNwb25zZSlcbiAgICBvblN0b3BHZW5lcmF0aW9uPy4oKVxuICB9XG5cbiAgY29uc3QgcGx1c0ljb25Db2xvciA9IGlzRm9jdXNlZCA/ICcjNjY2NjY2JyA6ICcjOTk5J1xuICBjb25zdCBwbHVzTWVudUljb25Db2xvciA9ICcjNGQ0ZDRkJ1xuICAvKiogQWxpbmVhZG8gY29uIGBQbHVzTWVudUl0ZW1MYWJlbGAgKCRzZWxlY3RlZCkgeSBlbCBjaGVjayBkZWwgbWVuw7ogKi9cbiAgY29uc3QgcGx1c01lbnVTZWxlY3RlZENvbG9yID0gJyMwMDU3OGMnXG5cbiAgbGV0IGFjdGl2ZVRvb2xDaGlwTGVhZGluZ0ljb246IFJlYWN0Tm9kZVxuICBpZiAoYWN0aXZlVG9vbENoaXBIb3ZlcmVkKSB7XG4gICAgYWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbiA9IDxDcm9zcyBjb2xvcj1cIiNhNGFkYjVcIiB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gIH0gZWxzZSBpZiAoaXNXZWJTZWFyY2hBY3RpdmUpIHtcbiAgICBhY3RpdmVUb29sQ2hpcExlYWRpbmdJY29uID0gPEdsb2JlIGNvbG9yPXtwbHVzTWVudUljb25Db2xvcn0gd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICB9IGVsc2Uge1xuICAgIGFjdGl2ZVRvb2xDaGlwTGVhZGluZ0ljb24gPSA8VGVsZXNjb3BlSWNvbiBjb2xvcj17cGx1c01lbnVJY29uQ29sb3J9IHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTdHlsZWRNQUlBSW5wdXRXcmFwcGVyXG4gICAgICAgIHJlZj17d3JhcHBlclJlZn1cbiAgICAgICAgZGlzYWJsZWQ9e2ZhbHNlfVxuICAgICAgICBhbGlnbkJ1dHRvbnM9e2FsaWduQnV0dG9uc31cbiAgICAgICAgaGFzQXR0YWNobWVudHM9eyEhYXR0YWNobWVudHMubGVuZ3RofVxuICAgICAgICBvbkZvY3VzPXtoYW5kbGVXcmFwcGVyRm9jdXN9XG4gICAgICAgIG9uQmx1cj17aGFuZGxlV3JhcHBlckJsdXJ9XG4gICAgICA+XG4gICAgICAgIHshIWF0dGFjaG1lbnRzLmxlbmd0aCAmJiAoXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGdhcDogJzEycHgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJyB9fT5cbiAgICAgICAgICAgIHthdHRhY2htZW50cy5tYXAoKGF0dGFjaG1lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVOYW1lUGFydHMgPSBhdHRhY2htZW50Lm5hbWUuc3BsaXQoJy4nKVxuICAgICAgICAgICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxID8gYC4ke2ZpbGVOYW1lUGFydHMucG9wKCk/LnRvTG93ZXJDYXNlKCl9YCA6ICcnXG4gICAgICAgICAgICAgIGNvbnN0IGlzSW1hZ2VCeUV4dGVuc2lvbiA9IFsnLnBuZycsICcuanBnJywgJy5qcGVnJ10uaW5jbHVkZXMoZmlsZUV4dGVuc2lvbilcbiAgICAgICAgICAgICAgY29uc3QgaXNJbWFnZUJ5TWltZSA9IGF0dGFjaG1lbnQudHlwZT8uc3RhcnRzV2l0aCgnaW1hZ2UvJylcbiAgICAgICAgICAgICAgY29uc3QgaXNJbWFnZSA9IGlzSW1hZ2VCeU1pbWUgJiYgaXNJbWFnZUJ5RXh0ZW5zaW9uXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2F0dGFjaG1lbnQubmFtZX0ga2V5PXtgJHtpbmRleH0tJHthdHRhY2htZW50Lm5hbWV9YH0+XG4gICAgICAgICAgICAgICAgICA8U0NNSUF0dGFjaG1lbnQgaXNJbWFnZT17aXNJbWFnZX0+XG4gICAgICAgICAgICAgICAgICAgIHthdHRhY2htZW50Lmljb259XG4gICAgICAgICAgICAgICAgICAgIDxTQ01JQXR0YWNobWVudERlbGV0ZUljb24gb25DbGljaz17KCkgPT4gaGFuZGxlRGVsZXRlQXR0YWNobWVudChhdHRhY2htZW50LmlkKX0+XG4gICAgICAgICAgICAgICAgICAgICAgPFRyYXNoIGNvbG9yPVwicmdiYSgxOTEsIDE5MSwgMTkxLCAxKVwiIHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ01JQXR0YWNobWVudERlbGV0ZUljb24+XG4gICAgICAgICAgICAgICAgICA8L1NDTUlBdHRhY2htZW50PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIDxTdHlsZWRNQUlBSW5wdXRcbiAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICBvblBhc3RlPXtoYW5kbGVQYXN0ZX1cbiAgICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICAgICAgYWxpZ25CdXR0b25zPXthbGlnbkJ1dHRvbnN9XG4gICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAvPlxuICAgICAgICA8U3R5bGVkTUFJQUlucHV0QnV0dG9ucz5cbiAgICAgICAgICA8UGx1c01lbnVUb29sc1Jvdz5cbiAgICAgICAgICAgIDxQbHVzVG9nZ2xlQnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAkbWVudU9wZW49e3BsdXNNZW51T3Blbn1cbiAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlUGx1c0J1dHRvbkNsaWNrfVxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdjaGF0Lm9wZW5QbHVzTWVudUFyaWEnKX1cbiAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtwbHVzTWVudU9wZW59XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxQbHVzIGNvbG9yPXtwbHVzSWNvbkNvbG9yfSB3aWR0aD17MjB9IGhlaWdodD17MjB9IC8+XG4gICAgICAgICAgICA8L1BsdXNUb2dnbGVCdXR0b24+XG4gICAgICAgICAgICA8UG9wb3ZlclxuICAgICAgICAgICAgICBvcGVuPXtwbHVzTWVudU9wZW59XG4gICAgICAgICAgICAgIGFuY2hvckVsPXtwbHVzTWVudUFuY2hvcn1cbiAgICAgICAgICAgICAgb25DbG9zZT17Y2xvc2VQbHVzTWVudX1cbiAgICAgICAgICAgICAgYW5jaG9yT3JpZ2luPXt7IHZlcnRpY2FsOiAndG9wJywgaG9yaXpvbnRhbDogJ2xlZnQnIH19XG4gICAgICAgICAgICAgIHRyYW5zZm9ybU9yaWdpbj17eyB2ZXJ0aWNhbDogJ2JvdHRvbScsIGhvcml6b250YWw6ICdsZWZ0JyB9fVxuICAgICAgICAgICAgICBzbG90UHJvcHM9e3tcbiAgICAgICAgICAgICAgICBwYXBlcjoge1xuICAgICAgICAgICAgICAgICAgZWxldmF0aW9uOiAwLFxuICAgICAgICAgICAgICAgICAgc3g6IHtcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6ICd2aXNpYmxlJyxcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgYm94U2hhZG93OiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luVG9wOiAnLTRweCcsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxQbHVzTWVudVBhcGVyPlxuICAgICAgICAgICAgICAgIDxQbHVzTWVudUlubmVyQ29sdW1uPlxuICAgICAgICAgICAgICAgICAgPFBsdXNNZW51SXRlbUJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17aGFuZGxlUGx1c01lbnVBdHRhY2h9PlxuICAgICAgICAgICAgICAgICAgICA8QXR0YWNoIGNvbG9yPXtwbHVzTWVudUljb25Db2xvcn0gd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtTGFiZWwgJHNlbGVjdGVkPXtmYWxzZX0+e3QoJ2NoYXQucGx1c01lbnVBdHRhY2gnKX08L1BsdXNNZW51SXRlbUxhYmVsPlxuICAgICAgICAgICAgICAgICAgPC9QbHVzTWVudUl0ZW1CdXR0b24+XG4gICAgICAgICAgICAgICAgICA8UGx1c01lbnVEaXZpZGVyIC8+XG4gICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVQbHVzTWVudVdlYlNlYXJjaH0+XG4gICAgICAgICAgICAgICAgICAgIDxHbG9iZVxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPXtpc1dlYlNlYXJjaEFjdGl2ZSA/IHBsdXNNZW51U2VsZWN0ZWRDb2xvciA6IHBsdXNNZW51SWNvbkNvbG9yfVxuICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXsyMH1cbiAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezIwfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtTGFiZWwgJHNlbGVjdGVkPXshIWlzV2ViU2VhcmNoQWN0aXZlfT57dCgnY2hhdC5zZWFyY2hXZWInKX08L1BsdXNNZW51SXRlbUxhYmVsPlxuICAgICAgICAgICAgICAgICAgICB7aXNXZWJTZWFyY2hBY3RpdmUgPyA8Q2hlY2sgY29sb3I9e3BsdXNNZW51U2VsZWN0ZWRDb2xvcn0gd2lkdGg9ezE2fSBoZWlnaHQ9ezE2fSAvPiA6IG51bGx9XG4gICAgICAgICAgICAgICAgICA8L1BsdXNNZW51SXRlbUJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L1BsdXNNZW51SW5uZXJDb2x1bW4+XG4gICAgICAgICAgICAgICAgPFBsdXNNZW51SXRlbUJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17aGFuZGxlUGx1c01lbnVEZWVwU2VhcmNofT5cbiAgICAgICAgICAgICAgICAgIDxUZWxlc2NvcGVJY29uXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPXtpc0RlZXBTZWFyY2hBY3RpdmUgPyBwbHVzTWVudVNlbGVjdGVkQ29sb3IgOiBwbHVzTWVudUljb25Db2xvcn1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9ezIwfVxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezIwfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDxQbHVzTWVudUl0ZW1MYWJlbCAkc2VsZWN0ZWQ9eyEhaXNEZWVwU2VhcmNoQWN0aXZlfT5cbiAgICAgICAgICAgICAgICAgICAge3QoJ2NoYXQucGx1c01lbnVEZWVwSW52ZXN0aWdhdGlvbicpfVxuICAgICAgICAgICAgICAgICAgPC9QbHVzTWVudUl0ZW1MYWJlbD5cbiAgICAgICAgICAgICAgICAgIHtpc0RlZXBTZWFyY2hBY3RpdmUgPyA8Q2hlY2sgY29sb3I9e3BsdXNNZW51U2VsZWN0ZWRDb2xvcn0gd2lkdGg9ezE2fSBoZWlnaHQ9ezE2fSAvPiA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9QbHVzTWVudUl0ZW1CdXR0b24+XG4gICAgICAgICAgICAgIDwvUGx1c01lbnVQYXBlcj5cbiAgICAgICAgICAgIDwvUG9wb3Zlcj5cbiAgICAgICAgICAgIHsoaXNXZWJTZWFyY2hBY3RpdmUgfHwgaXNEZWVwU2VhcmNoQWN0aXZlKSAmJiAoXG4gICAgICAgICAgICAgIDxBY3RpdmVUb29sQ2hpcFJvb3RcbiAgICAgICAgICAgICAgICAkaG92ZXJlZD17YWN0aXZlVG9vbENoaXBIb3ZlcmVkfVxuICAgICAgICAgICAgICAgICRleGl0aW5nPXt0b29sQ2hpcEV4aXRpbmd9XG4gICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiBzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWQodHJ1ZSl9XG4gICAgICAgICAgICAgICAgb25Nb3VzZUxlYXZlPXsoKSA9PiBzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWQoZmFsc2UpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAkY2xvc2VTaG93bj17YWN0aXZlVG9vbENoaXBIb3ZlcmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnY2hhdC5yZW1vdmVBY3RpdmVUb29sQXJpYScpfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgYmVnaW5Ub29sQ2hpcEV4aXQoKVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7YWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbn1cbiAgICAgICAgICAgICAgICA8L0FjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8QWN0aXZlVG9vbENoaXBMYWJlbD5cbiAgICAgICAgICAgICAgICAgIHtpc1dlYlNlYXJjaEFjdGl2ZSA/IHQoJ2NoYXQuc2VhcmNoV2ViJykgOiB0KCdjaGF0LnBsdXNNZW51RGVlcEludmVzdGlnYXRpb24nKX1cbiAgICAgICAgICAgICAgICA8L0FjdGl2ZVRvb2xDaGlwTGFiZWw+XG4gICAgICAgICAgICAgIDwvQWN0aXZlVG9vbENoaXBSb290PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1BsdXNNZW51VG9vbHNSb3c+XG5cbiAgICAgICAgICB7aXNXcml0aW5nID8gKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoJ2NoYXQuc3RvcCcpfT5cbiAgICAgICAgICAgICAgPFN0eWxlZE1BSUFTdG9wQnV0dG9uIGRpc2FibGVkPXtmYWxzZX0gb25DbGljaz17aGFuZGxlU3RvcEdlbmVyYXRpb259IGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cbiAgICAgICAgICAgICAgICA8U3R5bGVkTUFJQVN0b3BJY29uIC8+XG4gICAgICAgICAgICAgIDwvU3R5bGVkTUFJQVN0b3BCdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtpc1N0cmVhbWluZyA/IHQoJ2NoYXQuc2VuZCcpIDogdCgnY2hhdC5zZW5kJyl9PlxuICAgICAgICAgICAgICA8U3R5bGVkTUFJQVNlbmRCdXR0b25cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVTZW5kTWVzc2FnZX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNEaXNhYmxlZCB8fCBkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICBoYXNWYWx1ZXM9eyEhdmFsdWVUZXh0YXJlYS5sZW5ndGh9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGFwZXJQbGFuZSBjb2xvcj1cIiNCRkJGQkZcIiB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gICAgICAgICAgICAgIDwvU3R5bGVkTUFJQVNlbmRCdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TdHlsZWRNQUlBSW5wdXRCdXR0b25zPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICByZWY9e2ZpbGVJbnB1dFJlZn1cbiAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgbXVsdGlwbGVcbiAgICAgICAgICBhY2NlcHQ9XCIudHh0LC5tZCwuY3N2LC5kb2MsLmRvY3gsLnBuZywuanBnLC5qcGVnLC5wZGYsLnhsc3gsLnhscywuZmxhYywubTRhLC5tcDMsLm1wNCwub2dhLC5vZ2csLndhdiwud2VibVwiXG4gICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUZpbGVTZWxlY3R9XG4gICAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogJ25vbmUnIH19XG4gICAgICAgIC8+XG4gICAgICA8L1N0eWxlZE1BSUFJbnB1dFdyYXBwZXI+XG4gICAgICB7bW9kYWxQcm9wcy5pc09wZW4gJiYgKFxuICAgICAgICA8TW9kYWxGaWxlRXhjZWVkc1xuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHNldE1vZGFsUHJvcHMoeyBpc09wZW46IGZhbHNlLCBleGNsdWRlZEZpbGVzOiBbXSwgZXhjZWVkZWRGaWxlczogW10sIGZpbGVTaXplczoge30gfSl9XG4gICAgICAgICAgZXhjbHVkZWRGaWxlcz17bW9kYWxQcm9wcy5leGNsdWRlZEZpbGVzfVxuICAgICAgICAgIGV4Y2VlZGVkRmlsZXM9e21vZGFsUHJvcHMuZXhjZWVkZWRGaWxlc31cbiAgICAgICAgICBmaWxlU2l6ZXM9e21vZGFsUHJvcHMuZmlsZVNpemVzfVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8Lz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUE0REEsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ3RHLFNB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
760
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIlBvcG92ZXIiLCJQYXBlclBsYW5lIiwiQXR0YWNoIiwiR2xvYmUiLCJUcmFzaCIsIlBsdXMiLCJDaGVjayIsIkNyb3NzIiwiVG9vbHRpcCIsIkFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvbiIsIkFjdGl2ZVRvb2xDaGlwTGFiZWwiLCJBY3RpdmVUb29sQ2hpcFJvb3QiLCJQbHVzTWVudURpdmlkZXIiLCJQbHVzTWVudUlubmVyQ29sdW1uIiwiUGx1c01lbnVJdGVtQnV0dG9uIiwiUGx1c01lbnVJdGVtTGFiZWwiLCJQbHVzTWVudVBhcGVyIiwiUGx1c01lbnVUb29sc1JvdyIsIlBsdXNUb2dnbGVCdXR0b24iLCJTQ01JQXR0YWNobWVudCIsIlNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiIsIlN0eWxlZE1BSUFJbnB1dCIsIlN0eWxlZE1BSUFJbnB1dEJ1dHRvbnMiLCJTdHlsZWRNQUlBSW5wdXRXcmFwcGVyIiwiU3R5bGVkTUFJQVNlbmRCdXR0b24iLCJTdHlsZWRNQUlBU3RvcEJ1dHRvbiIsIlN0eWxlZE1BSUFTdG9wSWNvbiIsInVzZUdsb2JhbENvbnRleHQiLCJNb2RhbEZpbGVFeGNlZWRzIiwidXNlVCIsIlRlbGVzY29wZUljb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImdldENoYXRUb29sc01lbnVBZ2VudFR5cGUiLCJhbGxvd2VkRmlsZVR5cGVzIiwiZmlsZVR5cGVzIiwiTUFYX0ZJTEVfU0laRV9NQl9NQUlBX1ZJU0lPTiIsIk1BWF9GSUxFX1NJWkVfTUJfT0xEIiwiTUFYX0ZJTEVfU0laRV9NQl9BVURJTyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsIlRPT0xfQ0hJUF9FWElUX01TIiwiTUFJQUlucHV0IiwiX3JlZiIsIl9hZ2VudCRlbnRpdHkiLCJvblNlbmRNZXNzYWdlIiwiY2xhc3NOYW1lIiwiZGlzYWJsZWQiLCJpc1N0cmVhbWluZyIsImlzV3JpdGluZyIsIm9uU3RvcEdlbmVyYXRpb24iLCJwbGFjZWhvbGRlciIsIm9uQ2hhbmdlIiwiX3JlZiRhbGlnbkJ1dHRvbnMiLCJhbGlnbkJ1dHRvbnMiLCJvbkZpbGVBdHRhY2giLCJvbkRlbGV0ZUF0dGFjaG1lbnQiLCJfcmVmJGF0dGFjaG1lbnRzIiwiYXR0YWNobWVudHMiLCJjaGF0SWQiLCJuZXdDaGF0S2V5IiwiX3VzZVQiLCJ0IiwiaW5wdXRSZWYiLCJmaWxlSW5wdXRSZWYiLCJ3cmFwcGVyUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwidmFsdWVUZXh0YXJlYSIsInNldFZhbHVlVGV4dGFyZWEiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImlzRGlzYWJsZWQiLCJzZXRJc0Rpc2FibGVkIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc0ZvY3VzZWQiLCJzZXRJc0ZvY3VzZWQiLCJfdXNlU3RhdGU3IiwiaXNPcGVuIiwiZXhjbHVkZWRGaWxlcyIsImV4Y2VlZGVkRmlsZXMiLCJmaWxlU2l6ZXMiLCJfdXNlU3RhdGU4IiwibW9kYWxQcm9wcyIsInNldE1vZGFsUHJvcHMiLCJldmVudEFtcGxpdHVkZSIsIl91c2VHbG9iYWxDb250ZXh0IiwidG9nZ2xlV2ViU2VhcmNoIiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJ0b2dnbGVEZWVwU2VhcmNoIiwiaXNEZWVwU2VhcmNoQWN0aXZlIiwiYWdlbnQiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsInBsdXNNZW51QW5jaG9yIiwic2V0UGx1c01lbnVBbmNob3IiLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJhY3RpdmVUb29sQ2hpcEhvdmVyZWQiLCJzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWQiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwidG9vbENoaXBFeGl0aW5nIiwic2V0VG9vbENoaXBFeGl0aW5nIiwidG9vbENoaXBFeGl0VGltZXJSZWYiLCJzZWFyY2hNb2RlQWN0aXZlUmVmIiwid2ViIiwiZGVlcCIsInBsdXNNZW51T3BlbiIsIkJvb2xlYW4iLCJjdXJyZW50IiwiYW5hbHl0aWNzQWdlbnRUeXBlIiwiYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkIiwidHlwZSIsImVudGl0eSIsInNjaGVkdWxlSW5wdXRGb2N1c0FmdGVyVG9vbEFjdGlvbiIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsIndpbmRvdyIsInNldFRpbWVvdXQiLCJfaW5wdXRSZWYkY3VycmVudCIsImZvY3VzIiwicHJldmVudFNjcm9sbCIsImNsb3NlUGx1c01lbnUiLCJoYW5kbGVQbHVzQnV0dG9uQ2xpY2siLCJlIiwic3RvcFByb3BhZ2F0aW9uIiwiY3VycmVudFRhcmdldCIsImFpQ2hhdFBsdXNPcGVuIiwiX29iamVjdFNwcmVhZCIsImFnZW50X3R5cGUiLCJoYW5kbGVQbHVzTWVudUF0dGFjaCIsIl9maWxlSW5wdXRSZWYkY3VycmVudCIsImFpQ2hhdFRvb2xzIiwib3B0aW9uIiwibGVuZ3RoIiwiY2xpY2siLCJiZWdpblRvb2xDaGlwRXhpdCIsIndhc1dlYiIsIndhc0RlZXAiLCJfc2VhcmNoTW9kZUFjdGl2ZVJlZiQiLCJoYW5kbGVQbHVzTWVudVdlYlNlYXJjaCIsImhhbmRsZVBsdXNNZW51RGVlcFNlYXJjaCIsInByZXZpb3VzQWdlbnRJZFJlZiIsInVuZGVmaW5lZCIsInByZXZpb3VzQ2hhdElkUmVmIiwicHJldmlvdXNOZXdDaGF0S2V5UmVmIiwiaGFuZGxlUmVzaXplIiwidGV4dGFyZWEiLCJtaW5IZWlnaHQiLCJtYXhIZWlnaHQiLCJwcmV2aW91c01pbkhlaWdodCIsInN0eWxlIiwicHJldmlvdXNNYXhIZWlnaHQiLCJoZWlnaHQiLCJvZmZzZXRIZWlnaHQiLCJzY3JvbGxIZWlnaHQiLCJjb21wdXRlZFN0eWxlIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImxpbmVIZWlnaHQiLCJwYXJzZUZsb2F0IiwicGFkZGluZ1RvcCIsInBhZGRpbmdCb3R0b20iLCJib3JkZXJUb3AiLCJib3JkZXJUb3BXaWR0aCIsImJvcmRlckJvdHRvbSIsImJvcmRlckJvdHRvbVdpZHRoIiwic2luZ2xlTGluZUhlaWdodCIsImlzRW1wdHkiLCJ2YWx1ZSIsInRyaW0iLCJoYXNNdWx0aXBsZVZpc3VhbExpbmVzIiwiY2FudmFzIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY29udGV4dCIsImdldENvbnRleHQiLCJ0ZXh0YXJlYVN0eWxlcyIsImZvbnQiLCJjb25jYXQiLCJmb250V2VpZ2h0IiwiZm9udFNpemUiLCJmb250RmFtaWx5IiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiLCJib3JkZXJMZWZ0IiwiYm9yZGVyTGVmdFdpZHRoIiwiYm9yZGVyUmlnaHQiLCJib3JkZXJSaWdodFdpZHRoIiwidGV4dGFyZWFXaWR0aCIsIm9mZnNldFdpZHRoIiwidGV4dCIsImxpbmVzIiwic3BsaXQiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9zdGVwIiwicyIsIm4iLCJkb25lIiwibGluZSIsInRleHRXaWR0aCIsIm1lYXN1cmVUZXh0Iiwid2lkdGgiLCJlcnIiLCJmIiwibmV3SGVpZ2h0IiwiTWF0aCIsIm1pbiIsIm1heCIsImNsZWFyVGltZW91dCIsImFnZW50Q2hhbmdlZCIsImlkIiwicHJldmlvdXNDaGF0SWQiLCJjdXJyZW50Q2hhdElkIiwiY2hhdENoYW5nZWQiLCJjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQiLCJuZXdDaGF0U3RhcnRlZCIsImlzSW5pdGlhbE1vdW50IiwiZGVsYXkiLCJoYW5kbGVTZXNzaW9uQ2hhbmdlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJhbmltYXRpb25GcmFtZUlkIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJoYXNUZXh0IiwiaGFzQXR0YWNobWVudHMiLCJoYW5kbGVTZW5kTWVzc2FnZSIsImhhbmRsZUtleURvd24iLCJrZXkiLCJzaGlmdEtleSIsInByZXZlbnREZWZhdWx0IiwiaGFuZGxlQ2hhbmdlIiwidGFyZ2V0IiwiaGFuZGxlUGFzdGUiLCJfaW5wdXRSZWYkY3VycmVudCR2YWwiLCJfaW5wdXRSZWYkY3VycmVudDIiLCJjdXJyZW50VmFsdWUiLCJoYW5kbGVGaWxlU2VsZWN0IiwiZmlsZXMiLCJmaWxlc0luc2VydGVkIiwiaXNOZXdGb3JtYXQiLCJleHRlbnNpb24iLCJpbmNsdWRlcyIsImlzT2xkRm9ybWF0IiwiaXNBdWRpb0Zvcm1hdCIsIkFycmF5IiwiZnJvbSIsImZvckVhY2giLCJmaWxlIiwiX2ZpbGVOYW1lUGFydHMkcG9wIiwiZXhjbHVkZWRGaWxlIiwiZmlsZU5hbWVQYXJ0cyIsIm5hbWUiLCJmaWxlRXh0ZW5zaW9uIiwicG9wIiwidG9Mb3dlckNhc2UiLCJzaXplIiwicHVzaCIsInR5cGVGaWxlIiwicGFyc2VkRmlsZSIsIkZpbGUiLCJoYW5kbGVEZWxldGVBdHRhY2htZW50IiwiZmlsZUlkIiwiaGFuZGxlQmx1ciIsImhhbmRsZVdyYXBwZXJGb2N1cyIsImhhbmRsZVdyYXBwZXJCbHVyIiwiX3dyYXBwZXJSZWYkY3VycmVudCIsImNvbnRhaW5zIiwiYWN0aXZlRWxlbWVudCIsImhhbmRsZVN0b3BHZW5lcmF0aW9uIiwiYWlDaGF0U3RvcFJlc3BvbnNlIiwicGx1c0ljb25Db2xvciIsInBsdXNNZW51SWNvbkNvbG9yIiwicGx1c01lbnVTZWxlY3RlZENvbG9yIiwiYWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbiIsImNvbG9yIiwiY2hpbGRyZW4iLCJyZWYiLCJvbkZvY3VzIiwib25CbHVyIiwiZGlzcGxheSIsImdhcCIsImFsaWduSXRlbXMiLCJtYXAiLCJhdHRhY2htZW50IiwiaW5kZXgiLCJfZmlsZU5hbWVQYXJ0cyRwb3AyIiwiX2F0dGFjaG1lbnQkdHlwZSIsImlzSW1hZ2VCeUV4dGVuc2lvbiIsImlzSW1hZ2VCeU1pbWUiLCJzdGFydHNXaXRoIiwiaXNJbWFnZSIsInRpdGxlIiwiaWNvbiIsIm9uQ2xpY2siLCJvbktleURvd24iLCJvblBhc3RlIiwiJG1lbnVPcGVuIiwib3BlbiIsImFuY2hvckVsIiwib25DbG9zZSIsImFuY2hvck9yaWdpbiIsInZlcnRpY2FsIiwiaG9yaXpvbnRhbCIsInRyYW5zZm9ybU9yaWdpbiIsInNsb3RQcm9wcyIsInBhcGVyIiwiZWxldmF0aW9uIiwic3giLCJvdmVyZmxvdyIsImJvcmRlclJhZGl1cyIsImJveFNoYWRvdyIsImJhY2tncm91bmRDb2xvciIsIm1hcmdpblRvcCIsIiRzZWxlY3RlZCIsIiRob3ZlcmVkIiwiJGV4aXRpbmciLCJvbk1vdXNlRW50ZXIiLCJvbk1vdXNlTGVhdmUiLCIkY2xvc2VTaG93biIsImhhc1ZhbHVlcyIsIm11bHRpcGxlIiwiYWNjZXB0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvTUFJQUlucHV0L01BSUFJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcmVzdHJpY3RlZC1zeW50YXggKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnRpbnVlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby12b2lkICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9uby1hcnJheS1pbmRleC1rZXkgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWxvbmVseS1pZiAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgcHJlZmVyLWRlc3RydWN0dXJpbmcgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuaW1wb3J0IHsgQ2hhbmdlRXZlbnQsIEtleWJvYXJkRXZlbnQsIE1vdXNlRXZlbnQsIFJlYWN0Tm9kZSwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBQb3BvdmVyIH0gZnJvbSAnQG11aS9tYXRlcmlhbCdcbmltcG9ydCB7IFBhcGVyUGxhbmUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9QYXBlclBsYW5lJ1xuaW1wb3J0IHsgQXR0YWNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQXR0YWNoJ1xuaW1wb3J0IHsgR2xvYmUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9HbG9iZSdcbmltcG9ydCB7IFRyYXNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvVHJhc2gnXG5pbXBvcnQgeyBQbHVzIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvUGx1cydcbmltcG9ydCB7IENoZWNrIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hlY2snXG5pbXBvcnQgeyBDcm9zcyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0Nyb3NzJ1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuXG5pbXBvcnQge1xuICBBY3RpdmVUb29sQ2hpcEljb25CdXR0b24sXG4gIEFjdGl2ZVRvb2xDaGlwTGFiZWwsXG4gIEFjdGl2ZVRvb2xDaGlwUm9vdCxcbiAgUGx1c01lbnVEaXZpZGVyLFxuICBQbHVzTWVudUlubmVyQ29sdW1uLFxuICBQbHVzTWVudUl0ZW1CdXR0b24sXG4gIFBsdXNNZW51SXRlbUxhYmVsLFxuICBQbHVzTWVudVBhcGVyLFxuICBQbHVzTWVudVRvb2xzUm93LFxuICBQbHVzVG9nZ2xlQnV0dG9uLFxuICBTQ01JQXR0YWNobWVudCxcbiAgU0NNSUF0dGFjaG1lbnREZWxldGVJY29uLFxuICBTdHlsZWRNQUlBSW5wdXQsXG4gIFN0eWxlZE1BSUFJbnB1dEJ1dHRvbnMsXG4gIFN0eWxlZE1BSUFJbnB1dFdyYXBwZXIsXG4gIFN0eWxlZE1BSUFTZW5kQnV0dG9uLFxuICBTdHlsZWRNQUlBU3RvcEJ1dHRvbixcbiAgU3R5bGVkTUFJQVN0b3BJY29uLFxufSBmcm9tICcuL3N0eWxlcydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgTW9kYWxGaWxlRXhjZWVkcyB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9Nb2RhbEZpbGVFeGNlZWRzJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBUZWxlc2NvcGVJY29uIH0gZnJvbSAnLi4vaWNvbnMvVGVsZXNjb3BlSWNvbidcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7IGdldENoYXRUb29sc01lbnVBZ2VudFR5cGUgfSBmcm9tICcuLi8uLi8uLi91dGlscy9oaXRsQW5hbHl0aWNzJ1xuaW1wb3J0IHtcbiAgYWxsb3dlZEZpbGVUeXBlcyxcbiAgZmlsZVR5cGVzLFxuICBNQVhfRklMRV9TSVpFX01CX01BSUFfVklTSU9OLFxuICBNQVhfRklMRV9TSVpFX01CX09MRCxcbiAgTUFYX0ZJTEVfU0laRV9NQl9BVURJTyxcbn0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2Zvcm1hdEV4dGVuc2lvbnMnXG5cbmNvbnN0IFRPT0xfQ0hJUF9FWElUX01TID0gMjIwXG5cbnR5cGUgQXR0YWNobWVudEZpbGUgPSB7XG4gIGZpbGU6IEZpbGVcbiAgb3JpZ2luYWxGaWxlPzogRmlsZVxuICBpZDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICBzaXplOiBudW1iZXJcbiAgdHlwZTogc3RyaW5nXG4gIGljb24/OiBSZWFjdE5vZGVcbn1cblxudHlwZSBNQUlBSW5wdXRQcm9wcyA9IHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICBvblNlbmRNZXNzYWdlOiAobWVzc2FnZTogc3RyaW5nLCBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10pID0+IHZvaWRcbiAgb25TdG9wR2VuZXJhdGlvbj86ICgpID0+IHZvaWRcbiAgaXNTdHJlYW1pbmc/OiBib29sZWFuXG4gIGlzV3JpdGluZz86IGJvb2xlYW5cbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmdcbiAgb25DaGFuZ2U/OiAoKSA9PiB2b2lkXG4gIGFsaWduQnV0dG9ucz86ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCdcbiAgb25GaWxlQXR0YWNoPzogKGZpbGU6IEZpbGUpID0+IHZvaWRcbiAgb25EZWxldGVBdHRhY2htZW50PzogKGZpbGVJZDogc3RyaW5nKSA9PiB2b2lkXG4gIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXVxuICBjaGF0SWQ/OiBzdHJpbmdcbiAgbmV3Q2hhdEtleT86IG51bWJlclxufVxuXG5leHBvcnQgY29uc3QgTUFJQUlucHV0ID0gKHtcbiAgb25TZW5kTWVzc2FnZSxcbiAgY2xhc3NOYW1lLFxuICBkaXNhYmxlZCxcbiAgaXNTdHJlYW1pbmcsXG4gIGlzV3JpdGluZyxcbiAgb25TdG9wR2VuZXJhdGlvbixcbiAgcGxhY2Vob2xkZXIsXG4gIG9uQ2hhbmdlLFxuICBhbGlnbkJ1dHRvbnMgPSAndmVydGljYWwnLFxuICBvbkZpbGVBdHRhY2gsXG4gIG9uRGVsZXRlQXR0YWNobWVudCxcbiAgYXR0YWNobWVudHMgPSBbXSxcbiAgY2hhdElkLFxuICBuZXdDaGF0S2V5LFxufTogTUFJQUlucHV0UHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbClcbiAgY29uc3QgZmlsZUlucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHdyYXBwZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IFt2YWx1ZVRleHRhcmVhLCBzZXRWYWx1ZVRleHRhcmVhXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbaXNEaXNhYmxlZCwgc2V0SXNEaXNhYmxlZF0gPSB1c2VTdGF0ZSh0cnVlKVxuICBjb25zdCBbaXNGb2N1c2VkLCBzZXRJc0ZvY3VzZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFttb2RhbFByb3BzLCBzZXRNb2RhbFByb3BzXSA9IHVzZVN0YXRlKHtcbiAgICBpc09wZW46IGZhbHNlLFxuICAgIGV4Y2x1ZGVkRmlsZXM6IFtdIGFzIHN0cmluZ1tdLFxuICAgIGV4Y2VlZGVkRmlsZXM6IFtdIGFzIHN0cmluZ1tdLFxuICAgIGZpbGVTaXplczoge30gYXMgUmVjb3JkPHN0cmluZywgbnVtYmVyPixcbiAgfSlcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG4gIGNvbnN0IHsgdG9nZ2xlV2ViU2VhcmNoLCBpc1dlYlNlYXJjaEFjdGl2ZSwgdG9nZ2xlRGVlcFNlYXJjaCwgaXNEZWVwU2VhcmNoQWN0aXZlLCBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IFtwbHVzTWVudUFuY2hvciwgc2V0UGx1c01lbnVBbmNob3JdID0gdXNlU3RhdGU8SFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBbYWN0aXZlVG9vbENoaXBIb3ZlcmVkLCBzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFt0b29sQ2hpcEV4aXRpbmcsIHNldFRvb2xDaGlwRXhpdGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgdG9vbENoaXBFeGl0VGltZXJSZWYgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsPihudWxsKVxuICBjb25zdCBzZWFyY2hNb2RlQWN0aXZlUmVmID0gdXNlUmVmKHsgd2ViOiBmYWxzZSwgZGVlcDogZmFsc2UgfSlcbiAgY29uc3QgcGx1c01lbnVPcGVuID0gQm9vbGVhbihwbHVzTWVudUFuY2hvcilcblxuICBzZWFyY2hNb2RlQWN0aXZlUmVmLmN1cnJlbnQgPSB7IHdlYjogaXNXZWJTZWFyY2hBY3RpdmUsIGRlZXA6IGlzRGVlcFNlYXJjaEFjdGl2ZSB9XG5cbiAgY29uc3QgYW5hbHl0aWNzQWdlbnRUeXBlID0gZ2V0Q2hhdFRvb2xzTWVudUFnZW50VHlwZShhZ2VudClcbiAgY29uc3QgYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkID0gYWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgPyB7IGVudGl0eTogYWdlbnQuZW50aXR5ID8/IG51bGwgfSA6IHt9XG5cbiAgLyoqIFRyYXMgZWxlZ2lyIG8gcXVpdGFyIGLDunNxdWVkYSB3ZWIvcHJvZnVuZGE6IHZvbHZlciBhbCB0ZXh0YXJlYSAoUG9wb3Zlci9tZW51IHB1ZWRlIHJvYmFyIGZvY28pLiAqL1xuICBjb25zdCBzY2hlZHVsZUlucHV0Rm9jdXNBZnRlclRvb2xBY3Rpb24gPSAoKSA9PiB7XG4gICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaW5wdXRSZWYuY3VycmVudD8uZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pXG4gICAgICB9LCAwKVxuICAgIH0pXG4gIH1cblxuICBjb25zdCBjbG9zZVBsdXNNZW51ID0gKCkgPT4ge1xuICAgIHNldFBsdXNNZW51QW5jaG9yKG51bGwpXG4gIH1cblxuICBjb25zdCBoYW5kbGVQbHVzQnV0dG9uQ2xpY2sgPSAoZTogTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgaWYgKHBsdXNNZW51QW5jaG9yKSB7XG4gICAgICBjbG9zZVBsdXNNZW51KClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXRQbHVzTWVudUFuY2hvcihlLmN1cnJlbnRUYXJnZXQpXG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFBsdXNPcGVuLCB7IGFnZW50X3R5cGU6IGFuYWx5dGljc0FnZW50VHlwZSwgLi4uYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkIH0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVQbHVzTWVudUF0dGFjaCA9ICgpID0+IHtcbiAgICBjbG9zZVBsdXNNZW51KClcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0VG9vbHMsIHtcbiAgICAgIGFnZW50X3R5cGU6IGFuYWx5dGljc0FnZW50VHlwZSxcbiAgICAgIG9wdGlvbjogJ2ZpbGVzJyxcbiAgICAgIC4uLmFuYWx5dGljc0Nsb25lRW50aXR5UGF5bG9hZCxcbiAgICB9KVxuICAgIGlmIChhdHRhY2htZW50cy5sZW5ndGggPj0gNSkgcmV0dXJuXG4gICAgZmlsZUlucHV0UmVmLmN1cnJlbnQ/LmNsaWNrKClcbiAgfVxuXG4gIGNvbnN0IGJlZ2luVG9vbENoaXBFeGl0ID0gKCkgPT4ge1xuICAgIGlmICh0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY29uc3Qgd2FzV2ViID0gaXNXZWJTZWFyY2hBY3RpdmVcbiAgICBjb25zdCB3YXNEZWVwID0gaXNEZWVwU2VhcmNoQWN0aXZlXG4gICAgaWYgKCF3YXNXZWIgJiYgIXdhc0RlZXApIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXRUb29sQ2hpcEV4aXRpbmcodHJ1ZSlcbiAgICB0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgY29uc3QgeyB3ZWIsIGRlZXAgfSA9IHNlYXJjaE1vZGVBY3RpdmVSZWYuY3VycmVudFxuICAgICAgaWYgKHdhc1dlYiAmJiB3ZWIpIHtcbiAgICAgICAgdG9nZ2xlV2ViU2VhcmNoKClcbiAgICAgIH0gZWxzZSBpZiAod2FzRGVlcCAmJiBkZWVwKSB7XG4gICAgICAgIHRvZ2dsZURlZXBTZWFyY2goKVxuICAgICAgfVxuICAgICAgc2V0VG9vbENoaXBFeGl0aW5nKGZhbHNlKVxuICAgICAgc2NoZWR1bGVJbnB1dEZvY3VzQWZ0ZXJUb29sQWN0aW9uKClcbiAgICB9LCBUT09MX0NISVBfRVhJVF9NUylcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVBsdXNNZW51V2ViU2VhcmNoID0gKCkgPT4ge1xuICAgIGNsb3NlUGx1c01lbnUoKVxuICAgIGlmIChpc1dlYlNlYXJjaEFjdGl2ZSkge1xuICAgICAgYmVnaW5Ub29sQ2hpcEV4aXQoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmIChpc0RlZXBTZWFyY2hBY3RpdmUpIHtcbiAgICAgIHRvZ2dsZURlZXBTZWFyY2goKVxuICAgIH1cbiAgICB0b2dnbGVXZWJTZWFyY2goKVxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRUb29scywge1xuICAgICAgYWdlbnRfdHlwZTogYW5hbHl0aWNzQWdlbnRUeXBlLFxuICAgICAgb3B0aW9uOiAnc2VhcmNoJyxcbiAgICAgIC4uLmFuYWx5dGljc0Nsb25lRW50aXR5UGF5bG9hZCxcbiAgICB9KVxuICAgIHNjaGVkdWxlSW5wdXRGb2N1c0FmdGVyVG9vbEFjdGlvbigpXG4gIH1cblxuICBjb25zdCBoYW5kbGVQbHVzTWVudURlZXBTZWFyY2ggPSAoKSA9PiB7XG4gICAgY2xvc2VQbHVzTWVudSgpXG4gICAgaWYgKGlzRGVlcFNlYXJjaEFjdGl2ZSkge1xuICAgICAgYmVnaW5Ub29sQ2hpcEV4aXQoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmIChpc1dlYlNlYXJjaEFjdGl2ZSkge1xuICAgICAgdG9nZ2xlV2ViU2VhcmNoKClcbiAgICB9XG4gICAgdG9nZ2xlRGVlcFNlYXJjaCgpXG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFRvb2xzLCB7XG4gICAgICBhZ2VudF90eXBlOiBhbmFseXRpY3NBZ2VudFR5cGUsXG4gICAgICBvcHRpb246ICdkZWVwX3NlYXJjaCcsXG4gICAgICAuLi5hbmFseXRpY3NDbG9uZUVudGl0eVBheWxvYWQsXG4gICAgfSlcbiAgICBzY2hlZHVsZUlucHV0Rm9jdXNBZnRlclRvb2xBY3Rpb24oKVxuICB9XG5cbiAgLy8gSW5pY2lhbGl6YXIgbGFzIHJlZmVyZW5jaWFzIGNvbW8gdW5kZWZpbmVkIHBhcmEgZGV0ZWN0YXIgZWwgcHJpbWVyIGNhbWJpbyBjb3JyZWN0YW1lbnRlXG4gIGNvbnN0IHByZXZpb3VzQWdlbnRJZFJlZiA9IHVzZVJlZjxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcbiAgY29uc3QgcHJldmlvdXNDaGF0SWRSZWYgPSB1c2VSZWY8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG4gIGNvbnN0IHByZXZpb3VzTmV3Q2hhdEtleVJlZiA9IHVzZVJlZjxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcblxuICBjb25zdCBoYW5kbGVSZXNpemUgPSAoKSA9PiB7XG4gICAgY29uc3QgdGV4dGFyZWEgPSBpbnB1dFJlZi5jdXJyZW50XG4gICAgaWYgKCF0ZXh0YXJlYSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gQWx0dXJhIG3DrW5pbWEgZXF1aXZhbGVudGUgYSB1bmEgbMOtbmVhXG4gICAgY29uc3QgbWluSGVpZ2h0ID0gMjIuMVxuICAgIGNvbnN0IG1heEhlaWdodCA9IDEyMi4xXG5cbiAgICAvLyBQYXJhIG1lZGlyIGNvcnJlY3RhbWVudGUgZWwgc2Nyb2xsSGVpZ2h0LCBuZWNlc2l0YW1vcyBxdWl0YXIgdGVtcG9yYWxtZW50ZSBsYXMgcmVzdHJpY2Npb25lc1xuICAgIGNvbnN0IHByZXZpb3VzTWluSGVpZ2h0ID0gdGV4dGFyZWEuc3R5bGUubWluSGVpZ2h0XG4gICAgY29uc3QgcHJldmlvdXNNYXhIZWlnaHQgPSB0ZXh0YXJlYS5zdHlsZS5tYXhIZWlnaHRcblxuICAgIC8vIEVzdGFibGVjZXIgYWx0dXJhIGEgJ2F1dG8nIHkgcXVpdGFyIHRlbXBvcmFsbWVudGUgbWluLWhlaWdodCB5IG1heC1oZWlnaHQgcGFyYSBtZWRpciBjb3JyZWN0YW1lbnRlXG4gICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gJ2F1dG8nXG4gICAgdGV4dGFyZWEuc3R5bGUubWluSGVpZ2h0ID0gJzBweCdcbiAgICB0ZXh0YXJlYS5zdHlsZS5tYXhIZWlnaHQgPSAnbm9uZSdcblxuICAgIC8vIEZvcnphciByZWZsb3cgcGFyYSBxdWUgZWwgbmF2ZWdhZG9yIHJlY2FsY3VsZVxuICAgIHZvaWQgdGV4dGFyZWEub2Zmc2V0SGVpZ2h0XG5cbiAgICAvLyBBaG9yYSBtZWRpciBlbCBzY3JvbGxIZWlnaHQgcmVhbCBzaW4gcmVzdHJpY2Npb25lc1xuICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9IHRleHRhcmVhLnNjcm9sbEhlaWdodFxuXG4gICAgLy8gQ2FsY3VsYXIgbGEgYWx0dXJhIGRlIHVuYSBsw61uZWEgdXNhbmRvIGxvcyBlc3RpbG9zIGNvbXB1dGFkb3NcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGV4dGFyZWEpXG4gICAgY29uc3QgbGluZUhlaWdodCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5saW5lSGVpZ2h0KSB8fCAyMCAvLyBGYWxsYmFjayBhIDIwcHggc2kgbm8gZXN0w6EgZGVmaW5pZG9cbiAgICBjb25zdCBwYWRkaW5nVG9wID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLnBhZGRpbmdUb3ApIHx8IDBcbiAgICBjb25zdCBwYWRkaW5nQm90dG9tID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLnBhZGRpbmdCb3R0b20pIHx8IDBcbiAgICBjb25zdCBib3JkZXJUb3AgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUuYm9yZGVyVG9wV2lkdGgpIHx8IDBcbiAgICBjb25zdCBib3JkZXJCb3R0b20gPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUuYm9yZGVyQm90dG9tV2lkdGgpIHx8IDBcblxuICAgIC8vIEFsdHVyYSBkZSB1bmEgbMOtbmVhIGNvbXBsZXRhIChsaW5lLWhlaWdodCArIHBhZGRpbmcgKyBib3JkZXIpXG4gICAgY29uc3Qgc2luZ2xlTGluZUhlaWdodCA9IGxpbmVIZWlnaHQgKyBwYWRkaW5nVG9wICsgcGFkZGluZ0JvdHRvbSArIGJvcmRlclRvcCArIGJvcmRlckJvdHRvbVxuXG4gICAgY29uc3QgaXNFbXB0eSA9IHRleHRhcmVhLnZhbHVlLnRyaW0oKSA9PT0gJydcblxuICAgIC8vIE1lZGlyIGVsIGFuY2hvIGRlbCB0ZXh0byB1c2FuZG8gQ2FudmFzIHBhcmEgZGV0ZXJtaW5hciBzaSBzZSBlbnZ1ZWx2ZSBhIG3Dumx0aXBsZXMgbMOtbmVhc1xuICAgIGxldCBoYXNNdWx0aXBsZVZpc3VhbExpbmVzID0gZmFsc2VcblxuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpXG4gICAgY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpXG5cbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIC8vIEZhbGxiYWNrIHNpIENhbnZhcyBubyBlc3TDoSBkaXNwb25pYmxlOiB1c2FyIHNjcm9sbEhlaWdodFxuICAgICAgaGFzTXVsdGlwbGVWaXN1YWxMaW5lcyA9IHNjcm9sbEhlaWdodCA+IHNpbmdsZUxpbmVIZWlnaHQgKiAxLjVcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdGV4dGFyZWFTdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0YXJlYSlcbiAgICAgIGNvbnRleHQuZm9udCA9IGAke3RleHRhcmVhU3R5bGVzLmZvbnRXZWlnaHR9ICR7dGV4dGFyZWFTdHlsZXMuZm9udFNpemV9ICR7dGV4dGFyZWFTdHlsZXMuZm9udEZhbWlseX1gXG5cbiAgICAgIC8vIENhbGN1bGFyIGVsIGFuY2hvIGRpc3BvbmlibGUgKGFuY2hvIHRvdGFsIG1lbm9zIHBhZGRpbmcgaXpxdWllcmRvL2RlcmVjaG8geSBib3JkZXIgaXpxdWllcmRvL2RlcmVjaG8pXG4gICAgICBjb25zdCBwYWRkaW5nTGVmdCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5wYWRkaW5nTGVmdCkgfHwgMFxuICAgICAgY29uc3QgcGFkZGluZ1JpZ2h0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLnBhZGRpbmdSaWdodCkgfHwgMFxuICAgICAgY29uc3QgYm9yZGVyTGVmdCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5ib3JkZXJMZWZ0V2lkdGgpIHx8IDBcbiAgICAgIGNvbnN0IGJvcmRlclJpZ2h0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLmJvcmRlclJpZ2h0V2lkdGgpIHx8IDBcbiAgICAgIGNvbnN0IHRleHRhcmVhV2lkdGggPSB0ZXh0YXJlYS5vZmZzZXRXaWR0aCAtIHBhZGRpbmdMZWZ0IC0gcGFkZGluZ1JpZ2h0IC0gYm9yZGVyTGVmdCAtIGJvcmRlclJpZ2h0XG4gICAgICBjb25zdCB0ZXh0ID0gdGV4dGFyZWEudmFsdWUgfHwgJydcbiAgICAgIGNvbnN0IGxpbmVzID0gdGV4dC5zcGxpdCgnXFxuJylcblxuICAgICAgLy8gU2kgaGF5IG3Dumx0aXBsZXMgbMOtbmVhcyBwb3Igc2FsdG9zIGRlIGzDrW5lYSBleHBsw61jaXRvc1xuICAgICAgaWYgKGxpbmVzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgaGFzTXVsdGlwbGVWaXN1YWxMaW5lcyA9IHRydWVcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCB0ZXh0byBzZSBlbnZ1ZWx2ZSBtaWRpZW5kbyBlbCBhbmNobyBkZSBjYWRhIGzDrW5lYVxuICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICAgICAgICBpZiAobGluZS50cmltKCkgPT09ICcnKSBjb250aW51ZVxuICAgICAgICAgIGNvbnN0IHRleHRXaWR0aCA9IGNvbnRleHQubWVhc3VyZVRleHQobGluZSkud2lkdGhcbiAgICAgICAgICAvLyBTaSBhbGd1bmEgbMOtbmVhIGVzIG3DoXMgYW5jaGEgcXVlIGVsIHRleHRhcmVhIGRpc3BvbmlibGUsIHNlIGVudnVlbHZlXG4gICAgICAgICAgaWYgKHRleHRXaWR0aCA+IHRleHRhcmVhV2lkdGgpIHtcbiAgICAgICAgICAgIGhhc011bHRpcGxlVmlzdWFsTGluZXMgPSB0cnVlXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBuZXdIZWlnaHQ6IG51bWJlclxuICAgIGlmIChpc0VtcHR5KSB7XG4gICAgICAvLyBDdWFuZG8gZXN0w6EgdmFjw61vLCB1c2FyIGFsdHVyYSBtw61uaW1hXG4gICAgICBuZXdIZWlnaHQgPSBtaW5IZWlnaHRcbiAgICB9IGVsc2UgaWYgKCFoYXNNdWx0aXBsZVZpc3VhbExpbmVzKSB7XG4gICAgICAvLyBDdWFuZG8gaGF5IGNvbnRlbmlkbyBwZXJvIHNvbG8gdW5hIGzDrW5lYSB2aXN1YWwsIHVzYXIgYWx0dXJhIG3DrW5pbWFcbiAgICAgIG5ld0hlaWdodCA9IG1pbkhlaWdodFxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBQYXJhIG3Dumx0aXBsZXMgbMOtbmVhcyB2aXN1YWxlcywgdXNhciBlbCBzY3JvbGxIZWlnaHRcbiAgICAgIG5ld0hlaWdodCA9IE1hdGgubWluKE1hdGgubWF4KHNjcm9sbEhlaWdodCwgbWluSGVpZ2h0KSwgbWF4SGVpZ2h0KVxuICAgIH1cblxuICAgIC8vIFJlc3RhdXJhciBlc3RpbG9zIGFudGVzIGRlIGFwbGljYXIgbGEgbnVldmEgYWx0dXJhXG4gICAgdGV4dGFyZWEuc3R5bGUubWluSGVpZ2h0ID0gcHJldmlvdXNNaW5IZWlnaHQgfHwgJzIyLjFweCdcbiAgICB0ZXh0YXJlYS5zdHlsZS5tYXhIZWlnaHQgPSBwcmV2aW91c01heEhlaWdodCB8fCAnMTIyLjFweCdcblxuICAgIHRleHRhcmVhLnN0eWxlLmhlaWdodCA9IGAke25ld0hlaWdodH1weGBcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlucHV0UmVmLmN1cnJlbnQgJiYgIWRpc2FibGVkKSB7XG4gICAgICBpbnB1dFJlZi5jdXJyZW50LmZvY3VzKClcbiAgICAgIGhhbmRsZVJlc2l6ZSgpXG4gICAgfVxuICB9LCBbZGlzYWJsZWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmICh0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzV2ViU2VhcmNoQWN0aXZlICYmICFpc0RlZXBTZWFyY2hBY3RpdmUpIHtcbiAgICAgIHNldEFjdGl2ZVRvb2xDaGlwSG92ZXJlZChmYWxzZSlcbiAgICB9XG4gIH0sIFtpc1dlYlNlYXJjaEFjdGl2ZSwgaXNEZWVwU2VhcmNoQWN0aXZlXSlcblxuICAvLyBBdXRvLWZvY3VzIGN1YW5kbyBjYW1iaWEgZWwgYWdlbnRlIG8gbGEgY29udmVyc2FjacOzbiwgbyBhbCBtb250YXIgZWwgY29tcG9uZW50ZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIENvbXBhcmFjacOzbiBxdWUgbWFuZWphIGNvcnJlY3RhbWVudGUgdW5kZWZpbmVkL251bGxcbiAgICBjb25zdCBhZ2VudENoYW5nZWQgPSBwcmV2aW91c0FnZW50SWRSZWYuY3VycmVudCAhPT0gYWdlbnQ/LmlkXG4gICAgLy8gQ29tcGFyYWNpw7NuIGVzdHJpY3RhIHF1ZSBkZXRlY3RhIGNhbWJpb3MgaW5jbHVzbyBjdWFuZG8gdW5vIGVzIHVuZGVmaW5lZFxuICAgIGNvbnN0IHByZXZpb3VzQ2hhdElkID0gcHJldmlvdXNDaGF0SWRSZWYuY3VycmVudFxuICAgIGNvbnN0IGN1cnJlbnRDaGF0SWQgPSBjaGF0SWRcbiAgICBjb25zdCBjaGF0Q2hhbmdlZCA9IHByZXZpb3VzQ2hhdElkICE9PSBjdXJyZW50Q2hhdElkXG4gICAgLy8gRGV0ZWN0YXIgY2FtYmlvIGVzcGVjw61maWNvIGRlIHVuZGVmaW5lZC9udWxsIGEgdW4gdmFsb3IgKG51ZXZvIGNoYXQgLT4gY29udmVyc2FjacOzbiB2aWVqYSlcbiAgICBjb25zdCBjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQgPVxuICAgICAgKHByZXZpb3VzQ2hhdElkID09PSB1bmRlZmluZWQgfHwgcHJldmlvdXNDaGF0SWQgPT09IG51bGwpICYmIGN1cnJlbnRDaGF0SWQgIT09IHVuZGVmaW5lZCAmJiBjdXJyZW50Q2hhdElkICE9PSBudWxsXG4gICAgY29uc3QgbmV3Q2hhdFN0YXJ0ZWQgPSBwcmV2aW91c05ld0NoYXRLZXlSZWYuY3VycmVudCAhPT0gbmV3Q2hhdEtleVxuICAgIGNvbnN0IGlzSW5pdGlhbE1vdW50ID0gcHJldmlvdXNBZ2VudElkUmVmLmN1cnJlbnQgPT09IHVuZGVmaW5lZCAmJiBwcmV2aW91c0NoYXRJZFJlZi5jdXJyZW50ID09PSB1bmRlZmluZWRcblxuICAgIGlmIChcbiAgICAgIChhZ2VudENoYW5nZWQgfHwgY2hhdENoYW5nZWQgfHwgY2hhbmdlZEZyb21OZXdDaGF0VG9PbGRDaGF0IHx8IG5ld0NoYXRTdGFydGVkIHx8IGlzSW5pdGlhbE1vdW50KSAmJlxuICAgICAgaW5wdXRSZWYuY3VycmVudCAmJlxuICAgICAgIWRpc2FibGVkXG4gICAgKSB7XG4gICAgICAvLyBVc2FyIHNldFRpbWVvdXQgcGFyYSBhc2VndXJhciBxdWUgZWwgRE9NIGVzdMOpIGxpc3RvXG4gICAgICAvLyBBdW1lbnRhciBlbCBkZWxheSBwYXJhIGNhc29zIGRvbmRlIGVsIGNvbXBvbmVudGUgc2UgZXN0w6EgbW9udGFuZG9cbiAgICAgIGNvbnN0IGRlbGF5ID0gaXNJbml0aWFsTW91bnQgfHwgY2hhbmdlZEZyb21OZXdDaGF0VG9PbGRDaGF0ID8gMjAwIDogMTAwXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKGlucHV0UmVmLmN1cnJlbnQgJiYgIWRpc2FibGVkKSB7XG4gICAgICAgICAgaW5wdXRSZWYuY3VycmVudC5mb2N1cygpXG4gICAgICAgIH1cbiAgICAgIH0sIGRlbGF5KVxuICAgIH1cblxuICAgIC8vIEFjdHVhbGl6YXIgbGFzIHJlZmVyZW5jaWFzIERFU1BVw4lTIGRlIGxhIGNvbXBhcmFjacOzblxuICAgIHByZXZpb3VzQWdlbnRJZFJlZi5jdXJyZW50ID0gYWdlbnQ/LmlkXG4gICAgcHJldmlvdXNDaGF0SWRSZWYuY3VycmVudCA9IGNoYXRJZFxuICAgIHByZXZpb3VzTmV3Q2hhdEtleVJlZi5jdXJyZW50ID0gbmV3Q2hhdEtleVxuICB9LCBbYWdlbnQ/LmlkLCBjaGF0SWQsIG5ld0NoYXRLZXksIGRpc2FibGVkXSlcblxuICAvLyBDbGVhciBpbnB1dCB3aGVuIHNlc3Npb24gY2hhbmdlcyAodXNlciBzd2l0Y2hlcyB0byBhIGRpZmZlcmVudCBjaGF0KVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZVNlc3Npb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICBzZXRWYWx1ZVRleHRhcmVhKCcnKVxuICAgICAgc2V0SXNEaXNhYmxlZCh0cnVlKVxuICAgICAgaWYgKGlucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgaW5wdXRSZWYuY3VycmVudC52YWx1ZSA9ICcnXG4gICAgICB9XG4gICAgICBoYW5kbGVSZXNpemUoKVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSlcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGF0LXNlc3Npb24tY2hhbmdlZCcsIGhhbmRsZVNlc3Npb25DaGFuZ2UpXG4gICAgfVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGFuaW1hdGlvbkZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgaGFuZGxlUmVzaXplKClcbiAgICB9KVxuXG4gICAgcmV0dXJuICgpID0+IGNhbmNlbEFuaW1hdGlvbkZyYW1lKGFuaW1hdGlvbkZyYW1lSWQpXG4gIH0sIFt2YWx1ZVRleHRhcmVhXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhc1RleHQgPSB2YWx1ZVRleHRhcmVhLnRyaW0oKS5sZW5ndGggPiAwXG4gICAgY29uc3QgaGFzQXR0YWNobWVudHMgPSBhdHRhY2htZW50cy5sZW5ndGggPiAwXG4gICAgc2V0SXNEaXNhYmxlZCghaGFzVGV4dCAmJiAhaGFzQXR0YWNobWVudHMpXG4gIH0sIFthdHRhY2htZW50cywgdmFsdWVUZXh0YXJlYV0pXG5cbiAgY29uc3QgaGFuZGxlU2VuZE1lc3NhZ2UgPSAoKSA9PiB7XG4gICAgaWYgKGlucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgIG9uU2VuZE1lc3NhZ2UoaW5wdXRSZWYuY3VycmVudC52YWx1ZSwgYXR0YWNobWVudHMpXG4gICAgICBpbnB1dFJlZi5jdXJyZW50LnZhbHVlID0gJydcbiAgICAgIHNldFZhbHVlVGV4dGFyZWEoJycpXG4gICAgICBzZXRJc0Rpc2FibGVkKHRydWUpXG4gICAgICBoYW5kbGVSZXNpemUoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmIChhdHRhY2htZW50cy5sZW5ndGgpIHtcbiAgICAgIG9uU2VuZE1lc3NhZ2UoJycsIGF0dGFjaG1lbnRzKVxuICAgICAgc2V0VmFsdWVUZXh0YXJlYSgnJylcbiAgICAgIHNldElzRGlzYWJsZWQodHJ1ZSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGU6IEtleWJvYXJkRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pID0+IHtcbiAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgJiYgIWUuc2hpZnRLZXkpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgaWYgKCFpc0Rpc2FibGVkICYmICFkaXNhYmxlZCkge1xuICAgICAgICBoYW5kbGVTZW5kTWVzc2FnZSgpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gKGU6IENoYW5nZUV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSA9PiB7XG4gICAgY29uc3QgaGFzVGV4dCA9IGUudGFyZ2V0LnZhbHVlLnRyaW0oKS5sZW5ndGggPiAwXG4gICAgY29uc3QgaGFzQXR0YWNobWVudHMgPSBhdHRhY2htZW50cy5sZW5ndGggPiAwXG4gICAgc2V0SXNEaXNhYmxlZCghaGFzVGV4dCAmJiAhaGFzQXR0YWNobWVudHMpXG4gICAgc2V0VmFsdWVUZXh0YXJlYShlLnRhcmdldC52YWx1ZSlcbiAgICBvbkNoYW5nZT8uKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVBhc3RlID0gKCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaGFuZGxlUmVzaXplKClcbiAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGlucHV0UmVmLmN1cnJlbnQ/LnZhbHVlID8/ICcnXG4gICAgICBjb25zdCBoYXNUZXh0ID0gY3VycmVudFZhbHVlLnRyaW0oKS5sZW5ndGggPiAwXG4gICAgICBjb25zdCBoYXNBdHRhY2htZW50cyA9IGF0dGFjaG1lbnRzLmxlbmd0aCA+IDBcbiAgICAgIHNldFZhbHVlVGV4dGFyZWEoY3VycmVudFZhbHVlKVxuICAgICAgc2V0SXNEaXNhYmxlZCghaGFzVGV4dCAmJiAhaGFzQXR0YWNobWVudHMpXG4gICAgfSwgMTApXG4gIH1cblxuICBjb25zdCBoYW5kbGVGaWxlU2VsZWN0ID0gKGU6IENoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgY29uc3QgZmlsZXMgPSBlLnRhcmdldC5maWxlc1xuICAgIGlmICghZmlsZXMpIHJldHVyblxuXG4gICAgY29uc3QgZXhjZWVkZWRGaWxlczogc3RyaW5nW10gPSBbXVxuICAgIGNvbnN0IGV4Y2x1ZGVkRmlsZXM6IHN0cmluZ1tdID0gW11cbiAgICBjb25zdCBmaWxlU2l6ZXM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7fVxuICAgIGxldCBmaWxlc0luc2VydGVkID0gYXR0YWNobWVudHMubGVuZ3RoXG5cbiAgICAvLyBEZWZpbmlyIGzDrW1pdGVzIHBhcmEgZGlmZXJlbnRlcyB0aXBvcyBkZSBhcmNoaXZvc1xuICAgIGNvbnN0IGlzTmV3Rm9ybWF0ID0gKGV4dGVuc2lvbjogc3RyaW5nKSA9PiBbJy5wbmcnLCAnLmpwZycsICcuanBlZycsICcucGRmJ10uaW5jbHVkZXMoZXh0ZW5zaW9uKVxuICAgIGNvbnN0IGlzT2xkRm9ybWF0ID0gKGV4dGVuc2lvbjogc3RyaW5nKSA9PlxuICAgICAgWycudHh0JywgJy5tZCcsICcuY3N2JywgJy5kb2MnLCAnLmRvY3gnLCAnLnhsc3gnLCAnLnhscyddLmluY2x1ZGVzKGV4dGVuc2lvbilcbiAgICBjb25zdCBpc0F1ZGlvRm9ybWF0ID0gKGV4dGVuc2lvbjogc3RyaW5nKSA9PlxuICAgICAgWycuZmxhYycsICcubTRhJywgJy5tcDMnLCAnLm1wNCcsICcub2dhJywgJy5vZ2cnLCAnLndhdicsICcud2VibSddLmluY2x1ZGVzKGV4dGVuc2lvbilcblxuICAgIEFycmF5LmZyb20oZmlsZXMpLmZvckVhY2goZmlsZSA9PiB7XG4gICAgICBsZXQgZXhjbHVkZWRGaWxlID0gZmFsc2VcbiAgICAgIGNvbnN0IGZpbGVOYW1lUGFydHMgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKVxuICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGZpbGVOYW1lUGFydHMubGVuZ3RoID4gMSA/IGAuJHtmaWxlTmFtZVBhcnRzLnBvcCgpPy50b0xvd2VyQ2FzZSgpfWAgOiAnJ1xuXG4gICAgICBpZiAoIWFsbG93ZWRGaWxlVHlwZXM/LmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBmaWxlU2l6ZXNbZmlsZS5uYW1lXSA9IGZpbGUuc2l6ZVxuXG4gICAgICAvLyBWYWxpZGFjaW9uZXMgZXNwZWPDrWZpY2FzIHNlZ8O6biBlbCB0aXBvIGRlIGFyY2hpdm9cbiAgICAgIGlmIChpc05ld0Zvcm1hdChmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICAvLyBQYXJhIG51ZXZvcyBmb3JtYXRvczogaGFzdGEgNC45OU1CIHBvciBhcmNoaXZvLCBoYXN0YSA1IGFyY2hpdm9zXG4gICAgICAgIGlmIChmaWxlLnNpemUgPiBNQVhfRklMRV9TSVpFX01CX01BSUFfVklTSU9OICogMTAyNCAqIDEwMjQpIHtcbiAgICAgICAgICBleGNlZWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlc0luc2VydGVkICsgMSA+IDUpIHtcbiAgICAgICAgICBleGNsdWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpc09sZEZvcm1hdChmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICAvLyBQYXJhIGZvcm1hdG9zIGFudGVyaW9yZXM6IGhhc3RhIDFNQiBwb3IgYXJjaGl2bywgaGFzdGEgNSBhcmNoaXZvc1xuICAgICAgICBpZiAoZmlsZS5zaXplID4gTUFYX0ZJTEVfU0laRV9NQl9PTEQgKiAxMDI0ICogMTAyNCkge1xuICAgICAgICAgIGV4Y2VlZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGVzSW5zZXJ0ZWQgKyAxID4gNSkge1xuICAgICAgICAgIGV4Y2x1ZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlzQXVkaW9Gb3JtYXQoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgLy8gUGFyYSBhcmNoaXZvcyBkZSBhdWRpbzogaGFzdGEgMTBNQiBwb3IgYXJjaGl2bywgaGFzdGEgNSBhcmNoaXZvc1xuICAgICAgICBpZiAoZmlsZS5zaXplID4gTUFYX0ZJTEVfU0laRV9NQl9BVURJTyAqIDEwMjQgKiAxMDI0KSB7XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZXNJbnNlcnRlZCArIDEgPiA1KSB7XG4gICAgICAgICAgZXhjbHVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCFleGNsdWRlZEZpbGUpIHtcbiAgICAgICAgZmlsZXNJbnNlcnRlZCArPSAxXG4gICAgICAgIGNvbnN0IHR5cGVGaWxlID0gZmlsZS50eXBlIHx8IGZpbGVUeXBlc1tmaWxlRXh0ZW5zaW9uXVxuICAgICAgICBjb25zdCBwYXJzZWRGaWxlID0gbmV3IEZpbGUoW2ZpbGVdLCBmaWxlLm5hbWUsIHsgdHlwZTogdHlwZUZpbGUgfSlcbiAgICAgICAgb25GaWxlQXR0YWNoPy4ocGFyc2VkRmlsZSlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgc2V0SXNEaXNhYmxlZChmYWxzZSlcbiAgICBpZiAoZXhjbHVkZWRGaWxlcy5sZW5ndGggfHwgZXhjZWVkZWRGaWxlcy5sZW5ndGgpIHtcbiAgICAgIHNldE1vZGFsUHJvcHMoeyBpc09wZW46IHRydWUsIGV4Y2x1ZGVkRmlsZXMsIGV4Y2VlZGVkRmlsZXMsIGZpbGVTaXplcyB9KVxuICAgIH1cblxuICAgIGlmIChmaWxlSW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgZmlsZUlucHV0UmVmLmN1cnJlbnQudmFsdWUgPSAnJ1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQgPSAoZmlsZUlkOiBzdHJpbmcpID0+IHtcbiAgICBvbkRlbGV0ZUF0dGFjaG1lbnQ/LihmaWxlSWQpXG4gIH1cblxuICBjb25zdCBoYW5kbGVCbHVyID0gKCkgPT4ge1xuICAgIGNvbnN0IGhhc1RleHQgPSB2YWx1ZVRleHRhcmVhLnRyaW0oKS5sZW5ndGggPiAwXG4gICAgY29uc3QgaGFzQXR0YWNobWVudHMgPSBhdHRhY2htZW50cy5sZW5ndGggPiAwXG4gICAgc2V0SXNEaXNhYmxlZCghaGFzVGV4dCAmJiAhaGFzQXR0YWNobWVudHMpXG4gIH1cblxuICBjb25zdCBoYW5kbGVXcmFwcGVyRm9jdXMgPSAoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSlcbiAgY29uc3QgaGFuZGxlV3JhcHBlckJsdXIgPSAoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXdyYXBwZXJSZWYuY3VycmVudD8uY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgc2V0SXNGb2N1c2VkKGZhbHNlKVxuICAgICAgfVxuICAgIH0sIDApXG4gIH1cblxuICBjb25zdCBoYW5kbGVTdG9wR2VuZXJhdGlvbiA9ICgpID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0U3RvcFJlc3BvbnNlKVxuICAgIG9uU3RvcEdlbmVyYXRpb24/LigpXG4gIH1cblxuICBjb25zdCBwbHVzSWNvbkNvbG9yID0gaXNGb2N1c2VkID8gJyM2NjY2NjYnIDogJyM5OTknXG4gIGNvbnN0IHBsdXNNZW51SWNvbkNvbG9yID0gJyM0ZDRkNGQnXG4gIC8qKiBBbGluZWFkbyBjb24gYFBsdXNNZW51SXRlbUxhYmVsYCAoJHNlbGVjdGVkKSB5IGVsIGNoZWNrIGRlbCBtZW7DuiAqL1xuICBjb25zdCBwbHVzTWVudVNlbGVjdGVkQ29sb3IgPSAnIzAwNTc4YydcblxuICBsZXQgYWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbjogUmVhY3ROb2RlXG4gIGlmIChhY3RpdmVUb29sQ2hpcEhvdmVyZWQpIHtcbiAgICBhY3RpdmVUb29sQ2hpcExlYWRpbmdJY29uID0gPENyb3NzIGNvbG9yPVwiI2E0YWRiNVwiIHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgfSBlbHNlIGlmIChpc1dlYlNlYXJjaEFjdGl2ZSkge1xuICAgIGFjdGl2ZVRvb2xDaGlwTGVhZGluZ0ljb24gPSA8R2xvYmUgY29sb3I9e3BsdXNNZW51SWNvbkNvbG9yfSB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gIH0gZWxzZSB7XG4gICAgYWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbiA9IDxUZWxlc2NvcGVJY29uIGNvbG9yPXtwbHVzTWVudUljb25Db2xvcn0gd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFN0eWxlZE1BSUFJbnB1dFdyYXBwZXJcbiAgICAgICAgcmVmPXt3cmFwcGVyUmVmfVxuICAgICAgICBkaXNhYmxlZD17ZmFsc2V9XG4gICAgICAgIGFsaWduQnV0dG9ucz17YWxpZ25CdXR0b25zfVxuICAgICAgICBoYXNBdHRhY2htZW50cz17ISFhdHRhY2htZW50cy5sZW5ndGh9XG4gICAgICAgIG9uRm9jdXM9e2hhbmRsZVdyYXBwZXJGb2N1c31cbiAgICAgICAgb25CbHVyPXtoYW5kbGVXcmFwcGVyQmx1cn1cbiAgICAgID5cbiAgICAgICAgeyEhYXR0YWNobWVudHMubGVuZ3RoICYmIChcbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZ2FwOiAnMTJweCcsIGFsaWduSXRlbXM6ICdjZW50ZXInIH19PlxuICAgICAgICAgICAge2F0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IGF0dGFjaG1lbnQubmFtZS5zcGxpdCgnLicpXG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVBhcnRzLmxlbmd0aCA+IDEgPyBgLiR7ZmlsZU5hbWVQYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKX1gIDogJydcbiAgICAgICAgICAgICAgY29uc3QgaXNJbWFnZUJ5RXh0ZW5zaW9uID0gWycucG5nJywgJy5qcGcnLCAnLmpwZWcnXS5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKVxuICAgICAgICAgICAgICBjb25zdCBpc0ltYWdlQnlNaW1lID0gYXR0YWNobWVudC50eXBlPy5zdGFydHNXaXRoKCdpbWFnZS8nKVxuICAgICAgICAgICAgICBjb25zdCBpc0ltYWdlID0gaXNJbWFnZUJ5TWltZSAmJiBpc0ltYWdlQnlFeHRlbnNpb25cbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17YXR0YWNobWVudC5uYW1lfSBrZXk9e2Ake2luZGV4fS0ke2F0dGFjaG1lbnQubmFtZX1gfT5cbiAgICAgICAgICAgICAgICAgIDxTQ01JQXR0YWNobWVudCBpc0ltYWdlPXtpc0ltYWdlfT5cbiAgICAgICAgICAgICAgICAgICAge2F0dGFjaG1lbnQuaWNvbn1cbiAgICAgICAgICAgICAgICAgICAgPFNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGVBdHRhY2htZW50KGF0dGFjaG1lbnQuaWQpfT5cbiAgICAgICAgICAgICAgICAgICAgICA8VHJhc2ggY29sb3I9XCJyZ2JhKDE5MSwgMTkxLCAxOTEsIDEpXCIgd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICAgICAgICAgICAgICAgICAgICA8L1NDTUlBdHRhY2htZW50RGVsZXRlSWNvbj5cbiAgICAgICAgICAgICAgICAgIDwvU0NNSUF0dGFjaG1lbnQ+XG4gICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgICAgPFN0eWxlZE1BSUFJbnB1dFxuICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgIG9uUGFzdGU9e2hhbmRsZVBhc3RlfVxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgICBhbGlnbkJ1dHRvbnM9e2FsaWduQnV0dG9uc31cbiAgICAgICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgIC8+XG4gICAgICAgIDxTdHlsZWRNQUlBSW5wdXRCdXR0b25zPlxuICAgICAgICAgIDxQbHVzTWVudVRvb2xzUm93PlxuICAgICAgICAgICAgPFBsdXNUb2dnbGVCdXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICRtZW51T3Blbj17cGx1c01lbnVPcGVufVxuICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVQbHVzQnV0dG9uQ2xpY2t9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9e3QoJ2NoYXQub3BlblBsdXNNZW51QXJpYScpfVxuICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e3BsdXNNZW51T3Blbn1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFBsdXMgY29sb3I9e3BsdXNJY29uQ29sb3J9IHdpZHRoPXsyMH0gaGVpZ2h0PXsyMH0gLz5cbiAgICAgICAgICAgIDwvUGx1c1RvZ2dsZUJ1dHRvbj5cbiAgICAgICAgICAgIDxQb3BvdmVyXG4gICAgICAgICAgICAgIG9wZW49e3BsdXNNZW51T3Blbn1cbiAgICAgICAgICAgICAgYW5jaG9yRWw9e3BsdXNNZW51QW5jaG9yfVxuICAgICAgICAgICAgICBvbkNsb3NlPXtjbG9zZVBsdXNNZW51fVxuICAgICAgICAgICAgICBhbmNob3JPcmlnaW49e3sgdmVydGljYWw6ICd0b3AnLCBob3Jpem9udGFsOiAnbGVmdCcgfX1cbiAgICAgICAgICAgICAgdHJhbnNmb3JtT3JpZ2luPXt7IHZlcnRpY2FsOiAnYm90dG9tJywgaG9yaXpvbnRhbDogJ2xlZnQnIH19XG4gICAgICAgICAgICAgIHNsb3RQcm9wcz17e1xuICAgICAgICAgICAgICAgIHBhcGVyOiB7XG4gICAgICAgICAgICAgICAgICBlbGV2YXRpb246IDAsXG4gICAgICAgICAgICAgICAgICBzeDoge1xuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ3Zpc2libGUnLFxuICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6ICctNHB4JyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFBsdXNNZW51UGFwZXI+XG4gICAgICAgICAgICAgICAgPFBsdXNNZW51SW5uZXJDb2x1bW4+XG4gICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVQbHVzTWVudUF0dGFjaH0+XG4gICAgICAgICAgICAgICAgICAgIDxBdHRhY2ggY29sb3I9e3BsdXNNZW51SWNvbkNvbG9yfSB3aWR0aD17MjB9IGhlaWdodD17MjB9IC8+XG4gICAgICAgICAgICAgICAgICAgIDxQbHVzTWVudUl0ZW1MYWJlbCAkc2VsZWN0ZWQ9e2ZhbHNlfT57dCgnY2hhdC5wbHVzTWVudUF0dGFjaCcpfTwvUGx1c01lbnVJdGVtTGFiZWw+XG4gICAgICAgICAgICAgICAgICA8L1BsdXNNZW51SXRlbUJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxQbHVzTWVudURpdmlkZXIgLz5cbiAgICAgICAgICAgICAgICAgIDxQbHVzTWVudUl0ZW1CdXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e2hhbmRsZVBsdXNNZW51V2ViU2VhcmNofT5cbiAgICAgICAgICAgICAgICAgICAgPEdsb2JlXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I9e2lzV2ViU2VhcmNoQWN0aXZlID8gcGx1c01lbnVTZWxlY3RlZENvbG9yIDogcGx1c01lbnVJY29uQ29sb3J9XG4gICAgICAgICAgICAgICAgICAgICAgd2lkdGg9ezIwfVxuICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MjB9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxQbHVzTWVudUl0ZW1MYWJlbCAkc2VsZWN0ZWQ9eyEhaXNXZWJTZWFyY2hBY3RpdmV9Pnt0KCdjaGF0LnNlYXJjaFdlYicpfTwvUGx1c01lbnVJdGVtTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIHtpc1dlYlNlYXJjaEFjdGl2ZSA/IDxDaGVjayBjb2xvcj17cGx1c01lbnVTZWxlY3RlZENvbG9yfSB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IC8+IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvUGx1c01lbnVJdGVtQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUGx1c01lbnVJbm5lckNvbHVtbj5cbiAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVQbHVzTWVudURlZXBTZWFyY2h9PlxuICAgICAgICAgICAgICAgICAgPFRlbGVzY29wZUljb25cbiAgICAgICAgICAgICAgICAgICAgY29sb3I9e2lzRGVlcFNlYXJjaEFjdGl2ZSA/IHBsdXNNZW51U2VsZWN0ZWRDb2xvciA6IHBsdXNNZW51SWNvbkNvbG9yfVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD17MjB9XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD17MjB9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPFBsdXNNZW51SXRlbUxhYmVsICRzZWxlY3RlZD17ISFpc0RlZXBTZWFyY2hBY3RpdmV9PlxuICAgICAgICAgICAgICAgICAgICB7dCgnY2hhdC5wbHVzTWVudURlZXBJbnZlc3RpZ2F0aW9uJyl9XG4gICAgICAgICAgICAgICAgICA8L1BsdXNNZW51SXRlbUxhYmVsPlxuICAgICAgICAgICAgICAgICAge2lzRGVlcFNlYXJjaEFjdGl2ZSA/IDxDaGVjayBjb2xvcj17cGx1c01lbnVTZWxlY3RlZENvbG9yfSB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IC8+IDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L1BsdXNNZW51SXRlbUJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9QbHVzTWVudVBhcGVyPlxuICAgICAgICAgICAgPC9Qb3BvdmVyPlxuICAgICAgICAgICAgeyhpc1dlYlNlYXJjaEFjdGl2ZSB8fCBpc0RlZXBTZWFyY2hBY3RpdmUpICYmIChcbiAgICAgICAgICAgICAgPEFjdGl2ZVRvb2xDaGlwUm9vdFxuICAgICAgICAgICAgICAgICRob3ZlcmVkPXthY3RpdmVUb29sQ2hpcEhvdmVyZWR9XG4gICAgICAgICAgICAgICAgJGV4aXRpbmc9e3Rvb2xDaGlwRXhpdGluZ31cbiAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9eygpID0+IHNldEFjdGl2ZVRvb2xDaGlwSG92ZXJlZCh0cnVlKX1cbiAgICAgICAgICAgICAgICBvbk1vdXNlTGVhdmU9eygpID0+IHNldEFjdGl2ZVRvb2xDaGlwSG92ZXJlZChmYWxzZSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8QWN0aXZlVG9vbENoaXBJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICRjbG9zZVNob3duPXthY3RpdmVUb29sQ2hpcEhvdmVyZWR9XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdjaGF0LnJlbW92ZUFjdGl2ZVRvb2xBcmlhJyl9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgICAgICBiZWdpblRvb2xDaGlwRXhpdCgpXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHthY3RpdmVUb29sQ2hpcExlYWRpbmdJY29ufVxuICAgICAgICAgICAgICAgIDwvQWN0aXZlVG9vbENoaXBJY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgIDxBY3RpdmVUb29sQ2hpcExhYmVsPlxuICAgICAgICAgICAgICAgICAge2lzV2ViU2VhcmNoQWN0aXZlID8gdCgnY2hhdC5zZWFyY2hXZWInKSA6IHQoJ2NoYXQucGx1c01lbnVEZWVwSW52ZXN0aWdhdGlvbicpfVxuICAgICAgICAgICAgICAgIDwvQWN0aXZlVG9vbENoaXBMYWJlbD5cbiAgICAgICAgICAgICAgPC9BY3RpdmVUb29sQ2hpcFJvb3Q+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvUGx1c01lbnVUb29sc1Jvdz5cblxuICAgICAgICAgIHtpc1dyaXRpbmcgPyAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17dCgnY2hhdC5zdG9wJyl9PlxuICAgICAgICAgICAgICA8U3R5bGVkTUFJQVN0b3BCdXR0b24gZGlzYWJsZWQ9e2ZhbHNlfSBvbkNsaWNrPXtoYW5kbGVTdG9wR2VuZXJhdGlvbn0gY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAgICAgICAgICAgIDxTdHlsZWRNQUlBU3RvcEljb24gLz5cbiAgICAgICAgICAgICAgPC9TdHlsZWRNQUlBU3RvcEJ1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2lzU3RyZWFtaW5nID8gdCgnY2hhdC5zZW5kJykgOiB0KCdjaGF0LnNlbmQnKX0+XG4gICAgICAgICAgICAgIDxTdHlsZWRNQUlBU2VuZEJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRNZXNzYWdlfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkIHx8IGRpc2FibGVkfVxuICAgICAgICAgICAgICAgIGhhc1ZhbHVlcz17ISF2YWx1ZVRleHRhcmVhLmxlbmd0aH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYXBlclBsYW5lIGNvbG9yPVwiI0JGQkZCRlwiIHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgICAgICAgICAgICAgPC9TdHlsZWRNQUlBU2VuZEJ1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L1N0eWxlZE1BSUFJbnB1dEJ1dHRvbnM+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHJlZj17ZmlsZUlucHV0UmVmfVxuICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICBtdWx0aXBsZVxuICAgICAgICAgIGFjY2VwdD1cIi50eHQsLm1kLC5jc3YsLmRvYywuZG9jeCwucG5nLC5qcGcsLmpwZWcsLnBkZiwueGxzeCwueGxzLC5mbGFjLC5tNGEsLm1wMywubXA0LC5vZ2EsLm9nZywud2F2LC53ZWJtXCJcbiAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlRmlsZVNlbGVjdH1cbiAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiAnbm9uZScgfX1cbiAgICAgICAgLz5cbiAgICAgIDwvU3R5bGVkTUFJQUlucHV0V3JhcHBlcj5cbiAgICAgIHttb2RhbFByb3BzLmlzT3BlbiAmJiAoXG4gICAgICAgIDxNb2RhbEZpbGVFeGNlZWRzXG4gICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0TW9kYWxQcm9wcyh7IGlzT3BlbjogZmFsc2UsIGV4Y2x1ZGVkRmlsZXM6IFtdLCBleGNlZWRlZEZpbGVzOiBbXSwgZmlsZVNpemVzOiB7fSB9KX1cbiAgICAgICAgICBleGNsdWRlZEZpbGVzPXttb2RhbFByb3BzLmV4Y2x1ZGVkRmlsZXN9XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcz17bW9kYWxQcm9wcy5leGNlZWRlZEZpbGVzfVxuICAgICAgICAgIGZpbGVTaXplcz17bW9kYWxQcm9wcy5maWxlU2l6ZXN9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQTREQSxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDdEcsU0FBU0MsT0FBTyxRQUFRLGVBQWU7QUFDdkMsU0FBU0MsVUFBVSxRQUFRLDZDQUE2QztBQUN4RSxTQUFTQyxNQUFNLFFBQVEseUNBQXlDO0FBQ2hFLFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsS0FBSyxRQUFRLHdDQUF3QztBQUM5RCxTQUFTQyxJQUFJLFFBQVEsdUNBQXVDO0FBQzVELFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsS0FBSyxRQUFRLHdDQUF3QztBQUM5RCxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBRXRFLFNBQ0VDLHdCQUF3QixFQUN4QkMsbUJBQW1CLEVBQ25CQyxrQkFBa0IsRUFDbEJDLGVBQWUsRUFDZkMsbUJBQW1CLEVBQ25CQyxrQkFBa0IsRUFDbEJDLGlC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
@@ -216,7 +216,7 @@ export var useGetAgents = function useGetAgents(_ref) {
216
216
  break;
217
217
  }
218
218
  _context.prev = 4;
219
- orderParam = section === 'client' ? '&order=client,project' : section === 'project' ? '&order=project,client' : '';
219
+ orderParam = section === 'client' ? '&order=client,project' : section === 'project' || section === 'header' ? '&order=project,client' : '';
220
220
  _context.next = 5;
221
221
  return fetchMaia({
222
222
  path: "agents?agent_type=clone&lang=".concat(mapCORLang(i18n.language)).concat(orderParam),
@@ -319,18 +319,16 @@ export var useGetAgents = function useGetAgents(_ref) {
319
319
  _context.next = 22;
320
320
  break;
321
321
  case 16:
322
- // Lógica para project o header sin multiAgents
322
+ // Lógica para project, client o header sin multiAgents (mismo criterio de orden project/client; header añade paginación)
323
323
  queryParams = new URLSearchParams();
324
- if (section === 'project' || section === 'client') {
324
+ if (section === 'project' || section === 'client' || section === 'header') {
325
325
  queryParams.append('agent_type', 'clone');
326
326
  queryParams.append('lang', mapCORLang(i18n.language));
327
327
  queryParams.append('order', section === 'client' ? 'client,project' : 'project,client');
328
- } else if (section === 'header' && !isMultiAgents) {
329
- // Header sin multiAgents: solo listar agentes clone (Maia)
330
- queryParams.append('agent_type', 'clone');
331
- queryParams.append('lang', mapCORLang(i18n.language));
332
- queryParams.append('limit', '7');
333
- queryParams.append('offset', '0');
328
+ if (section === 'header') {
329
+ queryParams.append('limit', '7');
330
+ queryParams.append('offset', '0');
331
+ }
334
332
  }
335
333
  queryString = queryParams.toString();
336
334
  path = "agents".concat(queryString ? "?".concat(queryString) : '');
@@ -461,10 +459,11 @@ export var useGetAgents = function useGetAgents(_ref) {
461
459
  // Mantener cantidad impar de cards: primera carga 7, siguientes +6 (7, 13, 19, ...)
462
460
  path = "agents?agent_type=custom&limit=6&offset=".concat(agents.next_offset);
463
461
  } else {
464
- // Si no es multiAgents, cargar más agentes clone (Maia)
462
+ // Si no es multiAgents, cargar más agentes clone (Maia) — mismo order que project para header
465
463
  queryParams = new URLSearchParams();
466
464
  queryParams.append('agent_type', 'clone');
467
465
  queryParams.append('lang', mapCORLang(i18n.language));
466
+ queryParams.append('order', 'project,client');
468
467
  queryParams.append('limit', '7');
469
468
  queryParams.append('offset', agents.next_offset.toString());
470
469
  path = "agents?".concat(queryParams.toString());
@@ -562,4 +561,4 @@ export var useGetAgents = function useGetAgents(_ref) {
562
561
  sortAgentsList: sortAgentsList
563
562
  };
564
563
  };
565
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlVHJhbnNsYXRpb24iLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJmZXRjaE1haWEiLCJ1c2VVc2VyIiwiQ09SVXNlclJvbGUiLCJtYXBDT1JMYW5nIiwic29ydEFnZW50cyIsImFnZW50cyIsImNsb25lQWdlbnRzIiwiZmlsdGVyIiwiYWciLCJ0eXBlIiwib3RoZXJBZ2VudHMiLCJmYXZvcml0ZXMiLCJpc19mYXZvcml0ZSIsInNvcnQiLCJhIiwiYiIsIm5hbWUiLCJsb2NhbGVDb21wYXJlIiwibm9uRmF2b3JpdGVzIiwibGVuZ3RoIiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwidXNlR2V0QWdlbnRzIiwiX3JlZiIsInNlbGVjdEFnZW50Iiwic2VjdGlvbiIsImFnZW50IiwiaGFuZGxlR29Ib21lIiwidXNlciIsIl91c2VTdGF0ZSIsImRhdGEiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZXRBZ2VudHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJsb2FkaW5nTW9yZSIsInNldExvYWRpbmdNb3JlIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJlcnJvciIsInNldEVycm9yIiwiX3VzZVNuYWNrQmFyTWFuYWdlciIsImhhbmRsZVNuYWNrYmFyRXJyb3IiLCJfdXNlVHJhbnNsYXRpb24iLCJ0IiwiaTE4biIsImxhc3RTZWxlY3RlZEFnZW50UmVmIiwiaXNSZWZyZXNoaW5nUmVmIiwibGFzdFJlcXVlc3RSZWYiLCJ1c2VyUm9sZXNEaXNhYmxlZCIsIkNPTExBQk9SQVRPUiIsIkZSRUVMQU5DRVIiLCJDTElFTlQiLCJhZGRBZ2VudCIsIm5ld0FnZW50Iiwib3B0aW9ucyIsInByZXYiLCJhZ2VudEV4aXN0cyIsInNvbWUiLCJleGlzdGluZ0FnZW50IiwiaWQiLCJuZXdEYXRhIiwic29ydGVkRGF0YSIsIl9vYmplY3RTcHJlYWQiLCJuYXZpZ2F0ZUhvbWUiLCJyZW1vdmVBZ2VudCIsImFnZW50SWQiLCJ0b1N0cmluZyIsInVwZGF0ZUFnZW50IiwidXBkYXRlZEFnZW50IiwidXBkYXRlZERhdGEiLCJtYXAiLCJ1cGRhdGVBZ2VudEZhdm9yaXRlIiwic2hvdWxkU29ydCIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsIl9yZWYyIiwibWVzc2FnZSIsImFnZW50RmllbGRzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwibWVyZ2VkQWdlbnQiLCJmaW5hbERhdGEiLCJmaW5kIiwiX3JlZjMiLCJfZXhjbHVkZWQyIiwiX3JlZjQiLCJfZXhjbHVkZWQzIiwic29ydEFnZW50c0xpc3QiLCJzZWxlY3RGaXJzdEFnZW50IiwiZmlyc3RBZ2VudCIsImZpbmRJbmRleCIsImFnZW50RGF0YSIsImN1cnJlbnQiLCJoYW5kbGVHZXRBZ2VudHMiLCJfcmVmNSIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiYWdlbnRUb1NlbGVjdCIsIl9hZ2VudFRvU2VsZWN0JGlkIiwicmVxdWVzdEtleSIsImlzTXVsdGlBZ2VudHMiLCJhZ2VudFBhcnNlZCIsImhhc01vcmUiLCJuZXh0T2Zmc2V0IiwiX21haWFEYXRhJGRhdGEiLCJvcmRlclBhcmFtIiwibWFpYVJlc3BvbnNlIiwibWFpYURhdGEiLCJfbWFpYUVycm9yJHJlc3BvbnNlIiwiX21haWFFcnJvciRtZXNzYWdlIiwiX21haWFFcnJvciRtZXNzYWdlMiIsImlzNDAzRXJyb3IiLCJjdXN0b21BZ2VudHMiLCJjdXN0b21IYXNNb3JlIiwiY3VzdG9tTmV4dE9mZnNldCIsImN1c3RvbVJlc3BvbnNlIiwiY3VzdG9tRGF0YSIsIl9jdXN0b21FcnJvciRyZXNwb25zZSIsIl9jdXN0b21FcnJvciRtZXNzYWdlIiwiX2N1c3RvbUVycm9yJG1lc3NhZ2UyIiwiX2lzNDAzRXJyb3IiLCJxdWVyeVBhcmFtcyIsInF1ZXJ5U3RyaW5nIiwicGF0aCIsInJlc3BvbnNlIiwiX3Jlc3BvbnNlRXJyb3IkcmVzcG9uIiwiX3Jlc3BvbnNlRXJyb3IkbWVzc2FnIiwiX3Jlc3BvbnNlRXJyb3IkbWVzc2FnMiIsIl9pczQwM0Vycm9yMiIsIl9hZ2VudFBhcnNlZCIsIl9hZ2VudFBhcnNlZDIiLCJfbGFzdFNlbGVjdGVkQWdlbnRSZWYiLCJfbGFzdFNlbGVjdGVkQWdlbnRSZWYyIiwiYXZhaWxhYmxlQWdlbnRzIiwiX2F2YWlsYWJsZUFnZW50cyIsIl9sYXN0U2VsZWN0ZWRBZ2VudFJlZjMiLCJfYXZhaWxhYmxlQWdlbnRzMiIsIl9hdmFpbGFibGVBZ2VudHMzIiwiZmlyc3RBdmFpbGFibGVBZ2VudCIsIl90IiwiX3QyIiwiX3QzIiwiX3Q0Iiwid3JhcCIsIl9jb250ZXh0IiwibmV4dCIsImFicnVwdCIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJpbmNsdWRlcyIsInJvbGVfaWQiLCJsYW5ndWFnZSIsIm1ldGhvZCIsInNlbnQiLCJqc29uIiwic3RhdHVzIiwiaGFzX21vcmUiLCJuZXh0X29mZnNldCIsIlVSTFNlYXJjaFBhcmFtcyIsImFwcGVuZCIsImFnZW50VG9SZXF1ZXN0IiwiYWdlbnRJdGVtIiwiRXJyb3IiLCJzZXRUaW1lb3V0IiwiZmluaXNoIiwic3RvcCIsIl94IiwiYXBwbHkiLCJsb2FkTW9yZUFnZW50cyIsIl9jYWxsZWUyIiwiY2FuTG9hZE1vcmUiLCJfdDUiLCJfY29udGV4dDIiLCJleGlzdGluZ0Nsb25lQWdlbnRzIiwiZXhpc3RpbmdJZHMiLCJTZXQiLCJuZXdBZ2VudHMiLCJoYXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvbWFpYS9BZ2VudHMvZ2V0QWdlbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VTbmFja0Jhck1hbmFnZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VTbmFja0Jhck1hbmFnZXIvdXNlU25hY2tCYXJNYW5hZ2VyJ1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IHVzZVVzZXIsIENPUlVzZXJSb2xlIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IG1hcENPUkxhbmcgfSBmcm9tICcuLi8uLi8uLi9sYW5nL3V0aWxzJ1xuXG4vKipcbiAqIE9yZGVuYSBsb3MgYWdlbnRlczogYWdlbnRlcyBjbG9uZSBwcmltZXJvIChzaSBleGlzdGVuKSwgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gKi9cbmNvbnN0IHNvcnRBZ2VudHMgPSAoYWdlbnRzOiBBZ2VudFtdKTogQWdlbnRbXSA9PiB7XG4gIC8vIFNlcGFyYXIgYWdlbnRlcyBjbG9uZSBkZWwgcmVzdG9cbiAgY29uc3QgY2xvbmVBZ2VudHMgPSBhZ2VudHMuZmlsdGVyKGFnID0+IGFnLnR5cGUgPT09ICdjbG9uZScpXG4gIGNvbnN0IG90aGVyQWdlbnRzID0gYWdlbnRzLmZpbHRlcihhZyA9PiBhZy50eXBlICE9PSAnY2xvbmUnKVxuXG4gIC8vIFNlcGFyYXIgZmF2b3JpdG9zIHkgbm8gZmF2b3JpdG9zXG4gIGNvbnN0IGZhdm9yaXRlcyA9IG90aGVyQWdlbnRzLmZpbHRlcihhZyA9PiBhZy5pc19mYXZvcml0ZSkuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSlcbiAgY29uc3Qgbm9uRmF2b3JpdGVzID0gb3RoZXJBZ2VudHMuZmlsdGVyKGFnID0+ICFhZy5pc19mYXZvcml0ZSkuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSlcblxuICAvLyBDb21iaW5hcjogY2xvbmVzIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcywgbHVlZ28gbm8gZmF2b3JpdG9zXG4gIHJldHVybiBjbG9uZUFnZW50cy5sZW5ndGggPyBbLi4uY2xvbmVBZ2VudHMsIC4uLmZhdm9yaXRlcywgLi4ubm9uRmF2b3JpdGVzXSA6IFsuLi5mYXZvcml0ZXMsIC4uLm5vbkZhdm9yaXRlc11cbn1cblxudHlwZSBVc2VHZXRBZ2VudHNQcm9wcyA9IHtcbiAgc2VsZWN0QWdlbnQ6IChhZ2VudDogQWdlbnQpID0+IHZvaWRcbiAgc2VjdGlvbjogJ3Byb2plY3QnIHwgJ2hlYWRlcicgfCAnY2xpZW50J1xuICBhZ2VudDogQWdlbnQgfCBudWxsXG4gIGhhbmRsZUdvSG9tZTogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgdHlwZSBBZGRBZ2VudE9wdGlvbnMgPSB7XG4gIC8qKiBQb3IgZGVmZWN0byBgdHJ1ZWAgKGNvbXBvcnRhbWllbnRvIEFCTSkuIFBhc2FyIGBmYWxzZWAgYWwgaW5zZXJ0YXIgYWdlbnRlIGNyZWFkbyBwb3IgY2hhdCBzaW4gY2FtYmlhciBkZSB2aXN0YS4gKi9cbiAgbmF2aWdhdGVIb21lPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgdXNlR2V0QWdlbnRzID0gKHsgc2VsZWN0QWdlbnQsIHNlY3Rpb24sIGFnZW50LCBoYW5kbGVHb0hvbWUgfTogVXNlR2V0QWdlbnRzUHJvcHMpID0+IHtcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCBbYWdlbnRzLCBzZXRBZ2VudHNdID0gdXNlU3RhdGU8eyBkYXRhOiBBZ2VudFtdOyBoYXNfbW9yZT86IGJvb2xlYW47IG5leHRfb2Zmc2V0PzogbnVtYmVyIHwgbnVsbCB9Pih7IGRhdGE6IFtdIH0pXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbbG9hZGluZ01vcmUsIHNldExvYWRpbmdNb3JlXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHsgaGFuZGxlU25hY2tiYXJFcnJvciB9ID0gdXNlU25hY2tCYXJNYW5hZ2VyKClcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUcmFuc2xhdGlvbignY2hhdF9haV9zZWN0aW9uJylcbiAgY29uc3QgbGFzdFNlbGVjdGVkQWdlbnRSZWYgPSB1c2VSZWY8QWdlbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBpc1JlZnJlc2hpbmdSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGxhc3RSZXF1ZXN0UmVmID0gdXNlUmVmPHN0cmluZyB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgdXNlclJvbGVzRGlzYWJsZWQgPSBbQ09SVXNlclJvbGUuQ09MTEFCT1JBVE9SLCBDT1JVc2VyUm9sZS5GUkVFTEFOQ0VSLCBDT1JVc2VyUm9sZS5DTElFTlRdXG5cbiAgY29uc3QgYWRkQWdlbnQgPSB1c2VDYWxsYmFjayhcbiAgICAobmV3QWdlbnQ6IEFnZW50LCBvcHRpb25zPzogQWRkQWdlbnRPcHRpb25zKSA9PiB7XG4gICAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBhZ2VudGUgeWEgZXhpc3RlIHBhcmEgZXZpdGFyIGR1cGxpY2Fkb3NcbiAgICAgICAgY29uc3QgYWdlbnRFeGlzdHMgPSBwcmV2LmRhdGEuc29tZShleGlzdGluZ0FnZW50ID0+IGV4aXN0aW5nQWdlbnQuaWQgPT09IG5ld0FnZW50LmlkKVxuICAgICAgICBpZiAoYWdlbnRFeGlzdHMpIHtcbiAgICAgICAgICByZXR1cm4gcHJldlxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBbLi4ucHJldi5kYXRhLCBuZXdBZ2VudF1cbiAgICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHMobmV3RGF0YSlcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICBpZiAob3B0aW9ucz8ubmF2aWdhdGVIb21lICE9PSBmYWxzZSkge1xuICAgICAgICBoYW5kbGVHb0hvbWUoKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2hhbmRsZUdvSG9tZV1cbiAgKVxuXG4gIGNvbnN0IHJlbW92ZUFnZW50ID0gdXNlQ2FsbGJhY2soKGFnZW50SWQ6IG51bWJlciB8IHN0cmluZykgPT4ge1xuICAgIHNldEFnZW50cyhwcmV2ID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgZGF0YTogcHJldi5kYXRhLmZpbHRlcihhID0+IGEuaWQgIT09IGFnZW50SWQudG9TdHJpbmcoKSksXG4gICAgfSkpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHVwZGF0ZUFnZW50ID0gdXNlQ2FsbGJhY2soKHVwZGF0ZWRBZ2VudDogQWdlbnQpID0+IHtcbiAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IHByZXYuZGF0YS5tYXAoZXhpc3RpbmdBZ2VudCA9PlxuICAgICAgICBleGlzdGluZ0FnZW50LmlkID09PSB1cGRhdGVkQWdlbnQuaWQgPyB1cGRhdGVkQWdlbnQgOiBleGlzdGluZ0FnZW50XG4gICAgICApXG4gICAgICBjb25zdCBzb3J0ZWREYXRhID0gc29ydEFnZW50cyh1cGRhdGVkRGF0YSlcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICB9XG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgdXBkYXRlQWdlbnRGYXZvcml0ZSA9IHVzZUNhbGxiYWNrKFxuICAgICh1cGRhdGVkQWdlbnQ6IEFnZW50LCBzaG91bGRTb3J0OiBib29sZWFuID0gZmFsc2UpID0+IHtcbiAgICAgIHNldEFnZW50cyhwcmV2ID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSBwcmV2LmRhdGEubWFwKGV4aXN0aW5nQWdlbnQgPT4ge1xuICAgICAgICAgIGlmIChleGlzdGluZ0FnZW50LmlkID09PSB1cGRhdGVkQWdlbnQuaWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbWVzc2FnZSwgLi4uYWdlbnRGaWVsZHMgfSA9IHVwZGF0ZWRBZ2VudCBhcyBhbnlcbiAgICAgICAgICAgIGNvbnN0IG1lcmdlZEFnZW50ID0geyAuLi5leGlzdGluZ0FnZW50LCAuLi5hZ2VudEZpZWxkcyB9XG4gICAgICAgICAgICByZXR1cm4gbWVyZ2VkQWdlbnRcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGV4aXN0aW5nQWdlbnRcbiAgICAgICAgfSlcblxuICAgICAgICAvLyBTb2xvIG9yZGVuYXIgc2kgc2hvdWxkU29ydCBlcyB0cnVlXG4gICAgICAgIGNvbnN0IGZpbmFsRGF0YSA9IHNob3VsZFNvcnQgPyBzb3J0QWdlbnRzKHVwZGF0ZWREYXRhKSA6IHVwZGF0ZWREYXRhXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIGRhdGE6IGZpbmFsRGF0YSxcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgLy8gQWN0dWFsaXphciBlbCBhZ2VudGUgc2VsZWNjaW9uYWRvIHNpIGVzIGVsIHF1ZSBzZSBlc3TDoSBhY3R1YWxpemFuZG9cbiAgICAgIGlmIChhZ2VudD8uaWQgPT09IHVwZGF0ZWRBZ2VudC5pZCkge1xuICAgICAgICBjb25zdCBleGlzdGluZ0FnZW50ID0gYWdlbnRzLmRhdGEuZmluZChhID0+IGEuaWQgPT09IHVwZGF0ZWRBZ2VudC5pZClcbiAgICAgICAgaWYgKGV4aXN0aW5nQWdlbnQpIHtcbiAgICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIC4uLmFnZW50RmllbGRzIH0gPSB1cGRhdGVkQWdlbnQgYXMgYW55XG4gICAgICAgICAgY29uc3QgbWVyZ2VkQWdlbnQgPSB7IC4uLmV4aXN0aW5nQWdlbnQsIC4uLmFnZW50RmllbGRzIH1cbiAgICAgICAgICBzZWxlY3RBZ2VudChtZXJnZWRBZ2VudClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIC4uLmFnZW50RmllbGRzIH0gPSB1cGRhdGVkQWdlbnQgYXMgYW55XG4gICAgICAgICAgc2VsZWN0QWdlbnQoYWdlbnRGaWVsZHMgYXMgQWdlbnQpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFthZ2VudCwgc2VsZWN0QWdlbnQsIGFnZW50cy5kYXRhXVxuICApXG5cbiAgY29uc3Qgc29ydEFnZW50c0xpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHMocHJldi5kYXRhKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgZGF0YTogc29ydGVkRGF0YSxcbiAgICAgIH1cbiAgICB9KVxuICB9LCBbXSlcblxuICBjb25zdCBzZWxlY3RGaXJzdEFnZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKGFnZW50SWQ/OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChhZ2VudHMuZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZmlyc3RBZ2VudCA9IGFnZW50cy5kYXRhLmZpbmRJbmRleChhZ2VudERhdGEgPT4gYWdlbnREYXRhLmlkID09PSBhZ2VudElkKVxuICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gYWdlbnRzLmRhdGFbZmlyc3RBZ2VudCA9PT0gMCA/IDEgOiAwXVxuICAgICAgICBzZWxlY3RBZ2VudChhZ2VudHMuZGF0YVtmaXJzdEFnZW50ID09PSAwID8gMSA6IDBdKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2FnZW50cy5kYXRhLCBzZWxlY3RBZ2VudF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUdldEFnZW50cyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChhZ2VudFRvU2VsZWN0PzogQWdlbnQpID0+IHtcbiAgICAgIGlmIChpc1JlZnJlc2hpbmdSZWYuY3VycmVudCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVxdWVzdEtleSA9IGFnZW50VG9TZWxlY3Q/LmlkPy50b1N0cmluZygpIHx8ICdkZWZhdWx0J1xuICAgICAgaWYgKGxhc3RSZXF1ZXN0UmVmLmN1cnJlbnQgPT09IHJlcXVlc3RLZXkgJiYgIWxvYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlzUmVmcmVzaGluZ1JlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgbGFzdFJlcXVlc3RSZWYuY3VycmVudCA9IHJlcXVlc3RLZXlcbiAgICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICAgIHNldEVycm9yKG51bGwpXG5cbiAgICAgIGNvbnN0IGlzTXVsdGlBZ2VudHMgPSAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuXG4gICAgICB0cnkge1xuICAgICAgICBsZXQgYWdlbnRQYXJzZWQ6IEFnZW50W10gPSBbXVxuICAgICAgICBsZXQgaGFzTW9yZSA9IGZhbHNlXG4gICAgICAgIGxldCBuZXh0T2Zmc2V0OiBudW1iZXIgfCBudWxsID0gbnVsbFxuXG4gICAgICAgIC8vIFNpIHRpZW5lIGZlYXR1cmUgYWNjZXNzIG11bHRpIGFnZW50cywgaGFjZXIgZG9zIHF1ZXJpZXMgKE1haWEgKyBjdXN0b20pIGVuIGN1YWxxdWllciBzZWNjacOzblxuICAgICAgICBpZiAoaXNNdWx0aUFnZW50cykge1xuICAgICAgICAgIC8vIFF1ZXJ5IDE6IEFnZW50ZXMgY2xvbmUgKE1haWEpIC0gU29sbyBwYXJhIHJvbGVzIHBlcm1pdGlkb3MuIFB1ZWRlbiB2ZW5pciBtw7psdGlwbGVzIGFnZW50ZXMgdGlwbyBjbG9uZVxuICAgICAgICAgIGxldCBjbG9uZUFnZW50czogQWdlbnRbXSA9IFtdXG4gICAgICAgICAgaWYgKCF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCBvcmRlclBhcmFtID1cbiAgICAgICAgICAgICAgICBzZWN0aW9uID09PSAnY2xpZW50JyA/ICcmb3JkZXI9Y2xpZW50LHByb2plY3QnIDogc2VjdGlvbiA9PT0gJ3Byb2plY3QnID8gJyZvcmRlcj1wcm9qZWN0LGNsaWVudCcgOiAnJ1xuICAgICAgICAgICAgICBjb25zdCBtYWlhUmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICAgICAgICAgIHBhdGg6IGBhZ2VudHM/YWdlbnRfdHlwZT1jbG9uZSZsYW5nPSR7bWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKX0ke29yZGVyUGFyYW19YCxcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICBjb25zdCBtYWlhRGF0YSA9IGF3YWl0IG1haWFSZXNwb25zZS5qc29uKClcbiAgICAgICAgICAgICAgY2xvbmVBZ2VudHMgPSBtYWlhRGF0YS5kYXRhPy5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSA9PT0gJ2Nsb25lJykgfHwgW11cbiAgICAgICAgICAgIH0gY2F0Y2ggKG1haWFFcnJvcjogYW55KSB7XG4gICAgICAgICAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBlcnJvciBlcyA0MDNcbiAgICAgICAgICAgICAgLy8gZmV0Y2hDT1IgcHVlZGUgbGFuemFyIGRpZmVyZW50ZXMgdGlwb3MgZGUgZXJyb3JlczpcbiAgICAgICAgICAgICAgLy8gMS4gRXJyb3IgY29uIGVycm9yRGF0YS5kZXRhaWwgc2kgaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgICAgLy8gMi4gRXJyb3IgZ2Vuw6lyaWNvICdGYWlsZWQgZmV0Y2hpbmcgZGF0YScgc2kgZXMgNDAzIHBlcm8gbm8gaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgICAgLy8gMy4gTmVjZXNpdGFtb3MgdmVyaWZpY2FyIGVsIHN0YXR1cyBjb2RlIHNpIGVzdMOhIGRpc3BvbmlibGVcbiAgICAgICAgICAgICAgY29uc3QgaXM0MDNFcnJvciA9XG4gICAgICAgICAgICAgICAgbWFpYUVycm9yPy5yZXNwb25zZT8uc3RhdHVzID09PSA0MDMgfHxcbiAgICAgICAgICAgICAgICBtYWlhRXJyb3I/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgICAgbWFpYUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcyhcIllvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gdG8gdmlldyBhZ2VudHNcIikgfHxcbiAgICAgICAgICAgICAgICBtYWlhRXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKCdGYWlsZWQgZmV0Y2hpbmcgZGF0YScpIC8vIGZldGNoQ09SIGxhbnphIGVzdG8gcGFyYSA0MDMgc2luICdBY2Nlc3MgZGVuaWVkJ1xuXG4gICAgICAgICAgICAgIGlmIChpczQwM0Vycm9yKSB7XG4gICAgICAgICAgICAgICAgLy8gU2kgZXMgNDAzLCBjb250aW51YXIgc2luIGxvcyBjbG9uZUFnZW50c1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFNpIGVzIG90cm8gZXJyb3IsIGxhbnphcmxvXG4gICAgICAgICAgICAgICAgdGhyb3cgbWFpYUVycm9yXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBRdWVyeSAyOiBBZ2VudGVzIGN1c3RvbSBjb24gcGFnaW5hY2nDs25cbiAgICAgICAgICBsZXQgY3VzdG9tQWdlbnRzOiBBZ2VudFtdID0gW11cbiAgICAgICAgICBsZXQgY3VzdG9tSGFzTW9yZSA9IGZhbHNlXG4gICAgICAgICAgbGV0IGN1c3RvbU5leHRPZmZzZXQ6IG51bWJlciB8IG51bGwgPSBudWxsXG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY3VzdG9tUmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICAgICAgICBwYXRoOiAnYWdlbnRzP2FnZW50X3R5cGU9Y3VzdG9tJmxpbWl0PTcmb2Zmc2V0PTAnLFxuICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbURhdGEgPSBhd2FpdCBjdXN0b21SZXNwb25zZS5qc29uKClcbiAgICAgICAgICAgIGN1c3RvbUFnZW50cyA9IGN1c3RvbURhdGEuZGF0YSB8fCBbXVxuICAgICAgICAgICAgY3VzdG9tSGFzTW9yZSA9IGN1c3RvbURhdGEuaGFzX21vcmUgfHwgZmFsc2VcbiAgICAgICAgICAgIGN1c3RvbU5leHRPZmZzZXQgPSBjdXN0b21EYXRhLm5leHRfb2Zmc2V0IHx8IG51bGxcbiAgICAgICAgICB9IGNhdGNoIChjdXN0b21FcnJvcjogYW55KSB7XG4gICAgICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgZXJyb3IgZXMgNDAzXG4gICAgICAgICAgICAvLyBmZXRjaENPUiBwdWVkZSBsYW56YXIgZGlmZXJlbnRlcyB0aXBvcyBkZSBlcnJvcmVzOlxuICAgICAgICAgICAgLy8gMS4gRXJyb3IgY29uIGVycm9yRGF0YS5kZXRhaWwgc2kgaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgIC8vIDIuIEVycm9yIGdlbsOpcmljbyAnRmFpbGVkIGZldGNoaW5nIGRhdGEnIHNpIGVzIDQwMyBwZXJvIG5vIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAvLyAzLiBOZWNlc2l0YW1vcyB2ZXJpZmljYXIgZWwgc3RhdHVzIGNvZGUgc2kgZXN0w6EgZGlzcG9uaWJsZVxuICAgICAgICAgICAgY29uc3QgaXM0MDNFcnJvciA9XG4gICAgICAgICAgICAgIGN1c3RvbUVycm9yPy5yZXNwb25zZT8uc3RhdHVzID09PSA0MDMgfHxcbiAgICAgICAgICAgICAgY3VzdG9tRXJyb3I/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgIGN1c3RvbUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcyhcIllvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gdG8gdmlldyBhZ2VudHNcIikgfHxcbiAgICAgICAgICAgICAgY3VzdG9tRXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKCdGYWlsZWQgZmV0Y2hpbmcgZGF0YScpIC8vIGZldGNoQ09SIGxhbnphIGVzdG8gcGFyYSA0MDMgc2luICdBY2Nlc3MgZGVuaWVkJ1xuXG4gICAgICAgICAgICBpZiAoaXM0MDNFcnJvcikge1xuICAgICAgICAgICAgICAvLyBTaSBlcyA0MDMsIGNvbnRpbnVhciBzaW4gbG9zIGN1c3RvbUFnZW50cyAoY3VzdG9tQWdlbnRzIHF1ZWRhIGNvbW8gYXJyYXkgdmFjw61vKVxuICAgICAgICAgICAgICAvLyBFc3RvIHB1ZWRlIG9jdXJyaXIgZW4gZG9zIGVzY2VuYXJpb3M6XG4gICAgICAgICAgICAgIC8vIDEuIFVzdWFyaW8gTk8gZXMgZGUgdXNlclJvbGVzRGlzYWJsZWQ6IHRlbmRyw6Egc29sbyBsb3MgY2xvbmVBZ2VudHMgKHNpIGxhIHF1ZXJ5IGNsb25lIGZ1ZSBleGl0b3NhKVxuICAgICAgICAgICAgICAvLyAyLiBVc3VhcmlvIFPDjSBlcyBkZSB1c2VyUm9sZXNEaXNhYmxlZDogZWwgbGlzdGFkbyBxdWVkYXLDoSB2YWPDrW8gKHBvcnF1ZSBubyBoYXkgY2xvbmVBZ2VudHMpXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBTaSBlcyBvdHJvIGVycm9yLCBsYW56YXJsb1xuICAgICAgICAgICAgICB0aHJvdyBjdXN0b21FcnJvclxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIENvbWJpbmFyOiBhZ2VudGVzIGNsb25lIHByaW1lcm8sIGx1ZWdvIGxvcyBjdXN0b20gKHNpIGV4aXN0ZW4pXG4gICAgICAgICAgLy8gU2kgZWwgdXN1YXJpbyB0aWVuZSB1biByb2wgZGVzaGFiaWxpdGFkbywgbm8gaW5jbHVpciBjbG9uZUFnZW50c1xuICAgICAgICAgIGlmICh1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpKSB7XG4gICAgICAgICAgICAvLyBVc3VhcmlvIGRlIHJvbGVzIGRpc2FibGVkOiBzb2xvIGN1c3RvbUFnZW50c1xuICAgICAgICAgICAgLy8gU2kgY3VzdG9tQWdlbnRzIGVzdMOhIHZhY8OtbyAocG9yIDQwMyksIGFnZW50UGFyc2VkIHNlcsOhIFtdXG4gICAgICAgICAgICBhZ2VudFBhcnNlZCA9IGN1c3RvbUFnZW50c1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBVc3VhcmlvIG5vcm1hbDogY2xvbmVBZ2VudHMgKyBjdXN0b21BZ2VudHNcbiAgICAgICAgICAgIC8vIFNpIGN1c3RvbUFnZW50cyBlc3TDoSB2YWPDrW8gKHBvciA0MDMpIHBlcm8gaGF5IGNsb25lQWdlbnRzLCBhZ2VudFBhcnNlZCB0ZW5kcsOhIGxvcyBjbG9uZXNcbiAgICAgICAgICAgIC8vIFNpIG5vIGhheSBjbG9uZUFnZW50cyBuaSBjdXN0b21BZ2VudHMsIGFnZW50UGFyc2VkIHNlcsOhIFtdXG4gICAgICAgICAgICBhZ2VudFBhcnNlZCA9IGNsb25lQWdlbnRzLmxlbmd0aCA/IFsuLi5jbG9uZUFnZW50cywgLi4uY3VzdG9tQWdlbnRzXSA6IGN1c3RvbUFnZW50c1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBPcmRlbmFyOiBNYWlhIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICAgICAgICAgIGFnZW50UGFyc2VkID0gc29ydEFnZW50cyhhZ2VudFBhcnNlZClcbiAgICAgICAgICBoYXNNb3JlID0gY3VzdG9tSGFzTW9yZVxuICAgICAgICAgIG5leHRPZmZzZXQgPSBjdXN0b21OZXh0T2Zmc2V0XG5cbiAgICAgICAgICBzZXRBZ2VudHMoe1xuICAgICAgICAgICAgZGF0YTogYWdlbnRQYXJzZWQsXG4gICAgICAgICAgICBoYXNfbW9yZTogaGFzTW9yZSxcbiAgICAgICAgICAgIG5leHRfb2Zmc2V0OiBuZXh0T2Zmc2V0LFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICAvLyBTaSBubyBoYXkgYWdlbnRlcyBkZXNwdcOpcyBkZSBwcm9jZXNhciBsYXMgcXVlcmllcywgbGltcGlhciBlbCBlcnJvclxuICAgICAgICAgIGlmIChhZ2VudFBhcnNlZC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHNldEVycm9yKG51bGwpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEzDs2dpY2EgcGFyYSBwcm9qZWN0IG8gaGVhZGVyIHNpbiBtdWx0aUFnZW50c1xuICAgICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgICAgICAgaWYgKHNlY3Rpb24gPT09ICdwcm9qZWN0JyB8fCBzZWN0aW9uID09PSAnY2xpZW50Jykge1xuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdhZ2VudF90eXBlJywgJ2Nsb25lJylcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGFuZycsIG1hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSkpXG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ29yZGVyJywgc2VjdGlvbiA9PT0gJ2NsaWVudCcgPyAnY2xpZW50LHByb2plY3QnIDogJ3Byb2plY3QsY2xpZW50JylcbiAgICAgICAgICB9IGVsc2UgaWYgKHNlY3Rpb24gPT09ICdoZWFkZXInICYmICFpc011bHRpQWdlbnRzKSB7XG4gICAgICAgICAgICAvLyBIZWFkZXIgc2luIG11bHRpQWdlbnRzOiBzb2xvIGxpc3RhciBhZ2VudGVzIGNsb25lIChNYWlhKVxuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdhZ2VudF90eXBlJywgJ2Nsb25lJylcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGFuZycsIG1hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSkpXG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xpbWl0JywgJzcnKVxuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdvZmZzZXQnLCAnMCcpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcXVlcnlTdHJpbmcgPSBxdWVyeVBhcmFtcy50b1N0cmluZygpXG4gICAgICAgICAgY29uc3QgcGF0aCA9IGBhZ2VudHMke3F1ZXJ5U3RyaW5nID8gYD8ke3F1ZXJ5U3RyaW5nfWAgOiAnJ31gXG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgICAgICAgICAgLy8gZGF0YS5kYXRhIHlhIGNvbnRpZW5lIHRvZG9zIGxvcyBhZ2VudGVzIGNsb25lIGRlIGxhIHF1ZXJ5IGFnZW50X3R5cGU9Y2xvbmVcbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gZGF0YS5kYXRhIHx8IFtdXG4gICAgICAgICAgICAvLyBPcmRlbmFyOiBNYWlhIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICAgICAgICAgICAgYWdlbnRQYXJzZWQgPSBzb3J0QWdlbnRzKGFnZW50UGFyc2VkKVxuICAgICAgICAgICAgaGFzTW9yZSA9IGRhdGEuaGFzX21vcmVcbiAgICAgICAgICAgIG5leHRPZmZzZXQgPSBkYXRhLm5leHRfb2Zmc2V0XG5cbiAgICAgICAgICAgIHNldEFnZW50cyh7XG4gICAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICAgIGRhdGE6IGFnZW50UGFyc2VkLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGNhdGNoIChyZXNwb25zZUVycm9yOiBhbnkpIHtcbiAgICAgICAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBlcnJvciBlcyA0MDNcbiAgICAgICAgICAgIC8vIGZldGNoQ09SIHB1ZWRlIGxhbnphciBkaWZlcmVudGVzIHRpcG9zIGRlIGVycm9yZXM6XG4gICAgICAgICAgICAvLyAxLiBFcnJvciBjb24gZXJyb3JEYXRhLmRldGFpbCBzaSBpbmNsdXllICdBY2Nlc3MgZGVuaWVkJ1xuICAgICAgICAgICAgLy8gMi4gRXJyb3IgZ2Vuw6lyaWNvICdGYWlsZWQgZmV0Y2hpbmcgZGF0YScgc2kgZXMgNDAzIHBlcm8gbm8gaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgIC8vIDMuIE5lY2VzaXRhbW9zIHZlcmlmaWNhciBlbCBzdGF0dXMgY29kZSBzaSBlc3TDoSBkaXNwb25pYmxlXG4gICAgICAgICAgICBjb25zdCBpczQwM0Vycm9yID1cbiAgICAgICAgICAgICAgcmVzcG9uc2VFcnJvcj8ucmVzcG9uc2U/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgIHJlc3BvbnNlRXJyb3I/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgIHJlc3BvbnNlRXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKFwiWW91IGRvbid0IGhhdmUgcGVybWlzc2lvbiB0byB2aWV3IGFnZW50c1wiKSB8fFxuICAgICAgICAgICAgICByZXNwb25zZUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcygnRmFpbGVkIGZldGNoaW5nIGRhdGEnKSAvLyBmZXRjaENPUiBsYW56YSBlc3RvIHBhcmEgNDAzIHNpbiAnQWNjZXNzIGRlbmllZCdcblxuICAgICAgICAgICAgaWYgKGlzNDAzRXJyb3IpIHtcbiAgICAgICAgICAgICAgLy8gU2kgZXMgNDAzLCBlc3RhYmxlY2VyIGFnZW50ZXMgdmFjw61vcyB5IGNvbnRpbnVhclxuICAgICAgICAgICAgICBzZXRBZ2VudHMoe1xuICAgICAgICAgICAgICAgIGRhdGE6IFtdLFxuICAgICAgICAgICAgICAgIGhhc19tb3JlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBuZXh0X29mZnNldDogbnVsbCxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgc2V0RXJyb3IobnVsbClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIG90cm8gZXJyb3IsIGxhbnphcmxvXG4gICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlRXJyb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMw7NnaWNhIGRlIHNlbGVjdCBhZ2VudCAtIFNvbG8gc2VsZWNjaW9uYXIgc2kgaGF5IGFnZW50ZXMgZGlzcG9uaWJsZXNcbiAgICAgICAgaWYgKGFnZW50UGFyc2VkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZiAoYWdlbnRUb1NlbGVjdCAmJiBhZ2VudFBhcnNlZC5maW5kKChhZ2VudFRvUmVxdWVzdDogQWdlbnQpID0+IGFnZW50VG9SZXF1ZXN0LmlkID09PSBhZ2VudFRvU2VsZWN0LmlkKSkge1xuICAgICAgICAgICAgaWYgKGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQ/LmlkICE9PSBhZ2VudFRvU2VsZWN0LmlkKSB7XG4gICAgICAgICAgICAgIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQgPSBhZ2VudFRvU2VsZWN0XG4gICAgICAgICAgICAgIHNlbGVjdEFnZW50KGFnZW50VG9TZWxlY3QpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChhZ2VudFBhcnNlZD8uWzBdICYmICghYWdlbnQgfHwgIWFnZW50UGFyc2VkLmZpbmQoKGE6IEFnZW50KSA9PiBhLmlkID09PSBhZ2VudC5pZCkpKSB7XG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVBZ2VudHMgPVxuICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpXG4gICAgICAgICAgICAgICAgPyBhZ2VudFBhcnNlZFxuICAgICAgICAgICAgICAgIDogYWdlbnRQYXJzZWQuZmlsdGVyKChhZ2VudEl0ZW06IEFnZW50KSA9PiBhZ2VudEl0ZW0udHlwZSAhPT0gJ2Nsb25lJylcblxuICAgICAgICAgICAgY29uc3QgW2ZpcnN0QWdlbnRdID0gYXZhaWxhYmxlQWdlbnRzXG4gICAgICAgICAgICBpZiAoZmlyc3RBZ2VudCAmJiBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50Py5pZCAhPT0gZmlyc3RBZ2VudC5pZCkge1xuICAgICAgICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gZmlyc3RBZ2VudFxuICAgICAgICAgICAgICBzZWxlY3RBZ2VudChmaXJzdEFnZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoYWdlbnRUb1NlbGVjdCAmJiBhZ2VudFBhcnNlZD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVBZ2VudHMgPVxuICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpXG4gICAgICAgICAgICAgICAgPyBhZ2VudFBhcnNlZFxuICAgICAgICAgICAgICAgIDogYWdlbnRQYXJzZWQuZmlsdGVyKChhZ2VudEl0ZW06IEFnZW50KSA9PiBhZ2VudEl0ZW0udHlwZSAhPT0gJ2Nsb25lJylcblxuICAgICAgICAgICAgY29uc3QgW2ZpcnN0QXZhaWxhYmxlQWdlbnRdID0gYXZhaWxhYmxlQWdlbnRzXG4gICAgICAgICAgICBpZiAoZmlyc3RBdmFpbGFibGVBZ2VudCAmJiBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50Py5pZCAhPT0gZmlyc3RBdmFpbGFibGVBZ2VudC5pZCkge1xuICAgICAgICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gZmlyc3RBdmFpbGFibGVBZ2VudFxuICAgICAgICAgICAgICBzZWxlY3RBZ2VudChmaXJzdEF2YWlsYWJsZUFnZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgc2V0RXJyb3IoZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdBbiB1bmtub3duIGVycm9yIG9jY3VycmVkJylcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlzUmVmcmVzaGluZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFpc1JlZnJlc2hpbmdSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgbGFzdFJlcXVlc3RSZWYuY3VycmVudCA9IG51bGxcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDEwMClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZWxlY3RBZ2VudCwgc2VjdGlvbiwgYWdlbnQsIGxvYWRpbmddXG4gIClcblxuICBjb25zdCBsb2FkTW9yZUFnZW50cyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBpc011bHRpQWdlbnRzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgICAvLyBDYXJnYXIgbcOhczogZW4gaGVhZGVyIHNpZW1wcmU7IGVuIHByb2plY3Qgc29sbyBzaSBpc011bHRpQWdlbnRzIChwb3JxdWUgc29sbyBlbnRvbmNlcyBoYXkgcGFnaW5hY2nDs24gZGUgY3VzdG9tKVxuICAgIGNvbnN0IGNhbkxvYWRNb3JlID0gc2VjdGlvbiA9PT0gJ2hlYWRlcicgfHwgaXNNdWx0aUFnZW50c1xuICAgIGlmICghY2FuTG9hZE1vcmUgfHwgIWFnZW50cy5oYXNfbW9yZSB8fCAhYWdlbnRzLm5leHRfb2Zmc2V0IHx8IGxvYWRpbmdNb3JlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBzZXRMb2FkaW5nTW9yZSh0cnVlKVxuICAgIHNldEVycm9yKG51bGwpXG5cbiAgICB0cnkge1xuICAgICAgbGV0IHBhdGg6IHN0cmluZ1xuXG4gICAgICAvLyBTaSBlcyBtdWx0aUFnZW50cywgc29sbyBjYXJnYXIgYWdlbnRzIGN1c3RvbSAoTWFpYSB5YSBlc3TDoSBjYXJnYWRvKVxuICAgICAgaWYgKGlzTXVsdGlBZ2VudHMpIHtcbiAgICAgICAgLy8gTWFudGVuZXIgY2FudGlkYWQgaW1wYXIgZGUgY2FyZHM6IHByaW1lcmEgY2FyZ2EgNywgc2lndWllbnRlcyArNiAoNywgMTMsIDE5LCAuLi4pXG4gICAgICAgIHBhdGggPSBgYWdlbnRzP2FnZW50X3R5cGU9Y3VzdG9tJmxpbWl0PTYmb2Zmc2V0PSR7YWdlbnRzLm5leHRfb2Zmc2V0fWBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFNpIG5vIGVzIG11bHRpQWdlbnRzLCBjYXJnYXIgbcOhcyBhZ2VudGVzIGNsb25lIChNYWlhKVxuICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2FnZW50X3R5cGUnLCAnY2xvbmUnKVxuICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xhbmcnLCBtYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpKVxuICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xpbWl0JywgJzcnKVxuICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ29mZnNldCcsIGFnZW50cy5uZXh0X29mZnNldC50b1N0cmluZygpKVxuICAgICAgICBwYXRoID0gYGFnZW50cz8ke3F1ZXJ5UGFyYW1zLnRvU3RyaW5nKCl9YFxuICAgICAgfVxuXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgIHBhdGgsXG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG5cbiAgICAgIC8vIEFjdW11bGFyIGFnZW50ZXMsIGV4Y2x1eWVuZG8gZHVwbGljYWRvc1xuICAgICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgICBpZiAoaXNNdWx0aUFnZW50cykge1xuICAgICAgICAgIC8vIEzDs2dpY2EgcGFyYSBtdWx0aUFnZW50czogc2VwYXJhciBjbG9uZSB5IGN1c3RvbVxuICAgICAgICAgIC8vIE1hbnRlbmVyIHRvZG9zIGxvcyBhZ2VudGVzIGNsb25lIGV4aXN0ZW50ZXMgYWwgaW5pY2lvXG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdDbG9uZUFnZW50cyA9IHByZXYuZGF0YS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSA9PT0gJ2Nsb25lJylcblxuICAgICAgICAgIC8vIE9idGVuZXIgSURzIGV4aXN0ZW50ZXMgKGV4Y2x1eWVuZG8gY2xvbmVzKVxuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2LmRhdGEuZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgIT09ICdjbG9uZScpLm1hcCgoYWc6IEFnZW50KSA9PiBhZy5pZCkpXG5cbiAgICAgICAgICAvLyBGaWx0cmFyIG51ZXZvcyBhZ2VudHMgcXVlIG5vIGVzdMOpbiB5YSBlbiBsYSBsaXN0YSAoeSBxdWUgbm8gc2VhbiBjbG9uZSlcbiAgICAgICAgICBjb25zdCBuZXdBZ2VudHMgPSBkYXRhLmRhdGEuZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgIT09ICdjbG9uZScgJiYgIWV4aXN0aW5nSWRzLmhhcyhhZy5pZCkpXG5cbiAgICAgICAgICAvLyBDb25zdHJ1aXIgZWwgbnVldm8gYXJyYXk6IGNsb25lcyBwcmltZXJvLCBsdWVnbyBsb3MgYWdlbnRzIGV4aXN0ZW50ZXMgcXVlIG5vIHNlYW4gY2xvbmUsIGx1ZWdvIGxvcyBudWV2b3NcbiAgICAgICAgICBjb25zdCBuZXdEYXRhID0gZXhpc3RpbmdDbG9uZUFnZW50cy5sZW5ndGhcbiAgICAgICAgICAgID8gWy4uLmV4aXN0aW5nQ2xvbmVBZ2VudHMsIC4uLnByZXYuZGF0YS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSAhPT0gJ2Nsb25lJyksIC4uLm5ld0FnZW50c11cbiAgICAgICAgICAgIDogWy4uLnByZXYuZGF0YS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSAhPT0gJ2Nsb25lJyksIC4uLm5ld0FnZW50c11cblxuICAgICAgICAgIC8vIE9yZGVuYXI6IE1haWEgcHJpbWVybywgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gICAgICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHMobmV3RGF0YSlcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgICAgICAgaGFzX21vcmU6IGRhdGEuaGFzX21vcmUsXG4gICAgICAgICAgICBuZXh0X29mZnNldDogZGF0YS5uZXh0X29mZnNldCxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gTMOzZ2ljYSBwYXJhICFpc011bHRpQWdlbnRzOiB0b2RvcyBsb3MgYWdlbnRlcyBzb24gY2xvbmUsIHNpbXBsZW1lbnRlIGFncmVnYXIgZXZpdGFuZG8gZHVwbGljYWRvc1xuICAgICAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQocHJldi5kYXRhLm1hcCgoYWc6IEFnZW50KSA9PiBhZy5pZCkpXG4gICAgICAgIGNvbnN0IG5ld0FnZW50cyA9IChkYXRhLmRhdGEgfHwgW10pLmZpbHRlcigoYWc6IEFnZW50KSA9PiAhZXhpc3RpbmdJZHMuaGFzKGFnLmlkKSlcbiAgICAgICAgY29uc3QgbmV3RGF0YSA9IFsuLi5wcmV2LmRhdGEsIC4uLm5ld0FnZW50c11cblxuICAgICAgICAvLyBPcmRlbmFyOiBNYWlhIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICAgICAgICBjb25zdCBzb3J0ZWREYXRhID0gc29ydEFnZW50cyhuZXdEYXRhKVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGF0YTogc29ydGVkRGF0YSxcbiAgICAgICAgICBoYXNfbW9yZTogZGF0YS5oYXNfbW9yZSxcbiAgICAgICAgICBuZXh0X29mZnNldDogZGF0YS5uZXh0X29mZnNldCxcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgc2V0TG9hZGluZ01vcmUoZmFsc2UpXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBoYW5kbGVTbmFja2JhckVycm9yKHQoJ3NuYWNrYmFyLmxvYWRNb3JlQWdlbnRzLmVycm9yJykpXG4gICAgICBzZXRMb2FkaW5nTW9yZShmYWxzZSlcbiAgICB9XG4gIH0sIFtzZWN0aW9uLCBhZ2VudHMuaGFzX21vcmUsIGFnZW50cy5uZXh0X29mZnNldCwgbG9hZGluZ01vcmUsIGkxOG4ubGFuZ3VhZ2VdKVxuXG4gIHJldHVybiB7XG4gICAgYWdlbnRzLFxuICAgIGxvYWRpbmcsXG4gICAgbG9hZGluZ01vcmUsXG4gICAgZXJyb3IsXG4gICAgaGFuZGxlR2V0QWdlbnRzLFxuICAgIGxvYWRNb3JlQWdlbnRzLFxuICAgIGFkZEFnZW50LFxuICAgIHJlbW92ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50RmF2b3JpdGUsXG4gICAgc2VsZWN0Rmlyc3RBZ2VudCxcbiAgICBzb3J0QWdlbnRzTGlzdCxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQ3JELFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLGtCQUFrQixRQUFRLHNEQUFzRDtBQUN6RixTQUFTQyxTQUFTLFFBQVEsV0FBVztBQUVyQyxTQUFTQyxPQUFPLEVBQUVDLFdBQVcsUUFBUSwyQkFBMkI7QUFDaEUsU0FBU0MsVUFBVSxRQUFRLHFCQUFxQjs7QUFFaEQ7QUFDQTtBQUNBO0FBQ0EsSUFBTUMsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUlDLE1BQWUsRUFBYztFQUMvQztFQUNBLElBQU1DLFdBQVcsR0FBR0QsTUFBTSxDQUFDRSxNQUFNLENBQUMsVUFBQUMsRUFBRTtJQUFBLE9BQUlBLEVBQUUsQ0FBQ0MsSUFBSSxLQUFLLE9BQU87RUFBQSxFQUFDO0VBQzVELElBQU1DLFdBQVcsR0FBR0wsTUFBTSxDQUFDRSxNQUFNLENBQUMsVUFBQUMsRUFBRTtJQUFBLE9BQUlBLEVBQUUsQ0FBQ0MsSUFBSSxLQUFLLE9BQU87RUFBQSxFQUFDOztFQUU1RDtFQUNBLElBQU1FLFNBQVMsR0FBR0QsV0FBVyxDQUFDSCxNQUFN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
564
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlVHJhbnNsYXRpb24iLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJmZXRjaE1haWEiLCJ1c2VVc2VyIiwiQ09SVXNlclJvbGUiLCJtYXBDT1JMYW5nIiwic29ydEFnZW50cyIsImFnZW50cyIsImNsb25lQWdlbnRzIiwiZmlsdGVyIiwiYWciLCJ0eXBlIiwib3RoZXJBZ2VudHMiLCJmYXZvcml0ZXMiLCJpc19mYXZvcml0ZSIsInNvcnQiLCJhIiwiYiIsIm5hbWUiLCJsb2NhbGVDb21wYXJlIiwibm9uRmF2b3JpdGVzIiwibGVuZ3RoIiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwidXNlR2V0QWdlbnRzIiwiX3JlZiIsInNlbGVjdEFnZW50Iiwic2VjdGlvbiIsImFnZW50IiwiaGFuZGxlR29Ib21lIiwidXNlciIsIl91c2VTdGF0ZSIsImRhdGEiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZXRBZ2VudHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJsb2FkaW5nTW9yZSIsInNldExvYWRpbmdNb3JlIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJlcnJvciIsInNldEVycm9yIiwiX3VzZVNuYWNrQmFyTWFuYWdlciIsImhhbmRsZVNuYWNrYmFyRXJyb3IiLCJfdXNlVHJhbnNsYXRpb24iLCJ0IiwiaTE4biIsImxhc3RTZWxlY3RlZEFnZW50UmVmIiwiaXNSZWZyZXNoaW5nUmVmIiwibGFzdFJlcXVlc3RSZWYiLCJ1c2VyUm9sZXNEaXNhYmxlZCIsIkNPTExBQk9SQVRPUiIsIkZSRUVMQU5DRVIiLCJDTElFTlQiLCJhZGRBZ2VudCIsIm5ld0FnZW50Iiwib3B0aW9ucyIsInByZXYiLCJhZ2VudEV4aXN0cyIsInNvbWUiLCJleGlzdGluZ0FnZW50IiwiaWQiLCJuZXdEYXRhIiwic29ydGVkRGF0YSIsIl9vYmplY3RTcHJlYWQiLCJuYXZpZ2F0ZUhvbWUiLCJyZW1vdmVBZ2VudCIsImFnZW50SWQiLCJ0b1N0cmluZyIsInVwZGF0ZUFnZW50IiwidXBkYXRlZEFnZW50IiwidXBkYXRlZERhdGEiLCJtYXAiLCJ1cGRhdGVBZ2VudEZhdm9yaXRlIiwic2hvdWxkU29ydCIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsIl9yZWYyIiwibWVzc2FnZSIsImFnZW50RmllbGRzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwibWVyZ2VkQWdlbnQiLCJmaW5hbERhdGEiLCJmaW5kIiwiX3JlZjMiLCJfZXhjbHVkZWQyIiwiX3JlZjQiLCJfZXhjbHVkZWQzIiwic29ydEFnZW50c0xpc3QiLCJzZWxlY3RGaXJzdEFnZW50IiwiZmlyc3RBZ2VudCIsImZpbmRJbmRleCIsImFnZW50RGF0YSIsImN1cnJlbnQiLCJoYW5kbGVHZXRBZ2VudHMiLCJfcmVmNSIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiYWdlbnRUb1NlbGVjdCIsIl9hZ2VudFRvU2VsZWN0JGlkIiwicmVxdWVzdEtleSIsImlzTXVsdGlBZ2VudHMiLCJhZ2VudFBhcnNlZCIsImhhc01vcmUiLCJuZXh0T2Zmc2V0IiwiX21haWFEYXRhJGRhdGEiLCJvcmRlclBhcmFtIiwibWFpYVJlc3BvbnNlIiwibWFpYURhdGEiLCJfbWFpYUVycm9yJHJlc3BvbnNlIiwiX21haWFFcnJvciRtZXNzYWdlIiwiX21haWFFcnJvciRtZXNzYWdlMiIsImlzNDAzRXJyb3IiLCJjdXN0b21BZ2VudHMiLCJjdXN0b21IYXNNb3JlIiwiY3VzdG9tTmV4dE9mZnNldCIsImN1c3RvbVJlc3BvbnNlIiwiY3VzdG9tRGF0YSIsIl9jdXN0b21FcnJvciRyZXNwb25zZSIsIl9jdXN0b21FcnJvciRtZXNzYWdlIiwiX2N1c3RvbUVycm9yJG1lc3NhZ2UyIiwiX2lzNDAzRXJyb3IiLCJxdWVyeVBhcmFtcyIsInF1ZXJ5U3RyaW5nIiwicGF0aCIsInJlc3BvbnNlIiwiX3Jlc3BvbnNlRXJyb3IkcmVzcG9uIiwiX3Jlc3BvbnNlRXJyb3IkbWVzc2FnIiwiX3Jlc3BvbnNlRXJyb3IkbWVzc2FnMiIsIl9pczQwM0Vycm9yMiIsIl9hZ2VudFBhcnNlZCIsIl9hZ2VudFBhcnNlZDIiLCJfbGFzdFNlbGVjdGVkQWdlbnRSZWYiLCJfbGFzdFNlbGVjdGVkQWdlbnRSZWYyIiwiYXZhaWxhYmxlQWdlbnRzIiwiX2F2YWlsYWJsZUFnZW50cyIsIl9sYXN0U2VsZWN0ZWRBZ2VudFJlZjMiLCJfYXZhaWxhYmxlQWdlbnRzMiIsIl9hdmFpbGFibGVBZ2VudHMzIiwiZmlyc3RBdmFpbGFibGVBZ2VudCIsIl90IiwiX3QyIiwiX3QzIiwiX3Q0Iiwid3JhcCIsIl9jb250ZXh0IiwibmV4dCIsImFicnVwdCIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJpbmNsdWRlcyIsInJvbGVfaWQiLCJsYW5ndWFnZSIsIm1ldGhvZCIsInNlbnQiLCJqc29uIiwic3RhdHVzIiwiaGFzX21vcmUiLCJuZXh0X29mZnNldCIsIlVSTFNlYXJjaFBhcmFtcyIsImFwcGVuZCIsImFnZW50VG9SZXF1ZXN0IiwiYWdlbnRJdGVtIiwiRXJyb3IiLCJzZXRUaW1lb3V0IiwiZmluaXNoIiwic3RvcCIsIl94IiwiYXBwbHkiLCJsb2FkTW9yZUFnZW50cyIsIl9jYWxsZWUyIiwiY2FuTG9hZE1vcmUiLCJfdDUiLCJfY29udGV4dDIiLCJleGlzdGluZ0Nsb25lQWdlbnRzIiwiZXhpc3RpbmdJZHMiLCJTZXQiLCJuZXdBZ2VudHMiLCJoYXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvbWFpYS9BZ2VudHMvZ2V0QWdlbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VTbmFja0Jhck1hbmFnZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VTbmFja0Jhck1hbmFnZXIvdXNlU25hY2tCYXJNYW5hZ2VyJ1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IHVzZVVzZXIsIENPUlVzZXJSb2xlIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IG1hcENPUkxhbmcgfSBmcm9tICcuLi8uLi8uLi9sYW5nL3V0aWxzJ1xuXG4vKipcbiAqIE9yZGVuYSBsb3MgYWdlbnRlczogYWdlbnRlcyBjbG9uZSBwcmltZXJvIChzaSBleGlzdGVuKSwgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gKi9cbmNvbnN0IHNvcnRBZ2VudHMgPSAoYWdlbnRzOiBBZ2VudFtdKTogQWdlbnRbXSA9PiB7XG4gIC8vIFNlcGFyYXIgYWdlbnRlcyBjbG9uZSBkZWwgcmVzdG9cbiAgY29uc3QgY2xvbmVBZ2VudHMgPSBhZ2VudHMuZmlsdGVyKGFnID0+IGFnLnR5cGUgPT09ICdjbG9uZScpXG4gIGNvbnN0IG90aGVyQWdlbnRzID0gYWdlbnRzLmZpbHRlcihhZyA9PiBhZy50eXBlICE9PSAnY2xvbmUnKVxuXG4gIC8vIFNlcGFyYXIgZmF2b3JpdG9zIHkgbm8gZmF2b3JpdG9zXG4gIGNvbnN0IGZhdm9yaXRlcyA9IG90aGVyQWdlbnRzLmZpbHRlcihhZyA9PiBhZy5pc19mYXZvcml0ZSkuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSlcbiAgY29uc3Qgbm9uRmF2b3JpdGVzID0gb3RoZXJBZ2VudHMuZmlsdGVyKGFnID0+ICFhZy5pc19mYXZvcml0ZSkuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSlcblxuICAvLyBDb21iaW5hcjogY2xvbmVzIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcywgbHVlZ28gbm8gZmF2b3JpdG9zXG4gIHJldHVybiBjbG9uZUFnZW50cy5sZW5ndGggPyBbLi4uY2xvbmVBZ2VudHMsIC4uLmZhdm9yaXRlcywgLi4ubm9uRmF2b3JpdGVzXSA6IFsuLi5mYXZvcml0ZXMsIC4uLm5vbkZhdm9yaXRlc11cbn1cblxudHlwZSBVc2VHZXRBZ2VudHNQcm9wcyA9IHtcbiAgc2VsZWN0QWdlbnQ6IChhZ2VudDogQWdlbnQpID0+IHZvaWRcbiAgc2VjdGlvbjogJ3Byb2plY3QnIHwgJ2hlYWRlcicgfCAnY2xpZW50J1xuICBhZ2VudDogQWdlbnQgfCBudWxsXG4gIGhhbmRsZUdvSG9tZTogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgdHlwZSBBZGRBZ2VudE9wdGlvbnMgPSB7XG4gIC8qKiBQb3IgZGVmZWN0byBgdHJ1ZWAgKGNvbXBvcnRhbWllbnRvIEFCTSkuIFBhc2FyIGBmYWxzZWAgYWwgaW5zZXJ0YXIgYWdlbnRlIGNyZWFkbyBwb3IgY2hhdCBzaW4gY2FtYmlhciBkZSB2aXN0YS4gKi9cbiAgbmF2aWdhdGVIb21lPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgdXNlR2V0QWdlbnRzID0gKHsgc2VsZWN0QWdlbnQsIHNlY3Rpb24sIGFnZW50LCBoYW5kbGVHb0hvbWUgfTogVXNlR2V0QWdlbnRzUHJvcHMpID0+IHtcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCBbYWdlbnRzLCBzZXRBZ2VudHNdID0gdXNlU3RhdGU8eyBkYXRhOiBBZ2VudFtdOyBoYXNfbW9yZT86IGJvb2xlYW47IG5leHRfb2Zmc2V0PzogbnVtYmVyIHwgbnVsbCB9Pih7IGRhdGE6IFtdIH0pXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbbG9hZGluZ01vcmUsIHNldExvYWRpbmdNb3JlXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHsgaGFuZGxlU25hY2tiYXJFcnJvciB9ID0gdXNlU25hY2tCYXJNYW5hZ2VyKClcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUcmFuc2xhdGlvbignY2hhdF9haV9zZWN0aW9uJylcbiAgY29uc3QgbGFzdFNlbGVjdGVkQWdlbnRSZWYgPSB1c2VSZWY8QWdlbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBpc1JlZnJlc2hpbmdSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGxhc3RSZXF1ZXN0UmVmID0gdXNlUmVmPHN0cmluZyB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgdXNlclJvbGVzRGlzYWJsZWQgPSBbQ09SVXNlclJvbGUuQ09MTEFCT1JBVE9SLCBDT1JVc2VyUm9sZS5GUkVFTEFOQ0VSLCBDT1JVc2VyUm9sZS5DTElFTlRdXG5cbiAgY29uc3QgYWRkQWdlbnQgPSB1c2VDYWxsYmFjayhcbiAgICAobmV3QWdlbnQ6IEFnZW50LCBvcHRpb25zPzogQWRkQWdlbnRPcHRpb25zKSA9PiB7XG4gICAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBhZ2VudGUgeWEgZXhpc3RlIHBhcmEgZXZpdGFyIGR1cGxpY2Fkb3NcbiAgICAgICAgY29uc3QgYWdlbnRFeGlzdHMgPSBwcmV2LmRhdGEuc29tZShleGlzdGluZ0FnZW50ID0+IGV4aXN0aW5nQWdlbnQuaWQgPT09IG5ld0FnZW50LmlkKVxuICAgICAgICBpZiAoYWdlbnRFeGlzdHMpIHtcbiAgICAgICAgICByZXR1cm4gcHJldlxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBbLi4ucHJldi5kYXRhLCBuZXdBZ2VudF1cbiAgICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHMobmV3RGF0YSlcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICBpZiAob3B0aW9ucz8ubmF2aWdhdGVIb21lICE9PSBmYWxzZSkge1xuICAgICAgICBoYW5kbGVHb0hvbWUoKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2hhbmRsZUdvSG9tZV1cbiAgKVxuXG4gIGNvbnN0IHJlbW92ZUFnZW50ID0gdXNlQ2FsbGJhY2soKGFnZW50SWQ6IG51bWJlciB8IHN0cmluZykgPT4ge1xuICAgIHNldEFnZW50cyhwcmV2ID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgZGF0YTogcHJldi5kYXRhLmZpbHRlcihhID0+IGEuaWQgIT09IGFnZW50SWQudG9TdHJpbmcoKSksXG4gICAgfSkpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHVwZGF0ZUFnZW50ID0gdXNlQ2FsbGJhY2soKHVwZGF0ZWRBZ2VudDogQWdlbnQpID0+IHtcbiAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IHByZXYuZGF0YS5tYXAoZXhpc3RpbmdBZ2VudCA9PlxuICAgICAgICBleGlzdGluZ0FnZW50LmlkID09PSB1cGRhdGVkQWdlbnQuaWQgPyB1cGRhdGVkQWdlbnQgOiBleGlzdGluZ0FnZW50XG4gICAgICApXG4gICAgICBjb25zdCBzb3J0ZWREYXRhID0gc29ydEFnZW50cyh1cGRhdGVkRGF0YSlcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICB9XG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgdXBkYXRlQWdlbnRGYXZvcml0ZSA9IHVzZUNhbGxiYWNrKFxuICAgICh1cGRhdGVkQWdlbnQ6IEFnZW50LCBzaG91bGRTb3J0OiBib29sZWFuID0gZmFsc2UpID0+IHtcbiAgICAgIHNldEFnZW50cyhwcmV2ID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSBwcmV2LmRhdGEubWFwKGV4aXN0aW5nQWdlbnQgPT4ge1xuICAgICAgICAgIGlmIChleGlzdGluZ0FnZW50LmlkID09PSB1cGRhdGVkQWdlbnQuaWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbWVzc2FnZSwgLi4uYWdlbnRGaWVsZHMgfSA9IHVwZGF0ZWRBZ2VudCBhcyBhbnlcbiAgICAgICAgICAgIGNvbnN0IG1lcmdlZEFnZW50ID0geyAuLi5leGlzdGluZ0FnZW50LCAuLi5hZ2VudEZpZWxkcyB9XG4gICAgICAgICAgICByZXR1cm4gbWVyZ2VkQWdlbnRcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGV4aXN0aW5nQWdlbnRcbiAgICAgICAgfSlcblxuICAgICAgICAvLyBTb2xvIG9yZGVuYXIgc2kgc2hvdWxkU29ydCBlcyB0cnVlXG4gICAgICAgIGNvbnN0IGZpbmFsRGF0YSA9IHNob3VsZFNvcnQgPyBzb3J0QWdlbnRzKHVwZGF0ZWREYXRhKSA6IHVwZGF0ZWREYXRhXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIGRhdGE6IGZpbmFsRGF0YSxcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgLy8gQWN0dWFsaXphciBlbCBhZ2VudGUgc2VsZWNjaW9uYWRvIHNpIGVzIGVsIHF1ZSBzZSBlc3TDoSBhY3R1YWxpemFuZG9cbiAgICAgIGlmIChhZ2VudD8uaWQgPT09IHVwZGF0ZWRBZ2VudC5pZCkge1xuICAgICAgICBjb25zdCBleGlzdGluZ0FnZW50ID0gYWdlbnRzLmRhdGEuZmluZChhID0+IGEuaWQgPT09IHVwZGF0ZWRBZ2VudC5pZClcbiAgICAgICAgaWYgKGV4aXN0aW5nQWdlbnQpIHtcbiAgICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIC4uLmFnZW50RmllbGRzIH0gPSB1cGRhdGVkQWdlbnQgYXMgYW55XG4gICAgICAgICAgY29uc3QgbWVyZ2VkQWdlbnQgPSB7IC4uLmV4aXN0aW5nQWdlbnQsIC4uLmFnZW50RmllbGRzIH1cbiAgICAgICAgICBzZWxlY3RBZ2VudChtZXJnZWRBZ2VudClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIC4uLmFnZW50RmllbGRzIH0gPSB1cGRhdGVkQWdlbnQgYXMgYW55XG4gICAgICAgICAgc2VsZWN0QWdlbnQoYWdlbnRGaWVsZHMgYXMgQWdlbnQpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFthZ2VudCwgc2VsZWN0QWdlbnQsIGFnZW50cy5kYXRhXVxuICApXG5cbiAgY29uc3Qgc29ydEFnZW50c0xpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHMocHJldi5kYXRhKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgZGF0YTogc29ydGVkRGF0YSxcbiAgICAgIH1cbiAgICB9KVxuICB9LCBbXSlcblxuICBjb25zdCBzZWxlY3RGaXJzdEFnZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKGFnZW50SWQ/OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChhZ2VudHMuZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZmlyc3RBZ2VudCA9IGFnZW50cy5kYXRhLmZpbmRJbmRleChhZ2VudERhdGEgPT4gYWdlbnREYXRhLmlkID09PSBhZ2VudElkKVxuICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gYWdlbnRzLmRhdGFbZmlyc3RBZ2VudCA9PT0gMCA/IDEgOiAwXVxuICAgICAgICBzZWxlY3RBZ2VudChhZ2VudHMuZGF0YVtmaXJzdEFnZW50ID09PSAwID8gMSA6IDBdKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2FnZW50cy5kYXRhLCBzZWxlY3RBZ2VudF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUdldEFnZW50cyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChhZ2VudFRvU2VsZWN0PzogQWdlbnQpID0+IHtcbiAgICAgIGlmIChpc1JlZnJlc2hpbmdSZWYuY3VycmVudCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVxdWVzdEtleSA9IGFnZW50VG9TZWxlY3Q/LmlkPy50b1N0cmluZygpIHx8ICdkZWZhdWx0J1xuICAgICAgaWYgKGxhc3RSZXF1ZXN0UmVmLmN1cnJlbnQgPT09IHJlcXVlc3RLZXkgJiYgIWxvYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlzUmVmcmVzaGluZ1JlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgbGFzdFJlcXVlc3RSZWYuY3VycmVudCA9IHJlcXVlc3RLZXlcbiAgICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICAgIHNldEVycm9yKG51bGwpXG5cbiAgICAgIGNvbnN0IGlzTXVsdGlBZ2VudHMgPSAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuXG4gICAgICB0cnkge1xuICAgICAgICBsZXQgYWdlbnRQYXJzZWQ6IEFnZW50W10gPSBbXVxuICAgICAgICBsZXQgaGFzTW9yZSA9IGZhbHNlXG4gICAgICAgIGxldCBuZXh0T2Zmc2V0OiBudW1iZXIgfCBudWxsID0gbnVsbFxuXG4gICAgICAgIC8vIFNpIHRpZW5lIGZlYXR1cmUgYWNjZXNzIG11bHRpIGFnZW50cywgaGFjZXIgZG9zIHF1ZXJpZXMgKE1haWEgKyBjdXN0b20pIGVuIGN1YWxxdWllciBzZWNjacOzblxuICAgICAgICBpZiAoaXNNdWx0aUFnZW50cykge1xuICAgICAgICAgIC8vIFF1ZXJ5IDE6IEFnZW50ZXMgY2xvbmUgKE1haWEpIC0gU29sbyBwYXJhIHJvbGVzIHBlcm1pdGlkb3MuIFB1ZWRlbiB2ZW5pciBtw7psdGlwbGVzIGFnZW50ZXMgdGlwbyBjbG9uZVxuICAgICAgICAgIGxldCBjbG9uZUFnZW50czogQWdlbnRbXSA9IFtdXG4gICAgICAgICAgaWYgKCF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCBvcmRlclBhcmFtID1cbiAgICAgICAgICAgICAgICBzZWN0aW9uID09PSAnY2xpZW50J1xuICAgICAgICAgICAgICAgICAgPyAnJm9yZGVyPWNsaWVudCxwcm9qZWN0J1xuICAgICAgICAgICAgICAgICAgOiBzZWN0aW9uID09PSAncHJvamVjdCcgfHwgc2VjdGlvbiA9PT0gJ2hlYWRlcidcbiAgICAgICAgICAgICAgICAgICAgPyAnJm9yZGVyPXByb2plY3QsY2xpZW50J1xuICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgIGNvbnN0IG1haWFSZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgICAgICAgICAgcGF0aDogYGFnZW50cz9hZ2VudF90eXBlPWNsb25lJmxhbmc9JHttYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpfSR7b3JkZXJQYXJhbX1gLFxuICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIGNvbnN0IG1haWFEYXRhID0gYXdhaXQgbWFpYVJlc3BvbnNlLmpzb24oKVxuICAgICAgICAgICAgICBjbG9uZUFnZW50cyA9IG1haWFEYXRhLmRhdGE/LmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlID09PSAnY2xvbmUnKSB8fCBbXVxuICAgICAgICAgICAgfSBjYXRjaCAobWFpYUVycm9yOiBhbnkpIHtcbiAgICAgICAgICAgICAgLy8gVmVyaWZpY2FyIHNpIGVsIGVycm9yIGVzIDQwM1xuICAgICAgICAgICAgICAvLyBmZXRjaENPUiBwdWVkZSBsYW56YXIgZGlmZXJlbnRlcyB0aXBvcyBkZSBlcnJvcmVzOlxuICAgICAgICAgICAgICAvLyAxLiBFcnJvciBjb24gZXJyb3JEYXRhLmRldGFpbCBzaSBpbmNsdXllICdBY2Nlc3MgZGVuaWVkJ1xuICAgICAgICAgICAgICAvLyAyLiBFcnJvciBnZW7DqXJpY28gJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJyBzaSBlcyA0MDMgcGVybyBubyBpbmNsdXllICdBY2Nlc3MgZGVuaWVkJ1xuICAgICAgICAgICAgICAvLyAzLiBOZWNlc2l0YW1vcyB2ZXJpZmljYXIgZWwgc3RhdHVzIGNvZGUgc2kgZXN0w6EgZGlzcG9uaWJsZVxuICAgICAgICAgICAgICBjb25zdCBpczQwM0Vycm9yID1cbiAgICAgICAgICAgICAgICBtYWlhRXJyb3I/LnJlc3BvbnNlPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICAgIG1haWFFcnJvcj8uc3RhdHVzID09PSA0MDMgfHxcbiAgICAgICAgICAgICAgICBtYWlhRXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKFwiWW91IGRvbid0IGhhdmUgcGVybWlzc2lvbiB0byB2aWV3IGFnZW50c1wiKSB8fFxuICAgICAgICAgICAgICAgIG1haWFFcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJykgLy8gZmV0Y2hDT1IgbGFuemEgZXN0byBwYXJhIDQwMyBzaW4gJ0FjY2VzcyBkZW5pZWQnXG5cbiAgICAgICAgICAgICAgaWYgKGlzNDAzRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAvLyBTaSBlcyA0MDMsIGNvbnRpbnVhciBzaW4gbG9zIGNsb25lQWdlbnRzXG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gU2kgZXMgb3RybyBlcnJvciwgbGFuemFybG9cbiAgICAgICAgICAgICAgICB0aHJvdyBtYWlhRXJyb3JcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFF1ZXJ5IDI6IEFnZW50ZXMgY3VzdG9tIGNvbiBwYWdpbmFjacOzblxuICAgICAgICAgIGxldCBjdXN0b21BZ2VudHM6IEFnZW50W10gPSBbXVxuICAgICAgICAgIGxldCBjdXN0b21IYXNNb3JlID0gZmFsc2VcbiAgICAgICAgICBsZXQgY3VzdG9tTmV4dE9mZnNldDogbnVtYmVyIHwgbnVsbCA9IG51bGxcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBjdXN0b21SZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgICAgICAgIHBhdGg6ICdhZ2VudHM/YWdlbnRfdHlwZT1jdXN0b20mbGltaXQ9NyZvZmZzZXQ9MCcsXG4gICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgY29uc3QgY3VzdG9tRGF0YSA9IGF3YWl0IGN1c3RvbVJlc3BvbnNlLmpzb24oKVxuICAgICAgICAgICAgY3VzdG9tQWdlbnRzID0gY3VzdG9tRGF0YS5kYXRhIHx8IFtdXG4gICAgICAgICAgICBjdXN0b21IYXNNb3JlID0gY3VzdG9tRGF0YS5oYXNfbW9yZSB8fCBmYWxzZVxuICAgICAgICAgICAgY3VzdG9tTmV4dE9mZnNldCA9IGN1c3RvbURhdGEubmV4dF9vZmZzZXQgfHwgbnVsbFxuICAgICAgICAgIH0gY2F0Y2ggKGN1c3RvbUVycm9yOiBhbnkpIHtcbiAgICAgICAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBlcnJvciBlcyA0MDNcbiAgICAgICAgICAgIC8vIGZldGNoQ09SIHB1ZWRlIGxhbnphciBkaWZlcmVudGVzIHRpcG9zIGRlIGVycm9yZXM6XG4gICAgICAgICAgICAvLyAxLiBFcnJvciBjb24gZXJyb3JEYXRhLmRldGFpbCBzaSBpbmNsdXllICdBY2Nlc3MgZGVuaWVkJ1xuICAgICAgICAgICAgLy8gMi4gRXJyb3IgZ2Vuw6lyaWNvICdGYWlsZWQgZmV0Y2hpbmcgZGF0YScgc2kgZXMgNDAzIHBlcm8gbm8gaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgIC8vIDMuIE5lY2VzaXRhbW9zIHZlcmlmaWNhciBlbCBzdGF0dXMgY29kZSBzaSBlc3TDoSBkaXNwb25pYmxlXG4gICAgICAgICAgICBjb25zdCBpczQwM0Vycm9yID1cbiAgICAgICAgICAgICAgY3VzdG9tRXJyb3I/LnJlc3BvbnNlPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICBjdXN0b21FcnJvcj8uc3RhdHVzID09PSA0MDMgfHxcbiAgICAgICAgICAgICAgY3VzdG9tRXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKFwiWW91IGRvbid0IGhhdmUgcGVybWlzc2lvbiB0byB2aWV3IGFnZW50c1wiKSB8fFxuICAgICAgICAgICAgICBjdXN0b21FcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJykgLy8gZmV0Y2hDT1IgbGFuemEgZXN0byBwYXJhIDQwMyBzaW4gJ0FjY2VzcyBkZW5pZWQnXG5cbiAgICAgICAgICAgIGlmIChpczQwM0Vycm9yKSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIDQwMywgY29udGludWFyIHNpbiBsb3MgY3VzdG9tQWdlbnRzIChjdXN0b21BZ2VudHMgcXVlZGEgY29tbyBhcnJheSB2YWPDrW8pXG4gICAgICAgICAgICAgIC8vIEVzdG8gcHVlZGUgb2N1cnJpciBlbiBkb3MgZXNjZW5hcmlvczpcbiAgICAgICAgICAgICAgLy8gMS4gVXN1YXJpbyBOTyBlcyBkZSB1c2VyUm9sZXNEaXNhYmxlZDogdGVuZHLDoSBzb2xvIGxvcyBjbG9uZUFnZW50cyAoc2kgbGEgcXVlcnkgY2xvbmUgZnVlIGV4aXRvc2EpXG4gICAgICAgICAgICAgIC8vIDIuIFVzdWFyaW8gU8ONIGVzIGRlIHVzZXJSb2xlc0Rpc2FibGVkOiBlbCBsaXN0YWRvIHF1ZWRhcsOhIHZhY8OtbyAocG9ycXVlIG5vIGhheSBjbG9uZUFnZW50cylcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIG90cm8gZXJyb3IsIGxhbnphcmxvXG4gICAgICAgICAgICAgIHRocm93IGN1c3RvbUVycm9yXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQ29tYmluYXI6IGFnZW50ZXMgY2xvbmUgcHJpbWVybywgbHVlZ28gbG9zIGN1c3RvbSAoc2kgZXhpc3RlbilcbiAgICAgICAgICAvLyBTaSBlbCB1c3VhcmlvIHRpZW5lIHVuIHJvbCBkZXNoYWJpbGl0YWRvLCBubyBpbmNsdWlyIGNsb25lQWdlbnRzXG4gICAgICAgICAgaWYgKHVzZXJSb2xlc0Rpc2FibGVkLmluY2x1ZGVzKHVzZXIucm9sZV9pZCkpIHtcbiAgICAgICAgICAgIC8vIFVzdWFyaW8gZGUgcm9sZXMgZGlzYWJsZWQ6IHNvbG8gY3VzdG9tQWdlbnRzXG4gICAgICAgICAgICAvLyBTaSBjdXN0b21BZ2VudHMgZXN0w6EgdmFjw61vIChwb3IgNDAzKSwgYWdlbnRQYXJzZWQgc2Vyw6EgW11cbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gY3VzdG9tQWdlbnRzXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFVzdWFyaW8gbm9ybWFsOiBjbG9uZUFnZW50cyArIGN1c3RvbUFnZW50c1xuICAgICAgICAgICAgLy8gU2kgY3VzdG9tQWdlbnRzIGVzdMOhIHZhY8OtbyAocG9yIDQwMykgcGVybyBoYXkgY2xvbmVBZ2VudHMsIGFnZW50UGFyc2VkIHRlbmRyw6EgbG9zIGNsb25lc1xuICAgICAgICAgICAgLy8gU2kgbm8gaGF5IGNsb25lQWdlbnRzIG5pIGN1c3RvbUFnZW50cywgYWdlbnRQYXJzZWQgc2Vyw6EgW11cbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gY2xvbmVBZ2VudHMubGVuZ3RoID8gWy4uLmNsb25lQWdlbnRzLCAuLi5jdXN0b21BZ2VudHNdIDogY3VzdG9tQWdlbnRzXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIE9yZGVuYXI6IE1haWEgcHJpbWVybywgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gICAgICAgICAgYWdlbnRQYXJzZWQgPSBzb3J0QWdlbnRzKGFnZW50UGFyc2VkKVxuICAgICAgICAgIGhhc01vcmUgPSBjdXN0b21IYXNNb3JlXG4gICAgICAgICAgbmV4dE9mZnNldCA9IGN1c3RvbU5leHRPZmZzZXRcblxuICAgICAgICAgIHNldEFnZW50cyh7XG4gICAgICAgICAgICBkYXRhOiBhZ2VudFBhcnNlZCxcbiAgICAgICAgICAgIGhhc19tb3JlOiBoYXNNb3JlLFxuICAgICAgICAgICAgbmV4dF9vZmZzZXQ6IG5leHRPZmZzZXQsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIC8vIFNpIG5vIGhheSBhZ2VudGVzIGRlc3B1w6lzIGRlIHByb2Nlc2FyIGxhcyBxdWVyaWVzLCBsaW1waWFyIGVsIGVycm9yXG4gICAgICAgICAgaWYgKGFnZW50UGFyc2VkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgc2V0RXJyb3IobnVsbClcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gTMOzZ2ljYSBwYXJhIHByb2plY3QsIGNsaWVudCBvIGhlYWRlciBzaW4gbXVsdGlBZ2VudHMgKG1pc21vIGNyaXRlcmlvIGRlIG9yZGVuIHByb2plY3QvY2xpZW50OyBoZWFkZXIgYcOxYWRlIHBhZ2luYWNpw7NuKVxuICAgICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgICAgICAgaWYgKHNlY3Rpb24gPT09ICdwcm9qZWN0JyB8fCBzZWN0aW9uID09PSAnY2xpZW50JyB8fCBzZWN0aW9uID09PSAnaGVhZGVyJykge1xuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdhZ2VudF90eXBlJywgJ2Nsb25lJylcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGFuZycsIG1hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSkpXG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ29yZGVyJywgc2VjdGlvbiA9PT0gJ2NsaWVudCcgPyAnY2xpZW50LHByb2plY3QnIDogJ3Byb2plY3QsY2xpZW50JylcbiAgICAgICAgICAgIGlmIChzZWN0aW9uID09PSAnaGVhZGVyJykge1xuICAgICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xpbWl0JywgJzcnKVxuICAgICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ29mZnNldCcsICcwJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBxdWVyeVN0cmluZyA9IHF1ZXJ5UGFyYW1zLnRvU3RyaW5nKClcbiAgICAgICAgICBjb25zdCBwYXRoID0gYGFnZW50cyR7cXVlcnlTdHJpbmcgPyBgPyR7cXVlcnlTdHJpbmd9YCA6ICcnfWBcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgICAgICAgICAvLyBkYXRhLmRhdGEgeWEgY29udGllbmUgdG9kb3MgbG9zIGFnZW50ZXMgY2xvbmUgZGUgbGEgcXVlcnkgYWdlbnRfdHlwZT1jbG9uZVxuICAgICAgICAgICAgYWdlbnRQYXJzZWQgPSBkYXRhLmRhdGEgfHwgW11cbiAgICAgICAgICAgIC8vIE9yZGVuYXI6IE1haWEgcHJpbWVybywgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gICAgICAgICAgICBhZ2VudFBhcnNlZCA9IHNvcnRBZ2VudHMoYWdlbnRQYXJzZWQpXG4gICAgICAgICAgICBoYXNNb3JlID0gZGF0YS5oYXNfbW9yZVxuICAgICAgICAgICAgbmV4dE9mZnNldCA9IGRhdGEubmV4dF9vZmZzZXRcblxuICAgICAgICAgICAgc2V0QWdlbnRzKHtcbiAgICAgICAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgICAgICAgZGF0YTogYWdlbnRQYXJzZWQsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gY2F0Y2ggKHJlc3BvbnNlRXJyb3I6IGFueSkge1xuICAgICAgICAgICAgLy8gVmVyaWZpY2FyIHNpIGVsIGVycm9yIGVzIDQwM1xuICAgICAgICAgICAgLy8gZmV0Y2hDT1IgcHVlZGUgbGFuemFyIGRpZmVyZW50ZXMgdGlwb3MgZGUgZXJyb3JlczpcbiAgICAgICAgICAgIC8vIDEuIEVycm9yIGNvbiBlcnJvckRhdGEuZGV0YWlsIHNpIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAvLyAyLiBFcnJvciBnZW7DqXJpY28gJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJyBzaSBlcyA0MDMgcGVybyBubyBpbmNsdXllICdBY2Nlc3MgZGVuaWVkJ1xuICAgICAgICAgICAgLy8gMy4gTmVjZXNpdGFtb3MgdmVyaWZpY2FyIGVsIHN0YXR1cyBjb2RlIHNpIGVzdMOhIGRpc3BvbmlibGVcbiAgICAgICAgICAgIGNvbnN0IGlzNDAzRXJyb3IgPVxuICAgICAgICAgICAgICByZXNwb25zZUVycm9yPy5yZXNwb25zZT8uc3RhdHVzID09PSA0MDMgfHxcbiAgICAgICAgICAgICAgcmVzcG9uc2VFcnJvcj8uc3RhdHVzID09PSA0MDMgfHxcbiAgICAgICAgICAgICAgcmVzcG9uc2VFcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoXCJZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHZpZXcgYWdlbnRzXCIpIHx8XG4gICAgICAgICAgICAgIHJlc3BvbnNlRXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKCdGYWlsZWQgZmV0Y2hpbmcgZGF0YScpIC8vIGZldGNoQ09SIGxhbnphIGVzdG8gcGFyYSA0MDMgc2luICdBY2Nlc3MgZGVuaWVkJ1xuXG4gICAgICAgICAgICBpZiAoaXM0MDNFcnJvcikge1xuICAgICAgICAgICAgICAvLyBTaSBlcyA0MDMsIGVzdGFibGVjZXIgYWdlbnRlcyB2YWPDrW9zIHkgY29udGludWFyXG4gICAgICAgICAgICAgIHNldEFnZW50cyh7XG4gICAgICAgICAgICAgICAgZGF0YTogW10sXG4gICAgICAgICAgICAgICAgaGFzX21vcmU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG5leHRfb2Zmc2V0OiBudWxsLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICBzZXRFcnJvcihudWxsKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gU2kgZXMgb3RybyBlcnJvciwgbGFuemFybG9cbiAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2VFcnJvclxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEzDs2dpY2EgZGUgc2VsZWN0IGFnZW50IC0gU29sbyBzZWxlY2Npb25hciBzaSBoYXkgYWdlbnRlcyBkaXNwb25pYmxlc1xuICAgICAgICBpZiAoYWdlbnRQYXJzZWQubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGlmIChhZ2VudFRvU2VsZWN0ICYmIGFnZW50UGFyc2VkLmZpbmQoKGFnZW50VG9SZXF1ZXN0OiBBZ2VudCkgPT4gYWdlbnRUb1JlcXVlc3QuaWQgPT09IGFnZW50VG9TZWxlY3QuaWQpKSB7XG4gICAgICAgICAgICBpZiAobGFzdFNlbGVjdGVkQWdlbnRSZWYuY3VycmVudD8uaWQgIT09IGFnZW50VG9TZWxlY3QuaWQpIHtcbiAgICAgICAgICAgICAgbGFzdFNlbGVjdGVkQWdlbnRSZWYuY3VycmVudCA9IGFnZW50VG9TZWxlY3RcbiAgICAgICAgICAgICAgc2VsZWN0QWdlbnQoYWdlbnRUb1NlbGVjdClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKGFnZW50UGFyc2VkPy5bMF0gJiYgKCFhZ2VudCB8fCAhYWdlbnRQYXJzZWQuZmluZCgoYTogQWdlbnQpID0+IGEuaWQgPT09IGFnZW50LmlkKSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZUFnZW50cyA9XG4gICAgICAgICAgICAgIHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MgJiYgIXVzZXJSb2xlc0Rpc2FibGVkLmluY2x1ZGVzKHVzZXIucm9sZV9pZClcbiAgICAgICAgICAgICAgICA/IGFnZW50UGFyc2VkXG4gICAgICAgICAgICAgICAgOiBhZ2VudFBhcnNlZC5maWx0ZXIoKGFnZW50SXRlbTogQWdlbnQpID0+IGFnZW50SXRlbS50eXBlICE9PSAnY2xvbmUnKVxuXG4gICAgICAgICAgICBjb25zdCBbZmlyc3RBZ2VudF0gPSBhdmFpbGFibGVBZ2VudHNcbiAgICAgICAgICAgIGlmIChmaXJzdEFnZW50ICYmIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQ/LmlkICE9PSBmaXJzdEFnZW50LmlkKSB7XG4gICAgICAgICAgICAgIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQgPSBmaXJzdEFnZW50XG4gICAgICAgICAgICAgIHNlbGVjdEFnZW50KGZpcnN0QWdlbnQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChhZ2VudFRvU2VsZWN0ICYmIGFnZW50UGFyc2VkPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZUFnZW50cyA9XG4gICAgICAgICAgICAgIHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MgJiYgIXVzZXJSb2xlc0Rpc2FibGVkLmluY2x1ZGVzKHVzZXIucm9sZV9pZClcbiAgICAgICAgICAgICAgICA/IGFnZW50UGFyc2VkXG4gICAgICAgICAgICAgICAgOiBhZ2VudFBhcnNlZC5maWx0ZXIoKGFnZW50SXRlbTogQWdlbnQpID0+IGFnZW50SXRlbS50eXBlICE9PSAnY2xvbmUnKVxuXG4gICAgICAgICAgICBjb25zdCBbZmlyc3RBdmFpbGFibGVBZ2VudF0gPSBhdmFpbGFibGVBZ2VudHNcbiAgICAgICAgICAgIGlmIChmaXJzdEF2YWlsYWJsZUFnZW50ICYmIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQ/LmlkICE9PSBmaXJzdEF2YWlsYWJsZUFnZW50LmlkKSB7XG4gICAgICAgICAgICAgIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQgPSBmaXJzdEF2YWlsYWJsZUFnZW50XG4gICAgICAgICAgICAgIHNlbGVjdEFnZW50KGZpcnN0QXZhaWxhYmxlQWdlbnQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBzZXRFcnJvcihlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ0FuIHVua25vd24gZXJyb3Igb2NjdXJyZWQnKVxuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaXNSZWZyZXNoaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIWlzUmVmcmVzaGluZ1JlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBsYXN0UmVxdWVzdFJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgICAgIH1cbiAgICAgICAgfSwgMTAwKVxuICAgICAgfVxuICAgIH0sXG4gICAgW3NlbGVjdEFnZW50LCBzZWN0aW9uLCBhZ2VudCwgbG9hZGluZ11cbiAgKVxuXG4gIGNvbnN0IGxvYWRNb3JlQWdlbnRzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGlzTXVsdGlBZ2VudHMgPSAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICAgIC8vIENhcmdhciBtw6FzOiBlbiBoZWFkZXIgc2llbXByZTsgZW4gcHJvamVjdCBzb2xvIHNpIGlzTXVsdGlBZ2VudHMgKHBvcnF1ZSBzb2xvIGVudG9uY2VzIGhheSBwYWdpbmFjacOzbiBkZSBjdXN0b20pXG4gICAgY29uc3QgY2FuTG9hZE1vcmUgPSBzZWN0aW9uID09PSAnaGVhZGVyJyB8fCBpc011bHRpQWdlbnRzXG4gICAgaWYgKCFjYW5Mb2FkTW9yZSB8fCAhYWdlbnRzLmhhc19tb3JlIHx8ICFhZ2VudHMubmV4dF9vZmZzZXQgfHwgbG9hZGluZ01vcmUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHNldExvYWRpbmdNb3JlKHRydWUpXG4gICAgc2V0RXJyb3IobnVsbClcblxuICAgIHRyeSB7XG4gICAgICBsZXQgcGF0aDogc3RyaW5nXG5cbiAgICAgIC8vIFNpIGVzIG11bHRpQWdlbnRzLCBzb2xvIGNhcmdhciBhZ2VudHMgY3VzdG9tIChNYWlhIHlhIGVzdMOhIGNhcmdhZG8pXG4gICAgICBpZiAoaXNNdWx0aUFnZW50cykge1xuICAgICAgICAvLyBNYW50ZW5lciBjYW50aWRhZCBpbXBhciBkZSBjYXJkczogcHJpbWVyYSBjYXJnYSA3LCBzaWd1aWVudGVzICs2ICg3LCAxMywgMTksIC4uLilcbiAgICAgICAgcGF0aCA9IGBhZ2VudHM/YWdlbnRfdHlwZT1jdXN0b20mbGltaXQ9NiZvZmZzZXQ9JHthZ2VudHMubmV4dF9vZmZzZXR9YFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2kgbm8gZXMgbXVsdGlBZ2VudHMsIGNhcmdhciBtw6FzIGFnZW50ZXMgY2xvbmUgKE1haWEpIOKAlCBtaXNtbyBvcmRlciBxdWUgcHJvamVjdCBwYXJhIGhlYWRlclxuICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2FnZW50X3R5cGUnLCAnY2xvbmUnKVxuICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xhbmcnLCBtYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpKVxuICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ29yZGVyJywgJ3Byb2plY3QsY2xpZW50JylcbiAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdsaW1pdCcsICc3JylcbiAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdvZmZzZXQnLCBhZ2VudHMubmV4dF9vZmZzZXQudG9TdHJpbmcoKSlcbiAgICAgICAgcGF0aCA9IGBhZ2VudHM/JHtxdWVyeVBhcmFtcy50b1N0cmluZygpfWBcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICBwYXRoLFxuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgfSlcblxuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuXG4gICAgICAvLyBBY3VtdWxhciBhZ2VudGVzLCBleGNsdXllbmRvIGR1cGxpY2Fkb3NcbiAgICAgIHNldEFnZW50cyhwcmV2ID0+IHtcbiAgICAgICAgaWYgKGlzTXVsdGlBZ2VudHMpIHtcbiAgICAgICAgICAvLyBMw7NnaWNhIHBhcmEgbXVsdGlBZ2VudHM6IHNlcGFyYXIgY2xvbmUgeSBjdXN0b21cbiAgICAgICAgICAvLyBNYW50ZW5lciB0b2RvcyBsb3MgYWdlbnRlcyBjbG9uZSBleGlzdGVudGVzIGFsIGluaWNpb1xuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nQ2xvbmVBZ2VudHMgPSBwcmV2LmRhdGEuZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgPT09ICdjbG9uZScpXG5cbiAgICAgICAgICAvLyBPYnRlbmVyIElEcyBleGlzdGVudGVzIChleGNsdXllbmRvIGNsb25lcylcbiAgICAgICAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQocHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlICE9PSAnY2xvbmUnKS5tYXAoKGFnOiBBZ2VudCkgPT4gYWcuaWQpKVxuXG4gICAgICAgICAgLy8gRmlsdHJhciBudWV2b3MgYWdlbnRzIHF1ZSBubyBlc3TDqW4geWEgZW4gbGEgbGlzdGEgKHkgcXVlIG5vIHNlYW4gY2xvbmUpXG4gICAgICAgICAgY29uc3QgbmV3QWdlbnRzID0gZGF0YS5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlICE9PSAnY2xvbmUnICYmICFleGlzdGluZ0lkcy5oYXMoYWcuaWQpKVxuXG4gICAgICAgICAgLy8gQ29uc3RydWlyIGVsIG51ZXZvIGFycmF5OiBjbG9uZXMgcHJpbWVybywgbHVlZ28gbG9zIGFnZW50cyBleGlzdGVudGVzIHF1ZSBubyBzZWFuIGNsb25lLCBsdWVnbyBsb3MgbnVldm9zXG4gICAgICAgICAgY29uc3QgbmV3RGF0YSA9IGV4aXN0aW5nQ2xvbmVBZ2VudHMubGVuZ3RoXG4gICAgICAgICAgICA/IFsuLi5leGlzdGluZ0Nsb25lQWdlbnRzLCAuLi5wcmV2LmRhdGEuZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgIT09ICdjbG9uZScpLCAuLi5uZXdBZ2VudHNdXG4gICAgICAgICAgICA6IFsuLi5wcmV2LmRhdGEuZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgIT09ICdjbG9uZScpLCAuLi5uZXdBZ2VudHNdXG5cbiAgICAgICAgICAvLyBPcmRlbmFyOiBNYWlhIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICAgICAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKG5ld0RhdGEpXG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGF0YTogc29ydGVkRGF0YSxcbiAgICAgICAgICAgIGhhc19tb3JlOiBkYXRhLmhhc19tb3JlLFxuICAgICAgICAgICAgbmV4dF9vZmZzZXQ6IGRhdGEubmV4dF9vZmZzZXQsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIEzDs2dpY2EgcGFyYSAhaXNNdWx0aUFnZW50czogdG9kb3MgbG9zIGFnZW50ZXMgc29uIGNsb25lLCBzaW1wbGVtZW50ZSBhZ3JlZ2FyIGV2aXRhbmRvIGR1cGxpY2Fkb3NcbiAgICAgICAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0KHByZXYuZGF0YS5tYXAoKGFnOiBBZ2VudCkgPT4gYWcuaWQpKVxuICAgICAgICBjb25zdCBuZXdBZ2VudHMgPSAoZGF0YS5kYXRhIHx8IFtdKS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gIWV4aXN0aW5nSWRzLmhhcyhhZy5pZCkpXG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBbLi4ucHJldi5kYXRhLCAuLi5uZXdBZ2VudHNdXG5cbiAgICAgICAgLy8gT3JkZW5hcjogTWFpYSBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZSwgbHVlZ28gbm8gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGVcbiAgICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHMobmV3RGF0YSlcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICAgICAgaGFzX21vcmU6IGRhdGEuaGFzX21vcmUsXG4gICAgICAgICAgbmV4dF9vZmZzZXQ6IGRhdGEubmV4dF9vZmZzZXQsXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIHNldExvYWRpbmdNb3JlKGZhbHNlKVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaGFuZGxlU25hY2tiYXJFcnJvcih0KCdzbmFja2Jhci5sb2FkTW9yZUFnZW50cy5lcnJvcicpKVxuICAgICAgc2V0TG9hZGluZ01vcmUoZmFsc2UpXG4gICAgfVxuICB9LCBbc2VjdGlvbiwgYWdlbnRzLmhhc19tb3JlLCBhZ2VudHMubmV4dF9vZmZzZXQsIGxvYWRpbmdNb3JlLCBpMThuLmxhbmd1YWdlXSlcblxuICByZXR1cm4ge1xuICAgIGFnZW50cyxcbiAgICBsb2FkaW5nLFxuICAgIGxvYWRpbmdNb3JlLFxuICAgIGVycm9yLFxuICAgIGhhbmRsZUdldEFnZW50cyxcbiAgICBsb2FkTW9yZUFnZW50cyxcbiAgICBhZGRBZ2VudCxcbiAgICByZW1vdmVBZ2VudCxcbiAgICB1cGRhdGVBZ2VudCxcbiAgICB1cGRhdGVBZ2VudEZhdm9yaXRlLFxuICAgIHNlbGVjdEZpcnN0QWdlbnQsXG4gICAgc29ydEFnZW50c0xpc3QsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxNQUFNLFFBQVEsT0FBTztBQUNyRCxTQUFTQyxjQUFjLFFBQVEsZUFBZTtBQUM5QyxTQUFTQyxrQkFBa0IsUUFBUSxzREFBc0Q7QUFDekYsU0FBU0MsU0FBUyxRQUFRLFdBQVc7QUFFckMsU0FBU0MsT0FBTyxFQUFFQyxXQUFXLFFBQVEsMkJBQTJCO0FBQ2hFLFNBQVNDLFVBQVUsUUFBUSxxQkFBcUI7O0FBRWhEO0FBQ0E7QUFDQTtBQUNBLElBQU1DLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFJQyxNQUFlLEVBQWM7RUFDL0M7RUFDQSxJQUFNQyxXQUFXLEdBQUdELE1BQU0sQ0FBQ0UsTUFBTSxDQUFDLFVBQUFDLEVBQUU7SUFBQSxPQUFJQSxFQUFFLENBQUNDLElBQUksS0FBSyxPQUFPO0VBQUEsRUFBQztFQUM1RCxJQUFNQyxXQUFXLEdBQUdMLE1BQU0sQ0FBQ0UsTUFBTSxDQUFDLFVB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@projectcor/maia-components",
3
- "version": "2.11.37-1",
3
+ "version": "2.11.37-3",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "repository": {