ezlibrary_v2 0.1.86 → 0.1.87

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.
@@ -66,7 +66,9 @@ export class EzHeaderComponent {
66
66
  this.toastr.error('Please enter Search Parameter');
67
67
  return;
68
68
  }
69
- let r = this.cs.formateStr(fglstr);
69
+ // same attribute multipale value access ke liye coma seprate remove (23-09-2025)
70
+ // let r = this.cs.formateStr(fglstr);
71
+ let r = fglstr == null ? '' : fglstr.trim();
70
72
  localStorage.setItem('packetLookupStr', r);
71
73
  if (this.cUrl == '/solitaires') {
72
74
  this.router.navigate(['solitaires/packet-lookup/Y'], { queryParams: { schId: this.srchCnt } });
@@ -474,4 +476,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
474
476
  type: ViewChild,
475
477
  args: ['closebtn']
476
478
  }] } });
477
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V6bGliL3NyYy9saWIvZXpoZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V6bGliL3NyYy9saWIvZXpoZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUVoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7Ozs7O0FBU2hELE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsWUFDVSxNQUFjLEVBQ2QsTUFBcUIsRUFDckIsRUFBd0IsRUFDekIsUUFBMEIsRUFDekIsY0FBaUM7UUFKakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsT0FBRSxHQUFGLEVBQUUsQ0FBc0I7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBSTNDLFVBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ25CLDBCQUEwQjtRQUMxQixPQUFFLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUMvQixTQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQixZQUFPLEdBQUcsRUFBRSxDQUFBO1FBQ1osU0FBSSxHQUFHLEVBQUUsQ0FBQTtRQUNULGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBR2pCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLFNBQUksR0FBRyxLQUFLLENBQUM7UUFDYixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBUWIsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNaLFFBQUcsR0FBRyxDQUFDLENBQUM7UUFDUixvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQTRTckIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBOEh6QixRQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ1QsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxhQUFRLEdBQUcsRUFBRSxDQUFDO0lBdmNWLENBQUM7SUE4QkwsV0FBVyxDQUFDLEVBQUU7UUFFWixJQUFJLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFO1lBQ2xCLGlDQUFpQztZQUNqQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3ZDO2FBQU07U0FDTjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDO0lBQ3hELENBQUM7SUFFRCxTQUFTO1FBQ1AsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxNQUFNO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUE7UUFDL0IsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDNUQsSUFBSSxNQUFNLElBQUksU0FBUyxJQUFJLE1BQU0sSUFBSSxFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztZQUNuRCxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxZQUFZLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTNDLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxhQUFhLEVBQUU7WUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDaEc7YUFBTTtZQUNMLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsNEJBQTRCLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUksTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ2xEO0lBRUgsQ0FBQztJQUdELE1BQU07UUFDSixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFFBQVEsQ0FBQTtRQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUNqQyw2REFBNkQ7UUFDN0QsSUFBSSxPQUFPLEdBQUc7WUFDWixNQUFNLEVBQUUsUUFBUTtTQUNqQixDQUFBO1FBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ3JELElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxTQUFTLEVBQUU7Z0JBQ2hDLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNCLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzNCLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JCLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQzdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzFCLFlBQVksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQy9CLFlBQVksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3JDLFlBQVksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2xDLFlBQVksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2xDLFlBQVksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3BDLFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2pDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNyQyxZQUFZLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQzNDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlCLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFFckIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2dCQUNoRSxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM5RSxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMzRSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMxRSxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM3RSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMxRSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMxRSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNwRSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQzthQUM3QztpQkFBTTtnQkFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtJQUNmLHFCQUFxQjtJQUNyQix5REFBeUQ7SUFFekQsd0tBQXdLO0lBQ3hLLHdCQUF3QjtJQUN4QiwwQ0FBMEM7SUFDMUMsK0JBQStCO0lBQy9CLHFCQUFxQjtJQUNyQixNQUFNO0lBRU4sdUNBQXVDO0lBQ3ZDLHdDQUF3QztJQUN4QyxnQ0FBZ0M7SUFDaEMsdUNBQXVDO0lBRXZDLDZEQUE2RDtJQUM3RCxvQkFBb0I7SUFDcEIsNEJBQTRCO0lBQzVCLE1BQU07SUFDTixnRUFBZ0U7SUFDaEUsMENBQTBDO0lBQzFDLG1GQUFtRjtJQUNuRiw4REFBOEQ7SUFDOUQsa0NBQWtDO0lBQ2xDLCtCQUErQjtJQUMvQix3Q0FBd0M7SUFDeEMsb0JBQW9CO0lBQ3BCLGtDQUFrQztJQUNsQyw4Q0FBOEM7SUFDOUMsWUFBWTtJQUNaLDJCQUEyQjtJQUMzQiwrQkFBK0I7SUFDL0IsdUJBQXVCO0lBQ3ZCLGdDQUFnQztJQUNoQyxvQ0FBb0M7SUFDcEMsZ0NBQWdDO0lBQ2hDLGtDQUFrQztJQUNsQyw0Q0FBNEM7SUFDNUMsNkRBQTZEO0lBQzdELGtEQUFrRDtJQUNsRCxxREFBcUQ7SUFDckQsY0FBYztJQUNkLDRDQUE0QztJQUM1Qyx1Q0FBdUM7SUFDdkMsNkNBQTZDO0lBRTdDLCtEQUErRDtJQUMvRCxvREFBb0Q7SUFDcEQsMkRBQTJEO0lBQzNELGdCQUFnQjtJQUVoQixnQkFBZ0I7SUFDaEIsY0FBYztJQUNkLDZDQUE2QztJQUM3QyxpQkFBaUI7SUFDakIsdUJBQXVCO0lBQ3ZCLGdDQUFnQztJQUNoQyx5QkFBeUI7SUFDekIsb0NBQW9DO0lBQ3BDLG9EQUFvRDtJQUNwRCxnQ0FBZ0M7SUFDaEMsa0NBQWtDO0lBQ2xDLDRDQUE0QztJQUM1Qyw2REFBNkQ7SUFDN0Qsa0RBQWtEO0lBQ2xELHFEQUFxRDtJQUNyRCxjQUFjO0lBQ2QsNENBQTRDO0lBQzVDLHFDQUFxQztJQUNyQyx1Q0FBdUM7SUFDdkMsNkNBQTZDO0lBRTdDLCtEQUErRDtJQUMvRCxvREFBb0Q7SUFDcEQsMkRBQTJEO0lBQzNELGdCQUFnQjtJQUVoQixnQkFBZ0I7SUFFaEIsMERBQTBEO0lBQzFELG1EQUFtRDtJQUNuRCw2QkFBNkI7SUFDN0IsZ0NBQWdDO0lBQ2hDLHlCQUF5QjtJQUN6QixjQUFjO0lBS2QsY0FBYztJQUNkLDBCQUEwQjtJQUMxQixpREFBaUQ7SUFDakQsVUFBVTtJQUdWLHNEQUFzRDtJQUN0RCxlQUFlO0lBQ2YsNkNBQTZDO0lBQzdDLFFBQVE7SUFDUiw2QkFBNkI7SUFDN0IsbUdBQW1HO0lBQ25HLFFBQVE7SUFDUixJQUFJO0lBRUosY0FBYztRQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDMUIsSUFBSSxNQUFNLEdBQUcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFDLENBQUE7UUFDdEMsSUFBSSxPQUFPLEdBQUcsRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDNUUsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLFNBQVMsRUFBRTtnQkFDaEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQTtnQkFDeEUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO2dCQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDNUI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3JDO1FBQ0gsQ0FBQyxDQUFDLENBQUUsS0FBSyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFFTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRCxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUUsSUFBSSxjQUFjLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEUsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEUsSUFBSSxRQUFRLEdBQUcsUUFBUSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFBO1FBQ1gsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNyQixHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDbEIsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEIsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFO1lBQ1gsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3JCLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUM7Z0JBQ25CLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7Z0JBQ3JCLElBQUksV0FBVyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUM7Z0JBQy9CLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtvQkFDN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxDQUFBO2lCQUN2QztnQkFDRCxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDM0IsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtvQkFDeEIsV0FBVyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7b0JBRTlCLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTt3QkFDN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7d0JBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEdBQUcsTUFBTSxDQUFDO3FCQUMzQztnQkFFSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUM7U0FDbkM7YUFBTTtZQUNMLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztZQUNaLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUNyQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDZCxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNyQixLQUFLLEdBQUcsS0FBSyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDdkMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQztnQkFDbkIsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDckIsSUFBSSxXQUFXLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztnQkFDL0IsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO29CQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHLENBQUE7aUJBQ3ZDO2dCQUNELEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUMzQixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDO29CQUN0QixXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO29CQUN4QixXQUFXLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztvQkFFOUIsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO3dCQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzt3QkFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsR0FBRyxNQUFNLENBQUM7cUJBQzNDO2dCQUVILENBQUMsQ0FBQyxDQUFDO2dCQUVILElBQUksS0FBSyxJQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUM7b0JBQ3BDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO29CQUNkLFdBQVcsR0FBRyxFQUFFLENBQUM7b0JBQ2pCLEtBQUssR0FBRyxDQUFDLENBQUM7aUJBQ1g7WUFLSCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksS0FBSyxJQUFJLENBQUM7Z0JBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUM7U0FDdkM7UUFHRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFDRCxTQUFTO1FBQ1AsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBRWxFLElBQUksT0FBTyxJQUFJLE1BQU0sSUFBSSxPQUFPLElBQUksRUFBRSxFQUFFO1lBQ3RDLFFBQVEsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7U0FDL0Q7YUFBTTtZQUNMLFFBQVEsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7U0FDOUQ7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUVaLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksV0FBVyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFBRSxPQUFPO1FBQ25LLElBQUksTUFBTSxHQUFRO1lBQ2hCLGNBQWMsRUFBRSxrQkFBa0I7WUFDbEMsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFBO1FBQ0Qsa0NBQWtDO1FBQ2xDLG1DQUFtQztRQUNuQyxtREFBbUQ7UUFFbkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcseUJBQXlCLENBQUM7UUFDOUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDL0IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLGdCQUFnQixDQUFDO1FBQ3BDLHdEQUF3RDtRQUN4RCxJQUFJLE9BQU8sR0FBRztZQUNaLE1BQU0sRUFBRSxnQkFBZ0I7U0FDekIsQ0FBQTtRQUNELElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUMxRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksU0FBUyxFQUFFO2dCQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMzQixJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7Z0JBRTlCLFFBQVEsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDakQ7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3JDO1FBQ0gsQ0FBQyxDQUFDO2FBQ0MsS0FBSyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFFUCxDQUFDO0lBQ0QsY0FBYztRQUNaLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFFL0IsQ0FBQztJQUNELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNCLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJO2dCQUFFLE9BQU87WUFDekMsSUFBSSxNQUFNLEdBQVE7Z0JBQ2hCLFdBQVcsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDOUIsY0FBYyxFQUFFLGtCQUFrQjtnQkFDbEMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQy9DLFNBQVMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztnQkFDL0IsUUFBUSxFQUFFLElBQUk7YUFDZixDQUFBO1lBRUQsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFDaEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ25DLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQ3JDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztZQUNwQyx3REFBd0Q7WUFDeEQsSUFBSSxPQUFPLEdBQUc7Z0JBQ1osTUFBTSxFQUFFLGdCQUFnQjthQUN6QixDQUFBO1lBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUMxRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksU0FBUyxFQUFFO29CQUNoQyxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO29CQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDM0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztvQkFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO2lCQUM1QjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO29CQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQ3JDO1lBQ0gsQ0FBQyxDQUFDO2lCQUNDLEtBQUssQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7U0FFTjthQUFNO1lBRUwsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztTQUNsRDtJQUdILENBQUM7SUFFRCxRQUFRLENBQUMsR0FBRyxFQUFFLE9BQU87UUFDbkIsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQy9ELElBQUksT0FBTyxJQUFJLE1BQU07WUFDbkIsUUFBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQzs7WUFFM0QsUUFBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUM1RCxJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQUU7WUFFaEIsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDdEMsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ2pELElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzRSxJQUFJLFVBQVUsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hELElBQUksUUFBUSxJQUFJLEVBQUUsRUFBRTtnQkFFbEIsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO29CQUN0QyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQ3BEO2dCQUNELFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDbEMsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRTtvQkFDMUIsSUFBSSxXQUFXLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7b0JBQ3pDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2lCQUNwQztnQkFDRCxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsVUFBVSxDQUFDO2dCQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxPQUFPLENBQUM7Z0JBQ3hDLFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQzthQUNyRTtTQUNGO0lBQ0gsQ0FBQztJQUNELFdBQVc7UUFDVCxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdFLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFPRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUN2RCxxQ0FBcUM7UUFDckMsd0NBQXdDO1FBRXhDLHdCQUF3QjtRQUN4QiwyQkFBMkI7UUFDM0IsNENBQTRDO1FBQzVDLDRDQUE0QztRQUM1Qyw0Q0FBNEM7UUFDNUMsdUJBQXVCO1FBQ3ZCLE9BQU87UUFDUCxNQUFNO1FBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO2FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQXNCLEVBQUUsQ0FBQyxDQUFDLFlBQVksYUFBYSxDQUFDLENBQUM7YUFDbkUsU0FBUyxDQUFDLENBQUMsTUFBcUIsRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDO1lBQ3JDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztRQUVKLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixjQUFjLEVBQUUsa0JBQWtCO1lBQ2xDLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztRQUNGLGdEQUFnRDtRQUNoRCwrRUFBK0U7UUFDL0Usa0NBQWtDO1FBQ2xDLG1DQUFtQztRQUNuQyxvQ0FBb0M7SUFHdEMsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDcEUsSUFBSSxTQUFTLElBQUksTUFBTSxFQUFFO1lBQ3ZCLFFBQVEsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7U0FDL0Q7YUFBTTtZQUNMLFFBQVEsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7U0FFOUQ7SUFDSCxDQUFDOztpSUE3ZlUsaUJBQWlCO3FIQUFqQixpQkFBaUIsMEpDakI5QixxMlJBNkttRzsyRkQ1SnRGLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxjQUFjOzJOQWFELFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29va2llIH0gZnJvbSAnbmcyLWNvb2tpZXMvbmcyLWNvb2tpZXMnO1xyXG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tbWFuU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9jb21tYW4tc2VydmljZS9jb21tYW4tc2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMgIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBHbG9ibGVFbnZTZXJ2aWNlIH0gZnJvbSAnLi4vZ2xvYmxlL2dsb2JsZS1lbnYuc2VydmljZSc7XHJcbmltcG9ydCB7IE5neFNwaW5uZXJTZXJ2aWNlIH0gZnJvbSBcIm5neC1zcGlubmVyXCI7XHJcbmltcG9ydCB7IHJlc3BvbnNlIH0gZnJvbSAnZXhwcmVzcyc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZXpoZWFkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEV6SGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0clNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNzOiBDb21tYW5TZXJ2aWNlU2VydmljZSxcclxuICAgIHB1YmxpYyBnbG9ibEVudjogR2xvYmxlRW52U2VydmljZSxcclxuICAgIHByaXZhdGUgc3Bpbm5lclNlcnZpY2U6IE5neFNwaW5uZXJTZXJ2aWNlIFxyXG4gICkgeyB9XHJcbiAgQFZpZXdDaGlsZCgnY2xvc2VidG4nKSBjbG9zZWJ0bjogRWxlbWVudFJlZjtcclxuXHJcbiAgY0RhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIC8vIGRzID0gQ29va2llLmdldCgnX2RzJyk7XHJcbiAgZHMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnRFMnKVxyXG4gIHVVc3IgPSBDb29raWUuZ2V0KCdfdXNlcm5hbWUnKTtcclxuICBjb21wYW55ID0gXCJcIlxyXG4gIHllYXIgPSBcIlwiXHJcbiAgdXNlckRldGFpbHMgPSBbXTtcclxuICBoaXN0b3J5TGlua01hcCA9IHt9O1xyXG4gIGhpc3RvcnlMaW5rID0gW107XHJcbiAgY1VybDtcclxuICBoZWFkZXI7XHJcbiAgYWNjTWVudUxpc3QgPSB7fTtcclxuICBmbGFnID0gZmFsc2U7XHJcbiAga2V5TGlzdCA9IFtdO1xyXG4gIHNlYXJjaEY7XHJcbiAgdW5hbWU7XHJcbiAgcWtTY2g7XHJcbiAgc2NoSWQ7XHJcbiAgc3R0c0E7XHJcbiAgY291bnQ7XHJcbiAgbnRTY2g6IGJvb2xlYW47XHJcbiAgc3JjaENudCA9IDA7XHJcbiAgY250ID0gMDtcclxuICBmZWVkYmFja0NvbW1lbnQgPSAnJztcclxuXHJcblxyXG5cclxuICBjbGlja0ZpbHRlcihrYykge1xyXG5cclxuICAgIGlmIChrYy53aGljaCA9PSAxMykge1xyXG4gICAgICAvLyB0aGlzLmdldFNyY2hDb3VudCh0aGlzLnFrU2NoKTtcclxuICAgICAgdGhpcy5wYWNrZXRMb29rdXBTcmNDb3VudCh0aGlzLnFrU2NoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBiYWNrSG9tZSgpIHtcclxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5nbG9ibEVudi5vcmlnaW4gKyBcIiNob21lXCI7XHJcbiAgfVxyXG5cclxuICByb3V0ZWhvbWUoKSB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLnJvdXRlci5zZXJpYWxpemVVcmwodGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJ2hvbWUnXSkpO1xyXG4gICAgd2luZG93Lm9wZW4oXCIvI1wiICsgdXJsLCAnSG9tZScpO1xyXG4gIH1cclxuICBwYWNrZXRMb29rdXBTcmNDb3VudChmZ2xzdHIpIHtcclxuICAgIHRoaXMuc3JjaENudCA9IHRoaXMuc3JjaENudCArIDFcclxuICAgIGxldCBsb2dEdGwgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdyZXNyZXFwYXJhJykpO1xyXG4gICAgaWYgKGZnbHN0ciA9PSB1bmRlZmluZWQgfHwgZmdsc3RyID09ICcnKSB7XHJcbiAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdQbGVhc2UgZW50ZXIgU2VhcmNoIFBhcmFtZXRlcicpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgciA9IHRoaXMuY3MuZm9ybWF0ZVN0cihmZ2xzdHIpO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3BhY2tldExvb2t1cFN0cicsIHIpO1xyXG5cclxuICAgIGlmICh0aGlzLmNVcmwgPT0gJy9zb2xpdGFpcmVzJykge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3NvbGl0YWlyZXMvcGFja2V0LWxvb2t1cC9ZJ10sIHsgcXVlcnlQYXJhbXM6IHsgc2NoSWQ6IHRoaXMuc3JjaENudCB9IH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZXIuc2VyaWFsaXplVXJsKHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoWydzb2xpdGFpcmVzL3BhY2tldC1sb29rdXAvWSddLCB7IHF1ZXJ5UGFyYW1zOiB7IHNjaElkOiB0aGlzLnNyY2hDbnQgfSB9KSk7XHJcbiAgICAgIHdpbmRvdy5vcGVuKFwiL3NvbGl0YWlyZXMvI1wiICsgdXJsLCAnU29saXRhaXJlcycpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICBsZXQgcmVxT2JqID0ge307XHJcbiAgICByZXFPYmpbJ2Zvcm1ObWUnXSA9ICdMb2dvdXQnXHJcbiAgICB0aGlzLmhlYWRlclsnbWV0aG9kJ10gPSAnbG9nT3V0JztcclxuICAgIC8vIGxldCBvcHRpb25zID0gKHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVyKSB9KTtcclxuICAgIGxldCBvcHRpb25zID0ge1xyXG4gICAgICBtZXRob2Q6ICdsb2dPdXQnXHJcbiAgICB9XHJcbiAgICB0aGlzLmNzLmxvZ291dChyZXFPYmosIG9wdGlvbnMpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICBsZXQgZHMgPSBDb29raWUuZ2V0KCdfZHMnKTtcclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfdXNlcm5hbWUnKTtcclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfbG9ndGltZScpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ19jaycpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ19sb2dpZCcpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ19hY2NDb21wYW55Jyk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2FjY3llYXInKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnT1RQJyk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2NsaWVudEtleScpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdsb2dJZG4nKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnbWRsS2V5Jyk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3VzZXJuYW1lJyk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3NlbE1kJyk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2NoZycsICdmYWxzZScpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCd0cmFuc2FjdGlvbkluZm8nKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnZHMnKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuICAgICAgICBcclxuICAgICAgICBDb29raWUuZGVsZXRlQWxsKHRoaXMuZ2xvYmxFbnYucGF0aG5hbWUsIHRoaXMuZ2xvYmxFbnYuaG9zdG5hbWUpXHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnQXV0aG9yaXphdGlvbicsdGhpcy5nbG9ibEVudi5wYXRobmFtZSwgdGhpcy5nbG9ibEVudi5ob3N0bmFtZSk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX3VzZXJuYW1lJywgdGhpcy5nbG9ibEVudi5wYXRobmFtZSwgdGhpcy5nbG9ibEVudi5ob3N0bmFtZSk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2xvZ3RpbWUnLCB0aGlzLmdsb2JsRW52LnBhdGhuYW1lLCB0aGlzLmdsb2JsRW52Lmhvc3RuYW1lKTtcclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfYWNjQ29tcGFueScsIHRoaXMuZ2xvYmxFbnYucGF0aG5hbWUsIHRoaXMuZ2xvYmxFbnYuaG9zdG5hbWUpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ19hY2N5ZWFyJywgdGhpcy5nbG9ibEVudi5wYXRobmFtZSwgdGhpcy5nbG9ibEVudi5ob3N0bmFtZSk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2FjY3llYXInLCB0aGlzLmdsb2JsRW52LnBhdGhuYW1lLCB0aGlzLmdsb2JsRW52Lmhvc3RuYW1lKTtcclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfZHMnLHRoaXMuZ2xvYmxFbnYucGF0aG5hbWUsIHRoaXMuZ2xvYmxFbnYuaG9zdG5hbWUpO1xyXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5nbG9ibEVudi5vcmlnaW47XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IocmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnRvYXN0ci5lcnJvcihlcnIubWVzc2FnZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIG1lbnVMaXN0KCkge1xyXG4gIC8vICAgbGV0IHJlcU9iaiA9IHt9O1xyXG4gIC8vICAgbGV0IG1vZHVsZUtleXMgPSB0aGlzLm1kbGtbdGhpcy5jVXJsLnNwbGl0KCcvJylbMV1dO1xyXG5cclxuICAvLyAgIGlmIChDb29raWUuZ2V0KCdBdXRob3JpemF0aW9uJykgPT0gbnVsbCAmJiBDb29raWUuZ2V0KCdBdXRob3JpemF0aW9uJykgPT0gJ3VuZGVmaW5lZCcgJiYgQ29va2llLmdldCgnQXV0aG9yaXphdGlvbicpID09ICcnICYmICFDb29raWUuZ2V0KCdBdXRob3JpemF0aW9uJykpIHJldHVybjtcclxuICAvLyAgIGxldCBoZWFkZXI6IGFueSA9IHtcclxuICAvLyAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAvLyAgICAgJ21ldGhvZCc6ICdnZXRNZW51TGlzdCcsXHJcbiAgLy8gICAgICdzb3VyY2UnOiAncXMnXHJcbiAgLy8gICB9XHJcbiAgICBcclxuICAvLyAgIC8vICdjbGllbnRrZXknOiBDb29raWUuZ2V0KCdfY2snKSxcclxuICAvLyAgIC8vICdsb2dpbmlkJzogQ29va2llLmdldCgnX2xvZ2lkJyksXHJcbiAgLy8gICAvLyAnbW9kdWxla2V5JzogbW9kdWxlS2V5cyxcclxuICAvLyAgIHJlcU9ialsnbW9kdWxlS2V5cyddID0gbW9kdWxlS2V5cztcclxuXHJcbiAgLy8gICAvLyBsZXQgb3B0aW9ucyA9ICh7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyhoZWFkZXIpIH0pO1xyXG4gIC8vICAgbGV0IG9wdGlvbnMgPSB7XHJcbiAgLy8gICAgIG1ldGhvZDogXCJnZXRNZW51TGlzdFwiXHJcbiAgLy8gICB9XHJcbiAgLy8gICB0aGlzLmNzLm1lbnVMaXN0KHJlcU9iaiwgb3B0aW9ucykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gIC8vICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09ICdTVUNDRVNTJykge1xyXG4gIC8vICAgICAgIGxldCBsb2NoaXN0b3J5TWFwID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnaGlzdG9yeUxpbmsnKSkgfHwge307XHJcbiAgLy8gICAgICAgbGV0IGxvY2hpc3RvcnlMaW5rID0gbG9jaGlzdG9yeU1hcFttb2R1bGVLZXlzXSB8fCBbXTtcclxuICAvLyAgICAgICB0aGlzLmhpc3RvcnlMaW5rTWFwID0ge307XHJcbiAgLy8gICAgICAgdGhpcy5oaXN0b3J5TGluayA9IFtdO1xyXG4gIC8vICAgICAgIGxldCBtZW51TGlzdCA9IHJlc3BvbnNlLnJlc3VsdDtcclxuICAvLyAgICAgICBsZXQgY250ID0gMFxyXG4gIC8vICAgICAgIG1lbnVMaXN0LmZvckVhY2goZWxlID0+IHtcclxuICAvLyAgICAgICAgIGNudCA9IGNudCArIGVsZS5TdWJNZW51Lmxlbmd0aCArIDE7XHJcbiAgLy8gICAgICAgfSk7XHJcbiAgLy8gICAgICAgbGV0IGRpdiA9IGNudCAvIDQ7XHJcbiAgLy8gICAgICAgZGl2ID0gTWF0aC5yb3VuZChkaXYpO1xyXG4gIC8vICAgICAgIGlmIChkaXYgPCAxKSB7XHJcbiAgLy8gICAgICAgICBsZXQgbmV3TWVudUxpc3QgPSBbXTtcclxuICAvLyAgICAgICAgIG1lbnVMaXN0LmZvckVhY2goZWxlID0+IHtcclxuICAvLyAgICAgICAgICAgZWxlW1wiaXNoZHJcIl0gPSBcIllcIjtcclxuICAvLyAgICAgICAgICAgbmV3TWVudUxpc3QucHVzaChlbGUpXHJcbiAgLy8gICAgICAgICAgIGxldCBleHRtZW51X2lkbiA9IGVsZS5tZW51X2lkbjtcclxuICAvLyAgICAgICAgICAgaWYgKGxvY2hpc3RvcnlMaW5rLmluZGV4T2YoZXh0bWVudV9pZG4pICE9IC0xKSB7XHJcbiAgLy8gICAgICAgICAgICAgdGhpcy5oaXN0b3J5TGluay5wdXNoKGV4dG1lbnVfaWRuKTtcclxuICAvLyAgICAgICAgICAgICB0aGlzLmhpc3RvcnlMaW5rTWFwW2V4dG1lbnVfaWRuXSA9IGVsZVxyXG4gIC8vICAgICAgICAgICB9XHJcbiAgLy8gICAgICAgICAgIGVsZS5TdWJNZW51LmZvckVhY2goc3ViZWxlID0+IHtcclxuICAvLyAgICAgICAgICAgICBuZXdNZW51TGlzdC5wdXNoKHN1YmVsZSlcclxuICAvLyAgICAgICAgICAgICBleHRtZW51X2lkbiA9IHN1YmVsZS5tZW51X2lkbjtcclxuXHJcbiAgLy8gICAgICAgICAgICAgaWYgKGxvY2hpc3RvcnlMaW5rLmluZGV4T2YoZXh0bWVudV9pZG4pICE9IC0xKSB7XHJcbiAgLy8gICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlMaW5rLnB1c2goZXh0bWVudV9pZG4pO1xyXG4gIC8vICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5TGlua01hcFtleHRtZW51X2lkbl0gPSBzdWJlbGU7XHJcbiAgLy8gICAgICAgICAgICAgfVxyXG5cclxuICAvLyAgICAgICAgICAgfSk7XHJcbiAgLy8gICAgICAgICB9KTtcclxuICAvLyAgICAgICAgIHRoaXMuYWNjTWVudUxpc3RbMV0gPSBuZXdNZW51TGlzdDtcclxuICAvLyAgICAgICB9IGVsc2Uge1xyXG4gIC8vICAgICAgICAgbGV0IGtleSA9IDE7XHJcbiAgLy8gICAgICAgICBsZXQgbmV3TWVudUxpc3QgPSBbXTtcclxuICAvLyAgICAgICAgIGxldCBsc0NudCA9IDA7XHJcbiAgLy8gICAgICAgICBtZW51TGlzdC5mb3JFYWNoKGVsZSA9PiB7XHJcbiAgLy8gICAgICAgICAgIGxzQ250ID0gbHNDbnQgKyBlbGUuU3ViTWVudS5sZW5ndGggKyAxO1xyXG4gIC8vICAgICAgICAgICBlbGVbXCJpc2hkclwiXSA9IFwiWVwiO1xyXG4gIC8vICAgICAgICAgICBuZXdNZW51TGlzdC5wdXNoKGVsZSlcclxuICAvLyAgICAgICAgICAgbGV0IGV4dG1lbnVfaWRuID0gZWxlLm1lbnVfaWRuO1xyXG4gIC8vICAgICAgICAgICBpZiAobG9jaGlzdG9yeUxpbmsuaW5kZXhPZihleHRtZW51X2lkbikgIT0gLTEpIHtcclxuICAvLyAgICAgICAgICAgICB0aGlzLmhpc3RvcnlMaW5rLnB1c2goZXh0bWVudV9pZG4pO1xyXG4gIC8vICAgICAgICAgICAgIHRoaXMuaGlzdG9yeUxpbmtNYXBbZXh0bWVudV9pZG5dID0gZWxlXHJcbiAgLy8gICAgICAgICAgIH1cclxuICAvLyAgICAgICAgICAgZWxlLlN1Yk1lbnUuZm9yRWFjaChzdWJlbGUgPT4ge1xyXG4gIC8vICAgICAgICAgICAgIHN1YmVsZVtcImlzaGRyXCJdID0gXCJOXCI7XHJcbiAgLy8gICAgICAgICAgICAgbmV3TWVudUxpc3QucHVzaChzdWJlbGUpXHJcbiAgLy8gICAgICAgICAgICAgZXh0bWVudV9pZG4gPSBzdWJlbGUubWVudV9pZG47XHJcblxyXG4gIC8vICAgICAgICAgICAgIGlmIChsb2NoaXN0b3J5TGluay5pbmRleE9mKGV4dG1lbnVfaWRuKSAhPSAtMSkge1xyXG4gIC8vICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5TGluay5wdXNoKGV4dG1lbnVfaWRuKTtcclxuICAvLyAgICAgICAgICAgICAgIHRoaXMuaGlzdG9yeUxpbmtNYXBbZXh0bWVudV9pZG5dID0gc3ViZWxlO1xyXG4gIC8vICAgICAgICAgICAgIH1cclxuXHJcbiAgLy8gICAgICAgICAgIH0pO1xyXG5cclxuICAvLyAgICAgICAgICAgaWYgKGxzQ250ID49IGRpdiAmJiBuZXdNZW51TGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgLy8gICAgICAgICAgICAgdGhpcy5hY2NNZW51TGlzdFtrZXldID0gbmV3TWVudUxpc3Q7XHJcbiAgLy8gICAgICAgICAgICAga2V5ID0ga2V5ICsgMTtcclxuICAvLyAgICAgICAgICAgICBuZXdNZW51TGlzdCA9IFtdO1xyXG4gIC8vICAgICAgICAgICAgIGxzQ250ID0gMDtcclxuICAvLyAgICAgICAgICAgfVxyXG5cclxuXHJcblxyXG5cclxuICAvLyAgICAgICAgIH0pO1xyXG4gIC8vICAgICAgICAgaWYgKGxzQ250ICE9IDApXHJcbiAgLy8gICAgICAgICAgIHRoaXMuYWNjTWVudUxpc3Rba2V5XSA9IG5ld01lbnVMaXN0O1xyXG4gIC8vICAgICAgIH1cclxuXHJcblxyXG4gIC8vICAgICAgIHRoaXMua2V5TGlzdCA9IE9iamVjdC5rZXlzKHRoaXMuYWNjTWVudUxpc3QpO1xyXG4gIC8vICAgICB9IGVsc2Uge1xyXG4gIC8vICAgICAgIHRoaXMudG9hc3RyLmVycm9yKHJlc3BvbnNlLm1lc3NhZ2UpO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9KS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcclxuICAvLyAgICAgLy8gdGhpcy5mbGFzaE1lc3NhZ2VzU2VydmljZS5zaG93KGVyci5tZXNzYWdlLCB7IGNzc0NsYXNzOiAnYWxlcnQtZGFuZ2VyJywgdGltZW91dDogMzAwMCB9KTtcclxuICAvLyAgIH0pO1xyXG4gIC8vIH1cclxuXHJcbiAgcmVmcmVzaEdldE1lbnUoKSB7XHJcbiAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coKVxyXG4gICAgbGV0IHJlcU9iaiA9IHsgXCJmb3JtTm1lXCI6IFwibG9naW5Gb3JtXCJ9XHJcbiAgICBsZXQgb3B0aW9ucyA9IHsgbWV0aG9kOiBcImdldE1lbnVNb2R1bGVXaXNlXCIgfTtcclxuICAgIHRoaXMuY3MubG9hZChyZXFPYmosIG9wdGlvbnMsICdsb2dpbi9hdXRoZW50aWNhdGlvbnMnKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gXCJTVUNDRVNTXCIpIHtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIm1vZHVsZUxpc3RcIixKU09OLnN0cmluZ2lmeShyZXNwb25zZS5tb2R1bGVEdGxMc3QpKVxyXG4gICAgICAgIHRoaXMubWVudUxpc3QoKVxyXG4gICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIHRoaXMudG9hc3RyLmVycm9yKHJlc3BvbnNlLm1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9KSAuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICB0aGlzLnRvYXN0ci5lcnJvcihlcnIubWVzc2FnZSk7XHJcbiAgICB9KTtcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgbWVudUxpc3QoKSB7XHJcbiAgICBsZXQgbW9kdWxlS2V5cyA9IHRoaXMubWRsa1t0aGlzLmNVcmwuc3BsaXQoJy8nKVsxXV07XHJcbiAgICBsZXQgbG9jaGlzdG9yeU1hcCA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2hpc3RvcnlMaW5rJykpIHx8IHt9O1xyXG4gICAgbGV0IGxvY2hpc3RvcnlMaW5rID0gbG9jaGlzdG9yeU1hcFttb2R1bGVLZXlzXSB8fCBbXTtcclxuICAgIHRoaXMuaGlzdG9yeUxpbmtNYXAgPSB7fTtcclxuICAgIHRoaXMuaGlzdG9yeUxpbmsgPSBbXTtcclxuICAgIGxldCBtZW51ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm1vZHVsZUxpc3RcIikpIHx8IFtdO1xyXG4gICAgbGV0IG1lbnVJdGVtID0gbWVudS5maW5kKChlbGUpID0+IGVsZS5tZGxLZXkgPT0gbW9kdWxlS2V5cykgfHwge307XHJcbiAgICBsZXQgbWVudUxpc3QgPSBtZW51SXRlbS5tb2R1bGVXaXNlTWVudSB8fCBbXTtcclxuICAgIGxldCBjbnQgPSAwXHJcbiAgICBtZW51TGlzdC5mb3JFYWNoKGVsZSA9PiB7XHJcbiAgICAgIGNudCA9IGNudCArIGVsZS5TdWJNZW51Lmxlbmd0aCArIDE7XHJcbiAgICB9KTtcclxuICAgIGxldCBkaXYgPSBjbnQgLyA0O1xyXG4gICAgZGl2ID0gTWF0aC5yb3VuZChkaXYpO1xyXG4gICAgaWYgKGRpdiA8IDEpIHtcclxuICAgICAgbGV0IG5ld01lbnVMaXN0ID0gW107XHJcbiAgICAgIG1lbnVMaXN0LmZvckVhY2goZWxlID0+IHtcclxuICAgICAgICBlbGVbXCJpc2hkclwiXSA9IFwiWVwiO1xyXG4gICAgICAgIG5ld01lbnVMaXN0LnB1c2goZWxlKVxyXG4gICAgICAgIGxldCBleHRtZW51X2lkbiA9IGVsZS5tZW51X2lkbjtcclxuICAgICAgICBpZiAobG9jaGlzdG9yeUxpbmsuaW5kZXhPZihleHRtZW51X2lkbikgIT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMuaGlzdG9yeUxpbmsucHVzaChleHRtZW51X2lkbik7XHJcbiAgICAgICAgICB0aGlzLmhpc3RvcnlMaW5rTWFwW2V4dG1lbnVfaWRuXSA9IGVsZVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbGUuU3ViTWVudS5mb3JFYWNoKHN1YmVsZSA9PiB7XHJcbiAgICAgICAgICBuZXdNZW51TGlzdC5wdXNoKHN1YmVsZSlcclxuICAgICAgICAgIGV4dG1lbnVfaWRuID0gc3ViZWxlLm1lbnVfaWRuO1xyXG5cclxuICAgICAgICAgIGlmIChsb2NoaXN0b3J5TGluay5pbmRleE9mKGV4dG1lbnVfaWRuKSAhPSAtMSkge1xyXG4gICAgICAgICAgICB0aGlzLmhpc3RvcnlMaW5rLnB1c2goZXh0bWVudV9pZG4pO1xyXG4gICAgICAgICAgICB0aGlzLmhpc3RvcnlMaW5rTWFwW2V4dG1lbnVfaWRuXSA9IHN1YmVsZTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmFjY01lbnVMaXN0WzFdID0gbmV3TWVudUxpc3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQga2V5ID0gMTtcclxuICAgICAgbGV0IG5ld01lbnVMaXN0ID0gW107XHJcbiAgICAgIGxldCBsc0NudCA9IDA7XHJcbiAgICAgIG1lbnVMaXN0LmZvckVhY2goZWxlID0+IHtcclxuICAgICAgICBsc0NudCA9IGxzQ250ICsgZWxlLlN1Yk1lbnUubGVuZ3RoICsgMTtcclxuICAgICAgICBlbGVbXCJpc2hkclwiXSA9IFwiWVwiO1xyXG4gICAgICAgIG5ld01lbnVMaXN0LnB1c2goZWxlKVxyXG4gICAgICAgIGxldCBleHRtZW51X2lkbiA9IGVsZS5tZW51X2lkbjtcclxuICAgICAgICBpZiAobG9jaGlzdG9yeUxpbmsuaW5kZXhPZihleHRtZW51X2lkbikgIT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMuaGlzdG9yeUxpbmsucHVzaChleHRtZW51X2lkbik7XHJcbiAgICAgICAgICB0aGlzLmhpc3RvcnlMaW5rTWFwW2V4dG1lbnVfaWRuXSA9IGVsZVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbGUuU3ViTWVudS5mb3JFYWNoKHN1YmVsZSA9PiB7XHJcbiAgICAgICAgICBzdWJlbGVbXCJpc2hkclwiXSA9IFwiTlwiO1xyXG4gICAgICAgICAgbmV3TWVudUxpc3QucHVzaChzdWJlbGUpXHJcbiAgICAgICAgICBleHRtZW51X2lkbiA9IHN1YmVsZS5tZW51X2lkbjtcclxuXHJcbiAgICAgICAgICBpZiAobG9jaGlzdG9yeUxpbmsuaW5kZXhPZihleHRtZW51X2lkbikgIT0gLTEpIHtcclxuICAgICAgICAgICAgdGhpcy5oaXN0b3J5TGluay5wdXNoKGV4dG1lbnVfaWRuKTtcclxuICAgICAgICAgICAgdGhpcy5oaXN0b3J5TGlua01hcFtleHRtZW51X2lkbl0gPSBzdWJlbGU7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAobHNDbnQgPj0gZGl2ICYmIG5ld01lbnVMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuYWNjTWVudUxpc3Rba2V5XSA9IG5ld01lbnVMaXN0O1xyXG4gICAgICAgICAga2V5ID0ga2V5ICsgMTtcclxuICAgICAgICAgIG5ld01lbnVMaXN0ID0gW107XHJcbiAgICAgICAgICBsc0NudCA9IDA7XHJcbiAgICAgICAgfVxyXG5cclxuXHJcblxyXG5cclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChsc0NudCAhPSAwKVxyXG4gICAgICAgIHRoaXMuYWNjTWVudUxpc3Rba2V5XSA9IG5ld01lbnVMaXN0O1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICB0aGlzLmtleUxpc3QgPSBPYmplY3Qua2V5cyh0aGlzLmFjY01lbnVMaXN0KTtcclxuICB9XHJcbiAgbG9nT3V0Qm94KCkge1xyXG4gICAgdmFyIGRpc3BsYXkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWItc2lnbm91dCcpLnN0eWxlLmRpc3BsYXk7XHJcblxyXG4gICAgaWYgKGRpc3BsYXkgPT0gJ25vbmUnIHx8IGRpc3BsYXkgPT0gJycpIHtcclxuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21iLXNpZ25vdXQnKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYi1zaWdub3V0Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgIH1cclxuICB9XHJcbiAgaXNwYXNzd29yZENoYW5nZSA9IGZhbHNlO1xyXG4gIENoYW5nZVBhc3N3b3JkKCkge1xyXG5cclxuICAgIGxldCByZXFPYmogPSB7fTtcclxuICAgIGlmIChDb29raWUuZ2V0KCdBdXRob3JpemF0aW9uJykgIT0gbnVsbCAmJiBDb29raWUuZ2V0KCdBdXRob3JpemF0aW9uJykgIT0gJ3VuZGVmaW5lZCcgJiYgQ29va2llLmdldCgnQXV0aG9yaXphdGlvbicpICE9ICcnICYmICFDb29raWUuZ2V0KCdBdXRob3JpemF0aW9uJykpIHJldHVybjtcclxuICAgIGxldCBoZWFkZXI6IGFueSA9IHtcclxuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgJ3NvdXJjZSc6ICdxcydcclxuICAgIH1cclxuICAgIC8vICdjbGllbnRrZXknOiBDb29raWUuZ2V0KCdfY2snKSxcclxuICAgIC8vICdsb2dpbmlkJzogQ29va2llLmdldCgnX2xvZ2lkJyksXHJcbiAgICAvLyAnbW9kdWxla2V5JzogdGhpcy5tZGxrW3RoaXMuY1VybC5zcGxpdCgnLycpWzFdXSxcclxuXHJcbiAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coKTtcclxuICAgIHJlcU9ialtcImZvcm1ObWVcIl0gPSBcImFwcGxpY2F0aW9uQWNjZXNzTWFzdGVyXCI7XHJcbiAgICByZXFPYmpbXCJ1c2VybmFtZVwiXSA9IHRoaXMudVVzcjtcclxuICAgIGhlYWRlcltcIm1ldGhvZFwiXSA9IFwibG9hZENoYW5nZVBhc3NcIjtcclxuICAgIC8vIGxldCBvcHRpb25zID0gKHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKGhlYWRlcikgfSk7XHJcbiAgICBsZXQgb3B0aW9ucyA9IHtcclxuICAgICAgbWV0aG9kOiBcImxvYWRDaGFuZ2VQYXNzXCJcclxuICAgIH1cclxuICAgIHRoaXMuY3MubG9hZChyZXFPYmosIG9wdGlvbnMsICdjb250YWN0L2xvYWRDb250YWN0JykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09IFwiU1VDQ0VTU1wiKSB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IHJlc3BvbnNlLnJlc3VsdDtcclxuICAgICAgICB0aGlzLnVzZXJEZXRhaWxzID0gcmVzdWx0LnVzZXJEZXRhaWxzO1xyXG4gICAgICAgIHRoaXMuaXNwYXNzd29yZENoYW5nZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbmdlUHdkQnRuJykuY2xpY2soKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihyZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgICAgLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIHRoaXMudG9hc3RyLmVycm9yKGVyci5tZXNzYWdlKTtcclxuICAgICAgfSk7XHJcblxyXG4gIH1cclxuICBwYXNzd29yZENoYW5nZSgpIHtcclxuICAgIHRoaXMuaXNwYXNzd29yZENoYW5nZSA9IHRydWU7XHJcblxyXG4gIH1cclxuICBTYXZlUGFzc3dvcmQoKSB7XHJcbiAgICBpZiAodGhpcy5pc3Bhc3N3b3JkQ2hhbmdlKSB7XHJcbiAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gICAgICBpZiAoQ29va2llLmdldCgnX2xvZ2lkJykgPT0gbnVsbCkgcmV0dXJuO1xyXG4gICAgICBsZXQgaGVhZGVyOiBhbnkgPSB7XHJcbiAgICAgICAgJ2NsaWVudGtleSc6IENvb2tpZS5nZXQoJ19jaycpLFxyXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgJ21vZHVsZWtleSc6IHRoaXMubWRsa1t0aGlzLmNVcmwuc3BsaXQoJy8nKVsxXV0sXHJcbiAgICAgICAgJ2xvZ2luaWQnOiBDb29raWUuZ2V0KCdfbG9naWQnKSxcclxuICAgICAgICAnc291cmNlJzogJ3FzJ1xyXG4gICAgICB9XHJcbiAgICAgICBcclxuICAgICAgbGV0IHVzckR0bCA9IHRoaXMudXNlckRldGFpbHNbMF07XHJcbiAgICAgIGxldCByZXFPYmogPSB7fTtcclxuICAgICAgcmVxT2JqW1wiZm9ybU5tZVwiXSA9IFwic2V0UGFzc3dvcmRGb3JtXCI7XHJcbiAgICAgIHJlcU9ialtcInVzZXJJZG5cIl0gPSB1c3JEdGwudXNlcklkbjtcclxuICAgICAgcmVxT2JqW1wicGFzc3dvcmRcIl0gPSB1c3JEdGwucGFzc3dvcmQ7XHJcbiAgICAgIGhlYWRlcltcIm1ldGhvZFwiXSA9IFwiY2hhbmdlUGFzc3dvcmRcIjtcclxuICAgICAgLy8gbGV0IG9wdGlvbnMgPSAoeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoaGVhZGVyKSB9KTtcclxuICAgICAgbGV0IG9wdGlvbnMgPSB7XHJcbiAgICAgICAgbWV0aG9kOiAnY2hhbmdlUGFzc3dvcmQnXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jcy5sb2FkKHJlcU9iaiwgb3B0aW9ucywgJ2NvbnRhY3QvbG9hZENvbnRhY3QnKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSBcIlNVQ0NFU1NcIikge1xyXG4gICAgICAgICAgbGV0IHJlc3VsdCA9IHJlc3BvbnNlLnJlc3VsdDtcclxuICAgICAgICAgIHRoaXMuY2xvc2VidG4ubmF0aXZlRWxlbWVudC5jbGljaygpO1xyXG4gICAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgICB0aGlzLmlzcGFzc3dvcmRDaGFuZ2UgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3MocmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihyZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihlcnIubWVzc2FnZSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgfSBlbHNlIHtcclxuXHJcbiAgICAgIHRoaXMudG9hc3RyLmVycm9yKFwiUGxlYXNlIHNwZWNpZnkgbmV3IHBhc3N3b3JkXCIpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBTaG93TWVudSh0eXAsIG1lbnVkdGwpIHtcclxuICAgIHZhciBtZW51ZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lbnVEaXYnKS5zdHlsZS5kaXNwbGF5O1xyXG4gICAgaWYgKG1lbnVkaXYgPT0gJ25vbmUnKVxyXG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVudURpdicpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xyXG4gICAgZWxzZVxyXG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVudURpdicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcbiAgICBpZiAodHlwID09ICdsbmsnKSB7XHJcbiAgICAgICBcclxuICAgICAgbGV0IG1lbnVfaWRuID0gbWVudWR0bC5tZW51X2lkbiB8fCAnJztcclxuICAgICAgbGV0IG1vZHVsa2V5ID0gdGhpcy5tZGxrW3RoaXMuY1VybC5zcGxpdCgnLycpWzFdXVxyXG4gICAgICBsZXQgaGlzdG9yeUxpbmttYXAgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdoaXN0b3J5TGluaycpKSB8fCB7fTtcclxuICAgICAgbGV0IG1vZHVsZUxpbmsgPSBoaXN0b3J5TGlua21hcFttb2R1bGtleV0gfHwgW107XHJcbiAgICAgIGlmIChtZW51X2lkbiAhPSAnJykge1xyXG4gICAgICAgICBcclxuICAgICAgICBpZiAobW9kdWxlTGluay5pbmRleE9mKG1lbnVfaWRuKSAhPSAtMSkge1xyXG4gICAgICAgICAgbW9kdWxlTGluay5zcGxpY2UobW9kdWxlTGluay5pbmRleE9mKG1lbnVfaWRuKSwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1vZHVsZUxpbmsuc3BsaWNlKDAsIDAsIG1lbnVfaWRuKTtcclxuICAgICAgICBpZiAobW9kdWxlTGluay5sZW5ndGggPiAxMCkge1xyXG4gICAgICAgICAgbGV0IG51bU9mcmVtb3ZlID0gbW9kdWxlTGluay5sZW5ndGggLSAxMDtcclxuICAgICAgICAgIG1vZHVsZUxpbmsuc3BsaWNlKDEwLCBudW1PZnJlbW92ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGhpc3RvcnlMaW5rbWFwW21vZHVsa2V5XSA9IG1vZHVsZUxpbms7XHJcbiAgICAgICAgdGhpcy5oaXN0b3J5TGluayA9IG1vZHVsZUxpbms7XHJcbiAgICAgICAgdGhpcy5oaXN0b3J5TGlua01hcFttZW51X2lkbl0gPSBtZW51ZHRsO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdoaXN0b3J5TGluaycsIEpTT04uc3RyaW5naWZ5KGhpc3RvcnlMaW5rbWFwKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgRWRpdENvbXBhbnkoKSB7XHJcbiAgICBDb29raWUuZGVsZXRlKCdfYWNjQ29tcGFueScsIHRoaXMuZ2xvYmxFbnYucGF0aG5hbWUsIHRoaXMuZ2xvYmxFbnYuaG9zdG5hbWUpO1xyXG4gICAgQ29va2llLmRlbGV0ZSgnX2FjY3llYXInLCB0aGlzLmdsb2JsRW52LnBhdGhuYW1lLCB0aGlzLmdsb2JsRW52Lmhvc3RuYW1lKTtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnZmFjb21wYW55J10pO1xyXG4gIH1cclxuICByYmkgPSBcIlwiO1xyXG4gIGJhbmsgPSBcIlwiO1xyXG4gIGN1dG9taW1wID0gXCJcIjtcclxuICBjdXRvbWV4cCA9IFwiXCI7XHJcbiAgbWRsa1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubWRsayA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ21kbEtleScpKTtcclxuICAgIC8vICB0aGlzLmNVcmwgPSB3aW5kb3cubG9jYXRpb24uaGFzaDtcclxuICAgIC8vICB0aGlzLmNVcmw9dGhpcy5jVXJsLnJlcGxhY2UoXCIjXCIsJycpO1xyXG5cclxuICAgIC8vIEdldHRpbmcgdGhlIGZpbmFsIHVybFxyXG4gICAgLy8gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXHJcbiAgICAvLyAgIGZpbHRlcihlID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKVxyXG4gICAgLy8gICAuc3Vic2NyaWJlKChuYXZFbmQ6IE5hdmlnYXRpb25FbmQpID0+IHtcclxuICAgIC8vICAgICB0aGlzLmNVcmwgPSBuYXZFbmQudXJsQWZ0ZXJSZWRpcmVjdHM7XHJcbiAgICAvLyAgICAgdGhpcy5tZW51TGlzdCgpO1xyXG4gICAgLy8gICB9KVxyXG4gICAgLy8gICk7XHJcbiAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzXHJcbiAgICAgLnBpcGUoZmlsdGVyKChlKTogZSBpcyBOYXZpZ2F0aW9uRW5kID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcclxuICAgICAuc3Vic2NyaWJlKChuYXZFbmQ6IE5hdmlnYXRpb25FbmQpID0+IHtcclxuICAgICAgIHRoaXMuY1VybCA9IG5hdkVuZC51cmxBZnRlclJlZGlyZWN0cztcclxuICAgICAgIHRoaXMubWVudUxpc3QoKTtcclxuICAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5jVXJsID09ICcnKVxyXG4gICAgICB0aGlzLmNVcmwgPSBcIi9ob21lXCI7XHJcbiAgICB0aGlzLmhlYWRlciA9IHtcclxuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgJ3NvdXJjZSc6ICdxcydcclxuICAgIH07XHJcbiAgICAvLyAnYXBwa2V5JzogJ085MVlLKkR3JGtFN2ROcGNWbUdMdkx4V01KMEMwMGVPJyxcclxuICAgIC8vICdtb2R1bGVrZXknOiAnV0hpNlNSTFk2IyQ4MmJ6SmZANElVeDlvSFNMYm4ycUgnLC8vIG1kbGtbY1VybC5zcGxpdCgnLycpWzFdXSxcclxuICAgIC8vICdjbGllbnRrZXknOiBDb29raWUuZ2V0KCdfY2snKSxcclxuICAgIC8vICdsb2dpbmlkJzogQ29va2llLmdldCgnX2xvZ2lkJyksXHJcbiAgICAvLyAnZHMnOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnRFMnKSxcclxuICAgIFxyXG4gICAgXHJcbiAgfVxyXG5cclxuICBPcGVuT3B0aW9uKCkge1xyXG4gICAgdmFyIGlzZGlzcGxheSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb3Jlb3B0aW9uJykuc3R5bGUuZGlzcGxheTtcclxuICAgIGlmIChpc2Rpc3BsYXkgPT0gJ25vbmUnKSB7XHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb3Jlb3B0aW9uJykuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9yZW9wdGlvbicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG59XHJcbiIsIjx1bCBjbGFzcz1cIngtbmF2aWdhdGlvbiB4LW5hdmlnYXRpb24taG9yaXpvbnRhbCB4LW5hdmlnYXRpb24tcGFuZWxcIiBzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDBweDt6LWluZGV4OiAxMDAwXCI+XHJcbiAgPGxpIHN0eWxlPVwiYmFja2dyb3VuZDogIzNiNTk5ODtcIj5cclxuICAgIDxhIChjbGljayk9XCJyb3V0ZWhvbWUoKVwiICpuZ0lmPVwiY1VybCAhPSAnL2hvbWUnXCIgY2xhc3M9XCJwcm9maWxlLW1pbmlcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkXCI+RVo8L3NwYW4+XHJcbiAgICA8L2E+XHJcbiAgPC9saT5cclxuICA8bGkgKm5nSWY9XCJjVXJsICE9ICcvaG9tZScgXCI+XHJcbiAgICA8bmF2IGNsYXNzPVwibmF2YmFyIG5hdmJhci1leHBhbmQtbWQgbmF2YmFyLWxpZ2h0IGJnLWxpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJuYXZiYXItY29sbGFwc2UganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXRvcFwiIGlkPVwibmF2YmFyQ29sbGFwc2VcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibmF2YmFyLW5hdlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1pdGVtIGRyb3Bkb3duXCIgc3R5bGU9XCJ6LWluZGV4OjEwXCI+XHJcbiAgICAgICAgICAgIDxhIChjbGljayk9XCJTaG93TWVudSgnYmFyJywnJylcIiBjbGFzcz1cIm5hdi1saW5rIGRyb3Bkb3duLXRvZ2dsZVwiXHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJjb2xvcjogI2ZmZjsgZm9udC1zaXplOiAyMHB4O3BhZGRpbmc6MHB4IDttYXJnaW4tdG9wOiA1cHhcIiBkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCI+IDxpXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLWJhcnNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9hPlxyXG4gICAgICAgICAgICA8ZGl2IGlkPVwibWVudURpdlwiIGNsYXNzPVwiZHJvcGRvd24tbWVudVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiAjMWQyMTI3XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaGlzdG9yeS1jb2x1bW4gY29sLW1kLTJcIj5cclxuICAgICAgICAgICAgICAgICAgPGgyPkhpc3Rvcnk8L2gyPlxyXG4gICAgICAgICAgICAgICAgICA8dWwgaWQ9XCJuYXYtaGlzdG9yeVwiIHN0eWxlPVwiZGlzcGxheTppbmxpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJzZXJ2aWNlLWl0ZW1cIiAqbmdGb3I9XCJsZXQgbWVudV9pZG4gb2YgaGlzdG9yeUxpbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjL3t7aGlzdG9yeUxpbmtNYXBbbWVudV9pZG5dWydsbmsnXX19XCIgY2xhc3M9XCJoZWFkZXJsaW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlNob3dNZW51KCdiYXInLCcnKVwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZXJ2aWNlLWxhYmVsXCI+e3toaXN0b3J5TGlua01hcFttZW51X2lkbl1bJ2hkciddfX08L3NwYW4+PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBjb2wtbWQtMTIgYXdzYy1zZXJ2aWNlcy1zZWFyY2hcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiYXdzYy1pbnB1dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJhd3NjLXNlcnZpY2VzLXNlYXJjaC1hdXRvY29tcGxldGVcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiRmluZCBhIE1lbnUgYnkgbmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidWktYXV0b2NvbXBsZXRlLWlucHV0XCIgbmFtZT1cInNlYXJjaEZcIiBbKG5nTW9kZWwpXT1cInNlYXJjaEZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJhd3NjLXNlcnZpY2VzLWNvbnRhaW5lclwiIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQga2V5IG9mIGtleUxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWNjbWVudSBvZiBhY2NNZW51TGlzdFtrZXldIHwgdGFibGVTZWFyY2g6c2VhcmNoRjtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cImFjY21lbnUuaXNoZHI9PSdZJ1wiIGNsYXNzPVwiYXdzYy1oZWFkZXIgaWNvLWNvbXB1dGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjY21lbnUubG5rICE9JyMnICYmIGFjY21lbnUubG5rICE9JydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWFuZ2xlLWRvdWJsZS1yaWdodFwiIHN0eWxlPVwiZm9udC1zaXplOjIwcHg7Y29sb3I6d2hpdGU7XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjL3t7YWNjbWVudS5sbmt9fVwiIChjbGljayk9XCJTaG93TWVudSgnbG5rJyxhY2NtZW51KVwiIGNsYXNzPVwiaGVhZGVybGlua1wiPiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlcnZpY2UtbGFiZWxcIj4ge3thY2NtZW51Lmhkcn19PC9zcGFuPiA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWNjbWVudS5sbmsgPT0nIycgfHwgYWNjbWVudS5sbmsgPT0nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYW5nbGUtZG91YmxlLWRvd25cIiBzdHlsZT1cImZvbnQtc2l6ZToyMHB4O2NvbG9yOndoaXRlO1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2FjY21lbnUuaGRyfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0lmPVwiYWNjbWVudS5pc2hkcj09J04nXCIgY2xhc3M9XCJzZXJ2aWNlLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMve3thY2NtZW51Lmxua319XCIgKGNsaWNrKT1cIlNob3dNZW51KCdsbmsnLGFjY21lbnUpXCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VydmljZS1sYWJlbFwiPnt7YWNjbWVudS5oZHJ9fTwvc3Bhbj48L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uYXY+XHJcbiAgPC9saT5cclxuICA8bGkgY2xhc3M9XCJycy1ub25lXCIgW25nU3R5bGVdPVwieyd3aWR0aCcgOiBjVXJsID09ICcvaG9tZScgPyAnMjUwcHgnIDogJzBweCd9XCI+XHJcbiAgICAmbmJzcDtcclxuICA8L2xpPlxyXG4gIDxsaSBjbGFzcz1cInJzLW5vbmVcIiBzdHlsZT1cIm1hcmdpbjogMTBweDtcIj5cclxuICAgIDxmb3JtIGNsYXNzPVwiZm9ybS1pbmxpbmUgbXktMlwiPlxyXG4gICAgICA8dGV4dGFyZWEgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogcHJlO1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJTVE9ORSBJRC8gUkYgSUQgc2VhcmNoXCIgWyhuZ01vZGVsKV09XCJxa1NjaFwiXHJcbiAgICAgICAgaWQ9XCJmb2dnbGVcIiBuYW1lPVwiZm9vZ2xlXCIgY29scz1cIjQ1XCIgcm93cz1cIjFcIj48L3RleHRhcmVhPlxyXG4gICAgICA8c3BhbiBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgXHJcbiAgICAgICAgdG9wOiAtMnB4O1xyXG4gICAgICAgIHJpZ2h0OiAyOHB4O1xyXG4gICAgICAgIGNvbG9yOiByZ2IoMTUwLCAxNDQsIDE0NCk7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgei1pbmRleDogNjtcclxuICAgICAgICB3aWR0aDogMzVweDtcclxuICAgICAgICBoZWlnaHQ6IDM2cHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDM0cHg7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIC8qIHBvaW50ZXItZXZlbnRzOiBub25lOyAqL1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTdweDtcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiIChjbGljayk9XCJwYWNrZXRMb29rdXBTcmNDb3VudChxa1NjaCk7XCI+PC9pPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiaGVscGMgbXItc20tMlwiIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICB0aXRsZT1cIlNUT05FIC8gQ0VSVCBOTyAvIEdJQSBSRCAxLjIwLTEuMzAgRiBWUzEgM0VYIE5cIj48aSBjbGFzcz1cImZhIGZhLWluZm9cIj48L2k+PC9zcGFuPlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbGk+XHJcbiAgPGxpIGNsYXNzPVwicHVsbC1yaWdodFwiIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtcGxhY2VtZW50PVwibGVmdFwiIHRpdGxlPVwiQ2hhbmdlIHBhc3N3b3JkXCI+XHJcbiAgICA8YSAoY2xpY2spPVwiQ2hhbmdlUGFzc3dvcmQoKVwiIHN0eWxlPVwicGFkZGluZzoxNXB4IDVweFwiIGNsYXNzPVwibWItY29udHJvbFwiPlxyXG4gICAgICA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMThweFwiIGNsYXNzPVwiZmEgZmEta2V5XCI+PC9zcGFuPlxyXG4gICAgPC9hPlxyXG4gIDwvbGk+XHJcbiAgPGxpIGNsYXNzPVwicHVsbC1yaWdodFwiIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtcGxhY2VtZW50PVwibGVmdFwiIHRpdGxlPVwiTG9nIE91dFwiPlxyXG4gICAgPGEgKGNsaWNrKT1cImxvZ091dEJveCgpXCIgY2xhc3M9XCJtYi1jb250cm9sXCIgc3R5bGU9XCJwYWRkaW5nOjE1cHggNXB4XCIgZGF0YS1ib3g9XCIjbWItc2lnbm91dFwiPlxyXG4gICAgICA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMThweFwiIGNsYXNzPVwiZmEgZmEtc2lnbi1vdXRcIj48L3NwYW4+XHJcbiAgICA8L2E+XHJcbiAgPC9saT5cclxuICA8bGkgY2xhc3M9XCJwdWxsLXJpZ2h0XCI+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJ1ZFwiPiA8c3BhbiBjbGFzcz1cInRleHQtY2FwaXRhbGl6ZVwiPnt7dVVzciArJyB8J319PC9zcGFuPiB7e2RzfX0gPC9sYWJlbD5cclxuICA8L2xpPlxyXG5cclxuICA8bGkgY2xhc3M9XCJwdWxsLXJpZ2h0XCIgZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgZGF0YS1wbGFjZW1lbnQ9XCJsZWZ0XCIgdGl0bGU9XCJSZWZyZXNoIE1lbnVcIj5cclxuICAgIDxhIChjbGljayk9XCJyZWZyZXNoR2V0TWVudSgpXCIgY2xhc3M9XCJyZWZyZXNoXCIgc3R5bGU9XCJwYWRkaW5nOjE1cHggNXB4XCI+XHJcbiAgICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAxOHB4XCIgY2xhc3M9XCJmYSBmYS1yZWZyZXNoXCI+PC9zcGFuPlxyXG4gICAgPC9hPlxyXG4gIDwvbGk+XHJcbjwvdWw+XHJcbjx1bCBjbGFzcz1cIngtbmF2aWdhdGlvbiB4LW5hdmlnYXRpb24taG9yaXpvbnRhbCB4LW5hdmlnYXRpb24tcGFuZWwgc3Itbm9uZVwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2JmYmZiZlwiPlxyXG4gIDxsaSBzdHlsZT1cIm1hcmdpbjogMTBweDtcIj5cclxuICAgIDxmb3JtIGNsYXNzPVwiZm9ybS1pbmxpbmUgbXktMlwiPlxyXG4gICAgICA8dGV4dGFyZWEgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogcHJlO1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJTVE9ORSBJRC8gUkYgSUQgc2VhcmNoXCIgWyhuZ01vZGVsKV09XCJxa1NjaFwiXHJcbiAgICAgICAgaWQ9XCJmb2dnbGVcIiBuYW1lPVwiZm9vZ2xlXCIgY29scz1cIjQ1XCIgcm93cz1cIjFcIj48L3RleHRhcmVhPlxyXG4gICAgICA8c3BhbiBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgXHJcbiAgICAgIHRvcDogLTJweDtcclxuICAgICAgcmlnaHQ6IDI4cHg7XHJcbiAgICAgIGNvbG9yOiByZ2IoMTUwLCAxNDQsIDE0NCk7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xyXG4gICAgICB6LWluZGV4OiA2O1xyXG4gICAgICB3aWR0aDogMzBweDtcclxuICAgICAgaGVpZ2h0OiAzNnB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMzRweDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAvKiBwb2ludGVyLWV2ZW50czogbm9uZTsgKi9cclxuICAgICAgZm9udC1zaXplOiAxN3B4O1wiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoXCIgKGNsaWNrKT1cInBhY2tldExvb2t1cFNyY0NvdW50KHFrU2NoKTtcIj48L2k+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvZm9ybT5cclxuICA8L2xpPlxyXG48L3VsPlxyXG5cclxuPGRpdiBjbGFzcz1cIm1vZGFsXCIgaWQ9XCJjaGFuZ2VQd2RQb3BcIiByb2xlPVwiZGlhbG9nXCIgYXJpYS1sYWJlbGxlZGJ5PVwic21hbGxNb2RhbEhlYWRcIiBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gIGRhdGEtYmFja2Ryb3A9XCJzdGF0aWNcIiBkYXRhLWtleWJvYXJkPVwiZmFsc2VcIj5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgI2Nsb3NlYnRuPlxyXG4gICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPkNsb3NlPC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJzbWFsbE1vZGFsSGVhZFwiPkNoYW5nZSBQYXNzd29yZDwvaDQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHVzZXIgb2YgdXNlckRldGFpbHM7IGxldCBpPWluZGV4O1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbnRyb2wtbGFiZWxcIiBjbGFzcz1cImNvbC1tZC0yXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0XCI+VXNlcm5hbWUgOiA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLW1kLTJcIiBzdHlsZT1cInRleHQtYWxpZ246IGxlZnRcIj57e3VzZXI/LnVzZXJuYW1lfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiIHN0eWxlPVwibWFyZ2luLXRvcDogNXB4XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbnRyb2wtbGFiZWxcIiBjbGFzcz1cImNvbC1tZC0yXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0XCI+UGFzc3dvcmQ6PC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGNsYXNzPVwiY29sLW1kLTEwXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0XCJcclxuICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJwYXNzd29yZENoYW5nZSgpXCIgWyhuZ01vZGVsKV09XCJ1c2VyLnBhc3N3b3JkXCIgbmFtZT1cInBhc3N3b3JkXCIgLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tZGFuZ2VyXCIgI2Nsb3NlYnRuIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCI+Q2xvc2U8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiU2F2ZVBhc3N3b3JkKClcIiBjbGFzcz1cImJ0biBidG4tc3VjY2Vzc1wiIGFwcEFwcE5vRGJsQ2xpY2s+Q29uZmlybTwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxidXR0b24gaWQ9XCJjaGFuZ2VQd2RCdG5cIiBbaGlkZGVuXT1cInRydWVcIiBkYXRhLXRvZ2dsZT1cIm1vZGFsXCIgZGF0YS10YXJnZXQ9XCIjY2hhbmdlUHdkUG9wXCI+PC9idXR0b24+Il19
479
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V6bGliL3NyYy9saWIvZXpoZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V6bGliL3NyYy9saWIvZXpoZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUVoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7Ozs7O0FBU2hELE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsWUFDVSxNQUFjLEVBQ2QsTUFBcUIsRUFDckIsRUFBd0IsRUFDekIsUUFBMEIsRUFDekIsY0FBaUM7UUFKakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsT0FBRSxHQUFGLEVBQUUsQ0FBc0I7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBSTNDLFVBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ25CLDBCQUEwQjtRQUMxQixPQUFFLEdBQUcs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T0FBTyxHQUFHLE1BQU0sQ0FBQztTQUU5RDtJQUNILENBQUM7O2lJQS9mVSxpQkFBaUI7cUhBQWpCLGlCQUFpQiwwSkNqQjlCLHEyUkE2S21HOzJGRDVKdEYsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGNBQWM7Mk5BYUQsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb29raWUgfSBmcm9tICduZzItY29va2llcy9uZzItY29va2llcyc7XHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIE5hdmlnYXRpb25FbmQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDb21tYW5TZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uL2NvbW1hbi1zZXJ2aWNlL2NvbW1hbi1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdHRwSGVhZGVycyAgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEdsb2JsZUVudlNlcnZpY2UgfSBmcm9tICcuLi9nbG9ibGUvZ2xvYmxlLWVudi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmd4U3Bpbm5lclNlcnZpY2UgfSBmcm9tIFwibmd4LXNwaW5uZXJcIjtcclxuaW1wb3J0IHsgcmVzcG9uc2UgfSBmcm9tICdleHByZXNzJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1lemhlYWRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXpIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZSxcclxuICAgIHByaXZhdGUgY3M6IENvbW1hblNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgcHVibGljIGdsb2JsRW52OiBHbG9ibGVFbnZTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzcGlubmVyU2VydmljZTogTmd4U3Bpbm5lclNlcnZpY2UgXHJcbiAgKSB7IH1cclxuICBAVmlld0NoaWxkKCdjbG9zZWJ0bicpIGNsb3NlYnRuOiBFbGVtZW50UmVmO1xyXG5cclxuICBjRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgLy8gZHMgPSBDb29raWUuZ2V0KCdfZHMnKTtcclxuICBkcyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdEUycpXHJcbiAgdVVzciA9IENvb2tpZS5nZXQoJ191c2VybmFtZScpO1xyXG4gIGNvbXBhbnkgPSBcIlwiXHJcbiAgeWVhciA9IFwiXCJcclxuICB1c2VyRGV0YWlscyA9IFtdO1xyXG4gIGhpc3RvcnlMaW5rTWFwID0ge307XHJcbiAgaGlzdG9yeUxpbmsgPSBbXTtcclxuICBjVXJsO1xyXG4gIGhlYWRlcjtcclxuICBhY2NNZW51TGlzdCA9IHt9O1xyXG4gIGZsYWcgPSBmYWxzZTtcclxuICBrZXlMaXN0ID0gW107XHJcbiAgc2VhcmNoRjtcclxuICB1bmFtZTtcclxuICBxa1NjaDtcclxuICBzY2hJZDtcclxuICBzdHRzQTtcclxuICBjb3VudDtcclxuICBudFNjaDogYm9vbGVhbjtcclxuICBzcmNoQ250ID0gMDtcclxuICBjbnQgPSAwO1xyXG4gIGZlZWRiYWNrQ29tbWVudCA9ICcnO1xyXG5cclxuXHJcblxyXG4gIGNsaWNrRmlsdGVyKGtjKSB7XHJcblxyXG4gICAgaWYgKGtjLndoaWNoID09IDEzKSB7XHJcbiAgICAgIC8vIHRoaXMuZ2V0U3JjaENvdW50KHRoaXMucWtTY2gpO1xyXG4gICAgICB0aGlzLnBhY2tldExvb2t1cFNyY0NvdW50KHRoaXMucWtTY2gpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJhY2tIb21lKCkge1xyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLmdsb2JsRW52Lm9yaWdpbiArIFwiI2hvbWVcIjtcclxuICB9XHJcblxyXG4gIHJvdXRlaG9tZSgpIHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMucm91dGVyLnNlcmlhbGl6ZVVybCh0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnaG9tZSddKSk7XHJcbiAgICB3aW5kb3cub3BlbihcIi8jXCIgKyB1cmwsICdIb21lJyk7XHJcbiAgfVxyXG4gIHBhY2tldExvb2t1cFNyY0NvdW50KGZnbHN0cikge1xyXG4gICAgdGhpcy5zcmNoQ250ID0gdGhpcy5zcmNoQ250ICsgMVxyXG4gICAgbGV0IGxvZ0R0bCA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Jlc3JlcXBhcmEnKSk7XHJcbiAgICBpZiAoZmdsc3RyID09IHVuZGVmaW5lZCB8fCBmZ2xzdHIgPT0gJycpIHtcclxuICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ1BsZWFzZSBlbnRlciBTZWFyY2ggUGFyYW1ldGVyJyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIHNhbWUgYXR0cmlidXRlIG11bHRpcGFsZSB2YWx1ZSBhY2Nlc3Mga2UgbGl5ZSBjb21hIHNlcHJhdGUgcmVtb3ZlICgyMy0wOS0yMDI1KVxyXG4gICAgLy8gbGV0IHIgPSB0aGlzLmNzLmZvcm1hdGVTdHIoZmdsc3RyKTtcclxuICAgIGxldCByID0gZmdsc3RyID09IG51bGwgPyAnJyA6IGZnbHN0ci50cmltKCk7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncGFja2V0TG9va3VwU3RyJywgcik7XHJcblxyXG4gICAgaWYgKHRoaXMuY1VybCA9PSAnL3NvbGl0YWlyZXMnKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnc29saXRhaXJlcy9wYWNrZXQtbG9va3VwL1knXSwgeyBxdWVyeVBhcmFtczogeyBzY2hJZDogdGhpcy5zcmNoQ250IH0gfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCB1cmwgPSB0aGlzLnJvdXRlci5zZXJpYWxpemVVcmwodGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJ3NvbGl0YWlyZXMvcGFja2V0LWxvb2t1cC9ZJ10sIHsgcXVlcnlQYXJhbXM6IHsgc2NoSWQ6IHRoaXMuc3JjaENudCB9IH0pKTtcclxuICAgICAgd2luZG93Lm9wZW4oXCIvc29saXRhaXJlcy8jXCIgKyB1cmwsICdTb2xpdGFpcmVzJyk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIGxvZ291dCgpIHtcclxuICAgIGxldCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialsnZm9ybU5tZSddID0gJ0xvZ291dCdcclxuICAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdsb2dPdXQnO1xyXG4gICAgLy8gbGV0IG9wdGlvbnMgPSAoeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXIpIH0pO1xyXG4gICAgbGV0IG9wdGlvbnMgPSB7XHJcbiAgICAgIG1ldGhvZDogJ2xvZ091dCdcclxuICAgIH1cclxuICAgIHRoaXMuY3MubG9nb3V0KHJlcU9iaiwgb3B0aW9ucykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09ICdTVUNDRVNTJykge1xyXG4gICAgICAgIGxldCBkcyA9IENvb2tpZS5nZXQoJ19kcycpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ191c2VybmFtZScpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ19sb2d0aW1lJyk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2NrJyk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2xvZ2lkJyk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2FjY0NvbXBhbnknKTtcclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfYWNjeWVhcicpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdPVFAnKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnY2xpZW50S2V5Jyk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2xvZ0lkbicpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdtZGxLZXknKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgndXNlcm5hbWUnKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc2VsTWQnKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY2hnJywgJ2ZhbHNlJyk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3RyYW5zYWN0aW9uSW5mbycpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdkcycpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIENvb2tpZS5kZWxldGVBbGwodGhpcy5nbG9ibEVudi5wYXRobmFtZSwgdGhpcy5nbG9ibEVudi5ob3N0bmFtZSlcclxuICAgICAgICBDb29raWUuZGVsZXRlKCdBdXRob3JpemF0aW9uJyx0aGlzLmdsb2JsRW52LnBhdGhuYW1lLCB0aGlzLmdsb2JsRW52Lmhvc3RuYW1lKTtcclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfdXNlcm5hbWUnLCB0aGlzLmdsb2JsRW52LnBhdGhuYW1lLCB0aGlzLmdsb2JsRW52Lmhvc3RuYW1lKTtcclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfbG9ndGltZScsIHRoaXMuZ2xvYmxFbnYucGF0aG5hbWUsIHRoaXMuZ2xvYmxFbnYuaG9zdG5hbWUpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ19hY2NDb21wYW55JywgdGhpcy5nbG9ibEVudi5wYXRobmFtZSwgdGhpcy5nbG9ibEVudi5ob3N0bmFtZSk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2FjY3llYXInLCB0aGlzLmdsb2JsRW52LnBhdGhuYW1lLCB0aGlzLmdsb2JsRW52Lmhvc3RuYW1lKTtcclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfYWNjeWVhcicsIHRoaXMuZ2xvYmxFbnYucGF0aG5hbWUsIHRoaXMuZ2xvYmxFbnYuaG9zdG5hbWUpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ19kcycsdGhpcy5nbG9ibEVudi5wYXRobmFtZSwgdGhpcy5nbG9ibEVudi5ob3N0bmFtZSk7XHJcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLmdsb2JsRW52Lm9yaWdpbjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihyZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMudG9hc3RyLmVycm9yKGVyci5tZXNzYWdlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gbWVudUxpc3QoKSB7XHJcbiAgLy8gICBsZXQgcmVxT2JqID0ge307XHJcbiAgLy8gICBsZXQgbW9kdWxlS2V5cyA9IHRoaXMubWRsa1t0aGlzLmNVcmwuc3BsaXQoJy8nKVsxXV07XHJcblxyXG4gIC8vICAgaWYgKENvb2tpZS5nZXQoJ0F1dGhvcml6YXRpb24nKSA9PSBudWxsICYmIENvb2tpZS5nZXQoJ0F1dGhvcml6YXRpb24nKSA9PSAndW5kZWZpbmVkJyAmJiBDb29raWUuZ2V0KCdBdXRob3JpemF0aW9uJykgPT0gJycgJiYgIUNvb2tpZS5nZXQoJ0F1dGhvcml6YXRpb24nKSkgcmV0dXJuO1xyXG4gIC8vICAgbGV0IGhlYWRlcjogYW55ID0ge1xyXG4gIC8vICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gIC8vICAgICAnbWV0aG9kJzogJ2dldE1lbnVMaXN0JyxcclxuICAvLyAgICAgJ3NvdXJjZSc6ICdxcydcclxuICAvLyAgIH1cclxuICAgIFxyXG4gIC8vICAgLy8gJ2NsaWVudGtleSc6IENvb2tpZS5nZXQoJ19jaycpLFxyXG4gIC8vICAgLy8gJ2xvZ2luaWQnOiBDb29raWUuZ2V0KCdfbG9naWQnKSxcclxuICAvLyAgIC8vICdtb2R1bGVrZXknOiBtb2R1bGVLZXlzLFxyXG4gIC8vICAgcmVxT2JqWydtb2R1bGVLZXlzJ10gPSBtb2R1bGVLZXlzO1xyXG5cclxuICAvLyAgIC8vIGxldCBvcHRpb25zID0gKHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKGhlYWRlcikgfSk7XHJcbiAgLy8gICBsZXQgb3B0aW9ucyA9IHtcclxuICAvLyAgICAgbWV0aG9kOiBcImdldE1lbnVMaXN0XCJcclxuICAvLyAgIH1cclxuICAvLyAgIHRoaXMuY3MubWVudUxpc3QocmVxT2JqLCBvcHRpb25zKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgLy8gICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgLy8gICAgICAgbGV0IGxvY2hpc3RvcnlNYXAgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdoaXN0b3J5TGluaycpKSB8fCB7fTtcclxuICAvLyAgICAgICBsZXQgbG9jaGlzdG9yeUxpbmsgPSBsb2NoaXN0b3J5TWFwW21vZHVsZUtleXNdIHx8IFtdO1xyXG4gIC8vICAgICAgIHRoaXMuaGlzdG9yeUxpbmtNYXAgPSB7fTtcclxuICAvLyAgICAgICB0aGlzLmhpc3RvcnlMaW5rID0gW107XHJcbiAgLy8gICAgICAgbGV0IG1lbnVMaXN0ID0gcmVzcG9uc2UucmVzdWx0O1xyXG4gIC8vICAgICAgIGxldCBjbnQgPSAwXHJcbiAgLy8gICAgICAgbWVudUxpc3QuZm9yRWFjaChlbGUgPT4ge1xyXG4gIC8vICAgICAgICAgY250ID0gY250ICsgZWxlLlN1Yk1lbnUubGVuZ3RoICsgMTtcclxuICAvLyAgICAgICB9KTtcclxuICAvLyAgICAgICBsZXQgZGl2ID0gY250IC8gNDtcclxuICAvLyAgICAgICBkaXYgPSBNYXRoLnJvdW5kKGRpdik7XHJcbiAgLy8gICAgICAgaWYgKGRpdiA8IDEpIHtcclxuICAvLyAgICAgICAgIGxldCBuZXdNZW51TGlzdCA9IFtdO1xyXG4gIC8vICAgICAgICAgbWVudUxpc3QuZm9yRWFjaChlbGUgPT4ge1xyXG4gIC8vICAgICAgICAgICBlbGVbXCJpc2hkclwiXSA9IFwiWVwiO1xyXG4gIC8vICAgICAgICAgICBuZXdNZW51TGlzdC5wdXNoKGVsZSlcclxuICAvLyAgICAgICAgICAgbGV0IGV4dG1lbnVfaWRuID0gZWxlLm1lbnVfaWRuO1xyXG4gIC8vICAgICAgICAgICBpZiAobG9jaGlzdG9yeUxpbmsuaW5kZXhPZihleHRtZW51X2lkbikgIT0gLTEpIHtcclxuICAvLyAgICAgICAgICAgICB0aGlzLmhpc3RvcnlMaW5rLnB1c2goZXh0bWVudV9pZG4pO1xyXG4gIC8vICAgICAgICAgICAgIHRoaXMuaGlzdG9yeUxpbmtNYXBbZXh0bWVudV9pZG5dID0gZWxlXHJcbiAgLy8gICAgICAgICAgIH1cclxuICAvLyAgICAgICAgICAgZWxlLlN1Yk1lbnUuZm9yRWFjaChzdWJlbGUgPT4ge1xyXG4gIC8vICAgICAgICAgICAgIG5ld01lbnVMaXN0LnB1c2goc3ViZWxlKVxyXG4gIC8vICAgICAgICAgICAgIGV4dG1lbnVfaWRuID0gc3ViZWxlLm1lbnVfaWRuO1xyXG5cclxuICAvLyAgICAgICAgICAgICBpZiAobG9jaGlzdG9yeUxpbmsuaW5kZXhPZihleHRtZW51X2lkbikgIT0gLTEpIHtcclxuICAvLyAgICAgICAgICAgICAgIHRoaXMuaGlzdG9yeUxpbmsucHVzaChleHRtZW51X2lkbik7XHJcbiAgLy8gICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlMaW5rTWFwW2V4dG1lbnVfaWRuXSA9IHN1YmVsZTtcclxuICAvLyAgICAgICAgICAgICB9XHJcblxyXG4gIC8vICAgICAgICAgICB9KTtcclxuICAvLyAgICAgICAgIH0pO1xyXG4gIC8vICAgICAgICAgdGhpcy5hY2NNZW51TGlzdFsxXSA9IG5ld01lbnVMaXN0O1xyXG4gIC8vICAgICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgICBsZXQga2V5ID0gMTtcclxuICAvLyAgICAgICAgIGxldCBuZXdNZW51TGlzdCA9IFtdO1xyXG4gIC8vICAgICAgICAgbGV0IGxzQ250ID0gMDtcclxuICAvLyAgICAgICAgIG1lbnVMaXN0LmZvckVhY2goZWxlID0+IHtcclxuICAvLyAgICAgICAgICAgbHNDbnQgPSBsc0NudCArIGVsZS5TdWJNZW51Lmxlbmd0aCArIDE7XHJcbiAgLy8gICAgICAgICAgIGVsZVtcImlzaGRyXCJdID0gXCJZXCI7XHJcbiAgLy8gICAgICAgICAgIG5ld01lbnVMaXN0LnB1c2goZWxlKVxyXG4gIC8vICAgICAgICAgICBsZXQgZXh0bWVudV9pZG4gPSBlbGUubWVudV9pZG47XHJcbiAgLy8gICAgICAgICAgIGlmIChsb2NoaXN0b3J5TGluay5pbmRleE9mKGV4dG1lbnVfaWRuKSAhPSAtMSkge1xyXG4gIC8vICAgICAgICAgICAgIHRoaXMuaGlzdG9yeUxpbmsucHVzaChleHRtZW51X2lkbik7XHJcbiAgLy8gICAgICAgICAgICAgdGhpcy5oaXN0b3J5TGlua01hcFtleHRtZW51X2lkbl0gPSBlbGVcclxuICAvLyAgICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgICBlbGUuU3ViTWVudS5mb3JFYWNoKHN1YmVsZSA9PiB7XHJcbiAgLy8gICAgICAgICAgICAgc3ViZWxlW1wiaXNoZHJcIl0gPSBcIk5cIjtcclxuICAvLyAgICAgICAgICAgICBuZXdNZW51TGlzdC5wdXNoKHN1YmVsZSlcclxuICAvLyAgICAgICAgICAgICBleHRtZW51X2lkbiA9IHN1YmVsZS5tZW51X2lkbjtcclxuXHJcbiAgLy8gICAgICAgICAgICAgaWYgKGxvY2hpc3RvcnlMaW5rLmluZGV4T2YoZXh0bWVudV9pZG4pICE9IC0xKSB7XHJcbiAgLy8gICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlMaW5rLnB1c2goZXh0bWVudV9pZG4pO1xyXG4gIC8vICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5TGlua01hcFtleHRtZW51X2lkbl0gPSBzdWJlbGU7XHJcbiAgLy8gICAgICAgICAgICAgfVxyXG5cclxuICAvLyAgICAgICAgICAgfSk7XHJcblxyXG4gIC8vICAgICAgICAgICBpZiAobHNDbnQgPj0gZGl2ICYmIG5ld01lbnVMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAvLyAgICAgICAgICAgICB0aGlzLmFjY01lbnVMaXN0W2tleV0gPSBuZXdNZW51TGlzdDtcclxuICAvLyAgICAgICAgICAgICBrZXkgPSBrZXkgKyAxO1xyXG4gIC8vICAgICAgICAgICAgIG5ld01lbnVMaXN0ID0gW107XHJcbiAgLy8gICAgICAgICAgICAgbHNDbnQgPSAwO1xyXG4gIC8vICAgICAgICAgICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8vICAgICAgICAgfSk7XHJcbiAgLy8gICAgICAgICBpZiAobHNDbnQgIT0gMClcclxuICAvLyAgICAgICAgICAgdGhpcy5hY2NNZW51TGlzdFtrZXldID0gbmV3TWVudUxpc3Q7XHJcbiAgLy8gICAgICAgfVxyXG5cclxuXHJcbiAgLy8gICAgICAgdGhpcy5rZXlMaXN0ID0gT2JqZWN0LmtleXModGhpcy5hY2NNZW51TGlzdCk7XHJcbiAgLy8gICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgdGhpcy50b2FzdHIuZXJyb3IocmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gIC8vICAgICAvLyB0aGlzLmZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3coZXJyLm1lc3NhZ2UsIHsgY3NzQ2xhc3M6ICdhbGVydC1kYW5nZXInLCB0aW1lb3V0OiAzMDAwIH0pO1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gfVxyXG5cclxuICByZWZyZXNoR2V0TWVudSgpIHtcclxuICAgIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpXHJcbiAgICBsZXQgcmVxT2JqID0geyBcImZvcm1ObWVcIjogXCJsb2dpbkZvcm1cIn1cclxuICAgIGxldCBvcHRpb25zID0geyBtZXRob2Q6IFwiZ2V0TWVudU1vZHVsZVdpc2VcIiB9O1xyXG4gICAgdGhpcy5jcy5sb2FkKHJlcU9iaiwgb3B0aW9ucywgJ2xvZ2luL2F1dGhlbnRpY2F0aW9ucycpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSBcIlNVQ0NFU1NcIikge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwibW9kdWxlTGlzdFwiLEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlLm1vZHVsZUR0bExzdCkpXHJcbiAgICAgICAgdGhpcy5tZW51TGlzdCgpXHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IocmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0pIC5jYXRjaCgoZXJyOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgIHRoaXMudG9hc3RyLmVycm9yKGVyci5tZXNzYWdlKTtcclxuICAgIH0pO1xyXG4gICAgXHJcbiAgfVxyXG5cclxuICBtZW51TGlzdCgpIHtcclxuICAgIGxldCBtb2R1bGVLZXlzID0gdGhpcy5tZGxrW3RoaXMuY1VybC5zcGxpdCgnLycpWzFdXTtcclxuICAgIGxldCBsb2NoaXN0b3J5TWFwID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnaGlzdG9yeUxpbmsnKSkgfHwge307XHJcbiAgICBsZXQgbG9jaGlzdG9yeUxpbmsgPSBsb2NoaXN0b3J5TWFwW21vZHVsZUtleXNdIHx8IFtdO1xyXG4gICAgdGhpcy5oaXN0b3J5TGlua01hcCA9IHt9O1xyXG4gICAgdGhpcy5oaXN0b3J5TGluayA9IFtdO1xyXG4gICAgbGV0IG1lbnUgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibW9kdWxlTGlzdFwiKSkgfHwgW107XHJcbiAgICBsZXQgbWVudUl0ZW0gPSBtZW51LmZpbmQoKGVsZSkgPT4gZWxlLm1kbEtleSA9PSBtb2R1bGVLZXlzKSB8fCB7fTtcclxuICAgIGxldCBtZW51TGlzdCA9IG1lbnVJdGVtLm1vZHVsZVdpc2VNZW51IHx8IFtdO1xyXG4gICAgbGV0IGNudCA9IDBcclxuICAgIG1lbnVMaXN0LmZvckVhY2goZWxlID0+IHtcclxuICAgICAgY250ID0gY250ICsgZWxlLlN1Yk1lbnUubGVuZ3RoICsgMTtcclxuICAgIH0pO1xyXG4gICAgbGV0IGRpdiA9IGNudCAvIDQ7XHJcbiAgICBkaXYgPSBNYXRoLnJvdW5kKGRpdik7XHJcbiAgICBpZiAoZGl2IDwgMSkge1xyXG4gICAgICBsZXQgbmV3TWVudUxpc3QgPSBbXTtcclxuICAgICAgbWVudUxpc3QuZm9yRWFjaChlbGUgPT4ge1xyXG4gICAgICAgIGVsZVtcImlzaGRyXCJdID0gXCJZXCI7XHJcbiAgICAgICAgbmV3TWVudUxpc3QucHVzaChlbGUpXHJcbiAgICAgICAgbGV0IGV4dG1lbnVfaWRuID0gZWxlLm1lbnVfaWRuO1xyXG4gICAgICAgIGlmIChsb2NoaXN0b3J5TGluay5pbmRleE9mKGV4dG1lbnVfaWRuKSAhPSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5oaXN0b3J5TGluay5wdXNoKGV4dG1lbnVfaWRuKTtcclxuICAgICAgICAgIHRoaXMuaGlzdG9yeUxpbmtNYXBbZXh0bWVudV9pZG5dID0gZWxlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsZS5TdWJNZW51LmZvckVhY2goc3ViZWxlID0+IHtcclxuICAgICAgICAgIG5ld01lbnVMaXN0LnB1c2goc3ViZWxlKVxyXG4gICAgICAgICAgZXh0bWVudV9pZG4gPSBzdWJlbGUubWVudV9pZG47XHJcblxyXG4gICAgICAgICAgaWYgKGxvY2hpc3RvcnlMaW5rLmluZGV4T2YoZXh0bWVudV9pZG4pICE9IC0xKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGlzdG9yeUxpbmsucHVzaChleHRtZW51X2lkbik7XHJcbiAgICAgICAgICAgIHRoaXMuaGlzdG9yeUxpbmtNYXBbZXh0bWVudV9pZG5dID0gc3ViZWxlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuYWNjTWVudUxpc3RbMV0gPSBuZXdNZW51TGlzdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBrZXkgPSAxO1xyXG4gICAgICBsZXQgbmV3TWVudUxpc3QgPSBbXTtcclxuICAgICAgbGV0IGxzQ250ID0gMDtcclxuICAgICAgbWVudUxpc3QuZm9yRWFjaChlbGUgPT4ge1xyXG4gICAgICAgIGxzQ250ID0gbHNDbnQgKyBlbGUuU3ViTWVudS5sZW5ndGggKyAxO1xyXG4gICAgICAgIGVsZVtcImlzaGRyXCJdID0gXCJZXCI7XHJcbiAgICAgICAgbmV3TWVudUxpc3QucHVzaChlbGUpXHJcbiAgICAgICAgbGV0IGV4dG1lbnVfaWRuID0gZWxlLm1lbnVfaWRuO1xyXG4gICAgICAgIGlmIChsb2NoaXN0b3J5TGluay5pbmRleE9mKGV4dG1lbnVfaWRuKSAhPSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5oaXN0b3J5TGluay5wdXNoKGV4dG1lbnVfaWRuKTtcclxuICAgICAgICAgIHRoaXMuaGlzdG9yeUxpbmtNYXBbZXh0bWVudV9pZG5dID0gZWxlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsZS5TdWJNZW51LmZvckVhY2goc3ViZWxlID0+IHtcclxuICAgICAgICAgIHN1YmVsZVtcImlzaGRyXCJdID0gXCJOXCI7XHJcbiAgICAgICAgICBuZXdNZW51TGlzdC5wdXNoKHN1YmVsZSlcclxuICAgICAgICAgIGV4dG1lbnVfaWRuID0gc3ViZWxlLm1lbnVfaWRuO1xyXG5cclxuICAgICAgICAgIGlmIChsb2NoaXN0b3J5TGluay5pbmRleE9mKGV4dG1lbnVfaWRuKSAhPSAtMSkge1xyXG4gICAgICAgICAgICB0aGlzLmhpc3RvcnlMaW5rLnB1c2goZXh0bWVudV9pZG4pO1xyXG4gICAgICAgICAgICB0aGlzLmhpc3RvcnlMaW5rTWFwW2V4dG1lbnVfaWRuXSA9IHN1YmVsZTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmIChsc0NudCA+PSBkaXYgJiYgbmV3TWVudUxpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5hY2NNZW51TGlzdFtrZXldID0gbmV3TWVudUxpc3Q7XHJcbiAgICAgICAgICBrZXkgPSBrZXkgKyAxO1xyXG4gICAgICAgICAgbmV3TWVudUxpc3QgPSBbXTtcclxuICAgICAgICAgIGxzQ250ID0gMDtcclxuICAgICAgICB9XHJcblxyXG5cclxuXHJcblxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKGxzQ250ICE9IDApXHJcbiAgICAgICAgdGhpcy5hY2NNZW51TGlzdFtrZXldID0gbmV3TWVudUxpc3Q7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRoaXMua2V5TGlzdCA9IE9iamVjdC5rZXlzKHRoaXMuYWNjTWVudUxpc3QpO1xyXG4gIH1cclxuICBsb2dPdXRCb3goKSB7XHJcbiAgICB2YXIgZGlzcGxheSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYi1zaWdub3V0Jykuc3R5bGUuZGlzcGxheTtcclxuXHJcbiAgICBpZiAoZGlzcGxheSA9PSAnbm9uZScgfHwgZGlzcGxheSA9PSAnJykge1xyXG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWItc2lnbm91dCcpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21iLXNpZ25vdXQnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgfVxyXG4gIH1cclxuICBpc3Bhc3N3b3JkQ2hhbmdlID0gZmFsc2U7XHJcbiAgQ2hhbmdlUGFzc3dvcmQoKSB7XHJcblxyXG4gICAgbGV0IHJlcU9iaiA9IHt9O1xyXG4gICAgaWYgKENvb2tpZS5nZXQoJ0F1dGhvcml6YXRpb24nKSAhPSBudWxsICYmIENvb2tpZS5nZXQoJ0F1dGhvcml6YXRpb24nKSAhPSAndW5kZWZpbmVkJyAmJiBDb29raWUuZ2V0KCdBdXRob3JpemF0aW9uJykgIT0gJycgJiYgIUNvb2tpZS5nZXQoJ0F1dGhvcml6YXRpb24nKSkgcmV0dXJuO1xyXG4gICAgbGV0IGhlYWRlcjogYW55ID0ge1xyXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAnc291cmNlJzogJ3FzJ1xyXG4gICAgfVxyXG4gICAgLy8gJ2NsaWVudGtleSc6IENvb2tpZS5nZXQoJ19jaycpLFxyXG4gICAgLy8gJ2xvZ2luaWQnOiBDb29raWUuZ2V0KCdfbG9naWQnKSxcclxuICAgIC8vICdtb2R1bGVrZXknOiB0aGlzLm1kbGtbdGhpcy5jVXJsLnNwbGl0KCcvJylbMV1dLFxyXG5cclxuICAgIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gICAgcmVxT2JqW1wiZm9ybU5tZVwiXSA9IFwiYXBwbGljYXRpb25BY2Nlc3NNYXN0ZXJcIjtcclxuICAgIHJlcU9ialtcInVzZXJuYW1lXCJdID0gdGhpcy51VXNyO1xyXG4gICAgaGVhZGVyW1wibWV0aG9kXCJdID0gXCJsb2FkQ2hhbmdlUGFzc1wiO1xyXG4gICAgLy8gbGV0IG9wdGlvbnMgPSAoeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoaGVhZGVyKSB9KTtcclxuICAgIGxldCBvcHRpb25zID0ge1xyXG4gICAgICBtZXRob2Q6IFwibG9hZENoYW5nZVBhc3NcIlxyXG4gICAgfVxyXG4gICAgdGhpcy5jcy5sb2FkKHJlcU9iaiwgb3B0aW9ucywgJ2NvbnRhY3QvbG9hZENvbnRhY3QnKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gXCJTVUNDRVNTXCIpIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gcmVzcG9uc2UucmVzdWx0O1xyXG4gICAgICAgIHRoaXMudXNlckRldGFpbHMgPSByZXN1bHQudXNlckRldGFpbHM7XHJcbiAgICAgICAgdGhpcy5pc3Bhc3N3b3JkQ2hhbmdlID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGFuZ2VQd2RCdG4nKS5jbGljaygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIHRoaXMudG9hc3RyLmVycm9yKHJlc3BvbnNlLm1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgICAuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoZXJyLm1lc3NhZ2UpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgfVxyXG4gIHBhc3N3b3JkQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5pc3Bhc3N3b3JkQ2hhbmdlID0gdHJ1ZTtcclxuXHJcbiAgfVxyXG4gIFNhdmVQYXNzd29yZCgpIHtcclxuICAgIGlmICh0aGlzLmlzcGFzc3dvcmRDaGFuZ2UpIHtcclxuICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICAgIGlmIChDb29raWUuZ2V0KCdfbG9naWQnKSA9PSBudWxsKSByZXR1cm47XHJcbiAgICAgIGxldCBoZWFkZXI6IGFueSA9IHtcclxuICAgICAgICAnY2xpZW50a2V5JzogQ29va2llLmdldCgnX2NrJyksXHJcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgICAnbW9kdWxla2V5JzogdGhpcy5tZGxrW3RoaXMuY1VybC5zcGxpdCgnLycpWzFdXSxcclxuICAgICAgICAnbG9naW5pZCc6IENvb2tpZS5nZXQoJ19sb2dpZCcpLFxyXG4gICAgICAgICdzb3VyY2UnOiAncXMnXHJcbiAgICAgIH1cclxuICAgICAgIFxyXG4gICAgICBsZXQgdXNyRHRsID0gdGhpcy51c2VyRGV0YWlsc1swXTtcclxuICAgICAgbGV0IHJlcU9iaiA9IHt9O1xyXG4gICAgICByZXFPYmpbXCJmb3JtTm1lXCJdID0gXCJzZXRQYXNzd29yZEZvcm1cIjtcclxuICAgICAgcmVxT2JqW1widXNlcklkblwiXSA9IHVzckR0bC51c2VySWRuO1xyXG4gICAgICByZXFPYmpbXCJwYXNzd29yZFwiXSA9IHVzckR0bC5wYXNzd29yZDtcclxuICAgICAgaGVhZGVyW1wibWV0aG9kXCJdID0gXCJjaGFuZ2VQYXNzd29yZFwiO1xyXG4gICAgICAvLyBsZXQgb3B0aW9ucyA9ICh7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyhoZWFkZXIpIH0pO1xyXG4gICAgICBsZXQgb3B0aW9ucyA9IHtcclxuICAgICAgICBtZXRob2Q6ICdjaGFuZ2VQYXNzd29yZCdcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNzLmxvYWQocmVxT2JqLCBvcHRpb25zLCAnY29udGFjdC9sb2FkQ29udGFjdCcpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09IFwiU1VDQ0VTU1wiKSB7XHJcbiAgICAgICAgICBsZXQgcmVzdWx0ID0gcmVzcG9uc2UucmVzdWx0O1xyXG4gICAgICAgICAgdGhpcy5jbG9zZWJ0bi5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICAgIHRoaXMuaXNwYXNzd29yZENoYW5nZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50b2FzdHIuc3VjY2VzcyhyZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKHJlc3BvbnNlLm1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKGVyci5tZXNzYWdlKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgdGhpcy50b2FzdHIuZXJyb3IoXCJQbGVhc2Ugc3BlY2lmeSBuZXcgcGFzc3dvcmRcIik7XHJcbiAgICB9XHJcblxyXG5cclxuICB9XHJcblxyXG4gIFNob3dNZW51KHR5cCwgbWVudWR0bCkge1xyXG4gICAgdmFyIG1lbnVkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVudURpdicpLnN0eWxlLmRpc3BsYXk7XHJcbiAgICBpZiAobWVudWRpdiA9PSAnbm9uZScpXHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZW51RGl2Jykuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XHJcbiAgICBlbHNlXHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZW51RGl2Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgIGlmICh0eXAgPT0gJ2xuaycpIHtcclxuICAgICAgIFxyXG4gICAgICBsZXQgbWVudV9pZG4gPSBtZW51ZHRsLm1lbnVfaWRuIHx8ICcnO1xyXG4gICAgICBsZXQgbW9kdWxrZXkgPSB0aGlzLm1kbGtbdGhpcy5jVXJsLnNwbGl0KCcvJylbMV1dXHJcbiAgICAgIGxldCBoaXN0b3J5TGlua21hcCA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2hpc3RvcnlMaW5rJykpIHx8IHt9O1xyXG4gICAgICBsZXQgbW9kdWxlTGluayA9IGhpc3RvcnlMaW5rbWFwW21vZHVsa2V5XSB8fCBbXTtcclxuICAgICAgaWYgKG1lbnVfaWRuICE9ICcnKSB7XHJcbiAgICAgICAgIFxyXG4gICAgICAgIGlmIChtb2R1bGVMaW5rLmluZGV4T2YobWVudV9pZG4pICE9IC0xKSB7XHJcbiAgICAgICAgICBtb2R1bGVMaW5rLnNwbGljZShtb2R1bGVMaW5rLmluZGV4T2YobWVudV9pZG4pLCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbW9kdWxlTGluay5zcGxpY2UoMCwgMCwgbWVudV9pZG4pO1xyXG4gICAgICAgIGlmIChtb2R1bGVMaW5rLmxlbmd0aCA+IDEwKSB7XHJcbiAgICAgICAgICBsZXQgbnVtT2ZyZW1vdmUgPSBtb2R1bGVMaW5rLmxlbmd0aCAtIDEwO1xyXG4gICAgICAgICAgbW9kdWxlTGluay5zcGxpY2UoMTAsIG51bU9mcmVtb3ZlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaGlzdG9yeUxpbmttYXBbbW9kdWxrZXldID0gbW9kdWxlTGluaztcclxuICAgICAgICB0aGlzLmhpc3RvcnlMaW5rID0gbW9kdWxlTGluaztcclxuICAgICAgICB0aGlzLmhpc3RvcnlMaW5rTWFwW21lbnVfaWRuXSA9IG1lbnVkdGw7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2hpc3RvcnlMaW5rJywgSlNPTi5zdHJpbmdpZnkoaGlzdG9yeUxpbmttYXApKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBFZGl0Q29tcGFueSgpIHtcclxuICAgIENvb2tpZS5kZWxldGUoJ19hY2NDb21wYW55JywgdGhpcy5nbG9ibEVudi5wYXRobmFtZSwgdGhpcy5nbG9ibEVudi5ob3N0bmFtZSk7XHJcbiAgICBDb29raWUuZGVsZXRlKCdfYWNjeWVhcicsIHRoaXMuZ2xvYmxFbnYucGF0aG5hbWUsIHRoaXMuZ2xvYmxFbnYuaG9zdG5hbWUpO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydmYWNvbXBhbnknXSk7XHJcbiAgfVxyXG4gIHJiaSA9IFwiXCI7XHJcbiAgYmFuayA9IFwiXCI7XHJcbiAgY3V0b21pbXAgPSBcIlwiO1xyXG4gIGN1dG9tZXhwID0gXCJcIjtcclxuICBtZGxrXHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5tZGxrID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbWRsS2V5JykpO1xyXG4gICAgLy8gIHRoaXMuY1VybCA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoO1xyXG4gICAgLy8gIHRoaXMuY1VybD10aGlzLmNVcmwucmVwbGFjZShcIiNcIiwnJyk7XHJcblxyXG4gICAgLy8gR2V0dGluZyB0aGUgZmluYWwgdXJsXHJcbiAgICAvLyB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcclxuICAgIC8vICAgZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpXHJcbiAgICAvLyAgIC5zdWJzY3JpYmUoKG5hdkVuZDogTmF2aWdhdGlvbkVuZCkgPT4ge1xyXG4gICAgLy8gICAgIHRoaXMuY1VybCA9IG5hdkVuZC51cmxBZnRlclJlZGlyZWN0cztcclxuICAgIC8vICAgICB0aGlzLm1lbnVMaXN0KCk7XHJcbiAgICAvLyAgIH0pXHJcbiAgICAvLyAgKTtcclxuICAgICB0aGlzLnJvdXRlci5ldmVudHNcclxuICAgICAucGlwZShmaWx0ZXIoKGUpOiBlIGlzIE5hdmlnYXRpb25FbmQgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxyXG4gICAgIC5zdWJzY3JpYmUoKG5hdkVuZDogTmF2aWdhdGlvbkVuZCkgPT4ge1xyXG4gICAgICAgdGhpcy5jVXJsID0gbmF2RW5kLnVybEFmdGVyUmVkaXJlY3RzO1xyXG4gICAgICAgdGhpcy5tZW51TGlzdCgpO1xyXG4gICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLmNVcmwgPT0gJycpXHJcbiAgICAgIHRoaXMuY1VybCA9IFwiL2hvbWVcIjtcclxuICAgIHRoaXMuaGVhZGVyID0ge1xyXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAnc291cmNlJzogJ3FzJ1xyXG4gICAgfTtcclxuICAgIC8vICdhcHBrZXknOiAnTzkxWUsqRHcka0U3ZE5wY1ZtR0x2THhXTUowQzAwZU8nLFxyXG4gICAgLy8gJ21vZHVsZWtleSc6ICdXSGk2U1JMWTYjJDgyYnpKZkA0SVV4OW9IU0xibjJxSCcsLy8gbWRsa1tjVXJsLnNwbGl0KCcvJylbMV1dLFxyXG4gICAgLy8gJ2NsaWVudGtleSc6IENvb2tpZS5nZXQoJ19jaycpLFxyXG4gICAgLy8gJ2xvZ2luaWQnOiBDb29raWUuZ2V0KCdfbG9naWQnKSxcclxuICAgIC8vICdkcyc6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdEUycpLFxyXG4gICAgXHJcbiAgICBcclxuICB9XHJcblxyXG4gIE9wZW5PcHRpb24oKSB7XHJcbiAgICB2YXIgaXNkaXNwbGF5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vcmVvcHRpb24nKS5zdHlsZS5kaXNwbGF5O1xyXG4gICAgaWYgKGlzZGlzcGxheSA9PSAnbm9uZScpIHtcclxuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vcmVvcHRpb24nKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb3Jlb3B0aW9uJykuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIiwiPHVsIGNsYXNzPVwieC1uYXZpZ2F0aW9uIHgtbmF2aWdhdGlvbi1ob3Jpem9udGFsIHgtbmF2aWdhdGlvbi1wYW5lbFwiIHN0eWxlPVwicGFkZGluZy1yaWdodDogMHB4O3otaW5kZXg6IDEwMDBcIj5cclxuICA8bGkgc3R5bGU9XCJiYWNrZ3JvdW5kOiAjM2I1OTk4O1wiPlxyXG4gICAgPGEgKGNsaWNrKT1cInJvdXRlaG9tZSgpXCIgKm5nSWY9XCJjVXJsICE9ICcvaG9tZSdcIiBjbGFzcz1cInByb2ZpbGUtbWluaVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImhlYWRcIj5FWjwvc3Bhbj5cclxuICAgIDwvYT5cclxuICA8L2xpPlxyXG4gIDxsaSAqbmdJZj1cImNVcmwgIT0gJy9ob21lJyBcIj5cclxuICAgIDxuYXYgY2xhc3M9XCJuYXZiYXIgbmF2YmFyLWV4cGFuZC1tZCBuYXZiYXItbGlnaHQgYmctbGlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm5hdmJhci1jb2xsYXBzZSBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdG9wXCIgaWQ9XCJuYXZiYXJDb2xsYXBzZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYXZiYXItbmF2XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWl0ZW0gZHJvcGRvd25cIiBzdHlsZT1cInotaW5kZXg6MTBcIj5cclxuICAgICAgICAgICAgPGEgKGNsaWNrKT1cIlNob3dNZW51KCdiYXInLCcnKVwiIGNsYXNzPVwibmF2LWxpbmsgZHJvcGRvd24tdG9nZ2xlXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cImNvbG9yOiAjZmZmOyBmb250LXNpemU6IDIwcHg7cGFkZGluZzowcHggO21hcmdpbi10b3A6IDVweFwiIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIj4gPGlcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtYmFyc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48L2E+XHJcbiAgICAgICAgICAgIDxkaXYgaWQ9XCJtZW51RGl2XCIgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO2JhY2tncm91bmQtY29sb3I6ICMxZDIxMjdcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1oaXN0b3J5LWNvbHVtbiBjb2wtbWQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8aDI+SGlzdG9yeTwvaDI+XHJcbiAgICAgICAgICAgICAgICAgIDx1bCBpZD1cIm5hdi1oaXN0b3J5XCIgc3R5bGU9XCJkaXNwbGF5OmlubGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInNlcnZpY2UtaXRlbVwiICpuZ0Zvcj1cImxldCBtZW51X2lkbiBvZiBoaXN0b3J5TGlua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMve3toaXN0b3J5TGlua01hcFttZW51X2lkbl1bJ2xuayddfX1cIiBjbGFzcz1cImhlYWRlcmxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiU2hvd01lbnUoJ2JhcicsJycpXCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlcnZpY2UtbGFiZWxcIj57e2hpc3RvcnlMaW5rTWFwW21lbnVfaWRuXVsnaGRyJ119fTwvc3Bhbj48L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGNvbC1tZC0xMiBhd3NjLXNlcnZpY2VzLXNlYXJjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJhd3NjLWlucHV0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImF3c2Mtc2VydmljZXMtc2VhcmNoLWF1dG9jb21wbGV0ZVwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJGaW5kIGEgTWVudSBieSBuYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1aS1hdXRvY29tcGxldGUtaW5wdXRcIiBuYW1lPVwic2VhcmNoRlwiIFsobmdNb2RlbCldPVwic2VhcmNoRlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cImF3c2Mtc2VydmljZXMtY29udGFpbmVyXCIgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBrZXkgb2Yga2V5TGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY2NtZW51IG9mIGFjY01lbnVMaXN0W2tleV0gfCB0YWJsZVNlYXJjaDpzZWFyY2hGO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0lmPVwiYWNjbWVudS5pc2hkcj09J1knXCIgY2xhc3M9XCJhd3NjLWhlYWRlciBpY28tY29tcHV0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWNjbWVudS5sbmsgIT0nIycgJiYgYWNjbWVudS5sbmsgIT0nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYW5nbGUtZG91YmxlLXJpZ2h0XCIgc3R5bGU9XCJmb250LXNpemU6MjBweDtjb2xvcjp3aGl0ZTtcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMve3thY2NtZW51Lmxua319XCIgKGNsaWNrKT1cIlNob3dNZW51KCdsbmsnLGFjY21lbnUpXCIgY2xhc3M9XCJoZWFkZXJsaW5rXCI+IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VydmljZS1sYWJlbFwiPiB7e2FjY21lbnUuaGRyfX08L3NwYW4+IDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY2NtZW51LmxuayA9PScjJyB8fCBhY2NtZW51LmxuayA9PScnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1hbmdsZS1kb3VibGUtZG93blwiIHN0eWxlPVwiZm9udC1zaXplOjIwcHg7Y29sb3I6d2hpdGU7XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YWNjbWVudS5oZHJ9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJhY2NtZW51LmlzaGRyPT0nTidcIiBjbGFzcz1cInNlcnZpY2UtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiIy97e2FjY21lbnUubG5rfX1cIiAoY2xpY2spPVwiU2hvd01lbnUoJ2xuaycsYWNjbWVudSlcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZXJ2aWNlLWxhYmVsXCI+e3thY2NtZW51Lmhkcn19PC9zcGFuPjwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25hdj5cclxuICA8L2xpPlxyXG4gIDxsaSBjbGFzcz1cInJzLW5vbmVcIiBbbmdTdHlsZV09XCJ7J3dpZHRoJyA6IGNVcmwgPT0gJy9ob21lJyA/ICcyNTBweCcgOiAnMHB4J31cIj5cclxuICAgICZuYnNwO1xyXG4gIDwvbGk+XHJcbiAgPGxpIGNsYXNzPVwicnMtbm9uZVwiIHN0eWxlPVwibWFyZ2luOiAxMHB4O1wiPlxyXG4gICAgPGZvcm0gY2xhc3M9XCJmb3JtLWlubGluZSBteS0yXCI+XHJcbiAgICAgIDx0ZXh0YXJlYSBzdHlsZT1cIndoaXRlLXNwYWNlOiBwcmU7XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cIlNUT05FIElELyBSRiBJRCBzZWFyY2hcIiBbKG5nTW9kZWwpXT1cInFrU2NoXCJcclxuICAgICAgICBpZD1cImZvZ2dsZVwiIG5hbWU9XCJmb29nbGVcIiBjb2xzPVwiNDVcIiByb3dzPVwiMVwiPjwvdGV4dGFyZWE+XHJcbiAgICAgIDxzcGFuIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBcclxuICAgICAgICB0b3A6IC0ycHg7XHJcbiAgICAgICAgcmlnaHQ6IDI4cHg7XHJcbiAgICAgICAgY29sb3I6IHJnYigxNTAsIDE0NCwgMTQ0KTtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcclxuICAgICAgICB6LWluZGV4OiA2O1xyXG4gICAgICAgIHdpZHRoOiAzNXB4O1xyXG4gICAgICAgIGhlaWdodDogMzZweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMzRweDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgLyogcG9pbnRlci1ldmVudHM6IG5vbmU7ICovXHJcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1wiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoXCIgKGNsaWNrKT1cInBhY2tldExvb2t1cFNyY0NvdW50KHFrU2NoKTtcIj48L2k+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJoZWxwYyBtci1zbS0yXCIgZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgZGF0YS1wbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgIHRpdGxlPVwiU1RPTkUgLyBDRVJUIE5PIC8gR0lBIFJEIDEuMjAtMS4zMCBGIFZTMSAzRVggTlwiPjxpIGNsYXNzPVwiZmEgZmEtaW5mb1wiPjwvaT48L3NwYW4+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9saT5cclxuICA8bGkgY2xhc3M9XCJwdWxsLXJpZ2h0XCIgZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgZGF0YS1wbGFjZW1lbnQ9XCJsZWZ0XCIgdGl0bGU9XCJDaGFuZ2UgcGFzc3dvcmRcIj5cclxuICAgIDxhIChjbGljayk9XCJDaGFuZ2VQYXNzd29yZCgpXCIgc3R5bGU9XCJwYWRkaW5nOjE1cHggNXB4XCIgY2xhc3M9XCJtYi1jb250cm9sXCI+XHJcbiAgICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAxOHB4XCIgY2xhc3M9XCJmYSBmYS1rZXlcIj48L3NwYW4+XHJcbiAgICA8L2E+XHJcbiAgPC9saT5cclxuICA8bGkgY2xhc3M9XCJwdWxsLXJpZ2h0XCIgZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgZGF0YS1wbGFjZW1lbnQ9XCJsZWZ0XCIgdGl0bGU9XCJMb2cgT3V0XCI+XHJcbiAgICA8YSAoY2xpY2spPVwibG9nT3V0Qm94KClcIiBjbGFzcz1cIm1iLWNvbnRyb2xcIiBzdHlsZT1cInBhZGRpbmc6MTVweCA1cHhcIiBkYXRhLWJveD1cIiNtYi1zaWdub3V0XCI+XHJcbiAgICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAxOHB4XCIgY2xhc3M9XCJmYSBmYS1zaWduLW91dFwiPjwvc3Bhbj5cclxuICAgIDwvYT5cclxuICA8L2xpPlxyXG4gIDxsaSBjbGFzcz1cInB1bGwtcmlnaHRcIj5cclxuICAgIDxsYWJlbCBjbGFzcz1cInVkXCI+IDxzcGFuIGNsYXNzPVwidGV4dC1jYXBpdGFsaXplXCI+e3t1VXNyICsnIHwnfX08L3NwYW4+IHt7ZHN9fSA8L2xhYmVsPlxyXG4gIDwvbGk+XHJcblxyXG4gIDxsaSBjbGFzcz1cInB1bGwtcmlnaHRcIiBkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIiBkYXRhLXBsYWNlbWVudD1cImxlZnRcIiB0aXRsZT1cIlJlZnJlc2ggTWVudVwiPlxyXG4gICAgPGEgKGNsaWNrKT1cInJlZnJlc2hHZXRNZW51KClcIiBjbGFzcz1cInJlZnJlc2hcIiBzdHlsZT1cInBhZGRpbmc6MTVweCA1cHhcIj5cclxuICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDE4cHhcIiBjbGFzcz1cImZhIGZhLXJlZnJlc2hcIj48L3NwYW4+XHJcbiAgICA8L2E+XHJcbiAgPC9saT5cclxuPC91bD5cclxuPHVsIGNsYXNzPVwieC1uYXZpZ2F0aW9uIHgtbmF2aWdhdGlvbi1ob3Jpem9udGFsIHgtbmF2aWdhdGlvbi1wYW5lbCBzci1ub25lXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjYmZiZmJmXCI+XHJcbiAgPGxpIHN0eWxlPVwibWFyZ2luOiAxMHB4O1wiPlxyXG4gICAgPGZvcm0gY2xhc3M9XCJmb3JtLWlubGluZSBteS0yXCI+XHJcbiAgICAgIDx0ZXh0YXJlYSBzdHlsZT1cIndoaXRlLXNwYWNlOiBwcmU7XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cIlNUT05FIElELyBSRiBJRCBzZWFyY2hcIiBbKG5nTW9kZWwpXT1cInFrU2NoXCJcclxuICAgICAgICBpZD1cImZvZ2dsZVwiIG5hbWU9XCJmb29nbGVcIiBjb2xzPVwiNDVcIiByb3dzPVwiMVwiPjwvdGV4dGFyZWE+XHJcbiAgICAgIDxzcGFuIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBcclxuICAgICAgdG9wOiAtMnB4O1xyXG4gICAgICByaWdodDogMjhweDtcclxuICAgICAgY29sb3I6IHJnYigxNTAsIDE0NCwgMTQ0KTtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XHJcbiAgICAgIHotaW5kZXg6IDY7XHJcbiAgICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgICBoZWlnaHQ6IDM2cHg7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAzNHB4O1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIC8qIHBvaW50ZXItZXZlbnRzOiBub25lOyAqL1xyXG4gICAgICBmb250LXNpemU6IDE3cHg7XCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2hcIiAoY2xpY2spPVwicGFja2V0TG9va3VwU3JjQ291bnQocWtTY2gpO1wiPjwvaT5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbGk+XHJcbjwvdWw+XHJcblxyXG48ZGl2IGNsYXNzPVwibW9kYWxcIiBpZD1cImNoYW5nZVB3ZFBvcFwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLWxhYmVsbGVkYnk9XCJzbWFsbE1vZGFsSGVhZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgZGF0YS1iYWNrZHJvcD1cInN0YXRpY1wiIGRhdGEta2V5Ym9hcmQ9XCJmYWxzZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNsb3NlXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiAjY2xvc2VidG4+XHJcbiAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+Q2xvc2U8L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGg0IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cInNtYWxsTW9kYWxIZWFkXCI+Q2hhbmdlIFBhc3N3b3JkPC9oND5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdXNlciBvZiB1c2VyRGV0YWlsczsgbGV0IGk9aW5kZXg7XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29udHJvbC1sYWJlbFwiIGNsYXNzPVwiY29sLW1kLTJcIiBzdHlsZT1cInRleHQtYWxpZ246IGxlZnRcIj5Vc2VybmFtZSA6IDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtbWQtMlwiIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdFwiPnt7dXNlcj8udXNlcm5hbWV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiA1cHhcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29udHJvbC1sYWJlbFwiIGNsYXNzPVwiY29sLW1kLTJcIiBzdHlsZT1cInRleHQtYWxpZ246IGxlZnRcIj5QYXNzd29yZDo8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgY2xhc3M9XCJjb2wtbWQtMTBcIiBzdHlsZT1cInRleHQtYWxpZ246IGxlZnRcIlxyXG4gICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInBhc3N3b3JkQ2hhbmdlKClcIiBbKG5nTW9kZWwpXT1cInVzZXIucGFzc3dvcmRcIiBuYW1lPVwicGFzc3dvcmRcIiAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1kYW5nZXJcIiAjY2xvc2VidG4gZGF0YS1kaXNtaXNzPVwibW9kYWxcIj5DbG9zZTwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJTYXZlUGFzc3dvcmQoKVwiIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzXCIgYXBwQXBwTm9EYmxDbGljaz5Db25maXJtPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGJ1dHRvbiBpZD1cImNoYW5nZVB3ZEJ0blwiIFtoaWRkZW5dPVwidHJ1ZVwiIGRhdGEtdG9nZ2xlPVwibW9kYWxcIiBkYXRhLXRhcmdldD1cIiNjaGFuZ2VQd2RQb3BcIj48L2J1dHRvbj4iXX0=
@@ -101,7 +101,9 @@ export class HeaderComponent {
101
101
  return;
102
102
  }
