@csmart/ngc-smart-victim 1.18.41 → 1.18.42

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.
@@ -961,7 +961,7 @@ export class SmartVictimDetailComponent {
961
961
  duration: 3000,
962
962
  });
963
963
  //insert new
964
- this.victimDetail = items;
964
+ this.victimDetail = newVictim;
965
965
  console.log('the items are ->' + items);
966
966
  // if (this.isIntake===true){
967
967
  // debugger
@@ -1158,4 +1158,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
1158
1158
  type: ViewChild,
1159
1159
  args: ["addressComponent"]
1160
1160
  }] } });
1161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ2Mtc21hcnQtdmljdGltL3NyYy9saWIvc21hcnQtdmljdGltLWRldGFpbC9zbWFydC12aWN0aW0tZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nYy1zbWFydC12aWN0aW0vc3JjL2xpYi9zbWFydC12aWN0aW0tZGV0YWlsL3NtYXJ0LXZpY3RpbS1kZXRhaWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxrQkFBa0IsRUFBb0Isa0JBQWtCLEVBQUMsVUFBVSxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDakgsT0FBTyxFQUFrQixhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxRQUFRLEVBQWMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFDLE1BQUksdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFxQixxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUs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QyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FDNUUsQ0FBQztnQkFFRixJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUNwQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FDNUUsQ0FBQztnQkFHRixJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUNwQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FDNUUsQ0FBQztnQkFFRixJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUNwQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FDNUUsQ0FBQztnQkFFRixJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUNwQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FDNUUsQ0FBQztnQkFFRixJQUFJLENBQUMsNEJBQTRCLENBQUUsUUFBUSxDQUN6QyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FDckYsQ0FBQztZQUVKLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxxRUFBcUUs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S0FBSyxDQUFDLFVBQVUsQ0FBQztnQkFDaEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDcEcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDcEcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO2dCQUM5RCxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7Z0JBQ2hFLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO2dCQUM5RCxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7Z0JBQzlELElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUN0RCxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FB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QUFqQixNQUFNO2dCQUN3QixnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uQ2hhbmdlcywgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUNvbnRyb2wsVmFsaWRhdG9ycyxWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0UmFkaW9DaGFuZ2UsIE1hdFJhZGlvR3JvdXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XHJcbmltcG9ydCB7IFZpY3RpbSxWaWN0aW1EcnVnVXNlLCBDb250YWN0LCBWaWN0aW1BZHZvY2F0ZSxWaWN0aW1HdWFyZGlhbixWaWN0aW1XZWFwb25Vc2UsVmljdGltU3VwcG9ydCxWaWN0aW1SZWxhdGlvbnNoaXAgfSBmcm9tICcuLi9zbWFydC12aWN0aW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBOZ2NTbWFydFZpY3RpbVNlcnZpY2UgfSBmcm9tICcuLi9zbWFydC12aWN0aW0uc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciwgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDb21tb25EaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uL2NvbW1vbi1kaWFsb2cvY29tbW9uLWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUsIGZvcm1hdERhdGUsIExvY2F0aW9ufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHl9ZnJvbSdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2V9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgQWRkcmVzc1ZhbGlkYXRvcnMsIFNtYXJ0QWRkcmVzc0NvbXBvbmVudCB9IGZyb20gJ0Bjc21hcnQvbmdjLXNtYXJ0LWFkZHJlc3MnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XHJcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5cclxuaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIEluamVjdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgVW50eXBlZEZvcm1BcnJheSxcclxuICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gIE5nRm9ybSxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7XHJcbiAgWGRtU2VydmljZSxcclxuICBTZWxlY3RlZE9mZmVuZGVyLFxyXG4gIFNtYXJ0QXV0aFNlcnZpY2UsXHJcbiAgTG9naW5TdGFmZixcclxuICBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWcsXHJcbiAgQWNjZXNzVHlwZSxcclxufSBmcm9tICdAY3NtYXJ0L25nYy1zbWFydC1jb3JlJztcclxuXHJcbmltcG9ydCB7IG1hcCwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFNtYXJ0RGVsZXRlQ29uZmlybUNvbXBvbmVudCB9IGZyb20gJ0Bjc21hcnQvc21hcnQtdWknO1xyXG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcblxyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQm9vbGVhbkZuIHtcclxuICAoKTogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFN0cmluZ0ZuIHtcclxuICAoKTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29uZGl0aW9uYWxWYWxpZGF0b3IocHJlZGljYXRlOiBCb29sZWFuRm4sXHJcbiAgdmFsaWRhdG9yOiBWYWxpZGF0b3JGbixcclxuICBlcnJvck5hbWVzcGFjZT86IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcclxucmV0dXJuIChmb3JtQ29udHJvbCA9PiB7XHJcbmlmICghZm9ybUNvbnRyb2wucGFyZW50KSB7XHJcbnJldHVybiBudWxsO1xyXG59XHJcbmxldCBlcnJvciA9IG51bGw7XHJcbmlmIChwcmVkaWNhdGUoKSkge1xyXG5lcnJvciA9IHZhbGlkYXRvcihmb3JtQ29udHJvbCk7XHJcbn1cclxuaWYgKGVycm9yTmFtZXNwYWNlICYmIGVycm9yKSB7XHJcbmNvbnN0IGN1c3RvbUVycm9yID0ge307XHJcbmN1c3RvbUVycm9yW2Vycm9yTmFtZXNwYWNlXSA9IGVycm9yO1xyXG5lcnJvciA9IGN1c3RvbUVycm9yXHJcbn1cclxucmV0dXJuIGVycm9yO1xyXG59KVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ0NvbmRpdGlvbmFsVmFsaWRhdG9yKHByZWRpY2F0ZTogU3RyaW5nRm4sXHJcbiAgdmFsaWRhdG9yOiBWYWxpZGF0b3JGbixcclxuICBlcnJvck5hbWVzcGFjZT86IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcclxucmV0dXJuIChmb3JtQ29udHJvbCA9PiB7XHJcbmlmICghZm9ybUNvbnRyb2wucGFyZW50KSB7XHJcbnJldHVybiBudWxsO1xyXG59XHJcbmxldCBlcnJvciA9IG51bGw7XHJcbmlmIChwcmVkaWNhdGUoKT09J1lTJykge1xyXG5lcnJvciA9IHZhbGlkYXRvcihmb3JtQ29udHJvbCk7XHJcbn1cclxuaWYgKGVycm9yTmFtZXNwYWNlICYmIGVycm9yKSB7XHJcbmNvbnN0IGN1c3RvbUVycm9yID0ge307XHJcbmN1c3RvbUVycm9yW2Vycm9yTmFtZXNwYWNlXSA9IGVycm9yO1xyXG5lcnJvciA9IGN1c3RvbUVycm9yXHJcbn1cclxucmV0dXJuIGVycm9yO1xyXG59KVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NzbWFydC12aWN0aW0tZGV0YWlsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc21hcnQtdmljdGltLWRldGFpbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc21hcnQtdmljdGltLWRldGFpbC5jb21wb25lbnQuY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbQ29tbW9uRGlhbG9nU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0VmljdGltRGV0YWlsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIHZpY3RpbURldGFpbCA9IDxWaWN0aW0+e307XHJcbiAgQElucHV0KCkgc3RhZmZJZDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIG9mZmVuZGVySWQ6IG51bWJlcjtcclxuICBASW5wdXQoKSBpc0ludGFrZTogYm9vbGVhbjtcclxuXHJcbiAgQE91dHB1dCgpIG9uU2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25DYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQFZpZXdDaGlsZChcImFkZHJlc3NDb21wb25lbnRcIikgYWRkcmVzc0NvbXBvbmVudDogU21hcnRBZGRyZXNzQ29tcG9uZW50O1xyXG5cclxuXHJcbiAgdmljdGltSWQ6IG51bWJlcjtcclxuICB2aWN0aW1Gb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG5cclxuICBkcnVnczogYW55O1xyXG4gIHZpY3RpbVN1cHBvcnRUeXBlczogYW55O1xyXG4gIHByZWZpeGVzOiBhbnk7XHJcbiAgLy92aWN0aW06IFZpY3RpbSA9IDxWaWN0aW0+e307XHJcbiAgc3VmZml4ZXM6IGFueTtcclxuICByZWxhdGlvbnNoaXBUeXBlczogYW55O1xyXG4gIGdlbmRlcnM6IGFueTtcclxuICBkb2NrZXRsaXN0OiBhbnk7XHJcbiAgd2VhcG9uVHlwZXM6IGFueTtcclxuICBmbGFnT3B0aW9uOiBhbnk7XHJcbiAgc2VsZWN0ZWRXZWFwb25UeXBlczogYW55O1xyXG4gIC8vc2VsZWN0ZWRWaWN0aW1TdXBwb3J0VHlwZXM6IGFueTtcclxuICBzZWxlY3RlZERydWdzOiBhbnk7XHJcbiAgaWQ6IGFueTtcclxuICBoaWRkZW46IGJvb2xlYW49dHJ1ZTtcclxuICBwcml2YXRlIHN1YjogYW55O1xyXG4gIHZpY3RpbUFkdm9jYXRlOiBWaWN0aW1BZHZvY2F0ZSA9ICA8VmljdGltQWR2b2NhdGU+e307XHJcbiAgdmljdGltR3VhcmRpYW46IFZpY3RpbUd1YXJkaWFuID0gPFZpY3RpbUd1YXJkaWFuPnt9O1xyXG4gIHZpY3RpbVdlYXBvblVzZTogVmljdGltV2VhcG9uVXNlO1xyXG4gIHZpY3RpbVN1cHBvcnQ6IFZpY3RpbVN1cHBvcnQ7XHJcbiAgdmljdGltRHJ1Z1VzZTogVmljdGltRHJ1Z1VzZTtcclxuICByZXN1bHQ6IGFueTtcclxuICBlZGl0TW9kZTogYW55O1xyXG4gIGd1YXJkaWFuVGFiRmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGFkdm9jYXRlVGFiRmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbW1vbkNoaWxkcmVuRGl2RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNwb0V4cGlyYXRpb25EaXZGbGFnIDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHN1cHBvcnRJblBsYWNlRGl2RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHdlYXBvbkludm9sdmVkRGl2RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRydWdVc2VEaXZGbGFnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0RlbGV0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGFkZHJlc3NJZDogbnVtYmVyID0gMDtcclxuICBhZHZvY2F0ZUFkZHJlc3NJZDogbnVtYmVyID0gMDtcclxuICBndWFyZGlhbkFkZHJlc3NJZDogbnVtYmVyID0gMDtcclxuICBkYXRlUGlwZSA9IG5ldyBEYXRlUGlwZSgnZW4tVVMnKTtcclxuICBlbWFpbFBhdHRlcm4gPSBcIl5bYS16MC05Ll8lKy1dK0BbYS16MC05Li1dK1xcLlthLXpdezIsNH0kXCI7XHJcbiAgcGhvbmVOdW1iZXIgPSBcIlxcXFxkezEwfVwiO1xyXG4gIGVkaXRWaWN0aW06IFZpY3RpbSA9IDxWaWN0aW0+e307XHJcbiAgdmljdGltQWdlOiBudW1iZXI7XHJcbiAgb3RoZXJXZWFwb25GbGFnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgb3RoZXJEcnVnRmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb250YWN0RGF0YVNvdXJjZT0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSgpO1xyXG4gIGNvbnRhY3RMaXN0OiBDb250YWN0W107XHJcbiAgZ3VhcmRpYW5QaG9uZUV4aXN0RmxhZzogYm9vbGVhbiA9ICBmYWxzZTtcclxuICBhZHZvY2F0ZVBob25lRXhpc3RGbGFnOiBib29sZWFuID0gIGZhbHNlO1xyXG4gIHBob25lVmFsaWRhdGlvbkZsYWc6IGJvb2xlYW4gPSAgZmFsc2U7XHJcbiAgZ3VhcmlkYW5Ob1Bob25lQ2hrRmxhZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgYWR2b2NhdGVOb1Bob25lQ2hrRmxhZzogYm9vbGVhbiA9ICB0cnVlO1xyXG5cclxuICBhZGRyZXNzVmFsaWRhdG9yczogQWRkcmVzc1ZhbGlkYXRvcnMgPSB7XHJcbiAgICBzdHJlZXQ6IFtdLFxyXG4gICAgc3RyZWV0MjogW10sXHJcbiAgICBjaXR5OiBbXSxcclxuICAgIHN0YXRlQ29kZTogW10sXHJcbiAgICB6aXBDb2RlOiBbXSxcclxuICAgIHBzYUNvZGU6IFtdLFxyXG4gIH07XHJcbiAgaG9tZVBob25lQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcclxuICBjZWxsUGhvbmVDb250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xyXG4gIHdvcmtQaG9uZUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XHJcbiAgZ3VhcmRpYW5Ib21lUGhvbmVDb250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xyXG4gIGd1YXJkaWFuQ2VsbFBob25lQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcclxuICBndWFyZGlhbldvcmtQaG9uZUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XHJcbiAgYWR2b2NhdGVIb21lUGhvbmVDb250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xyXG4gIGFkdm9jYXRlQ2VsbFBob25lQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcclxuICBhZHZvY2F0ZVdvcmtQaG9uZUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XHJcbiAgZW1lcmdlbmN5Q29udGFjdFBob25lQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcclxuXHJcbiBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxyXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHB1YmxpYyBzbmFja0JhcjogTWF0U25hY2tCYXIsXHJcbiAgICBwcml2YXRlIGNvbW1vbkRpYWxvZ1NlcnZpY2U6IENvbW1vbkRpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHZpY3RpbVNlcnZpY2U6IE5nY1NtYXJ0VmljdGltU2VydmljZSxcclxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWZzOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuXHJcbiAgICApIHtcclxuICAgICAgIHRoaXMuaW5pdEZvcm0oKTtcclxuICAgfVxyXG5cclxuICAgcHJpdmF0ZSBpbml0Rm9ybSgpIHtcclxuXHJcbiAgICBjb25zb2xlLmxvZygnaW5pdEZvcm0gaW4gc21hcnQtdmljdGltLWRldGFpbCcpO1xyXG5cclxuICAgIHRoaXMudmljdGltRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICB1bmRlclN1cGVydmlzaW9uRmxhZzogIG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbIFZhbGlkYXRvcnMucmVxdWlyZWRdKSksXHJcbiAgICAgIHZpY3RpbVJlbGF0aW9uc2hpcHM6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFsgVmFsaWRhdG9ycy5yZXF1aXJlZF0pKSxcclxuICAgICAgbGFzdE5hbWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbIFZhbGlkYXRvcnMucmVxdWlyZWRdKSksXHJcbiAgICAgIGZpcnN0TmFtZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFsgVmFsaWRhdG9ycy5yZXF1aXJlZF0pKSxcclxuICAgICAgbWlkZGxlTmFtZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgcHJlZml4SWQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIHN1ZmZpeElkOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBnZW5kZXJDb2RlOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGJpcnRoRGF0ZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgaG9tZVBob25lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBjZWxsUGhvbmU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIHdvcmtQaG9uZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgZW1haWw6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5lbWFpbFBhdHRlcm4pIF0pKSxcclxuICAgICAgbWlub3JGbGFnOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbIFZhbGlkYXRvcnMucmVxdWlyZWRdKSksXHJcbiAgICAgIHZpY3RpbUFkdm9jYXRlRmxhZzogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFsgVmFsaWRhdG9ycy5yZXF1aXJlZF0pKSxcclxuICAgICAgZ3VhcmRpYW5MYXN0TmFtZTpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCAgc3RyaW5nQ29uZGl0aW9uYWxWYWxpZGF0b3IoKCkgPT4gdGhpcy52aWN0aW1Gb3JtLmdldCgnbWlub3JGbGFnJykudmFsdWUsICBWYWxpZGF0b3JzLnJlcXVpcmVkLCAnaWxsdW1pbmF0aUVycm9yJykgKSxcclxuICAgICAgZ3VhcmRpYW5GaXJzdE5hbWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICBzdHJpbmdDb25kaXRpb25hbFZhbGlkYXRvcigoKSA9PiB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdtaW5vckZsYWcnKS52YWx1ZSwgIFZhbGlkYXRvcnMucmVxdWlyZWQsICdpbGx1bWluYXRpRXJyb3InKSksXHJcbiAgICAgIGd1YXJkaWFuUHJlZml4SWQ6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgZ3VhcmRpYW5TdWZmaXhJZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgLy9ndWFyZGlhbkdlbmRlcjpuZXcgRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGd1YXJkaWFuQmlydGhEYXRlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBndWFyZGlhbk5vUGhvbmVGbGFnOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodHJ1ZSksXHJcblxyXG4gICAgICBndWFyZGlhbkhvbWVQaG9uZTpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCksXHJcbiAgICAgIGd1YXJkaWFuQ2VsbFBob25lOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsKSxcclxuICAgICAgZ3VhcmRpYW5Xb3JrUGhvbmU6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywpLFxyXG5cclxuXHJcbiAgICAgIGd1YXJkaWFuRW1haWw6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5lbWFpbFBhdHRlcm4pIF0pKSxcclxuICAgICAgYWR2b2NhdGVOb1Bob25lRmxhZzogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0cnVlKSxcclxuXHJcblxyXG4gICAgICBhZHZvY2F0ZVdvcmtQaG9uZTpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCksXHJcbiAgICAgIGFkdm9jYXRlSG9tZVBob25lOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsKSxcclxuICAgICAgYWR2b2NhdGVDZWxsUGhvbmU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsKSxcclxuXHJcblxyXG4gICAgICBhZHZvY2F0ZVN1ZmZpeElkOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGFkdm9jYXRlUHJlZml4SWQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGFkdm9jYXRlRmlyc3ROYW1lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBzdHJpbmdDb25kaXRpb25hbFZhbGlkYXRvcigoKSA9PiB0aGlzLnZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1BZHZvY2F0ZUZsYWcnKS52YWx1ZSwgIFZhbGlkYXRvcnMucmVxdWlyZWQsICdpbGx1bWluYXRpRXJyb3InKSksXHJcbiAgICAgIGFkdm9jYXRlTGFzdE5hbWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIHN0cmluZ0NvbmRpdGlvbmFsVmFsaWRhdG9yKCgpID0+IHRoaXMudmljdGltRm9ybS5nZXQoJ3ZpY3RpbUFkdm9jYXRlRmxhZycpLnZhbHVlLCBWYWxpZGF0b3JzLnJlcXVpcmVkLCdpbGx1bWluYXRpRXJyb3InKSksXHJcbiAgICAgIGFkdm9jYXRlRW1haWw6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5wYXR0ZXJuKHRoaXMuZW1haWxQYXR0ZXJuKSBdKSksXHJcbiAgICAgIGVtZXJnZW5jeUNvbnRhY3Q6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGVtZXJnZW5jeUNvbnRhY3RQaG9uZTpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCksXHJcbiAgICAgIGVtZXJnZW5jeUNoaWxkcmVuOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBlbWVyZ2VuY3lDcG86IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGVtZXJnZW5jeURydWc6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgZW1lcmdlbmN5U3VwcG9ydDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgZW1lcmdlbmN5V2VhcG9uOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBkcnVnOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICB3ZWFwb246IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIHN1cHBvcnQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGNvbW1vbkNoaWxkcmVuRmxhZzogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgY29tbW9uQ2hpbGRyZW5OdW1iZXI6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgY3BvRXhwaXJhdGlvbkZsYWc6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGNwb0V4cGlyYXRpb25EYXRlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBhY2Nlc3NSaXNrOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGRydWdVc2VGbGFnOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIHN1cHBvcnRJblBsYWNlRmxhZzogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgd2VhcG9uSW52b2x2ZWRGbGFnOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBvdGhlcldlYXBvbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgb3RoZXJEcnVnOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBhbGNvaG9sVXNlRmxhZzpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICB2aWN0aW1TdXBwb3J0czpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICB2aWN0aW1XZWFwb25Vc2VzOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIHZpY3RpbURydWdVc2VzOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGFsbG93Q3Nvc2FDb250YWN0RmxhZzogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgbGl2ZVdpdGhPZmZlbmRlckZsYWc6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcblxyXG59KTtcclxuXHJcbiAgICB0aGlzLnZpY3RpbUZvcm0ubWFya0FzUHJpc3RpbmUoKTtcclxuXHRcdHRoaXMudmljdGltRm9ybS5tYXJrQXNVbnRvdWNoZWQoKTtcclxuXHJcbiAgIH1cclxuXHJcbiAgIHByaXZhdGUgX2dldFZpY3RpbSgpIHtcclxuICAgIC8vIGlmICh0aGlzLnZpY3RpbUlkID09PSAwKSB7XHJcblxyXG4gICAgLy8gICByZXR1cm47XHJcbiAgICAvLyB9O1xyXG5cclxuICAgIC8vIHRoaXMuZWRpdE1vZGUgPSB0cnVlO1xyXG4gICAgLy8gdGhpcy52aWN0aW1JZD0gMjQ0MDE7XHJcblxyXG5cclxuXHJcblx0XHRpZiAodGhpcy5lZGl0TW9kZSA9PSB0cnVlKSB7XHJcbiAgICBjb25zb2xlLmxvZygnZmluZCB2aWN0aW0gaWQgaW5zaWRlIGdldFZpY3RpbScpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy52aWN0aW1JZCk7XHJcblxyXG4gICAgaWYgKHRoaXMudmljdGltSWQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5zdWIgPSB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgdGhpcy52aWN0aW1JZCA9IHBhcmFtc1sndmljdGltSWQnXTtcclxuICAgICAgY29uc29sZS5sb2coJ215IHRoaXMudmljdGltSWQnKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1JZCk7XHJcbiAgICAgfSk7XHJcbiAgIH1cclxuXHJcbiAgICAgIHRoaXMudmljdGltU2VydmljZS5nZXRWaWN0aW0odGhpcy52aWN0aW1JZClcclxuICAgICAgLnN1YnNjcmliZSgodmljdGltOiBWaWN0aW0pID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZygndmljdGltIGRhdGEgMScpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHZpY3RpbSk7XHJcbiAgICAgICAgdGhpcy5lZGl0VmljdGltID0gPFZpY3RpbT52aWN0aW07XHJcblxyXG4gICAgICAgIHZhciBzdXBwb3J0c0RhdGEgPVtdO1xyXG4gICAgICAgIHRoaXMuZWRpdFZpY3RpbS52aWN0aW1TdXBwb3J0cy5mb3JFYWNoKCB0PT57c3VwcG9ydHNEYXRhLnB1c2godC52aWN0aW1TdXBwb3J0VHlwZUlkKTsgfSAgKVxyXG4gICAgICAgIGNvbnN0IHZpY3RpbVN1cHBvcnRzQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ3ZpY3RpbVN1cHBvcnRzJyk7XHJcbiAgICAgICAgdmljdGltU3VwcG9ydHNDb250cm9sLnNldFZhbHVlKHN1cHBvcnRzRGF0YSk7XHJcblxyXG5cclxuICAgICAgICB2YXIgcmVsYXRpb25zaGlwc0RhdGEgPVtdO1xyXG4gICAgICAgIHRoaXMuZWRpdFZpY3RpbS52aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcHMuZm9yRWFjaCggdD0+e3JlbGF0aW9uc2hpcHNEYXRhLnB1c2godC52aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZCk7IH0gIClcclxuICAgICAgICBjb25zdCB2aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcENvbnRyb2wgPSB0aGlzLnZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1SZWxhdGlvbnNoaXBzJyk7XHJcbiAgICAgICAgdmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBDb250cm9sLnNldFZhbHVlKHJlbGF0aW9uc2hpcHNEYXRhKTtcclxuXHJcblxyXG4gICAgICAgIHZhciB3ZWFwb25Vc2VzRGF0YSA9W107XHJcbiAgICAgICAgdmFyIG90aGVyV2VhcG9uID0gXCJcIjtcclxuICAgICAgICB0aGlzLmVkaXRWaWN0aW0udmljdGltV2VhcG9uVXNlcy5mb3JFYWNoKCB0PT57XHJcbiAgICAgICAgICB3ZWFwb25Vc2VzRGF0YS5wdXNoKHQud2VhcG9uVHlwZUlkKTtcclxuICAgICAgICAgIGlmICh0LndlYXBvblR5cGVJZCA9PSBcIk9USEVSXCIpe1xyXG4gICAgICAgICAgICBvdGhlcldlYXBvbiA9IHQub3RoZXJXZWFwb247XHJcbiAgICAgICAgICAgIHRoaXMub3RoZXJXZWFwb25GbGFnID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSAgKVxyXG5cclxuXHJcbiAgICAgICAgY29uc3QgdmljdGltV2VhcG9uVXNlc0NvbnRyb2wgPSB0aGlzLnZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1XZWFwb25Vc2VzJyk7XHJcbiAgICAgICAgdmljdGltV2VhcG9uVXNlc0NvbnRyb2wuc2V0VmFsdWUod2VhcG9uVXNlc0RhdGEpO1xyXG5cclxuICAgICAgICBjb25zdCBvdGhlcldlYXBvbkNvbnRyb2wgPSB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdvdGhlcldlYXBvbicpO1xyXG4gICAgICAgIG90aGVyV2VhcG9uQ29udHJvbC5zZXRWYWx1ZShvdGhlcldlYXBvbik7XHJcblxyXG4gICAgICAgIHZhciBkcnVnVXNlRGF0YSA9W107XHJcbiAgICAgICAgdmFyIG90aGVyRHJ1ZyA9IFwiXCI7XHJcblxyXG4gICAgICAgIGNvbnNvbGUubG9nKCdsb2FkIHRoaXMuZWRpdFZpY3RpbS52aWN0aW1EcnVnVXNlcycpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMuZWRpdFZpY3RpbS52aWN0aW1EcnVnVXNlcyk7XHJcbiAgICAgICAgdGhpcy5lZGl0VmljdGltLnZpY3RpbURydWdVc2VzLmZvckVhY2goIHQ9PntcclxuXHJcbiAgICAgICAgICBpZiAodC5kcnVnVHlwZUlkID09PSBudWxsKXtcclxuICAgICAgICAgICAgb3RoZXJEcnVnID0gdC5vdGhlckRydWc7XHJcbiAgICAgICAgICAgIHRoaXMub3RoZXJEcnVnRmxhZyA9IHRydWU7XHJcbiAgICAgICAgICAgIHQuZHJ1Z1R5cGVJZCA9J09USEVSJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRydWdVc2VEYXRhLnB1c2godC5kcnVnVHlwZUlkKTtcclxuXHJcbiAgICAgICAgfSAgKVxyXG5cclxuICAgICAgICBjb25zb2xlLmxvZygndGhpcy5lZGl0VmljdGltLnZpY3RpbURydWdVc2VzIGFmdGVyIHB1c2gnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhkcnVnVXNlRGF0YSk7XHJcblxyXG5cclxuICAgICAgICBpZiAoZHJ1Z1VzZURhdGEpe1xyXG4gICAgICAgICAgY29uc3QgdmljdGltRHJ1Z1VzZXNDb250cm9sID0gdGhpcy52aWN0aW1Gb3JtLmdldCgndmljdGltRHJ1Z1VzZXMnKTtcclxuICAgICAgICAgIHZpY3RpbURydWdVc2VzQ29udHJvbC5zZXRWYWx1ZShkcnVnVXNlRGF0YSk7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG90aGVyRHJ1Zyl7XHJcbiAgICAgICAgICBjb25zdCBvdGhlckRydWdDb250cm9sID0gdGhpcy52aWN0aW1Gb3JtLmdldCgnb3RoZXJEcnVnJyk7XHJcbiAgICAgICAgICBvdGhlckRydWdDb250cm9sLnNldFZhbHVlKG90aGVyRHJ1Zyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL2NvbnRhY3RcclxuICAgICAgICB0aGlzLnZpY3RpbVNlcnZpY2UuZ2V0Q29udGFjdHModGhpcy52aWN0aW1JZCkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgY29udGFjdExpc3QgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY29udGFjdExpc3QnKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coY29udGFjdExpc3QpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRhY3RMaXN0ID0gY29udGFjdExpc3Q7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGFjdERhdGFTb3VyY2UuZGF0YSA9IHRoaXMuY29udGFjdExpc3Q7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgLy9ubyBwaG9uZSBmaWVsZFxyXG5cclxuICAgICAgICBpZiAoIHRoaXMuZWRpdFZpY3RpbS5ndWFyZGlhbk5vUGhvbmVGbGFnID09PSBmYWxzZSApe1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1Gb3JtLnBhdGNoVmFsdWUoe2d1YXJkaWFuTm9QaG9uZUZsYWc6IGZhbHNlfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICggdGhpcy5lZGl0VmljdGltLmFkdm9jYXRlTm9QaG9uZUZsYWcgPT09IGZhbHNlICl7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUZvcm0ucGF0Y2hWYWx1ZSh7YWR2b2NhdGVOb1Bob25lRmxhZzogZmFsc2V9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaG9tZVBob25lQ29udHJvbC5zZXRWYWx1ZShcclxuICAgICAgICAgICF0aGlzLmVkaXRWaWN0aW0uaG9tZVBob25lID8gXCJcIiA6IHRoaXMuZWRpdFZpY3RpbS5ob21lUGhvbmVcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmNlbGxQaG9uZUNvbnRyb2wuc2V0VmFsdWUoXHJcbiAgICAgICAgICAhdGhpcy5lZGl0VmljdGltLmNlbGxQaG9uZSA/IFwiXCIgOiB0aGlzLmVkaXRWaWN0aW0uY2VsbFBob25lXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy53b3JrUGhvbmVDb250cm9sLnNldFZhbHVlKFxyXG4gICAgICAgICAgIXRoaXMuZWRpdFZpY3RpbS53b3JrUGhvbmUgPyBcIlwiIDogdGhpcy5lZGl0VmljdGltLndvcmtQaG9uZVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuZ3VhcmRpYW5Ib21lUGhvbmVDb250cm9sLnNldFZhbHVlKFxyXG4gICAgICAgICAgIXRoaXMuZWRpdFZpY3RpbS5ndWFyZGlhbkhvbWVQaG9uZSA/IFwiXCIgOiB0aGlzLmVkaXRWaWN0aW0uZ3VhcmRpYW5Ib21lUGhvbmVcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmd1YXJkaWFuQ2VsbFBob25lQ29udHJvbC5zZXRWYWx1ZShcclxuICAgICAgICAgICF0aGlzLmVkaXRWaWN0aW0uZ3VhcmRpYW5DZWxsUGhvbmUgPyBcIlwiIDogdGhpcy5lZGl0VmljdGltLmd1YXJkaWFuQ2VsbFBob25lXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5ndWFyZGlhbldvcmtQaG9uZUNvbnRyb2wuc2V0VmFsdWUoXHJcbiAgICAgICAgICAhdGhpcy5lZGl0VmljdGltLmd1YXJkaWFuV29ya1Bob25lID8gXCJcIiA6IHRoaXMuZWRpdFZpY3RpbS5ndWFyZGlhbldvcmtQaG9uZVxyXG4gICAgICAgICk7XHJcblxyXG5cclxuICAgICAgICB0aGlzLmFkdm9jYXRlSG9tZVBob25lQ29udHJvbC5zZXRWYWx1ZShcclxuICAgICAgICAgICF0aGlzLmVkaXRWaWN0aW0uYWR2b2NhdGVIb21lUGhvbmUgPyBcIlwiIDogdGhpcy5lZGl0VmljdGltLmFkdm9jYXRlSG9tZVBob25lXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5hZHZvY2F0ZUNlbGxQaG9uZUNvbnRyb2wuc2V0VmFsdWUoXHJcbiAgICAgICAgICAhdGhpcy5lZGl0VmljdGltLmFkdm9jYXRlQ2VsbFBob25lID8gXCJcIiA6IHRoaXMuZWRpdFZpY3RpbS5hZHZvY2F0ZUNlbGxQaG9uZVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuYWR2b2NhdGVXb3JrUGhvbmVDb250cm9sLnNldFZhbHVlKFxyXG4gICAgICAgICAgIXRoaXMuZWRpdFZpY3RpbS5hZHZvY2F0ZVdvcmtQaG9uZSA/IFwiXCIgOiB0aGlzLmVkaXRWaWN0aW0uYWR2b2NhdGVXb3JrUGhvbmVcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmVtZXJnZW5jeUNvbnRhY3RQaG9uZUNvbnRyb2wgLnNldFZhbHVlKFxyXG4gICAgICAgICAgIXRoaXMuZWRpdFZpY3RpbS5lbWVyZ2VuY3lDb250YWN0UGhvbmUgID8gXCJcIiA6IHRoaXMuZWRpdFZpY3RpbS5lbWVyZ2VuY3lDb250YWN0UGhvbmVcclxuICAgICAgICApO1xyXG5cclxuICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihcIkVycm9yIG9jY3VyZWQgd2hpbGUgcmV0cml2aW5nIFZpY3RpbSBJbmZvcm1hdGlvbi4gUGxlYXNlIHRyeSBhZ2Fpbi5cIik7XHJcbiAgICAgIH0pO1xyXG4gICAgcmV0dXJuO1xyXG5cdFx0fSBlbHNlIHtcclxuICAgICAgLy9uZXdcclxuXHJcbiAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG5cclxuICB9XHJcblxyXG4gIG9uQ2xlYXIoKSB7XHJcbiAgICBpZiAodGhpcy5hZGRyZXNzQ29tcG9uZW50KSB0aGlzLmFkZHJlc3NDb21wb25lbnQucmVzZXQoKTtcclxuICB9XHJcblxyXG4gIHNob3dBZGRyZXNzKHZhbHVlKXtcclxuXHJcbiAgICBpZiAodmFsdWUuY2hlY2tlZCl7XHJcblxyXG4gICAgdGhpcy52aWN0aW1TZXJ2aWNlLmdldEN1cnJlbnRIb3VzaW5nKHRoaXMub2ZmZW5kZXJJZCkuc3Vic2NyaWJlKFxyXG4gICAgICAoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5hZGRyZXNzSWQgPSBpdGVtLmhvdXNpbmcuYWRkcmVzc0lkO1xyXG4gICAgICAgIHRoaXMudmljdGltRm9ybS5wYXRjaFZhbHVlKHthZGRyZXNzSWQ6IHRoaXMuYWRkcmVzc0lkfSlcclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMuYWRkcmVzc0NvbXBvbmVudC5yZXNldCgpO1xyXG4gICAgICB0aGlzLmVkaXRWaWN0aW0uYWxsb3dDc29zYUNvbnRhY3RGbGFnID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuYWRkcmVzc0lkID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBvbkFkZHJlc3NDaGFuZ2UoYWRkcmVzc0lkKSB7XHJcbiAgICB0aGlzLnZpY3RpbUZvcm0ucGF0Y2hWYWx1ZSh7YWRkcmVzc0lkOiBhZGRyZXNzSWR9KVxyXG4gICAgdGhpcy5hZGRyZXNzSWQgPSBhZGRyZXNzSWQ7XHJcbiAgfVxyXG4gIG9uR3VhcmRpYW5BZGRyZXNzQ2hhbmdlKE15R3VhcmRpYW5BZGRyZXNzSWQpIHtcclxuICAgIHRoaXMudmljdGltRm9ybS5wYXRjaFZhbHVlKHtndWFyZGlhbkFkZHJlc3NJZDogTXlHdWFyZGlhbkFkZHJlc3NJZH0pXHJcbiAgICB0aGlzLmd1YXJkaWFuQWRkcmVzc0lkID0gIE15R3VhcmRpYW5BZGRyZXNzSWQ7XHJcbiAgfVxyXG4gIG9uQWR2b2NhdGVBZGRyZXNzQ2hhbmdlKE15QWR2b2NhdGVBZGRyZXNzSWQpIHtcclxuICAgIHRoaXMudmljdGltRm9ybS5wYXRjaFZhbHVlKHthZHZvY2F0ZUFkZHJlc3NJZDogTXlBZHZvY2F0ZUFkZHJlc3NJZH0pXHJcbiAgICB0aGlzLmFkdm9jYXRlQWRkcmVzc0lkID0gTXlBZHZvY2F0ZUFkZHJlc3NJZDtcclxuICB9XHJcbiAgY2FuY2VsKCkge1xyXG4gICAgdGhpcy52aWN0aW1Gb3JtLnJlc2V0KCk7XHJcbn1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaG9tZVBob25lQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChocG46IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGhwbi5yZXBsYWNlKC9cXEQvZywgJycpO1xyXG4gICAgICB0aGlzLmVkaXRWaWN0aW0uaG9tZVBob25lPSBuZXdWYWx1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuY2VsbFBob25lQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChocG46IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGhwbi5yZXBsYWNlKC9cXEQvZywgJycpO1xyXG4gICAgICB0aGlzLmVkaXRWaWN0aW0uY2VsbFBob25lPSBuZXdWYWx1ZTtcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICB0aGlzLndvcmtQaG9uZUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoaHBuOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgbmV3VmFsdWUgPSBocG4ucmVwbGFjZSgvXFxEL2csICcnKTtcclxuICAgICAgdGhpcy5lZGl0VmljdGltLndvcmtQaG9uZT0gbmV3VmFsdWU7XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgdGhpcy5ndWFyZGlhbkhvbWVQaG9uZUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoaHBuOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgbmV3VmFsdWUgPSBocG4ucmVwbGFjZSgvXFxEL2csICcnKTtcclxuICAgICAgdGhpcy5lZGl0VmljdGltLmd1YXJkaWFuSG9tZVBob25lPSBuZXdWYWx1ZTtcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICB0aGlzLmd1YXJkaWFuQ2VsbFBob25lQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChocG46IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGhwbi5yZXBsYWNlKC9cXEQvZywgJycpO1xyXG4gICAgICB0aGlzLmVkaXRWaWN0aW0uZ3VhcmRpYW5DZWxsUGhvbmU9IG5ld1ZhbHVlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5ndWFyZGlhbldvcmtQaG9uZUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoaHBuOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgbmV3VmFsdWUgPSBocG4ucmVwbGFjZSgvXFxEL2csICcnKTtcclxuICAgICAgdGhpcy5lZGl0VmljdGltLmd1YXJkaWFuV29ya1Bob25lPSBuZXdWYWx1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWR2b2NhdGVIb21lUGhvbmVDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKGhwbjogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gaHBuLnJlcGxhY2UoL1xcRC9nLCAnJyk7XHJcbiAgICAgIHRoaXMuZWRpdFZpY3RpbS5hZHZvY2F0ZUhvbWVQaG9uZT0gbmV3VmFsdWU7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkdm9jYXRlQ2VsbFBob25lQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChocG46IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGhwbi5yZXBsYWNlKC9cXEQvZywgJycpO1xyXG4gICAgICB0aGlzLmVkaXRWaWN0aW0uYWR2b2NhdGVDZWxsUGhvbmU9IG5ld1ZhbHVlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZHZvY2F0ZVdvcmtQaG9uZUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoaHBuOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgbmV3VmFsdWUgPSBocG4ucmVwbGFjZSgvXFxEL2csICcnKTtcclxuICAgICAgdGhpcy5lZGl0VmljdGltLmFkdm9jYXRlV29ya1Bob25lPSBuZXdWYWx1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZW1lcmdlbmN5Q29udGFjdFBob25lQ29udHJvbCAudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoaHBuOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgbmV3VmFsdWUgPSBocG4ucmVwbGFjZSgvXFxEL2csICcnKTtcclxuICAgICAgdGhpcy5lZGl0VmljdGltLmVtZXJnZW5jeUNvbnRhY3RQaG9uZT0gbmV3VmFsdWU7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyB0aGlzLm9mZmVuZGVySWQgPSAyMTkxNTE7XHJcbiAgICAvLyB0aGlzLnN0YWZmSWQgPSAyOTI5O1xyXG4gICAgY29uc29sZS5sb2coJ3Nob3cgb2ZmZW5kZXJJZCcpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5vZmZlbmRlcklkKTtcclxuICAgIGNvbnNvbGUubG9nKCdzaG93IHN0YWZmSWQnKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc3RhZmZJZCk7XHJcbiAgICBjb25zb2xlLmxvZygnc2hvdyBpc0ludGFrZScpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5pc0ludGFrZSk7XHJcblxyXG4gICAgICAgLy9yZXF1aXJlZCBmaWVsZFxyXG4gICAgY29uc3QgcmVxdWlyZWRJbXBsZW1lbnRhdGlvbiA9IHtnZXQ6ZnVuY3Rpb24oKTpib29sZWFue2lmKHRoaXMuX3JlcXVpcmVkKXtyZXR1cm4gdGhpcy5fcmVxdWlyZWQ7fVxyXG4gICAgaWYodGhpcy5uZ0NvbnRyb2wmJnRoaXMubmdDb250cm9sLmNvbnRyb2wmJnRoaXMubmdDb250cm9sLmNvbnRyb2wudmFsaWRhdG9yXHJcbiAgICAgICl7Y29uc3QgZW1wdHlWYWx1ZUNvbnRyb2w9T2JqZWN0LmFzc2lnbih7fSxcclxuICAgICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sKTsoZW1wdHlWYWx1ZUNvbnRyb2wgYXMgYW55KS52YWx1ZT1udWxsO1xyXG4gICAgICAgIHJldHVybigncmVxdWlyZWQnaW4odGhpcy5uZ0NvbnRyb2wuY29udHJvbC52YWxpZGF0b3IoZW1wdHlWYWx1ZUNvbnRyb2wpfHx7fSkpO31cclxuICAgICAgICByZXR1cm4gZmFsc2U7fSxzZXQ6ZnVuY3Rpb24odmFsdWU6Ym9vbGVhbil7dGhpcy5fcmVxdWlyZWQ9Y29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTt9LH07XHJcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE1hdElucHV0LnByb3RvdHlwZSwncmVxdWlyZWQnLHJlcXVpcmVkSW1wbGVtZW50YXRpb24sKTtcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoTWF0U2VsZWN0LnByb3RvdHlwZSwncmVxdWlyZWQnLHJlcXVpcmVkSW1wbGVtZW50YXRpb24sKTtcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoTWF0UmFkaW9Hcm91cC5wcm90b3R5cGUsJ3JlcXVpcmVkJyxyZXF1aXJlZEltcGxlbWVudGF0aW9uLCk7XHJcbiAgICAvL3JlcXVpcmVkIGZpZWxkIGVuZFxyXG5cclxuXHJcblxyXG5cclxuICAgICBpZiAodGhpcy52aWN0aW1EZXRhaWwhPW51bGwpIHtcclxuICAgICAgIC8vIGVkaXQgcmVjb3JkXHJcbiAgICAgIHRoaXMuZWRpdE1vZGUgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNob3dEZWxldGU9IHRydWU7XHJcbiAgICAgIHRoaXMudmljdGltSWQgPSB0aGlzLnZpY3RpbURldGFpbC52aWN0aW1JZDtcclxuICAgICAgdGhpcy5ndWFyZGlhblRhYkZsYWcgPSB0aGlzLnZpY3RpbURldGFpbC5taW5vckZsYWc7XHJcblxyXG4gICAgICBpZiAodGhpcy52aWN0aW1EZXRhaWwudmljdGltQWR2b2NhdGVGbGFnPT0nWVMnKXtcclxuICAgICAgICAgICAgdGhpcy5hZHZvY2F0ZVRhYkZsYWcgPSB0cnVlO1xyXG4gICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMub3RoZXJXZWFwb25GbGFnID09IHRydWUpe1xyXG4gICAgICAgIGNvbnN0IG90aGVyV2VhcG9uQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ290aGVyV2VhcG9uJyk7XHJcbiAgICAgICAgb3RoZXJXZWFwb25Db250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLm90aGVyRHJ1Z0ZsYWcgPT0gdHJ1ZSl7XHJcbiAgICAgICAgY29uc3Qgb3RoZXJEcnVnQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ290aGVyRHJ1ZycpO1xyXG4gICAgICAgIG90aGVyRHJ1Z0NvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5jcG9FeHBpcmF0aW9uRGl2RmxhZyAgPXRoaXMudmljdGltRGV0YWlsLmNwb0V4cGlyYXRpb25GbGFnO1xyXG4gICAgICB0aGlzLmNvbW1vbkNoaWxkcmVuRGl2RmxhZyA9IHRoaXMudmljdGltRGV0YWlsLmNvbW1vbkNoaWxkcmVuRmxhZztcclxuICAgICAgdGhpcy5zdXBwb3J0SW5QbGFjZURpdkZsYWc9ICB0aGlzLnZpY3RpbURldGFpbC5zdXBwb3J0SW5QbGFjZUZsYWc7XHJcbiAgICAgIHRoaXMud2VhcG9uSW52b2x2ZWREaXZGbGFnPSAgdGhpcy52aWN0aW1EZXRhaWwud2VhcG9uSW52b2x2ZWRGbGFnO1xyXG4gICAgICB0aGlzLmRydWdVc2VEaXZGbGFnPSAgdGhpcy52aWN0aW1EZXRhaWwuZHJ1Z1VzZUZsYWc7XHJcbiAgICAgIHRoaXMuYWRkcmVzc0lkID0gdGhpcy52aWN0aW1EZXRhaWwuYWRkcmVzc0lkO1xyXG4gICAgICB0aGlzLmd1YXJkaWFuQWRkcmVzc0lkID0gIHRoaXMudmljdGltRGV0YWlsLmd1YXJkaWFuQWRkcmVzc0lkO1xyXG4gICAgICB0aGlzLmFkdm9jYXRlQWRkcmVzc0lkID0gIHRoaXMudmljdGltRGV0YWlsLmFkdm9jYXRlQWRkcmVzc0lkO1xyXG4gICAgICB0aGlzLl9nZXRWaWN0aW0oKTtcclxuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvL2FkZCBuZXcgcmVjb3JkXHJcbiAgICAgIHRoaXMudmljdGltRm9ybS5wYXRjaFZhbHVlKHtndWFyZGlhbk5vUGhvbmVGbGFnOiB0cnVlfSk7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS5wYXRjaFZhbHVlKHthZHZvY2F0ZU5vUGhvbmVGbGFnOiB0cnVlfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy52aWN0aW1TZXJ2aWNlLmdldEZsYWdPcHRpb25ZZXNOb1Vua25vd25zKCkuc3Vic2NyaWJlKFxyXG4gICAgICAoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZmxhZ09wdGlvbiA9IGl0ZW1zO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy52aWN0aW1TZXJ2aWNlLmdldEdlbmRlcnMoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChpdGVtczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5nZW5kZXJzID0gaXRlbXM7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLnZpY3RpbVNlcnZpY2UuZ2V0UHJlZml4ZXMoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChpdGVtczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5wcmVmaXhlcyA9IGl0ZW1zO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy52aWN0aW1TZXJ2aWNlLmdldFN1ZmZpeGVzKCkuc3Vic2NyaWJlKFxyXG4gICAgICAoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc3VmZml4ZXMgPSBpdGVtcztcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIHRoaXMudmljdGltU2VydmljZS5nZXRSZWxhdGlvbnNoaXBUeXBlcygpLnN1YnNjcmliZShcclxuICAgICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuICAgICAgIFxyXG4gICAgICAgICAgdGhpcy5yZWxhdGlvbnNoaXBUeXBlcyA9IGl0ZW1zLmZpbHRlciggKHkpID0+ICgoeS5yZWxhdGlvbnNoaXBDYXRlZ29yeUlkID09PSAnU1QnIHx8IHkucmVsYXRpb25zaGlwQ2F0ZWdvcnlJZCA9PT0gJ0ZNJyApIFxyXG4gICAgICAgICAgJiYgeS5yZWxhdGlvbnNoaXAgIT09ICdBWSdcclxuICAgICAgICAgICYmIHkucmVsYXRpb25zaGlwICE9PSAnVlQnXHJcbiAgICAgICAgICAmJiB5LnJlbGF0aW9uc2hpcCAhPT0gJ0NNRSdcclxuICAgICAgICAgICYmIHkucmVsYXRpb25zaGlwICE9PSAnSEgnXHJcbiAgICAgICAgICAmJiB5LnJlbGF0aW9uc2hpcCAhPT0gJ05DJ1xyXG4gICAgICAgICAgJiYgeS5yZWxhdGlvbnNoaXAgIT09ICdDTCdcclxuICAgICAgICAgICYmIHkucmVsYXRpb25zaGlwICE9PSAnT1AnXHJcblxyXG4gICAgICAgICkpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy52aWN0aW1TZXJ2aWNlLmdldFN1cHBvcnRUeXBlcygpLnN1YnNjcmliZShcclxuICAgICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnZpY3RpbVN1cHBvcnRUeXBlcyA9IGl0ZW1zO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy52aWN0aW1TZXJ2aWNlLmdldFdlYXBvblR5cGVzKCkuc3Vic2NyaWJlKFxyXG4gICAgICAoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMud2VhcG9uVHlwZXMgPSBpdGVtcztcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIHRoaXMudmljdGltU2VydmljZS5nZXREcnVnc1R5cGVzKCkuc3Vic2NyaWJlKFxyXG4gICAgICAoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdkcnVnIGxvb2t1cCBpdGVtcycpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGl0ZW1zKTtcclxuICAgICAgICB0aGlzLmRydWdzID0gaXRlbXM7XHJcbiAgICAgICAgdGhpcy5kcnVncy5wdXNoKHtkcnVnVHlwZUlkOiAnT1RIRVInLCBuYW1lOiAnT3RoZXInfSk7XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5kcnVncyk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICAvLyB0aGlzLnZpY3RpbVNlcnZpY2UuZ2V0RG9ja2V0TGlzdCh0aGlzLm9mZmVuZGVySWQpLnN1YnNjcmliZShcclxuICAgIC8vICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuICAgIC8vICAgICB0aGlzLmRvY2tldGxpc3QgPSBpdGVtcztcclxuICAgIC8vICAgfVxyXG4gICAgLy8gKTtcclxuXHJcbiAgICB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdtaW5vckZsYWcnKS52YWx1ZUNoYW5nZXNcclxuICAgIC5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgIHRoaXMudmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuRmlyc3ROYW1lJykudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgIHRoaXMudmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuTGFzdE5hbWUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5Xb3JrUGhvbmUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5Ib21lUGhvbmUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5DZWxsUGhvbmUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1BZHZvY2F0ZUZsYWcnKS52YWx1ZUNoYW5nZXNcclxuICAgIC5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgIHRoaXMudmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlRmlyc3ROYW1lJykudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgIHRoaXMudmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlTGFzdE5hbWUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVXb3JrUGhvbmUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVIb21lUGhvbmUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVDZWxsUGhvbmUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBiYWNrKCl7XHJcbiAgICAvL3RoaXMub25TYXZlLmVtaXQodGhpcy52aWN0aW1EZXRhaWwpO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWyd2aWN0aW0nXSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVWaWN0aW0oKSB7XHJcbiAgICB0aGlzLmNvbW1vbkRpYWxvZ1NlcnZpY2VcclxuICAgIC5jb25maXJtKCcnLCAnRG8geW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgVmljdGltPycsICdZZXMnLCAnTm8nKVxyXG4gICAgLnN1YnNjcmliZShyZXMgPT4ge3RoaXMucmVzdWx0ID0gIHJlcztcclxuICAgICAgICBpZiAodGhpcy5yZXN1bHQpIHtcclxuICAgICAgICAgICAgdGhpcy52aWN0aW1TZXJ2aWNlLmRlbGV0ZVZpY3RpbXModGhpcy52aWN0aW1EZXRhaWwudmljdGltSWQsIHRoaXMuc3RhZmZJZClcclxuICAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ0RlbGV0ZSBTdWNjZXNzZnVsbHkhJywgJycsIHtcclxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLCB9KTtcclxuICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgKTtcclxuICAgICAgICAgICBcclxuICAgICAgICAgICAvLyB0aGlzLm9uU2F2ZS5lbWl0KHRoaXMudmljdGltRGV0YWlsKTtcclxuICAgICAgICAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3ZpY3RpbSddKTtcclxuICAgICAgICAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgICAgICAgICB9LDE1MDApO1xyXG4gICAgICAgICAgXHJcblxyXG4gICAgICAgIH1cclxuICAgICB9KTtcclxuICB9XHJcblxyXG4gIHJhZGlvTWlub3JDaGFuZ2UoJGV2ZW50OiBNYXRSYWRpb0NoYW5nZSl7XHJcbiAgICBpZiAoJGV2ZW50LnZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuZ3VhcmRpYW5UYWJGbGFnID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMuZ3VhcmRpYW5UYWJGbGFnID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcmFkaW9BZHZvY2F0ZUNoYW5nZSgkZXZlbnQ6IE1hdFJhZGlvQ2hhbmdlKXtcclxuXHJcbiAgICBjb25zdCBhZHZvY2F0ZUxhc3ROYW1lQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlTGFzdE5hbWUnKTtcclxuICAgIGNvbnN0IGFkdm9jYXRlRmlyc3ROYW1lQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlRmlyc3ROYW1lJyk7XHJcblxyXG4gICAgaWYgKCRldmVudC52YWx1ZSA9PT0gXCJZU1wiKSB7XHJcbiAgICAgIHRoaXMuYWR2b2NhdGVUYWJGbGFnID0gdHJ1ZTtcclxuICAgICAgYWR2b2NhdGVMYXN0TmFtZUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgYWR2b2NhdGVGaXJzdE5hbWVDb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICB0aGlzLmFkdm9jYXRlVGFiRmxhZyA9IGZhbHNlO1xyXG4gICAgICBhZHZvY2F0ZUxhc3ROYW1lQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgICAgYWR2b2NhdGVGaXJzdE5hbWVDb250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgfVxyXG4gICAgYWR2b2NhdGVMYXN0TmFtZUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgYWR2b2NhdGVGaXJzdE5hbWVDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuXHJcbiAgfVxyXG5cclxuICByYWRpb0NpY0NoYW5nZSgkZXZlbnQ6IE1hdFJhZGlvQ2hhbmdlKXtcclxuICAgIGlmICgkZXZlbnQudmFsdWUgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5jb21tb25DaGlsZHJlbkRpdkZsYWcgPSB0cnVlO1xyXG4gICAgICAvLyByZXF1cmllIGZpZWxkXHJcbiAgICAgIHRoaXMuc2V0VmFsaWRhdG9ycygnY29tbW9uQ2hpbGRyZW4nKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMuY29tbW9uQ2hpbGRyZW5EaXZGbGFnID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRWYWxpZGF0b3JzKHR5cGUpIHtcclxuICAgIGlmKHR5cGUgPT0gJ2NvbW1vbkNoaWxkcmVuJyl7XHJcbiAgICB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdjb21tb25DaGlsZHJlbk51bWJlcicpLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnY29tbW9uQ2hpbGRyZW5OdW1iZXInKS5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICB9XHJcbiAgIGVsc2UgaWYgKHR5cGUgPT0gJ2Nwbycpe1xyXG4gICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnY3BvRXhwaXJhdGlvbkRhdGUnKS5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIHRoaXMudmljdGltRm9ybS5nZXQoJ2Nwb0V4cGlyYXRpb25EYXRlJykuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuXHJcbiAgIH1cclxuICB9XHJcbiAgcmFkaW9TdXBwb3J0Q2hhbmdlKCRldmVudDogTWF0UmFkaW9DaGFuZ2Upe1xyXG4gICAgaWYgKCRldmVudC52YWx1ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLnN1cHBvcnRJblBsYWNlRGl2RmxhZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICB0aGlzLnN1cHBvcnRJblBsYWNlRGl2RmxhZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICByYWRpb1dlYXBvbkNoYW5nZSgkZXZlbnQ6IE1hdFJhZGlvQ2hhbmdlKXtcclxuICAgIGlmICgkZXZlbnQudmFsdWUgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy53ZWFwb25JbnZvbHZlZERpdkZsYWcgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgdGhpcy53ZWFwb25JbnZvbHZlZERpdkZsYWcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgcmFkaW9EcnVnQ2hhbmdlKCRldmVudDogTWF0UmFkaW9DaGFuZ2Upe1xyXG4gICAgaWYgKCRldmVudC52YWx1ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmRydWdVc2VEaXZGbGFnID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMuZHJ1Z1VzZURpdkZsYWcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJhZGlvQ3BvQ2hhbmdlKCRldmVudDogTWF0UmFkaW9DaGFuZ2Upe1xyXG4gICAgaWYgKCRldmVudC52YWx1ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmNwb0V4cGlyYXRpb25EaXZGbGFnID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zZXRWYWxpZGF0b3JzKCdjcG8nKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMuY3BvRXhwaXJhdGlvbkRpdkZsYWcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZURPQkNoYW5nZSgkZXZlbnQgKXtcclxuICAgdmFyIGFnZURpZk1zID0gRGF0ZS5ub3coKSAtICAkZXZlbnQudmFsdWU7XHJcbiAgIHZhciBhZ2VEYXRlID0gbmV3IERhdGUoYWdlRGlmTXMpO1xyXG4gICAgaWYoIE1hdGguYWJzKGFnZURhdGUuZ2V0VVRDRnVsbFllYXIoKSAtIDE5NzApIDw9IDE4KXtcclxuXHJcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdWaWN0aW0gaXMgYSBNaW5vci4gVGhpcyBpbmZvcm1hdGlvbiBpcyBhIHNlbnNpdGl2ZSBhbmQgc2hvdWxkIG5vdCBiZSBkaXNjbG9zZWQgdG8gYW55IHVuYXV0aG9yaXplZCBwYXJ0aWVzLiBDb250YWN0IHRoZSBsZWdhbCBndWFyZGlhbi4nLCAnJywge1xyXG4gICAgICAgIGR1cmF0aW9uOiA2MDAwLH0pO1xyXG4gICAgICAgIGNvbnN0IG1pbm9yQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ21pbm9yRmxhZycpO1xyXG4gICAgICAgIG1pbm9yQ29udHJvbC5zZXRWYWx1ZSh0cnVlKTtcclxuICAgICAgICB0aGlzLmd1YXJkaWFuVGFiRmxhZyA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBjaGVja090aGVyV2VhcG9uKFdlYXBvblVzZSl7XHJcblxyXG4gICAgY29uc3Qgb3RoZXJXZWFwb25Db250cm9sID0gdGhpcy52aWN0aW1Gb3JtLmdldCgnb3RoZXJXZWFwb24nKTtcclxuICAgICBpZiAoV2VhcG9uVXNlLmluY2x1ZGVzKFwiT1RIRVJcIikpe1xyXG4gICAgIHRoaXMub3RoZXJXZWFwb25GbGFnID0gdHJ1ZTtcclxuICAgICBvdGhlcldlYXBvbkNvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKVxyXG5cclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLm90aGVyV2VhcG9uRmxhZyA9IGZhbHNlO1xyXG4gICAgICBvdGhlcldlYXBvbkNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICB9XHJcbiAgIG90aGVyV2VhcG9uQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICBjaGVja090aGVyRHJ1ZyhEcnVnVXNlKXtcclxuXHJcbiAgICBjb25zdCBvdGhlckRydWdDb250cm9sID0gdGhpcy52aWN0aW1Gb3JtLmdldCgnb3RoZXJEcnVnJyk7XHJcbiAgICAgaWYgKERydWdVc2UuaW5jbHVkZXMoXCJPVEhFUlwiKSl7XHJcbiAgICAgdGhpcy5vdGhlckRydWdGbGFnID0gdHJ1ZTtcclxuICAgICBvdGhlckRydWdDb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZClcclxuXHJcblxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMub3RoZXJEcnVnRmxhZyA9IGZhbHNlO1xyXG4gICAgICBvdGhlckRydWdDb250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG5cclxuXHJcbiAgICB9XHJcbiAgIG90aGVyRHJ1Z0NvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIFwic2F2ZSB2aWN0aW1cIlxyXG4gIHNhdmVWaWN0aW0oKSB7XHJcblxyXG4gIC8vZ3VhcmRpYW4gcGhvbmUgbG9naWNcclxuICBpZiAoIXRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbk5vUGhvbmVGbGFnKVxyXG4gICB7XHJcbiAgICAgaWYgKHRoaXMuZ3VhcmRpYW5Ib21lUGhvbmVDb250cm9sLnZhbHVlKXtcclxuICAgICAgIGlmICh0aGlzLmd1YXJkaWFuSG9tZVBob25lQ29udHJvbC52YWx1ZSAhPT0gbnVsbCl7XHJcbiAgICAgICAgIGlmICh0aGlzLmd1YXJkaWFuSG9tZVBob25lQ29udHJvbC52YWx1ZSAhPT0gXCJcIil7XHJcbiAgICAgICAgICAgICB0aGlzLmd1YXJkaWFuUGhvbmVFeGlzdEZsYWcgPSAgdHJ1ZTtcclxuICAgICAgIH1cclxuICAgICB9XHJcbiAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgIGlmICh0aGlzLmd1YXJkaWFuV29ya1Bob25lQ29udHJvbC52YWx1ZSAhPT0gdW5kZWZpbmVkKXtcclxuICAgICAgaWYgKHRoaXMuZ3VhcmRpYW5Xb3JrUGhvbmVDb250cm9sLnZhbHVlICE9PSBudWxsKXtcclxuICAgICAgICBpZiAodGhpcy5ndWFyZGlhbldvcmtQaG9uZUNvbnRyb2wudmFsdWUgIT09IFwiXCIpe1xyXG4gICAgICAgICAgICB0aGlzLmd1YXJkaWFuUGhvbmVFeGlzdEZsYWcgPSAgdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpZiAodGhpcy5ndWFyZGlhbkNlbGxQaG9uZUNvbnRyb2wudmFsdWUpe1xyXG4gICAgICBpZiAodGhpcy5ndWFyZGlhbkNlbGxQaG9uZUNvbnRyb2wudmFsdWUhPT0gbnVsbCl7XHJcbiAgICAgICAgaWYgKHRoaXMuZ3VhcmRpYW5DZWxsUGhvbmVDb250cm9sLnZhbHVlICE9PSBcIlwiKXtcclxuICAgICAgICAgICAgdGhpcy5ndWFyZGlhblBob25lRXhpc3RGbGFnID0gIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Ob1Bob25lRmxhZycpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuTm9QaG9uZUZsYWcpO1xyXG4gICAgY29uc29sZS5sb2coJ3RoaXMuZ3VhcmRpYW5QaG9uZUV4aXN0RmxhZycpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5ndWFyZGlhblBob25lRXhpc3RGbGFnKTtcclxuXHJcblxyXG4gICAgaWYgKHRoaXMuZ3VhcmRpYW5QaG9uZUV4aXN0RmxhZyA9PT0gZmFsc2UgJiYgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuTm9QaG9uZUZsYWcgPT09IGZhbHNlKVxyXG4gICAge1xyXG4gICAgICAgICAgdGhpcy5waG9uZVZhbGlkYXRpb25GbGFnID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuY29tbW9uRGlhbG9nU2VydmljZVxyXG4gICAgICAgICAgLndhcm5pbmcoJycsICdQbGVhc2UgY2hlY2sgdGhlIGd1YXJkaWFuIHBob25lIGZpZWxkLiBZb3UgaGF2ZSB0byBmaWxsIG9uZSBvZiB0aGUgdGhyZWUgcGhvbmUgZmlsZWRzLicsICdPaycpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7dGhpcy5yZXN1bHQgPSAgcmVzO1xyXG5cclxuICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coJ3RoaXMucGhvbmVWYWxpZGF0aW9uRmxhZycpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5waG9uZVZhbGlkYXRpb25GbGFnKTtcclxuXHJcbiAgICAvL2Fkdm9jYXRlIHBob25lIGxvZ2ljXHJcbiAgICBpZiAoIXRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZU5vUGhvbmVGbGFnKVxyXG4gICAge1xyXG4gICAgICBpZiAodGhpcy5hZHZvY2F0ZUhvbWVQaG9uZUNvbnRyb2wudmFsdWUpe1xyXG4gICAgICAgIGlmICh0aGlzLmFkdm9jYXRlSG9tZVBob25lQ29udHJvbC52YWx1ZSAhPT0gbnVsbCl7XHJcbiAgICAgICAgICBpZiAodGhpcy5hZHZvY2F0ZUhvbWVQaG9uZUNvbnRyb2wudmFsdWUgIT09IFwiXCIpe1xyXG4gICAgICAgICAgICAgIHRoaXMuYWR2b2NhdGVQaG9uZUV4aXN0RmxhZyA9ICB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB9XHJcblxyXG5cclxuXHJcbiAgICAgIGlmICh0aGlzLmFkdm9jYXRlV29ya1Bob25lQ29udHJvbC52YWx1ZSAhPT0gdW5kZWZpbmVkKXtcclxuICAgICAgaWYgKHRoaXMuYWR2b2NhdGVXb3JrUGhvbmVDb250cm9sLnZhbHVlICE9PSBudWxsKXtcclxuICAgICAgICBpZiAodGhpcy5hZHZvY2F0ZVdvcmtQaG9uZUNvbnRyb2wudmFsdWUgIT09IFwiXCIpe1xyXG4gICAgICAgICAgICB0aGlzLmFkdm9jYXRlUGhvbmVFeGlzdEZsYWcgPSAgdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpZiAodGhpcy5hZHZvY2F0ZUNlbGxQaG9uZUNvbnRyb2wudmFsdWUpe1xyXG4gICAgICBpZiAodGhpcy5hZHZvY2F0ZUNlbGxQaG9uZUNvbnRyb2wudmFsdWUgIT09IG51bGwpe1xyXG4gICAgICAgIGlmICh0aGlzLmFkdm9jYXRlQ2VsbFBob25lQ29udHJvbC52YWx1ZSAhPT0gXCJcIil7XHJcbiAgICAgICAgICAgIHRoaXMuYWR2b2NhdGVQaG9uZUV4aXN0RmxhZyA9ICB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVOb1Bob25lRmxhZycpO1xyXG4gY29uc29sZS5sb2codGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlTm9QaG9uZUZsYWcpO1xyXG4gY29uc29sZS5sb2coJ3RoaXMuYWR2b2NhdGVQaG9uZUV4aXN0RmxhZycpO1xyXG4gY29uc29sZS5sb2codGhpcy5hZHZvY2F0ZVBob25lRXhpc3RGbGFnKTtcclxuXHJcbiBpZih0aGlzLmFkdm9jYXRlUGhvbmVFeGlzdEZsYWcgPT09IGZhbHNlICYmIHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZU5vUGhvbmVGbGFnID09PSBmYWxzZSlcclxuIHtcclxuXHJcbiAgICAgICB0aGlzLnBob25lVmFsaWRhdGlvbkZsYWcgPSB0cnVlO1xyXG4gICAgICAgdGhpcy5jb21tb25EaWFsb2dTZXJ2aWNlXHJcbiAgICAgICAud2FybmluZygnJywgJ1BsZWFzZSBjaGVjayB0aGUgYWR2b2NhdGUgcGhvbmUgZmllbGQuIFlvdSBoYXZlIHRvIGZpbGwgb25lIG9mIHRoZSB0aHJlZSBwaG9uZSBmaWxlZHMuJywgJ09rJylcclxuICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHt0aGlzLnJlc3VsdCA9ICByZXM7XHJcblxyXG4gICAgICAgfSk7XHJcbiB9XHJcblxyXG5cclxuICAgIGlmICh0aGlzLmhvbWVQaG9uZUNvbnRyb2wudmFsdWUpe1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuaG9tZVBob25lID0gdGhpcy5ob21lUGhvbmVDb250cm9sLnZhbHVlLnJlcGxhY2UoL1soKVxccy1dL2csICcnKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS5ob21lUGhvbmUgPSAgbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jZWxsUGhvbmVDb250cm9sLnZhbHVlKXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNlbGxQaG9uZSA9IHRoaXMuY2VsbFBob25lQ29udHJvbC52YWx1ZS5yZXBsYWNlKC9bKClcXHMtXS9nLCAnJykgO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNlbGxQaG9uZSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMud29ya1Bob25lQ29udHJvbC52YWx1ZSl7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS53b3JrUGhvbmUgPSAgdGhpcy53b3JrUGhvbmVDb250cm9sLnZhbHVlLnJlcGxhY2UoL1soKVxccy1dL2csICcnKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS53b3JrUGhvbmU9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZ3VhcmRpYW5Ib21lUGhvbmVDb250cm9sLnZhbHVlKXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuSG9tZVBob25lID0gdGhpcy5ndWFyZGlhbkhvbWVQaG9uZUNvbnRyb2wudmFsdWUucmVwbGFjZSgvWygpXFxzLV0vZywgJycpO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuSG9tZVBob25lID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5ndWFyZGlhbkNlbGxQaG9uZUNvbnRyb2wudmFsdWUpe1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5DZWxsUGhvbmUgPSB0aGlzLmd1YXJkaWFuQ2VsbFBob25lQ29udHJvbC52YWx1ZS5yZXBsYWNlKC9bKClcXHMtXS9nLCAnJyk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5DZWxsUGhvbmUgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmd1YXJkaWFuV29ya1Bob25lQ29udHJvbC52YWx1ZSl7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbldvcmtQaG9uZSA9IHRoaXMuZ3VhcmRpYW5Xb3JrUGhvbmVDb250cm9sLnZhbHVlLnJlcGxhY2UoL1soKVxccy1dL2csICcnKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbldvcmtQaG9uZSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGlmICh0aGlzLmFkdm9jYXRlSG9tZVBob25lQ29udHJvbC52YWx1ZSl7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUhvbWVQaG9uZSA9ICB0aGlzLmFkdm9jYXRlSG9tZVBob25lQ29udHJvbC52YWx1ZS5yZXBsYWNlKC9bKClcXHMtXS9nLCAnJylcclxuICAgICB9XHJcbiAgICAgZWxzZXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlSG9tZVBob25lID0gbnVsbDtcclxuICAgICB9XHJcblxyXG4gICAgIGlmICh0aGlzLmFkdm9jYXRlQ2VsbFBob25lQ29udHJvbC52YWx1ZSl7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUNlbGxQaG9uZSA9ICB0aGlzLmFkdm9jYXRlQ2VsbFBob25lQ29udHJvbC52YWx1ZS5yZXBsYWNlKC9bKClcXHMtXS9nLCAnJylcclxuICAgICB9XHJcbiAgICAgZWxzZXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlQ2VsbFBob25lID0gbnVsbDtcclxuICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5hZHZvY2F0ZVdvcmtQaG9uZUNvbnRyb2wudmFsdWUpe1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVXb3JrUGhvbmUgPSAgdGhpcy5hZHZvY2F0ZVdvcmtQaG9uZUNvbnRyb2wudmFsdWUucmVwbGFjZSgvWygpXFxzLV0vZywgJycpXHJcbiAgICAgfVxyXG4gICAgIGVsc2V7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZVdvcmtQaG9uZSA9IG51bGw7XHJcbiAgICAgfVxyXG5cclxuICAgICBcclxuICAgICBpZiAodGhpcy5lbWVyZ2VuY3lDb250YWN0UGhvbmVDb250cm9sLnZhbHVlKXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmVtZXJnZW5jeUNvbnRhY3RQaG9uZSA9IHRoaXMuZW1lcmdlbmN5Q29udGFjdFBob25lQ29udHJvbC52YWx1ZS5yZXBsYWNlKC9bKClcXHMtXS9nLCAnJylcclxuICAgICB9ZWxzZXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmVtZXJnZW5jeUNvbnRhY3RQaG9uZSA9ICBudWxsO1xyXG4gICAgIH1cclxuLy9kYXRhIHByb2Nlc3NcclxuXHJcbiAgY29uc29sZS5sb2coJ3RoaXMucGhvbmVWYWxpZGF0aW9uRmxhZyAxJyk7XHJcbiAgY29uc29sZS5sb2codGhpcy5waG9uZVZhbGlkYXRpb25GbGFnKTtcclxuIGlmICggdGhpcy5waG9uZVZhbGlkYXRpb25GbGFnID09PSBmYWxzZSl7XHJcbiAgICBpZiAodGhpcy52aWN0aW1EZXRhaWwgPT09IG51bGwpe1xyXG5cclxuICAgICAgLy9pbnNlcnQgbmV3IHZpY3RpbVxyXG5cclxuXHJcbiAgICAgIHZhciBteVZpY3RpbVJlbGF0aW9uc2hpcHMgPSBbXTtcclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltUmVsYXRpb25zaGlwcycrdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbVJlbGF0aW9uc2hpcHMpXHJcbiAgICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltUmVsYXRpb25zaGlwcyl7XHJcbiAgICAgICBjb25zb2xlLmxvZygndGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbVJlbGF0aW9uc2hpcHMgMScrdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbVJlbGF0aW9uc2hpcHMpXHJcbiBcclxuICAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1SZWxhdGlvbnNoaXBzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICBjb25zdCB2aWN0aW1SZWxhdGlvbnNoaXA9IDxWaWN0aW1SZWxhdGlvbnNoaXA+e307XHJcbiAgICAgICAgIHZpY3RpbVJlbGF0aW9uc2hpcC52aWN0aW1JZD0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbUlkO1xyXG4gICAgICAgICB2aWN0aW1SZWxhdGlvbnNoaXAudmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBUeXBlSWQ9IGVsZW1lbnQ7XHJcbiAgICAgICAgIHZpY3RpbVJlbGF0aW9uc2hpcC5tb2RpZmllZEJ5PSB0aGlzLnN0YWZmSWQ7XHJcbiAgICAgICAgIG15VmljdGltUmVsYXRpb25zaGlwcy5wdXNoKHZpY3RpbVJlbGF0aW9uc2hpcCk7XHJcbiAgICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltUmVsYXRpb25zaGlwcyAyJyt0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltSWQpXHJcbiAgICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltUmVsYXRpb25zaGlwcyAzJyt0aGlzLnN0YWZmSWQpXHJcbiAgICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltUmVsYXRpb25zaGlwcyA0JytlbGVtZW50KVxyXG4gXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gXHJcbiAgICAgIGNvbnNvbGUubG9nKCdteVZpY3RpbVJlbGF0aW9uc2hpcHMnK215VmljdGltUmVsYXRpb25zaGlwcylcclxuXHJcbiAgICAgdmFyIG15VmljdGltU3VwcG9ydHMgPSBbXTtcclxuICAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbVN1cHBvcnRzKXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbVN1cHBvcnRzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgIGNvbnN0IHZpY3RpbVN1cHBvcnQ9IDxWaWN0aW1TdXBwb3J0Pnt9O1xyXG4gICAgICAgICAgICB2aWN0aW1TdXBwb3J0LnZpY3RpbUlkPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltSWQ7XHJcbiAgICAgICAgICAgIHZpY3RpbVN1cHBvcnQudmljdGltU3VwcG9ydFR5cGVJZD0gZWxlbWVudDtcclxuICAgICAgICAgICAgdmljdGltU3VwcG9ydC5tb2RpZmllZEJ5PSB0aGlzLnN0YWZmSWQ7XHJcbiAgICAgICAgICAgIG15VmljdGltU3VwcG9ydHMucHVzaCh2aWN0aW1TdXBwb3J0KTtcclxuICAgICAgICAgfSk7XHJcbiAgICAgfVxyXG5cclxuXHJcbiAgICB2YXIgbXlWaWN0aW1EcnVnVXNlcyA9IFtdO1xyXG4gICAgY29uc29sZS5sb2coJ3RoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1EcnVnVXNlcyBkdXJpbmcgc2F2ZScpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbURydWdVc2VzKTtcclxuICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltRHJ1Z1VzZXMpe1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltRHJ1Z1VzZXMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICBjb25zdCB2aWN0aW1EcnVnVXNlID0gPFZpY3RpbURydWdVc2U+e307XHJcbiAgICAgdmljdGltRHJ1Z1VzZS5kcnVnVHlwZUlkID0gZWxlbWVudDtcclxuXHJcbiAgICAgaWYgKGVsZW1lbnQgPT09XCJPVEhFUlwiIHx8IGVsZW1lbnQgPT09IFwiXCIgfHwgZWxlbWVudCA9PT0gbnVsbCl7XHJcbiAgICAgIHZpY3RpbURydWdVc2UuZHJ1Z1R5cGVJZCA9IG51bGw7XHJcbiAgICAgIHZpY3RpbURydWdVc2Uub3RoZXJEcnVnID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLm90aGVyRHJ1ZztcclxuICAgICB9XHJcbiAgICAgZWxzZXtcclxuICAgICAgdmljdGltRHJ1Z1VzZS5kcnVnVHlwZUlkID0gZWxlbWVudDtcclxuICAgICAgdmljdGltRHJ1Z1VzZS5vdGhlckRydWcgPSBudWxsO1xyXG4gICAgIH1cclxuXHJcbiAgICAgdmljdGltRHJ1Z1VzZS5tb2RpZmllZEJ5ID0gdGhpcy5zdGFmZklkO1xyXG4gICAgIHZpY3RpbURydWdVc2UudmljdGltSWQgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltSWQ7XHJcbiAgICAgbXlWaWN0aW1EcnVnVXNlcy5wdXNoKHZpY3RpbURydWdVc2UpO1xyXG4gICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltRHJ1Z1VzZXMgZHVyaW5nIHNhdmUgMScpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbURydWdVc2VzKTtcclxuXHJcbiAgdmFyIG15VmljdGltV2VhcG9uVXNlcyA9IFtdO1xyXG5cclxuICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbVdlYXBvblVzZXMpe1xyXG4gICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbVdlYXBvblVzZXMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgIGNvbnN0IHZpY3RpbVdlYXBvblVzZSA9IDxWaWN0aW1XZWFwb25Vc2U+e307XHJcbiAgICAgICB2aWN0aW1XZWFwb25Vc2UudmljdGltSWQ9ICB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltSWQ7XHJcbiAgICAgICB2aWN0aW1XZWFwb25Vc2Uud2VhcG9uVHlwZUlkPSBlbGVtZW50O1xyXG5cclxuICAgICAgIGlmIChlbGVtZW50ID09XCJPVEhFUlwiKXtcclxuICAgICAgICB2aWN0aW1XZWFwb25Vc2Uub3RoZXJXZWFwb24gPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUub3RoZXJXZWFwb247XHJcbiAgICAgICB9XHJcbiAgICAgICBlbHNle1xyXG4gICAgICAgIHZpY3RpbVdlYXBvblVzZS5vdGhlcldlYXBvbiA9IG51bGw7XHJcbiAgICAgICB9XHJcbiAgICAgICB2aWN0aW1XZWFwb25Vc2UubW9kaWZpZWRCeT0gdGhpcy5zdGFmZklkO1xyXG4gICAgICAgbXlWaWN0aW1XZWFwb25Vc2VzLnB1c2godmljdGltV2VhcG9uVXNlKTtcclxuICAgfSk7XHJcbiB9XHJcblxyXG4gY29uc3QgbmV3VmljdGltID0ge1xyXG4gICB2aWN0aW1JZDogMCxcclxuICAgb2ZmZW5kZXJJZDogdGhpcy5vZmZlbmRlcklkLFxyXG4gIC8vICB2aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZDpcclxuICAvLyAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBUeXBlSWQsXHJcbiAgIGxhc3ROYW1lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUubGFzdE5hbWUsXHJcbiAgIGZpcnN0TmFtZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmZpcnN0TmFtZSxcclxuICAgbWlkZGxlTmFtZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLm1pZGRsZU5hbWVcclxuICAgICA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5taWRkbGVOYW1lXHJcbiAgICAgOiBudWxsLFxyXG4gICBwcmVmaXhJZDogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnByZWZpeElkXHJcbiAgICAgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUucHJlZml4SWRcclxuICAgICA6IG51bGwsXHJcbiAgIHN1ZmZpeElkOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuc3VmZml4SWRcclxuICAgICA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5zdWZmaXhJZFxyXG4gICAgIDogbnVsbCxcclxuICAgYmlydGhEYXRlOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYmlydGhEYXRlXHJcbiAgICAgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYmlydGhEYXRlXHJcbiAgICAgOiBudWxsLFxyXG4gICBnZW5kZXJDb2RlOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ2VuZGVyQ29kZVxyXG4gICAgID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmdlbmRlckNvZGVcclxuICAgICA6IG51bGwsXHJcbiAgIHVuZGVyU3VwZXJ2aXNpb25GbGFnOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUudW5kZXJTdXBlcnZpc2lvbkZsYWcsXHJcbiAgIG1pbm9yRmxhZzogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLm1pbm9yRmxhZyxcclxuICAgdmljdGltQWR2b2NhdGVGbGFnOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltQWR2b2NhdGVGbGFnLFxyXG5cclxuICAgaG9tZVBob25lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuaG9tZVBob25lLFxyXG4gICB3b3JrUGhvbmU6IHRoaXMudmljdGltRm9ybS52YWx1ZS53b3JrUGhvbmUsXHJcbiAgIGNlbGxQaG9uZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNlbGxQaG9uZSxcclxuICAgZW1haWw6IHRoaXMudmljdGltRm9ybS52YWx1ZS5lbWFpbCA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5lbWFpbCA6IG51bGwsXHJcbiAgIGFkZHJlc3NJZDogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkZHJlc3NJZFxyXG4gICAgID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkZHJlc3NJZFxyXG4gICAgIDogMSxcclxuICAgZW1lcmdlbmN5Q29udGFjdDogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmVtZXJnZW5jeUNvbnRhY3RcclxuICAgICA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5lbWVyZ2VuY3lDb250YWN0XHJcbiAgICAgOiBudWxsLFxyXG4gICBlbWVyZ2VuY3lDb250YWN0UGhvbmU6IHRoaXMudmljdGltRm9ybS52YWx1ZS5lbWVyZ2VuY3lDb250YWN0UGhvbmUsXHJcbiAgIGNvbW1vbkNoaWxkcmVuRmxhZzogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNvbW1vbkNoaWxkcmVuRmxhZyxcclxuICAgY29tbW9uQ2hpbGRyZW5OdW1iZXI6IHRoaXMudmljdGltRm9ybS52YWx1ZS5jb21tb25DaGlsZHJlbk51bWJlcixcclxuICAgY3BvRXhwaXJhdGlvbkZsYWc6IHRoaXMudmljdGltRm9ybS52YWx1ZS5jcG9FeHBpcmF0aW9uRmxhZyxcclxuICAgY3BvRXhwaXJhdGlvbkRhdGU6IHRoaXMudmljdGltRm9ybS52YWx1ZS5jcG9FeHBpcmF0aW9uRGF0ZVxyXG4gICAgID8gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNwb0V4cGlyYXRpb25EYXRlLCBcInNob3J0XCIpXHJcbiAgICAgOiBudWxsLFxyXG4gICBzdXBwb3J0SW5QbGFjZUZsYWc6IHRoaXMudmljdGltRm9ybS52YWx1ZS5zdXBwb3J0SW5QbGFjZUZsYWcsXHJcbiAgIHdlYXBvbkludm9sdmVkRmxhZzogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLndlYXBvbkludm9sdmVkRmxhZyxcclxuICAgZHJ1Z1VzZUZsYWc6IHRoaXMudmljdGltRm9ybS52YWx1ZS5kcnVnVXNlRmxhZyxcclxuICAgYWxjb2hvbFVzZUZsYWc6IHRoaXMudmljdGltRm9ybS52YWx1ZS5hbGNvaG9sVXNlRmxhZyxcclxuICAgYWNjZXNzUmlzazogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFjY2Vzc1Jpc2ssXHJcbiAgIG1vZGlmaWVkQnk6IHRoaXMuc3RhZmZJZCxcclxuICAgdlZpY3RpbUFkdm9jYXRlOiBudWxsLFxyXG4gICB2VmljdGltR3VhcmRpYW46IG51bGwsXHJcbiAgIHZpY3RpbURydWdVc2VzOiBteVZpY3RpbURydWdVc2VzLFxyXG4gICB2aWN0aW1TdXBwb3J0czogbXlWaWN0aW1TdXBwb3J0cyxcclxuICAgdmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBzOiBteVZpY3RpbVJlbGF0aW9uc2hpcHMsXHJcbiAgIHZpY3RpbVdlYXBvblVzZXM6IG15VmljdGltV2VhcG9uVXNlcyxcclxuXHJcbiAgIGFkdm9jYXRlRmlyc3ROYW1lOiBudWxsLFxyXG4gICBhZHZvY2F0ZUxhc3ROYW1lOiBudWxsLFxyXG4gICBhZHZvY2F0ZUVtYWlsOiBudWxsLFxyXG4gICBhZHZvY2F0ZVByZWZpeElkOiBudWxsLFxyXG4gICBhZHZvY2F0ZVN1ZmZpeElkOiBudWxsLFxyXG4gICBhZHZvY2F0ZU5vUGhvbmVGbGFnOiBudWxsLFxyXG4gICBhZHZvY2F0ZUhvbWVQaG9uZTogbnVsbCxcclxuICAgYWR2b2NhdGVXb3JrUGhvbmU6IG51bGwsXHJcbiAgIGFkdm9jYXRlQ2VsbFBob25lOiBudWxsLFxyXG4gICBhZHZvY2F0ZUFkZHJlc3NJZDogbnVsbCxcclxuICAgZ3VhcmRpYW5GaXJzdE5hbWU6IG51bGwsXHJcbiAgIGd1YXJkaWFuTGFzdE5hbWU6IG51bGwsXHJcbiAgIGd1YXJkaWFuRW1haWw6IG51bGwsXHJcbiAgIGd1YXJkaWFuUHJlZml4SWQ6IG51bGwsXHJcbiAgIGd1YXJkaWFuU3VmZml4SWQ6IG51bGwsXHJcbiAgIGd1YXJkaWFuTm9QaG9uZUZsYWc6IG51bGwsXHJcbiAgIGd1YXJkaWFuSG9tZVBob25lOiBudWxsLFxyXG4gICBndWFyZGlhbldvcmtQaG9uZTogbnVsbCxcclxuICAgZ3VhcmRpYW5DZWxsUGhvbmU6IG51bGwsXHJcbiAgIGd1YXJkaWFuQWRkcmVzc0lkOiBudWxsLFxyXG4gICBndWFyZGlhbkJpcnRoRGF0ZTogbnVsbCxcclxuICAgLy9yZWxhdGlvbnNoaXA6IG51bGwsXHJcbiAgIC8vcmVsYXRpb25zaGlwOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBUeXBlSWQ/IHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZCA6IG51bGwsXHJcbiAgIGFsbG93Q3Nvc2FDb250YWN0RmxhZzogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFsbG93Q3Nvc2FDb250YWN0RmxhZ1xyXG4gICAgID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFsbG93Q3Nvc2FDb250YWN0RmxhZ1xyXG4gICAgIDogbnVsbCxcclxuICAgbGl2ZVdpdGhPZmZlbmRlckZsYWc6IHRoaXMudmljdGltRm9ybS52YWx1ZS5saXZlV2l0aE9mZmVuZGVyRmxhZ1xyXG4gICAgID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmxpdmVXaXRoT2ZmZW5kZXJGbGFnXHJcbiAgICAgOiBudWxsLFxyXG4gfTtcclxuXHJcbiAgICAgaWYgKHRoaXMuYWRkcmVzc0lkID09IDApe1xyXG4gICAgICBuZXdWaWN0aW0uYWRkcmVzc0lkID0gbnVsbDtcclxuICAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdWaWN0aW0uYWRkcmVzc0lkID0gIHRoaXMuYWRkcmVzc0lkO1xyXG4gICAgIH1cclxuXHJcbiAgICAgbmV3VmljdGltLmFkdm9jYXRlQWRkcmVzc0lkID0gIHRoaXMuYWR2b2NhdGVBZGRyZXNzSWQ7XHJcbiAgICAgbmV3VmljdGltLmd1YXJkaWFuQWRkcmVzc0lkID0gIHRoaXMuZ3VhcmRpYW5BZGRyZXNzSWQ7XHJcblxyXG5cclxuICAgICAgY29uc29sZS5sb2coJ25ld1ZpY3RpbScpO1xyXG4gICAgICBjb25zb2xlLmxvZyhuZXdWaWN0aW0pO1xyXG4gICAgICB0aGlzLnZpY3RpbVNlcnZpY2UucG9zdFZpY3RpbXMobmV3VmljdGltKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgIGNvbnN0IGlkID0gaXRlbXMgPyBpdGVtcy52aWN0aW1JZCA6ICcnO1xyXG5cclxuICAgICAgICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1BZHZvY2F0ZUZsYWcgPT0gXCJZU1wiKXtcclxuXHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnYWRkIGFkdm9jYXRlJyk7XHJcbiAgICAgICAgICBjb25zdCB2aWN0aW1BZHZvY2F0ZTogVmljdGltQWR2b2NhdGUgPSB7XHJcbiAgICAgICAgICB2aWN0aW1BZHZvY2F0ZUlkOiBpZCxcclxuICAgICAgICAgIGxhc3ROYW1lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVMYXN0TmFtZSxcclxuICAgICAgICAgIGZpcnN0TmFtZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlRmlyc3ROYW1lLFxyXG4gICAgICAgICAgcHJlZml4SWQ6IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZVByZWZpeElkLFxyXG4gICAgICAgICAgc3VmZml4SWQ6IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZVN1ZmZpeElkLFxyXG4gICAgICAgICAgYWRkcmVzc0lkOiB0aGlzLmFkdm9jYXRlQWRkcmVzc0lkID8gdGhpcy5hZHZvY2F0ZUFkZHJlc3NJZDogbnVsbCxcclxuICAgICAgICAgIG5vUGhvbmVGbGFnOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVOb1Bob25lRmxhZyA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZU5vUGhvbmVGbGFnOiBudWxsLFxyXG4gICAgICAgICAgaG9tZVBob25lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVIb21lUGhvbmUsXHJcbiAgICAgICAgICB3b3JrUGhvbmU6IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZVdvcmtQaG9uZSxcclxuICAgICAgICAgIGNlbGxQaG9uZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlQ2VsbFBob25lLFxyXG4gICAgICAgICAgZW1haWw6IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUVtYWlsLFxyXG4gICAgICAgICAgbW9kaWZpZWRCeTogdGhpcy5zdGFmZklkXHJcbiAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMudmljdGltU2VydmljZS5wb3N0VmljdGltQWR2b2NhdGUoaWQsIHZpY3RpbUFkdm9jYXRlKS5zdWJzY3JpYmUoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLm1pbm9yRmxhZyA9PSB0cnVlKXtcclxuICAgICAgICBjb25zdCB2aWN0aW1HdWFyZGlhbjogVmljdGltR3VhcmRpYW4gPSB7XHJcbiAgICAgICAgICB2aWN0aW1HdWFyZGlhbklkOiBpZCxcclxuICAgICAgICAgIGxhc3ROYW1lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5MYXN0TmFtZSxcclxuICAgICAgICAgIGZpcnN0TmFtZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuRmlyc3ROYW1lLFxyXG4gICAgICAgICAgcHJlZml4SWQ6IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhblByZWZpeElkLFxyXG4gICAgICAgICAgc3VmZml4SWQ6IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhblN1ZmZpeElkLFxyXG4gICAgICAgICAgYmlydGhEYXRlOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5CaXJ0aERhdGUsXHJcbiAgICAgICAgICBhZGRyZXNzSWQ6IHRoaXMuZ3VhcmRpYW5BZGRyZXNzSWQ/IHRoaXMuZ3VhcmRpYW5BZGRyZXNzSWQ6IG51bGwsXHJcbiAgICAgICAgICBub1Bob25lRmxhZzogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuTm9QaG9uZUZsYWc/IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbk5vUGhvbmVGbGFnOiBudWxsLFxyXG4gICAgICAgICAgaG9tZVBob25lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Ib21lUGhvbmUsXHJcbiAgICAgICAgICB3b3JrUGhvbmU6IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbldvcmtQaG9uZSxcclxuICAgICAgICAgIGNlbGxQaG9uZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuQ2VsbFBob25lLFxyXG4gICAgICAgICAgZW1haWw6IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbkVtYWlsLFxyXG4gICAgICAgICAgbW9kaWZpZWRCeTogdGhpcy5zdGFmZklkXHJcbiAgICAgICB9O1xyXG4gICAgICAgIHRoaXMudmljdGltU2VydmljZS5wb3N0VmljdGltR3VhcmRpYW4oaWQsIHZpY3RpbUd1YXJkaWFuKS5zdWJzY3JpYmUoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ0FkZCBWaWN0aW0gU3VjY2Vzc2Z1bGx5IScsICcnLCB7XHJcbiAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcclxuICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgLy9pbnNlcnQgbmV3XHJcbiAgICAgICAgdGhpcy52aWN0aW1EZXRhaWwgPSBpdGVtcztcclxuICAgICAgICBjb25zb2xlLmxvZygndGhlIGl0ZW1zIGFyZSAtPicraXRlbXMpO1xyXG4gICAgICAgIC8vIGlmICh0aGlzLmlzSW50YWtlPT09dHJ1ZSl7XHJcbiAgICAgICAgLy8gICBkZWJ1Z2dlclxyXG4gICAgICAgIC8vICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWyd2aWN0aW1MaXN0J10pO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICAvLyBlbHNlXHJcbiAgICAgICAgLy8ge1xyXG4gICAgICAgIC8vICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWyd2aWN0aW1MaXN0J10pO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICAvLyAvL3RoaXMub25TYXZlLmVtaXQodGhpcy52aWN0aW1EZXRhaWwpO1xyXG5cclxuICAgICAgfVxyXG4gICAgICk7XHJcblxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIC8vdXBkYXRlIHZpY3RpbVxyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC51bmRlclN1cGVydmlzaW9uRmxhZyA9IHRoaXMudmljdGltRm9ybS52YWx1ZS51bmRlclN1cGVydmlzaW9uRmxhZztcclxuICAgICAgLy90aGlzLnZpY3RpbURldGFpbC52aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZCA9ICB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBUeXBlSWQ7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLmxhc3ROYW1lID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmxhc3ROYW1lO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5maXJzdE5hbWUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZmlyc3ROYW1lO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5taWRkbGVOYW1lID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLm1pZGRsZU5hbWU7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLnByZWZpeElkID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnByZWZpeElkID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnByZWZpeElkIDogbnVsbDtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuc3VmZml4SWQgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuc3VmZml4SWQgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUuc3VmZml4SWQgOiBudWxsO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5iaXJ0aERhdGUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYmlydGhEYXRlO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5nZW5kZXJDb2RlID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmdlbmRlckNvZGU7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLm1pbm9yRmxhZyA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5taW5vckZsYWc7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLmhvbWVQaG9uZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5ob21lUGhvbmU7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLndvcmtQaG9uZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS53b3JrUGhvbmU7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLmNlbGxQaG9uZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5jZWxsUGhvbmU7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLmVtYWlsID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmVtYWlsO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC52aWN0aW1BZHZvY2F0ZUZsYWcgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltQWR2b2NhdGVGbGFnO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5lbWVyZ2VuY3lDb250YWN0ID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmVtZXJnZW5jeUNvbnRhY3Q7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLmVtZXJnZW5jeUNvbnRhY3RQaG9uZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5lbWVyZ2VuY3lDb250YWN0UGhvbmU7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLmNvbW1vbkNoaWxkcmVuRmxhZyA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5jb21tb25DaGlsZHJlbkZsYWc7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLmNvbW1vbkNoaWxkcmVuTnVtYmVyID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNvbW1vbkNoaWxkcmVuTnVtYmVyO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5jcG9FeHBpcmF0aW9uRGF0ZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5jcG9FeHBpcmF0aW9uRGF0ZTtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuY3BvRXhwaXJhdGlvbkZsYWcgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuY3BvRXhwaXJhdGlvbkZsYWc7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLnN1cHBvcnRJblBsYWNlRmxhZyA9ICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuc3VwcG9ydEluUGxhY2VGbGFnO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC53ZWFwb25JbnZvbHZlZEZsYWcgPSAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLndlYXBvbkludm9sdmVkRmxhZztcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuZHJ1Z1VzZUZsYWcgPSAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmRydWdVc2VGbGFnO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5hbGNvaG9sVXNlRmxhZyA9ICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWxjb2hvbFVzZUZsYWc7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLmFjY2Vzc1Jpc2sgPSAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFjY2Vzc1Jpc2s7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLmFkZHJlc3NJZCA9IHRoaXMuYWRkcmVzc0lkO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5hbGxvd0Nzb3NhQ29udGFjdEZsYWcgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWxsb3dDc29zYUNvbnRhY3RGbGFnO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5saXZlV2l0aE9mZmVuZGVyRmxhZyA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5saXZlV2l0aE9mZmVuZGVyRmxhZztcclxuXHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLnZpY3RpbVN1cHBvcnRzID0gW107XHJcbiAgICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltU3VwcG9ydHMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICBjb25zdCB2aWN0aW1TdXBwb3J0PSA8VmljdGltU3VwcG9ydD57fTtcclxuICAgICAgICAgICAgICB2aWN0aW1TdXBwb3J0LnZpY3RpbUlkPSB0aGlzLnZpY3RpbURldGFpbC52aWN0aW1JZDtcclxuICAgICAgICAgICAgICB2aWN0aW1TdXBwb3J0LnZpY3RpbVN1cHBvcnRUeXBlSWQ9IGVsZW1lbnQ7XHJcbiAgICAgICAgICAgICAgdmljdGltU3VwcG9ydC5tb2RpZmllZEJ5PSB0aGlzLnN0YWZmSWQ7XHJcbiAgICAgICAgICAgICAgdGhpcy52aWN0aW1EZXRhaWwudmljdGltU3VwcG9ydHMucHVzaCh2aWN0aW1TdXBwb3J0KTtcclxuICAgICAgfSk7XHJcblxyXG5cclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwudmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBzID0gW107XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1SZWxhdGlvbnNoaXBzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICBjb25zdCB2aWN0aW1SZWxhdGlvbnNoaXA9IDxWaWN0aW1SZWxhdGlvbnNoaXA+e307XHJcbiAgICAgICB2aWN0aW1SZWxhdGlvbnNoaXAudmljdGltSWQ9IHRoaXMudmljdGltRGV0YWlsLnZpY3RpbUlkO1xyXG4gICAgICAgdmljdGltUmVsYXRpb25zaGlwLnZpY3RpbU9mZmVuZGVyUmVsYXRpb25zaGlwVHlwZUlkPSBlbGVtZW50O1xyXG4gICAgICAgdmljdGltUmVsYXRpb25zaGlwLm1vZGlmaWVkQnk9IHRoaXMuc3RhZmZJZDtcclxuICAgICAgICAgICAgIHRoaXMudmljdGltRGV0YWlsLnZpY3RpbU9mZmVuZGVyUmVsYXRpb25zaGlwcy5wdXNoKHZpY3RpbVJlbGF0aW9uc2hpcCk7XHJcbiAgICAgfSk7XHJcblxyXG5cclxuICAgICAgIHRoaXMudmljdGltRGV0YWlsLnZpY3RpbURydWdVc2VzID0gW107XHJcblxyXG4gICAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1EcnVnVXNlcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZpY3RpbURydWdVc2UgPSA8VmljdGltRHJ1Z1VzZT57fTtcclxuICAgICAgICB2aWN0aW1EcnVnVXNlLmRydWdUeXBlSWQgPSBlbGVtZW50O1xyXG4gICAgICAgY29uc29sZS5sb2coJ3RoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1EcnVnVXNlcyBiZWZvcmUnKVxyXG4gICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbURydWdVc2VzKVxyXG5cclxuICAgICAgICBpZiAoZWxlbWVudCA9PT0gXCJPVEhFUlwiIHx8IGVsZW1lbnQgPT09IFwiXCIgICl7XHJcbiAgICAgICAgICB2aWN0aW1EcnVnVXNlLmRydWdUeXBlSWQgPSBudWxsO1xyXG4gICAgICAgICAgdmljdGltRHJ1Z1VzZS5vdGhlckRydWcgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUub3RoZXJEcnVnO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICB2aWN0aW1EcnVnVXNlLmRydWdUeXBlSWQgPSBlbGVtZW50O1xyXG4gICAgICAgICAgdmljdGltRHJ1Z1VzZS5vdGhlckRydWcgPSBudWxsO1xyXG4gICAgICAgICB9XHJcblxyXG4gICAgICAgIHZpY3RpbURydWdVc2UubW9kaWZpZWRCeSA9IHRoaXMuc3RhZmZJZDtcclxuICAgICAgICB2aWN0aW1EcnVnVXNlLnZpY3RpbUlkID0gdGhpcy52aWN0aW1EZXRhaWwudmljdGltSWQ7XHJcbiAgICAgICAgdGhpcy52aWN0aW1EZXRhaWwudmljdGltRHJ1Z1VzZXMucHVzaCh2aWN0aW1EcnVnVXNlKTtcclxuXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltRHJ1Z1VzZXMuZmlsdGVyKHdvcmQgPT4gKCAhKHdvcmQuZHJ1Z1R5cGVJZCA9PT0gbnVsbCAgJiYgd29yZC5vdGhlckRydWcgPT09IG51bGwpICAgICkpO1xyXG5cclxuICAgICB0aGlzLnZpY3RpbURldGFpbC52aWN0aW1XZWFwb25Vc2VzID0gW107XHJcbiAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbVdlYXBvblVzZXMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgIGNvbnN0IHZpY3RpbVdlYXBvblVzZSA9IDxWaWN0aW1XZWFwb25Vc2U+e307XHJcbiAgICAgICAgICB2aWN0aW1XZWFwb25Vc2UudmljdGltSWQ9IHRoaXMudmljdGltRGV0YWlsLnZpY3RpbUlkO1xyXG4gICAgICAgICAgdmljdGltV2VhcG9uVXNlLndlYXBvblR5cGVJZD0gZWxlbWVudDtcclxuXHJcbiAgICAgICAgIGlmIChlbGVtZW50ID09XCJPVEhFUlwiKXtcclxuICAgICAgICAgIHZpY3RpbVdlYXBvblVzZS5vdGhlcldlYXBvbj10aGlzLnZpY3RpbUZvcm0udmFsdWUub3RoZXJXZWFwb247XHJcbiAgICAgICAgIH1cclxuICAgICAgICAgZWxzZXtcclxuICAgICAgICAgIHZpY3RpbVdlYXBvblVzZS5vdGhlcldlYXBvbiA9IG51bGw7XHJcbiAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB2aWN0aW1XZWFwb25Vc2UubW9kaWZpZWRCeT0gdGhpcy5zdGFmZklkO1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1EZXRhaWwudmljdGltV2VhcG9uVXNlcy5wdXNoKHZpY3RpbVdlYXBvblVzZSk7XHJcblxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbURldGFpbCBiZWZvcmUgZW1pdCcpO1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbURldGFpbCk7XHJcblxyXG5cclxuICAgICAgdGhpcy52aWN0aW1TZXJ2aWNlLnB1dFZpY3RpbXModGhpcy52aWN0aW1EZXRhaWwudmljdGltSWQsdGhpcy52aWN0aW1EZXRhaWwpLnN1YnNjcmliZShcclxuICAgICAgICAoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdVcGRhdGUgU3VjY2Vzc2Z1bGx5IScsICcnLCB7XHJcbiAgICAgICAgICAgICAgICAgZHVyYXRpb246IDMwMDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgLy9BZHZvY2F0ZSBzZWN0aW9uXHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUFkdm9jYXRlLnZpY3RpbUFkdm9jYXRlSWQgPSB0aGlzLnZpY3RpbURldGFpbC52aWN0aW1JZDtcclxuICAgICAgICAgIHRoaXMudmljdGltQWR2b2NhdGUubGFzdE5hbWU9IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUxhc3ROYW1lO1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1BZHZvY2F0ZS5maXJzdE5hbWU9IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUZpcnN0TmFtZTtcclxuICAgICAgICAgIHRoaXMudmljdGltQWR2b2NhdGUucHJlZml4SWQ9IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZVByZWZpeElkID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlUHJlZml4SWQgOiBudWxsO1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1BZHZvY2F0ZS5zdWZmaXhJZD0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlU3VmZml4SWQgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVTdWZmaXhJZCA6IG51bGw7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUFkdm9jYXRlLmFkZHJlc3NJZD0gdGhpcy5hZHZvY2F0ZUFkZHJlc3NJZCA/IHRoaXMuYWR2b2NhdGVBZGRyZXNzSWQgOiBudWxsO1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1BZHZvY2F0ZS5ub1Bob25lRmxhZz0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlTm9QaG9uZUZsYWc/IHRydWU6IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1BZHZvY2F0ZS5ob21lUGhvbmU9IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUhvbWVQaG9uZTtcclxuICAgICAgICAgIHRoaXMudmljdGltQWR2b2NhdGUud29ya1Bob25lPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVXb3JrUGhvbmU7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUFkdm9jYXRlLmNlbGxQaG9uZT0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlQ2VsbFBob25lO1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1BZHZvY2F0ZS5lbWFpbD0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlRW1haWwgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVFbWFpbCA6IG51bGw7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUFkdm9jYXRlLm1vZGlmaWVkQnk9IHRoaXMuc3RhZmZJZDtcclxuXHJcbiAgICAgICBjb25zb2xlLmxvZygnd29yayBvbiBhZHZvY2F0ZSBwYXJ0Jyk7XHJcbiAgICAgIGlmICh0aGlzLnZpY3RpbURldGFpbC52aWN0aW1BZHZvY2F0ZUZsYWc9PSdZUycpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ3dvcmsgb24gYWR2b2NhdGUgZmxhZyBpcyBZUyAnKTtcclxuICAgICAgICAgIGlmKHRoaXMudmljdGltRGV0YWlsLmFkdm9jYXRlRmlyc3ROYW1lICE9IG51bGwpe1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY2hlY2sgYWR2b2NhdGUgZmlzcnQgbmFtZSAnKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1EZXRhaWwuYWR2b2NhdGVGaXJzdE5hbWUpO1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1TZXJ2aWNlLnB1dFZpY3RpbUFkdm9jYXRlKHRoaXMudmljdGltRGV0YWlsLnZpY3RpbUlkLHRoaXMudmljdGltQWR2b2NhdGUpLnN1YnNjcmliZShcclxuICAgICAgICAgIHJlc3A9Pnt9ICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdhZGQgYWR2b2NhdGUnKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1BZHZvY2F0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMudmljdGltU2VydmljZS5wb3N0VmljdGltQWR2b2NhdGUodGhpcy52aWN0aW1EZXRhaWwudmljdGltSWQsIHRoaXMudmljdGltQWR2b2NhdGUpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAvLyBndWFyZGlhbiBzZWN0aW9uXHJcbiAgICB0aGlzLnZpY3RpbUd1YXJkaWFuLnZpY3RpbUd1YXJkaWFuSWQgPSB0aGlzLnZpY3RpbURldGFpbC52aWN0aW1JZDtcclxuICAgIHRoaXMudmljdGltR3VhcmRpYW4ubGFzdE5hbWUgPSAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuTGFzdE5hbWU7XHJcbiAgICB0aGlzLnZpY3RpbUd1YXJkaWFuLmZpcnN0TmFtZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbkZpcnN0TmFtZTtcclxuICAgIHRoaXMudmljdGltR3VhcmRpYW4ucHJlZml4SWQgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5QcmVmaXhJZCA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhblByZWZpeElkIDogbnVsbDtcclxuICAgIHRoaXMudmljdGltR3VhcmRpYW4uc3VmZml4SWQgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5TdWZmaXhJZCA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhblN1ZmZpeElkIDogbnVsbDtcclxuICAgIHRoaXMudmljdGltR3VhcmRpYW4uYWRkcmVzc0lkID0gdGhpcy5ndWFyZGlhbkFkZHJlc3NJZCA/IHRoaXMuZ3VhcmRpYW5BZGRyZXNzSWQgOiBudWxsO1xyXG4gICAgdGhpcy52aWN0aW1HdWFyZGlhbi5ub1Bob25lRmxhZyA9ICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Ob1Bob25lRmxhZz8gdHJ1ZTogZmFsc2U7XHJcbiAgICB0aGlzLnZpY3RpbUd1YXJkaWFuLmhvbWVQaG9uZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbkhvbWVQaG9uZTtcclxuICAgIHRoaXMudmljdGltR3VhcmRpYW4ud29ya1Bob25lID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuV29ya1Bob25lO1xyXG4gICAgdGhpcy52aWN0aW1HdWFyZGlhbi5jZWxsUGhvbmUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5DZWxsUGhvbmU7XHJcbiAgICB0aGlzLnZpY3RpbUd1YXJkaWFuLmVtYWlsID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuRW1haWwgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5FbWFpbCA6IG51bGw7XHJcbiAgICB0aGlzLnZpY3RpbUd1YXJkaWFuLm1vZGlmaWVkQnkgPSB0aGlzLnN0YWZmSWQ7XHJcblxyXG4gICAgaWYgKHRoaXMudmljdGltRGV0YWlsLm1pbm9yRmxhZyA9PSB0cnVlKVxyXG4gICAge1xyXG4gICAgICAgaWYodGhpcy52aWN0aW1EZXRhaWwuZ3VhcmRpYW5GaXJzdE5hbWUgIT0gbnVsbCApXHJcbiAgICAgICAgdGhpcy52aWN0aW1TZXJ2aWNlLnB1dFZpY3RpbUd1YXJkaWFuKHRoaXMudmljdGltRGV0YWlsLnZpY3RpbUlkLHRoaXMudmljdGltR3VhcmRpYW4pLnN1YnNjcmliZShcclxuICAgICAgICByZXNwPT57XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdhZGQgZ3VyZGlhbicpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1HdWFyZGlhbik7XHJcbiAgICAgICAgIHRoaXMudmljdGltU2VydmljZS5wb3N0VmljdGltR3VhcmRpYW4odGhpcy52aWN0aW1EZXRhaWwudmljdGltSWQsIHRoaXMudmljdGltR3VhcmRpYW4pLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICk7XHJcblxyXG4gICAgfVxyXG4gIH0vL2VuZCBvZiB0aGlzLnBob25lVmFsaWRhdGlvbkZsYWcgPSBmYWxzZVxyXG5cclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbURldGFpbCcpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy52aWN0aW1EZXRhaWwpO1xyXG4gICAgdGhpcy5vblNhdmUuZW1pdCh0aGlzLnZpY3RpbURldGFpbCk7XHJcbiAgICAgIH1cclxuXHJcbiAgLy8jZW5kcmVnaW9uIFwic2F2ZSB2aWN0aW1cIlxyXG4gICAgICBhZGRDb250YWN0KCl7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3ZpY3RpbUNvbnRhY3QnLHRoaXMudmljdGltSWRdKTtcclxuICAgICAgfVxyXG4gICAgICBmb3JtYXRMYWJlbCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICB9XHJcblxyXG5cclxuXHJcbiAgICAgIHVwZGF0ZSgpIHtcclxuICAgICAgICAvLyB0aGlzLnRhc2sudXBkYXRlKHRhc2sgPT4ge1xyXG4gICAgICAgIC8vICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAvLyAgICAgdGFzay5jb21wbGV0ZWQgPSBjb21wbGV0ZWQ7XHJcbiAgICAgICAgLy8gICAgIHRhc2suc3VidGFza3M/LmZvckVhY2godCA9PiAodC5jb21wbGV0ZWQgPSBjb21wbGV0ZWQpKTtcclxuICAgICAgICAvLyAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gICAgIHRhc2suc3VidGFza3MhW2luZGV4XS5jb21wbGV0ZWQgPSBjb21wbGV0ZWQ7XHJcbiAgICAgICAgLy8gICAgIHRhc2suY29tcGxldGVkID0gdGFzay5zdWJ0YXNrcz8uZXZlcnkodCA9PiB0LmNvbXBsZXRlZCkgPz8gdHJ1ZTtcclxuICAgICAgICAvLyAgIH1cclxuICAgICAgICAvLyAgIHJldHVybiB7Li4udGFza307XHJcbiAgICAgICAgLy8gfSk7XHJcbiAgICAgIH1cclxuXHJcblxyXG59XHJcbiIsIjxtYXQtY2FyZD5cclxuICA8bWF0LWNhcmQtY29udGVudD5cclxuXHJcbiAgICAgICAgPGRpdiAgW2Zvcm1Hcm91cF09XCJ2aWN0aW1Gb3JtXCI+XHJcblxyXG4gICAgICAgICAgPG1hdC10YWItZ3JvdXAgZHluYW1pY0hlaWdodCAgbWF0LXN0cmV0Y2gtdGFicz5cclxuICAgICAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJWaWN0aW0gRGV0YWlsXCIgPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2NvbnRhaW5lcic+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+SXMgdmljdGltIGEgbWlub3I/PGZvbnQgY29sb3I9XCJyZWRcIj4qIDwvZm9udD48L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgIGZvcm1Db250cm9sTmFtZT1cIm1pbm9yRmxhZ1wiICAoY2hhbmdlKT1cInJhZGlvTWlub3JDaGFuZ2UoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5taW5vckZsYWdcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbdmFsdWVdPVwidHJ1ZVwiPlllczwvbWF0LXJhZGlvLWJ1dHRvbj4mbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFt2YWx1ZV09XCJmYWxzZVwiPk5vPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnbWlub3JGbGFnJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdtaW5vckZsYWcnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnbWlub3JGbGFnJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPklmIHZpY3RpbSBhIG1pbm9yIGZpZWxkIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5Eb2VzIHRoZSBWaWN0aW0gaGF2ZSBhIFZpY3RpbSBBZHZvY2F0ZSBvciBTb2NpYWwgV29ya2VyIHdpdGggPGJyPndob20gQ1NPU0Egc2hvdWxkIG1haW50YWluIGNvbnRhY3Q/PGZvbnQgY29sb3I9XCJyZWRcIj4qIDwvZm9udD48L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgY2xhc3MgPSBcInRwLXJhZGlvLWdyb3VwXCIgIGZvcm1Db250cm9sTmFtZT1cInZpY3RpbUFkdm9jYXRlRmxhZ1wiICAoY2hhbmdlKT1cInJhZGlvQWR2b2NhdGVDaGFuZ2UoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS52aWN0aW1BZHZvY2F0ZUZsYWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uICBjb2xvcj1cInByaW1hcnlcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmbGFnT3B0aW9uXCIgW3ZhbHVlXT1cIml0ZW0uZmxhZ09wdGlvblllc05vVW5rbm93bklkXCI+e3tpdGVtLm5hbWV9fSA8L21hdC1yYWRpby1idXR0b24+Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1BZHZvY2F0ZUZsYWcnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ3ZpY3RpbUFkdm9jYXRlRmxhZycpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1BZHZvY2F0ZUZsYWcnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+SWYgdmljdGltIGhhcyBhZHZvY2F0ZSBmaWVsZCBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlZpY3RpbSBDdXJyZW50bHkgVW5kZXIgU3VwZXJ2aXNpb246PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgIGZvcm1Db250cm9sTmFtZT1cInVuZGVyU3VwZXJ2aXNpb25GbGFnXCIgbmFtZT1cInN1cGVydmlzaW9uXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLnVuZGVyU3VwZXJ2aXNpb25GbGFnXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmxhZ09wdGlvblwiIFt2YWx1ZV09XCJpdGVtLmZsYWdPcHRpb25ZZXNOb1Vua25vd25JZFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCd1bmRlclN1cGVydmlzaW9uRmxhZycpLmVycm9yc1xyXG4gICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgndW5kZXJTdXBlcnZpc2lvbkZsYWcnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgndW5kZXJTdXBlcnZpc2lvbkZsYWcnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+dW5kZXIgc3VwZXJ2aXNpb24gZmllbGQgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcblxyXG4gICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+UmVsYXRpb25zaGlwIHRvIE9mZmVuZGVyOjwvbWF0LWxhYmVsPlxyXG4gXHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgICNyZWxhdGlvblNoaXBTZWwgbXVsdGlwbGUgZm9ybUNvbnRyb2xOYW1lPVwidmljdGltUmVsYXRpb25zaGlwc1wiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS52aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcHNcIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAobW91c2VsZWF2ZSk9XCJyZWxhdGlvblNoaXBTZWwuY2xvc2UoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBjb2xvcj1cInByaW1hcnlcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiByZWxhdGlvbnNoaXBUeXBlc1wiIFt2YWx1ZV09XCJpdGVtLnJlbGF0aW9uc2hpcFR5cGVJZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5uYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ3ZpY3RpbVJlbGF0aW9uc2hpcHMnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ3ZpY3RpbVJlbGF0aW9uc2hpcHMnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgndmljdGltUmVsYXRpb25zaGlwcycpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5yZWxhdGlvbnNoaXAgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlZpY3RpbSBMYXN0IE5hbWU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJsYXN0TmFtZVwiICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0ubGFzdE5hbWVcIiA+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnbGFzdE5hbWUnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdsYXN0TmFtZScpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdsYXN0TmFtZScpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+dmljdGltIGxhc3QgbmFtZSBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VmljdGltIEZpcnN0IE5hbWU6IDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgIGZvcm1Db250cm9sTmFtZT1cImZpcnN0TmFtZVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5maXJzdE5hbWVcIiAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2ZpcnN0TmFtZScpLmVycm9yc1xyXG4gICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2ZpcnN0TmFtZScpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdmaXJzdE5hbWUnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPnZpY3RpbSBmaXJzdCBuYW1lIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlZpY3RpbSBNaWRkbGUgTmFtZTo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgIGZvcm1Db250cm9sTmFtZT1cIm1pZGRsZU5hbWVcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0ubWlkZGxlTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VmljdGltIFByZWZpeDo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCAgZm9ybUNvbnRyb2xOYW1lPVwicHJlZml4SWRcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0ucHJlZml4SWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIHByZWZpeGVzXCIgW3ZhbHVlXT1cIml0ZW0ucHJlZml4SWRcIj57e2l0ZW0ubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlZpY3RpbSBTdWZmaXg6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgIGZvcm1Db250cm9sTmFtZT1cInN1ZmZpeElkXCIgIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5zdWZmaXhJZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc3VmZml4ZXNcIiBbdmFsdWVdPVwiaXRlbS5zdWZmaXhJZFwiPnt7aXRlbS5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VmljdGltIFNleDo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgIGZvcm1Db250cm9sTmFtZT1cImdlbmRlckNvZGVcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZ2VuZGVyQ29kZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdlbmRlcnNcIiBbdmFsdWVdPVwiaXRlbS5nZW5kZXJDb2RlXCI+e3tpdGVtLm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+RGF0ZSBvZiBCaXJ0aDo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwidmljdGltQmlydGhSZWZcIlxyXG4gICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYmlydGhEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmJpcnRoRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ2aWN0aW1CaXJ0aFJlZi5vcGVuKClcIlxyXG4gICAgICAgICAgICAgICAgICAoZGF0ZUNoYW5nZSk9XCJoYW5kbGVET0JDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIFtmb3JdPVwidmljdGltQmlydGhSZWZcIiBtYXRTdWZmaXg+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjdmljdGltQmlydGhSZWY+PC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlZpY3RpbSBIb21lIFBob25lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgIGlkPVwidGVsXCJcclxuICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgIHBob25lTWFza1xyXG4gICAgICAgICAgICAgICAgICAgIFtwcmVWYWx1ZV09XCJlZGl0VmljdGltLmhvbWVQaG9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Bob25lQ29udHJvbF09XCJob21lUGhvbmVDb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiaG9tZVBob25lQ29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTRcIi8+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2hvbWVQaG9uZScpLmVycm9yc1xyXG4gICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2hvbWVQaG9uZScpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdob21lUGhvbmUnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+SG9tZSBwaG9uZSBudW1iZXIgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkID5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WaWN0aW0gQ2VsbCBQaG9uZTo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIGlkPVwidGVsMVwiXHJcbiAgICAgICAgICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICAgICAgICAgIHBob25lTWFza1xyXG4gICAgICAgICAgICAgICAgICBbcHJlVmFsdWVdPVwiZWRpdFZpY3RpbS5jZWxsUGhvbmVcIlxyXG4gICAgICAgICAgICAgICAgICBbcGhvbmVDb250cm9sXT1cImNlbGxQaG9uZUNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY2VsbFBob25lQ29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE0XCIvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdjZWxsUGhvbmUnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdjZWxsUGhvbmUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnY2VsbFBob25lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHN0cm9uZz5DZWxsIHBob25lIG51bWJlciBmb3JtYXQgaXMgbm90IGNvcnJlY3QuPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlZpY3RpbSBXb3JrIFBob25lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgaWQ9XCJ0ZWwyXCJcclxuICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgICAgICAgICAgcGhvbmVNYXNrXHJcbiAgICAgICAgICAgICAgICAgIFtwcmVWYWx1ZV09XCJlZGl0VmljdGltLndvcmtQaG9uZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtwaG9uZUNvbnRyb2xdPVwid29ya1Bob25lQ29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJ3b3JrUGhvbmVDb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTRcIi8+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ3dvcmtQaG9uZScpLmVycm9yc1xyXG4gICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ3dvcmtQaG9uZScpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCd3b3JrUGhvbmUnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+V29yayBwaG9uZSBudW1iZXIgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkID5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WaWN0aW0gRW1haWw6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmVtYWlsXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdlbWFpbCcpLmVycm9yc1xyXG4gICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2VtYWlsJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2VtYWlsJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj48c3Ryb25nPnZpY3RpbSBlbWFpbCBmb3JtYXQgaXMgbm90IGNvcnJlY3QuPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXY+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8YXBwLXNtYXJ0LWFkZHJlc3NcclxuICAgICAgICAgICAgICAgIFttb2RpZmllZEJ5XT1cInN0YWZmSWRcIlxyXG4gICAgICAgICAgICAgICAgW2lkXT1cImFkZHJlc3NJZFwiXHJcbiAgICAgICAgICAgICAgICBbb3V0bGluZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtzaG93UHNhXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW2FkZHJlc3NWYWxpZGF0b3JzXT1cImFkZHJlc3NWYWxpZGF0b3JzXCJcclxuICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAoYWRkcmVzc0lkQ2hhbmdlKT1cIm9uQWRkcmVzc0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICNhZGRyZXNzQ29tcG9uZW50ID5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2FwcC1zbWFydC1hZGRyZXNzPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gRG9ja2V0OlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgICpuZ0Zvcj1cImxldCBkb2NrZXQgb2YgZG9ja2V0bGlzdDsgbGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggPnt7ZG9ja2V0LmRvY2tldE51bWJlcn19PC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCAgY29sb3I9XCJwcmltYXJ5XCIgZm9ybUNvbnRyb2xOYW1lPVwibGl2ZVdpdGhPZmZlbmRlckZsYWdcIiBuYW1lPVwibGl2ZVdpdGhPZmZlbmRlckZsYWdcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0ubGl2ZVdpdGhPZmZlbmRlckZsYWdcIiAgIChjaGFuZ2UpPVwic2hvd0FkZHJlc3MoJGV2ZW50KVwiICA+dmljdGltIGxpdmUgd2l0aCBvZmZlbmRlcjwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggIGNvbG9yPVwicHJpbWFyeVwiIGZvcm1Db250cm9sTmFtZT1cImFsbG93Q3Nvc2FDb250YWN0RmxhZ1wiIG5hbWU9XCJhbGxvd0Nzb3NhQ29udGFjdEZsYWdcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uYWxsb3dDc29zYUNvbnRhY3RGbGFnXCI+dmljdGltIHdhbnRzIHRvIGJlIGNvbnRhY3RlZCBieSBDU09TQTwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+IENoaWxkcmVuIGluIENvbW1vbjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgZm9ybUNvbnRyb2xOYW1lPVwiY29tbW9uQ2hpbGRyZW5GbGFnXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmNvbW1vbkNoaWxkcmVuRmxhZ1wiICAoY2hhbmdlKT1cInJhZGlvQ2ljQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFt2YWx1ZV09XCJ0cnVlXCI+WWVzPC9tYXQtcmFkaW8tYnV0dG9uPiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cImZhbHNlXCI+Tm88L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwiY29tbW9uQ2hpbGRyZW5EaXZGbGFnXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGlsZHJlbiBudW1iZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBmb3JtQ29udHJvbE5hbWU9XCJjb21tb25DaGlsZHJlbk51bWJlclwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5jb21tb25DaGlsZHJlbk51bWJlclwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+Q1BPOiA8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgZm9ybUNvbnRyb2xOYW1lPVwiY3BvRXhwaXJhdGlvbkZsYWdcIiAgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmNwb0V4cGlyYXRpb25GbGFnXCIgKGNoYW5nZSk9XCJyYWRpb0Nwb0NoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFt2YWx1ZV09XCJ0cnVlXCI+WWVzPC9tYXQtcmFkaW8tYnV0dG9uPiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbdmFsdWVdPVwiZmFsc2VcIj5ObzwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY3BvRXhwaXJhdGlvbkRpdkZsYWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkV4cGlyYXRpb24gRGF0ZTogPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cImNwb0RhdGVSZWZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY3BvRXhwaXJhdGlvbkRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY3BvRGF0ZVJlZi5vcGVuKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uY3BvRXhwaXJhdGlvbkRhdGVcIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIFtmb3JdPVwiY3BvRGF0ZVJlZlwiIG1hdFN1ZmZpeD48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNjcG9EYXRlUmVmPjwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlZpY3RpbSBoYXMgYSBTdXBwb3J0IFN5c3RlbSBpbiBQbGFjZT8gPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1ncm91cCBmb3JtQ29udHJvbE5hbWU9XCJzdXBwb3J0SW5QbGFjZUZsYWdcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uc3VwcG9ydEluUGxhY2VGbGFnXCIgIChjaGFuZ2UpPVwicmFkaW9TdXBwb3J0Q2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbdmFsdWVdPVwidHJ1ZVwiPlllczwvbWF0LXJhZGlvLWJ1dHRvbj4mbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbdmFsdWVdPVwiZmFsc2VcIj5ObzwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdXBwb3J0SW5QbGFjZURpdkZsYWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5TdXBwb3J0IHR5cGU/IDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICNzdXBwb3J0U2VsIGZvcm1Db250cm9sTmFtZT1cInZpY3RpbVN1cHBvcnRzXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLnZpY3RpbVN1cHBvcnRzXCIgbXVsdGlwbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChtb3VzZWxlYXZlKT1cInN1cHBvcnRTZWwuY2xvc2UoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBjb2xvcj1cInByaW1hcnlcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiB2aWN0aW1TdXBwb3J0VHlwZXNcIiBbdmFsdWVdPVwiaXRlbS52aWN0aW1TdXBwb3J0VHlwZUlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLm5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+V2VhcG9ucyBJbnZvbHZlZD88L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIGZvcm1Db250cm9sTmFtZT1cIndlYXBvbkludm9sdmVkRmxhZ1wiIChjaGFuZ2UpPVwicmFkaW9XZWFwb25DaGFuZ2UoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS53ZWFwb25JbnZvbHZlZEZsYWdcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbdmFsdWVdPVwidHJ1ZVwiPlllczwvbWF0LXJhZGlvLWJ1dHRvbj4mbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFt2YWx1ZV09XCJmYWxzZVwiPk5vPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ3ZWFwb25JbnZvbHZlZERpdkZsYWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+V2VhcG9uIFR5cGU8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICAjd2VhcG9uU2VsIGZvcm1Db250cm9sTmFtZT1cInZpY3RpbVdlYXBvblVzZXNcIiBtdWx0aXBsZSBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0udmljdGltV2VhcG9uVXNlc1wiIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hlY2tPdGhlcldlYXBvbigkZXZlbnQudmFsdWUpXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChtb3VzZWxlYXZlKT1cIndlYXBvblNlbC5jbG9zZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gY29sb3I9XCJwcmltYXJ5XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygd2VhcG9uVHlwZXNcIiBbdmFsdWVdPVwiaXRlbS53ZWFwb25UeXBlSWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5uYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm90aGVyV2VhcG9uRmxhZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5PdGhlciBXZWFwb246KiA8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBmb3JtQ29udHJvbE5hbWU9XCJvdGhlcldlYXBvblwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdvdGhlcldlYXBvbicpLmVycm9yc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ290aGVyV2VhcG9uJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ290aGVyV2VhcG9uJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj48c3Ryb25nPk90aGVyIHdlYXBvbiBpcyByZXF1aXJlZC48L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5XYXMgT2ZmZW5kZXIgdW5kZXIgdGhlIGluZmx1ZW5jZSBvZiBhbGNvaG9sIGF0IHRoZSB0aW1lIG9mIHRoZSBvZmZlbnNlPzwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIGZvcm1Db250cm9sTmFtZT1cImFsY29ob2xVc2VGbGFnXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmFsY29ob2xVc2VGbGFnXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbdmFsdWVdPVwidHJ1ZVwiPlllczwvbWF0LXJhZGlvLWJ1dHRvbj4mbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cImZhbHNlXCI+Tm88L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+V2FzIE9mZmVuZGVyIHVuZGVyIHRoZSBpbmZsdWVuY2Ugb2YgZHJ1Z3MgYXQgdGhlIHRpbWUgb2YgdGhlIG9mZmVuc2U/PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIGZvcm1Db250cm9sTmFtZT1cImRydWdVc2VGbGFnXCIgKGNoYW5nZSk9XCJyYWRpb0RydWdDaGFuZ2UoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5kcnVnVXNlRmxhZ1wiICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cInRydWVcIj5ZZXM8L21hdC1yYWRpby1idXR0b24+Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cImZhbHNlXCI+Tm88L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZHJ1Z1VzZURpdkZsYWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5EcnVnOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICAjZHJ1Z1NlbCBmb3JtQ29udHJvbE5hbWU9XCJ2aWN0aW1EcnVnVXNlc1wiIG11bHRpcGxlICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJjaGVja090aGVyRHJ1ZygkZXZlbnQudmFsdWUpXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAobW91c2VsZWF2ZSk9XCJkcnVnU2VsLmNsb3NlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBjb2xvcj1cInByaW1hcnlcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkcnVnc1wiIFt2YWx1ZV09XCJpdGVtLmRydWdUeXBlSWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW0ubmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvdGhlckRydWdGbGFnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPk90aGVyIERydWc6KiA8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBmb3JtQ29udHJvbE5hbWU9XCJvdGhlckRydWdcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnb3RoZXJEcnVnJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnb3RoZXJEcnVnJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ290aGVyRHJ1ZycpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHN0cm9uZz5PdGhlciBkcnVnIGlzIHJlcXVpcmVkLjwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjY2VzcyBSaXNrOiAxIHRocnUgMTAgKDEwIGdyZWF0ZXN0IHJpc2spOiAmbmJzcDs8Yj57e3NsaWRlci52YWx1ZX19PC9iPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNsaWRlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhY2Nlc3NSaXNrXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGh1bWJMYWJlbD1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzcGxheVdpdGhdPVwiZm9ybWF0TGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIjEwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbl09XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0ZXBdPVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNjcmV0ZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dUaWNrTWFya3NdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48aW5wdXQgbWF0U2xpZGVyVGh1bWIgICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uYWNjZXNzUmlza1wiICAjc2xpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2xpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgPGJyPjxicj48YnI+XHJcbiAgICAgICAgICAgIDwvbWF0LXRhYj5cclxuXHJcbiAgICAgICAgICAgPG1hdC10YWIgICpuZ0lmPVwiZ3VhcmRpYW5UYWJGbGFnXCIgbGFiZWw9XCJMZWdhbCBHdWFyZGlhblwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPSdjb250YWluZXInPlxyXG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5HdWFyZGlhbiBMYXN0IE5hbWU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJndWFyZGlhbkxhc3ROYW1lXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmd1YXJkaWFuTGFzdE5hbWVcIiA+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5MYXN0TmFtZScpLmVycm9ycyBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPkd1YXJkaWFuIGxhc3QgbmFtZSBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+R3VhcmRpYW4gRmlyc3QgTmFtZTo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBmb3JtQ29udHJvbE5hbWU9XCJndWFyZGlhbkZpcnN0TmFtZVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5ndWFyZGlhbkZpcnN0TmFtZVwiID5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkZpcnN0TmFtZScpLmVycm9ycyBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPkd1YXJkaWFuIGZpcnN0IG5hbWUgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkd1YXJkaWFuIFByZWZpeDo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgIGZvcm1Db250cm9sTmFtZT1cImd1YXJkaWFuUHJlZml4SWRcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZ3VhcmRpYW5QcmVmaXhJZFwiID5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBwcmVmaXhlc1wiIFt2YWx1ZV09XCJpdGVtLnByZWZpeElkXCI+e3tpdGVtLm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+R3VhcmRpYW4gU3VmZml4OjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCAgZm9ybUNvbnRyb2xOYW1lPVwiZ3VhcmRpYW5TdWZmaXhJZFwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5ndWFyZGlhblN1ZmZpeElkXCIgID5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzdWZmaXhlc1wiIFt2YWx1ZV09XCJpdGVtLnN1ZmZpeElkXCI+e3tpdGVtLm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgcGxhY2Vob2xkZXI9XCJDaG9vc2VcIiBmb3JtQ29udHJvbE5hbWU9XCJndWFyZGlhbkdlbmRlclwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5ndWFyZGlhbkdlbmRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2VuZGVyc1wiIFt2YWx1ZV09XCJpdGVtLmdlbmRlckNvZGVcIj57e2l0ZW0ubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD4gLS0+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5EYXRlIG9mIEJpcnRoOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwiZ3VhcmRpYW5EYXRlUmVmXCJcclxuICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZ3VhcmRpYW5CaXJ0aERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZ3VhcmRpYW5CaXJ0aERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ3VhcmRpYW5EYXRlUmVmLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgW2Zvcl09XCJndWFyZGlhbkRhdGVSZWZcIiBtYXRTdWZmaXg+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNndWFyZGlhbkRhdGVSZWY+PC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkID5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICBjb2xvciA9IFwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImd1YXJkaWFuTm9QaG9uZUZsYWdcIj5cclxuICAgICAgICAgICAgICAgICAgTm8gUGhvbmUgKElmIHRoZXJlIGlzIG5vIHBob25lLCB0aGUgcGhvbmUgZmllbGRzIGFyZSBubyBsb25nZXIgcmVxdWlyZWQpPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXY+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQ+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkd1YXJkaWFuIEhvbWUgUGhvbmU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJ0ZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgcGhvbmVNYXNrXHJcbiAgICAgICAgICAgICAgICAgICAgW3ByZVZhbHVlXT1cImVkaXRWaWN0aW0uZ3VhcmRpYW5Ib21lUGhvbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwaG9uZUNvbnRyb2xdPVwiZ3VhcmRpYW5Ib21lUGhvbmVDb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZ3VhcmRpYW5Ib21lUGhvbmVDb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIxNFwiLz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkhvbWVQaG9uZScpLmVycm9yc1xyXG4gICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5Ib21lUGhvbmUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5Ib21lUGhvbmUnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHN0cm9uZz5HdWFyZGlhbiBob21lIHBob25lIG51bWJlciBmb3JtYXQgaXMgbm90IGNvcnJlY3QuPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCA+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+R3VhcmRpYW4gQ2VsbCBQaG9uZTo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgaWQ9XCJ0ZWw0XCJcclxuICAgICAgICAgICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICAgICAgICAgICBwaG9uZU1hc2tcclxuICAgICAgICAgICAgICAgICAgIFtwcmVWYWx1ZV09XCJlZGl0VmljdGltLmd1YXJkaWFuQ2VsbFBob25lXCJcclxuICAgICAgICAgICAgICAgICAgIFtwaG9uZUNvbnRyb2xdPVwiZ3VhcmRpYW5DZWxsUGhvbmVDb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJndWFyZGlhbkNlbGxQaG9uZUNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTRcIi8+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5DZWxsUGhvbmUnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkNlbGxQaG9uZScpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkNlbGxQaG9uZScpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj48c3Ryb25nPkd1YXJkaWFuIENlbGwgcGhvbmUgbnVtYmVyIGZvcm1hdCBpcyBub3QgY29ycmVjdC48L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkID5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5HdWFyZGlhbiBXb3JrIFBob25lOjwvbWF0LWxhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICBpZD1cInRlbDVcIlxyXG4gICAgICAgICAgICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgcGhvbmVNYXNrXHJcbiAgICAgICAgICAgICAgICAgICAgW3ByZVZhbHVlXT1cImVkaXRWaWN0aW0uZ3VhcmRpYW5Xb3JrUGhvbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwaG9uZUNvbnRyb2xdPVwiZ3VhcmRpYW5Xb3JrUGhvbmVDb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZ3VhcmRpYW5Xb3JrUGhvbmVDb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIxNFwiLz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbldvcmtQaG9uZScpLmVycm9yc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5Xb3JrUGhvbmUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5Xb3JrUGhvbmUnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHN0cm9uZz5HdWFyZGlhbiB3b3JrIHBob25lIG51bWJlciBmb3JtYXQgaXMgbm90IGNvcnJlY3QuPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgPC9tYXQtY2FyZD5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdj48L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+R3VhcmRpYW4gRW1haWw6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImd1YXJkaWFuRW1haWxcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZ3VhcmRpYW5FbWFpbFwiICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkVtYWlsJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkVtYWlsJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuRW1haWwnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj48c3Ryb25nPkd1YXJkaWFuIGVtYWlsIGZvcm1hdCBpcyBub3QgY29ycmVjdC48L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2PjwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8YXBwLXNtYXJ0LWFkZHJlc3NcclxuXHJcbiAgICAgICAgICAgICAgICBbc2hvd1BzYV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFttb2RpZmllZEJ5XT1cInN0YWZmSWRcIlxyXG4gICAgICAgICAgICAgICAgW2lkXT1cImd1YXJkaWFuQWRkcmVzc0lkXCJcclxuICAgICAgICAgICAgICAgIChhZGRyZXNzSWRDaGFuZ2UpPVwib25HdWFyZGlhbkFkZHJlc3NDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbb3V0bGluZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5PVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgW3Jvd0hlaWdodF09XCI4MFwiXHJcbiAgICAgICAgICAgICAgICAoaXNWYWxpZCk9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICBbYWRkcmVzc1ZhbGlkYXRvcnNdPVwiYWRkcmVzc1ZhbGlkYXRvcnNcIlxyXG4gICAgICAgICAgICAgICAgI2d1YXJkaWFuQWRkcmVzc0NvbXBvbmVudFxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9hcHAtc21hcnQtYWRkcmVzcz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8YnI+PGJyPjxicj5cclxuICAgICAgICAgICAgPC9tYXQtdGFiPlxyXG5cclxuICAgICAgICAgICAgPCEtLWFkdm9jYXRlLS0+XHJcblxyXG4gICAgICAgICAgICAgIDxtYXQtdGFiICAqbmdJZj1cImFkdm9jYXRlVGFiRmxhZ1wiIGxhYmVsPVwiQWR2b2NhdGVcIiA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdjb250YWluZXInPlxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5BZHZvY2F0ZSBMYXN0IE5hbWU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBmb3JtQ29udHJvbE5hbWU9XCJhZHZvY2F0ZUxhc3ROYW1lXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmFkdm9jYXRlTGFzdE5hbWVcIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVMYXN0TmFtZScpLmVycm9ycyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+QWR2b2NhdGUgbGFzdCBuYW1lIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5BZHZvY2F0ZSBGaXJzdCBOYW1lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCAgZm9ybUNvbnRyb2xOYW1lPVwiYWR2b2NhdGVGaXJzdE5hbWVcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uYWR2b2NhdGVGaXJzdE5hbWVcIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVGaXJzdE5hbWUnKS5lcnJvcnMgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPkFkdm9jYXRlIGZpcnN0IG5hbWUgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+QWR2b2NhdGUgUHJlZml4OjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICBmb3JtQ29udHJvbE5hbWU9XCJhZHZvY2F0ZVByZWZpeElkXCIgIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5hZHZvY2F0ZVByZWZpeElkXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgcHJlZml4ZXNcIiBbdmFsdWVdPVwiaXRlbS5wcmVmaXhJZFwiPnt7aXRlbS5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+QWR2b2NhdGUgU3VmZml4OjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICBmb3JtQ29udHJvbE5hbWU9XCJhZHZvY2F0ZVN1ZmZpeElkXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmFkdm9jYXRlU3VmZml4SWRcIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc3VmZml4ZXNcIiBbdmFsdWVdPVwiaXRlbS5zdWZmaXhJZFwiPnt7aXRlbS5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgIGNvbG9yID0gXCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWR2b2NhdGVOb1Bob25lRmxhZ1wiXHJcblxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uYWR2b2NhdGVOb1Bob25lRmxhZ1wiID5cclxuICAgICAgICAgICAgICAgICAgTm8gUGhvbmUgKElmIHRoZXJlIGlzIG5vIHBob25lLCB0aGUgcGhvbmUgZmllbGRzIGFyZSBubyBsb25nZXIgcmVxdWlyZWQpPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCA+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+QWR2b2NhdGUgSG9tZSBQaG9uZTo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICBpZD1cInRlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgICAgICAgICAgICBwaG9uZU1hc2tcclxuICAgICAgICAgICAgICAgICAgICBbcHJlVmFsdWVdPVwiZWRpdFZpY3RpbS5hZHZvY2F0ZUhvbWVQaG9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Bob25lQ29udHJvbF09XCJhZHZvY2F0ZUhvbWVQaG9uZUNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJhZHZvY2F0ZUhvbWVQaG9uZUNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE0XCIvPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUhvbWVQaG9uZScpLmVycm9yc1xyXG4gICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVIb21lUGhvbmUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVIb21lUGhvbmUnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHN0cm9uZz5BZHZvY2F0ZSBob21lIG51bWJlciBmb3JtYXQgaXMgbm90IGNvcnJlY3QuPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkFkdm9jYXRlIENlbGwgUGhvbmU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJ0ZWw3XCJcclxuICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgIHBob25lTWFza1xyXG4gICAgICAgICAgICAgICAgICAgIFtwcmVWYWx1ZV09XCJlZGl0VmljdGltLmFkdm9jYXRlQ2VsbFBob25lXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGhvbmVDb250cm9sXT1cImFkdm9jYXRlQ2VsbFBob25lQ29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImFkdm9jYXRlQ2VsbFBob25lQ29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTRcIi8+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVDZWxsUGhvbmUnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlQ2VsbFBob25lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlQ2VsbFBob25lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+QWR2b2NhdGUgY2VsbCBudW1iZXIgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+QWR2b2NhdGUgV29yayBQaG9uZTo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICBpZD1cInRlbDhcIlxyXG4gICAgICAgICAgICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgcGhvbmVNYXNrXHJcbiAgICAgICAgICAgICAgICAgICAgW3ByZVZhbHVlXT1cImVkaXRWaWN0aW0uYWR2b2NhdGVXb3JrUGhvbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwaG9uZUNvbnRyb2xdPVwiYWR2b2NhdGVXb3JrUGhvbmVDb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiYWR2b2NhdGVXb3JrUGhvbmVDb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIxNFwiLz5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVXb3JrUGhvbmUnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlV29ya1Bob25lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlV29ya1Bob25lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+QWR2b2NhdGUgd29yayBudW1iZXIgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtY2FyZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2PjwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5BZHZvY2F0ZSBFbWFpbDo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiYWR2b2NhdGVFbWFpbFwiICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uYWR2b2NhdGVFbWFpbFwiID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlRW1haWwnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlRW1haWwnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVFbWFpbCcpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj48c3Ryb25nPkFkdm9jYXRlIGVtYWlsIGZvcm1hdCBpcyBub3QgY29ycmVjdC48L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXY+PC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgICA8ZGl2ID5cclxuICAgICAgICAgICAgICA8YXBwLXNtYXJ0LWFkZHJlc3NcclxuICAgICAgICAgICAgICBbc2hvd1BzYV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbbW9kaWZpZWRCeV09XCJzdGFmZklkXCJcclxuICAgICAgICAgICAgICBbaWRdPVwiYWR2b2NhdGVBZGRyZXNzSWRcIlxyXG4gICAgICAgICAgICAgIChhZGRyZXNzSWRDaGFuZ2UpPVwib25BZHZvY2F0ZUFkZHJlc3NDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgW291dGxpbmVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgcmVhZG9ubHk9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgW3Jvd0hlaWdodF09XCI4MFwiXHJcbiAgICAgICAgICAgICAgKGlzVmFsaWQpPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgIFthZGRyZXNzVmFsaWRhdG9yc109XCJhZGRyZXNzVmFsaWRhdG9yc1wiXHJcbiAgICAgICAgICAgICAgI2Fkdm9jYXRlQWRkcmVzc0NvbXBvbmVudCA+XHJcbiAgICAgICAgICAgICAgPC9hcHAtc21hcnQtYWRkcmVzcz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8YnI+PGJyPjxicj5cclxuICAgICAgICAgICAgPC9tYXQtdGFiPlxyXG5cclxuXHJcbiAgICAgICAgICAgICA8bWF0LXRhYiAgbGFiZWw9XCJFbWVyZ2VuY3kgQ29udGFjdFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nY29udGFpbmVyJz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkVtZXJnZW5jeSBDb250YWN0IE5hbWU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgIGZvcm1Db250cm9sTmFtZT1cImVtZXJnZW5jeUNvbnRhY3RcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZW1lcmdlbmN5Q29udGFjdFwiICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5FbWVyZ2VuY3kgUGhvbmUgTnVtYmVyOjwvbWF0LWxhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ0ZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob25lTWFza1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByZVZhbHVlXT1cImVkaXRWaWN0aW0uZW1lcmdlbmN5Q29udGFjdFBob25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwaG9uZUNvbnRyb2xdPVwiZW1lcmdlbmN5Q29udGFjdFBob25lQ29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZW1lcmdlbmN5Q29udGFjdFBob25lQ29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIxNFwiLz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnZW1lcmdlbmN5Q29udGFjdFBob25lJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnZW1lcmdlbmN5Q29udGFjdFBob25lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2VtZXJnZW5jeUNvbnRhY3RQaG9uZScpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHN0cm9uZz5FbWVyZ2VuY3kgY29udGFjdCBudW1iZXIgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGJyPjxicj48YnI+XHJcbiAgICAgICAgICAgIDwvbWF0LXRhYj5cclxuXHJcbiAgICAgICAgICA8L21hdC10YWItZ3JvdXA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPSdvdXRlcic+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgIEFsbCBidXR0b25zIGFwcGx5IHRvIGFsbCB0YWJzLiBJZiBzYXZlIGJ1dHRvbiBpcyBncmV5LCBwbGVhc2UgY2hlY2sgZWFjaCB0YWIgdG8gbWFrZSBzdXJlIHRoZSByZXF1aXJlZCBmaWVsZCBpcyBmaWxsZWQuPGJyPjxicj5cclxuXHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnbWlub3JGbGFnJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdtaW5vckZsYWcnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnbWlub3JGbGFnJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPklmIHZpY3RpbSBhIG1pbm9yIGZpZWxkIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1BZHZvY2F0ZUZsYWcnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ3ZpY3RpbUFkdm9jYXRlRmxhZycpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1BZHZvY2F0ZUZsYWcnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtZXJyb3I+SWYgdmljdGltIGhhcyBhZHZvY2F0ZSBmaWVsZCBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ3VuZGVyU3VwZXJ2aXNpb25GbGFnJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCd1bmRlclN1cGVydmlzaW9uRmxhZycpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCd1bmRlclN1cGVydmlzaW9uRmxhZycpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1lcnJvcj5VbmRlciBzdXBlcnZpc2lvbiBmaWVsZCBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgndmljdGltUmVsYXRpb25zaGlwcycpLmVycm9yc1xyXG4gICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgndmljdGltUmVsYXRpb25zaGlwcycpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1SZWxhdGlvbnNoaXBzJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICA8bWF0LWVycm9yPlJlbGF0aW9uc2hpcCBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnbGFzdE5hbWUnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2xhc3ROYW1lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2xhc3ROYW1lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICA8bWF0LWVycm9yPlZpY3RpbSBsYXN0IG5hbWUgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2ZpcnN0TmFtZScpLmVycm9yc1xyXG4gICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnZmlyc3ROYW1lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2ZpcnN0TmFtZScpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1lcnJvcj52aWN0aW0gZmlyc3QgbmFtZSBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkZpcnN0TmFtZScpLmVycm9yc1xyXG4gICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5GaXJzdE5hbWUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5GaXJzdE5hbWUnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5HdWFyZGlhbiBmaXJzdCBuYW1lIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkxhc3ROYW1lJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuTGFzdE5hbWUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5MYXN0TmFtZScpLnRvdWNoZWQpXCIgPlxyXG4gICAgICAgICAgICAgIDxtYXQtZXJyb3I+R3VhcmRpYW4gbGFzdCBuYW1lIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUxhc3ROYW1lJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlTGFzdE5hbWUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVMYXN0TmFtZScpLnRvdWNoZWQpXCIgPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPkFkdm9jYXRlIGxhc3QgbmFtZSBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVGaXJzdE5hbWUnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVGaXJzdE5hbWUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVGaXJzdE5hbWUnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPkFkdm9jYXRlIGZpcnN0IG5hbWUgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnb3RoZXJXZWFwb24nKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ290aGVyV2VhcG9uJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ290aGVyV2VhcG9uJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPk90aGVyIHdlYXBvbiBmaWVsZCBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnb3RoZXJEcnVnJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdvdGhlckRydWcnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnb3RoZXJEcnVnJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICA8bWF0LWVycm9yPk90aGVyIGRydWcgZmllbGQgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5uZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAgbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJzYXZlVmljdGltKClcIiBbZGlzYWJsZWRdPVwiIXZpY3RpbUZvcm0udmFsaWRcIiAgPlNhdmUgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDtcclxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dEZWxldGVcIiBjbGFzcz1cImlubmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiZGVsZXRlVmljdGltKClcIj5EZWxldGUgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5uZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAgbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJjYW5jZWwoKVwiPkNsZWFyIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAgKGNsaWNrKT1cImJhY2soKVwiPkJhY2s8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YnI+XHJcbiAgICAgICAgPGJyPlxyXG5cclxuICAgICAgICA8ZGl2IGFsaWduPVwicmlnaHRcIj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiICAoY2xpY2spPVwiYWRkQ29udGFjdCgpXCIgID5BZGQgdmljdGltIGNvbnRhY3Q8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdj5cclxuXHJcbiAgICAgICAgICA8bWF0LXRhYmxlICN0YWJsZSBbZGF0YVNvdXJjZV09XCJjb250YWN0RGF0YVNvdXJjZVwiIGNsYXNzPVwiZXhhbXBsZS10YWJsZVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNvbnRhY3REYXRlXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGNsYXNzPVwiZXhhbXBsZS1oZWFkZXItY2VsbFwiPkNvbnRhY3QgRGF0ZTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiIGNsYXNzPVwiZXhhbXBsZS1jZWxsXCI+IHt7cm93LmNvbnRhY3REYXRlIHwgZGF0ZX19IDwvbWF0LWNlbGw+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidmljdGltQ29udGFjdE1ldGhvZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJleGFtcGxlLWhlYWRlci1jZWxsXCI+Q29udGFjdCBNZXRob2Q8L21hdC1oZWFkZXItY2VsbD5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgY2xhc3M9XCJleGFtcGxlLWNlbGxcIj4ge3tyb3cudmljdGltQ29udGFjdE1ldGhvZH19IDwvbWF0LWNlbGw+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJuZXh0Q29udGFjdERhdGVcIj5cclxuICAgICAgICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGNsYXNzPVwiZXhhbXBsZS1oZWFkZXItY2VsbFwiPk5leHQgQ29udGFjdCBEYXRlPC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiIGNsYXNzPVwiZXhhbXBsZS1jZWxsXCI+IHt7cm93Lm5leHRDb250YWN0RGF0ZSB8IGRhdGV9fSA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN0YWZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWNlbGxcIj5Db250YWN0IEJ5PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiIGNsYXNzPVwiZXhhbXBsZS1jZWxsXCI+IHt7cm93LnN0YWZmfX0gPC9tYXQtY2VsbD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiY29tbWVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWNlbGxcIj5Db21tZW50PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgY2xhc3M9XCJleGFtcGxlLWNlbGxcIj4ge3tyb3cuY29tbWVudH19IDwvbWF0LWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNvbnRhY3RJZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJleGFtcGxlLWhlYWRlci1jZWxsXCI+PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgY2xhc3M9XCJleGFtcGxlLWNlbGxcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiWydjb250YWN0RGF0ZScsICd2aWN0aW1Db250YWN0TWV0aG9kJywnbmV4dENvbnRhY3REYXRlJywgJ3N0YWZmJywgJ2NvbW1lbnQnLCAnY29udGFjdElkJ11cIiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLXJvd1wiPjwvbWF0LWhlYWRlci1yb3c+XHJcbiAgICAgICAgICAgIDxtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOlsnY29udGFjdERhdGUnLCAndmljdGltQ29udGFjdE1ldGhvZCcsJ25leHRDb250YWN0RGF0ZScsICdzdGFmZicsICdjb21tZW50JywgJ2NvbnRhY3RJZCddO1wiIGNsYXNzPVwiZXhhbXBsZS1yb3dcIj48L21hdC1yb3c+XHJcbiAgICAgICAgICAgIDwvbWF0LXRhYmxlPlxyXG5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gIDwvbWF0LWNhcmQtY29udGVudD5cclxuPC9tYXQtY2FyZD5cclxuIl19
1161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ2Mtc21hcnQtdmljdGltL3NyYy9saWIvc21hcnQtdmljdGltLWRldGFpbC9zbWFydC12aWN0aW0tZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nYy1zbWFydC12aWN0aW0vc3JjL2xpYi9zbWFydC12aWN0aW0tZGV0YWlsL3NtYXJ0LXZpY3RpbS1kZXRhaWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxrQkFBa0IsRUFBb0Isa0JBQWtCLEVBQUMsVUFBVSxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDakgsT0FBTyxFQUFrQixhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxRQUFRLEVBQWMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFDLE1BQUksdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFxQixxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBRUwsaUJBQWlCLEdBRWxCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtDdkIsTUFBTSxVQUFVLG9CQUFvQixDQUFDLFNBQW9CLEVBQ3ZELFNBQXNCLEVBQ3RCLGNBQXVCO0lBQ3pCLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxDQUFDO1FBQ1osQ0FBQztRQUNELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDbEIsS0FBSyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsSUFBSSxjQUFjLElBQUksS0FBSyxFQUFFLENBQUM7WUFDOUIsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLFdBQVcsQ0FBQyxjQUFjLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDcEMsS0FBSyxHQUFHLFdBQVcsQ0FBQTtRQUNuQixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDYixDQUFDLENBQUMsQ0FBQTtBQUNGLENBQUM7QUFHRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsU0FBbUIsRUFDNUQsU0FBc0IsRUFDdEIsY0FBdUI7SUFDekIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1FBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDMUIsT0FBTyxJQUFJLENBQUM7UUFDWixDQUFDO1FBQ0QsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksU0FBUyxFQUFFLElBQUUsSUFBSSxFQUFFLENBQUM7WUFDeEIsS0FBSyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsSUFBSSxjQUFjLElBQUksS0FBSyxFQUFFLENBQUM7WUFDOUIsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLFdBQVcsQ0FBQyxjQUFjLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDcEMsS0FBSyxHQUFHLFdBQVcsQ0FBQTtRQUNuQixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDYixDQUFDLENBQUMsQ0FBQTtBQUNGLENBQUM7QUFRRCxNQUFNLE9BQU8sMEJBQTBCO0lBbUZ0QyxZQUNXLFFBQWtCLEVBQ2xCLFdBQStCLEVBQy9CLE1BQWlCLEVBQ2pCLEtBQXFCLEVBQ3JCLE1BQWMsRUFDZixRQUFxQixFQUNwQixtQkFBd0MsRUFDeEMsYUFBb0MsRUFDcEMsa0JBQXFDO1FBUnJDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQy9CLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNmLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDcEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7UUFDcEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQTNGdEMsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFLekIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDNUIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFxQnhDLFdBQU0sR0FBVSxJQUFJLENBQUM7UUFFckIsbUJBQWMsR0FBb0MsRUFBRSxDQUFDO1FBQ3JELG1CQUFjLEdBQW1DLEVBQUUsQ0FBQztRQU1wRCxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQywwQkFBcUIsR0FBWSxLQUFLLENBQUM7UUFDdkMseUJBQW9CLEdBQWEsS0FBSyxDQUFDO1FBQ3ZDLDBCQUFxQixHQUFZLEtBQUssQ0FBQztRQUN2QywwQkFBcUIsR0FBWSxLQUFLLENBQUM7UUFDdkMsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBQ3RCLHNCQUFpQixHQUFXLENBQUMsQ0FBQztRQUM5QixzQkFBaUIsR0FBVyxDQUFDLENBQUM7UUFDOUIsYUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLGlCQUFZLEdBQUcsMENBQTBDLENBQUM7UUFDMUQsZ0JBQVcsR0FBRyxTQUFTLENBQUM7UUFDeEIsZUFBVSxHQUFtQixFQUFFLENBQUM7UUFFaEMsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFL0Isc0JBQWlCLEdBQUUsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBRTVDLDJCQUFzQixHQUFhLEtBQUssQ0FBQztRQUN6QywyQkFBc0IsR0FBYSxLQUFLLENBQUM7UUFDekMsd0JBQW1CLEdBQWEsS0FBSyxDQUFDO1FBQ3RDLDJCQUFzQixHQUFZLElBQUksQ0FBQztRQUN2QywyQkFBc0IsR0FBYSxJQUFJLENBQUM7UUFFeEMsc0JBQWlCLEdBQXNCO1lBQ3JDLE1BQU0sRUFBRSxFQUFFO1lBQ1YsT0FBTyxFQUFFLEVBQUU7WUFDWCxJQUFJLEVBQUUsRUFBRTtZQUNSLFNBQVMsRUFBRSxFQUFFO1lBQ2IsT0FBTyxFQUFFLEVBQUU7WUFDWCxPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFDRixxQkFBZ0IsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDNUMscUJBQWdCLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQzVDLHFCQUFnQixHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUM1Qyw2QkFBd0IsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDcEQsNkJBQXdCLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3BELDZCQUF3QixHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUNwRCw2QkFBd0IsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDcEQsNkJBQXdCLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3BELDZCQUF3QixHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUNwRCxpQ0FBNEIsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFjbkQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFTyxRQUFRO1FBRWYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1FBRS9DLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDdkMsb0JBQW9CLEVBQUcsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzdGLG1CQUFtQixFQUFDLElBQUksa0JBQWtCLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUMxRixRQUFRLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2hGLFNBQVMsRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDakYsVUFBVSxFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFHO1lBQ3hDLFFBQVEsRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBRztZQUN0QyxRQUFRLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUc7WUFDdEMsVUFBVSxFQUFDLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFHO1lBQ3ZDLFNBQVMsRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBRztZQUN2QyxTQUFTLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUc7WUFDdkMsU0FBUyxFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFHO1lBQ3ZDLFNBQVMsRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBRztZQUN2QyxLQUFLLEVBQUMsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFFLENBQUMsQ0FBQztZQUM5RixTQUFTLEVBQUMsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2hGLGtCQUFrQixFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUMxRixnQkFBZ0IsRUFBQyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsRUFBRywwQkFBMEIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLEVBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFFO1lBQ2hLLGlCQUFpQixFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxFQUFHLDBCQUEwQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssRUFBRyxVQUFVLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDakssZ0JBQWdCLEVBQUMsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUc7WUFDN0MsZ0JBQWdCLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUc7WUFDOUMsdUNBQXVDO1lBQ3ZDLGlCQUFpQixFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFHO1lBQy9DLG1CQUFtQixFQUFDLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDO1lBRWhELGlCQUFpQixFQUFDLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFFO1lBQzdDLGlCQUFpQixFQUFDLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFFO1lBQzdDLGlCQUFpQixFQUFDLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFFO1lBRzdDLGFBQWEsRUFBQyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUUsQ0FBQyxDQUFDO1lBQ3RHLG1CQUFtQixFQUFFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDO1lBR2pELGlCQUFpQixFQUFDLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFFO1lBQzdDLGlCQUFpQixFQUFDLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFFO1lBQzdDLGlCQUFpQixFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFFO1lBRzlDLGdCQUFnQixFQUFDLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFHO1lBQzdDLGdCQUFnQixFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFHO1lBQzlDLGlCQUFpQixFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxFQUFFLDBCQUEwQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUMsS0FBSyxFQUFHLFVBQVUsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUN6SyxnQkFBZ0IsRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsRUFBRSwwQkFBMEIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDdEssYUFBYSxFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBRSxDQUFDLENBQUM7WUFDdkcsZ0JBQWdCLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUc7WUFDOUMscUJBQXFCLEVBQUMsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUU7WUFDakQsaUJBQWlCLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUc7WUFDL0MsWUFBWSxFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFHO1lBQzFDLGFBQWEsRUFBQyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBRztZQUMxQyxnQkFBZ0IsRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBRztZQUM5QyxlQUFlLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUc7WUFDN0MsSUFBSSxFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFHO1lBQ2xDLE1BQU0sRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBRztZQUNwQyxPQUFPLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUc7WUFDckMsa0JBQWtCLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUc7WUFDaEQsb0JBQW9CLEVBQUMsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUc7WUFDakQsaUJBQWlCLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUc7WUFDL0MsaUJBQWlCLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUc7WUFDL0MsVUFBVSxFQUFDLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFHO1lBQ3ZDLFdBQVcsRUFBQyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBRztZQUN4QyxrQkFBa0IsRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBRztZQUNoRCxrQkFBa0IsRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBRztZQUNoRCxXQUFXLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUc7WUFDekMsU0FBUyxFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFHO1lBQ3ZDLGNBQWMsRUFBQyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBRztZQUMzQyxjQUFjLEVBQUMsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUc7WUFDM0MsZ0JBQWdCLEVBQUMsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUc7WUFDN0MsY0FBYyxFQUFDLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFHO1lBQzNDLHFCQUFxQixFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFHO1lBQ25ELG9CQUFvQixFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFHO1NBRXZELENBQUMsQ0FBQztRQUVDLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUVqQyxDQUFDO0lBRU8sVUFBVTtRQUNqQiw2QkFBNkI7UUFFN0IsWUFBWTtRQUNaLEtBQUs7UUFFTCx3QkFBd0I7UUFDeEIsd0JBQXdCO1FBSTFCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7WUFDL0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFM0IsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDOUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ25DLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztvQkFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUVFLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7aUJBQzFDLFNBQVMsQ0FBQyxDQUFDLE1BQWMsRUFBRSxFQUFFO2dCQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNwQixJQUFJLENBQUMsVUFBVSxHQUFXLE1BQU0sQ0FBQztnQkFFakMsSUFBSSxZQUFZLEdBQUUsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUUsQ0FBQyxDQUFBLEVBQUUsR0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFHLENBQUE7Z0JBQzFGLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDcEUscUJBQXFCLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUc3QyxJQUFJLGlCQUFpQixHQUFFLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUUsQ0FBQyxDQUFBLEVBQUUsR0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUcsQ0FBQTtnQkFDekgsTUFBTSxpQ0FBaUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO2dCQUNyRixpQ0FBaUMsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFHOUQsSUFBSSxjQUFjLEdBQUUsRUFBRSxDQUFDO2dCQUN2QixJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFFLENBQUMsQ0FBQSxFQUFFO29CQUMzQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDcEMsSUFBSSxDQUFDLENBQUMsWUFBWSxJQUFJLE9BQU8sRUFBQyxDQUFDO3dCQUM3QixXQUFXLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQzt3QkFDNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7b0JBQzlCLENBQUM7Z0JBRUgsQ0FBQyxDQUFHLENBQUE7Z0JBR0osTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUN4RSx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBRWpELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQzlELGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFFekMsSUFBSSxXQUFXLEdBQUUsRUFBRSxDQUFDO2dCQUNwQixJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7Z0JBRW5CLE9BQU8sQ0FBQyxHQUFHLENBQUMscUNBQXFDLENBQUMsQ0FBQztnQkFDbkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUUsQ0FBQyxDQUFBLEVBQUU7b0JBRXpDLElBQUksQ0FBQyxDQUFDLFVBQVUsS0FBSyxJQUFJLEVBQUMsQ0FBQzt3QkFDekIsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUM7d0JBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO3dCQUMxQixDQUFDLENBQUMsVUFBVSxHQUFFLE9BQU8sQ0FBQztvQkFDeEIsQ0FBQztvQkFDRCxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFFakMsQ0FBQyxDQUFHLENBQUE7Z0JBRUosT0FBTyxDQUFDLEdBQUcsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO2dCQUN6RCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUd6QixJQUFJLFdBQVcsRUFBQyxDQUFDO29CQUNmLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztvQkFDcEUscUJBQXFCLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUU5QyxDQUFDO2dCQUVELElBQUksU0FBUyxFQUFDLENBQUM7b0JBQ2IsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDMUQsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN2QyxDQUFDO2dCQUVELFNBQVM7Z0JBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FDckQsV0FBVyxDQUFDLEVBQUU7b0JBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDM0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7b0JBQy9CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDakQsQ0FBQyxDQUNGLENBQUM7Z0JBRUYsZ0JBQWdCO2dCQUVoQixJQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEtBQUssS0FBSyxFQUFFLENBQUM7b0JBQ25ELElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUMsbUJBQW1CLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztnQkFDM0QsQ0FBQztnQkFDRCxJQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEtBQUssS0FBSyxFQUFFLENBQUM7b0JBQ25ELElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUMsbUJBQW1CLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztnQkFDM0QsQ0FBQztnQkFFRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUM1QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUM1RCxDQUFDO2dCQUVGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQzVCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQzVELENBQUM7Z0JBRUYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FDNUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FDNUQsQ0FBQztnQkFFRixJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUNwQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FDNUUsQ0FBQztnQkFFRixJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUNwQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FDNUUsQ0FBQztnQkFFRixJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUNwQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FDNUUsQ0FBQztnQkFHRixJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUNwQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FDNUUsQ0FBQztnQkFFRixJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUNwQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FDNUUsQ0FBQztnQkFFRixJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUNwQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FDNUUsQ0FBQztnQkFFRixJQUFJLENBQUMsNEJBQTRCLENBQUUsUUFBUSxDQUN6QyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FDckYsQ0FBQztZQUVKLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxxRUFBcUUs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S0FBSyxDQUFDLFVBQVUsQ0FBQztnQkFDaEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDcEcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDcEcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO2dCQUM5RCxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7Z0JBQ2hFLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO2dCQUM5RCxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7Z0JBQzlELElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUN0RCxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FB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QUFqQixNQUFNO2dCQUN3QixnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uQ2hhbmdlcywgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUNvbnRyb2wsVmFsaWRhdG9ycyxWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0UmFkaW9DaGFuZ2UsIE1hdFJhZGlvR3JvdXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XHJcbmltcG9ydCB7IFZpY3RpbSxWaWN0aW1EcnVnVXNlLCBDb250YWN0LCBWaWN0aW1BZHZvY2F0ZSxWaWN0aW1HdWFyZGlhbixWaWN0aW1XZWFwb25Vc2UsVmljdGltU3VwcG9ydCxWaWN0aW1SZWxhdGlvbnNoaXAgfSBmcm9tICcuLi9zbWFydC12aWN0aW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBOZ2NTbWFydFZpY3RpbVNlcnZpY2UgfSBmcm9tICcuLi9zbWFydC12aWN0aW0uc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciwgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDb21tb25EaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uL2NvbW1vbi1kaWFsb2cvY29tbW9uLWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUsIGZvcm1hdERhdGUsIExvY2F0aW9ufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHl9ZnJvbSdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2V9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgQWRkcmVzc1ZhbGlkYXRvcnMsIFNtYXJ0QWRkcmVzc0NvbXBvbmVudCB9IGZyb20gJ0Bjc21hcnQvbmdjLXNtYXJ0LWFkZHJlc3MnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XHJcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5cclxuaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIEluamVjdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgVW50eXBlZEZvcm1BcnJheSxcclxuICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gIE5nRm9ybSxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7XHJcbiAgWGRtU2VydmljZSxcclxuICBTZWxlY3RlZE9mZmVuZGVyLFxyXG4gIFNtYXJ0QXV0aFNlcnZpY2UsXHJcbiAgTG9naW5TdGFmZixcclxuICBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWcsXHJcbiAgQWNjZXNzVHlwZSxcclxufSBmcm9tICdAY3NtYXJ0L25nYy1zbWFydC1jb3JlJztcclxuXHJcbmltcG9ydCB7IG1hcCwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFNtYXJ0RGVsZXRlQ29uZmlybUNvbXBvbmVudCB9IGZyb20gJ0Bjc21hcnQvc21hcnQtdWknO1xyXG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcblxyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQm9vbGVhbkZuIHtcclxuICAoKTogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFN0cmluZ0ZuIHtcclxuICAoKTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29uZGl0aW9uYWxWYWxpZGF0b3IocHJlZGljYXRlOiBCb29sZWFuRm4sXHJcbiAgdmFsaWRhdG9yOiBWYWxpZGF0b3JGbixcclxuICBlcnJvck5hbWVzcGFjZT86IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcclxucmV0dXJuIChmb3JtQ29udHJvbCA9PiB7XHJcbmlmICghZm9ybUNvbnRyb2wucGFyZW50KSB7XHJcbnJldHVybiBudWxsO1xyXG59XHJcbmxldCBlcnJvciA9IG51bGw7XHJcbmlmIChwcmVkaWNhdGUoKSkge1xyXG5lcnJvciA9IHZhbGlkYXRvcihmb3JtQ29udHJvbCk7XHJcbn1cclxuaWYgKGVycm9yTmFtZXNwYWNlICYmIGVycm9yKSB7XHJcbmNvbnN0IGN1c3RvbUVycm9yID0ge307XHJcbmN1c3RvbUVycm9yW2Vycm9yTmFtZXNwYWNlXSA9IGVycm9yO1xyXG5lcnJvciA9IGN1c3RvbUVycm9yXHJcbn1cclxucmV0dXJuIGVycm9yO1xyXG59KVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ0NvbmRpdGlvbmFsVmFsaWRhdG9yKHByZWRpY2F0ZTogU3RyaW5nRm4sXHJcbiAgdmFsaWRhdG9yOiBWYWxpZGF0b3JGbixcclxuICBlcnJvck5hbWVzcGFjZT86IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcclxucmV0dXJuIChmb3JtQ29udHJvbCA9PiB7XHJcbmlmICghZm9ybUNvbnRyb2wucGFyZW50KSB7XHJcbnJldHVybiBudWxsO1xyXG59XHJcbmxldCBlcnJvciA9IG51bGw7XHJcbmlmIChwcmVkaWNhdGUoKT09J1lTJykge1xyXG5lcnJvciA9IHZhbGlkYXRvcihmb3JtQ29udHJvbCk7XHJcbn1cclxuaWYgKGVycm9yTmFtZXNwYWNlICYmIGVycm9yKSB7XHJcbmNvbnN0IGN1c3RvbUVycm9yID0ge307XHJcbmN1c3RvbUVycm9yW2Vycm9yTmFtZXNwYWNlXSA9IGVycm9yO1xyXG5lcnJvciA9IGN1c3RvbUVycm9yXHJcbn1cclxucmV0dXJuIGVycm9yO1xyXG59KVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NzbWFydC12aWN0aW0tZGV0YWlsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc21hcnQtdmljdGltLWRldGFpbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc21hcnQtdmljdGltLWRldGFpbC5jb21wb25lbnQuY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbQ29tbW9uRGlhbG9nU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0VmljdGltRGV0YWlsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIHZpY3RpbURldGFpbCA9IDxWaWN0aW0+e307XHJcbiAgQElucHV0KCkgc3RhZmZJZDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIG9mZmVuZGVySWQ6IG51bWJlcjtcclxuICBASW5wdXQoKSBpc0ludGFrZTogYm9vbGVhbjtcclxuXHJcbiAgQE91dHB1dCgpIG9uU2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25DYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQFZpZXdDaGlsZChcImFkZHJlc3NDb21wb25lbnRcIikgYWRkcmVzc0NvbXBvbmVudDogU21hcnRBZGRyZXNzQ29tcG9uZW50O1xyXG5cclxuXHJcbiAgdmljdGltSWQ6IG51bWJlcjtcclxuICB2aWN0aW1Gb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG5cclxuICBkcnVnczogYW55O1xyXG4gIHZpY3RpbVN1cHBvcnRUeXBlczogYW55O1xyXG4gIHByZWZpeGVzOiBhbnk7XHJcbiAgLy92aWN0aW06IFZpY3RpbSA9IDxWaWN0aW0+e307XHJcbiAgc3VmZml4ZXM6IGFueTtcclxuICByZWxhdGlvbnNoaXBUeXBlczogYW55O1xyXG4gIGdlbmRlcnM6IGFueTtcclxuICBkb2NrZXRsaXN0OiBhbnk7XHJcbiAgd2VhcG9uVHlwZXM6IGFueTtcclxuICBmbGFnT3B0aW9uOiBhbnk7XHJcbiAgc2VsZWN0ZWRXZWFwb25UeXBlczogYW55O1xyXG4gIC8vc2VsZWN0ZWRWaWN0aW1TdXBwb3J0VHlwZXM6IGFueTtcclxuICBzZWxlY3RlZERydWdzOiBhbnk7XHJcbiAgaWQ6IGFueTtcclxuICBoaWRkZW46IGJvb2xlYW49dHJ1ZTtcclxuICBwcml2YXRlIHN1YjogYW55O1xyXG4gIHZpY3RpbUFkdm9jYXRlOiBWaWN0aW1BZHZvY2F0ZSA9ICA8VmljdGltQWR2b2NhdGU+e307XHJcbiAgdmljdGltR3VhcmRpYW46IFZpY3RpbUd1YXJkaWFuID0gPFZpY3RpbUd1YXJkaWFuPnt9O1xyXG4gIHZpY3RpbVdlYXBvblVzZTogVmljdGltV2VhcG9uVXNlO1xyXG4gIHZpY3RpbVN1cHBvcnQ6IFZpY3RpbVN1cHBvcnQ7XHJcbiAgdmljdGltRHJ1Z1VzZTogVmljdGltRHJ1Z1VzZTtcclxuICByZXN1bHQ6IGFueTtcclxuICBlZGl0TW9kZTogYW55O1xyXG4gIGd1YXJkaWFuVGFiRmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGFkdm9jYXRlVGFiRmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbW1vbkNoaWxkcmVuRGl2RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNwb0V4cGlyYXRpb25EaXZGbGFnIDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHN1cHBvcnRJblBsYWNlRGl2RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHdlYXBvbkludm9sdmVkRGl2RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRydWdVc2VEaXZGbGFnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0RlbGV0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGFkZHJlc3NJZDogbnVtYmVyID0gMDtcclxuICBhZHZvY2F0ZUFkZHJlc3NJZDogbnVtYmVyID0gMDtcclxuICBndWFyZGlhbkFkZHJlc3NJZDogbnVtYmVyID0gMDtcclxuICBkYXRlUGlwZSA9IG5ldyBEYXRlUGlwZSgnZW4tVVMnKTtcclxuICBlbWFpbFBhdHRlcm4gPSBcIl5bYS16MC05Ll8lKy1dK0BbYS16MC05Li1dK1xcLlthLXpdezIsNH0kXCI7XHJcbiAgcGhvbmVOdW1iZXIgPSBcIlxcXFxkezEwfVwiO1xyXG4gIGVkaXRWaWN0aW06IFZpY3RpbSA9IDxWaWN0aW0+e307XHJcbiAgdmljdGltQWdlOiBudW1iZXI7XHJcbiAgb3RoZXJXZWFwb25GbGFnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgb3RoZXJEcnVnRmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb250YWN0RGF0YVNvdXJjZT0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSgpO1xyXG4gIGNvbnRhY3RMaXN0OiBDb250YWN0W107XHJcbiAgZ3VhcmRpYW5QaG9uZUV4aXN0RmxhZzogYm9vbGVhbiA9ICBmYWxzZTtcclxuICBhZHZvY2F0ZVBob25lRXhpc3RGbGFnOiBib29sZWFuID0gIGZhbHNlO1xyXG4gIHBob25lVmFsaWRhdGlvbkZsYWc6IGJvb2xlYW4gPSAgZmFsc2U7XHJcbiAgZ3VhcmlkYW5Ob1Bob25lQ2hrRmxhZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgYWR2b2NhdGVOb1Bob25lQ2hrRmxhZzogYm9vbGVhbiA9ICB0cnVlO1xyXG5cclxuICBhZGRyZXNzVmFsaWRhdG9yczogQWRkcmVzc1ZhbGlkYXRvcnMgPSB7XHJcbiAgICBzdHJlZXQ6IFtdLFxyXG4gICAgc3RyZWV0MjogW10sXHJcbiAgICBjaXR5OiBbXSxcclxuICAgIHN0YXRlQ29kZTogW10sXHJcbiAgICB6aXBDb2RlOiBbXSxcclxuICAgIHBzYUNvZGU6IFtdLFxyXG4gIH07XHJcbiAgaG9tZVBob25lQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcclxuICBjZWxsUGhvbmVDb250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xyXG4gIHdvcmtQaG9uZUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XHJcbiAgZ3VhcmRpYW5Ib21lUGhvbmVDb250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xyXG4gIGd1YXJkaWFuQ2VsbFBob25lQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcclxuICBndWFyZGlhbldvcmtQaG9uZUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XHJcbiAgYWR2b2NhdGVIb21lUGhvbmVDb250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xyXG4gIGFkdm9jYXRlQ2VsbFBob25lQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcclxuICBhZHZvY2F0ZVdvcmtQaG9uZUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XHJcbiAgZW1lcmdlbmN5Q29udGFjdFBob25lQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcclxuXHJcbiBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxyXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHB1YmxpYyBzbmFja0JhcjogTWF0U25hY2tCYXIsXHJcbiAgICBwcml2YXRlIGNvbW1vbkRpYWxvZ1NlcnZpY2U6IENvbW1vbkRpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHZpY3RpbVNlcnZpY2U6IE5nY1NtYXJ0VmljdGltU2VydmljZSxcclxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWZzOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuXHJcbiAgICApIHtcclxuICAgICAgIHRoaXMuaW5pdEZvcm0oKTtcclxuICAgfVxyXG5cclxuICAgcHJpdmF0ZSBpbml0Rm9ybSgpIHtcclxuXHJcbiAgICBjb25zb2xlLmxvZygnaW5pdEZvcm0gaW4gc21hcnQtdmljdGltLWRldGFpbCcpO1xyXG5cclxuICAgIHRoaXMudmljdGltRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICB1bmRlclN1cGVydmlzaW9uRmxhZzogIG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbIFZhbGlkYXRvcnMucmVxdWlyZWRdKSksXHJcbiAgICAgIHZpY3RpbVJlbGF0aW9uc2hpcHM6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFsgVmFsaWRhdG9ycy5yZXF1aXJlZF0pKSxcclxuICAgICAgbGFzdE5hbWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbIFZhbGlkYXRvcnMucmVxdWlyZWRdKSksXHJcbiAgICAgIGZpcnN0TmFtZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFsgVmFsaWRhdG9ycy5yZXF1aXJlZF0pKSxcclxuICAgICAgbWlkZGxlTmFtZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgcHJlZml4SWQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIHN1ZmZpeElkOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBnZW5kZXJDb2RlOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGJpcnRoRGF0ZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgaG9tZVBob25lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBjZWxsUGhvbmU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIHdvcmtQaG9uZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgZW1haWw6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5lbWFpbFBhdHRlcm4pIF0pKSxcclxuICAgICAgbWlub3JGbGFnOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbIFZhbGlkYXRvcnMucmVxdWlyZWRdKSksXHJcbiAgICAgIHZpY3RpbUFkdm9jYXRlRmxhZzogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFsgVmFsaWRhdG9ycy5yZXF1aXJlZF0pKSxcclxuICAgICAgZ3VhcmRpYW5MYXN0TmFtZTpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCAgc3RyaW5nQ29uZGl0aW9uYWxWYWxpZGF0b3IoKCkgPT4gdGhpcy52aWN0aW1Gb3JtLmdldCgnbWlub3JGbGFnJykudmFsdWUsICBWYWxpZGF0b3JzLnJlcXVpcmVkLCAnaWxsdW1pbmF0aUVycm9yJykgKSxcclxuICAgICAgZ3VhcmRpYW5GaXJzdE5hbWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICBzdHJpbmdDb25kaXRpb25hbFZhbGlkYXRvcigoKSA9PiB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdtaW5vckZsYWcnKS52YWx1ZSwgIFZhbGlkYXRvcnMucmVxdWlyZWQsICdpbGx1bWluYXRpRXJyb3InKSksXHJcbiAgICAgIGd1YXJkaWFuUHJlZml4SWQ6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgZ3VhcmRpYW5TdWZmaXhJZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgLy9ndWFyZGlhbkdlbmRlcjpuZXcgRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGd1YXJkaWFuQmlydGhEYXRlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBndWFyZGlhbk5vUGhvbmVGbGFnOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodHJ1ZSksXHJcblxyXG4gICAgICBndWFyZGlhbkhvbWVQaG9uZTpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCksXHJcbiAgICAgIGd1YXJkaWFuQ2VsbFBob25lOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsKSxcclxuICAgICAgZ3VhcmRpYW5Xb3JrUGhvbmU6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywpLFxyXG5cclxuXHJcbiAgICAgIGd1YXJkaWFuRW1haWw6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5lbWFpbFBhdHRlcm4pIF0pKSxcclxuICAgICAgYWR2b2NhdGVOb1Bob25lRmxhZzogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0cnVlKSxcclxuXHJcblxyXG4gICAgICBhZHZvY2F0ZVdvcmtQaG9uZTpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCksXHJcbiAgICAgIGFkdm9jYXRlSG9tZVBob25lOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsKSxcclxuICAgICAgYWR2b2NhdGVDZWxsUGhvbmU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsKSxcclxuXHJcblxyXG4gICAgICBhZHZvY2F0ZVN1ZmZpeElkOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGFkdm9jYXRlUHJlZml4SWQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGFkdm9jYXRlRmlyc3ROYW1lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBzdHJpbmdDb25kaXRpb25hbFZhbGlkYXRvcigoKSA9PiB0aGlzLnZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1BZHZvY2F0ZUZsYWcnKS52YWx1ZSwgIFZhbGlkYXRvcnMucmVxdWlyZWQsICdpbGx1bWluYXRpRXJyb3InKSksXHJcbiAgICAgIGFkdm9jYXRlTGFzdE5hbWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIHN0cmluZ0NvbmRpdGlvbmFsVmFsaWRhdG9yKCgpID0+IHRoaXMudmljdGltRm9ybS5nZXQoJ3ZpY3RpbUFkdm9jYXRlRmxhZycpLnZhbHVlLCBWYWxpZGF0b3JzLnJlcXVpcmVkLCdpbGx1bWluYXRpRXJyb3InKSksXHJcbiAgICAgIGFkdm9jYXRlRW1haWw6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5wYXR0ZXJuKHRoaXMuZW1haWxQYXR0ZXJuKSBdKSksXHJcbiAgICAgIGVtZXJnZW5jeUNvbnRhY3Q6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGVtZXJnZW5jeUNvbnRhY3RQaG9uZTpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCksXHJcbiAgICAgIGVtZXJnZW5jeUNoaWxkcmVuOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBlbWVyZ2VuY3lDcG86IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGVtZXJnZW5jeURydWc6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgZW1lcmdlbmN5U3VwcG9ydDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgZW1lcmdlbmN5V2VhcG9uOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBkcnVnOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICB3ZWFwb246IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIHN1cHBvcnQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGNvbW1vbkNoaWxkcmVuRmxhZzogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgY29tbW9uQ2hpbGRyZW5OdW1iZXI6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgY3BvRXhwaXJhdGlvbkZsYWc6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGNwb0V4cGlyYXRpb25EYXRlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBhY2Nlc3NSaXNrOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGRydWdVc2VGbGFnOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIHN1cHBvcnRJblBsYWNlRmxhZzogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgd2VhcG9uSW52b2x2ZWRGbGFnOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBvdGhlcldlYXBvbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgb3RoZXJEcnVnOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBhbGNvaG9sVXNlRmxhZzpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICB2aWN0aW1TdXBwb3J0czpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICB2aWN0aW1XZWFwb25Vc2VzOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIHZpY3RpbURydWdVc2VzOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGFsbG93Q3Nvc2FDb250YWN0RmxhZzogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgbGl2ZVdpdGhPZmZlbmRlckZsYWc6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcblxyXG59KTtcclxuXHJcbiAgICB0aGlzLnZpY3RpbUZvcm0ubWFya0FzUHJpc3RpbmUoKTtcclxuXHRcdHRoaXMudmljdGltRm9ybS5tYXJrQXNVbnRvdWNoZWQoKTtcclxuXHJcbiAgIH1cclxuXHJcbiAgIHByaXZhdGUgX2dldFZpY3RpbSgpIHtcclxuICAgIC8vIGlmICh0aGlzLnZpY3RpbUlkID09PSAwKSB7XHJcblxyXG4gICAgLy8gICByZXR1cm47XHJcbiAgICAvLyB9O1xyXG5cclxuICAgIC8vIHRoaXMuZWRpdE1vZGUgPSB0cnVlO1xyXG4gICAgLy8gdGhpcy52aWN0aW1JZD0gMjQ0MDE7XHJcblxyXG5cclxuXHJcblx0XHRpZiAodGhpcy5lZGl0TW9kZSA9PSB0cnVlKSB7XHJcbiAgICBjb25zb2xlLmxvZygnZmluZCB2aWN0aW0gaWQgaW5zaWRlIGdldFZpY3RpbScpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy52aWN0aW1JZCk7XHJcblxyXG4gICAgaWYgKHRoaXMudmljdGltSWQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5zdWIgPSB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgdGhpcy52aWN0aW1JZCA9IHBhcmFtc1sndmljdGltSWQnXTtcclxuICAgICAgY29uc29sZS5sb2coJ215IHRoaXMudmljdGltSWQnKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1JZCk7XHJcbiAgICAgfSk7XHJcbiAgIH1cclxuXHJcbiAgICAgIHRoaXMudmljdGltU2VydmljZS5nZXRWaWN0aW0odGhpcy52aWN0aW1JZClcclxuICAgICAgLnN1YnNjcmliZSgodmljdGltOiBWaWN0aW0pID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZygndmljdGltIGRhdGEgMScpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHZpY3RpbSk7XHJcbiAgICAgICAgdGhpcy5lZGl0VmljdGltID0gPFZpY3RpbT52aWN0aW07XHJcblxyXG4gICAgICAgIHZhciBzdXBwb3J0c0RhdGEgPVtdO1xyXG4gICAgICAgIHRoaXMuZWRpdFZpY3RpbS52aWN0aW1TdXBwb3J0cy5mb3JFYWNoKCB0PT57c3VwcG9ydHNEYXRhLnB1c2godC52aWN0aW1TdXBwb3J0VHlwZUlkKTsgfSAgKVxyXG4gICAgICAgIGNvbnN0IHZpY3RpbVN1cHBvcnRzQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ3ZpY3RpbVN1cHBvcnRzJyk7XHJcbiAgICAgICAgdmljdGltU3VwcG9ydHNDb250cm9sLnNldFZhbHVlKHN1cHBvcnRzRGF0YSk7XHJcblxyXG5cclxuICAgICAgICB2YXIgcmVsYXRpb25zaGlwc0RhdGEgPVtdO1xyXG4gICAgICAgIHRoaXMuZWRpdFZpY3RpbS52aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcHMuZm9yRWFjaCggdD0+e3JlbGF0aW9uc2hpcHNEYXRhLnB1c2godC52aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZCk7IH0gIClcclxuICAgICAgICBjb25zdCB2aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcENvbnRyb2wgPSB0aGlzLnZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1SZWxhdGlvbnNoaXBzJyk7XHJcbiAgICAgICAgdmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBDb250cm9sLnNldFZhbHVlKHJlbGF0aW9uc2hpcHNEYXRhKTtcclxuXHJcblxyXG4gICAgICAgIHZhciB3ZWFwb25Vc2VzRGF0YSA9W107XHJcbiAgICAgICAgdmFyIG90aGVyV2VhcG9uID0gXCJcIjtcclxuICAgICAgICB0aGlzLmVkaXRWaWN0aW0udmljdGltV2VhcG9uVXNlcy5mb3JFYWNoKCB0PT57XHJcbiAgICAgICAgICB3ZWFwb25Vc2VzRGF0YS5wdXNoKHQud2VhcG9uVHlwZUlkKTtcclxuICAgICAgICAgIGlmICh0LndlYXBvblR5cGVJZCA9PSBcIk9USEVSXCIpe1xyXG4gICAgICAgICAgICBvdGhlcldlYXBvbiA9IHQub3RoZXJXZWFwb247XHJcbiAgICAgICAgICAgIHRoaXMub3RoZXJXZWFwb25GbGFnID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSAgKVxyXG5cclxuXHJcbiAgICAgICAgY29uc3QgdmljdGltV2VhcG9uVXNlc0NvbnRyb2wgPSB0aGlzLnZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1XZWFwb25Vc2VzJyk7XHJcbiAgICAgICAgdmljdGltV2VhcG9uVXNlc0NvbnRyb2wuc2V0VmFsdWUod2VhcG9uVXNlc0RhdGEpO1xyXG5cclxuICAgICAgICBjb25zdCBvdGhlcldlYXBvbkNvbnRyb2wgPSB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdvdGhlcldlYXBvbicpO1xyXG4gICAgICAgIG90aGVyV2VhcG9uQ29udHJvbC5zZXRWYWx1ZShvdGhlcldlYXBvbik7XHJcblxyXG4gICAgICAgIHZhciBkcnVnVXNlRGF0YSA9W107XHJcbiAgICAgICAgdmFyIG90aGVyRHJ1ZyA9IFwiXCI7XHJcblxyXG4gICAgICAgIGNvbnNvbGUubG9nKCdsb2FkIHRoaXMuZWRpdFZpY3RpbS52aWN0aW1EcnVnVXNlcycpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMuZWRpdFZpY3RpbS52aWN0aW1EcnVnVXNlcyk7XHJcbiAgICAgICAgdGhpcy5lZGl0VmljdGltLnZpY3RpbURydWdVc2VzLmZvckVhY2goIHQ9PntcclxuXHJcbiAgICAgICAgICBpZiAodC5kcnVnVHlwZUlkID09PSBudWxsKXtcclxuICAgICAgICAgICAgb3RoZXJEcnVnID0gdC5vdGhlckRydWc7XHJcbiAgICAgICAgICAgIHRoaXMub3RoZXJEcnVnRmxhZyA9IHRydWU7XHJcbiAgICAgICAgICAgIHQuZHJ1Z1R5cGVJZCA9J09USEVSJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRydWdVc2VEYXRhLnB1c2godC5kcnVnVHlwZUlkKTtcclxuXHJcbiAgICAgICAgfSAgKVxyXG5cclxuICAgICAgICBjb25zb2xlLmxvZygndGhpcy5lZGl0VmljdGltLnZpY3RpbURydWdVc2VzIGFmdGVyIHB1c2gnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhkcnVnVXNlRGF0YSk7XHJcblxyXG5cclxuICAgICAgICBpZiAoZHJ1Z1VzZURhdGEpe1xyXG4gICAgICAgICAgY29uc3QgdmljdGltRHJ1Z1VzZXNDb250cm9sID0gdGhpcy52aWN0aW1Gb3JtLmdldCgndmljdGltRHJ1Z1VzZXMnKTtcclxuICAgICAgICAgIHZpY3RpbURydWdVc2VzQ29udHJvbC5zZXRWYWx1ZShkcnVnVXNlRGF0YSk7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG90aGVyRHJ1Zyl7XHJcbiAgICAgICAgICBjb25zdCBvdGhlckRydWdDb250cm9sID0gdGhpcy52aWN0aW1Gb3JtLmdldCgnb3RoZXJEcnVnJyk7XHJcbiAgICAgICAgICBvdGhlckRydWdDb250cm9sLnNldFZhbHVlKG90aGVyRHJ1Zyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL2NvbnRhY3RcclxuICAgICAgICB0aGlzLnZpY3RpbVNlcnZpY2UuZ2V0Q29udGFjdHModGhpcy52aWN0aW1JZCkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgY29udGFjdExpc3QgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY29udGFjdExpc3QnKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coY29udGFjdExpc3QpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRhY3RMaXN0ID0gY29udGFjdExpc3Q7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGFjdERhdGFTb3VyY2UuZGF0YSA9IHRoaXMuY29udGFjdExpc3Q7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgLy9ubyBwaG9uZSBmaWVsZFxyXG5cclxuICAgICAgICBpZiAoIHRoaXMuZWRpdFZpY3RpbS5ndWFyZGlhbk5vUGhvbmVGbGFnID09PSBmYWxzZSApe1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1Gb3JtLnBhdGNoVmFsdWUoe2d1YXJkaWFuTm9QaG9uZUZsYWc6IGZhbHNlfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICggdGhpcy5lZGl0VmljdGltLmFkdm9jYXRlTm9QaG9uZUZsYWcgPT09IGZhbHNlICl7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUZvcm0ucGF0Y2hWYWx1ZSh7YWR2b2NhdGVOb1Bob25lRmxhZzogZmFsc2V9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaG9tZVBob25lQ29udHJvbC5zZXRWYWx1ZShcclxuICAgICAgICAgICF0aGlzLmVkaXRWaWN0aW0uaG9tZVBob25lID8gXCJcIiA6IHRoaXMuZWRpdFZpY3RpbS5ob21lUGhvbmVcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmNlbGxQaG9uZUNvbnRyb2wuc2V0VmFsdWUoXHJcbiAgICAgICAgICAhdGhpcy5lZGl0VmljdGltLmNlbGxQaG9uZSA/IFwiXCIgOiB0aGlzLmVkaXRWaWN0aW0uY2VsbFBob25lXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy53b3JrUGhvbmVDb250cm9sLnNldFZhbHVlKFxyXG4gICAgICAgICAgIXRoaXMuZWRpdFZpY3RpbS53b3JrUGhvbmUgPyBcIlwiIDogdGhpcy5lZGl0VmljdGltLndvcmtQaG9uZVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuZ3VhcmRpYW5Ib21lUGhvbmVDb250cm9sLnNldFZhbHVlKFxyXG4gICAgICAgICAgIXRoaXMuZWRpdFZpY3RpbS5ndWFyZGlhbkhvbWVQaG9uZSA/IFwiXCIgOiB0aGlzLmVkaXRWaWN0aW0uZ3VhcmRpYW5Ib21lUGhvbmVcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmd1YXJkaWFuQ2VsbFBob25lQ29udHJvbC5zZXRWYWx1ZShcclxuICAgICAgICAgICF0aGlzLmVkaXRWaWN0aW0uZ3VhcmRpYW5DZWxsUGhvbmUgPyBcIlwiIDogdGhpcy5lZGl0VmljdGltLmd1YXJkaWFuQ2VsbFBob25lXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5ndWFyZGlhbldvcmtQaG9uZUNvbnRyb2wuc2V0VmFsdWUoXHJcbiAgICAgICAgICAhdGhpcy5lZGl0VmljdGltLmd1YXJkaWFuV29ya1Bob25lID8gXCJcIiA6IHRoaXMuZWRpdFZpY3RpbS5ndWFyZGlhbldvcmtQaG9uZVxyXG4gICAgICAgICk7XHJcblxyXG5cclxuICAgICAgICB0aGlzLmFkdm9jYXRlSG9tZVBob25lQ29udHJvbC5zZXRWYWx1ZShcclxuICAgICAgICAgICF0aGlzLmVkaXRWaWN0aW0uYWR2b2NhdGVIb21lUGhvbmUgPyBcIlwiIDogdGhpcy5lZGl0VmljdGltLmFkdm9jYXRlSG9tZVBob25lXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5hZHZvY2F0ZUNlbGxQaG9uZUNvbnRyb2wuc2V0VmFsdWUoXHJcbiAgICAgICAgICAhdGhpcy5lZGl0VmljdGltLmFkdm9jYXRlQ2VsbFBob25lID8gXCJcIiA6IHRoaXMuZWRpdFZpY3RpbS5hZHZvY2F0ZUNlbGxQaG9uZVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuYWR2b2NhdGVXb3JrUGhvbmVDb250cm9sLnNldFZhbHVlKFxyXG4gICAgICAgICAgIXRoaXMuZWRpdFZpY3RpbS5hZHZvY2F0ZVdvcmtQaG9uZSA/IFwiXCIgOiB0aGlzLmVkaXRWaWN0aW0uYWR2b2NhdGVXb3JrUGhvbmVcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmVtZXJnZW5jeUNvbnRhY3RQaG9uZUNvbnRyb2wgLnNldFZhbHVlKFxyXG4gICAgICAgICAgIXRoaXMuZWRpdFZpY3RpbS5lbWVyZ2VuY3lDb250YWN0UGhvbmUgID8gXCJcIiA6IHRoaXMuZWRpdFZpY3RpbS5lbWVyZ2VuY3lDb250YWN0UGhvbmVcclxuICAgICAgICApO1xyXG5cclxuICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihcIkVycm9yIG9jY3VyZWQgd2hpbGUgcmV0cml2aW5nIFZpY3RpbSBJbmZvcm1hdGlvbi4gUGxlYXNlIHRyeSBhZ2Fpbi5cIik7XHJcbiAgICAgIH0pO1xyXG4gICAgcmV0dXJuO1xyXG5cdFx0fSBlbHNlIHtcclxuICAgICAgLy9uZXdcclxuXHJcbiAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG5cclxuICB9XHJcblxyXG4gIG9uQ2xlYXIoKSB7XHJcbiAgICBpZiAodGhpcy5hZGRyZXNzQ29tcG9uZW50KSB0aGlzLmFkZHJlc3NDb21wb25lbnQucmVzZXQoKTtcclxuICB9XHJcblxyXG4gIHNob3dBZGRyZXNzKHZhbHVlKXtcclxuXHJcbiAgICBpZiAodmFsdWUuY2hlY2tlZCl7XHJcblxyXG4gICAgdGhpcy52aWN0aW1TZXJ2aWNlLmdldEN1cnJlbnRIb3VzaW5nKHRoaXMub2ZmZW5kZXJJZCkuc3Vic2NyaWJlKFxyXG4gICAgICAoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5hZGRyZXNzSWQgPSBpdGVtLmhvdXNpbmcuYWRkcmVzc0lkO1xyXG4gICAgICAgIHRoaXMudmljdGltRm9ybS5wYXRjaFZhbHVlKHthZGRyZXNzSWQ6IHRoaXMuYWRkcmVzc0lkfSlcclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMuYWRkcmVzc0NvbXBvbmVudC5yZXNldCgpO1xyXG4gICAgICB0aGlzLmVkaXRWaWN0aW0uYWxsb3dDc29zYUNvbnRhY3RGbGFnID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuYWRkcmVzc0lkID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBvbkFkZHJlc3NDaGFuZ2UoYWRkcmVzc0lkKSB7XHJcbiAgICB0aGlzLnZpY3RpbUZvcm0ucGF0Y2hWYWx1ZSh7YWRkcmVzc0lkOiBhZGRyZXNzSWR9KVxyXG4gICAgdGhpcy5hZGRyZXNzSWQgPSBhZGRyZXNzSWQ7XHJcbiAgfVxyXG4gIG9uR3VhcmRpYW5BZGRyZXNzQ2hhbmdlKE15R3VhcmRpYW5BZGRyZXNzSWQpIHtcclxuICAgIHRoaXMudmljdGltRm9ybS5wYXRjaFZhbHVlKHtndWFyZGlhbkFkZHJlc3NJZDogTXlHdWFyZGlhbkFkZHJlc3NJZH0pXHJcbiAgICB0aGlzLmd1YXJkaWFuQWRkcmVzc0lkID0gIE15R3VhcmRpYW5BZGRyZXNzSWQ7XHJcbiAgfVxyXG4gIG9uQWR2b2NhdGVBZGRyZXNzQ2hhbmdlKE15QWR2b2NhdGVBZGRyZXNzSWQpIHtcclxuICAgIHRoaXMudmljdGltRm9ybS5wYXRjaFZhbHVlKHthZHZvY2F0ZUFkZHJlc3NJZDogTXlBZHZvY2F0ZUFkZHJlc3NJZH0pXHJcbiAgICB0aGlzLmFkdm9jYXRlQWRkcmVzc0lkID0gTXlBZHZvY2F0ZUFkZHJlc3NJZDtcclxuICB9XHJcbiAgY2FuY2VsKCkge1xyXG4gICAgdGhpcy52aWN0aW1Gb3JtLnJlc2V0KCk7XHJcbn1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaG9tZVBob25lQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChocG46IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGhwbi5yZXBsYWNlKC9cXEQvZywgJycpO1xyXG4gICAgICB0aGlzLmVkaXRWaWN0aW0uaG9tZVBob25lPSBuZXdWYWx1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuY2VsbFBob25lQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChocG46IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGhwbi5yZXBsYWNlKC9cXEQvZywgJycpO1xyXG4gICAgICB0aGlzLmVkaXRWaWN0aW0uY2VsbFBob25lPSBuZXdWYWx1ZTtcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICB0aGlzLndvcmtQaG9uZUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoaHBuOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgbmV3VmFsdWUgPSBocG4ucmVwbGFjZSgvXFxEL2csICcnKTtcclxuICAgICAgdGhpcy5lZGl0VmljdGltLndvcmtQaG9uZT0gbmV3VmFsdWU7XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgdGhpcy5ndWFyZGlhbkhvbWVQaG9uZUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoaHBuOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgbmV3VmFsdWUgPSBocG4ucmVwbGFjZSgvXFxEL2csICcnKTtcclxuICAgICAgdGhpcy5lZGl0VmljdGltLmd1YXJkaWFuSG9tZVBob25lPSBuZXdWYWx1ZTtcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICB0aGlzLmd1YXJkaWFuQ2VsbFBob25lQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChocG46IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGhwbi5yZXBsYWNlKC9cXEQvZywgJycpO1xyXG4gICAgICB0aGlzLmVkaXRWaWN0aW0uZ3VhcmRpYW5DZWxsUGhvbmU9IG5ld1ZhbHVlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5ndWFyZGlhbldvcmtQaG9uZUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoaHBuOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgbmV3VmFsdWUgPSBocG4ucmVwbGFjZSgvXFxEL2csICcnKTtcclxuICAgICAgdGhpcy5lZGl0VmljdGltLmd1YXJkaWFuV29ya1Bob25lPSBuZXdWYWx1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWR2b2NhdGVIb21lUGhvbmVDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKGhwbjogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gaHBuLnJlcGxhY2UoL1xcRC9nLCAnJyk7XHJcbiAgICAgIHRoaXMuZWRpdFZpY3RpbS5hZHZvY2F0ZUhvbWVQaG9uZT0gbmV3VmFsdWU7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkdm9jYXRlQ2VsbFBob25lQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChocG46IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGhwbi5yZXBsYWNlKC9cXEQvZywgJycpO1xyXG4gICAgICB0aGlzLmVkaXRWaWN0aW0uYWR2b2NhdGVDZWxsUGhvbmU9IG5ld1ZhbHVlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZHZvY2F0ZVdvcmtQaG9uZUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoaHBuOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgbmV3VmFsdWUgPSBocG4ucmVwbGFjZSgvXFxEL2csICcnKTtcclxuICAgICAgdGhpcy5lZGl0VmljdGltLmFkdm9jYXRlV29ya1Bob25lPSBuZXdWYWx1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZW1lcmdlbmN5Q29udGFjdFBob25lQ29udHJvbCAudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoaHBuOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgbmV3VmFsdWUgPSBocG4ucmVwbGFjZSgvXFxEL2csICcnKTtcclxuICAgICAgdGhpcy5lZGl0VmljdGltLmVtZXJnZW5jeUNvbnRhY3RQaG9uZT0gbmV3VmFsdWU7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyB0aGlzLm9mZmVuZGVySWQgPSAyMTkxNTE7XHJcbiAgICAvLyB0aGlzLnN0YWZmSWQgPSAyOTI5O1xyXG4gICAgY29uc29sZS5sb2coJ3Nob3cgb2ZmZW5kZXJJZCcpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5vZmZlbmRlcklkKTtcclxuICAgIGNvbnNvbGUubG9nKCdzaG93IHN0YWZmSWQnKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc3RhZmZJZCk7XHJcbiAgICBjb25zb2xlLmxvZygnc2hvdyBpc0ludGFrZScpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5pc0ludGFrZSk7XHJcblxyXG4gICAgICAgLy9yZXF1aXJlZCBmaWVsZFxyXG4gICAgY29uc3QgcmVxdWlyZWRJbXBsZW1lbnRhdGlvbiA9IHtnZXQ6ZnVuY3Rpb24oKTpib29sZWFue2lmKHRoaXMuX3JlcXVpcmVkKXtyZXR1cm4gdGhpcy5fcmVxdWlyZWQ7fVxyXG4gICAgaWYodGhpcy5uZ0NvbnRyb2wmJnRoaXMubmdDb250cm9sLmNvbnRyb2wmJnRoaXMubmdDb250cm9sLmNvbnRyb2wudmFsaWRhdG9yXHJcbiAgICAgICl7Y29uc3QgZW1wdHlWYWx1ZUNvbnRyb2w9T2JqZWN0LmFzc2lnbih7fSxcclxuICAgICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sKTsoZW1wdHlWYWx1ZUNvbnRyb2wgYXMgYW55KS52YWx1ZT1udWxsO1xyXG4gICAgICAgIHJldHVybigncmVxdWlyZWQnaW4odGhpcy5uZ0NvbnRyb2wuY29udHJvbC52YWxpZGF0b3IoZW1wdHlWYWx1ZUNvbnRyb2wpfHx7fSkpO31cclxuICAgICAgICByZXR1cm4gZmFsc2U7fSxzZXQ6ZnVuY3Rpb24odmFsdWU6Ym9vbGVhbil7dGhpcy5fcmVxdWlyZWQ9Y29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTt9LH07XHJcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE1hdElucHV0LnByb3RvdHlwZSwncmVxdWlyZWQnLHJlcXVpcmVkSW1wbGVtZW50YXRpb24sKTtcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoTWF0U2VsZWN0LnByb3RvdHlwZSwncmVxdWlyZWQnLHJlcXVpcmVkSW1wbGVtZW50YXRpb24sKTtcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoTWF0UmFkaW9Hcm91cC5wcm90b3R5cGUsJ3JlcXVpcmVkJyxyZXF1aXJlZEltcGxlbWVudGF0aW9uLCk7XHJcbiAgICAvL3JlcXVpcmVkIGZpZWxkIGVuZFxyXG5cclxuXHJcblxyXG5cclxuICAgICBpZiAodGhpcy52aWN0aW1EZXRhaWwhPW51bGwpIHtcclxuICAgICAgIC8vIGVkaXQgcmVjb3JkXHJcbiAgICAgIHRoaXMuZWRpdE1vZGUgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNob3dEZWxldGU9IHRydWU7XHJcbiAgICAgIHRoaXMudmljdGltSWQgPSB0aGlzLnZpY3RpbURldGFpbC52aWN0aW1JZDtcclxuICAgICAgdGhpcy5ndWFyZGlhblRhYkZsYWcgPSB0aGlzLnZpY3RpbURldGFpbC5taW5vckZsYWc7XHJcblxyXG4gICAgICBpZiAodGhpcy52aWN0aW1EZXRhaWwudmljdGltQWR2b2NhdGVGbGFnPT0nWVMnKXtcclxuICAgICAgICAgICAgdGhpcy5hZHZvY2F0ZVRhYkZsYWcgPSB0cnVlO1xyXG4gICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMub3RoZXJXZWFwb25GbGFnID09IHRydWUpe1xyXG4gICAgICAgIGNvbnN0IG90aGVyV2VhcG9uQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ290aGVyV2VhcG9uJyk7XHJcbiAgICAgICAgb3RoZXJXZWFwb25Db250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLm90aGVyRHJ1Z0ZsYWcgPT0gdHJ1ZSl7XHJcbiAgICAgICAgY29uc3Qgb3RoZXJEcnVnQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ290aGVyRHJ1ZycpO1xyXG4gICAgICAgIG90aGVyRHJ1Z0NvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5jcG9FeHBpcmF0aW9uRGl2RmxhZyAgPXRoaXMudmljdGltRGV0YWlsLmNwb0V4cGlyYXRpb25GbGFnO1xyXG4gICAgICB0aGlzLmNvbW1vbkNoaWxkcmVuRGl2RmxhZyA9IHRoaXMudmljdGltRGV0YWlsLmNvbW1vbkNoaWxkcmVuRmxhZztcclxuICAgICAgdGhpcy5zdXBwb3J0SW5QbGFjZURpdkZsYWc9ICB0aGlzLnZpY3RpbURldGFpbC5zdXBwb3J0SW5QbGFjZUZsYWc7XHJcbiAgICAgIHRoaXMud2VhcG9uSW52b2x2ZWREaXZGbGFnPSAgdGhpcy52aWN0aW1EZXRhaWwud2VhcG9uSW52b2x2ZWRGbGFnO1xyXG4gICAgICB0aGlzLmRydWdVc2VEaXZGbGFnPSAgdGhpcy52aWN0aW1EZXRhaWwuZHJ1Z1VzZUZsYWc7XHJcbiAgICAgIHRoaXMuYWRkcmVzc0lkID0gdGhpcy52aWN0aW1EZXRhaWwuYWRkcmVzc0lkO1xyXG4gICAgICB0aGlzLmd1YXJkaWFuQWRkcmVzc0lkID0gIHRoaXMudmljdGltRGV0YWlsLmd1YXJkaWFuQWRkcmVzc0lkO1xyXG4gICAgICB0aGlzLmFkdm9jYXRlQWRkcmVzc0lkID0gIHRoaXMudmljdGltRGV0YWlsLmFkdm9jYXRlQWRkcmVzc0lkO1xyXG4gICAgICB0aGlzLl9nZXRWaWN0aW0oKTtcclxuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvL2FkZCBuZXcgcmVjb3JkXHJcbiAgICAgIHRoaXMudmljdGltRm9ybS5wYXRjaFZhbHVlKHtndWFyZGlhbk5vUGhvbmVGbGFnOiB0cnVlfSk7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS5wYXRjaFZhbHVlKHthZHZvY2F0ZU5vUGhvbmVGbGFnOiB0cnVlfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy52aWN0aW1TZXJ2aWNlLmdldEZsYWdPcHRpb25ZZXNOb1Vua25vd25zKCkuc3Vic2NyaWJlKFxyXG4gICAgICAoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZmxhZ09wdGlvbiA9IGl0ZW1zO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy52aWN0aW1TZXJ2aWNlLmdldEdlbmRlcnMoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChpdGVtczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5nZW5kZXJzID0gaXRlbXM7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLnZpY3RpbVNlcnZpY2UuZ2V0UHJlZml4ZXMoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChpdGVtczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5wcmVmaXhlcyA9IGl0ZW1zO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy52aWN0aW1TZXJ2aWNlLmdldFN1ZmZpeGVzKCkuc3Vic2NyaWJlKFxyXG4gICAgICAoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc3VmZml4ZXMgPSBpdGVtcztcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIHRoaXMudmljdGltU2VydmljZS5nZXRSZWxhdGlvbnNoaXBUeXBlcygpLnN1YnNjcmliZShcclxuICAgICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuICAgICAgIFxyXG4gICAgICAgICAgdGhpcy5yZWxhdGlvbnNoaXBUeXBlcyA9IGl0ZW1zLmZpbHRlciggKHkpID0+ICgoeS5yZWxhdGlvbnNoaXBDYXRlZ29yeUlkID09PSAnU1QnIHx8IHkucmVsYXRpb25zaGlwQ2F0ZWdvcnlJZCA9PT0gJ0ZNJyApIFxyXG4gICAgICAgICAgJiYgeS5yZWxhdGlvbnNoaXAgIT09ICdBWSdcclxuICAgICAgICAgICYmIHkucmVsYXRpb25zaGlwICE9PSAnVlQnXHJcbiAgICAgICAgICAmJiB5LnJlbGF0aW9uc2hpcCAhPT0gJ0NNRSdcclxuICAgICAgICAgICYmIHkucmVsYXRpb25zaGlwICE9PSAnSEgnXHJcbiAgICAgICAgICAmJiB5LnJlbGF0aW9uc2hpcCAhPT0gJ05DJ1xyXG4gICAgICAgICAgJiYgeS5yZWxhdGlvbnNoaXAgIT09ICdDTCdcclxuICAgICAgICAgICYmIHkucmVsYXRpb25zaGlwICE9PSAnT1AnXHJcblxyXG4gICAgICAgICkpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy52aWN0aW1TZXJ2aWNlLmdldFN1cHBvcnRUeXBlcygpLnN1YnNjcmliZShcclxuICAgICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnZpY3RpbVN1cHBvcnRUeXBlcyA9IGl0ZW1zO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy52aWN0aW1TZXJ2aWNlLmdldFdlYXBvblR5cGVzKCkuc3Vic2NyaWJlKFxyXG4gICAgICAoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMud2VhcG9uVHlwZXMgPSBpdGVtcztcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIHRoaXMudmljdGltU2VydmljZS5nZXREcnVnc1R5cGVzKCkuc3Vic2NyaWJlKFxyXG4gICAgICAoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdkcnVnIGxvb2t1cCBpdGVtcycpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGl0ZW1zKTtcclxuICAgICAgICB0aGlzLmRydWdzID0gaXRlbXM7XHJcbiAgICAgICAgdGhpcy5kcnVncy5wdXNoKHtkcnVnVHlwZUlkOiAnT1RIRVInLCBuYW1lOiAnT3RoZXInfSk7XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5kcnVncyk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICAvLyB0aGlzLnZpY3RpbVNlcnZpY2UuZ2V0RG9ja2V0TGlzdCh0aGlzLm9mZmVuZGVySWQpLnN1YnNjcmliZShcclxuICAgIC8vICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuICAgIC8vICAgICB0aGlzLmRvY2tldGxpc3QgPSBpdGVtcztcclxuICAgIC8vICAgfVxyXG4gICAgLy8gKTtcclxuXHJcbiAgICB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdtaW5vckZsYWcnKS52YWx1ZUNoYW5nZXNcclxuICAgIC5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgIHRoaXMudmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuRmlyc3ROYW1lJykudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgIHRoaXMudmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuTGFzdE5hbWUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5Xb3JrUGhvbmUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5Ib21lUGhvbmUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5DZWxsUGhvbmUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1BZHZvY2F0ZUZsYWcnKS52YWx1ZUNoYW5nZXNcclxuICAgIC5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgIHRoaXMudmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlRmlyc3ROYW1lJykudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgIHRoaXMudmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlTGFzdE5hbWUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVXb3JrUGhvbmUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVIb21lUGhvbmUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVDZWxsUGhvbmUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBiYWNrKCl7XHJcbiAgICAvL3RoaXMub25TYXZlLmVtaXQodGhpcy52aWN0aW1EZXRhaWwpO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWyd2aWN0aW0nXSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVWaWN0aW0oKSB7XHJcbiAgICB0aGlzLmNvbW1vbkRpYWxvZ1NlcnZpY2VcclxuICAgIC5jb25maXJtKCcnLCAnRG8geW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgVmljdGltPycsICdZZXMnLCAnTm8nKVxyXG4gICAgLnN1YnNjcmliZShyZXMgPT4ge3RoaXMucmVzdWx0ID0gIHJlcztcclxuICAgICAgICBpZiAodGhpcy5yZXN1bHQpIHtcclxuICAgICAgICAgICAgdGhpcy52aWN0aW1TZXJ2aWNlLmRlbGV0ZVZpY3RpbXModGhpcy52aWN0aW1EZXRhaWwudmljdGltSWQsIHRoaXMuc3RhZmZJZClcclxuICAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ0RlbGV0ZSBTdWNjZXNzZnVsbHkhJywgJycsIHtcclxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLCB9KTtcclxuICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgKTtcclxuICAgICAgICAgICBcclxuICAgICAgICAgICAvLyB0aGlzLm9uU2F2ZS5lbWl0KHRoaXMudmljdGltRGV0YWlsKTtcclxuICAgICAgICAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3ZpY3RpbSddKTtcclxuICAgICAgICAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgICAgICAgICB9LDE1MDApO1xyXG4gICAgICAgICAgXHJcblxyXG4gICAgICAgIH1cclxuICAgICB9KTtcclxuICB9XHJcblxyXG4gIHJhZGlvTWlub3JDaGFuZ2UoJGV2ZW50OiBNYXRSYWRpb0NoYW5nZSl7XHJcbiAgICBpZiAoJGV2ZW50LnZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuZ3VhcmRpYW5UYWJGbGFnID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMuZ3VhcmRpYW5UYWJGbGFnID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcmFkaW9BZHZvY2F0ZUNoYW5nZSgkZXZlbnQ6IE1hdFJhZGlvQ2hhbmdlKXtcclxuXHJcbiAgICBjb25zdCBhZHZvY2F0ZUxhc3ROYW1lQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlTGFzdE5hbWUnKTtcclxuICAgIGNvbnN0IGFkdm9jYXRlRmlyc3ROYW1lQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlRmlyc3ROYW1lJyk7XHJcblxyXG4gICAgaWYgKCRldmVudC52YWx1ZSA9PT0gXCJZU1wiKSB7XHJcbiAgICAgIHRoaXMuYWR2b2NhdGVUYWJGbGFnID0gdHJ1ZTtcclxuICAgICAgYWR2b2NhdGVMYXN0TmFtZUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgYWR2b2NhdGVGaXJzdE5hbWVDb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICB0aGlzLmFkdm9jYXRlVGFiRmxhZyA9IGZhbHNlO1xyXG4gICAgICBhZHZvY2F0ZUxhc3ROYW1lQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgICAgYWR2b2NhdGVGaXJzdE5hbWVDb250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgfVxyXG4gICAgYWR2b2NhdGVMYXN0TmFtZUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgYWR2b2NhdGVGaXJzdE5hbWVDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuXHJcbiAgfVxyXG5cclxuICByYWRpb0NpY0NoYW5nZSgkZXZlbnQ6IE1hdFJhZGlvQ2hhbmdlKXtcclxuICAgIGlmICgkZXZlbnQudmFsdWUgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5jb21tb25DaGlsZHJlbkRpdkZsYWcgPSB0cnVlO1xyXG4gICAgICAvLyByZXF1cmllIGZpZWxkXHJcbiAgICAgIHRoaXMuc2V0VmFsaWRhdG9ycygnY29tbW9uQ2hpbGRyZW4nKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMuY29tbW9uQ2hpbGRyZW5EaXZGbGFnID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRWYWxpZGF0b3JzKHR5cGUpIHtcclxuICAgIGlmKHR5cGUgPT0gJ2NvbW1vbkNoaWxkcmVuJyl7XHJcbiAgICB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdjb21tb25DaGlsZHJlbk51bWJlcicpLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnY29tbW9uQ2hpbGRyZW5OdW1iZXInKS5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICB9XHJcbiAgIGVsc2UgaWYgKHR5cGUgPT0gJ2Nwbycpe1xyXG4gICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnY3BvRXhwaXJhdGlvbkRhdGUnKS5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIHRoaXMudmljdGltRm9ybS5nZXQoJ2Nwb0V4cGlyYXRpb25EYXRlJykuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuXHJcbiAgIH1cclxuICB9XHJcbiAgcmFkaW9TdXBwb3J0Q2hhbmdlKCRldmVudDogTWF0UmFkaW9DaGFuZ2Upe1xyXG4gICAgaWYgKCRldmVudC52YWx1ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLnN1cHBvcnRJblBsYWNlRGl2RmxhZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICB0aGlzLnN1cHBvcnRJblBsYWNlRGl2RmxhZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICByYWRpb1dlYXBvbkNoYW5nZSgkZXZlbnQ6IE1hdFJhZGlvQ2hhbmdlKXtcclxuICAgIGlmICgkZXZlbnQudmFsdWUgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy53ZWFwb25JbnZvbHZlZERpdkZsYWcgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgdGhpcy53ZWFwb25JbnZvbHZlZERpdkZsYWcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgcmFkaW9EcnVnQ2hhbmdlKCRldmVudDogTWF0UmFkaW9DaGFuZ2Upe1xyXG4gICAgaWYgKCRldmVudC52YWx1ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmRydWdVc2VEaXZGbGFnID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMuZHJ1Z1VzZURpdkZsYWcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJhZGlvQ3BvQ2hhbmdlKCRldmVudDogTWF0UmFkaW9DaGFuZ2Upe1xyXG4gICAgaWYgKCRldmVudC52YWx1ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmNwb0V4cGlyYXRpb25EaXZGbGFnID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zZXRWYWxpZGF0b3JzKCdjcG8nKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMuY3BvRXhwaXJhdGlvbkRpdkZsYWcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZURPQkNoYW5nZSgkZXZlbnQgKXtcclxuICAgdmFyIGFnZURpZk1zID0gRGF0ZS5ub3coKSAtICAkZXZlbnQudmFsdWU7XHJcbiAgIHZhciBhZ2VEYXRlID0gbmV3IERhdGUoYWdlRGlmTXMpO1xyXG4gICAgaWYoIE1hdGguYWJzKGFnZURhdGUuZ2V0VVRDRnVsbFllYXIoKSAtIDE5NzApIDw9IDE4KXtcclxuXHJcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdWaWN0aW0gaXMgYSBNaW5vci4gVGhpcyBpbmZvcm1hdGlvbiBpcyBhIHNlbnNpdGl2ZSBhbmQgc2hvdWxkIG5vdCBiZSBkaXNjbG9zZWQgdG8gYW55IHVuYXV0aG9yaXplZCBwYXJ0aWVzLiBDb250YWN0IHRoZSBsZWdhbCBndWFyZGlhbi4nLCAnJywge1xyXG4gICAgICAgIGR1cmF0aW9uOiA2MDAwLH0pO1xyXG4gICAgICAgIGNvbnN0IG1pbm9yQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ21pbm9yRmxhZycpO1xyXG4gICAgICAgIG1pbm9yQ29udHJvbC5zZXRWYWx1ZSh0cnVlKTtcclxuICAgICAgICB0aGlzLmd1YXJkaWFuVGFiRmxhZyA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBjaGVja090aGVyV2VhcG9uKFdlYXBvblVzZSl7XHJcblxyXG4gICAgY29uc3Qgb3RoZXJXZWFwb25Db250cm9sID0gdGhpcy52aWN0aW1Gb3JtLmdldCgnb3RoZXJXZWFwb24nKTtcclxuICAgICBpZiAoV2VhcG9uVXNlLmluY2x1ZGVzKFwiT1RIRVJcIikpe1xyXG4gICAgIHRoaXMub3RoZXJXZWFwb25GbGFnID0gdHJ1ZTtcclxuICAgICBvdGhlcldlYXBvbkNvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKVxyXG5cclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLm90aGVyV2VhcG9uRmxhZyA9IGZhbHNlO1xyXG4gICAgICBvdGhlcldlYXBvbkNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICB9XHJcbiAgIG90aGVyV2VhcG9uQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICBjaGVja090aGVyRHJ1ZyhEcnVnVXNlKXtcclxuXHJcbiAgICBjb25zdCBvdGhlckRydWdDb250cm9sID0gdGhpcy52aWN0aW1Gb3JtLmdldCgnb3RoZXJEcnVnJyk7XHJcbiAgICAgaWYgKERydWdVc2UuaW5jbHVkZXMoXCJPVEhFUlwiKSl7XHJcbiAgICAgdGhpcy5vdGhlckRydWdGbGFnID0gdHJ1ZTtcclxuICAgICBvdGhlckRydWdDb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZClcclxuXHJcblxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMub3RoZXJEcnVnRmxhZyA9IGZhbHNlO1xyXG4gICAgICBvdGhlckRydWdDb250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG5cclxuXHJcbiAgICB9XHJcbiAgIG90aGVyRHJ1Z0NvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIFwic2F2ZSB2aWN0aW1cIlxyXG4gIHNhdmVWaWN0aW0oKSB7XHJcblxyXG4gIC8vZ3VhcmRpYW4gcGhvbmUgbG9naWNcclxuICBpZiAoIXRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbk5vUGhvbmVGbGFnKVxyXG4gICB7XHJcbiAgICAgaWYgKHRoaXMuZ3VhcmRpYW5Ib21lUGhvbmVDb250cm9sLnZhbHVlKXtcclxuICAgICAgIGlmICh0aGlzLmd1YXJkaWFuSG9tZVBob25lQ29udHJvbC52YWx1ZSAhPT0gbnVsbCl7XHJcbiAgICAgICAgIGlmICh0aGlzLmd1YXJkaWFuSG9tZVBob25lQ29udHJvbC52YWx1ZSAhPT0gXCJcIil7XHJcbiAgICAgICAgICAgICB0aGlzLmd1YXJkaWFuUGhvbmVFeGlzdEZsYWcgPSAgdHJ1ZTtcclxuICAgICAgIH1cclxuICAgICB9XHJcbiAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgIGlmICh0aGlzLmd1YXJkaWFuV29ya1Bob25lQ29udHJvbC52YWx1ZSAhPT0gdW5kZWZpbmVkKXtcclxuICAgICAgaWYgKHRoaXMuZ3VhcmRpYW5Xb3JrUGhvbmVDb250cm9sLnZhbHVlICE9PSBudWxsKXtcclxuICAgICAgICBpZiAodGhpcy5ndWFyZGlhbldvcmtQaG9uZUNvbnRyb2wudmFsdWUgIT09IFwiXCIpe1xyXG4gICAgICAgICAgICB0aGlzLmd1YXJkaWFuUGhvbmVFeGlzdEZsYWcgPSAgdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpZiAodGhpcy5ndWFyZGlhbkNlbGxQaG9uZUNvbnRyb2wudmFsdWUpe1xyXG4gICAgICBpZiAodGhpcy5ndWFyZGlhbkNlbGxQaG9uZUNvbnRyb2wudmFsdWUhPT0gbnVsbCl7XHJcbiAgICAgICAgaWYgKHRoaXMuZ3VhcmRpYW5DZWxsUGhvbmVDb250cm9sLnZhbHVlICE9PSBcIlwiKXtcclxuICAgICAgICAgICAgdGhpcy5ndWFyZGlhblBob25lRXhpc3RGbGFnID0gIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Ob1Bob25lRmxhZycpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuTm9QaG9uZUZsYWcpO1xyXG4gICAgY29uc29sZS5sb2coJ3RoaXMuZ3VhcmRpYW5QaG9uZUV4aXN0RmxhZycpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5ndWFyZGlhblBob25lRXhpc3RGbGFnKTtcclxuXHJcblxyXG4gICAgaWYgKHRoaXMuZ3VhcmRpYW5QaG9uZUV4aXN0RmxhZyA9PT0gZmFsc2UgJiYgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuTm9QaG9uZUZsYWcgPT09IGZhbHNlKVxyXG4gICAge1xyXG4gICAgICAgICAgdGhpcy5waG9uZVZhbGlkYXRpb25GbGFnID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuY29tbW9uRGlhbG9nU2VydmljZVxyXG4gICAgICAgICAgLndhcm5pbmcoJycsICdQbGVhc2UgY2hlY2sgdGhlIGd1YXJkaWFuIHBob25lIGZpZWxkLiBZb3UgaGF2ZSB0byBmaWxsIG9uZSBvZiB0aGUgdGhyZWUgcGhvbmUgZmlsZWRzLicsICdPaycpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7dGhpcy5yZXN1bHQgPSAgcmVzO1xyXG5cclxuICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coJ3RoaXMucGhvbmVWYWxpZGF0aW9uRmxhZycpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5waG9uZVZhbGlkYXRpb25GbGFnKTtcclxuXHJcbiAgICAvL2Fkdm9jYXRlIHBob25lIGxvZ2ljXHJcbiAgICBpZiAoIXRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZU5vUGhvbmVGbGFnKVxyXG4gICAge1xyXG4gICAgICBpZiAodGhpcy5hZHZvY2F0ZUhvbWVQaG9uZUNvbnRyb2wudmFsdWUpe1xyXG4gICAgICAgIGlmICh0aGlzLmFkdm9jYXRlSG9tZVBob25lQ29udHJvbC52YWx1ZSAhPT0gbnVsbCl7XHJcbiAgICAgICAgICBpZiAodGhpcy5hZHZvY2F0ZUhvbWVQaG9uZUNvbnRyb2wudmFsdWUgIT09IFwiXCIpe1xyXG4gICAgICAgICAgICAgIHRoaXMuYWR2b2NhdGVQaG9uZUV4aXN0RmxhZyA9ICB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB9XHJcblxyXG5cclxuXHJcbiAgICAgIGlmICh0aGlzLmFkdm9jYXRlV29ya1Bob25lQ29udHJvbC52YWx1ZSAhPT0gdW5kZWZpbmVkKXtcclxuICAgICAgaWYgKHRoaXMuYWR2b2NhdGVXb3JrUGhvbmVDb250cm9sLnZhbHVlICE9PSBudWxsKXtcclxuICAgICAgICBpZiAodGhpcy5hZHZvY2F0ZVdvcmtQaG9uZUNvbnRyb2wudmFsdWUgIT09IFwiXCIpe1xyXG4gICAgICAgICAgICB0aGlzLmFkdm9jYXRlUGhvbmVFeGlzdEZsYWcgPSAgdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpZiAodGhpcy5hZHZvY2F0ZUNlbGxQaG9uZUNvbnRyb2wudmFsdWUpe1xyXG4gICAgICBpZiAodGhpcy5hZHZvY2F0ZUNlbGxQaG9uZUNvbnRyb2wudmFsdWUgIT09IG51bGwpe1xyXG4gICAgICAgIGlmICh0aGlzLmFkdm9jYXRlQ2VsbFBob25lQ29udHJvbC52YWx1ZSAhPT0gXCJcIil7XHJcbiAgICAgICAgICAgIHRoaXMuYWR2b2NhdGVQaG9uZUV4aXN0RmxhZyA9ICB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVOb1Bob25lRmxhZycpO1xyXG4gY29uc29sZS5sb2codGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlTm9QaG9uZUZsYWcpO1xyXG4gY29uc29sZS5sb2coJ3RoaXMuYWR2b2NhdGVQaG9uZUV4aXN0RmxhZycpO1xyXG4gY29uc29sZS5sb2codGhpcy5hZHZvY2F0ZVBob25lRXhpc3RGbGFnKTtcclxuXHJcbiBpZih0aGlzLmFkdm9jYXRlUGhvbmVFeGlzdEZsYWcgPT09IGZhbHNlICYmIHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZU5vUGhvbmVGbGFnID09PSBmYWxzZSlcclxuIHtcclxuXHJcbiAgICAgICB0aGlzLnBob25lVmFsaWRhdGlvbkZsYWcgPSB0cnVlO1xyXG4gICAgICAgdGhpcy5jb21tb25EaWFsb2dTZXJ2aWNlXHJcbiAgICAgICAud2FybmluZygnJywgJ1BsZWFzZSBjaGVjayB0aGUgYWR2b2NhdGUgcGhvbmUgZmllbGQuIFlvdSBoYXZlIHRvIGZpbGwgb25lIG9mIHRoZSB0aHJlZSBwaG9uZSBmaWxlZHMuJywgJ09rJylcclxuICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHt0aGlzLnJlc3VsdCA9ICByZXM7XHJcblxyXG4gICAgICAgfSk7XHJcbiB9XHJcblxyXG5cclxuICAgIGlmICh0aGlzLmhvbWVQaG9uZUNvbnRyb2wudmFsdWUpe1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuaG9tZVBob25lID0gdGhpcy5ob21lUGhvbmVDb250cm9sLnZhbHVlLnJlcGxhY2UoL1soKVxccy1dL2csICcnKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS5ob21lUGhvbmUgPSAgbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jZWxsUGhvbmVDb250cm9sLnZhbHVlKXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNlbGxQaG9uZSA9IHRoaXMuY2VsbFBob25lQ29udHJvbC52YWx1ZS5yZXBsYWNlKC9bKClcXHMtXS9nLCAnJykgO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNlbGxQaG9uZSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMud29ya1Bob25lQ29udHJvbC52YWx1ZSl7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS53b3JrUGhvbmUgPSAgdGhpcy53b3JrUGhvbmVDb250cm9sLnZhbHVlLnJlcGxhY2UoL1soKVxccy1dL2csICcnKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS53b3JrUGhvbmU9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZ3VhcmRpYW5Ib21lUGhvbmVDb250cm9sLnZhbHVlKXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuSG9tZVBob25lID0gdGhpcy5ndWFyZGlhbkhvbWVQaG9uZUNvbnRyb2wudmFsdWUucmVwbGFjZSgvWygpXFxzLV0vZywgJycpO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuSG9tZVBob25lID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5ndWFyZGlhbkNlbGxQaG9uZUNvbnRyb2wudmFsdWUpe1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5DZWxsUGhvbmUgPSB0aGlzLmd1YXJkaWFuQ2VsbFBob25lQ29udHJvbC52YWx1ZS5yZXBsYWNlKC9bKClcXHMtXS9nLCAnJyk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5DZWxsUGhvbmUgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmd1YXJkaWFuV29ya1Bob25lQ29udHJvbC52YWx1ZSl7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbldvcmtQaG9uZSA9IHRoaXMuZ3VhcmRpYW5Xb3JrUGhvbmVDb250cm9sLnZhbHVlLnJlcGxhY2UoL1soKVxccy1dL2csICcnKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbldvcmtQaG9uZSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGlmICh0aGlzLmFkdm9jYXRlSG9tZVBob25lQ29udHJvbC52YWx1ZSl7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUhvbWVQaG9uZSA9ICB0aGlzLmFkdm9jYXRlSG9tZVBob25lQ29udHJvbC52YWx1ZS5yZXBsYWNlKC9bKClcXHMtXS9nLCAnJylcclxuICAgICB9XHJcbiAgICAgZWxzZXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlSG9tZVBob25lID0gbnVsbDtcclxuICAgICB9XHJcblxyXG4gICAgIGlmICh0aGlzLmFkdm9jYXRlQ2VsbFBob25lQ29udHJvbC52YWx1ZSl7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUNlbGxQaG9uZSA9ICB0aGlzLmFkdm9jYXRlQ2VsbFBob25lQ29udHJvbC52YWx1ZS5yZXBsYWNlKC9bKClcXHMtXS9nLCAnJylcclxuICAgICB9XHJcbiAgICAgZWxzZXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlQ2VsbFBob25lID0gbnVsbDtcclxuICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5hZHZvY2F0ZVdvcmtQaG9uZUNvbnRyb2wudmFsdWUpe1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVXb3JrUGhvbmUgPSAgdGhpcy5hZHZvY2F0ZVdvcmtQaG9uZUNvbnRyb2wudmFsdWUucmVwbGFjZSgvWygpXFxzLV0vZywgJycpXHJcbiAgICAgfVxyXG4gICAgIGVsc2V7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZVdvcmtQaG9uZSA9IG51bGw7XHJcbiAgICAgfVxyXG5cclxuICAgICBcclxuICAgICBpZiAodGhpcy5lbWVyZ2VuY3lDb250YWN0UGhvbmVDb250cm9sLnZhbHVlKXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmVtZXJnZW5jeUNvbnRhY3RQaG9uZSA9IHRoaXMuZW1lcmdlbmN5Q29udGFjdFBob25lQ29udHJvbC52YWx1ZS5yZXBsYWNlKC9bKClcXHMtXS9nLCAnJylcclxuICAgICB9ZWxzZXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmVtZXJnZW5jeUNvbnRhY3RQaG9uZSA9ICBudWxsO1xyXG4gICAgIH1cclxuLy9kYXRhIHByb2Nlc3NcclxuXHJcbiAgY29uc29sZS5sb2coJ3RoaXMucGhvbmVWYWxpZGF0aW9uRmxhZyAxJyk7XHJcbiAgY29uc29sZS5sb2codGhpcy5waG9uZVZhbGlkYXRpb25GbGFnKTtcclxuIGlmICggdGhpcy5waG9uZVZhbGlkYXRpb25GbGFnID09PSBmYWxzZSl7XHJcbiAgICBpZiAodGhpcy52aWN0aW1EZXRhaWwgPT09IG51bGwpe1xyXG5cclxuICAgICAgLy9pbnNlcnQgbmV3IHZpY3RpbVxyXG5cclxuXHJcbiAgICAgIHZhciBteVZpY3RpbVJlbGF0aW9uc2hpcHMgPSBbXTtcclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltUmVsYXRpb25zaGlwcycrdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbVJlbGF0aW9uc2hpcHMpXHJcbiAgICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltUmVsYXRpb25zaGlwcyl7XHJcbiAgICAgICBjb25zb2xlLmxvZygndGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbVJlbGF0aW9uc2hpcHMgMScrdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbVJlbGF0aW9uc2hpcHMpXHJcbiBcclxuICAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1SZWxhdGlvbnNoaXBzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICBjb25zdCB2aWN0aW1SZWxhdGlvbnNoaXA9IDxWaWN0aW1SZWxhdGlvbnNoaXA+e307XHJcbiAgICAgICAgIHZpY3RpbVJlbGF0aW9uc2hpcC52aWN0aW1JZD0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbUlkO1xyXG4gICAgICAgICB2aWN0aW1SZWxhdGlvbnNoaXAudmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBUeXBlSWQ9IGVsZW1lbnQ7XHJcbiAgICAgICAgIHZpY3RpbVJlbGF0aW9uc2hpcC5tb2RpZmllZEJ5PSB0aGlzLnN0YWZmSWQ7XHJcbiAgICAgICAgIG15VmljdGltUmVsYXRpb25zaGlwcy5wdXNoKHZpY3RpbVJlbGF0aW9uc2hpcCk7XHJcbiAgICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltUmVsYXRpb25zaGlwcyAyJyt0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltSWQpXHJcbiAgICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltUmVsYXRpb25zaGlwcyAzJyt0aGlzLnN0YWZmSWQpXHJcbiAgICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltUmVsYXRpb25zaGlwcyA0JytlbGVtZW50KVxyXG4gXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gXHJcbiAgICAgIGNvbnNvbGUubG9nKCdteVZpY3RpbVJlbGF0aW9uc2hpcHMnK215VmljdGltUmVsYXRpb25zaGlwcylcclxuXHJcbiAgICAgdmFyIG15VmljdGltU3VwcG9ydHMgPSBbXTtcclxuICAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbVN1cHBvcnRzKXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbVN1cHBvcnRzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgIGNvbnN0IHZpY3RpbVN1cHBvcnQ9IDxWaWN0aW1TdXBwb3J0Pnt9O1xyXG4gICAgICAgICAgICB2aWN0aW1TdXBwb3J0LnZpY3RpbUlkPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltSWQ7XHJcbiAgICAgICAgICAgIHZpY3RpbVN1cHBvcnQudmljdGltU3VwcG9ydFR5cGVJZD0gZWxlbWVudDtcclxuICAgICAgICAgICAgdmljdGltU3VwcG9ydC5tb2RpZmllZEJ5PSB0aGlzLnN0YWZmSWQ7XHJcbiAgICAgICAgICAgIG15VmljdGltU3VwcG9ydHMucHVzaCh2aWN0aW1TdXBwb3J0KTtcclxuICAgICAgICAgfSk7XHJcbiAgICAgfVxyXG5cclxuXHJcbiAgICB2YXIgbXlWaWN0aW1EcnVnVXNlcyA9IFtdO1xyXG4gICAgY29uc29sZS5sb2coJ3RoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1EcnVnVXNlcyBkdXJpbmcgc2F2ZScpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbURydWdVc2VzKTtcclxuICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltRHJ1Z1VzZXMpe1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltRHJ1Z1VzZXMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICBjb25zdCB2aWN0aW1EcnVnVXNlID0gPFZpY3RpbURydWdVc2U+e307XHJcbiAgICAgdmljdGltRHJ1Z1VzZS5kcnVnVHlwZUlkID0gZWxlbWVudDtcclxuXHJcbiAgICAgaWYgKGVsZW1lbnQgPT09XCJPVEhFUlwiIHx8IGVsZW1lbnQgPT09IFwiXCIgfHwgZWxlbWVudCA9PT0gbnVsbCl7XHJcbiAgICAgIHZpY3RpbURydWdVc2UuZHJ1Z1R5cGVJZCA9IG51bGw7XHJcbiAgICAgIHZpY3RpbURydWdVc2Uub3RoZXJEcnVnID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLm90aGVyRHJ1ZztcclxuICAgICB9XHJcbiAgICAgZWxzZXtcclxuICAgICAgdmljdGltRHJ1Z1VzZS5kcnVnVHlwZUlkID0gZWxlbWVudDtcclxuICAgICAgdmljdGltRHJ1Z1VzZS5vdGhlckRydWcgPSBudWxsO1xyXG4gICAgIH1cclxuXHJcbiAgICAgdmljdGltRHJ1Z1VzZS5tb2RpZmllZEJ5ID0gdGhpcy5zdGFmZklkO1xyXG4gICAgIHZpY3RpbURydWdVc2UudmljdGltSWQgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltSWQ7XHJcbiAgICAgbXlWaWN0aW1EcnVnVXNlcy5wdXNoKHZpY3RpbURydWdVc2UpO1xyXG4gICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltRHJ1Z1VzZXMgZHVyaW5nIHNhdmUgMScpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbURydWdVc2VzKTtcclxuXHJcbiAgdmFyIG15VmljdGltV2VhcG9uVXNlcyA9IFtdO1xyXG5cclxuICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbVdlYXBvblVzZXMpe1xyXG4gICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbVdlYXBvblVzZXMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgIGNvbnN0IHZpY3RpbVdlYXBvblVzZSA9IDxWaWN0aW1XZWFwb25Vc2U+e307XHJcbiAgICAgICB2aWN0aW1XZWFwb25Vc2UudmljdGltSWQ9ICB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltSWQ7XHJcbiAgICAgICB2aWN0aW1XZWFwb25Vc2Uud2VhcG9uVHlwZUlkPSBlbGVtZW50O1xyXG5cclxuICAgICAgIGlmIChlbGVtZW50ID09XCJPVEhFUlwiKXtcclxuICAgICAgICB2aWN0aW1XZWFwb25Vc2Uub3RoZXJXZWFwb24gPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUub3RoZXJXZWFwb247XHJcbiAgICAgICB9XHJcbiAgICAgICBlbHNle1xyXG4gICAgICAgIHZpY3RpbVdlYXBvblVzZS5vdGhlcldlYXBvbiA9IG51bGw7XHJcbiAgICAgICB9XHJcbiAgICAgICB2aWN0aW1XZWFwb25Vc2UubW9kaWZpZWRCeT0gdGhpcy5zdGFmZklkO1xyXG4gICAgICAgbXlWaWN0aW1XZWFwb25Vc2VzLnB1c2godmljdGltV2VhcG9uVXNlKTtcclxuICAgfSk7XHJcbiB9XHJcblxyXG4gY29uc3QgbmV3VmljdGltID0ge1xyXG4gICB2aWN0aW1JZDogMCxcclxuICAgb2ZmZW5kZXJJZDogdGhpcy5vZmZlbmRlcklkLFxyXG4gIC8vICB2aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZDpcclxuICAvLyAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBUeXBlSWQsXHJcbiAgIGxhc3ROYW1lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUubGFzdE5hbWUsXHJcbiAgIGZpcnN0TmFtZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmZpcnN0TmFtZSxcclxuICAgbWlkZGxlTmFtZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLm1pZGRsZU5hbWVcclxuICAgICA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5taWRkbGVOYW1lXHJcbiAgICAgOiBudWxsLFxyXG4gICBwcmVmaXhJZDogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnByZWZpeElkXHJcbiAgICAgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUucHJlZml4SWRcclxuICAgICA6IG51bGwsXHJcbiAgIHN1ZmZpeElkOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuc3VmZml4SWRcclxuICAgICA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5zdWZmaXhJZFxyXG4gICAgIDogbnVsbCxcclxuICAgYmlydGhEYXRlOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYmlydGhEYXRlXHJcbiAgICAgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYmlydGhEYXRlXHJcbiAgICAgOiBudWxsLFxyXG4gICBnZW5kZXJDb2RlOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ2VuZGVyQ29kZVxyXG4gICAgID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmdlbmRlckNvZGVcclxuICAgICA6IG51bGwsXHJcbiAgIHVuZGVyU3VwZXJ2aXNpb25GbGFnOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUudW5kZXJTdXBlcnZpc2lvbkZsYWcsXHJcbiAgIG1pbm9yRmxhZzogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLm1pbm9yRmxhZyxcclxuICAgdmljdGltQWR2b2NhdGVGbGFnOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltQWR2b2NhdGVGbGFnLFxyXG5cclxuICAgaG9tZVBob25lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuaG9tZVBob25lLFxyXG4gICB3b3JrUGhvbmU6IHRoaXMudmljdGltRm9ybS52YWx1ZS53b3JrUGhvbmUsXHJcbiAgIGNlbGxQaG9uZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNlbGxQaG9uZSxcclxuICAgZW1haWw6IHRoaXMudmljdGltRm9ybS52YWx1ZS5lbWFpbCA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5lbWFpbCA6IG51bGwsXHJcbiAgIGFkZHJlc3NJZDogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkZHJlc3NJZFxyXG4gICAgID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkZHJlc3NJZFxyXG4gICAgIDogMSxcclxuICAgZW1lcmdlbmN5Q29udGFjdDogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmVtZXJnZW5jeUNvbnRhY3RcclxuICAgICA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5lbWVyZ2VuY3lDb250YWN0XHJcbiAgICAgOiBudWxsLFxyXG4gICBlbWVyZ2VuY3lDb250YWN0UGhvbmU6IHRoaXMudmljdGltRm9ybS52YWx1ZS5lbWVyZ2VuY3lDb250YWN0UGhvbmUsXHJcbiAgIGNvbW1vbkNoaWxkcmVuRmxhZzogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNvbW1vbkNoaWxkcmVuRmxhZyxcclxuICAgY29tbW9uQ2hpbGRyZW5OdW1iZXI6IHRoaXMudmljdGltRm9ybS52YWx1ZS5jb21tb25DaGlsZHJlbk51bWJlcixcclxuICAgY3BvRXhwaXJhdGlvbkZsYWc6IHRoaXMudmljdGltRm9ybS52YWx1ZS5jcG9FeHBpcmF0aW9uRmxhZyxcclxuICAgY3BvRXhwaXJhdGlvbkRhdGU6IHRoaXMudmljdGltRm9ybS52YWx1ZS5jcG9FeHBpcmF0aW9uRGF0ZVxyXG4gICAgID8gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNwb0V4cGlyYXRpb25EYXRlLCBcInNob3J0XCIpXHJcbiAgICAgOiBudWxsLFxyXG4gICBzdXBwb3J0SW5QbGFjZUZsYWc6IHRoaXMudmljdGltRm9ybS52YWx1ZS5zdXBwb3J0SW5QbGFjZUZsYWcsXHJcbiAgIHdlYXBvbkludm9sdmVkRmxhZzogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLndlYXBvbkludm9sdmVkRmxhZyxcclxuICAgZHJ1Z1VzZUZsYWc6IHRoaXMudmljdGltRm9ybS52YWx1ZS5kcnVnVXNlRmxhZyxcclxuICAgYWxjb2hvbFVzZUZsYWc6IHRoaXMudmljdGltRm9ybS52YWx1ZS5hbGNvaG9sVXNlRmxhZyxcclxuICAgYWNjZXNzUmlzazogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFjY2Vzc1Jpc2ssXHJcbiAgIG1vZGlmaWVkQnk6IHRoaXMuc3RhZmZJZCxcclxuICAgdlZpY3RpbUFkdm9jYXRlOiBudWxsLFxyXG4gICB2VmljdGltR3VhcmRpYW46IG51bGwsXHJcbiAgIHZpY3RpbURydWdVc2VzOiBteVZpY3RpbURydWdVc2VzLFxyXG4gICB2aWN0aW1TdXBwb3J0czogbXlWaWN0aW1TdXBwb3J0cyxcclxuICAgdmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBzOiBteVZpY3RpbVJlbGF0aW9uc2hpcHMsXHJcbiAgIHZpY3RpbVdlYXBvblVzZXM6IG15VmljdGltV2VhcG9uVXNlcyxcclxuXHJcbiAgIGFkdm9jYXRlRmlyc3ROYW1lOiBudWxsLFxyXG4gICBhZHZvY2F0ZUxhc3ROYW1lOiBudWxsLFxyXG4gICBhZHZvY2F0ZUVtYWlsOiBudWxsLFxyXG4gICBhZHZvY2F0ZVByZWZpeElkOiBudWxsLFxyXG4gICBhZHZvY2F0ZVN1ZmZpeElkOiBudWxsLFxyXG4gICBhZHZvY2F0ZU5vUGhvbmVGbGFnOiBudWxsLFxyXG4gICBhZHZvY2F0ZUhvbWVQaG9uZTogbnVsbCxcclxuICAgYWR2b2NhdGVXb3JrUGhvbmU6IG51bGwsXHJcbiAgIGFkdm9jYXRlQ2VsbFBob25lOiBudWxsLFxyXG4gICBhZHZvY2F0ZUFkZHJlc3NJZDogbnVsbCxcclxuICAgZ3VhcmRpYW5GaXJzdE5hbWU6IG51bGwsXHJcbiAgIGd1YXJkaWFuTGFzdE5hbWU6IG51bGwsXHJcbiAgIGd1YXJkaWFuRW1haWw6IG51bGwsXHJcbiAgIGd1YXJkaWFuUHJlZml4SWQ6IG51bGwsXHJcbiAgIGd1YXJkaWFuU3VmZml4SWQ6IG51bGwsXHJcbiAgIGd1YXJkaWFuTm9QaG9uZUZsYWc6IG51bGwsXHJcbiAgIGd1YXJkaWFuSG9tZVBob25lOiBudWxsLFxyXG4gICBndWFyZGlhbldvcmtQaG9uZTogbnVsbCxcclxuICAgZ3VhcmRpYW5DZWxsUGhvbmU6IG51bGwsXHJcbiAgIGd1YXJkaWFuQWRkcmVzc0lkOiBudWxsLFxyXG4gICBndWFyZGlhbkJpcnRoRGF0ZTogbnVsbCxcclxuICAgLy9yZWxhdGlvbnNoaXA6IG51bGwsXHJcbiAgIC8vcmVsYXRpb25zaGlwOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBUeXBlSWQ/IHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZCA6IG51bGwsXHJcbiAgIGFsbG93Q3Nvc2FDb250YWN0RmxhZzogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFsbG93Q3Nvc2FDb250YWN0RmxhZ1xyXG4gICAgID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFsbG93Q3Nvc2FDb250YWN0RmxhZ1xyXG4gICAgIDogbnVsbCxcclxuICAgbGl2ZVdpdGhPZmZlbmRlckZsYWc6IHRoaXMudmljdGltRm9ybS52YWx1ZS5saXZlV2l0aE9mZmVuZGVyRmxhZ1xyXG4gICAgID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmxpdmVXaXRoT2ZmZW5kZXJGbGFnXHJcbiAgICAgOiBudWxsLFxyXG4gfTtcclxuXHJcbiAgICAgaWYgKHRoaXMuYWRkcmVzc0lkID09IDApe1xyXG4gICAgICBuZXdWaWN0aW0uYWRkcmVzc0lkID0gbnVsbDtcclxuICAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdWaWN0aW0uYWRkcmVzc0lkID0gIHRoaXMuYWRkcmVzc0lkO1xyXG4gICAgIH1cclxuXHJcbiAgICAgbmV3VmljdGltLmFkdm9jYXRlQWRkcmVzc0lkID0gIHRoaXMuYWR2b2NhdGVBZGRyZXNzSWQ7XHJcbiAgICAgbmV3VmljdGltLmd1YXJkaWFuQWRkcmVzc0lkID0gIHRoaXMuZ3VhcmRpYW5BZGRyZXNzSWQ7XHJcblxyXG5cclxuICAgICAgY29uc29sZS5sb2coJ25ld1ZpY3RpbScpO1xyXG4gICAgICBjb25zb2xlLmxvZyhuZXdWaWN0aW0pO1xyXG4gICAgICB0aGlzLnZpY3RpbVNlcnZpY2UucG9zdFZpY3RpbXMobmV3VmljdGltKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgIGNvbnN0IGlkID0gaXRlbXMgPyBpdGVtcy52aWN0aW1JZCA6ICcnO1xyXG5cclxuICAgICAgICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1BZHZvY2F0ZUZsYWcgPT0gXCJZU1wiKXtcclxuXHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnYWRkIGFkdm9jYXRlJyk7XHJcbiAgICAgICAgICBjb25zdCB2aWN0aW1BZHZvY2F0ZTogVmljdGltQWR2b2NhdGUgPSB7XHJcbiAgICAgICAgICB2aWN0aW1BZHZvY2F0ZUlkOiBpZCxcclxuICAgICAgICAgIGxhc3ROYW1lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVMYXN0TmFtZSxcclxuICAgICAgICAgIGZpcnN0TmFtZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlRmlyc3ROYW1lLFxyXG4gICAgICAgICAgcHJlZml4SWQ6IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZVByZWZpeElkLFxyXG4gICAgICAgICAgc3VmZml4SWQ6IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZVN1ZmZpeElkLFxyXG4gICAgICAgICAgYWRkcmVzc0lkOiB0aGlzLmFkdm9jYXRlQWRkcmVzc0lkID8gdGhpcy5hZHZvY2F0ZUFkZHJlc3NJZDogbnVsbCxcclxuICAgICAgICAgIG5vUGhvbmVGbGFnOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVOb1Bob25lRmxhZyA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZU5vUGhvbmVGbGFnOiBudWxsLFxyXG4gICAgICAgICAgaG9tZVBob25lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVIb21lUGhvbmUsXHJcbiAgICAgICAgICB3b3JrUGhvbmU6IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZVdvcmtQaG9uZSxcclxuICAgICAgICAgIGNlbGxQaG9uZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlQ2VsbFBob25lLFxyXG4gICAgICAgICAgZW1haWw6IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUVtYWlsLFxyXG4gICAgICAgICAgbW9kaWZpZWRCeTogdGhpcy5zdGFmZklkXHJcbiAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMudmljdGltU2VydmljZS5wb3N0VmljdGltQWR2b2NhdGUoaWQsIHZpY3RpbUFkdm9jYXRlKS5zdWJzY3JpYmUoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLm1pbm9yRmxhZyA9PSB0cnVlKXtcclxuICAgICAgICBjb25zdCB2aWN0aW1HdWFyZGlhbjogVmljdGltR3VhcmRpYW4gPSB7XHJcbiAgICAgICAgICB2aWN0aW1HdWFyZGlhbklkOiBpZCxcclxuICAgICAgICAgIGxhc3ROYW1lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5MYXN0TmFtZSxcclxuICAgICAgICAgIGZpcnN0TmFtZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuRmlyc3ROYW1lLFxyXG4gICAgICAgICAgcHJlZml4SWQ6IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhblByZWZpeElkLFxyXG4gICAgICAgICAgc3VmZml4SWQ6IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhblN1ZmZpeElkLFxyXG4gICAgICAgICAgYmlydGhEYXRlOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5CaXJ0aERhdGUsXHJcbiAgICAgICAgICBhZGRyZXNzSWQ6IHRoaXMuZ3VhcmRpYW5BZGRyZXNzSWQ/IHRoaXMuZ3VhcmRpYW5BZGRyZXNzSWQ6IG51bGwsXHJcbiAgICAgICAgICBub1Bob25lRmxhZzogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuTm9QaG9uZUZsYWc/IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbk5vUGhvbmVGbGFnOiBudWxsLFxyXG4gICAgICAgICAgaG9tZVBob25lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Ib21lUGhvbmUsXHJcbiAgICAgICAgICB3b3JrUGhvbmU6IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbldvcmtQaG9uZSxcclxuICAgICAgICAgIGNlbGxQaG9uZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuQ2VsbFBob25lLFxyXG4gICAgICAgICAgZW1haWw6IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbkVtYWlsLFxyXG4gICAgICAgICAgbW9kaWZpZWRCeTogdGhpcy5zdGFmZklkXHJcbiAgICAgICB9O1xyXG4gICAgICAgIHRoaXMudmljdGltU2VydmljZS5wb3N0VmljdGltR3VhcmRpYW4oaWQsIHZpY3RpbUd1YXJkaWFuKS5zdWJzY3JpYmUoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ0FkZCBWaWN0aW0gU3VjY2Vzc2Z1bGx5IScsICcnLCB7XHJcbiAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcclxuICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgLy9pbnNlcnQgbmV3XHJcbiAgICAgICAgdGhpcy52aWN0aW1EZXRhaWwgPSBuZXdWaWN0aW07XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3RoZSBpdGVtcyBhcmUgLT4nK2l0ZW1zKTtcclxuICAgICAgICAvLyBpZiAodGhpcy5pc0ludGFrZT09PXRydWUpe1xyXG4gICAgICAgIC8vICAgZGVidWdnZXJcclxuICAgICAgICAvLyAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsndmljdGltTGlzdCddKTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gZWxzZVxyXG4gICAgICAgIC8vIHtcclxuICAgICAgICAvLyAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsndmljdGltTGlzdCddKTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gLy90aGlzLm9uU2F2ZS5lbWl0KHRoaXMudmljdGltRGV0YWlsKTtcclxuXHJcbiAgICAgIH1cclxuICAgICApO1xyXG5cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvL3VwZGF0ZSB2aWN0aW1cclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwudW5kZXJTdXBlcnZpc2lvbkZsYWcgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUudW5kZXJTdXBlcnZpc2lvbkZsYWc7XHJcbiAgICAgIC8vdGhpcy52aWN0aW1EZXRhaWwudmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBUeXBlSWQgPSAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbU9mZmVuZGVyUmVsYXRpb25zaGlwVHlwZUlkO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5sYXN0TmFtZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5sYXN0TmFtZTtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuZmlyc3ROYW1lID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmZpcnN0TmFtZTtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwubWlkZGxlTmFtZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5taWRkbGVOYW1lO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5wcmVmaXhJZCA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5wcmVmaXhJZCA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5wcmVmaXhJZCA6IG51bGw7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLnN1ZmZpeElkID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnN1ZmZpeElkID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnN1ZmZpeElkIDogbnVsbDtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuYmlydGhEYXRlID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmJpcnRoRGF0ZTtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuZ2VuZGVyQ29kZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5nZW5kZXJDb2RlO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5taW5vckZsYWcgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUubWlub3JGbGFnO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5ob21lUGhvbmUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuaG9tZVBob25lO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC53b3JrUGhvbmUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUud29ya1Bob25lO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5jZWxsUGhvbmUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuY2VsbFBob25lO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5lbWFpbCA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5lbWFpbDtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwudmljdGltQWR2b2NhdGVGbGFnID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbUFkdm9jYXRlRmxhZztcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuZW1lcmdlbmN5Q29udGFjdCA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5lbWVyZ2VuY3lDb250YWN0O1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5lbWVyZ2VuY3lDb250YWN0UGhvbmUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZW1lcmdlbmN5Q29udGFjdFBob25lO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5jb21tb25DaGlsZHJlbkZsYWcgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuY29tbW9uQ2hpbGRyZW5GbGFnO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5jb21tb25DaGlsZHJlbk51bWJlciA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5jb21tb25DaGlsZHJlbk51bWJlcjtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuY3BvRXhwaXJhdGlvbkRhdGUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuY3BvRXhwaXJhdGlvbkRhdGU7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLmNwb0V4cGlyYXRpb25GbGFnID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNwb0V4cGlyYXRpb25GbGFnO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5zdXBwb3J0SW5QbGFjZUZsYWcgPSAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnN1cHBvcnRJblBsYWNlRmxhZztcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwud2VhcG9uSW52b2x2ZWRGbGFnID0gIHRoaXMudmljdGltRm9ybS52YWx1ZS53ZWFwb25JbnZvbHZlZEZsYWc7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLmRydWdVc2VGbGFnID0gIHRoaXMudmljdGltRm9ybS52YWx1ZS5kcnVnVXNlRmxhZztcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuYWxjb2hvbFVzZUZsYWcgPSAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFsY29ob2xVc2VGbGFnO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5hY2Nlc3NSaXNrID0gIHRoaXMudmljdGltRm9ybS52YWx1ZS5hY2Nlc3NSaXNrO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5hZGRyZXNzSWQgPSB0aGlzLmFkZHJlc3NJZDtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuYWxsb3dDc29zYUNvbnRhY3RGbGFnID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFsbG93Q3Nvc2FDb250YWN0RmxhZztcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwubGl2ZVdpdGhPZmZlbmRlckZsYWcgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUubGl2ZVdpdGhPZmZlbmRlckZsYWc7XHJcblxyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC52aWN0aW1TdXBwb3J0cyA9IFtdO1xyXG4gICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbVN1cHBvcnRzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgY29uc3QgdmljdGltU3VwcG9ydD0gPFZpY3RpbVN1cHBvcnQ+e307XHJcbiAgICAgICAgICAgICAgdmljdGltU3VwcG9ydC52aWN0aW1JZD0gdGhpcy52aWN0aW1EZXRhaWwudmljdGltSWQ7XHJcbiAgICAgICAgICAgICAgdmljdGltU3VwcG9ydC52aWN0aW1TdXBwb3J0VHlwZUlkPSBlbGVtZW50O1xyXG4gICAgICAgICAgICAgIHZpY3RpbVN1cHBvcnQubW9kaWZpZWRCeT0gdGhpcy5zdGFmZklkO1xyXG4gICAgICAgICAgICAgIHRoaXMudmljdGltRGV0YWlsLnZpY3RpbVN1cHBvcnRzLnB1c2godmljdGltU3VwcG9ydCk7XHJcbiAgICAgIH0pO1xyXG5cclxuXHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLnZpY3RpbU9mZmVuZGVyUmVsYXRpb25zaGlwcyA9IFtdO1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltUmVsYXRpb25zaGlwcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgY29uc3QgdmljdGltUmVsYXRpb25zaGlwPSA8VmljdGltUmVsYXRpb25zaGlwPnt9O1xyXG4gICAgICAgdmljdGltUmVsYXRpb25zaGlwLnZpY3RpbUlkPSB0aGlzLnZpY3RpbURldGFpbC52aWN0aW1JZDtcclxuICAgICAgIHZpY3RpbVJlbGF0aW9uc2hpcC52aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZD0gZWxlbWVudDtcclxuICAgICAgIHZpY3RpbVJlbGF0aW9uc2hpcC5tb2RpZmllZEJ5PSB0aGlzLnN0YWZmSWQ7XHJcbiAgICAgICAgICAgICB0aGlzLnZpY3RpbURldGFpbC52aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcHMucHVzaCh2aWN0aW1SZWxhdGlvbnNoaXApO1xyXG4gICAgIH0pO1xyXG5cclxuXHJcbiAgICAgICB0aGlzLnZpY3RpbURldGFpbC52aWN0aW1EcnVnVXNlcyA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltRHJ1Z1VzZXMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICBjb25zdCB2aWN0aW1EcnVnVXNlID0gPFZpY3RpbURydWdVc2U+e307XHJcbiAgICAgICAgdmljdGltRHJ1Z1VzZS5kcnVnVHlwZUlkID0gZWxlbWVudDtcclxuICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltRHJ1Z1VzZXMgYmVmb3JlJylcclxuICAgICAgIGNvbnNvbGUubG9nKHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1EcnVnVXNlcylcclxuXHJcbiAgICAgICAgaWYgKGVsZW1lbnQgPT09IFwiT1RIRVJcIiB8fCBlbGVtZW50ID09PSBcIlwiICApe1xyXG4gICAgICAgICAgdmljdGltRHJ1Z1VzZS5kcnVnVHlwZUlkID0gbnVsbDtcclxuICAgICAgICAgIHZpY3RpbURydWdVc2Uub3RoZXJEcnVnID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLm90aGVyRHJ1ZztcclxuICAgICAgICAgfVxyXG4gICAgICAgICBlbHNle1xyXG4gICAgICAgICAgdmljdGltRHJ1Z1VzZS5kcnVnVHlwZUlkID0gZWxlbWVudDtcclxuICAgICAgICAgIHZpY3RpbURydWdVc2Uub3RoZXJEcnVnID0gbnVsbDtcclxuICAgICAgICAgfVxyXG5cclxuICAgICAgICB2aWN0aW1EcnVnVXNlLm1vZGlmaWVkQnkgPSB0aGlzLnN0YWZmSWQ7XHJcbiAgICAgICAgdmljdGltRHJ1Z1VzZS52aWN0aW1JZCA9IHRoaXMudmljdGltRGV0YWlsLnZpY3RpbUlkO1xyXG4gICAgICAgIHRoaXMudmljdGltRGV0YWlsLnZpY3RpbURydWdVc2VzLnB1c2godmljdGltRHJ1Z1VzZSk7XHJcblxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbURydWdVc2VzLmZpbHRlcih3b3JkID0+ICggISh3b3JkLmRydWdUeXBlSWQgPT09IG51bGwgICYmIHdvcmQub3RoZXJEcnVnID09PSBudWxsKSAgICApKTtcclxuXHJcbiAgICAgdGhpcy52aWN0aW1EZXRhaWwudmljdGltV2VhcG9uVXNlcyA9IFtdO1xyXG4gICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1XZWFwb25Vc2VzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICBjb25zdCB2aWN0aW1XZWFwb25Vc2UgPSA8VmljdGltV2VhcG9uVXNlPnt9O1xyXG4gICAgICAgICAgdmljdGltV2VhcG9uVXNlLnZpY3RpbUlkPSB0aGlzLnZpY3RpbURldGFpbC52aWN0aW1JZDtcclxuICAgICAgICAgIHZpY3RpbVdlYXBvblVzZS53ZWFwb25UeXBlSWQ9IGVsZW1lbnQ7XHJcblxyXG4gICAgICAgICBpZiAoZWxlbWVudCA9PVwiT1RIRVJcIil7XHJcbiAgICAgICAgICB2aWN0aW1XZWFwb25Vc2Uub3RoZXJXZWFwb249dGhpcy52aWN0aW1Gb3JtLnZhbHVlLm90aGVyV2VhcG9uO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICB2aWN0aW1XZWFwb25Vc2Uub3RoZXJXZWFwb24gPSBudWxsO1xyXG4gICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdmljdGltV2VhcG9uVXNlLm1vZGlmaWVkQnk9IHRoaXMuc3RhZmZJZDtcclxuICAgICAgICAgIHRoaXMudmljdGltRGV0YWlsLnZpY3RpbVdlYXBvblVzZXMucHVzaCh2aWN0aW1XZWFwb25Vc2UpO1xyXG5cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBjb25zb2xlLmxvZygndGhpcy52aWN0aW1EZXRhaWwgYmVmb3JlIGVtaXQnKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1EZXRhaWwpO1xyXG5cclxuXHJcbiAgICAgIHRoaXMudmljdGltU2VydmljZS5wdXRWaWN0aW1zKHRoaXMudmljdGltRGV0YWlsLnZpY3RpbUlkLHRoaXMudmljdGltRGV0YWlsKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbignVXBkYXRlIFN1Y2Nlc3NmdWxseSEnLCAnJywge1xyXG4gICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgIC8vQWR2b2NhdGUgc2VjdGlvblxyXG4gICAgICAgICAgdGhpcy52aWN0aW1BZHZvY2F0ZS52aWN0aW1BZHZvY2F0ZUlkID0gdGhpcy52aWN0aW1EZXRhaWwudmljdGltSWQ7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUFkdm9jYXRlLmxhc3ROYW1lPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVMYXN0TmFtZTtcclxuICAgICAgICAgIHRoaXMudmljdGltQWR2b2NhdGUuZmlyc3ROYW1lPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVGaXJzdE5hbWU7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUFkdm9jYXRlLnByZWZpeElkPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVQcmVmaXhJZCA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZVByZWZpeElkIDogbnVsbDtcclxuICAgICAgICAgIHRoaXMudmljdGltQWR2b2NhdGUuc3VmZml4SWQ9IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZVN1ZmZpeElkID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlU3VmZml4SWQgOiBudWxsO1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1BZHZvY2F0ZS5hZGRyZXNzSWQ9IHRoaXMuYWR2b2NhdGVBZGRyZXNzSWQgPyB0aGlzLmFkdm9jYXRlQWRkcmVzc0lkIDogbnVsbDtcclxuICAgICAgICAgIHRoaXMudmljdGltQWR2b2NhdGUubm9QaG9uZUZsYWc9IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZU5vUGhvbmVGbGFnPyB0cnVlOiBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmljdGltQWR2b2NhdGUuaG9tZVBob25lPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVIb21lUGhvbmU7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUFkdm9jYXRlLndvcmtQaG9uZT0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlV29ya1Bob25lO1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1BZHZvY2F0ZS5jZWxsUGhvbmU9IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUNlbGxQaG9uZTtcclxuICAgICAgICAgIHRoaXMudmljdGltQWR2b2NhdGUuZW1haWw9IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUVtYWlsID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlRW1haWwgOiBudWxsO1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1BZHZvY2F0ZS5tb2RpZmllZEJ5PSB0aGlzLnN0YWZmSWQ7XHJcblxyXG4gICAgICAgY29uc29sZS5sb2coJ3dvcmsgb24gYWR2b2NhdGUgcGFydCcpO1xyXG4gICAgICBpZiAodGhpcy52aWN0aW1EZXRhaWwudmljdGltQWR2b2NhdGVGbGFnPT0nWVMnKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCd3b3JrIG9uIGFkdm9jYXRlIGZsYWcgaXMgWVMgJyk7XHJcbiAgICAgICAgICBpZih0aGlzLnZpY3RpbURldGFpbC5hZHZvY2F0ZUZpcnN0TmFtZSAhPSBudWxsKXtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ2NoZWNrIGFkdm9jYXRlIGZpc3J0IG5hbWUgJyk7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMudmljdGltRGV0YWlsLmFkdm9jYXRlRmlyc3ROYW1lKTtcclxuICAgICAgICAgIHRoaXMudmljdGltU2VydmljZS5wdXRWaWN0aW1BZHZvY2F0ZSh0aGlzLnZpY3RpbURldGFpbC52aWN0aW1JZCx0aGlzLnZpY3RpbUFkdm9jYXRlKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICByZXNwPT57fSApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnYWRkIGFkdm9jYXRlJyk7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMudmljdGltQWR2b2NhdGUpO1xyXG4gICAgICAgICAgICB0aGlzLnZpY3RpbVNlcnZpY2UucG9zdFZpY3RpbUFkdm9jYXRlKHRoaXMudmljdGltRGV0YWlsLnZpY3RpbUlkLCB0aGlzLnZpY3RpbUFkdm9jYXRlKS5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgLy8gZ3VhcmRpYW4gc2VjdGlvblxyXG4gICAgdGhpcy52aWN0aW1HdWFyZGlhbi52aWN0aW1HdWFyZGlhbklkID0gdGhpcy52aWN0aW1EZXRhaWwudmljdGltSWQ7XHJcbiAgICB0aGlzLnZpY3RpbUd1YXJkaWFuLmxhc3ROYW1lID0gIHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbkxhc3ROYW1lO1xyXG4gICAgdGhpcy52aWN0aW1HdWFyZGlhbi5maXJzdE5hbWUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5GaXJzdE5hbWU7XHJcbiAgICB0aGlzLnZpY3RpbUd1YXJkaWFuLnByZWZpeElkID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuUHJlZml4SWQgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5QcmVmaXhJZCA6IG51bGw7XHJcbiAgICB0aGlzLnZpY3RpbUd1YXJkaWFuLnN1ZmZpeElkID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuU3VmZml4SWQgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5TdWZmaXhJZCA6IG51bGw7XHJcbiAgICB0aGlzLnZpY3RpbUd1YXJkaWFuLmFkZHJlc3NJZCA9IHRoaXMuZ3VhcmRpYW5BZGRyZXNzSWQgPyB0aGlzLmd1YXJkaWFuQWRkcmVzc0lkIDogbnVsbDtcclxuICAgIHRoaXMudmljdGltR3VhcmRpYW4ubm9QaG9uZUZsYWcgPSAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuTm9QaG9uZUZsYWc/IHRydWU6IGZhbHNlO1xyXG4gICAgdGhpcy52aWN0aW1HdWFyZGlhbi5ob21lUGhvbmUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Ib21lUGhvbmU7XHJcbiAgICB0aGlzLnZpY3RpbUd1YXJkaWFuLndvcmtQaG9uZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbldvcmtQaG9uZTtcclxuICAgIHRoaXMudmljdGltR3VhcmRpYW4uY2VsbFBob25lID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuQ2VsbFBob25lO1xyXG4gICAgdGhpcy52aWN0aW1HdWFyZGlhbi5lbWFpbCA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbkVtYWlsID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuRW1haWwgOiBudWxsO1xyXG4gICAgdGhpcy52aWN0aW1HdWFyZGlhbi5tb2RpZmllZEJ5ID0gdGhpcy5zdGFmZklkO1xyXG5cclxuICAgIGlmICh0aGlzLnZpY3RpbURldGFpbC5taW5vckZsYWcgPT0gdHJ1ZSlcclxuICAgIHtcclxuICAgICAgIGlmKHRoaXMudmljdGltRGV0YWlsLmd1YXJkaWFuRmlyc3ROYW1lICE9IG51bGwgKVxyXG4gICAgICAgIHRoaXMudmljdGltU2VydmljZS5wdXRWaWN0aW1HdWFyZGlhbih0aGlzLnZpY3RpbURldGFpbC52aWN0aW1JZCx0aGlzLnZpY3RpbUd1YXJkaWFuKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgcmVzcD0+e1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnYWRkIGd1cmRpYW4nKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMudmljdGltR3VhcmRpYW4pO1xyXG4gICAgICAgICB0aGlzLnZpY3RpbVNlcnZpY2UucG9zdFZpY3RpbUd1YXJkaWFuKHRoaXMudmljdGltRGV0YWlsLnZpY3RpbUlkLCB0aGlzLnZpY3RpbUd1YXJkaWFuKS5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgIH1cclxuICAgIH1cclxuXHJcbiAgICApO1xyXG5cclxuICAgIH1cclxuICB9Ly9lbmQgb2YgdGhpcy5waG9uZVZhbGlkYXRpb25GbGFnID0gZmFsc2VcclxuXHJcbiAgICBjb25zb2xlLmxvZygndGhpcy52aWN0aW1EZXRhaWwnKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMudmljdGltRGV0YWlsKTtcclxuICAgIHRoaXMub25TYXZlLmVtaXQodGhpcy52aWN0aW1EZXRhaWwpO1xyXG4gICAgICB9XHJcblxyXG4gIC8vI2VuZHJlZ2lvbiBcInNhdmUgdmljdGltXCJcclxuICAgICAgYWRkQ29udGFjdCgpe1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWyd2aWN0aW1Db250YWN0Jyx0aGlzLnZpY3RpbUlkXSk7XHJcbiAgICAgIH1cclxuICAgICAgZm9ybWF0TGFiZWwodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgICB1cGRhdGUoKSB7XHJcbiAgICAgICAgLy8gdGhpcy50YXNrLnVwZGF0ZSh0YXNrID0+IHtcclxuICAgICAgICAvLyAgIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgLy8gICAgIHRhc2suY29tcGxldGVkID0gY29tcGxldGVkO1xyXG4gICAgICAgIC8vICAgICB0YXNrLnN1YnRhc2tzPy5mb3JFYWNoKHQgPT4gKHQuY29tcGxldGVkID0gY29tcGxldGVkKSk7XHJcbiAgICAgICAgLy8gICB9IGVsc2Uge1xyXG4gICAgICAgIC8vICAgICB0YXNrLnN1YnRhc2tzIVtpbmRleF0uY29tcGxldGVkID0gY29tcGxldGVkO1xyXG4gICAgICAgIC8vICAgICB0YXNrLmNvbXBsZXRlZCA9IHRhc2suc3VidGFza3M/LmV2ZXJ5KHQgPT4gdC5jb21wbGV0ZWQpID8/IHRydWU7XHJcbiAgICAgICAgLy8gICB9XHJcbiAgICAgICAgLy8gICByZXR1cm4gey4uLnRhc2t9O1xyXG4gICAgICAgIC8vIH0pO1xyXG4gICAgICB9XHJcblxyXG5cclxufVxyXG4iLCI8bWF0LWNhcmQ+XHJcbiAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcblxyXG4gICAgICAgIDxkaXYgIFtmb3JtR3JvdXBdPVwidmljdGltRm9ybVwiPlxyXG5cclxuICAgICAgICAgIDxtYXQtdGFiLWdyb3VwIGR5bmFtaWNIZWlnaHQgIG1hdC1zdHJldGNoLXRhYnM+XHJcbiAgICAgICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiVmljdGltIERldGFpbFwiID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdjb250YWluZXInPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPklzIHZpY3RpbSBhIG1pbm9yPzxmb250IGNvbG9yPVwicmVkXCI+KiA8L2ZvbnQ+PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwICBmb3JtQ29udHJvbE5hbWU9XCJtaW5vckZsYWdcIiAgKGNoYW5nZSk9XCJyYWRpb01pbm9yQ2hhbmdlKCRldmVudClcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0ubWlub3JGbGFnXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cInRydWVcIj5ZZXM8L21hdC1yYWRpby1idXR0b24+Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbdmFsdWVdPVwiZmFsc2VcIj5ObzwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ21pbm9yRmxhZycpLmVycm9yc1xyXG4gICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnbWlub3JGbGFnJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ21pbm9yRmxhZycpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5JZiB2aWN0aW0gYSBtaW5vciBmaWVsZCBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+RG9lcyB0aGUgVmljdGltIGhhdmUgYSBWaWN0aW0gQWR2b2NhdGUgb3IgU29jaWFsIFdvcmtlciB3aXRoIDxicj53aG9tIENTT1NBIHNob3VsZCBtYWludGFpbiBjb250YWN0Pzxmb250IGNvbG9yPVwicmVkXCI+KiA8L2ZvbnQ+PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIGNsYXNzID0gXCJ0cC1yYWRpby1ncm91cFwiICBmb3JtQ29udHJvbE5hbWU9XCJ2aWN0aW1BZHZvY2F0ZUZsYWdcIiAgKGNoYW5nZSk9XCJyYWRpb0Fkdm9jYXRlQ2hhbmdlKCRldmVudClcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0udmljdGltQWR2b2NhdGVGbGFnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiAgY29sb3I9XCJwcmltYXJ5XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmxhZ09wdGlvblwiIFt2YWx1ZV09XCJpdGVtLmZsYWdPcHRpb25ZZXNOb1Vua25vd25JZFwiPnt7aXRlbS5uYW1lfX0gPC9tYXQtcmFkaW8tYnV0dG9uPiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgndmljdGltQWR2b2NhdGVGbGFnJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1BZHZvY2F0ZUZsYWcnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgndmljdGltQWR2b2NhdGVGbGFnJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPklmIHZpY3RpbSBoYXMgYWR2b2NhdGUgZmllbGQgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WaWN0aW0gQ3VycmVudGx5IFVuZGVyIFN1cGVydmlzaW9uOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICBmb3JtQ29udHJvbE5hbWU9XCJ1bmRlclN1cGVydmlzaW9uRmxhZ1wiIG5hbWU9XCJzdXBlcnZpc2lvblwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS51bmRlclN1cGVydmlzaW9uRmxhZ1wiID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZsYWdPcHRpb25cIiBbdmFsdWVdPVwiaXRlbS5mbGFnT3B0aW9uWWVzTm9Vbmtub3duSWRcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgndW5kZXJTdXBlcnZpc2lvbkZsYWcnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ3VuZGVyU3VwZXJ2aXNpb25GbGFnJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ3VuZGVyU3VwZXJ2aXNpb25GbGFnJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPnVuZGVyIHN1cGVydmlzaW9uIGZpZWxkIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlJlbGF0aW9uc2hpcCB0byBPZmZlbmRlcjo8L21hdC1sYWJlbD5cclxuIFxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICAjcmVsYXRpb25TaGlwU2VsIG11bHRpcGxlIGZvcm1Db250cm9sTmFtZT1cInZpY3RpbVJlbGF0aW9uc2hpcHNcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0udmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBzXCIgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKG1vdXNlbGVhdmUpPVwicmVsYXRpb25TaGlwU2VsLmNsb3NlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gY29sb3I9XCJwcmltYXJ5XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcmVsYXRpb25zaGlwVHlwZXNcIiBbdmFsdWVdPVwiaXRlbS5yZWxhdGlvbnNoaXBUeXBlSWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW0ubmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1SZWxhdGlvbnNoaXBzJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1SZWxhdGlvbnNoaXBzJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ3ZpY3RpbVJlbGF0aW9uc2hpcHMnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+cmVsYXRpb25zaGlwIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WaWN0aW0gTGFzdCBOYW1lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibGFzdE5hbWVcIiAgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmxhc3ROYW1lXCIgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2xhc3ROYW1lJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnbGFzdE5hbWUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnbGFzdE5hbWUnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPnZpY3RpbSBsYXN0IG5hbWUgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlZpY3RpbSBGaXJzdCBOYW1lOiA8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBmb3JtQ29udHJvbE5hbWU9XCJmaXJzdE5hbWVcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZmlyc3ROYW1lXCIgID5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdmaXJzdE5hbWUnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdmaXJzdE5hbWUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnZmlyc3ROYW1lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj52aWN0aW0gZmlyc3QgbmFtZSBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WaWN0aW0gTWlkZGxlIE5hbWU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBmb3JtQ29udHJvbE5hbWU9XCJtaWRkbGVOYW1lXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLm1pZGRsZU5hbWVcIj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlZpY3RpbSBQcmVmaXg6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgIGZvcm1Db250cm9sTmFtZT1cInByZWZpeElkXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLnByZWZpeElkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBwcmVmaXhlc1wiIFt2YWx1ZV09XCJpdGVtLnByZWZpeElkXCI+e3tpdGVtLm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WaWN0aW0gU3VmZml4OjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICBmb3JtQ29udHJvbE5hbWU9XCJzdWZmaXhJZFwiICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uc3VmZml4SWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIHN1ZmZpeGVzXCIgW3ZhbHVlXT1cIml0ZW0uc3VmZml4SWRcIj57e2l0ZW0ubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlZpY3RpbSBTZXg6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICBmb3JtQ29udHJvbE5hbWU9XCJnZW5kZXJDb2RlXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmdlbmRlckNvZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZW5kZXJzXCIgW3ZhbHVlXT1cIml0ZW0uZ2VuZGVyQ29kZVwiPnt7aXRlbS5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRhdGUgb2YgQmlydGg6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXRcclxuICAgICAgICAgICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cInZpY3RpbUJpcnRoUmVmXCJcclxuICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJpcnRoRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5iaXJ0aERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwidmljdGltQmlydGhSZWYub3BlbigpXCJcclxuICAgICAgICAgICAgICAgICAgKGRhdGVDaGFuZ2UpPVwiaGFuZGxlRE9CQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBbZm9yXT1cInZpY3RpbUJpcnRoUmVmXCIgbWF0U3VmZml4PjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI3ZpY3RpbUJpcnRoUmVmPjwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WaWN0aW0gSG9tZSBQaG9uZTo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICBpZD1cInRlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgICAgICAgICAgICBwaG9uZU1hc2tcclxuICAgICAgICAgICAgICAgICAgICBbcHJlVmFsdWVdPVwiZWRpdFZpY3RpbS5ob21lUGhvbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwaG9uZUNvbnRyb2xdPVwiaG9tZVBob25lQ29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImhvbWVQaG9uZUNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE0XCIvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdob21lUGhvbmUnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdob21lUGhvbmUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnaG9tZVBob25lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj48c3Ryb25nPkhvbWUgcGhvbmUgbnVtYmVyIGZvcm1hdCBpcyBub3QgY29ycmVjdC48L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCA+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VmljdGltIENlbGwgUGhvbmU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICBpZD1cInRlbDFcIlxyXG4gICAgICAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgICAgICBwaG9uZU1hc2tcclxuICAgICAgICAgICAgICAgICAgW3ByZVZhbHVlXT1cImVkaXRWaWN0aW0uY2VsbFBob25lXCJcclxuICAgICAgICAgICAgICAgICAgW3Bob25lQ29udHJvbF09XCJjZWxsUGhvbmVDb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNlbGxQaG9uZUNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIxNFwiLz5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnY2VsbFBob25lJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnY2VsbFBob25lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2NlbGxQaG9uZScpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+Q2VsbCBwaG9uZSBudW1iZXIgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkID5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WaWN0aW0gV29yayBQaG9uZTo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIGlkPVwidGVsMlwiXHJcbiAgICAgICAgICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICAgICAgICAgIHBob25lTWFza1xyXG4gICAgICAgICAgICAgICAgICBbcHJlVmFsdWVdPVwiZWRpdFZpY3RpbS53b3JrUGhvbmVcIlxyXG4gICAgICAgICAgICAgICAgICBbcGhvbmVDb250cm9sXT1cIndvcmtQaG9uZUNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwid29ya1Bob25lQ29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE0XCIvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCd3b3JrUGhvbmUnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCd3b3JrUGhvbmUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnd29ya1Bob25lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj48c3Ryb25nPldvcmsgcGhvbmUgbnVtYmVyIGZvcm1hdCBpcyBub3QgY29ycmVjdC48L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCA+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VmljdGltIEVtYWlsOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5lbWFpbFwiID5cclxuICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnZW1haWwnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdlbWFpbCcpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdlbWFpbCcpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHN0cm9uZz52aWN0aW0gZW1haWwgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2PjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGFwcC1zbWFydC1hZGRyZXNzXHJcbiAgICAgICAgICAgICAgICBbbW9kaWZpZWRCeV09XCJzdGFmZklkXCJcclxuICAgICAgICAgICAgICAgIFtpZF09XCJhZGRyZXNzSWRcIlxyXG4gICAgICAgICAgICAgICAgW291dGxpbmVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbc2hvd1BzYV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFthZGRyZXNzVmFsaWRhdG9yc109XCJhZGRyZXNzVmFsaWRhdG9yc1wiXHJcbiAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgKGFkZHJlc3NJZENoYW5nZSk9XCJvbkFkZHJlc3NDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAjYWRkcmVzc0NvbXBvbmVudCA+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9hcHAtc21hcnQtYWRkcmVzcz5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICA8IS0tIERvY2tldDpcclxuICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICAqbmdGb3I9XCJsZXQgZG9ja2V0IG9mIGRvY2tldGxpc3Q7IGxldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94ID57e2RvY2tldC5kb2NrZXROdW1iZXJ9fTwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggIGNvbG9yPVwicHJpbWFyeVwiIGZvcm1Db250cm9sTmFtZT1cImxpdmVXaXRoT2ZmZW5kZXJGbGFnXCIgbmFtZT1cImxpdmVXaXRoT2ZmZW5kZXJGbGFnXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmxpdmVXaXRoT2ZmZW5kZXJGbGFnXCIgICAoY2hhbmdlKT1cInNob3dBZGRyZXNzKCRldmVudClcIiAgPnZpY3RpbSBsaXZlIHdpdGggb2ZmZW5kZXI8L21hdC1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94ICBjb2xvcj1cInByaW1hcnlcIiBmb3JtQ29udHJvbE5hbWU9XCJhbGxvd0Nzb3NhQ29udGFjdEZsYWdcIiBuYW1lPVwiYWxsb3dDc29zYUNvbnRhY3RGbGFnXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmFsbG93Q3Nvc2FDb250YWN0RmxhZ1wiPnZpY3RpbSB3YW50cyB0byBiZSBjb250YWN0ZWQgYnkgQ1NPU0E8L21hdC1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1jYXJkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPiBDaGlsZHJlbiBpbiBDb21tb248L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIGZvcm1Db250cm9sTmFtZT1cImNvbW1vbkNoaWxkcmVuRmxhZ1wiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5jb21tb25DaGlsZHJlbkZsYWdcIiAgKGNoYW5nZSk9XCJyYWRpb0NpY0NoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbdmFsdWVdPVwidHJ1ZVwiPlllczwvbWF0LXJhZGlvLWJ1dHRvbj4mbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFt2YWx1ZV09XCJmYWxzZVwiPk5vPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICAqbmdJZj1cImNvbW1vbkNoaWxkcmVuRGl2RmxhZ1wiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hpbGRyZW4gbnVtYmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCAgZm9ybUNvbnRyb2xOYW1lPVwiY29tbW9uQ2hpbGRyZW5OdW1iZXJcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uY29tbW9uQ2hpbGRyZW5OdW1iZXJcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkNQTzogPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIGZvcm1Db250cm9sTmFtZT1cImNwb0V4cGlyYXRpb25GbGFnXCIgIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5jcG9FeHBpcmF0aW9uRmxhZ1wiIChjaGFuZ2UpPVwicmFkaW9DcG9DaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbdmFsdWVdPVwidHJ1ZVwiPlllczwvbWF0LXJhZGlvLWJ1dHRvbj4mbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cImZhbHNlXCI+Tm88L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNwb0V4cGlyYXRpb25EaXZGbGFnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5FeHBpcmF0aW9uIERhdGU6IDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJjcG9EYXRlUmVmXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNwb0V4cGlyYXRpb25EYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNwb0RhdGVSZWYub3BlbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmNwb0V4cGlyYXRpb25EYXRlXCIgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBbZm9yXT1cImNwb0RhdGVSZWZcIiBtYXRTdWZmaXg+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjY3BvRGF0ZVJlZj48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxicj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WaWN0aW0gaGFzIGEgU3VwcG9ydCBTeXN0ZW0gaW4gUGxhY2U/IDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgZm9ybUNvbnRyb2xOYW1lPVwic3VwcG9ydEluUGxhY2VGbGFnXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLnN1cHBvcnRJblBsYWNlRmxhZ1wiICAoY2hhbmdlKT1cInJhZGlvU3VwcG9ydENoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cInRydWVcIj5ZZXM8L21hdC1yYWRpby1idXR0b24+Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cImZhbHNlXCI+Tm88L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VwcG9ydEluUGxhY2VEaXZGbGFnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+U3VwcG9ydCB0eXBlPyA8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCAjc3VwcG9ydFNlbCBmb3JtQ29udHJvbE5hbWU9XCJ2aWN0aW1TdXBwb3J0c1wiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS52aWN0aW1TdXBwb3J0c1wiIG11bHRpcGxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAobW91c2VsZWF2ZSk9XCJzdXBwb3J0U2VsLmNsb3NlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gY29sb3I9XCJwcmltYXJ5XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdmljdGltU3VwcG9ydFR5cGVzXCIgW3ZhbHVlXT1cIml0ZW0udmljdGltU3VwcG9ydFR5cGVJZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5uYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPldlYXBvbnMgSW52b2x2ZWQ/PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1ncm91cCBmb3JtQ29udHJvbE5hbWU9XCJ3ZWFwb25JbnZvbHZlZEZsYWdcIiAoY2hhbmdlKT1cInJhZGlvV2VhcG9uQ2hhbmdlKCRldmVudClcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0ud2VhcG9uSW52b2x2ZWRGbGFnXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cInRydWVcIj5ZZXM8L21hdC1yYWRpby1idXR0b24+Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbdmFsdWVdPVwiZmFsc2VcIj5ObzwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwid2VhcG9uSW52b2x2ZWREaXZGbGFnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPldlYXBvbiBUeXBlPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCAgI3dlYXBvblNlbCBmb3JtQ29udHJvbE5hbWU9XCJ2aWN0aW1XZWFwb25Vc2VzXCIgbXVsdGlwbGUgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLnZpY3RpbVdlYXBvblVzZXNcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cImNoZWNrT3RoZXJXZWFwb24oJGV2ZW50LnZhbHVlKVwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAobW91c2VsZWF2ZSk9XCJ3ZWFwb25TZWwuY2xvc2UoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIGNvbG9yPVwicHJpbWFyeVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHdlYXBvblR5cGVzXCIgW3ZhbHVlXT1cIml0ZW0ud2VhcG9uVHlwZUlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW0ubmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvdGhlcldlYXBvbkZsYWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+T3RoZXIgV2VhcG9uOiogPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCAgZm9ybUNvbnRyb2xOYW1lPVwib3RoZXJXZWFwb25cIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnb3RoZXJXZWFwb24nKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdvdGhlcldlYXBvbicpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdvdGhlcldlYXBvbicpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHN0cm9uZz5PdGhlciB3ZWFwb24gaXMgcmVxdWlyZWQuPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+V2FzIE9mZmVuZGVyIHVuZGVyIHRoZSBpbmZsdWVuY2Ugb2YgYWxjb2hvbCBhdCB0aGUgdGltZSBvZiB0aGUgb2ZmZW5zZT88L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1ncm91cCBmb3JtQ29udHJvbE5hbWU9XCJhbGNvaG9sVXNlRmxhZ1wiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5hbGNvaG9sVXNlRmxhZ1wiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cInRydWVcIj5ZZXM8L21hdC1yYWRpby1idXR0b24+Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFt2YWx1ZV09XCJmYWxzZVwiPk5vPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPldhcyBPZmZlbmRlciB1bmRlciB0aGUgaW5mbHVlbmNlIG9mIGRydWdzIGF0IHRoZSB0aW1lIG9mIHRoZSBvZmZlbnNlPzwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1ncm91cCBmb3JtQ29udHJvbE5hbWU9XCJkcnVnVXNlRmxhZ1wiIChjaGFuZ2UpPVwicmFkaW9EcnVnQ2hhbmdlKCRldmVudClcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZHJ1Z1VzZUZsYWdcIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFt2YWx1ZV09XCJ0cnVlXCI+WWVzPC9tYXQtcmFkaW8tYnV0dG9uPiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFt2YWx1ZV09XCJmYWxzZVwiPk5vPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRydWdVc2VEaXZGbGFnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+RHJ1Zzo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCAgI2RydWdTZWwgZm9ybUNvbnRyb2xOYW1lPVwidmljdGltRHJ1Z1VzZXNcIiBtdWx0aXBsZSAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hlY2tPdGhlckRydWcoJGV2ZW50LnZhbHVlKVwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKG1vdXNlbGVhdmUpPVwiZHJ1Z1NlbC5jbG9zZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gY29sb3I9XCJwcmltYXJ5XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZHJ1Z3NcIiBbdmFsdWVdPVwiaXRlbS5kcnVnVHlwZUlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLm5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib3RoZXJEcnVnRmxhZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5PdGhlciBEcnVnOiogPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCAgZm9ybUNvbnRyb2xOYW1lPVwib3RoZXJEcnVnXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ290aGVyRHJ1ZycpLmVycm9yc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ290aGVyRHJ1ZycpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdvdGhlckRydWcnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+T3RoZXIgZHJ1ZyBpcyByZXF1aXJlZC48L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY2Nlc3MgUmlzazogMSB0aHJ1IDEwICgxMCBncmVhdGVzdCByaXNrKTogJm5ic3A7PGI+e3tzbGlkZXIudmFsdWV9fTwvYj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1zbGlkZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWNjZXNzUmlza1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRodW1iTGFiZWw9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlXaXRoXT1cImZvcm1hdExhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21heF09XCIxMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGVwXT1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzY3JldGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93VGlja01hcmtzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PGlucHV0IG1hdFNsaWRlclRodW1iICAgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmFjY2Vzc1Jpc2tcIiAgI3NsaWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNsaWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZD5cclxuXHJcblxyXG4gICAgICAgICAgICAgIDxicj48YnI+PGJyPlxyXG4gICAgICAgICAgICA8L21hdC10YWI+XHJcblxyXG4gICAgICAgICAgIDxtYXQtdGFiICAqbmdJZj1cImd1YXJkaWFuVGFiRmxhZ1wiIGxhYmVsPVwiTGVnYWwgR3VhcmRpYW5cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz0nY29udGFpbmVyJz5cclxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+R3VhcmRpYW4gTGFzdCBOYW1lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZ3VhcmRpYW5MYXN0TmFtZVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5ndWFyZGlhbkxhc3ROYW1lXCIgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuTGFzdE5hbWUnKS5lcnJvcnMgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5HdWFyZGlhbiBsYXN0IG5hbWUgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkd1YXJkaWFuIEZpcnN0IE5hbWU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCAgZm9ybUNvbnRyb2xOYW1lPVwiZ3VhcmRpYW5GaXJzdE5hbWVcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZ3VhcmRpYW5GaXJzdE5hbWVcIiA+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5GaXJzdE5hbWUnKS5lcnJvcnMgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5HdWFyZGlhbiBmaXJzdCBuYW1lIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5HdWFyZGlhbiBQcmVmaXg6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICBmb3JtQ29udHJvbE5hbWU9XCJndWFyZGlhblByZWZpeElkXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmd1YXJkaWFuUHJlZml4SWRcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgcHJlZml4ZXNcIiBbdmFsdWVdPVwiaXRlbS5wcmVmaXhJZFwiPnt7aXRlbS5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkd1YXJkaWFuIFN1ZmZpeDo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgIGZvcm1Db250cm9sTmFtZT1cImd1YXJkaWFuU3VmZml4SWRcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZ3VhcmRpYW5TdWZmaXhJZFwiICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc3VmZml4ZXNcIiBbdmFsdWVdPVwiaXRlbS5zdWZmaXhJZFwiPnt7aXRlbS5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IHBsYWNlaG9sZGVyPVwiQ2hvb3NlXCIgZm9ybUNvbnRyb2xOYW1lPVwiZ3VhcmRpYW5HZW5kZXJcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZ3VhcmRpYW5HZW5kZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdlbmRlcnNcIiBbdmFsdWVdPVwiaXRlbS5nZW5kZXJDb2RlXCI+e3tpdGVtLm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+IC0tPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+RGF0ZSBvZiBCaXJ0aDo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cImd1YXJkaWFuRGF0ZVJlZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImd1YXJkaWFuQmlydGhEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmd1YXJkaWFuQmlydGhEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImd1YXJkaWFuRGF0ZVJlZi5vcGVuKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIFtmb3JdPVwiZ3VhcmRpYW5EYXRlUmVmXCIgbWF0U3VmZml4PjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjZ3VhcmRpYW5EYXRlUmVmPjwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXY+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCA+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgY29sb3IgPSBcInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJndWFyZGlhbk5vUGhvbmVGbGFnXCI+XHJcbiAgICAgICAgICAgICAgICAgIE5vIFBob25lIChJZiB0aGVyZSBpcyBubyBwaG9uZSwgdGhlIHBob25lIGZpZWxkcyBhcmUgbm8gbG9uZ2VyIHJlcXVpcmVkKTwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCI+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2PjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPG1hdC1jYXJkPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkID5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5HdWFyZGlhbiBIb21lIFBob25lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgIGlkPVwidGVsXCJcclxuICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgIHBob25lTWFza1xyXG4gICAgICAgICAgICAgICAgICAgIFtwcmVWYWx1ZV09XCJlZGl0VmljdGltLmd1YXJkaWFuSG9tZVBob25lXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGhvbmVDb250cm9sXT1cImd1YXJkaWFuSG9tZVBob25lQ29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImd1YXJkaWFuSG9tZVBob25lQ29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTRcIi8+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5Ib21lUGhvbmUnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuSG9tZVBob25lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuSG9tZVBob25lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+R3VhcmRpYW4gaG9tZSBwaG9uZSBudW1iZXIgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkd1YXJkaWFuIENlbGwgUGhvbmU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgIGlkPVwidGVsNFwiXHJcbiAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgcGhvbmVNYXNrXHJcbiAgICAgICAgICAgICAgICAgICBbcHJlVmFsdWVdPVwiZWRpdFZpY3RpbS5ndWFyZGlhbkNlbGxQaG9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbcGhvbmVDb250cm9sXT1cImd1YXJkaWFuQ2VsbFBob25lQ29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZ3VhcmRpYW5DZWxsUGhvbmVDb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE0XCIvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuQ2VsbFBob25lJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5DZWxsUGhvbmUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5DZWxsUGhvbmUnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHN0cm9uZz5HdWFyZGlhbiBDZWxsIHBob25lIG51bWJlciBmb3JtYXQgaXMgbm90IGNvcnJlY3QuPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCA+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+R3VhcmRpYW4gV29yayBQaG9uZTo8L21hdC1sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJ0ZWw1XCJcclxuICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgIHBob25lTWFza1xyXG4gICAgICAgICAgICAgICAgICAgIFtwcmVWYWx1ZV09XCJlZGl0VmljdGltLmd1YXJkaWFuV29ya1Bob25lXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGhvbmVDb250cm9sXT1cImd1YXJkaWFuV29ya1Bob25lQ29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImd1YXJkaWFuV29ya1Bob25lQ29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTRcIi8+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5Xb3JrUGhvbmUnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuV29ya1Bob25lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuV29ya1Bob25lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+R3VhcmRpYW4gd29yayBwaG9uZSBudW1iZXIgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgIDwvbWF0LWNhcmQ+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXY+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkd1YXJkaWFuIEVtYWlsOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJndWFyZGlhbkVtYWlsXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmd1YXJkaWFuRW1haWxcIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5FbWFpbCcpLmVycm9yc1xyXG4gICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5FbWFpbCcpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkVtYWlsJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHN0cm9uZz5HdWFyZGlhbiBlbWFpbCBmb3JtYXQgaXMgbm90IGNvcnJlY3QuPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdj48L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGFwcC1zbWFydC1hZGRyZXNzXHJcblxyXG4gICAgICAgICAgICAgICAgW3Nob3dQc2FdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbbW9kaWZpZWRCeV09XCJzdGFmZklkXCJcclxuICAgICAgICAgICAgICAgIFtpZF09XCJndWFyZGlhbkFkZHJlc3NJZFwiXHJcbiAgICAgICAgICAgICAgICAoYWRkcmVzc0lkQ2hhbmdlKT1cIm9uR3VhcmRpYW5BZGRyZXNzQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgW291dGxpbmVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICByZWFkb25seT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgIFtyb3dIZWlnaHRdPVwiODBcIlxyXG4gICAgICAgICAgICAgICAgKGlzVmFsaWQpPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgW2FkZHJlc3NWYWxpZGF0b3JzXT1cImFkZHJlc3NWYWxpZGF0b3JzXCJcclxuICAgICAgICAgICAgICAgICNndWFyZGlhbkFkZHJlc3NDb21wb25lbnRcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwvYXBwLXNtYXJ0LWFkZHJlc3M+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGJyPjxicj48YnI+XHJcbiAgICAgICAgICAgIDwvbWF0LXRhYj5cclxuXHJcbiAgICAgICAgICAgIDwhLS1hZHZvY2F0ZS0tPlxyXG5cclxuICAgICAgICAgICAgICA8bWF0LXRhYiAgKm5nSWY9XCJhZHZvY2F0ZVRhYkZsYWdcIiBsYWJlbD1cIkFkdm9jYXRlXCIgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nY29udGFpbmVyJz5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+QWR2b2NhdGUgTGFzdCBOYW1lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCAgZm9ybUNvbnRyb2xOYW1lPVwiYWR2b2NhdGVMYXN0TmFtZVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5hZHZvY2F0ZUxhc3ROYW1lXCIgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlTGFzdE5hbWUnKS5lcnJvcnMgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPkFkdm9jYXRlIGxhc3QgbmFtZSBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+QWR2b2NhdGUgRmlyc3QgTmFtZTo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgIGZvcm1Db250cm9sTmFtZT1cImFkdm9jYXRlRmlyc3ROYW1lXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmFkdm9jYXRlRmlyc3ROYW1lXCIgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlRmlyc3ROYW1lJykuZXJyb3JzIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5BZHZvY2F0ZSBmaXJzdCBuYW1lIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkFkdm9jYXRlIFByZWZpeDo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCAgZm9ybUNvbnRyb2xOYW1lPVwiYWR2b2NhdGVQcmVmaXhJZFwiICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uYWR2b2NhdGVQcmVmaXhJZFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIHByZWZpeGVzXCIgW3ZhbHVlXT1cIml0ZW0ucHJlZml4SWRcIj57e2l0ZW0ubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkFkdm9jYXRlIFN1ZmZpeDo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCAgZm9ybUNvbnRyb2xOYW1lPVwiYWR2b2NhdGVTdWZmaXhJZFwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5hZHZvY2F0ZVN1ZmZpeElkXCIgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIHN1ZmZpeGVzXCIgW3ZhbHVlXT1cIml0ZW0uc3VmZml4SWRcIj57e2l0ZW0ubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICBjb2xvciA9IFwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFkdm9jYXRlTm9QaG9uZUZsYWdcIlxyXG5cclxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmFkdm9jYXRlTm9QaG9uZUZsYWdcIiA+XHJcbiAgICAgICAgICAgICAgICAgIE5vIFBob25lIChJZiB0aGVyZSBpcyBubyBwaG9uZSwgdGhlIHBob25lIGZpZWxkcyBhcmUgbm8gbG9uZ2VyIHJlcXVpcmVkKTwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCI+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXY+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQ+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkFkdm9jYXRlIEhvbWUgUGhvbmU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJ0ZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgcGhvbmVNYXNrXHJcbiAgICAgICAgICAgICAgICAgICAgW3ByZVZhbHVlXT1cImVkaXRWaWN0aW0uYWR2b2NhdGVIb21lUGhvbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwaG9uZUNvbnRyb2xdPVwiYWR2b2NhdGVIb21lUGhvbmVDb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiYWR2b2NhdGVIb21lUGhvbmVDb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIxNFwiLz5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVIb21lUGhvbmUnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlSG9tZVBob25lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlSG9tZVBob25lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+QWR2b2NhdGUgaG9tZSBudW1iZXIgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5BZHZvY2F0ZSBDZWxsIFBob25lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgIGlkPVwidGVsN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgICAgICAgICAgICBwaG9uZU1hc2tcclxuICAgICAgICAgICAgICAgICAgICBbcHJlVmFsdWVdPVwiZWRpdFZpY3RpbS5hZHZvY2F0ZUNlbGxQaG9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Bob25lQ29udHJvbF09XCJhZHZvY2F0ZUNlbGxQaG9uZUNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJhZHZvY2F0ZUNlbGxQaG9uZUNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE0XCIvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlQ2VsbFBob25lJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUNlbGxQaG9uZScpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUNlbGxQaG9uZScpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj48c3Ryb25nPkFkdm9jYXRlIGNlbGwgbnVtYmVyIGZvcm1hdCBpcyBub3QgY29ycmVjdC48L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkFkdm9jYXRlIFdvcmsgUGhvbmU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJ0ZWw4XCJcclxuICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgIHBob25lTWFza1xyXG4gICAgICAgICAgICAgICAgICAgIFtwcmVWYWx1ZV09XCJlZGl0VmljdGltLmFkdm9jYXRlV29ya1Bob25lXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGhvbmVDb250cm9sXT1cImFkdm9jYXRlV29ya1Bob25lQ29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImFkdm9jYXRlV29ya1Bob25lQ29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTRcIi8+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlV29ya1Bob25lJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZVdvcmtQaG9uZScpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZVdvcmtQaG9uZScpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj48c3Ryb25nPkFkdm9jYXRlIHdvcmsgbnVtYmVyIGZvcm1hdCBpcyBub3QgY29ycmVjdC48L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdj48L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+QWR2b2NhdGUgRW1haWw6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImFkdm9jYXRlRW1haWxcIiAgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmFkdm9jYXRlRW1haWxcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUVtYWlsJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUVtYWlsJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlRW1haWwnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHN0cm9uZz5BZHZvY2F0ZSBlbWFpbCBmb3JtYXQgaXMgbm90IGNvcnJlY3QuPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2PjwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiA+XHJcbiAgICAgICAgICAgICAgPGFwcC1zbWFydC1hZGRyZXNzXHJcbiAgICAgICAgICAgICAgW3Nob3dQc2FdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW21vZGlmaWVkQnldPVwic3RhZmZJZFwiXHJcbiAgICAgICAgICAgICAgW2lkXT1cImFkdm9jYXRlQWRkcmVzc0lkXCJcclxuICAgICAgICAgICAgICAoYWRkcmVzc0lkQ2hhbmdlKT1cIm9uQWR2b2NhdGVBZGRyZXNzQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIFtvdXRsaW5lXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIHJlYWRvbmx5PVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgIFtyb3dIZWlnaHRdPVwiODBcIlxyXG4gICAgICAgICAgICAgIChpc1ZhbGlkKT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICBbYWRkcmVzc1ZhbGlkYXRvcnNdPVwiYWRkcmVzc1ZhbGlkYXRvcnNcIlxyXG4gICAgICAgICAgICAgICNhZHZvY2F0ZUFkZHJlc3NDb21wb25lbnQgPlxyXG4gICAgICAgICAgICAgIDwvYXBwLXNtYXJ0LWFkZHJlc3M+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGJyPjxicj48YnI+XHJcbiAgICAgICAgICAgIDwvbWF0LXRhYj5cclxuXHJcblxyXG4gICAgICAgICAgICAgPG1hdC10YWIgIGxhYmVsPVwiRW1lcmdlbmN5IENvbnRhY3RcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2NvbnRhaW5lcic+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5FbWVyZ2VuY3kgQ29udGFjdCBOYW1lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBmb3JtQ29udHJvbE5hbWU9XCJlbWVyZ2VuY3lDb250YWN0XCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmVtZXJnZW5jeUNvbnRhY3RcIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+RW1lcmdlbmN5IFBob25lIE51bWJlcjo8L21hdC1sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwidGVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG9uZU1hc2tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmVWYWx1ZV09XCJlZGl0VmljdGltLmVtZXJnZW5jeUNvbnRhY3RQaG9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGhvbmVDb250cm9sXT1cImVtZXJnZW5jeUNvbnRhY3RQaG9uZUNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImVtZXJnZW5jeUNvbnRhY3RQaG9uZUNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTRcIi8+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2VtZXJnZW5jeUNvbnRhY3RQaG9uZScpLmVycm9yc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2VtZXJnZW5jeUNvbnRhY3RQaG9uZScpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdlbWVyZ2VuY3lDb250YWN0UGhvbmUnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+RW1lcmdlbmN5IGNvbnRhY3QgbnVtYmVyIGZvcm1hdCBpcyBub3QgY29ycmVjdC48L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxicj48YnI+PGJyPlxyXG4gICAgICAgICAgICA8L21hdC10YWI+XHJcblxyXG4gICAgICAgICAgPC9tYXQtdGFiLWdyb3VwPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz0nb3V0ZXInPlxyXG4gICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICBBbGwgYnV0dG9ucyBhcHBseSB0byBhbGwgdGFicy4gSWYgc2F2ZSBidXR0b24gaXMgZ3JleSwgcGxlYXNlIGNoZWNrIGVhY2ggdGFiIHRvIG1ha2Ugc3VyZSB0aGUgcmVxdWlyZWQgZmllbGQgaXMgZmlsbGVkLjxicj48YnI+XHJcblxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ21pbm9yRmxhZycpLmVycm9yc1xyXG4gICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnbWlub3JGbGFnJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ21pbm9yRmxhZycpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5JZiB2aWN0aW0gYSBtaW5vciBmaWVsZCBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgndmljdGltQWR2b2NhdGVGbGFnJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1BZHZvY2F0ZUZsYWcnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgndmljdGltQWR2b2NhdGVGbGFnJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICA8bWF0LWVycm9yPklmIHZpY3RpbSBoYXMgYWR2b2NhdGUgZmllbGQgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCd1bmRlclN1cGVydmlzaW9uRmxhZycpLmVycm9yc1xyXG4gICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgndW5kZXJTdXBlcnZpc2lvbkZsYWcnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgndW5kZXJTdXBlcnZpc2lvbkZsYWcnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtZXJyb3I+VW5kZXIgc3VwZXJ2aXNpb24gZmllbGQgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ3ZpY3RpbVJlbGF0aW9uc2hpcHMnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ3ZpY3RpbVJlbGF0aW9uc2hpcHMnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgndmljdGltUmVsYXRpb25zaGlwcycpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1lcnJvcj5SZWxhdGlvbnNoaXAgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2xhc3ROYW1lJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdsYXN0TmFtZScpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdsYXN0TmFtZScpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1lcnJvcj5WaWN0aW0gbGFzdCBuYW1lIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdmaXJzdE5hbWUnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2ZpcnN0TmFtZScpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdmaXJzdE5hbWUnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtZXJyb3I+dmljdGltIGZpcnN0IG5hbWUgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5GaXJzdE5hbWUnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuRmlyc3ROYW1lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuRmlyc3ROYW1lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+R3VhcmRpYW4gZmlyc3QgbmFtZSBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5MYXN0TmFtZScpLmVycm9yc1xyXG4gICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkxhc3ROYW1lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuTGFzdE5hbWUnKS50b3VjaGVkKVwiID5cclxuICAgICAgICAgICAgICA8bWF0LWVycm9yPkd1YXJkaWFuIGxhc3QgbmFtZSBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVMYXN0TmFtZScpLmVycm9yc1xyXG4gICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUxhc3ROYW1lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlTGFzdE5hbWUnKS50b3VjaGVkKVwiID5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5BZHZvY2F0ZSBsYXN0IG5hbWUgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlRmlyc3ROYW1lJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlRmlyc3ROYW1lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlRmlyc3ROYW1lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5BZHZvY2F0ZSBmaXJzdCBuYW1lIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ290aGVyV2VhcG9uJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdvdGhlcldlYXBvbicpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdvdGhlcldlYXBvbicpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5PdGhlciB3ZWFwb24gZmllbGQgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ290aGVyRHJ1ZycpLmVycm9yc1xyXG4gICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnb3RoZXJEcnVnJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ290aGVyRHJ1ZycpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1lcnJvcj5PdGhlciBkcnVnIGZpZWxkIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlubmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwic2F2ZVZpY3RpbSgpXCIgW2Rpc2FibGVkXT1cIiF2aWN0aW1Gb3JtLnZhbGlkXCIgID5TYXZlIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgY2xhc3M9XCJpbm5lclwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uICBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImRlbGV0ZVZpY3RpbSgpXCI+RGVsZXRlIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDtcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlubmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5DbGVhciA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDtcclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgIChjbGljayk9XCJiYWNrKClcIj5CYWNrPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGJyPlxyXG4gICAgICAgIDxicj5cclxuXHJcbiAgICAgICAgPGRpdiBhbGlnbj1cInJpZ2h0XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAgKGNsaWNrKT1cImFkZENvbnRhY3QoKVwiICA+QWRkIHZpY3RpbSBjb250YWN0PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXY+XHJcblxyXG4gICAgICAgICAgPG1hdC10YWJsZSAjdGFibGUgW2RhdGFTb3VyY2VdPVwiY29udGFjdERhdGFTb3VyY2VcIiBjbGFzcz1cImV4YW1wbGUtdGFibGVcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJjb250YWN0RGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWNlbGxcIj5Db250YWN0IERhdGU8L21hdC1oZWFkZXItY2VsbD5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiBjbGFzcz1cImV4YW1wbGUtY2VsbFwiPiB7e3Jvdy5jb250YWN0RGF0ZSB8IGRhdGV9fSA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInZpY3RpbUNvbnRhY3RNZXRob2RcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGNsYXNzPVwiZXhhbXBsZS1oZWFkZXItY2VsbFwiPkNvbnRhY3QgTWV0aG9kPC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiIGNsYXNzPVwiZXhhbXBsZS1jZWxsXCI+IHt7cm93LnZpY3RpbUNvbnRhY3RNZXRob2R9fSA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibmV4dENvbnRhY3REYXRlXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWNlbGxcIj5OZXh0IENvbnRhY3QgRGF0ZTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiBjbGFzcz1cImV4YW1wbGUtY2VsbFwiPiB7e3Jvdy5uZXh0Q29udGFjdERhdGUgfCBkYXRlfX0gPC9tYXQtY2VsbD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzdGFmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJleGFtcGxlLWhlYWRlci1jZWxsXCI+Q29udGFjdCBCeTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiBjbGFzcz1cImV4YW1wbGUtY2VsbFwiPiB7e3Jvdy5zdGFmZn19IDwvbWF0LWNlbGw+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNvbW1lbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJleGFtcGxlLWhlYWRlci1jZWxsXCI+Q29tbWVudDwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiIGNsYXNzPVwiZXhhbXBsZS1jZWxsXCI+IHt7cm93LmNvbW1lbnR9fSA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJjb250YWN0SWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGNsYXNzPVwiZXhhbXBsZS1oZWFkZXItY2VsbFwiPjwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiIGNsYXNzPVwiZXhhbXBsZS1jZWxsXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9tYXQtY2VsbD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8bWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cIlsnY29udGFjdERhdGUnLCAndmljdGltQ29udGFjdE1ldGhvZCcsJ25leHRDb250YWN0RGF0ZScsICdzdGFmZicsICdjb21tZW50JywgJ2NvbnRhY3RJZCddXCIgY2xhc3M9XCJleGFtcGxlLWhlYWRlci1yb3dcIj48L21hdC1oZWFkZXItcm93PlxyXG4gICAgICAgICAgICA8bWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczpbJ2NvbnRhY3REYXRlJywgJ3ZpY3RpbUNvbnRhY3RNZXRob2QnLCduZXh0Q29udGFjdERhdGUnLCAnc3RhZmYnLCAnY29tbWVudCcsICdjb250YWN0SWQnXTtcIiBjbGFzcz1cImV4YW1wbGUtcm93XCI+PC9tYXQtcm93PlxyXG4gICAgICAgICAgICA8L21hdC10YWJsZT5cclxuXHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbjwvbWF0LWNhcmQ+XHJcbiJdfQ==