igniteui-angular 16.1.4 → 16.1.6

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.
Files changed (45) hide show
  1. package/esm2022/lib/buttonGroup/buttonGroup.component.mjs +5 -9
  2. package/esm2022/lib/calendar/calendar.mjs +2 -2
  3. package/esm2022/lib/core/i18n/grid-resources.mjs +2 -1
  4. package/esm2022/lib/directives/for-of/for_of.directive.mjs +4 -1
  5. package/esm2022/lib/grids/filtering/excel-style/excel-style-search.component.mjs +10 -3
  6. package/esm2022/lib/grids/grid-base.directive.mjs +7 -4
  7. package/esm2022/lib/grids/headers/grid-header-row.component.mjs +9 -3
  8. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-content.component.mjs +2 -2
  9. package/esm2022/lib/services/overlay/overlay.mjs +2 -2
  10. package/fesm2022/igniteui-angular.mjs +34 -18
  11. package/fesm2022/igniteui-angular.mjs.map +1 -1
  12. package/lib/buttonGroup/buttonGroup.component.d.ts +2 -2
  13. package/lib/core/i18n/grid-resources.d.ts +1 -0
  14. package/lib/core/styles/components/grid/_excel-filtering-component.scss +4 -0
  15. package/lib/core/styles/components/grid/_excel-filtering-theme.scss +7 -0
  16. package/lib/grids/filtering/excel-style/excel-style-search.component.d.ts +4 -0
  17. package/lib/grids/headers/grid-header-row.component.d.ts +4 -0
  18. package/migrations/common/tsUtils.js +1 -1
  19. package/package.json +1 -1
  20. package/styles/igniteui-angular-dark.css +1 -1
  21. package/styles/igniteui-angular.css +1 -1
  22. package/styles/igniteui-bootstrap-dark.css +1 -1
  23. package/styles/igniteui-bootstrap-light.css +1 -1
  24. package/styles/igniteui-dark-green.css +1 -1
  25. package/styles/igniteui-fluent-dark-excel.css +1 -1
  26. package/styles/igniteui-fluent-dark-word.css +1 -1
  27. package/styles/igniteui-fluent-dark.css +1 -1
  28. package/styles/igniteui-fluent-light-excel.css +1 -1
  29. package/styles/igniteui-fluent-light-word.css +1 -1
  30. package/styles/igniteui-fluent-light.css +1 -1
  31. package/styles/igniteui-indigo-dark.css +1 -1
  32. package/styles/igniteui-indigo-light.css +1 -1
  33. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  34. package/styles/maps/igniteui-angular.css.map +1 -1
  35. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  36. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  37. package/styles/maps/igniteui-dark-green.css.map +1 -1
  38. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  39. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  40. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  41. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  42. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  43. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  44. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  45. package/styles/maps/igniteui-indigo-light.css.map +1 -1
@@ -371,26 +371,22 @@ export class IgxButtonGroupComponent extends DisplayDensityBase {
371
371
  */
372
372
  _clickHandler(index) {
373
373
  const button = this.buttons[index];
374
- const args = { cancel: false, owner: this, button, index };
374
+ const args = { owner: this, button, index };
375
375
  if (this.selectionMode !== 'multi') {
376
376
  this.buttons.forEach((b, i) => {
377
377
  if (i !== index && this.selectedIndexes.indexOf(i) !== -1) {
378
- this.deselected.emit({ cancel: false, owner: this, button: b, index: i });
378
+ this.deselected.emit({ owner: this, button: b, index: i });
379
379
  }
380
380
  });
381
381
  }
382
382
  if (this.selectedIndexes.indexOf(index) === -1) {
383
+ this.selectButton(index);
383
384
  this.selected.emit(args);
384
- if (!args.cancel) {
385
- this.selectButton(index);
386
- }
387
385
  }
388
386
  else {
389
387
  if (this.selectionMode !== 'singleRequired') {
388
+ this.deselectButton(index);
390
389
  this.deselected.emit(args);
391
- if (!args.cancel) {
392
- this.deselectButton(index);
393
- }
394
390
  }
395
391
  }
396
392
  }
@@ -436,4 +432,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImpor
436
432
  type: ContentChildren,
437
433
  args: [IgxButtonDirective]
438
434
  }] } });
