@bizdoc/core 1.11.0-next.9 → 1.11.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/assets/themes/brown.min.css +18 -16
- package/assets/themes/dark.min.css +17 -15
- package/assets/themes/deep-purple-teal.min.css +92 -0
- package/assets/themes/default.min.css +18 -16
- package/assets/themes/green.min.css +18 -16
- package/assets/themes/indigo.min.css +18 -16
- package/esm2020/lib/compose/form.component.mjs +2 -2
- package/esm2020/lib/compose/trace/trace.component.mjs +2 -2
- package/esm2020/lib/core/controls/address.input.mjs +4 -3
- package/esm2020/lib/core/mailbox.service.mjs +1 -1
- package/esm2020/lib/cube/cube.service.mjs +8 -9
- package/esm2020/lib/cube/matrix/table.component.mjs +9 -9
- package/esm2020/lib/views/cube/cube-base.mjs +7 -9
- package/fesm2015/bizdoc-core.mjs +25 -28
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +25 -28
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/lib/core/mailbox.service.d.ts +1 -1
- package/lib/cube/cube.service.d.ts +0 -1
- package/package.json +1 -1
@@ -162,11 +162,11 @@ export class ComposeFormComponent {
|
|
162
162
|
if (retry > -1)
|
163
163
|
this.model.attachments.splice(retry, 1);
|
164
164
|
const model = this._constructAttachment(f);
|
165
|
-
this.model.attachments.push(model);
|
166
165
|
const observable = this._mailbox.upload(this.model.id, this.model.formId, this.model.version, f).
|
167
166
|
pipe(tap((r) => {
|
168
167
|
this._sb.toast(!exists ? 'UploadOk' : 'UploadVersionOk', f.name);
|
169
168
|
Object.assign(model, r, { progress: null, });
|
169
|
+
this.model.attachments.push(model);
|
170
170
|
this.working = false;
|
171
171
|
this.workingChange.emit(false);
|
172
172
|
}), catchError(e => {
|
@@ -429,4 +429,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
429
429
|
type: ViewChild,
|
430
430
|
args: ['component', { read: ViewContainerRef, static: true }]
|
431
431
|
}] } });
|
432
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUF5QixnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUE0QixLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV2SyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RFLE9BQU8sRUFBNEMsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUYsT0FBTyxFQUE2QixjQUFjLEVBQW1CLE1BQU0seUJBQXlCLENBQUM7QUFNckcsT0FBTyxFQUFFLE9BQU8sRUFBaUIsTUFBTSxZQUFZLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBTXJELE9BQU8sRUFBRSxZQUFZLEVBQW9CLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFeEUsb0JBQW9CO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUM7QUFTcEMsTUFBTSxPQUFPLG9CQUFvQjtJQXdCL0IsWUFDVSxNQUFhLEVBQ2IsUUFBd0IsRUFDeEIsU0FBeUIsRUFDekIsT0FBbUIsRUFDbkIsT0FBa0IsRUFDbEIsR0FBa0IsRUFDbEIsUUFBd0IsRUFDeEIsU0FBbUIsRUFDbkIsU0FBc0IsRUFDdEIsR0FBbUMsRUFDbkMsTUFBb0IsRUFDcEIsVUFBNEIsRUFDNUIsVUFBc0I7UUFadEIsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUNiLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQ3pCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQUNsQixRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsY0FBUyxHQUFULFNBQVMsQ0FBYTtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFnQztRQUNuQyxXQUFNLEdBQU4sTUFBTSxDQUFjO1FBQ3BCLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFuQ3RCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFHaEUsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNHLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUvRCxVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ0ssZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRTdELFVBQUssR0FBRyxLQUFLLENBQUM7UUFDSyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFcEQsYUFBUSxHQUFHLElBQUksQ0FBQztRQUN6QixZQUFPLEdBQWEsRUFBRSxDQUFDO1FBUU4sYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFnQmhELENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNyRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVM7bUJBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25FLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUU7Z0JBQ2hDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztvQkFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUN6QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQ3JGLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO3dCQUMzQixTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTO3FCQUNuQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTt3QkFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ3RCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDaEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQzthQUNMO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEcsQ0FBQyxJQUFJLENBQUMsT0FBTztnQkFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVcsQ0FBQyxRQUF1QjtRQUNqQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUNyQixNQUFNLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksMkNBQTJDLENBQUMsQ0FBQztRQUM3RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVc7WUFDdkIsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDMUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQy9CO2dCQUNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQzFDLEVBQUU7Z0JBQ0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUs7YUFDOUM7U0FDRixFQUFFLElBQUksQ0FBQyxTQUFTLENBQ2hCLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3hCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFM0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsUUFBOEIsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDOUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztZQUM3QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFDaEYsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSztZQUN4RSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFDTyxtQkFBbUIsQ0FBQyxFQUFTO1FBQ25DLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsVUFBOEIsRUFDakQsR0FBRyxHQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ3pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRTtnQkFDbkMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFDTyxhQUFhO1FBQ25CLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUNELFFBQVEsQ0FBQyxJQUFTO1FBQ2hCLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFDTyxtQkFBbUIsQ0FBQyxJQUFZO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFDTyxLQUFLLENBQUMsUUFBaUI7UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3pELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUN4RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNkLFFBQVE7Z0JBQ04sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtZQUNMLFFBQVE7Z0JBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELE1BQU0sQ0FBQyxLQUFhO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksTUFBZSxDQUFDO1FBQ3BCLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxNQUFNO2dCQUNULE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUUsQ0FBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuSCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxJQUFJLElBQUssQ0FBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1RyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMxQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDOUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQWEsRUFBRSxFQUFFO2dCQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FDWixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BELE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQy9CLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25CLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDTixXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNPLG9CQUFvQixDQUFDLElBQVU7UUFDckMsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ3hGLE9BQU87WUFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUNwQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSTtZQUNoQyxJQUFJLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBUztZQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDbkIsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ3RCLElBQUksRUFBRSxjQUFjLENBQUMsTUFBTTtTQUNkLENBQUM7SUFDbEIsQ0FBQztJQUNELEdBQUcsQ0FBQyxHQUFlO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRyxHQUFHLENBQUMsYUFBNkIsRUFBRTtZQUNsRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDakIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNPLE1BQU07UUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdkUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNwSCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUNPLFlBQVksQ0FBQyxDQUFTLEVBQUUsQ0FBUztRQUN2QyxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxLQUFLO1lBQzNDLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFZO1FBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFDRCxNQUFNO1FBQ0osTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFpQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFDRDs7O09BR0c7SUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUk7UUFDbEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBbUIsQ0FBQztRQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckMsSUFBSSxRQUFRLENBQUMsTUFBTTtZQUNqQixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQ3pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkMsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxNQUFNLEVBQUU7b0JBQ1gsUUFBUSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUMxQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDbEI7YUFDRjtpQkFDSSxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUM7Z0JBQ3hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7O2dCQUVoRSxPQUFRLE1BQThCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0RjtRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ0QsSUFBSTtRQUNGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM3RCxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDeEIsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDeEIsQ0FBQyxFQUFFLEdBQUcsRUFBRTtZQUNOLEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU07UUFDSixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzFELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDO1lBQ3JELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtZQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBQ0QsSUFBSTtRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUNELE9BQU87UUFDTCxPQUFPLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUU7Z0JBQ3BDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFNBQVM7YUFDN0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDaEIsSUFBSSxFQUFFLEVBQUU7b0JBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUNqQyxTQUFTLENBQUMsR0FBRyxFQUFFO3dCQUNiLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQzt3QkFDZixPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7d0JBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNqQyxDQUFDLEVBQ0MsQ0FBQyxDQUFDLEVBQUU7d0JBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7d0JBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQzt3QkFDbkMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUNoQixPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ3JCLENBQUMsQ0FBQyxDQUFDO2lCQUNSO3FCQUNJO29CQUNILE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDcEI7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksQ0FBQyxNQUFjO1FBQ2pCLE9BQU8sSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUM5QixJQUFJLEVBQUU7b0JBQ0osTUFBTTtvQkFDTixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUs7aUJBQ0c7Z0JBQ3JCLGlCQUFpQixFQUFFLElBQUk7YUFDeEIsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDaEMsSUFBSSxJQUFJLEVBQUU7b0JBQ1IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUNyQixNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO29CQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDOUIsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUMxRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDO3dCQUNuRSxTQUFTLENBQUMsR0FBRyxFQUFFO3dCQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7d0JBQ2pFLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO3dCQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDL0IsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO3dCQUNmLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDckIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO3dCQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO3dCQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7d0JBQ2hDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDaEIsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNyQixDQUFDLENBQUMsQ0FBQztpQkFDTjtxQkFDSTtvQkFDSCxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ2hCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDcEI7WUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUk7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN0RCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRTtnQkFDcEQsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRTthQUNuQixDQUFDLENBQUM7UUFDTCxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRDs7Ozs7O09BTUc7SUFDSyxZQUFZLENBQUMsUUFBaUMsRUFBRSxPQUFlLEVBQUUsR0FBRyxJQUFjO1FBQ3hGLElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssZUFBZTtZQUMvQyxRQUFRLFFBQVEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3JCLEtBQUssQ0FBQztvQkFDSixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO29CQUNuQyxNQUFNO2dCQUNSO29CQUNFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzVCOztZQUVELFFBQVEsUUFBUSxDQUFDLE1BQU0sRUFBRTtnQkFDdkIsS0FBSyxHQUFHO29CQUNOLE1BQU07Z0JBQ1IsS0FBSyxHQUFHLEVBQUUsaUJBQWlCO29CQUN6Qjt3QkFDRSxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLHNCQUE2QyxDQUFDO3dCQUN6RSxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUNkLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUNoRCxNQUFNO3FCQUNQO2dCQUNILEtBQUssR0FBRyxFQUFFLHVCQUF1QjtvQkFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNyQyxNQUFNO2dCQUNSO29CQUNFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO2FBQ3BDO0lBQ0wsQ0FBQztJQUNPLE9BQU8sQ0FBQyxLQUFxQjtRQUNuQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQy9CLEtBQUssRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxzQkFBc0I7U0FDL0UsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7aUhBbllVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHFmQW1CcEIsb0JBQW9CLG1JQUNDLGdCQUFnQixnRUN0RGxELG91QkFZQTsyRkRzQmEsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNFLGFBQWEsUUFFakI7d0JBQ0osS0FBSyxFQUFFLCtCQUErQjtxQkFDdkM7b2JBR1EsS0FBSztzQkFBYixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBR1AsT0FBTztzQkFETixLQUFLO2dCQUVhLGFBQWE7c0JBQS9CLE1BQU07Z0JBRVAsS0FBSztzQkFESixLQUFLO2dCQUVhLFdBQVc7c0JBQTdCLE1BQU07Z0JBRVAsS0FBSztzQkFESixLQUFLO2dCQUVhLFdBQVc7c0JBQTdCLE1BQU07Z0JBQ0UsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSStCLFlBQVk7c0JBQWhELFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDZ0IsV0FBVztzQkFBN0QsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2lCLFVBQVU7c0JBQTNFLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciwgT25EZXN0cm95LCBFbGVtZW50UmVmLCBWaWV3Q29udGFpbmVyUmVmLCBDb21wb25lbnQsIFZpZXdDaGlsZCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YsIGZyb20sIGZpbHRlciwgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwsIHRhcCwgc3dpdGNoTWFwLCBzdGFydFdpdGgsIG1hcCwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgaXNCb29sZWFuLCBpc1Byb21pc2UsIHF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBSZWNpcGllbnRNb2RlbCwgRm9ybSwgQWN0aW9uLCBBdHRhY2htZW50LCBBdHRhY2htZW50TW9kZSB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCwgVmlld01vZGUgfSBmcm9tICcuLi9jb3JlL2Jhc2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWFpbGJveFNlcnZpY2UsIEl0ZW1FeHRyYSwgRE9DVU1FTlRfTU9ERUwsIEF0dGFjaG1lbnRFeHRyYSB9IGZyb20gJy4uL2NvcmUvbWFpbGJveC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdWJTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9odWIuc2VydmljZSc7XHJcbmltcG9ydCB7IEd1aWRlU2VydmljZSB9IGZyb20gJy4uL2NvcmUvZ3VpZGUvZ3VpZGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9hY2NvdW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tICcuLi9jb3JlL2NvbXBvbmVudC1mYWN0b3J5LXJlc29sdmVyJztcclxuaW1wb3J0IHsgRm9ybVJlZiwgU2F2ZUV2ZW50QXJncyB9IGZyb20gJy4vZm9ybS1yZWYnO1xyXG5pbXBvcnQgeyBBdHRhY2htZW50c0NvbXBvbmVudCB9IGZyb20gJy4vYXR0YWNobWVudHMvYXR0YWNobWVudHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFnc0NvbXBvbmVudCB9IGZyb20gJy4vdGFnL3RhZ3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUG9wdXAgfSBmcm9tICcuLi9jb3JlL3BvcHVwL3BvcHVwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXJJbXBsIH0gZnJvbSBcIi4uL2NvcmUvcm91dGVyXCI7XHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBBY3Rpb25EaWFsb2csIEFjdGlvbkRpYWxvZ0RhdGEgfSBmcm9tICcuL2FjdGlvbi9hY3Rpb24uZGlhbG9nJztcclxuXHJcbi8qKiBzYXZlIGRyYWZ0IG1zICovXHJcbmV4cG9ydCBjb25zdCBBVVRPX1NBVkVfREVMQVkgPSA1MDAwO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAnZm9ybS1jb250YWluZXIgYml6ZG9jLWNvbXBvc2UnXHJcbiAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tcG9zZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBtb2RlbDogUmVjaXBpZW50TW9kZWw8YW55PjtcclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY2lwaWVudE1vZGVsPGFueT4+KCk7XHJcbiAgZm9ybTogRm9ybTtcclxuICBASW5wdXQoKVxyXG4gIHdvcmtpbmcgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgd29ya2luZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBASW5wdXQoKVxyXG4gIGRpcnR5ID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGRpcnR5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBJbnB1dCgpXHJcbiAgdmFsaWQgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmFsaWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQElucHV0KCkgbW9kZTogVmlld01vZGU7XHJcbiAgQElucHV0KCkgY29udGFjdHMgPSB0cnVlO1xyXG4gIGFjdGlvbnM6IEFjdGlvbltdID0gW107XHJcbiAgcGFnZTogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIGhlbHA6IHN0cmluZztcclxuICBAVmlld0NoaWxkKCdmaWxlJywgeyBzdGF0aWM6IHRydWUgfSkgX2ZpbGVFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoQXR0YWNobWVudHNDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIGF0dGFjaG1lbnRzOiBBdHRhY2htZW50c0NvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdjb21wb25lbnQnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KSBfY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG4gIHByaXZhdGUgX2Zvcm1SZWY6IEZvcm1SZWY7XHJcbiAgcHJpdmF0ZSBfaW5zdGFuY2U6IEZvcm1Db21wb25lbnQ8YW55PjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3BvcHVwOiBQb3B1cCxcclxuICAgIHByaXZhdGUgX21haWxib3g6IE1haWxib3hTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfYWNjb3VudHM6IEFjY291bnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXJJbXBsLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBfc25hY2tiYXI6IE1hdFNuYWNrQmFyLFxyXG4gICAgcHJpdmF0ZSBfY2Y6IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgX2d1aWRlOiBHdWlkZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9tZXNzYWdpbmc6IEh1YlNlcnZpY2VcclxuICApIHtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9maWxlRWxlbWVudC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuX2ZpbGVDaGFuZ2VMaXN0ZW5lci5iaW5kKHRoaXMpKTtcclxuICAgIHRoaXMuX21lc3NhZ2luZy5jYWxsYmFjayQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZShlID0+IHtcclxuICAgICAgdGhpcy5faW5zdGFuY2Uub25NZXNzYWdlXHJcbiAgICAgICAgJiYgdGhpcy5faW5zdGFuY2Uub25NZXNzYWdlKGUubWVzc2FnZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX21lc3NhZ2luZy51cGRhdGUkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgIGlmIChlLm1vZGVsLmlkID09PSB0aGlzLm1vZGVsLmlkKSB7XHJcbiAgICAgICAgKGUudXNlcklkICE9PSB0aGlzLl9zZXNzaW9uLnVzZXJJZCkgJiZcclxuICAgICAgICAgIHRoaXMuX2FjY291bnRzLmdldChlLnVzZXJJZCkuc3Vic2NyaWJlKHUgPT5cclxuICAgICAgICAgICAgdGhpcy5fc25hY2tiYXIub3Blbih0aGlzLl90cmFuc2xhdGUuZ2V0KCdNYWlsVmVyc2lvblVwZGF0ZScsIHRoaXMubW9kZWwubnVtYmVyLCB1Lm5hbWUpLFxyXG4gICAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ09LJyksIHtcclxuICAgICAgICAgICAgICBkaXJlY3Rpb246IHRoaXMuX3Nlc3Npb24uZGlyZWN0aW9uLFxyXG4gICAgICAgICAgICB9KS5vbkFjdGlvbigpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5fYXNzaWduKGUubW9kZWwpO1xyXG4gICAgICAgICAgICAgIHRoaXMuX3Jlc2V0KCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX21haWxib3guY2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSwgZmlsdGVyKGUgPT4gZS5pZCA9PT0gdGhpcy5tb2RlbC5pZCkpLnN1YnNjcmliZShlID0+IHtcclxuICAgICAgIXRoaXMud29ya2luZyAmJlxyXG4gICAgICAgIHRoaXMuX2Fzc2lnbihlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhfY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgdGhpcy5fZm9ybVJlZiAmJiB0aGlzLl9mb3JtUmVmLl9kZXN0cm95KCk7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9ybXMuZmluZChmID0+IGYubmFtZSA9PT0gdGhpcy5tb2RlbC5mb3JtSWQpO1xyXG4gICAgdGhpcy5oZWxwID0gdGhpcy5mb3JtLmd1aWRlO1xyXG4gICAgaWYgKCF0aGlzLmZvcm0udGVtcGxhdGUpXHJcbiAgICAgIHRocm93IChgRm9ybSAnJHt0aGlzLmZvcm0ubmFtZX0nIG1vZGVsIG1pc3NpbmcgJ1tUZW1wbGF0ZSgpXScgYXR0cmlidXRlLmApO1xyXG4gICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX2NmLnJlc29sdmUodGhpcy5mb3JtLnRlbXBsYXRlKTtcclxuICAgIHRoaXMuX2Zvcm1SZWYgPSBuZXcgRm9ybVJlZigpO1xyXG4gICAgdGhpcy5fZm9ybVJlZi5fbmF2aWdhdGluZy5cclxuICAgICAgc3Vic2NyaWJlKHAgPT4gdGhpcy5wYWdlID0gcCk7XHJcbiAgICB0aGlzLl9mb3JtUmVmLl9zdGF0ZUNoYW5nZS5waXBlKHN0YXJ0V2l0aCgpKS5cclxuICAgICAgc3Vic2NyaWJlKCgpID0+IHRoaXMuaGVscCA9IHRoaXMuX2Zvcm1SZWYuaGVscCk7XHJcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZShbXHJcbiAgICAgIHtcclxuICAgICAgICBwcm92aWRlOiBGb3JtUmVmLCB1c2VWYWx1ZTogdGhpcy5fZm9ybVJlZlxyXG4gICAgICB9LCB7XHJcbiAgICAgICAgcHJvdmlkZTogRE9DVU1FTlRfTU9ERUwsIHVzZVZhbHVlOiB0aGlzLm1vZGVsXHJcbiAgICAgIH1cclxuICAgIF0sIHRoaXMuX2luamVjdG9yXHJcbiAgICApO1xyXG4gICAgdGhpcy5fY29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLl9jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnksIDAsIGluamVjdG9yKTtcclxuXHJcbiAgICB0aGlzLl9pbnN0YW5jZSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBGb3JtQ29tcG9uZW50PGFueT47XHJcbiAgICB0aGlzLl9mb3JtUmVmLl9tb2RlID0gdGhpcy5faW5zdGFuY2UubW9kZSA9IHRoaXMubW9kZTtcclxuICAgIHRoaXMuX2luc3RhbmNlLmZvcm0uc3RhdHVzQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgY29uc3QgeyBkaXJ0eSwgdmFsaWQgfSA9IHRoaXMuX2luc3RhbmNlLmZvcm07XHJcbiAgICAgIHRoaXMuZGlydHkgPSBkaXJ0eTtcclxuICAgICAgdGhpcy5kaXJ0eUNoYW5nZS5lbWl0KGRpcnR5KTtcclxuICAgICAgdGhpcy52YWxpZCA9IHZhbGlkO1xyXG4gICAgICB0aGlzLnZhbGlkQ2hhbmdlLmVtaXQodmFsaWQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLm1vZGVsLmRyYWZ0ICYmIHRoaXMuX2luc3RhbmNlLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLFxyXG4gICAgICBkZWJvdW5jZVRpbWUoQVVUT19TQVZFX0RFTEFZKSkuc3Vic2NyaWJlKCgpID0+ICF0aGlzLndvcmtpbmcgJiYgdGhpcy5kaXJ0eSAmJlxyXG4gICAgICAgIHRoaXMuc2F2ZShmYWxzZSkuc3Vic2NyaWJlKCkpO1xyXG4gICAgdGhpcy5fcmVzZXQoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZmlsZUNoYW5nZUxpc3RlbmVyKGV2OiBFdmVudCkge1xyXG4gICAgY29uc3QgeyBmaWxlcyB9ID0gZXYuc3JjRWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50LFxyXG4gICAgICBhcnI6IEZpbGVbXSA9IFtdO1xyXG4gICAgaWYgKGZpbGVzICYmIGZpbGVzLmxlbmd0aCkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIGFyci5wdXNoKGZpbGVzW2ldKTtcclxuICAgICAgdGhpcy51cGxvYWQoYXJyKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX2ZpbGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuYXR0YWNobWVudHMubmdPbkNoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX2FwcGx5Q2hhbmdlcygpIHtcclxuICAgIE9iamVjdC5kZWVwQXNzaWduKHRoaXMubW9kZWwubW9kZWwsIHRoaXMuX2luc3RhbmNlLmZvcm0udmFsdWUpO1xyXG4gIH1cclxuICBuYXZpZ2F0ZShwYWdlOiBhbnkpIHtcclxuICAgIGNvbnN0IHBhZ2VuID0gcGFyc2VJbnQocGFnZSk7XHJcbiAgICB0aGlzLl9mb3JtUmVmLl9uYXZpZ2F0aW5nLm5leHQoaXNOYU4ocGFnZW4pID8gcGFnZSA6IHBhZ2VuKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZ2V0QWN0aW9uQWRqZWN0aXZlKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBhY3Rpb24gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuYWN0aW9ucy5maW5kKGEgPT4gYS5uYW1lID09PSBuYW1lKTtcclxuICAgIHJldHVybiAoYWN0aW9uLmFkamVjdGl2ZSB8fCBhY3Rpb24ucGFzdCB8fCBhY3Rpb24udGl0bGUpLnRvTG93ZXJDYXNlKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3NhdmUoZmVlZGJhY2s6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHRoaXMud29ya2luZyA9IHRydWU7XHJcbiAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdCh0cnVlKTtcclxuICAgIGNvbnN0IHsgaWQsIHZlcnNpb24sIGZvcm1JZCwgbW9kZWwsIGRyYWZ0IH0gPSB0aGlzLm1vZGVsO1xyXG4gICAgcmV0dXJuIHRoaXMuX21haWxib3guc2F2ZShpZCwgZm9ybUlkLCB2ZXJzaW9uLCBtb2RlbCkucGlwZShcclxuICAgICAgdGFwKG0gPT4ge1xyXG4gICAgICAgIHRoaXMuX2Fzc2lnbihtKTtcclxuICAgICAgICB0aGlzLl9yZXNldCgpO1xyXG4gICAgICAgIGZlZWRiYWNrICYmXHJcbiAgICAgICAgICB0aGlzLl9zYi50b2FzdChkcmFmdCA/ICdEcmFmdFNhdmVkJyA6ICdDaGFuZ2VzU2F2ZWQnKTtcclxuICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgIH0sIGUgPT4ge1xyXG4gICAgICAgIGZlZWRiYWNrICYmXHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFcnJvcihlLCAnU2F2ZUVycicpO1xyXG4gICAgICAgIHRoaXMud29ya2luZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgfSksIG1hcCgoKSA9PiB0cnVlKSk7XHJcbiAgfVxyXG4gIHVwbG9hZChmaWxlczogRmlsZVtdKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHRoaXMud29ya2luZyA9IHRydWU7XHJcbiAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdCh0cnVlKTtcclxuICAgIGxldCBleGlzdHM6IGJvb2xlYW47XHJcbiAgICBjb25zdCBvYnNlcnZhYmxlcyA9IFtdO1xyXG4gICAgZmlsZXMuZm9yRWFjaChmID0+IHtcclxuICAgICAgaWYgKCFleGlzdHMpXHJcbiAgICAgICAgZXhpc3RzID0gdGhpcy5tb2RlbC5hdHRhY2htZW50cy5zb21lKGEgPT4gYS5maWxlTmFtZSA9PT0gZi5uYW1lICYmICFhLmRlbGV0ZWQgJiYgIShhIGFzIEF0dGFjaG1lbnRFeHRyYSkuZmFpbGVkKTtcclxuICAgICAgY29uc3QgcmV0cnkgPSB0aGlzLm1vZGVsLmF0dGFjaG1lbnRzLmZpbmRJbmRleChhID0+IGEuZmlsZU5hbWUgPT09IGYubmFtZSAmJiAoYSBhcyBBdHRhY2htZW50RXh0cmEpLmZhaWxlZCk7XHJcbiAgICAgIGlmIChyZXRyeSA+IC0xKVxyXG4gICAgICAgIHRoaXMubW9kZWwuYXR0YWNobWVudHMuc3BsaWNlKHJldHJ5LCAxKTtcclxuICAgICAgY29uc3QgbW9kZWwgPSB0aGlzLl9jb25zdHJ1Y3RBdHRhY2htZW50KGYpO1xyXG4gICAgICB0aGlzLm1vZGVsLmF0dGFjaG1lbnRzLnB1c2gobW9kZWwpO1xyXG4gICAgICBjb25zdCBvYnNlcnZhYmxlID0gdGhpcy5fbWFpbGJveC51cGxvYWQodGhpcy5tb2RlbC5pZCwgdGhpcy5tb2RlbC5mb3JtSWQsIHRoaXMubW9kZWwudmVyc2lvbiwgZikuXHJcbiAgICAgICAgcGlwZSh0YXAoKHI6IEF0dGFjaG1lbnQpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3NiLnRvYXN0KFxyXG4gICAgICAgICAgICAhZXhpc3RzID8gJ1VwbG9hZE9rJyA6ICdVcGxvYWRWZXJzaW9uT2snLCBmLm5hbWUpO1xyXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihtb2RlbCwgciwgeyBwcm9ncmVzczogbnVsbCwgfSk7XHJcbiAgICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICB9KSwgY2F0Y2hFcnJvcihlID0+IHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUVycm9yKGUsICdVcGxvYWRGYWlsZWQnLCBmLm5hbWUpO1xyXG4gICAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgICAgIH0pKTtcclxuICAgICAgb2JzZXJ2YWJsZXMucHVzaChvYnNlcnZhYmxlKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZvcmtKb2luKG9ic2VydmFibGVzKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY29uc3RydWN0QXR0YWNobWVudChmaWxlOiBGaWxlKSB7XHJcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpLCB1dGMgPSBuZXcgRGF0ZShub3cuZ2V0VGltZSgpICsgbm93LmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMCk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB1c2VySWQ6IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS51c2VySWQsXHJcbiAgICAgIGJ5SWQ6IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5ieUlkLFxyXG4gICAgICB0aW1lOiB1dGMudG9KU09OKCkgYXMgYW55LFxyXG4gICAgICBmaWxlTmFtZTogZmlsZS5uYW1lLFxyXG4gICAgICBjb250ZW50VHlwZTogZmlsZS50eXBlLFxyXG4gICAgICBtb2RlOiBBdHRhY2htZW50TW9kZS5QdWJsaWNcclxuICAgIH0gYXMgQXR0YWNobWVudDtcclxuICB9XHJcbiAgdGFnKGV2dDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5fcG9wdXAub3BlbihUYWdzQ29tcG9uZW50LCAoZXZ0LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLCB7XHJcbiAgICAgIGRhdGE6IHRoaXMubW9kZWxcclxuICAgIH0pXHJcbiAgfVxyXG4gIHByaXZhdGUgX3Jlc2V0KCkge1xyXG4gICAgdGhpcy5faW5zdGFuY2Uub25CaW5kKHRoaXMubW9kZWwpO1xyXG4gICAgdGhpcy5faW5zdGFuY2UuZm9ybS5wYXRjaFZhbHVlKHRoaXMubW9kZWwubW9kZWwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICF0aGlzLl9pbnN0YW5jZS5mb3JtLnByaXN0aW5lICYmIHRoaXMuX2luc3RhbmNlLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcclxuICAgIHRoaXMudmFsaWQgPSB0aGlzLl9pbnN0YW5jZS5mb3JtLnZhbGlkO1xyXG4gICAgdGhpcy52YWxpZENoYW5nZS5lbWl0KHRoaXMudmFsaWQpO1xyXG4gICAgdGhpcy5kaXJ0eSA9IGZhbHNlO1xyXG4gICAgdGhpcy5kaXJ0eUNoYW5nZS5lbWl0KHRoaXMuZGlydHkpO1xyXG4gICAgdGhpcy5hY3Rpb25zID0gdGhpcy5tb2RlbC5hY3Rpb25zID8gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmlsdGVyKGEgPT4gdGhpcy5tb2RlbC5hY3Rpb25zLmluZGV4T2YoYS5uYW1lKSA+IC0xKS5cclxuICAgICAgc29ydCh0aGlzLl9zb3J0QWN0aW9ucykgOiBbXTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfc29ydEFjdGlvbnMoYTogQWN0aW9uLCBiOiBBY3Rpb24pIHtcclxuICAgIGlmIChhLmdyb3VwICYmIGIuZ3JvdXAgJiYgYS5ncm91cCAhPT0gYi5ncm91cClcclxuICAgICAgcmV0dXJuIGEuZ3JvdXAgPCBiLmdyb3VwID8gLTEgOiAxO1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG5cclxuICBndWlkZShuYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2d1aWRlLnN0YXJ0KG5hbWUpO1xyXG4gIH1cclxuICBhdHRhY2goKSB7XHJcbiAgICBjb25zdCBlbGVtID0gdGhpcy5fZmlsZUVsZW1lbnQubmF0aXZlRWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgZWxlbS5jbGljaygpO1xyXG4gIH1cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBmZWVkYmFja1xyXG4gICAqL1xyXG4gIHNhdmUoZmVlZGJhY2sgPSB0cnVlKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICB0aGlzLl9hcHBseUNoYW5nZXMoKTtcclxuICAgIGNvbnN0IHNhdmVBcmdzID0geyBjYW5jZWw6IGZhbHNlIH0gYXMgU2F2ZUV2ZW50QXJncztcclxuICAgIHRoaXMuX2Zvcm1SZWYuX3NhdmluZy5uZXh0KHNhdmVBcmdzKTtcclxuICAgIGlmIChzYXZlQXJncy5jYW5jZWwpXHJcbiAgICAgIHJldHVybiBvZihmYWxzZSk7XHJcbiAgICBpZiAodGhpcy5faW5zdGFuY2Uub25TYXZlKSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2luc3RhbmNlLm9uU2F2ZSgpO1xyXG4gICAgICBpZiAoaXNCb29sZWFuKHJlc3VsdCkpIHtcclxuICAgICAgICBpZiAoIXJlc3VsdCkge1xyXG4gICAgICAgICAgZmVlZGJhY2sgJiYgdGhpcy5fc2IudG9hc3QoJ1ZhbGlkYXRlRXJyJyk7XHJcbiAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChpc1Byb21pc2UocmVzdWx0KSlcclxuICAgICAgICByZXR1cm4gZnJvbShyZXN1bHQpLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMuX3NhdmUoZmVlZGJhY2spKSk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICByZXR1cm4gKHJlc3VsdCBhcyBPYnNlcnZhYmxlPGJvb2xlYW4+KS5waXBlKHN3aXRjaE1hcCgoKSA9PiB0aGlzLl9zYXZlKGZlZWRiYWNrKSkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX3NhdmUoZmVlZGJhY2spO1xyXG4gIH1cclxuICBmbGFnKCkge1xyXG4gICAgY29uc3QgZXh0cmEgPSB0aGlzLm1vZGVsIGFzIEl0ZW1FeHRyYSwgeyBmbGFnIH0gPSB0aGlzLm1vZGVsO1xyXG4gICAgZXh0cmEud29ya2luZyA9IHRydWU7XHJcbiAgICB0aGlzLndvcmtpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5fbWFpbGJveC5mbGFnKHRoaXMubW9kZWwuaWQsICFmbGFnKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLm1vZGVsLmZsYWcgPSAhZmxhZztcclxuICAgICAgZXh0cmEud29ya2luZyA9IGZhbHNlO1xyXG4gICAgfSwgKCkgPT4ge1xyXG4gICAgICBleHRyYS53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMud29ya2luZyA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHN1Ym1pdCgpIHtcclxuICAgIHRoaXMuX2FwcGx5Q2hhbmdlcygpO1xyXG4gICAgY29uc3QgeyBpZCwgdmVyc2lvbiwgZm9ybUlkLCBtb2RlbCwgbnVtYmVyIH0gPSB0aGlzLm1vZGVsO1xyXG4gICAgdGhpcy53b3JraW5nID0gdHJ1ZTtcclxuICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgcmV0dXJuIHRoaXMuX21haWxib3guc3VibWl0KGlkLCB2ZXJzaW9uLCBmb3JtSWQsIG1vZGVsKS5cclxuICAgICAgcGlwZSh0YXAoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3NiLnRvYXN0KCdTdWJtaXR0ZWQnLCBudW1iZXIpO1xyXG4gICAgICAgIHRoaXMud29ya2luZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgfSwgZSA9PiB7XHJcbiAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuX2hhbmRsZUVycm9yKGUsICdTdWJtaXRFcnInKTtcclxuICAgICAgfSkpO1xyXG4gIH1cclxuICBiYWNrKCkge1xyXG4gICAgdGhpcy5fZm9ybVJlZi5uYXZpZ2F0ZSgpO1xyXG4gIH1cclxuICBkaXNjYXJkKCkge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgICB0aGlzLl9zYi5hc2soJ0Rpc2NhcmRBc2snLCAnRGlzY2FyZCcsIHtcclxuICAgICAgICBjb2xvcjogJ3dhcm4nLCBvazogJ0Rpc2NhcmQnXHJcbiAgICAgIH0pLnN1YnNjcmliZShvayA9PiB7XHJcbiAgICAgICAgaWYgKG9rKSB7XHJcbiAgICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdCh0cnVlKTtcclxuICAgICAgICAgIHRoaXMuX21haWxib3guZGVsZXRlKHRoaXMubW9kZWwuaWQpLlxyXG4gICAgICAgICAgICBzdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIG9ic2VydmUubmV4dCgpO1xyXG4gICAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgZSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZUVycm9yKGUsICdOZXR3b3JrRXJyJyk7XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlLmVycm9yKCk7XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgc2VuZChhY3Rpb246IHN0cmluZykge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgICB0aGlzLl9kaWFsb2cub3BlbihBY3Rpb25EaWFsb2csIHtcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICBhY3Rpb24sXHJcbiAgICAgICAgICBpdGVtOiB0aGlzLm1vZGVsXHJcbiAgICAgICAgfSBhcyBBY3Rpb25EaWFsb2dEYXRhLFxyXG4gICAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiB0cnVlXHJcbiAgICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKGFyZ3MgPT4ge1xyXG4gICAgICAgIGlmIChhcmdzKSB7XHJcbiAgICAgICAgICB0aGlzLl9hcHBseUNoYW5nZXMoKTtcclxuICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHF1ZXJ5UGFyYW1zKGFyZ3MpO1xyXG4gICAgICAgICAgdGhpcy53b3JraW5nID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgICAgICAgY29uc3QgeyBpZCwgdmVyc2lvbiwgbnVtYmVyLCBtb2RlbCwgZm9ybUlkIH0gPSB0aGlzLm1vZGVsO1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuX21haWxib3guc2VuZChpZCwgdmVyc2lvbiwgZm9ybUlkLCBtb2RlbCwgYWN0aW9uLCBwYXJhbXMpLlxyXG4gICAgICAgICAgICBzdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuX3NiLnRvYXN0KCdTZW50JywgbnVtYmVyLCB0aGlzLl9nZXRBY3Rpb25BZGplY3RpdmUoYWN0aW9uKSk7XHJcbiAgICAgICAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgIG9ic2VydmUubmV4dCgpO1xyXG4gICAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgfSwgZSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgIHRoaXMuX2hhbmRsZUVycm9yKGUsICdTZW5kRXJyJyk7XHJcbiAgICAgICAgICAgICAgb2JzZXJ2ZS5lcnJvcigpO1xyXG4gICAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5lcnJvcigpO1xyXG4gICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb3B5KCkge1xyXG4gICAgdGhpcy5fbWFpbGJveC5jb3B5KHRoaXMubW9kZWwuZG9jdW1lbnRJZCkuc3Vic2NyaWJlKGkgPT4ge1xyXG4gICAgICB0aGlzLl9zYi50b2FzdCgnQ29waWVkJywgaS5udW1iZXIgfHwgdGhpcy5mb3JtLnRpdGxlKTtcclxuICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnbWFpbGJveC9pJywgaS5pZC5lbmNvZGVJZCgpXSwge1xyXG4gICAgICAgIHN0YXRlOiB7IGl0ZW06IGkgfVxyXG4gICAgICB9KTtcclxuICAgIH0sICgpID0+IHRoaXMuX3NiLmVycm9yKCkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSByZXNwb25zZVxyXG4gICAqIEBwYXJhbSBpdGVtXHJcbiAgICogQHBhcmFtIG1lc3NhZ2UgcmVzb3VyY2VcclxuICAgKiBAcGFyYW0gYXJnc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgX2hhbmRsZUVycm9yKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSwgbWVzc2FnZTogc3RyaW5nLCAuLi5hcmdzOiBzdHJpbmdbXSkge1xyXG4gICAgaWYgKHJlc3BvbnNlLmNvbnN0cnVjdG9yLm5hbWUgPT09ICdQb3NpdGlvbkVycm9yJylcclxuICAgICAgc3dpdGNoIChyZXNwb25zZS5jb2RlKSB7XHJcbiAgICAgICAgY2FzZSAxOlxyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3IoJ1VzZXJEZW5pZWRHZW9FcnInKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvcignR2VvRXJyJyk7XHJcbiAgICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgc3dpdGNoIChyZXNwb25zZS5zdGF0dXMpIHtcclxuICAgICAgICBjYXNlIDQwMTpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNDA5OiAvLyB2ZXJzaW9uIGNoYW5nZVxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBjb25zdCBvYmogPSByZXNwb25zZS5lcnJvciAvKiBzZXJpYWxpemVkIG1vZGVsICovIGFzIFJlY2lwaWVudE1vZGVsPGFueT47XHJcbiAgICAgICAgICAgIG9iaiAmJiB0aGlzLl9hc3NpZ24ob2JqKTtcclxuICAgICAgICAgICAgdGhpcy5fcmVzZXQoKTtcclxuICAgICAgICAgICAgdGhpcy5fc2IuZXJyb3IoJ1ZlcnNpb25FcnInLCB0aGlzLm1vZGVsLm51bWJlcik7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgNDA2OiAvLyB2YWxpZGF0aW9uIGV4Y2VwdGlvblxyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3JTdHJpbmcocmVzcG9uc2UuZXJyb3IpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHRoaXMuX3NiLmVycm9yKG1lc3NhZ2UsIC4uLmFyZ3MpO1xyXG4gICAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX2Fzc2lnbihtb2RlbDogUmVjaXBpZW50TW9kZWwpIHtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5tb2RlbCwgbW9kZWwsIHtcclxuICAgICAgbW9kZWw6IE9iamVjdC5kZWVwQXNzaWduKHRoaXMubW9kZWwubW9kZWwsIG1vZGVsLm1vZGVsKSAvLyBwcmVzZXJ2ZSBvYmplY3QgcmVmXHJcbiAgICB9KTtcclxuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsKTtcclxuICAgIHRoaXMuX2Zvcm1SZWYuX21vZGVsQ2hhbmdlLm5leHQodGhpcy5tb2RlbCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWhlYWRlclwiPlxyXG4gIDxiaXpkb2MtcGVvcGxlIFttb2RlbF09XCJtb2RlbFwiICpuZ0lmPVwibW9kZSAhPT0gJ2NvbXBvc2UnICYmIGNvbnRhY3RzXCI+PC9iaXpkb2MtcGVvcGxlPlxyXG4gIDxiaXpkb2MtYXR0YWNobWVudHMgW21vZGVsXT1cIm1vZGVsXCIgW2luY2x1ZGVEZWxldGVkXT1cInRydWVcIiBbdmlld2VkSW5kaWNhdG9yXT1cImZhbHNlXCI+PC9iaXpkb2MtYXR0YWNobWVudHM+XHJcbiAgPGRpdiAqbmdJZj1cIiFtb2RlbC5yZXBsaWVkICYmIG1vZGUgIT09ICdjb21wb3NlJyAmJiBtb2RlbC5ub3RlXCIgY2xhc3M9XCJjb21wb3NlLW5vdGVcIj5cclxuICAgIDxtYXQtaWNvbiBjb2xvcj1cInByaW1hcnlcIj5pbmZvPC9tYXQtaWNvbj4gPHNwYW4gY2xhc3M9XCJtYXQtYm9keS0yXCI+e3ttb2RlbC5ub3RlfX08L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cIm1vZGVsLnRhZ3NcIj5cclxuICAgIDxzcGFuICpuZ0Zvcj1cImxldCB0YWcgb2YgbW9kZWwudGFnc1wiIGNsYXNzPVwibWF0LWNoaXAgbWF0LXN0YW5kYXJkLWNoaXAgc21hbGwtY2hpcFwiPnt7dGFnfX08L3NwYW4+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48bmctY29udGFpbmVyICNjb21wb25lbnQ+PC9uZy1jb250YWluZXI+XHJcbjxmb3JtIHN0eWxlPVwiZGlzcGxheTpub25lXCI+PGlucHV0IHR5cGU9XCJmaWxlXCIgI2ZpbGUgbXVsdGlwbGUgLz48L2Zvcm0+XHJcbiJdfQ==
|
432
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUF5QixnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUE0QixLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV2SyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RFLE9BQU8sRUFBNEMsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUYsT0FBTyxFQUE2QixjQUFjLEVBQW1CLE1BQU0seUJBQXlCLENBQUM7QUFNckcsT0FBTyxFQUFFLE9BQU8sRUFBaUIsTUFBTSxZQUFZLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBTXJELE9BQU8sRUFBRSxZQUFZLEVBQW9CLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFeEUsb0JBQW9CO0FBQ3BCLE1BQU0sQ0FBQyxNQUFN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QVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7O2lIQW5ZVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixxZkFtQnBCLG9CQUFvQixtSUFDQyxnQkFBZ0IsZ0VDdERsRCxvdUJBWUE7MkZEc0JhLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxhQUFhLFFBRWpCO3dCQUNKLEtBQUssRUFBRSwrQkFBK0I7cUJBQ3ZDO29iQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUdQLE9BQU87c0JBRE4sS0FBSztnQkFFYSxhQUFhO3NCQUEvQixNQUFNO2dCQUVQLEtBQUs7c0JBREosS0FBSztnQkFFYSxXQUFXO3NCQUE3QixNQUFNO2dCQUVQLEtBQUs7c0JBREosS0FBSztnQkFFYSxXQUFXO3NCQUE3QixNQUFNO2dCQUNFLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUkrQixZQUFZO3NCQUFoRCxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2dCLFdBQVc7c0JBQTdELFNBQVM7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNpQixVQUFVO3NCQUEzRSxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IsIE9uRGVzdHJveSwgRWxlbWVudFJlZiwgVmlld0NvbnRhaW5lclJlZiwgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgSW5wdXQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBmcm9tLCBmaWx0ZXIsIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsLCB0YXAsIHN3aXRjaE1hcCwgc3RhcnRXaXRoLCBtYXAsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGlzQm9vbGVhbiwgaXNQcm9taXNlLCBxdWVyeVBhcmFtcyB9IGZyb20gJy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgUmVjaXBpZW50TW9kZWwsIEZvcm0sIEFjdGlvbiwgQXR0YWNobWVudCwgQXR0YWNobWVudE1vZGUgfSBmcm9tICcuLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IEZvcm1Db21wb25lbnQsIFZpZXdNb2RlIH0gZnJvbSAnLi4vY29yZS9iYXNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IE1haWxib3hTZXJ2aWNlLCBJdGVtRXh0cmEsIERPQ1VNRU5UX01PREVMLCBBdHRhY2htZW50RXh0cmEgfSBmcm9tICcuLi9jb3JlL21haWxib3guc2VydmljZSc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gJy4uL2NvcmUvaHViLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHdWlkZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2d1aWRlL2d1aWRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uL2NvcmUvYWNjb3VudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIH0gZnJvbSAnLi4vY29yZS9jb21wb25lbnQtZmFjdG9yeS1yZXNvbHZlcic7XHJcbmltcG9ydCB7IEZvcm1SZWYsIFNhdmVFdmVudEFyZ3MgfSBmcm9tICcuL2Zvcm0tcmVmJztcclxuaW1wb3J0IHsgQXR0YWNobWVudHNDb21wb25lbnQgfSBmcm9tICcuL2F0dGFjaG1lbnRzL2F0dGFjaG1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhZ3NDb21wb25lbnQgfSBmcm9tICcuL3RhZy90YWdzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBvcHVwIH0gZnJvbSAnLi4vY29yZS9wb3B1cC9wb3B1cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVySW1wbCB9IGZyb20gXCIuLi9jb3JlL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQWN0aW9uRGlhbG9nLCBBY3Rpb25EaWFsb2dEYXRhIH0gZnJvbSAnLi9hY3Rpb24vYWN0aW9uLmRpYWxvZyc7XHJcblxyXG4vKiogc2F2ZSBkcmFmdCBtcyAqL1xyXG5leHBvcnQgY29uc3QgQVVUT19TQVZFX0RFTEFZID0gNTAwMDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ2Zvcm0tY29udGFpbmVyIGJpemRvYy1jb21wb3NlJ1xyXG4gIH1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbXBvc2VGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgbW9kZWw6IFJlY2lwaWVudE1vZGVsPGFueT47XHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNpcGllbnRNb2RlbDxhbnk+PigpO1xyXG4gIGZvcm06IEZvcm07XHJcbiAgQElucHV0KClcclxuICB3b3JraW5nID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHdvcmtpbmdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQElucHV0KClcclxuICBkaXJ0eSA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBkaXJ0eUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBASW5wdXQoKVxyXG4gIHZhbGlkID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbGlkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBJbnB1dCgpIG1vZGU6IFZpZXdNb2RlO1xyXG4gIEBJbnB1dCgpIGNvbnRhY3RzID0gdHJ1ZTtcclxuICBhY3Rpb25zOiBBY3Rpb25bXSA9IFtdO1xyXG4gIHBhZ2U6IHN0cmluZyB8IG51bWJlcjtcclxuICBoZWxwOiBzdHJpbmc7XHJcbiAgQFZpZXdDaGlsZCgnZmlsZScsIHsgc3RhdGljOiB0cnVlIH0pIF9maWxlRWxlbWVudDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKEF0dGFjaG1lbnRzQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBhdHRhY2htZW50czogQXR0YWNobWVudHNDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnY29tcG9uZW50JywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSkgX2NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuICBwcml2YXRlIF9mb3JtUmVmOiBGb3JtUmVmO1xyXG4gIHByaXZhdGUgX2luc3RhbmNlOiBGb3JtQ29tcG9uZW50PGFueT47XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9wb3B1cDogUG9wdXAsXHJcbiAgICBwcml2YXRlIF9tYWlsYm94OiBNYWlsYm94U2VydmljZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRzOiBBY2NvdW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVySW1wbCxcclxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSBfc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgX3NuYWNrYmFyOiBNYXRTbmFja0JhcixcclxuICAgIHByaXZhdGUgX2NmOiBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcml2YXRlIF9ndWlkZTogR3VpZGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbWVzc2FnaW5nOiBIdWJTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZmlsZUVsZW1lbnQubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLl9maWxlQ2hhbmdlTGlzdGVuZXIuYmluZCh0aGlzKSk7XHJcbiAgICB0aGlzLl9tZXNzYWdpbmcuY2FsbGJhY2skLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgIHRoaXMuX2luc3RhbmNlLm9uTWVzc2FnZVxyXG4gICAgICAgICYmIHRoaXMuX2luc3RhbmNlLm9uTWVzc2FnZShlLm1lc3NhZ2UpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9tZXNzYWdpbmcudXBkYXRlJC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICBpZiAoZS5tb2RlbC5pZCA9PT0gdGhpcy5tb2RlbC5pZCkge1xyXG4gICAgICAgIChlLnVzZXJJZCAhPT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpICYmXHJcbiAgICAgICAgICB0aGlzLl9hY2NvdW50cy5nZXQoZS51c2VySWQpLnN1YnNjcmliZSh1ID0+XHJcbiAgICAgICAgICAgIHRoaXMuX3NuYWNrYmFyLm9wZW4odGhpcy5fdHJhbnNsYXRlLmdldCgnTWFpbFZlcnNpb25VcGRhdGUnLCB0aGlzLm1vZGVsLm51bWJlciwgdS5uYW1lKSxcclxuICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGUuZ2V0KCdPSycpLCB7XHJcbiAgICAgICAgICAgICAgZGlyZWN0aW9uOiB0aGlzLl9zZXNzaW9uLmRpcmVjdGlvbixcclxuICAgICAgICAgICAgfSkub25BY3Rpb24oKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuX2Fzc2lnbihlLm1vZGVsKTtcclxuICAgICAgICAgICAgICB0aGlzLl9yZXNldCgpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9tYWlsYm94LmNoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSksIGZpbHRlcihlID0+IGUuaWQgPT09IHRoaXMubW9kZWwuaWQpKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgICF0aGlzLndvcmtpbmcgJiZcclxuICAgICAgICB0aGlzLl9hc3NpZ24oZSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoX2NoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Zvcm1SZWYgJiYgdGhpcy5fZm9ybVJlZi5fZGVzdHJveSgpO1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmZvcm1zLmZpbmQoZiA9PiBmLm5hbWUgPT09IHRoaXMubW9kZWwuZm9ybUlkKTtcclxuICAgIHRoaXMuaGVscCA9IHRoaXMuZm9ybS5ndWlkZTtcclxuICAgIGlmICghdGhpcy5mb3JtLnRlbXBsYXRlKVxyXG4gICAgICB0aHJvdyAoYEZvcm0gJyR7dGhpcy5mb3JtLm5hbWV9JyBtb2RlbCBtaXNzaW5nICdbVGVtcGxhdGUoKV0nIGF0dHJpYnV0ZS5gKTtcclxuICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLl9jZi5yZXNvbHZlKHRoaXMuZm9ybS50ZW1wbGF0ZSk7XHJcbiAgICB0aGlzLl9mb3JtUmVmID0gbmV3IEZvcm1SZWYoKTtcclxuICAgIHRoaXMuX2Zvcm1SZWYuX25hdmlnYXRpbmcuXHJcbiAgICAgIHN1YnNjcmliZShwID0+IHRoaXMucGFnZSA9IHApO1xyXG4gICAgdGhpcy5fZm9ybVJlZi5fc3RhdGVDaGFuZ2UucGlwZShzdGFydFdpdGgoKSkuXHJcbiAgICAgIHN1YnNjcmliZSgoKSA9PiB0aGlzLmhlbHAgPSB0aGlzLl9mb3JtUmVmLmhlbHApO1xyXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoW1xyXG4gICAgICB7XHJcbiAgICAgICAgcHJvdmlkZTogRm9ybVJlZiwgdXNlVmFsdWU6IHRoaXMuX2Zvcm1SZWZcclxuICAgICAgfSwge1xyXG4gICAgICAgIHByb3ZpZGU6IERPQ1VNRU5UX01PREVMLCB1c2VWYWx1ZTogdGhpcy5tb2RlbFxyXG4gICAgICB9XHJcbiAgICBdLCB0aGlzLl9pbmplY3RvclxyXG4gICAgKTtcclxuICAgIHRoaXMuX2NvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5fY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5LCAwLCBpbmplY3Rvcik7XHJcblxyXG4gICAgdGhpcy5faW5zdGFuY2UgPSBjb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgRm9ybUNvbXBvbmVudDxhbnk+O1xyXG4gICAgdGhpcy5fZm9ybVJlZi5fbW9kZSA9IHRoaXMuX2luc3RhbmNlLm1vZGUgPSB0aGlzLm1vZGU7XHJcbiAgICB0aGlzLl9pbnN0YW5jZS5mb3JtLnN0YXR1c0NoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgZGlydHksIHZhbGlkIH0gPSB0aGlzLl9pbnN0YW5jZS5mb3JtO1xyXG4gICAgICB0aGlzLmRpcnR5ID0gZGlydHk7XHJcbiAgICAgIHRoaXMuZGlydHlDaGFuZ2UuZW1pdChkaXJ0eSk7XHJcbiAgICAgIHRoaXMudmFsaWQgPSB2YWxpZDtcclxuICAgICAgdGhpcy52YWxpZENoYW5nZS5lbWl0KHZhbGlkKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5tb2RlbC5kcmFmdCAmJiB0aGlzLl9pbnN0YW5jZS5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSxcclxuICAgICAgZGVib3VuY2VUaW1lKEFVVE9fU0FWRV9ERUxBWSkpLnN1YnNjcmliZSgoKSA9PiAhdGhpcy53b3JraW5nICYmIHRoaXMuZGlydHkgJiZcclxuICAgICAgICB0aGlzLnNhdmUoZmFsc2UpLnN1YnNjcmliZSgpKTtcclxuICAgIHRoaXMuX3Jlc2V0KCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2ZpbGVDaGFuZ2VMaXN0ZW5lcihldjogRXZlbnQpIHtcclxuICAgIGNvbnN0IHsgZmlsZXMgfSA9IGV2LnNyY0VsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudCxcclxuICAgICAgYXJyOiBGaWxlW10gPSBbXTtcclxuICAgIGlmIChmaWxlcyAmJiBmaWxlcy5sZW5ndGgpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkrKylcclxuICAgICAgICBhcnIucHVzaChmaWxlc1tpXSk7XHJcbiAgICAgIHRoaXMudXBsb2FkKGFycikuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLl9maWxlRWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbnVsbDtcclxuICAgICAgICB0aGlzLmF0dGFjaG1lbnRzLm5nT25DaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIF9hcHBseUNoYW5nZXMoKSB7XHJcbiAgICBPYmplY3QuZGVlcEFzc2lnbih0aGlzLm1vZGVsLm1vZGVsLCB0aGlzLl9pbnN0YW5jZS5mb3JtLnZhbHVlKTtcclxuICB9XHJcbiAgbmF2aWdhdGUocGFnZTogYW55KSB7XHJcbiAgICBjb25zdCBwYWdlbiA9IHBhcnNlSW50KHBhZ2UpO1xyXG4gICAgdGhpcy5fZm9ybVJlZi5fbmF2aWdhdGluZy5uZXh0KGlzTmFOKHBhZ2VuKSA/IHBhZ2UgOiBwYWdlbik7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2dldEFjdGlvbkFkamVjdGl2ZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgYWN0aW9uID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmluZChhID0+IGEubmFtZSA9PT0gbmFtZSk7XHJcbiAgICByZXR1cm4gKGFjdGlvbi5hZGplY3RpdmUgfHwgYWN0aW9uLnBhc3QgfHwgYWN0aW9uLnRpdGxlKS50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9zYXZlKGZlZWRiYWNrOiBib29sZWFuKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICB0aGlzLndvcmtpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICBjb25zdCB7IGlkLCB2ZXJzaW9uLCBmb3JtSWQsIG1vZGVsLCBkcmFmdCB9ID0gdGhpcy5tb2RlbDtcclxuICAgIHJldHVybiB0aGlzLl9tYWlsYm94LnNhdmUoaWQsIGZvcm1JZCwgdmVyc2lvbiwgbW9kZWwpLnBpcGUoXHJcbiAgICAgIHRhcChtID0+IHtcclxuICAgICAgICB0aGlzLl9hc3NpZ24obSk7XHJcbiAgICAgICAgdGhpcy5fcmVzZXQoKTtcclxuICAgICAgICBmZWVkYmFjayAmJlxyXG4gICAgICAgICAgdGhpcy5fc2IudG9hc3QoZHJhZnQgPyAnRHJhZnRTYXZlZCcgOiAnQ2hhbmdlc1NhdmVkJyk7XHJcbiAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICB9LCBlID0+IHtcclxuICAgICAgICBmZWVkYmFjayAmJlxyXG4gICAgICAgICAgdGhpcy5faGFuZGxlRXJyb3IoZSwgJ1NhdmVFcnInKTtcclxuICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgIH0pLCBtYXAoKCkgPT4gdHJ1ZSkpO1xyXG4gIH1cclxuICB1cGxvYWQoZmlsZXM6IEZpbGVbXSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLndvcmtpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICBsZXQgZXhpc3RzOiBib29sZWFuO1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBbXTtcclxuICAgIGZpbGVzLmZvckVhY2goZiA9PiB7XHJcbiAgICAgIGlmICghZXhpc3RzKVxyXG4gICAgICAgIGV4aXN0cyA9IHRoaXMubW9kZWwuYXR0YWNobWVudHMuc29tZShhID0+IGEuZmlsZU5hbWUgPT09IGYubmFtZSAmJiAhYS5kZWxldGVkICYmICEoYSBhcyBBdHRhY2htZW50RXh0cmEpLmZhaWxlZCk7XHJcbiAgICAgIGNvbnN0IHJldHJ5ID0gdGhpcy5tb2RlbC5hdHRhY2htZW50cy5maW5kSW5kZXgoYSA9PiBhLmZpbGVOYW1lID09PSBmLm5hbWUgJiYgKGEgYXMgQXR0YWNobWVudEV4dHJhKS5mYWlsZWQpO1xyXG4gICAgICBpZiAocmV0cnkgPiAtMSlcclxuICAgICAgICB0aGlzLm1vZGVsLmF0dGFjaG1lbnRzLnNwbGljZShyZXRyeSwgMSk7XHJcbiAgICAgIGNvbnN0IG1vZGVsID0gdGhpcy5fY29uc3RydWN0QXR0YWNobWVudChmKTtcclxuICAgICAgY29uc3Qgb2JzZXJ2YWJsZSA9IHRoaXMuX21haWxib3gudXBsb2FkKHRoaXMubW9kZWwuaWQsIHRoaXMubW9kZWwuZm9ybUlkLCB0aGlzLm1vZGVsLnZlcnNpb24sIGYpLlxyXG4gICAgICAgIHBpcGUodGFwKChyOiBBdHRhY2htZW50KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9zYi50b2FzdChcclxuICAgICAgICAgICAgIWV4aXN0cyA/ICdVcGxvYWRPaycgOiAnVXBsb2FkVmVyc2lvbk9rJywgZi5uYW1lKTtcclxuICAgICAgICAgIE9iamVjdC5hc3NpZ24obW9kZWwsIHIsIHsgcHJvZ3Jlc3M6IG51bGwsIH0pO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbC5hdHRhY2htZW50cy5wdXNoKG1vZGVsKTtcclxuICAgICAgICAgIHRoaXMud29ya2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgIH0pLCBjYXRjaEVycm9yKGUgPT4ge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlRXJyb3IoZSwgJ1VwbG9hZEZhaWxlZCcsIGYubmFtZSk7XHJcbiAgICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgIHJldHVybiBvZihmYWxzZSk7XHJcbiAgICAgICAgfSkpO1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKG9ic2VydmFibGUpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpO1xyXG4gIH1cclxuICBwcml2YXRlIF9jb25zdHJ1Y3RBdHRhY2htZW50KGZpbGU6IEZpbGUpIHtcclxuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCksIHV0YyA9IG5ldyBEYXRlKG5vdy5nZXRUaW1lKCkgKyBub3cuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHVzZXJJZDogdGhpcy5fc2Vzc2lvbi5wcm9maWxlLnVzZXJJZCxcclxuICAgICAgYnlJZDogdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmJ5SWQsXHJcbiAgICAgIHRpbWU6IHV0Yy50b0pTT04oKSBhcyBhbnksXHJcbiAgICAgIGZpbGVOYW1lOiBmaWxlLm5hbWUsXHJcbiAgICAgIGNvbnRlbnRUeXBlOiBmaWxlLnR5cGUsXHJcbiAgICAgIG1vZGU6IEF0dGFjaG1lbnRNb2RlLlB1YmxpY1xyXG4gICAgfSBhcyBBdHRhY2htZW50O1xyXG4gIH1cclxuICB0YWcoZXZ0OiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLl9wb3B1cC5vcGVuKFRhZ3NDb21wb25lbnQsIChldnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudCksIHtcclxuICAgICAgZGF0YTogdGhpcy5tb2RlbFxyXG4gICAgfSlcclxuICB9XHJcbiAgcHJpdmF0ZSBfcmVzZXQoKSB7XHJcbiAgICB0aGlzLl9pbnN0YW5jZS5vbkJpbmQodGhpcy5tb2RlbCk7XHJcbiAgICB0aGlzLl9pbnN0YW5jZS5mb3JtLnBhdGNoVmFsdWUodGhpcy5tb2RlbC5tb2RlbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgIXRoaXMuX2luc3RhbmNlLmZvcm0ucHJpc3RpbmUgJiYgdGhpcy5faW5zdGFuY2UuZm9ybS5tYXJrQXNQcmlzdGluZSgpO1xyXG4gICAgdGhpcy52YWxpZCA9IHRoaXMuX2luc3RhbmNlLmZvcm0udmFsaWQ7XHJcbiAgICB0aGlzLnZhbGlkQ2hhbmdlLmVtaXQodGhpcy52YWxpZCk7XHJcbiAgICB0aGlzLmRpcnR5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmRpcnR5Q2hhbmdlLmVtaXQodGhpcy5kaXJ0eSk7XHJcbiAgICB0aGlzLmFjdGlvbnMgPSB0aGlzLm1vZGVsLmFjdGlvbnMgPyB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuYWN0aW9ucy5maWx0ZXIoYSA9PiB0aGlzLm1vZGVsLmFjdGlvbnMuaW5kZXhPZihhLm5hbWUpID4gLTEpLlxyXG4gICAgICBzb3J0KHRoaXMuX3NvcnRBY3Rpb25zKSA6IFtdO1xyXG4gIH1cclxuICBwcml2YXRlIF9zb3J0QWN0aW9ucyhhOiBBY3Rpb24sIGI6IEFjdGlvbikge1xyXG4gICAgaWYgKGEuZ3JvdXAgJiYgYi5ncm91cCAmJiBhLmdyb3VwICE9PSBiLmdyb3VwKVxyXG4gICAgICByZXR1cm4gYS5ncm91cCA8IGIuZ3JvdXAgPyAtMSA6IDE7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcblxyXG4gIGd1aWRlKG5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fZ3VpZGUuc3RhcnQobmFtZSk7XHJcbiAgfVxyXG4gIGF0dGFjaCgpIHtcclxuICAgIGNvbnN0IGVsZW0gPSB0aGlzLl9maWxlRWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBlbGVtLmNsaWNrKCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZlZWRiYWNrXHJcbiAgICovXHJcbiAgc2F2ZShmZWVkYmFjayA9IHRydWUpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHRoaXMuX2FwcGx5Q2hhbmdlcygpO1xyXG4gICAgY29uc3Qgc2F2ZUFyZ3MgPSB7IGNhbmNlbDogZmFsc2UgfSBhcyBTYXZlRXZlbnRBcmdzO1xyXG4gICAgdGhpcy5fZm9ybVJlZi5fc2F2aW5nLm5leHQoc2F2ZUFyZ3MpO1xyXG4gICAgaWYgKHNhdmVBcmdzLmNhbmNlbClcclxuICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcclxuICAgIGlmICh0aGlzLl9pbnN0YW5jZS5vblNhdmUpIHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5faW5zdGFuY2Uub25TYXZlKCk7XHJcbiAgICAgIGlmIChpc0Jvb2xlYW4ocmVzdWx0KSkge1xyXG4gICAgICAgIGlmICghcmVzdWx0KSB7XHJcbiAgICAgICAgICBmZWVkYmFjayAmJiB0aGlzLl9zYi50b2FzdCgnVmFsaWRhdGVFcnInKTtcclxuICAgICAgICAgIHJldHVybiBvZihmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGlzUHJvbWlzZShyZXN1bHQpKVxyXG4gICAgICAgIHJldHVybiBmcm9tKHJlc3VsdCkucGlwZShzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fc2F2ZShmZWVkYmFjaykpKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHJldHVybiAocmVzdWx0IGFzIE9ic2VydmFibGU8Ym9vbGVhbj4pLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMuX3NhdmUoZmVlZGJhY2spKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fc2F2ZShmZWVkYmFjayk7XHJcbiAgfVxyXG4gIGZsYWcoKSB7XHJcbiAgICBjb25zdCBleHRyYSA9IHRoaXMubW9kZWwgYXMgSXRlbUV4dHJhLCB7IGZsYWcgfSA9IHRoaXMubW9kZWw7XHJcbiAgICBleHRyYS53b3JraW5nID0gdHJ1ZTtcclxuICAgIHRoaXMud29ya2luZyA9IHRydWU7XHJcbiAgICB0aGlzLl9tYWlsYm94LmZsYWcodGhpcy5tb2RlbC5pZCwgIWZsYWcpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMubW9kZWwuZmxhZyA9ICFmbGFnO1xyXG4gICAgICBleHRyYS53b3JraW5nID0gZmFsc2U7XHJcbiAgICB9LCAoKSA9PiB7XHJcbiAgICAgIGV4dHJhLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgc3VibWl0KCkge1xyXG4gICAgdGhpcy5fYXBwbHlDaGFuZ2VzKCk7XHJcbiAgICBjb25zdCB7IGlkLCB2ZXJzaW9uLCBmb3JtSWQsIG1vZGVsLCBudW1iZXIgfSA9IHRoaXMubW9kZWw7XHJcbiAgICB0aGlzLndvcmtpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICByZXR1cm4gdGhpcy5fbWFpbGJveC5zdWJtaXQoaWQsIHZlcnNpb24sIGZvcm1JZCwgbW9kZWwpLlxyXG4gICAgICBwaXBlKHRhcCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fc2IudG9hc3QoJ1N1Ym1pdHRlZCcsIG51bWJlcik7XHJcbiAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICB9LCBlID0+IHtcclxuICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5faGFuZGxlRXJyb3IoZSwgJ1N1Ym1pdEVycicpO1xyXG4gICAgICB9KSk7XHJcbiAgfVxyXG4gIGJhY2soKSB7XHJcbiAgICB0aGlzLl9mb3JtUmVmLm5hdmlnYXRlKCk7XHJcbiAgfVxyXG4gIGRpc2NhcmQoKSB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIHRoaXMuX3NiLmFzaygnRGlzY2FyZEFzaycsICdEaXNjYXJkJywge1xyXG4gICAgICAgIGNvbG9yOiAnd2FybicsIG9rOiAnRGlzY2FyZCdcclxuICAgICAgfSkuc3Vic2NyaWJlKG9rID0+IHtcclxuICAgICAgICBpZiAob2spIHtcclxuICAgICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgICAgICAgdGhpcy5fbWFpbGJveC5kZWxldGUodGhpcy5tb2RlbC5pZCkuXHJcbiAgICAgICAgICAgIHN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgb2JzZXJ2ZS5uZXh0KCk7XHJcbiAgICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBlID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMud29ya2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlRXJyb3IoZSwgJ05ldHdvcmtFcnInKTtcclxuICAgICAgICAgICAgICAgIG9ic2VydmUuZXJyb3IoKTtcclxuICAgICAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBzZW5kKGFjdGlvbjogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIHRoaXMuX2RpYWxvZy5vcGVuKEFjdGlvbkRpYWxvZywge1xyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgIGFjdGlvbixcclxuICAgICAgICAgIGl0ZW06IHRoaXMubW9kZWxcclxuICAgICAgICB9IGFzIEFjdGlvbkRpYWxvZ0RhdGEsXHJcbiAgICAgICAgY2xvc2VPbk5hdmlnYXRpb246IHRydWVcclxuICAgICAgfSkuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoYXJncyA9PiB7XHJcbiAgICAgICAgaWYgKGFyZ3MpIHtcclxuICAgICAgICAgIHRoaXMuX2FwcGx5Q2hhbmdlcygpO1xyXG4gICAgICAgICAgY29uc3QgcGFyYW1zID0gcXVlcnlQYXJhbXMoYXJncyk7XHJcbiAgICAgICAgICB0aGlzLndvcmtpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgICBjb25zdCB7IGlkLCB2ZXJzaW9uLCBudW1iZXIsIG1vZGVsLCBmb3JtSWQgfSA9IHRoaXMubW9kZWw7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5fbWFpbGJveC5zZW5kKGlkLCB2ZXJzaW9uLCBmb3JtSWQsIG1vZGVsLCBhY3Rpb24sIHBhcmFtcykuXHJcbiAgICAgICAgICAgIHN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5fc2IudG9hc3QoJ1NlbnQnLCBudW1iZXIsIHRoaXMuX2dldEFjdGlvbkFkamVjdGl2ZShhY3Rpb24pKTtcclxuICAgICAgICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgb2JzZXJ2ZS5uZXh0KCk7XHJcbiAgICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICB9LCBlID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5faGFuZGxlRXJyb3IoZSwgJ1NlbmRFcnInKTtcclxuICAgICAgICAgICAgICBvYnNlcnZlLmVycm9yKCk7XHJcbiAgICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBvYnNlcnZlLmVycm9yKCk7XHJcbiAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvcHkoKSB7XHJcbiAgICB0aGlzLl9tYWlsYm94LmNvcHkodGhpcy5tb2RlbC5kb2N1bWVudElkKS5zdWJzY3JpYmUoaSA9PiB7XHJcbiAgICAgIHRoaXMuX3NiLnRvYXN0KCdDb3BpZWQnLCBpLm51bWJlciB8fCB0aGlzLmZvcm0udGl0bGUpO1xyXG4gICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydtYWlsYm94L2knLCBpLmlkLmVuY29kZUlkKCldLCB7XHJcbiAgICAgICAgc3RhdGU6IHsgaXRlbTogaSB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSwgKCkgPT4gdGhpcy5fc2IuZXJyb3IoKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHJlc3BvbnNlXHJcbiAgICogQHBhcmFtIGl0ZW1cclxuICAgKiBAcGFyYW0gbWVzc2FnZSByZXNvdXJjZVxyXG4gICAqIEBwYXJhbSBhcmdzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfaGFuZGxlRXJyb3IocmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55LCBtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3M6IHN0cmluZ1tdKSB7XHJcbiAgICBpZiAocmVzcG9uc2UuY29uc3RydWN0b3IubmFtZSA9PT0gJ1Bvc2l0aW9uRXJyb3InKVxyXG4gICAgICBzd2l0Y2ggKHJlc3BvbnNlLmNvZGUpIHtcclxuICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvcignVXNlckRlbmllZEdlb0VycicpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHRoaXMuX3NiLmVycm9yKCdHZW9FcnInKTtcclxuICAgICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICBzd2l0Y2ggKHJlc3BvbnNlLnN0YXR1cykge1xyXG4gICAgICAgIGNhc2UgNDAxOlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA0MDk6IC8vIHZlcnNpb24gY2hhbmdlXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbnN0IG9iaiA9IHJlc3BvbnNlLmVycm9yIC8qIHNlcmlhbGl6ZWQgbW9kZWwgKi8gYXMgUmVjaXBpZW50TW9kZWw8YW55PjtcclxuICAgICAgICAgICAgb2JqICYmIHRoaXMuX2Fzc2lnbihvYmopO1xyXG4gICAgICAgICAgICB0aGlzLl9yZXNldCgpO1xyXG4gICAgICAgICAgICB0aGlzLl9zYi5lcnJvcignVmVyc2lvbkVycicsIHRoaXMubW9kZWwubnVtYmVyKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgY2FzZSA0MDY6IC8vIHZhbGlkYXRpb24gZXhjZXB0aW9uXHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvclN0cmluZyhyZXNwb25zZS5lcnJvcik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3IobWVzc2FnZSwgLi4uYXJncyk7XHJcbiAgICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfYXNzaWduKG1vZGVsOiBSZWNpcGllbnRNb2RlbCkge1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLm1vZGVsLCBtb2RlbCwge1xyXG4gICAgICBtb2RlbDogT2JqZWN0LmRlZXBBc3NpZ24odGhpcy5tb2RlbC5tb2RlbCwgbW9kZWwubW9kZWwpIC8vIHByZXNlcnZlIG9iamVjdCByZWZcclxuICAgIH0pO1xyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHRoaXMubW9kZWwpO1xyXG4gICAgdGhpcy5fZm9ybVJlZi5fbW9kZWxDaGFuZ2UubmV4dCh0aGlzLm1vZGVsKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZvcm0taGVhZGVyXCI+XHJcbiAgPGJpemRvYy1wZW9wbGUgW21vZGVsXT1cIm1vZGVsXCIgKm5nSWY9XCJtb2RlICE9PSAnY29tcG9zZScgJiYgY29udGFjdHNcIj48L2JpemRvYy1wZW9wbGU+XHJcbiAgPGJpemRvYy1hdHRhY2htZW50cyBbbW9kZWxdPVwibW9kZWxcIiBbaW5jbHVkZURlbGV0ZWRdPVwidHJ1ZVwiIFt2aWV3ZWRJbmRpY2F0b3JdPVwiZmFsc2VcIj48L2JpemRvYy1hdHRhY2htZW50cz5cclxuICA8ZGl2ICpuZ0lmPVwiIW1vZGVsLnJlcGxpZWQgJiYgbW9kZSAhPT0gJ2NvbXBvc2UnICYmIG1vZGVsLm5vdGVcIiBjbGFzcz1cImNvbXBvc2Utbm90ZVwiPlxyXG4gICAgPG1hdC1pY29uIGNvbG9yPVwicHJpbWFyeVwiPmluZm88L21hdC1pY29uPiA8c3BhbiBjbGFzcz1cIm1hdC1ib2R5LTJcIj57e21vZGVsLm5vdGV9fTwvc3Bhbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwibW9kZWwudGFnc1wiPlxyXG4gICAgPHNwYW4gKm5nRm9yPVwibGV0IHRhZyBvZiBtb2RlbC50YWdzXCIgY2xhc3M9XCJtYXQtY2hpcCBtYXQtc3RhbmRhcmQtY2hpcCBzbWFsbC1jaGlwXCI+e3t0YWd9fTwvc3Bhbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxuZy1jb250YWluZXIgI2NvbXBvbmVudD48L25nLWNvbnRhaW5lcj5cclxuPGZvcm0gc3R5bGU9XCJkaXNwbGF5Om5vbmVcIj48aW5wdXQgdHlwZT1cImZpbGVcIiAjZmlsZSBtdWx0aXBsZSAvPjwvZm9ybT5cclxuIl19
|
@@ -263,7 +263,7 @@ export class TraceViewComponent extends TraceBase {
|
|
263
263
|
}
|
264
264
|
trace.push(step);
|
265
265
|
}
|
266
|
-
this._data = trace;
|
266
|
+
this._data = trace.sort((a, b) => a.time > b.time ? 1 : a.time === b.time ? 0 : -1);
|
267
267
|
this._filter();
|
268
268
|
}
|
269
269
|
_filter() {
|
@@ -344,4 +344,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
344
344
|
}], versionSelected: [{
|
345
345
|
type: Output
|
346
346
|
}] } });
|
347
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb21wb3NlL3RyYWNlL3RyYWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29tcG9zZS90cmFjZS90cmFjZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUVqRyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFNMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUd6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQUVyRSxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUM7QUFJbEIsb0NBQW9DO0FBT3BDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxTQUFTO0lBVy9DLFlBQW9CLFFBQXdCLEVBQ2xDLFVBQTRCLEVBQzVCLFNBQXlCLEVBQ3pCLEtBQWUsRUFDdkIsR0FBZTtRQUNmLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUxPLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ2xDLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQ3pCLFVBQUssR0FBTCxLQUFLLENBQVU7UUFaTixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDOUQsU0FBSSxHQUFZLEVBQUUsQ0FBQztRQUVWLGtCQUFhLEdBQWlCO1lBQ3JDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxTQUFTO1lBQ3RELFFBQVEsRUFBRSxZQUFZ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TSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNEOzs7T0FHRztJQUNILE9BQU8sQ0FBQyxHQUFVO1FBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDOzsrR0FqVVUsa0JBQWtCO21HQUFsQixrQkFBa0IsNktDeEIvQixvNUZBbURBLDZxREQ3QmMsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDOzJGQUUvQixrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsY0FBYyxjQUdaLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQztpTkFHakMsS0FBSztzQkFBYixLQUFLO2dCQUNhLGVBQWU7c0JBQWpDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCB7IENhbGVuZGFyU3BlYyB9IGZyb20gXCIuLi8uLi9jb3JlL3BpcGVzL2NhbGVuZGFyLnBpcGVcIjtcclxuaW1wb3J0IHsgVXNlckluZm8sIExvZ1R5cGUsIERvY3VtZW50TW9kZWwsIEFjdGlvbiwgQXR0YWNobWVudCB9IGZyb20gXCIuLi8uLi9jb3JlL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9hY2NvdW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhY2VCYXNlIH0gZnJvbSBcIi4vdHJhY2UuYmFzZVwiO1xyXG5pbXBvcnQgeyBIdWJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvaHViLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ2hhdEluZm8gfSBmcm9tIFwiLi4vLi4vY2hhdC9jaGF0LWluZm9cIjtcclxuaW1wb3J0IHsgaXRlbUFuaW1hdGlvbiwgbGlzdEFuaW1hdGlvbiB9IGZyb20gXCIuLi8uLi9jb3JlL2FuaW1hdGlvbnNcIjtcclxuXHJcbmNvbnN0IFlvdSA9ICd5b3UnO1xyXG5cclxudHlwZSBVc2VySW5mb1lvdSA9IFVzZXJJbmZvIHwgJ3lvdSc7XHJcblxyXG4vKiogY29tcG9uZW50IHNob3dpbmcgdHJhY2UgdGFibGUgKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtdHJhY2UnLFxyXG4gIHRlbXBsYXRlVXJsOiAndHJhY2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWyd0cmFjZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtsaXN0QW5pbWF0aW9uLCBpdGVtQW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhY2VWaWV3Q29tcG9uZW50IGV4dGVuZHMgVHJhY2VCYXNlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBtb2RlbDogRG9jdW1lbnRNb2RlbDxhbnk+O1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSB2ZXJzaW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgZGF0YTogVHJhY2VbXSA9IFtdO1xyXG4gIHByaXZhdGUgX2RhdGE6IFRyYWNlW107XHJcbiAgcmVhZG9ubHkgQ0FMRU5EQVJfU1BFQzogQ2FsZW5kYXJTcGVjID0ge1xyXG4gICAgbGFzdERheTogYFske3RoaXMuX3RyYW5zbGF0ZS5nZXQoJ1llc3RlcmRheScpfV0gSEg6bW1gLFxyXG4gICAgbGFzdFdlZWs6ICdkZGRkIEhIOm1tJyxcclxuICAgIHNhbWVEYXk6IGBbJHt0aGlzLl90cmFuc2xhdGUuZ2V0KCdUb2RheScpfV0gSEg6bW1gLFxyXG4gICAgc2FtZUVsc2U6ICdNTU0gRG8gSEg6bW0nXHJcbiAgfTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRzOiBBY2NvdW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX2NoYXQ6IENoYXRJbmZvLFxyXG4gICAgaHViOiBIdWJTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihodWIpO1xyXG4gICAgdGhpcy5fc2hvd0FsbCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0cmFjZUFsbCcpICE9PSAnZmFsc2UnO1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhfY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgdGhpcy5faW5pdGlhbGlzZSgpO1xyXG4gIH1cclxuICBwcml2YXRlIGFzeW5jIF9pbml0aWFsaXNlKCkge1xyXG4gICAgY29uc3QgeyBvd25lcklkLCBvd25lckJ5SWQsIGlzc3VlZCwgbG9nLCByZWNpcGllbnRzLCBhdHRhY2htZW50cyB9ID0gdGhpcy5tb2RlbDtcclxuXHJcbiAgICBjb25zdCB0cmFjZTogVHJhY2VbXSA9IFtdO1xyXG5cclxuICAgIGZvciAobGV0IGwgb2YgbG9nKSB7XHJcbiAgICAgIGxldCBhY3Rpb246IEFjdGlvbiwgYXR0YWNobWVudDogQXR0YWNobWVudDtcclxuXHJcbiAgICAgIHN3aXRjaCAobC50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnQWN0aW9uVGFrZW4nOlxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBhY3Rpb24gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuYWN0aW9ucy5maW5kKGEgPT4gYS5uYW1lID09PSBsLmFjdGlvbik7XHJcbiAgICAgICAgICAgIGlmIChhY3Rpb24ubG9nZ2FibGUgPT09IGZhbHNlKVxyXG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICBjYXNlICdDaGVja0luJzpcclxuICAgICAgICBjYXNlICdDaGVja091dCc6XHJcbiAgICAgICAgICBpZiAoIXRoaXMuX3Nob3dBbGwpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgYXR0YWNobWVudCA9IGF0dGFjaG1lbnRzLmZpbmQoZiA9PiBmLmlkID09PSBsLmZpbGVJZCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdNb2RlbENoYW5nZSc6XHJcbiAgICAgICAgICBpZiAoIXRoaXMuX3Nob3dBbGwpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnU3VibWl0JzpcclxuICAgICAgICAgIGlmICghdGhpcy5fc2hvd0FsbCkgY29udGludWU7XHJcbiAgICAgICAgICBpZiAobC5lc3RpbWF0ZSkgY29udGludWU7XHJcbiAgICAgICAgICBjb25zdCBub2RlID0ge1xyXG4gICAgICAgICAgICB0eXBlOiAnT3duZXInLFxyXG4gICAgICAgICAgICB0aW1lOiBsLnRpbWVcclxuICAgICAgICAgIH0gYXMgVHJhY2U7XHJcbiAgICAgICAgICBpZiAob3duZXJCeUlkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG93bmVyID0gYXdhaXQgdGhpcy5fdXNlck9mKG93bmVySWQpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICBpZiAob3duZXJCeUlkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgICAgICBub2RlLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeVlvdScsIHRoaXMuX25hbWVPZihvd25lcikpO1xyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICBjb25zdCBieSA9IGF3YWl0IHRoaXMuX3VzZXJPZihvd25lckJ5SWQpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICAgIG5vZGUubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0J5JywgdGhpcy5fbmFtZU9mKG93bmVyKSwgdGhpcy5fbmFtZU9mKGJ5KSk7XHJcbiAgICAgICAgICAgICAgaWYgKGJ5LnJvbGUpIG5vZGUucm9sZSA9IGJ5LnJvbGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAob3duZXJJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICAgICAgbm9kZS5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnWW91Jyk7XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG93bmVyID0gYXdhaXQgdGhpcy5fdXNlck9mKG93bmVySWQpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICAgIG5vZGUubmFtZSA9IHRoaXMuX25hbWVPZihvd25lcik7XHJcblxyXG4gICAgICAgICAgICAgIGlmIChvd25lci5yb2xlKSBub2RlLnJvbGUgPSBvd25lci5yb2xlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0cmFjZS5wdXNoKG5vZGUpO1xyXG4gICAgICAgICAgY29udGludWU7XHJcblxyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3Qgc3RlcCA9IHsgLi4ubCB9IGFzIFRyYWNlO1xyXG5cclxuICAgICAgaWYgKGF0dGFjaG1lbnQpIHN0ZXAuZmlsZU5hbWUgPSBhdHRhY2htZW50LmZpbGVOYW1lO1xyXG5cclxuICAgICAgY29uc3Qgd2hvID0gYXdhaXQgdGhpcy5fdXNlck9mKGwudXNlcklkKS50b1Byb21pc2UoKTtcclxuXHJcbiAgICAgIGlmIChsLnJlY2lwaWVudElkKSB7XHJcbiAgICAgICAgY29uc3QgcmVjaXBpZW50ID0gcmVjaXBpZW50cy5maW5kKHIgPT4gci5pZCA9PT0gbC5yZWNpcGllbnRJZCk7XHJcbiAgICAgICAgaWYgKHJlY2lwaWVudC5yb2xlKSBzdGVwLnJvbGUgPSB0aGlzLl9yb2xlTmFtZShyZWNpcGllbnQucm9sZSk7XHJcbiAgICAgICAgaWYgKHJlY2lwaWVudC5ub2RlSWQpIHtcclxuICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLm1vZGVsLndvcmtmbG93Lm5vZGVzLmZpbmQobiA9PiBuLmlkID09PSByZWNpcGllbnQubm9kZUlkKTtcclxuICAgICAgICAgIHN0ZXAuZnlpID0gbm9kZSAmJiBub2RlLmZ5aTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZWNpcGllbnQuc3Vic3RpdHV0aW5nSWQpIHtcclxuICAgICAgICAgIGxldCBzdWJzdGl0dXRpbmcgPSBhd2FpdCB0aGlzLl91c2VyT2YocmVjaXBpZW50LnN1YnN0aXR1dGluZ0lkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgIGlmIChsLmJ5SWQpIHtcclxuICAgICAgICAgICAgaWYgKGwuYnlJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpIHtcclxuICAgICAgICAgICAgICBpZiAocmVjaXBpZW50LnN1YnN0aXR1dGluZ0lkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0J5WW91JywgdGhpcy5fbmFtZU9mKHdobykpO1xyXG4gICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3Vic3RpdHV0aW5nQnlZb3UnLCB3aG8uZ2VuZGVyLCB0aGlzLl9uYW1lT2Yod2hvKSwgdGhpcy5fbmFtZU9mKHN1YnN0aXR1dGluZykpO1xyXG4gICAgICAgICAgICAgIGlmIChhY3Rpb24pXHJcbiAgICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGFjdGlvbiA/IHRoaXMuX2FjdGlvbk5hbWUoYWN0aW9uLCBZb3UpIDogbC5hY3Rpb247XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgbGV0IGJ5ID0gYXdhaXQgdGhpcy5fdXNlck9mKGwuYnlJZCkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnU3Vic3RpdHV0aW5nQnknLCB0aGlzLl9uYW1lT2Yod2hvKSwgdGhpcy5fbmFtZU9mKHN1YnN0aXR1dGluZyksIHRoaXMuX25hbWVPZihieSkpO1xyXG4gICAgICAgICAgICAgIGlmIChieS5yb2xlKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5yb2xlID0gYnkucm9sZTtcclxuICAgICAgICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5hY3Rpb24gPSBhY3Rpb24gPyB0aGlzLl9hY3Rpb25OYW1lKGFjdGlvbiwgYnkpIDogbC5hY3Rpb247XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAocmVjaXBpZW50LnN1YnN0aXR1dGluZ0lkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZ0ZvcllvdScsIHdoby5nZW5kZXIsIHRoaXMuX25hbWVPZih3aG8pKTtcclxuICAgICAgICAgICAgZWxzZSBpZiAobC51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnWW91U3Vic3RpdHV0ZScsIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5ieUdlbmRlciwgdGhpcy5fbmFtZU9mKHdobykpO1xyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZycsIHdoby5nZW5kZXIsIHRoaXMuX25hbWVPZih3aG8pLCB0aGlzLl9uYW1lT2Yoc3Vic3RpdHV0aW5nKSk7XHJcbiAgICAgICAgICAgICAgaWYgKHdoby5yb2xlKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5yb2xlID0gd2hvLnJvbGU7XHJcbiAgICAgICAgICAgIH0gaWYgKGFjdGlvbilcclxuICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGFjdGlvbiA/IHRoaXMuX2FjdGlvbk5hbWUoYWN0aW9uLCB3aG8pIDogbC5hY3Rpb247XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGwuYnlJZCkge1xyXG4gICAgICAgICAgaWYgKGwuYnlJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpIHtcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnlZb3UnLCB0aGlzLl9uYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgICAgIGlmIChhY3Rpb24pXHJcbiAgICAgICAgICAgICAgc3RlcC5hY3Rpb24gPSBhY3Rpb24gPyB0aGlzLl9hY3Rpb25OYW1lKGFjdGlvbiwgWW91KSA6IGwuYWN0aW9uO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBieSA9IGF3YWl0IHRoaXMuX3VzZXJPZihsLmJ5SWQpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeScsIHRoaXMuX25hbWVPZih3aG8pLCB0aGlzLl9uYW1lT2YoYnkpKTtcclxuICAgICAgICAgICAgaWYgKGJ5LnJvbGUpXHJcbiAgICAgICAgICAgICAgc3RlcC5yb2xlID0gYnkucm9sZTtcclxuICAgICAgICAgICAgaWYgKGFjdGlvbilcclxuICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGFjdGlvbiA/IHRoaXMuX2FjdGlvbk5hbWUoYWN0aW9uLCBieSkgOiBsLmFjdGlvbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKGwudXNlcklkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdScpO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fbmFtZU9mKHdobyk7XHJcbiAgICAgICAgICBpZiAod2hvLnJvbGUpXHJcbiAgICAgICAgICAgIHN0ZXAucm9sZSA9IHdoby5yb2xlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgc3RlcC5hY3Rpb24gPSBhY3Rpb24gPyB0aGlzLl9hY3Rpb25OYW1lKGFjdGlvbiwgd2hvKSA6IGwuYWN0aW9uO1xyXG4gICAgICB9XHJcbiAgICAgIHRyYWNlLnB1c2goc3RlcCk7XHJcbiAgICB9XHJcbiAgICBmb3IgKHZhciByID0gMDsgciA8IHJlY2lwaWVudHMubGVuZ3RoOyByKyspIHtcclxuICAgICAgbGV0IHJlY2lwaWVudCA9IHJlY2lwaWVudHNbcl07XHJcbiAgICAgIGlmICghcmVjaXBpZW50LnBlbmRpbmcgJiYgIXJlY2lwaWVudC5lc3RpbWF0ZSkgY29udGludWU7XHJcbiAgICAgIGNvbnN0IHN0ZXAgPSB7XHJcbiAgICAgICAgLi4ucmVjaXBpZW50LFxyXG4gICAgICAgIHR5cGU6IHJlY2lwaWVudC5lc3RpbWF0ZSA/ICdFc3RpbWF0ZScgOiAnUGVuZGluZycsXHJcbiAgICAgICAgdGltZTogcmVjaXBpZW50LnJlY2VpdmVkLFxyXG4gICAgICAgIGR1cmF0aW9uOiByZWNpcGllbnQucGVuZGluZyA/IGRheWpzKCkuZGlmZihyZWNpcGllbnQucmVjZWl2ZWQsICdzJykgOiBudWxsLFxyXG4gICAgICAgIHJvbGU6IHJlY2lwaWVudC5yb2xlID8gdGhpcy5fcm9sZU5hbWUocmVjaXBpZW50LnJvbGUpIDogbnVsbFxyXG4gICAgICB9IGFzIFRyYWNlO1xyXG5cclxuICAgICAgaWYgKHJlY2lwaWVudC5ub2RlSWQpIHtcclxuICAgICAgICBjb25zdCBub2RlID0gdGhpcy5tb2RlbC53b3JrZmxvdy5ub2Rlcy5maW5kKG4gPT4gbi5pZCA9PT0gcmVjaXBpZW50Lm5vZGVJZCk7XHJcbiAgICAgICAgaWYgKG5vZGUpIHtcclxuICAgICAgICAgIGlmIChyZWNpcGllbnQuZXN0aW1hdGUpIHtcclxuICAgICAgICAgICAgY29uc3QgeyBtaW4sIG1heCB9ID0gc3VwZXIuX2VzdGltYXRlVGltZShub2RlKTtcclxuICAgICAgICAgICAgaWYgKG1heClcclxuICAgICAgICAgICAgICBzdGVwLmR1cmF0aW9uTWluID0gbWluLFxyXG4gICAgICAgICAgICAgICAgc3RlcC5kdXJhdGlvbk1heCA9IG1heDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHN0ZXAuZnlpID0gbm9kZS5meWk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgd2hvID0gYXdhaXQgdGhpcy5fdXNlck9mKHJlY2lwaWVudC51c2VySWQpLnRvUHJvbWlzZSgpO1xyXG5cclxuICAgICAgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRpbmdJZCkge1xyXG4gICAgICAgIGlmIChyZWNpcGllbnQuYnlJZCkge1xyXG4gICAgICAgICAgaWYgKHJlY2lwaWVudC5ieUlkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZCkge1xyXG4gICAgICAgICAgICBpZiAocmVjaXBpZW50LnN1YnN0aXR1dGluZ0lkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeVlvdScsIHRoaXMuX25hbWVPZih3aG8pKTtcclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgbGV0IHN1YnN0aXR1dGluZyA9IGF3YWl0IHRoaXMuX3VzZXJPZihyZWNpcGllbnQuc3Vic3RpdHV0aW5nSWQpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3Vic3RpdHV0aW5nQnlZb3UnLCB3aG8uZ2VuZGVyLCB0aGlzLl9uYW1lT2Yod2hvKSwgdGhpcy5fbmFtZU9mKHN1YnN0aXR1dGluZykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHN1YnN0aXR1dGluZyA9IGF3YWl0IHRoaXMuX3VzZXJPZihyZWNpcGllbnQuc3Vic3RpdHV0aW5nSWQpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICBsZXQgYnkgPSBhd2FpdCB0aGlzLl91c2VyT2YocmVjaXBpZW50LmJ5SWQpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTdWJzdGl0dXRpbmdCeScsIHRoaXMuX25hbWVPZih3aG8pLCB0aGlzLl9uYW1lT2Yoc3Vic3RpdHV0aW5nKSwgdGhpcy5fbmFtZU9mKGJ5KSk7XHJcbiAgICAgICAgICAgIGlmIChieS5yb2xlKVxyXG4gICAgICAgICAgICAgIHN0ZXAucm9sZSA9IGJ5LnJvbGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRpbmdJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3Vic3RpdHV0aW5nRm9yWW91Jywgd2hvLmdlbmRlciwgdGhpcy5fbmFtZU9mKHdobykpO1xyXG4gICAgICAgICAgZWxzZSBpZiAocmVjaXBpZW50LnVzZXJJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnWW91U3Vic3RpdHV0ZScsIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5ieUdlbmRlciwgdGhpcy5fbmFtZU9mKHdobykpO1xyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBzdWJzdGl0dXRpbmcgPSBhd2FpdCB0aGlzLl91c2VyT2YocmVjaXBpZW50LnN1YnN0aXR1dGluZ0lkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdTdWJzdGl0dXRpbmcnLCB3aG8uZ2VuZGVyLCB0aGlzLl9uYW1lT2Yod2hvKSwgdGhpcy5fbmFtZU9mKHN1YnN0aXR1dGluZykpO1xyXG4gICAgICAgICAgICBpZiAod2hvLnJvbGUpXHJcbiAgICAgICAgICAgICAgc3RlcC5yb2xlID0gd2hvLnJvbGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHJlY2lwaWVudC5ieUlkKSB7XHJcbiAgICAgICAgaWYgKHJlY2lwaWVudC5ieUlkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0J5WW91JywgdGhpcy5fbmFtZU9mKHdobykpO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgbGV0IGJ5ID0gYXdhaXQgdGhpcy5fdXNlck9mKHJlY2lwaWVudC5ieUlkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0J5JywgdGhpcy5fbmFtZU9mKHdobyksIHRoaXMuX25hbWVPZihieSkpO1xyXG4gICAgICAgICAgaWYgKGJ5LnJvbGUpXHJcbiAgICAgICAgICAgIHN0ZXAucm9sZSA9IGJ5LnJvbGU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGVzY2FsYXRpb25zID0gdGhpcy5tb2RlbC5sb2cuZmlsdGVyKGwgPT4gbC50aW1lID4gaXNzdWVkICYmIGwudHlwZSA9PT0gJ0VzY2FsYXRpb24nICYmIGwucmVjaXBpZW50SWQgPT09IHJlY2lwaWVudC5pZCk7XHJcblxyXG4gICAgICAgIGlmIChlc2NhbGF0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgICAgIGxldCBlc2NhbGF0ZSA9IFtdO1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBlc2NhbGF0aW9ucy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgd2hvID0gYXdhaXQgdGhpcy5fdXNlck9mKGVzY2FsYXRpb25zW2pdLnVzZXJJZCk7XHJcbiAgICAgICAgICAgIGVzY2FsYXRlLnB1c2god2hvKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChlc2NhbGF0aW9ucy5sZW5ndGggPT09IDEgJiYgZXNjYWxhdGVbMF0gPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdFc2NhbGF0ZWRCeVlvdScsIHRoaXMuX25hbWVPZih3aG8pKTtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnRXNjYWxhdGVkQnknLCB0aGlzLl9uYW1lT2Yod2hvKSwgdGhpcy5fdHJhbnNsYXRlLmpvaW4oZXNjYWxhdGUubWFwKGUgPT4gdGhpcy5fbmFtZU9mKGUpKSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmIChyZWNpcGllbnQudXNlcklkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnWW91Jyk7XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fbmFtZU9mKHdobyk7XHJcbiAgICAgICAgICAgIGlmICh3aG8ucm9sZSlcclxuICAgICAgICAgICAgICBzdGVwLnJvbGUgPSB3aG8ucm9sZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdHJhY2UucHVzaChzdGVwKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9kYXRhID0gdHJhY2U7XHJcbiAgICB0aGlzLl9maWx0ZXIoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZmlsdGVyKCkge1xyXG4gICAgdGhpcy5kYXRhID0gdGhpcy5fc2hvd0FsbCA/IHRoaXMuX2RhdGEgOiB0aGlzLl9kYXRhLmZpbHRlcihsID0+IGwudHlwZSA9PT0gJ0FjdGlvblRha2VuJ1xyXG4gICAgICB8fCBsLnR5cGUgPT09ICdFc3RpbWF0ZSd8fCBsLnR5cGUgPT09ICdQZW5kaW5nJyk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3Nob3dBbGw6IGJvb2xlYW47XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hvd0FsbCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9zaG93QWxsO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHNob3dBbGwodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3Nob3dBbGwgPSB2YWx1ZTtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0cmFjZUFsbCcsIHZhbHVlID8gJ3RydWUnIDogJ2ZhbHNlJyk7XHJcbiAgICB0aGlzLl9kYXRhICYmIHRoaXMuX2ZpbHRlcigpO1xyXG4gIH1cclxuICBwdWJsaWMgcmVmcmVzaCgpIHtcclxuICAgIHRoaXMubmdPbkNoYW5nZXMobnVsbCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIHVzZXIgbmFtZSwgY2hhdCBhbmNob3IgdGFnIG9yIFlvdVxyXG4gICAqIEBwYXJhbSB1c2VyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfbmFtZU9mKHVzZXI6IFVzZXJJbmZvKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9jaGF0LmZvcm1hdCh1c2VyKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHVzZXJJZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3VzZXJPZih1c2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlckluZm8+IHtcclxuICAgIHJldHVybiB0aGlzLl9hY2NvdW50cy5nZXQodXNlcklkKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcm9sZU5hbWUobmFtZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCByb2xlID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLnJvbGVzLmZpbmQociA9PiByLm5hbWUgPT09IG5hbWUpO1xyXG4gICAgcmV0dXJuIHJvbGUgPyByb2xlLnRpdGxlIDogbmFtZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGFjdGlvblxyXG4gICAqIEBwYXJhbSB1c2VyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfYWN0aW9uTmFtZShhY3Rpb246IEFjdGlvbiwgdXNlcjogVXNlckluZm9Zb3UpOiBzdHJpbmcge1xyXG4gICAgaWYgKHVzZXIgPT09IFlvdSkge1xyXG4gICAgICBjb25zdCBnZW5kZXIgPSB0aGlzLl9zZXNzaW9uLmdlbmRlcjtcclxuICAgICAgcmV0dXJuIChnZW5kZXIgPT09ICdNYWxlJyA/IChhY3Rpb24ueW91TWFsZSB8fCBhY3Rpb24ueW91KSA6XHJcbiAgICAgICAgZ2VuZGVyID09PSAnRmVtYWxlJyA/IChhY3Rpb24ueW91RmVtYWxlIHx8IGFjdGlvbi55b3UpIDpcclxuICAgICAgICAgIGFjdGlvbi55b3UpIHx8XHJcbiAgICAgICAgYWN0aW9uLnBhc3QgfHxcclxuICAgICAgICBhY3Rpb24udGl0bGU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29uc3QgeyBnZW5kZXIgfSA9IHVzZXI7XHJcbiAgICAgIHJldHVybiAoZ2VuZGVyID09PSAnTWFsZScgPyAoYWN0aW9uLnBhc3RNYWxlIHx8IGFjdGlvbi5wYXN0KSA6XHJcbiAgICAgICAgZ2VuZGVyID09PSAnRmVtYWxlJyA/IChhY3Rpb24ucGFzdEZlbWFsZSB8fCBhY3Rpb24ucGFzdCkgOlxyXG4gICAgICAgICAgYWN0aW9uLnBhc3QpXHJcbiAgICAgICAgfHwgYWN0aW9uLnRpdGxlO1xyXG4gICAgfVxyXG4gIH1cclxuICBjaGF0KGU6IE1vdXNlRXZlbnQpIHtcclxuICAgIGNvbnN0IHVzZXJJZCA9IChlLnNyY0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmdldEF0dHJpYnV0ZSgnZGF0YS1pbmZvJyk7XHJcbiAgICB1c2VySWQgJiZcclxuICAgICAgdGhpcy5fY2hhdC5vcGVuKHVzZXJJZCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIG1vZGVsIHZlcnNpb24gY29tcGFyZSwgZm9ybSBjb21wb25lbnQgaW4gJ2NvbXBhcmUnIHZpZXcgbW9kZVxyXG4gICAqIEBwYXJhbSBsb2dcclxuICAgKi9cclxuICBjb21wYXJlKGxvZzogVHJhY2UpIHtcclxuICAgIHRoaXMudmVyc2lvblNlbGVjdGVkLmVtaXQobG9nLnRpbWUpO1xyXG4gIH1cclxufVxyXG5pbnRlcmZhY2UgVHJhY2Uge1xyXG4gIGZ5aT86IGJvb2xlYW47XHJcbiAgdHlwZTogTG9nVHlwZSB8ICdPd25lcicgfCAnUGVuZGluZycgfCAnRXN0aW1hdGUnO1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbiAgZXN0aW1hdGU/OiBib29sZWFuO1xyXG4gIHBlbmRpbmc/OiBib29sZWFuO1xyXG4gIGFjdGlvbj86IHN0cmluZztcclxuICByb2xlPzogc3RyaW5nO1xyXG4gIG5vdGU/OiBzdHJpbmc7XHJcbiAgZHVyYXRpb24/OiBudW1iZXI7XHJcbiAgZHVyYXRpb25NaW4/OiBudW1iZXI7XHJcbiAgZHVyYXRpb25NYXg/OiBudW1iZXI7XHJcbiAgZmlsZU5hbWU/OiBzdHJpbmc7XHJcbiAgdGltZT86IERhdGU7XHJcbiAgbW9kZWw/OiB7fTtcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibmF2LXRvb2xiYXIgcm93XCI+XHJcbiAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1Nob3dBbGwnfHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5maWx0ZXJfbGlzdDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPG1hdC1tZW51ICNtZW51PiBcclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwic2hvd0FsbD1mYWxzZVwiPlxyXG4gICAgICA8bWF0LWljb24+e3sgIXNob3dBbGw/J2NoZWNrJzonJyB9fTwvbWF0LWljb24+XHJcbiAgICAgIDxzcGFuPnt7J1JvdXRlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJzaG93QWxsPXRydWVcIj5cclxuICAgICAgPG1hdC1pY29uPnt7c2hvd0FsbD8nY2hlY2snOicnfX08L21hdC1pY29uPlxyXG4gICAgICA8c3Bhbj57eydMb2cnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9tYXQtbWVudT5cclxuPC9kaXY+XHJcbjx0YWJsZSBjbGFzcz1cIm1hdC10YWJsZVwiIEBsaXN0PlxyXG4gIDx0Ym9keSByb2xlPVwicm93Z3JvdXBcIj5cclxuICAgIDx0ciBjbGFzcz1cIm1hdC1yb3dcIiAqbmdGb3I9XCJsZXQgbCBvZiBkYXRhXCIgQGl0ZW0+XHJcbiAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCI+XHJcbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJsLm5hbWUgfCBzYW5pdGl6ZUh0bWxcIiAoY2xpY2spPVwiY2hhdCgkZXZlbnQpXCI+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPWwucm9sZT57eydKb2luQ29tbWEnfHRyYW5zbGF0ZX19e3tsLnJvbGV9fTwvc3Bhbj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJsLnR5cGVcIj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInQWN0aW9uVGFrZW4nXCI+e3sgbC5hY3Rpb24gfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ093bmVyJ1wiPnt7J0lzc3VlZCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInUGVuZGluZydcIj57eydJc1BlbmRpbmcnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ0NoZWNrT3V0J1wiPnt7J0NoZWNrZWRJbicgfCB0cmFuc2xhdGUgOiBsLmZpbGVOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ0NoZWNrSW4nXCI+e3snQ2hlY2tlZE91dCcgfCB0cmFuc2xhdGUgOiBsLmZpbGVOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ0VzdGltYXRlJ1wiPnt7J0VzdGltYXRlJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidNb2RlbENoYW5nZSdcIj57eydDaGFuZ2VkJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwibC5meWlcIj4mbmJzcDt7eydGWUknfHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICA8L3RkPlxyXG4gICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiIFtuZ1N3aXRjaF09XCJsLmVzdGltYXRlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJsLmR1cmF0aW9uTWF4ICYmIGwuZHVyYXRpb25NYXggPT09IGwuZHVyYXRpb25NaW5cIiBbYml6ZG9jVG9vbHRpcF09XCJsLmR1cmF0aW9uTWF4fGFtRHVyYXRpb25Gb3JtYXRcIj57eydFc3RpbWF0ZVRpbWUnfCB0cmFuc2xhdGUgOiAobC5kdXJhdGlvbk1heCB8IGFtRHVyYXRpb246J3MnKX19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJsLmR1cmF0aW9uTWF4ICYmIGwuZHVyYXRpb25NYXggIT09IGwuZHVyYXRpb25NaW5cIlxyXG4gICAgICAgICAgICAgICAgW2JpemRvY1Rvb2x0aXBdPVwibC5kdXJhdGlvbk1heHxhbUR1cmF0aW9uRm9ybWF0XCI+e3snRXN0aW1hdGVUaW1lUmFuZ2UnfCB0cmFuc2xhdGUgOiAobC5kdXJhdGlvbk1pbiB8IGFtRHVyYXRpb246J3MnKSA6IChsLmR1cmF0aW9uTWF4IHwgYW1EdXJhdGlvbjoncycpfX08L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgPHNwYW4+e3tsLnRpbWUgfCBhbUNhbGVuZGFyIDogbnVsbCA6IENBTEVOREFSX1NQRUMgfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImwuZHVyYXRpb25cIiBbYml6ZG9jVG9vbHRpcF09XCJsLmR1cmF0aW9ufGFtRHVyYXRpb25Gb3JtYXRcIiBjbGFzcz1cImR1cmF0aW9uXCI+Jm5ic3A7KHt7bC5kdXJhdGlvbiB8IGFtRHVyYXRpb246J3MnfX0pPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3RkPlxyXG4gICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwibC5ub3RlXCI+e3tsLm5vdGV9fTwvc3Bhbj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAqbmdJZj1cImwubW9kZWxcIiAoY2xpY2spPVwiY29tcGFyZShsKVwiIFtiaXpkb2NUb29sdGlwXT1cIidDb21wYXJlJ3x0cmFuc2xhdGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJzdGFydFwiPjxtYXQtaWNvbj5tb3JlX2hvcml6PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgPC90ZD5cclxuICAgIDwvdHI+XHJcbiAgPC90Ym9keT5cclxuPC90YWJsZT5cclxuIl19
|
347
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb21wb3NlL3RyYWNlL3RyYWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29tcG9zZS90cmFjZS90cmFjZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUVqRyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFNMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUd6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQUVyRSxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUM7QUFJbEIsb0NBQW9DO0FBT3BDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxTQUFTO0lBVy9DLFlBQW9CLFFBQXdCLEVBQ2xDLFVBQTRCLEVBQzVCLFNBQXlCLEVBQ3pCLEtBQWUsRUFDdkIsR0FBZTtRQUNmLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUxPLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ2xDLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQ3pCLFVBQUssR0FBTCxLQUFLLENBQVU7UUFaTixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDOUQsU0FBSSxHQUFZLEVBQUUsQ0FBQztRQUVWLGtCQUFhLEdBQWlCO1lBQ3JDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxTQUFTO1lBQ3RELFFBQVEsRUFBRSxZQUFZ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b0JBQ3hELE1BQU0sQ0FBQyxJQUFJLENBQUM7bUJBQ1gsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUNuQjtJQUNILENBQUM7SUFDRCxJQUFJLENBQUMsQ0FBYTtRQUNoQixNQUFNLE1BQU0sR0FBSSxDQUFDLENBQUMsVUFBMEIsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkUsTUFBTTtZQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRDs7O09BR0c7SUFDSCxPQUFPLENBQUMsR0FBVTtRQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7K0dBalVVLGtCQUFrQjttR0FBbEIsa0JBQWtCLDZLQ3hCL0IsbzVGQW1EQSw2cUREN0JjLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQzsyRkFFL0Isa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLGNBQWMsY0FHWixDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUM7aU5BR2pDLEtBQUs7c0JBQWIsS0FBSztnQkFDYSxlQUFlO3NCQUFqQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xyXG5pbXBvcnQgeyBDYWxlbmRhclNwZWMgfSBmcm9tIFwiLi4vLi4vY29yZS9waXBlcy9jYWxlbmRhci5waXBlXCI7XHJcbmltcG9ydCB7IFVzZXJJbmZvLCBMb2dUeXBlLCBEb2N1bWVudE1vZGVsLCBBY3Rpb24sIEF0dGFjaG1lbnQgfSBmcm9tIFwiLi4vLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvYWNjb3VudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRyYWNlQmFzZSB9IGZyb20gXCIuL3RyYWNlLmJhc2VcIjtcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2h1Yi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENoYXRJbmZvIH0gZnJvbSBcIi4uLy4uL2NoYXQvY2hhdC1pbmZvXCI7XHJcbmltcG9ydCB7IGl0ZW1BbmltYXRpb24sIGxpc3RBbmltYXRpb24gfSBmcm9tIFwiLi4vLi4vY29yZS9hbmltYXRpb25zXCI7XHJcblxyXG5jb25zdCBZb3UgPSAneW91JztcclxuXHJcbnR5cGUgVXNlckluZm9Zb3UgPSBVc2VySW5mbyB8ICd5b3UnO1xyXG5cclxuLyoqIGNvbXBvbmVudCBzaG93aW5nIHRyYWNlIHRhYmxlICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLXRyYWNlJyxcclxuICB0ZW1wbGF0ZVVybDogJ3RyYWNlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsndHJhY2UuY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbbGlzdEFuaW1hdGlvbiwgaXRlbUFuaW1hdGlvbl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYWNlVmlld0NvbXBvbmVudCBleHRlbmRzIFRyYWNlQmFzZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgbW9kZWw6IERvY3VtZW50TW9kZWw8YW55PjtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmVyc2lvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG4gIGRhdGE6IFRyYWNlW10gPSBbXTtcclxuICBwcml2YXRlIF9kYXRhOiBUcmFjZVtdO1xyXG4gIHJlYWRvbmx5IENBTEVOREFSX1NQRUM6IENhbGVuZGFyU3BlYyA9IHtcclxuICAgIGxhc3REYXk6IGBbJHt0aGlzLl90cmFuc2xhdGUuZ2V0KCdZZXN0ZXJkYXknKX1dIEhIOm1tYCxcclxuICAgIGxhc3RXZWVrOiAnZGRkZCBISDptbScsXHJcbiAgICBzYW1lRGF5OiBgWyR7dGhpcy5fdHJhbnNsYXRlLmdldCgnVG9kYXknKX1dIEhIOm1tYCxcclxuICAgIHNhbWVFbHNlOiAnTU1NIERvIEhIOm1tJ1xyXG4gIH07XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9hY2NvdW50czogQWNjb3VudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jaGF0OiBDaGF0SW5mbyxcclxuICAgIGh1YjogSHViU2VydmljZSkge1xyXG4gICAgc3VwZXIoaHViKTtcclxuICAgIHRoaXMuX3Nob3dBbGwgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndHJhY2VBbGwnKSAhPT0gJ2ZhbHNlJztcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoX2NoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMuX2luaXRpYWxpc2UoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBhc3luYyBfaW5pdGlhbGlzZSgpIHtcclxuICAgIGNvbnN0IHsgb3duZXJJZCwgb3duZXJCeUlkLCBpc3N1ZWQsIGxvZywgcmVjaXBpZW50cywgYXR0YWNobWVudHMgfSA9IHRoaXMubW9kZWw7XHJcblxyXG4gICAgY29uc3QgdHJhY2U6IFRyYWNlW10gPSBbXTtcclxuXHJcbiAgICBmb3IgKGxldCBsIG9mIGxvZykge1xyXG4gICAgICBsZXQgYWN0aW9uOiBBY3Rpb24sIGF0dGFjaG1lbnQ6IEF0dGFjaG1lbnQ7XHJcblxyXG4gICAgICBzd2l0Y2ggKGwudHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ0FjdGlvblRha2VuJzpcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgYWN0aW9uID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmluZChhID0+IGEubmFtZSA9PT0gbC5hY3Rpb24pO1xyXG4gICAgICAgICAgICBpZiAoYWN0aW9uLmxvZ2dhYmxlID09PSBmYWxzZSlcclxuICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnQ2hlY2tJbic6XHJcbiAgICAgICAgY2FzZSAnQ2hlY2tPdXQnOlxyXG4gICAgICAgICAgaWYgKCF0aGlzLl9zaG93QWxsKSBjb250aW51ZTtcclxuICAgICAgICAgIGF0dGFjaG1lbnQgPSBhdHRhY2htZW50cy5maW5kKGYgPT4gZi5pZCA9PT0gbC5maWxlSWQpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnTW9kZWxDaGFuZ2UnOlxyXG4gICAgICAgICAgaWYgKCF0aGlzLl9zaG93QWxsKSBjb250aW51ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ1N1Ym1pdCc6XHJcbiAgICAgICAgICBpZiAoIXRoaXMuX3Nob3dBbGwpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgaWYgKGwuZXN0aW1hdGUpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgY29uc3Qgbm9kZSA9IHtcclxuICAgICAgICAgICAgdHlwZTogJ093bmVyJyxcclxuICAgICAgICAgICAgdGltZTogbC50aW1lXHJcbiAgICAgICAgICB9IGFzIFRyYWNlO1xyXG4gICAgICAgICAgaWYgKG93bmVyQnlJZCkge1xyXG4gICAgICAgICAgICBjb25zdCBvd25lciA9IGF3YWl0IHRoaXMuX3VzZXJPZihvd25lcklkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgaWYgKG93bmVyQnlJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICAgICAgbm9kZS5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnlZb3UnLCB0aGlzLl9uYW1lT2Yob3duZXIpKTtcclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgYnkgPSBhd2FpdCB0aGlzLl91c2VyT2Yob3duZXJCeUlkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgICBub2RlLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeScsIHRoaXMuX25hbWVPZihvd25lciksIHRoaXMuX25hbWVPZihieSkpO1xyXG4gICAgICAgICAgICAgIGlmIChieS5yb2xlKSBub2RlLnJvbGUgPSBieS5yb2xlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKG93bmVySWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICAgIG5vZGUubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdScpO1xyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICBjb25zdCBvd25lciA9IGF3YWl0IHRoaXMuX3VzZXJPZihvd25lcklkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgICBub2RlLm5hbWUgPSB0aGlzLl9uYW1lT2Yob3duZXIpO1xyXG5cclxuICAgICAgICAgICAgICBpZiAob3duZXIucm9sZSkgbm9kZS5yb2xlID0gb3duZXIucm9sZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdHJhY2UucHVzaChub2RlKTtcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHN0ZXAgPSB7IC4uLmwgfSBhcyBUcmFjZTtcclxuXHJcbiAgICAgIGlmIChhdHRhY2htZW50KSBzdGVwLmZpbGVOYW1lID0gYXR0YWNobWVudC5maWxlTmFtZTtcclxuXHJcbiAgICAgIGNvbnN0IHdobyA9IGF3YWl0IHRoaXMuX3VzZXJPZihsLnVzZXJJZCkudG9Qcm9taXNlKCk7XHJcblxyXG4gICAgICBpZiAobC5yZWNpcGllbnRJZCkge1xyXG4gICAgICAgIGNvbnN0IHJlY2lwaWVudCA9IHJlY2lwaWVudHMuZmluZChyID0+IHIuaWQgPT09IGwucmVjaXBpZW50SWQpO1xyXG4gICAgICAgIGlmIChyZWNpcGllbnQucm9sZSkgc3RlcC5yb2xlID0gdGhpcy5fcm9sZU5hbWUocmVjaXBpZW50LnJvbGUpO1xyXG4gICAgICAgIGlmIChyZWNpcGllbnQubm9kZUlkKSB7XHJcbiAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy5tb2RlbC53b3JrZmxvdy5ub2Rlcy5maW5kKG4gPT4gbi5pZCA9PT0gcmVjaXBpZW50Lm5vZGVJZCk7XHJcbiAgICAgICAgICBzdGVwLmZ5aSA9IG5vZGUgJiYgbm9kZS5meWk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmVjaXBpZW50LnN1YnN0aXR1dGluZ0lkKSB7XHJcbiAgICAgICAgICBsZXQgc3Vic3RpdHV0aW5nID0gYXdhaXQgdGhpcy5fdXNlck9mKHJlY2lwaWVudC5zdWJzdGl0dXRpbmdJZCkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICBpZiAobC5ieUlkKSB7XHJcbiAgICAgICAgICAgIGlmIChsLmJ5SWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRpbmdJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeVlvdScsIHRoaXMuX25hbWVPZih3aG8pKTtcclxuICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZ0J5WW91Jywgd2hvLmdlbmRlciwgdGhpcy5fbmFtZU9mKHdobyksIHRoaXMuX25hbWVPZihzdWJzdGl0dXRpbmcpKTtcclxuICAgICAgICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5hY3Rpb24gPSBhY3Rpb24gPyB0aGlzLl9hY3Rpb25OYW1lKGFjdGlvbiwgWW91KSA6IGwuYWN0aW9uO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIGxldCBieSA9IGF3YWl0IHRoaXMuX3VzZXJPZihsLmJ5SWQpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1N1YnN0aXR1dGluZ0J5JywgdGhpcy5fbmFtZU9mKHdobyksIHRoaXMuX25hbWVPZihzdWJzdGl0dXRpbmcpLCB0aGlzLl9uYW1lT2YoYnkpKTtcclxuICAgICAgICAgICAgICBpZiAoYnkucm9sZSlcclxuICAgICAgICAgICAgICAgIHN0ZXAucm9sZSA9IGJ5LnJvbGU7XHJcbiAgICAgICAgICAgICAgaWYgKGFjdGlvbilcclxuICAgICAgICAgICAgICAgIHN0ZXAuYWN0aW9uID0gYWN0aW9uID8gdGhpcy5fYWN0aW9uTmFtZShhY3Rpb24sIGJ5KSA6IGwuYWN0aW9uO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRpbmdJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdTdWJzdGl0dXRpbmdGb3JZb3UnLCB3aG8uZ2VuZGVyLCB0aGlzLl9uYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGwudXNlcklkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1lvdVN1YnN0aXR1dGUnLCB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuYnlHZW5kZXIsIHRoaXMuX25hbWVPZih3aG8pKTtcclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdTdWJzdGl0dXRpbmcnLCB3aG8uZ2VuZGVyLCB0aGlzLl9uYW1lT2Yod2hvKSwgdGhpcy5fbmFtZU9mKHN1YnN0aXR1dGluZykpO1xyXG4gICAgICAgICAgICAgIGlmICh3aG8ucm9sZSlcclxuICAgICAgICAgICAgICAgIHN0ZXAucm9sZSA9IHdoby5yb2xlO1xyXG4gICAgICAgICAgICB9IGlmIChhY3Rpb24pXHJcbiAgICAgICAgICAgICAgc3RlcC5hY3Rpb24gPSBhY3Rpb24gPyB0aGlzLl9hY3Rpb25OYW1lKGFjdGlvbiwgd2hvKSA6IGwuYWN0aW9uO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChsLmJ5SWQpIHtcclxuICAgICAgICAgIGlmIChsLmJ5SWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKSB7XHJcbiAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0J5WW91JywgdGhpcy5fbmFtZU9mKHdobykpO1xyXG4gICAgICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICAgIHN0ZXAuYWN0aW9uID0gYWN0aW9uID8gdGhpcy5fYWN0aW9uTmFtZShhY3Rpb24sIFlvdSkgOiBsLmFjdGlvbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgYnkgPSBhd2FpdCB0aGlzLl91c2VyT2YobC5ieUlkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnknLCB0aGlzLl9uYW1lT2Yod2hvKSwgdGhpcy5fbmFtZU9mKGJ5KSk7XHJcbiAgICAgICAgICAgIGlmIChieS5yb2xlKVxyXG4gICAgICAgICAgICAgIHN0ZXAucm9sZSA9IGJ5LnJvbGU7XHJcbiAgICAgICAgICAgIGlmIChhY3Rpb24pXHJcbiAgICAgICAgICAgICAgc3RlcC5hY3Rpb24gPSBhY3Rpb24gPyB0aGlzLl9hY3Rpb25OYW1lKGFjdGlvbiwgYnkpIDogbC5hY3Rpb247XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmIChsLnVzZXJJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdZb3UnKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX25hbWVPZih3aG8pO1xyXG4gICAgICAgICAgaWYgKHdoby5yb2xlKVxyXG4gICAgICAgICAgICBzdGVwLnJvbGUgPSB3aG8ucm9sZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGFjdGlvbilcclxuICAgICAgICAgIHN0ZXAuYWN0aW9uID0gYWN0aW9uID8gdGhpcy5fYWN0aW9uTmFtZShhY3Rpb24sIHdobykgOiBsLmFjdGlvbjtcclxuICAgICAgfVxyXG4gICAgICB0cmFjZS5wdXNoKHN0ZXApO1xyXG4gICAgfVxyXG4gICAgZm9yICh2YXIgciA9IDA7IHIgPCByZWNpcGllbnRzLmxlbmd0aDsgcisrKSB7XHJcbiAgICAgIGxldCByZWNpcGllbnQgPSByZWNpcGllbnRzW3JdO1xyXG4gICAgICBpZiAoIXJlY2lwaWVudC5wZW5kaW5nICYmICFyZWNpcGllbnQuZXN0aW1hdGUpIGNvbnRpbnVlO1xyXG4gICAgICBjb25zdCBzdGVwID0ge1xyXG4gICAgICAgIC4uLnJlY2lwaWVudCxcclxuICAgICAgICB0eXBlOiByZWNpcGllbnQuZXN0aW1hdGUgPyAnRXN0aW1hdGUnIDogJ1BlbmRpbmcnLFxyXG4gICAgICAgIHRpbWU6IHJlY2lwaWVudC5yZWNlaXZlZCxcclxuICAgICAgICBkdXJhdGlvbjogcmVjaXBpZW50LnBlbmRpbmcgPyBkYXlqcygpLmRpZmYocmVjaXBpZW50LnJlY2VpdmVkLCAncycpIDogbnVsbCxcclxuICAgICAgICByb2xlOiByZWNpcGllbnQucm9sZSA/IHRoaXMuX3JvbGVOYW1lKHJlY2lwaWVudC5yb2xlKSA6IG51bGxcclxuICAgICAgfSBhcyBUcmFjZTtcclxuXHJcbiAgICAgIGlmIChyZWNpcGllbnQubm9kZUlkKSB7XHJcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMubW9kZWwud29ya2Zsb3cubm9kZXMuZmluZChuID0+IG4uaWQgPT09IHJlY2lwaWVudC5ub2RlSWQpO1xyXG4gICAgICAgIGlmIChub2RlKSB7XHJcbiAgICAgICAgICBpZiAocmVjaXBpZW50LmVzdGltYXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgbWluLCBtYXggfSA9IHN1cGVyLl9lc3RpbWF0ZVRpbWUobm9kZSk7XHJcbiAgICAgICAgICAgIGlmIChtYXgpXHJcbiAgICAgICAgICAgICAgc3RlcC5kdXJhdGlvbk1pbiA9IG1pbixcclxuICAgICAgICAgICAgICAgIHN0ZXAuZHVyYXRpb25NYXggPSBtYXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBzdGVwLmZ5aSA9IG5vZGUuZnlpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IHdobyA9IGF3YWl0IHRoaXMuX3VzZXJPZihyZWNpcGllbnQudXNlcklkKS50b1Byb21pc2UoKTtcclxuXHJcbiAgICAgIGlmIChyZWNpcGllbnQuc3Vic3RpdHV0aW5nSWQpIHtcclxuICAgICAgICBpZiAocmVjaXBpZW50LmJ5SWQpIHtcclxuICAgICAgICAgIGlmIChyZWNpcGllbnQuYnlJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpIHtcclxuICAgICAgICAgICAgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRpbmdJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnlZb3UnLCB0aGlzLl9uYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIGxldCBzdWJzdGl0dXRpbmcgPSBhd2FpdCB0aGlzLl91c2VyT2YocmVjaXBpZW50LnN1YnN0aXR1dGluZ0lkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZ0J5WW91Jywgd2hvLmdlbmRlciwgdGhpcy5fbmFtZU9mKHdobyksIHRoaXMuX25hbWVPZihzdWJzdGl0dXRpbmcpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBzdWJzdGl0dXRpbmcgPSBhd2FpdCB0aGlzLl91c2VyT2YocmVjaXBpZW50LnN1YnN0aXR1dGluZ0lkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgbGV0IGJ5ID0gYXdhaXQgdGhpcy5fdXNlck9mKHJlY2lwaWVudC5ieUlkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnU3Vic3RpdHV0aW5nQnknLCB0aGlzLl9uYW1lT2Yod2hvKSwgdGhpcy5fbmFtZU9mKHN1YnN0aXR1dGluZyksIHRoaXMuX25hbWVPZihieSkpO1xyXG4gICAgICAgICAgICBpZiAoYnkucm9sZSlcclxuICAgICAgICAgICAgICBzdGVwLnJvbGUgPSBieS5yb2xlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmIChyZWNpcGllbnQuc3Vic3RpdHV0aW5nSWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZ0ZvcllvdScsIHdoby5nZW5kZXIsIHRoaXMuX25hbWVPZih3aG8pKTtcclxuICAgICAgICAgIGVsc2UgaWYgKHJlY2lwaWVudC51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1lvdVN1YnN0aXR1dGUnLCB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuYnlHZW5kZXIsIHRoaXMuX25hbWVPZih3aG8pKTtcclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgc3Vic3RpdHV0aW5nID0gYXdhaXQgdGhpcy5fdXNlck9mKHJlY2lwaWVudC5zdWJzdGl0dXRpbmdJZCkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3Vic3RpdHV0aW5nJywgd2hvLmdlbmRlciwgdGhpcy5fbmFtZU9mKHdobyksIHRoaXMuX25hbWVPZihzdWJzdGl0dXRpbmcpKTtcclxuICAgICAgICAgICAgaWYgKHdoby5yb2xlKVxyXG4gICAgICAgICAgICAgIHN0ZXAucm9sZSA9IHdoby5yb2xlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChyZWNpcGllbnQuYnlJZCkge1xyXG4gICAgICAgIGlmIChyZWNpcGllbnQuYnlJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeVlvdScsIHRoaXMuX25hbWVPZih3aG8pKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGxldCBieSA9IGF3YWl0IHRoaXMuX3VzZXJPZihyZWNpcGllbnQuYnlJZCkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeScsIHRoaXMuX25hbWVPZih3aG8pLCB0aGlzLl9uYW1lT2YoYnkpKTtcclxuICAgICAgICAgIGlmIChieS5yb2xlKVxyXG4gICAgICAgICAgICBzdGVwLnJvbGUgPSBieS5yb2xlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zdCBlc2NhbGF0aW9ucyA9IHRoaXMubW9kZWwubG9nLmZpbHRlcihsID0+IGwudGltZSA+IGlzc3VlZCAmJiBsLnR5cGUgPT09ICdFc2NhbGF0aW9uJyAmJiBsLnJlY2lwaWVudElkID09PSByZWNpcGllbnQuaWQpO1xyXG5cclxuICAgICAgICBpZiAoZXNjYWxhdGlvbnMubGVuZ3RoKSB7XHJcbiAgICAgICAgICBsZXQgZXNjYWxhdGUgPSBbXTtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgZXNjYWxhdGlvbnMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgbGV0IHdobyA9IGF3YWl0IHRoaXMuX3VzZXJPZihlc2NhbGF0aW9uc1tqXS51c2VySWQpO1xyXG4gICAgICAgICAgICBlc2NhbGF0ZS5wdXNoKHdobyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoZXNjYWxhdGlvbnMubGVuZ3RoID09PSAxICYmIGVzY2FsYXRlWzBdID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnRXNjYWxhdGVkQnlZb3UnLCB0aGlzLl9uYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0VzY2FsYXRlZEJ5JywgdGhpcy5fbmFtZU9mKHdobyksIHRoaXMuX3RyYW5zbGF0ZS5qb2luKGVzY2FsYXRlLm1hcChlID0+IHRoaXMuX25hbWVPZihlKSkpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBpZiAocmVjaXBpZW50LnVzZXJJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdScpO1xyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX25hbWVPZih3aG8pO1xyXG4gICAgICAgICAgICBpZiAod2hvLnJvbGUpXHJcbiAgICAgICAgICAgICAgc3RlcC5yb2xlID0gd2hvLnJvbGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRyYWNlLnB1c2goc3RlcCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fZGF0YSA9IHRyYWNlLnNvcnQoKGEsIGIpID0+IGEudGltZSA+IGIudGltZSA/IDEgOiBhLnRpbWUgPT09IGIudGltZSA/IDAgOiAtMSk7XHJcbiAgICB0aGlzLl9maWx0ZXIoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZmlsdGVyKCkge1xyXG4gICAgdGhpcy5kYXRhID0gdGhpcy5fc2hvd0FsbCA/IHRoaXMuX2RhdGEgOiB0aGlzLl9kYXRhLmZpbHRlcihsID0+IGwudHlwZSA9PT0gJ0FjdGlvblRha2VuJ1xyXG4gICAgICB8fCBsLnR5cGUgPT09ICdFc3RpbWF0ZSd8fCBsLnR5cGUgPT09ICdQZW5kaW5nJyk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3Nob3dBbGw6IGJvb2xlYW47XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hvd0FsbCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9zaG93QWxsO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHNob3dBbGwodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3Nob3dBbGwgPSB2YWx1ZTtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0cmFjZUFsbCcsIHZhbHVlID8gJ3RydWUnIDogJ2ZhbHNlJyk7XHJcbiAgICB0aGlzLl9kYXRhICYmIHRoaXMuX2ZpbHRlcigpO1xyXG4gIH1cclxuICBwdWJsaWMgcmVmcmVzaCgpIHtcclxuICAgIHRoaXMubmdPbkNoYW5nZXMobnVsbCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIHVzZXIgbmFtZSwgY2hhdCBhbmNob3IgdGFnIG9yIFlvdVxyXG4gICAqIEBwYXJhbSB1c2VyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfbmFtZU9mKHVzZXI6IFVzZXJJbmZvKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9jaGF0LmZvcm1hdCh1c2VyKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHVzZXJJZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3VzZXJPZih1c2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlckluZm8+IHtcclxuICAgIHJldHVybiB0aGlzLl9hY2NvdW50cy5nZXQodXNlcklkKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcm9sZU5hbWUobmFtZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCByb2xlID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLnJvbGVzLmZpbmQociA9PiByLm5hbWUgPT09IG5hbWUpO1xyXG4gICAgcmV0dXJuIHJvbGUgPyByb2xlLnRpdGxlIDogbmFtZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGFjdGlvblxyXG4gICAqIEBwYXJhbSB1c2VyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfYWN0aW9uTmFtZShhY3Rpb246IEFjdGlvbiwgdXNlcjogVXNlckluZm9Zb3UpOiBzdHJpbmcge1xyXG4gICAgaWYgKHVzZXIgPT09IFlvdSkge1xyXG4gICAgICBjb25zdCBnZW5kZXIgPSB0aGlzLl9zZXNzaW9uLmdlbmRlcjtcclxuICAgICAgcmV0dXJuIChnZW5kZXIgPT09ICdNYWxlJyA/IChhY3Rpb24ueW91TWFsZSB8fCBhY3Rpb24ueW91KSA6XHJcbiAgICAgICAgZ2VuZGVyID09PSAnRmVtYWxlJyA/IChhY3Rpb24ueW91RmVtYWxlIHx8IGFjdGlvbi55b3UpIDpcclxuICAgICAgICAgIGFjdGlvbi55b3UpIHx8XHJcbiAgICAgICAgYWN0aW9uLnBhc3QgfHxcclxuICAgICAgICBhY3Rpb24udGl0bGU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29uc3QgeyBnZW5kZXIgfSA9IHVzZXI7XHJcbiAgICAgIHJldHVybiAoZ2VuZGVyID09PSAnTWFsZScgPyAoYWN0aW9uLnBhc3RNYWxlIHx8IGFjdGlvbi5wYXN0KSA6XHJcbiAgICAgICAgZ2VuZGVyID09PSAnRmVtYWxlJyA/IChhY3Rpb24ucGFzdEZlbWFsZSB8fCBhY3Rpb24ucGFzdCkgOlxyXG4gICAgICAgICAgYWN0aW9uLnBhc3QpXHJcbiAgICAgICAgfHwgYWN0aW9uLnRpdGxlO1xyXG4gICAgfVxyXG4gIH1cclxuICBjaGF0KGU6IE1vdXNlRXZlbnQpIHtcclxuICAgIGNvbnN0IHVzZXJJZCA9IChlLnNyY0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmdldEF0dHJpYnV0ZSgnZGF0YS1pbmZvJyk7XHJcbiAgICB1c2VySWQgJiZcclxuICAgICAgdGhpcy5fY2hhdC5vcGVuKHVzZXJJZCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIG1vZGVsIHZlcnNpb24gY29tcGFyZSwgZm9ybSBjb21wb25lbnQgaW4gJ2NvbXBhcmUnIHZpZXcgbW9kZVxyXG4gICAqIEBwYXJhbSBsb2dcclxuICAgKi9cclxuICBjb21wYXJlKGxvZzogVHJhY2UpIHtcclxuICAgIHRoaXMudmVyc2lvblNlbGVjdGVkLmVtaXQobG9nLnRpbWUpO1xyXG4gIH1cclxufVxyXG5pbnRlcmZhY2UgVHJhY2Uge1xyXG4gIGZ5aT86IGJvb2xlYW47XHJcbiAgdHlwZTogTG9nVHlwZSB8ICdPd25lcicgfCAnUGVuZGluZycgfCAnRXN0aW1hdGUnO1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbiAgZXN0aW1hdGU/OiBib29sZWFuO1xyXG4gIHBlbmRpbmc/OiBib29sZWFuO1xyXG4gIGFjdGlvbj86IHN0cmluZztcclxuICByb2xlPzogc3RyaW5nO1xyXG4gIG5vdGU/OiBzdHJpbmc7XHJcbiAgZHVyYXRpb24/OiBudW1iZXI7XHJcbiAgZHVyYXRpb25NaW4/OiBudW1iZXI7XHJcbiAgZHVyYXRpb25NYXg/OiBudW1iZXI7XHJcbiAgZmlsZU5hbWU/OiBzdHJpbmc7XHJcbiAgdGltZT86IERhdGU7XHJcbiAgbW9kZWw/OiB7fTtcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibmF2LXRvb2xiYXIgcm93XCI+XHJcbiAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1Nob3dBbGwnfHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5maWx0ZXJfbGlzdDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPG1hdC1tZW51ICNtZW51PiBcclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwic2hvd0FsbD1mYWxzZVwiPlxyXG4gICAgICA8bWF0LWljb24+e3sgIXNob3dBbGw/J2NoZWNrJzonJyB9fTwvbWF0LWljb24+XHJcbiAgICAgIDxzcGFuPnt7J1JvdXRlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJzaG93QWxsPXRydWVcIj5cclxuICAgICAgPG1hdC1pY29uPnt7c2hvd0FsbD8nY2hlY2snOicnfX08L21hdC1pY29uPlxyXG4gICAgICA8c3Bhbj57eydMb2cnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9tYXQtbWVudT5cclxuPC9kaXY+XHJcbjx0YWJsZSBjbGFzcz1cIm1hdC10YWJsZVwiIEBsaXN0PlxyXG4gIDx0Ym9keSByb2xlPVwicm93Z3JvdXBcIj5cclxuICAgIDx0ciBjbGFzcz1cIm1hdC1yb3dcIiAqbmdGb3I9XCJsZXQgbCBvZiBkYXRhXCIgQGl0ZW0+XHJcbiAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCI+XHJcbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJsLm5hbWUgfCBzYW5pdGl6ZUh0bWxcIiAoY2xpY2spPVwiY2hhdCgkZXZlbnQpXCI+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPWwucm9sZT57eydKb2luQ29tbWEnfHRyYW5zbGF0ZX19e3tsLnJvbGV9fTwvc3Bhbj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJsLnR5cGVcIj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInQWN0aW9uVGFrZW4nXCI+e3sgbC5hY3Rpb24gfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ093bmVyJ1wiPnt7J0lzc3VlZCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInUGVuZGluZydcIj57eydJc1BlbmRpbmcnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ0NoZWNrT3V0J1wiPnt7J0NoZWNrZWRJbicgfCB0cmFuc2xhdGUgOiBsLmZpbGVOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ0NoZWNrSW4nXCI+e3snQ2hlY2tlZE91dCcgfCB0cmFuc2xhdGUgOiBsLmZpbGVOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ0VzdGltYXRlJ1wiPnt7J0VzdGltYXRlJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidNb2RlbENoYW5nZSdcIj57eydDaGFuZ2VkJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwibC5meWlcIj4mbmJzcDt7eydGWUknfHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICA8L3RkPlxyXG4gICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiIFtuZ1N3aXRjaF09XCJsLmVzdGltYXRlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJsLmR1cmF0aW9uTWF4ICYmIGwuZHVyYXRpb25NYXggPT09IGwuZHVyYXRpb25NaW5cIiBbYml6ZG9jVG9vbHRpcF09XCJsLmR1cmF0aW9uTWF4fGFtRHVyYXRpb25Gb3JtYXRcIj57eydFc3RpbWF0ZVRpbWUnfCB0cmFuc2xhdGUgOiAobC5kdXJhdGlvbk1heCB8IGFtRHVyYXRpb246J3MnKX19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJsLmR1cmF0aW9uTWF4ICYmIGwuZHVyYXRpb25NYXggIT09IGwuZHVyYXRpb25NaW5cIlxyXG4gICAgICAgICAgICAgICAgW2JpemRvY1Rvb2x0aXBdPVwibC5kdXJhdGlvbk1heHxhbUR1cmF0aW9uRm9ybWF0XCI+e3snRXN0aW1hdGVUaW1lUmFuZ2UnfCB0cmFuc2xhdGUgOiAobC5kdXJhdGlvbk1pbiB8IGFtRHVyYXRpb246J3MnKSA6IChsLmR1cmF0aW9uTWF4IHwgYW1EdXJhdGlvbjoncycpfX08L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgPHNwYW4+e3tsLnRpbWUgfCBhbUNhbGVuZGFyIDogbnVsbCA6IENBTEVOREFSX1NQRUMgfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImwuZHVyYXRpb25cIiBbYml6ZG9jVG9vbHRpcF09XCJsLmR1cmF0aW9ufGFtRHVyYXRpb25Gb3JtYXRcIiBjbGFzcz1cImR1cmF0aW9uXCI+Jm5ic3A7KHt7bC5kdXJhdGlvbiB8IGFtRHVyYXRpb246J3MnfX0pPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3RkPlxyXG4gICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwibC5ub3RlXCI+e3tsLm5vdGV9fTwvc3Bhbj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAqbmdJZj1cImwubW9kZWxcIiAoY2xpY2spPVwiY29tcGFyZShsKVwiIFtiaXpkb2NUb29sdGlwXT1cIidDb21wYXJlJ3x0cmFuc2xhdGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJzdGFydFwiPjxtYXQtaWNvbj5tb3JlX2hvcml6PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgPC90ZD5cclxuICAgIDwvdHI+XHJcbiAgPC90Ym9keT5cclxuPC90YWJsZT5cclxuIl19
|
@@ -4,6 +4,7 @@ import { Subject } from 'rxjs';
|
|
4
4
|
import { MatFormFieldControl } from '@angular/material/form-field';
|
5
5
|
import { debounceTime, takeUntil } from 'rxjs/operators';
|
6
6
|
import { isObject } from '../functions';
|
7
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
7
8
|
import * as i0 from "@angular/core";
|
8
9
|
import * as i1 from "@angular/forms";
|
9
10
|
import * as i2 from "@angular/cdk/a11y";
|
@@ -61,7 +62,7 @@ export class AddressInput {
|
|
61
62
|
}
|
62
63
|
get disabled() { return this._disabled; }
|
63
64
|
set disabled(value) {
|
64
|
-
this._disabled = value
|
65
|
+
this._disabled = coerceBooleanProperty(value);
|
65
66
|
if (this.control.disabled !== this._disabled) {
|
66
67
|
if (value)
|
67
68
|
this.control.disable();
|
@@ -101,7 +102,7 @@ export class AddressInput {
|
|
101
102
|
}
|
102
103
|
onFocus() {
|
103
104
|
this.focused = true;
|
104
|
-
this._onTouched();
|
105
|
+
this._onTouched && this._onTouched();
|
105
106
|
}
|
106
107
|
onBlur() {
|
107
108
|
this.focused = false;
|
@@ -189,4 +190,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
189
190
|
}], value: [{
|
190
191
|
type: Input
|
191
192
|
}] } });
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9jb250cm9scy9hZGRyZXNzLmlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLFdBQVcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFzQixZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5SSxPQUFPLEVBQW1DLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRW5FLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7QUFDeEMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDO0FBa0IxQixNQUFNLE9BQ0UsWUFBWTtJQXFHbEIsWUFBdUMsU0FBb0IsRUFBVSxHQUFpQixFQUFVLE1BQStCO1FBQXhGLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFjO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBeUI7UUFsR3ZILGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUtqQixZQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUM1QixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDcEIsT0FBRSxHQUFHLGlCQUFpQixZQUFZLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUVuRCxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFzQixD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OztBQWhJYyxtQkFBTSxHQUFHLENBQUUsQ0FBQTt5R0FEcEIsWUFBWTs2RkFBWixZQUFZLGdWQWhCUCxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsQ0FBQywrSUFDOUQ7Ozs7Ozs7OEJBT2tCOzJGQVF0QixZQUFZO2tCQWxCbkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLGNBQWMsRUFBRSxDQUFDO29CQUN4RSxRQUFRLEVBQUU7Ozs7Ozs7OEJBT2tCO29CQUM1QixNQUFNLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQztvQkFDOUMsSUFBSSxFQUFFO3dCQUNKLGtCQUFrQixFQUFFLGtCQUFrQjt3QkFDdEMseUJBQXlCLEVBQUUsYUFBYTtxQkFDekM7aUJBQ0Y7OzBCQXVHYyxRQUFROzswQkFBSSxJQUFJO2dHQTFGTCxFQUFFO3NCQUF6QixXQUFXO2dCQUMwQixZQUFZO3NCQUFqRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2pCLGNBQWM7c0JBQWhDLE1BQU07Z0JBQ0UsUUFBUTtzQkFBaEIsS0FBSztnQkFDTyxXQUFXO3NCQUF2QixLQUFLO2dCQWFGLFFBQVE7c0JBRFgsS0FBSztnQkFhRixRQUFRO3NCQURYLEtBQUs7Z0JBY2dDLFdBQVc7c0JBQWhELFdBQVc7dUJBQUMsdUJBQXVCO2dCQW9CdkIsS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgSG9zdEJpbmRpbmcsIE9wdGlvbmFsLCBTZWxmLCBPbkluaXQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcclxuaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xyXG5jb25zdCBERUJPVU5DRV9USU1FID0gMjUwO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1hZGRyZXNzJyxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsIHVzZUV4aXN0aW5nOiBBZGRyZXNzSW5wdXQgfV0sXHJcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwiYWRkcmVzcy1jb250YWluZXJcIj5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCBbbWF0QXV0b2NvbXBsZXRlXT1cImFkZHJlc3NcIiBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiICNpbnB1dFxyXG4gICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCIgKGJsdXIpPVwib25CbHVyKClcIi8+XHJcbiAgICA8bWF0LWF1dG9jb21wbGV0ZSAjYWRkcmVzcyAob3B0aW9uU2VsZWN0ZWQpPVwic2VsZWN0ZWQoJGV2ZW50KVwiIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5Rm5cIj5cclxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGEgb2YgX2FkZHJlc3Nlc1wiIFt2YWx1ZV09XCJhXCI+XHJcbiAgICAgICAgPHNwYW4gbWF0TGluZT57e2EuZGVzY3JpcHRpb259fTwvc3Bhbj5cclxuICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPjwvZGl2PmAsXHJcbiAgc3R5bGVzOiBbJy5hZGRyZXNzLWNvbnRhaW5lciB7ZGlzcGxheTogZmxleH0nXSxcclxuICBob3N0OiB7XHJcbiAgICAnW2NsYXNzLmZsb2F0aW5nXSc6ICdzaG91bGRMYWJlbEZsb2F0JyxcclxuICAgICdbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XSc6ICdkZXNjcmliZWRCeSdcclxuICB9XHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIEFkZHJlc3NJbnB1dCBpbXBsZW1lbnRzIE1hdEZvcm1GaWVsZENvbnRyb2w8c3RyaW5nPiwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSwgT25Jbml0IHtcclxuICBwcml2YXRlIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG4gIHByaXZhdGUgX3BsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3ZhbHVlPzogc3RyaW5nO1xyXG4gIHByaXZhdGUgX29uQ2hhbmdlOiBhbnk7XHJcbiAgcHJpdmF0ZSBfb25Ub3VjaGVkOiBhbnk7XHJcbiAgX2FkZHJlc3NlczogZ29vZ2xlLm1hcHMucGxhY2VzLlF1ZXJ5QXV0b2NvbXBsZXRlUHJlZGljdGlvbltdO1xyXG4gIHJlYWRvbmx5IGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICByZWFkb25seSBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIEBIb3N0QmluZGluZygpIHJlYWRvbmx5IGlkID0gYGFkZHJlc3MtaW5wdXQtJHtBZGRyZXNzSW5wdXQubmV4dElkKyt9YDtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0RWxlbWVudDogRWxlbWVudFJlZjtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgb3B0aW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEFkZHJlc3NDaGFuZ2VFdmVudD4oKTtcclxuICBASW5wdXQoKSBkZWJvdW5jZSA9IERFQk9VTkNFX1RJTUU7XHJcbiAgQElucHV0KCkgZ2V0IHBsYWNlaG9sZGVyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xyXG4gIH1cclxuICBzZXQgcGxhY2Vob2xkZXIocGxoKSB7XHJcbiAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHBsaDtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgZm9jdXNlZCA9IGZhbHNlO1xyXG4gIGdldCBlbXB0eSgpOiBib29sZWFuIHsgcmV0dXJuICF0aGlzLmNvbnRyb2wudmFsdWU7IH1cclxuICBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvY3VzZWQgfHwgIXRoaXMuZW1wdHk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHJlcXVpcmVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xyXG4gIH1cclxuICBzZXQgcmVxdWlyZWQocmVxKSB7XHJcbiAgICB0aGlzLl9yZXF1aXJlZCA9IHJlcTtcclxuICAgIGlmIChyZXEpXHJcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7IH1cclxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWUgfHwgKHZhbHVlIGFzIGFueSkgPT09ICcnO1xyXG4gICAgaWYgKHRoaXMuY29udHJvbC5kaXNhYmxlZCAhPT0gdGhpcy5fZGlzYWJsZWQpIHtcclxuICAgICAgaWYgKHZhbHVlKVxyXG4gICAgICAgIHRoaXMuY29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLmNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIGVycm9yU3RhdGUgPSBmYWxzZTtcclxuICBjb250cm9sVHlwZT86IHN0cmluZyA9ICdiaXpkb2MtYWRkcmVzcy1pbnB1dCc7XHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKSBkZXNjcmliZWRCeSA9ICcnO1xyXG5cclxuICBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oJyAnKTtcclxuICB9XHJcbiAgb25Db250YWluZXJDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICB9XHJcbiAgd3JpdGVWYWx1ZSh2YWw6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2V0VmFsdWUodmFsLCBmYWxzZSk7XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuICBASW5wdXQoKSBnZXQgdmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcbiAgc2V0IHZhbHVlKHZhbDogc3RyaW5nKSB7XHJcbiAgICAgIHRoaXMuX3NldFZhbHVlKHZhbCwgdHJ1ZSk7XHJcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfc2V0VmFsdWUodmFsOiBzdHJpbmcsIGVtaXRFdmVudDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWw7XHJcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsID8geyBkZXNjcmlwdGlvbjogdmFsIH0gOiBudWxsLCB7ZW1pdEV2ZW50fSk7XHJcbiAgICB9XHJcblxyXG4gIG9uRm9jdXMoKSB7XHJcbiAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkKCk7XHJcbiAgfVxyXG4gIG9uQmx1cigpIHtcclxuICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xyXG4gIH1cclxuICBkaXNwbGF5Rm4oYWRkcmVzczogZ29vZ2xlLm1hcHMucGxhY2VzLlF1ZXJ5QXV0b2NvbXBsZXRlUHJlZGljdGlvbiB8IHN0cmluZykge1xyXG4gICAgcmV0dXJuIGlzT2JqZWN0KGFkZHJlc3MpID8gKGFkZHJlc3MgYXMgZ29vZ2xlLm1hcHMucGxhY2VzLlF1ZXJ5QXV0b2NvbXBsZXRlUHJlZGljdGlvbikuZGVzY3JpcHRpb24gOiBhZGRyZXNzIGFzIHN0cmluZztcclxuICB9XHJcbiAgc2VsZWN0ZWQoZTogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xyXG4gICAgY29uc3QgYWRkcmVzcyA9IGUub3B0aW9uLnZhbHVlIGFzIGdvb2dsZS5tYXBzLnBsYWNlcy5RdWVyeUF1dG9jb21wbGV0ZVByZWRpY3Rpb247XHJcbiAgICB0aGlzLl9vbkNoYW5nZShhZGRyZXNzLmRlc2NyaXB0aW9uKTtcclxuICAgIHRoaXMub3B0aW9uU2VsZWN0ZWQuZW1pdCh7IGFkZHJlc3M6IGFkZHJlc3MuZGVzY3JpcHRpb24sIHBsYWNlSWQ6IGFkZHJlc3MucGxhY2VfaWQgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLCBwcml2YXRlIF9mbTogRm9jdXNNb25pdG9yLCBwcml2YXRlIF9lbFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xyXG4gICAgfVxyXG4gICAgX2ZtLm1vbml0b3IoX2VsUmVmLm5hdGl2ZUVsZW1lbnQsIHRydWUpLnN1YnNjcmliZShvcmlnaW4gPT4ge1xyXG4gICAgICB0aGlzLmZvY3VzZWQgPSAhIW9yaWdpbjtcclxuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBmb2N1cygpIHtcclxuICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzZXJ2aWNlID0gbmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXJ2aWNlKCk7XHJcbiAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2UpLCB0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZShpbnB1dCA9PiB7XHJcbiAgICAgIHNlcnZpY2UuZ2V0UXVlcnlQcmVkaWN0aW9ucyh7IGlucHV0IH0sIChyLCBzKSA9PiB7XHJcbiAgICAgICAgaWYgKHMgPT09IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZXNTZXJ2aWNlU3RhdHVzLk9LKVxyXG4gICAgICAgICAgdGhpcy5fYWRkcmVzc2VzID0gcjtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhgYWRkcmVzcyBnb29nbGUgYXBpIGVycm9yIGNvZGU6ICR7c31gKVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5fZm0uc3RvcE1vbml0b3JpbmcodGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEFkZHJlc3NDaGFuZ2VFdmVudCB7XHJcbiAgYWRkcmVzczogc3RyaW5nO1xyXG4gIHBsYWNlSWQ6IHN0cmluZztcclxufVxyXG4iXX0=
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9jb250cm9scy9hZGRyZXNzLmlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLFdBQVcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFzQixZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5SSxPQUFPLEVBQW1DLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRW5FLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7QUFDOUQsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDO0FBa0IxQixNQUFNLE9BQ0UsWUFBWTtJQXFHbEIsWUFBdUMsU0FBb0IsRUFBVSxHQUFpQixFQUFVLE1BQStCO1FBQXhGLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFjO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBeUI7UUFsR3ZILGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUtqQixZQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUM1QixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDcEIsT0FBRSxHQUFHLGlCQUFpQixZQUFZLENBQUMsTUFBTSxFQUFF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LENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7O0FBaEljLG1CQUFNLEdBQUcsQ0FBRSxDQUFBO3lHQURwQixZQUFZOzZGQUFaLFlBQVksZ1ZBaEJQLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxDQUFDLCtJQUM5RDs7Ozs7Ozs4QkFPa0I7MkZBUXRCLFlBQVk7a0JBbEJuQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsY0FBYyxFQUFFLENBQUM7b0JBQ3hFLFFBQVEsRUFBRTs7Ozs7Ozs4QkFPa0I7b0JBQzVCLE1BQU0sRUFBRSxDQUFDLG9DQUFvQyxDQUFDO29CQUM5QyxJQUFJLEVBQUU7d0JBQ0osa0JBQWtCLEVBQUUsa0JBQWtCO3dCQUN0Qyx5QkFBeUIsRUFBRSxhQUFhO3FCQUN6QztpQkFDRjs7MEJBdUdjLFFBQVE7OzBCQUFJLElBQUk7Z0dBMUZMLEVBQUU7c0JBQXpCLFdBQVc7Z0JBQzBCLFlBQVk7c0JBQWpELFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDakIsY0FBYztzQkFBaEMsTUFBTTtnQkFDRSxRQUFRO3NCQUFoQixLQUFLO2dCQUNPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBYUYsUUFBUTtzQkFEWCxLQUFLO2dCQWFGLFFBQVE7c0JBRFgsS0FBSztnQkFjZ0MsV0FBVztzQkFBaEQsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBb0J2QixLQUFLO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBIb3N0QmluZGluZywgT3B0aW9uYWwsIFNlbGYsIE9uSW5pdCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0NvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xyXG5pbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XHJcbmNvbnN0IERFQk9VTkNFX1RJTUUgPSAyNTA7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWFkZHJlc3MnLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IEFkZHJlc3NJbnB1dCB9XSxcclxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJhZGRyZXNzLWNvbnRhaW5lclwiPlxyXG4gICAgPGlucHV0IG1hdElucHV0IFttYXRBdXRvY29tcGxldGVdPVwiYWRkcmVzc1wiIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgI2lucHV0XHJcbiAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIiAoYmx1cik9XCJvbkJsdXIoKVwiLz5cclxuICAgIDxtYXQtYXV0b2NvbXBsZXRlICNhZGRyZXNzIChvcHRpb25TZWxlY3RlZCk9XCJzZWxlY3RlZCgkZXZlbnQpXCIgW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlGblwiPlxyXG4gICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgYSBvZiBfYWRkcmVzc2VzXCIgW3ZhbHVlXT1cImFcIj5cclxuICAgICAgICA8c3BhbiBtYXRMaW5lPnt7YS5kZXNjcmlwdGlvbn19PC9zcGFuPlxyXG4gICAgICA8L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1hdXRvY29tcGxldGU+PC9kaXY+YCxcclxuICBzdHlsZXM6IFsnLmFkZHJlc3MtY29udGFpbmVyIHtkaXNwbGF5OiBmbGV4fSddLFxyXG4gIGhvc3Q6IHtcclxuICAgICdbY2xhc3MuZmxvYXRpbmddJzogJ3Nob3VsZExhYmVsRmxvYXQnLFxyXG4gICAgJ1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ2Rlc2NyaWJlZEJ5J1xyXG4gIH1cclxufSlcclxuZXhwb3J0XHJcbiAgY2xhc3MgQWRkcmVzc0lucHV0IGltcGxlbWVudHMgTWF0Rm9ybUZpZWxkQ29udHJvbDxzdHJpbmc+LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95LCBPbkluaXQge1xyXG4gIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XHJcbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfdmFsdWU/OiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfb25DaGFuZ2U6IGFueTtcclxuICBwcml2YXRlIF9vblRvdWNoZWQ6IGFueTtcclxuICBfYWRkcmVzc2VzOiBnb29nbGUubWFwcy5wbGFjZXMuUXVlcnlBdXRvY29tcGxldGVQcmVkaWN0aW9uW107XHJcbiAgcmVhZG9ubHkgY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgQEhvc3RCaW5kaW5nKCkgcmVhZG9ubHkgaWQgPSBgYWRkcmVzcy1pbnB1dC0ke0FkZHJlc3NJbnB1dC5uZXh0SWQrK31gO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBvcHRpb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QWRkcmVzc0NoYW5nZUV2ZW50PigpO1xyXG4gIEBJbnB1dCgpIGRlYm91bmNlID0gREVCT1VOQ0VfVElNRTtcclxuICBASW5wdXQoKSBnZXQgcGxhY2Vob2xkZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG4gIHNldCBwbGFjZWhvbGRlcihwbGgpIHtcclxuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gcGxoO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBmb2N1c2VkID0gZmFsc2U7XHJcbiAgZ2V0IGVtcHR5KCk6IGJvb2xlYW4geyByZXR1cm4gIXRoaXMuY29udHJvbC52YWx1ZTsgfVxyXG4gIGdldCBzaG91bGRMYWJlbEZsb2F0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9jdXNlZCB8fCAhdGhpcy5lbXB0eTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgcmVxdWlyZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XHJcbiAgfVxyXG4gIHNldCByZXF1aXJlZChyZXEpIHtcclxuICAgIHRoaXMuX3JlcXVpcmVkID0gcmVxO1xyXG4gICAgaWYgKHJlcSlcclxuICAgICAgdGhpcy5jb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuY29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9kaXNhYmxlZDsgfVxyXG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgaWYgKHRoaXMuY29udHJvbC5kaXNhYmxlZCAhPT0gdGhpcy5fZGlzYWJsZWQpIHtcclxuICAgICAgaWYgKHZhbHVlKVxyXG4gICAgICAgIHRoaXMuY29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLmNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIGVycm9yU3RhdGUgPSBmYWxzZTtcclxuICBjb250cm9sVHlwZT86IHN0cmluZyA9ICdiaXpkb2MtYWRkcmVzcy1pbnB1dCc7XHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKSBkZXNjcmliZWRCeSA9ICcnO1xyXG5cclxuICBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oJyAnKTtcclxuICB9XHJcbiAgb25Db250YWluZXJDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICB9XHJcbiAgd3JpdGVWYWx1ZSh2YWw6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2V0VmFsdWUodmFsLCBmYWxzZSk7XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuICBASW5wdXQoKSBnZXQgdmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcbiAgc2V0IHZhbHVlKHZhbDogc3RyaW5nKSB7XHJcbiAgICAgIHRoaXMuX3NldFZhbHVlKHZhbCwgdHJ1ZSk7XHJcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfc2V0VmFsdWUodmFsOiBzdHJpbmcsIGVtaXRFdmVudDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWw7XHJcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsID8geyBkZXNjcmlwdGlvbjogdmFsIH0gOiBudWxsLCB7ZW1pdEV2ZW50fSk7XHJcbiAgICB9XHJcblxyXG4gIG9uRm9jdXMoKSB7XHJcbiAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkICYmIHRoaXMuX29uVG91Y2hlZCgpO1xyXG4gIH1cclxuICBvbkJsdXIoKSB7XHJcbiAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcclxuICB9XHJcbiAgZGlzcGxheUZuKGFkZHJlc3M6IGdvb2dsZS5tYXBzLnBsYWNlcy5RdWVyeUF1dG9jb21wbGV0ZVByZWRpY3Rpb24gfCBzdHJpbmcpIHtcclxuICAgIHJldHVybiBpc09iamVjdChhZGRyZXNzKSA/IChhZGRyZXNzIGFzIGdvb2dsZS5tYXBzLnBsYWNlcy5RdWVyeUF1dG9jb21wbGV0ZVByZWRpY3Rpb24pLmRlc2NyaXB0aW9uIDogYWRkcmVzcyBhcyBzdHJpbmc7XHJcbiAgfVxyXG4gIHNlbGVjdGVkKGU6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcclxuICAgIGNvbnN0IGFkZHJlc3MgPSBlLm9wdGlvbi52YWx1ZSBhcyBnb29nbGUubWFwcy5wbGFjZXMuUXVlcnlBdXRvY29tcGxldGVQcmVkaWN0aW9uO1xyXG4gICAgdGhpcy5fb25DaGFuZ2UoYWRkcmVzcy5kZXNjcmlwdGlvbik7XHJcbiAgICB0aGlzLm9wdGlvblNlbGVjdGVkLmVtaXQoeyBhZGRyZXNzOiBhZGRyZXNzLmRlc2NyaXB0aW9uLCBwbGFjZUlkOiBhZGRyZXNzLnBsYWNlX2lkIH0pO1xyXG4gIH1cclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCwgcHJpdmF0ZSBfZm06IEZvY3VzTW9uaXRvciwgcHJpdmF0ZSBfZWxSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIH1cclxuICAgIF9mbS5tb25pdG9yKF9lbFJlZi5uYXRpdmVFbGVtZW50LCB0cnVlKS5zdWJzY3JpYmUob3JpZ2luID0+IHtcclxuICAgICAgdGhpcy5mb2N1c2VkID0gISFvcmlnaW47XHJcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBwdWJsaWMgZm9jdXMoKSB7XHJcbiAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlU2VydmljZSgpO1xyXG4gICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlKSwgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoaW5wdXQgPT4ge1xyXG4gICAgICBzZXJ2aWNlLmdldFF1ZXJ5UHJlZGljdGlvbnMoeyBpbnB1dCB9LCAociwgcykgPT4ge1xyXG4gICAgICAgIGlmIChzID09PSBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VzU2VydmljZVN0YXR1cy5PSylcclxuICAgICAgICAgIHRoaXMuX2FkZHJlc3NlcyA9IHI7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgY29uc29sZS5sb2coYGFkZHJlc3MgZ29vZ2xlIGFwaSBlcnJvciBjb2RlOiAke3N9YClcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICAgIHRoaXMuX2ZtLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBBZGRyZXNzQ2hhbmdlRXZlbnQge1xyXG4gIGFkZHJlc3M6IHN0cmluZztcclxuICBwbGFjZUlkOiBzdHJpbmc7XHJcbn1cclxuIl19
|