@acorex/components 5.0.10 → 5.0.13

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 (47) hide show
  1. package/bundles/acorex-components.umd.js +677 -587
  2. package/bundles/acorex-components.umd.js.map +1 -1
  3. package/esm2015/lib/base/mixin/base-components.class.js +19 -3
  4. package/esm2015/lib/base/mixin/button-mixin.class.js +92 -105
  5. package/esm2015/lib/base/mixin/clickable-mixin.class.js +1 -1
  6. package/esm2015/lib/base/mixin/dropdown-mixin.class.js +63 -9
  7. package/esm2015/lib/base/mixin/interactive-mixin.class.js +3 -3
  8. package/esm2015/lib/base/mixin/mixin.class.js +2 -2
  9. package/esm2015/lib/base/mixin/value-mixin.class.js +7 -2
  10. package/esm2015/lib/button/button-group.component.js +4 -4
  11. package/esm2015/lib/calendar/calendar.class.js +97 -0
  12. package/esm2015/lib/calendar/calendar.component.js +17 -67
  13. package/esm2015/lib/checkbox/checkbox.component.js +3 -4
  14. package/esm2015/lib/datepicker/datepicker.component.js +119 -65
  15. package/esm2015/lib/datepicker/datepicker.module.js +30 -6
  16. package/esm2015/lib/dropdown/dropdown-panel.component.js +7 -4
  17. package/esm2015/lib/dropdown/dropdown.component.js +10 -7
  18. package/esm2015/lib/form/form-hint.component.js +3 -3
  19. package/esm2015/lib/page/base-page.class.js +2 -2
  20. package/esm2015/lib/selectbox/selectbox.component.js +2 -2
  21. package/esm2015/lib/selection-list/selection-list.component.js +2 -2
  22. package/esm2015/lib/tabs/tab-content.directive.js +2 -2
  23. package/esm2015/lib/tabs/tab-item.component.js +2 -2
  24. package/fesm2015/acorex-components.js +650 -569
  25. package/fesm2015/acorex-components.js.map +1 -1
  26. package/lib/base/mixin/base-components.class.d.ts +21 -18
  27. package/lib/base/mixin/button-mixin.class.d.ts +11 -17
  28. package/lib/base/mixin/clickable-mixin.class.d.ts +3 -9
  29. package/lib/base/mixin/datalist-component.class.d.ts +9 -15
  30. package/lib/base/mixin/dropdown-mixin.class.d.ts +16 -12
  31. package/lib/base/mixin/interactive-mixin.class.d.ts +6 -14
  32. package/lib/base/mixin/loading-mixin.class.d.ts +3 -9
  33. package/lib/base/mixin/mixin.class.d.ts +166 -164
  34. package/lib/base/mixin/selection-component.class.d.ts +3 -9
  35. package/lib/base/mixin/sizable-mixin.class.d.ts +3 -9
  36. package/lib/base/mixin/textbox-mixin.class.d.ts +4 -12
  37. package/lib/base/mixin/value-mixin.class.d.ts +15 -20
  38. package/lib/button/button-item.component.d.ts +8 -20
  39. package/lib/calendar/calendar.class.d.ts +38 -0
  40. package/lib/calendar/calendar.component.d.ts +5 -26
  41. package/lib/datepicker/datepicker.component.d.ts +170 -16
  42. package/lib/datepicker/datepicker.module.d.ts +8 -2
  43. package/lib/dropdown/dropdown-panel.component.d.ts +4 -5
  44. package/lib/dropdown/dropdown.component.d.ts +5 -6
  45. package/package.json +1 -1
  46. package/esm2015/lib/dropdown/dropdown-base.class.js +0 -98
  47. package/lib/dropdown/dropdown-base.class.d.ts +0 -94
@@ -56,7 +56,7 @@ export function _ValueComponenetMixin(Base) {
56
56
  return __classPrivateFieldGet(this, _value);
57
57
  }
58
58
  set value(v) {
59
- v = this._onValueChanging(v);
59
+ v = this._onInternalValueChanging(v);
60
60
  if (!this._isInited || this.debounceTime == 0) {
61
61
  this._setValue(v);
62
62
  }
@@ -74,6 +74,11 @@ export function _ValueComponenetMixin(Base) {
74
74
  });
75
75
  this._onValueChanged(oldValue, __classPrivateFieldGet(this, _value));
76
76
  }
77
+ _onInternalValueChanging(value) {
78
+ if (this.readonly)
79
+ return this.value;
80
+ return this._onValueChanging(value);
81
+ }
77
82
  _onValueChanging(value) {
78
83
  return value;
79
84
  }
@@ -187,4 +192,4 @@ export const VALUE_INPUTS = [
187
192
  'name'
188
193
  ];