439
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uR3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2J1dHRvbkdyb3VwL2J1dHRvbkdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9idXR0b25Hcm91cC9idXR0b25ncm91cC1jb250ZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUdILFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBR1IsWUFBWSxFQUdmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBMEIsTUFBTSxpQkFBaUIsQ0FBQztBQUVsRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUUxRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQztJQUN2QyxVQUFVLEVBQUUsWUFBWTtJQUN4QixRQUFRLEVBQUUsVUFBVTtDQUN2QixDQUFDLENBQUM7QUFHSCxJQUFJLE9B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QUF1QjtrQkFObkMsU0FBUzsrQkFDSSxpQkFBaUIsY0FFZixJQUFJLFdBQ1AsQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixDQUFDOzswQkEyUDNFLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1COzRDQXpPcEMsRUFBRTtzQkFGUixXQUFXO3VCQUFDLFNBQVM7O3NCQUNyQixLQUFLO2dCQU9DLE1BQU07c0JBRFosV0FBVzt1QkFBQyxjQUFjO2dCQWVoQixtQkFBbUI7c0JBRDdCLEtBQUs7Z0JBeUJLLGNBQWM7c0JBRHhCLEtBQUs7Z0JBdUJLLGFBQWE7c0JBRHZCLEtBQUs7Z0JBeUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBU0ssUUFBUTtzQkFEbEIsS0FBSztnQkEwQkssU0FBUztzQkFEbkIsS0FBSztnQkFrQ0MsUUFBUTtzQkFEZCxNQUFNO2dCQW1CQSxVQUFVO3NCQURoQixNQUFNO2dCQUdtQyxXQUFXO3NCQUFwRCxZQUFZO3VCQUFDLGtCQUFrQjtnQkFDYSxlQUFlO3NCQUEzRCxlQUFlO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nRm9yLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgUXVlcnlMaXN0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgT25EZXN0cm95LFxuICAgIEVsZW1lbnRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJZ3hCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2J1dHRvbi9idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IElneFJpcHBsZURpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvcmlwcGxlL3JpcHBsZS5kaXJlY3RpdmUnO1xuXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEaXNwbGF5RGVuc2l0eUJhc2UsIERpc3BsYXlEZW5zaXR5VG9rZW4sIElEaXNwbGF5RGVuc2l0eU9wdGlvbnMgfSBmcm9tICcuLi9jb3JlL2RlbnNpdHknO1xuaW1wb3J0IHsgQ2FuY2VsYWJsZUV2ZW50QXJncywgSUJhc2VFdmVudEFyZ3MgfSBmcm9tICcuLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IG1rZW51bSB9IGZyb20gJy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgSWd4SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuXG4vKipcbiAqIERldGVybWluZXMgdGhlIEJ1dHRvbiBHcm91cCBhbGlnbm1lbnRcbiAqL1xuZXhwb3J0IGNvbnN0IEJ1dHRvbkdyb3VwQWxpZ25tZW50ID0gbWtlbnVtKHtcbiAgICBob3Jpem9udGFsOiAnaG9yaXpvbnRhbCcsXG4gICAgdmVydGljYWw6ICd2ZXJ0aWNhbCdcbn0pO1xuZXhwb3J0IHR5cGUgQnV0dG9uR3JvdXBBbGlnbm1lbnQgPSB0eXBlb2YgQnV0dG9uR3JvdXBBbGlnbm1lbnRba2V5b2YgdHlwZW9mIEJ1dHRvbkdyb3VwQWxpZ25tZW50XTtcblxubGV0IE5FWFRfSUQgPSAwO1xuXG4vKipcbiAqICoqSWduaXRlIFVJIGZvciBBbmd1bGFyIEJ1dHRvbiBHcm91cCoqIC1cbiAqIFtEb2N1bWVudGF0aW9uXShodHRwczovL3d3dy5pbmZyYWdpc3RpY3MuY29tL3Byb2R1Y3RzL2lnbml0ZS11aS1hbmd1bGFyL2FuZ3VsYXIvY29tcG9uZW50cy9idXR0b25ncm91cC5odG1sKVxuICpcbiAqIFRoZSBJZ25pdGUgVUkgQnV0dG9uIEdyb3VwIGRpc3BsYXlzIGEgZ3JvdXAgb2YgYnV0dG9ucyBlaXRoZXIgdmVydGljYWxseSBvciBob3Jpem9udGFsbHkuIFRoZSBncm91cCBzdXBwb3J0c1xuICogc2luZ2xlLCBtdWx0aSBhbmQgc2luZ2xlUmVxdWlyZWQgc2VsZWN0aW9uLlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGBodG1sXG4gKiA8aWd4LWJ1dHRvbmdyb3VwIHNlbGVjdGlvbk1vZGU9XCJtdWx0aVwiIFt2YWx1ZXNdPVwiZm9udE9wdGlvbnNcIj5cbiAqIDwvaWd4LWJ1dHRvbmdyb3VwPlxuICogYGBgXG4gKiBUaGUgYGZvbnRPcHRpb25zYCB2YWx1ZSBzaG93biBhYm92ZSBpcyBkZWZpbmVkIGFzOlxuICogYGBgdHlwZXNjcmlwdFxuICogdGhpcy5mb250T3B0aW9ucyA9IFtcbiAqICAgeyBpY29uOiAnZm9ybWF0X2JvbGQnLCBzZWxlY3RlZDogZmFsc2UgfSxcbiAqICAgeyBpY29uOiAnZm9ybWF0X2l0YWxpYycsIHNlbGVjdGVkOiBmYWxzZSB9LFxuICogICB7IGljb246ICdmb3JtYXRfdW5kZXJsaW5lZCcsIHNlbGVjdGVkOiBmYWxzZSB9XTtcbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC1idXR0b25ncm91cCcsXG4gICAgdGVtcGxhdGVVcmw6ICdidXR0b25ncm91cC1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0ZvciwgSWd4QnV0dG9uRGlyZWN0aXZlLCBJZ3hSaXBwbGVEaXJlY3RpdmUsIE5nSWYsIElneEljb25Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIElneEJ1dHRvbkdyb3VwQ29tcG9uZW50IGV4dGVuZHMgRGlzcGxheURlbnNpdHlCYXNlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBBIGNvbGxlY3Rpb24gY29udGFpbmluZyBhbGwgYnV0dG9ucyBpbnNpZGUgdGhlIGJ1dHRvbiBncm91cC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGJ1dHRvbnMoKTogSWd4QnV0dG9uRGlyZWN0aXZlW10ge1xuICAgICAgICByZXR1cm4gWy4uLnRoaXMudmlld0J1dHRvbnMudG9BcnJheSgpLCAuLi50aGlzLnRlbXBsYXRlQnV0dG9ucy50b0FycmF5KCldO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IHNldHMgdGhlIHZhbHVlIG9mIHRoZSBgaWRgIGF0dHJpYnV0ZS4gSWYgbm90IHNldCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiAgPGlneC1idXR0b25ncm91cCBbaWRdPVwiJ2lneC1kaWFsb2ctNTYnXCIgW3NlbGVjdGlvbk1vZGVdPVwiJ211bHRpJ1wiIFt2YWx1ZXNdPVwiYWxpZ25PcHRpb25zXCI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBpZ3gtYnV0dG9uZ3JvdXAtJHtORVhUX0lEKyt9YDtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLnpJbmRleCcpXG4gICAgcHVibGljIHpJbmRleCA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBBbGxvd3MgeW91IHRvIHNldCBhIHN0eWxlIHVzaW5nIHRoZSBgaXRlbUNvbnRlbnRDc3NDbGFzc2AgaW5wdXQuXG4gICAgICogVGhlIHZhbHVlIHNob3VsZCBiZSB0aGUgQ1NTIGNsYXNzIG5hbWUgdGhhdCB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIGJ1dHRvbiBncm91cC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogcHVibGljIHN0eWxlMSA9IFwic3R5bGVDbGFzc1wiO1xuICAgICAqICAvLy4uXG4gICAgICogYGBgXG4gICAgICogIGBgYGh0bWxcbiAgICAgKiA8aWd4LWJ1dHRvbmdyb3VwIFtpdGVtQ29udGVudENzc0NsYXNzXT1cInN0eWxlMVwiIFtzZWxlY3Rpb25Nb2RlXT1cIidtdWx0aSdcIiBbdmFsdWVzXT1cImFsaWduT3B0aW9uc1wiPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBpdGVtQ29udGVudENzc0NsYXNzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5faXRlbUNvbnRlbnRDc3NDbGFzcyA9IHZhbHVlIHx8IHRoaXMuX2l0ZW1Db250ZW50Q3NzQ2xhc3M7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgQ1NTIGNsYXNzIG9mIHRoZSBpdGVtIGNvbnRlbnQgb2YgdGhlIGBJZ3hCdXR0b25Hcm91cGAuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqICBAVmlld0NoaWxkKFwiTXlDaGlsZFwiKVxuICAgICAqIHB1YmxpYyBidXR0b25HOiBJZ3hCdXR0b25Hcm91cENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICAgKiAgICBsZXQgYnV0dG9uU2VsZWN0ID0gdGhpcy5idXR0b25HLml0ZW1Db250ZW50Q3NzQ2xhc3M7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXRlbUNvbnRlbnRDc3NDbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbUNvbnRlbnRDc3NDbGFzcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBpbiB2ZXJzaW9uIDE2LjEuMC4gU2V0L1VzZSBzZWxlY3Rpb25Nb2RlIHByb3BlcnR5IGluc3RlYWQuXG4gICAgICogXG4gICAgICogRW5hYmxlcyBzZWxlY3RpbmcgbXVsdGlwbGUgYnV0dG9ucy4gQnkgZGVmYXVsdCwgbXVsdGktc2VsZWN0aW9uIGlzIGZhbHNlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBtdWx0aVNlbGVjdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gJ211bHRpJykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHVibGljIHNldCBtdWx0aVNlbGVjdGlvbihzZWxlY3Rpb25Nb2RlOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChzZWxlY3Rpb25Nb2RlKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGUgPSAnbXVsdGknO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlID0gJ3NpbmdsZSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbiBASW5wdXQgcHJvcGVydHkgdGhhdCBnZXQvc2V0IHRoZSBzZWxlY3Rpb24gbW9kZSAnc2luZ2xlJywgJ3NpbmdsZVJlcXVpcmVkJyBvciAnbXVsdGknIG9mIHRoZSBidXR0b25zLiBCeSBkZWZhdWx0LCB0aGUgc2VsZWN0aW9uIG1vZGUgaXMgJ3NpbmdsZScuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYnV0dG9uZ3JvdXAgW3NlbGVjdGlvbk1vZGVdPVwiJ211bHRpJ1wiIFthbGlnbm1lbnRdPVwiYWxpZ25tZW50XCI+PC9pZ3gtYnV0dG9uZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHNlbGVjdGlvbk1vZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb25Nb2RlO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IHNlbGVjdGlvbk1vZGUoc2VsZWN0aW9uTW9kZTogJ3NpbmdsZScgfCAnc2luZ2xlUmVxdWlyZWQnIHwgJ211bHRpJykge1xuICAgICAgICBpZiAodGhpcy52aWV3QnV0dG9ucyAmJiBzZWxlY3Rpb25Nb2RlICE9PSB0aGlzLl9zZWxlY3Rpb25Nb2RlKSB7XG4gICAgICAgICAgICB0aGlzLmJ1dHRvbnMuZm9yRWFjaCgoYixpKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kZXNlbGVjdEJ1dHRvbihpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9uTW9kZSA9IHNlbGVjdGlvbk1vZGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlID0gc2VsZWN0aW9uTW9kZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IGFsbG93cyBzZXR0aW5nIHRoZSBidXR0b25zIGluIHRoZSBidXR0b24gZ3JvdXAuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICogICAgICB0aGlzLmNpdGllcyA9IFtcbiAgICAgKiAgICAgICAgbmV3IEJ1dHRvbih7XG4gICAgICogICAgICAgICAgbGFiZWw6IFwiU29maWFcIlxuICAgICAqICAgICAgfSksXG4gICAgICogICAgICAgIG5ldyBCdXR0b24oe1xuICAgICAqICAgICAgICAgIGxhYmVsOiBcIkxvbmRvblwiXG4gICAgICogICAgICB9KSxcbiAgICAgKiAgICAgICAgbmV3IEJ1dHRvbih7XG4gICAgICogICAgICAgICAgbGFiZWw6IFwiTmV3IFlvcmtcIixcbiAgICAgKiAgICAgICAgICBzZWxlY3RlZDogdHJ1ZVxuICAgICAqICAgICAgfSksXG4gICAgICogICAgICAgIG5ldyBCdXR0b24oe1xuICAgICAqICAgICAgICAgIGxhYmVsOiBcIlRva3lvXCJcbiAgICAgKiAgICAgIH0pXG4gICAgICogIF07XG4gICAgICogIH1cbiAgICAgKiAgLy8uLlxuICAgICAqIGBgYFxuICAgICAqIGBgYGh0bWxcbiAgICAgKiAgPGlneC1idXR0b25ncm91cCBbc2VsZWN0aW9uTW9kZV09XCInc2luZ2xlJ1wiIFt2YWx1ZXNdPVwiY2l0aWVzXCI+PC9pZ3gtYnV0dG9uZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbHVlczogYW55O1xuXG4gICAgLyoqXG4gICAgICogQW4gQElucHV0IHByb3BlcnR5IHRoYXQgYWxsb3dzIHlvdSB0byBkaXNhYmxlIHRoZSBgaWd4LWJ1dHRvbmdyb3VwYCBjb21wb25lbnQuIEJ5IGRlZmF1bHQgaXQncyBmYWxzZS5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1idXR0b25ncm91cCBbZGlzYWJsZWRdPVwidHJ1ZVwiIFtzZWxlY3Rpb25Nb2RlXT1cIidtdWx0aSdcIiBbdmFsdWVzXT1cImZvbnRPcHRpb25zXCI+PC9pZ3gtYnV0dG9uZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcblxuICAgICAgICAgICAgaWYgKHRoaXMudmlld0J1dHRvbnMgJiYgdGhpcy50ZW1wbGF0ZUJ1dHRvbnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1dHRvbnMuZm9yRWFjaCgoYikgPT4gKGIuZGlzYWJsZWQgPSB0aGlzLl9kaXNhYmxlZCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWxsb3dzIHlvdSB0byBzZXQgdGhlIGJ1dHRvbiBncm91cCBhbGlnbm1lbnQuXG4gICAgICogQXZhaWxhYmxlIG9wdGlvbnMgYXJlIGBCdXR0b25Hcm91cEFsaWdubWVudC5ob3Jpem9udGFsYCAoZGVmYXVsdCkgYW5kIGBCdXR0b25Hcm91cEFsaWdubWVudC52ZXJ0aWNhbGAuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHB1YmxpYyBhbGlnbm1lbnQgPSBCdXR0b25Hcm91cEFsaWdubWVudC52ZXJ0aWNhbDtcbiAgICAgKiAvLy4uXG4gICAgICogYGBgXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYnV0dG9uZ3JvdXAgW3NlbGVjdGlvbk1vZGVdPVwiJ3NpbmdsZSdcIiBbdmFsdWVzXT1cImNpdGllc1wiIFthbGlnbm1lbnRdPVwiYWxpZ25tZW50XCI+PC9pZ3gtYnV0dG9uZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGFsaWdubWVudCh2YWx1ZTogQnV0dG9uR3JvdXBBbGlnbm1lbnQpIHtcbiAgICAgICAgdGhpcy5faXNWZXJ0aWNhbCA9IHZhbHVlID09PSBCdXR0b25Hcm91cEFsaWdubWVudC52ZXJ0aWNhbDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgYWxpZ25tZW50IG9mIHRoZSBgaWd4LWJ1dHRvbmdyb3VwYC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15Q2hpbGRcIilcbiAgICAgKiBwdWJsaWMgYnV0dG9uRzogSWd4QnV0dG9uR3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgbGV0IGJ1dHRvbkFsaWdubWVudCA9IHRoaXMuYnV0dG9uRy5hbGlnbm1lbnQ7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgYWxpZ25tZW50KCk6IEJ1dHRvbkdyb3VwQWxpZ25tZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmVydGljYWwgPyBCdXR0b25Hcm91cEFsaWdubWVudC52ZXJ0aWNhbCA6IEJ1dHRvbkdyb3VwQWxpZ25tZW50Lmhvcml6b250YWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW4gQE91cHV0IHByb3BlcnR5IHRoYXQgZW1pdHMgYW4gZXZlbnQgd2hlbiBhIGJ1dHRvbiBpcyBzZWxlY3RlZC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcInRvYXN0XCIpXG4gICAgICogcHJpdmF0ZSB0b2FzdDogSWd4VG9hc3RDb21wb25lbnQ7XG4gICAgICogcHVibGljIHNlbGVjdGVkSGFuZGxlcihidXR0b25ncm91cCkge1xuICAgICAqICAgICB0aGlzLnRvYXN0Lm9wZW4oKVxuICAgICAqIH1cbiAgICAgKiAgLy8uLi5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1idXR0b25ncm91cCAjTXlDaGlsZCBbc2VsZWN0aW9uTW9kZV09XCInbXVsdGknXCIgKHNlbGVjdGVkKT1cInNlbGVjdGVkSGFuZGxlcigkZXZlbnQpXCI+PC9pZ3gtYnV0dG9uZ3JvdXA+XG4gICAgICogPGlneC10b2FzdCAjdG9hc3Q+WW91IGhhdmUgbWFkZSBhIHNlbGVjdGlvbiE8L2lneC10b2FzdD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElCdXR0b25Hcm91cEV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEFuIEBPdXB1dCBwcm9wZXJ0eSB0aGF0IGVtaXRzIGFuIGV2ZW50IHdoZW4gYSBidXR0b24gaXMgZGVzZWxlY3RlZC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogIEBWaWV3Q2hpbGQoXCJ0b2FzdFwiKVxuICAgICAqICBwcml2YXRlIHRvYXN0OiBJZ3hUb2FzdENvbXBvbmVudDtcbiAgICAgKiAgcHVibGljIGRlc2VsZWN0ZWRIYW5kbGVyKGJ1dHRvbmdyb3VwKXtcbiAgICAgKiAgICAgdGhpcy50b2FzdC5vcGVuKClcbiAgICAgKiB9XG4gICAgICogIC8vLi4uXG4gICAgICogYGBgXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYnV0dG9uZ3JvdXA+ICNNeUNoaWxkIFtzZWxlY3Rpb25Nb2RlXT1cIidtdWx0aSdcIiAoZGVzZWxlY3RlZCk9XCJkZXNlbGVjdGVkSGFuZGxlcigkZXZlbnQpXCI+PC9pZ3gtYnV0dG9uZ3JvdXA+XG4gICAgICogPGlneC10b2FzdCAjdG9hc3Q+WW91IGhhdmUgZGVzZWxlY3RlZCBhIGJ1dHRvbiE8L2lneC10b2FzdD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZGVzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUJ1dHRvbkdyb3VwRXZlbnRBcmdzPigpO1xuXG4gICAgQFZpZXdDaGlsZHJlbihJZ3hCdXR0b25EaXJlY3RpdmUpIHByaXZhdGUgdmlld0J1dHRvbnM6IFF1ZXJ5TGlzdDxJZ3hCdXR0b25EaXJlY3RpdmU+O1xuICAgIEBDb250ZW50Q2hpbGRyZW4oSWd4QnV0dG9uRGlyZWN0aXZlKSBwcml2YXRlIHRlbXBsYXRlQnV0dG9uczogUXVlcnlMaXN0PElneEJ1dHRvbkRpcmVjdGl2ZT47XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGBpZ3gtYnV0dG9uZ3JvdXBgIGFsaWdubWVudCBpcyB2ZXJ0aWNhbC5cbiAgICAgKiBOb3RlIHRoYXQgaW4gb3JkZXIgZm9yIHRoZSBhY2Nlc3NvciB0byB3b3JrIGNvcnJlY3RseSB0aGUgcHJvcGVydHkgc2hvdWxkIGJlIHNldCBleHBsaWNpdGx5LlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWJ1dHRvbmdyb3VwICNNeUNoaWxkIFthbGlnbm1lbnRdPVwiYWxpZ25tZW50XCIgW3ZhbHVlc109XCJhbGlnbk9wdGlvbnNcIj5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogLy8uLi5cbiAgICAgKiBAVmlld0NoaWxkKFwiTXlDaGlsZFwiKVxuICAgICAqIHByaXZhdGUgYnV0dG9uRzogSWd4QnV0dG9uR3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgbGV0IG9yaWVudGF0aW9uID0gdGhpcy5idXR0b25HLmlzVmVydGljYWw7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNWZXJ0aWNhbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmVydGljYWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3RlZEluZGV4ZXM6IG51bWJlcltdID0gW107XG5cbiAgICBwcm90ZWN0ZWQgYnV0dG9uQ2xpY2tOb3RpZmllciQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIHByb3RlY3RlZCBidXR0b25TZWxlY3RlZE5vdGlmaWVyJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJvdGVjdGVkIHF1ZXJ5TGlzdE5vdGlmaWVyJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBwcml2YXRlIF9pc1ZlcnRpY2FsOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2l0ZW1Db250ZW50Q3NzQ2xhc3M6IHN0cmluZztcbiAgICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX3NlbGVjdGlvbk1vZGU6ICdzaW5nbGUnIHwgJ3NpbmdsZVJlcXVpcmVkJyB8ICdtdWx0aScgPSAnc2luZ2xlJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIF9lbDogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChEaXNwbGF5RGVuc2l0eVRva2VuKSBwcm90ZWN0ZWQgX2Rpc3BsYXlEZW5zaXR5T3B0aW9uczogSURpc3BsYXlEZW5zaXR5T3B0aW9uc1xuICAgICkge1xuICAgICAgICBzdXBlcihfZGlzcGxheURlbnNpdHlPcHRpb25zLCBfZWwpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHNlbGVjdGVkIGJ1dHRvbi9idXR0b25zLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlDaGlsZFwiKVxuICAgICAqIHByaXZhdGUgYnV0dG9uRzogSWd4QnV0dG9uR3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgbGV0IHNlbGVjdGVkQnV0dG9uID0gdGhpcy5idXR0b25HLnNlbGVjdGVkQnV0dG9ucztcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBzZWxlY3RlZEJ1dHRvbnMoKTogSWd4QnV0dG9uRGlyZWN0aXZlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5idXR0b25zLmZpbHRlcigoXywgaSkgPT4gdGhpcy5zZWxlY3RlZEluZGV4ZXMuaW5kZXhPZihpKSAhPT0gLTEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlbGVjdHMgYSBidXR0b24gYnkgaXRzIGluZGV4LlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlDaGlsZFwiKVxuICAgICAqIHByaXZhdGUgYnV0dG9uRzogSWd4QnV0dG9uR3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgdGhpcy5idXR0b25HLnNlbGVjdEJ1dHRvbigyKTtcbiAgICAgKiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlck9mIHtAbGluayBJZ3hCdXR0b25Hcm91cENvbXBvbmVudH1cbiAgICAgKi9cbiAgICBwdWJsaWMgc2VsZWN0QnV0dG9uKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKGluZGV4ID49IHRoaXMuYnV0dG9ucy5sZW5ndGggfHwgaW5kZXggPCAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBidXR0b24gPSB0aGlzLmJ1dHRvbnNbaW5kZXhdO1xuICAgICAgICBidXR0b24uc2VsZWN0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVTZWxlY3RlZChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGJ1dHRvbiA9IHRoaXMuYnV0dG9uc1tpbmRleF07XG5cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleGVzLmluZGV4T2YoaW5kZXgpID09PSAtMSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ZXMucHVzaChpbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRBdHRyaWJ1dGUoYnV0dG9uLm5hdGl2ZUVsZW1lbnQsICdhcmlhLXByZXNzZWQnLCAndHJ1ZScpO1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyhidXR0b24ubmF0aXZlRWxlbWVudCwgJ2lneC1idXR0b24tZ3JvdXBfX2l0ZW0tLXNlbGVjdGVkJyk7XG5cbiAgICAgICAgY29uc3QgaW5kZXhJblZpZXdCdXR0b25zID0gdGhpcy52aWV3QnV0dG9ucy50b0FycmF5KCkuaW5kZXhPZihidXR0b24pO1xuICAgICAgICBpZiAoaW5kZXhJblZpZXdCdXR0b25zICE9PSAtMSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZXNbaW5kZXhJblZpZXdCdXR0b25zXS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBkZXNlbGVjdCBvdGhlciBidXR0b25zIGlmIHNlbGVjdGlvbk1vZGUgaXMgbm90IG11bHRpXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgIT09ICdtdWx0aScgJiYgdGhpcy5zZWxlY3RlZEluZGV4ZXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgdGhpcy5idXR0b25zLmZvckVhY2goKF8sIGkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaSAhPT0gaW5kZXggJiYgdGhpcy5zZWxlY3RlZEluZGV4ZXMuaW5kZXhPZihpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXNlbGVjdEJ1dHRvbihpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlc2VsZWN0cyBhIGJ1dHRvbiBieSBpdHMgaW5kZXguXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUNoaWxkXCIpXG4gICAgICogcHJpdmF0ZSBidXR0b25HOiBJZ3hCdXR0b25Hcm91cENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICAgKiAgICB0aGlzLmJ1dHRvbkcuZGVzZWxlY3RCdXR0b24oMik7XG4gICAgICogICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJPZiB7QGxpbmsgSWd4QnV0dG9uR3JvdXBDb21wb25lbnR9XG4gICAgICovXG4gICAgcHVibGljIGRlc2VsZWN0QnV0dG9uKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKGluZGV4ID49IHRoaXMuYnV0dG9ucy5sZW5ndGggfHwgaW5kZXggPCAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBidXR0b24gPSB0aGlzLmJ1dHRvbnNbaW5kZXhdO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXhlcy5zcGxpY2UodGhpcy5zZWxlY3RlZEluZGV4ZXMuaW5kZXhPZihpbmRleCksIDEpO1xuXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZShidXR0b24ubmF0aXZlRWxlbWVudCwgJ2FyaWEtcHJlc3NlZCcsICdmYWxzZScpO1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyhidXR0b24ubmF0aXZlRWxlbWVudCwgJ2lneC1idXR0b24tZ3JvdXBfX2l0ZW0tLXNlbGVjdGVkJyk7XG4gICAgICAgIGJ1dHRvbi5kZXNlbGVjdCgpO1xuXG4gICAgICAgIGNvbnN0IGluZGV4SW5WaWV3QnV0dG9ucyA9IHRoaXMudmlld0J1dHRvbnMudG9BcnJheSgpLmluZGV4T2YoYnV0dG9uKTtcbiAgICAgICAgaWYgKGluZGV4SW5WaWV3QnV0dG9ucyAhPT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVzW2luZGV4SW5WaWV3QnV0dG9uc10uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnRlbXBsYXRlQnV0dG9ucy5mb3JFYWNoKChidXR0b24pID0+IHtcbiAgICAgICAgICAgIGlmICghYnV0dG9uLmluaXRpYWxEZW5zaXR5KSB7XG4gICAgICAgICAgICAgICAgYnV0dG9uLmRpc3BsYXlEZW5zaXR5ID0gdGhpcy5kaXNwbGF5RGVuc2l0eTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGNvbnN0IGluaXRCdXR0b25zID0gKCkgPT4ge1xuICAgICAgICAgICAgLy8gQ2FuY2VsIGFueSBleGlzdGluZyBidXR0b25DbGljayBzdWJzY3JpcHRpb25zXG4gICAgICAgICAgICB0aGlzLmJ1dHRvbkNsaWNrTm90aWZpZXIkLm5leHQoKTtcblxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ZXMuc3BsaWNlKDAsIHRoaXMuc2VsZWN0ZWRJbmRleGVzLmxlbmd0aCk7XG5cbiAgICAgICAgICAgIC8vIGluaXRpYWwgY29uZmlndXJhdGlvblxuICAgICAgICAgICAgdGhpcy5idXR0b25zLmZvckVhY2goKGJ1dHRvbiwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBidXR0b25FbGVtZW50ID0gYnV0dG9uLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3MoYnV0dG9uRWxlbWVudCwgJ2lneC1idXR0b24tZ3JvdXBfX2l0ZW0nKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGJ1dHRvbi5zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkKGluZGV4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBidXR0b24uYnV0dG9uQ2xpY2sucGlwZSh0YWtlVW50aWwodGhpcy5idXR0b25DbGlja05vdGlmaWVyJCkpLnN1YnNjcmliZSgoXykgPT4gdGhpcy5fY2xpY2tIYW5kbGVyKGluZGV4KSk7XG4gICAgICAgICAgICAgICAgYnV0dG9uLmJ1dHRvblNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmJ1dHRvblNlbGVjdGVkTm90aWZpZXIkKSlcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoXykgPT4gdGhpcy51cGRhdGVTZWxlY3RlZChpbmRleCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy52aWV3QnV0dG9ucy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMucXVlcnlMaXN0Tm90aWZpZXIkKSkuc3Vic2NyaWJlKCgpID0+IGluaXRCdXR0b25zKCkpO1xuICAgICAgICB0aGlzLnRlbXBsYXRlQnV0dG9ucy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMucXVlcnlMaXN0Tm90aWZpZXIkKSkuc3Vic2NyaWJlKCgpID0+IGluaXRCdXR0b25zKCkpO1xuICAgICAgICBpbml0QnV0dG9ucygpO1xuXG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5idXR0b25DbGlja05vdGlmaWVyJC5uZXh0KCk7XG4gICAgICAgIHRoaXMuYnV0dG9uQ2xpY2tOb3RpZmllciQuY29tcGxldGUoKTtcblxuICAgICAgICB0aGlzLmJ1dHRvblNlbGVjdGVkTm90aWZpZXIkLm5leHQoKTtcbiAgICAgICAgdGhpcy5idXR0b25TZWxlY3RlZE5vdGlmaWVyJC5jb21wbGV0ZSgpO1xuXG4gICAgICAgIHRoaXMucXVlcnlMaXN0Tm90aWZpZXIkLm5leHQoKTtcbiAgICAgICAgdGhpcy5xdWVyeUxpc3ROb3RpZmllciQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIF9jbGlja0hhbmRsZXIoaW5kZXg6IG51bWJlcikge1xuICAgICAgICBjb25zdCBidXR0b24gPSB0aGlzLmJ1dHRvbnNbaW5kZXhdO1xuICAgICAgICBjb25zdCBhcmdzOiBJQnV0dG9uR3JvdXBFdmVudEFyZ3MgPSB7IGNhbmNlbDogZmFsc2UsIG93bmVyOiB0aGlzLCBidXR0b24sIGluZGV4IH07XG5cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ211bHRpJykge1xuICAgICAgICAgICAgdGhpcy5idXR0b25zLmZvckVhY2goKGIsIGkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaSAhPT0gaW5kZXggJiYgdGhpcy5zZWxlY3RlZEluZGV4ZXMuaW5kZXhPZihpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXNlbGVjdGVkLmVtaXQoeyBjYW5jZWw6IGZhbHNlLCBvd25lcjogdGhpcywgYnV0dG9uOiBiLCBpbmRleDogaSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSW5kZXhlcy5pbmRleE9mKGluZGV4KSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChhcmdzKTtcbiAgICAgICAgICAgIGlmKCFhcmdzLmNhbmNlbCl7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RCdXR0b24oaW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ3NpbmdsZVJlcXVpcmVkJykge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVzZWxlY3RlZC5lbWl0KGFyZ3MpO1xuICAgICAgICAgICAgICAgIGlmKCFhcmdzLmNhbmNlbCl7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVzZWxlY3RCdXR0b24oaW5kZXgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQnV0dG9uR3JvdXBFdmVudEFyZ3MgZXh0ZW5kcyBJQmFzZUV2ZW50QXJncywgQ2FuY2VsYWJsZUV2ZW50QXJncyB7XG4gICAgb3duZXI6IElneEJ1dHRvbkdyb3VwQ29tcG9uZW50O1xuICAgIGJ1dHRvbjogSWd4QnV0dG9uRGlyZWN0aXZlO1xuICAgIGluZGV4OiBudW1iZXI7XG59XG4iLCI8ZGl2IGNsYXNzPVwiaWd4LWJ1dHRvbi1ncm91cFwiIHJvbGU9XCJncm91cFwiIFtjbGFzcy5pZ3gtYnV0dG9uLWdyb3VwLS12ZXJ0aWNhbF09XCJpc1ZlcnRpY2FsXCI+XG4gICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIHZhbHVlczsgbGV0IGkgPSAnaW5kZXgnXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGlneEJ1dHRvbj1cImZsYXRcIlxuICAgICAgICBbZGlzcGxheURlbnNpdHldPVwiZGlzcGxheURlbnNpdHlcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwiYnV0dG9uLnNlbGVjdGVkXCJcbiAgICAgICAgW2F0dHIuZGF0YS10b2dnbGFibGVdPVwiYnV0dG9uLnRvZ2dsYWJsZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBidXR0b24uZGlzYWJsZWRcIlxuICAgICAgICBbaWd4QnV0dG9uQ29sb3JdPVwiYnV0dG9uLmNvbG9yXCJcbiAgICAgICAgW2lneEJ1dHRvbkJhY2tncm91bmRdPVwiYnV0dG9uLmJnY29sb3JcIlxuICAgICAgICBbaWd4TGFiZWxdPVwiYnV0dG9uLmxhYmVsXCJcbiAgICAgICAgW2lneFJpcHBsZV09XCJidXR0b24ucmlwcGxlXCJcbiAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaWd4LWJ1dHRvbi1ncm91cF9faXRlbS1jb250ZW50IHt7IGl0ZW1Db250ZW50Q3NzQ2xhc3MgfX1cIj5cbiAgICAgICAgICAgIDxpZ3gtaWNvbiAqbmdJZj1cImJ1dHRvbi5pY29uXCI+e3tidXR0b24uaWNvbn19PC9pZ3gtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWd4LWJ1dHRvbi1ncm91cF9fYnV0dG9uLXRleHRcIiAqbmdJZj1cImJ1dHRvbi5sYWJlbFwiPnt7YnV0dG9uLmxhYmVsfX08L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
435
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uR3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2J1dHRvbkdyb3VwL2J1dHRvbkdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9idXR0b25Hcm91cC9idXR0b25ncm91cC1jb250ZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUdILFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBR1IsWUFBWSxFQUdmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBMEIsTUFBTSxpQkFBaUIsQ0FBQztBQUVsRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUUxRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQztJQUN2QyxVQUFVLEVBQUUsWUFBWTtJQUN4QixRQUFRLEVBQUUsVUFBVTtDQUN2QixDQUFDLENBQUM7QUFHSCxJQUFJLE9B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QUFJLE1BQU07MkJBQUMsbUJBQW1COzRDQXpPcEMsRUFBRTtzQkFGUixXQUFXO3VCQUFDLFNBQVM7O3NCQUNyQixLQUFLO2dCQU9DLE1BQU07c0JBRFosV0FBVzt1QkFBQyxjQUFjO2dCQWVoQixtQkFBbUI7c0JBRDdCLEtBQUs7Z0JBeUJLLGNBQWM7c0JBRHhCLEtBQUs7Z0JBdUJLLGFBQWE7c0JBRHZCLEtBQUs7Z0JBeUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBU0ssUUFBUTtzQkFEbEIsS0FBSztnQkEwQkssU0FBUztzQkFEbkIsS0FBSztnQkFrQ0MsUUFBUTtzQkFEZCxNQUFNO2dCQW1CQSxVQUFVO3NCQURoQixNQUFNO2dCQUdtQyxXQUFXO3NCQUFwRCxZQUFZO3VCQUFDLGtCQUFrQjtnQkFDYSxlQUFlO3NCQUEzRCxlQUFlO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nRm9yLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgUXVlcnlMaXN0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgT25EZXN0cm95LFxuICAgIEVsZW1lbnRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJZ3hCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2J1dHRvbi9idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IElneFJpcHBsZURpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvcmlwcGxlL3JpcHBsZS5kaXJlY3RpdmUnO1xuXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEaXNwbGF5RGVuc2l0eUJhc2UsIERpc3BsYXlEZW5zaXR5VG9rZW4sIElEaXNwbGF5RGVuc2l0eU9wdGlvbnMgfSBmcm9tICcuLi9jb3JlL2RlbnNpdHknO1xuaW1wb3J0IHsgSUJhc2VFdmVudEFyZ3MgfSBmcm9tICcuLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IG1rZW51bSB9IGZyb20gJy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgSWd4SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuXG4vKipcbiAqIERldGVybWluZXMgdGhlIEJ1dHRvbiBHcm91cCBhbGlnbm1lbnRcbiAqL1xuZXhwb3J0IGNvbnN0IEJ1dHRvbkdyb3VwQWxpZ25tZW50ID0gbWtlbnVtKHtcbiAgICBob3Jpem9udGFsOiAnaG9yaXpvbnRhbCcsXG4gICAgdmVydGljYWw6ICd2ZXJ0aWNhbCdcbn0pO1xuZXhwb3J0IHR5cGUgQnV0dG9uR3JvdXBBbGlnbm1lbnQgPSB0eXBlb2YgQnV0dG9uR3JvdXBBbGlnbm1lbnRba2V5b2YgdHlwZW9mIEJ1dHRvbkdyb3VwQWxpZ25tZW50XTtcblxubGV0IE5FWFRfSUQgPSAwO1xuXG4vKipcbiAqICoqSWduaXRlIFVJIGZvciBBbmd1bGFyIEJ1dHRvbiBHcm91cCoqIC1cbiAqIFtEb2N1bWVudGF0aW9uXShodHRwczovL3d3dy5pbmZyYWdpc3RpY3MuY29tL3Byb2R1Y3RzL2lnbml0ZS11aS1hbmd1bGFyL2FuZ3VsYXIvY29tcG9uZW50cy9idXR0b25ncm91cC5odG1sKVxuICpcbiAqIFRoZSBJZ25pdGUgVUkgQnV0dG9uIEdyb3VwIGRpc3BsYXlzIGEgZ3JvdXAgb2YgYnV0dG9ucyBlaXRoZXIgdmVydGljYWxseSBvciBob3Jpem9udGFsbHkuIFRoZSBncm91cCBzdXBwb3J0c1xuICogc2luZ2xlLCBtdWx0aSBhbmQgc2luZ2xlUmVxdWlyZWQgc2VsZWN0aW9uLlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGBodG1sXG4gKiA8aWd4LWJ1dHRvbmdyb3VwIHNlbGVjdGlvbk1vZGU9XCJtdWx0aVwiIFt2YWx1ZXNdPVwiZm9udE9wdGlvbnNcIj5cbiAqIDwvaWd4LWJ1dHRvbmdyb3VwPlxuICogYGBgXG4gKiBUaGUgYGZvbnRPcHRpb25zYCB2YWx1ZSBzaG93biBhYm92ZSBpcyBkZWZpbmVkIGFzOlxuICogYGBgdHlwZXNjcmlwdFxuICogdGhpcy5mb250T3B0aW9ucyA9IFtcbiAqICAgeyBpY29uOiAnZm9ybWF0X2JvbGQnLCBzZWxlY3RlZDogZmFsc2UgfSxcbiAqICAgeyBpY29uOiAnZm9ybWF0X2l0YWxpYycsIHNlbGVjdGVkOiBmYWxzZSB9LFxuICogICB7IGljb246ICdmb3JtYXRfdW5kZXJsaW5lZCcsIHNlbGVjdGVkOiBmYWxzZSB9XTtcbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC1idXR0b25ncm91cCcsXG4gICAgdGVtcGxhdGVVcmw6ICdidXR0b25ncm91cC1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0ZvciwgSWd4QnV0dG9uRGlyZWN0aXZlLCBJZ3hSaXBwbGVEaXJlY3RpdmUsIE5nSWYsIElneEljb25Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIElneEJ1dHRvbkdyb3VwQ29tcG9uZW50IGV4dGVuZHMgRGlzcGxheURlbnNpdHlCYXNlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBBIGNvbGxlY3Rpb24gY29udGFpbmluZyBhbGwgYnV0dG9ucyBpbnNpZGUgdGhlIGJ1dHRvbiBncm91cC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGJ1dHRvbnMoKTogSWd4QnV0dG9uRGlyZWN0aXZlW10ge1xuICAgICAgICByZXR1cm4gWy4uLnRoaXMudmlld0J1dHRvbnMudG9BcnJheSgpLCAuLi50aGlzLnRlbXBsYXRlQnV0dG9ucy50b0FycmF5KCldO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IHNldHMgdGhlIHZhbHVlIG9mIHRoZSBgaWRgIGF0dHJpYnV0ZS4gSWYgbm90IHNldCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiAgPGlneC1idXR0b25ncm91cCBbaWRdPVwiJ2lneC1kaWFsb2ctNTYnXCIgW3NlbGVjdGlvbk1vZGVdPVwiJ211bHRpJ1wiIFt2YWx1ZXNdPVwiYWxpZ25PcHRpb25zXCI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBpZ3gtYnV0dG9uZ3JvdXAtJHtORVhUX0lEKyt9YDtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLnpJbmRleCcpXG4gICAgcHVibGljIHpJbmRleCA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBBbGxvd3MgeW91IHRvIHNldCBhIHN0eWxlIHVzaW5nIHRoZSBgaXRlbUNvbnRlbnRDc3NDbGFzc2AgaW5wdXQuXG4gICAgICogVGhlIHZhbHVlIHNob3VsZCBiZSB0aGUgQ1NTIGNsYXNzIG5hbWUgdGhhdCB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIGJ1dHRvbiBncm91cC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogcHVibGljIHN0eWxlMSA9IFwic3R5bGVDbGFzc1wiO1xuICAgICAqICAvLy4uXG4gICAgICogYGBgXG4gICAgICogIGBgYGh0bWxcbiAgICAgKiA8aWd4LWJ1dHRvbmdyb3VwIFtpdGVtQ29udGVudENzc0NsYXNzXT1cInN0eWxlMVwiIFtzZWxlY3Rpb25Nb2RlXT1cIidtdWx0aSdcIiBbdmFsdWVzXT1cImFsaWduT3B0aW9uc1wiPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBpdGVtQ29udGVudENzc0NsYXNzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5faXRlbUNvbnRlbnRDc3NDbGFzcyA9IHZhbHVlIHx8IHRoaXMuX2l0ZW1Db250ZW50Q3NzQ2xhc3M7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgQ1NTIGNsYXNzIG9mIHRoZSBpdGVtIGNvbnRlbnQgb2YgdGhlIGBJZ3hCdXR0b25Hcm91cGAuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqICBAVmlld0NoaWxkKFwiTXlDaGlsZFwiKVxuICAgICAqIHB1YmxpYyBidXR0b25HOiBJZ3hCdXR0b25Hcm91cENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICAgKiAgICBsZXQgYnV0dG9uU2VsZWN0ID0gdGhpcy5idXR0b25HLml0ZW1Db250ZW50Q3NzQ2xhc3M7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXRlbUNvbnRlbnRDc3NDbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbUNvbnRlbnRDc3NDbGFzcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBpbiB2ZXJzaW9uIDE2LjEuMC4gU2V0L1VzZSBzZWxlY3Rpb25Nb2RlIHByb3BlcnR5IGluc3RlYWQuXG4gICAgICogXG4gICAgICogRW5hYmxlcyBzZWxlY3RpbmcgbXVsdGlwbGUgYnV0dG9ucy4gQnkgZGVmYXVsdCwgbXVsdGktc2VsZWN0aW9uIGlzIGZhbHNlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBtdWx0aVNlbGVjdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gJ211bHRpJykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHVibGljIHNldCBtdWx0aVNlbGVjdGlvbihzZWxlY3Rpb25Nb2RlOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChzZWxlY3Rpb25Nb2RlKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGUgPSAnbXVsdGknO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlID0gJ3NpbmdsZSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbiBASW5wdXQgcHJvcGVydHkgdGhhdCBnZXQvc2V0IHRoZSBzZWxlY3Rpb24gbW9kZSAnc2luZ2xlJywgJ3NpbmdsZVJlcXVpcmVkJyBvciAnbXVsdGknIG9mIHRoZSBidXR0b25zLiBCeSBkZWZhdWx0LCB0aGUgc2VsZWN0aW9uIG1vZGUgaXMgJ3NpbmdsZScuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYnV0dG9uZ3JvdXAgW3NlbGVjdGlvbk1vZGVdPVwiJ211bHRpJ1wiIFthbGlnbm1lbnRdPVwiYWxpZ25tZW50XCI+PC9pZ3gtYnV0dG9uZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHNlbGVjdGlvbk1vZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb25Nb2RlO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IHNlbGVjdGlvbk1vZGUoc2VsZWN0aW9uTW9kZTogJ3NpbmdsZScgfCAnc2luZ2xlUmVxdWlyZWQnIHwgJ211bHRpJykge1xuICAgICAgICBpZiAodGhpcy52aWV3QnV0dG9ucyAmJiBzZWxlY3Rpb25Nb2RlICE9PSB0aGlzLl9zZWxlY3Rpb25Nb2RlKSB7XG4gICAgICAgICAgICB0aGlzLmJ1dHRvbnMuZm9yRWFjaCgoYixpKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kZXNlbGVjdEJ1dHRvbihpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9uTW9kZSA9IHNlbGVjdGlvbk1vZGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlID0gc2VsZWN0aW9uTW9kZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IGFsbG93cyBzZXR0aW5nIHRoZSBidXR0b25zIGluIHRoZSBidXR0b24gZ3JvdXAuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICogICAgICB0aGlzLmNpdGllcyA9IFtcbiAgICAgKiAgICAgICAgbmV3IEJ1dHRvbih7XG4gICAgICogICAgICAgICAgbGFiZWw6IFwiU29maWFcIlxuICAgICAqICAgICAgfSksXG4gICAgICogICAgICAgIG5ldyBCdXR0b24oe1xuICAgICAqICAgICAgICAgIGxhYmVsOiBcIkxvbmRvblwiXG4gICAgICogICAgICB9KSxcbiAgICAgKiAgICAgICAgbmV3IEJ1dHRvbih7XG4gICAgICogICAgICAgICAgbGFiZWw6IFwiTmV3IFlvcmtcIixcbiAgICAgKiAgICAgICAgICBzZWxlY3RlZDogdHJ1ZVxuICAgICAqICAgICAgfSksXG4gICAgICogICAgICAgIG5ldyBCdXR0b24oe1xuICAgICAqICAgICAgICAgIGxhYmVsOiBcIlRva3lvXCJcbiAgICAgKiAgICAgIH0pXG4gICAgICogIF07XG4gICAgICogIH1cbiAgICAgKiAgLy8uLlxuICAgICAqIGBgYFxuICAgICAqIGBgYGh0bWxcbiAgICAgKiAgPGlneC1idXR0b25ncm91cCBbc2VsZWN0aW9uTW9kZV09XCInc2luZ2xlJ1wiIFt2YWx1ZXNdPVwiY2l0aWVzXCI+PC9pZ3gtYnV0dG9uZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbHVlczogYW55O1xuXG4gICAgLyoqXG4gICAgICogQW4gQElucHV0IHByb3BlcnR5IHRoYXQgYWxsb3dzIHlvdSB0byBkaXNhYmxlIHRoZSBgaWd4LWJ1dHRvbmdyb3VwYCBjb21wb25lbnQuIEJ5IGRlZmF1bHQgaXQncyBmYWxzZS5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1idXR0b25ncm91cCBbZGlzYWJsZWRdPVwidHJ1ZVwiIFtzZWxlY3Rpb25Nb2RlXT1cIidtdWx0aSdcIiBbdmFsdWVzXT1cImZvbnRPcHRpb25zXCI+PC9pZ3gtYnV0dG9uZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcblxuICAgICAgICAgICAgaWYgKHRoaXMudmlld0J1dHRvbnMgJiYgdGhpcy50ZW1wbGF0ZUJ1dHRvbnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1dHRvbnMuZm9yRWFjaCgoYikgPT4gKGIuZGlzYWJsZWQgPSB0aGlzLl9kaXNhYmxlZCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWxsb3dzIHlvdSB0byBzZXQgdGhlIGJ1dHRvbiBncm91cCBhbGlnbm1lbnQuXG4gICAgICogQXZhaWxhYmxlIG9wdGlvbnMgYXJlIGBCdXR0b25Hcm91cEFsaWdubWVudC5ob3Jpem9udGFsYCAoZGVmYXVsdCkgYW5kIGBCdXR0b25Hcm91cEFsaWdubWVudC52ZXJ0aWNhbGAuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHB1YmxpYyBhbGlnbm1lbnQgPSBCdXR0b25Hcm91cEFsaWdubWVudC52ZXJ0aWNhbDtcbiAgICAgKiAvLy4uXG4gICAgICogYGBgXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYnV0dG9uZ3JvdXAgW3NlbGVjdGlvbk1vZGVdPVwiJ3NpbmdsZSdcIiBbdmFsdWVzXT1cImNpdGllc1wiIFthbGlnbm1lbnRdPVwiYWxpZ25tZW50XCI+PC9pZ3gtYnV0dG9uZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGFsaWdubWVudCh2YWx1ZTogQnV0dG9uR3JvdXBBbGlnbm1lbnQpIHtcbiAgICAgICAgdGhpcy5faXNWZXJ0aWNhbCA9IHZhbHVlID09PSBCdXR0b25Hcm91cEFsaWdubWVudC52ZXJ0aWNhbDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgYWxpZ25tZW50IG9mIHRoZSBgaWd4LWJ1dHRvbmdyb3VwYC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15Q2hpbGRcIilcbiAgICAgKiBwdWJsaWMgYnV0dG9uRzogSWd4QnV0dG9uR3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgbGV0IGJ1dHRvbkFsaWdubWVudCA9IHRoaXMuYnV0dG9uRy5hbGlnbm1lbnQ7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgYWxpZ25tZW50KCk6IEJ1dHRvbkdyb3VwQWxpZ25tZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmVydGljYWwgPyBCdXR0b25Hcm91cEFsaWdubWVudC52ZXJ0aWNhbCA6IEJ1dHRvbkdyb3VwQWxpZ25tZW50Lmhvcml6b250YWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW4gQE91cHV0IHByb3BlcnR5IHRoYXQgZW1pdHMgYW4gZXZlbnQgd2hlbiBhIGJ1dHRvbiBpcyBzZWxlY3RlZC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcInRvYXN0XCIpXG4gICAgICogcHJpdmF0ZSB0b2FzdDogSWd4VG9hc3RDb21wb25lbnQ7XG4gICAgICogcHVibGljIHNlbGVjdGVkSGFuZGxlcihidXR0b25ncm91cCkge1xuICAgICAqICAgICB0aGlzLnRvYXN0Lm9wZW4oKVxuICAgICAqIH1cbiAgICAgKiAgLy8uLi5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1idXR0b25ncm91cCAjTXlDaGlsZCBbc2VsZWN0aW9uTW9kZV09XCInbXVsdGknXCIgKHNlbGVjdGVkKT1cInNlbGVjdGVkSGFuZGxlcigkZXZlbnQpXCI+PC9pZ3gtYnV0dG9uZ3JvdXA+XG4gICAgICogPGlneC10b2FzdCAjdG9hc3Q+WW91IGhhdmUgbWFkZSBhIHNlbGVjdGlvbiE8L2lneC10b2FzdD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElCdXR0b25Hcm91cEV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEFuIEBPdXB1dCBwcm9wZXJ0eSB0aGF0IGVtaXRzIGFuIGV2ZW50IHdoZW4gYSBidXR0b24gaXMgZGVzZWxlY3RlZC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogIEBWaWV3Q2hpbGQoXCJ0b2FzdFwiKVxuICAgICAqICBwcml2YXRlIHRvYXN0OiBJZ3hUb2FzdENvbXBvbmVudDtcbiAgICAgKiAgcHVibGljIGRlc2VsZWN0ZWRIYW5kbGVyKGJ1dHRvbmdyb3VwKXtcbiAgICAgKiAgICAgdGhpcy50b2FzdC5vcGVuKClcbiAgICAgKiB9XG4gICAgICogIC8vLi4uXG4gICAgICogYGBgXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYnV0dG9uZ3JvdXA+ICNNeUNoaWxkIFtzZWxlY3Rpb25Nb2RlXT1cIidtdWx0aSdcIiAoZGVzZWxlY3RlZCk9XCJkZXNlbGVjdGVkSGFuZGxlcigkZXZlbnQpXCI+PC9pZ3gtYnV0dG9uZ3JvdXA+XG4gICAgICogPGlneC10b2FzdCAjdG9hc3Q+WW91IGhhdmUgZGVzZWxlY3RlZCBhIGJ1dHRvbiE8L2lneC10b2FzdD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZGVzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUJ1dHRvbkdyb3VwRXZlbnRBcmdzPigpO1xuXG4gICAgQFZpZXdDaGlsZHJlbihJZ3hCdXR0b25EaXJlY3RpdmUpIHByaXZhdGUgdmlld0J1dHRvbnM6IFF1ZXJ5TGlzdDxJZ3hCdXR0b25EaXJlY3RpdmU+O1xuICAgIEBDb250ZW50Q2hpbGRyZW4oSWd4QnV0dG9uRGlyZWN0aXZlKSBwcml2YXRlIHRlbXBsYXRlQnV0dG9uczogUXVlcnlMaXN0PElneEJ1dHRvbkRpcmVjdGl2ZT47XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGBpZ3gtYnV0dG9uZ3JvdXBgIGFsaWdubWVudCBpcyB2ZXJ0aWNhbC5cbiAgICAgKiBOb3RlIHRoYXQgaW4gb3JkZXIgZm9yIHRoZSBhY2Nlc3NvciB0byB3b3JrIGNvcnJlY3RseSB0aGUgcHJvcGVydHkgc2hvdWxkIGJlIHNldCBleHBsaWNpdGx5LlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWJ1dHRvbmdyb3VwICNNeUNoaWxkIFthbGlnbm1lbnRdPVwiYWxpZ25tZW50XCIgW3ZhbHVlc109XCJhbGlnbk9wdGlvbnNcIj5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogLy8uLi5cbiAgICAgKiBAVmlld0NoaWxkKFwiTXlDaGlsZFwiKVxuICAgICAqIHByaXZhdGUgYnV0dG9uRzogSWd4QnV0dG9uR3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgbGV0IG9yaWVudGF0aW9uID0gdGhpcy5idXR0b25HLmlzVmVydGljYWw7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNWZXJ0aWNhbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmVydGljYWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3RlZEluZGV4ZXM6IG51bWJlcltdID0gW107XG5cbiAgICBwcm90ZWN0ZWQgYnV0dG9uQ2xpY2tOb3RpZmllciQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIHByb3RlY3RlZCBidXR0b25TZWxlY3RlZE5vdGlmaWVyJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJvdGVjdGVkIHF1ZXJ5TGlzdE5vdGlmaWVyJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBwcml2YXRlIF9pc1ZlcnRpY2FsOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2l0ZW1Db250ZW50Q3NzQ2xhc3M6IHN0cmluZztcbiAgICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX3NlbGVjdGlvbk1vZGU6ICdzaW5nbGUnIHwgJ3NpbmdsZVJlcXVpcmVkJyB8ICdtdWx0aScgPSAnc2luZ2xlJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIF9lbDogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChEaXNwbGF5RGVuc2l0eVRva2VuKSBwcm90ZWN0ZWQgX2Rpc3BsYXlEZW5zaXR5T3B0aW9uczogSURpc3BsYXlEZW5zaXR5T3B0aW9uc1xuICAgICkge1xuICAgICAgICBzdXBlcihfZGlzcGxheURlbnNpdHlPcHRpb25zLCBfZWwpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHNlbGVjdGVkIGJ1dHRvbi9idXR0b25zLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlDaGlsZFwiKVxuICAgICAqIHByaXZhdGUgYnV0dG9uRzogSWd4QnV0dG9uR3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgbGV0IHNlbGVjdGVkQnV0dG9uID0gdGhpcy5idXR0b25HLnNlbGVjdGVkQnV0dG9ucztcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBzZWxlY3RlZEJ1dHRvbnMoKTogSWd4QnV0dG9uRGlyZWN0aXZlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5idXR0b25zLmZpbHRlcigoXywgaSkgPT4gdGhpcy5zZWxlY3RlZEluZGV4ZXMuaW5kZXhPZihpKSAhPT0gLTEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlbGVjdHMgYSBidXR0b24gYnkgaXRzIGluZGV4LlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlDaGlsZFwiKVxuICAgICAqIHByaXZhdGUgYnV0dG9uRzogSWd4QnV0dG9uR3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgdGhpcy5idXR0b25HLnNlbGVjdEJ1dHRvbigyKTtcbiAgICAgKiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlck9mIHtAbGluayBJZ3hCdXR0b25Hcm91cENvbXBvbmVudH1cbiAgICAgKi9cbiAgICBwdWJsaWMgc2VsZWN0QnV0dG9uKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKGluZGV4ID49IHRoaXMuYnV0dG9ucy5sZW5ndGggfHwgaW5kZXggPCAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBidXR0b24gPSB0aGlzLmJ1dHRvbnNbaW5kZXhdO1xuICAgICAgICBidXR0b24uc2VsZWN0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVTZWxlY3RlZChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGJ1dHRvbiA9IHRoaXMuYnV0dG9uc1tpbmRleF07XG5cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleGVzLmluZGV4T2YoaW5kZXgpID09PSAtMSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ZXMucHVzaChpbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRBdHRyaWJ1dGUoYnV0dG9uLm5hdGl2ZUVsZW1lbnQsICdhcmlhLXByZXNzZWQnLCAndHJ1ZScpO1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyhidXR0b24ubmF0aXZlRWxlbWVudCwgJ2lneC1idXR0b24tZ3JvdXBfX2l0ZW0tLXNlbGVjdGVkJyk7XG5cbiAgICAgICAgY29uc3QgaW5kZXhJblZpZXdCdXR0b25zID0gdGhpcy52aWV3QnV0dG9ucy50b0FycmF5KCkuaW5kZXhPZihidXR0b24pO1xuICAgICAgICBpZiAoaW5kZXhJblZpZXdCdXR0b25zICE9PSAtMSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZXNbaW5kZXhJblZpZXdCdXR0b25zXS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBkZXNlbGVjdCBvdGhlciBidXR0b25zIGlmIHNlbGVjdGlvbk1vZGUgaXMgbm90IG11bHRpXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgIT09ICdtdWx0aScgJiYgdGhpcy5zZWxlY3RlZEluZGV4ZXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgdGhpcy5idXR0b25zLmZvckVhY2goKF8sIGkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaSAhPT0gaW5kZXggJiYgdGhpcy5zZWxlY3RlZEluZGV4ZXMuaW5kZXhPZihpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXNlbGVjdEJ1dHRvbihpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlc2VsZWN0cyBhIGJ1dHRvbiBieSBpdHMgaW5kZXguXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUNoaWxkXCIpXG4gICAgICogcHJpdmF0ZSBidXR0b25HOiBJZ3hCdXR0b25Hcm91cENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICAgKiAgICB0aGlzLmJ1dHRvbkcuZGVzZWxlY3RCdXR0b24oMik7XG4gICAgICogICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJPZiB7QGxpbmsgSWd4QnV0dG9uR3JvdXBDb21wb25lbnR9XG4gICAgICovXG4gICAgcHVibGljIGRlc2VsZWN0QnV0dG9uKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKGluZGV4ID49IHRoaXMuYnV0dG9ucy5sZW5ndGggfHwgaW5kZXggPCAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBidXR0b24gPSB0aGlzLmJ1dHRvbnNbaW5kZXhdO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXhlcy5zcGxpY2UodGhpcy5zZWxlY3RlZEluZGV4ZXMuaW5kZXhPZihpbmRleCksIDEpO1xuXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZShidXR0b24ubmF0aXZlRWxlbWVudCwgJ2FyaWEtcHJlc3NlZCcsICdmYWxzZScpO1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyhidXR0b24ubmF0aXZlRWxlbWVudCwgJ2lneC1idXR0b24tZ3JvdXBfX2l0ZW0tLXNlbGVjdGVkJyk7XG4gICAgICAgIGJ1dHRvbi5kZXNlbGVjdCgpO1xuXG4gICAgICAgIGNvbnN0IGluZGV4SW5WaWV3QnV0dG9ucyA9IHRoaXMudmlld0J1dHRvbnMudG9BcnJheSgpLmluZGV4T2YoYnV0dG9uKTtcbiAgICAgICAgaWYgKGluZGV4SW5WaWV3QnV0dG9ucyAhPT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVzW2luZGV4SW5WaWV3QnV0dG9uc10uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnRlbXBsYXRlQnV0dG9ucy5mb3JFYWNoKChidXR0b24pID0+IHtcbiAgICAgICAgICAgIGlmICghYnV0dG9uLmluaXRpYWxEZW5zaXR5KSB7XG4gICAgICAgICAgICAgICAgYnV0dG9uLmRpc3BsYXlEZW5zaXR5ID0gdGhpcy5kaXNwbGF5RGVuc2l0eTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGNvbnN0IGluaXRCdXR0b25zID0gKCkgPT4ge1xuICAgICAgICAgICAgLy8gQ2FuY2VsIGFueSBleGlzdGluZyBidXR0b25DbGljayBzdWJzY3JpcHRpb25zXG4gICAgICAgICAgICB0aGlzLmJ1dHRvbkNsaWNrTm90aWZpZXIkLm5leHQoKTtcblxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ZXMuc3BsaWNlKDAsIHRoaXMuc2VsZWN0ZWRJbmRleGVzLmxlbmd0aCk7XG5cbiAgICAgICAgICAgIC8vIGluaXRpYWwgY29uZmlndXJhdGlvblxuICAgICAgICAgICAgdGhpcy5idXR0b25zLmZvckVhY2goKGJ1dHRvbiwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBidXR0b25FbGVtZW50ID0gYnV0dG9uLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3MoYnV0dG9uRWxlbWVudCwgJ2lneC1idXR0b24tZ3JvdXBfX2l0ZW0nKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGJ1dHRvbi5zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkKGluZGV4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBidXR0b24uYnV0dG9uQ2xpY2sucGlwZSh0YWtlVW50aWwodGhpcy5idXR0b25DbGlja05vdGlmaWVyJCkpLnN1YnNjcmliZSgoXykgPT4gdGhpcy5fY2xpY2tIYW5kbGVyKGluZGV4KSk7XG4gICAgICAgICAgICAgICAgYnV0dG9uLmJ1dHRvblNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmJ1dHRvblNlbGVjdGVkTm90aWZpZXIkKSlcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoXykgPT4gdGhpcy51cGRhdGVTZWxlY3RlZChpbmRleCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy52aWV3QnV0dG9ucy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMucXVlcnlMaXN0Tm90aWZpZXIkKSkuc3Vic2NyaWJlKCgpID0+IGluaXRCdXR0b25zKCkpO1xuICAgICAgICB0aGlzLnRlbXBsYXRlQnV0dG9ucy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMucXVlcnlMaXN0Tm90aWZpZXIkKSkuc3Vic2NyaWJlKCgpID0+IGluaXRCdXR0b25zKCkpO1xuICAgICAgICBpbml0QnV0dG9ucygpO1xuXG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5idXR0b25DbGlja05vdGlmaWVyJC5uZXh0KCk7XG4gICAgICAgIHRoaXMuYnV0dG9uQ2xpY2tOb3RpZmllciQuY29tcGxldGUoKTtcblxuICAgICAgICB0aGlzLmJ1dHRvblNlbGVjdGVkTm90aWZpZXIkLm5leHQoKTtcbiAgICAgICAgdGhpcy5idXR0b25TZWxlY3RlZE5vdGlmaWVyJC5jb21wbGV0ZSgpO1xuXG4gICAgICAgIHRoaXMucXVlcnlMaXN0Tm90aWZpZXIkLm5leHQoKTtcbiAgICAgICAgdGhpcy5xdWVyeUxpc3ROb3RpZmllciQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIF9jbGlja0hhbmRsZXIoaW5kZXg6IG51bWJlcikge1xuICAgICAgICBjb25zdCBidXR0b24gPSB0aGlzLmJ1dHRvbnNbaW5kZXhdO1xuICAgICAgICBjb25zdCBhcmdzOiBJQnV0dG9uR3JvdXBFdmVudEFyZ3MgPSB7IG93bmVyOiB0aGlzLCBidXR0b24sIGluZGV4IH07XG5cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ211bHRpJykge1xuICAgICAgICAgICAgdGhpcy5idXR0b25zLmZvckVhY2goKGIsIGkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaSAhPT0gaW5kZXggJiYgdGhpcy5zZWxlY3RlZEluZGV4ZXMuaW5kZXhPZihpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXNlbGVjdGVkLmVtaXQoeyBvd25lcjogdGhpcywgYnV0dG9uOiBiLCBpbmRleDogaSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSW5kZXhlcy5pbmRleE9mKGluZGV4KSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0QnV0dG9uKGluZGV4KTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChhcmdzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgIT09ICdzaW5nbGVSZXF1aXJlZCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlc2VsZWN0QnV0dG9uKGluZGV4KTtcbiAgICAgICAgICAgICAgICB0aGlzLmRlc2VsZWN0ZWQuZW1pdChhcmdzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQnV0dG9uR3JvdXBFdmVudEFyZ3MgZXh0ZW5kcyBJQmFzZUV2ZW50QXJncyB7XG4gICAgb3duZXI6IElneEJ1dHRvbkdyb3VwQ29tcG9uZW50O1xuICAgIGJ1dHRvbjogSWd4QnV0dG9uRGlyZWN0aXZlO1xuICAgIGluZGV4OiBudW1iZXI7XG59XG4iLCI8ZGl2IGNsYXNzPVwiaWd4LWJ1dHRvbi1ncm91cFwiIHJvbGU9XCJncm91cFwiIFtjbGFzcy5pZ3gtYnV0dG9uLWdyb3VwLS12ZXJ0aWNhbF09XCJpc1ZlcnRpY2FsXCI+XG4gICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIHZhbHVlczsgbGV0IGkgPSAnaW5kZXgnXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGlneEJ1dHRvbj1cImZsYXRcIlxuICAgICAgICBbZGlzcGxheURlbnNpdHldPVwiZGlzcGxheURlbnNpdHlcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwiYnV0dG9uLnNlbGVjdGVkXCJcbiAgICAgICAgW2F0dHIuZGF0YS10b2dnbGFibGVdPVwiYnV0dG9uLnRvZ2dsYWJsZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBidXR0b24uZGlzYWJsZWRcIlxuICAgICAgICBbaWd4QnV0dG9uQ29sb3JdPVwiYnV0dG9uLmNvbG9yXCJcbiAgICAgICAgW2lneEJ1dHRvbkJhY2tncm91bmRdPVwiYnV0dG9uLmJnY29sb3JcIlxuICAgICAgICBbaWd4TGFiZWxdPVwiYnV0dG9uLmxhYmVsXCJcbiAgICAgICAgW2lneFJpcHBsZV09XCJidXR0b24ucmlwcGxlXCJcbiAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaWd4LWJ1dHRvbi1ncm91cF9faXRlbS1jb250ZW50IHt7IGl0ZW1Db250ZW50Q3NzQ2xhc3MgfX1cIj5cbiAgICAgICAgICAgIDxpZ3gtaWNvbiAqbmdJZj1cImJ1dHRvbi5pY29uXCI+e3tidXR0b24uaWNvbn19PC9pZ3gtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWd4LWJ1dHRvbi1ncm91cF9fYnV0dG9uLXRleHRcIiAqbmdJZj1cImJ1dHRvbi5sYWJlbFwiPnt7YnV0dG9uLmxhYmVsfX08L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
@@ -329,7 +329,7 @@ export class Calendar {
329
329
  // if the week number is greater than week 52
330
330
  if (weekNumber > 52) {
331
331
  // next year
332
- let nextYear = new Date(date.getFullYear() + 1, 0, 1);
332
+ const nextYear = new Date(date.getFullYear() + 1, 0, 1);
333
333
  // first day of the next year
334
334
  let nextYearFirstDay = nextYear.getDay() - weekStart;
335
335
  nextYearFirstDay = nextYearFirstDay >= 0 ? nextYearFirstDay : nextYearFirstDay + 7;
@@ -360,4 +360,4 @@ export class Calendar {
360
360
  return date.getFullYear() > year;
361
361
  }
362
362
  }
363
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztJQUNwQyxNQUFNLEVBQUUsUUFBUTtJQUNoQixLQUFLLEVBQUUsT0FBTztJQUNkLEtBQUssRUFBRSxPQUFPO0NBQ2pCLENBQUMsQ0FBQztBQUdILE1BQU0sQ0FBTixJQUFZLFdBSVg7QUFKRCxXQUFZLFdBQVc7SUFDbkIsNEJBQWEsQ0FBQTtJQUNiLDRCQUFhLENBQUE7SUFDYiw0QkFBYSxDQUFBO0FBQ2pCLENBQUMsRUFKVyxXQUFXLEtBQVgsV0FBVyxRQUl0QjtBQU9ELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUM7SUFDbEMsS0FBSyxFQUFFLE9BQU87SUFDZCxJQUFJLEVBQUUsTUFBTTtJQUNaLE1BQU0sRUFBRSxRQUFRO0NBQ25CLENBQUMsQ0FBQztBQU9IOztHQUVHO0FBQ0gsSUFBSyxpQkFHSjtBQUhELFdBQUssaUJBQWlCO0lBQ2xCLG9DQUFlLENBQUE7SUFDZixrQ0FBYSxDQUFBO0FBQ2pCLENBQUMsRUFISSxpQkFBaUIsS0FBakIsaUJBQWlCLFFBR3JCO0FBRUQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQy9ELE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQztBQUVuQixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7SUFDL0MsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2YsTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzdDLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNoRCxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUU7UUFDdkQsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNmO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFZLEVBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVoSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLEdBQVcsRUFBVSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUVqSDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBWSxFQUFFLEtBQWEsRUFBWSxFQUFFO0lBQ2hFLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUU7UUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0tBQzlDO0lBQ0QsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEMsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtRQUN4QyxLQUFLLEVBQUUsQ0FBQztLQUNYO0lBQ0QsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxJQUFVLEVBQUUsTUFBNkIsRUFBVyxFQUFFO0lBQ2pGLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUVoQyxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ1QsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFRCxLQUFLLE1BQU0sVUFBVSxJQUFJLE1BQU0sRUFBRTtRQUM3QixNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FDM0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUMzRSxRQUFRLFVBQVUsQ0FBQyxJQUFJLEVBQUU7WUFDckIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7Z0JBQ3RCLElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtvQkFDakMsT0FBTyxJQUFJLENBQUM7aUJBQ2Y7Z0JBRUQsTUFBTTtZQUNWLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO2dCQUN2QixJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7b0JBQ2pDLE9BQU8sSUFBSSxDQUFDO2lCQUNmO2dCQUVELE1BQU07WUFDVixLQUFLLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztnQkFDeEIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2dCQUM3QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLElBQUksUUFBUSxJQUFJLEdBQUcsSUFBSSxRQUFRLElBQUksR0FBRyxFQUFFO29CQUNwQyxPQUFPLElBQUksQ0FBQztpQkFDZjtnQkFFRCxNQUFNO1lBQ1YsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7Z0JBQ3pCLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDaEQsS0FBSyxNQUFNLGdCQUFnQixJQUFJLFNBQVMsRUFBRTtvQkFDdEMsSUFBSSxRQUFRLEtBQUssZ0JBQWdCLEVBQUU7d0JBQy9CLE9BQU8sSUFBSSxDQUFDO3FCQUNmO2lCQUNKO2dCQUVELE1BQU07WUFDVixLQUFLLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztnQkFDekIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMxQixJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNmLE9BQU8sSUFBSSxDQUFDO2lCQUNmO2dCQUVELE1BQU07WUFDVixLQUFLLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztnQkFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM5QixJQUFJLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNuQixPQUFPLElBQUksQ0FBQztpQkFDZjtnQkFFRCxNQUFNO1lBQ1Y7Z0JBQ0ksT0FBTyxLQUFLLENBQUM7U0FDcEI7S0FDSjtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQztBQTZCRixNQUFNLENBQU4sSUFBWSxRQVFYO0FBUkQsV0FBWSxRQUFRO0lBQ2hCLDJDQUFVLENBQUE7SUFDViwyQ0FBVSxDQUFBO0lBQ1YsNkNBQVcsQ0FBQTtJQUNYLGlEQUFhLENBQUE7SUFDYiwrQ0FBWSxDQUFBO0lBQ1osMkNBQVUsQ0FBQTtJQUNWLCtDQUFZLENBQUE7QUFDaEIsQ0FBQyxFQVJXLFFBQVEsS0FBUixRQUFRLFFBUW5CO0FBRUQsTUFBTSxPQUFPLFFBQVE7SUFJakIsWUFBWSxlQUF5QixRQUFRLENBQUMsTUFBTTtRQUNoRCxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVcsWUFBWSxDQUFDLEtBQWE7UUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxRQUFRO1FBQ1gsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2YsS0FBSyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQzdELEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ25CO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLFVBQVUsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLFNBQVMsR0FBRyxLQUFLO1FBQzVELElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRCxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDVixJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0I7UUFDRCxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxLQUFvQixDQUFDO1FBRXpCLGlEQUFpRDtRQUNqRCxPQUFPLElBQUksRUFBRTtZQUVULEtBQUssR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0RCxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWhCLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUU7Z0JBQ3RFLElBQUksU0FBUyxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxFQUFFO29CQUMvQixLQUFLLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7d0JBQ3pCLEtBQUssR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQzt3QkFDdEQsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDaEIsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztxQkFDekM7aUJBQ0o7Z0JBQ0QsTUFBTTthQUNUO1NBQ0o7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxrQkFBa0IsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLFNBQVMsR0FBRyxLQUFLO1FBQ3BFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN0RCxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDZixLQUFLLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRTtZQUN2QyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25DO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRU0sU0FBUyxDQUFDLElBQVUsRUFBRSxRQUFnQixFQUFFLEtBQWE7UUFDeEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFM0IsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDbEMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNsQjtRQUNMLENBQUMsQ0FBQztRQUVGLFFBQVEsUUFBUSxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQzVCLEtBQUssTUFBTTtnQkFDUCxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztnQkFDM0MsYUFBYSxFQUFFLENBQUM7Z0JBQ2hCLE1BQU07WUFDVixLQUFLLFNBQVM7Z0JBQ1YsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO2dCQUN6QyxhQUFhLEVBQUUsQ0FBQztnQkFDaEIsTUFBTTtZQUNWLEtBQUssT0FBTztnQkFDUixHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztnQkFDckMsYUFBYSxFQUFFLENBQUM7Z0JBQ2hCLE1BQU07WUFDVixLQUFLLE1BQU07Z0JBQ1AsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO2dCQUN2QyxNQUFNO1lBQ1YsS0FBSyxLQUFLO2dCQUNOLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDO2dCQUNuQyxNQUFNO1lBQ1YsS0FBSyxNQUFNO2dCQUNQLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQztnQkFDN0MsTUFBTTtZQUNWLEtBQUssUUFBUTtnQkFDVCxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLE1BQU07WUFDVixLQUFLLFFBQVE7Z0JBQ1QsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUMxQyxNQUFNO1lBQ1Y7Z0JBQ0ksTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRU0sYUFBYSxDQUFDLElBQVUsRUFBRSxNQUFjLEVBQUUsT0FBWSxFQUFFLEtBQWU7UUFDMUUsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMzRCxNQUFNLE1BQU0sR0FBRztZQUNYLElBQUk7WUFDSixJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDL0IsQ0FBQztRQUVGLElBQUssU0FBaUIsQ0FBQyxhQUFhLEVBQUU7WUFDbEMsTUFBTSxjQUFjLEdBQUksU0FBaUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFOUQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxRQUFnQixFQUFFLEVBQUU7Z0JBQ2hDLE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7Z0JBQ3hFLE1BQU0sQ0FBQyxHQUFvQixFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUM7Z0JBRXBFLElBQUksUUFBUSxLQUFLLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ2xDLENBQUMsQ0FBQyxLQUFLLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQztvQkFDdEMsT0FBTyxDQUFDLENBQUM7aUJBQ1o7cUJBQU0sSUFBSSxRQUFRLEtBQUssS0FBSyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtvQkFDM0MsT0FBTyxDQUFDLENBQUM7aUJBQ1o7Z0JBRUQsQ0FBQyxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUN0QyxDQUFDLENBQUMsT0FBTyxHQUFHLGNBQWMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzdFLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNDLE9BQU8sQ0FBQyxDQUFDO1lBQ2IsQ0FBQyxDQUFDO1lBRUYsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7Z0JBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDL0I7U0FDSjthQUFNO1lBQ0gsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7Z0JBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUM7YUFDM0Q7U0FDSjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxJQUFVLEVBQUUsUUFBZ0IsRUFBRSxhQUFxQjtRQUN2RSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTSxhQUFhLENBQUMsSUFBVSxFQUFFLFFBQWdCLEVBQUUsYUFBcUI7UUFDcEUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUFVO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTSxZQUFZLENBQUMsSUFBVTtRQUMxQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTSxXQUFXLENBQUMsSUFBVTtRQUN6QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU0sV0FBVyxDQUFDLElBQVU7UUFDekIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sYUFBYSxDQUFDLElBQVUsRUFBRSxTQUE0QjtRQUN6RCxlQUFlO1FBQ2YsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyRCx1Q0FBdUM7UUFDdkMsSUFBSSxpQkFBaUIsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDO1FBQ3ZELGlCQUFpQixHQUFHLGlCQUFpQixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQztRQUN2RixNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUM7UUFDakMseUJBQXlCO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRTtZQUNsRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNGLElBQUksVUFBVSxDQUFDO1FBQ2YsdUVBQXVFO1FBQ3ZFLDhFQUE4RTtRQUM5RSxJQUFJLGlCQUFpQixHQUFHLENBQUMsRUFBRTtZQUN2Qiw2REFBNkQ7WUFDN0QsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEdBQUcsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3hFO2FBQU07WUFDSCw4QkFBOEI7WUFDOUIsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEdBQUcsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDcEU7UUFDRCw2Q0FBNkM7UUFDN0MsSUFBSSxVQUFVLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLFlBQVk7WUFDWixJQUFJLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN0RCw2QkFBNkI7WUFDN0IsSUFBSSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDO1lBQ3JELGdCQUFnQixHQUFHLGdCQUFnQixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQztZQUNuRiw2RkFBNkY7WUFDN0YsNkVBQTZFO1lBQzdFLFVBQVUsR0FBRyxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQzlDO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVPLHFCQUFxQixDQUFDLElBQVUsRUFBRSxJQUFZLEVBQUUsS0FBYTtRQUNqRSxPQUFPO1lBQ0gsSUFBSTtZQUNKLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxLQUFLO1lBQ3hFLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDO1lBQ2hELFdBQVcsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDO1NBQ3ZELENBQUM7SUFDTixDQUFDO0lBRU8sZUFBZSxDQUFDLElBQVUsRUFBRSxJQUFZLEVBQUUsS0FBYTtRQUMzRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsS0FBSyxDQUFDO1NBQ2xDO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBQ3JDLENBQUM7SUFFTyxXQUFXLENBQUMsSUFBVSxFQUFFLElBQVksRUFBRSxLQUFhO1FBQ3ZELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM3QixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUM7U0FDbEM7UUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDckMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVJhbmdlRGVzY3JpcHRvciwgRGF0ZVJhbmdlVHlwZSB9IGZyb20gJy4uL2NvcmUvZGF0ZXMnO1xuaW1wb3J0IHsgbWtlbnVtIH0gZnJvbSAnLi4vY29yZS91dGlscyc7XG5cbi8qKlxuICogU2V0cyB0aGUgc2VsZWN0aW9uIHR5cGUgLSBzaW5nbGUsIG11bHRpIG9yIHJhbmdlLlxuICovXG5leHBvcnQgY29uc3QgQ2FsZW5kYXJTZWxlY3Rpb24gPSBta2VudW0oe1xuICAgIFNJTkdMRTogJ3NpbmdsZScsXG4gICAgTVVMVEk6ICdtdWx0aScsXG4gICAgUkFOR0U6ICdyYW5nZSdcbn0pO1xuZXhwb3J0IHR5cGUgQ2FsZW5kYXJTZWxlY3Rpb24gPSAodHlwZW9mIENhbGVuZGFyU2VsZWN0aW9uKVtrZXlvZiB0eXBlb2YgQ2FsZW5kYXJTZWxlY3Rpb25dO1xuXG5leHBvcnQgZW51bSBTY3JvbGxNb250aCB7XG4gICAgUFJFViA9ICdwcmV2JyxcbiAgICBORVhUID0gJ25leHQnLFxuICAgIE5PTkUgPSAnbm9uZSdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVmlld0RhdGVDaGFuZ2VFdmVudEFyZ3Mge1xuICAgIHByZXZpb3VzVmFsdWU6IERhdGU7XG4gICAgY3VycmVudFZhbHVlOiBEYXRlO1xufVxuXG5leHBvcnQgY29uc3QgSWd4Q2FsZW5kYXJWaWV3ID0gbWtlbnVtKHtcbiAgICBNb250aDogJ21vbnRoJyxcbiAgICBZZWFyOiAneWVhcicsXG4gICAgRGVjYWRlOiAnZGVjYWRlJ1xufSk7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgQ2FsZW5kYXIgYWN0aXZlIHZpZXcgLSBkYXlzLCBtb250aHMgb3IgeWVhcnMuXG4gKi9cbmV4cG9ydCB0eXBlIElneENhbGVuZGFyVmlldyA9ICh0eXBlb2YgSWd4Q2FsZW5kYXJWaWV3KVtrZXlvZiB0eXBlb2YgSWd4Q2FsZW5kYXJWaWV3XTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbmVudW0gVGltZURlbHRhSW50ZXJ2YWwge1xuICAgIE1vbnRoID0gJ21vbnRoJyxcbiAgICBZZWFyID0gJ3llYXInXG59XG5cbmNvbnN0IE1EQVlTID0gWzMxLCAyOCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdO1xuY29uc3QgRkVCUlVBUlkgPSAxO1xuXG5leHBvcnQgY29uc3QgcmFuZ2UgPSAoc3RhcnQgPSAwLCBzdG9wLCBzdGVwID0gMSkgPT4ge1xuICAgIGNvbnN0IHJlcyA9IFtdO1xuICAgIGNvbnN0IGN1ciA9IChzdG9wID09PSB1bmRlZmluZWQpID8gMCA6IHN0YXJ0O1xuICAgIGNvbnN0IG1heCA9IChzdG9wID09PSB1bmRlZmluZWQpID8gc3RhcnQgOiBzdG9wO1xuICAgIGZvciAobGV0IGkgPSBjdXI7IHN0ZXAgPCAwID8gaSA+IG1heCA6IGkgPCBtYXg7IGkgKz0gc3RlcCkge1xuICAgICAgICByZXMucHVzaChpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbn07XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGZvciBsZWFwIHllYXJzLCBmYWxzZSBmb3Igbm9uLWxlYXAgeWVhcnMuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHllYXJcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBjb25zdCBpc0xlYXAgPSAoeWVhcjogbnVtYmVyKTogYm9vbGVhbiA9PiAoeWVhciAlIDQgPT09IDApICYmICgoeWVhciAlIDEwMCAhPT0gMCkgfHwgKHllYXIgJSA0MDAgPT09IDApKTtcblxuZXhwb3J0IGNvbnN0IHdlZWtEYXkgPSAoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXk6IG51bWJlcik6IG51bWJlciA9PiBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgZGF5KS5nZXREYXkoKTtcblxuLyoqXG4gKiBSZXR1cm4gd2Vla2RheSBhbmQgbnVtYmVyIG9mIGRheXMgZm9yIHllYXIsIG1vbnRoLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB5ZWFyXG4gKiBAcGFyYW0gbW9udGhcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBjb25zdCBtb250aFJhbmdlID0gKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlcik6IG51bWJlcltdID0+IHtcbiAgICBpZiAoKG1vbnRoIDwgMCkgfHwgKG1vbnRoID4gMTEpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBtb250aCBzcGVjaWZpZWQnKTtcbiAgICB9XG4gICAgY29uc3QgZGF5ID0gd2Vla0RheSh5ZWFyLCBtb250aCwgMSk7XG4gICAgbGV0IG5EYXlzID0gTURBWVNbbW9udGhdO1xuICAgIGlmICgobW9udGggPT09IEZFQlJVQVJZKSAmJiAoaXNMZWFwKHllYXIpKSkge1xuICAgICAgICBuRGF5cysrO1xuICAgIH1cbiAgICByZXR1cm4gW2RheSwgbkRheXNdO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzRGF0ZUluUmFuZ2VzID0gKGRhdGU6IERhdGUsIHJhbmdlczogRGF0ZVJhbmdlRGVzY3JpcHRvcltdKTogYm9vbGVhbiA9PiB7XG4gICAgZGF0ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSk7XG4gICAgY29uc3QgZGF0ZUluTXMgPSBkYXRlLmdldFRpbWUoKTtcblxuICAgIGlmICghcmFuZ2VzKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGRlc2NyaXB0b3Igb2YgcmFuZ2VzKSB7XG4gICAgICAgIGNvbnN0IGRSYW5nZXMgPSBkZXNjcmlwdG9yLmRhdGVSYW5nZSA/IGRlc2NyaXB0b3IuZGF0ZVJhbmdlLm1hcChcbiAgICAgICAgICAgIHIgPT4gbmV3IERhdGUoci5nZXRGdWxsWWVhcigpLCByLmdldE1vbnRoKCksIHIuZ2V0RGF0ZSgpKSkgOiB1bmRlZmluZWQ7XG4gICAgICAgIHN3aXRjaCAoZGVzY3JpcHRvci50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIChEYXRlUmFuZ2VUeXBlLkFmdGVyKTpcbiAgICAgICAgICAgICAgICBpZiAoZGF0ZUluTXMgPiBkUmFuZ2VzWzBdLmdldFRpbWUoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgKERhdGVSYW5nZVR5cGUuQmVmb3JlKTpcbiAgICAgICAgICAgICAgICBpZiAoZGF0ZUluTXMgPCBkUmFuZ2VzWzBdLmdldFRpbWUoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgKERhdGVSYW5nZVR5cGUuQmV0d2Vlbik6XG4gICAgICAgICAgICAgICAgY29uc3QgZFJhbmdlID0gZFJhbmdlcy5tYXAoZCA9PiBkLmdldFRpbWUoKSk7XG4gICAgICAgICAgICAgICAgY29uc3QgbWluID0gTWF0aC5taW4oZFJhbmdlWzBdLCBkUmFuZ2VbMV0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KGRSYW5nZVswXSwgZFJhbmdlWzFdKTtcbiAgICAgICAgICAgICAgICBpZiAoZGF0ZUluTXMgPj0gbWluICYmIGRhdGVJbk1zIDw9IG1heCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgKERhdGVSYW5nZVR5cGUuU3BlY2lmaWMpOlxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVzSW5NcyA9IGRSYW5nZXMubWFwKGQgPT4gZC5nZXRUaW1lKCkpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc3BlY2lmaWNEYXRlSW5NcyBvZiBkYXRlc0luTXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGVJbk1zID09PSBzcGVjaWZpY0RhdGVJbk1zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAoRGF0ZVJhbmdlVHlwZS5XZWVrZGF5cyk6XG4gICAgICAgICAgICAgICAgY29uc3QgZGF5ID0gZGF0ZS5nZXREYXkoKTtcbiAgICAgICAgICAgICAgICBpZiAoZGF5ICUgNiAhPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgKERhdGVSYW5nZVR5cGUuV2Vla2VuZHMpOlxuICAgICAgICAgICAgICAgIGNvbnN0IHdlZWtkYXkgPSBkYXRlLmdldERheSgpO1xuICAgICAgICAgICAgICAgIGlmICh3ZWVrZGF5ICUgNiA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBJQ2FsZW5kYXJEYXRlIHtcbiAgICBkYXRlOiBEYXRlO1xuICAgIGlzQ3VycmVudE1vbnRoOiBib29sZWFuO1xuICAgIGlzUHJldk1vbnRoOiBib29sZWFuO1xuICAgIGlzTmV4dE1vbnRoOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtYXR0ZWRQYXJ0cyB7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICBsaXRlcmFsPzogc3RyaW5nO1xuICAgIGNvbWJpbmVkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1hdHRpbmdPcHRpb25zIHtcbiAgICBkYXk/OiAnbnVtZXJpYycgfCAnMi1kaWdpdCc7XG4gICAgbW9udGg/OiAnbnVtZXJpYycgfCAnMi1kaWdpdCcgfCAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdyc7XG4gICAgd2Vla2RheT86ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93JztcbiAgICB5ZWFyPzogJ251bWVyaWMnIHwgJzItZGlnaXQnO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1hdHRpbmdWaWV3cyB7XG4gICAgZGF5PzogYm9vbGVhbjtcbiAgICBtb250aD86IGJvb2xlYW47XG4gICAgeWVhcj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBlbnVtIFdFRUtEQVlTIHtcbiAgICBTVU5EQVkgPSAwLFxuICAgIE1PTkRBWSA9IDEsXG4gICAgVFVFU0RBWSA9IDIsXG4gICAgV0VETkVTREFZID0gMyxcbiAgICBUSFVSU0RBWSA9IDQsXG4gICAgRlJJREFZID0gNSxcbiAgICBTQVRVUkRBWSA9IDZcbn1cblxuZXhwb3J0IGNsYXNzIENhbGVuZGFyIHtcblxuICAgIHByaXZhdGUgX2ZpcnN0V2Vla0RheTogV0VFS0RBWVMgfCBudW1iZXI7XG5cbiAgICBjb25zdHJ1Y3RvcihmaXJzdFdlZWtEYXk6IFdFRUtEQVlTID0gV0VFS0RBWVMuU1VOREFZKSB7XG4gICAgICAgIHRoaXMuX2ZpcnN0V2Vla0RheSA9IGZpcnN0V2Vla0RheTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZpcnN0V2Vla0RheSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlyc3RXZWVrRGF5ICUgNztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGZpcnN0V2Vla0RheSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2ZpcnN0V2Vla0RheSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYW4gYXJyYXkgb2Ygd2Vla2RheXMgZm9yIG9uZSB3ZWVrIHN0YXJ0aW5nXG4gICAgICogd2l0aCB0aGUgY3VycmVudGx5IHNldCBgZmlyc3RXZWVrRGF5YFxuICAgICAqXG4gICAgICogdGhpcy5maXJzdFdlZWtEYXkgPSAwIChTdW5kYXkpIC0tPiBbMCwgMSwgMiwgMywgNCwgNSwgNl1cbiAgICAgKiB0aGlzLmZpcnN0V2Vla0RheSA9IDEgKE1vbmRheSkgLS0+IFsxLCAyLCAzLCA0LCA1LCA2LCAwXVxuICAgICAqXG4gICAgICogQHJldHVybnNcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBDYWxlbmRhclxuICAgICAqL1xuICAgIHB1YmxpYyB3ZWVrZGF5cygpOiBudW1iZXJbXSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGkgb2YgcmFuZ2UodGhpcy5maXJzdFdlZWtEYXksIHRoaXMuZmlyc3RXZWVrRGF5ICsgNykpIHtcbiAgICAgICAgICAgIHJlcy5wdXNoKGkgJSA3KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGRhdGUgdmFsdWVzIGZvciBvbmUgbW9udGguIEl0IHdpbGwgYWx3YXlzIGl0ZXJhdGUgdGhyb3VnaHRcbiAgICAgKiBjb21wbGV0ZSB3ZWVrcywgc28gaXQgd2lsbCBjb250YWluIGRhdGVzIG91dHNpZGUgdGhlIHNwZWNpZmllZCBtb250aC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB5ZWFyXG4gICAgICogQHBhcmFtIG1vbnRoXG4gICAgICogQHBhcmFtIGJvb2xlYW5cbiAgICAgKiBAcmV0dXJuc1xuICAgICAqXG4gICAgICogQG1lbWJlcm9mIENhbGVuZGFyXG4gICAgICovXG4gICAgcHVibGljIG1vbnRoZGF0ZXMoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBleHRyYVdlZWsgPSBmYWxzZSk6IElDYWxlbmRhckRhdGVbXSB7XG4gICAgICAgIGxldCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpO1xuICAgICAgICBsZXQgZGF5cyA9IChkYXRlLmdldERheSgpIC0gdGhpcy5maXJzdFdlZWtEYXkpICUgNztcbiAgICAgICAgaWYgKGRheXMgPCAwKSB7XG4gICAgICAgICAgICBkYXlzID0gNyAtIE1hdGguYWJzKGRheXMpO1xuICAgICAgICB9XG4gICAgICAgIGRhdGUgPSB0aGlzLnRpbWVkZWx0YShkYXRlLCAnZGF5JywgLWRheXMpO1xuICAgICAgICBjb25zdCByZXMgPSBbXTtcbiAgICAgICAgbGV0IHZhbHVlOiBJQ2FsZW5kYXJEYXRlO1xuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zdGFudC1jb25kaXRpb25cbiAgICAgICAgd2hpbGUgKHRydWUpIHtcblxuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLmdlbmVyYXRlSUNhbGVuZGFyRGF0ZShkYXRlLCB5ZWFyLCBtb250aCk7XG4gICAgICAgICAgICByZXMucHVzaCh2YWx1ZSk7XG5cbiAgICAgICAgICAgIGRhdGUgPSB0aGlzLnRpbWVkZWx0YShkYXRlLCAnZGF5JywgMSk7XG5cbiAgICAgICAgICAgIGlmICgoZGF0ZS5nZXRNb250aCgpICE9PSBtb250aCkgJiYgKGRhdGUuZ2V0RGF5KCkgPT09IHRoaXMuZmlyc3RXZWVrRGF5KSkge1xuICAgICAgICAgICAgICAgIGlmIChleHRyYVdlZWsgJiYgcmVzLmxlbmd0aCA8PSAzNSkge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IF8gb2YgcmFuZ2UoMCwgNykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5nZW5lcmF0ZUlDYWxlbmRhckRhdGUoZGF0ZSwgeWVhciwgbW9udGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZSA9IHRoaXMudGltZWRlbHRhKGRhdGUsICdkYXknLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBtYXRyaXggKGFycmF5IG9mIGFycmF5cykgcmVwcmVzZW50aW5nIGEgbW9udGgncyBjYWxlbmRhci5cbiAgICAgKiBFYWNoIHJvdyByZXByZXNlbnRzIGEgZnVsbCB3ZWVrOyB3ZWVrIGVudHJpZXMgYXJlIElDYWxlbmRhckRhdGUgb2JqZWN0cy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB5ZWFyXG4gICAgICogQHBhcmFtIG1vbnRoXG4gICAgICogQHJldHVybnNcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBDYWxlbmRhclxuICAgICAqL1xuICAgIHB1YmxpYyBtb250aGRhdGVzY2FsZW5kYXIoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBleHRyYVdlZWsgPSBmYWxzZSk6IElDYWxlbmRhckRhdGVbXVtdIHtcbiAgICAgICAgY29uc3QgZGF0ZXMgPSB0aGlzLm1vbnRoZGF0ZXMoeWVhciwgbW9udGgsIGV4dHJhV2Vlayk7XG4gICAgICAgIGNvbnN0IHJlcyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGkgb2YgcmFuZ2UoMCwgZGF0ZXMubGVuZ3RoLCA3KSkge1xuICAgICAgICAgICAgcmVzLnB1c2goZGF0ZXMuc2xpY2UoaSwgaSArIDcpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIHB1YmxpYyB0aW1lZGVsdGEoZGF0ZTogRGF0ZSwgaW50ZXJ2YWw6IHN0cmluZywgdW5pdHM6IG51bWJlcik6IERhdGUge1xuICAgICAgICBjb25zdCByZXQgPSBuZXcgRGF0ZShkYXRlKTtcblxuICAgICAgICBjb25zdCBjaGVja1JvbGxvdmVyID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHJldC5nZXREYXRlKCkgIT09IGRhdGUuZ2V0RGF0ZSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0LnNldERhdGUoMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgc3dpdGNoIChpbnRlcnZhbC50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgICAgICByZXQuc2V0RnVsbFllYXIocmV0LmdldEZ1bGxZZWFyKCkgKyB1bml0cyk7XG4gICAgICAgICAgICAgICAgY2hlY2tSb2xsb3ZlcigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgcmV0LnNldE1vbnRoKHJldC5nZXRNb250aCgpICsgMyAqIHVuaXRzKTtcbiAgICAgICAgICAgICAgICBjaGVja1JvbGxvdmVyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgcmV0LnNldE1vbnRoKHJldC5nZXRNb250aCgpICsgdW5pdHMpO1xuICAgICAgICAgICAgICAgIGNoZWNrUm9sbG92ZXIoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3dlZWsnOlxuICAgICAgICAgICAgICAgIHJldC5zZXREYXRlKHJldC5nZXREYXRlKCkgKyA3ICogdW5pdHMpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgICAgICAgICByZXQuc2V0RGF0ZShyZXQuZ2V0RGF0ZSgpICsgdW5pdHMpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgICAgICAgICAgcmV0LnNldFRpbWUocmV0LmdldFRpbWUoKSArIHVuaXRzICogMzYwMDAwMCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICAgICAgICAgIHJldC5zZXRUaW1lKHJldC5nZXRUaW1lKCkgKyB1bml0cyAqIDYwMDAwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgICAgICAgICAgICAgcmV0LnNldFRpbWUocmV0LmdldFRpbWUoKSArIHVuaXRzICogMTAwMCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBpbnRlcnZhbCBzcGVjaWZpZXInKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmV0O1xuICAgIH1cblxuICAgIHB1YmxpYyBmb3JtYXRUb1BhcnRzKGRhdGU6IERhdGUsIGxvY2FsZTogc3RyaW5nLCBvcHRpb25zOiBhbnksIHBhcnRzOiBzdHJpbmdbXSkge1xuICAgICAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIG9wdGlvbnMpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgZnVsbDogZm9ybWF0dGVyLmZvcm1hdChkYXRlKVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICgoZm9ybWF0dGVyIGFzIGFueSkuZm9ybWF0VG9QYXJ0cykge1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkUGFydHMgPSAoZm9ybWF0dGVyIGFzIGFueSkuZm9ybWF0VG9QYXJ0cyhkYXRlKTtcblxuICAgICAgICAgICAgY29uc3QgdG9UeXBlID0gKHBhcnRUeXBlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGZvcm1hdHRlZFBhcnRzLmZpbmRJbmRleCgoeyB0eXBlIH0pID0+IHR5cGUgPT09IHBhcnRUeXBlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvOiBJRm9ybWF0dGVkUGFydHMgPSB7IHZhbHVlOiAnJywgbGl0ZXJhbDogJycsIGNvbWJpbmVkOiAnJyB9O1xuXG4gICAgICAgICAgICAgICAgaWYgKHBhcnRUeXBlID09PSAnZXJhJyAmJiBpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIG8udmFsdWUgPSBmb3JtYXR0ZWRQYXJ0c1tpbmRleF0udmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGFydFR5cGUgPT09ICdlcmEnICYmIGluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBvLnZhbHVlID0gZm9ybWF0dGVkUGFydHNbaW5kZXhdLnZhbHVlO1xuICAgICAgICAgICAgICAgIG8ubGl0ZXJhbCA9IGZvcm1hdHRlZFBhcnRzW2luZGV4ICsgMV0gPyBmb3JtYXR0ZWRQYXJ0c1tpbmRleCArIDFdLnZhbHVlIDogJyc7XG4gICAgICAgICAgICAgICAgby5jb21iaW5lZCA9IFtvLnZhbHVlLCBvLmxpdGVyYWxdLmpvaW4oJycpO1xuICAgICAgICAgICAgICAgIHJldHVybiBvO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBlYWNoIG9mIHBhcnRzKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2VhY2hdID0gdG9UeXBlKGVhY2gpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9yIChjb25zdCBlYWNoIG9mIHBhcnRzKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2VhY2hdID0geyB2YWx1ZTogJycsIGxpdGVyYWw6ICcnLCBjb21iaW5lZDogJycgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaXJzdFZpZXdEYXRlKGRhdGU6IERhdGUsIGludGVydmFsOiBzdHJpbmcsIGFjdGl2ZVZpZXdJZHg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy50aW1lZGVsdGEoZGF0ZSwgaW50ZXJ2YWwsIC1hY3RpdmVWaWV3SWR4KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGF0ZUJ5VmlldyhkYXRlOiBEYXRlLCBpbnRlcnZhbDogc3RyaW5nLCBhY3RpdmVWaWV3SWR4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGltZWRlbHRhKGRhdGUsIGludGVydmFsLCBhY3RpdmVWaWV3SWR4KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TmV4dE1vbnRoKGRhdGU6IERhdGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGltZWRlbHRhKGRhdGUsIFRpbWVEZWx0YUludGVydmFsLk1vbnRoLCAxKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UHJldk1vbnRoKGRhdGU6IERhdGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGltZWRlbHRhKGRhdGUsIFRpbWVEZWx0YUludGVydmFsLk1vbnRoLCAtMSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE5leHRZZWFyKGRhdGU6IERhdGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGltZWRlbHRhKGRhdGUsIFRpbWVEZWx0YUludGVydmFsLlllYXIsIDEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQcmV2WWVhcihkYXRlOiBEYXRlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRpbWVkZWx0YShkYXRlLCBUaW1lRGVsdGFJbnRlcnZhbC5ZZWFyLCAtMSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFdlZWtOdW1iZXIoZGF0ZTogRGF0ZSwgd2Vla1N0YXJ0OiBXRUVLREFZUyB8IG51bWJlcikge1xuICAgICAgICAvLyBjdXJyZW50IHllYXJcbiAgICAgICAgY29uc3QgeWVhclN0YXJ0ID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCAwLCAxKTtcbiAgICAgICAgLy8gZmlyc3QgZGF5IG51bWJlciBvZiB0aGUgY3VycmVudCB5ZWFyXG4gICAgICAgIGxldCBmaXJzdERheU9mVGhlWWVhciA9IHllYXJTdGFydC5nZXREYXkoKSAtIHdlZWtTdGFydDtcbiAgICAgICAgZmlyc3REYXlPZlRoZVllYXIgPSBmaXJzdERheU9mVGhlWWVhciA+PSAwID8gZmlyc3REYXlPZlRoZVllYXIgOiBmaXJzdERheU9mVGhlWWVhciArIDc7XG4gICAgICAgIGNvbnN0IGRheUluTWlsU2Vjb25kcyA9IDg2NDAwMDAwO1xuICAgICAgICAvLyBkYXkgbnVtYmVyIGluIHRoZSB5ZWFyXG4gICAgICAgIGNvbnN0IGRheU51bWJlciA9IE1hdGguZmxvb3IoKGRhdGUuZ2V0VGltZSgpIC0geWVhclN0YXJ0LmdldFRpbWUoKSAtIFxuICAgICAgICAoZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpIC0geWVhclN0YXJ0LmdldFRpbWV6b25lT2Zmc2V0KCkpICogNjAwMDApIC8gZGF5SW5NaWxTZWNvbmRzKSArIDE7XG4gICAgICAgIGxldCB3ZWVrTnVtYmVyO1xuICAgICAgICAvLyBpZiAwMSBKYW4gaXMgTW9uZGF5IHRvIFRodXJzZGF5LCBpcyBjb25zaWRlcmVkIDFzdCB3ZWVrIG9mIHRoZSB5ZWFyIFxuICAgICAgICAvLyBpZiAwMSBKYW4gc3RhcnRzIEZyaWRheSB0byBTdW5kYXksIGlzIGNvbnNpZGVyZWQgbGFzdCB3ZWVrIG9mIHByZXZpb3VzIHllYXJcbiAgICAgICAgaWYgKGZpcnN0RGF5T2ZUaGVZZWFyIDwgNCkge1xuICAgICAgICAgICAgLy8gd2hlbiBjYWxjdWxhdGluZyB0aGUgd2VlayBudW1iZXIgd2UgYWRkIDEgZm9yIHRoZSAxc3Qgd2Vla1xuICAgICAgICAgICAgd2Vla051bWJlciA9IE1hdGguZmxvb3IoKGRheU51bWJlciArIGZpcnN0RGF5T2ZUaGVZZWFyIC0gMSkgLyA3KSArIDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBjYWxjdWxhdGluZyB0aGUgd2VlayBudW1iZXJcbiAgICAgICAgICAgIHdlZWtOdW1iZXIgPSBNYXRoLmZsb29yKChkYXlOdW1iZXIgKyBmaXJzdERheU9mVGhlWWVhciAtIDEpIC8gNyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgdGhlIHdlZWsgbnVtYmVyIGlzIGdyZWF0ZXIgdGhhbiB3ZWVrIDUyXG4gICAgICAgIGlmICh3ZWVrTnVtYmVyID4gNTIpIHtcbiAgICAgICAgICAgIC8vIG5leHQgeWVhclxuICAgICAgICAgICAgbGV0IG5leHRZZWFyID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpICsgMSwgMCwgMSk7XG4gICAgICAgICAgICAvLyBmaXJzdCBkYXkgb2YgdGhlIG5leHQgeWVhclxuICAgICAgICAgICAgbGV0IG5leHRZZWFyRmlyc3REYXkgPSBuZXh0WWVhci5nZXREYXkoKSAtIHdlZWtTdGFydDtcbiAgICAgICAgICAgIG5leHRZZWFyRmlyc3REYXkgPSBuZXh0WWVhckZpcnN0RGF5ID49IDAgPyBuZXh0WWVhckZpcnN0RGF5IDogbmV4dFllYXJGaXJzdERheSArIDc7XG4gICAgICAgICAgICAvLyBpZiAwMSBKYW4gb2YgdGhlIG5leHQgeWVhciBpcyBNb25kYXkgdG8gVGh1cnNkYXksIGlzIGNvbnNpZGVyZWQgMXN0IHdlZWsgb2YgdGhlIG5leHQgeWVhciBcbiAgICAgICAgICAgIC8vIGlmIDAxIEphbiBpcyBGcmlkYXkgdG8gU3VuZGF5LCBpcyBjb25zaWRlcmVkIDUzcmQgd2VlayBvZiB0aGUgY3VycmVudCB5ZWFyXG4gICAgICAgICAgICB3ZWVrTnVtYmVyID0gbmV4dFllYXJGaXJzdERheSA8IDQgPyAxIDogNTM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHdlZWtOdW1iZXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZUlDYWxlbmRhckRhdGUoZGF0ZTogRGF0ZSwgeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyKTogSUNhbGVuZGFyRGF0ZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgaXNDdXJyZW50TW9udGg6IGRhdGUuZ2V0RnVsbFllYXIoKSA9PT0geWVhciAmJiBkYXRlLmdldE1vbnRoKCkgPT09IG1vbnRoLFxuICAgICAgICAgICAgaXNOZXh0TW9udGg6IHRoaXMuaXNOZXh0TW9udGgoZGF0ZSwgeWVhciwgbW9udGgpLFxuICAgICAgICAgICAgaXNQcmV2TW9udGg6IHRoaXMuaXNQcmV2aW91c01vbnRoKGRhdGUsIHllYXIsIG1vbnRoKVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNQcmV2aW91c01vbnRoKGRhdGU6IERhdGUsIHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoZGF0ZS5nZXRGdWxsWWVhcigpID09PSB5ZWFyKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZS5nZXRNb250aCgpIDwgbW9udGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKSA8IHllYXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc05leHRNb250aChkYXRlOiBEYXRlLCB5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGRhdGUuZ2V0RnVsbFllYXIoKSA9PT0geWVhcikge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGUuZ2V0TW9udGgoKSA+IG1vbnRoO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKSA+IHllYXI7XG4gICAgfVxufVxuIl19
363
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztJQUNwQyxNQUFNLEVBQUUsUUFBUTtJQUNoQixLQUFLLEVBQUUsT0FBTztJQUNkLEtBQUssRUFBRSxPQUFPO0NBQ2pCLENBQUMsQ0FBQztBQUdILE1BQU0sQ0FBTixJQUFZLFdBSVg7QUFKRCxXQUFZLFdBQVc7SUFDbkIsNEJBQWEsQ0FBQTtJQUNiLDRCQUFhLENBQUE7SUFDYiw0QkFBYSxDQUFBO0FBQ2pCLENBQUMsRUFKVyxXQUFXLEtBQVgsV0FBVyxRQUl0QjtBQU9ELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUM7SUFDbEMsS0FBSyxFQUFFLE9BQU87SUFDZCxJQUFJLEVBQUUsTUFBTTtJQUNaLE1BQU0sRUFBRSxRQUFRO0NBQ25CLENBQUMsQ0FBQztBQU9IOztHQUVHO0FBQ0gsSUFBSyxpQkFHSjtBQUhELFdBQUssaUJBQWlCO0lBQ2xCLG9DQUFlLENBQUE7SUFDZixrQ0FBYSxDQUFBO0FBQ2pCLENBQUMsRUFISSxpQkFBaUIsS0FBakIsaUJBQWlCLFFBR3JCO0FBRUQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQy9ELE1BQU0sUUFBUSxH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NkY7WUFDN0YsNkVBQTZFO1lBQzdFLFVBQVUsR0FBRyxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQzlDO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVPLHFCQUFxQixDQUFDLElBQVUsRUFBRSxJQUFZLEVBQUUsS0FBYTtRQUNqRSxPQUFPO1lBQ0gsSUFBSTtZQUNKLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxLQUFLO1lBQ3hFLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDO1lBQ2hELFdBQVcsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDO1NBQ3ZELENBQUM7SUFDTixDQUFDO0lBRU8sZUFBZSxDQUFDLElBQVUsRUFBRSxJQUFZLEVBQUUsS0FBYTtRQUMzRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsS0FBSyxDQUFDO1NBQ2xDO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBQ3JDLENBQUM7SUFFTyxXQUFXLENBQUMsSUFBVSxFQUFFLElBQVksRUFBRSxLQUFhO1FBQ3ZELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM3QixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUM7U0FDbEM7UUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDckMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVJhbmdlRGVzY3JpcHRvciwgRGF0ZVJhbmdlVHlwZSB9IGZyb20gJy4uL2NvcmUvZGF0ZXMnO1xuaW1wb3J0IHsgbWtlbnVtIH0gZnJvbSAnLi4vY29yZS91dGlscyc7XG5cbi8qKlxuICogU2V0cyB0aGUgc2VsZWN0aW9uIHR5cGUgLSBzaW5nbGUsIG11bHRpIG9yIHJhbmdlLlxuICovXG5leHBvcnQgY29uc3QgQ2FsZW5kYXJTZWxlY3Rpb24gPSBta2VudW0oe1xuICAgIFNJTkdMRTogJ3NpbmdsZScsXG4gICAgTVVMVEk6ICdtdWx0aScsXG4gICAgUkFOR0U6ICdyYW5nZSdcbn0pO1xuZXhwb3J0IHR5cGUgQ2FsZW5kYXJTZWxlY3Rpb24gPSAodHlwZW9mIENhbGVuZGFyU2VsZWN0aW9uKVtrZXlvZiB0eXBlb2YgQ2FsZW5kYXJTZWxlY3Rpb25dO1xuXG5leHBvcnQgZW51bSBTY3JvbGxNb250aCB7XG4gICAgUFJFViA9ICdwcmV2JyxcbiAgICBORVhUID0gJ25leHQnLFxuICAgIE5PTkUgPSAnbm9uZSdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVmlld0RhdGVDaGFuZ2VFdmVudEFyZ3Mge1xuICAgIHByZXZpb3VzVmFsdWU6IERhdGU7XG4gICAgY3VycmVudFZhbHVlOiBEYXRlO1xufVxuXG5leHBvcnQgY29uc3QgSWd4Q2FsZW5kYXJWaWV3ID0gbWtlbnVtKHtcbiAgICBNb250aDogJ21vbnRoJyxcbiAgICBZZWFyOiAneWVhcicsXG4gICAgRGVjYWRlOiAnZGVjYWRlJ1xufSk7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgQ2FsZW5kYXIgYWN0aXZlIHZpZXcgLSBkYXlzLCBtb250aHMgb3IgeWVhcnMuXG4gKi9cbmV4cG9ydCB0eXBlIElneENhbGVuZGFyVmlldyA9ICh0eXBlb2YgSWd4Q2FsZW5kYXJWaWV3KVtrZXlvZiB0eXBlb2YgSWd4Q2FsZW5kYXJWaWV3XTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbmVudW0gVGltZURlbHRhSW50ZXJ2YWwge1xuICAgIE1vbnRoID0gJ21vbnRoJyxcbiAgICBZZWFyID0gJ3llYXInXG59XG5cbmNvbnN0IE1EQVlTID0gWzMxLCAyOCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdO1xuY29uc3QgRkVCUlVBUlkgPSAxO1xuXG5leHBvcnQgY29uc3QgcmFuZ2UgPSAoc3RhcnQgPSAwLCBzdG9wLCBzdGVwID0gMSkgPT4ge1xuICAgIGNvbnN0IHJlcyA9IFtdO1xuICAgIGNvbnN0IGN1ciA9IChzdG9wID09PSB1bmRlZmluZWQpID8gMCA6IHN0YXJ0O1xuICAgIGNvbnN0IG1heCA9IChzdG9wID09PSB1bmRlZmluZWQpID8gc3RhcnQgOiBzdG9wO1xuICAgIGZvciAobGV0IGkgPSBjdXI7IHN0ZXAgPCAwID8gaSA+IG1heCA6IGkgPCBtYXg7IGkgKz0gc3RlcCkge1xuICAgICAgICByZXMucHVzaChpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbn07XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGZvciBsZWFwIHllYXJzLCBmYWxzZSBmb3Igbm9uLWxlYXAgeWVhcnMuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHllYXJcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBjb25zdCBpc0xlYXAgPSAoeWVhcjogbnVtYmVyKTogYm9vbGVhbiA9PiAoeWVhciAlIDQgPT09IDApICYmICgoeWVhciAlIDEwMCAhPT0gMCkgfHwgKHllYXIgJSA0MDAgPT09IDApKTtcblxuZXhwb3J0IGNvbnN0IHdlZWtEYXkgPSAoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXk6IG51bWJlcik6IG51bWJlciA9PiBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgZGF5KS5nZXREYXkoKTtcblxuLyoqXG4gKiBSZXR1cm4gd2Vla2RheSBhbmQgbnVtYmVyIG9mIGRheXMgZm9yIHllYXIsIG1vbnRoLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB5ZWFyXG4gKiBAcGFyYW0gbW9udGhcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBjb25zdCBtb250aFJhbmdlID0gKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlcik6IG51bWJlcltdID0+IHtcbiAgICBpZiAoKG1vbnRoIDwgMCkgfHwgKG1vbnRoID4gMTEpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBtb250aCBzcGVjaWZpZWQnKTtcbiAgICB9XG4gICAgY29uc3QgZGF5ID0gd2Vla0RheSh5ZWFyLCBtb250aCwgMSk7XG4gICAgbGV0IG5EYXlzID0gTURBWVNbbW9udGhdO1xuICAgIGlmICgobW9udGggPT09IEZFQlJVQVJZKSAmJiAoaXNMZWFwKHllYXIpKSkge1xuICAgICAgICBuRGF5cysrO1xuICAgIH1cbiAgICByZXR1cm4gW2RheSwgbkRheXNdO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzRGF0ZUluUmFuZ2VzID0gKGRhdGU6IERhdGUsIHJhbmdlczogRGF0ZVJhbmdlRGVzY3JpcHRvcltdKTogYm9vbGVhbiA9PiB7XG4gICAgZGF0ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSk7XG4gICAgY29uc3QgZGF0ZUluTXMgPSBkYXRlLmdldFRpbWUoKTtcblxuICAgIGlmICghcmFuZ2VzKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGRlc2NyaXB0b3Igb2YgcmFuZ2VzKSB7XG4gICAgICAgIGNvbnN0IGRSYW5nZXMgPSBkZXNjcmlwdG9yLmRhdGVSYW5nZSA/IGRlc2NyaXB0b3IuZGF0ZVJhbmdlLm1hcChcbiAgICAgICAgICAgIHIgPT4gbmV3IERhdGUoci5nZXRGdWxsWWVhcigpLCByLmdldE1vbnRoKCksIHIuZ2V0RGF0ZSgpKSkgOiB1bmRlZmluZWQ7XG4gICAgICAgIHN3aXRjaCAoZGVzY3JpcHRvci50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIChEYXRlUmFuZ2VUeXBlLkFmdGVyKTpcbiAgICAgICAgICAgICAgICBpZiAoZGF0ZUluTXMgPiBkUmFuZ2VzWzBdLmdldFRpbWUoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgKERhdGVSYW5nZVR5cGUuQmVmb3JlKTpcbiAgICAgICAgICAgICAgICBpZiAoZGF0ZUluTXMgPCBkUmFuZ2VzWzBdLmdldFRpbWUoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgKERhdGVSYW5nZVR5cGUuQmV0d2Vlbik6XG4gICAgICAgICAgICAgICAgY29uc3QgZFJhbmdlID0gZFJhbmdlcy5tYXAoZCA9PiBkLmdldFRpbWUoKSk7XG4gICAgICAgICAgICAgICAgY29uc3QgbWluID0gTWF0aC5taW4oZFJhbmdlWzBdLCBkUmFuZ2VbMV0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KGRSYW5nZVswXSwgZFJhbmdlWzFdKTtcbiAgICAgICAgICAgICAgICBpZiAoZGF0ZUluTXMgPj0gbWluICYmIGRhdGVJbk1zIDw9IG1heCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgKERhdGVSYW5nZVR5cGUuU3BlY2lmaWMpOlxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVzSW5NcyA9IGRSYW5nZXMubWFwKGQgPT4gZC5nZXRUaW1lKCkpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc3BlY2lmaWNEYXRlSW5NcyBvZiBkYXRlc0luTXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGVJbk1zID09PSBzcGVjaWZpY0RhdGVJbk1zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAoRGF0ZVJhbmdlVHlwZS5XZWVrZGF5cyk6XG4gICAgICAgICAgICAgICAgY29uc3QgZGF5ID0gZGF0ZS5nZXREYXkoKTtcbiAgICAgICAgICAgICAgICBpZiAoZGF5ICUgNiAhPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgKERhdGVSYW5nZVR5cGUuV2Vla2VuZHMpOlxuICAgICAgICAgICAgICAgIGNvbnN0IHdlZWtkYXkgPSBkYXRlLmdldERheSgpO1xuICAgICAgICAgICAgICAgIGlmICh3ZWVrZGF5ICUgNiA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBJQ2FsZW5kYXJEYXRlIHtcbiAgICBkYXRlOiBEYXRlO1xuICAgIGlzQ3VycmVudE1vbnRoOiBib29sZWFuO1xuICAgIGlzUHJldk1vbnRoOiBib29sZWFuO1xuICAgIGlzTmV4dE1vbnRoOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtYXR0ZWRQYXJ0cyB7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICBsaXRlcmFsPzogc3RyaW5nO1xuICAgIGNvbWJpbmVkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1hdHRpbmdPcHRpb25zIHtcbiAgICBkYXk/OiAnbnVtZXJpYycgfCAnMi1kaWdpdCc7XG4gICAgbW9udGg/OiAnbnVtZXJpYycgfCAnMi1kaWdpdCcgfCAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdyc7XG4gICAgd2Vla2RheT86ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93JztcbiAgICB5ZWFyPzogJ251bWVyaWMnIHwgJzItZGlnaXQnO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1hdHRpbmdWaWV3cyB7XG4gICAgZGF5PzogYm9vbGVhbjtcbiAgICBtb250aD86IGJvb2xlYW47XG4gICAgeWVhcj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBlbnVtIFdFRUtEQVlTIHtcbiAgICBTVU5EQVkgPSAwLFxuICAgIE1PTkRBWSA9IDEsXG4gICAgVFVFU0RBWSA9IDIsXG4gICAgV0VETkVTREFZID0gMyxcbiAgICBUSFVSU0RBWSA9IDQsXG4gICAgRlJJREFZID0gNSxcbiAgICBTQVRVUkRBWSA9IDZcbn1cblxuZXhwb3J0IGNsYXNzIENhbGVuZGFyIHtcblxuICAgIHByaXZhdGUgX2ZpcnN0V2Vla0RheTogV0VFS0RBWVMgfCBudW1iZXI7XG5cbiAgICBjb25zdHJ1Y3RvcihmaXJzdFdlZWtEYXk6IFdFRUtEQVlTID0gV0VFS0RBWVMuU1VOREFZKSB7XG4gICAgICAgIHRoaXMuX2ZpcnN0V2Vla0RheSA9IGZpcnN0V2Vla0RheTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZpcnN0V2Vla0RheSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlyc3RXZWVrRGF5ICUgNztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGZpcnN0V2Vla0RheSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2ZpcnN0V2Vla0RheSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYW4gYXJyYXkgb2Ygd2Vla2RheXMgZm9yIG9uZSB3ZWVrIHN0YXJ0aW5nXG4gICAgICogd2l0aCB0aGUgY3VycmVudGx5IHNldCBgZmlyc3RXZWVrRGF5YFxuICAgICAqXG4gICAgICogdGhpcy5maXJzdFdlZWtEYXkgPSAwIChTdW5kYXkpIC0tPiBbMCwgMSwgMiwgMywgNCwgNSwgNl1cbiAgICAgKiB0aGlzLmZpcnN0V2Vla0RheSA9IDEgKE1vbmRheSkgLS0+IFsxLCAyLCAzLCA0LCA1LCA2LCAwXVxuICAgICAqXG4gICAgICogQHJldHVybnNcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBDYWxlbmRhclxuICAgICAqL1xuICAgIHB1YmxpYyB3ZWVrZGF5cygpOiBudW1iZXJbXSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGkgb2YgcmFuZ2UodGhpcy5maXJzdFdlZWtEYXksIHRoaXMuZmlyc3RXZWVrRGF5ICsgNykpIHtcbiAgICAgICAgICAgIHJlcy5wdXNoKGkgJSA3KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGRhdGUgdmFsdWVzIGZvciBvbmUgbW9udGguIEl0IHdpbGwgYWx3YXlzIGl0ZXJhdGUgdGhyb3VnaHRcbiAgICAgKiBjb21wbGV0ZSB3ZWVrcywgc28gaXQgd2lsbCBjb250YWluIGRhdGVzIG91dHNpZGUgdGhlIHNwZWNpZmllZCBtb250aC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB5ZWFyXG4gICAgICogQHBhcmFtIG1vbnRoXG4gICAgICogQHBhcmFtIGJvb2xlYW5cbiAgICAgKiBAcmV0dXJuc1xuICAgICAqXG4gICAgICogQG1lbWJlcm9mIENhbGVuZGFyXG4gICAgICovXG4gICAgcHVibGljIG1vbnRoZGF0ZXMoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBleHRyYVdlZWsgPSBmYWxzZSk6IElDYWxlbmRhckRhdGVbXSB7XG4gICAgICAgIGxldCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpO1xuICAgICAgICBsZXQgZGF5cyA9IChkYXRlLmdldERheSgpIC0gdGhpcy5maXJzdFdlZWtEYXkpICUgNztcbiAgICAgICAgaWYgKGRheXMgPCAwKSB7XG4gICAgICAgICAgICBkYXlzID0gNyAtIE1hdGguYWJzKGRheXMpO1xuICAgICAgICB9XG4gICAgICAgIGRhdGUgPSB0aGlzLnRpbWVkZWx0YShkYXRlLCAnZGF5JywgLWRheXMpO1xuICAgICAgICBjb25zdCByZXMgPSBbXTtcbiAgICAgICAgbGV0IHZhbHVlOiBJQ2FsZW5kYXJEYXRlO1xuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zdGFudC1jb25kaXRpb25cbiAgICAgICAgd2hpbGUgKHRydWUpIHtcblxuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLmdlbmVyYXRlSUNhbGVuZGFyRGF0ZShkYXRlLCB5ZWFyLCBtb250aCk7XG4gICAgICAgICAgICByZXMucHVzaCh2YWx1ZSk7XG5cbiAgICAgICAgICAgIGRhdGUgPSB0aGlzLnRpbWVkZWx0YShkYXRlLCAnZGF5JywgMSk7XG5cbiAgICAgICAgICAgIGlmICgoZGF0ZS5nZXRNb250aCgpICE9PSBtb250aCkgJiYgKGRhdGUuZ2V0RGF5KCkgPT09IHRoaXMuZmlyc3RXZWVrRGF5KSkge1xuICAgICAgICAgICAgICAgIGlmIChleHRyYVdlZWsgJiYgcmVzLmxlbmd0aCA8PSAzNSkge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IF8gb2YgcmFuZ2UoMCwgNykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5nZW5lcmF0ZUlDYWxlbmRhckRhdGUoZGF0ZSwgeWVhciwgbW9udGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZSA9IHRoaXMudGltZWRlbHRhKGRhdGUsICdkYXknLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBtYXRyaXggKGFycmF5IG9mIGFycmF5cykgcmVwcmVzZW50aW5nIGEgbW9udGgncyBjYWxlbmRhci5cbiAgICAgKiBFYWNoIHJvdyByZXByZXNlbnRzIGEgZnVsbCB3ZWVrOyB3ZWVrIGVudHJpZXMgYXJlIElDYWxlbmRhckRhdGUgb2JqZWN0cy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB5ZWFyXG4gICAgICogQHBhcmFtIG1vbnRoXG4gICAgICogQHJldHVybnNcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBDYWxlbmRhclxuICAgICAqL1xuICAgIHB1YmxpYyBtb250aGRhdGVzY2FsZW5kYXIoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBleHRyYVdlZWsgPSBmYWxzZSk6IElDYWxlbmRhckRhdGVbXVtdIHtcbiAgICAgICAgY29uc3QgZGF0ZXMgPSB0aGlzLm1vbnRoZGF0ZXMoeWVhciwgbW9udGgsIGV4dHJhV2Vlayk7XG4gICAgICAgIGNvbnN0IHJlcyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGkgb2YgcmFuZ2UoMCwgZGF0ZXMubGVuZ3RoLCA3KSkge1xuICAgICAgICAgICAgcmVzLnB1c2goZGF0ZXMuc2xpY2UoaSwgaSArIDcpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIHB1YmxpYyB0aW1lZGVsdGEoZGF0ZTogRGF0ZSwgaW50ZXJ2YWw6IHN0cmluZywgdW5pdHM6IG51bWJlcik6IERhdGUge1xuICAgICAgICBjb25zdCByZXQgPSBuZXcgRGF0ZShkYXRlKTtcblxuICAgICAgICBjb25zdCBjaGVja1JvbGxvdmVyID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHJldC5nZXREYXRlKCkgIT09IGRhdGUuZ2V0RGF0ZSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0LnNldERhdGUoMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgc3dpdGNoIChpbnRlcnZhbC50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgICAgICByZXQuc2V0RnVsbFllYXIocmV0LmdldEZ1bGxZZWFyKCkgKyB1bml0cyk7XG4gICAgICAgICAgICAgICAgY2hlY2tSb2xsb3ZlcigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgcmV0LnNldE1vbnRoKHJldC5nZXRNb250aCgpICsgMyAqIHVuaXRzKTtcbiAgICAgICAgICAgICAgICBjaGVja1JvbGxvdmVyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgcmV0LnNldE1vbnRoKHJldC5nZXRNb250aCgpICsgdW5pdHMpO1xuICAgICAgICAgICAgICAgIGNoZWNrUm9sbG92ZXIoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3dlZWsnOlxuICAgICAgICAgICAgICAgIHJldC5zZXREYXRlKHJldC5nZXREYXRlKCkgKyA3ICogdW5pdHMpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgICAgICAgICByZXQuc2V0RGF0ZShyZXQuZ2V0RGF0ZSgpICsgdW5pdHMpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgICAgICAgICAgcmV0LnNldFRpbWUocmV0LmdldFRpbWUoKSArIHVuaXRzICogMzYwMDAwMCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICAgICAgICAgIHJldC5zZXRUaW1lKHJldC5nZXRUaW1lKCkgKyB1bml0cyAqIDYwMDAwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgICAgICAgICAgICAgcmV0LnNldFRpbWUocmV0LmdldFRpbWUoKSArIHVuaXRzICogMTAwMCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBpbnRlcnZhbCBzcGVjaWZpZXInKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmV0O1xuICAgIH1cblxuICAgIHB1YmxpYyBmb3JtYXRUb1BhcnRzKGRhdGU6IERhdGUsIGxvY2FsZTogc3RyaW5nLCBvcHRpb25zOiBhbnksIHBhcnRzOiBzdHJpbmdbXSkge1xuICAgICAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIG9wdGlvbnMpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgZnVsbDogZm9ybWF0dGVyLmZvcm1hdChkYXRlKVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICgoZm9ybWF0dGVyIGFzIGFueSkuZm9ybWF0VG9QYXJ0cykge1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkUGFydHMgPSAoZm9ybWF0dGVyIGFzIGFueSkuZm9ybWF0VG9QYXJ0cyhkYXRlKTtcblxuICAgICAgICAgICAgY29uc3QgdG9UeXBlID0gKHBhcnRUeXBlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGZvcm1hdHRlZFBhcnRzLmZpbmRJbmRleCgoeyB0eXBlIH0pID0+IHR5cGUgPT09IHBhcnRUeXBlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvOiBJRm9ybWF0dGVkUGFydHMgPSB7IHZhbHVlOiAnJywgbGl0ZXJhbDogJycsIGNvbWJpbmVkOiAnJyB9O1xuXG4gICAgICAgICAgICAgICAgaWYgKHBhcnRUeXBlID09PSAnZXJhJyAmJiBpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIG8udmFsdWUgPSBmb3JtYXR0ZWRQYXJ0c1tpbmRleF0udmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGFydFR5cGUgPT09ICdlcmEnICYmIGluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBvLnZhbHVlID0gZm9ybWF0dGVkUGFydHNbaW5kZXhdLnZhbHVlO1xuICAgICAgICAgICAgICAgIG8ubGl0ZXJhbCA9IGZvcm1hdHRlZFBhcnRzW2luZGV4ICsgMV0gPyBmb3JtYXR0ZWRQYXJ0c1tpbmRleCArIDFdLnZhbHVlIDogJyc7XG4gICAgICAgICAgICAgICAgby5jb21iaW5lZCA9IFtvLnZhbHVlLCBvLmxpdGVyYWxdLmpvaW4oJycpO1xuICAgICAgICAgICAgICAgIHJldHVybiBvO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBlYWNoIG9mIHBhcnRzKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2VhY2hdID0gdG9UeXBlKGVhY2gpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9yIChjb25zdCBlYWNoIG9mIHBhcnRzKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2VhY2hdID0geyB2YWx1ZTogJycsIGxpdGVyYWw6ICcnLCBjb21iaW5lZDogJycgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaXJzdFZpZXdEYXRlKGRhdGU6IERhdGUsIGludGVydmFsOiBzdHJpbmcsIGFjdGl2ZVZpZXdJZHg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy50aW1lZGVsdGEoZGF0ZSwgaW50ZXJ2YWwsIC1hY3RpdmVWaWV3SWR4KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGF0ZUJ5VmlldyhkYXRlOiBEYXRlLCBpbnRlcnZhbDogc3RyaW5nLCBhY3RpdmVWaWV3SWR4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGltZWRlbHRhKGRhdGUsIGludGVydmFsLCBhY3RpdmVWaWV3SWR4KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TmV4dE1vbnRoKGRhdGU6IERhdGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGltZWRlbHRhKGRhdGUsIFRpbWVEZWx0YUludGVydmFsLk1vbnRoLCAxKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UHJldk1vbnRoKGRhdGU6IERhdGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGltZWRlbHRhKGRhdGUsIFRpbWVEZWx0YUludGVydmFsLk1vbnRoLCAtMSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE5leHRZZWFyKGRhdGU6IERhdGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGltZWRlbHRhKGRhdGUsIFRpbWVEZWx0YUludGVydmFsLlllYXIsIDEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQcmV2WWVhcihkYXRlOiBEYXRlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRpbWVkZWx0YShkYXRlLCBUaW1lRGVsdGFJbnRlcnZhbC5ZZWFyLCAtMSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFdlZWtOdW1iZXIoZGF0ZTogRGF0ZSwgd2Vla1N0YXJ0OiBXRUVLREFZUyB8IG51bWJlcikge1xuICAgICAgICAvLyBjdXJyZW50IHllYXJcbiAgICAgICAgY29uc3QgeWVhclN0YXJ0ID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCAwLCAxKTtcbiAgICAgICAgLy8gZmlyc3QgZGF5IG51bWJlciBvZiB0aGUgY3VycmVudCB5ZWFyXG4gICAgICAgIGxldCBmaXJzdERheU9mVGhlWWVhciA9IHllYXJTdGFydC5nZXREYXkoKSAtIHdlZWtTdGFydDtcbiAgICAgICAgZmlyc3REYXlPZlRoZVllYXIgPSBmaXJzdERheU9mVGhlWWVhciA+PSAwID8gZmlyc3REYXlPZlRoZVllYXIgOiBmaXJzdERheU9mVGhlWWVhciArIDc7XG4gICAgICAgIGNvbnN0IGRheUluTWlsU2Vjb25kcyA9IDg2NDAwMDAwO1xuICAgICAgICAvLyBkYXkgbnVtYmVyIGluIHRoZSB5ZWFyXG4gICAgICAgIGNvbnN0IGRheU51bWJlciA9IE1hdGguZmxvb3IoKGRhdGUuZ2V0VGltZSgpIC0geWVhclN0YXJ0LmdldFRpbWUoKSAtIFxuICAgICAgICAoZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpIC0geWVhclN0YXJ0LmdldFRpbWV6b25lT2Zmc2V0KCkpICogNjAwMDApIC8gZGF5SW5NaWxTZWNvbmRzKSArIDE7XG4gICAgICAgIGxldCB3ZWVrTnVtYmVyO1xuICAgICAgICAvLyBpZiAwMSBKYW4gaXMgTW9uZGF5IHRvIFRodXJzZGF5LCBpcyBjb25zaWRlcmVkIDFzdCB3ZWVrIG9mIHRoZSB5ZWFyIFxuICAgICAgICAvLyBpZiAwMSBKYW4gc3RhcnRzIEZyaWRheSB0byBTdW5kYXksIGlzIGNvbnNpZGVyZWQgbGFzdCB3ZWVrIG9mIHByZXZpb3VzIHllYXJcbiAgICAgICAgaWYgKGZpcnN0RGF5T2ZUaGVZZWFyIDwgNCkge1xuICAgICAgICAgICAgLy8gd2hlbiBjYWxjdWxhdGluZyB0aGUgd2VlayBudW1iZXIgd2UgYWRkIDEgZm9yIHRoZSAxc3Qgd2Vla1xuICAgICAgICAgICAgd2Vla051bWJlciA9IE1hdGguZmxvb3IoKGRheU51bWJlciArIGZpcnN0RGF5T2ZUaGVZZWFyIC0gMSkgLyA3KSArIDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBjYWxjdWxhdGluZyB0aGUgd2VlayBudW1iZXJcbiAgICAgICAgICAgIHdlZWtOdW1iZXIgPSBNYXRoLmZsb29yKChkYXlOdW1iZXIgKyBmaXJzdERheU9mVGhlWWVhciAtIDEpIC8gNyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgdGhlIHdlZWsgbnVtYmVyIGlzIGdyZWF0ZXIgdGhhbiB3ZWVrIDUyXG4gICAgICAgIGlmICh3ZWVrTnVtYmVyID4gNTIpIHtcbiAgICAgICAgICAgIC8vIG5leHQgeWVhclxuICAgICAgICAgICAgY29uc3QgbmV4dFllYXIgPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCkgKyAxLCAwLCAxKTtcbiAgICAgICAgICAgIC8vIGZpcnN0IGRheSBvZiB0aGUgbmV4dCB5ZWFyXG4gICAgICAgICAgICBsZXQgbmV4dFllYXJGaXJzdERheSA9IG5leHRZZWFyLmdldERheSgpIC0gd2Vla1N0YXJ0O1xuICAgICAgICAgICAgbmV4dFllYXJGaXJzdERheSA9IG5leHRZZWFyRmlyc3REYXkgPj0gMCA/IG5leHRZZWFyRmlyc3REYXkgOiBuZXh0WWVhckZpcnN0RGF5ICsgNztcbiAgICAgICAgICAgIC8vIGlmIDAxIEphbiBvZiB0aGUgbmV4dCB5ZWFyIGlzIE1vbmRheSB0byBUaHVyc2RheSwgaXMgY29uc2lkZXJlZCAxc3Qgd2VlayBvZiB0aGUgbmV4dCB5ZWFyIFxuICAgICAgICAgICAgLy8gaWYgMDEgSmFuIGlzIEZyaWRheSB0byBTdW5kYXksIGlzIGNvbnNpZGVyZWQgNTNyZCB3ZWVrIG9mIHRoZSBjdXJyZW50IHllYXJcbiAgICAgICAgICAgIHdlZWtOdW1iZXIgPSBuZXh0WWVhckZpcnN0RGF5IDwgNCA/IDEgOiA1MztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gd2Vla051bWJlcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdlbmVyYXRlSUNhbGVuZGFyRGF0ZShkYXRlOiBEYXRlLCB5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIpOiBJQ2FsZW5kYXJEYXRlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGUsXG4gICAgICAgICAgICBpc0N1cnJlbnRNb250aDogZGF0ZS5nZXRGdWxsWWVhcigpID09PSB5ZWFyICYmIGRhdGUuZ2V0TW9udGgoKSA9PT0gbW9udGgsXG4gICAgICAgICAgICBpc05leHRNb250aDogdGhpcy5pc05leHRNb250aChkYXRlLCB5ZWFyLCBtb250aCksXG4gICAgICAgICAgICBpc1ByZXZNb250aDogdGhpcy5pc1ByZXZpb3VzTW9udGgoZGF0ZSwgeWVhciwgbW9udGgpXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1ByZXZpb3VzTW9udGgoZGF0ZTogRGF0ZSwgeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChkYXRlLmdldEZ1bGxZZWFyKCkgPT09IHllYXIpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRlLmdldE1vbnRoKCkgPCBtb250aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigpIDwgeWVhcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTmV4dE1vbnRoKGRhdGU6IERhdGUsIHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoZGF0ZS5nZXRGdWxsWWVhcigpID09PSB5ZWFyKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZS5nZXRNb250aCgpID4gbW9udGg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigpID4geWVhcjtcbiAgICB9XG59XG4iXX0=
@@ -87,6 +87,7 @@ export const GridResourceStringsEN = {
87
87
  igx_grid_excel_currency_filter: 'Currency filter',
88
88
  igx_grid_excel_custom_filter: 'Custom filter...',
89
89
  igx_grid_excel_no_matches: 'No matches',
90
+ igx_grid_excel_matches_count: '{0} matches.',
90
91
  igx_grid_advanced_filter_title: 'Advanced Filtering',
91
92
  igx_grid_advanced_filter_and_group: '"And" Group',
92
93
  igx_grid_advanced_filter_or_group: '"Or" Group',
@@ -164,4 +165,4 @@ export const GridResourceStringsEN = {
164
165
  igx_grid_pattern_validation_error: 'Entry does not match the required pattern',
165
166
  igx_grid_pivot_no_aggregator: 'No valid aggregator found for {0}. Please set either a valid aggregatorName or aggregator.'
166
167
  };
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1yZXNvdXJjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvY29yZS9pMThuL2dyaWQtcmVzb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVLQSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBeUI7SUFDdkQsNEJBQTRCLEVBQUUsZ0VBQWdFO0lBQzlGLG1DQUFtQyxFQUFFLGlFQUFpRTtJQUN0RyxxQ0FBcUMsRUFBRSxtRUFBbUU7SUFDMUcsa0NBQWtDLEVBQUUsbUJBQW1CO0lBQ3ZELDBCQUEwQixFQUFFLG1CQUFtQjtJQUMvQyxlQUFlLEVBQUUsUUFBUTtJQUN6Qix5QkFBeUIsRUFBRSxPQUFPO0lBQ2xDLHlCQUF5QixFQUFFLE9BQU87SUFDbEMsK0JBQStCLEVBQUUsa0JBQWtCO0lBQ25ELHVDQUF1QyxFQUFFLEtBQUs7SUFDOUMsb0NBQW9DLEVBQUUsY0FBYztJQUNwRCxvQ0FBb0MsRUFBRSxjQUFjO0lBQ3BELDRCQUE0QixFQUFFLEtBQUs7SUFDbkMsMkJBQTJCLEVBQUUsSUFBSTtJQUNqQyx1QkFBdUIsRUFBRSxnQkFBZ0I7SUFDekMsd0JBQXdCLEVBQUUsVUFBVTtJQUNwQyw4QkFBOEIsRUFBRSxrQkFBa0I7SUFDbEQsMEJBQTBCLEVBQUUsYUFBYTtJQUN6Qyx3QkFBd0IsRUFBRSxXQUFXO0lBQ3JDLHNCQUFzQixFQUFFLFFBQVE7SUFDaEMsNEJBQTRCLEVBQUUsZ0JBQWdCO0lBQzlDLHFCQUFxQixFQUFFLE9BQU87SUFDOUIsd0JBQXdCLEVBQUUsV0FBVztJQUNyQyxvQkFBb0IsRUFBRSxNQUFNO0lBQzVCLHVCQUF1QixFQUFFLFVBQVU7SUFDbkMsc0JBQXNCLEVBQUUsUUFBUTtJQUNoQyxxQkFBcUIsRUFBRSxPQUFPO0lBQzlCLGtCQUFrQixFQUFFLElBQUk7SUFDeEIsc0JBQXNCLEVBQUUsUUFBUTtJQUNoQyx5QkFBeUIsRUFBRSxjQUFjO0lBQ3pDLHdCQUF3QixFQUFFLGFBQWE7SUFDdkMscUJBQXFCLEVBQUUsT0FBTztJQUM5Qix5QkFBeUIsRUFBRSxXQUFXO0lBQ3RDLHlCQUF5QixFQUFFLFlBQVk7SUFDdkMseUJBQXlCLEVBQUUsWUFBWTtJQUN2Qyx5QkFBeUIsRUFBRSxZQUFZO0lBQ3ZDLHdCQUF3QixFQUFFLFdBQVc7SUFDckMsd0JBQXdCLEVBQUUsV0FBVztJQUNyQyx3QkFBd0IsRUFBRSxXQUFXO0lBQ3JDLDJCQUEyQixFQUFFLGNBQWM7SUFDM0Msd0JBQXdCLEVBQUUsV0FBVztJQUNyQyxvQ0FBb0MsRUFBRSwwQkFBMEI7SUFDaEUsaUNBQWlDLEVBQUUsdUJBQXVCO0lBQzFELG9CQUFvQixFQUFFLE1BQU07SUFDNUIscUJBQXFCLEVBQUUsT0FBTztJQUM5QixtQkFBbUIsRUFBRSxLQUFLO0lBQzFCLHFDQUFxQyxFQUFFLGVBQWU7SUFDdEQsc0JBQXNCLEVBQUUsT0FBTztJQUMvQixvQkFBb0IsRUFBRSxLQUFLO0lBQzNCLG9CQUFvQixFQUFFLEtBQUs7SUFDM0Isb0JBQW9CLEVBQUUsS0FBSztJQUMzQix3QkFBd0IsRUFBRSxLQUFLO0lBQy9CLHlCQUF5QixFQUFFLFVBQVU7SUFDckMsdUJBQXVCLEVBQUUsUUFBUTtJQUNqQyxpQ0FBaUMsRUFBRSxXQUFXO0lBQzlDLHVDQUF1QyxFQUFFLE1BQU07SUFDL0Msa0NBQWtDLEVBQUUsWUFBWTtJQUNoRCx3Q0FBd0MsRUFBRSxPQUFPO0lBQ2pELG1DQUFtQyxFQUFFLE1BQU07SUFDM0MsaUNBQWlDLEVBQUUsV0FBVztJQUM5Qyx1Q0FBdUMsRUFBRSxLQUFLO0lBQzlDLGtDQUFrQyxFQUFFLFlBQVk7SUFDaEQsd0NBQXdDLEVBQUUsTUFBTTtJQUNoRCxvQ0FBb0MsRUFBRSxNQUFNO0lBQzVDLDJCQUEyQixFQUFFLHNCQUFzQjtJQUNuRCxnQ0FBZ0MsRUFBRSxZQUFZO0lBQzlDLGtDQUFrQyxFQUFFLGNBQWM7SUFDbEQsbUNBQW1DLEVBQUUsZ0NBQWdDO0lBQ3JFLHFCQUFxQixFQUFFLFFBQVE7SUFDL0Isb0JBQW9CLEVBQUUsT0FBTztJQUM3QixpQ0FBaUMsRUFBRSxRQUFRO0lBQzNDLHlCQUF5QixFQUFFLFlBQVk7SUFDdkMsd0NBQXdDLEVBQUUsMkJBQTJCO0lBQ3JFLDRCQUE0QixFQUFFLGlDQUFpQztJQUMvRCxxQkFBcUIsRUFBRSxVQUFVO0lBQ2pDLG1CQUFtQixFQUFFLGFBQWE7SUFDbEMsbUJBQW1CLEVBQUUsYUFBYTtJQUNsQyxrQkFBa0IsRUFBRSxZQUFZO0lBQ2hDLG9CQUFvQixFQUFFLGNBQWM7SUFDcEMscUJBQXFCLEVBQUUsZUFBZTtJQUN0Qyx1QkFBdUIsRUFBRSxpQkFBaUI7SUFDMUMsMEJBQTBCLEVBQUUsYUFBYTtJQUN6Qyw0QkFBNEIsRUFBRSxlQUFlO0lBQzdDLDBCQUEwQixFQUFFLGFBQWE7SUFDekMsNkJBQTZCLEVBQUUsZ0JBQWdCO0lBQy9DLDhCQUE4QixFQUFFLGlCQUFpQjtJQUNqRCw0QkFBNEIsRUFBRSxrQkFBa0I7SUFDaEQseUJBQXlCLEVBQUUsWUFBWTtJQUN2Qyw4QkFBOEIsRUFBRSxvQkFBb0I7SUFDcEQsa0NBQWtDLEVBQUUsYUFBYTtJQUNqRCxpQ0FBaUMsRUFBRSxZQUFZO0lBQy9DLGtDQUFrQyxFQUFFLFdBQVc7SUFDL0MseUNBQXlDLEVBQUUsb0JBQW9CO0lBQy9ELHdDQUF3QyxFQUFFLG1CQUFtQjtJQUM3RCxrQ0FBa0MsRUFBRSxLQUFLO0lBQ3pDLGlDQUFpQyxFQUFFLElBQUk7SUFDdkMsc0NBQXNDLEVBQUUsV0FBVztJQUNuRCxnQ0FBZ0MsRUFBRSxTQUFTO0lBQzNDLCtCQUErQixFQUFFLFFBQVE7SUFDekMsdUNBQXVDLEVBQUUsZ0JBQWdCO0lBQ3pELHFDQUFxQyxFQUFFLHFFQUFxRTtJQUM1RywyQ0FBMkMsRUFBRSxlQUFlO0lBQzVELDBDQUEwQyxFQUFFLE9BQU87SUFDbkQsNkJBQTZCLEVBQUUsUUFBUTtJQUN2QywrQkFBK0IsRUFBRSxVQUFVO0lBQzNDLGlDQUFpQyxFQUFFLFVBQVU7SUFDN0MsZ0NBQWdDLEVBQUUsU0FBUztJQUMzQyxrQ0FBa0MsRUFBRSxXQUFXO0lBQy9DLDBCQUEwQixFQUFFLE1BQU07SUFDbEMsNEJBQTRCLEVBQUUsUUFBUTtJQUN0QyxzQ0FBc0MsRUFBRSx5QkFBeUI7SUFDakUsdUNBQXVDLEVBQUUsOEJBQThCO0lBQ3ZFLHNDQUFzQyxFQUFFLDZCQUE2QjtJQUNyRSw4QkFBOEIsRUFBRSxnQkFBZ0I7SUFDaEQsNkJBQTZCLEVBQUUsaUJBQWlCO0lBQ2hELGtEQUFrRCxFQUFFLGdDQUFnQztJQUNwRixnREFBZ0QsRUFBRSxvQkFBb0I7SUFDdEUsd0NBQXdDLEVBQUUsd0JBQXdCO0lBQ2xFLHNDQUFzQyxFQUFFLFFBQVE7SUFDaEQsMENBQTBDLEVBQUUsaUJBQWlCO0lBQzdELHdDQUF3QyxFQUFFLGVBQWU7SUFDekQsOEJBQThCLEVBQUUsV0FBVztJQUMzQyxtQ0FBbUMsRUFBRSxNQUFNO0lBQzNDLDJCQUEyQixFQUFFLE1BQU07SUFDbkMsMEJBQTBCLEVBQUUsS0FBSztJQUNqQyxzQkFBc0IsRUFBRSxTQUFTO0lBQ2pDLGdDQUFnQyxFQUFFLFdBQVc7SUFDN0MsNkJBQTZCLEVBQUUsUUFBUTtJQUN2QywwQkFBMEIsRUFBRSxLQUFLO0lBQ2pDLDRCQUE0QixFQUFFLE9BQU87SUFDckMsNkJBQTZCLEVBQUUsU0FBUztJQUN4QywrQkFBK0IsRUFBRSxXQUFXO0lBQzVDLG1DQUFtQyxFQUFFLGFBQWE7SUFDbEQsOEJBQThCLEVBQUUsT0FBTztJQUN2Qyw0QkFBNEIsRUFBRSxTQUFTO0lBQ3ZDLDRCQUE0QixFQUFFLFNBQVM7SUFDdkMsNEJBQTRCLEVBQUUsS0FBSztJQUNuQyw0QkFBNEIsRUFBRSxTQUFTO0lBQ3ZDLG9DQUFvQyxFQUFFLGFBQWE7SUFDbkQsc0NBQXNDLEVBQUUsZUFBZTtJQUN2RCxvQ0FBb0MsRUFBRSxhQUFhO0lBQ25ELHNDQUFzQyxFQUFFLGVBQWU7SUFDdkQsa0NBQWtDLEVBQUUsdUJBQXVCO0lBQzNELHFDQUFxQyxFQUFFLDBCQUEwQjtJQUNqRSxxQ0FBcUMsRUFBRSwwQkFBMEI7SUFDakUsb0NBQW9DLEVBQUUseUJBQXlCO0lBQy9ELDRCQUE0QixFQUFFLHlCQUF5QjtJQUN2RCwrQkFBK0IsRUFBRSw0QkFBNEI7SUFDN0QsK0JBQStCLEVBQUUsNEJBQTRCO0lBQzdELDhCQUE4QixFQUFFLDJCQUEyQjtJQUMzRCw0QkFBNEIsRUFBRSwwQ0FBMEM7SUFDeEUsK0JBQStCLEVBQUUsU0FBUztJQUMxQyw0QkFBNEIsRUFBRSxNQUFNO0lBQ3BDLCtCQUErQixFQUFFLFNBQVM7SUFDMUMsOEJBQThCLEVBQUUsUUFBUTtJQUN4QyxtQ0FBbUMsRUFBRSxpQkFBaUI7SUFDdEQsa0NBQWtDLEVBQUUsd0JBQXdCO0lBQzVELDZCQUE2QixFQUFFLDJDQUEyQztJQUMxRSw2QkFBNkIsRUFBRSw0Q0FBNEM7SUFDM0Usb0NBQW9DLEVBQUUsZ0RBQWdEO0lBQ3RGLG9DQUFvQyxFQUFFLG9EQUFvRDtJQUMxRiwrQkFBK0IsRUFBRSx5Q0FBeUM7SUFDMUUsaUNBQWlDLEVBQUUsMkNBQTJDO0lBQzlFLDRCQUE0QixFQUFFLDRGQUE0RjtDQUM3SCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJR3JpZFJlc291cmNlU3RyaW5ncyB7XG4gICAgaWd4X2dyaWRfZ3JvdXBCeUFyZWFfbWVzc2FnZT86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9ncm91cEJ5QXJlYV9zZWxlY3RfbWVzc2FnZT86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9ncm91cEJ5QXJlYV9kZXNlbGVjdF9tZXNzYWdlPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2VtcHR5RmlsdGVyZWRHcmlkX21lc3NhZ2U/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZW1wdHlHcmlkX21lc3NhZ2U/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9yb3dfY2xvc2U/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX3Jvd19yZXNldD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfcm93X3BsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9yb3dfYm9vbGVhbl9wbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfcm93X2RhdGVfcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX3Jvd190aW1lX3BsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9vcGVyYXRvcl9hbmQ/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfY29tcGxleF9maWx0ZXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX29wZXJhdG9yX29yPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9jb250YWlucz86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfZG9lc05vdENvbnRhaW4/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX3N0YXJ0c1dpdGg/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX2VuZHNXaXRoPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9lcXVhbHM/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX2RvZXNOb3RFcXVhbD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfZW1wdHk/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX25vdEVtcHR5Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9udWxsPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9ub3ROdWxsPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9iZWZvcmU/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX2FmdGVyPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9hdD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfbm90X2F0Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9hdF9iZWZvcmU/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX2F0X2FmdGVyPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl90b2RheT86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfeWVzdGVyZGF5Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl90aGlzTW9udGg/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX2xhc3RNb250aD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfbmV4dE1vbnRoPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl90aGlzWWVhcj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfbGFzdFllYXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX25leHRZZWFyPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9ncmVhdGVyVGhhbj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfbGVzc1RoYW4/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX2dyZWF0ZXJUaGFuT3JFcXVhbFRvPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9sZXNzVGhhbk9yRXF1YWxUbz86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfdHJ1ZT86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfZmFsc2U/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX2FsbD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfY29uZGl0aW9uX3BsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3N1bW1hcnlfY291bnQ/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfc3VtbWFyeV9taW4/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfc3VtbWFyeV9tYXg/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfc3VtbWFyeV9zdW0/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfc3VtbWFyeV9hdmVyYWdlPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3N1bW1hcnlfZWFybGllc3Q/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfc3VtbWFyeV9sYXRlc3Q/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfZmlsdGVyX21vdmluZ19sZWZ0Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX2ZpbHRlcl9tb3ZpbmdfbGVmdF9zaG9ydD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9leGNlbF9maWx0ZXJfbW92aW5nX3JpZ2h0Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX2ZpbHRlcl9tb3ZpbmdfcmlnaHRfc2hvcnQ/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfZmlsdGVyX21vdmluZ19oZWFkZXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfZmlsdGVyX3NvcnRpbmdfYXNjPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX2ZpbHRlcl9zb3J0aW5nX2FzY19zaG9ydD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9leGNlbF9maWx0ZXJfc29ydGluZ19kZXNjPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX2ZpbHRlcl9zb3J0aW5nX2Rlc2Nfc2hvcnQ/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfZmlsdGVyX3NvcnRpbmdfaGVhZGVyPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX2ZpbHRlcl9jbGVhcj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9leGNlbF9jdXN0b21fZGlhbG9nX2FkZD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9leGNlbF9jdXN0b21fZGlhbG9nX2NsZWFyPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX2N1c3RvbV9kaWFsb2dfaGVhZGVyPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX2NhbmNlbD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9leGNlbF9hcHBseT86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9leGNlbF9zZWFyY2hfcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfc2VsZWN0X2FsbD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9leGNlbF9zZWxlY3RfYWxsX3NlYXJjaF9yZXN1bHRzPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX2FkZF90b19maWx0ZXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfYmxhbmtzPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX2hpZGU/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfc2hvdz86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9leGNlbF9waW4/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfdW5waW4/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfc2VsZWN0Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX2Rlc2VsZWN0Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX3RleHRfZmlsdGVyPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX251bWJlcl9maWx0ZXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfZGF0ZV9maWx0ZXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfYm9vbGVhbl9maWx0ZXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfY3VycmVuY3lfZmlsdGVyPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX2N1c3RvbV9maWx0ZXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfbm9fbWF0Y2hlcz86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9hZHZhbmNlZF9maWx0ZXJfdGl0bGU/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfYWR2YW5jZWRfZmlsdGVyX2FuZF9ncm91cD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9hZHZhbmNlZF9maWx0ZXJfb3JfZ3JvdXA/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfYWR2YW5jZWRfZmlsdGVyX2VuZF9ncm91cD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9hZHZhbmNlZF9maWx0ZXJfY3JlYXRlX2FuZF9ncm91cD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9hZHZhbmNlZF9maWx0ZXJfY3JlYXRlX29yX2dyb3VwPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2FkdmFuY2VkX2ZpbHRlcl9hbmRfbGFiZWw/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfYWR2YW5jZWRfZmlsdGVyX29yX2xhYmVsPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2FkdmFuY2VkX2ZpbHRlcl9hZGRfY29uZGl0aW9uPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2FkdmFuY2VkX2ZpbHRlcl91bmdyb3VwPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2FkdmFuY2VkX2ZpbHRlcl9kZWxldGU/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfYWR2YW5jZWRfZmlsdGVyX2RlbGV0ZV9maWx0ZXJzPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2FkdmFuY2VkX2ZpbHRlcl9pbml0aWFsX3RleHQ/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfYWR2YW5jZWRfZmlsdGVyX2NvbHVtbl9wbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9hZHZhbmNlZF9maWx0ZXJfdmFsdWVfcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGlubmVkX3Jvd19pbmRpY2F0b3I/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfaGlkaW5nX2NoZWNrX2FsbF9sYWJlbD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9oaWRpbmdfdW5jaGVja19hbGxfbGFiZWw/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGlubmluZ19jaGVja19hbGxfbGFiZWw/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGlubmluZ191bmNoZWNrX2FsbF9sYWJlbD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9yb3dfZWRpdF9idG5fZG9uZT86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9yb3dfZWRpdF9idG5fY2FuY2VsPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Rvb2xiYXJfYWN0aW9uc19maWx0ZXJfcHJvbXB0Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Rvb2xiYXJfcGlubmluZ19idXR0b25fdG9vbHRpcD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF90b29sYmFyX2hpZGluZ19idXR0b25fdG9vbHRpcD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF90b29sYmFyX3Bpbm5pbmdfdGl0bGU/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfdG9vbGJhcl9oaWRpbmdfdGl0bGU/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfdG9vbGJhcl9hZHZhbmNlZF9maWx0ZXJpbmdfYnV0dG9uX3Rvb2x0aXA/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfdG9vbGJhcl9hZHZhbmNlZF9maWx0ZXJpbmdfYnV0dG9uX2xhYmVsPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Rvb2xiYXJfZXhwb3J0ZXJfYnV0dG9uX3Rvb2x0aXA/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfdG9vbGJhcl9leHBvcnRlcl9idXR0b25fbGFiZWw/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfdG9vbGJhcl9leHBvcnRlcl9leGNlbF9lbnRyeV90ZXh0Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Rvb2xiYXJfZXhwb3J0ZXJfY3N2X2VudHJ5X3RleHQ/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfc25hY2tiYXJfYWRkcm93X2xhYmVsPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3NuYWNrYmFyX2FkZHJvd19hY3Rpb250ZXh0Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2FjdGlvbnNfZWRpdF9sYWJlbD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9hY3Rpb25zX2FkZF9sYWJlbD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9hZGRfcm93X2xhYmVsPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2FjdGlvbnNfYWRkX2NoaWxkX2xhYmVsPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2FjdGlvbnNfZGVsZXRlX2xhYmVsPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2FjdGlvbnNfcGluX2xhYmVsPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2FjdGlvbnNfdW5waW5fbGFiZWw/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfYWN0aW9uc19qdW1wVXBfbGFiZWw/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfYWN0aW9uc19qdW1wRG93bl9sYWJlbD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9waXZvdF9kYXRlX2RpbWVuc2lvbl90b3RhbD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9waXZvdF9hZ2dyZWdhdGVfY291bnQ/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGl2b3RfYWdncmVnYXRlX21pbj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9waXZvdF9hZ2dyZWdhdGVfbWF4Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Bpdm90X2FnZ3JlZ2F0ZV9zdW0/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGl2b3RfYWdncmVnYXRlX2F2Zz86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9waXZvdF9hZ2dyZWdhdGVfZGF0ZV9sYXRlc3Q/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGl2b3RfYWdncmVnYXRlX2RhdGVfZWFybGllc3Q/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGl2b3RfYWdncmVnYXRlX3RpbWVfbGF0ZXN0Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Bpdm90X2FnZ3JlZ2F0ZV90aW1lX2VhcmxpZXN0Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Bpdm90X2VtcHR5X3Jvd19kcm9wX2FyZWE/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGl2b3RfZW1wdHlfY29sdW1uX2Ryb3BfYXJlYT86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9waXZvdF9lbXB0eV9maWx0ZXJfZHJvcF9hcmVhPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Bpdm90X2VtcHR5X3ZhbHVlX2Ryb3BfYXJlYT86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9waXZvdF9yb3dfZHJvcF9jaGlwPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Bpdm90X2NvbHVtbl9kcm9wX2NoaXA/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGl2b3RfZmlsdGVyX2Ryb3BfY2hpcD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9waXZvdF92YWx1ZV9kcm9wX2NoaXA/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGl2b3RfZW1wdHlfbWVzc2FnZT86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9waXZvdF9zZWxlY3Rvcl9maWx0ZXJzPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Bpdm90X3NlbGVjdG9yX3Jvd3M/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGl2b3Rfc2VsZWN0b3JfY29sdW1ucz86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9waXZvdF9zZWxlY3Rvcl92YWx1ZXM/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGl2b3Rfc2VsZWN0b3JfcGFuZWxfZW1wdHk/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcmVxdWlyZWRfdmFsaWRhdGlvbl9lcnJvcj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9taW5fdmFsaWRhdGlvbl9lcnJvcj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9tYXhfdmFsaWRhdGlvbl9lcnJvcj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9taW5fbGVuZ3RoX3ZhbGlkYXRpb25fZXJyb3I/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfbWF4X2xlbmd0aF92YWxpZGF0aW9uX2Vycm9yPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2VtYWlsX3ZhbGlkYXRpb25fZXJyb3I/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGF0dGVybl92YWxpZGF0aW9uX2Vycm9yPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Bpdm90X25vX2FnZ3JlZ2F0b3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBHcmlkUmVzb3VyY2VTdHJpbmdzRU46IElHcmlkUmVzb3VyY2VTdHJpbmdzID0ge1xuICAgIGlneF9ncmlkX2dyb3VwQnlBcmVhX21lc3NhZ2U6ICdEcmFnIGEgY29sdW1uIGhlYWRlciBhbmQgZHJvcCBpdCBoZXJlIHRvIGdyb3VwIGJ5IHRoYXQgY29sdW1uLicsXG4gICAgaWd4X2dyaWRfZ3JvdXBCeUFyZWFfc2VsZWN0X21lc3NhZ2U6ICdTZWxlY3QgYWxsIHJvd3MgaW4gdGhlIGdyb3VwIHdpdGggZmllbGQgbmFtZSB7MH0gYW5kIHZhbHVlIHsxfS4nLFxuICAgIGlneF9ncmlkX2dyb3VwQnlBcmVhX2Rlc2VsZWN0X21lc3NhZ2U6ICdEZXNlbGVjdCBhbGwgcm93cyBpbiB0aGUgZ3JvdXAgd2l0aCBmaWVsZCBuYW1lIHswfSBhbmQgdmFsdWUgezF9LicsXG4gICAgaWd4X2dyaWRfZW1wdHlGaWx0ZXJlZEdyaWRfbWVzc2FnZTogJ05vIHJlY29yZHMgZm91bmQuJyxcbiAgICBpZ3hfZ3JpZF9lbXB0eUdyaWRfbWVzc2FnZTogJ0dyaWQgaGFzIG5vIGRhdGEuJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXI6ICdGaWx0ZXInLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9yb3dfY2xvc2U6ICdDbG9zZScsXG4gICAgaWd4X2dyaWRfZmlsdGVyX3Jvd19yZXNldDogJ1Jlc2V0JyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfcm93X3BsYWNlaG9sZGVyOiAnQWRkIGZpbHRlciB2YWx1ZScsXG4gICAgaWd4X2dyaWRfZmlsdGVyX3Jvd19ib29sZWFuX3BsYWNlaG9sZGVyOiAnQWxsJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfcm93X2RhdGVfcGxhY2Vob2xkZXI6ICdQaWNrIHVwIGRhdGUnLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9yb3dfdGltZV9wbGFjZWhvbGRlcjogJ1BpY2sgdXAgdGltZScsXG4gICAgaWd4X2dyaWRfZmlsdGVyX29wZXJhdG9yX2FuZDogJ0FuZCcsXG4gICAgaWd4X2dyaWRfZmlsdGVyX29wZXJhdG9yX29yOiAnT3InLFxuICAgIGlneF9ncmlkX2NvbXBsZXhfZmlsdGVyOiAnQ29tcGxleCBGaWx0ZXInLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9jb250YWluczogJ0NvbnRhaW5zJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfZG9lc05vdENvbnRhaW46ICdEb2VzIE5vdCBDb250YWluJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfc3RhcnRzV2l0aDogJ1N0YXJ0cyBXaXRoJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfZW5kc1dpdGg6ICdFbmRzIFdpdGgnLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9lcXVhbHM6ICdFcXVhbHMnLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9kb2VzTm90RXF1YWw6ICdEb2VzIE5vdCBFcXVhbCcsXG4gICAgaWd4X2dyaWRfZmlsdGVyX2VtcHR5OiAnRW1wdHknLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9ub3RFbXB0eTogJ05vdCBFbXB0eScsXG4gICAgaWd4X2dyaWRfZmlsdGVyX251bGw6ICdOdWxsJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfbm90TnVsbDogJ05vdCBOdWxsJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfYmVmb3JlOiAnQmVmb3JlJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfYWZ0ZXI6ICdBZnRlcicsXG4gICAgaWd4X2dyaWRfZmlsdGVyX2F0OiAnQXQnLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9ub3RfYXQ6ICdOb3QgQXQnLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9hdF9iZWZvcmU6ICdBdCBvciBCZWZvcmUnLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9hdF9hZnRlcjogJ0F0IG9yIEFmdGVyJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfdG9kYXk6ICdUb2RheScsXG4gICAgaWd4X2dyaWRfZmlsdGVyX3llc3RlcmRheTogJ1llc3RlcmRheScsXG4gICAgaWd4X2dyaWRfZmlsdGVyX3RoaXNNb250aDogJ1RoaXMgTW9udGgnLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9sYXN0TW9udGg6ICdMYXN0IE1vbnRoJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfbmV4dE1vbnRoOiAnTmV4dCBNb250aCcsXG4gICAgaWd4X2dyaWRfZmlsdGVyX3RoaXNZZWFyOiAnVGhpcyBZZWFyJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfbGFzdFllYXI6ICdMYXN0IFllYXInLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9uZXh0WWVhcjogJ05leHQgWWVhcicsXG4gICAgaWd4X2dyaWRfZmlsdGVyX2dyZWF0ZXJUaGFuOiAnR3JlYXRlciBUaGFuJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfbGVzc1RoYW46ICdMZXNzIFRoYW4nLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9ncmVhdGVyVGhhbk9yRXF1YWxUbzogJ0dyZWF0ZXIgVGhhbiBPciBFcXVhbCBUbycsXG4gICAgaWd4X2dyaWRfZmlsdGVyX2xlc3NUaGFuT3JFcXVhbFRvOiAnTGVzcyBUaGFuIE9yIEVxdWFsIFRvJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfdHJ1ZTogJ1RydWUnLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9mYWxzZTogJ0ZhbHNlJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfYWxsOiAnQWxsJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfY29uZGl0aW9uX3BsYWNlaG9sZGVyOiAnU2VsZWN0IGZpbHRlcicsXG4gICAgaWd4X2dyaWRfc3VtbWFyeV9jb3VudDogJ0NvdW50JyxcbiAgICBpZ3hfZ3JpZF9zdW1tYXJ5X21pbjogJ01pbicsXG4gICAgaWd4X2dyaWRfc3VtbWFyeV9tYXg6ICdNYXgnLFxuICAgIGlneF9ncmlkX3N1bW1hcnlfc3VtOiAnU3VtJyxcbiAgICBpZ3hfZ3JpZF9zdW1tYXJ5X2F2ZXJhZ2U6ICdBdmcnLFxuICAgIGlneF9ncmlkX3N1bW1hcnlfZWFybGllc3Q6ICdFYXJsaWVzdCcsXG4gICAgaWd4X2dyaWRfc3VtbWFyeV9sYXRlc3Q6ICdMYXRlc3QnLFxuICAgIGlneF9ncmlkX2V4Y2VsX2ZpbHRlcl9tb3ZpbmdfbGVmdDogJ21vdmUgbGVmdCcsXG4gICAgaWd4X2dyaWRfZXhjZWxfZmlsdGVyX21vdmluZ19sZWZ0X3Nob3J0OiAnbGVmdCcsXG4gICAgaWd4X2dyaWRfZXhjZWxfZmlsdGVyX21vdmluZ19yaWdodDogJ21vdmUgcmlnaHQnLFxuICAgIGlneF9ncmlkX2V4Y2VsX2ZpbHRlcl9tb3ZpbmdfcmlnaHRfc2hvcnQ6ICdyaWdodCcsXG4gICAgaWd4X2dyaWRfZXhjZWxfZmlsdGVyX21vdmluZ19oZWFkZXI6ICdtb3ZlJyxcbiAgICBpZ3hfZ3JpZF9leGNlbF9maWx0ZXJfc29ydGluZ19hc2M6ICdhc2NlbmRpbmcnLFxuICAgIGlneF9ncmlkX2V4Y2VsX2ZpbHRlcl9zb3J0aW5nX2FzY19zaG9ydDogJ2FzYycsXG4gICAgaWd4X2dyaWRfZXhjZWxfZmlsdGVyX3NvcnRpbmdfZGVzYzogJ2Rlc2NlbmRpbmcnLFxuICAgIGlneF9ncmlkX2V4Y2VsX2ZpbHRlcl9zb3J0aW5nX2Rlc2Nfc2hvcnQ6ICdkZXNjJyxcbiAgICBpZ3hfZ3JpZF9leGNlbF9maWx0ZXJfc29ydGluZ19oZWFkZXI6ICdzb3J0JyxcbiAgICBpZ3hfZ3JpZF9leGNlbF9maWx0ZXJfY2xlYXI6ICdDbGVhciBjb2x1bW4gZmlsdGVycycsXG4gICAgaWd4X2dyaWRfZXhjZWxfY3VzdG9tX2RpYWxvZ19hZGQ6ICdhZGQgZmlsdGVyJyxcbiAgICBpZ3hfZ3JpZF9leGNlbF9jdXN0b21fZGlhbG9nX2NsZWFyOiAnQ2xlYXIgZmlsdGVyJyxcbiAgICBpZ3hfZ3JpZF9leGNlbF9jdXN0b21fZGlhbG9nX2hlYWRlcjogJ0N1c3RvbSBhdXRvLWZpbHRlciBvbiBjb2x1bW46ICcsXG4gICAgaWd4X2dyaWRfZXhjZWxfY2FuY2VsOiAnY2FuY2VsJyxcbiAgICBpZ3hfZ3JpZF9leGNlbF9hcHBseTogJ2FwcGx5JyxcbiAgICBpZ3hfZ3JpZF9leGNlbF9zZWFyY2hfcGxhY2Vob2xkZXI6ICdTZWFyY2gnLFxuICAgIGlneF9ncmlkX2V4Y2VsX3NlbGVjdF9hbGw6ICdTZWxlY3QgQWxsJyxcbiAgICBpZ3hfZ3JpZF9leGNlbF9zZWxlY3RfYWxsX3NlYXJjaF9yZXN1bHRzOiAnU2VsZWN0IGFsbCBzZWFyY2ggcmVzdWx0cycsXG4gICAgaWd4X2dyaWRfZXhjZWxfYWRkX3RvX2ZpbHRlcjogJ0FkZCBjdXJyZW50IHNlbGVjdGlvbiB0byBmaWx0ZXInLFxuICAgIGlneF9ncmlkX2V4Y2VsX2JsYW5rczogJyhCbGFua3MpJyxcbiAgICBpZ3hfZ3JpZF9leGNlbF9oaWRlOiAnSGlkZSBjb2x1bW4nLFxuICAgIGlneF9ncmlkX2V4Y2VsX3Nob3c6ICdTaG93IGNvbHVtbicsXG4gICAgaWd4X2dyaWRfZXhjZWxfcGluOiAnUGluIGNvbHVtbicsXG4gICAgaWd4X2dyaWRfZXhjZWxfdW5waW46ICdVbnBpbiBjb2x1bW4nLFxuICAgIGlneF9ncmlkX2V4Y2VsX3NlbGVjdDogJ1NlbGVjdCBjb2x1bW4nLFxuICAgIGlneF9ncmlkX2V4Y2VsX2Rlc2VsZWN0OiAnRGVzZWxlY3QgY29sdW1uJyxcbiAgICBpZ3hfZ3JpZF9leGNlbF90ZXh0X2ZpbHRlcjogJ1RleHQgZmlsdGVyJyxcbiAgICBpZ3hfZ3JpZF9leGNlbF9udW1iZXJfZmlsdGVyOiAnTnVtYmVyIGZpbHRlcicsXG4gICAgaWd4X2dyaWRfZXhjZWxfZGF0ZV9maWx0ZXI6ICdEYXRlIGZpbHRlcicsXG4gICAgaWd4X2dyaWRfZXhjZWxfYm9vbGVhbl9maWx0ZXI6ICdCb29sZWFuIGZpbHRlcicsXG4gICAgaWd4X2dyaWRfZXhjZWxfY3VycmVuY3lfZmlsdGVyOiAnQ3VycmVuY3kgZmlsdGVyJyxcbiAgICBpZ3hfZ3JpZF9leGNlbF9jdXN0b21fZmlsdGVyOiAnQ3VzdG9tIGZpbHRlci4uLicsXG4gICAgaWd4X2dyaWRfZXhjZWxfbm9fbWF0Y2hlczogJ05vIG1hdGNoZXMnLFxuICAgIGlneF9ncmlkX2FkdmFuY2VkX2ZpbHRlcl90aXRsZTogJ0FkdmFuY2VkIEZpbHRlcmluZycsXG4gICAgaWd4X2dyaWRfYWR2YW5jZWRfZmlsdGVyX2FuZF9ncm91cDogJ1wiQW5kXCIgR3JvdXAnLFxuICAgIGlneF9ncmlkX2FkdmFuY2VkX2ZpbHRlcl9vcl9ncm91cDogJ1wiT3JcIiBHcm91cCcsXG4gICAgaWd4X2dyaWRfYWR2YW5jZWRfZmlsdGVyX2VuZF9ncm91cDogJ0VuZCBHcm91cCcsXG4gICAgaWd4X2dyaWRfYWR2YW5jZWRfZmlsdGVyX2NyZWF0ZV9hbmRfZ3JvdXA6ICdDcmVhdGUgXCJBbmRcIiBHcm91cCcsXG4gICAgaWd4X2dyaWRfYWR2YW5jZWRfZmlsdGVyX2NyZWF0ZV9vcl9ncm91cDogJ0NyZWF0ZSBcIk9yXCIgR3JvdXAnLFxuICAgIGlneF9ncmlkX2FkdmFuY2VkX2ZpbHRlcl9hbmRfbGFiZWw6ICdhbmQnLFxuICAgIGlneF9ncmlkX2FkdmFuY2VkX2ZpbHRlcl9vcl9sYWJlbDogJ29yJyxcbiAgICBpZ3hfZ3JpZF9hZHZhbmNlZF9maWx0ZXJfYWRkX2NvbmRpdGlvbjogJ0NvbmRpdGlvbicsXG4gICAgaWd4X2dyaWRfYWR2YW5jZWRfZmlsdGVyX3VuZ3JvdXA6ICdVbmdyb3VwJyxcbiAgICBpZ3hfZ3JpZF9hZHZhbmNlZF9maWx0ZXJfZGVsZXRlOiAnRGVsZXRlJyxcbiAgICBpZ3hfZ3JpZF9hZHZhbmNlZF9maWx0ZXJfZGVsZXRlX2ZpbHRlcnM6ICdEZWxldGUgZmlsdGVycycsXG4gICAgaWd4X2dyaWRfYWR2YW5jZWRfZmlsdGVyX2luaXRpYWxfdGV4dDogJ1N0YXJ0IHdpdGggY3JlYXRpbmcgYSBncm91cCBvZiBjb25kaXRpb25zIGxpbmtlZCB3aXRoIFwiQW5kXCIgb3IgXCJPclwiJyxcbiAgICBpZ3hfZ3JpZF9hZHZhbmNlZF9maWx0ZXJfY29sdW1uX3BsYWNlaG9sZGVyOiAnU2VsZWN0IGNvbHVtbicsXG4gICAgaWd4X2dyaWRfYWR2YW5jZWRfZmlsdGVyX3ZhbHVlX3BsYWNlaG9sZGVyOiAnVmFsdWUnLFxuICAgIGlneF9ncmlkX3Bpbm5lZF9yb3dfaW5kaWNhdG9yOiAnUGlubmVkJyxcbiAgICBpZ3hfZ3JpZF9oaWRpbmdfY2hlY2tfYWxsX2xhYmVsOiAnU2hvdyBBbGwnLFxuICAgIGlneF9ncmlkX2hpZGluZ191bmNoZWNrX2FsbF9sYWJlbDogJ0hpZGUgQWxsJyxcbiAgICBpZ3hfZ3JpZF9waW5uaW5nX2NoZWNrX2FsbF9sYWJlbDogJ1BpbiBBbGwnLFxuICAgIGlneF9ncmlkX3Bpbm5pbmdfdW5jaGVja19hbGxfbGFiZWw6ICdVbnBpbiBBbGwnLFxuICAgIGlneF9ncmlkX3Jvd19lZGl0X2J0bl9kb25lOiAnRG9uZScsXG4gICAgaWd4X2dyaWRfcm93X2VkaXRfYnRuX2NhbmNlbDogJ0NhbmNlbCcsXG4gICAgaWd4X2dyaWRfdG9vbGJhcl9hY3Rpb25zX2ZpbHRlcl9wcm9tcHQ6ICdGaWx0ZXIgY29sdW1ucyBsaXN0IC4uLicsXG4gICAgaWd4X2dyaWRfdG9vbGJhcl9waW5uaW5nX2J1dHRvbl90b29sdGlwOiAnT3BlbiBjb2x1bW4gcGlubmluZyBkcm9wZG93bicsXG4gICAgaWd4X2dyaWRfdG9vbGJhcl9oaWRpbmdfYnV0dG9uX3Rvb2x0aXA6ICdPcGVuIGNvbHVtbiBoaWRpbmcgZHJvcGRvd24nLFxuICAgIGlneF9ncmlkX3Rvb2xiYXJfcGlubmluZ190aXRsZTogJ1Bpbm5lZCBjb2x1bW5zJyxcbiAgICBpZ3hfZ3JpZF90b29sYmFyX2hpZGluZ190aXRsZTogJ1Zpc2libGUgY29sdW1ucycsXG4gICAgaWd4X2dyaWRfdG9vbGJhcl9hZHZhbmNlZF9maWx0ZXJpbmdfYnV0dG9uX3Rvb2x0aXA6ICdPcGVuIGFkdmFuY2VkIGZpbHRlcmluZyBkaWFsb2cnLFxuICAgIGlneF9ncmlkX3Rvb2xiYXJfYWR2YW5jZWRfZmlsdGVyaW5nX2J1dHRvbl9sYWJlbDogJ0FkdmFuY2VkIGZpbHRlcmluZycsXG4gICAgaWd4X2dyaWRfdG9vbGJhcl9leHBvcnRlcl9idXR0b25fdG9vbHRpcDogJ09wZW4gZXhwb3J0ZXIgZHJvcGRvd24nLFxuICAgIGlneF9ncmlkX3Rvb2xiYXJfZXhwb3J0ZXJfYnV0dG9uX2xhYmVsOiAnRXhwb3J0JyxcbiAgICBpZ3hfZ3JpZF90b29sYmFyX2V4cG9ydGVyX2V4Y2VsX2VudHJ5X3RleHQ6ICdFeHBvcnQgdG8gRXhjZWwnLFxuICAgIGlneF9ncmlkX3Rvb2xiYXJfZXhwb3J0ZXJfY3N2X2VudHJ5X3RleHQ6ICdFeHBvcnQgdG8gQ1NWJyxcbiAgICBpZ3hfZ3JpZF9zbmFja2Jhcl9hZGRyb3dfbGFiZWw6ICdSb3cgYWRkZWQnLFxuICAgIGlneF9ncmlkX3NuYWNrYmFyX2FkZHJvd19hY3Rpb250ZXh0OiAnU0hPVycsXG4gICAgaWd4X2dyaWRfYWN0aW9uc19lZGl0X2xhYmVsOiAnRWRpdCcsXG4gICAgaWd4X2dyaWRfYWN0aW9uc19hZGRfbGFiZWw6ICdBZGQnLFxuICAgIGlneF9ncmlkX2FkZF9yb3dfbGFiZWw6ICdBREQgUk9XJyxcbiAgICBpZ3hfZ3JpZF9hY3Rpb25zX2FkZF9jaGlsZF9sYWJlbDogJ0FkZCBDaGlsZCcsXG4gICAgaWd4X2dyaWRfYWN0aW9uc19kZWxldGVfbGFiZWw6ICdEZWxldGUnLFxuICAgIGlneF9ncmlkX2FjdGlvbnNfcGluX2xhYmVsOiAnUGluJyxcbiAgICBpZ3hfZ3JpZF9hY3Rpb25zX3VucGluX2xhYmVsOiAnVW5waW4nLFxuICAgIGlneF9ncmlkX2FjdGlvbnNfanVtcFVwX2xhYmVsOiAnSnVtcCB1cCcsXG4gICAgaWd4X2dyaWRfYWN0aW9uc19qdW1wRG93bl9sYWJlbDogJ0p1bXAgZG93bicsXG4gICAgaWd4X2dyaWRfcGl2b3RfZGF0ZV9kaW1lbnNpb25fdG90YWw6ICdBbGwgUGVyaW9kcycsXG4gICAgaWd4X2dyaWRfcGl2b3RfYWdncmVnYXRlX2NvdW50OiAnQ291bnQnLFxuICAgIGlneF9ncmlkX3Bpdm90X2FnZ3JlZ2F0ZV9taW46ICdNaW5pbXVtJyxcbiAgICBpZ3hfZ3JpZF9waXZvdF9hZ2dyZWdhdGVfbWF4OiAnTWF4aW11bScsXG4gICAgaWd4X2dyaWRfcGl2b3RfYWdncmVnYXRlX3N1bTogJ1N1bScsXG4gICAgaWd4X2dyaWRfcGl2b3RfYWdncmVnYXRlX2F2ZzogJ0F2ZXJhZ2UnLFxuICAgIGlneF9ncmlkX3Bpdm90X2FnZ3JlZ2F0ZV9kYXRlX2xhdGVzdDogJ0xhdGVzdCBEYXRlJyxcbiAgICBpZ3hfZ3JpZF9waXZvdF9hZ2dyZWdhdGVfZGF0ZV9lYXJsaWVzdDogJ0VhcmxpZXN0IERhdGUnLFxuICAgIGlneF9ncmlkX3Bpdm90X2FnZ3JlZ2F0ZV90aW1lX2xhdGVzdDogJ0xhdGVzdCBUaW1lJyxcbiAgICBpZ3hfZ3JpZF9waXZvdF9hZ2dyZWdhdGVfdGltZV9lYXJsaWVzdDogJ0VhcmxpZXN0IFRpbWUnLFxuICAgIGlneF9ncmlkX3Bpdm90X2VtcHR5X3Jvd19kcm9wX2FyZWE6ICdEcm9wIFJvdyBGaWVsZHMgaGVyZS4nLFxuICAgIGlneF9ncmlkX3Bpdm90X2VtcHR5X2NvbHVtbl9kcm9wX2FyZWE6ICdEcm9wIENvbHVtbiBGaWVsZHMgaGVyZS4nLFxuICAgIGlneF9ncmlkX3Bpdm90X2VtcHR5X2ZpbHRlcl9kcm9wX2FyZWE6ICdEcm9wIEZpbHRlciBGaWVsZHMgaGVyZS4nLFxuICAgIGlneF9ncmlkX3Bpdm90X2VtcHR5X3ZhbHVlX2Ryb3BfYXJlYTogJ0Ryb3AgVmFsdWUgRmllbGRzIGhlcmUuJyxcbiAgICBpZ3hfZ3JpZF9waXZvdF9yb3dfZHJvcF9jaGlwOiAnRHJvcCBoZXJlIHRvIHVzZSBhcyByb3cnLFxuICAgIGlneF9ncmlkX3Bpdm90X2NvbHVtbl9kcm9wX2NoaXA6ICdEcm9wIGhlcmUgdG8gdXNlIGFzIGNvbHVtbicsXG4gICAgaWd4X2dyaWRfcGl2b3RfZmlsdGVyX2Ryb3BfY2hpcDogJ0Ryb3AgaGVyZSB0byB1c2UgYXMgZmlsdGVyJyxcbiAgICBpZ3hfZ3JpZF9waXZvdF92YWx1ZV9kcm9wX2NoaXA6ICdEcm9wIGhlcmUgdG8gdXNlIGFzIHZhbHVlJyxcbiAgICBpZ3hfZ3JpZF9waXZvdF9lbXB0eV9tZXNzYWdlOiAnUGl2b3QgZ3JpZCBoYXMgbm8gZGltZW5zaW9ucyBhbmQgdmFsdWVzLicsXG4gICAgaWd4X2dyaWRfcGl2b3Rfc2VsZWN0b3JfZmlsdGVyczogJ0ZpbHRlcnMnLFxuICAgIGlneF9ncmlkX3Bpdm90X3NlbGVjdG9yX3Jvd3M6ICdSb3dzJyxcbiAgICBpZ3hfZ3JpZF9waXZvdF9zZWxlY3Rvcl9jb2x1bW5zOiAnQ29sdW1ucycsXG4gICAgaWd4X2dyaWRfcGl2b3Rfc2VsZWN0b3JfdmFsdWVzOiAnVmFsdWVzJyxcbiAgICBpZ3hfZ3JpZF9waXZvdF9zZWxlY3Rvcl9wYW5lbF9lbXB0eTogJ0Ryb3AgSXRlbXMgSGVyZScsXG4gICAgaWd4X2dyaWRfcmVxdWlyZWRfdmFsaWRhdGlvbl9lcnJvcjogJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnLFxuICAgIGlneF9ncmlkX21pbl92YWxpZGF0aW9uX2Vycm9yOiAnQSB2YWx1ZSBvZiBhdCBsZWFzdCB7MH0gc2hvdWxkIGJlIGVudGVyZWQnLFxuICAgIGlneF9ncmlkX21heF92YWxpZGF0aW9uX2Vycm9yOiAnQSB2YWx1ZSBubyBtb3JlIHRoYW4gezB9IHNob3VsZCBiZSBlbnRlcmVkJyxcbiAgICBpZ3hfZ3JpZF9taW5fbGVuZ3RoX3ZhbGlkYXRpb25fZXJyb3I6ICdFbnRyeSBzaG91bGQgYmUgYXQgbGVhc3QgezB9IGNoYXJhY3RlcihzKSBsb25nJyxcbiAgICBpZ3hfZ3JpZF9tYXhfbGVuZ3RoX3ZhbGlkYXRpb25fZXJyb3I6ICdFbnRyeSBzaG91bGQgYmUgbm8gbW9yZSB0aGFuIHswfSBjaGFyYWN0ZXIocykgbG9uZycsXG4gICAgaWd4X2dyaWRfZW1haWxfdmFsaWRhdGlvbl9lcnJvcjogJ0EgdmFsaWQgZW1haWwgYWRkcmVzcyBzaG91bGQgYmUgZW50ZXJlZCcsXG4gICAgaWd4X2dyaWRfcGF0dGVybl92YWxpZGF0aW9uX2Vycm9yOiAnRW50cnkgZG9lcyBub3QgbWF0Y2ggdGhlIHJlcXVpcmVkIHBhdHRlcm4nLFxuICAgIGlneF9ncmlkX3Bpdm90X25vX2FnZ3JlZ2F0b3I6ICdObyB2YWxpZCBhZ2dyZWdhdG9yIGZvdW5kIGZvciB7MH0uIFBsZWFzZSBzZXQgZWl0aGVyIGEgdmFsaWQgYWdncmVnYXRvck5hbWUgb3IgYWdncmVnYXRvci4nXG59O1xuIl19
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1yZXNvdXJjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvY29yZS9pMThuL2dyaWQtcmVzb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdLQSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBeUI7SUFDdkQsNEJBQTRCLEVBQUUsZ0VBQWdFO0lBQzlGLG1DQUFtQyxFQUFFLGlFQUFpRTtJQUN0RyxxQ0FBcUMsRUFBRSxtRUFBbUU7SUFDMUcsa0NBQWtDLEVBQUUsbUJBQW1CO0lBQ3ZELDBCQUEwQixFQUFFLG1CQUFtQjtJQUMvQyxlQUFlLEVBQUUsUUFBUTtJQUN6Qix5QkFBeUIsRUFBRSxPQUFPO0lBQ2xDLHlCQUF5QixFQUFFLE9BQU87SUFDbEMsK0JBQStCLEVBQUUsa0JBQWtCO0lBQ25ELHVDQUF1QyxFQUFFLEtBQUs7SUFDOUMsb0NBQW9DLEVBQUUsY0FBYztJQUNwRCxvQ0FBb0MsRUFBRSxjQUFjO0lBQ3BELDRCQUE0QixFQUFFLEtBQUs7SUFDbkMsMkJBQTJCLEVBQUUsSUFBSTtJQUNqQyx1QkFBdUIsRUFBRSxnQkFBZ0I7SUFDekMsd0JBQXdCLEVBQUUsVUFBVTtJQUNwQyw4QkFBOEIsRUFBRSxrQkFBa0I7SUFDbEQsMEJBQTBCLEVBQUUsYUFBYTtJQUN6Qyx3QkFBd0IsRUFBRSxXQUFXO0lBQ3JDLHNCQUFzQixFQUFFLFFBQVE7SUFDaEMsNEJBQTRCLEVBQUUsZ0JBQWdCO0lBQzlDLHFCQUFxQixFQUFFLE9BQU87SUFDOUIsd0JBQXdCLEVBQUUsV0FBVztJQUNyQyxvQkFBb0IsRUFBRSxNQUFNO0lBQzVCLHVCQUF1QixFQUFFLFVBQVU7SUFDbkMsc0JBQXNCLEVBQUUsUUFBUTtJQUNoQyxxQkFBcUIsRUFBRSxPQUFPO0lBQzlCLGtCQUFrQixFQUFFLElBQUk7SUFDeEIsc0JBQXNCLEVBQUUsUUFBUTtJQUNoQyx5QkFB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QUUsMEJBQTBCO0lBQ2pFLHFDQUFxQyxFQUFFLDBCQUEwQjtJQUNqRSxvQ0FBb0MsRUFBRSx5QkFBeUI7SUFDL0QsNEJBQTRCLEVBQUUseUJBQXlCO0lBQ3ZELCtCQUErQixFQUFFLDRCQUE0QjtJQUM3RCwrQkFBK0IsRUFBRSw0QkFBNEI7SUFDN0QsOEJBQThCLEVBQUUsMkJBQTJCO0lBQzNELDRCQUE0QixFQUFFLDBDQUEwQztJQUN4RSwrQkFBK0IsRUFBRSxTQUFTO0lBQzFDLDRCQUE0QixFQUFFLE1BQU07SUFDcEMsK0JBQStCLEVBQUUsU0FBUztJQUMxQyw4QkFBOEIsRUFBRSxRQUFRO0lBQ3hDLG1DQUFtQyxFQUFFLGlCQUFpQjtJQUN0RCxrQ0FBa0MsRUFBRSx3QkFBd0I7SUFDNUQsNkJBQTZCLEVBQUUsMkNBQTJDO0lBQzFFLDZCQUE2QixFQUFFLDRDQUE0QztJQUMzRSxvQ0FBb0MsRUFBRSxnREFBZ0Q7SUFDdEYsb0NBQW9DLEVBQUUsb0RBQW9EO0lBQzFGLCtCQUErQixFQUFFLHlDQUF5QztJQUMxRSxpQ0FBaUMsRUFBRSwyQ0FBMkM7SUFDOUUsNEJBQTRCLEVBQUUsNEZBQTRGO0NBQzdILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElHcmlkUmVzb3VyY2VTdHJpbmdzIHtcbiAgICBpZ3hfZ3JpZF9ncm91cEJ5QXJlYV9tZXNzYWdlPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2dyb3VwQnlBcmVhX3NlbGVjdF9tZXNzYWdlPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2dyb3VwQnlBcmVhX2Rlc2VsZWN0X21lc3NhZ2U/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZW1wdHlGaWx0ZXJlZEdyaWRfbWVzc2FnZT86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9lbXB0eUdyaWRfbWVzc2FnZT86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX3Jvd19jbG9zZT86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfcm93X3Jlc2V0Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9yb3dfcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX3Jvd19ib29sZWFuX3BsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9yb3dfZGF0ZV9wbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfcm93X3RpbWVfcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX29wZXJhdG9yX2FuZD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9jb21wbGV4X2ZpbHRlcj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfb3BlcmF0b3Jfb3I/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX2NvbnRhaW5zPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9kb2VzTm90Q29udGFpbj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfc3RhcnRzV2l0aD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfZW5kc1dpdGg/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX2VxdWFscz86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfZG9lc05vdEVxdWFsPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9lbXB0eT86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfbm90RW1wdHk/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX251bGw/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX25vdE51bGw/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX2JlZm9yZT86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfYWZ0ZXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX2F0Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9ub3RfYXQ/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX2F0X2JlZm9yZT86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfYXRfYWZ0ZXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX3RvZGF5Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl95ZXN0ZXJkYXk/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX3RoaXNNb250aD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfbGFzdE1vbnRoPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9uZXh0TW9udGg/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX3RoaXNZZWFyPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9sYXN0WWVhcj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfbmV4dFllYXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX2dyZWF0ZXJUaGFuPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9sZXNzVGhhbj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfZ3JlYXRlclRoYW5PckVxdWFsVG8/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZmlsdGVyX2xlc3NUaGFuT3JFcXVhbFRvPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl90cnVlPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9mYWxzZT86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfYWxsPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2ZpbHRlcl9jb25kaXRpb25fcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfc3VtbWFyeV9jb3VudD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9zdW1tYXJ5X21pbj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9zdW1tYXJ5X21heD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9zdW1tYXJ5X3N1bT86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9zdW1tYXJ5X2F2ZXJhZ2U/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfc3VtbWFyeV9lYXJsaWVzdD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9zdW1tYXJ5X2xhdGVzdD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9leGNlbF9maWx0ZXJfbW92aW5nX2xlZnQ/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfZmlsdGVyX21vdmluZ19sZWZ0X3Nob3J0Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX2ZpbHRlcl9tb3ZpbmdfcmlnaHQ/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfZmlsdGVyX21vdmluZ19yaWdodF9zaG9ydD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9leGNlbF9maWx0ZXJfbW92aW5nX2hlYWRlcj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9leGNlbF9maWx0ZXJfc29ydGluZ19hc2M/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfZmlsdGVyX3NvcnRpbmdfYXNjX3Nob3J0Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX2ZpbHRlcl9zb3J0aW5nX2Rlc2M/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfZmlsdGVyX3NvcnRpbmdfZGVzY19zaG9ydD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9leGNlbF9maWx0ZXJfc29ydGluZ19oZWFkZXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfZmlsdGVyX2NsZWFyPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX2N1c3RvbV9kaWFsb2dfYWRkPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX2N1c3RvbV9kaWFsb2dfY2xlYXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfY3VzdG9tX2RpYWxvZ19oZWFkZXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfY2FuY2VsPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX2FwcGx5Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX3NlYXJjaF9wbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9leGNlbF9zZWxlY3RfYWxsPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX3NlbGVjdF9hbGxfc2VhcmNoX3Jlc3VsdHM/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfYWRkX3RvX2ZpbHRlcj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9leGNlbF9ibGFua3M/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfaGlkZT86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9leGNlbF9zaG93Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX3Bpbj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9leGNlbF91bnBpbj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9leGNlbF9zZWxlY3Q/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfZGVzZWxlY3Q/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfdGV4dF9maWx0ZXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfbnVtYmVyX2ZpbHRlcj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9leGNlbF9kYXRlX2ZpbHRlcj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9leGNlbF9ib29sZWFuX2ZpbHRlcj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9leGNlbF9jdXJyZW5jeV9maWx0ZXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfZXhjZWxfY3VzdG9tX2ZpbHRlcj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9leGNlbF9ub19tYXRjaGVzPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2V4Y2VsX21hdGNoZXNfY291bnQ/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfYWR2YW5jZWRfZmlsdGVyX3RpdGxlPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2FkdmFuY2VkX2ZpbHRlcl9hbmRfZ3JvdXA/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfYWR2YW5jZWRfZmlsdGVyX29yX2dyb3VwPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2FkdmFuY2VkX2ZpbHRlcl9lbmRfZ3JvdXA/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfYWR2YW5jZWRfZmlsdGVyX2NyZWF0ZV9hbmRfZ3JvdXA/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfYWR2YW5jZWRfZmlsdGVyX2NyZWF0ZV9vcl9ncm91cD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9hZHZhbmNlZF9maWx0ZXJfYW5kX2xhYmVsPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2FkdmFuY2VkX2ZpbHRlcl9vcl9sYWJlbD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9hZHZhbmNlZF9maWx0ZXJfYWRkX2NvbmRpdGlvbj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9hZHZhbmNlZF9maWx0ZXJfdW5ncm91cD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9hZHZhbmNlZF9maWx0ZXJfZGVsZXRlPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2FkdmFuY2VkX2ZpbHRlcl9kZWxldGVfZmlsdGVycz86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9hZHZhbmNlZF9maWx0ZXJfaW5pdGlhbF90ZXh0Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2FkdmFuY2VkX2ZpbHRlcl9jb2x1bW5fcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfYWR2YW5jZWRfZmlsdGVyX3ZhbHVlX3BsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Bpbm5lZF9yb3dfaW5kaWNhdG9yPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2hpZGluZ19jaGVja19hbGxfbGFiZWw/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfaGlkaW5nX3VuY2hlY2tfYWxsX2xhYmVsPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Bpbm5pbmdfY2hlY2tfYWxsX2xhYmVsPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Bpbm5pbmdfdW5jaGVja19hbGxfbGFiZWw/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcm93X2VkaXRfYnRuX2RvbmU/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcm93X2VkaXRfYnRuX2NhbmNlbD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF90b29sYmFyX2FjdGlvbnNfZmlsdGVyX3Byb21wdD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF90b29sYmFyX3Bpbm5pbmdfYnV0dG9uX3Rvb2x0aXA/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfdG9vbGJhcl9oaWRpbmdfYnV0dG9uX3Rvb2x0aXA/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfdG9vbGJhcl9waW5uaW5nX3RpdGxlPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Rvb2xiYXJfaGlkaW5nX3RpdGxlPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Rvb2xiYXJfYWR2YW5jZWRfZmlsdGVyaW5nX2J1dHRvbl90b29sdGlwPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Rvb2xiYXJfYWR2YW5jZWRfZmlsdGVyaW5nX2J1dHRvbl9sYWJlbD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF90b29sYmFyX2V4cG9ydGVyX2J1dHRvbl90b29sdGlwPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Rvb2xiYXJfZXhwb3J0ZXJfYnV0dG9uX2xhYmVsPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Rvb2xiYXJfZXhwb3J0ZXJfZXhjZWxfZW50cnlfdGV4dD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF90b29sYmFyX2V4cG9ydGVyX2Nzdl9lbnRyeV90ZXh0Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3NuYWNrYmFyX2FkZHJvd19sYWJlbD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9zbmFja2Jhcl9hZGRyb3dfYWN0aW9udGV4dD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9hY3Rpb25zX2VkaXRfbGFiZWw/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfYWN0aW9uc19hZGRfbGFiZWw/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfYWRkX3Jvd19sYWJlbD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9hY3Rpb25zX2FkZF9jaGlsZF9sYWJlbD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9hY3Rpb25zX2RlbGV0ZV9sYWJlbD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9hY3Rpb25zX3Bpbl9sYWJlbD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9hY3Rpb25zX3VucGluX2xhYmVsPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2FjdGlvbnNfanVtcFVwX2xhYmVsPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX2FjdGlvbnNfanVtcERvd25fbGFiZWw/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGl2b3RfZGF0ZV9kaW1lbnNpb25fdG90YWw/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGl2b3RfYWdncmVnYXRlX2NvdW50Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Bpdm90X2FnZ3JlZ2F0ZV9taW4/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGl2b3RfYWdncmVnYXRlX21heD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9waXZvdF9hZ2dyZWdhdGVfc3VtPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Bpdm90X2FnZ3JlZ2F0ZV9hdmc/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGl2b3RfYWdncmVnYXRlX2RhdGVfbGF0ZXN0Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Bpdm90X2FnZ3JlZ2F0ZV9kYXRlX2VhcmxpZXN0Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Bpdm90X2FnZ3JlZ2F0ZV90aW1lX2xhdGVzdD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9waXZvdF9hZ2dyZWdhdGVfdGltZV9lYXJsaWVzdD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9waXZvdF9lbXB0eV9yb3dfZHJvcF9hcmVhPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Bpdm90X2VtcHR5X2NvbHVtbl9kcm9wX2FyZWE/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGl2b3RfZW1wdHlfZmlsdGVyX2Ryb3BfYXJlYT86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9waXZvdF9lbXB0eV92YWx1ZV9kcm9wX2FyZWE/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGl2b3Rfcm93X2Ryb3BfY2hpcD86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9waXZvdF9jb2x1bW5fZHJvcF9jaGlwPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Bpdm90X2ZpbHRlcl9kcm9wX2NoaXA/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGl2b3RfdmFsdWVfZHJvcF9jaGlwPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Bpdm90X2VtcHR5X21lc3NhZ2U/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGl2b3Rfc2VsZWN0b3JfZmlsdGVycz86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9waXZvdF9zZWxlY3Rvcl9yb3dzPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Bpdm90X3NlbGVjdG9yX2NvbHVtbnM/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfcGl2b3Rfc2VsZWN0b3JfdmFsdWVzPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3Bpdm90X3NlbGVjdG9yX3BhbmVsX2VtcHR5Pzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3JlcXVpcmVkX3ZhbGlkYXRpb25fZXJyb3I/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfbWluX3ZhbGlkYXRpb25fZXJyb3I/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfbWF4X3ZhbGlkYXRpb25fZXJyb3I/OiBzdHJpbmc7XG4gICAgaWd4X2dyaWRfbWluX2xlbmd0aF92YWxpZGF0aW9uX2Vycm9yPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX21heF9sZW5ndGhfdmFsaWRhdGlvbl9lcnJvcj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9lbWFpbF92YWxpZGF0aW9uX2Vycm9yPzogc3RyaW5nO1xuICAgIGlneF9ncmlkX3BhdHRlcm5fdmFsaWRhdGlvbl9lcnJvcj86IHN0cmluZztcbiAgICBpZ3hfZ3JpZF9waXZvdF9ub19hZ2dyZWdhdG9yPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgR3JpZFJlc291cmNlU3RyaW5nc0VOOiBJR3JpZFJlc291cmNlU3RyaW5ncyA9IHtcbiAgICBpZ3hfZ3JpZF9ncm91cEJ5QXJlYV9tZXNzYWdlOiAnRHJhZyBhIGNvbHVtbiBoZWFkZXIgYW5kIGRyb3AgaXQgaGVyZSB0byBncm91cCBieSB0aGF0IGNvbHVtbi4nLFxuICAgIGlneF9ncmlkX2dyb3VwQnlBcmVhX3NlbGVjdF9tZXNzYWdlOiAnU2VsZWN0IGFsbCByb3dzIGluIHRoZSBncm91cCB3aXRoIGZpZWxkIG5hbWUgezB9IGFuZCB2YWx1ZSB7MX0uJyxcbiAgICBpZ3hfZ3JpZF9ncm91cEJ5QXJlYV9kZXNlbGVjdF9tZXNzYWdlOiAnRGVzZWxlY3QgYWxsIHJvd3MgaW4gdGhlIGdyb3VwIHdpdGggZmllbGQgbmFtZSB7MH0gYW5kIHZhbHVlIHsxfS4nLFxuICAgIGlneF9ncmlkX2VtcHR5RmlsdGVyZWRHcmlkX21lc3NhZ2U6ICdObyByZWNvcmRzIGZvdW5kLicsXG4gICAgaWd4X2dyaWRfZW1wdHlHcmlkX21lc3NhZ2U6ICdHcmlkIGhhcyBubyBkYXRhLicsXG4gICAgaWd4X2dyaWRfZmlsdGVyOiAnRmlsdGVyJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfcm93X2Nsb3NlOiAnQ2xvc2UnLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9yb3dfcmVzZXQ6ICdSZXNldCcsXG4gICAgaWd4X2dyaWRfZmlsdGVyX3Jvd19wbGFjZWhvbGRlcjogJ0FkZCBmaWx0ZXIgdmFsdWUnLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9yb3dfYm9vbGVhbl9wbGFjZWhvbGRlcjogJ0FsbCcsXG4gICAgaWd4X2dyaWRfZmlsdGVyX3Jvd19kYXRlX3BsYWNlaG9sZGVyOiAnUGljayB1cCBkYXRlJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfcm93X3RpbWVfcGxhY2Vob2xkZXI6ICdQaWNrIHVwIHRpbWUnLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9vcGVyYXRvcl9hbmQ6ICdBbmQnLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9vcGVyYXRvcl9vcjogJ09yJyxcbiAgICBpZ3hfZ3JpZF9jb21wbGV4X2ZpbHRlcjogJ0NvbXBsZXggRmlsdGVyJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfY29udGFpbnM6ICdDb250YWlucycsXG4gICAgaWd4X2dyaWRfZmlsdGVyX2RvZXNOb3RDb250YWluOiAnRG9lcyBOb3QgQ29udGFpbicsXG4gICAgaWd4X2dyaWRfZmlsdGVyX3N0YXJ0c1dpdGg6ICdTdGFydHMgV2l0aCcsXG4gICAgaWd4X2dyaWRfZmlsdGVyX2VuZHNXaXRoOiAnRW5kcyBXaXRoJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfZXF1YWxzOiAnRXF1YWxzJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfZG9lc05vdEVxdWFsOiAnRG9lcyBOb3QgRXF1YWwnLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9lbXB0eTogJ0VtcHR5JyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfbm90RW1wdHk6ICdOb3QgRW1wdHknLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9udWxsOiAnTnVsbCcsXG4gICAgaWd4X2dyaWRfZmlsdGVyX25vdE51bGw6ICdOb3QgTnVsbCcsXG4gICAgaWd4X2dyaWRfZmlsdGVyX2JlZm9yZTogJ0JlZm9yZScsXG4gICAgaWd4X2dyaWRfZmlsdGVyX2FmdGVyOiAnQWZ0ZXInLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9hdDogJ0F0JyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfbm90X2F0OiAnTm90IEF0JyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfYXRfYmVmb3JlOiAnQXQgb3IgQmVmb3JlJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfYXRfYWZ0ZXI6ICdBdCBvciBBZnRlcicsXG4gICAgaWd4X2dyaWRfZmlsdGVyX3RvZGF5OiAnVG9kYXknLFxuICAgIGlneF9ncmlkX2ZpbHRlcl95ZXN0ZXJkYXk6ICdZZXN0ZXJkYXknLFxuICAgIGlneF9ncmlkX2ZpbHRlcl90aGlzTW9udGg6ICdUaGlzIE1vbnRoJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfbGFzdE1vbnRoOiAnTGFzdCBNb250aCcsXG4gICAgaWd4X2dyaWRfZmlsdGVyX25leHRNb250aDogJ05leHQgTW9udGgnLFxuICAgIGlneF9ncmlkX2ZpbHRlcl90aGlzWWVhcjogJ1RoaXMgWWVhcicsXG4gICAgaWd4X2dyaWRfZmlsdGVyX2xhc3RZZWFyOiAnTGFzdCBZZWFyJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfbmV4dFllYXI6ICdOZXh0IFllYXInLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9ncmVhdGVyVGhhbjogJ0dyZWF0ZXIgVGhhbicsXG4gICAgaWd4X2dyaWRfZmlsdGVyX2xlc3NUaGFuOiAnTGVzcyBUaGFuJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfZ3JlYXRlclRoYW5PckVxdWFsVG86ICdHcmVhdGVyIFRoYW4gT3IgRXF1YWwgVG8nLFxuICAgIGlneF9ncmlkX2ZpbHRlcl9sZXNzVGhhbk9yRXF1YWxUbzogJ0xlc3MgVGhhbiBPciBFcXVhbCBUbycsXG4gICAgaWd4X2dyaWRfZmlsdGVyX3RydWU6ICdUcnVlJyxcbiAgICBpZ3hfZ3JpZF9maWx0ZXJfZmFsc2U6ICdGYWxzZScsXG4gICAgaWd4X2dyaWRfZmlsdGVyX2FsbDogJ0FsbCcsXG4gICAgaWd4X2dyaWRfZmlsdGVyX2NvbmRpdGlvbl9wbGFjZWhvbGRlcjogJ1NlbGVjdCBmaWx0ZXInLFxuICAgIGlneF9ncmlkX3N1bW1hcnlfY291bnQ6ICdDb3VudCcsXG4gICAgaWd4X2dyaWRfc3VtbWFyeV9taW46ICdNaW4nLFxuICAgIGlneF9ncmlkX3N1bW1hcnlfbWF4OiAnTWF4JyxcbiAgICBpZ3hfZ3JpZF9zdW1tYXJ5X3N1bTogJ1N1bScsXG4gICAgaWd4X2dyaWRfc3VtbWFyeV9hdmVyYWdlOiAnQXZnJyxcbiAgICBpZ3hfZ3JpZF9zdW1tYXJ5X2VhcmxpZXN0OiAnRWFybGllc3QnLFxuICAgIGlneF9ncmlkX3N1bW1hcnlfbGF0ZXN0OiAnTGF0ZXN0JyxcbiAgICBpZ3hfZ3JpZF9leGNlbF9maWx0ZXJfbW92aW5nX2xlZnQ6ICdtb3ZlIGxlZnQnLFxuICAgIGlneF9ncmlkX2V4Y2VsX2ZpbHRlcl9tb3ZpbmdfbGVmdF9zaG9ydDogJ2xlZnQnLFxuICAgIGlneF9ncmlkX2V4Y2VsX2ZpbHRlcl9tb3ZpbmdfcmlnaHQ6ICdtb3ZlIHJpZ2h0JyxcbiAgICBpZ3hfZ3JpZF9leGNlbF9maWx0ZXJfbW92aW5nX3JpZ2h0X3Nob3J0OiAncmlnaHQnLFxuICAgIGlneF9ncmlkX2V4Y2VsX2ZpbHRlcl9tb3ZpbmdfaGVhZGVyOiAnbW92ZScsXG4gICAgaWd4X2dyaWRfZXhjZWxfZmlsdGVyX3NvcnRpbmdfYXNjOiAnYXNjZW5kaW5nJyxcbiAgICBpZ3hfZ3JpZF9leGNlbF9maWx0ZXJfc29ydGluZ19hc2Nfc2hvcnQ6ICdhc2MnLFxuICAgIGlneF9ncmlkX2V4Y2VsX2ZpbHRlcl9zb3J0aW5nX2Rlc2M6ICdkZXNjZW5kaW5nJyxcbiAgICBpZ3hfZ3JpZF9leGNlbF9maWx0ZXJfc29ydGluZ19kZXNjX3Nob3J0OiAnZGVzYycsXG4gICAgaWd4X2dyaWRfZXhjZWxfZmlsdGVyX3NvcnRpbmdfaGVhZGVyOiAnc29ydCcsXG4gICAgaWd4X2dyaWRfZXhjZWxfZmlsdGVyX2NsZWFyOiAnQ2xlYXIgY29sdW1uIGZpbHRlcnMnLFxuICAgIGlneF9ncmlkX2V4Y2VsX2N1c3RvbV9kaWFsb2dfYWRkOiAnYWRkIGZpbHRlcicsXG4gICAgaWd4X2dyaWRfZXhjZWxfY3VzdG9tX2RpYWxvZ19jbGVhcjogJ0NsZWFyIGZpbHRlcicsXG4gICAgaWd4X2dyaWRfZXhjZWxfY3VzdG9tX2RpYWxvZ19oZWFkZXI6ICdDdXN0b20gYXV0by1maWx0ZXIgb24gY29sdW1uOiAnLFxuICAgIGlneF9ncmlkX2V4Y2VsX2NhbmNlbDogJ2NhbmNlbCcsXG4gICAgaWd4X2dyaWRfZXhjZWxfYXBwbHk6ICdhcHBseScsXG4gICAgaWd4X2dyaWRfZXhjZWxfc2VhcmNoX3BsYWNlaG9sZGVyOiAnU2VhcmNoJyxcbiAgICBpZ3hfZ3JpZF9leGNlbF9zZWxlY3RfYWxsOiAnU2VsZWN0IEFsbCcsXG4gICAgaWd4X2dyaWRfZXhjZWxfc2VsZWN0X2FsbF9zZWFyY2hfcmVzdWx0czogJ1NlbGVjdCBhbGwgc2VhcmNoIHJlc3VsdHMnLFxuICAgIGlneF9ncmlkX2V4Y2VsX2FkZF90b19maWx0ZXI6ICdBZGQgY3VycmVudCBzZWxlY3Rpb24gdG8gZmlsdGVyJyxcbiAgICBpZ3hfZ3JpZF9leGNlbF9ibGFua3M6ICcoQmxhbmtzKScsXG4gICAgaWd4X2dyaWRfZXhjZWxfaGlkZTogJ0hpZGUgY29sdW1uJyxcbiAgICBpZ3hfZ3JpZF9leGNlbF9zaG93OiAnU2hvdyBjb2x1bW4nLFxuICAgIGlneF9ncmlkX2V4Y2VsX3BpbjogJ1BpbiBjb2x1bW4nLFxuICAgIGlneF9ncmlkX2V4Y2VsX3VucGluOiAnVW5waW4gY29sdW1uJyxcbiAgICBpZ3hfZ3JpZF9leGNlbF9zZWxlY3Q6ICdTZWxlY3QgY29sdW1uJyxcbiAgICBpZ3hfZ3JpZF9leGNlbF9kZXNlbGVjdDogJ0Rlc2VsZWN0IGNvbHVtbicsXG4gICAgaWd4X2dyaWRfZXhjZWxfdGV4dF9maWx0ZXI6ICdUZXh0IGZpbHRlcicsXG4gICAgaWd4X2dyaWRfZXhjZWxfbnVtYmVyX2ZpbHRlcjogJ051bWJlciBmaWx0ZXInLFxuICAgIGlneF9ncmlkX2V4Y2VsX2RhdGVfZmlsdGVyOiAnRGF0ZSBmaWx0ZXInLFxuICAgIGlneF9ncmlkX2V4Y2VsX2Jvb2xlYW5fZmlsdGVyOiAnQm9vbGVhbiBmaWx0ZXInLFxuICAgIGlneF9ncmlkX2V4Y2VsX2N1cnJlbmN5X2ZpbHRlcjogJ0N1cnJlbmN5IGZpbHRlcicsXG4gICAgaWd4X2dyaWRfZXhjZWxfY3VzdG9tX2ZpbHRlcjogJ0N1c3RvbSBmaWx0ZXIuLi4nLFxuICAgIGlneF9ncmlkX2V4Y2VsX25vX21hdGNoZXM6ICdObyBtYXRjaGVzJyxcbiAgICBpZ3hfZ3JpZF9leGNlbF9tYXRjaGVzX2NvdW50OiAnezB9IG1hdGNoZXMuJyxcbiAgICBpZ3hfZ3JpZF9hZHZhbmNlZF9maWx0ZXJfdGl0bGU6ICdBZHZhbmNlZCBGaWx0ZXJpbmcnLFxuICAgIGlneF9ncmlkX2FkdmFuY2VkX2ZpbHRlcl9hbmRfZ3JvdXA6ICdcIkFuZFwiIEdyb3VwJyxcbiAgICBpZ3hfZ3JpZF9hZHZhbmNlZF9maWx0ZXJfb3JfZ3JvdXA6ICdcIk9yXCIgR3JvdXAnLFxuICAgIGlneF9ncmlkX2FkdmFuY2VkX2ZpbHRlcl9lbmRfZ3JvdXA6ICdFbmQgR3JvdXAnLFxuICAgIGlneF9ncmlkX2FkdmFuY2VkX2ZpbHRlcl9jcmVhdGVfYW5kX2dyb3VwOiAnQ3JlYXRlIFwiQW5kXCIgR3JvdXAnLFxuICAgIGlneF9ncmlkX2FkdmFuY2VkX2ZpbHRlcl9jcmVhdGVfb3JfZ3JvdXA6ICdDcmVhdGUgXCJPclwiIEdyb3VwJyxcbiAgICBpZ3hfZ3JpZF9hZHZhbmNlZF9maWx0ZXJfYW5kX2xhYmVsOiAnYW5kJyxcbiAgICBpZ3hfZ3JpZF9hZHZhbmNlZF9maWx0ZXJfb3JfbGFiZWw6ICdvcicsXG4gICAgaWd4X2dyaWRfYWR2YW5jZWRfZmlsdGVyX2FkZF9jb25kaXRpb246ICdDb25kaXRpb24nLFxuICAgIGlneF9ncmlkX2FkdmFuY2VkX2ZpbHRlcl91bmdyb3VwOiAnVW5ncm91cCcsXG4gICAgaWd4X2dyaWRfYWR2YW5jZWRfZmlsdGVyX2RlbGV0ZTogJ0RlbGV0ZScsXG4gICAgaWd4X2dyaWRfYWR2YW5jZWRfZmlsdGVyX2RlbGV0ZV9maWx0ZXJzOiAnRGVsZXRlIGZpbHRlcnMnLFxuICAgIGlneF9ncmlkX2FkdmFuY2VkX2ZpbHRlcl9pbml0aWFsX3RleHQ6ICdTdGFydCB3aXRoIGNyZWF0aW5nIGEgZ3JvdXAgb2YgY29uZGl0aW9ucyBsaW5rZWQgd2l0aCBcIkFuZFwiIG9yIFwiT3JcIicsXG4gICAgaWd4X2dyaWRfYWR2YW5jZWRfZmlsdGVyX2NvbHVtbl9wbGFjZWhvbGRlcjogJ1NlbGVjdCBjb2x1bW4nLFxuICAgIGlneF9ncmlkX2FkdmFuY2VkX2ZpbHRlcl92YWx1ZV9wbGFjZWhvbGRlcjogJ1ZhbHVlJyxcbiAgICBpZ3hfZ3JpZF9waW5uZWRfcm93X2luZGljYXRvcjogJ1Bpbm5lZCcsXG4gICAgaWd4X2dyaWRfaGlkaW5nX2NoZWNrX2FsbF9sYWJlbDogJ1Nob3cgQWxsJyxcbiAgICBpZ3hfZ3JpZF9oaWRpbmdfdW5jaGVja19hbGxfbGFiZWw6ICdIaWRlIEFsbCcsXG4gICAgaWd4X2dyaWRfcGlubmluZ19jaGVja19hbGxfbGFiZWw6ICdQaW4gQWxsJyxcbiAgICBpZ3hfZ3JpZF9waW5uaW5nX3VuY2hlY2tfYWxsX2xhYmVsOiAnVW5waW4gQWxsJyxcbiAgICBpZ3hfZ3JpZF9yb3dfZWRpdF9idG5fZG9uZTogJ0RvbmUnLFxuICAgIGlneF9ncmlkX3Jvd19lZGl0X2J0bl9jYW5jZWw6ICdDYW5jZWwnLFxuICAgIGlneF9ncmlkX3Rvb2xiYXJfYWN0aW9uc19maWx0ZXJfcHJvbXB0OiAnRmlsdGVyIGNvbHVtbnMgbGlzdCAuLi4nLFxuICAgIGlneF9ncmlkX3Rvb2xiYXJfcGlubmluZ19idXR0b25fdG9vbHRpcDogJ09wZW4gY29sdW1uIHBpbm5pbmcgZHJvcGRvd24nLFxuICAgIGlneF9ncmlkX3Rvb2xiYXJfaGlkaW5nX2J1dHRvbl90b29sdGlwOiAnT3BlbiBjb2x1bW4gaGlkaW5nIGRyb3Bkb3duJyxcbiAgICBpZ3hfZ3JpZF90b29sYmFyX3Bpbm5pbmdfdGl0bGU6ICdQaW5uZWQgY29sdW1ucycsXG4gICAgaWd4X2dyaWRfdG9vbGJhcl9oaWRpbmdfdGl0bGU6ICdWaXNpYmxlIGNvbHVtbnMnLFxuICAgIGlneF9ncmlkX3Rvb2xiYXJfYWR2YW5jZWRfZmlsdGVyaW5nX2J1dHRvbl90b29sdGlwOiAnT3BlbiBhZHZhbmNlZCBmaWx0ZXJpbmcgZGlhbG9nJyxcbiAgICBpZ3hfZ3JpZF90b29sYmFyX2FkdmFuY2VkX2ZpbHRlcmluZ19idXR0b25fbGFiZWw6ICdBZHZhbmNlZCBmaWx0ZXJpbmcnLFxuICAgIGlneF9ncmlkX3Rvb2xiYXJfZXhwb3J0ZXJfYnV0dG9uX3Rvb2x0aXA6ICdPcGVuIGV4cG9ydGVyIGRyb3Bkb3duJyxcbiAgICBpZ3hfZ3JpZF90b29sYmFyX2V4cG9ydGVyX2J1dHRvbl9sYWJlbDogJ0V4cG9ydCcsXG4gICAgaWd4X2dyaWRfdG9vbGJhcl9leHBvcnRlcl9leGNlbF9lbnRyeV90ZXh0OiAnRXhwb3J0IHRvIEV4Y2VsJyxcbiAgICBpZ3hfZ3JpZF90b29sYmFyX2V4cG9ydGVyX2Nzdl9lbnRyeV90ZXh0OiAnRXhwb3J0IHRvIENTVicsXG4gICAgaWd4X2dyaWRfc25hY2tiYXJfYWRkcm93X2xhYmVsOiAnUm93IGFkZGVkJyxcbiAgICBpZ3hfZ3JpZF9zbmFja2Jhcl9hZGRyb3dfYWN0aW9udGV4dDogJ1NIT1cnLFxuICAgIGlneF9ncmlkX2FjdGlvbnNfZWRpdF9sYWJlbDogJ0VkaXQnLFxuICAgIGlneF9ncmlkX2FjdGlvbnNfYWRkX2xhYmVsOiAnQWRkJyxcbiAgICBpZ3hfZ3JpZF9hZGRfcm93X2xhYmVsOiAnQUREIFJPVycsXG4gICAgaWd4X2dyaWRfYWN0aW9uc19hZGRfY2hpbGRfbGFiZWw6ICdBZGQgQ2hpbGQnLFxuICAgIGlneF9ncmlkX2FjdGlvbnNfZGVsZXRlX2xhYmVsOiAnRGVsZXRlJyxcbiAgICBpZ3hfZ3JpZF9hY3Rpb25zX3Bpbl9sYWJlbDogJ1BpbicsXG4gICAgaWd4X2dyaWRfYWN0aW9uc191bnBpbl9sYWJlbDogJ1VucGluJyxcbiAgICBpZ3hfZ3JpZF9hY3Rpb25zX2p1bXBVcF9sYWJlbDogJ0p1bXAgdXAnLFxuICAgIGlneF9ncmlkX2FjdGlvbnNfanVtcERvd25fbGFiZWw6ICdKdW1wIGRvd24nLFxuICAgIGlneF9ncmlkX3Bpdm90X2RhdGVfZGltZW5zaW9uX3RvdGFsOiAnQWxsIFBlcmlvZHMnLFxuICAgIGlneF9ncmlkX3Bpdm90X2FnZ3JlZ2F0ZV9jb3VudDogJ0NvdW50JyxcbiAgICBpZ3hfZ3JpZF9waXZvdF9hZ2dyZWdhdGVfbWluOiAnTWluaW11bScsXG4gICAgaWd4X2dyaWRfcGl2b3RfYWdncmVnYXRlX21heDogJ01heGltdW0nLFxuICAgIGlneF9ncmlkX3Bpdm90X2FnZ3JlZ2F0ZV9zdW06ICdTdW0nLFxuICAgIGlneF9ncmlkX3Bpdm90X2FnZ3JlZ2F0ZV9hdmc6ICdBdmVyYWdlJyxcbiAgICBpZ3hfZ3JpZF9waXZvdF9hZ2dyZWdhdGVfZGF0ZV9sYXRlc3Q6ICdMYXRlc3QgRGF0ZScsXG4gICAgaWd4X2dyaWRfcGl2b3RfYWdncmVnYXRlX2RhdGVfZWFybGllc3Q6ICdFYXJsaWVzdCBEYXRlJyxcbiAgICBpZ3hfZ3JpZF9waXZvdF9hZ2dyZWdhdGVfdGltZV9sYXRlc3Q6ICdMYXRlc3QgVGltZScsXG4gICAgaWd4X2dyaWRfcGl2b3RfYWdncmVnYXRlX3RpbWVfZWFybGllc3Q6ICdFYXJsaWVzdCBUaW1lJyxcbiAgICBpZ3hfZ3JpZF9waXZvdF9lbXB0eV9yb3dfZHJvcF9hcmVhOiAnRHJvcCBSb3cgRmllbGRzIGhlcmUuJyxcbiAgICBpZ3hfZ3JpZF9waXZvdF9lbXB0eV9jb2x1bW5fZHJvcF9hcmVhOiAnRHJvcCBDb2x1bW4gRmllbGRzIGhlcmUuJyxcbiAgICBpZ3hfZ3JpZF9waXZvdF9lbXB0eV9maWx0ZXJfZHJvcF9hcmVhOiAnRHJvcCBGaWx0ZXIgRmllbGRzIGhlcmUuJyxcbiAgICBpZ3hfZ3JpZF9waXZvdF9lbXB0eV92YWx1ZV9kcm9wX2FyZWE6ICdEcm9wIFZhbHVlIEZpZWxkcyBoZXJlLicsXG4gICAgaWd4X2dyaWRfcGl2b3Rfcm93X2Ryb3BfY2hpcDogJ0Ryb3AgaGVyZSB0byB1c2UgYXMgcm93JyxcbiAgICBpZ3hfZ3JpZF9waXZvdF9jb2x1bW5fZHJvcF9jaGlwOiAnRHJvcCBoZXJlIHRvIHVzZSBhcyBjb2x1bW4nLFxuICAgIGlneF9ncmlkX3Bpdm90X2ZpbHRlcl9kcm9wX2NoaXA6ICdEcm9wIGhlcmUgdG8gdXNlIGFzIGZpbHRlcicsXG4gICAgaWd4X2dyaWRfcGl2b3RfdmFsdWVfZHJvcF9jaGlwOiAnRHJvcCBoZXJlIHRvIHVzZSBhcyB2YWx1ZScsXG4gICAgaWd4X2dyaWRfcGl2b3RfZW1wdHlfbWVzc2FnZTogJ1Bpdm90IGdyaWQgaGFzIG5vIGRpbWVuc2lvbnMgYW5kIHZhbHVlcy4nLFxuICAgIGlneF9ncmlkX3Bpdm90X3NlbGVjdG9yX2ZpbHRlcnM6ICdGaWx0ZXJzJyxcbiAgICBpZ3hfZ3JpZF9waXZvdF9zZWxlY3Rvcl9yb3dzOiAnUm93cycsXG4gICAgaWd4X2dyaWRfcGl2b3Rfc2VsZWN0b3JfY29sdW1uczogJ0NvbHVtbnMnLFxuICAgIGlneF9ncmlkX3Bpdm90X3NlbGVjdG9yX3ZhbHVlczogJ1ZhbHVlcycsXG4gICAgaWd4X2dyaWRfcGl2b3Rfc2VsZWN0b3JfcGFuZWxfZW1wdHk6ICdEcm9wIEl0ZW1zIEhlcmUnLFxuICAgIGlneF9ncmlkX3JlcXVpcmVkX3ZhbGlkYXRpb25fZXJyb3I6ICdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJyxcbiAgICBpZ3hfZ3JpZF9taW5fdmFsaWRhdGlvbl9lcnJvcjogJ0EgdmFsdWUgb2YgYXQgbGVhc3QgezB9IHNob3VsZCBiZSBlbnRlcmVkJyxcbiAgICBpZ3hfZ3JpZF9tYXhfdmFsaWRhdGlvbl9lcnJvcjogJ0EgdmFsdWUgbm8gbW9yZSB0aGFuIHswfSBzaG91bGQgYmUgZW50ZXJlZCcsXG4gICAgaWd4X2dyaWRfbWluX2xlbmd0aF92YWxpZGF0aW9uX2Vycm9yOiAnRW50cnkgc2hvdWxkIGJlIGF0IGxlYXN0IHswfSBjaGFyYWN0ZXIocykgbG9uZycsXG4gICAgaWd4X2dyaWRfbWF4X2xlbmd0aF92YWxpZGF0aW9uX2Vycm9yOiAnRW50cnkgc2hvdWxkIGJlIG5vIG1vcmUgdGhhbiB7MH0gY2hhcmFjdGVyKHMpIGxvbmcnLFxuICAgIGlneF9ncmlkX2VtYWlsX3ZhbGlkYXRpb25fZXJyb3I6ICdBIHZhbGlkIGVtYWlsIGFkZHJlc3Mgc2hvdWxkIGJlIGVudGVyZWQnLFxuICAgIGlneF9ncmlkX3BhdHRlcm5fdmFsaWRhdGlvbl9lcnJvcjogJ0VudHJ5IGRvZXMgbm90IG1hdGNoIHRoZSByZXF1aXJlZCBwYXR0ZXJuJyxcbiAgICBpZ3hfZ3JpZF9waXZvdF9ub19hZ2dyZWdhdG9yOiAnTm8gdmFsaWQgYWdncmVnYXRvciBmb3VuZCBmb3IgezB9LiBQbGVhc2Ugc2V0IGVpdGhlciBhIHZhbGlkIGFnZ3JlZ2F0b3JOYW1lIG9yIGFnZ3JlZ2F0b3IuJ1xufTtcbiJdfQ==