103
103
  this.spinnerService.show();
104
- let r = this.cs.formateStr(fglstr);
104
+ // same attribute multipale value access ke liye coma seprate remove (23-09-2025)
105
+ let r = fglstr == null ? '' : fglstr.trim();
106
+ // let r= this.cs.formateStr(fglstr);
105
107
  localStorage.setItem('packetLookupStr', r);
106
108
  this.router.navigate(['solitaires/packet-lookup/Y'], { queryParams: { schId: this.srchCnt } });
107
109
  }
@@ -179,4 +181,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
179
181
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.ToastrService }, { type: i3.NgxSpinnerService }, { type: i4.GlobleEnvService }, { type: i5.CommanServiceService }, { type: i6.ShareDataService }, { type: i7.StockServiceService }]; }, propDecorators: { checkStat: [{
180
182
  type: Output
181
183
  }] } });
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V6bGliL3NyYy9saWIvaGVhZGVyL2hlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lemxpYi9zcmMvbGliL2hlYWRlci9oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7Ozs7QUFPN0UsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFDVSxNQUFjLEVBQ2QsTUFBcUIsRUFDckIsY0FBaUMsRUFDbEMsUUFBMEIsRUFDekIsRUFBd0IsRUFDeEIsT0FBeUIsRUFDekIsRUFBdUI7UUFOdkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBQ3pCLE9BQUUsR0FBRixFQUFFLENBQXNCO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBQ3pCLE9BQUUsR0FBRixFQUFFLENBQXFCO1FBR2pDLFVBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ25CLDBCQUEwQjtRQUMxQixPQUFFLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUMvQixTQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQVMvQixZQUFPLEdBQUMsQ0FBQyxDQUFDO1FBQ1YsUUFBRyxHQUFHLENBQUMsQ0FBQztRQUNSLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFZixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN6QyxTQUFJLEdBQUcsS0FBSyxDQUFDO0lBcEJULENBQUM7SUFzQkwsTUFBTTtRQUNKLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQUU7UUFFWixJQUFJLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFO1lBQ2xCLGlDQUFpQztZQUNqQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3ZDO2FBQU07U0FDTjtJQUNILENBQUM7SUFFRCx5QkFBeUI7SUFDekIsaUVBQWlFO0lBQ2pFLCtDQUErQztJQUMvQyxvSEFBb0g7SUFDcEgsY0FBYztJQUNkLE1BQU07SUFDTixnQ0FBZ0M7SUFDaEMscUJBQXFCO0lBQ3JCLDhDQUE4QztJQUM5QywwQ0FBMEM7SUFDMUMsOENBQThDO0lBQzlDLG1EQUFtRDtJQUNuRCxrQ0FBa0M7SUFDbEMsZ0VBQWdFO0lBQ2hFLHFFQUFxRTtJQUNyRSwyQ0FBMkM7SUFDM0MsK0RBQStEO0lBQy9ELGdGQUFnRjtJQUNoRiwyQ0FBMkM7SUFDM0MsZ0RBQWdEO0lBQ2hELHNEQUFzRDtJQUN0RCwyQkFBMkI7SUFDM0IsbUNBQW1DO0lBQ25DLG1FQUFtRTtJQUNuRSwwR0FBMEc7SUFDMUcsbUNBQW1DO0lBQ25DLG9EQUFvRDtJQUNwRCx1RkFBdUY7SUFDdkYsaUNBQWlDO0lBQ2pDLG9CQUFvQjtJQUNwQixnQ0FBZ0M7SUFDaEMsZ0RBQWdEO0lBQ2hELDhCQUE4QjtJQUM5QixlQUFlO0lBQ2YsYUFBYTtJQUNiLG9DQUFvQztJQUNwQyxRQUFRO0lBQ1IsNkJBQTZCO0lBQzdCLGtDQUFrQztJQUNsQyxnR0FBZ0c7SUFDaEcsUUFBUTtJQUNSLElBQUk7SUFDSixRQUFRO1FBQ04sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUMsT0FBTyxDQUFDO0lBQ3RELENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxNQUFNO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUMsSUFBSSxDQUFDLE9BQU8sR0FBQyxDQUFDLENBQUE7UUFDM0IsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDNUQsSUFBSSxNQUFNLElBQUksU0FBUyxJQUFJLE1BQU0sSUFBSSxFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztZQUNuRCxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLFlBQVksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFNUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFOUYsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLE9BQU8sR0FBRSxRQUFRLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFFakUsSUFBRyxPQUFPLElBQUUsTUFBTSxJQUFJLE9BQU8sSUFBRSxFQUFFLEVBQUM7WUFDakMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFDLE9BQU8sQ0FBQztTQUM1RDthQUFJO1lBQ0osUUFBUSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFDLE1BQU0sQ0FBQztTQUMzRDtJQUNGLENBQUM7SUFFRixNQUFNO1FBQ0osSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxRQUFRLENBQUE7UUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxRQUFRLENBQUM7UUFDakMsNkRBQTZEO1FBQzdELElBQUksT0FBTyxHQUFHO1lBQ1osTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1NBQzlCLENBQUE7UUFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDckQsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLFNBQVMsRUFBRTtnQkFDaEMsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDMUIsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDL0IsWUFBWSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDckMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDbEMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDbEMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDcEMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDakMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3JDLFlBQVksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDM0MsWUFBWSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFFekMsbURBQW1EO2dCQUVuRCxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMzRSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMxRSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNyRSxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN4RSxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM3RSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMxRSxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMvRSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQzthQUM3QztpQkFBTTtnQkFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRXRELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBRTNCLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixXQUFXLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDOUIsY0FBYyxFQUFFLGtCQUFrQjtZQUNsQyxXQUFXLEVBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQy9CLElBQUksRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNoQyxRQUFRLEVBQUUsa0NBQWtDO1lBQzVDLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztJQUNKLENBQUM7OytIQWhMVSxlQUFlO21IQUFmLGVBQWUsdUZDaEI1QiwrNERBc0RLOzJGRHRDUSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFlBQVk7NFJBaUNaLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29va2llIH0gZnJvbSAnbmcyLWNvb2tpZXMvbmcyLWNvb2tpZXMnO1xyXG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE5neFNwaW5uZXJTZXJ2aWNlIH0gZnJvbSBcIm5neC1zcGlubmVyXCI7XHJcbmltcG9ydCB7IEdsb2JsZUVudlNlcnZpY2UgfSBmcm9tICcuLi9nbG9ibGUvZ2xvYmxlLWVudi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbWFuU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9jb21tYW4tc2VydmljZS9jb21tYW4tc2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMgIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBTaGFyZURhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbWFuLXNlcnZpY2Uvc2hhcmUtZGF0YS1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdG9ja1NlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vc3RvY2stc2VydmljZS9zdG9jay1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtaGVhZGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9oZWFkZXIuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZSxcclxuICAgIHByaXZhdGUgc3Bpbm5lclNlcnZpY2U6IE5neFNwaW5uZXJTZXJ2aWNlICxcclxuICAgIHB1YmxpYyBnbG9ibEVudjogR2xvYmxlRW52U2VydmljZSxcclxuICAgIHByaXZhdGUgY3M6IENvbW1hblNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2hkYXRhOiBTaGFyZURhdGFTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzczogU3RvY2tTZXJ2aWNlU2VydmljZSxcclxuICApIHsgfVxyXG5cclxuICBjRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgLy8gZHMgPSBDb29raWUuZ2V0KCdfZHMnKTtcclxuICBkcyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdEUycpXHJcbiAgdVVzciA9IENvb2tpZS5nZXQoJ191c2VybmFtZScpO1xyXG4gIGxvZ0R0bDtcclxuICB1bmFtZTtcclxuICBxa1NjaDtcclxuICBzY2hJZDtcclxuICBzdHRzQTtcclxuICBoZWFkZXI7XHJcbiAgY291bnQ7XHJcbiAgbnRTY2g6IGJvb2xlYW47XHJcbiAgc3JjaENudD0wO1xyXG4gIGNudCA9IDA7XHJcbiAgZmVlZGJhY2tDb21tZW50ID0gJyc7XHJcbiAgaXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgY2hlY2tTdGF0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGZsYWcgPSBmYWxzZTtcclxuXHJcbiAgdG9nZ2xlKCkge1xyXG4gICAgdGhpcy5mbGFnID0gIXRoaXMuZmxhZztcclxuICAgIHRoaXMuY2hlY2tTdGF0LmVtaXQodGhpcy5mbGFnKTtcclxuICB9XHJcblxyXG4gIGNsaWNrRmlsdGVyKGtjKSB7XHJcbiAgXHJcbiAgICBpZiAoa2Mud2hpY2ggPT0gMTMpIHtcclxuICAgICAgLy8gdGhpcy5nZXRTcmNoQ291bnQodGhpcy5xa1NjaCk7XHJcbiAgICAgIHRoaXMucGFja2V0TG9va3VwU3JjQ291bnQodGhpcy5xa1NjaCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gZ2V0U3JjaENvdW50KGZnbHN0cikge1xyXG4gIC8vICAgbGV0IGxvZ0R0bCA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Jlc3JlcXBhcmEnKSk7XHJcbiAgLy8gICBpZiAoZmdsc3RyID09IHVuZGVmaW5lZCB8fCBmZ2xzdHIgPT0gJycpIHtcclxuICAvLyAgICAgdGhpcy5mbGFzaE1lc3NhZ2VzU2VydmljZS5zaG93KCdQbGVhc2UgZW50ZXIgU2VhcmNoIFBhcmFtZXRlcicsIHsgY3NzQ2xhc3M6ICdhbGVydC1kYW5nZXInLCB0aW1lb3V0OiAzMDAwIH0pO1xyXG4gIC8vICAgICByZXR1cm47XHJcbiAgLy8gICB9XHJcbiAgLy8gICB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coKTtcclxuICAvLyAgIGxldCByZXFPYmogPSB7fTtcclxuICAvLyAgIHJlcU9ialsnZm9ybU5tZSddID0gJ3dlYlN0b2NrU2VhcmNoRm9ybSc7XHJcbiAgLy8gICAvLyByZXFPYmpbJ2VtcElkbiddID0gbG9nRHRsLmVtcGlkOy8vXHJcbiAgLy8gICAvLyByZXFPYmpbJ2J1eWVySWRuJ10gPSBsb2dEdGwuYnV5ZXJpZDsvL1xyXG4gIC8vICAgLy8gcmVxT2JqWydidXllcl90ZXJtc19pZG4nXSA9IGxvZ0R0bC50cm1pZDsvL1xyXG4gIC8vICAgcmVxT2JqWydmb29nbGVTdHInXSA9IGZnbHN0cjtcclxuICAvLyAgIHJlcU9ialsnc2VhcmNoSWRuJ10gPSB0aGlzLnNjaElkID09IG51bGwgPyAnJyA6IHRoaXMuc2NoSWQ7XHJcbiAgLy8gICAvL3JlcU9ialsnc3RhdHVzTGlzdCddID1bJ01LQVYnXTsgLy90aGlzLnN0dHNBLnZhbHVlLnNwbGl0KFwiLFwiKTtcclxuICAvLyAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdzZWFyY2hDb3VudCc7XHJcbiAgLy8gICBsZXQgb3B0aW9ucyA9ICh7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcikgfSk7XHJcbiAgLy8gICB0aGlzLnNzLmxvYWQocmVxT2JqLCBvcHRpb25zLCAnbWFya2V0aW5nL3NlYXJjaCcpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAvLyAgICAgaWYgKHJlc3BvbnNlLm1lc3NhZ2UgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgLy8gICAgICAgdGhpcy5zY2hJZCA9IHJlc3BvbnNlLnJlc3VsdC5zZWFyY2hJZG47XHJcbiAgLy8gICAgICAgdGhpcy5jb3VudCA9IHBhcnNlSW50KHJlc3BvbnNlLnJlc3VsdC5jb3VudCk7XHJcbiAgLy8gICAgICAgbGV0IHNyY2hpZG5zID0gW107XHJcbiAgLy8gICAgICAgc3JjaGlkbnMucHVzaCh0aGlzLnNjaElkKTtcclxuICAvLyAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc3JjSWRucycsIEpTT04uc3RyaW5naWZ5KHNyY2hpZG5zKSk7XHJcbiAgLy8gICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvc29saXRhaXJlcy9yZXN1bHQvc3RvY2tSZXN1bHRGb3JtJ10pOy8vdGhpcy5zY2hJZC8vcGFzcyBzZWFyY2ggaWQgaW4gYXJyeVxyXG4gIC8vICAgICAgIC8vIGlmICh0aGlzLmNvdW50IDwgNTAwKSB7XHJcbiAgLy8gICAgICAgLy8gICB0aGlzLl9zaGRhdGEuZmlsdGVyKCdSZWdpc3RlciBjbGljaycpO1xyXG4gIC8vICAgICAgIC8vICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvc29saXRhaXJlcy9yZXN1bHQvc3RvY2tSZXN1bHRGb3JtJywgdGhpcy5zY2hJZF0pO1xyXG4gIC8vICAgICAgIC8vICAgdGhpcy5udFNjaCA9IGZhbHNlO1xyXG4gIC8vICAgICAgIC8vIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgLy8gICB0aGlzLm50U2NoID0gdHJ1ZTtcclxuICAvLyAgICAgICAvLyAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ0xPR09VVCcpIHtcclxuICAvLyAgICAgICAvLyAgICAgdGhpcy5sb2dvdXQoKTtcclxuICAvLyAgICAgICAvLyAgIH1cclxuICAvLyAgICAgICAvLyB9XHJcbiAgLy8gICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gIC8vICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAvLyAgICAgdGhpcy5mbGFzaE1lc3NhZ2VzU2VydmljZS5zaG93KGVyci5tZXNzYWdlLCB7IGNzc0NsYXNzOiAnYWxlcnQtZGFuZ2VyJywgdGltZW91dDogMzAwMCB9KTtcclxuICAvLyAgIH0pO1xyXG4gIC8vIH1cclxuICBiYWNrSG9tZSgpe1xyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLmdsb2JsRW52Lm9yaWdpbitcIiNob21lXCI7XHJcbiAgfVxyXG5cclxuICBwYWNrZXRMb29rdXBTcmNDb3VudChmZ2xzdHIpIHtcclxuICAgIHRoaXMuc3JjaENudD10aGlzLnNyY2hDbnQrMVxyXG4gICAgbGV0IGxvZ0R0bCA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Jlc3JlcXBhcmEnKSk7XHJcbiAgICBpZiAoZmdsc3RyID09IHVuZGVmaW5lZCB8fCBmZ2xzdHIgPT0gJycpIHtcclxuICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ1BsZWFzZSBlbnRlciBTZWFyY2ggUGFyYW1ldGVyJyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gICBsZXQgcj0gIHRoaXMuY3MuZm9ybWF0ZVN0cihmZ2xzdHIpO1xyXG4gIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdwYWNrZXRMb29rdXBTdHInLCByKTtcclxuICAgXHJcbiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3NvbGl0YWlyZXMvcGFja2V0LWxvb2t1cC9ZJ10sIHsgcXVlcnlQYXJhbXM6IHsgc2NoSWQ6IHRoaXMuc3JjaENudCB9IH0pO1xyXG4gICAgICBcclxuICB9XHJcblxyXG4gIGxvZ091dEJveCgpe1xyXG4gICAgdmFyIGRpc3BsYXk9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYi1zaWdub3V0Jykuc3R5bGUuZGlzcGxheTtcclxuICAgICBcclxuICAgIGlmKGRpc3BsYXk9PSdub25lJyB8fCBkaXNwbGF5PT0nJyl7XHJcbiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21iLXNpZ25vdXQnKS5zdHlsZS5kaXNwbGF5PSdibG9jayc7XHJcbiAgICB9ZWxzZXtcclxuICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWItc2lnbm91dCcpLnN0eWxlLmRpc3BsYXk9J25vbmUnO1xyXG4gICAgfVxyXG4gICB9XHJcblxyXG4gIGxvZ291dCgpIHtcclxuICAgIGxldCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialsnZm9ybU5tZSddID0gJ0xvZ291dCdcclxuICAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdsb2dPdXQnO1xyXG4gICAgLy8gbGV0IG9wdGlvbnMgPSAoeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXIpIH0pO1xyXG4gICAgbGV0IG9wdGlvbnMgPSB7XHJcbiAgICAgIG1ldGhvZDogdGhpcy5oZWFkZXJbJ21ldGhvZCddIFxyXG4gICAgfVxyXG4gICAgdGhpcy5jcy5sb2dvdXQocmVxT2JqLCBvcHRpb25zKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgICAgICAgbGV0IGRzID0gQ29va2llLmdldCgnX2RzJyk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX3VzZXJuYW1lJyk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2xvZ3RpbWUnKTtcclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfY2snKTtcclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfbG9naWQnKTtcclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfYWNjQ29tcGFueScpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ19hY2N5ZWFyJyk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ09UUCcpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdjbGllbnRLZXknKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnbG9nSWRuJyk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ21kbEtleScpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCd1c2VybmFtZScpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdzZWxNZCcpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjaGcnLCAnZmFsc2UnKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgndHJhbnNhY3Rpb25JbmZvJyk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ0F1dGhvcml6YXRpb24nKTtcclxuXHJcbiAgICAgICAgLy8gd2luZG93LmxvY2F0aW9uLmhyZWYgPSBcImh0dHA6Ly9sb2NhbGhvc3Q6NDIwMC9cIjtcclxuXHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX3VzZXJuYW1lJywgdGhpcy5nbG9ibEVudi5wYXRobmFtZSwgdGhpcy5nbG9ibEVudi5ob3N0bmFtZSk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2xvZ3RpbWUnLCB0aGlzLmdsb2JsRW52LnBhdGhuYW1lLCB0aGlzLmdsb2JsRW52Lmhvc3RuYW1lKTtcclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfY2snLCB0aGlzLmdsb2JsRW52LnBhdGhuYW1lLCB0aGlzLmdsb2JsRW52Lmhvc3RuYW1lKTtcclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfbG9naWQnLCB0aGlzLmdsb2JsRW52LnBhdGhuYW1lLCB0aGlzLmdsb2JsRW52Lmhvc3RuYW1lKTtcclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfYWNjQ29tcGFueScsIHRoaXMuZ2xvYmxFbnYucGF0aG5hbWUsIHRoaXMuZ2xvYmxFbnYuaG9zdG5hbWUpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ19hY2N5ZWFyJywgdGhpcy5nbG9ibEVudi5wYXRobmFtZSwgdGhpcy5nbG9ibEVudi5ob3N0bmFtZSk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnQXV0aG9yaXphdGlvbicsIHRoaXMuZ2xvYmxFbnYucGF0aG5hbWUsIHRoaXMuZ2xvYmxFbnYuaG9zdG5hbWUpO1xyXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5nbG9ibEVudi5vcmlnaW47XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IocmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnRvYXN0ci5lcnJvcihlcnIubWVzc2FnZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgbGV0IG1kbGsgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtZGxLZXknKSk7XHJcblxyXG4gICAgbGV0IGNVcmwgPSB0aGlzLnJvdXRlci51cmw7XHJcblxyXG4gICAgdGhpcy5oZWFkZXIgPSB7XHJcbiAgICAgICdjbGllbnRrZXknOiBDb29raWUuZ2V0KCdfY2snKSxcclxuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgJ21vZHVsZWtleSc6ICBtZGxrW2NVcmwuc3BsaXQoJy8nKVsxXV0sXHJcbiAgICAgICdsb2dpbmlkJzogQ29va2llLmdldCgnX2xvZ2lkJyksXHJcbiAgICAgICdkcyc6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdEUycpLFxyXG4gICAgICAnYXBwa2V5JzogJ085MVlLKkR3JGtFN2ROcGNWbUdMdkx4V01KMEMwMGVPJyxcclxuICAgICAgJ3NvdXJjZSc6ICdxcydcclxuICAgIH07XHJcbiAgfVxyXG5cclxufVxyXG4iLCJcclxuPHVsIGNsYXNzPVwieC1uYXZpZ2F0aW9uIHgtbmF2aWdhdGlvbi1ob3Jpem9udGFsIHgtbmF2aWdhdGlvbi1wYW5lbFwiPlxyXG4gIDxsaSBjbGFzcz1cInhuLWljb24tYnV0dG9uXCI+XHJcbiAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJ4LW5hdmlnYXRpb24tbWluaW1pemVcIiBpZD1cInRnXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZmEgZmEtZGVkZW50XCI+PC9zcGFuPlxyXG4gICAgPC9hPlxyXG4gIDwvbGk+XHJcbiAgPGxpIHN0eWxlPVwibWFyZ2luOiAxMHB4O1wiID5cclxuICBcclxuXHJcbiAgICA8Zm9ybSBjbGFzcz1cImZvcm0taW5saW5lIG15LTJcIj5cclxuICAgXHJcbiAgICAgICAgPHRleHRhcmVhIHN0eWxlPVwid2hpdGUtc3BhY2U6IHByZTtcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwiU1RPTkUgSUQvIFJGIElEIHNlYXJjaFwiIFxyXG4gICAgICAgIFsobmdNb2RlbCldPVwicWtTY2hcIiAgaWQ9XCJmb2dnbGVcIiAgbmFtZT1cImZvb2dsZVwiIGNvbHM9XCI0NVwiIHJvd3M9XCIxXCIgID48L3RleHRhcmVhPlxyXG5cclxuXHJcblxyXG4gICAgICA8c3BhbiBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgXHJcbiAgICAgICAgdG9wOiAtMnB4O1xyXG4gICAgICAgIHJpZ2h0OiAyOHB4O1xyXG4gICAgICAgIGNvbG9yOiByZ2IoMTUwLCAxNDQsIDE0NCk7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgei1pbmRleDogNjtcclxuICAgICAgICB3aWR0aDogMzVweDtcclxuICAgICAgICBoZWlnaHQ6IDM2cHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDM0cHg7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIC8qIHBvaW50ZXItZXZlbnRzOiBub25lOyAqL1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTdweDtcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiIChjbGljayk9XCJwYWNrZXRMb29rdXBTcmNDb3VudChxa1NjaCk7XCI+PC9pPlxyXG5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImhlbHBjIG1yLXNtLTJcIiBkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIiBkYXRhLXBsYWNlbWVudD1cImJvdHRvbVwiIHRpdGxlPVwiU1RPTkUgLyBDRVJUIE5PIC8gR0lBIFJEIDEuMjAtMS4zMCBGIFZTMSAzRVggTlwiPjxpXHJcbiAgICAgICAgICBjbGFzcz1cImZhIGZhLWluZm9cIj48L2k+PC9zcGFuPlxyXG4gICAgIFxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbGk+XHJcbiBcclxuICA8bGkgY2xhc3M9XCJ4bi1pY29uLWJ1dHRvbiBwdWxsLXJpZ2h0XCI+XHJcbiAgICA8YSAoY2xpY2spPVwibG9nT3V0Qm94KClcIiBjbGFzcz1cIm1iLWNvbnRyb2xcIiBkYXRhLWJveD1cIiNtYi1zaWdub3V0XCI+XHJcbiAgICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAxOHB4XCIgY2xhc3M9XCJmYSBmYS1zaWduLW91dFwiPjwvc3Bhbj5cclxuICAgIDwvYT5cclxuICAgXHJcbiAgIFxyXG4gIDwvbGk+XHJcbiAgPGxpIGNsYXNzPVwieG4taWNvbi1idXR0b24gcHVsbC1yaWdodFwiPlxyXG4gICAgICA8YSAoY2xpY2spPVwiYmFja0hvbWUoKVwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCIgY2xhc3M9XCJtYi1jb250cm9sXCI+XHJcbiAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDE4cHhcIiBjbGFzcz1cImZhIGZhLWhvbWVcIj48L3NwYW4+XHJcbiAgICAgIDwvYT5cclxuICAgIDwvbGk+XHJcbiAgPGxpIGNsYXNzPVwieG4taWNvbi1idXR0b24gcHVsbC1yaWdodFwiPlxyXG4gICAgPGxhYmVsIGNsYXNzPVwidWRcIj5XZWxjb21lIDxzcGFuIGNsYXNzPVwidGV4dC1jYXBpdGFsaXplXCI+e3t1VXNyICsnIHwnfX08L3NwYW4+IHt7ZHN9fSA8L2xhYmVsPlxyXG4gIDwvbGk+XHJcbiAgXHJcbjwvdWw+Il19
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V6bGliL3NyYy9saWIvaGVhZGVyL2hlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lemxpYi9zcmMvbGliL2hlYWRlci9oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7Ozs7QUFPN0UsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFDVSxNQUFjLEVBQ2QsTUFBcUIsRUFDckIsY0FBaUMsRUFDbEMsUUFBMEIsRUFDekIsRUFBd0IsRUFDeEIsT0FBeUIsRUFDekIsRUFBdUI7UUFOdkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBQ3pCLE9BQUUsR0FBRixFQUFFLENBQXNCO1FBQ3hCLFlBQU8s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QUUsa0JBQWtCO1lBQ2xDLFdBQVcsRUFBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QyxTQUFTLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDL0IsSUFBSSxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2hDLFFBQVEsRUFBRSxrQ0FBa0M7WUFDNUMsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO0lBQ0osQ0FBQzs7K0hBbExVLGVBQWU7bUhBQWYsZUFBZSx1RkNoQjVCLCs0REFzREs7MkZEdENRLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsWUFBWTs0UkFpQ1osU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb29raWUgfSBmcm9tICduZzItY29va2llcy9uZzItY29va2llcyc7XHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTmd4U3Bpbm5lclNlcnZpY2UgfSBmcm9tIFwibmd4LXNwaW5uZXJcIjtcclxuaW1wb3J0IHsgR2xvYmxlRW52U2VydmljZSB9IGZyb20gJy4uL2dsb2JsZS9nbG9ibGUtZW52LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tYW5TZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uL2NvbW1hbi1zZXJ2aWNlL2NvbW1hbi1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdHRwSGVhZGVycyAgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFNoYXJlRGF0YVNlcnZpY2UgfSBmcm9tICcuLi9jb21tYW4tc2VydmljZS9zaGFyZS1kYXRhLXNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFN0b2NrU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9zdG9jay1zZXJ2aWNlL3N0b2NrLXNlcnZpY2Uuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1oZWFkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzcGlubmVyU2VydmljZTogTmd4U3Bpbm5lclNlcnZpY2UgLFxyXG4gICAgcHVibGljIGdsb2JsRW52OiBHbG9ibGVFbnZTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjczogQ29tbWFuU2VydmljZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zaGRhdGE6IFNoYXJlRGF0YVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNzOiBTdG9ja1NlcnZpY2VTZXJ2aWNlLFxyXG4gICkgeyB9XHJcblxyXG4gIGNEYXRlID0gbmV3IERhdGUoKTtcclxuICAvLyBkcyA9IENvb2tpZS5nZXQoJ19kcycpO1xyXG4gIGRzID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ0RTJylcclxuICB1VXNyID0gQ29va2llLmdldCgnX3VzZXJuYW1lJyk7XHJcbiAgbG9nRHRsO1xyXG4gIHVuYW1lO1xyXG4gIHFrU2NoO1xyXG4gIHNjaElkO1xyXG4gIHN0dHNBO1xyXG4gIGhlYWRlcjtcclxuICBjb3VudDtcclxuICBudFNjaDogYm9vbGVhbjtcclxuICBzcmNoQ250PTA7XHJcbiAgY250ID0gMDtcclxuICBmZWVkYmFja0NvbW1lbnQgPSAnJztcclxuICBpc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSBjaGVja1N0YXQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgZmxhZyA9IGZhbHNlO1xyXG5cclxuICB0b2dnbGUoKSB7XHJcbiAgICB0aGlzLmZsYWcgPSAhdGhpcy5mbGFnO1xyXG4gICAgdGhpcy5jaGVja1N0YXQuZW1pdCh0aGlzLmZsYWcpO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tGaWx0ZXIoa2MpIHtcclxuICBcclxuICAgIGlmIChrYy53aGljaCA9PSAxMykge1xyXG4gICAgICAvLyB0aGlzLmdldFNyY2hDb3VudCh0aGlzLnFrU2NoKTtcclxuICAgICAgdGhpcy5wYWNrZXRMb29rdXBTcmNDb3VudCh0aGlzLnFrU2NoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBnZXRTcmNoQ291bnQoZmdsc3RyKSB7XHJcbiAgLy8gICBsZXQgbG9nRHRsID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncmVzcmVxcGFyYScpKTtcclxuICAvLyAgIGlmIChmZ2xzdHIgPT0gdW5kZWZpbmVkIHx8IGZnbHN0ciA9PSAnJykge1xyXG4gIC8vICAgICB0aGlzLmZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3coJ1BsZWFzZSBlbnRlciBTZWFyY2ggUGFyYW1ldGVyJywgeyBjc3NDbGFzczogJ2FsZXJ0LWRhbmdlcicsIHRpbWVvdXQ6IDMwMDAgfSk7XHJcbiAgLy8gICAgIHJldHVybjtcclxuICAvLyAgIH1cclxuICAvLyAgIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gIC8vICAgbGV0IHJlcU9iaiA9IHt9O1xyXG4gIC8vICAgcmVxT2JqWydmb3JtTm1lJ10gPSAnd2ViU3RvY2tTZWFyY2hGb3JtJztcclxuICAvLyAgIC8vIHJlcU9ialsnZW1wSWRuJ10gPSBsb2dEdGwuZW1waWQ7Ly9cclxuICAvLyAgIC8vIHJlcU9ialsnYnV5ZXJJZG4nXSA9IGxvZ0R0bC5idXllcmlkOy8vXHJcbiAgLy8gICAvLyByZXFPYmpbJ2J1eWVyX3Rlcm1zX2lkbiddID0gbG9nRHRsLnRybWlkOy8vXHJcbiAgLy8gICByZXFPYmpbJ2Zvb2dsZVN0ciddID0gZmdsc3RyO1xyXG4gIC8vICAgcmVxT2JqWydzZWFyY2hJZG4nXSA9IHRoaXMuc2NoSWQgPT0gbnVsbCA/ICcnIDogdGhpcy5zY2hJZDtcclxuICAvLyAgIC8vcmVxT2JqWydzdGF0dXNMaXN0J10gPVsnTUtBViddOyAvL3RoaXMuc3R0c0EudmFsdWUuc3BsaXQoXCIsXCIpO1xyXG4gIC8vICAgdGhpcy5oZWFkZXJbJ21ldGhvZCddID0gJ3NlYXJjaENvdW50JztcclxuICAvLyAgIGxldCBvcHRpb25zID0gKHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVyKSB9KTtcclxuICAvLyAgIHRoaXMuc3MubG9hZChyZXFPYmosIG9wdGlvbnMsICdtYXJrZXRpbmcvc2VhcmNoJykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gIC8vICAgICBpZiAocmVzcG9uc2UubWVzc2FnZSA9PSAnU1VDQ0VTUycpIHtcclxuICAvLyAgICAgICB0aGlzLnNjaElkID0gcmVzcG9uc2UucmVzdWx0LnNlYXJjaElkbjtcclxuICAvLyAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VJbnQocmVzcG9uc2UucmVzdWx0LmNvdW50KTtcclxuICAvLyAgICAgICBsZXQgc3JjaGlkbnMgPSBbXTtcclxuICAvLyAgICAgICBzcmNoaWRucy5wdXNoKHRoaXMuc2NoSWQpO1xyXG4gIC8vICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzcmNJZG5zJywgSlNPTi5zdHJpbmdpZnkoc3JjaGlkbnMpKTtcclxuICAvLyAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9zb2xpdGFpcmVzL3Jlc3VsdC9zdG9ja1Jlc3VsdEZvcm0nXSk7Ly90aGlzLnNjaElkLy9wYXNzIHNlYXJjaCBpZCBpbiBhcnJ5XHJcbiAgLy8gICAgICAgLy8gaWYgKHRoaXMuY291bnQgPCA1MDApIHtcclxuICAvLyAgICAgICAvLyAgIHRoaXMuX3NoZGF0YS5maWx0ZXIoJ1JlZ2lzdGVyIGNsaWNrJyk7XHJcbiAgLy8gICAgICAgLy8gICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9zb2xpdGFpcmVzL3Jlc3VsdC9zdG9ja1Jlc3VsdEZvcm0nLCB0aGlzLnNjaElkXSk7XHJcbiAgLy8gICAgICAgLy8gICB0aGlzLm50U2NoID0gZmFsc2U7XHJcbiAgLy8gICAgICAgLy8gfSBlbHNlIHtcclxuICAvLyAgICAgICAvLyAgIHRoaXMubnRTY2ggPSB0cnVlO1xyXG4gIC8vICAgICAgIC8vICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnTE9HT1VUJykge1xyXG4gIC8vICAgICAgIC8vICAgICB0aGlzLmxvZ291dCgpO1xyXG4gIC8vICAgICAgIC8vICAgfVxyXG4gIC8vICAgICAgIC8vIH1cclxuICAvLyAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgLy8gICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gIC8vICAgICB0aGlzLmZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3coZXJyLm1lc3NhZ2UsIHsgY3NzQ2xhc3M6ICdhbGVydC1kYW5nZXInLCB0aW1lb3V0OiAzMDAwIH0pO1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gfVxyXG4gIGJhY2tIb21lKCl7XHJcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMuZ2xvYmxFbnYub3JpZ2luK1wiI2hvbWVcIjtcclxuICB9XHJcblxyXG4gIHBhY2tldExvb2t1cFNyY0NvdW50KGZnbHN0cikge1xyXG4gICAgdGhpcy5zcmNoQ250PXRoaXMuc3JjaENudCsxXHJcbiAgICBsZXQgbG9nRHRsID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncmVzcmVxcGFyYScpKTtcclxuICAgIGlmIChmZ2xzdHIgPT0gdW5kZWZpbmVkIHx8IGZnbHN0ciA9PSAnJykge1xyXG4gICAgICB0aGlzLnRvYXN0ci5lcnJvcignUGxlYXNlIGVudGVyIFNlYXJjaCBQYXJhbWV0ZXInKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICAgLy8gc2FtZSBhdHRyaWJ1dGUgbXVsdGlwYWxlIHZhbHVlIGFjY2VzcyBrZSBsaXllIGNvbWEgc2VwcmF0ZSByZW1vdmUgKDIzLTA5LTIwMjUpXHJcbiAgICAgbGV0IHIgPSBmZ2xzdHIgPT0gbnVsbCA/ICcnIDogZmdsc3RyLnRyaW0oKTtcclxuICAvLyAgbGV0IHI9ICB0aGlzLmNzLmZvcm1hdGVTdHIoZmdsc3RyKTtcclxuICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncGFja2V0TG9va3VwU3RyJywgcik7XHJcbiAgIFxyXG4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydzb2xpdGFpcmVzL3BhY2tldC1sb29rdXAvWSddLCB7IHF1ZXJ5UGFyYW1zOiB7IHNjaElkOiB0aGlzLnNyY2hDbnQgfSB9KTtcclxuICAgICAgXHJcbiAgfVxyXG5cclxuICBsb2dPdXRCb3goKXtcclxuICAgIHZhciBkaXNwbGF5PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWItc2lnbm91dCcpLnN0eWxlLmRpc3BsYXk7XHJcbiAgICAgXHJcbiAgICBpZihkaXNwbGF5PT0nbm9uZScgfHwgZGlzcGxheT09Jycpe1xyXG4gICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYi1zaWdub3V0Jykuc3R5bGUuZGlzcGxheT0nYmxvY2snO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21iLXNpZ25vdXQnKS5zdHlsZS5kaXNwbGF5PSdub25lJztcclxuICAgIH1cclxuICAgfVxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICBsZXQgcmVxT2JqID0ge307XHJcbiAgICByZXFPYmpbJ2Zvcm1ObWUnXSA9ICdMb2dvdXQnXHJcbiAgICB0aGlzLmhlYWRlclsnbWV0aG9kJ10gPSAnbG9nT3V0JztcclxuICAgIC8vIGxldCBvcHRpb25zID0gKHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVyKSB9KTtcclxuICAgIGxldCBvcHRpb25zID0ge1xyXG4gICAgICBtZXRob2Q6IHRoaXMuaGVhZGVyWydtZXRob2QnXSBcclxuICAgIH1cclxuICAgIHRoaXMuY3MubG9nb3V0KHJlcU9iaiwgb3B0aW9ucykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09ICdTVUNDRVNTJykge1xyXG4gICAgICAgIGxldCBkcyA9IENvb2tpZS5nZXQoJ19kcycpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ191c2VybmFtZScpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ19sb2d0aW1lJyk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2NrJyk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2xvZ2lkJyk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2FjY0NvbXBhbnknKTtcclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfYWNjeWVhcicpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdPVFAnKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnY2xpZW50S2V5Jyk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2xvZ0lkbicpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdtZGxLZXknKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgndXNlcm5hbWUnKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc2VsTWQnKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY2hnJywgJ2ZhbHNlJyk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3RyYW5zYWN0aW9uSW5mbycpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdBdXRob3JpemF0aW9uJyk7XHJcblxyXG4gICAgICAgIC8vIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gXCJodHRwOi8vbG9jYWxob3N0OjQyMDAvXCI7XHJcblxyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ191c2VybmFtZScsIHRoaXMuZ2xvYmxFbnYucGF0aG5hbWUsIHRoaXMuZ2xvYmxFbnYuaG9zdG5hbWUpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ19sb2d0aW1lJywgdGhpcy5nbG9ibEVudi5wYXRobmFtZSwgdGhpcy5nbG9ibEVudi5ob3N0bmFtZSk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2NrJywgdGhpcy5nbG9ibEVudi5wYXRobmFtZSwgdGhpcy5nbG9ibEVudi5ob3N0bmFtZSk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2xvZ2lkJywgdGhpcy5nbG9ibEVudi5wYXRobmFtZSwgdGhpcy5nbG9ibEVudi5ob3N0bmFtZSk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2FjY0NvbXBhbnknLCB0aGlzLmdsb2JsRW52LnBhdGhuYW1lLCB0aGlzLmdsb2JsRW52Lmhvc3RuYW1lKTtcclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfYWNjeWVhcicsIHRoaXMuZ2xvYmxFbnYucGF0aG5hbWUsIHRoaXMuZ2xvYmxFbnYuaG9zdG5hbWUpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmdsb2JsRW52LnBhdGhuYW1lLCB0aGlzLmdsb2JsRW52Lmhvc3RuYW1lKTtcclxuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMuZ2xvYmxFbnYub3JpZ2luO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudG9hc3RyLmVycm9yKHJlc3BvbnNlLm1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9KS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy50b2FzdHIuZXJyb3IoZXJyLm1lc3NhZ2UpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGxldCBtZGxrID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbWRsS2V5JykpO1xyXG5cclxuICAgIGxldCBjVXJsID0gdGhpcy5yb3V0ZXIudXJsO1xyXG5cclxuICAgIHRoaXMuaGVhZGVyID0ge1xyXG4gICAgICAnY2xpZW50a2V5JzogQ29va2llLmdldCgnX2NrJyksXHJcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICdtb2R1bGVrZXknOiAgbWRsa1tjVXJsLnNwbGl0KCcvJylbMV1dLFxyXG4gICAgICAnbG9naW5pZCc6IENvb2tpZS5nZXQoJ19sb2dpZCcpLFxyXG4gICAgICAnZHMnOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnRFMnKSxcclxuICAgICAgJ2FwcGtleSc6ICdPOTFZSypEdyRrRTdkTnBjVm1HTHZMeFdNSjBDMDBlTycsXHJcbiAgICAgICdzb3VyY2UnOiAncXMnXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbn1cclxuIiwiXHJcbjx1bCBjbGFzcz1cIngtbmF2aWdhdGlvbiB4LW5hdmlnYXRpb24taG9yaXpvbnRhbCB4LW5hdmlnYXRpb24tcGFuZWxcIj5cclxuICA8bGkgY2xhc3M9XCJ4bi1pY29uLWJ1dHRvblwiPlxyXG4gICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIGNsYXNzPVwieC1uYXZpZ2F0aW9uLW1pbmltaXplXCIgaWQ9XCJ0Z1wiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImZhIGZhLWRlZGVudFwiPjwvc3Bhbj5cclxuICAgIDwvYT5cclxuICA8L2xpPlxyXG4gIDxsaSBzdHlsZT1cIm1hcmdpbjogMTBweDtcIiA+XHJcbiAgXHJcblxyXG4gICAgPGZvcm0gY2xhc3M9XCJmb3JtLWlubGluZSBteS0yXCI+XHJcbiAgIFxyXG4gICAgICAgIDx0ZXh0YXJlYSBzdHlsZT1cIndoaXRlLXNwYWNlOiBwcmU7XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cIlNUT05FIElELyBSRiBJRCBzZWFyY2hcIiBcclxuICAgICAgICBbKG5nTW9kZWwpXT1cInFrU2NoXCIgIGlkPVwiZm9nZ2xlXCIgIG5hbWU9XCJmb29nbGVcIiBjb2xzPVwiNDVcIiByb3dzPVwiMVwiICA+PC90ZXh0YXJlYT5cclxuXHJcblxyXG5cclxuICAgICAgPHNwYW4gc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IFxyXG4gICAgICAgIHRvcDogLTJweDtcclxuICAgICAgICByaWdodDogMjhweDtcclxuICAgICAgICBjb2xvcjogcmdiKDE1MCwgMTQ0LCAxNDQpO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xyXG4gICAgICAgIHotaW5kZXg6IDY7XHJcbiAgICAgICAgd2lkdGg6IDM1cHg7XHJcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzNHB4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAvKiBwb2ludGVyLWV2ZW50czogbm9uZTsgKi9cclxuICAgICAgICBmb250LXNpemU6IDE3cHg7XCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2hcIiAoY2xpY2spPVwicGFja2V0TG9va3VwU3JjQ291bnQocWtTY2gpO1wiPjwvaT5cclxuXHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJoZWxwYyBtci1zbS0yXCIgZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgZGF0YS1wbGFjZW1lbnQ9XCJib3R0b21cIiB0aXRsZT1cIlNUT05FIC8gQ0VSVCBOTyAvIEdJQSBSRCAxLjIwLTEuMzAgRiBWUzEgM0VYIE5cIj48aVxyXG4gICAgICAgICAgY2xhc3M9XCJmYSBmYS1pbmZvXCI+PC9pPjwvc3Bhbj5cclxuICAgICBcclxuICAgIDwvZm9ybT5cclxuICA8L2xpPlxyXG4gXHJcbiAgPGxpIGNsYXNzPVwieG4taWNvbi1idXR0b24gcHVsbC1yaWdodFwiPlxyXG4gICAgPGEgKGNsaWNrKT1cImxvZ091dEJveCgpXCIgY2xhc3M9XCJtYi1jb250cm9sXCIgZGF0YS1ib3g9XCIjbWItc2lnbm91dFwiPlxyXG4gICAgICA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMThweFwiIGNsYXNzPVwiZmEgZmEtc2lnbi1vdXRcIj48L3NwYW4+XHJcbiAgICA8L2E+XHJcbiAgIFxyXG4gICBcclxuICA8L2xpPlxyXG4gIDxsaSBjbGFzcz1cInhuLWljb24tYnV0dG9uIHB1bGwtcmlnaHRcIj5cclxuICAgICAgPGEgKGNsaWNrKT1cImJhY2tIb21lKClcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiIGNsYXNzPVwibWItY29udHJvbFwiPlxyXG4gICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAxOHB4XCIgY2xhc3M9XCJmYSBmYS1ob21lXCI+PC9zcGFuPlxyXG4gICAgICA8L2E+XHJcbiAgICA8L2xpPlxyXG4gIDxsaSBjbGFzcz1cInhuLWljb24tYnV0dG9uIHB1bGwtcmlnaHRcIj5cclxuICAgIDxsYWJlbCBjbGFzcz1cInVkXCI+V2VsY29tZSA8c3BhbiBjbGFzcz1cInRleHQtY2FwaXRhbGl6ZVwiPnt7dVVzciArJyB8J319PC9zcGFuPiB7e2RzfX0gPC9sYWJlbD5cclxuICA8L2xpPlxyXG4gIFxyXG48L3VsPiJdfQ==
@@ -959,7 +959,9 @@ class HeaderComponent {
959
959
  return;
960
960
  }
961
961
  this.spinnerService.show();
962
- let r = this.cs.formateStr(fglstr);
962
+ // same attribute multipale value access ke liye coma seprate remove (23-09-2025)
963
+ let r = fglstr == null ? '' : fglstr.trim();
964
+ // let r= this.cs.formateStr(fglstr);
963
965
  localStorage.setItem('packetLookupStr', r);
964
966
  this.router.navigate(['solitaires/packet-lookup/Y'], { queryParams: { schId: this.srchCnt } });
965
967
  }
@@ -1132,7 +1134,9 @@ class EzHeaderComponent {
1132
1134
  this.toastr.error('Please enter Search Parameter');
1133
1135
  return;
1134
1136
  }
1135
- let r = this.cs.formateStr(fglstr);
1137
+ // same attribute multipale value access ke liye coma seprate remove (23-09-2025)
1138
+ // let r = this.cs.formateStr(fglstr);
1139
+ let r = fglstr == null ? '' : fglstr.trim();
1136
1140
  localStorage.setItem('packetLookupStr', r);
1137
1141
  if (this.cUrl == '/solitaires') {
1138
1142
  this.router.navigate(['solitaires/packet-lookup/Y'], { queryParams: { schId: this.srchCnt } });