189
194
  export const VALUE_OUTPUT = ['valueChange', 'onValueChanged'];
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtbWl4aW4uY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvbWl4aW4vdmFsdWUtbWl4aW4uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsb0JBQW9CLEdBQ3JCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUs3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsTUFBTSxVQUFVLHFCQUFxQixDQUE2QyxJQUFXOztJQUUzRixZQUFPLEtBQU0sU0FBUSxJQUFJO1lBb0p2Qjs7Y0FFRTtZQUNGLFlBQVksR0FBRyxJQUFXO2dCQUN4QixLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztnQkF0SmpCOzs7a0JBR0U7Z0JBQ0YsbUJBQWMsR0FBMkMsSUFBSSxZQUFZLEVBQTRCLENBQUM7Z0JBRXRHLGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7Z0JBR3pELG9CQUFxQixLQUFLLEVBQUM7Z0JBWTNCLHFCQUFzQixLQUFLLEVBQUM7Z0JBUzVCLHdCQUFjO2dCQVFkLHdCQUF3QixDQUFDLEVBQUM7Z0JBUTFCLDZCQUFxQixJQUFJLFlBQVksRUFBRSxFQUFDO2dCQUN4Qyx3QkFBZ0IsSUFBSSxPQUFPLEVBQUUsRUFBQztnQkFFOUIseUJBQVk7WUFzR1osQ0FBQztZQTVJRDs7Y0FFRTtZQUNGLElBQUksUUFBUTtnQkFDViwrQ0FBc0I7WUFDeEIsQ0FBQztZQUNELElBQUksUUFBUSxDQUFDLEtBQWM7Z0JBQ3pCLHVCQUFBLElBQUksYUFBYSxxQkFBcUIsQ0FB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O2lCQUNUO1lBQ0gsQ0FBQztTQUNGOzs7Ozs7OztXQUFBO0FBQ0gsQ0FBQztBQUdELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRztJQUMxQixVQUFVO0lBQ1YsV0FBVztJQUNYLE9BQU87SUFDUCxjQUFjO0lBQ2QsTUFBTTtDQUNQLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgY29lcmNlQm9vbGVhblByb3BlcnR5LFxyXG4gIGNvZXJjZU51bWJlclByb3BlcnR5LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XHJcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtY29tcG9uZW50cy5jbGFzcyc7XHJcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJhdGN0b3InO1xyXG5pbXBvcnQgeyBBWFZhbHVlQ2hhbmdlZEV2ZW50IH0gZnJvbSAnLi4vZXZlbnRzLmNsYXNzJztcclxuaW1wb3J0IHsgQVhWYWxpZGF0aW9uUnVsZVJlc3VsdCB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi5jbGFzcyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9WYWx1ZUNvbXBvbmVuZXRNaXhpbjxUQmFzZSBleHRlbmRzIENvbnN0cnVjdG9yPEFYQmFzZUNvbXBvbmVudD4+KEJhc2U6IFRCYXNlKSB7XHJcblxyXG4gIHJldHVybiBjbGFzcyBleHRlbmRzIEJhc2Uge1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiAgRmlyZXMgZWFjaCB0aW1lIHRoZSB1c2VyIHByZXNzIGEga2V5LlxyXG4gICAgKiAgQGV2ZW50XHJcbiAgICAqL1xyXG4gICAgb25WYWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWFZhbHVlQ2hhbmdlZEV2ZW50PGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFZhbHVlQ2hhbmdlZEV2ZW50PGFueT4+KCk7XHJcblxyXG4gICAgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG5cclxuICAgICNyZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiAgSWYgc2V0IHRvIHRydWUsIHVzZXIgY2Fubm90IGNoYW5nZSB0aGUgdmFsdWUgb2YgY29tcG9uZW50LlxyXG4gICAgKi9cclxuICAgIGdldCByZWFkb25seSgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuI3JlYWRvbmx5O1xyXG4gICAgfVxyXG4gICAgc2V0IHJlYWRvbmx5KHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgIHRoaXMuI3JlYWRvbmx5ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAjYWxsb3dOdWxsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBnZXQgYWxsb3dOdWxsKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy4jYWxsb3dOdWxsO1xyXG4gICAgfVxyXG4gICAgc2V0IGFsbG93TnVsbCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICB0aGlzLiNhbGxvd051bGwgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAjbmFtZTogc3RyaW5nO1xyXG4gICAgZ2V0IG5hbWUoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLiNuYW1lO1xyXG4gICAgfVxyXG4gICAgc2V0IG5hbWUodmFsdWU6IHN0cmluZykge1xyXG4gICAgICB0aGlzLiNuYW1lID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgI2RlYm91bmNlVGltZTogbnVtYmVyID0gMDtcclxuICAgIGdldCBkZWJvdW5jZVRpbWUoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLiNkZWJvdW5jZVRpbWU7XHJcbiAgICB9XHJcbiAgICBzZXQgZGVib3VuY2VUaW1lKHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgdGhpcy4jZGVib3VuY2VUaW1lID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgICN2YWx1ZVN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICAgICN2YWx1ZVN1YmplY3QgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAgICN2YWx1ZTogYW55O1xyXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBhbnkge1xyXG4gICAgICByZXR1cm4gdGhpcy4jdmFsdWU7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IHZhbHVlKHY6IGFueSkge1xyXG4gICAgICB2ID0gdGhpcy5fb25WYWx1ZUNoYW5naW5nKHYpO1xyXG4gICAgICBpZiAoIXRoaXMuX2lzSW5pdGVkIHx8IHRoaXMuZGVib3VuY2VUaW1lID09IDApIHtcclxuICAgICAgICB0aGlzLl9zZXRWYWx1ZSh2KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLiN2YWx1ZVN1YmplY3QubmV4dCh2KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIF9lbWl0T25WYWx1ZUNoYW5nZWRFdmVudChvbGRWYWx1ZT86IGFueSwgbmV3VmFsdWU/OiBhbnkpIHtcclxuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG5ld1ZhbHVlKTtcclxuICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgdmFsdWU6IG5ld1ZhbHVlLFxyXG4gICAgICAgIG9sZFZhbHVlOiBvbGRWYWx1ZSxcclxuICAgICAgICBuYW1lOiB0aGlzLm5hbWVcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuX29uVmFsdWVDaGFuZ2VkKG9sZFZhbHVlLCB0aGlzLiN2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgX29uVmFsdWVDaGFuZ2luZyh2YWx1ZTogYW55KSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuICAgIF9vblZhbHVlQ2hhbmdlZChvbGRWYWx1ZTogYW55LCBuZXdWYWx1ZTogYW55KTogdm9pZCB7IH1cclxuXHJcbiAgICBfb25JbnRlcm5hbEluaXQoKSB7XHJcbiAgICAgIHRoaXMuX2dldEhvc3RFbGVtZW50KCkuc2V0QXR0cmlidXRlKCdheC1mb3JtLWlucHV0JywgJ3RydWUnKTtcclxuICAgICAgdGhpcy4jdmFsdWVTdWJzY3JpcHRpb24gPSB0aGlzLiN2YWx1ZVN1YmplY3RcclxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy4jZGVib3VuY2VUaW1lKSlcclxuICAgICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHYpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3NldFZhbHVlKHYpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICBzdXBlci5fb25JbnRlcm5hbEluaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBfb25JbnRlcm5hbERlc3Ryb3koKSB7XHJcbiAgICAgIHRoaXMuI3ZhbHVlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIHN1cGVyLm9uRGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIF9zZXRWYWx1ZSh2OiBhbnkpIHtcclxuICAgICAgY29uc3Qgb2xkID0gdGhpcy4jdmFsdWU7XHJcbiAgICAgIC8vIFRPRE86IGNoZWNrIHJlYWwgZXF1YWxpdHlcclxuICAgICAgaWYgKHYgIT0gb2xkKSB7XHJcbiAgICAgICAgdGhpcy4jdmFsdWUgPSB2O1xyXG4gICAgICAgIHRoaXMuX2VtaXRPblZhbHVlQ2hhbmdlZEV2ZW50KG9sZCwgdGhpcy4jdmFsdWUpO1xyXG4gICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICBpZiAodiA9PSBudWxsIHx8IHYgPT0gdW5kZWZpbmVkIHx8IHYgPT0gJycpIHtcclxuICAgICAgICAgIHRoaXMuX3NldEVycm9yU3RhdGUoJ2NsZWFyJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmICh0aGlzLl9pc0luaXRlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXIoKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHZhbGlkYXRlKCk6IFByb21pc2U8QVhWYWxpZGF0aW9uUnVsZVJlc3VsdD4ge1xyXG4gICAgICBjb25zdCBydWxlcyA9IEFycmF5LmZyb20oXHJcbiAgICAgICAgdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yQWxsKCdheC12YWxpZGF0aW9uLXJ1bGUnKVxyXG4gICAgICApLmZpbHRlcigoYykgPT4gKGMgYXMgYW55KS5fX2F4Q29udGV4dF9fLmVuYWJsZWQpO1xyXG4gICAgICAvL1xyXG4gICAgICBpZiAoIXJ1bGVzIHx8IHJ1bGVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuX3NldEVycm9yU3RhdGUoJ2NsZWFyJyk7XHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IHJlc3VsdDogdHJ1ZSwgdmFsdWU6IHRoaXMudmFsdWUgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxBWFZhbGlkYXRpb25SdWxlUmVzdWx0PigocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgIFByb21pc2UuYWxsKFxyXG4gICAgICAgICAgcnVsZXNcclxuICAgICAgICAgICAgLmZpbHRlcigoYykgPT4gdHlwZW9mIChjIGFzIGFueSk/LnZhbGlkYXRlID09PSAnZnVuY3Rpb24nKVxyXG4gICAgICAgICAgICAubWFwKChjKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChjIGFzIGFueSkudmFsaWRhdGUodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKS50aGVuKChkKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBlcnJvciA9IGQuZmluZCgoYykgPT4gYy5yZXN1bHQgPT09IGZhbHNlKTtcclxuICAgICAgICAgIGlmIChlcnJvcikge1xyXG4gICAgICAgICAgICB0aGlzLl9zZXRFcnJvclN0YXRlKCdlcnJvcicsIGVycm9yLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICByZXNvbHZlKHsgcmVzdWx0OiBmYWxzZSwgdmFsdWU6IHRoaXMudmFsdWUgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9zZXRFcnJvclN0YXRlKCdzdWNjZXNzJyk7XHJcbiAgICAgICAgICAgIHJlc29sdmUoeyByZXN1bHQ6IHRydWUsIHZhbHVlOiB0aGlzLnZhbHVlIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgICogIEBpZ25vcmVcclxuICAgICovXHJcbiAgICBjb25zdHJ1Y3RvciguLi5hcmdzOiBhbnlbXSkge1xyXG4gICAgICBzdXBlciguLi5hcmdzKTtcclxuICAgIH1cclxuXHJcbiAgICBfc2V0RXJyb3JTdGF0ZShzdGF0ZTogJ2NsZWFyJyB8ICdzdWNjZXNzJyB8ICdlcnJvcicsIC4uLmFyZ3MpIHtcclxuICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5jbGFzc0xpc3QuY29udGFpbnMoJ2F4LWVkaXRvci1jb250YWluZXInKSA/XHJcbiAgICAgICAgdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKSA6XHJcbiAgICAgICAgdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCcuYXgtZWRpdG9yLWNvbnRhaW5lcicpIDtcclxuICAgICAgY29uc3QgZm9ybUZpZWxkID0gY29udGFpbmVyPy5jbG9zZXN0KCcuYXgtZm9ybS1maWVsZCcpO1xyXG4gICAgICBjb25zdCBsYWJlbCA9IGZvcm1GaWVsZD8ucXVlcnlTZWxlY3RvcignYXgtbGFiZWwnKTtcclxuICAgICAgY29uc3QgdGFyZ2V0ID0gY29udGFpbmVyIHx8IHRoaXMuX2dldElubmVyRWxlbWVudCgpO1xyXG4gICAgICBjb25zdCBwYXJlbnQgPSB0YXJnZXQucGFyZW50RWxlbWVudDtcclxuXHJcbiAgICAgIHN3aXRjaCAoc3RhdGUpIHtcclxuICAgICAgICBjYXNlICdjbGVhcic6XHJcbiAgICAgICAgICBpZiAocGFyZW50LnF1ZXJ5U2VsZWN0b3IoJ3NwYW4uYXgtZXJyb3ItbXNnJykpIHtcclxuICAgICAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKHBhcmVudC5xdWVyeVNlbGVjdG9yKCdzcGFuLmF4LWVycm9yLW1zZycpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGxhYmVsPy5jbGFzc0xpc3QucmVtb3ZlKCdheC1zdGF0ZS1lcnJvcicpO1xyXG4gICAgICAgICAgdGFyZ2V0LmNsYXNzTGlzdC5yZW1vdmUoJ2F4LXN0YXRlLWVycm9yJywgJ2F4LXN0YXRlLXN1Y2Nlc3MnKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxyXG4gICAgICAgICAgdGhpcy5fc2V0RXJyb3JTdGF0ZSgnY2xlYXInKTtcclxuICAgICAgICAgIHRhcmdldC5jbGFzc0xpc3QuYWRkKCdheC1zdGF0ZS1zdWNjZXNzJyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdlcnJvcic6XHJcbiAgICAgICAgICB0aGlzLl9zZXRFcnJvclN0YXRlKCdjbGVhcicpO1xyXG4gICAgICAgICAgaWYgKGFyZ3NbMF0pIHtcclxuICAgICAgICAgICAgY29uc3Qgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgICAgICAgICAgc3Bhbi5pbm5lclRleHQgPSBhcmdzWzBdO1xyXG4gICAgICAgICAgICBzcGFuLmNsYXNzTGlzdC5hZGQoJ2F4LWVycm9yLW1zZycpO1xyXG4gICAgICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoc3Bhbik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBsYWJlbD8uY2xhc3NMaXN0LmFkZCgnYXgtc3RhdGUtZXJyb3InKTtcclxuICAgICAgICAgIHRhcmdldC5jbGFzc0xpc3QuYWRkKCdheC1zdGF0ZS1lcnJvcicpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY29uc3QgVkFMVUVfSU5QVVRTID0gW1xyXG4gICdyZWFkb25seScsXHJcbiAgJ2FsbG93TnVsbCcsXHJcbiAgJ3ZhbHVlJyxcclxuICAnZGVib3VuY2VUaW1lJyxcclxuICAnbmFtZSdcclxuXTtcclxuZXhwb3J0IGNvbnN0IFZBTFVFX09VVFBVVCA9IFsndmFsdWVDaGFuZ2UnLCAnb25WYWx1ZUNoYW5nZWQnXTsiXX0=
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtbWl4aW4uY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvbWl4aW4vdmFsdWUtbWl4aW4uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsb0JBQW9CLEdBQ3JCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUs3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsTUFBTSxVQUFVLHFCQUFxQixDQUE2QyxJQUFXOztJQUUzRixZQUFPLEtBQU0sU0FBUSxJQUFJO1lBMEp2Qjs7Y0FFRTtZQUNGLFlBQVksR0FBRyxJQUFXO2dCQUN4QixLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztnQkE1SmpCOzs7a0JBR0U7Z0JBQ0YsbUJBQWMsR0FBMkMsSUFBSSxZQUFZLEVBQTRCLENBQUM7Z0JBRXRHLGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7Z0JBR3pELG9CQUFxQixLQUFLLEVBQUM7Z0JBWTNCLHFCQUFzQixLQUFLLEVBQUM7Z0JBUzVCLHdCQUFjO2dCQVFkLHdCQUF3QixDQUFDLEVBQUM7Z0JBUTFCLDZCQUFxQixJQUFJLFlBQVksRUFBRSxFQUFDO2dCQUN4Qyx3QkFBZ0IsSUFBSSxPQUFPLEVBQUUsRUFBQztnQkFFOUIseUJBQVk7WUE0R1osQ0FBQztZQWxKRDs7Y0FFRTtZQUNGLElBQUksUUFBUTtnQkFDViwrQ0FBc0I7WUFDeEIsQ0FBQztZQUNELElBQUksUUFBUSxDQUFDLEtBQWM7Z0JBQ3pCLHVCQUFBLElBQUksYUFBYSxxQkFBcUIsQ0FB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O3dCQUNELEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7d0JBQ3ZDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7d0JBQ3ZDLE1BQU07aUJBQ1Q7WUFDSCxDQUFDO1NBQ0Y7Ozs7Ozs7O1dBQUE7QUFDSCxDQUFDO0FBR0QsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLFVBQVU7SUFDVixXQUFXO0lBQ1gsT0FBTztJQUNQLGNBQWM7SUFDZCxNQUFNO0NBQ1AsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBjb2VyY2VCb29sZWFuUHJvcGVydHksXHJcbiAgY29lcmNlTnVtYmVyUHJvcGVydHksXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS1jb21wb25lbnRzLmNsYXNzJztcclxuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cmF0Y3Rvcic7XHJcbmltcG9ydCB7IEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICcuLi9ldmVudHMuY2xhc3MnO1xyXG5pbXBvcnQgeyBBWFZhbGlkYXRpb25SdWxlUmVzdWx0IH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLmNsYXNzJztcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX1ZhbHVlQ29tcG9uZW5ldE1peGluPFRCYXNlIGV4dGVuZHMgQ29uc3RydWN0b3I8QVhCYXNlQ29tcG9uZW50Pj4oQmFzZTogVEJhc2UpIHtcclxuXHJcbiAgcmV0dXJuIGNsYXNzIGV4dGVuZHMgQmFzZSB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqICBGaXJlcyBlYWNoIHRpbWUgdGhlIHVzZXIgcHJlc3MgYSBrZXkuXHJcbiAgICAqICBAZXZlbnRcclxuICAgICovXHJcbiAgICBvblZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYVmFsdWVDaGFuZ2VkRXZlbnQ8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYVmFsdWVDaGFuZ2VkRXZlbnQ8YW55Pj4oKTtcclxuXHJcbiAgICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcblxyXG4gICAgI3JlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqICBJZiBzZXQgdG8gdHJ1ZSwgdXNlciBjYW5ub3QgY2hhbmdlIHRoZSB2YWx1ZSBvZiBjb21wb25lbnQuXHJcbiAgICAqL1xyXG4gICAgZ2V0IHJlYWRvbmx5KCkge1xyXG4gICAgICByZXR1cm4gdGhpcy4jcmVhZG9ubHk7XHJcbiAgICB9XHJcbiAgICBzZXQgcmVhZG9ubHkodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgdGhpcy4jcmVhZG9ubHkgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgICNhbGxvd051bGw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGdldCBhbGxvd051bGwoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLiNhbGxvd051bGw7XHJcbiAgICB9XHJcbiAgICBzZXQgYWxsb3dOdWxsKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgIHRoaXMuI2FsbG93TnVsbCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgICNuYW1lOiBzdHJpbmc7XHJcbiAgICBnZXQgbmFtZSgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuI25hbWU7XHJcbiAgICB9XHJcbiAgICBzZXQgbmFtZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgIHRoaXMuI25hbWUgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAjZGVib3VuY2VUaW1lOiBudW1iZXIgPSAwO1xyXG4gICAgZ2V0IGRlYm91bmNlVGltZSgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuI2RlYm91bmNlVGltZTtcclxuICAgIH1cclxuICAgIHNldCBkZWJvdW5jZVRpbWUodmFsdWU6IG51bWJlcikge1xyXG4gICAgICB0aGlzLiNkZWJvdW5jZVRpbWUgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgI3ZhbHVlU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gICAgI3ZhbHVlU3ViamVjdCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gICAgI3ZhbHVlOiBhbnk7XHJcbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IGFueSB7XHJcbiAgICAgIHJldHVybiB0aGlzLiN2YWx1ZTtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgdmFsdWUodjogYW55KSB7XHJcbiAgICAgIHYgPSB0aGlzLl9vbkludGVybmFsVmFsdWVDaGFuZ2luZyh2KTtcclxuICAgICAgaWYgKCF0aGlzLl9pc0luaXRlZCB8fCB0aGlzLmRlYm91bmNlVGltZSA9PSAwKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0VmFsdWUodik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy4jdmFsdWVTdWJqZWN0Lm5leHQodik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBfZW1pdE9uVmFsdWVDaGFuZ2VkRXZlbnQob2xkVmFsdWU/OiBhbnksIG5ld1ZhbHVlPzogYW55KSB7XHJcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChuZXdWYWx1ZSk7XHJcbiAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQuZW1pdCh7XHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIHZhbHVlOiBuZXdWYWx1ZSxcclxuICAgICAgICBvbGRWYWx1ZTogb2xkVmFsdWUsXHJcbiAgICAgICAgbmFtZTogdGhpcy5uYW1lXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLl9vblZhbHVlQ2hhbmdlZChvbGRWYWx1ZSwgdGhpcy4jdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIF9vbkludGVybmFsVmFsdWVDaGFuZ2luZyh2YWx1ZTogYW55KSB7XHJcbiAgICAgIGlmICh0aGlzLnJlYWRvbmx5KVxyXG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlO1xyXG4gICAgICByZXR1cm4gdGhpcy5fb25WYWx1ZUNoYW5naW5nKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBfb25WYWx1ZUNoYW5naW5nKHZhbHVlOiBhbnkpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG4gICAgX29uVmFsdWVDaGFuZ2VkKG9sZFZhbHVlOiBhbnksIG5ld1ZhbHVlOiBhbnkpOiB2b2lkIHsgfVxyXG5cclxuICAgIF9vbkludGVybmFsSW5pdCgpIHtcclxuICAgICAgdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5zZXRBdHRyaWJ1dGUoJ2F4LWZvcm0taW5wdXQnLCAndHJ1ZScpO1xyXG4gICAgICB0aGlzLiN2YWx1ZVN1YnNjcmlwdGlvbiA9IHRoaXMuI3ZhbHVlU3ViamVjdFxyXG4gICAgICAgIC5waXBlKGRlYm91bmNlVGltZSh0aGlzLiNkZWJvdW5jZVRpbWUpKVxyXG4gICAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgodikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fc2V0VmFsdWUodik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIHN1cGVyLl9vbkludGVybmFsSW5pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIF9vbkludGVybmFsRGVzdHJveSgpIHtcclxuICAgICAgdGhpcy4jdmFsdWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgc3VwZXIub25EZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgX3NldFZhbHVlKHY6IGFueSkge1xyXG4gICAgICBjb25zdCBvbGQgPSB0aGlzLiN2YWx1ZTtcclxuICAgICAgLy8gVE9ETzogY2hlY2sgcmVhbCBlcXVhbGl0eVxyXG4gICAgICBpZiAodiAhPSBvbGQpIHtcclxuICAgICAgICB0aGlzLiN2YWx1ZSA9IHY7XHJcbiAgICAgICAgdGhpcy5fZW1pdE9uVmFsdWVDaGFuZ2VkRXZlbnQob2xkLCB0aGlzLiN2YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIGlmICh2ID09IG51bGwgfHwgdiA9PSB1bmRlZmluZWQgfHwgdiA9PSAnJykge1xyXG4gICAgICAgICAgdGhpcy5fc2V0RXJyb3JTdGF0ZSgnY2xlYXInKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHRoaXMuX2lzSW5pdGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjbGVhcigpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgdmFsaWRhdGUoKTogUHJvbWlzZTxBWFZhbGlkYXRpb25SdWxlUmVzdWx0PiB7XHJcbiAgICAgIGNvbnN0IHJ1bGVzID0gQXJyYXkuZnJvbShcclxuICAgICAgICB0aGlzLl9nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3JBbGwoJ2F4LXZhbGlkYXRpb24tcnVsZScpXHJcbiAgICAgICkuZmlsdGVyKChjKSA9PiAoYyBhcyBhbnkpLl9fYXhDb250ZXh0X18uZW5hYmxlZCk7XHJcbiAgICAgIC8vXHJcbiAgICAgIGlmICghcnVsZXMgfHwgcnVsZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0RXJyb3JTdGF0ZSgnY2xlYXInKTtcclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHsgcmVzdWx0OiB0cnVlLCB2YWx1ZTogdGhpcy52YWx1ZSB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQ+KChyZXNvbHZlKSA9PiB7XHJcbiAgICAgICAgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgICBydWxlc1xyXG4gICAgICAgICAgICAuZmlsdGVyKChjKSA9PiB0eXBlb2YgKGMgYXMgYW55KT8udmFsaWRhdGUgPT09ICdmdW5jdGlvbicpXHJcbiAgICAgICAgICAgIC5tYXAoKGMpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gKGMgYXMgYW55KS52YWxpZGF0ZSh0aGlzLnZhbHVlKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApLnRoZW4oKGQpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGVycm9yID0gZC5maW5kKChjKSA9PiBjLnJlc3VsdCA9PT0gZmFsc2UpO1xyXG4gICAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NldEVycm9yU3RhdGUoJ2Vycm9yJywgZXJyb3IubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIHJlc29sdmUoeyByZXN1bHQ6IGZhbHNlLCB2YWx1ZTogdGhpcy52YWx1ZSB9KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NldEVycm9yU3RhdGUoJ3N1Y2Nlc3MnKTtcclxuICAgICAgICAgICAgcmVzb2x2ZSh7IHJlc3VsdDogdHJ1ZSwgdmFsdWU6IHRoaXMudmFsdWUgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAgKiAgQGlnbm9yZVxyXG4gICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IGFueVtdKSB7XHJcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xyXG4gICAgfVxyXG5cclxuICAgIF9zZXRFcnJvclN0YXRlKHN0YXRlOiAnY2xlYXInIHwgJ3N1Y2Nlc3MnIHwgJ2Vycm9yJywgLi4uYXJncykge1xyXG4gICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLl9nZXRIb3N0RWxlbWVudCgpLmNsYXNzTGlzdC5jb250YWlucygnYXgtZWRpdG9yLWNvbnRhaW5lcicpID9cclxuICAgICAgICB0aGlzLl9nZXRIb3N0RWxlbWVudCgpIDpcclxuICAgICAgICB0aGlzLl9nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJy5heC1lZGl0b3ItY29udGFpbmVyJyk7XHJcbiAgICAgIGNvbnN0IGZvcm1GaWVsZCA9IGNvbnRhaW5lcj8uY2xvc2VzdCgnLmF4LWZvcm0tZmllbGQnKTtcclxuICAgICAgY29uc3QgbGFiZWwgPSBmb3JtRmllbGQ/LnF1ZXJ5U2VsZWN0b3IoJ2F4LWxhYmVsJyk7XHJcbiAgICAgIGNvbnN0IHRhcmdldCA9IGNvbnRhaW5lciB8fCB0aGlzLl9nZXRJbm5lckVsZW1lbnQoKTtcclxuICAgICAgY29uc3QgcGFyZW50ID0gdGFyZ2V0LnBhcmVudEVsZW1lbnQ7XHJcblxyXG4gICAgICBzd2l0Y2ggKHN0YXRlKSB7XHJcbiAgICAgICAgY2FzZSAnY2xlYXInOlxyXG4gICAgICAgICAgaWYgKHBhcmVudC5xdWVyeVNlbGVjdG9yKCdzcGFuLmF4LWVycm9yLW1zZycpKSB7XHJcbiAgICAgICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZChwYXJlbnQucXVlcnlTZWxlY3Rvcignc3Bhbi5heC1lcnJvci1tc2cnKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBsYWJlbD8uY2xhc3NMaXN0LnJlbW92ZSgnYXgtc3RhdGUtZXJyb3InKTtcclxuICAgICAgICAgIHRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKCdheC1zdGF0ZS1lcnJvcicsICdheC1zdGF0ZS1zdWNjZXNzJyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzdWNjZXNzJzpcclxuICAgICAgICAgIHRoaXMuX3NldEVycm9yU3RhdGUoJ2NsZWFyJyk7XHJcbiAgICAgICAgICB0YXJnZXQuY2xhc3NMaXN0LmFkZCgnYXgtc3RhdGUtc3VjY2VzcycpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnZXJyb3InOlxyXG4gICAgICAgICAgdGhpcy5fc2V0RXJyb3JTdGF0ZSgnY2xlYXInKTtcclxuICAgICAgICAgIGlmIChhcmdzWzBdKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICAgICAgICAgIHNwYW4uaW5uZXJUZXh0ID0gYXJnc1swXTtcclxuICAgICAgICAgICAgc3Bhbi5jbGFzc0xpc3QuYWRkKCdheC1lcnJvci1tc2cnKTtcclxuICAgICAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKHNwYW4pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgbGFiZWw/LmNsYXNzTGlzdC5hZGQoJ2F4LXN0YXRlLWVycm9yJyk7XHJcbiAgICAgICAgICB0YXJnZXQuY2xhc3NMaXN0LmFkZCgnYXgtc3RhdGUtZXJyb3InKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IFZBTFVFX0lOUFVUUyA9IFtcclxuICAncmVhZG9ubHknLFxyXG4gICdhbGxvd051bGwnLFxyXG4gICd2YWx1ZScsXHJcbiAgJ2RlYm91bmNlVGltZScsXHJcbiAgJ25hbWUnXHJcbl07XHJcbmV4cG9ydCBjb25zdCBWQUxVRV9PVVRQVVQgPSBbJ3ZhbHVlQ2hhbmdlJywgJ29uVmFsdWVDaGFuZ2VkJ107Il19
@@ -18,7 +18,7 @@ export class AXButtonGroupComponent extends AXInteractiveComponenetMixin {
18
18
  return this._selection;
19
19
  }
