@fundamental-ngx/platform 0.50.3 → 0.50.5

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.
@@ -240,19 +240,17 @@ export class IconTabBarComponent {
240
240
  flatIndexRef = flatIndexRef || { value: 0 };
241
241
  return config.map((item, index) => {
242
242
  const uId = `${indexPrefix}${index}`;
243
+ item.color = item.color || 'default';
243
244
  const result = {
244
245
  ...item,
245
246
  index,
246
- cssClasses: [],
247
+ cssClasses: item.color ? [`fd-icon-tab-bar__item--${item.color}`] : [],
247
248
  uId,
248
249
  hidden: false,
249
250
  parentUId,
250
251
  flatIndex: flatIndexRef.value++,
251
252
  subItems: this._generateTabBarItems(item.subItems || [], `${uId}${UNIQUE_KEY_SEPARATOR}`, flatIndexRef, uId)
252
253
  };
253
- if (item.color) {
254
- result.cssClasses = [`fd-icon-tab-bar__item--${item.color}`];
255
- }
256
254
  return result;
257
255
  });
258
256
  }
@@ -302,4 +300,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
302
300
  type: HostBinding,
303
301
  args: ['class.fd-tabs-custom']
304
302
  }] } });
305
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vaWNvbi10YWItYmFyL2ljb24tdGFiLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9pY29uLXRhYi1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsZUFBZSxFQUNmLFVBQVUsRUFFVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBWSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQVcsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7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d0JBQzdCLDJCQUEyQjt3QkFDM0IsMkJBQTJCO3dCQUMzQixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsNkJBQTZCO3FCQUNoQzs7MEJBdUlJLFFBQVE7OzBCQUNSLFFBQVE7eUNBaEliLFlBQVk7c0JBRFgsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFrRTFCLFdBQVc7c0JBRHRCLFdBQVc7dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIGNvbnRlbnRDaGlsZHJlbixcbiAgICBEZXN0cm95UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIGlucHV0LFxuICAgIG1vZGVsLFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBvdXRwdXQsXG4gICAgc2lnbmFsLFxuICAgIHZpZXdDaGlsZCxcbiAgICB2aWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eVNlcnZpY2UsIE51bGxhYmxlLCBSdGxTZXJ2aWNlLCBzY3JvbGxUb3AgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBGRF9EWU5BTUlDX1BBR0UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZHluYW1pYy1wYWdlJztcbmltcG9ydCB7IEljb25Gb250IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgU2Nyb2xsU3B5RGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Njcm9sbC1zcHknO1xuaW1wb3J0IHsgU2Nyb2xsYmFyRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Njcm9sbGJhcic7XG5pbXBvcnQgeyBGRF9UQUJMSVNULCBUYWJMaXN0IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSWNvblRhYkJhckJhc2UgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgSWNvblRhYkJhckZpbHRlclR5cGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaWNvbi10YWItYmFyLWZpbHRlci10eXBlL2ljb24tdGFiLWJhci1maWx0ZXItdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvblRhYkJhckljb25UeXBlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ljb24tdGFiLWJhci1pY29uLXR5cGUvaWNvbi10YWItYmFyLWljb24tdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvblRhYkJhclByb2Nlc3NUeXBlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ljb24tdGFiLWJhci1wcm9jZXNzLXR5cGUvaWNvbi10YWItYmFyLXByb2Nlc3MtdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBJY29uVGFiQmFyVGFiQ29tcG9uZW50LFxuICAgIEljb25UYWJCYXJUYWJDb250ZW50RGlyZWN0aXZlXG59IGZyb20gJy4vY29tcG9uZW50cy9pY29uLXRhYi1iYXItdGFiL2ljb24tdGFiLWJhci10YWIuY29tcG9uZW50JztcbmltcG9ydCB7IEljb25UYWJCYXJUZXh0VHlwZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pY29uLXRhYi1iYXItdGV4dC10eXBlL2ljb24tdGFiLWJhci10ZXh0LXR5cGUuY29tcG9uZW50JztcbmltcG9ydCB7IFVOSVFVRV9LRVlfU0VQQVJBVE9SIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgSWNvblRhYkJhckl0ZW0gfSBmcm9tICcuL2ludGVyZmFjZXMvaWNvbi10YWItYmFyLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhYkNvbG9yQXNzb2NpYXRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3RhYi1jb2xvci1hc3NvY2lhdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhYkNvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcy90YWItY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJY29uVGFiQmFyQmFja2dyb3VuZCwgSWNvblRhYkJhclNpemUsIFRhYkRlc3RpbnlNb2RlLCBUYWJUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWljb24tdGFiLWJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ljb24tdGFiLWJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2ljb24tdGFiLWJhci5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9UQUJMSVNULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IEljb25UYWJCYXJDb21wb25lbnRcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBJY29uVGFiQmFyUHJvY2Vzc1R5cGVDb21wb25lbnQsXG4gICAgICAgIEljb25UYWJCYXJGaWx0ZXJUeXBlQ29tcG9uZW50LFxuICAgICAgICBJY29uVGFiQmFySWNvblR5cGVDb21wb25lbnQsXG4gICAgICAgIEljb25UYWJCYXJUZXh0VHlwZUNvbXBvbmVudCxcbiAgICAgICAgU2Nyb2xsYmFyRGlyZWN0aXZlLFxuICAgICAgICBTY3JvbGxTcHlEaXJlY3RpdmUsXG4gICAgICAgIEljb25UYWJCYXJUYWJDb250ZW50RGlyZWN0aXZlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBJY29uVGFiQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBUYWJMaXN0IHtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIG9wZW4gdGFiIGNvbnRlbnQgb25lIHVuZGVyIGFub3RoZXIgd2l0aG91dCBjb2xsYXBzaW5nLlxuICAgICAqIFdvcmtzIG9ubHkgZm9yIGNvbnRlbnQtcHJvamVjdGVkIHRhYiBjb250ZW50LlxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHN0YWNrQ29udGVudCA9IGZhbHNlO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUeXBlIG9mIHRhYiBiYXIgdmlldy4gKi9cbiAgICBpY29uVGFiVHlwZSA9IGlucHV0PFRhYlR5cGU+KCd0ZXh0Jyk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQSB0YWIgYmFyIGNvbmZpZ3VyYXRpb24gdGhhdCBzdG9yZXMgdGhlIHN0YXRlIG9mIGVhY2ggdGFiLiBCYXNlZCBvbiB0aGlzIGNvbmZpZ3VyYXRpb24sIGEgdGFiIGJhciBpcyByZXByZXNlbnRpbmcuXG4gICAgICovXG4gICAgdGFic0NvbmZpZyA9IG1vZGVsPFRhYkNvbmZpZ1tdPigpO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBEZXN0aW55IG1vZGUuICovXG4gICAgZGVuc2l0eU1vZGUgPSBtb2RlbDxUYWJEZXN0aW55TW9kZT4oJ2luaGVyaXQnKTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gSWNvbiBmb250ICovXG4gICAgaWNvblRhYkZvbnQgPSBpbnB1dDxJY29uRm9udD4oJ1NBUC1pY29ucycpO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBEaXNhYmxlIG9yIGVuYWJsZSByZW9yZGVyaW5nKGRyYWcgYW5kIGRyb3ApIGZlYXR1cmUuIChzdXBwb3J0ZWQgYnkgdGV4dCB0eXBlIG9ubHkpICovXG4gICAgZW5hYmxlVGFiUmVvcmRlcmluZyA9IGlucHV0KGZhbHNlKTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gQm9vbGVhbiBmbGFnIGluZGljYXRpbmcgdG8gc2hvdyB0b3RhbCB0YWIuKHN1cHBvcnRlZCBieSBmaWx0ZXIgdHlwZSBvbmx5KSAqL1xuICAgIHNob3dUb3RhbFRhYiA9IGlucHV0KHRydWUpO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gcmVuZGVyIGljb24gdGFiIGl0ZW0gYXMgbXVsdGktY2xpY2sgdmFyaWFudC4gKi9cbiAgICBtdWx0aUNsaWNrID0gaW5wdXQoZmFsc2UpO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBMYXlvdXQgdHlwZSBmb3IgdGFiIChzdXBwb3J0ZWQgYnkgdGV4dCB0eXBlIG9ubHkpICovXG4gICAgbGF5b3V0TW9kZSA9IGlucHV0PCdyb3cnIHwgJ2NvbHVtbic+KCdyb3cnKTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gSWNvbiB0YWIgYmFyIGJhY2tncm91bmQgdHlwZS4gKi9cbiAgICBpY29uVGFiQmFja2dyb3VuZCA9IGlucHV0PEljb25UYWJCYXJCYWNrZ3JvdW5kPignc29saWQnKTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gSWNvbiB0YWIgYmFyIHNpemUuICovXG4gICAgaWNvblRhYlNpemUgPSBpbnB1dDxJY29uVGFiQmFyU2l6ZT4oKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBc3NvY2lhdGlvbnMgZm9yIGNvbG9ycyBvZiB0aGUgdGFicy5cbiAgICAgKiBJZiBhbnkgb2YgdGhlIGNvbG9yIGFzc29jaWF0aW9ucyBwcm92aWRlZCwgdGhleSdsbCBiZSByZWFkIGJ5IHNjcmVlbnJlYWRlciBpbnN0ZWFkIG9mIHRoZSBhY3R1YWwgY29sb3JcbiAgICAgKi9cbiAgICBjb2xvckFzc29jaWF0aW9ucyA9IGlucHV0PFRhYkNvbG9yQXNzb2NpYXRpb25zPigpO1xuXG4gICAgLyoqXG4gICAgICogTWF4aW11bSBoZWlnaHQgb2YgdGhlIGNvbnRlbnQuXG4gICAgICogV29ya3Mgb25seSBmb3IgY29udGVudC1wcm9qZWN0ZWQgdGFiIGNvbnRlbnQuXG4gICAgICovXG4gICAgbWF4Q29udGVudEhlaWdodCA9IGlucHV0KCcxMDAlJyk7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRzIHdoZW4gc29tZSB0YWIgaXMgc2VsZWN0ZWQuICovXG4gICAgaWNvblRhYlNlbGVjdGVkID0gb3V0cHV0PEljb25UYWJCYXJJdGVtPigpO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0cyB3aGVuIHVzZXIgZHJvcCB0YWIuICovXG4gICAgaWNvblRhYlJlb3JkZXJlZCA9IG91dHB1dDxJY29uVGFiQmFySXRlbVtdPigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB1c2VyIGNsaWNrcyBvbiB4IGljb24gaW4gdGFiLiAqL1xuICAgIGNsb3NlVGFiID0gb3V0cHV0PEljb25UYWJCYXJJdGVtPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjaGlsZHJlbiA9IGNvbnRlbnRDaGlsZHJlbihJY29uVGFiQmFyVGFiQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3Njcm9sbGJhciA9IHZpZXdDaGlsZChTY3JvbGxiYXJEaXJlY3RpdmUpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB0YWJEaXJlY3RpdmVzID0gdmlld0NoaWxkcmVuKEljb25UYWJCYXJUYWJDb250ZW50RGlyZWN0aXZlKTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtdGFicy1jdXN0b20nKVxuICAgIHByaXZhdGUgZ2V0IF9jdXN0b21UYWJzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5EeW5hbWljUGFnZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBoZWFkZXJDb250YWluZXIoKTogTnVsbGFibGU8RWxlbWVudFJlZj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faWNvblRhYkJhckNtcCgpPy5oZWFkZXJFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2Nzc0NsYXNzRm9yQ29udGFpbmVyOiBzdHJpbmdbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2Rpc2FibGVTY3JvbGxTcHkgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2luaXQgPSB0cnVlO1xuXG4gICAgLyoqIFNjcm9sbGFibGUgZWxlbWVudCByZWZlcmVuY2UuICovXG4gICAgZ2V0IHNjcm9sbGFibGVFbGVtZW50KCk6IE51bGxhYmxlPEVsZW1lbnRSZWY+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Njcm9sbGJhcigpPy5lbGVtZW50UmVmO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3NlbGVjdGVkVWlkID0gc2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3RhYnMkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fZ2VuZXJhdGVUYWJCYXJJdGVtcyh0aGlzLl90YWJzQ29uZmlnJCgpKSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9mbGF0VGFicyQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9nZW5lcmF0ZUZsYXRUYWJzKHRoaXMuX3RhYnMkKCkpKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3RhYlJlbmRlcmVyJCA9IHNpZ25hbDxJY29uVGFiQmFySXRlbSB8IG51bGw+KG51bGwpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfcnRsJCA9IGNvbXB1dGVkKCgpID0+ICEhdGhpcy5fcnRsU2VydmljZT8ucnRsU2lnbmFsKCkpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfdGFic0NvbmZpZyQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhYkNvbmZpZyA9IHRoaXMudGFic0NvbmZpZygpO1xuICAgICAgICBpZiAodGFiQ29uZmlnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50YWJzQ29uZmlnKCkgYXMgVGFiQ29uZmlnW107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHRoaXMuY2hpbGRyZW4oKTtcbiAgICAgICAgaWYgKCFjaGlsZHJlbikge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjaGlsZHJlbi5tYXAoKHQpID0+IHRoaXMuX2dlbmVyYXRlVGFiQ29uZmlnKHQpKTtcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2luRHluYW1pY1BhZ2UgPSAhIWluamVjdChGRF9EWU5BTUlDX1BBR0UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9pY29uVGFiQmFyQ21wID0gdmlld0NoaWxkPE51bGxhYmxlPEljb25UYWJCYXJCYXNlPj4oSWNvblRhYkJhckJhc2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9jb250ZW50RGVuc2l0eVNlcnZpY2U6IENvbnRlbnREZW5zaXR5U2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfcnRsU2VydmljZTogUnRsU2VydmljZVxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Nzc0NsYXNzRm9yQ29udGFpbmVyID0gdGhpcy5fZ2VuZXJhdGVDb250YWluZXJTdHlsZXMoKTtcblxuICAgICAgICBpZiAodGhpcy5kZW5zaXR5TW9kZSgpID09PSAnaW5oZXJpdCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRlbnREZW5zaXR5U2VydmljZT8uX2NvbnRlbnREZW5zaXR5TGlzdGVuZXJcbiAgICAgICAgICAgICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZGVuc2l0eSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlbnNpdHlNb2RlLnNldChkZW5zaXR5KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlbnNpdHkgIT09ICdjb21wYWN0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3NzQ2xhc3NGb3JDb250YWluZXIgPSB0aGlzLl9jc3NDbGFzc0ZvckNvbnRhaW5lci5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNzc0NsYXNzKSA9PiBjc3NDbGFzcyAhPT0gJ2ZkLWljb24tdGFiLWJhci0tY29tcGFjdCdcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jc3NDbGFzc0ZvckNvbnRhaW5lci5wdXNoKCdmZC1pY29uLXRhYi1iYXItLWNvbXBhY3QnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHBhcmFtIGV2ZW50IHJlb3JkZXJlZCBhcnJheSBvZiBJY29uVGFiQmFySXRlbVxuICAgICAqL1xuICAgIF9vblJlb3JkZXIoZXZlbnQ6IEljb25UYWJCYXJJdGVtW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pY29uVGFiUmVvcmRlcmVkLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gc2VsZWN0ZWRJdGVtXG4gICAgICovXG4gICAgX3NlbGVjdEl0ZW0oc2VsZWN0ZWRJdGVtOiBJY29uVGFiQmFySXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJSZW5kZXJlciQuc2V0KHNlbGVjdGVkSXRlbSk7XG4gICAgICAgIHRoaXMuaWNvblRhYlNlbGVjdGVkLmVtaXQoc2VsZWN0ZWRJdGVtKTtcblxuICAgICAgICBpZiAodGhpcy5zdGFja0NvbnRlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX3Njcm9sbFRvUGFuZWwodGhpcy50YWJEaXJlY3RpdmVzKCkuZmluZCgodGFiKSA9PiB0YWIudUlkKCkgPT09IHNlbGVjdGVkSXRlbS51SWQpISk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jbG9zZVRhYihpdGVtOiBJY29uVGFiQmFySXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlVGFiLmVtaXQoaXRlbSk7XG4gICAgfVxuXG4gICAgLyoqIFByb2dyYW1tYXRpY2FsbHkgc2VsZWN0IHRhYi4gKi9cbiAgICBzZWxlY3RUYWIoaWQ6IE51bGxhYmxlPHN0cmluZz4pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gdGhpcy5fZmxhdFRhYnMkKCkuZmluZCgodCkgPT4gdC5pZCA9PT0gaWQpO1xuICAgICAgICBpZiAoIXNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkVWlkLnNldChzZWxlY3RlZEl0ZW0udUlkKTtcbiAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShzZWxlY3RlZEl0ZW0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaGlnaGxpZ2h0QWN0aXZlVGFiKGlkOiBOdWxsYWJsZTxzdHJpbmc+LCBzY3JvbGwgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fZGlzYWJsZVNjcm9sbFNweSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGl2ZVRhYiA9IHRoaXMudGFiRGlyZWN0aXZlcygpLmZpbmQoKHRhYikgPT4gdGFiLmlkKCkgPT09IGlkKTtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRVaWQuc2V0KGFjdGl2ZVRhYj8udUlkKCkgfHwgdW5kZWZpbmVkKTtcbiAgICAgICAgaWYgKHNjcm9sbCAmJiBhY3RpdmVUYWIpIHtcbiAgICAgICAgICAgIHRoaXMuX3Njcm9sbFRvUGFuZWwoYWN0aXZlVGFiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcmV0dXJucyBhcnJheSBvZiBjc3MgY2xhc3NlcyBmb3IgaWNvbi10YWItYmFyIGNvbnRhaW5lclxuICAgICAqL1xuICAgIHByaXZhdGUgX2dlbmVyYXRlQ29udGFpbmVyU3R5bGVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3Qgc3R5bGVzID0gW2BmZC1pY29uLXRhYi1iYXItLSR7dGhpcy5pY29uVGFiVHlwZSgpfWBdO1xuICAgICAgICBjb25zdCB0YWJzQ29uZmlnID0gdGhpcy50YWJzQ29uZmlnKCk7XG4gICAgICAgIGlmICh0YWJzQ29uZmlnICYmIHRoaXMuaWNvblRhYlR5cGUoKSA9PT0gJ3Byb2Nlc3MnICYmIHRhYnNDb25maWdbMF0uaWNvbikge1xuICAgICAgICAgICAgc3R5bGVzLnB1c2goJ2ZkLWljb24tdGFiLWJhci0taWNvbicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmljb25UYWJCYWNrZ3JvdW5kKCkgIT09ICdzb2xpZCcpIHtcbiAgICAgICAgICAgIHN0eWxlcy5wdXNoKGBmZC1pY29uLXRhYi1iYXItLSR7dGhpcy5pY29uVGFiQmFja2dyb3VuZCgpfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmljb25UYWJTaXplKCkpIHtcbiAgICAgICAgICAgIHN0eWxlcy5wdXNoKGBmZC1pY29uLXRhYi1iYXItLSR7dGhpcy5pY29uVGFiU2l6ZSgpIX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kZW5zaXR5TW9kZSgpID09PSAnY29tcGFjdCcpIHtcbiAgICAgICAgICAgIHN0eWxlcy5wdXNoKCdmZC1pY29uLXRhYi1iYXItLWNvbXBhY3QnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5sYXlvdXRNb2RlKCkgPT09ICdjb2x1bW4nKSB7XG4gICAgICAgICAgICBzdHlsZXMucHVzaCgnZmQtaWNvbi10YWItYmFyLS1jb3VudGVycycpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHlsZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVUYWJDb25maWcodGFiOiBJY29uVGFiQmFyVGFiQ29tcG9uZW50KTogVGFiQ29uZmlnIHtcbiAgICAgICAgY29uc3QgdGFiQ29uZmlnOiBUYWJDb25maWcgPSB7XG4gICAgICAgICAgICBsYWJlbDogdGFiLmxhYmVsKCksXG4gICAgICAgICAgICBjb2xvcjogdGFiLmNvbG9yKCksXG4gICAgICAgICAgICBhY3RpdmU6IHRhYi5hY3RpdmUoKSxcbiAgICAgICAgICAgIGNvdW50ZXI6IHRhYi5jb3VudGVyKCksXG4gICAgICAgICAgICByZW5kZXJlcjogdGFiLnJlbmRlcmVyKCksXG4gICAgICAgICAgICBpZDogdGFiLmlkKCksXG4gICAgICAgICAgICBzdWJJdGVtczogdGFiLmNoaWxkcmVuKCkubWFwKChjKSA9PiB0aGlzLl9nZW5lcmF0ZVRhYkNvbmZpZyhjKSlcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGFiQ29uZmlnO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2Nyb2xsVG9QYW5lbCh0YWJQYW5lbDogTnVsbGFibGU8SWNvblRhYkJhclRhYkNvbnRlbnREaXJlY3RpdmU+KTogdm9pZCB7XG4gICAgICAgIGlmICghdGFiUGFuZWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzY3JvbGxiYXIgPSB0aGlzLl9zY3JvbGxiYXIoKTtcbiAgICAgICAgaWYgKCFzY3JvbGxiYXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYW5lbEVsZW1lbnQgPSB0YWJQYW5lbC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSBzY3JvbGxiYXIuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBkaXN0YW5jZVRvU2Nyb2xsID0gcGFuZWxFbGVtZW50Lm9mZnNldFRvcCAtIGNvbnRhaW5lckVsZW1lbnQub2Zmc2V0VG9wO1xuICAgICAgICBjb25zdCBtYXhpbXVtU2Nyb2xsVG9wID0gY29udGFpbmVyRWxlbWVudC5zY3JvbGxIZWlnaHQgLSBjb250YWluZXJFbGVtZW50LmNsaWVudEhlaWdodDtcbiAgICAgICAgY29uc3QgY3VycmVudFNjcm9sbFBvc2l0aW9uID0gTWF0aC5jZWlsKGNvbnRhaW5lckVsZW1lbnQuc2Nyb2xsVG9wKTtcblxuICAgICAgICBpZiAoIShjdXJyZW50U2Nyb2xsUG9zaXRpb24gPT09IG1heGltdW1TY3JvbGxUb3AgJiYgZGlzdGFuY2VUb1Njcm9sbCA+IG1heGltdW1TY3JvbGxUb3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9kaXNhYmxlU2Nyb2xsU3B5ID0gdHJ1ZTtcbiAgICAgICAgICAgIGZyb21FdmVudChjb250YWluZXJFbGVtZW50LCAnc2Nyb2xsJylcbiAgICAgICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTAwKSwgZmlyc3QoKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gKHRoaXMuX2Rpc2FibGVTY3JvbGxTcHkgPSBmYWxzZSkpO1xuICAgICAgICAgICAgc2Nyb2xsVG9wKGNvbnRhaW5lckVsZW1lbnQsIGRpc3RhbmNlVG9TY3JvbGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBkZXNjcmlwdGlvbiBnZW5lcmF0ZSBJY29uVGFiSXRlbXMgZnJvbSBUYWJDb25maWcgYXJyYXlcbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZW5lcmF0ZVRhYkJhckl0ZW1zKFxuICAgICAgICBjb25maWc6IFRhYkNvbmZpZ1tdLFxuICAgICAgICBpbmRleFByZWZpeCA9ICcnLFxuICAgICAgICBmbGF0SW5kZXhSZWY/OiBGbGF0SW5kZXgsXG4gICAgICAgIHBhcmVudFVJZD86IHN0cmluZ1xuICAgICk6IEljb25UYWJCYXJJdGVtW10ge1xuICAgICAgICBmbGF0SW5kZXhSZWYgPSBmbGF0SW5kZXhSZWYgfHwgeyB2YWx1ZTogMCB9O1xuICAgICAgICByZXR1cm4gY29uZmlnLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHVJZCA9IGAke2luZGV4UHJlZml4fSR7aW5kZXh9YDtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogSWNvblRhYkJhckl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgICAgICBjc3NDbGFzc2VzOiBbXSxcbiAgICAgICAgICAgICAgICB1SWQsXG4gICAgICAgICAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwYXJlbnRVSWQsXG4gICAgICAgICAgICAgICAgZmxhdEluZGV4OiBmbGF0SW5kZXhSZWYhLnZhbHVlKyssXG4gICAgICAgICAgICAgICAgc3ViSXRlbXM6IHRoaXMuX2dlbmVyYXRlVGFiQmFySXRlbXMoXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uc3ViSXRlbXMgfHwgW10sXG4gICAgICAgICAgICAgICAgICAgIGAke3VJZH0ke1VOSVFVRV9LRVlfU0VQQVJBVE9SfWAsXG4gICAgICAgICAgICAgICAgICAgIGZsYXRJbmRleFJlZixcbiAgICAgICAgICAgICAgICAgICAgdUlkXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChpdGVtLmNvbG9yKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LmNzc0NsYXNzZXMgPSBbYGZkLWljb24tdGFiLWJhcl9faXRlbS0tJHtpdGVtLmNvbG9yfWBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVGbGF0VGFicyh0YWJzOiBJY29uVGFiQmFySXRlbVtdKTogSWNvblRhYkJhckl0ZW1bXSB7XG4gICAgICAgIGNvbnN0IGZsYXRUYWJzID0gdGFicy5yZWR1Y2UoKGFjYzogSWNvblRhYkJhckl0ZW1bXSwgdGFiKSA9PiB7XG4gICAgICAgICAgICBhY2MucHVzaCh0YWIpO1xuICAgICAgICAgICAgaWYgKHRhYi5zdWJJdGVtcykge1xuICAgICAgICAgICAgICAgIGFjYy5wdXNoKC4uLnRoaXMuX2dlbmVyYXRlRmxhdFRhYnModGFiLnN1Ykl0ZW1zKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCBbXSk7XG5cbiAgICAgICAgcmV0dXJuIGZsYXRUYWJzO1xuICAgIH1cbn1cblxuLyoqIEBoaWRkZW4gaGVscGVyIG9iamVjdCB0aGF0IGlzIHVzZWQgaW4gdGFiIGdlbmVyYXRpb24gZnVuY3Rpb25zIHRvIGNhbGN1bGF0ZSB0aGVpciBpbmRleGVzIG5vdCBkZXBlbmRpbmcgb24gbGV2ZWwgb2YgbmVzdGluZyAqL1xuaW50ZXJmYWNlIEZsYXRJbmRleCB7XG4gICAgdmFsdWU6IG51bWJlcjtcbn1cbiIsIjxkaXYgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJcIiBbY2xhc3NdPVwiX2Nzc0NsYXNzRm9yQ29udGFpbmVyXCI+XG4gICAgQGlmIChpY29uVGFiVHlwZSgpID09PSAndGV4dCcpIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRleHRUeXBlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICB9XG4gICAgQGlmIChpY29uVGFiVHlwZSgpID09PSAnaWNvbicgfHwgaWNvblRhYlR5cGUoKSA9PT0gJ2ljb24tb25seScpIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImljb25UeXBlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICB9XG4gICAgQGlmIChpY29uVGFiVHlwZSgpID09PSAnZmlsdGVyJykge1xuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmlsdGVyVHlwZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgfVxuICAgIEBpZiAoaWNvblRhYlR5cGUoKSA9PT0gJ3Byb2Nlc3MnKSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJwcm9jZXNzVHlwZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgfVxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2NvbnRlbnRcIlxuICAgICAgICBmZC1zY3JvbGxiYXJcbiAgICAgICAgKHNweUNoYW5nZSk9XCJoaWdobGlnaHRBY3RpdmVUYWIoJGV2ZW50LmlkKVwiXG4gICAgICAgIFtzY3JvbGxTcHlEaXNhYmxlZF09XCIhc3RhY2tDb250ZW50IHx8IF9kaXNhYmxlU2Nyb2xsU3B5XCJcbiAgICAgICAgZmRTY3JvbGxTcHlcbiAgICAgICAgW3RyYWNrZWRUYWdzXT1cIlsnZmRwLWljb24tdGFiLWJhci10YWItY29udGVudCddXCJcbiAgICAgICAgW3N0eWxlLm1heC1oZWlnaHRdPVwibWF4Q29udGVudEhlaWdodCgpXCJcbiAgICA+XG4gICAgICAgIEBpZiAoc3RhY2tDb250ZW50KSB7XG4gICAgICAgICAgICBAZm9yICh0YWIgb2YgX2ZsYXRUYWJzJCgpOyB0cmFjayB0YWIpIHtcbiAgICAgICAgICAgICAgICA8ZmRwLWljb24tdGFiLWJhci10YWItY29udGVudCBbaWRdPVwidGFiLmlkXCIgW3VJZF09XCJ0YWIudUlkXCIgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX3RhYi1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWIucmVuZGVyZXIgfHwgbnVsbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9mZHAtaWNvbi10YWItYmFyLXRhYi1jb250ZW50PlxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpZiAoX3RhYlJlbmRlcmVyJCgpOyBhcyB0YWJSZW5kZXJlcikge1xuICAgICAgICAgICAgICAgIDxmZHAtaWNvbi10YWItYmFyLXRhYi1jb250ZW50XG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJ0YWJSZW5kZXJlci5pZFwiXG4gICAgICAgICAgICAgICAgICAgIFt1SWRdPVwidGFiUmVuZGVyZXIudUlkXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX3RhYi1jb250ZW50XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWJSZW5kZXJlci5yZW5kZXJlciB8fCBudWxsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2ZkcC1pY29uLXRhYi1iYXItdGFiLWNvbnRlbnQ+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZkcEljb25UYWJCYXJGcmVlQ29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjcHJvY2Vzc1R5cGU+XG4gICAgPGZkcC1pY29uLXRhYi1iYXItcHJvY2Vzcy10eXBlXG4gICAgICAgIFt0YWJzXT1cIl90YWJzJCgpXCJcbiAgICAgICAgW2lzUnRsXT1cIl9ydGwkKClcIlxuICAgICAgICBbc2VsZWN0ZWRVaWRdPVwiX3NlbGVjdGVkVWlkKClcIlxuICAgICAgICAoc2VsZWN0ZWRVaWRDaGFuZ2UpPVwiX3NlbGVjdGVkVWlkLnNldCgkZXZlbnQpXCJcbiAgICAgICAgW2RlbnNpdHlNb2RlXT1cImRlbnNpdHlNb2RlKClcIlxuICAgICAgICBbY29sb3JBc3NvY2lhdGlvbnNdPVwiY29sb3JBc3NvY2lhdGlvbnMoKVwiXG4gICAgICAgIChzZWxlY3RlZCk9XCJfc2VsZWN0SXRlbSgkZXZlbnQpXCJcbiAgICA+PC9mZHAtaWNvbi10YWItYmFyLXByb2Nlc3MtdHlwZT5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2ZpbHRlclR5cGU+XG4gICAgPGZkcC1pY29uLXRhYi1iYXItZmlsdGVyLXR5cGVcbiAgICAgICAgW3RhYnNdPVwiX3RhYnMkKClcIlxuICAgICAgICBbc2hvd1RvdGFsVGFiXT1cInNob3dUb3RhbFRhYigpXCJcbiAgICAgICAgW2lzUnRsXT1cIl9ydGwkKClcIlxuICAgICAgICBbc2VsZWN0ZWRVaWRdPVwiX3NlbGVjdGVkVWlkKClcIlxuICAgICAgICAoc2VsZWN0ZWRVaWRDaGFuZ2UpPVwiX3NlbGVjdGVkVWlkLnNldCgkZXZlbnQpXCJcbiAgICAgICAgW2RlbnNpdHlNb2RlXT1cImRlbnNpdHlNb2RlKClcIlxuICAgICAgICBbY29sb3JBc3NvY2lhdGlvbnNdPVwiY29sb3JBc3NvY2lhdGlvbnMoKVwiXG4gICAgICAgIChzZWxlY3RlZCk9XCJfc2VsZWN0SXRlbSgkZXZlbnQpXCJcbiAgICA+PC9mZHAtaWNvbi10YWItYmFyLWZpbHRlci10eXBlPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjaWNvblR5cGU+XG4gICAgPGZkcC1pY29uLXRhYi1iYXItaWNvbi10eXBlXG4gICAgICAgIFtzaG93TGFiZWxdPVwiaWNvblRhYlR5cGUoKSA9PT0gJ2ljb24nXCJcbiAgICAgICAgW3RhYnNdPVwiX3RhYnMkKClcIlxuICAgICAgICBbaXNSdGxdPVwiX3J0bCQoKVwiXG4gICAgICAgIFtzZWxlY3RlZFVpZF09XCJfc2VsZWN0ZWRVaWQoKVwiXG4gICAgICAgIChzZWxlY3RlZFVpZENoYW5nZSk9XCJfc2VsZWN0ZWRVaWQuc2V0KCRldmVudClcIlxuICAgICAgICBbZGVuc2l0eU1vZGVdPVwiZGVuc2l0eU1vZGUoKVwiXG4gICAgICAgIFtjb2xvckFzc29jaWF0aW9uc109XCJjb2xvckFzc29jaWF0aW9ucygpXCJcbiAgICAgICAgKHNlbGVjdGVkKT1cIl9zZWxlY3RJdGVtKCRldmVudClcIlxuICAgICAgICAoY2xvc2VUYWIpPVwiX2Nsb3NlVGFiKCRldmVudClcIlxuICAgID48L2ZkcC1pY29uLXRhYi1iYXItaWNvbi10eXBlPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjdGV4dFR5cGU+XG4gICAgPGZkcC1pY29uLXRhYi1iYXItdGV4dC10eXBlXG4gICAgICAgIFt0YWJzXT1cIl90YWJzJCgpXCJcbiAgICAgICAgW211bHRpQ2xpY2tdPVwibXVsdGlDbGljaygpXCJcbiAgICAgICAgW2xheW91dE1vZGVdPVwibGF5b3V0TW9kZSgpXCJcbiAgICAgICAgW2lzUnRsXT1cIl9ydGwkKClcIlxuICAgICAgICBbc2VsZWN0ZWRVaWRdPVwiX3NlbGVjdGVkVWlkKClcIlxuICAgICAgICAoc2VsZWN0ZWRVaWRDaGFuZ2UpPVwiX3NlbGVjdGVkVWlkLnNldCgkZXZlbnQpXCJcbiAgICAgICAgW2RlbnNpdHlNb2RlXT1cImRlbnNpdHlNb2RlKClcIlxuICAgICAgICBbZW5hYmxlVGFiUmVvcmRlcmluZ109XCJlbmFibGVUYWJSZW9yZGVyaW5nKClcIlxuICAgICAgICBbY29sb3JBc3NvY2lhdGlvbnNdPVwiY29sb3JBc3NvY2lhdGlvbnMoKVwiXG4gICAgICAgIChyZW9yZGVyZWQpPVwiX29uUmVvcmRlcigkZXZlbnQpXCJcbiAgICAgICAgKHNlbGVjdGVkKT1cIl9zZWxlY3RJdGVtKCRldmVudClcIlxuICAgICAgICAoY2xvc2VUYWIpPVwiX2Nsb3NlVGFiKCRldmVudClcIlxuICAgID48L2ZkcC1pY29uLXRhYi1iYXItdGV4dC10eXBlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
303
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vaWNvbi10YWItYmFyL2ljb24tdGFiLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9pY29uLXRhYi1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsZUFBZSxFQUNmLFVBQVUsRUFFVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBWSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQVcsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7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Z0JBQWdCO3dCQUNoQiw4QkFBOEI7d0JBQzlCLDZCQUE2Qjt3QkFDN0IsMkJBQTJCO3dCQUMzQiwyQkFBMkI7d0JBQzNCLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQiw2QkFBNkI7cUJBQ2hDOzswQkF1SUksUUFBUTs7MEJBQ1IsUUFBUTt5Q0FoSWIsWUFBWTtzQkFEWCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQWtFMUIsV0FBVztzQkFEdEIsV0FBVzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgY29tcHV0ZWQsXG4gICAgY29udGVudENoaWxkcmVuLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgaW5wdXQsXG4gICAgbW9kZWwsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIG91dHB1dCxcbiAgICBzaWduYWwsXG4gICAgdmlld0NoaWxkLFxuICAgIHZpZXdDaGlsZHJlbixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5U2VydmljZSwgTnVsbGFibGUsIFJ0bFNlcnZpY2UsIHNjcm9sbFRvcCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEZEX0RZTkFNSUNfUEFHRSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9keW5hbWljLXBhZ2UnO1xuaW1wb3J0IHsgSWNvbkZvbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvaWNvbic7XG5pbXBvcnQgeyBTY3JvbGxTcHlEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2Nyb2xsLXNweSc7XG5pbXBvcnQgeyBTY3JvbGxiYXJEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2Nyb2xsYmFyJztcbmltcG9ydCB7IEZEX1RBQkxJU1QsIFRhYkxpc3QgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2hhcmVkJztcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJY29uVGFiQmFyQmFzZSB9IGZyb20gJy4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBJY29uVGFiQmFyRmlsdGVyVHlwZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pY29uLXRhYi1iYXItZmlsdGVyLXR5cGUvaWNvbi10YWItYmFyLWZpbHRlci10eXBlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJY29uVGFiQmFySWNvblR5cGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaWNvbi10YWItYmFyLWljb24tdHlwZS9pY29uLXRhYi1iYXItaWNvbi10eXBlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJY29uVGFiQmFyUHJvY2Vzc1R5cGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaWNvbi10YWItYmFyLXByb2Nlc3MtdHlwZS9pY29uLXRhYi1iYXItcHJvY2Vzcy10eXBlLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIEljb25UYWJCYXJUYWJDb21wb25lbnQsXG4gICAgSWNvblRhYkJhclRhYkNvbnRlbnREaXJlY3RpdmVcbn0gZnJvbSAnLi9jb21wb25lbnRzL2ljb24tdGFiLWJhci10YWIvaWNvbi10YWItYmFyLXRhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvblRhYkJhclRleHRUeXBlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ljb24tdGFiLWJhci10ZXh0LXR5cGUvaWNvbi10YWItYmFyLXRleHQtdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVU5JUVVFX0tFWV9TRVBBUkFUT1IgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBJY29uVGFiQmFySXRlbSB9IGZyb20gJy4vaW50ZXJmYWNlcy9pY29uLXRhYi1iYXItaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGFiQ29sb3JBc3NvY2lhdGlvbnMgfSBmcm9tICcuL2ludGVyZmFjZXMvdGFiLWNvbG9yLWFzc29jaWF0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGFiQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3RhYi1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEljb25UYWJCYXJCYWNrZ3JvdW5kLCBJY29uVGFiQmFyU2l6ZSwgVGFiRGVzdGlueU1vZGUsIFRhYlR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtaWNvbi10YWItYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaWNvbi10YWItYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vaWNvbi10YWItYmFyLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX1RBQkxJU1QsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogSWNvblRhYkJhckNvbXBvbmVudFxuICAgICAgICB9XG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIEljb25UYWJCYXJQcm9jZXNzVHlwZUNvbXBvbmVudCxcbiAgICAgICAgSWNvblRhYkJhckZpbHRlclR5cGVDb21wb25lbnQsXG4gICAgICAgIEljb25UYWJCYXJJY29uVHlwZUNvbXBvbmVudCxcbiAgICAgICAgSWNvblRhYkJhclRleHRUeXBlQ29tcG9uZW50LFxuICAgICAgICBTY3JvbGxiYXJEaXJlY3RpdmUsXG4gICAgICAgIFNjcm9sbFNweURpcmVjdGl2ZSxcbiAgICAgICAgSWNvblRhYkJhclRhYkNvbnRlbnREaXJlY3RpdmVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEljb25UYWJCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIFRhYkxpc3Qge1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gb3BlbiB0YWIgY29udGVudCBvbmUgdW5kZXIgYW5vdGhlciB3aXRob3V0IGNvbGxhcHNpbmcuXG4gICAgICogV29ya3Mgb25seSBmb3IgY29udGVudC1wcm9qZWN0ZWQgdGFiIGNvbnRlbnQuXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc3RhY2tDb250ZW50ID0gZmFsc2U7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIFR5cGUgb2YgdGFiIGJhciB2aWV3LiAqL1xuICAgIGljb25UYWJUeXBlID0gaW5wdXQ8VGFiVHlwZT4oJ3RleHQnKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBIHRhYiBiYXIgY29uZmlndXJhdGlvbiB0aGF0IHN0b3JlcyB0aGUgc3RhdGUgb2YgZWFjaCB0YWIuIEJhc2VkIG9uIHRoaXMgY29uZmlndXJhdGlvbiwgYSB0YWIgYmFyIGlzIHJlcHJlc2VudGluZy5cbiAgICAgKi9cbiAgICB0YWJzQ29uZmlnID0gbW9kZWw8VGFiQ29uZmlnW10+KCk7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIERlc3RpbnkgbW9kZS4gKi9cbiAgICBkZW5zaXR5TW9kZSA9IG1vZGVsPFRhYkRlc3RpbnlNb2RlPignaW5oZXJpdCcpO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBJY29uIGZvbnQgKi9cbiAgICBpY29uVGFiRm9udCA9IGlucHV0PEljb25Gb250PignU0FQLWljb25zJyk7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIERpc2FibGUgb3IgZW5hYmxlIHJlb3JkZXJpbmcoZHJhZyBhbmQgZHJvcCkgZmVhdHVyZS4gKHN1cHBvcnRlZCBieSB0ZXh0IHR5cGUgb25seSkgKi9cbiAgICBlbmFibGVUYWJSZW9yZGVyaW5nID0gaW5wdXQoZmFsc2UpO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBCb29sZWFuIGZsYWcgaW5kaWNhdGluZyB0byBzaG93IHRvdGFsIHRhYi4oc3VwcG9ydGVkIGJ5IGZpbHRlciB0eXBlIG9ubHkpICovXG4gICAgc2hvd1RvdGFsVGFiID0gaW5wdXQodHJ1ZSk7XG5cbiAgICAvKiogV2hldGhlciB0byByZW5kZXIgaWNvbiB0YWIgaXRlbSBhcyBtdWx0aS1jbGljayB2YXJpYW50LiAqL1xuICAgIG11bHRpQ2xpY2sgPSBpbnB1dChmYWxzZSk7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIExheW91dCB0eXBlIGZvciB0YWIgKHN1cHBvcnRlZCBieSB0ZXh0IHR5cGUgb25seSkgKi9cbiAgICBsYXlvdXRNb2RlID0gaW5wdXQ8J3JvdycgfCAnY29sdW1uJz4oJ3JvdycpO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBJY29uIHRhYiBiYXIgYmFja2dyb3VuZCB0eXBlLiAqL1xuICAgIGljb25UYWJCYWNrZ3JvdW5kID0gaW5wdXQ8SWNvblRhYkJhckJhY2tncm91bmQ+KCdzb2xpZCcpO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBJY29uIHRhYiBiYXIgc2l6ZS4gKi9cbiAgICBpY29uVGFiU2l6ZSA9IGlucHV0PEljb25UYWJCYXJTaXplPigpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEFzc29jaWF0aW9ucyBmb3IgY29sb3JzIG9mIHRoZSB0YWJzLlxuICAgICAqIElmIGFueSBvZiB0aGUgY29sb3IgYXNzb2NpYXRpb25zIHByb3ZpZGVkLCB0aGV5J2xsIGJlIHJlYWQgYnkgc2NyZWVucmVhZGVyIGluc3RlYWQgb2YgdGhlIGFjdHVhbCBjb2xvclxuICAgICAqL1xuICAgIGNvbG9yQXNzb2NpYXRpb25zID0gaW5wdXQ8VGFiQ29sb3JBc3NvY2lhdGlvbnM+KCk7XG5cbiAgICAvKipcbiAgICAgKiBNYXhpbXVtIGhlaWdodCBvZiB0aGUgY29udGVudC5cbiAgICAgKiBXb3JrcyBvbmx5IGZvciBjb250ZW50LXByb2plY3RlZCB0YWIgY29udGVudC5cbiAgICAgKi9cbiAgICBtYXhDb250ZW50SGVpZ2h0ID0gaW5wdXQoJzEwMCUnKTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gRW1pdHMgd2hlbiBzb21lIHRhYiBpcyBzZWxlY3RlZC4gKi9cbiAgICBpY29uVGFiU2VsZWN0ZWQgPSBvdXRwdXQ8SWNvblRhYkJhckl0ZW0+KCk7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRzIHdoZW4gdXNlciBkcm9wIHRhYi4gKi9cbiAgICBpY29uVGFiUmVvcmRlcmVkID0gb3V0cHV0PEljb25UYWJCYXJJdGVtW10+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHVzZXIgY2xpY2tzIG9uIHggaWNvbiBpbiB0YWIuICovXG4gICAgY2xvc2VUYWIgPSBvdXRwdXQ8SWNvblRhYkJhckl0ZW0+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNoaWxkcmVuID0gY29udGVudENoaWxkcmVuKEljb25UYWJCYXJUYWJDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2Nyb2xsYmFyID0gdmlld0NoaWxkKFNjcm9sbGJhckRpcmVjdGl2ZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHRhYkRpcmVjdGl2ZXMgPSB2aWV3Q2hpbGRyZW4oSWNvblRhYkJhclRhYkNvbnRlbnREaXJlY3RpdmUpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC10YWJzLWN1c3RvbScpXG4gICAgcHJpdmF0ZSBnZXQgX2N1c3RvbVRhYnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbkR5bmFtaWNQYWdlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IGhlYWRlckNvbnRhaW5lcigpOiBOdWxsYWJsZTxFbGVtZW50UmVmPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pY29uVGFiQmFyQ21wKCk/LmhlYWRlckVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY3NzQ2xhc3NGb3JDb250YWluZXI6IHN0cmluZ1tdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZGlzYWJsZVNjcm9sbFNweSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaW5pdCA9IHRydWU7XG5cbiAgICAvKiogU2Nyb2xsYWJsZSBlbGVtZW50IHJlZmVyZW5jZS4gKi9cbiAgICBnZXQgc2Nyb2xsYWJsZUVsZW1lbnQoKTogTnVsbGFibGU8RWxlbWVudFJlZj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2Nyb2xsYmFyKCk/LmVsZW1lbnRSZWY7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfc2VsZWN0ZWRVaWQgPSBzaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfdGFicyQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9nZW5lcmF0ZVRhYkJhckl0ZW1zKHRoaXMuX3RhYnNDb25maWckKCkpKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX2ZsYXRUYWJzJCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2dlbmVyYXRlRmxhdFRhYnModGhpcy5fdGFicyQoKSkpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfdGFiUmVuZGVyZXIkID0gc2lnbmFsPEljb25UYWJCYXJJdGVtIHwgbnVsbD4obnVsbCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9ydGwkID0gY29tcHV0ZWQoKCkgPT4gISF0aGlzLl9ydGxTZXJ2aWNlPy5ydGxTaWduYWwoKSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF90YWJzQ29uZmlnJCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgdGFiQ29uZmlnID0gdGhpcy50YWJzQ29uZmlnKCk7XG4gICAgICAgIGlmICh0YWJDb25maWcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRhYnNDb25maWcoKSBhcyBUYWJDb25maWdbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbigpO1xuICAgICAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuLm1hcCgodCkgPT4gdGhpcy5fZ2VuZXJhdGVUYWJDb25maWcodCkpO1xuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaW5EeW5hbWljUGFnZSA9ICEhaW5qZWN0KEZEX0RZTkFNSUNfUEFHRSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2ljb25UYWJCYXJDbXAgPSB2aWV3Q2hpbGQ8TnVsbGFibGU8SWNvblRhYkJhckJhc2U+PihJY29uVGFiQmFyQmFzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbnRlbnREZW5zaXR5U2VydmljZTogQ29udGVudERlbnNpdHlTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY3NzQ2xhc3NGb3JDb250YWluZXIgPSB0aGlzLl9nZW5lcmF0ZUNvbnRhaW5lclN0eWxlcygpO1xuXG4gICAgICAgIGlmICh0aGlzLmRlbnNpdHlNb2RlKCkgPT09ICdpbmhlcml0Jykge1xuICAgICAgICAgICAgdGhpcy5fY29udGVudERlbnNpdHlTZXJ2aWNlPy5fY29udGVudERlbnNpdHlMaXN0ZW5lclxuICAgICAgICAgICAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChkZW5zaXR5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVuc2l0eU1vZGUuc2V0KGRlbnNpdHkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGVuc2l0eSAhPT0gJ2NvbXBhY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jc3NDbGFzc0ZvckNvbnRhaW5lciA9IHRoaXMuX2Nzc0NsYXNzRm9yQ29udGFpbmVyLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY3NzQ2xhc3MpID0+IGNzc0NsYXNzICE9PSAnZmQtaWNvbi10YWItYmFyLS1jb21wYWN0J1xuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2Nzc0NsYXNzRm9yQ29udGFpbmVyLnB1c2goJ2ZkLWljb24tdGFiLWJhci0tY29tcGFjdCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gZXZlbnQgcmVvcmRlcmVkIGFycmF5IG9mIEljb25UYWJCYXJJdGVtXG4gICAgICovXG4gICAgX29uUmVvcmRlcihldmVudDogSWNvblRhYkJhckl0ZW1bXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmljb25UYWJSZW9yZGVyZWQuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBzZWxlY3RlZEl0ZW1cbiAgICAgKi9cbiAgICBfc2VsZWN0SXRlbShzZWxlY3RlZEl0ZW06IEljb25UYWJCYXJJdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYlJlbmRlcmVyJC5zZXQoc2VsZWN0ZWRJdGVtKTtcbiAgICAgICAgdGhpcy5pY29uVGFiU2VsZWN0ZWQuZW1pdChzZWxlY3RlZEl0ZW0pO1xuXG4gICAgICAgIGlmICh0aGlzLnN0YWNrQ29udGVudCkge1xuICAgICAgICAgICAgdGhpcy5fc2Nyb2xsVG9QYW5lbCh0aGlzLnRhYkRpcmVjdGl2ZXMoKS5maW5kKCh0YWIpID0+IHRhYi51SWQoKSA9PT0gc2VsZWN0ZWRJdGVtLnVJZCkhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2Nsb3NlVGFiKGl0ZW06IEljb25UYWJCYXJJdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2VUYWIuZW1pdChpdGVtKTtcbiAgICB9XG5cbiAgICAvKiogUHJvZ3JhbW1hdGljYWxseSBzZWxlY3QgdGFiLiAqL1xuICAgIHNlbGVjdFRhYihpZDogTnVsbGFibGU8c3RyaW5nPik6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB0aGlzLl9mbGF0VGFicyQoKS5maW5kKCh0KSA9PiB0LmlkID09PSBpZCk7XG4gICAgICAgIGlmICghc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRVaWQuc2V0KHNlbGVjdGVkSXRlbS51SWQpO1xuICAgICAgICB0aGlzLl9zZWxlY3RJdGVtKHNlbGVjdGVkSXRlbSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBoaWdobGlnaHRBY3RpdmVUYWIoaWQ6IE51bGxhYmxlPHN0cmluZz4sIHNjcm9sbCA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9kaXNhYmxlU2Nyb2xsU3B5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWN0aXZlVGFiID0gdGhpcy50YWJEaXJlY3RpdmVzKCkuZmluZCgodGFiKSA9PiB0YWIuaWQoKSA9PT0gaWQpO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZFVpZC5zZXQoYWN0aXZlVGFiPy51SWQoKSB8fCB1bmRlZmluZWQpO1xuICAgICAgICBpZiAoc2Nyb2xsICYmIGFjdGl2ZVRhYikge1xuICAgICAgICAgICAgdGhpcy5fc2Nyb2xsVG9QYW5lbChhY3RpdmVUYWIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEByZXR1cm5zIGFycmF5IG9mIGNzcyBjbGFzc2VzIGZvciBpY29uLXRhYi1iYXIgY29udGFpbmVyXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVDb250YWluZXJTdHlsZXMoKTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCBzdHlsZXMgPSBbYGZkLWljb24tdGFiLWJhci0tJHt0aGlzLmljb25UYWJUeXBlKCl9YF07XG4gICAgICAgIGNvbnN0IHRhYnNDb25maWcgPSB0aGlzLnRhYnNDb25maWcoKTtcbiAgICAgICAgaWYgKHRhYnNDb25maWcgJiYgdGhpcy5pY29uVGFiVHlwZSgpID09PSAncHJvY2VzcycgJiYgdGFic0NvbmZpZ1swXS5pY29uKSB7XG4gICAgICAgICAgICBzdHlsZXMucHVzaCgnZmQtaWNvbi10YWItYmFyLS1pY29uJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaWNvblRhYkJhY2tncm91bmQoKSAhPT0gJ3NvbGlkJykge1xuICAgICAgICAgICAgc3R5bGVzLnB1c2goYGZkLWljb24tdGFiLWJhci0tJHt0aGlzLmljb25UYWJCYWNrZ3JvdW5kKCl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaWNvblRhYlNpemUoKSkge1xuICAgICAgICAgICAgc3R5bGVzLnB1c2goYGZkLWljb24tdGFiLWJhci0tJHt0aGlzLmljb25UYWJTaXplKCkhfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRlbnNpdHlNb2RlKCkgPT09ICdjb21wYWN0Jykge1xuICAgICAgICAgICAgc3R5bGVzLnB1c2goJ2ZkLWljb24tdGFiLWJhci0tY29tcGFjdCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmxheW91dE1vZGUoKSA9PT0gJ2NvbHVtbicpIHtcbiAgICAgICAgICAgIHN0eWxlcy5wdXNoKCdmZC1pY29uLXRhYi1iYXItLWNvdW50ZXJzJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0eWxlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZW5lcmF0ZVRhYkNvbmZpZyh0YWI6IEljb25UYWJCYXJUYWJDb21wb25lbnQpOiBUYWJDb25maWcge1xuICAgICAgICBjb25zdCB0YWJDb25maWc6IFRhYkNvbmZpZyA9IHtcbiAgICAgICAgICAgIGxhYmVsOiB0YWIubGFiZWwoKSxcbiAgICAgICAgICAgIGNvbG9yOiB0YWIuY29sb3IoKSxcbiAgICAgICAgICAgIGFjdGl2ZTogdGFiLmFjdGl2ZSgpLFxuICAgICAgICAgICAgY291bnRlcjogdGFiLmNvdW50ZXIoKSxcbiAgICAgICAgICAgIHJlbmRlcmVyOiB0YWIucmVuZGVyZXIoKSxcbiAgICAgICAgICAgIGlkOiB0YWIuaWQoKSxcbiAgICAgICAgICAgIHN1Ykl0ZW1zOiB0YWIuY2hpbGRyZW4oKS5tYXAoKGMpID0+IHRoaXMuX2dlbmVyYXRlVGFiQ29uZmlnKGMpKVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0YWJDb25maWc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zY3JvbGxUb1BhbmVsKHRhYlBhbmVsOiBOdWxsYWJsZTxJY29uVGFiQmFyVGFiQ29udGVudERpcmVjdGl2ZT4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0YWJQYW5lbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNjcm9sbGJhciA9IHRoaXMuX3Njcm9sbGJhcigpO1xuICAgICAgICBpZiAoIXNjcm9sbGJhcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhbmVsRWxlbWVudCA9IHRhYlBhbmVsLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgY29udGFpbmVyRWxlbWVudCA9IHNjcm9sbGJhci5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlVG9TY3JvbGwgPSBwYW5lbEVsZW1lbnQub2Zmc2V0VG9wIC0gY29udGFpbmVyRWxlbWVudC5vZmZzZXRUb3A7XG4gICAgICAgIGNvbnN0IG1heGltdW1TY3JvbGxUb3AgPSBjb250YWluZXJFbGVtZW50LnNjcm9sbEhlaWdodCAtIGNvbnRhaW5lckVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICAgICAgICBjb25zdCBjdXJyZW50U2Nyb2xsUG9zaXRpb24gPSBNYXRoLmNlaWwoY29udGFpbmVyRWxlbWVudC5zY3JvbGxUb3ApO1xuXG4gICAgICAgIGlmICghKGN1cnJlbnRTY3JvbGxQb3NpdGlvbiA9PT0gbWF4aW11bVNjcm9sbFRvcCAmJiBkaXN0YW5jZVRvU2Nyb2xsID4gbWF4aW11bVNjcm9sbFRvcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVTY3JvbGxTcHkgPSB0cnVlO1xuICAgICAgICAgICAgZnJvbUV2ZW50KGNvbnRhaW5lckVsZW1lbnQsICdzY3JvbGwnKVxuICAgICAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMDApLCBmaXJzdCgpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiAodGhpcy5fZGlzYWJsZVNjcm9sbFNweSA9IGZhbHNlKSk7XG4gICAgICAgICAgICBzY3JvbGxUb3AoY29udGFpbmVyRWxlbWVudCwgZGlzdGFuY2VUb1Njcm9sbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGRlc2NyaXB0aW9uIGdlbmVyYXRlIEljb25UYWJJdGVtcyBmcm9tIFRhYkNvbmZpZyBhcnJheVxuICAgICAqL1xuICAgIHByaXZhdGUgX2dlbmVyYXRlVGFiQmFySXRlbXMoXG4gICAgICAgIGNvbmZpZzogVGFiQ29uZmlnW10sXG4gICAgICAgIGluZGV4UHJlZml4ID0gJycsXG4gICAgICAgIGZsYXRJbmRleFJlZj86IEZsYXRJbmRleCxcbiAgICAgICAgcGFyZW50VUlkPzogc3RyaW5nXG4gICAgKTogSWNvblRhYkJhckl0ZW1bXSB7XG4gICAgICAgIGZsYXRJbmRleFJlZiA9IGZsYXRJbmRleFJlZiB8fCB7IHZhbHVlOiAwIH07XG4gICAgICAgIHJldHVybiBjb25maWcubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdUlkID0gYCR7aW5kZXhQcmVmaXh9JHtpbmRleH1gO1xuICAgICAgICAgICAgaXRlbS5jb2xvciA9IGl0ZW0uY29sb3IgfHwgJ2RlZmF1bHQnO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBJY29uVGFiQmFySXRlbSA9IHtcbiAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgICAgIGNzc0NsYXNzZXM6IGl0ZW0uY29sb3IgPyBbYGZkLWljb24tdGFiLWJhcl9faXRlbS0tJHtpdGVtLmNvbG9yfWBdIDogW10sXG4gICAgICAgICAgICAgICAgdUlkLFxuICAgICAgICAgICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgcGFyZW50VUlkLFxuICAgICAgICAgICAgICAgIGZsYXRJbmRleDogZmxhdEluZGV4UmVmIS52YWx1ZSsrLFxuICAgICAgICAgICAgICAgIHN1Ykl0ZW1zOiB0aGlzLl9nZW5lcmF0ZVRhYkJhckl0ZW1zKFxuICAgICAgICAgICAgICAgICAgICBpdGVtLnN1Ykl0ZW1zIHx8IFtdLFxuICAgICAgICAgICAgICAgICAgICBgJHt1SWR9JHtVTklRVUVfS0VZX1NFUEFSQVRPUn1gLFxuICAgICAgICAgICAgICAgICAgICBmbGF0SW5kZXhSZWYsXG4gICAgICAgICAgICAgICAgICAgIHVJZFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZW5lcmF0ZUZsYXRUYWJzKHRhYnM6IEljb25UYWJCYXJJdGVtW10pOiBJY29uVGFiQmFySXRlbVtdIHtcbiAgICAgICAgY29uc3QgZmxhdFRhYnMgPSB0YWJzLnJlZHVjZSgoYWNjOiBJY29uVGFiQmFySXRlbVtdLCB0YWIpID0+IHtcbiAgICAgICAgICAgIGFjYy5wdXNoKHRhYik7XG4gICAgICAgICAgICBpZiAodGFiLnN1Ykl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgYWNjLnB1c2goLi4udGhpcy5fZ2VuZXJhdGVGbGF0VGFicyh0YWIuc3ViSXRlbXMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIFtdKTtcblxuICAgICAgICByZXR1cm4gZmxhdFRhYnM7XG4gICAgfVxufVxuXG4vKiogQGhpZGRlbiBoZWxwZXIgb2JqZWN0IHRoYXQgaXMgdXNlZCBpbiB0YWIgZ2VuZXJhdGlvbiBmdW5jdGlvbnMgdG8gY2FsY3VsYXRlIHRoZWlyIGluZGV4ZXMgbm90IGRlcGVuZGluZyBvbiBsZXZlbCBvZiBuZXN0aW5nICovXG5pbnRlcmZhY2UgRmxhdEluZGV4IHtcbiAgICB2YWx1ZTogbnVtYmVyO1xufVxuIiwiPGRpdiBjbGFzcz1cImZkLWljb24tdGFiLWJhclwiIFtjbGFzc109XCJfY3NzQ2xhc3NGb3JDb250YWluZXJcIj5cbiAgICBAaWYgKGljb25UYWJUeXBlKCkgPT09ICd0ZXh0Jykge1xuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGV4dFR5cGVcIj48L25nLXRlbXBsYXRlPlxuICAgIH1cbiAgICBAaWYgKGljb25UYWJUeXBlKCkgPT09ICdpY29uJyB8fCBpY29uVGFiVHlwZSgpID09PSAnaWNvbi1vbmx5Jykge1xuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaWNvblR5cGVcIj48L25nLXRlbXBsYXRlPlxuICAgIH1cbiAgICBAaWYgKGljb25UYWJUeXBlKCkgPT09ICdmaWx0ZXInKSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJmaWx0ZXJUeXBlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICB9XG4gICAgQGlmIChpY29uVGFiVHlwZSgpID09PSAncHJvY2VzcycpIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInByb2Nlc3NUeXBlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICB9XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fY29udGVudFwiXG4gICAgICAgIGZkLXNjcm9sbGJhclxuICAgICAgICAoc3B5Q2hhbmdlKT1cImhpZ2hsaWdodEFjdGl2ZVRhYigkZXZlbnQuaWQpXCJcbiAgICAgICAgW3Njcm9sbFNweURpc2FibGVkXT1cIiFzdGFja0NvbnRlbnQgfHwgX2Rpc2FibGVTY3JvbGxTcHlcIlxuICAgICAgICBmZFNjcm9sbFNweVxuICAgICAgICBbdHJhY2tlZFRhZ3NdPVwiWydmZHAtaWNvbi10YWItYmFyLXRhYi1jb250ZW50J11cIlxuICAgICAgICBbc3R5bGUubWF4LWhlaWdodF09XCJtYXhDb250ZW50SGVpZ2h0KClcIlxuICAgID5cbiAgICAgICAgQGlmIChzdGFja0NvbnRlbnQpIHtcbiAgICAgICAgICAgIEBmb3IgKHRhYiBvZiBfZmxhdFRhYnMkKCk7IHRyYWNrIHRhYikge1xuICAgICAgICAgICAgICAgIDxmZHAtaWNvbi10YWItYmFyLXRhYi1jb250ZW50IFtpZF09XCJ0YWIuaWRcIiBbdUlkXT1cInRhYi51SWRcIiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fdGFiLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYi5yZW5kZXJlciB8fCBudWxsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2ZkcC1pY29uLXRhYi1iYXItdGFiLWNvbnRlbnQ+XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgQGlmIChfdGFiUmVuZGVyZXIkKCk7IGFzIHRhYlJlbmRlcmVyKSB7XG4gICAgICAgICAgICAgICAgPGZkcC1pY29uLXRhYi1iYXItdGFiLWNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cInRhYlJlbmRlcmVyLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgW3VJZF09XCJ0YWJSZW5kZXJlci51SWRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fdGFiLWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYlJlbmRlcmVyLnJlbmRlcmVyIHx8IG51bGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZmRwLWljb24tdGFiLWJhci10YWItY29udGVudD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZmRwSWNvblRhYkJhckZyZWVDb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNwcm9jZXNzVHlwZT5cbiAgICA8ZmRwLWljb24tdGFiLWJhci1wcm9jZXNzLXR5cGVcbiAgICAgICAgW3RhYnNdPVwiX3RhYnMkKClcIlxuICAgICAgICBbaXNSdGxdPVwiX3J0bCQoKVwiXG4gICAgICAgIFtzZWxlY3RlZFVpZF09XCJfc2VsZWN0ZWRVaWQoKVwiXG4gICAgICAgIChzZWxlY3RlZFVpZENoYW5nZSk9XCJfc2VsZWN0ZWRVaWQuc2V0KCRldmVudClcIlxuICAgICAgICBbZGVuc2l0eU1vZGVdPVwiZGVuc2l0eU1vZGUoKVwiXG4gICAgICAgIFtjb2xvckFzc29jaWF0aW9uc109XCJjb2xvckFzc29jaWF0aW9ucygpXCJcbiAgICAgICAgKHNlbGVjdGVkKT1cIl9zZWxlY3RJdGVtKCRldmVudClcIlxuICAgID48L2ZkcC1pY29uLXRhYi1iYXItcHJvY2Vzcy10eXBlPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZmlsdGVyVHlwZT5cbiAgICA8ZmRwLWljb24tdGFiLWJhci1maWx0ZXItdHlwZVxuICAgICAgICBbdGFic109XCJfdGFicyQoKVwiXG4gICAgICAgIFtzaG93VG90YWxUYWJdPVwic2hvd1RvdGFsVGFiKClcIlxuICAgICAgICBbaXNSdGxdPVwiX3J0bCQoKVwiXG4gICAgICAgIFtzZWxlY3RlZFVpZF09XCJfc2VsZWN0ZWRVaWQoKVwiXG4gICAgICAgIChzZWxlY3RlZFVpZENoYW5nZSk9XCJfc2VsZWN0ZWRVaWQuc2V0KCRldmVudClcIlxuICAgICAgICBbZGVuc2l0eU1vZGVdPVwiZGVuc2l0eU1vZGUoKVwiXG4gICAgICAgIFtjb2xvckFzc29jaWF0aW9uc109XCJjb2xvckFzc29jaWF0aW9ucygpXCJcbiAgICAgICAgKHNlbGVjdGVkKT1cIl9zZWxlY3RJdGVtKCRldmVudClcIlxuICAgID48L2ZkcC1pY29uLXRhYi1iYXItZmlsdGVyLXR5cGU+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNpY29uVHlwZT5cbiAgICA8ZmRwLWljb24tdGFiLWJhci1pY29uLXR5cGVcbiAgICAgICAgW3Nob3dMYWJlbF09XCJpY29uVGFiVHlwZSgpID09PSAnaWNvbidcIlxuICAgICAgICBbdGFic109XCJfdGFicyQoKVwiXG4gICAgICAgIFtpc1J0bF09XCJfcnRsJCgpXCJcbiAgICAgICAgW3NlbGVjdGVkVWlkXT1cIl9zZWxlY3RlZFVpZCgpXCJcbiAgICAgICAgKHNlbGVjdGVkVWlkQ2hhbmdlKT1cIl9zZWxlY3RlZFVpZC5zZXQoJGV2ZW50KVwiXG4gICAgICAgIFtkZW5zaXR5TW9kZV09XCJkZW5zaXR5TW9kZSgpXCJcbiAgICAgICAgW2NvbG9yQXNzb2NpYXRpb25zXT1cImNvbG9yQXNzb2NpYXRpb25zKClcIlxuICAgICAgICAoc2VsZWN0ZWQpPVwiX3NlbGVjdEl0ZW0oJGV2ZW50KVwiXG4gICAgICAgIChjbG9zZVRhYik9XCJfY2xvc2VUYWIoJGV2ZW50KVwiXG4gICAgPjwvZmRwLWljb24tdGFiLWJhci1pY29uLXR5cGU+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICN0ZXh0VHlwZT5cbiAgICA8ZmRwLWljb24tdGFiLWJhci10ZXh0LXR5cGVcbiAgICAgICAgW3RhYnNdPVwiX3RhYnMkKClcIlxuICAgICAgICBbbXVsdGlDbGlja109XCJtdWx0aUNsaWNrKClcIlxuICAgICAgICBbbGF5b3V0TW9kZV09XCJsYXlvdXRNb2RlKClcIlxuICAgICAgICBbaXNSdGxdPVwiX3J0bCQoKVwiXG4gICAgICAgIFtzZWxlY3RlZFVpZF09XCJfc2VsZWN0ZWRVaWQoKVwiXG4gICAgICAgIChzZWxlY3RlZFVpZENoYW5nZSk9XCJfc2VsZWN0ZWRVaWQuc2V0KCRldmVudClcIlxuICAgICAgICBbZGVuc2l0eU1vZGVdPVwiZGVuc2l0eU1vZGUoKVwiXG4gICAgICAgIFtlbmFibGVUYWJSZW9yZGVyaW5nXT1cImVuYWJsZVRhYlJlb3JkZXJpbmcoKVwiXG4gICAgICAgIFtjb2xvckFzc29jaWF0aW9uc109XCJjb2xvckFzc29jaWF0aW9ucygpXCJcbiAgICAgICAgKHJlb3JkZXJlZCk9XCJfb25SZW9yZGVyKCRldmVudClcIlxuICAgICAgICAoc2VsZWN0ZWQpPVwiX3NlbGVjdEl0ZW0oJGV2ZW50KVwiXG4gICAgICAgIChjbG9zZVRhYik9XCJfY2xvc2VUYWIoJGV2ZW50KVwiXG4gICAgPjwvZmRwLWljb24tdGFiLWJhci10ZXh0LXR5cGU+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1913,19 +1913,17 @@ class IconTabBarComponent {
1913
1913
  flatIndexRef = flatIndexRef || { value: 0 };
1914
1914
  return config.map((item, index) => {
1915
1915
  const uId = `${indexPrefix}${index}`;
1916
+ item.color = item.color || 'default';
1916
1917
  const result = {
1917
1918
  ...item,
1918
1919
  index,
1919
- cssClasses: [],
1920
+ cssClasses: item.color ? [`fd-icon-tab-bar__item--${item.color}`] : [],
1920
1921
  uId,
1921
1922
  hidden: false,
1922
1923
  parentUId,
1923
1924
  flatIndex: flatIndexRef.value++,
1924
1925
  subItems: this._generateTabBarItems(item.subItems || [], `${uId}${UNIQUE_KEY_SEPARATOR}`, flatIndexRef, uId)
1925
1926
  };
1926
- if (item.color) {
1927
- result.cssClasses = [`fd-icon-tab-bar__item--${item.color}`];
1928
- }
1929
1927
  return result;
1930
1928
  });
1931
1929
  }