@rivet-health/design-system 26.13.2 → 27.0.0
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.
- package/esm2020/lib/input/calendar/calendar.component.mjs +2 -2
- package/esm2020/lib/input/date-range/date-range.component.mjs +8 -22
- package/esm2020/lib/input/{single-select → simple-select}/option-group.pipe.mjs +1 -1
- package/esm2020/lib/riv.module.mjs +2 -7
- package/esm2020/lib/table/table/table/table.component.mjs +1 -1
- package/esm2020/lib/visualization/stacked-column/stacked-column.component.mjs +2 -2
- package/esm2020/lib/visualization/time-series/time-series.component.mjs +2 -2
- package/esm2020/public-api.mjs +2 -3
- package/fesm2015/rivet-health-design-system.mjs +8 -180
- package/fesm2015/rivet-health-design-system.mjs.map +1 -1
- package/fesm2020/rivet-health-design-system.mjs +8 -197
- package/fesm2020/rivet-health-design-system.mjs.map +1 -1
- package/lib/input/calendar/calendar.component.d.ts +4 -2
- package/lib/input/date-range/date-range.component.d.ts +9 -21
- package/lib/input/simple-select/option-group.pipe.d.ts +8 -0
- package/lib/riv.module.d.ts +31 -32
- package/lib/table/table/table/table.component.d.ts +2 -2
- package/lib/visualization/stacked-column/stacked-column.component.d.ts +8 -4
- package/lib/visualization/time-series/time-series.component.d.ts +8 -4
- package/package.json +1 -1
- package/public-api.d.ts +1 -2
- package/esm2020/lib/input/single-select/single-select.component.mjs +0 -185
- package/lib/input/single-select/option-group.pipe.d.ts +0 -8
- package/lib/input/single-select/single-select.component.d.ts +0 -68
|
@@ -6,7 +6,7 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
import * as i1 from "@angular/common";
|
|
7
7
|
import * as i2 from "../button/button.component";
|
|
8
8
|
import * as i3 from "../simple-select/simple-select.component";
|
|
9
|
-
import * as i4 from "../
|
|
9
|
+
import * as i4 from "../simple-select/option-group.pipe";
|
|
10
10
|
const monthFormatter = timeFormat('%B');
|
|
11
11
|
const yearFormatter = timeFormat('%Y');
|
|
12
12
|
const dayFormatter = timeFormat('%e');
|
|
@@ -285,4 +285,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
285
285
|
CalendarComponent.defaultMin = timeYear.floor(timeYear.offset(new Date(), -7));
|
|
286
286
|
CalendarComponent.defaultMax = timeDay.offset(timeYear.floor(timeYear.offset(new Date(), 5)), -1);
|
|
287
287
|
})(CalendarComponent || (CalendarComponent = {}));
|
|
288
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvaW5wdXQvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvaW5wdXQvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLE9BQU8sRUFDUCxRQUFRLEVBQ1IsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsUUFBUSxFQUNSLFNBQVMsR0FDVixNQUFNLFNBQVMsQ0FBQztBQUNqQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUNMLGVBQWUsRUFFZixhQUFhLEVBQ2IsR0FBRyxFQUNILFdBQVcsR0FDWixNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBR2QsTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN2QyxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEMsTUFBTSxzQkFBc0IsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFaEQsU0FBUyxnQkFBZ0IsQ0FBQyxJQUFVO0lBQ2xDLE9BQU8sUUFBUSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQW9CRCw2RUFBNkU7QUFDN0UsMkJBQTJCO0FBQzNCLG1HQUFtRztBQU9uRyxNQUFNLE9BQU8saUJBQWlCO0lBTjlC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Q0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUM5QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyxFQU5nQixpQkFBaUIsS0FBakIsaUJBQWlCLFFBTWpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIHRpbWVEYXksXG4gIHRpbWVEYXlzLFxuICB0aW1lTW9udGgsXG4gIHRpbWVNb250aHMsXG4gIHRpbWVTdW5kYXksXG4gIHRpbWVZZWFyLFxuICB0aW1lWWVhcnMsXG59IGZyb20gJ2QzLXRpbWUnO1xuaW1wb3J0IHsgdGltZUZvcm1hdCB9IGZyb20gJ2QzLXRpbWUtZm9ybWF0JztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgT2JzZXJ2YWJsZSxcbiAgY29tYmluZUxhdGVzdCxcbiAgbWFwLFxuICBzaGFyZVJlcGxheSxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTaW5nbGVTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi9zaW5nbGUtc2VsZWN0L3NpbmdsZS1zZWxlY3QuY29tcG9uZW50JztcblxuY29uc3QgbW9udGhGb3JtYXR0ZXIgPSB0aW1lRm9ybWF0KCclQicpO1xuY29uc3QgeWVhckZvcm1hdHRlciA9IHRpbWVGb3JtYXQoJyVZJyk7XG5jb25zdCBkYXlGb3JtYXR0ZXIgPSB0aW1lRm9ybWF0KCclZScpO1xuY29uc3Qgd2Vla2RheU51bWJlckZvcm1hdHRlciA9IHRpbWVGb3JtYXQoJyV3Jyk7XG5cbmZ1bmN0aW9uIGdldFdlZWtkYXlOdW1iZXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gIHJldHVybiBwYXJzZUludCh3ZWVrZGF5TnVtYmVyRm9ybWF0dGVyKGRhdGUpKTtcbn1cblxudHlwZSBEYXRlT3B0aW9uID0gU2luZ2xlU2VsZWN0Q29tcG9uZW50Lk9wdGlvbiAmIHsgZGF0ZTogRGF0ZSB9O1xuXG50eXBlIENhbGVuZGFyRGF0ZSA9IHtcbiAgZGF0ZTogRGF0ZTtcbiAgZGlzcGxheTogc3RyaW5nO1xuICBmYWRlSW46IGJvb2xlYW47XG4gIGZhZGVPdXQ6IGJvb2xlYW47XG4gIGhpZGRlbjogYm9vbGVhbjtcbiAgaW5DdXJyZW50TW9udGg6IGJvb2xlYW47XG4gIGluUmFuZ2U6IGJvb2xlYW47XG4gIHJvdW5kZWROZTogYm9vbGVhbjtcbiAgcm91bmRlZE53OiBib29sZWFuO1xuICByb3VuZGVkU2U6IGJvb2xlYW47XG4gIHJvdW5kZWRTdzogYm9vbGVhbjtcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gIHRvZGF5OiBib29sZWFuO1xufTtcblxuLy8gVE9ETzogb25jZSB3ZSB1cGdyYWRlIHRvIEFuZ3VsYXIgMTYsIHRoaXMgY29tcG9uZW50IGNhbiBiZSBjbGVhbmVkIHVwIHdpdGhcbi8vIHNpZ25hbHMgaW5zdGVhZCBvZiBSeEpTLlxuLy8gaHR0cHM6Ly93d3cubm90aW9uLnNvL3JpdmV0L1Jlc29sdmUtVE9ET3MtYWZ0ZXItQW5ndWxhci11cGdyYWRlLTFmMjY2N2ViMmEzMTgwYjc5ZjZhZDkyYTdlNTc2ZjA4XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtY2FsZW5kYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZlWWVhck1vbnRoJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0ZT4obmV3IERhdGUoKSk7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYWN0aXZlWWVhck1vbnRoKHY6IERhdGUpIHtcbiAgICB0aGlzLmFjdGl2ZVllYXJNb250aCQubmV4dCh2KTtcbiAgfVxuICBwdWJsaWMgZ2V0IGFjdGl2ZVllYXJNb250aCgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVZZWFyTW9udGgkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGRpc3BsYXlNaW4kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRlPihcbiAgICBDYWxlbmRhckNvbXBvbmVudC5kZWZhdWx0TWluLFxuICApO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc3BsYXlNaW4odjogRGF0ZSkge1xuICAgIHRoaXMuZGlzcGxheU1pbiQubmV4dCh2KTtcbiAgfVxuICBwdWJsaWMgZ2V0IGRpc3BsYXlNaW4oKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheU1pbiQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGlzcGxheU1heCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGU+KFxuICAgIENhbGVuZGFyQ29tcG9uZW50LmRlZmF1bHRNYXgsXG4gICk7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzcGxheU1heCh2OiBEYXRlKSB7XG4gICAgdGhpcy5kaXNwbGF5TWF4JC5uZXh0KHYpO1xuICB9XG4gIHB1YmxpYyBnZXQgZGlzcGxheU1heCgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5TWF4JC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzZWxlY3RhYmxlTWluJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0ZSB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkLFxuICApO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGFibGVNaW4odjogRGF0ZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2VsZWN0YWJsZU1pbiQubmV4dCh2KTtcbiAgfVxuICBwdWJsaWMgZ2V0IHNlbGVjdGFibGVNaW4oKTogRGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0YWJsZU1pbiQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VsZWN0YWJsZU1heCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGUgfCB1bmRlZmluZWQ+KFxuICAgIHVuZGVmaW5lZCxcbiAgKTtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWxlY3RhYmxlTWF4KHY6IERhdGUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnNlbGVjdGFibGVNYXgkLm5leHQodik7XG4gIH1cbiAgcHVibGljIGdldCBzZWxlY3RhYmxlTWF4KCk6IERhdGUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGFibGVNYXgkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IG9taXRSYW5nZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFtEYXRlLCBEYXRlXSB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkLFxuICApO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG9taXRSYW5nZSh2OiBbRGF0ZSwgRGF0ZV0gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLm9taXRSYW5nZSQubmV4dCh2KTtcbiAgfVxuICBwdWJsaWMgZ2V0IG9taXRSYW5nZSgpOiBbRGF0ZSwgRGF0ZV0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm9taXRSYW5nZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VsZWN0ZWRWYWx1ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIERhdGUgfCBbRGF0ZSwgRGF0ZV0gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkVmFsdWUodjogRGF0ZSB8IFtEYXRlLCBEYXRlXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSQubmV4dCh2KTtcbiAgfVxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkVmFsdWUoKTogRGF0ZSB8IFtEYXRlLCBEYXRlXSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRWYWx1ZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHJlYWRvbmx5IHllYXJPcHRpb25zJDogT2JzZXJ2YWJsZTxEYXRlT3B0aW9uW10+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5kaXNwbGF5TWluJCxcbiAgICB0aGlzLmRpc3BsYXlNYXgkLFxuICAgIHRoaXMuc2VsZWN0YWJsZU1pbiQsXG4gICAgdGhpcy5zZWxlY3RhYmxlTWF4JCxcbiAgICB0aGlzLmFjdGl2ZVllYXJNb250aCQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKFxuICAgICAgKFtcbiAgICAgICAgZGlzcGxheU1pbixcbiAgICAgICAgZGlzcGxheU1heCxcbiAgICAgICAgc2VsZWN0YWJsZU1pbixcbiAgICAgICAgc2VsZWN0YWJsZU1heCxcbiAgICAgICAgYWN0aXZlWWVhck1vbnRoLFxuICAgICAgXSkgPT4ge1xuICAgICAgICBjb25zdCBtaW46IERhdGUgPSBzZWxlY3RhYmxlTWluID8/IGRpc3BsYXlNaW47XG4gICAgICAgIGNvbnN0IG1heDogRGF0ZSA9IHNlbGVjdGFibGVNYXggPz8gZGlzcGxheU1heDtcbiAgICAgICAgcmV0dXJuIHRpbWVZZWFycyh0aW1lWWVhci5mbG9vcihkaXNwbGF5TWluKSwgZGlzcGxheU1heClcbiAgICAgICAgICAucmV2ZXJzZSgpXG4gICAgICAgICAgLm1hcChmbG9vcmVkWWVhciA9PiB7XG4gICAgICAgICAgICBjb25zdCB5ZWFyID0gbmV3IERhdGUoXG4gICAgICAgICAgICAgIGZsb29yZWRZZWFyLmdldEZ1bGxZZWFyKCksXG4gICAgICAgICAgICAgIGFjdGl2ZVllYXJNb250aC5nZXRNb250aCgpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGlkOiB5ZWFyLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgdGl0bGU6IHllYXJGb3JtYXR0ZXIoeWVhciksXG4gICAgICAgICAgICAgIGRpc2FibGVkOlxuICAgICAgICAgICAgICAgIHllYXIuZ2V0RnVsbFllYXIoKSA8IG1pbi5nZXRGdWxsWWVhcigpIHx8XG4gICAgICAgICAgICAgICAgeWVhci5nZXRGdWxsWWVhcigpID4gbWF4LmdldEZ1bGxZZWFyKCksXG4gICAgICAgICAgICAgIGRhdGU6IHllYXIsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pO1xuICAgICAgfSxcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSksXG4gICk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0ZWRZZWFyT3B0aW9uJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMueWVhck9wdGlvbnMkLFxuICAgIHRoaXMuYWN0aXZlWWVhck1vbnRoJCxcbiAgXSkucGlwZShcbiAgICBtYXAoXG4gICAgICAoW3llYXJPcHRpb25zLCBhY3RpdmVZZWFyTW9udGhdKSA9PlxuICAgICAgICB5ZWFyT3B0aW9ucy5maW5kKFxuICAgICAgICAgIHkgPT4geS5pZCA9PT0gYWN0aXZlWWVhck1vbnRoLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKSxcbiAgICAgICAgKSB8fCBudWxsLFxuICAgICksXG4gICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSwgYnVmZmVyU2l6ZTogMSB9KSxcbiAgKTtcblxuICByZWFkb25seSBtb250aE9wdGlvbnMkOiBPYnNlcnZhYmxlPERhdGVPcHRpb25bXT4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmFjdGl2ZVllYXJNb250aCQsXG4gICAgdGhpcy5kaXNwbGF5TWluJCxcbiAgICB0aGlzLmRpc3BsYXlNYXgkLFxuICAgIHRoaXMuc2VsZWN0YWJsZU1pbiQsXG4gICAgdGhpcy5zZWxlY3RhYmxlTWF4JCxcbiAgXSkucGlwZShcbiAgICBtYXAoXG4gICAgICAoW1xuICAgICAgICBhY3RpdmVZZWFyTW9udGgsXG4gICAgICAgIGRpc3BsYXlNaW4sXG4gICAgICAgIGRpc3BsYXlNYXgsXG4gICAgICAgIHNlbGVjdGFibGVNaW4sXG4gICAgICAgIHNlbGVjdGFibGVNYXgsXG4gICAgICBdKSA9PiB7XG4gICAgICAgIGNvbnN0IG1pbiA9IHNlbGVjdGFibGVNaW4gPz8gZGlzcGxheU1pbjtcbiAgICAgICAgY29uc3QgbWF4ID0gc2VsZWN0YWJsZU1heCA/PyBkaXNwbGF5TWF4O1xuICAgICAgICByZXR1cm4gdGltZU1vbnRocyhcbiAgICAgICAgICB0aW1lWWVhci5mbG9vcihhY3RpdmVZZWFyTW9udGgpLFxuICAgICAgICAgIHRpbWVZZWFyLmZsb29yKHRpbWVZZWFyLm9mZnNldChhY3RpdmVZZWFyTW9udGgsIDEpKSxcbiAgICAgICAgKS5tYXAobW9udGggPT4gKHtcbiAgICAgICAgICBpZDogbW9udGguZ2V0TW9udGgoKS50b1N0cmluZygpLFxuICAgICAgICAgIHRpdGxlOiBtb250aEZvcm1hdHRlcihtb250aCksXG4gICAgICAgICAgZGlzYWJsZWQ6XG4gICAgICAgICAgICBtb250aC52YWx1ZU9mKCkgPCBtaW4udmFsdWVPZigpIHx8IG1vbnRoLnZhbHVlT2YoKSA+IG1heC52YWx1ZU9mKCksXG4gICAgICAgICAgZGF0ZTogbW9udGgsXG4gICAgICAgIH0pKTtcbiAgICAgIH0sXG4gICAgKSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pLFxuICApO1xuXG4gIHJlYWRvbmx5IHNlbGVjdGVkTW9udGhPcHRpb24kID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5tb250aE9wdGlvbnMkLFxuICAgIHRoaXMuYWN0aXZlWWVhck1vbnRoJCxcbiAgXSkucGlwZShcbiAgICBtYXAoXG4gICAgICAoW21vbnRoT3B0aW9ucywgYWN0aXZlWWVhck1vbnRoXSkgPT5cbiAgICAgICAgbW9udGhPcHRpb25zLmZpbmQoXG4gICAgICAgICAgbSA9PiBtLmlkID09PSBhY3RpdmVZZWFyTW9udGguZ2V0TW9udGgoKS50b1N0cmluZygpLFxuICAgICAgICApIHx8IG51bGwsXG4gICAgKSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pLFxuICApO1xuXG4gIHJlYWRvbmx5IHByZXZpb3VzTW9udGgkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5hY3RpdmVZZWFyTW9udGgkLFxuICAgIHRoaXMuZGlzcGxheU1pbiQsXG4gICAgdGhpcy5zZWxlY3RhYmxlTWluJCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFt5ZWFyTW9udGgsIGRpc3BsYXlNaW4sIHNlbGVjdGFibGVNaW5dKSA9PiB7XG4gICAgICBjb25zdCBtaW46IERhdGUgPSBzZWxlY3RhYmxlTWluID8/IGRpc3BsYXlNaW47XG4gICAgICBjb25zdCBwcmV2aW91cyA9IHRpbWVNb250aC5mbG9vcih0aW1lTW9udGgub2Zmc2V0KHllYXJNb250aCwgLTEpKTtcbiAgICAgIGlmIChwcmV2aW91cy52YWx1ZU9mKCkgPCBtaW4udmFsdWVPZigpKSByZXR1cm4gbnVsbDtcbiAgICAgIHJldHVybiBwcmV2aW91cztcbiAgICB9KSxcbiAgKTtcblxuICByZWFkb25seSBuZXh0TW9udGgkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5hY3RpdmVZZWFyTW9udGgkLFxuICAgIHRoaXMuZGlzcGxheU1heCQsXG4gICAgdGhpcy5zZWxlY3RhYmxlTWF4JCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFt5ZWFyTW9udGgsIGRpc3BsYXlNYXgsIHNlbGVjdGFibGVNYXhdKSA9PiB7XG4gICAgICBjb25zdCBtYXg6IERhdGUgPSBzZWxlY3RhYmxlTWF4ID8/IGRpc3BsYXlNYXg7XG4gICAgICBjb25zdCBuZXh0ID0gdGltZU1vbnRoLmZsb29yKHRpbWVNb250aC5vZmZzZXQoeWVhck1vbnRoLCAxKSk7XG4gICAgICBpZiAobmV4dC52YWx1ZU9mKCkgPiBtYXgudmFsdWVPZigpKSByZXR1cm4gbnVsbDtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH0pLFxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0ZXNJblNlbGVjdGVkUmFuZ2UkOiBPYnNlcnZhYmxlPERhdGVbXT4gPVxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSQucGlwZShcbiAgICAgIG1hcChzZWxlY3RlZFZhbHVlID0+IHtcbiAgICAgICAgaWYgKCFzZWxlY3RlZFZhbHVlKSByZXR1cm4gW107XG4gICAgICAgIGlmIChzZWxlY3RlZFZhbHVlIGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuIFtzZWxlY3RlZFZhbHVlXTtcbiAgICAgICAgcmV0dXJuIHRpbWVEYXlzKFxuICAgICAgICAgIHRpbWVEYXkuZmxvb3Ioc2VsZWN0ZWRWYWx1ZVswXSksXG4gICAgICAgICAgdGltZURheS5mbG9vcih0aW1lRGF5Lm9mZnNldChzZWxlY3RlZFZhbHVlWzFdLCAxKSksXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSksXG4gICAgKTtcblxuICByZWFkb25seSBkYXRlcyQ6IE9ic2VydmFibGU8Q2FsZW5kYXJEYXRlW10+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5hY3RpdmVZZWFyTW9udGgkLFxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSQsXG4gICAgdGhpcy5kYXRlc0luU2VsZWN0ZWRSYW5nZSQsXG4gICAgdGhpcy5zZWxlY3RhYmxlTWluJCxcbiAgICB0aGlzLnNlbGVjdGFibGVNYXgkLFxuICAgIHRoaXMub21pdFJhbmdlJCxcbiAgXSkucGlwZShcbiAgICBtYXAoXG4gICAgICAoW1xuICAgICAgICBhY3RpdmVZZWFyTW9udGgsXG4gICAgICAgIHNlbGVjdGVkVmFsdWUsXG4gICAgICAgIGRhdGVzSW5TZWxlY3RlZFJhbmdlLFxuICAgICAgICBzZWxlY3RhYmxlTWluLFxuICAgICAgICBzZWxlY3RhYmxlTWF4LFxuICAgICAgICBvbWl0UmFuZ2UsXG4gICAgICBdKSA9PiB7XG4gICAgICAgIGNvbnN0IGNhbGVuZGFyRGF0ZXMgPSB0aW1lRGF5cyhcbiAgICAgICAgICB0aW1lU3VuZGF5LmZsb29yKGFjdGl2ZVllYXJNb250aCksXG4gICAgICAgICAgdGltZVN1bmRheS5jZWlsKHRpbWVNb250aC5vZmZzZXQoYWN0aXZlWWVhck1vbnRoLCAxKSksXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG1pbkNhbGVuZGFyRGF0ZSA9IGNhbGVuZGFyRGF0ZXNbMF07XG4gICAgICAgIGNvbnN0IG1heENhbGVuZGFyRGF0ZSA9IGNhbGVuZGFyRGF0ZXNbY2FsZW5kYXJEYXRlcy5sZW5ndGggLSAxXTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlQ29vcmRpbmF0ZXMgPSBuZXcgTWFwPG51bWJlciwgW251bWJlciwgbnVtYmVyXT4oKTtcbiAgICAgICAgY29uc3QgdmlzaWJsZURhdGVzSW5TZWxlY3RlZFJhbmdlID0gZGF0ZXNJblNlbGVjdGVkUmFuZ2UuZmlsdGVyKFxuICAgICAgICAgIHNlbGVjdGVkID0+XG4gICAgICAgICAgICBzZWxlY3RlZC52YWx1ZU9mKCkgPj0gbWluQ2FsZW5kYXJEYXRlLnZhbHVlT2YoKSAmJlxuICAgICAgICAgICAgc2VsZWN0ZWQudmFsdWVPZigpIDw9IG1heENhbGVuZGFyRGF0ZS52YWx1ZU9mKCkgJiZcbiAgICAgICAgICAgIChzZWxlY3RhYmxlTWluXG4gICAgICAgICAgICAgID8gc2VsZWN0ZWQudmFsdWVPZigpID49IHNlbGVjdGFibGVNaW4udmFsdWVPZigpXG4gICAgICAgICAgICAgIDogdHJ1ZSkgJiZcbiAgICAgICAgICAgIChzZWxlY3RhYmxlTWF4XG4gICAgICAgICAgICAgID8gc2VsZWN0ZWQudmFsdWVPZigpIDw9IHNlbGVjdGFibGVNYXgudmFsdWVPZigpXG4gICAgICAgICAgICAgIDogdHJ1ZSkgJiZcbiAgICAgICAgICAgIChvbWl0UmFuZ2VcbiAgICAgICAgICAgICAgPyBzZWxlY3RlZC52YWx1ZU9mKCkgPCBvbWl0UmFuZ2VbMF0udmFsdWVPZigpIHx8XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQudmFsdWVPZigpID4gb21pdFJhbmdlWzFdLnZhbHVlT2YoKVxuICAgICAgICAgICAgICA6IHRydWUpLFxuICAgICAgICApO1xuICAgICAgICBpZiAodmlzaWJsZURhdGVzSW5TZWxlY3RlZFJhbmdlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zdCBmaXJzdFZpc2libGVTZWxlY3RlZERhdGVPZmZzZXQgPSBnZXRXZWVrZGF5TnVtYmVyKFxuICAgICAgICAgICAgdmlzaWJsZURhdGVzSW5TZWxlY3RlZFJhbmdlWzBdLFxuICAgICAgICAgICk7XG4gICAgICAgICAgdmlzaWJsZURhdGVzSW5TZWxlY3RlZFJhbmdlLmZvckVhY2goKHNlbGVjdGVkLCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB4ID0gZ2V0V2Vla2RheU51bWJlcihzZWxlY3RlZCk7XG4gICAgICAgICAgICBjb25zdCB5ID0gTWF0aC5mbG9vcigoaSArIGZpcnN0VmlzaWJsZVNlbGVjdGVkRGF0ZU9mZnNldCkgLyA3KTtcbiAgICAgICAgICAgIHNlbGVjdGVkRGF0ZUNvb3JkaW5hdGVzLnNldChzZWxlY3RlZC52YWx1ZU9mKCksIFt4LCB5XSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc2VyaWFsaXplQ29vcmRpbmF0ZXMoY29vcmRpbmF0ZXM6IFtudW1iZXIsIG51bWJlcl0pOiBzdHJpbmcge1xuICAgICAgICAgIHJldHVybiBjb29yZGluYXRlcy5qb2luKCc6Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2aXNpYmxlRGF0ZXNJblNlbGVjdGVkUmFuZ2VDb29yZGluYXRlcyA9IG5ldyBTZXQoXG4gICAgICAgICAgWy4uLnNlbGVjdGVkRGF0ZUNvb3JkaW5hdGVzLnZhbHVlcygpXS5tYXAoc2VyaWFsaXplQ29vcmRpbmF0ZXMpLFxuICAgICAgICApO1xuXG4gICAgICAgIGZ1bmN0aW9uIGdldFJvdW5kZWRDb3JuZXJzKGRhdGU6IERhdGUpOiB7XG4gICAgICAgICAgbnc6IGJvb2xlYW47XG4gICAgICAgICAgbmU6IGJvb2xlYW47XG4gICAgICAgICAgc2U6IGJvb2xlYW47XG4gICAgICAgICAgc3c6IGJvb2xlYW47XG4gICAgICAgIH0ge1xuICAgICAgICAgIGNvbnN0IGNvb3JkaW5hdGVzID0gc2VsZWN0ZWREYXRlQ29vcmRpbmF0ZXMuZ2V0KGRhdGUudmFsdWVPZigpKTtcbiAgICAgICAgICBpZiAoIWNvb3JkaW5hdGVzKVxuICAgICAgICAgICAgcmV0dXJuIHsgbnc6IGZhbHNlLCBuZTogZmFsc2UsIHNlOiBmYWxzZSwgc3c6IGZhbHNlIH07XG4gICAgICAgICAgY29uc3QgW3gsIHldID0gY29vcmRpbmF0ZXM7XG4gICAgICAgICAgY29uc3QgdG9wID0gc2VyaWFsaXplQ29vcmRpbmF0ZXMoW3gsIHkgLSAxXSksXG4gICAgICAgICAgICByaWdodCA9IHNlcmlhbGl6ZUNvb3JkaW5hdGVzKFt4ICsgMSwgeV0pLFxuICAgICAgICAgICAgYm90dG9tID0gc2VyaWFsaXplQ29vcmRpbmF0ZXMoW3gsIHkgKyAxXSksXG4gICAgICAgICAgICBsZWZ0ID0gc2VyaWFsaXplQ29vcmRpbmF0ZXMoW3ggLSAxLCB5XSk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG53OlxuICAgICAgICAgICAgICAhdmlzaWJsZURhdGVzSW5TZWxlY3RlZFJhbmdlQ29vcmRpbmF0ZXMuaGFzKHRvcCkgJiZcbiAgICAgICAgICAgICAgIXZpc2libGVEYXRlc0luU2VsZWN0ZWRSYW5nZUNvb3JkaW5hdGVzLmhhcyhsZWZ0KSxcbiAgICAgICAgICAgIG5lOlxuICAgICAgICAgICAgICAhdmlzaWJsZURhdGVzSW5TZWxlY3RlZFJhbmdlQ29vcmRpbmF0ZXMuaGFzKHRvcCkgJiZcbiAgICAgICAgICAgICAgIXZpc2libGVEYXRlc0luU2VsZWN0ZWRSYW5nZUNvb3JkaW5hdGVzLmhhcyhyaWdodCksXG4gICAgICAgICAgICBzZTpcbiAgICAgICAgICAgICAgIXZpc2libGVEYXRlc0luU2VsZWN0ZWRSYW5nZUNvb3JkaW5hdGVzLmhhcyhyaWdodCkgJiZcbiAgICAgICAgICAgICAgIXZpc2libGVEYXRlc0luU2VsZWN0ZWRSYW5nZUNvb3JkaW5hdGVzLmhhcyhib3R0b20pLFxuICAgICAgICAgICAgc3c6XG4gICAgICAgICAgICAgICF2aXNpYmxlRGF0ZXNJblNlbGVjdGVkUmFuZ2VDb29yZGluYXRlcy5oYXMobGVmdCkgJiZcbiAgICAgICAgICAgICAgIXZpc2libGVEYXRlc0luU2VsZWN0ZWRSYW5nZUNvb3JkaW5hdGVzLmhhcyhib3R0b20pLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2aXNpYmxlRGF0ZXNJblNlbGVjdGVkUmFuZ2VWYWx1ZXMgPSBuZXcgU2V0KFxuICAgICAgICAgIHZpc2libGVEYXRlc0luU2VsZWN0ZWRSYW5nZS5tYXAoc2VsZWN0ZWQgPT4gc2VsZWN0ZWQudmFsdWVPZigpKSxcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCB0b2RheSA9IHRpbWVEYXkuZmxvb3IobmV3IERhdGUoKSk7XG5cbiAgICAgICAgcmV0dXJuIGNhbGVuZGFyRGF0ZXMubWFwKGRhdGUgPT4ge1xuICAgICAgICAgIGNvbnN0IHsgbncsIG5lLCBzZSwgc3cgfSA9IGdldFJvdW5kZWRDb3JuZXJzKGRhdGUpO1xuICAgICAgICAgIGNvbnN0IGRhdGVWYWx1ZSA9IGRhdGUudmFsdWVPZigpO1xuICAgICAgICAgIGNvbnN0IGluUmFuZ2UgPSB2aXNpYmxlRGF0ZXNJblNlbGVjdGVkUmFuZ2VWYWx1ZXMuaGFzKGRhdGVWYWx1ZSk7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBzZWxlY3RlZFZhbHVlXG4gICAgICAgICAgICA/IHNlbGVjdGVkVmFsdWUgaW5zdGFuY2VvZiBEYXRlXG4gICAgICAgICAgICAgID8gZGF0ZVZhbHVlID09PSBzZWxlY3RlZFZhbHVlLnZhbHVlT2YoKVxuICAgICAgICAgICAgICA6IGRhdGVWYWx1ZSA9PT0gc2VsZWN0ZWRWYWx1ZVswXS52YWx1ZU9mKCkgfHxcbiAgICAgICAgICAgICAgICBkYXRlVmFsdWUgPT09IHNlbGVjdGVkVmFsdWVbMV0udmFsdWVPZigpXG4gICAgICAgICAgICA6IGZhbHNlO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgZGlzcGxheTogZGF5Rm9ybWF0dGVyKGRhdGUpLFxuICAgICAgICAgICAgZmFkZUluOlxuICAgICAgICAgICAgICBpblJhbmdlICYmXG4gICAgICAgICAgICAgIChkYXRlVmFsdWUgPT09XG4gICAgICAgICAgICAgICAgTWF0aC5tYXgoXG4gICAgICAgICAgICAgICAgICBtaW5DYWxlbmRhckRhdGUudmFsdWVPZigpLFxuICAgICAgICAgICAgICAgICAgc2VsZWN0YWJsZU1pbj8udmFsdWVPZigpID8/IC1JbmZpbml0eSxcbiAgICAgICAgICAgICAgICApIHx8XG4gICAgICAgICAgICAgICAgZGF0ZVZhbHVlID09PVxuICAgICAgICAgICAgICAgICAgKG9taXRSYW5nZVxuICAgICAgICAgICAgICAgICAgICA/IHRpbWVEYXkub2Zmc2V0KG9taXRSYW5nZVsxXSwgMSkudmFsdWVPZigpXG4gICAgICAgICAgICAgICAgICAgIDogLUluZmluaXR5KSksXG4gICAgICAgICAgICBmYWRlT3V0OlxuICAgICAgICAgICAgICBpblJhbmdlICYmXG4gICAgICAgICAgICAgIChkYXRlVmFsdWUgPT09XG4gICAgICAgICAgICAgICAgTWF0aC5taW4oXG4gICAgICAgICAgICAgICAgICBtYXhDYWxlbmRhckRhdGUudmFsdWVPZigpLFxuICAgICAgICAgICAgICAgICAgc2VsZWN0YWJsZU1heD8udmFsdWVPZigpID8/IEluZmluaXR5LFxuICAgICAgICAgICAgICAgICkgfHxcbiAgICAgICAgICAgICAgICBkYXRlVmFsdWUgPT09XG4gICAgICAgICAgICAgICAgICAob21pdFJhbmdlXG4gICAgICAgICAgICAgICAgICAgID8gdGltZURheS5vZmZzZXQob21pdFJhbmdlWzBdLCAtMSkudmFsdWVPZigpXG4gICAgICAgICAgICAgICAgICAgIDogSW5maW5pdHkpKSxcbiAgICAgICAgICAgIGhpZGRlbjpcbiAgICAgICAgICAgICAgZGF0ZVZhbHVlIDwgKHNlbGVjdGFibGVNaW4/LnZhbHVlT2YoKSA/PyAtSW5maW5pdHkpIHx8XG4gICAgICAgICAgICAgIGRhdGVWYWx1ZSA+IChzZWxlY3RhYmxlTWF4Py52YWx1ZU9mKCkgPz8gSW5maW5pdHkpIHx8XG4gICAgICAgICAgICAgIChvbWl0UmFuZ2VcbiAgICAgICAgICAgICAgICA/IG9taXRSYW5nZVswXS52YWx1ZU9mKCkgPD0gZGF0ZVZhbHVlICYmXG4gICAgICAgICAgICAgICAgICBkYXRlVmFsdWUgPD0gb21pdFJhbmdlWzFdLnZhbHVlT2YoKVxuICAgICAgICAgICAgICAgIDogZmFsc2UpLFxuICAgICAgICAgICAgaW5DdXJyZW50TW9udGg6XG4gICAgICAgICAgICAgIGRhdGVWYWx1ZSA+PSBhY3RpdmVZZWFyTW9udGgudmFsdWVPZigpICYmXG4gICAgICAgICAgICAgIGRhdGVWYWx1ZSA8IHRpbWVNb250aC5vZmZzZXQoYWN0aXZlWWVhck1vbnRoLCAxKS52YWx1ZU9mKCksXG4gICAgICAgICAgICBpblJhbmdlLFxuICAgICAgICAgICAgcm91bmRlZE5lOiBuZSxcbiAgICAgICAgICAgIHJvdW5kZWROdzogbncsXG4gICAgICAgICAgICByb3VuZGVkU2U6IHNlLFxuICAgICAgICAgICAgcm91bmRlZFN3OiBzdyxcbiAgICAgICAgICAgIHNlbGVjdGVkLFxuICAgICAgICAgICAgdG9kYXk6IGRhdGVWYWx1ZSA9PT0gdG9kYXkudmFsdWVPZigpLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSksXG4gICk7XG5cbiAgc2VsZWN0RGF5KGRheTogQ2FsZW5kYXJEYXRlKSB7XG4gICAgaWYgKCFkYXkuaW5DdXJyZW50TW9udGgpIHtcbiAgICAgIHRoaXMuYWN0aXZlWWVhck1vbnRoQ2hhbmdlLmVtaXQodGltZU1vbnRoLmZsb29yKGRheS5kYXRlKSk7XG4gICAgfVxuICAgIHRoaXMuZGF0ZVNlbGVjdC5lbWl0KGRheS5kYXRlKTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBhY3RpdmVZZWFyTW9udGhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG5cbiAgZW1pdEFjdGl2ZVllYXJNb250aCh5ZWFyTW9udGg6IERhdGUgfCBudWxsKSB7XG4gICAgaWYgKHllYXJNb250aCkgdGhpcy5hY3RpdmVZZWFyTW9udGhDaGFuZ2UuZW1pdCh5ZWFyTW9udGgpO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIGRhdGVTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ2FsZW5kYXJDb21wb25lbnQge1xuICBleHBvcnQgY29uc3QgZGVmYXVsdE1pbiA9IHRpbWVZZWFyLmZsb29yKHRpbWVZZWFyLm9mZnNldChuZXcgRGF0ZSgpLCAtNykpO1xuICBleHBvcnQgY29uc3QgZGVmYXVsdE1heCA9IHRpbWVEYXkub2Zmc2V0KFxuICAgIHRpbWVZZWFyLmZsb29yKHRpbWVZZWFyLm9mZnNldChuZXcgRGF0ZSgpLCA1KSksXG4gICAgLTEsXG4gICk7XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udHJvbHNcIj5cbiAgPGRpdj5cbiAgICA8cml2LXNpbXBsZS1zZWxlY3RcbiAgICAgIFtmaWx0ZXJhYmlsaXR5T3B0aW9uc109XCJ7IGVuYWJsZWQ6IHRydWUsIHBsYWNlaG9sZGVyOiAnTW9udGguLi4nIH1cIlxuICAgICAgW29wdGlvbkdyb3Vwc109XCJtb250aE9wdGlvbnMkIHwgYXN5bmMgfCByaXZPcHRpb25Hcm91cFwiXG4gICAgICBbc2VsZWN0ZWRPcHRpb25dPVwic2VsZWN0ZWRNb250aE9wdGlvbiQgfCBhc3luY1wiXG4gICAgICAoc2VsZWN0ZWRPcHRpb25DaGFuZ2UpPVwiZW1pdEFjdGl2ZVllYXJNb250aCgkZXZlbnQ/LmRhdGUgPz8gbnVsbClcIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjdHJpZ2dlciBsZXQtc3RhdGU9XCJzdGF0ZVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgcml2QnV0dG9uXG4gICAgICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgICAgW2ljb25dPVwiJ0NoZXZyb25Eb3duJ1wiXG4gICAgICAgICAgW2ljb25Qb3NpdGlvbl09XCInbGFzdCdcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgc3RhdGUuZGlzcGxheS5zZWxlY3RlZCB8fCAnLi4uJyB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9yaXYtc2ltcGxlLXNlbGVjdD5cbiAgICA8cml2LXNpbXBsZS1zZWxlY3RcbiAgICAgIFtmaWx0ZXJhYmlsaXR5T3B0aW9uc109XCJ7IGVuYWJsZWQ6IHRydWUsIHBsYWNlaG9sZGVyOiAnWWVhci4uLicgfVwiXG4gICAgICBbb3B0aW9uR3JvdXBzXT1cInllYXJPcHRpb25zJCB8IGFzeW5jIHwgcml2T3B0aW9uR3JvdXBcIlxuICAgICAgW3NlbGVjdGVkT3B0aW9uXT1cInNlbGVjdGVkWWVhck9wdGlvbiQgfCBhc3luY1wiXG4gICAgICAoc2VsZWN0ZWRPcHRpb25DaGFuZ2UpPVwiZW1pdEFjdGl2ZVllYXJNb250aCgkZXZlbnQ/LmRhdGUgPz8gbnVsbClcIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjdHJpZ2dlciBsZXQtc3RhdGU9XCJzdGF0ZVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgcml2QnV0dG9uXG4gICAgICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgICAgW2ljb25dPVwiJ0NoZXZyb25Eb3duJ1wiXG4gICAgICAgICAgW2ljb25Qb3NpdGlvbl09XCInbGFzdCdcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgc3RhdGUuZGlzcGxheS5zZWxlY3RlZCB8fCAnLi4uJyB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9yaXYtc2ltcGxlLXNlbGVjdD5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICAqbmdJZj1cInsgcHJldjogcHJldmlvdXNNb250aCQgfCBhc3luYywgbmV4dDogbmV4dE1vbnRoJCB8IGFzeW5jIH07IGxldCB2bVwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICByaXZCdXR0b25cbiAgICAgIFtzaXplXT1cIidzbWFsbCdcIlxuICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICBbaWNvbl09XCInQXJyb3dMZWZ0J1wiXG4gICAgICBbZGlzYWJsZWRdPVwiIXZtLnByZXZcIlxuICAgICAgKGNsaWNrKT1cInZtLnByZXYgPyBhY3RpdmVZZWFyTW9udGhDaGFuZ2UuZW1pdCh2bS5wcmV2KSA6IG51bGxcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPjwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIHJpdkJ1dHRvblxuICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICBbdmFyaWFudF09XCInZ2hvc3QnXCJcbiAgICAgIFtpY29uXT1cIidBcnJvd1JpZ2h0J1wiXG4gICAgICBbZGlzYWJsZWRdPVwiIXZtLm5leHRcIlxuICAgICAgKGNsaWNrKT1cInZtLm5leHQgPyBhY3RpdmVZZWFyTW9udGhDaGFuZ2UuZW1pdCh2bS5uZXh0KSA6IG51bGxcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPjwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImNhbGVuZGFyXCI+XG4gIDxzcGFuIGNsYXNzPVwibGFiZWxcIj5TdTwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPk1vPC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+VHU8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwibGFiZWxcIj5XZTwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPlRoPC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+RnI8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwibGFiZWxcIj5TYTwvc3Bhbj5cbiAgPGJ1dHRvblxuICAgICpuZ0Zvcj1cImxldCBkYXkgb2YgZGF0ZXMkIHwgYXN5bmNcIlxuICAgIGNsYXNzPVwiZGF5XCJcbiAgICBbZGlzYWJsZWRdPVwiZGF5LmhpZGRlblwiXG4gICAgW2NsYXNzLmJsZWVkXT1cIiFkYXkuaW5DdXJyZW50TW9udGhcIlxuICAgIFtjbGFzcy5mYWRlLWluXT1cImRheS5mYWRlSW5cIlxuICAgIFtjbGFzcy5mYWRlLW91dF09XCJkYXkuZmFkZU91dFwiXG4gICAgW2NsYXNzLmluLXJhbmdlXT1cImRheS5pblJhbmdlXCJcbiAgICBbY2xhc3Mucm91bmRlZC1uZV09XCJkYXkucm91bmRlZE5lXCJcbiAgICBbY2xhc3Mucm91bmRlZC1ud109XCJkYXkucm91bmRlZE53XCJcbiAgICBbY2xhc3Mucm91bmRlZC1zZV09XCJkYXkucm91bmRlZFNlXCJcbiAgICBbY2xhc3Mucm91bmRlZC1zd109XCJkYXkucm91bmRlZFN3XCJcbiAgICAoY2xpY2spPVwic2VsZWN0RGF5KGRheSlcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICA+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiZGF5LXdyYXBwZXJcIlxuICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImRheS5zZWxlY3RlZFwiXG4gICAgICBbY2xhc3MudG9kYXldPVwiZGF5LnRvZGF5XCJcbiAgICAgIFtjbGFzcy5oaWRkZW5dPVwiZGF5LmhpZGRlblwiXG4gICAgPlxuICAgICAge3sgZGF5LmRpc3BsYXkgfX1cbiAgICA8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
288
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvaW5wdXQvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvaW5wdXQvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLE9BQU8sRUFDUCxRQUFRLEVBQ1IsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsUUFBUSxFQUNSLFNBQVMsR0FDVixNQUFNLFNBQVMsQ0FBQztBQUNqQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUNMLGVBQWUsRUFFZixhQUFhLEVBQ2IsR0FBRyxFQUNILFdBQVcsR0FDWixNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBRWQsTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN2QyxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEMsTUFBTSxzQkFBc0IsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFaEQsU0FBUyxnQkFBZ0IsQ0FBQyxJQUFVO0lBQ2xDLE9BQU8sUUFBUSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQXlCRCw2RUFBNkU7QUFDN0UsMkJBQTJCO0FBQzNCLG1HQUFtRztBQU9uRyxNQUFNLE9BQU8saUJBQWlCO0lBTjlC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Q0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUM5QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyxFQU5nQixpQkFBaUIsS0FBakIsaUJBQWlCLFFBTWpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIHRpbWVEYXksXG4gIHRpbWVEYXlzLFxuICB0aW1lTW9udGgsXG4gIHRpbWVNb250aHMsXG4gIHRpbWVTdW5kYXksXG4gIHRpbWVZZWFyLFxuICB0aW1lWWVhcnMsXG59IGZyb20gJ2QzLXRpbWUnO1xuaW1wb3J0IHsgdGltZUZvcm1hdCB9IGZyb20gJ2QzLXRpbWUtZm9ybWF0JztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgT2JzZXJ2YWJsZSxcbiAgY29tYmluZUxhdGVzdCxcbiAgbWFwLFxuICBzaGFyZVJlcGxheSxcbn0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IG1vbnRoRm9ybWF0dGVyID0gdGltZUZvcm1hdCgnJUInKTtcbmNvbnN0IHllYXJGb3JtYXR0ZXIgPSB0aW1lRm9ybWF0KCclWScpO1xuY29uc3QgZGF5Rm9ybWF0dGVyID0gdGltZUZvcm1hdCgnJWUnKTtcbmNvbnN0IHdlZWtkYXlOdW1iZXJGb3JtYXR0ZXIgPSB0aW1lRm9ybWF0KCcldycpO1xuXG5mdW5jdGlvbiBnZXRXZWVrZGF5TnVtYmVyKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICByZXR1cm4gcGFyc2VJbnQod2Vla2RheU51bWJlckZvcm1hdHRlcihkYXRlKSk7XG59XG5cbnR5cGUgRGF0ZU9wdGlvbiA9IHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIGRhdGU6IERhdGU7XG59O1xuXG50eXBlIENhbGVuZGFyRGF0ZSA9IHtcbiAgZGF0ZTogRGF0ZTtcbiAgZGlzcGxheTogc3RyaW5nO1xuICBmYWRlSW46IGJvb2xlYW47XG4gIGZhZGVPdXQ6IGJvb2xlYW47XG4gIGhpZGRlbjogYm9vbGVhbjtcbiAgaW5DdXJyZW50TW9udGg6IGJvb2xlYW47XG4gIGluUmFuZ2U6IGJvb2xlYW47XG4gIHJvdW5kZWROZTogYm9vbGVhbjtcbiAgcm91bmRlZE53OiBib29sZWFuO1xuICByb3VuZGVkU2U6IGJvb2xlYW47XG4gIHJvdW5kZWRTdzogYm9vbGVhbjtcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gIHRvZGF5OiBib29sZWFuO1xufTtcblxuLy8gVE9ETzogb25jZSB3ZSB1cGdyYWRlIHRvIEFuZ3VsYXIgMTYsIHRoaXMgY29tcG9uZW50IGNhbiBiZSBjbGVhbmVkIHVwIHdpdGhcbi8vIHNpZ25hbHMgaW5zdGVhZCBvZiBSeEpTLlxuLy8gaHR0cHM6Ly93d3cubm90aW9uLnNvL3JpdmV0L1Jlc29sdmUtVE9ET3MtYWZ0ZXItQW5ndWxhci11cGdyYWRlLTFmMjY2N2ViMmEzMTgwYjc5ZjZhZDkyYTdlNTc2ZjA4XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtY2FsZW5kYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZlWWVhck1vbnRoJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0ZT4obmV3IERhdGUoKSk7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYWN0aXZlWWVhck1vbnRoKHY6IERhdGUpIHtcbiAgICB0aGlzLmFjdGl2ZVllYXJNb250aCQubmV4dCh2KTtcbiAgfVxuICBwdWJsaWMgZ2V0IGFjdGl2ZVllYXJNb250aCgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVZZWFyTW9udGgkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGRpc3BsYXlNaW4kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRlPihcbiAgICBDYWxlbmRhckNvbXBvbmVudC5kZWZhdWx0TWluLFxuICApO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc3BsYXlNaW4odjogRGF0ZSkge1xuICAgIHRoaXMuZGlzcGxheU1pbiQubmV4dCh2KTtcbiAgfVxuICBwdWJsaWMgZ2V0IGRpc3BsYXlNaW4oKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheU1pbiQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGlzcGxheU1heCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGU+KFxuICAgIENhbGVuZGFyQ29tcG9uZW50LmRlZmF1bHRNYXgsXG4gICk7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzcGxheU1heCh2OiBEYXRlKSB7XG4gICAgdGhpcy5kaXNwbGF5TWF4JC5uZXh0KHYpO1xuICB9XG4gIHB1YmxpYyBnZXQgZGlzcGxheU1heCgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5TWF4JC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzZWxlY3RhYmxlTWluJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0ZSB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkLFxuICApO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGFibGVNaW4odjogRGF0ZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2VsZWN0YWJsZU1pbiQubmV4dCh2KTtcbiAgfVxuICBwdWJsaWMgZ2V0IHNlbGVjdGFibGVNaW4oKTogRGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0YWJsZU1pbiQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VsZWN0YWJsZU1heCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGUgfCB1bmRlZmluZWQ+KFxuICAgIHVuZGVmaW5lZCxcbiAgKTtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWxlY3RhYmxlTWF4KHY6IERhdGUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnNlbGVjdGFibGVNYXgkLm5leHQodik7XG4gIH1cbiAgcHVibGljIGdldCBzZWxlY3RhYmxlTWF4KCk6IERhdGUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGFibGVNYXgkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IG9taXRSYW5nZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFtEYXRlLCBEYXRlXSB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkLFxuICApO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG9taXRSYW5nZSh2OiBbRGF0ZSwgRGF0ZV0gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLm9taXRSYW5nZSQubmV4dCh2KTtcbiAgfVxuICBwdWJsaWMgZ2V0IG9taXRSYW5nZSgpOiBbRGF0ZSwgRGF0ZV0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm9taXRSYW5nZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VsZWN0ZWRWYWx1ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIERhdGUgfCBbRGF0ZSwgRGF0ZV0gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkVmFsdWUodjogRGF0ZSB8IFtEYXRlLCBEYXRlXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSQubmV4dCh2KTtcbiAgfVxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkVmFsdWUoKTogRGF0ZSB8IFtEYXRlLCBEYXRlXSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRWYWx1ZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHJlYWRvbmx5IHllYXJPcHRpb25zJDogT2JzZXJ2YWJsZTxEYXRlT3B0aW9uW10+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5kaXNwbGF5TWluJCxcbiAgICB0aGlzLmRpc3BsYXlNYXgkLFxuICAgIHRoaXMuc2VsZWN0YWJsZU1pbiQsXG4gICAgdGhpcy5zZWxlY3RhYmxlTWF4JCxcbiAgICB0aGlzLmFjdGl2ZVllYXJNb250aCQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKFxuICAgICAgKFtcbiAgICAgICAgZGlzcGxheU1pbixcbiAgICAgICAgZGlzcGxheU1heCxcbiAgICAgICAgc2VsZWN0YWJsZU1pbixcbiAgICAgICAgc2VsZWN0YWJsZU1heCxcbiAgICAgICAgYWN0aXZlWWVhck1vbnRoLFxuICAgICAgXSkgPT4ge1xuICAgICAgICBjb25zdCBtaW46IERhdGUgPSBzZWxlY3RhYmxlTWluID8/IGRpc3BsYXlNaW47XG4gICAgICAgIGNvbnN0IG1heDogRGF0ZSA9IHNlbGVjdGFibGVNYXggPz8gZGlzcGxheU1heDtcbiAgICAgICAgcmV0dXJuIHRpbWVZZWFycyh0aW1lWWVhci5mbG9vcihkaXNwbGF5TWluKSwgZGlzcGxheU1heClcbiAgICAgICAgICAucmV2ZXJzZSgpXG4gICAgICAgICAgLm1hcChmbG9vcmVkWWVhciA9PiB7XG4gICAgICAgICAgICBjb25zdCB5ZWFyID0gbmV3IERhdGUoXG4gICAgICAgICAgICAgIGZsb29yZWRZZWFyLmdldEZ1bGxZZWFyKCksXG4gICAgICAgICAgICAgIGFjdGl2ZVllYXJNb250aC5nZXRNb250aCgpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGlkOiB5ZWFyLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgdGl0bGU6IHllYXJGb3JtYXR0ZXIoeWVhciksXG4gICAgICAgICAgICAgIGRpc2FibGVkOlxuICAgICAgICAgICAgICAgIHllYXIuZ2V0RnVsbFllYXIoKSA8IG1pbi5nZXRGdWxsWWVhcigpIHx8XG4gICAgICAgICAgICAgICAgeWVhci5nZXRGdWxsWWVhcigpID4gbWF4LmdldEZ1bGxZZWFyKCksXG4gICAgICAgICAgICAgIGRhdGU6IHllYXIsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pO1xuICAgICAgfSxcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSksXG4gICk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0ZWRZZWFyT3B0aW9uJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMueWVhck9wdGlvbnMkLFxuICAgIHRoaXMuYWN0aXZlWWVhck1vbnRoJCxcbiAgXSkucGlwZShcbiAgICBtYXAoXG4gICAgICAoW3llYXJPcHRpb25zLCBhY3RpdmVZZWFyTW9udGhdKSA9PlxuICAgICAgICB5ZWFyT3B0aW9ucy5maW5kKFxuICAgICAgICAgIHkgPT4geS5pZCA9PT0gYWN0aXZlWWVhck1vbnRoLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKSxcbiAgICAgICAgKSB8fCBudWxsLFxuICAgICksXG4gICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSwgYnVmZmVyU2l6ZTogMSB9KSxcbiAgKTtcblxuICByZWFkb25seSBtb250aE9wdGlvbnMkOiBPYnNlcnZhYmxlPERhdGVPcHRpb25bXT4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmFjdGl2ZVllYXJNb250aCQsXG4gICAgdGhpcy5kaXNwbGF5TWluJCxcbiAgICB0aGlzLmRpc3BsYXlNYXgkLFxuICAgIHRoaXMuc2VsZWN0YWJsZU1pbiQsXG4gICAgdGhpcy5zZWxlY3RhYmxlTWF4JCxcbiAgXSkucGlwZShcbiAgICBtYXAoXG4gICAgICAoW1xuICAgICAgICBhY3RpdmVZZWFyTW9udGgsXG4gICAgICAgIGRpc3BsYXlNaW4sXG4gICAgICAgIGRpc3BsYXlNYXgsXG4gICAgICAgIHNlbGVjdGFibGVNaW4sXG4gICAgICAgIHNlbGVjdGFibGVNYXgsXG4gICAgICBdKSA9PiB7XG4gICAgICAgIGNvbnN0IG1pbiA9IHNlbGVjdGFibGVNaW4gPz8gZGlzcGxheU1pbjtcbiAgICAgICAgY29uc3QgbWF4ID0gc2VsZWN0YWJsZU1heCA/PyBkaXNwbGF5TWF4O1xuICAgICAgICByZXR1cm4gdGltZU1vbnRocyhcbiAgICAgICAgICB0aW1lWWVhci5mbG9vcihhY3RpdmVZZWFyTW9udGgpLFxuICAgICAgICAgIHRpbWVZZWFyLmZsb29yKHRpbWVZZWFyLm9mZnNldChhY3RpdmVZZWFyTW9udGgsIDEpKSxcbiAgICAgICAgKS5tYXAobW9udGggPT4gKHtcbiAgICAgICAgICBpZDogbW9udGguZ2V0TW9udGgoKS50b1N0cmluZygpLFxuICAgICAgICAgIHRpdGxlOiBtb250aEZvcm1hdHRlcihtb250aCksXG4gICAgICAgICAgZGlzYWJsZWQ6XG4gICAgICAgICAgICBtb250aC52YWx1ZU9mKCkgPCBtaW4udmFsdWVPZigpIHx8IG1vbnRoLnZhbHVlT2YoKSA+IG1heC52YWx1ZU9mKCksXG4gICAgICAgICAgZGF0ZTogbW9udGgsXG4gICAgICAgIH0pKTtcbiAgICAgIH0sXG4gICAgKSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pLFxuICApO1xuXG4gIHJlYWRvbmx5IHNlbGVjdGVkTW9udGhPcHRpb24kID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5tb250aE9wdGlvbnMkLFxuICAgIHRoaXMuYWN0aXZlWWVhck1vbnRoJCxcbiAgXSkucGlwZShcbiAgICBtYXAoXG4gICAgICAoW21vbnRoT3B0aW9ucywgYWN0aXZlWWVhck1vbnRoXSkgPT5cbiAgICAgICAgbW9udGhPcHRpb25zLmZpbmQoXG4gICAgICAgICAgbSA9PiBtLmlkID09PSBhY3RpdmVZZWFyTW9udGguZ2V0TW9udGgoKS50b1N0cmluZygpLFxuICAgICAgICApIHx8IG51bGwsXG4gICAgKSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pLFxuICApO1xuXG4gIHJlYWRvbmx5IHByZXZpb3VzTW9udGgkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5hY3RpdmVZZWFyTW9udGgkLFxuICAgIHRoaXMuZGlzcGxheU1pbiQsXG4gICAgdGhpcy5zZWxlY3RhYmxlTWluJCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFt5ZWFyTW9udGgsIGRpc3BsYXlNaW4sIHNlbGVjdGFibGVNaW5dKSA9PiB7XG4gICAgICBjb25zdCBtaW46IERhdGUgPSBzZWxlY3RhYmxlTWluID8/IGRpc3BsYXlNaW47XG4gICAgICBjb25zdCBwcmV2aW91cyA9IHRpbWVNb250aC5mbG9vcih0aW1lTW9udGgub2Zmc2V0KHllYXJNb250aCwgLTEpKTtcbiAgICAgIGlmIChwcmV2aW91cy52YWx1ZU9mKCkgPCBtaW4udmFsdWVPZigpKSByZXR1cm4gbnVsbDtcbiAgICAgIHJldHVybiBwcmV2aW91cztcbiAgICB9KSxcbiAgKTtcblxuICByZWFkb25seSBuZXh0TW9udGgkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5hY3RpdmVZZWFyTW9udGgkLFxuICAgIHRoaXMuZGlzcGxheU1heCQsXG4gICAgdGhpcy5zZWxlY3RhYmxlTWF4JCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFt5ZWFyTW9udGgsIGRpc3BsYXlNYXgsIHNlbGVjdGFibGVNYXhdKSA9PiB7XG4gICAgICBjb25zdCBtYXg6IERhdGUgPSBzZWxlY3RhYmxlTWF4ID8/IGRpc3BsYXlNYXg7XG4gICAgICBjb25zdCBuZXh0ID0gdGltZU1vbnRoLmZsb29yKHRpbWVNb250aC5vZmZzZXQoeWVhck1vbnRoLCAxKSk7XG4gICAgICBpZiAobmV4dC52YWx1ZU9mKCkgPiBtYXgudmFsdWVPZigpKSByZXR1cm4gbnVsbDtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH0pLFxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0ZXNJblNlbGVjdGVkUmFuZ2UkOiBPYnNlcnZhYmxlPERhdGVbXT4gPVxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSQucGlwZShcbiAgICAgIG1hcChzZWxlY3RlZFZhbHVlID0+IHtcbiAgICAgICAgaWYgKCFzZWxlY3RlZFZhbHVlKSByZXR1cm4gW107XG4gICAgICAgIGlmIChzZWxlY3RlZFZhbHVlIGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuIFtzZWxlY3RlZFZhbHVlXTtcbiAgICAgICAgcmV0dXJuIHRpbWVEYXlzKFxuICAgICAgICAgIHRpbWVEYXkuZmxvb3Ioc2VsZWN0ZWRWYWx1ZVswXSksXG4gICAgICAgICAgdGltZURheS5mbG9vcih0aW1lRGF5Lm9mZnNldChzZWxlY3RlZFZhbHVlWzFdLCAxKSksXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSksXG4gICAgKTtcblxuICByZWFkb25seSBkYXRlcyQ6IE9ic2VydmFibGU8Q2FsZW5kYXJEYXRlW10+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5hY3RpdmVZZWFyTW9udGgkLFxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSQsXG4gICAgdGhpcy5kYXRlc0luU2VsZWN0ZWRSYW5nZSQsXG4gICAgdGhpcy5zZWxlY3RhYmxlTWluJCxcbiAgICB0aGlzLnNlbGVjdGFibGVNYXgkLFxuICAgIHRoaXMub21pdFJhbmdlJCxcbiAgXSkucGlwZShcbiAgICBtYXAoXG4gICAgICAoW1xuICAgICAgICBhY3RpdmVZZWFyTW9udGgsXG4gICAgICAgIHNlbGVjdGVkVmFsdWUsXG4gICAgICAgIGRhdGVzSW5TZWxlY3RlZFJhbmdlLFxuICAgICAgICBzZWxlY3RhYmxlTWluLFxuICAgICAgICBzZWxlY3RhYmxlTWF4LFxuICAgICAgICBvbWl0UmFuZ2UsXG4gICAgICBdKSA9PiB7XG4gICAgICAgIGNvbnN0IGNhbGVuZGFyRGF0ZXMgPSB0aW1lRGF5cyhcbiAgICAgICAgICB0aW1lU3VuZGF5LmZsb29yKGFjdGl2ZVllYXJNb250aCksXG4gICAgICAgICAgdGltZVN1bmRheS5jZWlsKHRpbWVNb250aC5vZmZzZXQoYWN0aXZlWWVhck1vbnRoLCAxKSksXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG1pbkNhbGVuZGFyRGF0ZSA9IGNhbGVuZGFyRGF0ZXNbMF07XG4gICAgICAgIGNvbnN0IG1heENhbGVuZGFyRGF0ZSA9IGNhbGVuZGFyRGF0ZXNbY2FsZW5kYXJEYXRlcy5sZW5ndGggLSAxXTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlQ29vcmRpbmF0ZXMgPSBuZXcgTWFwPG51bWJlciwgW251bWJlciwgbnVtYmVyXT4oKTtcbiAgICAgICAgY29uc3QgdmlzaWJsZURhdGVzSW5TZWxlY3RlZFJhbmdlID0gZGF0ZXNJblNlbGVjdGVkUmFuZ2UuZmlsdGVyKFxuICAgICAgICAgIHNlbGVjdGVkID0+XG4gICAgICAgICAgICBzZWxlY3RlZC52YWx1ZU9mKCkgPj0gbWluQ2FsZW5kYXJEYXRlLnZhbHVlT2YoKSAmJlxuICAgICAgICAgICAgc2VsZWN0ZWQudmFsdWVPZigpIDw9IG1heENhbGVuZGFyRGF0ZS52YWx1ZU9mKCkgJiZcbiAgICAgICAgICAgIChzZWxlY3RhYmxlTWluXG4gICAgICAgICAgICAgID8gc2VsZWN0ZWQudmFsdWVPZigpID49IHNlbGVjdGFibGVNaW4udmFsdWVPZigpXG4gICAgICAgICAgICAgIDogdHJ1ZSkgJiZcbiAgICAgICAgICAgIChzZWxlY3RhYmxlTWF4XG4gICAgICAgICAgICAgID8gc2VsZWN0ZWQudmFsdWVPZigpIDw9IHNlbGVjdGFibGVNYXgudmFsdWVPZigpXG4gICAgICAgICAgICAgIDogdHJ1ZSkgJiZcbiAgICAgICAgICAgIChvbWl0UmFuZ2VcbiAgICAgICAgICAgICAgPyBzZWxlY3RlZC52YWx1ZU9mKCkgPCBvbWl0UmFuZ2VbMF0udmFsdWVPZigpIHx8XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQudmFsdWVPZigpID4gb21pdFJhbmdlWzFdLnZhbHVlT2YoKVxuICAgICAgICAgICAgICA6IHRydWUpLFxuICAgICAgICApO1xuICAgICAgICBpZiAodmlzaWJsZURhdGVzSW5TZWxlY3RlZFJhbmdlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zdCBmaXJzdFZpc2libGVTZWxlY3RlZERhdGVPZmZzZXQgPSBnZXRXZWVrZGF5TnVtYmVyKFxuICAgICAgICAgICAgdmlzaWJsZURhdGVzSW5TZWxlY3RlZFJhbmdlWzBdLFxuICAgICAgICAgICk7XG4gICAgICAgICAgdmlzaWJsZURhdGVzSW5TZWxlY3RlZFJhbmdlLmZvckVhY2goKHNlbGVjdGVkLCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB4ID0gZ2V0V2Vla2RheU51bWJlcihzZWxlY3RlZCk7XG4gICAgICAgICAgICBjb25zdCB5ID0gTWF0aC5mbG9vcigoaSArIGZpcnN0VmlzaWJsZVNlbGVjdGVkRGF0ZU9mZnNldCkgLyA3KTtcbiAgICAgICAgICAgIHNlbGVjdGVkRGF0ZUNvb3JkaW5hdGVzLnNldChzZWxlY3RlZC52YWx1ZU9mKCksIFt4LCB5XSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc2VyaWFsaXplQ29vcmRpbmF0ZXMoY29vcmRpbmF0ZXM6IFtudW1iZXIsIG51bWJlcl0pOiBzdHJpbmcge1xuICAgICAgICAgIHJldHVybiBjb29yZGluYXRlcy5qb2luKCc6Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2aXNpYmxlRGF0ZXNJblNlbGVjdGVkUmFuZ2VDb29yZGluYXRlcyA9IG5ldyBTZXQoXG4gICAgICAgICAgWy4uLnNlbGVjdGVkRGF0ZUNvb3JkaW5hdGVzLnZhbHVlcygpXS5tYXAoc2VyaWFsaXplQ29vcmRpbmF0ZXMpLFxuICAgICAgICApO1xuXG4gICAgICAgIGZ1bmN0aW9uIGdldFJvdW5kZWRDb3JuZXJzKGRhdGU6IERhdGUpOiB7XG4gICAgICAgICAgbnc6IGJvb2xlYW47XG4gICAgICAgICAgbmU6IGJvb2xlYW47XG4gICAgICAgICAgc2U6IGJvb2xlYW47XG4gICAgICAgICAgc3c6IGJvb2xlYW47XG4gICAgICAgIH0ge1xuICAgICAgICAgIGNvbnN0IGNvb3JkaW5hdGVzID0gc2VsZWN0ZWREYXRlQ29vcmRpbmF0ZXMuZ2V0KGRhdGUudmFsdWVPZigpKTtcbiAgICAgICAgICBpZiAoIWNvb3JkaW5hdGVzKVxuICAgICAgICAgICAgcmV0dXJuIHsgbnc6IGZhbHNlLCBuZTogZmFsc2UsIHNlOiBmYWxzZSwgc3c6IGZhbHNlIH07XG4gICAgICAgICAgY29uc3QgW3gsIHldID0gY29vcmRpbmF0ZXM7XG4gICAgICAgICAgY29uc3QgdG9wID0gc2VyaWFsaXplQ29vcmRpbmF0ZXMoW3gsIHkgLSAxXSksXG4gICAgICAgICAgICByaWdodCA9IHNlcmlhbGl6ZUNvb3JkaW5hdGVzKFt4ICsgMSwgeV0pLFxuICAgICAgICAgICAgYm90dG9tID0gc2VyaWFsaXplQ29vcmRpbmF0ZXMoW3gsIHkgKyAxXSksXG4gICAgICAgICAgICBsZWZ0ID0gc2VyaWFsaXplQ29vcmRpbmF0ZXMoW3ggLSAxLCB5XSk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG53OlxuICAgICAgICAgICAgICAhdmlzaWJsZURhdGVzSW5TZWxlY3RlZFJhbmdlQ29vcmRpbmF0ZXMuaGFzKHRvcCkgJiZcbiAgICAgICAgICAgICAgIXZpc2libGVEYXRlc0luU2VsZWN0ZWRSYW5nZUNvb3JkaW5hdGVzLmhhcyhsZWZ0KSxcbiAgICAgICAgICAgIG5lOlxuICAgICAgICAgICAgICAhdmlzaWJsZURhdGVzSW5TZWxlY3RlZFJhbmdlQ29vcmRpbmF0ZXMuaGFzKHRvcCkgJiZcbiAgICAgICAgICAgICAgIXZpc2libGVEYXRlc0luU2VsZWN0ZWRSYW5nZUNvb3JkaW5hdGVzLmhhcyhyaWdodCksXG4gICAgICAgICAgICBzZTpcbiAgICAgICAgICAgICAgIXZpc2libGVEYXRlc0luU2VsZWN0ZWRSYW5nZUNvb3JkaW5hdGVzLmhhcyhyaWdodCkgJiZcbiAgICAgICAgICAgICAgIXZpc2libGVEYXRlc0luU2VsZWN0ZWRSYW5nZUNvb3JkaW5hdGVzLmhhcyhib3R0b20pLFxuICAgICAgICAgICAgc3c6XG4gICAgICAgICAgICAgICF2aXNpYmxlRGF0ZXNJblNlbGVjdGVkUmFuZ2VDb29yZGluYXRlcy5oYXMobGVmdCkgJiZcbiAgICAgICAgICAgICAgIXZpc2libGVEYXRlc0luU2VsZWN0ZWRSYW5nZUNvb3JkaW5hdGVzLmhhcyhib3R0b20pLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2aXNpYmxlRGF0ZXNJblNlbGVjdGVkUmFuZ2VWYWx1ZXMgPSBuZXcgU2V0KFxuICAgICAgICAgIHZpc2libGVEYXRlc0luU2VsZWN0ZWRSYW5nZS5tYXAoc2VsZWN0ZWQgPT4gc2VsZWN0ZWQudmFsdWVPZigpKSxcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCB0b2RheSA9IHRpbWVEYXkuZmxvb3IobmV3IERhdGUoKSk7XG5cbiAgICAgICAgcmV0dXJuIGNhbGVuZGFyRGF0ZXMubWFwKGRhdGUgPT4ge1xuICAgICAgICAgIGNvbnN0IHsgbncsIG5lLCBzZSwgc3cgfSA9IGdldFJvdW5kZWRDb3JuZXJzKGRhdGUpO1xuICAgICAgICAgIGNvbnN0IGRhdGVWYWx1ZSA9IGRhdGUudmFsdWVPZigpO1xuICAgICAgICAgIGNvbnN0IGluUmFuZ2UgPSB2aXNpYmxlRGF0ZXNJblNlbGVjdGVkUmFuZ2VWYWx1ZXMuaGFzKGRhdGVWYWx1ZSk7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBzZWxlY3RlZFZhbHVlXG4gICAgICAgICAgICA/IHNlbGVjdGVkVmFsdWUgaW5zdGFuY2VvZiBEYXRlXG4gICAgICAgICAgICAgID8gZGF0ZVZhbHVlID09PSBzZWxlY3RlZFZhbHVlLnZhbHVlT2YoKVxuICAgICAgICAgICAgICA6IGRhdGVWYWx1ZSA9PT0gc2VsZWN0ZWRWYWx1ZVswXS52YWx1ZU9mKCkgfHxcbiAgICAgICAgICAgICAgICBkYXRlVmFsdWUgPT09IHNlbGVjdGVkVmFsdWVbMV0udmFsdWVPZigpXG4gICAgICAgICAgICA6IGZhbHNlO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgZGlzcGxheTogZGF5Rm9ybWF0dGVyKGRhdGUpLFxuICAgICAgICAgICAgZmFkZUluOlxuICAgICAgICAgICAgICBpblJhbmdlICYmXG4gICAgICAgICAgICAgIChkYXRlVmFsdWUgPT09XG4gICAgICAgICAgICAgICAgTWF0aC5tYXgoXG4gICAgICAgICAgICAgICAgICBtaW5DYWxlbmRhckRhdGUudmFsdWVPZigpLFxuICAgICAgICAgICAgICAgICAgc2VsZWN0YWJsZU1pbj8udmFsdWVPZigpID8/IC1JbmZpbml0eSxcbiAgICAgICAgICAgICAgICApIHx8XG4gICAgICAgICAgICAgICAgZGF0ZVZhbHVlID09PVxuICAgICAgICAgICAgICAgICAgKG9taXRSYW5nZVxuICAgICAgICAgICAgICAgICAgICA/IHRpbWVEYXkub2Zmc2V0KG9taXRSYW5nZVsxXSwgMSkudmFsdWVPZigpXG4gICAgICAgICAgICAgICAgICAgIDogLUluZmluaXR5KSksXG4gICAgICAgICAgICBmYWRlT3V0OlxuICAgICAgICAgICAgICBpblJhbmdlICYmXG4gICAgICAgICAgICAgIChkYXRlVmFsdWUgPT09XG4gICAgICAgICAgICAgICAgTWF0aC5taW4oXG4gICAgICAgICAgICAgICAgICBtYXhDYWxlbmRhckRhdGUudmFsdWVPZigpLFxuICAgICAgICAgICAgICAgICAgc2VsZWN0YWJsZU1heD8udmFsdWVPZigpID8/IEluZmluaXR5LFxuICAgICAgICAgICAgICAgICkgfHxcbiAgICAgICAgICAgICAgICBkYXRlVmFsdWUgPT09XG4gICAgICAgICAgICAgICAgICAob21pdFJhbmdlXG4gICAgICAgICAgICAgICAgICAgID8gdGltZURheS5vZmZzZXQob21pdFJhbmdlWzBdLCAtMSkudmFsdWVPZigpXG4gICAgICAgICAgICAgICAgICAgIDogSW5maW5pdHkpKSxcbiAgICAgICAgICAgIGhpZGRlbjpcbiAgICAgICAgICAgICAgZGF0ZVZhbHVlIDwgKHNlbGVjdGFibGVNaW4/LnZhbHVlT2YoKSA/PyAtSW5maW5pdHkpIHx8XG4gICAgICAgICAgICAgIGRhdGVWYWx1ZSA+IChzZWxlY3RhYmxlTWF4Py52YWx1ZU9mKCkgPz8gSW5maW5pdHkpIHx8XG4gICAgICAgICAgICAgIChvbWl0UmFuZ2VcbiAgICAgICAgICAgICAgICA/IG9taXRSYW5nZVswXS52YWx1ZU9mKCkgPD0gZGF0ZVZhbHVlICYmXG4gICAgICAgICAgICAgICAgICBkYXRlVmFsdWUgPD0gb21pdFJhbmdlWzFdLnZhbHVlT2YoKVxuICAgICAgICAgICAgICAgIDogZmFsc2UpLFxuICAgICAgICAgICAgaW5DdXJyZW50TW9udGg6XG4gICAgICAgICAgICAgIGRhdGVWYWx1ZSA+PSBhY3RpdmVZZWFyTW9udGgudmFsdWVPZigpICYmXG4gICAgICAgICAgICAgIGRhdGVWYWx1ZSA8IHRpbWVNb250aC5vZmZzZXQoYWN0aXZlWWVhck1vbnRoLCAxKS52YWx1ZU9mKCksXG4gICAgICAgICAgICBpblJhbmdlLFxuICAgICAgICAgICAgcm91bmRlZE5lOiBuZSxcbiAgICAgICAgICAgIHJvdW5kZWROdzogbncsXG4gICAgICAgICAgICByb3VuZGVkU2U6IHNlLFxuICAgICAgICAgICAgcm91bmRlZFN3OiBzdyxcbiAgICAgICAgICAgIHNlbGVjdGVkLFxuICAgICAgICAgICAgdG9kYXk6IGRhdGVWYWx1ZSA9PT0gdG9kYXkudmFsdWVPZigpLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSksXG4gICk7XG5cbiAgc2VsZWN0RGF5KGRheTogQ2FsZW5kYXJEYXRlKSB7XG4gICAgaWYgKCFkYXkuaW5DdXJyZW50TW9udGgpIHtcbiAgICAgIHRoaXMuYWN0aXZlWWVhck1vbnRoQ2hhbmdlLmVtaXQodGltZU1vbnRoLmZsb29yKGRheS5kYXRlKSk7XG4gICAgfVxuICAgIHRoaXMuZGF0ZVNlbGVjdC5lbWl0KGRheS5kYXRlKTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBhY3RpdmVZZWFyTW9udGhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG5cbiAgZW1pdEFjdGl2ZVllYXJNb250aCh5ZWFyTW9udGg6IERhdGUgfCBudWxsKSB7XG4gICAgaWYgKHllYXJNb250aCkgdGhpcy5hY3RpdmVZZWFyTW9udGhDaGFuZ2UuZW1pdCh5ZWFyTW9udGgpO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIGRhdGVTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ2FsZW5kYXJDb21wb25lbnQge1xuICBleHBvcnQgY29uc3QgZGVmYXVsdE1pbiA9IHRpbWVZZWFyLmZsb29yKHRpbWVZZWFyLm9mZnNldChuZXcgRGF0ZSgpLCAtNykpO1xuICBleHBvcnQgY29uc3QgZGVmYXVsdE1heCA9IHRpbWVEYXkub2Zmc2V0KFxuICAgIHRpbWVZZWFyLmZsb29yKHRpbWVZZWFyLm9mZnNldChuZXcgRGF0ZSgpLCA1KSksXG4gICAgLTEsXG4gICk7XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udHJvbHNcIj5cbiAgPGRpdj5cbiAgICA8cml2LXNpbXBsZS1zZWxlY3RcbiAgICAgIFtmaWx0ZXJhYmlsaXR5T3B0aW9uc109XCJ7IGVuYWJsZWQ6IHRydWUsIHBsYWNlaG9sZGVyOiAnTW9udGguLi4nIH1cIlxuICAgICAgW29wdGlvbkdyb3Vwc109XCJtb250aE9wdGlvbnMkIHwgYXN5bmMgfCByaXZPcHRpb25Hcm91cFwiXG4gICAgICBbc2VsZWN0ZWRPcHRpb25dPVwic2VsZWN0ZWRNb250aE9wdGlvbiQgfCBhc3luY1wiXG4gICAgICAoc2VsZWN0ZWRPcHRpb25DaGFuZ2UpPVwiZW1pdEFjdGl2ZVllYXJNb250aCgkZXZlbnQ/LmRhdGUgPz8gbnVsbClcIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjdHJpZ2dlciBsZXQtc3RhdGU9XCJzdGF0ZVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgcml2QnV0dG9uXG4gICAgICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgICAgW2ljb25dPVwiJ0NoZXZyb25Eb3duJ1wiXG4gICAgICAgICAgW2ljb25Qb3NpdGlvbl09XCInbGFzdCdcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgc3RhdGUuZGlzcGxheS5zZWxlY3RlZCB8fCAnLi4uJyB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9yaXYtc2ltcGxlLXNlbGVjdD5cbiAgICA8cml2LXNpbXBsZS1zZWxlY3RcbiAgICAgIFtmaWx0ZXJhYmlsaXR5T3B0aW9uc109XCJ7IGVuYWJsZWQ6IHRydWUsIHBsYWNlaG9sZGVyOiAnWWVhci4uLicgfVwiXG4gICAgICBbb3B0aW9uR3JvdXBzXT1cInllYXJPcHRpb25zJCB8IGFzeW5jIHwgcml2T3B0aW9uR3JvdXBcIlxuICAgICAgW3NlbGVjdGVkT3B0aW9uXT1cInNlbGVjdGVkWWVhck9wdGlvbiQgfCBhc3luY1wiXG4gICAgICAoc2VsZWN0ZWRPcHRpb25DaGFuZ2UpPVwiZW1pdEFjdGl2ZVllYXJNb250aCgkZXZlbnQ/LmRhdGUgPz8gbnVsbClcIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjdHJpZ2dlciBsZXQtc3RhdGU9XCJzdGF0ZVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgcml2QnV0dG9uXG4gICAgICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgICAgW2ljb25dPVwiJ0NoZXZyb25Eb3duJ1wiXG4gICAgICAgICAgW2ljb25Qb3NpdGlvbl09XCInbGFzdCdcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgc3RhdGUuZGlzcGxheS5zZWxlY3RlZCB8fCAnLi4uJyB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9yaXYtc2ltcGxlLXNlbGVjdD5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICAqbmdJZj1cInsgcHJldjogcHJldmlvdXNNb250aCQgfCBhc3luYywgbmV4dDogbmV4dE1vbnRoJCB8IGFzeW5jIH07IGxldCB2bVwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICByaXZCdXR0b25cbiAgICAgIFtzaXplXT1cIidzbWFsbCdcIlxuICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICBbaWNvbl09XCInQXJyb3dMZWZ0J1wiXG4gICAgICBbZGlzYWJsZWRdPVwiIXZtLnByZXZcIlxuICAgICAgKGNsaWNrKT1cInZtLnByZXYgPyBhY3RpdmVZZWFyTW9udGhDaGFuZ2UuZW1pdCh2bS5wcmV2KSA6IG51bGxcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPjwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIHJpdkJ1dHRvblxuICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICBbdmFyaWFudF09XCInZ2hvc3QnXCJcbiAgICAgIFtpY29uXT1cIidBcnJvd1JpZ2h0J1wiXG4gICAgICBbZGlzYWJsZWRdPVwiIXZtLm5leHRcIlxuICAgICAgKGNsaWNrKT1cInZtLm5leHQgPyBhY3RpdmVZZWFyTW9udGhDaGFuZ2UuZW1pdCh2bS5uZXh0KSA6IG51bGxcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPjwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImNhbGVuZGFyXCI+XG4gIDxzcGFuIGNsYXNzPVwibGFiZWxcIj5TdTwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPk1vPC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+VHU8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwibGFiZWxcIj5XZTwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPlRoPC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+RnI8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwibGFiZWxcIj5TYTwvc3Bhbj5cbiAgPGJ1dHRvblxuICAgICpuZ0Zvcj1cImxldCBkYXkgb2YgZGF0ZXMkIHwgYXN5bmNcIlxuICAgIGNsYXNzPVwiZGF5XCJcbiAgICBbZGlzYWJsZWRdPVwiZGF5LmhpZGRlblwiXG4gICAgW2NsYXNzLmJsZWVkXT1cIiFkYXkuaW5DdXJyZW50TW9udGhcIlxuICAgIFtjbGFzcy5mYWRlLWluXT1cImRheS5mYWRlSW5cIlxuICAgIFtjbGFzcy5mYWRlLW91dF09XCJkYXkuZmFkZU91dFwiXG4gICAgW2NsYXNzLmluLXJhbmdlXT1cImRheS5pblJhbmdlXCJcbiAgICBbY2xhc3Mucm91bmRlZC1uZV09XCJkYXkucm91bmRlZE5lXCJcbiAgICBbY2xhc3Mucm91bmRlZC1ud109XCJkYXkucm91bmRlZE53XCJcbiAgICBbY2xhc3Mucm91bmRlZC1zZV09XCJkYXkucm91bmRlZFNlXCJcbiAgICBbY2xhc3Mucm91bmRlZC1zd109XCJkYXkucm91bmRlZFN3XCJcbiAgICAoY2xpY2spPVwic2VsZWN0RGF5KGRheSlcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICA+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiZGF5LXdyYXBwZXJcIlxuICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImRheS5zZWxlY3RlZFwiXG4gICAgICBbY2xhc3MudG9kYXldPVwiZGF5LnRvZGF5XCJcbiAgICAgIFtjbGFzcy5oaWRkZW5dPVwiZGF5LmhpZGRlblwiXG4gICAgPlxuICAgICAge3sgZGF5LmRpc3BsYXkgfX1cbiAgICA8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|