20
20
  set selection(value) {
21
- value = this.onOptionChanging({ name: 'selection', value: value });
21
+ value = this._onOptionChanging({ name: 'selection', value: value });
22
22
  const oldValue = this.selection;
23
23
  if (value != oldValue) {
24
24
  this._selection = value;
@@ -33,7 +33,7 @@ export class AXButtonGroupComponent extends AXInteractiveComponenetMixin {
33
33
  return this._color;
34
34
  }
35
35
  set color(value) {
36
- value = this.onOptionChanging({ name: 'color', value: value });
36
+ value = this._onOptionChanging({ name: 'color', value: value });
37
37
  const oldValue = this.color;
38
38
  if (value != oldValue) {
39
39
  this._color = value;
@@ -48,7 +48,7 @@ export class AXButtonGroupComponent extends AXInteractiveComponenetMixin {
48
48
  return this._look;
49
49
  }
50
50
  set look(value) {
51
- value = this.onOptionChanging({ name: 'look', value: value });
51
+ value = this._onOptionChanging({ name: 'look', value: value });
52
52
  const oldValue = this.look;
53
53
  if (value != oldValue) {
54
54
  this._look = value;
@@ -128,4 +128,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImpor
128
128
  type: ContentChildren,
129
129
  args: [AXButtonComponent, { descendants: true }]
130
130
  }] } });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvYnV0dG9uL2J1dHRvbi1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL2J1dHRvbi9idXR0b24tZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsZUFBZSxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUEyQixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwTSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEVBQWdCLDRCQUE0QixFQUF3RyxNQUFNLFNBQVMsQ0FBQzs7QUFVM0ssTUFBTSxPQUFPLHNCQUF1QixTQUFRLDRCQUE0QjtJQXdFcEUsWUFDSSxVQUFzQixFQUNkLElBQVksRUFDcEIsR0FBc0I7UUFDdEIsS0FBSyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUZkLFNBQUksR0FBSixJQUFJLENBQVE7UUF0RXhCLG9CQUFlLEdBQWtDLElBQUksWUFBWSxFQUFFLENBQUM7UUFtQnBFLGdCQUFXLEdBQW1DLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekQsV0FBTSxHQUFxQixTQUFTLENBQUM7UUFtQjdDLGVBQVUsR0FBb0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN6RCxVQUFLLEdBQXVCLElBQUksQ0FBQztRQW1CekMsZ0JBQVcsR0FBc0QsSUFBSSxZQUFZLEVBQXVDLENBQUM7UUFFbEgsbUJBQWMsR0FBK0MsSUFBSSxZQUFZLEVBQWdDLENBQUM7SUFZckgsQ0FBQztJQXRFRCxJQUNXLFNBQVM7UUFDaEIsT0FB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QzNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7aUJBQ3BEO3NKQUtHLGVBQWU7c0JBRGQsTUFBTTtnQkFLSSxTQUFTO3NCQURuQixLQUFLO2dCQWdCTixXQUFXO3NCQURWLE1BQU07Z0JBT0gsS0FBSztzQkFEUixLQUFLO2dCQWVOLFVBQVU7c0JBRFQsTUFBTTtnQkFPSCxJQUFJO3NCQURQLEtBQUs7Z0JBZU4sV0FBVztzQkFEVixNQUFNO2dCQU9QLGVBQWU7c0JBRGQsZUFBZTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ1pvbmUsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4sIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQVhCdXR0b25Db21wb25lbnQgfSBmcm9tIFwiLi9idXR0b24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEFYQ2xpY2tFdmVudCwgQVhJbnRlcmFjdGl2ZUNvbXBvbmVuZXRNaXhpbiwgQVhJdGVtQ2xpY2tFdmVudCwgQVhTZWxlY3Rpb25Nb2RlLCBBWFNlbGVjdGlvblZhbHVlQ2hhbmdlZEV2ZW50LCBBWFN0eWxlQnV0dG9uTG9vaywgQVhTdHlsZUNvbG9yVHlwZSB9IGZyb20gXCIuLi9iYXNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXgtYnV0dG9uLWdyb3VwJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcclxuICAgIGlucHV0czogWydjc3NDbGFzcycsICdzaXplJywgJ2Nzc1N0eWxlJywgJ3J0bCcsICdkaXNhYmxlZCddLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgaG9zdDogeyBjbGFzczogJ2F4LWJ1dHRvbi1ncm91cCcsIHJvbGU6ICdncm91cCcgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhCdXR0b25Hcm91cENvbXBvbmVudCBleHRlbmRzIEFYSW50ZXJhY3RpdmVDb21wb25lbmV0TWl4aW4ge1xyXG5cclxuIFxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBzZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxBWFNlbGVjdGlvbk1vZGU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIHByaXZhdGUgX3NlbGVjdGlvbiA6IEFYU2VsZWN0aW9uTW9kZTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZ2V0IHNlbGVjdGlvbigpIDogQVhTZWxlY3Rpb25Nb2RlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBzZWxlY3Rpb24odmFsdWUgOiBBWFNlbGVjdGlvbk1vZGUpIHtcclxuICAgICAgICB2YWx1ZSA9IHRoaXMub25PcHRpb25DaGFuZ2luZyh7IG5hbWU6ICdzZWxlY3Rpb24nLCB2YWx1ZTogdmFsdWUgfSk7XHJcbiAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLnNlbGVjdGlvbjtcclxuICAgICAgICBpZiAodmFsdWUgIT0gb2xkVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9uID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLm9uT3B0aW9uQ2hhbmdlZCh7IG5hbWU6ICdzZWxlY3Rpb24nLCBvbGRWYWx1ZSwgbmV3VmFsdWU6IHZhbHVlIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgY29sb3JDaGFuZ2U6IEV2ZW50RW1pdHRlcjxBWFN0eWxlQ29sb3JUeXBlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIHByaXZhdGUgX2NvbG9yOiBBWFN0eWxlQ29sb3JUeXBlID0gJ3ByaW1hcnknO1xyXG4gICAgLyoqXHJcbiAgICAqICBQcmVkZWZpbmVkIGNvbG9yIHNjaGVtZXNcclxuICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGNvbG9yKCk6IEFYU3R5bGVDb2xvclR5cGUge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jb2xvcjtcclxuICAgIH1cclxuICAgIHNldCBjb2xvcih2YWx1ZTogQVhTdHlsZUNvbG9yVHlwZSkge1xyXG4gICAgICAgIHZhbHVlID0gdGhpcy5vbk9wdGlvbkNoYW5naW5nKHsgbmFtZTogJ2NvbG9yJywgdmFsdWU6IHZhbHVlIH0pO1xyXG4gICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5jb2xvcjtcclxuICAgICAgICBpZiAodmFsdWUgIT0gb2xkVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fY29sb3IgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5jb2xvckNoYW5nZS5lbWl0KHZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5vbk9wdGlvbkNoYW5nZWQoeyBuYW1lOiAndmFsdWUnLCBvbGRWYWx1ZSwgbmV3VmFsdWU6IHZhbHVlIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIGxvb2tDaGFuZ2U6IEV2ZW50RW1pdHRlcjxBWFN0eWxlQnV0dG9uTG9vaz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBwcml2YXRlIF9sb29rPzogQVhTdHlsZUJ1dHRvbkxvb2sgPSBudWxsO1xyXG4gICAgLyoqXHJcbiAgICAqICBQcmVkZWZpbmVkIGxvb2sgc2NoZW1lc1xyXG4gICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgbG9vaygpOiBBWFN0eWxlQnV0dG9uTG9vayB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvb2s7XHJcbiAgICB9XHJcbiAgICBzZXQgbG9vayh2YWx1ZTogQVhTdHlsZUJ1dHRvbkxvb2spIHtcclxuICAgICAgICB2YWx1ZSA9IHRoaXMub25PcHRpb25DaGFuZ2luZyh7IG5hbWU6ICdsb29rJywgdmFsdWU6IHZhbHVlIH0pO1xyXG4gICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5sb29rO1xyXG4gICAgICAgIGlmICh2YWx1ZSAhPSBvbGRWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9sb29rID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMubG9va0NoYW5nZS5lbWl0KHZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5vbk9wdGlvbkNoYW5nZWQoeyBuYW1lOiAnbG9vaycsIG9sZFZhbHVlLCBuZXdWYWx1ZTogdmFsdWUgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgb25JdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxBWEl0ZW1DbGlja0V2ZW50PEFYQnV0dG9uQ29tcG9uZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYSXRlbUNsaWNrRXZlbnQ8QVhCdXR0b25Db21wb25lbnQ+PigpO1xyXG5cclxuICAgIHB1YmxpYyBvblZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYU2VsZWN0aW9uVmFsdWVDaGFuZ2VkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFNlbGVjdGlvblZhbHVlQ2hhbmdlZEV2ZW50PigpO1xyXG5cclxuXHJcbiAgICBAQ29udGVudENoaWxkcmVuKEFYQnV0dG9uQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXHJcbiAgICBfY29udGVudEJ1dHRvbnM6IFF1ZXJ5TGlzdDxBWEJ1dHRvbkNvbXBvbmVudD47XHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXHJcbiAgICAgICAgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIGNkcilcclxuICAgIH1cclxuXHJcblxyXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xyXG4gICAgICAgIHRoaXMuX2JpbmRFdmVudHMoKTtcclxuICAgICAgICB0aGlzLl9iaW5kUHJvcHMoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfYmluZEV2ZW50cygpIHtcclxuICAgICAgICAodGhpcy5fY29udGVudEJ1dHRvbnMgfHwgW10pLmZvckVhY2goYiA9PiB7XHJcbiAgICAgICAgICAgIGIub25DbGljay5zdWJzY3JpYmUoYyA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVDbGlja0V2ZW50KGMsIGIpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9iaW5kUHJvcHMoKSB7XHJcbiAgICAgICAgKHRoaXMuX2NvbnRlbnRCdXR0b25zIHx8IFtdKS5mb3JFYWNoKGIgPT4ge1xyXG4gICAgICAgICAgICBiLmxvb2sgPSB0aGlzLmxvb2s7XHJcbiAgICAgICAgICAgIGIuY29sb3IgPSB0aGlzLmNvbG9yO1xyXG4gICAgICAgICAgICBiLmRpc2FibGVkID0gdGhpcy5kaXNhYmxlZDtcclxuICAgICAgICAgICAgYi50b2dnbGVhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25PcHRpb25DaGFuZ2VkKG9wdGlvbnMpIHtcclxuICAgICAgICB0aGlzLl9iaW5kUHJvcHMoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgX2hhbmRsZUNsaWNrRXZlbnQoZTogQVhDbGlja0V2ZW50LCBidXR0b246IEFYQnV0dG9uQ29tcG9uZW50KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uID09ICdtdWx0aXBsZScpIHtcclxuICAgICAgICAgICAgYnV0dG9uLnNlbGVjdGVkID0gIWJ1dHRvbi5zZWxlY3RlZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5zZWxlY3Rpb24gPT0gJ3NpbmdsZScpIHtcclxuICAgICAgICAgICAgdGhpcy5fY29udGVudEJ1dHRvbnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgICAgICAgICAgIGMuc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgYnV0dG9uLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGJ1dHRvbi5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgIFxyXG4gICAgICAgIHRoaXMub25JdGVtQ2xpY2suZW1pdCh7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICAgICAgaHRtbEVsZW1lbnQ6IGUuaHRtbEVsZW1lbnQsXHJcbiAgICAgICAgICAgIGl0ZW0gOiBidXR0b25cclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9XHJcbn0iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1idXR0b25cIj5cclxuPC9uZy1jb250ZW50PiJdfQ==
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvYnV0dG9uL2J1dHRvbi1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL2J1dHRvbi9idXR0b24tZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsZUFBZSxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUEyQixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwTSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEVBQWdCLDRCQUE0QixFQUF3RyxNQUFNLFNBQVMsQ0FBQzs7QUFVM0ssTUFBTSxPQUFPLHNCQUF1QixTQUFRLDRCQUE0QjtJQXdFcEUsWUFDSSxVQUFzQixFQUNkLElBQVksRUFDcEIsR0FBc0I7UUFDdEIsS0FBSyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUZkLFNBQUksR0FBSixJQUFJLENBQVE7UUF0RXhCLG9CQUFlLEdBQWtDLElBQUksWUFBWSxFQUFFLENBQUM7UUFtQnBFLGdCQUFXLEdBQW1DLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekQsV0FBTSxHQUFxQixTQUFTLENBQUM7UUFtQjdDLGVBQVUsR0FBb0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN6RCxVQUFLLEdBQXVCLElBQUksQ0FBQztRQW1CekMsZ0JBQVcsR0FBc0QsSUFBSSxZQUFZLEVBQXVDLENBQUM7UUFFbEgsbUJBQWMsR0FBK0MsSUFBSSxZQUFZLEVBQWdDLENBQUM7SUFZckgsQ0FBQztJQXRFRCxJQUNXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFXLFNBQVMsQ0FBQyxLQUF1QjtRQUN4QyxLQUFLLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNwRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hDLElBQUksS0FBSyxJQUFJLFFBQVEsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDMUU7SUFDTCxDQUFDO0lBTUQ7O01BRUU7SUFDRixJQUNJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQXVCO1FBQzdCLEtBQUssR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDNUIsSUFBSSxLQUFLLElBQUksUUFBUSxFQUFFO1lBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUN0RTtJQUNMLENBQUM7SUFLRDs7TUFFRTtJQUNGLElBQ0ksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUMsS0FBd0I7UUFDN0IsS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDL0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMzQixJQUFJLEtBQUssSUFBSSxRQUFRLEVBQUU7WUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ3JFO0lBQ0wsQ0FBQztJQW9CRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFHTyxXQUFXO1FBQ2YsQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNyQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFVBQVU7UUFDZCxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3JDLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNuQixDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDckIsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzNCLENBQUMsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFPO1FBQ25CLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBR0QsaUJBQWlCLENBQUMsQ0FBZSxFQUFFLE1BQXlCO1FBQ3hELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLEVBQUU7WUFDOUIsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7U0FDdEM7YUFDSSxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksUUFBUSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM3QixDQUFDLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN2QixDQUFDLENBQUMsQ0FBQTtZQUNGLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQzFCO2FBQ0k7WUFDRCxNQUFNLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUMzQjtRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ2xCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXO1lBQzFCLElBQUksRUFBRyxNQUFNO1NBQ2hCLENBQUMsQ0FBQztJQUVQLENBQUM7O21IQWhJUSxzQkFBc0I7dUdBQXRCLHNCQUFzQixzY0FvRWQsaUJBQWlCLHVFQ2hGdEMsb0RBQ2E7MkZEV0Esc0JBQXNCO2tCQVJsQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFdBQVcsRUFBRSw2QkFBNkI7b0JBQzFDLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUM7b0JBQzNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7aUJBQ3BEO3NKQUtHLGVBQWU7c0JBRGQsTUFBTTtnQkFLSSxTQUFTO3NCQURuQixLQUFLO2dCQWdCTixXQUFXO3NCQURWLE1BQU07Z0JBT0gsS0FBSztzQkFEUixLQUFLO2dCQWVOLFVBQVU7c0JBRFQsTUFBTTtnQkFPSCxJQUFJO3NCQURQLEtBQUs7Z0JBZU4sV0FBVztzQkFEVixNQUFNO2dCQU9QLGVBQWU7c0JBRGQsZUFBZTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ1pvbmUsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4sIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQVhCdXR0b25Db21wb25lbnQgfSBmcm9tIFwiLi9idXR0b24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEFYQ2xpY2tFdmVudCwgQVhJbnRlcmFjdGl2ZUNvbXBvbmVuZXRNaXhpbiwgQVhJdGVtQ2xpY2tFdmVudCwgQVhTZWxlY3Rpb25Nb2RlLCBBWFNlbGVjdGlvblZhbHVlQ2hhbmdlZEV2ZW50LCBBWFN0eWxlQnV0dG9uTG9vaywgQVhTdHlsZUNvbG9yVHlwZSB9IGZyb20gXCIuLi9iYXNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXgtYnV0dG9uLWdyb3VwJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcclxuICAgIGlucHV0czogWydjc3NDbGFzcycsICdzaXplJywgJ2Nzc1N0eWxlJywgJ3J0bCcsICdkaXNhYmxlZCddLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgaG9zdDogeyBjbGFzczogJ2F4LWJ1dHRvbi1ncm91cCcsIHJvbGU6ICdncm91cCcgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhCdXR0b25Hcm91cENvbXBvbmVudCBleHRlbmRzIEFYSW50ZXJhY3RpdmVDb21wb25lbmV0TWl4aW4ge1xyXG5cclxuIFxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBzZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxBWFNlbGVjdGlvbk1vZGU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIHByaXZhdGUgX3NlbGVjdGlvbiA6IEFYU2VsZWN0aW9uTW9kZTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZ2V0IHNlbGVjdGlvbigpIDogQVhTZWxlY3Rpb25Nb2RlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBzZWxlY3Rpb24odmFsdWUgOiBBWFNlbGVjdGlvbk1vZGUpIHtcclxuICAgICAgICB2YWx1ZSA9IHRoaXMuX29uT3B0aW9uQ2hhbmdpbmcoeyBuYW1lOiAnc2VsZWN0aW9uJywgdmFsdWU6IHZhbHVlIH0pO1xyXG4gICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5zZWxlY3Rpb247XHJcbiAgICAgICAgaWYgKHZhbHVlICE9IG9sZFZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbiA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5vbk9wdGlvbkNoYW5nZWQoeyBuYW1lOiAnc2VsZWN0aW9uJywgb2xkVmFsdWUsIG5ld1ZhbHVlOiB2YWx1ZSB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIGNvbG9yQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QVhTdHlsZUNvbG9yVHlwZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBwcml2YXRlIF9jb2xvcjogQVhTdHlsZUNvbG9yVHlwZSA9ICdwcmltYXJ5JztcclxuICAgIC8qKlxyXG4gICAgKiAgUHJlZGVmaW5lZCBjb2xvciBzY2hlbWVzXHJcbiAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBjb2xvcigpOiBBWFN0eWxlQ29sb3JUeXBlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY29sb3I7XHJcbiAgICB9XHJcbiAgICBzZXQgY29sb3IodmFsdWU6IEFYU3R5bGVDb2xvclR5cGUpIHtcclxuICAgICAgICB2YWx1ZSA9IHRoaXMuX29uT3B0aW9uQ2hhbmdpbmcoeyBuYW1lOiAnY29sb3InLCB2YWx1ZTogdmFsdWUgfSk7XHJcbiAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLmNvbG9yO1xyXG4gICAgICAgIGlmICh2YWx1ZSAhPSBvbGRWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9jb2xvciA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLmNvbG9yQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLm9uT3B0aW9uQ2hhbmdlZCh7IG5hbWU6ICd2YWx1ZScsIG9sZFZhbHVlLCBuZXdWYWx1ZTogdmFsdWUgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgbG9va0NoYW5nZTogRXZlbnRFbWl0dGVyPEFYU3R5bGVCdXR0b25Mb29rPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIHByaXZhdGUgX2xvb2s/OiBBWFN0eWxlQnV0dG9uTG9vayA9IG51bGw7XHJcbiAgICAvKipcclxuICAgICogIFByZWRlZmluZWQgbG9vayBzY2hlbWVzXHJcbiAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBsb29rKCk6IEFYU3R5bGVCdXR0b25Mb29rIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9vaztcclxuICAgIH1cclxuICAgIHNldCBsb29rKHZhbHVlOiBBWFN0eWxlQnV0dG9uTG9vaykge1xyXG4gICAgICAgIHZhbHVlID0gdGhpcy5fb25PcHRpb25DaGFuZ2luZyh7IG5hbWU6ICdsb29rJywgdmFsdWU6IHZhbHVlIH0pO1xyXG4gICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5sb29rO1xyXG4gICAgICAgIGlmICh2YWx1ZSAhPSBvbGRWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9sb29rID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMubG9va0NoYW5nZS5lbWl0KHZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5vbk9wdGlvbkNoYW5nZWQoeyBuYW1lOiAnbG9vaycsIG9sZFZhbHVlLCBuZXdWYWx1ZTogdmFsdWUgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgb25JdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxBWEl0ZW1DbGlja0V2ZW50PEFYQnV0dG9uQ29tcG9uZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYSXRlbUNsaWNrRXZlbnQ8QVhCdXR0b25Db21wb25lbnQ+PigpO1xyXG5cclxuICAgIHB1YmxpYyBvblZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYU2VsZWN0aW9uVmFsdWVDaGFuZ2VkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFNlbGVjdGlvblZhbHVlQ2hhbmdlZEV2ZW50PigpO1xyXG5cclxuXHJcbiAgICBAQ29udGVudENoaWxkcmVuKEFYQnV0dG9uQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXHJcbiAgICBfY29udGVudEJ1dHRvbnM6IFF1ZXJ5TGlzdDxBWEJ1dHRvbkNvbXBvbmVudD47XHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXHJcbiAgICAgICAgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIGNkcilcclxuICAgIH1cclxuXHJcblxyXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xyXG4gICAgICAgIHRoaXMuX2JpbmRFdmVudHMoKTtcclxuICAgICAgICB0aGlzLl9iaW5kUHJvcHMoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfYmluZEV2ZW50cygpIHtcclxuICAgICAgICAodGhpcy5fY29udGVudEJ1dHRvbnMgfHwgW10pLmZvckVhY2goYiA9PiB7XHJcbiAgICAgICAgICAgIGIub25DbGljay5zdWJzY3JpYmUoYyA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVDbGlja0V2ZW50KGMsIGIpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9iaW5kUHJvcHMoKSB7XHJcbiAgICAgICAgKHRoaXMuX2NvbnRlbnRCdXR0b25zIHx8IFtdKS5mb3JFYWNoKGIgPT4ge1xyXG4gICAgICAgICAgICBiLmxvb2sgPSB0aGlzLmxvb2s7XHJcbiAgICAgICAgICAgIGIuY29sb3IgPSB0aGlzLmNvbG9yO1xyXG4gICAgICAgICAgICBiLmRpc2FibGVkID0gdGhpcy5kaXNhYmxlZDtcclxuICAgICAgICAgICAgYi50b2dnbGVhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25PcHRpb25DaGFuZ2VkKG9wdGlvbnMpIHtcclxuICAgICAgICB0aGlzLl9iaW5kUHJvcHMoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgX2hhbmRsZUNsaWNrRXZlbnQoZTogQVhDbGlja0V2ZW50LCBidXR0b246IEFYQnV0dG9uQ29tcG9uZW50KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uID09ICdtdWx0aXBsZScpIHtcclxuICAgICAgICAgICAgYnV0dG9uLnNlbGVjdGVkID0gIWJ1dHRvbi5zZWxlY3RlZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5zZWxlY3Rpb24gPT0gJ3NpbmdsZScpIHtcclxuICAgICAgICAgICAgdGhpcy5fY29udGVudEJ1dHRvbnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgICAgICAgICAgIGMuc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgYnV0dG9uLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGJ1dHRvbi5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgIFxyXG4gICAgICAgIHRoaXMub25JdGVtQ2xpY2suZW1pdCh7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICAgICAgaHRtbEVsZW1lbnQ6IGUuaHRtbEVsZW1lbnQsXHJcbiAgICAgICAgICAgIGl0ZW0gOiBidXR0b25cclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9XHJcbn0iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1idXR0b25cIj5cclxuPC9uZy1jb250ZW50PiJdfQ==
@@ -0,0 +1,97 @@
1
+ import { EventEmitter, Injectable, Input, Output } from "@angular/core";
2
+ import { AXBaseComponent } from "../base";
3
+ import * as i0 from "@angular/core";
4
+ export class AXCalendarBaseComponent extends AXBaseComponent {
5
+ constructor(elementRef, cdr) {
6
+ super(elementRef, cdr);
7
+ this.activeViewChange = new EventEmitter();
8
+ this._activeView = 'days';
9
+ this.depthChange = new EventEmitter();
10
+ this._depth = 'days';
11
+ this.minChange = new EventEmitter();
12
+ this.maxChange = new EventEmitter();
13
+ this.disabledDatesChange = new EventEmitter();
14
+ this.holidayDatesChange = new EventEmitter();
15
+ }
16
+ get activeView() {
17
+ return this._activeView;
18
+ }
19
+ set activeView(v) {
20
+ this._setOption({ name: 'activeView', value: v });
21
+ }
22
+ get depth() {
23
+ return this._depth;
24
+ }
25
+ set depth(v) {
26
+ this._setOption({
27
+ name: 'depth',
28
+ value: v,
29
+ beforeCallback: () => {
30
+ this._activeView = v;
31
+ }
32
+ });
33
+ }
34
+ get min() {
35
+ return this._min;
36
+ }
37
+ set min(v) {
38
+ this._setOption({ name: 'min', value: v });
39
+ }
40
+ get max() {
41
+ return this._max;
42
+ }
43
+ set max(v) {
44
+ this._setOption({ name: 'max', value: v });
45
+ }
46
+ get disabledDates() {
47
+ return this._disabledDates;
48
+ }
49
+ set disabledDates(v) {
50
+ this._setOption({ name: 'disabledDates', value: v });
51
+ }
52
+ get holidayDates() {
53
+ return this._holidayDates;
54
+ }
55
+ set holidayDates(v) {
56
+ this._setOption({ name: 'holidayDates', value: v });
57
+ }
58
+ }
59
+ AXCalendarBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXCalendarBaseComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Injectable });
60
+ AXCalendarBaseComponent.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXCalendarBaseComponent });
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXCalendarBaseComponent, decorators: [{
62
+ type: Injectable
63
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { activeViewChange: [{
64
+ type: Output
65
+ }], activeView: [{
66
+ type: Input
67
+ }], depthChange: [{
68
+ type: Output
69
+ }], depth: [{
70
+ type: Input
71
+ }], minChange: [{
72
+ type: Output
73
+ }], min: [{
74
+ type: Input
75
+ }], maxChange: [{
76
+ type: Output
77
+ }], max: [{
78
+ type: Input
79
+ }], disabledDatesChange: [{
80
+ type: Output
81
+ }], disabledDates: [{
82
+ type: Input
83
+ }], holidayDatesChange: [{
84
+ type: Output
85
+ }], holidayDates: [{
86
+ type: Input
87
+ }] } });
88
+ export const CALENDAR_INPUTS = [
89
+ 'depth',
90
+ 'activeView',
91
+ 'min',
92
+ 'max',
93
+ 'disabledDates',
94
+ 'holidayDates',
95
+ ];
96
+ export const CALENDAR_OUTPUTS = ['depthChange'];
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBUTFDLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxlQUFlO0lBR3hELFlBQVksVUFBc0IsRUFBRSxHQUFzQjtRQUN0RCxLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBSTNCLHFCQUFnQixHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUVwRixnQkFBVyxHQUF1QixNQUFNLENBQUM7UUFZakQsZ0JBQVcsR0FBc0MsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFFakYsV0FBTSxHQUF3QixNQUFNLENBQUM7UUFnQjdDLGNBQVMsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQWF6RCxjQUFTLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFZekQsd0JBQW1CLEdBQTBDLElBQUksWUFBWSxFQUEyQixDQUFDO1FBWXpHLHVCQUFrQixHQUF5QyxJQUFJLFlBQVksRUFBMEIsQ0FBQztJQXhFdEcsQ0FBQztJQU1ELElBQ1csVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQVcsVUFBVSxDQUFDLENBQXFCO1FBQ3ZDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFRRCxJQUNXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQVcsS0FBSyxDQUFDLENBQXNCO1FBQ25DLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDWixJQUFJLEVBQUUsT0FBTztZQUNiLEtBQUssRUFBRSxDQUFDO1lBQ1IsY0FBYyxFQUFFLEdBQUcsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7WUFDekIsQ0FBQztTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFNRCxJQUNXLEdBQUc7UUFDVixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUNELElBQVcsR0FBRyxDQUFDLENBQU87UUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQU9ELElBQ1csR0FBRztRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBVyxHQUFHLENBQUMsQ0FBTztRQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBTUQsSUFDVyxhQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsSUFBVyxhQUFhLENBQUMsQ0FBMEI7UUFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQU1ELElBQ1csWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQVcsWUFBWSxDQUFDLENBQXlCO1FBQzdDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7O29IQXRGUSx1QkFBdUI7d0hBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVO2lJQVNQLGdCQUFnQjtzQkFEZixNQUFNO2dCQUtJLFVBQVU7c0JBRHBCLEtBQUs7Z0JBV04sV0FBVztzQkFEVixNQUFNO2dCQUtJLEtBQUs7c0JBRGYsS0FBSztnQkFlTixTQUFTO3NCQURSLE1BQU07Z0JBS0ksR0FBRztzQkFEYixLQUFLO2dCQVVOLFNBQVM7c0JBRFIsTUFBTTtnQkFLSSxHQUFHO3NCQURiLEtBQUs7Z0JBU04sbUJBQW1CO3NCQURsQixNQUFNO2dCQUtJLGFBQWE7c0JBRHZCLEtBQUs7Z0JBU04sa0JBQWtCO3NCQURqQixNQUFNO2dCQUtJLFlBQVk7c0JBRHRCLEtBQUs7O0FBV1YsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzNCLE9BQU87SUFDUCxZQUFZO0lBQ1osS0FBSztJQUNMLEtBQUs7SUFDTCxlQUFlO0lBQ2YsY0FBYztDQUNqQixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIElucHV0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBWEJhc2VDb21wb25lbnQgfSBmcm9tIFwiLi4vYmFzZVwiO1xyXG5cclxuZXhwb3J0IHR5cGUgQVhDYWxlbmRhclZpZXdUeXBlID0gJ3llYXJzJyB8ICdtb250aHMnIHwgJ2RheXMnO1xyXG5leHBvcnQgdHlwZSBBWENhbGVuZGFyVmlld0RlcHRoID0gQVhDYWxlbmRhclZpZXdUeXBlO1xyXG5leHBvcnQgdHlwZSBBWENhbGVuZGFyRGlzYWJsZWREYXRlcyA9IERhdGVbXSB8ICgoZGF0ZTogRGF0ZSkgPT4gYm9vbGVhbik7XHJcbmV4cG9ydCB0eXBlIEFYQ2FsZW5kYXJIb2xpZGF5RGF0ZXMgPSBEYXRlW10gfCAoKGRhdGU6IERhdGUpID0+IGJvb2xlYW4pO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQVhDYWxlbmRhckJhc2VDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnQge1xyXG5cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZiwgY2RyKTtcclxuICAgIH1cclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIGFjdGl2ZVZpZXdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxBWENhbGVuZGFyVmlld1R5cGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWENhbGVuZGFyVmlld1R5cGU+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBfYWN0aXZlVmlldzogQVhDYWxlbmRhclZpZXdUeXBlID0gJ2RheXMnO1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBnZXQgYWN0aXZlVmlldygpOiBBWENhbGVuZGFyVmlld1R5cGUge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmVWaWV3O1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBhY3RpdmVWaWV3KHY6IEFYQ2FsZW5kYXJWaWV3VHlwZSkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbih7IG5hbWU6ICdhY3RpdmVWaWV3JywgdmFsdWU6IHYgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIGRlcHRoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QVhDYWxlbmRhclZpZXdEZXB0aD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYQ2FsZW5kYXJWaWV3RGVwdGg+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBfZGVwdGg6IEFYQ2FsZW5kYXJWaWV3RGVwdGggPSAnZGF5cyc7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBkZXB0aCgpOiBBWENhbGVuZGFyVmlld0RlcHRoIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGVwdGg7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IGRlcHRoKHY6IEFYQ2FsZW5kYXJWaWV3RGVwdGgpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAnZGVwdGgnLCBcclxuICAgICAgICAgICAgdmFsdWU6IHYsIFxyXG4gICAgICAgICAgICBiZWZvcmVDYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWN0aXZlVmlldyA9IHY7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIG1pbkNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG5cclxuICAgIHByaXZhdGUgX21pbjogRGF0ZTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZ2V0IG1pbigpOiBEYXRlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWluO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBtaW4odjogRGF0ZSkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbih7IG5hbWU6ICdtaW4nLCB2YWx1ZTogdiB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBtYXhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuXHJcbiAgICBwcml2YXRlIF9tYXg6IERhdGU7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBtYXgoKTogRGF0ZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heDtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgbWF4KHY6IERhdGUpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oeyBuYW1lOiAnbWF4JywgdmFsdWU6IHYgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBkaXNhYmxlZERhdGVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QVhDYWxlbmRhckRpc2FibGVkRGF0ZXM+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWENhbGVuZGFyRGlzYWJsZWREYXRlcz4oKTtcclxuXHJcbiAgICBwcml2YXRlIF9kaXNhYmxlZERhdGVzOiBBWENhbGVuZGFyRGlzYWJsZWREYXRlcztcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkRGF0ZXMoKTogQVhDYWxlbmRhckRpc2FibGVkRGF0ZXMge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZERhdGVzO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBkaXNhYmxlZERhdGVzKHY6IEFYQ2FsZW5kYXJEaXNhYmxlZERhdGVzKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKHsgbmFtZTogJ2Rpc2FibGVkRGF0ZXMnLCB2YWx1ZTogdiB9KTtcclxuICAgIH1cclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIGhvbGlkYXlEYXRlc0NoYW5nZTogRXZlbnRFbWl0dGVyPEFYQ2FsZW5kYXJIb2xpZGF5RGF0ZXM+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWENhbGVuZGFySG9saWRheURhdGVzPigpO1xyXG5cclxuICAgIHByaXZhdGUgX2hvbGlkYXlEYXRlczogQVhDYWxlbmRhckhvbGlkYXlEYXRlcztcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZ2V0IGhvbGlkYXlEYXRlcygpOiBBWENhbGVuZGFySG9saWRheURhdGVzIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faG9saWRheURhdGVzO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBob2xpZGF5RGF0ZXModjogQVhDYWxlbmRhckhvbGlkYXlEYXRlcykge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbih7IG5hbWU6ICdob2xpZGF5RGF0ZXMnLCB2YWx1ZTogdiB9KTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgY29uc3QgQ0FMRU5EQVJfSU5QVVRTID0gW1xyXG4gICAgJ2RlcHRoJyxcclxuICAgICdhY3RpdmVWaWV3JyxcclxuICAgICdtaW4nLFxyXG4gICAgJ21heCcsXHJcbiAgICAnZGlzYWJsZWREYXRlcycsXHJcbiAgICAnaG9saWRheURhdGVzJyxcclxuXTtcclxuZXhwb3J0IGNvbnN0IENBTEVOREFSX09VVFBVVFMgPSBbJ2RlcHRoQ2hhbmdlJ107XHJcbiJdfQ==
@@ -1,13 +1,15 @@
1
1
  import { AXDateTime, AXDateTimeRange } from '@acorex/core';
2
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, EventEmitter, HostBinding, } from '@angular/core';
3
- import { AXCalendarComponentMixin } from '../base';
4
- import { INTERACTIVE_INPUTS, INTERACTIVE_OUTPUT } from '../base/mixin/interactive-mixin.class';
5
- import { VALUE_INPUTS, VALUE_OUTPUT } from '../base/mixin/value-mixin.class';
2
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, } from '@angular/core';
3
+ import { _ClickableComponenetMixin } from '../base/mixin/clickable-mixin.class';
4
+ import { INTERACTIVE_INPUTS, INTERACTIVE_OUTPUT, _InteractiveComponenetMixin } from '../base/mixin/interactive-mixin.class';
5
+ import { VALUE_INPUTS, VALUE_OUTPUT, _ValueComponenetMixin } from '../base/mixin/value-mixin.class';
6
+ import { AXCalendarBaseComponent, CALENDAR_INPUTS, CALENDAR_OUTPUTS } from './calendar.class';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "../button/button.component";
8
9
  import * as i2 from "../decorators/prefix.component";
9
10
  import * as i3 from "../icon/icon.component";
10
11
  import * as i4 from "@angular/common";
12
+ export const AXCalendarComponentMixin = _ClickableComponenetMixin(_InteractiveComponenetMixin(_ValueComponenetMixin(AXCalendarBaseComponent)));
11
13
  export class AXCalendarComponent extends AXCalendarComponentMixin {
12
14
  constructor(elementRef, cdr) {
13
15
  super(elementRef, cdr);
@@ -16,9 +18,6 @@ export class AXCalendarComponent extends AXCalendarComponentMixin {
16
18
  this._navText = '';
17
19
  this._todayText = '';
18
20
  this._slots = [];
19
- this._activeView = 'days';
20
- this.depthChange = new EventEmitter();
21
- this._depth = 'days';
22
21
  }
23
22
  get _viewRange() {
24
23
  const current = this._viewStartDate || this._today;
@@ -36,46 +35,6 @@ export class AXCalendarComponent extends AXCalendarComponentMixin {
36
35
  return new AXDateTimeRange(current.startOf('month'), current.endOf('month'));
37
36
  }
38
37
  }
39
- get activeView() {
40
- return this._activeView;
41
- }
42
- set activeView(v) {
43
- this._activeView = v;
44
- this._genearteSlots();
45
- }
46
- get depth() {
47
- return this._depth;
48
- }
49
- set depth(v) {
50
- this._depth = v;
51
- this._activeView = v;
52
- this.depthChange.emit(v);
53
- this._genearteSlots();
54
- }
55
- get min() {
56
- return this._min;
57
- }
58
- set min(v) {
59
- this._min = v;
60
- }
61
- get max() {
62
- return this._max;
63
- }
64
- set max(v) {
65
- this._max = v;
66
- }
67
- get disabledDates() {
68
- return this._disabledDates;
69
- }
70
- set disabledDates(v) {
71
- this._disabledDates = v;
72
- }
73
- get holidayDates() {
74
- return this._holidayDates;
75
- }
76
- set holidayDates(v) {
77
- this._holidayDates = v;
78
- }
79
38
  onInit() {
80
39
  this.goToday();
81
40
  }
@@ -196,6 +155,11 @@ export class AXCalendarComponent extends AXCalendarComponentMixin {
196
155
  else if (this.activeView == 'months')
197
156
  this.activeView = 'years';
198
157
  }
158
+ _onOptionChanged(option) {
159
+ if (option.name == 'depth' || option.name == 'activeView') {
160
+ this._genearteSlots();
161
+ }
162
+ }
199
163
  _onValueChanged(oldValue, newValue) {
200
164
  this._genearteSlots();
201
165
  }
@@ -233,7 +197,7 @@ export class AXCalendarComponent extends AXCalendarComponentMixin {
233
197
  }
234
198
  isDisabled(date) {
235
199
  if (Array.isArray(this.disabledDates) && this.disabledDates.length != 0) {
236
- debugger;
200
+ ;
237
201
  return this.disabledDates.some(d => date.equal(d, 'day'));
238
202
  }
239
203
  else if (typeof this.disabledDates == 'function') {
@@ -255,33 +219,19 @@ export class AXCalendarComponent extends AXCalendarComponentMixin {
255
219
  }
256
220
  }
257
221
  AXCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXCalendarComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
258
- AXCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: AXCalendarComponent, selector: "ax-calendar", inputs: { readonly: "readonly", allowNull: "allowNull", value: "value", debounceTime: "debounceTime", name: "name", disabled: "disabled", tabIndex: "tabIndex", activeView: "activeView", depth: "depth", min: "min", max: "max", disabledDates: "disabledDates", holidayDates: "holidayDates" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", depthChange: "depthChange" }, host: { properties: { "class": "this.__hostClass" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ax-calendar-header\">\r\n <ax-button class=\"ax-nav-button\" [text]=\"_navText\" color=\"light\" look=\"blank\" (onClick)=\"_handleNavClick($event)\" [disabled]=\"disabled\">\r\n </ax-button>\r\n <ax-button class=\"ax-prev-button\" color=\"light\" look=\"blank\" (onClick)=\"_handlePrevClick($event)\" [disabled]=\"disabled\">\r\n <ax-prefix>\r\n <ax-icon icon=\"ax-ic ax-ic-chevron ax-transform ax-rotate-90\"></ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n <ax-button class=\"ax-next-button\" color=\"light\" look=\"blank\" (onClick)=\"_handleNextClick($event)\" [disabled]=\"disabled\">\r\n <ax-prefix>\r\n <ax-icon icon=\"ax-ic ax-ic-chevron ax-transform ax--rotate-90\"></ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n</div>\r\n<div class=\"ax-calendar-body\">\r\n <div [ngSwitch]=\"activeView\">\r\n <ng-container *ngSwitchCase=\"'years'\">\r\n <div class=\"ax-calendar-slots ax-calendar-slots-year\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [ngClass]=\"slot.cssClass\" \r\n (click)=\"_handleSlotClick(slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'months'\">\r\n <div class=\"ax-calendar-slots ax-calendar-slots-month\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [title]=\"slot.tooltip\" [ngClass]=\"slot.cssClass\" \r\n (click)=\"_handleSlotClick(slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <div class=\"ax-calendar-week\">\r\n <div>SU</div>\r\n <div>MO</div>\r\n <div>TU</div>\r\n <div>WE</div>\r\n <div>TH</div>\r\n <div>FR</div>\r\n <div>SA</div>\r\n </div>\r\n <div class=\"ax-calendar-slots ax-calendar-slots-day\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [title]=\"slot.tooltip\" [ngClass]=\"slot.cssClass\"\r\n (click)=\"_handleSlotClick(slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n</div>\r\n<div class=\"ax-calendar-footer\">\r\n <ax-button [text]=\"_todayText\" color=\"dark\" look=\"blank\" size=\"sm\" (onClick)=\"_handleGoToday()\" [disabled]=\"disabled\"></ax-button>\r\n</div>", components: [{ type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "size", "text", "submitBehavior", "cancelBehavior", "color", "look", "toggleable", "selected"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange"] }, { type: i2.AXDecoratorPrefixComponent, selector: "ax-prefix" }, { type: i3.AXIconComponent, selector: "ax-icon", inputs: ["icon"] }], directives: [{ type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
222
+ AXCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: AXCalendarComponent, selector: "ax-calendar", inputs: { readonly: "readonly", allowNull: "allowNull", value: "value", debounceTime: "debounceTime", name: "name", disabled: "disabled", tabIndex: "tabIndex", depth: "depth", activeView: "activeView", min: "min", max: "max", disabledDates: "disabledDates", holidayDates: "holidayDates" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", depthChange: "depthChange" }, host: { properties: { "class": "this.__hostClass" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ax-calendar-header\">\r\n <ax-button class=\"ax-nav-button\" [text]=\"_navText\" color=\"light\" look=\"blank\" (onClick)=\"_handleNavClick($event)\" [disabled]=\"disabled\">\r\n </ax-button>\r\n <ax-button class=\"ax-prev-button\" color=\"light\" look=\"blank\" (onClick)=\"_handlePrevClick($event)\" [disabled]=\"disabled\">\r\n <ax-prefix>\r\n <ax-icon icon=\"ax-ic ax-ic-chevron ax-transform ax-rotate-90\"></ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n <ax-button class=\"ax-next-button\" color=\"light\" look=\"blank\" (onClick)=\"_handleNextClick($event)\" [disabled]=\"disabled\">\r\n <ax-prefix>\r\n <ax-icon icon=\"ax-ic ax-ic-chevron ax-transform ax--rotate-90\"></ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n</div>\r\n<div class=\"ax-calendar-body\">\r\n <div [ngSwitch]=\"activeView\">\r\n <ng-container *ngSwitchCase=\"'years'\">\r\n <div class=\"ax-calendar-slots ax-calendar-slots-year\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [ngClass]=\"slot.cssClass\" \r\n (click)=\"_handleSlotClick(slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'months'\">\r\n <div class=\"ax-calendar-slots ax-calendar-slots-month\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [title]=\"slot.tooltip\" [ngClass]=\"slot.cssClass\" \r\n (click)=\"_handleSlotClick(slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <div class=\"ax-calendar-week\">\r\n <div>SU</div>\r\n <div>MO</div>\r\n <div>TU</div>\r\n <div>WE</div>\r\n <div>TH</div>\r\n <div>FR</div>\r\n <div>SA</div>\r\n </div>\r\n <div class=\"ax-calendar-slots ax-calendar-slots-day\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [title]=\"slot.tooltip\" [ngClass]=\"slot.cssClass\"\r\n (click)=\"_handleSlotClick(slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n</div>\r\n<div class=\"ax-calendar-footer\">\r\n <ax-button class=\"dark:ax-text-danger\" [text]=\"_todayText\" color=\"dark\" look=\"blank\" size=\"sm\" (onClick)=\"_handleGoToday()\" [disabled]=\"disabled\"></ax-button>\r\n</div>", components: [{ type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "size", "text", "submitBehavior", "cancelBehavior", "color", "look", "toggleable", "selected"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange"] }, { type: i2.AXDecoratorPrefixComponent, selector: "ax-prefix" }, { type: i3.AXIconComponent, selector: "ax-icon", inputs: ["icon"] }], directives: [{ type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
259
223
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXCalendarComponent, decorators: [{
260
224
  type: Component,
261
225
  args: [{
262
226
  selector: 'ax-calendar',
263
227
  templateUrl: './calendar.component.html',
264
228
  changeDetection: ChangeDetectionStrategy.OnPush,
265
- inputs: [...VALUE_INPUTS, ...INTERACTIVE_INPUTS],
266
- outputs: [...VALUE_OUTPUT, ...INTERACTIVE_OUTPUT],
229
+ inputs: [...VALUE_INPUTS, ...INTERACTIVE_INPUTS, ...CALENDAR_INPUTS],
230
+ outputs: [...VALUE_OUTPUT, ...INTERACTIVE_OUTPUT, ...CALENDAR_OUTPUTS],
267
231
  encapsulation: ViewEncapsulation.None,
268
232
  }]
269
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { activeView: [{
270
- type: Input
271
- }], depthChange: [{
272
- type: Output
273
- }], depth: [{
274
- type: Input
275
- }], min: [{
276
- type: Input
277
- }], max: [{
278
- type: Input
279
- }], disabledDates: [{
280
- type: Input
281
- }], holidayDates: [{
282
- type: Input
283
- }], __hostClass: [{
233
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { __hostClass: [{
284
234
  type: HostBinding,
285
235
  args: ['class']
286
236
  }] } });
287
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNELE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUd2QixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHdCQUF3QixFQUFnQixNQUFNLFNBQVMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRixPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7QUFnQjdFLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSx3QkFBd0I7SUEyRy9ELFlBQVksVUFBc0IsRUFBVSxHQUFzQjtRQUNoRSxLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRG1CLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbEZsRSxXQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBR3BDLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUV4QixXQUFNLEdBQVUsRUFBRSxDQUFBO1FBSVYsZ0JBQVcsR0FBdUIsTUFBTSxDQUFDO1FBYWpELGdCQUFXLEdBQXNDLElB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LHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE1BQU0sRUFBRSxDQUFDLEdBQUcsWUFBWSxFQUFFLEdBQUcsa0JBQWtCLENBQUM7b0JBQ2hELE9BQU8sRUFBRSxDQUFDLEdBQUcsWUFBWSxFQUFFLEdBQUcsa0JBQWtCLENBQUM7b0JBQ2pELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0QztpSUFzQ1ksVUFBVTtzQkFEcEIsS0FBSztnQkFZTixXQUFXO3NCQURWLE1BQU07Z0JBS0ksS0FBSztzQkFEZixLQUFLO2dCQWdCSyxHQUFHO3NCQURiLEtBQUs7Z0JBV0ssR0FBRztzQkFEYixLQUFLO2dCQVlLLGFBQWE7c0JBRHZCLEtBQUs7Z0JBV0ssWUFBWTtzQkFEdEIsS0FBSztnQkFxTE0sV0FBVztzQkFEdEIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEYXRlVGltZSwgQVhEYXRlVGltZVJhbmdlIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWENhbGVuZGFyQ29tcG9uZW50TWl4aW4sIEFYQ2xpY2tFdmVudCB9IGZyb20gJy4uL2Jhc2UnO1xyXG5pbXBvcnQgeyBJTlRFUkFDVElWRV9JTlBVVFMsIElOVEVSQUNUSVZFX09VVFBVVCB9IGZyb20gJy4uL2Jhc2UvbWl4aW4vaW50ZXJhY3RpdmUtbWl4aW4uY2xhc3MnO1xyXG5pbXBvcnQgeyBWQUxVRV9JTlBVVFMsIFZBTFVFX09VVFBVVCB9IGZyb20gJy4uL2Jhc2UvbWl4aW4vdmFsdWUtbWl4aW4uY2xhc3MnO1xyXG5cclxuXHJcbmV4cG9ydCB0eXBlIEFYQ2FsZW5kYXJWaWV3VHlwZSA9ICd5ZWFycycgfCAnbW9udGhzJyB8ICdkYXlzJztcclxuZXhwb3J0IHR5cGUgQVhDYWxlbmRhclZpZXdEZXB0aCA9IEFYQ2FsZW5kYXJWaWV3VHlwZTtcclxuZXhwb3J0IHR5cGUgQVhDYWxlbmRhckRpc2FibGVkRGF0ZXMgPSBEYXRlW10gfCAoKGRhdGU6IERhdGUpID0+IGJvb2xlYW4pO1xyXG5leHBvcnQgdHlwZSBBWENhbGVuZGFySG9saWRheURhdGVzID0gRGF0ZVtdIHwgKChkYXRlOiBEYXRlKSA9PiBib29sZWFuKTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXgtY2FsZW5kYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgaW5wdXRzOiBbLi4uVkFMVUVfSU5QVVRTLCAuLi5JTlRFUkFDVElWRV9JTlBVVFNdLFxyXG4gIG91dHB1dHM6IFsuLi5WQUxVRV9PVVRQVVQsIC4uLklOVEVSQUNUSVZFX09VVFBVVF0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYQ2FsZW5kYXJDb21wb25lbnQgZXh0ZW5kcyBBWENhbGVuZGFyQ29tcG9uZW50TWl4aW4ge1xyXG5cclxuXHJcbiAgcHJpdmF0ZSBnZXQgX3ZpZXdSYW5nZSgpOiBBWERhdGVUaW1lUmFuZ2Uge1xyXG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuX3ZpZXdTdGFydERhdGUgfHwgdGhpcy5fdG9kYXk7XHJcbiAgICBzd2l0Y2ggKHRoaXMuYWN0aXZlVmlldykge1xyXG4gICAgICBjYXNlICd5ZWFycyc6XHJcbiAgICAgICAgbGV0IHkgPSBjdXJyZW50LnN0YXJ0T2YoJ3llYXInKS55ZWFyO1xyXG4gICAgICAgIGxldCBtaW4gPSB5IC0gKHkgJSAxMCkgLSAxO1xyXG4gICAgICAgIGxldCBtYXggPSBtaW4gKyAxMTtcclxuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWVSYW5nZShcclxuICAgICAgICAgIEFYRGF0ZVRpbWUuY29udmVydChuZXcgRGF0ZShtaW4sIDApLCB0aGlzLl90b2RheS5jYWxlbmRhci5uYW1lKCkpLFxyXG4gICAgICAgICAgQVhEYXRlVGltZS5jb252ZXJ0KG5ldyBEYXRlKG1heCwgMCksIHRoaXMuX3RvZGF5LmNhbGVuZGFyLm5hbWUoKSlcclxuICAgICAgICApO1xyXG4gICAgICBjYXNlICdtb250aHMnOlxyXG4gICAgICAgIC8vVE9ETzogY2hlY2sgYWRkIG1vbnRoIGZ1bmN0aW9uXHJcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lUmFuZ2UoY3VycmVudC5zdGFydE9mKCd5ZWFyJyksIGN1cnJlbnQuZW5kT2YoJ3llYXInKS5hZGQoJ2RheScsIC0xKSk7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgLy9yZXR1cm4gbmV3IEFYRGF0ZVRpbWVSYW5nZShjdXJyZW50LnN0YXJ0T2YoJ21vbnRoJykuc3RhcnRPZignd2VlaycpLCBjdXJyZW50LmVuZE9mKCdtb250aCcpLmVuZE9mKCd3ZWVrJykpO1xyXG4gICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZVJhbmdlKGN1cnJlbnQuc3RhcnRPZignbW9udGgnKSwgY3VycmVudC5lbmRPZignbW9udGgnKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIF90b2RheSA9IG5ldyBBWERhdGVUaW1lKG5ldyBEYXRlKCkpO1xyXG4gIHByaXZhdGUgX3ZpZXdTdGFydERhdGU6IEFYRGF0ZVRpbWU7XHJcblxyXG4gIF9uYXZUZXh0OiBzdHJpbmcgPSAnJztcclxuICBfdG9kYXlUZXh0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgX3Nsb3RzOiBhbnlbXSA9IFtdXHJcblxyXG5cclxuXHJcbiAgcHJpdmF0ZSBfYWN0aXZlVmlldzogQVhDYWxlbmRhclZpZXdUeXBlID0gJ2RheXMnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBhY3RpdmVWaWV3KCk6IEFYQ2FsZW5kYXJWaWV3VHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlVmlldztcclxuICB9XHJcbiAgcHVibGljIHNldCBhY3RpdmVWaWV3KHY6IEFYQ2FsZW5kYXJWaWV3VHlwZSkge1xyXG4gICAgdGhpcy5fYWN0aXZlVmlldyA9IHY7XHJcbiAgICB0aGlzLl9nZW5lYXJ0ZVNsb3RzKCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGRlcHRoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QVhDYWxlbmRhclZpZXdEZXB0aD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYQ2FsZW5kYXJWaWV3RGVwdGg+KCk7XHJcblxyXG4gIHByaXZhdGUgX2RlcHRoOiBBWENhbGVuZGFyVmlld0RlcHRoID0gJ2RheXMnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBkZXB0aCgpOiBBWENhbGVuZGFyVmlld0RlcHRoIHtcclxuICAgIHJldHVybiB0aGlzLl9kZXB0aDtcclxuICB9XHJcbiAgcHVibGljIHNldCBkZXB0aCh2OiBBWENhbGVuZGFyVmlld0RlcHRoKSB7XHJcbiAgICB0aGlzLl9kZXB0aCA9IHY7XHJcbiAgICB0aGlzLl9hY3RpdmVWaWV3ID0gdjtcclxuICAgIHRoaXMuZGVwdGhDaGFuZ2UuZW1pdCh2KTtcclxuXHJcbiAgICB0aGlzLl9nZW5lYXJ0ZVNsb3RzKCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHByaXZhdGUgX21pbjogRGF0ZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgbWluKCk6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX21pbjtcclxuICB9XHJcbiAgcHVibGljIHNldCBtaW4odjogRGF0ZSkge1xyXG4gICAgdGhpcy5fbWluID0gdjtcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIF9tYXg6IERhdGU7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IG1heCgpOiBEYXRlIHtcclxuICAgIHJldHVybiB0aGlzLl9tYXg7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgbWF4KHY6IERhdGUpIHtcclxuICAgIHRoaXMuX21heCA9IHY7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHByaXZhdGUgX2Rpc2FibGVkRGF0ZXM6IEFYQ2FsZW5kYXJEaXNhYmxlZERhdGVzO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBkaXNhYmxlZERhdGVzKCk6IEFYQ2FsZW5kYXJEaXNhYmxlZERhdGVzIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZERhdGVzO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGRpc2FibGVkRGF0ZXModjogQVhDYWxlbmRhckRpc2FibGVkRGF0ZXMpIHtcclxuICAgIHRoaXMuX2Rpc2FibGVkRGF0ZXMgPSB2O1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgX2hvbGlkYXlEYXRlczogQVhDYWxlbmRhckhvbGlkYXlEYXRlcztcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgaG9saWRheURhdGVzKCk6IEFYQ2FsZW5kYXJIb2xpZGF5RGF0ZXMge1xyXG4gICAgcmV0dXJuIHRoaXMuX2hvbGlkYXlEYXRlcztcclxuICB9XHJcbiAgcHVibGljIHNldCBob2xpZGF5RGF0ZXModjogQVhDYWxlbmRhckhvbGlkYXlEYXRlcykge1xyXG4gICAgdGhpcy5faG9saWRheURhdGVzID0gdjtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xyXG5cclxuICB9XHJcblxyXG4gIG9uSW5pdCgpIHtcclxuICAgIHRoaXMuZ29Ub2RheSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2VuZWFydGVTbG90cygpIHtcclxuICAgIGlmICghdGhpcy5fdmlld1N0YXJ0RGF0ZSlcclxuICAgICAgcmV0dXJuO1xyXG4gICAgY29uc3QgdnIgPSB0aGlzLl92aWV3UmFuZ2U7XHJcbiAgICAvLyB5ZWFyIHZpZXdcclxuICAgIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ3llYXJzJykge1xyXG4gICAgICBjb25zdCBhID0gdnIuZW51bXVyYXRlKCd5ZWFyJyk7XHJcbiAgICAgIHRoaXMuX3Nsb3RzID0gYS5tYXAoKGQsIGkpID0+IHtcclxuICAgICAgICBjb25zdCByOiBhbnkgPSB7fTtcclxuICAgICAgICByLmRhdGUgPSBkLmRhdGU7XHJcbiAgICAgICAgci50ZXh0ID0gZC5mb3JtYXQoJ1lZWVknKTtcclxuICAgICAgICByLmRpc2FibGVkID0gKHRoaXMubWluICYmIGQuY29tcGFyZSh0aGlzLm1pbiwgJ3llYXInKSA9PSAtMSkgfHwgKHRoaXMubWF4ICYmIGQuY29tcGFyZSh0aGlzLm1heCwgJ3llYXInKSA9PSAxKTtcclxuICAgICAgICBpZiAoci5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgci5jc3NDbGFzcyA9IHtcclxuICAgICAgICAgICAgJ2F4LXN0YXRlLWRpc2FibGVkJzogci5kaXNhYmxlZCxcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICByLmNzc0NsYXNzID0ge1xyXG4gICAgICAgICAgICAnYXgtc3RhdGUtdG9kYXknOiBkLmVxdWFsKHRoaXMuX3RvZGF5LCAneWVhcicpLFxyXG4gICAgICAgICAgICAnYXgtc3RhdGUtc2VsZWN0ZWQnOiB0aGlzLnZhbHVlICYmIHRoaXMuZGVwdGggPT0gJ3llYXJzJyAmJiBkLmVxdWFsKHRoaXMudmFsdWUsICd5ZWFyJyksXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5fbmF2VGV4dCA9IGAke3ZyLnN0YXJ0VGltZS55ZWFyfSAtICR7dnIuZW5kVGltZS55ZWFyfWA7XHJcbiAgICAgIHRoaXMuX3RvZGF5VGV4dCA9IHRoaXMuX3RvZGF5LmZvcm1hdCgnWVlZWScpO1xyXG4gICAgfVxyXG4gICAgLy8gbW9udGggdmlld1xyXG4gICAgZWxzZSBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICdtb250aHMnKSB7XHJcbiAgICAgIGNvbnN0IGEgPSB2ci5lbnVtdXJhdGUoJ21vbnRoJyk7XHJcbiAgICAgIHRoaXMuX3Nsb3RzID0gYS5tYXAoKGQsIGkpID0+IHtcclxuICAgICAgICBjb25zdCByOiBhbnkgPSB7fTtcclxuICAgICAgICByLmRhdGUgPSBkLmRhdGU7XHJcbiAgICAgICAgci50ZXh0ID0gZC5mb3JtYXQoJ01NTScpO1xyXG4gICAgICAgIHIudG9vbHRpcCA9IGQuZm9ybWF0KCdNTU1NIFlZWVknKTtcclxuICAgICAgICByLmRpc2FibGVkID0gKHRoaXMubWluICYmIGQuY29tcGFyZSh0aGlzLm1pbiwgJ21vbnRoJykgPT0gLTEpIHx8ICh0aGlzLm1heCAmJiBkLmNvbXBhcmUodGhpcy5tYXgsICdtb250aCcpID09IDEpO1xyXG4gICAgICAgIGlmIChyLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICByLmNzc0NsYXNzID0ge1xyXG4gICAgICAgICAgICAnYXgtc3RhdGUtZGlzYWJsZWQnOiByLmRpc2FibGVkLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHIuY3NzQ2xhc3MgPSB7XHJcbiAgICAgICAgICAgICdheC1zdGF0ZS10b2RheSc6IGQuZXF1YWwodGhpcy5fdG9kYXksICdtb250aCcpLFxyXG4gICAgICAgICAgICAnYXgtc3RhdGUtc2VsZWN0ZWQnOiB0aGlzLnZhbHVlICYmIHRoaXMuZGVwdGggPT0gJ21vbnRocycgJiYgZC5lcXVhbCh0aGlzLnZhbHVlLCAnbW9udGgnKSxcclxuICAgICAgICAgICAgJ2F4LXN0YXRlLW90aGVyJzogZC55ZWFyICE9IHRoaXMuX3ZpZXdTdGFydERhdGUueWVhclxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcjtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuX25hdlRleHQgPSB0aGlzLl92aWV3U3RhcnREYXRlLmZvcm1hdCgnWVlZWScpO1xyXG4gICAgICB0aGlzLl90b2RheVRleHQgPSB0aGlzLl90b2RheS5mb3JtYXQoJ01NTU0gWVlZWScpO1xyXG4gICAgfVxyXG4gICAgLy8gZGF5IHZpZXdcclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCBhID0gdnIuZW51bXVyYXRlKCdkYXknKTtcclxuICAgICAgdGhpcy5fc2xvdHMgPSBhLm1hcCgoZCwgaSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHI6IGFueSA9IHt9O1xyXG4gICAgICAgIHIuZGF0ZSA9IGQuZGF0ZTtcclxuICAgICAgICByLnRleHQgPSBkLmRheU9mTW9udGg7XHJcbiAgICAgICAgci50b29sdGlwID0gZC5mb3JtYXQoKTtcclxuICAgICAgICByLmRpc2FibGVkID0gKHRoaXMubWluICYmIGQuY29tcGFyZSh0aGlzLm1pbiwgJ2RheScpID09IC0xKSB8fCAodGhpcy5tYXggJiYgZC5jb21wYXJlKHRoaXMubWF4LCAnZGF5JykgPT0gMSk7XHJcbiAgICAgICAgaWYgKHIuZGlzYWJsZWQgfHwgdGhpcy5pc0Rpc2FibGVkKGQpKSB7XHJcbiAgICAgICAgICByLmNzc0NsYXNzID0ge1xyXG4gICAgICAgICAgICAnYXgtc3RhdGUtZGlzYWJsZWQnOiB0cnVlLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHIuY3NzQ2xhc3MgPSB7XHJcbiAgICAgICAgICAgICdheC1zdGF0ZS10b2RheSc6IGQuZXF1YWwodGhpcy5fdG9kYXksICdkYXknKSxcclxuICAgICAgICAgICAgJ2F4LXN0YXRlLXNlbGVjdGVkJzogdGhpcy52YWx1ZSAmJiBkLmVxdWFsKHRoaXMudmFsdWUsICdkYXknKSxcclxuICAgICAgICAgICAgJ2F4LXN0YXRlLWhvbGlkYXknOiB0aGlzLmlzSG9saWRheShkKSB8fCB0aGlzLmlzV2Vla2VuZChkKSxcclxuICAgICAgICAgICAgLy8gJ2F4LXN0YXRlLWV2ZW50LWluZm8nOiBkLmRheU9mTW9udGggPT0gMTIsXHJcbiAgICAgICAgICAgIC8vICdheC1zdGF0ZS1ldmVudCc6IGQuZGF5T2ZNb250aCA9PSAxMixcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgci5jc3NDbGFzc1tgYXgtY29sLXN0YXJ0LSR7dnIuc3RhcnRUaW1lLmRheU9mV2Vla31gXSA9IGkgPT0gMFxyXG4gICAgICAgIHJldHVybiByO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5fbmF2VGV4dCA9IHRoaXMuX3ZpZXdTdGFydERhdGUuZm9ybWF0KCdNTU1NIFlZWVknKTtcclxuICAgICAgdGhpcy5fdG9kYXlUZXh0ID0gdGhpcy5fdG9kYXkuZm9ybWF0KCdERERELCBNTU1NIGRkLCBZWVlZJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgX2hhbmRsZVByZXZDbGljayhlOiBBWENsaWNrRXZlbnQpIHtcclxuICAgIHRoaXMucHJldigpO1xyXG4gIH1cclxuXHJcbiAgX2hhbmRsZU5leHRDbGljayhlOiBBWENsaWNrRXZlbnQpIHtcclxuICAgIHRoaXMubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgX2hhbmRsZVNsb3RDbGljayhzbG90KSB7XHJcbiAgICBpZiAoc2xvdC5kaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkKVxyXG4gICAgICByZXR1cm47XHJcbiAgICBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICdkYXlzJykge1xyXG4gICAgICB0aGlzLnZhbHVlID0gc2xvdC5kYXRlO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICdtb250aHMnICYmIHRoaXMuZGVwdGggPT0gJ2RheXMnKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlVmlldyA9ICdkYXlzJztcclxuICAgICAgdGhpcy5uYXZUbyhzbG90LmRhdGUpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICdtb250aHMnICYmIHRoaXMuZGVwdGggPT0gJ21vbnRocycpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHNsb3QuZGF0ZTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuYWN0aXZlVmlldyA9PSAneWVhcnMnICYmICh0aGlzLmRlcHRoID09ICdkYXlzJyB8fCB0aGlzLmRlcHRoID09ICdtb250aHMnKSkge1xyXG4gICAgICB0aGlzLmFjdGl2ZVZpZXcgPSAnbW9udGhzJztcclxuICAgICAgdGhpcy5uYXZUbyhzbG90LmRhdGUpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICd5ZWFycycgJiYgdGhpcy5kZXB0aCA9PSAneWVhcnMnKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBzbG90LmRhdGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBfaGFuZGxlTmF2Q2xpY2soZTogQVhDbGlja0V2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICdkYXlzJylcclxuICAgICAgdGhpcy5hY3RpdmVWaWV3ID0gJ21vbnRocyc7XHJcbiAgICBlbHNlIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ21vbnRocycpXHJcbiAgICAgIHRoaXMuYWN0aXZlVmlldyA9ICd5ZWFycyc7XHJcbiAgfVxyXG5cclxuICBfb25WYWx1ZUNoYW5nZWQob2xkVmFsdWUsIG5ld1ZhbHVlKSB7XHJcbiAgICB0aGlzLl9nZW5lYXJ0ZVNsb3RzKCk7XHJcbiAgfVxyXG5cclxuICBfaGFuZGxlR29Ub2RheSgpIHtcclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLl90b2RheS5kYXRlO1xyXG4gICAgdGhpcy5nb1RvZGF5KCk7XHJcbiAgfVxyXG5cclxuICBuZXh0KCkge1xyXG4gICAgdGhpcy5fbmF2TmV4dFByZXYoZmFsc2UpXHJcbiAgfVxyXG5cclxuICBwcmV2KCkge1xyXG4gICAgdGhpcy5fbmF2TmV4dFByZXYodHJ1ZSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX25hdk5leHRQcmV2KHByZXY6IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IHNpZ24gPSAocHJldiA/IC0xIDogMSk7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICdkYXlzJylcclxuICAgICAgdGhpcy5uYXZUbyh0aGlzLl92aWV3U3RhcnREYXRlLmFkZCgnbW9udGgnLCBzaWduICogMSkpO1xyXG4gICAgZWxzZSBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICdtb250aHMnKVxyXG4gICAgICB0aGlzLm5hdlRvKHRoaXMuX3ZpZXdTdGFydERhdGUuYWRkKCd5ZWFyJywgc2lnbiAqIDEpKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5uYXZUbyh0aGlzLl92aWV3U3RhcnREYXRlLmFkZCgneWVhcicsIHNpZ24gKiAxMikpO1xyXG4gIH1cclxuXHJcbiAgZ29Ub2RheSgpIHtcclxuICAgIHRoaXMubmF2VG8odGhpcy5fdG9kYXkuc3RhcnRPZigpKTtcclxuICB9XHJcblxyXG5cclxuICBuYXZUbyhkYXRlOiBEYXRlIHwgQVhEYXRlVGltZSkge1xyXG4gICAgdGhpcy5fdmlld1N0YXJ0RGF0ZSA9IEFYRGF0ZVRpbWUuY29udmVydChkYXRlLCB0aGlzLl90b2RheS5jYWxlbmRhci5uYW1lKCkpO1xyXG4gICAgdGhpcy5fZ2VuZWFydGVTbG90cygpO1xyXG4gIH1cclxuXHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxyXG4gIHByaXZhdGUgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBfY2xhc3NlcyA9IHtcclxuICAgICAgJ2F4LXN0YXRlLWRpc2FibGVkJzogdGhpcy5kaXNhYmxlZFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKF9jbGFzc2VzKS5maWx0ZXIoYyA9PiBjWzFdKS5tYXAoYyA9PiBjWzBdKS5qb2luKCcgJyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBpc0Rpc2FibGVkKGRhdGU6IEFYRGF0ZVRpbWUpOiBib29sZWFuIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZGlzYWJsZWREYXRlcykgJiYgdGhpcy5kaXNhYmxlZERhdGVzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgIGRlYnVnZ2VyO1xyXG4gICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZERhdGVzLnNvbWUoZCA9PiBkYXRlLmVxdWFsKGQsICdkYXknKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0eXBlb2YgdGhpcy5kaXNhYmxlZERhdGVzID09ICdmdW5jdGlvbicpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWREYXRlcyhkYXRlLmRhdGUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0hvbGlkYXkoZGF0ZTogQVhEYXRlVGltZSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5ob2xpZGF5RGF0ZXMpICYmIHRoaXMuaG9saWRheURhdGVzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmhvbGlkYXlEYXRlcy5zb21lKGQgPT4gZGF0ZS5lcXVhbChkLCAnZGF5JykpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodHlwZW9mIHRoaXMuaG9saWRheURhdGVzID09ICdmdW5jdGlvbicpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaG9saWRheURhdGVzKGRhdGUuZGF0ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzV2Vla2VuZChkYXRlOiBBWERhdGVUaW1lKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZGF0ZS5kYXlPZldlZWsgPT0gNyB8fCBkYXRlLmRheU9mV2VlayA9PSAxO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItaGVhZGVyXCI+XHJcbiAgICA8YXgtYnV0dG9uIGNsYXNzPVwiYXgtbmF2LWJ1dHRvblwiIFt0ZXh0XT1cIl9uYXZUZXh0XCIgY29sb3I9XCJsaWdodFwiIGxvb2s9XCJibGFua1wiIChvbkNsaWNrKT1cIl9oYW5kbGVOYXZDbGljaygkZXZlbnQpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICA8L2F4LWJ1dHRvbj5cclxuICAgIDxheC1idXR0b24gY2xhc3M9XCJheC1wcmV2LWJ1dHRvblwiIGNvbG9yPVwibGlnaHRcIiBsb29rPVwiYmxhbmtcIiAob25DbGljayk9XCJfaGFuZGxlUHJldkNsaWNrKCRldmVudClcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cclxuICAgICAgICA8YXgtcHJlZml4PlxyXG4gICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiYXgtaWMgYXgtaWMtY2hldnJvbiBheC10cmFuc2Zvcm0gYXgtcm90YXRlLTkwXCI+PC9heC1pY29uPlxyXG4gICAgICAgIDwvYXgtcHJlZml4PlxyXG4gICAgPC9heC1idXR0b24+XHJcbiAgICA8YXgtYnV0dG9uIGNsYXNzPVwiYXgtbmV4dC1idXR0b25cIiBjb2xvcj1cImxpZ2h0XCIgbG9vaz1cImJsYW5rXCIgKG9uQ2xpY2spPVwiX2hhbmRsZU5leHRDbGljaygkZXZlbnQpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICAgICAgPGF4LXByZWZpeD5cclxuICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImF4LWljIGF4LWljLWNoZXZyb24gYXgtdHJhbnNmb3JtIGF4LS1yb3RhdGUtOTBcIj48L2F4LWljb24+XHJcbiAgICAgICAgPC9heC1wcmVmaXg+XHJcbiAgICA8L2F4LWJ1dHRvbj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1ib2R5XCI+XHJcbiAgICA8ZGl2IFtuZ1N3aXRjaF09XCJhY3RpdmVWaWV3XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3llYXJzJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItc2xvdHMgYXgtY2FsZW5kYXItc2xvdHMteWVhclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiB0YWJpbmRleD1cIjBcIiAqbmdGb3I9XCJsZXQgc2xvdCBvZiBfc2xvdHNcIiBbbmdDbGFzc109XCJzbG90LmNzc0NsYXNzXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVTbG90Q2xpY2soc2xvdClcIj57e3Nsb3QudGV4dH19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtb250aHMnXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1zbG90cyBheC1jYWxlbmRhci1zbG90cy1tb250aFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiB0YWJpbmRleD1cIjBcIiAqbmdGb3I9XCJsZXQgc2xvdCBvZiBfc2xvdHNcIiBbdGl0bGVdPVwic2xvdC50b29sdGlwXCIgW25nQ2xhc3NdPVwic2xvdC5jc3NDbGFzc1wiIFxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfaGFuZGxlU2xvdENsaWNrKHNsb3QpXCI+e3tzbG90LnRleHR9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci13ZWVrXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlNVPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2Pk1PPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlRVPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PldFPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlRIPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PkZSPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlNBPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItc2xvdHMgYXgtY2FsZW5kYXItc2xvdHMtZGF5XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHRhYmluZGV4PVwiMFwiICpuZ0Zvcj1cImxldCBzbG90IG9mIF9zbG90c1wiIFt0aXRsZV09XCJzbG90LnRvb2x0aXBcIiAgW25nQ2xhc3NdPVwic2xvdC5jc3NDbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVTbG90Q2xpY2soc2xvdClcIj57e3Nsb3QudGV4dH19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWZvb3RlclwiPlxyXG4gICAgPGF4LWJ1dHRvbiBbdGV4dF09XCJfdG9kYXlUZXh0XCIgY29sb3I9XCJkYXJrXCIgbG9vaz1cImJsYW5rXCIgc2l6ZT1cInNtXCIgKG9uQ2xpY2spPVwiX2hhbmRsZUdvVG9kYXkoKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPjwvYXgtYnV0dG9uPlxyXG48L2Rpdj4iXX0=
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNELE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUd2QixXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUgsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7OztBQUc5RixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyx5QkFBeUIsQ0FDL0QsMkJBQTJCLENBQUMscUJBQXFCLENBQU0sdUJBQXVCLENBQUMsQ0FBQyxDQUNqRixDQUFDO0FBV0YsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHdCQUF3QjtJQWlDL0QsWUFBWSxVQUFzQixFQUFVLEdBQXNCO1FBQ2hFLEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFEbUIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFUbEUsV0FBTSxHQUFHLElBQUksVUFB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LENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDOztnSEFqUFUsbUJBQW1CO29HQUFuQixtQkFBbUIsZ2pCQzdCaEMscytFQWdETTsyRkRuQk8sbUJBQW1CO2tCQVIvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixXQUFXLEVBQUUsMkJBQTJCO29CQUN4QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsTUFBTSxFQUFFLENBQUMsR0FBRyxZQUFZLEVBQUUsR0FBRyxrQkFBa0IsRUFBRSxHQUFHLGVBQWUsQ0FBQztvQkFDcEUsT0FBTyxFQUFFLENBQUMsR0FBRyxZQUFZLEVBQUUsR0FBRyxrQkFBa0IsRUFBRSxHQUFHLGdCQUFnQixDQUFDO29CQUN0RSxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7aUlBbU5hLFdBQVc7c0JBRHRCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGF0ZVRpbWUsIEFYRGF0ZVRpbWVSYW5nZSB9IGZyb20gJ0BhY29yZXgvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYQ2xpY2tFdmVudCwgQVhDb21wb25lbnRPcHRpb25DaGFuZ2VkIH0gZnJvbSAnLi4vYmFzZSc7XHJcbmltcG9ydCB7IF9DbGlja2FibGVDb21wb25lbmV0TWl4aW4gfSBmcm9tICcuLi9iYXNlL21peGluL2NsaWNrYWJsZS1taXhpbi5jbGFzcyc7XHJcbmltcG9ydCB7IElOVEVSQUNUSVZFX0lOUFVUUywgSU5URVJBQ1RJVkVfT1VUUFVULCBfSW50ZXJhY3RpdmVDb21wb25lbmV0TWl4aW4gfSBmcm9tICcuLi9iYXNlL21peGluL2ludGVyYWN0aXZlLW1peGluLmNsYXNzJztcclxuaW1wb3J0IHsgVkFMVUVfSU5QVVRTLCBWQUxVRV9PVVRQVVQsIF9WYWx1ZUNvbXBvbmVuZXRNaXhpbiB9IGZyb20gJy4uL2Jhc2UvbWl4aW4vdmFsdWUtbWl4aW4uY2xhc3MnO1xyXG5pbXBvcnQgeyBBWENhbGVuZGFyQmFzZUNvbXBvbmVudCwgQ0FMRU5EQVJfSU5QVVRTLCBDQUxFTkRBUl9PVVRQVVRTIH0gZnJvbSAnLi9jYWxlbmRhci5jbGFzcyc7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IEFYQ2FsZW5kYXJDb21wb25lbnRNaXhpbiA9IF9DbGlja2FibGVDb21wb25lbmV0TWl4aW4oXHJcbiAgX0ludGVyYWN0aXZlQ29tcG9uZW5ldE1peGluKF9WYWx1ZUNvbXBvbmVuZXRNaXhpbjxhbnk+KEFYQ2FsZW5kYXJCYXNlQ29tcG9uZW50KSlcclxuKTtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LWNhbGVuZGFyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGlucHV0czogWy4uLlZBTFVFX0lOUFVUUywgLi4uSU5URVJBQ1RJVkVfSU5QVVRTLCAuLi5DQUxFTkRBUl9JTlBVVFNdLFxyXG4gIG91dHB1dHM6IFsuLi5WQUxVRV9PVVRQVVQsIC4uLklOVEVSQUNUSVZFX09VVFBVVCwgLi4uQ0FMRU5EQVJfT1VUUFVUU10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYQ2FsZW5kYXJDb21wb25lbnQgZXh0ZW5kcyBBWENhbGVuZGFyQ29tcG9uZW50TWl4aW4ge1xyXG5cclxuICBwcml2YXRlIGdldCBfdmlld1JhbmdlKCk6IEFYRGF0ZVRpbWVSYW5nZSB7XHJcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5fdmlld1N0YXJ0RGF0ZSB8fCB0aGlzLl90b2RheTtcclxuICAgIHN3aXRjaCAodGhpcy5hY3RpdmVWaWV3KSB7XHJcbiAgICAgIGNhc2UgJ3llYXJzJzpcclxuICAgICAgICBsZXQgeSA9IGN1cnJlbnQuc3RhcnRPZigneWVhcicpLnllYXI7XHJcbiAgICAgICAgbGV0IG1pbiA9IHkgLSAoeSAlIDEwKSAtIDE7XHJcbiAgICAgICAgbGV0IG1heCA9IG1pbiArIDExO1xyXG4gICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZVJhbmdlKFxyXG4gICAgICAgICAgQVhEYXRlVGltZS5jb252ZXJ0KG5ldyBEYXRlKG1pbiwgMCksIHRoaXMuX3RvZGF5LmNhbGVuZGFyLm5hbWUoKSksXHJcbiAgICAgICAgICBBWERhdGVUaW1lLmNvbnZlcnQobmV3IERhdGUobWF4LCAwKSwgdGhpcy5fdG9kYXkuY2FsZW5kYXIubmFtZSgpKVxyXG4gICAgICAgICk7XHJcbiAgICAgIGNhc2UgJ21vbnRocyc6XHJcbiAgICAgICAgLy9UT0RPOiBjaGVjayBhZGQgbW9udGggZnVuY3Rpb25cclxuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWVSYW5nZShjdXJyZW50LnN0YXJ0T2YoJ3llYXInKSwgY3VycmVudC5lbmRPZigneWVhcicpLmFkZCgnZGF5JywgLTEpKTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICAvL3JldHVybiBuZXcgQVhEYXRlVGltZVJhbmdlKGN1cnJlbnQuc3RhcnRPZignbW9udGgnKS5zdGFydE9mKCd3ZWVrJyksIGN1cnJlbnQuZW5kT2YoJ21vbnRoJykuZW5kT2YoJ3dlZWsnKSk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lUmFuZ2UoY3VycmVudC5zdGFydE9mKCdtb250aCcpLCBjdXJyZW50LmVuZE9mKCdtb250aCcpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcbiAgX3RvZGF5ID0gbmV3IEFYRGF0ZVRpbWUobmV3IERhdGUoKSk7XHJcbiAgcHJpdmF0ZSBfdmlld1N0YXJ0RGF0ZTogQVhEYXRlVGltZTtcclxuXHJcbiAgX25hdlRleHQ6IHN0cmluZyA9ICcnO1xyXG4gIF90b2RheVRleHQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBfc2xvdHM6IGFueVtdID0gW11cclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgc3VwZXIoZWxlbWVudFJlZiwgY2RyKTtcclxuXHJcbiAgfVxyXG5cclxuICBvbkluaXQoKSB7XHJcbiAgICB0aGlzLmdvVG9kYXkoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dlbmVhcnRlU2xvdHMoKSB7XHJcbiAgICBpZiAoIXRoaXMuX3ZpZXdTdGFydERhdGUpXHJcbiAgICAgIHJldHVybjtcclxuICAgIGNvbnN0IHZyID0gdGhpcy5fdmlld1JhbmdlO1xyXG4gICAgLy8geWVhciB2aWV3XHJcbiAgICBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICd5ZWFycycpIHtcclxuICAgICAgY29uc3QgYSA9IHZyLmVudW11cmF0ZSgneWVhcicpO1xyXG4gICAgICB0aGlzLl9zbG90cyA9IGEubWFwKChkLCBpKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcjogYW55ID0ge307XHJcbiAgICAgICAgci5kYXRlID0gZC5kYXRlO1xyXG4gICAgICAgIHIudGV4dCA9IGQuZm9ybWF0KCdZWVlZJyk7XHJcbiAgICAgICAgci5kaXNhYmxlZCA9ICh0aGlzLm1pbiAmJiBkLmNvbXBhcmUodGhpcy5taW4sICd5ZWFyJykgPT0gLTEpIHx8ICh0aGlzLm1heCAmJiBkLmNvbXBhcmUodGhpcy5tYXgsICd5ZWFyJykgPT0gMSk7XHJcbiAgICAgICAgaWYgKHIuZGlzYWJsZWQpIHtcclxuICAgICAgICAgIHIuY3NzQ2xhc3MgPSB7XHJcbiAgICAgICAgICAgICdheC1zdGF0ZS1kaXNhYmxlZCc6IHIuZGlzYWJsZWQsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgci5jc3NDbGFzcyA9IHtcclxuICAgICAgICAgICAgJ2F4LXN0YXRlLXRvZGF5JzogZC5lcXVhbCh0aGlzLl90b2RheSwgJ3llYXInKSxcclxuICAgICAgICAgICAgJ2F4LXN0YXRlLXNlbGVjdGVkJzogdGhpcy52YWx1ZSAmJiB0aGlzLmRlcHRoID09ICd5ZWFycycgJiYgZC5lcXVhbCh0aGlzLnZhbHVlLCAneWVhcicpLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcjtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuX25hdlRleHQgPSBgJHt2ci5zdGFydFRpbWUueWVhcn0gLSAke3ZyLmVuZFRpbWUueWVhcn1gO1xyXG4gICAgICB0aGlzLl90b2RheVRleHQgPSB0aGlzLl90b2RheS5mb3JtYXQoJ1lZWVknKTtcclxuICAgIH1cclxuICAgIC8vIG1vbnRoIHZpZXdcclxuICAgIGVsc2UgaWYgKHRoaXMuYWN0aXZlVmlldyA9PSAnbW9udGhzJykge1xyXG4gICAgICBjb25zdCBhID0gdnIuZW51bXVyYXRlKCdtb250aCcpO1xyXG4gICAgICB0aGlzLl9zbG90cyA9IGEubWFwKChkLCBpKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcjogYW55ID0ge307XHJcbiAgICAgICAgci5kYXRlID0gZC5kYXRlO1xyXG4gICAgICAgIHIudGV4dCA9IGQuZm9ybWF0KCdNTU0nKTtcclxuICAgICAgICByLnRvb2x0aXAgPSBkLmZvcm1hdCgnTU1NTSBZWVlZJyk7XHJcbiAgICAgICAgci5kaXNhYmxlZCA9ICh0aGlzLm1pbiAmJiBkLmNvbXBhcmUodGhpcy5taW4sICdtb250aCcpID09IC0xKSB8fCAodGhpcy5tYXggJiYgZC5jb21wYXJlKHRoaXMubWF4LCAnbW9udGgnKSA9PSAxKTtcclxuICAgICAgICBpZiAoci5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgci5jc3NDbGFzcyA9IHtcclxuICAgICAgICAgICAgJ2F4LXN0YXRlLWRpc2FibGVkJzogci5kaXNhYmxlZCxcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICByLmNzc0NsYXNzID0ge1xyXG4gICAgICAgICAgICAnYXgtc3RhdGUtdG9kYXknOiBkLmVxdWFsKHRoaXMuX3RvZGF5LCAnbW9udGgnKSxcclxuICAgICAgICAgICAgJ2F4LXN0YXRlLXNlbGVjdGVkJzogdGhpcy52YWx1ZSAmJiB0aGlzLmRlcHRoID09ICdtb250aHMnICYmIGQuZXF1YWwodGhpcy52YWx1ZSwgJ21vbnRoJyksXHJcbiAgICAgICAgICAgICdheC1zdGF0ZS1vdGhlcic6IGQueWVhciAhPSB0aGlzLl92aWV3U3RhcnREYXRlLnllYXJcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHI7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLl9uYXZUZXh0ID0gdGhpcy5fdmlld1N0YXJ0RGF0ZS5mb3JtYXQoJ1lZWVknKTtcclxuICAgICAgdGhpcy5fdG9kYXlUZXh0ID0gdGhpcy5fdG9kYXkuZm9ybWF0KCdNTU1NIFlZWVknKTtcclxuICAgIH1cclxuICAgIC8vIGRheSB2aWV3XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29uc3QgYSA9IHZyLmVudW11cmF0ZSgnZGF5Jyk7XHJcbiAgICAgIHRoaXMuX3Nsb3RzID0gYS5tYXAoKGQsIGkpID0+IHtcclxuICAgICAgICBjb25zdCByOiBhbnkgPSB7fTtcclxuICAgICAgICByLmRhdGUgPSBkLmRhdGU7XHJcbiAgICAgICAgci50ZXh0ID0gZC5kYXlPZk1vbnRoO1xyXG4gICAgICAgIHIudG9vbHRpcCA9IGQuZm9ybWF0KCk7XHJcbiAgICAgICAgci5kaXNhYmxlZCA9ICh0aGlzLm1pbiAmJiBkLmNvbXBhcmUodGhpcy5taW4sICdkYXknKSA9PSAtMSkgfHwgKHRoaXMubWF4ICYmIGQuY29tcGFyZSh0aGlzLm1heCwgJ2RheScpID09IDEpO1xyXG4gICAgICAgIGlmIChyLmRpc2FibGVkIHx8IHRoaXMuaXNEaXNhYmxlZChkKSkge1xyXG4gICAgICAgICAgci5jc3NDbGFzcyA9IHtcclxuICAgICAgICAgICAgJ2F4LXN0YXRlLWRpc2FibGVkJzogdHJ1ZSxcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICByLmNzc0NsYXNzID0ge1xyXG4gICAgICAgICAgICAnYXgtc3RhdGUtdG9kYXknOiBkLmVxdWFsKHRoaXMuX3RvZGF5LCAnZGF5JyksXHJcbiAgICAgICAgICAgICdheC1zdGF0ZS1zZWxlY3RlZCc6IHRoaXMudmFsdWUgJiYgZC5lcXVhbCh0aGlzLnZhbHVlLCAnZGF5JyksXHJcbiAgICAgICAgICAgICdheC1zdGF0ZS1ob2xpZGF5JzogdGhpcy5pc0hvbGlkYXkoZCkgfHwgdGhpcy5pc1dlZWtlbmQoZCksXHJcbiAgICAgICAgICAgIC8vICdheC1zdGF0ZS1ldmVudC1pbmZvJzogZC5kYXlPZk1vbnRoID09IDEyLFxyXG4gICAgICAgICAgICAvLyAnYXgtc3RhdGUtZXZlbnQnOiBkLmRheU9mTW9udGggPT0gMTIsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHIuY3NzQ2xhc3NbYGF4LWNvbC1zdGFydC0ke3ZyLnN0YXJ0VGltZS5kYXlPZldlZWt9YF0gPSBpID09IDBcclxuICAgICAgICByZXR1cm4gcjtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuX25hdlRleHQgPSB0aGlzLl92aWV3U3RhcnREYXRlLmZvcm1hdCgnTU1NTSBZWVlZJyk7XHJcbiAgICAgIHRoaXMuX3RvZGF5VGV4dCA9IHRoaXMuX3RvZGF5LmZvcm1hdCgnRERERCwgTU1NTSBkZCwgWVlZWScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIF9oYW5kbGVQcmV2Q2xpY2soZTogQVhDbGlja0V2ZW50KSB7XHJcbiAgICB0aGlzLnByZXYoKTtcclxuICB9XHJcblxyXG4gIF9oYW5kbGVOZXh0Q2xpY2soZTogQVhDbGlja0V2ZW50KSB7XHJcbiAgICB0aGlzLm5leHQoKTtcclxuICB9XHJcblxyXG4gIF9oYW5kbGVTbG90Q2xpY2soc2xvdCkge1xyXG4gICAgaWYgKHNsb3QuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZClcclxuICAgICAgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlVmlldyA9PSAnZGF5cycpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHNsb3QuZGF0ZTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuYWN0aXZlVmlldyA9PSAnbW9udGhzJyAmJiB0aGlzLmRlcHRoID09ICdkYXlzJykge1xyXG4gICAgICB0aGlzLmFjdGl2ZVZpZXcgPSAnZGF5cyc7XHJcbiAgICAgIHRoaXMubmF2VG8oc2xvdC5kYXRlKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuYWN0aXZlVmlldyA9PSAnbW9udGhzJyAmJiB0aGlzLmRlcHRoID09ICdtb250aHMnKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBzbG90LmRhdGU7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ3llYXJzJyAmJiAodGhpcy5kZXB0aCA9PSAnZGF5cycgfHwgdGhpcy5kZXB0aCA9PSAnbW9udGhzJykpIHtcclxuICAgICAgdGhpcy5hY3RpdmVWaWV3ID0gJ21vbnRocyc7XHJcbiAgICAgIHRoaXMubmF2VG8oc2xvdC5kYXRlKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuYWN0aXZlVmlldyA9PSAneWVhcnMnICYmIHRoaXMuZGVwdGggPT0gJ3llYXJzJykge1xyXG4gICAgICB0aGlzLnZhbHVlID0gc2xvdC5kYXRlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgX2hhbmRsZU5hdkNsaWNrKGU6IEFYQ2xpY2tFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlVmlldyA9PSAnZGF5cycpXHJcbiAgICAgIHRoaXMuYWN0aXZlVmlldyA9ICdtb250aHMnO1xyXG4gICAgZWxzZSBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICdtb250aHMnKVxyXG4gICAgICB0aGlzLmFjdGl2ZVZpZXcgPSAneWVhcnMnO1xyXG4gIH1cclxuXHJcbiAgX29uT3B0aW9uQ2hhbmdlZChvcHRpb246IEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCkge1xyXG4gICAgaWYgKG9wdGlvbi5uYW1lID09ICdkZXB0aCcgfHwgb3B0aW9uLm5hbWUgPT0gJ2FjdGl2ZVZpZXcnKSB7XHJcbiAgICAgIHRoaXMuX2dlbmVhcnRlU2xvdHMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIF9vblZhbHVlQ2hhbmdlZChvbGRWYWx1ZSwgbmV3VmFsdWUpIHtcclxuICAgIHRoaXMuX2dlbmVhcnRlU2xvdHMoKTtcclxuICB9XHJcblxyXG4gIF9oYW5kbGVHb1RvZGF5KCkge1xyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuX3RvZGF5LmRhdGU7XHJcbiAgICB0aGlzLmdvVG9kYXkoKTtcclxuICB9XHJcblxyXG4gIG5leHQoKSB7XHJcbiAgICB0aGlzLl9uYXZOZXh0UHJldihmYWxzZSlcclxuICB9XHJcblxyXG4gIHByZXYoKSB7XHJcbiAgICB0aGlzLl9uYXZOZXh0UHJldih0cnVlKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbmF2TmV4dFByZXYocHJldjogYm9vbGVhbikge1xyXG4gICAgY29uc3Qgc2lnbiA9IChwcmV2ID8gLTEgOiAxKTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ2RheXMnKVxyXG4gICAgICB0aGlzLm5hdlRvKHRoaXMuX3ZpZXdTdGFydERhdGUuYWRkKCdtb250aCcsIHNpZ24gKiAxKSk7XHJcbiAgICBlbHNlIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ21vbnRocycpXHJcbiAgICAgIHRoaXMubmF2VG8odGhpcy5fdmlld1N0YXJ0RGF0ZS5hZGQoJ3llYXInLCBzaWduICogMSkpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLm5hdlRvKHRoaXMuX3ZpZXdTdGFydERhdGUuYWRkKCd5ZWFyJywgc2lnbiAqIDEyKSk7XHJcbiAgfVxyXG5cclxuICBnb1RvZGF5KCkge1xyXG4gICAgdGhpcy5uYXZUbyh0aGlzLl90b2RheS5zdGFydE9mKCkpO1xyXG4gIH1cclxuXHJcblxyXG4gIG5hdlRvKGRhdGU6IERhdGUgfCBBWERhdGVUaW1lKSB7XHJcbiAgICB0aGlzLl92aWV3U3RhcnREYXRlID0gQVhEYXRlVGltZS5jb252ZXJ0KGRhdGUsIHRoaXMuX3RvZGF5LmNhbGVuZGFyLm5hbWUoKSk7XHJcbiAgICB0aGlzLl9nZW5lYXJ0ZVNsb3RzKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgcHJpdmF0ZSBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IF9jbGFzc2VzID0ge1xyXG4gICAgICAnYXgtc3RhdGUtZGlzYWJsZWQnOiB0aGlzLmRpc2FibGVkXHJcbiAgICB9XHJcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoX2NsYXNzZXMpLmZpbHRlcihjID0+IGNbMV0pLm1hcChjID0+IGNbMF0pLmpvaW4oJyAnKTtcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIGlzRGlzYWJsZWQoZGF0ZTogQVhEYXRlVGltZSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5kaXNhYmxlZERhdGVzKSAmJiB0aGlzLmRpc2FibGVkRGF0ZXMubGVuZ3RoICE9IDApIHtcclxuICAgICAgO1xyXG4gICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZERhdGVzLnNvbWUoZCA9PiBkYXRlLmVxdWFsKGQsICdkYXknKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0eXBlb2YgdGhpcy5kaXNhYmxlZERhdGVzID09ICdmdW5jdGlvbicpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWREYXRlcyhkYXRlLmRhdGUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0hvbGlkYXkoZGF0ZTogQVhEYXRlVGltZSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5ob2xpZGF5RGF0ZXMpICYmIHRoaXMuaG9saWRheURhdGVzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmhvbGlkYXlEYXRlcy5zb21lKGQgPT4gZGF0ZS5lcXVhbChkLCAnZGF5JykpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodHlwZW9mIHRoaXMuaG9saWRheURhdGVzID09ICdmdW5jdGlvbicpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaG9saWRheURhdGVzKGRhdGUuZGF0ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzV2Vla2VuZChkYXRlOiBBWERhdGVUaW1lKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZGF0ZS5kYXlPZldlZWsgPT0gNyB8fCBkYXRlLmRheU9mV2VlayA9PSAxO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItaGVhZGVyXCI+XHJcbiAgICA8YXgtYnV0dG9uIGNsYXNzPVwiYXgtbmF2LWJ1dHRvblwiIFt0ZXh0XT1cIl9uYXZUZXh0XCIgY29sb3I9XCJsaWdodFwiIGxvb2s9XCJibGFua1wiIChvbkNsaWNrKT1cIl9oYW5kbGVOYXZDbGljaygkZXZlbnQpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICA8L2F4LWJ1dHRvbj5cclxuICAgIDxheC1idXR0b24gY2xhc3M9XCJheC1wcmV2LWJ1dHRvblwiIGNvbG9yPVwibGlnaHRcIiBsb29rPVwiYmxhbmtcIiAob25DbGljayk9XCJfaGFuZGxlUHJldkNsaWNrKCRldmVudClcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cclxuICAgICAgICA8YXgtcHJlZml4PlxyXG4gICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiYXgtaWMgYXgtaWMtY2hldnJvbiBheC10cmFuc2Zvcm0gYXgtcm90YXRlLTkwXCI+PC9heC1pY29uPlxyXG4gICAgICAgIDwvYXgtcHJlZml4PlxyXG4gICAgPC9heC1idXR0b24+XHJcbiAgICA8YXgtYnV0dG9uIGNsYXNzPVwiYXgtbmV4dC1idXR0b25cIiBjb2xvcj1cImxpZ2h0XCIgbG9vaz1cImJsYW5rXCIgKG9uQ2xpY2spPVwiX2hhbmRsZU5leHRDbGljaygkZXZlbnQpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICAgICAgPGF4LXByZWZpeD5cclxuICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImF4LWljIGF4LWljLWNoZXZyb24gYXgtdHJhbnNmb3JtIGF4LS1yb3RhdGUtOTBcIj48L2F4LWljb24+XHJcbiAgICAgICAgPC9heC1wcmVmaXg+XHJcbiAgICA8L2F4LWJ1dHRvbj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1ib2R5XCI+XHJcbiAgICA8ZGl2IFtuZ1N3aXRjaF09XCJhY3RpdmVWaWV3XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3llYXJzJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItc2xvdHMgYXgtY2FsZW5kYXItc2xvdHMteWVhclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiB0YWJpbmRleD1cIjBcIiAqbmdGb3I9XCJsZXQgc2xvdCBvZiBfc2xvdHNcIiBbbmdDbGFzc109XCJzbG90LmNzc0NsYXNzXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVTbG90Q2xpY2soc2xvdClcIj57e3Nsb3QudGV4dH19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtb250aHMnXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1zbG90cyBheC1jYWxlbmRhci1zbG90cy1tb250aFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiB0YWJpbmRleD1cIjBcIiAqbmdGb3I9XCJsZXQgc2xvdCBvZiBfc2xvdHNcIiBbdGl0bGVdPVwic2xvdC50b29sdGlwXCIgW25nQ2xhc3NdPVwic2xvdC5jc3NDbGFzc1wiIFxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfaGFuZGxlU2xvdENsaWNrKHNsb3QpXCI+e3tzbG90LnRleHR9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci13ZWVrXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlNVPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2Pk1PPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlRVPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PldFPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlRIPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PkZSPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlNBPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItc2xvdHMgYXgtY2FsZW5kYXItc2xvdHMtZGF5XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHRhYmluZGV4PVwiMFwiICpuZ0Zvcj1cImxldCBzbG90IG9mIF9zbG90c1wiIFt0aXRsZV09XCJzbG90LnRvb2x0aXBcIiAgW25nQ2xhc3NdPVwic2xvdC5jc3NDbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVTbG90Q2xpY2soc2xvdClcIj57e3Nsb3QudGV4dH19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWZvb3RlclwiPlxyXG4gICAgPGF4LWJ1dHRvbiBjbGFzcz1cImRhcms6YXgtdGV4dC1kYW5nZXJcIiBbdGV4dF09XCJfdG9kYXlUZXh0XCIgY29sb3I9XCJkYXJrXCIgbG9vaz1cImJsYW5rXCIgc2l6ZT1cInNtXCIgKG9uQ2xpY2spPVwiX2hhbmRsZUdvVG9kYXkoKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPjwvYXgtYnV0dG9uPlxyXG48L2Rpdj4iXX0=