@bnsights/bbsf-controls 1.0.176 → 1.0.178
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -0
- package/esm2022/lib/Shared/Models/FileDTO.mjs +2 -1
- package/esm2022/lib/controls/FileUpload/FileUpload.component.mjs +1094 -0
- package/esm2022/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.mjs +2 -2
- package/esm2022/lib/controls/bbsf-controls.module.mjs +5 -3
- package/esm2022/public-api.mjs +2 -2
- package/fesm2022/bnsights-bbsf-controls.mjs +952 -443
- package/fesm2022/bnsights-bbsf-controls.mjs.map +1 -1
- package/lib/Shared/Models/FileDTO.d.ts +1 -0
- package/lib/controls/FileUpload/FileUpload.component.d.ts +162 -0
- package/lib/controls/bbsf-controls.module.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/esm2022/lib/controls/FileUplaod/FileUplaod.component.mjs +0 -588
- package/lib/controls/FileUplaod/FileUplaod.component.d.ts +0 -62
package/esm2022/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.mjs
CHANGED
|
@@ -17,7 +17,7 @@ import { TextBoxOptions } from '../../../Shared/Models/TextBoxOptions';
|
|
|
17
17
|
import { ToggleSlideOptions } from '../../../Shared/Models/ToggleSlideOptions';
|
|
18
18
|
import { DateInputComponent } from '../../DateTimePicker/DateTimePicker.component';
|
|
19
19
|
import { DropdownListComponent } from '../../DropdownList/DropdownList.component';
|
|
20
|
-
import { FileUploadComponent } from '../../
|
|
20
|
+
import { FileUploadComponent } from '../../FileUpload/FileUpload.component';
|
|
21
21
|
import { HtmlEditorComponent } from '../../HtmlEditor/HtmlEditor.component';
|
|
22
22
|
import { ImageUploaderComponent } from '../../ImageUpload/ImageUpload.component';
|
|
23
23
|
import { MapAutoCompleteComponent } from '../../MapAutoComplete/MapAutoComplete.component';
|
|
@@ -795,4 +795,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
795
795
|
}], itemsValue: [{
|
|
796
796
|
type: Input
|
|
797
797
|
}] } });
|
|
798
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXItZmllbGQtYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvY29udHJvbHMvUmVwZWF0ZXIvcmVwZWF0ZXItZmllbGQtYnVpbGRlci9yZXBlYXRlci1maWVsZC1idWlsZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9SZXBlYXRlci9yZXBlYXRlci1maWVsZC1idWlsZGVyL3JlcGVhdGVyLWZpZWxkLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsS0FBSyxFQUF5QixTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFF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d0JBQ3ZCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBb0IsSUFBSSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO3dCQUMxSCxNQUFNO29CQUNSLFlBQVk7b0JBRVo7d0JBQ0UsTUFBTTtpQkFDVDthQUVGO0lBRUwsQ0FBQzsrR0FoeEJVLDZCQUE2QjttR0FBN0IsNkJBQTZCLHVSQUViLGdCQUFnQixrREN4QzdDLHlDQUNBOzs0RkRxQ2EsNkJBQTZCO2tCQUp6QyxTQUFTOytCQUNFLHdCQUF3Qjs0SEFLYSxJQUFJO3NCQUFsRCxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDcEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Hcm91cERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRGF0YVR5cGUgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvRW51bXMvRW51bXMnO1xyXG5pbXBvcnQgeyBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvRW51bXMvSW5wdXRUeXBlJztcclxuaW1wb3J0IHsgUGlja2VyVHlwZSB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9FbnVtcy9QaWNrZXJUeXBlJztcclxuaW1wb3J0IHsgU2VsZWN0TW9kZSB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9FbnVtcy9TZWxlY3RNb2RlJztcclxuaW1wb3J0IHsgU3RhcnRWaWV3IH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL0VudW1zL1N0YXJ0Vmlldyc7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL01vZGVscy9EYXRlUGlja2VyT3B0aW9ucyc7XHJcbmltcG9ydCB7IERyb3Bkb3duT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9Nb2RlbHMvRHJvcGRvd25PcHRpb25zJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvTW9kZWxzL0ZpbGVVcGxvYWRPcHRpb25zJztcclxuaW1wb3J0IHsgSHRtbEVkaXRvck9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvTW9kZWxzL0h0bWxFZGl0b3JPcHRpb25zJztcclxuaW1wb3J0IHsgSW1hZ2VVcGxvYWRPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL01vZGVscy9JbWFnZVVwbG9hZE9wdGlvbnMnO1xyXG5pbXBvcnQgeyBNYXBBdXRvQ29tcGxldGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL01vZGVscy9NYXBBdXRvQ29tcGxldGVPcHRpb25zJztcclxuaW1wb3J0IHsgUGhvbmVPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL01vZGVscy9QaG9uZU9wdGlvbnMnO1xyXG5pbXBvcnQgeyBSYW5nZU51bWJlciB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9Nb2RlbHMvUmFuZ2VOdW1iZXInO1xyXG5pbXBvcnQgeyBSZXBlYXRlckZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL01vZGVscy9SZXBlYXRlckZpZWxkJztcclxuaW1wb3J0IHsgVGV4dEFyZWFPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL01vZGVscy9UZXh0QXJlYU9wdGlvbnMnO1xyXG5pbXBvcnQgeyBUZXh0Qm94T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9Nb2RlbHMvVGV4dEJveE9wdGlvbnMnO1xyXG5pbXBvcnQgeyBUb2dnbGVTbGlkZU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvTW9kZWxzL1RvZ2dsZVNsaWRlT3B0aW9ucyc7XHJcbmltcG9ydCB7IFJlbmRlckNvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvc2VydmljZXMvcmVuZGVyLWNvbXBvbmVudC1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9EYXRlVGltZVBpY2tlci9EYXRlVGltZVBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEcm9wZG93bkxpc3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi9Ecm9wZG93bkxpc3QvRHJvcGRvd25MaXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9GaWxlVXBsYW9kL0ZpbGVVcGxhb2QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSHRtbEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL0h0bWxFZGl0b3IvSHRtbEVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbWFnZVVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vSW1hZ2VVcGxvYWQvSW1hZ2VVcGxvYWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWFwQXV0b0NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vTWFwQXV0b0NvbXBsZXRlL01hcEF1dG9Db21wbGV0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQaG9uZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL1Bob25lL1Bob25lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vVGV4dEFyZWEvVGV4dEFyZWEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dGJveENvbXBvbmVudCB9IGZyb20gJy4uLy4uL1RleHRCb3gvVGV4dEJveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb2dnbGVzbGlkZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL1RvZ2dsZXNsaWRlL1RvZ2dsZXNsaWRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENoZWNrQm94T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9Nb2RlbHMvQ2hlY2tCb3hPcHRpb25zJztcclxuaW1wb3J0IHsgQ2hlY2tCb3hDb21wb25lbnQgfSBmcm9tICcuLi8uLi9DaGVja0JveC9DaGVja0JveC5jb21wb25lbnQnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncmVwZWF0ZXItZmllbGQtYnVpbGRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcGVhdGVyLWZpZWxkLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwZWF0ZXJGaWVsZEJ1aWxkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG5cclxuICBAVmlld0NoaWxkKFwiSXRlbVwiLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgaXRlbTogVmlld0NvbnRhaW5lclJlZjtcclxuICBASW5wdXQoKSBncm91cDogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGl0ZW1OdW1iZXI6IG51bWJlcjtcclxuICBASW5wdXQoKSBjb250cm9sTnVtYmVyOiBudW1iZXI7XHJcbiAgQElucHV0KCkgcmVwZWF0ZXJGaWVsZDogUmVwZWF0ZXJGaWVsZDtcclxuICBASW5wdXQoKSBpdGVtc1ZhbHVlOiBhbnlbXSA9IFtdO1xyXG4gIGl0ZW1WYWx1ZTogYW55ID0gbnVsbDtcclxuICB2YWx1ZTogYW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlckNvbXBvbmVudFNlcnZpY2U6IFJlbmRlckNvbXBvbmVudFNlcnZpY2UsIHB1YmxpYyB0ZXh0Q29udHJvbEhvc3Q6IEZvcm1Hcm91cERpcmVjdGl2ZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLml0ZW1zVmFsdWUubGVuZ3RoID4gMClcclxuICAgICAgICB0aGlzLml0ZW1WYWx1ZSA9IHRoaXMuaXRlbXNWYWx1ZVt0aGlzLml0ZW1OdW1iZXJdO1xyXG4gICAgICBpZiAodGhpcy5pdGVtVmFsdWUpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLml0ZW1WYWx1ZSkge1xyXG4gICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLml0ZW1WYWx1ZSwga2V5KSAmJiBrZXkgPT0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUpIHtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuaXRlbVZhbHVlW2tleV07XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBlbGVtZW50O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLml0ZW0uY2xlYXIoKTtcclxuICAgICAgc3dpdGNoICh0aGlzLnJlcGVhdGVyRmllbGQ/LmNvbnRyb2xUeXBlKSB7XHJcbiAgICAgICAgLy8jcmVnaW9uIFRleHRCb3hcclxuICAgICAgICBjYXNlIERhdGFUeXBlLlRleHQ6XHJcbiAgICAgICAgICBsZXQgVGV4dCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgVGV4dC5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgIFRleHQuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIFRleHQubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBUZXh0LmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIFRleHQudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBUZXh0LmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIFRleHQudHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICAgICAgVGV4dC5sYW5ndWFnZVZhbGlkYXRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFuZ3VhZ2VWYWxpZGF0aW9uO1xyXG4gICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGgpXHJcbiAgICAgICAgICAgIFRleHQubWF4TGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aDtcclxuICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoKVxyXG4gICAgICAgICAgICBUZXh0Lm1pbkxlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGg7XHJcbiAgICAgICAgICBUZXh0LnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIFRleHQuaXNSZWFkb25seSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlYWRvbmx5O1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8VGV4dGJveENvbXBvbmVudD4odGhpcy5pdGVtLCBUZXh0Ym94Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBUZXh0KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIERhdGFUeXBlLk5hbWU6XHJcbiAgICAgICAgICBsZXQgbmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgbmFtZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgIG5hbWUuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIG5hbWUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBuYW1lLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIG5hbWUudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBuYW1lLmxhbmd1YWdlVmFsaWRhdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYW5ndWFnZVZhbGlkYXRpb247XHJcbiAgICAgICAgICBuYW1lLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4TGVuZ3RoKVxyXG4gICAgICAgICAgICBuYW1lLm1heExlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGg7XHJcbiAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1pbkxlbmd0aClcclxuICAgICAgICAgICAgbmFtZS5taW5MZW5ndGggPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoO1xyXG4gICAgICAgICAgbmFtZS50eXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgICBuYW1lLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRleHRib3hDb21wb25lbnQ+KHRoaXMuaXRlbSwgVGV4dGJveENvbXBvbmVudCwgdGhpcy5ncm91cCwgbmFtZSk7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5FbWFpbDpcclxuICAgICAgICAgIGxldCBlbWFpbCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgZW1haWwubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICBlbWFpbC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgZW1haWwubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBlbWFpbC5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBlbWFpbC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIGVtYWlsLmxhbmd1YWdlVmFsaWRhdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYW5ndWFnZVZhbGlkYXRpb247XHJcbiAgICAgICAgICBlbWFpbC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICBlbWFpbC50eXBlID0gSW5wdXRUeXBlLkVtYWlsO1xyXG4gICAgICAgICAgZW1haWwudmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8VGV4dGJveENvbXBvbmVudD4odGhpcy5pdGVtLCBUZXh0Ym94Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBlbWFpbCk7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5OdW1iZXI6XHJcbiAgICAgICAgICBsZXQgbnVtYmVyID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICBudW1iZXIubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICBudW1iZXIuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIG51bWJlci5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIG51bWJlci5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBudW1iZXIudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBudW1iZXIubGFuZ3VhZ2VWYWxpZGF0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhbmd1YWdlVmFsaWRhdGlvbjtcclxuICAgICAgICAgIG51bWJlci5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICBudW1iZXIudHlwZSA9IElucHV0VHlwZS5OdW1iZXI7XHJcbiAgICAgICAgICBsZXQgcmFuZ2VOdW1iZXIgPSBuZXcgUmFuZ2VOdW1iZXIoKTtcclxuICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubnVtYmVyUmFuZ2UpIHtcclxuICAgICAgICAgICAgcmFuZ2VOdW1iZXIudG8gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubnVtYmVyUmFuZ2UudG87XHJcbiAgICAgICAgICAgIHJhbmdlTnVtYmVyLmZyb20gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubnVtYmVyUmFuZ2UuZnJvbTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG51bWJlci5udW1iZXJSYW5nZSA9IHJhbmdlTnVtYmVyO1xyXG4gICAgICAgICAgbnVtYmVyLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIG51bWJlci5pc1JlYWRvbmx5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVhZG9ubHk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxUZXh0Ym94Q29tcG9uZW50Pih0aGlzLml0ZW0sIFRleHRib3hDb21wb25lbnQsIHRoaXMuZ3JvdXAsIG51bWJlcik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAgICAgLy8jcmVnaW9uICBEYXRlVGltZVxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuRGF0ZTpcclxuICAgICAgICAgIGxldCBkYXRlID0gbmV3IERhdGVQaWNrZXJPcHRpb25zKCk7XHJcbiAgICAgICAgICBkYXRlLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgZGF0ZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgZGF0ZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIGRhdGUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgZGF0ZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIGRhdGUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgZGF0ZS5waWNrZXJUeXBlID0gUGlja2VyVHlwZS5DYWxlbmRhcjtcclxuICAgICAgICAgIGRhdGUuc2VsZWN0TW9kZSA9IFNlbGVjdE1vZGUuU2luZ2xlO1xyXG4gICAgICAgICAgZGF0ZS5zdGFydFZpZXcgPSBTdGFydFZpZXcuTW9udGg7XHJcbiAgICAgICAgICBkYXRlLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERhdGVJbnB1dENvbXBvbmVudD4odGhpcy5pdGVtLCBEYXRlSW5wdXRDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGRhdGUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuRGF0ZVRpbWU6XHJcbiAgICAgICAgICBsZXQgZGF0ZVRpbWUgPSBuZXcgRGF0ZVBpY2tlck9wdGlvbnMoKTtcclxuICAgICAgICAgIGRhdGVUaW1lLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgZGF0ZVRpbWUuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIGRhdGVUaW1lLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgZGF0ZVRpbWUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgZGF0ZVRpbWUudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBkYXRlVGltZS5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICBkYXRlVGltZS5waWNrZXJUeXBlID0gUGlja2VyVHlwZS5Cb3RoO1xyXG4gICAgICAgICAgZGF0ZVRpbWUuc2VsZWN0TW9kZSA9IFNlbGVjdE1vZGUuU2luZ2xlO1xyXG4gICAgICAgICAgZGF0ZVRpbWUuc3RhcnRWaWV3ID0gU3RhcnRWaWV3Lk1vbnRoO1xyXG4gICAgICAgICAgZGF0ZVRpbWUudmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RGF0ZUlucHV0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERhdGVJbnB1dENvbXBvbmVudCwgdGhpcy5ncm91cCwgZGF0ZVRpbWUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuVGltZTpcclxuICAgICAgICAgIGxldCB0aW1lID0gbmV3IERhdGVQaWNrZXJPcHRpb25zKCk7XHJcbiAgICAgICAgICB0aW1lLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgdGltZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgdGltZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIHRpbWUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgdGltZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIHRpbWUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgdGltZS5waWNrZXJUeXBlID0gUGlja2VyVHlwZS5UaW1lcjtcclxuICAgICAgICAgIHRpbWUuc2VsZWN0TW9kZSA9IFNlbGVjdE1vZGUuU2luZ2xlO1xyXG4gICAgICAgICAgdGltZS5zdGFydFZpZXcgPSBTdGFydFZpZXcuTW9udGg7XHJcbiAgICAgICAgICB0aW1lLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERhdGVJbnB1dENvbXBvbmVudD4odGhpcy5pdGVtLCBEYXRlSW5wdXRDb21wb25lbnQsIHRoaXMuZ3JvdXAsIHRpbWUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgICAgIC8vI3JlZ2lvbiBEcm9wZG93blxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuU2luZ2xlU2VsZWN0OlxyXG4gICAgICAgICAgbGV0IHNpbmdsZVNlbGVjdCA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgIHNpbmdsZVNlbGVjdC5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgIHNpbmdsZVNlbGVjdC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgc2luZ2xlU2VsZWN0LmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgc2luZ2xlU2VsZWN0LmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIHNpbmdsZVNlbGVjdC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIHNpbmdsZVNlbGVjdC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICBzaW5nbGVTZWxlY3QuZGF0YVNvdXJjZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5kYXRhU291cmNlO1xyXG4gICAgICAgICAgc2luZ2xlU2VsZWN0LnNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICBzaW5nbGVTZWxlY3Quc2hvd0NoZWNrYm94ID0gZmFsc2U7XHJcbiAgICAgICAgICBzaW5nbGVTZWxlY3QuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGFzU2VhcmNoO1xyXG4gICAgICAgICAgc2luZ2xlU2VsZWN0LnNlbGVjdGVkSXRlbXMgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RHJvcGRvd25MaXN0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERyb3Bkb3duTGlzdENvbXBvbmVudCwgdGhpcy5ncm91cCwgc2luZ2xlU2VsZWN0KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuTXVsaXBsZVNlbGVjdDpcclxuICAgICAgICAgIGxldCBtdWxpcGxlU2VsZWN0ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgbXVsaXBsZVNlbGVjdC5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgIG11bGlwbGVTZWxlY3QuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIG11bGlwbGVTZWxlY3QubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBtdWxpcGxlU2VsZWN0LmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIG11bGlwbGVTZWxlY3Qudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBtdWxpcGxlU2VsZWN0LmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIG11bGlwbGVTZWxlY3QuZGF0YVNvdXJjZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5kYXRhU291cmNlO1xyXG4gICAgICAgICAgbXVsaXBsZVNlbGVjdC5zaW5nbGVTZWxlY3Rpb24gPSBmYWxzZTtcclxuICAgICAgICAgIG11bGlwbGVTZWxlY3Quc2hvd0NoZWNrYm94ID0gZmFsc2U7XHJcbiAgICAgICAgICBtdWxpcGxlU2VsZWN0LmFsbG93U2VhcmNoRmlsdGVyID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhhc1NlYXJjaDtcclxuICAgICAgICAgIG11bGlwbGVTZWxlY3Quc2VsZWN0ZWRJdGVtcyA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEcm9wZG93bkxpc3RDb21wb25lbnQ+KHRoaXMuaXRlbSwgRHJvcGRvd25MaXN0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBtdWxpcGxlU2VsZWN0KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuR29hbDpcclxuICAgICAgICAgIGxldCBnb2FsID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgZ29hbC5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgIGdvYWwuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIGdvYWwubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBnb2FsLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIGdvYWwudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBnb2FsLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIGdvYWwuZGF0YVNvdXJjZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5kYXRhU291cmNlO1xyXG4gICAgICAgICAgZ29hbC5zaW5nbGVTZWxlY3Rpb24gPSAhdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzTXVsdGlwbGU7XHJcbiAgICAgICAgICBnb2FsLnNob3dDaGVja2JveCA9IGZhbHNlO1xyXG4gICAgICAgICAgZ29hbC5hbGxvd1NlYXJjaEZpbHRlciA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oYXNTZWFyY2g7XHJcbiAgICAgICAgICBnb2FsLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RHJvcGRvd25MaXN0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERyb3Bkb3duTGlzdENvbXBvbmVudCwgdGhpcy5ncm91cCwgZ29hbCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIERhdGFUeXBlLkNoYWxsZW5nZTpcclxuICAgICAgICAgIGxldCBjaGFsbGVuZ2UgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICBjaGFsbGVuZ2UubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICBjaGFsbGVuZ2UuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIGNoYWxsZW5nZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIGNoYWxsZW5nZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBjaGFsbGVuZ2Uudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBjaGFsbGVuZ2UubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgY2hhbGxlbmdlLmRhdGFTb3VyY2UgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZGF0YVNvdXJjZTtcclxuICAgICAgICAgIGNoYWxsZW5nZS5kYXRhU291cmNlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmRhdGFTb3VyY2U7XHJcbiAgICAgICAgICBjaGFsbGVuZ2Uuc2luZ2xlU2VsZWN0aW9uID0gIXRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc011bHRpcGxlO1xyXG4gICAgICAgICAgY2hhbGxlbmdlLnNob3dDaGVja2JveCA9IGZhbHNlO1xyXG4gICAgICAgICAgY2hhbGxlbmdlLmFsbG93U2VhcmNoRmlsdGVyID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhhc1NlYXJjaDtcclxuICAgICAgICAgIGNoYWxsZW5nZS5zZWxlY3RlZEl0ZW1zID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERyb3Bkb3duTGlzdENvbXBvbmVudD4odGhpcy5pdGVtLCBEcm9wZG93bkxpc3RDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGNoYWxsZW5nZSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIERhdGFUeXBlLklubm92YXRpb25MYWI6XHJcbiAgICAgICAgICBsZXQgaW5ub3ZhdGlvbkxhYiA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgIGlubm92YXRpb25MYWIubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICBpbm5vdmF0aW9uTGFiLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICBpbm5vdmF0aW9uTGFiLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgaW5ub3ZhdGlvbkxhYi5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBpbm5vdmF0aW9uTGFiLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgaW5ub3ZhdGlvbkxhYi5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICBpbm5vdmF0aW9uTGFiLmRhdGFTb3VyY2UgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZGF0YVNvdXJjZTtcclxuICAgICAgICAgIGlubm92YXRpb25MYWIuc2luZ2xlU2VsZWN0aW9uID0gIXRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc011bHRpcGxlO1xyXG4gICAgICAgICAgaW5ub3ZhdGlvbkxhYi5zaG93Q2hlY2tib3ggPSBmYWxzZTtcclxuICAgICAgICAgIGlubm92YXRpb25MYWIuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGFzU2VhcmNoO1xyXG4gICAgICAgICAgaW5ub3ZhdGlvbkxhYi5zZWxlY3RlZEl0ZW1zID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERyb3Bkb3duTGlzdENvbXBvbmVudD4odGhpcy5pdGVtLCBEcm9wZG93bkxpc3RDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGlubm92YXRpb25MYWIpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5Db3VudHJ5OlxyXG4gICAgICAgICAgbGV0IGNvdW50cnkgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICBjb3VudHJ5Lm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgY291bnRyeS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgY291bnRyeS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIGNvdW50cnkuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgY291bnRyeS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIGNvdW50cnkubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgY291bnRyeS5kYXRhU291cmNlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmRhdGFTb3VyY2U7XHJcbiAgICAgICAgICBjb3VudHJ5LnNpbmdsZVNlbGVjdGlvbiA9ICF0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNNdWx0aXBsZTtcclxuICAgICAgICAgIGNvdW50cnkuc2hvd0NoZWNrYm94ID0gZmFsc2U7XHJcbiAgICAgICAgICBjb3VudHJ5LmFsbG93U2VhcmNoRmlsdGVyID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhhc1NlYXJjaDtcclxuICAgICAgICAgIGNvdW50cnkuc2VsZWN0ZWRJdGVtcyA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEcm9wZG93bkxpc3RDb21wb25lbnQ+KHRoaXMuaXRlbSwgRHJvcGRvd25MaXN0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBjb3VudHJ5KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgICAgICAvLyNyZWdpb24gRmlsZVVwbG9hZFxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuRmlsZTpcclxuICAgICAgICAgIGxldCBmaWxlID0gbmV3IEZpbGVVcGxvYWRPcHRpb25zKCk7XHJcbiAgICAgICAgICBmaWxlLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgZmlsZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgZmlsZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIGZpbGUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgZmlsZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIGZpbGUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgZmlsZS5maWxlTWF4U2l6ZUluTUIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgZmlsZS52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxGaWxlVXBsb2FkQ29tcG9uZW50Pih0aGlzLml0ZW0sIEZpbGVVcGxvYWRDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGZpbGUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5NdWx0aUZpbGU6XHJcbiAgICAgICAgICBsZXQgbXVsdGlGaWxlID0gbmV3IEZpbGVVcGxvYWRPcHRpb25zKCk7XHJcbiAgICAgICAgICBmaWxlLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgZmlsZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgZmlsZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIGZpbGUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgZmlsZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIGZpbGUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgbXVsdGlGaWxlLm1heFNpemVGb3JBbGxGaWxlc0luTUIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgbXVsdGlGaWxlLm1heE5vT2ZGaWxlcyA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhGaWxlQ291bnQ7XHJcbiAgICAgICAgICBtdWx0aUZpbGUuaXNNdWx0aXBsZUZpbGUgPSB0cnVlO1xyXG4gICAgICAgICAgbXVsdGlGaWxlLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PEZpbGVVcGxvYWRDb21wb25lbnQ+KHRoaXMuaXRlbSwgRmlsZVVwbG9hZENvbXBvbmVudCwgdGhpcy5ncm91cCwgbXVsdGlGaWxlKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgICAgICAvLyNyZWdpb24gSW1hZ2VVcGxvYWRcclxuICAgICAgICBjYXNlIERhdGFUeXBlLkltYWdlOlxyXG4gICAgICAgICAgbGV0IGltYWdlID0gbmV3IEltYWdlVXBsb2FkT3B0aW9ucygpO1xyXG4gICAgICAgICAgaW1hZ2UubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICBpbWFnZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgaW1hZ2UubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBpbWFnZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBpbWFnZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIGltYWdlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CKVxyXG4gICAgICAgICAgICBpbWFnZS5maWxlTWF4U2l6ZUluTUIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgaW1hZ2UudmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8SW1hZ2VVcGxvYWRlckNvbXBvbmVudD4odGhpcy5pdGVtLCBJbWFnZVVwbG9hZGVyQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBpbWFnZSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIERhdGFUeXBlLkNvdmVyUGhvdG86XHJcbiAgICAgICAgICBsZXQgY292ZXJQaG90byA9IG5ldyBJbWFnZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgIGNvdmVyUGhvdG8ubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICBjb3ZlclBob3RvLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICBjb3ZlclBob3RvLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgY292ZXJQaG90by5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBjb3ZlclBob3RvLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgY292ZXJQaG90by5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heEZpbGVTaXplSW5NQilcclxuICAgICAgICAgICAgY292ZXJQaG90by5maWxlTWF4U2l6ZUluTUIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgY292ZXJQaG90by52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxJbWFnZVVwbG9hZGVyQ29tcG9uZW50Pih0aGlzLml0ZW0sIEltYWdlVXBsb2FkZXJDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGNvdmVyUGhvdG8pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgICAgIC8vI3JlZ2lvbiBNb2JpbGVcclxuICAgICAgICBjYXNlIERhdGFUeXBlLk1vYmlsZTpcclxuICAgICAgICAgIGxldCBtb2JpbGUgPSBuZXcgUGhvbmVPcHRpb25zKCk7XHJcbiAgICAgICAgICBtb2JpbGUubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICBtb2JpbGUuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIG1vYmlsZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIG1vYmlsZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBtb2JpbGUudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBtb2JpbGUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgbW9iaWxlLmFsbG93U2VhcmNoID0gdHJ1ZTtcclxuICAgICAgICAgIG1vYmlsZS5waG9uZVZhbGlkYXRpb24gPSB0cnVlO1xyXG4gICAgICAgICAgbW9iaWxlLnNlbGVjdEZpcnN0Q291bnRyeSA9IHRydWU7XHJcbiAgICAgICAgICBtb2JpbGUuZW5hYmxlUGxhY2Vob2xkZXIgPSB0cnVlO1xyXG4gICAgICAgICAgbW9iaWxlLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFBob25lQ29tcG9uZW50Pih0aGlzLml0ZW0sIFBob25lQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBtb2JpbGUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgICAgIC8vI3JlZ2lvbiBNdWx0aWxpbmVUZXh0XHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5NdWx0aWxpbmVUZXh0OlxyXG4gICAgICAgICAgbGV0IG11bHRpbGluZVRleHQgPSBuZXcgVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgICAgICBtdWx0aWxpbmVUZXh0Lm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgbXVsdGlsaW5lVGV4dC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgbXVsdGlsaW5lVGV4dC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIG11bHRpbGluZVRleHQuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgbXVsdGlsaW5lVGV4dC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIG11bHRpbGluZVRleHQubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGgpXHJcbiAgICAgICAgICAgIG11bHRpbGluZVRleHQubWF4TGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aDtcclxuICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoKVxyXG4gICAgICAgICAgICBtdWx0aWxpbmVUZXh0Lm1pbkxlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGg7XHJcbiAgICAgICAgICBtdWx0aWxpbmVUZXh0LnJvd3MgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMucm93cztcclxuICAgICAgICAgIG11bHRpbGluZVRleHQuZm9yY2VEaXJlY3Rpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZm9yY2VEaXJlY3Rpb247XHJcbiAgICAgICAgICBtdWx0aWxpbmVUZXh0LnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRleHRBcmVhQ29tcG9uZW50Pih0aGlzLml0ZW0sIFRleHRBcmVhQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBtdWx0aWxpbmVUZXh0KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgICAgICAvLyNyZWdpb24gSFRNTFxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuSFRNTDpcclxuICAgICAgICAgIGxldCBIVE1MID0gbmV3IEh0bWxFZGl0b3JPcHRpb25zKCk7XHJcbiAgICAgICAgICBIVE1MLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgSFRNTC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgSFRNTC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIEhUTUwuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgSFRNTC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIEhUTUwubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGgpXHJcbiAgICAgICAgICAgIEhUTUwubWF4TGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aDtcclxuICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoKVxyXG4gICAgICAgICAgICBIVE1MLm1pbkxlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGg7XHJcbiAgICAgICAgICBIVE1MLmhlaWdodCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5yb3dzO1xyXG4gICAgICAgICAgSFRNTC5mb3JjZURpcmVjdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5mb3JjZURpcmVjdGlvbjtcclxuICAgICAgICAgIEhUTUwudmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8SHRtbEVkaXRvckNvbXBvbmVudD4odGhpcy5pdGVtLCBIdG1sRWRpdG9yQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBIVE1MKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgICAgICAvLyNyZWdpb24gQm9vbGVhblxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuQm9vbGVhbjpcclxuICAgICAgICAgIGxldCBib29sZWFuID0gbmV3IFRvZ2dsZVNsaWRlT3B0aW9ucygpO1xyXG4gICAgICAgICAgYm9vbGVhbi5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgIGJvb2xlYW4uaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIGJvb2xlYW4ubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBib29sZWFuLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgYm9vbGVhbi52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICBib29sZWFuLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRvZ2dsZXNsaWRlQ29tcG9uZW50Pih0aGlzLml0ZW0sIFRvZ2dsZXNsaWRlQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBib29sZWFuKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgICAgICAvLyNyZWdpb24gTG9jYXRpb25cclxuICAgICAgICBjYXNlIERhdGFUeXBlLkxvY2F0aW9uOlxyXG4gICAgICAgICAgbGV0IGxvY2F0aW9uID0gbmV3IE1hcEF1dG9Db21wbGV0ZU9wdGlvbnMoKTtcclxuICAgICAgICAgIGxvY2F0aW9uLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgbG9jYXRpb24uaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIGxvY2F0aW9uLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgbG9jYXRpb24uaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgbG9jYXRpb24udmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBsb2NhdGlvbi52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICBsb2NhdGlvbi5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxNYXBBdXRvQ29tcGxldGVDb21wb25lbnQ+KHRoaXMuaXRlbSwgTWFwQXV0b0NvbXBsZXRlQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBsb2NhdGlvbik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAgICAgLy8jcmVnaW9uIENoZWNrQm94XHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5DaGVja0JveDpcclxuICAgICAgICAgIGxldCBjaGVja0JveCA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgICAgIGNoZWNrQm94Lm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgY2hlY2tCb3guaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIGNoZWNrQm94LmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgY2hlY2tCb3gudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBjaGVja0JveC5vdXRwdXRGdW5jdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5vdXRwdXRGdW5jdGlvbjtcclxuICAgICAgICAgIGNoZWNrQm94LmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIGNoZWNrQm94LnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PENoZWNrQm94Q29tcG9uZW50Pih0aGlzLml0ZW0sIENoZWNrQm94Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBjaGVja0JveCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9LCAwKTtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMuaXRlbU51bWJlcilcclxuICAgICAgaWYgKGNoYW5nZXMuaXRlbU51bWJlci5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgbGV0IG5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLnByZXZpb3VzVmFsdWUudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5ncm91cC5jb250cm9sc1tuYW1lXS52YWx1ZTtcclxuICAgICAgICB0aGlzLml0ZW0uY2xlYXIoKTtcclxuICAgICAgICB0aGlzLmdyb3VwLnJlbW92ZUNvbnRyb2wobmFtZSk7XHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbFR5cGUpIHtcclxuICAgICAgICAgIC8vI3JlZ2lvbiBUZXh0Qm94XHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLlRleHQ6XHJcbiAgICAgICAgICAgIGxldCB0ZXh0ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRleHQubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgdGV4dC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICB0ZXh0LmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICB0ZXh0LmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgdGV4dC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgdGV4dC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIHRleHQudHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aClcclxuICAgICAgICAgICAgICB0ZXh0Lm1heExlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGg7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoKVxyXG4gICAgICAgICAgICAgIHRleHQubWluTGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1pbkxlbmd0aDtcclxuICAgICAgICAgICAgdGV4dC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxUZXh0Ym94Q29tcG9uZW50Pih0aGlzLml0ZW0sIFRleHRib3hDb21wb25lbnQsIHRoaXMuZ3JvdXAsIHRleHQpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLk5hbWU6XHJcbiAgICAgICAgICAgIGxldCBuYW1lID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIG5hbWUubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgbmFtZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBuYW1lLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICBuYW1lLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgbmFtZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgbmFtZS5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4TGVuZ3RoKVxyXG4gICAgICAgICAgICAgIG5hbWUubWF4TGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aDtcclxuICAgICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGgpXHJcbiAgICAgICAgICAgICAgbmFtZS5taW5MZW5ndGggPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoO1xyXG4gICAgICAgICAgICBuYW1lLnR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgICAgICAgbmFtZS52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxUZXh0Ym94Q29tcG9uZW50Pih0aGlzLml0ZW0sIFRleHRib3hDb21wb25lbnQsIHRoaXMuZ3JvdXAsIG5hbWUpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLkVtYWlsOlxyXG4gICAgICAgICAgICBsZXQgZW1haWwgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgZW1haWwubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgZW1haWwuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgICAgZW1haWwubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIGVtYWlsLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgZW1haWwudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIGVtYWlsLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgZW1haWwudHlwZSA9IElucHV0VHlwZS5FbWFpbDtcclxuICAgICAgICAgICAgZW1haWwudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8VGV4dGJveENvbXBvbmVudD4odGhpcy5pdGVtLCBUZXh0Ym94Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBlbWFpbCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuTnVtYmVyOlxyXG4gICAgICAgICAgICBsZXQgbnVtYmVyID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIG51bWJlci5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBudW1iZXIuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgICAgbnVtYmVyLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICBudW1iZXIuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBudW1iZXIudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIG51bWJlci5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIG51bWJlci50eXBlID0gSW5wdXRUeXBlLk51bWJlcjtcclxuICAgICAgICAgICAgbGV0IHJhbmdlTnVtYmVyID0gbmV3IFJhbmdlTnVtYmVyKCk7XHJcbiAgICAgICAgICAgIHJhbmdlTnVtYmVyLnRvID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aDtcclxuICAgICAgICAgICAgcmFuZ2VOdW1iZXIuZnJvbSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGg7XHJcbiAgICAgICAgICAgIG51bWJlci5udW1iZXJSYW5nZSA9IHJhbmdlTnVtYmVyO1xyXG4gICAgICAgICAgICBudW1iZXIudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8VGV4dGJveENvbXBvbmVudD4odGhpcy5pdGVtLCBUZXh0Ym94Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBudW1iZXIpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgICAgICAgIC8vI3JlZ2lvbiBEYXRlVGltZVxyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5EYXRlOlxyXG4gICAgICAgICAgICBsZXQgRGF0ZSA9IG5ldyBEYXRlUGlja2VyT3B0aW9ucygpO1xyXG4gICAgICAgICAgICBEYXRlLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIERhdGUuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgICAgRGF0ZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgICAgRGF0ZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIERhdGUudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIERhdGUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgICBEYXRlLnBpY2tlclR5cGUgPSBQaWNrZXJUeXBlLkNhbGVuZGFyO1xyXG4gICAgICAgICAgICBEYXRlLnNlbGVjdE1vZGUgPSBTZWxlY3RNb2RlLlNpbmdsZTtcclxuICAgICAgICAgICAgRGF0ZS5zdGFydFZpZXcgPSBTdGFydFZpZXcuTW9udGg7XHJcbiAgICAgICAgICAgIERhdGUudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RGF0ZUlucHV0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERhdGVJbnB1dENvbXBvbmVudCwgdGhpcy5ncm91cCwgRGF0ZSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuRGF0ZVRpbWU6XHJcbiAgICAgICAgICAgIGxldCBkYXRlVGltZSA9IG5ldyBEYXRlUGlja2VyT3B0aW9ucygpO1xyXG4gICAgICAgICAgICBkYXRlVGltZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBkYXRlVGltZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBkYXRlVGltZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgICAgZGF0ZVRpbWUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBkYXRlVGltZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgZGF0ZVRpbWUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgICBkYXRlVGltZS5waWNrZXJUeXBlID0gUGlja2VyVHlwZS5Cb3RoO1xyXG4gICAgICAgICAgICBkYXRlVGltZS5zZWxlY3RNb2RlID0gU2VsZWN0TW9kZS5TaW5nbGU7XHJcbiAgICAgICAgICAgIGRhdGVUaW1lLnN0YXJ0VmlldyA9IFN0YXJ0Vmlldy5Nb250aDtcclxuICAgICAgICAgICAgZGF0ZVRpbWUudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RGF0ZUlucHV0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERhdGVJbnB1dENvbXBvbmVudCwgdGhpcy5ncm91cCwgZGF0ZVRpbWUpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLlRpbWU6XHJcbiAgICAgICAgICAgIGxldCB0aW1lID0gbmV3IERhdGVQaWNrZXJPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRpbWUubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgdGltZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICB0aW1lLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICB0aW1lLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgdGltZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgdGltZS5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIHRpbWUucGlja2VyVHlwZSA9IFBpY2tlclR5cGUuVGltZXI7XHJcbiAgICAgICAgICAgIHRpbWUuc2VsZWN0TW9kZSA9IFNlbGVjdE1vZGUuU2luZ2xlO1xyXG4gICAgICAgICAgICB0aW1lLnN0YXJ0VmlldyA9IFN0YXJ0Vmlldy5Nb250aDtcclxuICAgICAgICAgICAgdGltZS52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEYXRlSW5wdXRDb21wb25lbnQ+KHRoaXMuaXRlbSwgRGF0ZUlucHV0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCB0aW1lKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAgICAgICAvLyNyZWdpb24gRHJvcGRvd25cclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuU2luZ2xlU2VsZWN0OlxyXG4gICAgICAgICAgICBsZXQgc2luZ2xlU2VsZWN0ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgICBzaW5nbGVTZWxlY3QubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgc2luZ2xlU2VsZWN0LmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIHNpbmdsZVNlbGVjdC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgICAgc2luZ2xlU2VsZWN0LmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgc2luZ2xlU2VsZWN0LnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBzaW5nbGVTZWxlY3QubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgICBzaW5nbGVTZWxlY3QuZGF0YVNvdXJjZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5kYXRhU291cmNlO1xyXG4gICAgICAgICAgICBzaW5nbGVTZWxlY3Quc2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgICAgc2luZ2xlU2VsZWN0LnNob3dDaGVja2JveCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBzaW5nbGVTZWxlY3QuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGFzU2VhcmNoO1xyXG4gICAgICAgICAgICBzaW5nbGVTZWxlY3Quc2VsZWN0ZWRJdGVtcyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEcm9wZG93bkxpc3RDb21wb25lbnQ+KHRoaXMuaXRlbSwgRHJvcGRvd25MaXN0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBzaW5nbGVTZWxlY3QpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuTXVsaXBsZVNlbGVjdDpcclxuICAgICAgICAgICAgbGV0IG11bGlwbGVTZWxlY3QgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICAgIG11bGlwbGVTZWxlY3QubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgbXVsaXBsZVNlbGVjdC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBtdWxpcGxlU2VsZWN0LmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICBtdWxpcGxlU2VsZWN0LmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgbXVsaXBsZVNlbGVjdC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgbXVsaXBsZVNlbGVjdC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIG11bGlwbGVTZWxlY3QuZGF0YVNvdXJjZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5kYXRhU291cmNlO1xyXG4gICAgICAgICAgICBtdWxpcGxlU2VsZWN0LnNpbmdsZVNlbGVjdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBtdWxpcGxlU2VsZWN0LnNob3dDaGVja2JveCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBtdWxpcGxlU2VsZWN0LmFsbG93U2VhcmNoRmlsdGVyID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhhc1NlYXJjaDtcclxuICAgICAgICAgICAgbXVsaXBsZVNlbGVjdC5zZWxlY3RlZEl0ZW1zID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERyb3Bkb3duTGlzdENvbXBvbmVudD4odGhpcy5pdGVtLCBEcm9wZG93bkxpc3RDb21wb25lbnQsIHRoaXMuZ3JvdXAsIG11bGlwbGVTZWxlY3QpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuR29hbDpcclxuICAgICAgICAgICAgbGV0IEdvYWwgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICAgIEdvYWwubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgR29hbC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBHb2FsLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICBHb2FsLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgR29hbC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgR29hbC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIEdvYWwuZGF0YVNvdXJjZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5kYXRhU291cmNlO1xyXG4gICAgICAgICAgICBHb2FsLnNpbmdsZVNlbGVjdGlvbiA9ICF0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNNdWx0aXBsZTtcclxuICAgICAgICAgICAgR29hbC5zaG93Q2hlY2tib3ggPSBmYWxzZTtcclxuICAgICAgICAgICAgR29hbC5hbGxvd1NlYXJjaEZpbHRlciA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oYXNTZWFyY2g7XHJcbiAgICAgICAgICAgIEdvYWwuc2VsZWN0ZWRJdGVtcyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEcm9wZG93bkxpc3RDb21wb25lbnQ+KHRoaXMuaXRlbSwgRHJvcGRvd25MaXN0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBHb2FsKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLkNoYWxsZW5nZTpcclxuICAgICAgICAgICAgbGV0IGNoYWxsZW5nZSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgICAgY2hhbGxlbmdlLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIGNoYWxsZW5nZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBjaGFsbGVuZ2UubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIGNoYWxsZW5nZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIGNoYWxsZW5nZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgY2hhbGxlbmdlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgY2hhbGxlbmdlLmRhdGFTb3VyY2UgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZGF0YVNvdXJjZTtcclxuICAgICAgICAgICAgY2hhbGxlbmdlLmRhdGFTb3VyY2UgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZGF0YVNvdXJjZTtcclxuICAgICAgICAgICAgY2hhbGxlbmdlLnNpbmdsZVNlbGVjdGlvbiA9ICF0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNNdWx0aXBsZTtcclxuICAgICAgICAgICAgY2hhbGxlbmdlLnNob3dDaGVja2JveCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjaGFsbGVuZ2UuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGFzU2VhcmNoO1xyXG4gICAgICAgICAgICBjaGFsbGVuZ2Uuc2VsZWN0ZWRJdGVtcyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEcm9wZG93bkxpc3RDb21wb25lbnQ+KHRoaXMuaXRlbSwgRHJvcGRvd25MaXN0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBjaGFsbGVuZ2UpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuSW5ub3ZhdGlvbkxhYjpcclxuICAgICAgICAgICAgbGV0IGlubm92YXRpb25MYWIgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICAgIGlubm92YXRpb25MYWIubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgaW5ub3ZhdGlvbkxhYi5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBpbm5vdmF0aW9uTGFiLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICBpbm5vdmF0aW9uTGFiLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgaW5ub3ZhdGlvbkxhYi52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgaW5ub3ZhdGlvbkxhYi5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIGlubm92YXRpb25MYWIuZGF0YVNvdXJjZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5kYXRhU291cmNlO1xyXG4gICAgICAgICAgICBpbm5vdmF0aW9uTGFiLnNpbmdsZVNlbGVjdGlvbiA9ICF0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNNdWx0aXBsZTtcclxuICAgICAgICAgICAgaW5ub3ZhdGlvbkxhYi5zaG93Q2hlY2tib3ggPSBmYWxzZTtcclxuICAgICAgICAgICAgaW5ub3ZhdGlvbkxhYi5hbGxvd1NlYXJjaEZpbHRlciA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oYXNTZWFyY2g7XHJcbiAgICAgICAgICAgIGlubm92YXRpb25MYWIuc2VsZWN0ZWRJdGVtcyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEcm9wZG93bkxpc3RDb21wb25lbnQ+KHRoaXMuaXRlbSwgRHJvcGRvd25MaXN0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBpbm5vdmF0aW9uTGFiKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLkNvdW50cnk6XHJcbiAgICAgICAgICAgIGxldCBjb3VudHJ5ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgICBjb3VudHJ5Lm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIGNvdW50cnkuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgICAgY291bnRyeS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgICAgY291bnRyeS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIGNvdW50cnkudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIGNvdW50cnkubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgICBjb3VudHJ5LmRhdGFTb3VyY2UgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZGF0YVNvdXJjZTtcclxuICAgICAgICAgICAgY291bnRyeS5zaW5nbGVTZWxlY3Rpb24gPSAhdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzTXVsdGlwbGU7XHJcbiAgICAgICAgICAgIGNvdW50cnkuc2hvd0NoZWNrYm94ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGNvdW50cnkuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGFzU2VhcmNoO1xyXG4gICAgICAgICAgICBjb3VudHJ5LnNlbGVjdGVkSXRlbXMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RHJvcGRvd25MaXN0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERyb3Bkb3duTGlzdENvbXBvbmVudCwgdGhpcy5ncm91cCwgY291bnRyeSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgICAgICAgLy8jcmVnaW9uIEZpbGVVcGxvYWRcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuRmlsZTpcclxuICAgICAgICAgICAgbGV0IGZpbGUgPSBuZXcgRmlsZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgZmlsZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBmaWxlLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIGZpbGUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIGZpbGUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBmaWxlLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBmaWxlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgZmlsZS5maWxlTWF4U2l6ZUluTUIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgICBmaWxlLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PEZpbGVVcGxvYWRDb21wb25lbnQ+KHRoaXMuaXRlbSwgRmlsZVVwbG9hZENvbXBvbmVudCwgdGhpcy5ncm91cCwgZmlsZSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5NdWx0aUZpbGU6XHJcbiAgICAgICAgICAgIGxldCBtdWx0aUZpbGUgPSBuZXcgRmlsZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgZmlsZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBmaWxlLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIGZpbGUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIGZpbGUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBmaWxlLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBmaWxlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgbXVsdGlGaWxlLm1heFNpemVGb3JBbGxGaWxlc0luTUIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgICBtdWx0aUZpbGUubWF4Tm9PZkZpbGVzID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heEZpbGVDb3VudDtcclxuICAgICAgICAgICAgbXVsdGlGaWxlLmlzTXVsdGlwbGVGaWxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgbXVsdGlGaWxlLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PEZpbGVVcGxvYWRDb21wb25lbnQ+KHRoaXMuaXRlbSwgRmlsZVVwbG9hZENvbXBvbmVudCwgdGhpcy5ncm91cCwgbXVsdGlGaWxlKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAgICAgICAvLyNyZWdpb24gSW1hZ2VVcGxvYWRcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuSW1hZ2U6XHJcbiAgICAgICAgICAgIGxldCBpbWFnZSA9IG5ldyBJbWFnZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgaW1hZ2UubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgaW1hZ2UuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgICAgaW1hZ2UubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIGltYWdlLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgaW1hZ2Uudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIGltYWdlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhGaWxlU2l6ZUluTUIpXHJcbiAgICAgICAgICAgICAgaW1hZ2UuZmlsZU1heFNpemVJbk1CID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heEZpbGVTaXplSW5NQjtcclxuICAgICAgICAgICAgaW1hZ2UudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8SW1hZ2VVcGxvYWRlckNvbXBvbmVudD4odGhpcy5pdGVtLCBJbWFnZVVwbG9hZGVyQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBpbWFnZSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5Db3ZlclBob3RvOlxyXG4gICAgICAgICAgICBsZXQgY292ZXJQaG90byA9IG5ldyBJbWFnZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgY292ZXJQaG90by5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBjb3ZlclBob3RvLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIGNvdmVyUGhvdG8ubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIGNvdmVyUGhvdG8uaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBjb3ZlclBob3RvLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBjb3ZlclBob3RvLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhGaWxlU2l6ZUluTUIpXHJcbiAgICAgICAgICAgICAgY292ZXJQaG90by5maWxlTWF4U2l6ZUluTUIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgICBjb3ZlclBob3RvLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PEltYWdlVXBsb2FkZXJDb21wb25lbnQ+KHRoaXMuaXRlbSwgSW1hZ2VVcGxvYWRlckNvbXBvbmVudCwgdGhpcy5ncm91cCwgY292ZXJQaG90byk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgLy8jZW5kcmVnaW9uXHJcbiAgICAgICAgICAvLyNyZWdpb24gTW9iaWxlXHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLk1vYmlsZTpcclxuICAgICAgICAgICAgbGV0IG1vYmlsZSA9IG5ldyBQaG9uZU9wdGlvbnMoKTtcclxuICAgICAgICAgICAgbW9iaWxlLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIG1vYmlsZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBtb2JpbGUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIG1vYmlsZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIG1vYmlsZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgbW9iaWxlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgbW9iaWxlLmFsbG93U2VhcmNoID0gdHJ1ZTtcclxuICAgICAgICAgICAgbW9iaWxlLnBob25lVmFsaWRhdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICAgIG1vYmlsZS5zZWxlY3RGaXJzdENvdW50cnkgPSB0cnVlO1xyXG4gICAgICAgICAgICBtb2JpbGUuZW5hYmxlUGxhY2Vob2xkZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICBtb2JpbGUudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8UGhvbmVDb21wb25lbnQ+KHRoaXMuaXRlbSwgUGhvbmVDb21wb25lbnQsIHRoaXMuZ3JvdXAsIG1vYmlsZSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgICAgICAgLy8jcmVnaW9uIE11bHRpbGluZVRleHRcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuTXVsdGlsaW5lVGV4dDpcclxuICAgICAgICAgICAgbGV0IG11bHRpbGluZVRleHQgPSBuZXcgVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIG11bHRpbGluZVRleHQubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgbXVsdGlsaW5lVGV4dC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBtdWx0aWxpbmVUZXh0LmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICBtdWx0aWxpbmVUZXh0LmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgbXVsdGlsaW5lVGV4dC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgbXVsdGlsaW5lVGV4dC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4TGVuZ3RoKVxyXG4gICAgICAgICAgICAgIG11bHRpbGluZVRleHQubWF4TGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aDtcclxuICAgICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGgpXHJcbiAgICAgICAgICAgICAgbXVsdGlsaW5lVGV4dC5taW5MZW5ndGggPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoO1xyXG4gICAgICAgICAgICBtdWx0aWxpbmVUZXh0LnJvd3MgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMucm93cztcclxuICAgICAgICAgICAgbXVsdGlsaW5lVGV4dC5mb3JjZURpcmVjdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5mb3JjZURpcmVjdGlvbjtcclxuICAgICAgICAgICAgbXVsdGlsaW5lVGV4dC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxUZXh0QXJlYUNvbXBvbmVudD4odGhpcy5pdGVtLCBUZXh0QXJlYUNvbXBvbmVudCwgdGhpcy5ncm91cCwgbXVsdGlsaW5lVGV4dCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgICAgICAgLy8jcmVnaW9uIEhUTUxcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuSFRNTDpcclxuICAgICAgICAgICAgbGV0IEhUTUwgPSBuZXcgSHRtbEVkaXRvck9wdGlvbnMoKTtcclxuICAgICAgICAgICAgSFRNTC5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBIVE1MLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIEhUTUwubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIEhUTUwuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBIVE1MLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBIVE1MLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGgpXHJcbiAgICAgICAgICAgICAgSFRNTC5tYXhMZW5ndGggPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4TGVuZ3RoO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1pbkxlbmd0aClcclxuICAgICAgICAgICAgICBIVE1MLm1pbkxlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGg7XHJcbiAgICAgICAgICAgIEhUTUwuaGVpZ2h0ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnJvd3M7XHJcbiAgICAgICAgICAgIEhUTUwuZm9yY2VEaXJlY3Rpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZm9yY2VEaXJlY3Rpb247XHJcbiAgICAgICAgICAgIEhUTUwudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8SHRtbEVkaXRvckNvbXBvbmVudD4odGhpcy5pdGVtLCBIdG1sRWRpdG9yQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBIVE1MKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAgICAgICAvLyNyZWdpb24gQm9vbGVhblxyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5Cb29sZWFuOlxyXG4gICAgICAgICAgICBsZXQgYm9vbGVhbiA9IG5ldyBUb2dnbGVTbGlkZU9wdGlvbnMoKTtcclxuICAgICAgICAgICAgYm9vbGVhbi5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBib29sZWFuLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIGJvb2xlYW4ubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIGJvb2xlYW4udmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIGJvb2xlYW4ubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgICBib29sZWFuLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRvZ2dsZXNsaWRlQ29tcG9uZW50Pih0aGlzLml0ZW0sIFRvZ2dsZXNsaWRlQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBib29sZWFuKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAgICAgICAvLyNyZWdpb24gTG9jYXRpb25cclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuTG9jYXRpb246XHJcbiAgICAgICAgICAgIGxldCBMb2NhdGlvbiA9IG5ldyBNYXBBdXRvQ29tcGxldGVPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIExvY2F0aW9uLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIExvY2F0aW9uLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIExvY2F0aW9uLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICBMb2NhdGlvbi5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIExvY2F0aW9uLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBMb2NhdGlvbi5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIExvY2F0aW9uLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PE1hcEF1dG9Db21wbGV0ZUNvbXBvbmVudD4odGhpcy5pdGVtLCBNYXBBdXRvQ29tcGxldGVDb21wb25lbnQsIHRoaXMuZ3JvdXAsIExvY2F0aW9uKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAgICAgICAvLyNyZWdpb24gQ2hlY2tCb3hcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuQ2hlY2tCb3g6XHJcbiAgICAgICAgICAgIGxldCBjaGVja0JveCA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgY2hlY2tCb3gubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgY2hlY2tCb3guaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgICAgY2hlY2tCb3gubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIGNoZWNrQm94LnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBjaGVja0JveC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIGNoZWNrQm94Lm91dHB1dEZ1bmN0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm91dHB1dEZ1bmN0aW9uO1xyXG4gICAgICAgICAgICBjaGVja0JveC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxDaGVja0JveENvbXBvbmVudD4odGhpcy5pdGVtLCBDaGVja0JveENvbXBvbmVudCwgdGhpcy5ncm91cCwgY2hlY2tCb3gpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8bmctY29udGFpbmVyICNJdGVtPjwvbmctY29udGFpbmVyPlxyXG4iXX0=
|
|
798
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXItZmllbGQtYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvY29udHJvbHMvUmVwZWF0ZXIvcmVwZWF0ZXItZmllbGQtYnVpbGRlci9yZXBlYXRlci1maWVsZC1idWlsZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9SZXBlYXRlci9yZXBlYXRlci1maWVsZC1idWlsZGVyL3JlcGVhdGVyLWZpZWxkLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsS0FBSyxFQUF5QixTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7QUFPdEUsTUFBTSxPQUFPLDZCQUE2QjtJQVd4QyxZQUFvQixzQkFBOEMsRUFBUyxlQUFtQztRQUExRiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQVMsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBSnJHLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDaEMsY0FBUyxHQUFRLElBQUksQ0FBQztJQUc0RixDQUFDO0lBRW5ILFFBQVE7SUFFUixDQUFDO0lBQ0QsZUFBZTtRQUNiLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDcEQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNsQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7b0JBQ2hDLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRTt3QkFDOUcsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDcEMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUM7cUJBQ3RCO2lCQUNGO2FBQ0Y7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xCLFFBQVEsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUU7Z0JBQ3ZDLGlCQUFpQjtnQkFDakIsS0FBSyxRQUFRLENBQUMsSUFBSTtvQkFDaEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztvQkFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQzVILElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO29CQUM3RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztvQkFDM0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7b0JBQy9ELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO29CQUMzRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3JJLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztvQkFDM0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDO29CQUMvRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVM7d0JBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO29CQUMvRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVM7d0JBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO29CQUMvRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7b0JBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO29CQUMvRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQW1CLElBQUksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDcEgsTUFBTTtnQkFFUixLQUFLLFFBQVEsQ0FBQyxJQUFJO29CQUNoQixJQUFJLElBQUksR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO29CQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDNUgsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7b0JBQzdELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO29CQUMzRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztvQkFDL0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7b0JBQzNELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDL0UsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNySSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVM7d0JBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO29CQUMvRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVM7d0JBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO29CQUMvRCxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7b0JBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztvQkFDeEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUFtQixJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ3BILE1BQU07Z0JBRVIsS0FBSyxRQUFRLENBQUMsS0FBSztvQkFDakIsSUFBSSxLQUFLLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztvQkFDakMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQzdILEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO29CQUM5RCxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztvQkFDNUQsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7b0JBQ2hFLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO29CQUM1RCxLQUFLLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUM7b0JBQ2hGLEtBQUssQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDdEksS0FBSyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDO29CQUM3QixLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBbUIsSUFBSSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUNySCxNQUFNO2dCQUVSLEtBQUssUUFBUSxDQUFDLE1BQU07b0JBQ2xCLElBQUksTUFBTSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7b0JBQ2xDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUM5SCxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztvQkFDL0QsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7b0JBQzdELE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO29CQUNqRSxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztvQkFDN0QsTUFBTSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDO29CQUNqRixNQUFNLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3ZJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztvQkFDL0IsSUFBSSxXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztvQkFDcEMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUU7d0JBQ2pELFdBQVcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQzt3QkFDbEUsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO3FCQUN2RTtvQkFDRCxNQUFNLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztvQkFDakMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUMxQixNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztvQkFDakUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUFtQixJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQ3RILE1BQU07Z0JBQ1IsWUFBWTtnQkFFWixtQkFBbUI7Z0JBQ25CLEtBQUssUUFBUSxDQUFDLElBQUk7b0JBQ2hCLElBQUksSUFBSSxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztvQkFDbkMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQzVILElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO29CQUM3RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztvQkFDM0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7b0JBQy9ELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO29CQUMzRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3JJLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztvQkFDdEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO29CQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7b0JBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztvQkFDeEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUFxQixJQUFJLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ3hILE1BQU07Z0JBRVIsS0FBSyxRQUFRLENBQUMsUUFBUTtvQkFDcEIsSUFBSSxRQUFRLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO29CQUN2QyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDaEksUUFBUSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7b0JBQ2pFLFFBQVEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO29CQUMvRCxRQUFRLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztvQkFDbkUsUUFBUSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7b0JBQy9ELFFBQVEsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDekksUUFBUSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO29CQUN0QyxRQUFRLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7b0JBQ3hDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQztvQkFDckMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUM1QixJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQXFCLElBQUksQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDNUgsTUFBTTtnQkFFUixLQUFLLFFBQVEsQ0FBQyxJQUFJO29CQUNoQixJQUFJLElBQUksR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7b0JBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUM1SCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztvQkFDN0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7b0JBQzNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO29CQUMvRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztvQkFDM0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNySSxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7b0JBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztvQkFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDO29CQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7b0JBQ3hCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBcUIsSUFBSSxDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUN4SCxNQUFNO2dCQUNSLFlBQVk7Z0JBRVosa0JBQWtCO2dCQUNsQixLQUFLLFFBQVEsQ0FBQyxZQUFZO29CQUN4QixJQUFJLFlBQVksR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO29CQUN6QyxZQUFZLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDcEksWUFBWSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7b0JBQ3JFLFlBQVksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO29CQUNuRSxZQUFZLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztvQkFDdkUsWUFBWSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7b0JBQ25FLFlBQVksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDN0ksWUFBWSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7b0JBQ3ZFLFlBQVksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO29CQUNwQyxZQUFZLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztvQkFDbEMsWUFBWSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztvQkFDN0UsWUFBWSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUN4QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQXdCLElBQUksQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztvQkFDdEksTUFBTTtnQkFDUixLQUFLLFFBQVEsQ0FBQyxhQUFhO29CQUN6QixJQUFJLGFBQWEsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO29CQUMxQyxhQUFhLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDckksYUFBYSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7b0JBQ3RFLGFBQWEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO29CQUNwRSxhQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztvQkFDeEUsYUFBYSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7b0JBQ3BFLGFBQWEsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDOUksYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7b0JBQ3hFLGFBQWEsQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO29CQUN0QyxhQUFhLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztvQkFDbkMsYUFBYSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztvQkFDOUUsYUFBYSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUN6QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQXdCLElBQUksQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztvQkFDdkksTUFBTTtnQkFDUixLQUFLLFFBQVEsQ0FBQyxJQUFJO29CQUNoQixJQUFJLElBQUksR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO29CQUNqQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDNUgsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7b0JBQzdELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO29CQUMzRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztvQkFDL0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7b0JBQzNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDckksSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7b0JBQy9ELElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7b0JBQ3JFLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO29CQUMxQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO29CQUNyRSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBd0IsSUFBSSxDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUM5SCxNQUFNO2dCQUNSLEtBQUssUUFBUSxDQUFDLFNBQVM7b0JBQ3JCLElBQUksU0FBUyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7b0JBQ3RDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNqSSxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztvQkFDbEUsU0FBUyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7b0JBQ2hFLFNBQVMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO29CQUNwRSxTQUFTLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztvQkFDaEUsU0FBUyxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUMxSSxTQUFTLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztvQkFDcEUsU0FBUyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7b0JBQ3BFLFNBQVMsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7b0JBQzFFLFNBQVMsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO29CQUMvQixTQUFTLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO29CQUMxRSxTQUFTLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBd0IsSUFBSSxDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO29CQUNuSSxNQUFNO2dCQUNSLEtBQUssUUFBUSxDQUFDLGFBQWE7b0JBQ3pCLElBQUksYUFBYSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7b0JBQzFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNySSxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztvQkFDdEUsYUFBYSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7b0JBQ3BFLGFBQWEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO29CQUN4RSxhQUFhLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztvQkFDcEUsYUFBYSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUM5SSxhQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztvQkFDeEUsYUFBYSxDQUFDLGVBQWUsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztvQkFDOUUsYUFBYSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7b0JBQ25DLGFBQWEsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7b0JBQzlFLGFBQWEsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztvQkFDekMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUF3QixJQUFJLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7b0JBQ3ZJLE1BQU07Z0JBQ1IsS0FBSyxRQUFRLENBQUMsT0FBTztvQkFDbkIsSUFBSSxPQUFPLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztvQkFDcEMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQy9ILE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO29CQUNoRSxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztvQkFDOUQsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7b0JBQ2xFLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO29CQUM5RCxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3hJLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO29CQUNsRSxPQUFPLENBQUMsZUFBZSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO29CQUN4RSxPQUFPLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztvQkFDN0IsT0FBTyxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztvQkFDeEUsT0FBTyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUNuQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQXdCLElBQUksQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztvQkFDakksTUFBTTtnQkFDUixZQUFZO2dCQUVaLG9CQUFvQjtnQkFDcEIsS0FBSyxRQUFRLENBQUMsSUFBSTtvQkFDaEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO29CQUNuQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDNUgsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7b0JBQzdELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO29CQUMzRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztvQkFDL0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7b0JBQzNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDckksSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUM7b0JBQ3pFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztvQkFDeEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUFzQixJQUFJLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQzFILE1BQU07Z0JBQ1IsS0FBSyxRQUFRLENBQUMsU0FBUztvQkFDckIsSUFBSSxTQUFTLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO29CQUN4QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDNUgsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7b0JBQzdELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO29CQUMzRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztvQkFDL0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7b0JBQzNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDckksU0FBUyxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQztvQkFDckYsU0FBUyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUM7b0JBQ3hFLFNBQVMsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO29CQUNoQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7b0JBQzdCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBc0IsSUFBSSxDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO29CQUMvSCxNQUFNO2dCQUNSLFlBQVk7Z0JBRVoscUJBQXFCO2dCQUNyQixLQUFLLFFBQVEsQ0FBQyxLQUFLO29CQUNqQixJQUFJLEtBQUssR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7b0JBQ3JDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUM3SCxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztvQkFDOUQsS0FBSyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7b0JBQzVELEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO29CQUNoRSxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztvQkFDNUQsS0FBSyxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUN0SSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGVBQWU7d0JBQ25ELEtBQUssQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO29CQUM1RSxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBeUIsSUFBSSxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUNqSSxNQUFNO2dCQUNSLEtBQUssUUFBUSxDQUFDLFVBQVU7b0JBQ3RCLElBQUksVUFBVSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztvQkFDMUMsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ2xJLFVBQVUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO29CQUNuRSxVQUFVLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztvQkFDakUsVUFBVSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7b0JBQ3JFLFVBQVUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO29CQUNqRSxVQUFVLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQzNJLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZUFBZTt3QkFDbkQsVUFBVSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUM7b0JBQ2pGLFVBQVUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztvQkFDOUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUF5QixJQUFJLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7b0JBQ3RJLE1BQU07Z0JBQ1IsWUFBWTtnQkFFWixnQkFBZ0I7Z0JBQ2hCLEtBQUssUUFBUSxDQUFDLE1BQU07b0JBQ2xCLElBQUksTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7b0JBQ2hDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUM5SCxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztvQkFDL0QsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7b0JBQzdELE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO29CQUNqRSxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztvQkFDN0QsTUFBTSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUN2SSxNQUFNLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztvQkFDMUIsTUFBTSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7b0JBQzlCLE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7b0JBQ2pDLE1BQU0sQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7b0JBQ2hDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztvQkFDMUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUFpQixJQUFJLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUNsSCxNQUFNO2dCQUNSLFlBQVk7Z0JBRVosdUJBQXVCO2dCQUN2QixLQUFLLFFBQVEsQ0FBQyxhQUFhO29CQUN6QixJQUFJLGFBQWEsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO29CQUMxQyxhQUFhLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDckksYUFBYSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7b0JBQ3RFLGFBQWEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO29CQUNwRSxhQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztvQkFDeEUsYUFBYSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7b0JBQ3BFLGFBQWEsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDOUksSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTO3dCQUM3QyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztvQkFDeEUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTO3dCQUM3QyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztvQkFDeEUsYUFBYSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7b0JBQzVELGFBQWEsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDO29CQUNoRixhQUFhLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7b0JBQ2pDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBb0IsSUFBSSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO29CQUMvSCxNQUFNO2dCQUNSLFlBQVk7Z0JBRVosY0FBYztnQkFDZCxLQUFLLFFBQVEsQ0FBQyxJQUFJO29CQUNoQixJQUFJLElBQUksR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7b0JBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUM1SCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztvQkFDN0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7b0JBQzNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO29CQUMvRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztvQkFDM0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNySSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVM7d0JBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO29CQUMvRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVM7d0JBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO29CQUMvRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztvQkFDckQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUM7b0JBQ3ZFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztvQkFDeEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUFzQixJQUFJLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQzFILE1BQU07Z0JBQ1IsWUFBWTtnQkFFWixpQkFBaUI7Z0JBQ2pCLEtBQUssUUFBUSxDQUFDLE9BQU87b0JBQ25CLElBQUksT0FBTyxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztvQkFDdkMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQy9ILE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO29CQUNoRSxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztvQkFDOUQsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7b0JBQzlELE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztvQkFDM0IsT0FBTyxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUN4SSxJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQXVCLElBQUksQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztvQkFDL0gsTUFBTTtnQkFDUixZQUFZO2dCQUVaLGtCQUFrQjtnQkFDbEIsS0FBSyxRQUFRLENBQUMsUUFBUTtvQkFDcEIsSUFBSSxRQUFRLEdBQUcsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO29CQUM1QyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDaEksUUFBUSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7b0JBQ2pFLFFBQVEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO29CQUMvRCxRQUFRLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztvQkFDbkUsUUFBUSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7b0JBQy9ELFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztvQkFDNUIsUUFBUSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUN6SSxJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQTJCLElBQUksQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDeEksTUFBTTtnQkFDUixZQUFZO2dCQUVaLGtCQUFrQjtnQkFDbEIsS0FBSyxRQUFRLENBQUMsUUFBUTtvQkFDcEIsSUFBSSxRQUFRLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztvQkFDckMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ2hJLFFBQVEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO29CQUNqRSxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztvQkFDL0QsUUFBUSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7b0JBQy9ELFFBQVEsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDO29CQUMzRSxRQUFRLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3pJLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztvQkFDNUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUFvQixJQUFJLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7b0JBQzFILE1BQU07Z0JBQ1IsWUFBWTtnQkFFWjtvQkFDRSxNQUFNO2FBQ1Q7UUFDSCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFVBQVU7WUFDcEIsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRTtnQkFDcEMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDNUksSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0IsUUFBUSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRTtvQkFDdEMsaUJBQWlCO29CQUNqQixLQUFLLFFBQVEsQ0FBQyxJQUFJO3dCQUNoQixJQUFJLElBQUksR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO3dCQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7d0JBQ2pJLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO3dCQUM3RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQzt3QkFDM0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7d0JBQy9ELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO3dCQUMzRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ3JJLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQzt3QkFDM0IsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTOzRCQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQzt3QkFDL0QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTOzRCQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQzt3QkFDL0QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7d0JBQ25CLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBbUIsSUFBSSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO3dCQUNwSCxNQUFNO29CQUVSLEtBQUssUUFBUSxDQUFDLElBQUk7d0JBQ2hCLElBQUksSUFBSSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7d0JBQ2hDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDakksSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7d0JBQzdELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO3dCQUMzRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQzt3QkFDL0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7d0JBQzNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDckksSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTOzRCQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQzt3QkFDL0QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTOzRCQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQzt3QkFDL0QsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO3dCQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQzt3QkFDbkIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUFtQixJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7d0JBQ3BILE1BQU07b0JBRVIsS0FBSyxRQUFRLENBQUMsS0FBSzt3QkFDakIsSUFBSSxLQUFLLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQzt3QkFDakMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUNsSSxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQzt3QkFDOUQsS0FBSyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7d0JBQzVELEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO3dCQUNoRSxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQzt3QkFDNUQsS0FBSyxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUN0SSxLQUFLLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7d0JBQzdCLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO3dCQUNwQixJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQW1CLElBQUksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQzt3QkFDckgsTUFBTTtvQkFFUixLQUFLLFFBQVEsQ0FBQyxNQUFNO3dCQUNsQixJQUFJLE1BQU0sR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO3dCQUNsQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7d0JBQ25JLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO3dCQUMvRCxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQzt3QkFDN0QsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7d0JBQ2pFLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO3dCQUM3RCxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ3ZJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQzt3QkFDL0IsSUFBSSxXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQzt3QkFDcEMsV0FBVyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7d0JBQzdELFdBQVcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO3dCQUMvRCxNQUFNLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQzt3QkFDakMsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7d0JBQ3JCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBbUIsSUFBSSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO3dCQUN0SCxNQUFNO29CQUNSLFlBQVk7b0JBRVosa0JBQWtCO29CQUNsQixLQUFLLFFBQVEsQ0FBQyxJQUFJO3dCQUNoQixJQUFJLElBQUksR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7d0JBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDakksSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7d0JBQzdELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO3dCQUMzRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQzt3QkFDL0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7d0JBQzNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDckksSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO3dCQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7d0JBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQzt3QkFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7d0JBQ25CLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBcUIsSUFBSSxDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO3dCQUN4SCxNQUFNO29CQUVSLEtBQUssUUFBUSxDQUFDLFFBQVE7d0JBQ3BCLElBQUksUUFBUSxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQzt3QkFDdkMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUNySSxRQUFRLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQzt3QkFDakUsUUFBUSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7d0JBQy9ELFFBQVEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO3dCQUNuRSxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQzt3QkFDL0QsUUFBUSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUN6SSxRQUFRLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7d0JBQ3RDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQzt3QkFDeEMsUUFBUSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDO3dCQUNyQyxRQUFRLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQzt3QkFDdkIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUFxQixJQUFJLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7d0JBQzVILE1BQU07b0JBRVIsS0FBSyxRQUFRLENBQUMsSUFBSTt3QkFDaEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO3dCQUNuQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7d0JBQ2pJLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO3dCQUM3RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQzt3QkFDM0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7d0JBQy9ELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO3dCQUMzRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ3JJLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQzt3QkFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO3dCQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7d0JBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO3dCQUNuQixJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQXFCLElBQUksQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQzt3QkFDeEgsTUFBTTtvQkFDUixZQUFZO29CQUVaLGtCQUFrQjtvQkFDbEIsS0FBSyxRQUFRLENBQUMsWUFBWTt3QkFDeEIsSUFBSSxZQUFZLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQzt3QkFDekMsWUFBWSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUN6SSxZQUFZLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQzt3QkFDckUsWUFBWSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7d0JBQ25FLFlBQVksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO3dCQUN2RSxZQUFZLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQzt3QkFDbkUsWUFBWSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUM3SSxZQUFZLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQzt3QkFDdkUsWUFBWSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7d0JBQ3BDLFlBQVksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO3dCQUNsQyxZQUFZLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO3dCQUM3RSxZQUFZLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQzt3QkFDbkMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUF3QixJQUFJLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7d0JBQ3RJLE1BQU07b0JBQ1IsS0FBSyxRQUFRLENBQUMsYUFBYTt3QkFDekIsSUFBSSxhQUFhLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQzt3QkFDMUMsYUFBYSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUMxSSxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQzt3QkFDdEUsYUFBYSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7d0JBQ3BFLGFBQWEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO3dCQUN4RSxhQUFhLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQzt3QkFDcEUsYUFBYSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUM5SSxhQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQzt3QkFDeEUsYUFBYSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7d0JBQ3RDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO3dCQUNuQyxhQUFhLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO3dCQUM5RSxhQUFhLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQzt3QkFDcEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUF3QixJQUFJLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7d0JBQ3ZJLE1BQU07b0JBQ1IsS0FBSyxRQUFRLENBQUMsSUFBSTt3QkFDaEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQzt3QkFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUNqSSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQzt3QkFDN0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7d0JBQzNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO3dCQUMvRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQzt3QkFDM0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUNySSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQzt3QkFDL0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQzt3QkFDckUsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7d0JBQzFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7d0JBQ3JFLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO3dCQUMzQixJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQXdCLElBQUksQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQzt3QkFDOUgsTUFBTTtvQkFDUixLQUFLLFFBQVEsQ0FBQyxTQUFTO3dCQUNyQixJQUFJLFNBQVMsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO3dCQUN0QyxTQUFTLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7d0JBQ3RJLFNBQVMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO3dCQUNsRSxTQUFTLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQzt3QkFDaEUsU0FBUyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7d0JBQ3BFLFNBQVMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO3dCQUNoRSxTQUFTLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQzFJLFNBQVMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO3dCQUNwRSxTQUFTLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQzt3QkFDcEUsU0FBUyxDQUFDLGVBQWUsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQzt3QkFDMUUsU0FBUyxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7d0JBQy9CLFNBQVMsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7d0JBQzFFLFNBQVMsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO3dCQUNoQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQXdCLElBQUksQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQzt3QkFDbkksTUFBTTtvQkFDUixLQUFLLFFBQVEsQ0FBQyxhQUFhO3dCQUN6QixJQUFJLGFBQWEsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO3dCQUMxQyxhQUFhLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7d0JBQzFJLGFBQWEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO3dCQUN0RSxhQUFhLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQzt3QkFDcEUsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7d0JBQ3hFLGFBQWEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO3dCQUNwRSxhQUFhLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQzlJLGFBQWEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO3dCQUN4RSxhQUFhLENBQUMsZUFBZSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO3dCQUM5RSxhQUFhLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQzt3QkFDbkMsYUFBYSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQzt3QkFDOUUsYUFBYSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7d0JBQ3BDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBd0IsSUFBSSxDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO3dCQUN2SSxNQUFNO29CQUNSLEtBQUssUUFBUSxDQUFDLE9BQU87d0JBQ25CLElBQUksT0FBTyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7d0JBQ3BDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDcEksT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7d0JBQ2hFLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO3dCQUM5RCxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQzt3QkFDbEUsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7d0JBQzlELE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDeEksT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7d0JBQ2xFLE9BQU8sQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7d0JBQ3hFLE9BQU8sQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO3dCQUM3QixPQUFPLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO3dCQUN4RSxPQUFPLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQzt3QkFDOUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUF3QixJQUFJLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7d0JBQ2pJLE1BQU07b0JBQ1IsWUFBWTtvQkFFWixvQkFBb0I7b0JBQ3BCLEtBQUssUUFBUSxDQUFDLElBQUk7d0JBQ2hCLElBQUksSUFBSSxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQzt3QkFDbkMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUNqSSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQzt3QkFDN0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7d0JBQzNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO3dCQUMvRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQzt3QkFDM0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUNySSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQzt3QkFDekUsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7d0JBQ25CLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBc0IsSUFBSSxDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO3dCQUMxSCxNQUFNO29CQUNSLEtBQUssUUFBUSxDQUFDLFNBQVM7d0JBQ3JCLElBQUksU0FBUyxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQzt3QkFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUNqSSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQzt3QkFDN0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7d0JBQzNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO3dCQUMvRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQzt3QkFDM0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUNySSxTQUFTLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO3dCQUNyRixTQUFTLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQzt3QkFDeEUsU0FBUyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7d0JBQ2hDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO3dCQUN4QixJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQXNCLElBQUksQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQzt3QkFDL0gsTUFBTTtvQkFDUixZQUFZO29CQUVaLHFCQUFxQjtvQkFDckIsS0FBSyxRQUFRLENBQUMsS0FBSzt3QkFDakIsSUFBSSxLQUFLLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO3dCQUNyQyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7d0JBQ2xJLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO3dCQUM5RCxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQzt3QkFDNUQsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7d0JBQ2hFLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO3dCQUM1RCxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ3RJLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZUFBZTs0QkFDbkQsS0FBSyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUM7d0JBQzVFLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO3dCQUNwQixJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQXlCLElBQUksQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQzt3QkFDakksTUFBTTtvQkFDUixLQUFLLFFBQVEsQ0FBQyxVQUFVO3dCQUN0QixJQUFJLFVBQVUsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7d0JBQzFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDdkksVUFBVSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7d0JBQ25FLFVBQVUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO3dCQUNqRSxVQUFVLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQzt3QkFDckUsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7d0JBQ2pFLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDM0ksSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxlQUFlOzRCQUNuRCxVQUFVLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQzt3QkFDakYsVUFBVSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7d0JBQ3pCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBeUIsSUFBSSxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO3dCQUN0SSxNQUFNO29CQUNSLFlBQVk7b0JBQ1osZ0JBQWdCO29CQUNoQixLQUFLLFFBQVEsQ0FBQyxNQUFNO3dCQUNsQixJQUFJLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO3dCQUNoQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7d0JBQ25JLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO3dCQUMvRCxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQzt3QkFDN0QsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7d0JBQ2pFLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO3dCQUM3RCxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ3ZJLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO3dCQUMxQixNQUFNLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQzt3QkFDOUIsTUFBTSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQzt3QkFDakMsTUFBTSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQzt3QkFDaEMsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7d0JBQ3JCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBaUIsSUFBSSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQzt3QkFDbEgsTUFBTTtvQkFDUixZQUFZO29CQUVaLHVCQUF1QjtvQkFDdkIsS0FBSyxRQUFRLENBQUMsYUFBYTt3QkFDekIsSUFBSSxhQUFhLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQzt3QkFDMUMsYUFBYSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUMxSSxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQzt3QkFDdEUsYUFBYSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7d0JBQ3BFLGFBQWEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO3dCQUN4RSxhQUFhLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQzt3QkFDcEUsYUFBYSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUM5SSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVM7NEJBQzdDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO3dCQUN4RSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVM7NEJBQzdDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO3dCQUN4RSxhQUFhLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQzt3QkFDNUQsYUFBYSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUM7d0JBQ2hGLGFBQWEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO3dCQUM1QixJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQW9CLElBQUksQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQzt3QkFDL0gsTUFBTTtvQkFDUixZQUFZO29CQUVaLGNBQWM7b0JBQ2QsS0FBSyxRQUFRLENBQUMsSUFBSTt3QkFDaEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO3dCQUNuQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7d0JBQ2pJLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO3dCQUM3RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQzt3QkFDM0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7d0JBQy9ELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO3dCQUMzRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ3JJLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUzs0QkFDN0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7d0JBQy9ELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUzs0QkFDN0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7d0JBQy9ELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO3dCQUNyRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQzt3QkFDdkUsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7d0JBQ25CLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBc0IsSUFBSSxDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO3dCQUMxSCxNQUFNO29CQUNSLFlBQVk7b0JBRVosaUJBQWlCO29CQUNqQixLQUFLLFFBQVEsQ0FBQyxPQUFPO3dCQUNuQixJQUFJLE9BQU8sR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7d0JBQ3ZDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDcEksT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7d0JBQ2hFLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO3dCQUM5RCxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQzt3QkFDOUQsT0FBTyxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUN4SSxPQUFPLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQzt3QkFDdEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUF1QixJQUFJLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7d0JBQy9ILE1BQU07b0JBQ1IsWUFBWTtvQkFFWixrQkFBa0I7b0JBQ2xCLEtBQUssUUFBUSxDQUFDLFFBQVE7d0JBQ3BCLElBQUksUUFBUSxHQUFHLElBQUksc0JBQXNCLEVBQUUsQ0FBQzt3QkFDNUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUNySSxRQUFRLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQzt3QkFDakUsUUFBUSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7d0JBQy9ELFFBQVEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO3dCQUNuRSxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQzt3QkFDL0QsUUFBUSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUN6SSxRQUFRLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQzt3QkFDdkIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUEyQixJQUFJLENBQUMsSUFBSSxFQUFFLHdCQUF3QixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7d0JBQ3hJLE1BQU07b0JBQ1IsWUFBWTtvQkFFWixrQkFBa0I7b0JBQ2xCLEtBQUssUUFBUSxDQUFDLFFBQVE7d0JBQ3BCLElBQUksUUFBUSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7d0JBQ3JDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDckksUUFBUSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7d0JBQ2pFLFFBQVEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO3dCQUMvRCxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQzt3QkFDL0QsUUFBUSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUN6SSxRQUFRLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQzt3QkFDM0UsUUFBUSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7d0JBQ3ZCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBb0IsSUFBSSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO3dCQUMxSCxNQUFNO29CQUNSLFlBQVk7b0JBRVo7d0JBQ0UsTUFBTTtpQkFDVDthQUVGO0lBRUwsQ0FBQzsrR0FoeEJVLDZCQUE2QjttR0FBN0IsNkJBQTZCLHVSQUViLGdCQUFnQixrREN4QzdDLHlDQUNBOzs0RkRxQ2EsNkJBQTZCO2tCQUp6QyxTQUFTOytCQUNFLHdCQUF3Qjs0SEFLYSxJQUFJO3NCQUFsRCxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDcEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Hcm91cERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRGF0YVR5cGUgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvRW51bXMvRW51bXMnO1xyXG5pbXBvcnQgeyBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvRW51bXMvSW5wdXRUeXBlJztcclxuaW1wb3J0IHsgUGlja2VyVHlwZSB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9FbnVtcy9QaWNrZXJUeXBlJztcclxuaW1wb3J0IHsgU2VsZWN0TW9kZSB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9FbnVtcy9TZWxlY3RNb2RlJztcclxuaW1wb3J0IHsgU3RhcnRWaWV3IH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL0VudW1zL1N0YXJ0Vmlldyc7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL01vZGVscy9EYXRlUGlja2VyT3B0aW9ucyc7XHJcbmltcG9ydCB7IERyb3Bkb3duT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9Nb2RlbHMvRHJvcGRvd25PcHRpb25zJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvTW9kZWxzL0ZpbGVVcGxvYWRPcHRpb25zJztcclxuaW1wb3J0IHsgSHRtbEVkaXRvck9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvTW9kZWxzL0h0bWxFZGl0b3JPcHRpb25zJztcclxuaW1wb3J0IHsgSW1hZ2VVcGxvYWRPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL01vZGVscy9JbWFnZVVwbG9hZE9wdGlvbnMnO1xyXG5pbXBvcnQgeyBNYXBBdXRvQ29tcGxldGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL01vZGVscy9NYXBBdXRvQ29tcGxldGVPcHRpb25zJztcclxuaW1wb3J0IHsgUGhvbmVPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL01vZGVscy9QaG9uZU9wdGlvbnMnO1xyXG5pbXBvcnQgeyBSYW5nZU51bWJlciB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9Nb2RlbHMvUmFuZ2VOdW1iZXInO1xyXG5pbXBvcnQgeyBSZXBlYXRlckZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL01vZGVscy9SZXBlYXRlckZpZWxkJztcclxuaW1wb3J0IHsgVGV4dEFyZWFPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL01vZGVscy9UZXh0QXJlYU9wdGlvbnMnO1xyXG5pbXBvcnQgeyBUZXh0Qm94T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9Nb2RlbHMvVGV4dEJveE9wdGlvbnMnO1xyXG5pbXBvcnQgeyBUb2dnbGVTbGlkZU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvTW9kZWxzL1RvZ2dsZVNsaWRlT3B0aW9ucyc7XHJcbmltcG9ydCB7IFJlbmRlckNvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvc2VydmljZXMvcmVuZGVyLWNvbXBvbmVudC1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9EYXRlVGltZVBpY2tlci9EYXRlVGltZVBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEcm9wZG93bkxpc3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi9Ecm9wZG93bkxpc3QvRHJvcGRvd25MaXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9GaWxlVXBsb2FkL0ZpbGVVcGxvYWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSHRtbEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL0h0bWxFZGl0b3IvSHRtbEVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbWFnZVVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vSW1hZ2VVcGxvYWQvSW1hZ2VVcGxvYWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWFwQXV0b0NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vTWFwQXV0b0NvbXBsZXRlL01hcEF1dG9Db21wbGV0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQaG9uZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL1Bob25lL1Bob25lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vVGV4dEFyZWEvVGV4dEFyZWEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dGJveENvbXBvbmVudCB9IGZyb20gJy4uLy4uL1RleHRCb3gvVGV4dEJveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb2dnbGVzbGlkZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL1RvZ2dsZXNsaWRlL1RvZ2dsZXNsaWRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENoZWNrQm94T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9Nb2RlbHMvQ2hlY2tCb3hPcHRpb25zJztcclxuaW1wb3J0IHsgQ2hlY2tCb3hDb21wb25lbnQgfSBmcm9tICcuLi8uLi9DaGVja0JveC9DaGVja0JveC5jb21wb25lbnQnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncmVwZWF0ZXItZmllbGQtYnVpbGRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcGVhdGVyLWZpZWxkLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwZWF0ZXJGaWVsZEJ1aWxkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG5cclxuICBAVmlld0NoaWxkKFwiSXRlbVwiLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgaXRlbTogVmlld0NvbnRhaW5lclJlZjtcclxuICBASW5wdXQoKSBncm91cDogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGl0ZW1OdW1iZXI6IG51bWJlcjtcclxuICBASW5wdXQoKSBjb250cm9sTnVtYmVyOiBudW1iZXI7XHJcbiAgQElucHV0KCkgcmVwZWF0ZXJGaWVsZDogUmVwZWF0ZXJGaWVsZDtcclxuICBASW5wdXQoKSBpdGVtc1ZhbHVlOiBhbnlbXSA9IFtdO1xyXG4gIGl0ZW1WYWx1ZTogYW55ID0gbnVsbDtcclxuICB2YWx1ZTogYW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlckNvbXBvbmVudFNlcnZpY2U6IFJlbmRlckNvbXBvbmVudFNlcnZpY2UsIHB1YmxpYyB0ZXh0Q29udHJvbEhvc3Q6IEZvcm1Hcm91cERpcmVjdGl2ZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLml0ZW1zVmFsdWUubGVuZ3RoID4gMClcclxuICAgICAgICB0aGlzLml0ZW1WYWx1ZSA9IHRoaXMuaXRlbXNWYWx1ZVt0aGlzLml0ZW1OdW1iZXJdO1xyXG4gICAgICBpZiAodGhpcy5pdGVtVmFsdWUpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLml0ZW1WYWx1ZSkge1xyXG4gICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLml0ZW1WYWx1ZSwga2V5KSAmJiBrZXkgPT0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUpIHtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuaXRlbVZhbHVlW2tleV07XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBlbGVtZW50O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLml0ZW0uY2xlYXIoKTtcclxuICAgICAgc3dpdGNoICh0aGlzLnJlcGVhdGVyRmllbGQ/LmNvbnRyb2xUeXBlKSB7XHJcbiAgICAgICAgLy8jcmVnaW9uIFRleHRCb3hcclxuICAgICAgICBjYXNlIERhdGFUeXBlLlRleHQ6XHJcbiAgICAgICAgICBsZXQgVGV4dCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgVGV4dC5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgIFRleHQuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIFRleHQubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBUZXh0LmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIFRleHQudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBUZXh0LmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIFRleHQudHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICAgICAgVGV4dC5sYW5ndWFnZVZhbGlkYXRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFuZ3VhZ2VWYWxpZGF0aW9uO1xyXG4gICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGgpXHJcbiAgICAgICAgICAgIFRleHQubWF4TGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aDtcclxuICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoKVxyXG4gICAgICAgICAgICBUZXh0Lm1pbkxlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGg7XHJcbiAgICAgICAgICBUZXh0LnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIFRleHQuaXNSZWFkb25seSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlYWRvbmx5O1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8VGV4dGJveENvbXBvbmVudD4odGhpcy5pdGVtLCBUZXh0Ym94Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBUZXh0KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIERhdGFUeXBlLk5hbWU6XHJcbiAgICAgICAgICBsZXQgbmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgbmFtZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgIG5hbWUuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIG5hbWUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBuYW1lLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIG5hbWUudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBuYW1lLmxhbmd1YWdlVmFsaWRhdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYW5ndWFnZVZhbGlkYXRpb247XHJcbiAgICAgICAgICBuYW1lLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4TGVuZ3RoKVxyXG4gICAgICAgICAgICBuYW1lLm1heExlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGg7XHJcbiAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1pbkxlbmd0aClcclxuICAgICAgICAgICAgbmFtZS5taW5MZW5ndGggPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoO1xyXG4gICAgICAgICAgbmFtZS50eXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgICBuYW1lLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRleHRib3hDb21wb25lbnQ+KHRoaXMuaXRlbSwgVGV4dGJveENvbXBvbmVudCwgdGhpcy5ncm91cCwgbmFtZSk7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5FbWFpbDpcclxuICAgICAgICAgIGxldCBlbWFpbCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgZW1haWwubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICBlbWFpbC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgZW1haWwubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBlbWFpbC5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBlbWFpbC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIGVtYWlsLmxhbmd1YWdlVmFsaWRhdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYW5ndWFnZVZhbGlkYXRpb247XHJcbiAgICAgICAgICBlbWFpbC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICBlbWFpbC50eXBlID0gSW5wdXRUeXBlLkVtYWlsO1xyXG4gICAgICAgICAgZW1haWwudmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8VGV4dGJveENvbXBvbmVudD4odGhpcy5pdGVtLCBUZXh0Ym94Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBlbWFpbCk7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5OdW1iZXI6XHJcbiAgICAgICAgICBsZXQgbnVtYmVyID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICBudW1iZXIubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICBudW1iZXIuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIG51bWJlci5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIG51bWJlci5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBudW1iZXIudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBudW1iZXIubGFuZ3VhZ2VWYWxpZGF0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhbmd1YWdlVmFsaWRhdGlvbjtcclxuICAgICAgICAgIG51bWJlci5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICBudW1iZXIudHlwZSA9IElucHV0VHlwZS5OdW1iZXI7XHJcbiAgICAgICAgICBsZXQgcmFuZ2VOdW1iZXIgPSBuZXcgUmFuZ2VOdW1iZXIoKTtcclxuICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubnVtYmVyUmFuZ2UpIHtcclxuICAgICAgICAgICAgcmFuZ2VOdW1iZXIudG8gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubnVtYmVyUmFuZ2UudG87XHJcbiAgICAgICAgICAgIHJhbmdlTnVtYmVyLmZyb20gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubnVtYmVyUmFuZ2UuZnJvbTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG51bWJlci5udW1iZXJSYW5nZSA9IHJhbmdlTnVtYmVyO1xyXG4gICAgICAgICAgbnVtYmVyLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIG51bWJlci5pc1JlYWRvbmx5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVhZG9ubHk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxUZXh0Ym94Q29tcG9uZW50Pih0aGlzLml0ZW0sIFRleHRib3hDb21wb25lbnQsIHRoaXMuZ3JvdXAsIG51bWJlcik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAgICAgLy8jcmVnaW9uICBEYXRlVGltZVxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuRGF0ZTpcclxuICAgICAgICAgIGxldCBkYXRlID0gbmV3IERhdGVQaWNrZXJPcHRpb25zKCk7XHJcbiAgICAgICAgICBkYXRlLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgZGF0ZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgZGF0ZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIGRhdGUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgZGF0ZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIGRhdGUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgZGF0ZS5waWNrZXJUeXBlID0gUGlja2VyVHlwZS5DYWxlbmRhcjtcclxuICAgICAgICAgIGRhdGUuc2VsZWN0TW9kZSA9IFNlbGVjdE1vZGUuU2luZ2xlO1xyXG4gICAgICAgICAgZGF0ZS5zdGFydFZpZXcgPSBTdGFydFZpZXcuTW9udGg7XHJcbiAgICAgICAgICBkYXRlLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERhdGVJbnB1dENvbXBvbmVudD4odGhpcy5pdGVtLCBEYXRlSW5wdXRDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGRhdGUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuRGF0ZVRpbWU6XHJcbiAgICAgICAgICBsZXQgZGF0ZVRpbWUgPSBuZXcgRGF0ZVBpY2tlck9wdGlvbnMoKTtcclxuICAgICAgICAgIGRhdGVUaW1lLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgZGF0ZVRpbWUuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIGRhdGVUaW1lLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgZGF0ZVRpbWUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgZGF0ZVRpbWUudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBkYXRlVGltZS5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICBkYXRlVGltZS5waWNrZXJUeXBlID0gUGlja2VyVHlwZS5Cb3RoO1xyXG4gICAgICAgICAgZGF0ZVRpbWUuc2VsZWN0TW9kZSA9IFNlbGVjdE1vZGUuU2luZ2xlO1xyXG4gICAgICAgICAgZGF0ZVRpbWUuc3RhcnRWaWV3ID0gU3RhcnRWaWV3Lk1vbnRoO1xyXG4gICAgICAgICAgZGF0ZVRpbWUudmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RGF0ZUlucHV0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERhdGVJbnB1dENvbXBvbmVudCwgdGhpcy5ncm91cCwgZGF0ZVRpbWUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuVGltZTpcclxuICAgICAgICAgIGxldCB0aW1lID0gbmV3IERhdGVQaWNrZXJPcHRpb25zKCk7XHJcbiAgICAgICAgICB0aW1lLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgdGltZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgdGltZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIHRpbWUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgdGltZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIHRpbWUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgdGltZS5waWNrZXJUeXBlID0gUGlja2VyVHlwZS5UaW1lcjtcclxuICAgICAgICAgIHRpbWUuc2VsZWN0TW9kZSA9IFNlbGVjdE1vZGUuU2luZ2xlO1xyXG4gICAgICAgICAgdGltZS5zdGFydFZpZXcgPSBTdGFydFZpZXcuTW9udGg7XHJcbiAgICAgICAgICB0aW1lLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERhdGVJbnB1dENvbXBvbmVudD4odGhpcy5pdGVtLCBEYXRlSW5wdXRDb21wb25lbnQsIHRoaXMuZ3JvdXAsIHRpbWUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgICAgIC8vI3JlZ2lvbiBEcm9wZG93blxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuU2luZ2xlU2VsZWN0OlxyXG4gICAgICAgICAgbGV0IHNpbmdsZVNlbGVjdCA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgIHNpbmdsZVNlbGVjdC5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgIHNpbmdsZVNlbGVjdC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgc2luZ2xlU2VsZWN0LmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgc2luZ2xlU2VsZWN0LmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIHNpbmdsZVNlbGVjdC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIHNpbmdsZVNlbGVjdC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICBzaW5nbGVTZWxlY3QuZGF0YVNvdXJjZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5kYXRhU291cmNlO1xyXG4gICAgICAgICAgc2luZ2xlU2VsZWN0LnNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICBzaW5nbGVTZWxlY3Quc2hvd0NoZWNrYm94ID0gZmFsc2U7XHJcbiAgICAgICAgICBzaW5nbGVTZWxlY3QuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGFzU2VhcmNoO1xyXG4gICAgICAgICAgc2luZ2xlU2VsZWN0LnNlbGVjdGVkSXRlbXMgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RHJvcGRvd25MaXN0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERyb3Bkb3duTGlzdENvbXBvbmVudCwgdGhpcy5ncm91cCwgc2luZ2xlU2VsZWN0KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuTXVsaXBsZVNlbGVjdDpcclxuICAgICAgICAgIGxldCBtdWxpcGxlU2VsZWN0ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgbXVsaXBsZVNlbGVjdC5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgIG11bGlwbGVTZWxlY3QuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIG11bGlwbGVTZWxlY3QubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBtdWxpcGxlU2VsZWN0LmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIG11bGlwbGVTZWxlY3Qudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBtdWxpcGxlU2VsZWN0LmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIG11bGlwbGVTZWxlY3QuZGF0YVNvdXJjZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5kYXRhU291cmNlO1xyXG4gICAgICAgICAgbXVsaXBsZVNlbGVjdC5zaW5nbGVTZWxlY3Rpb24gPSBmYWxzZTtcclxuICAgICAgICAgIG11bGlwbGVTZWxlY3Quc2hvd0NoZWNrYm94ID0gZmFsc2U7XHJcbiAgICAgICAgICBtdWxpcGxlU2VsZWN0LmFsbG93U2VhcmNoRmlsdGVyID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhhc1NlYXJjaDtcclxuICAgICAgICAgIG11bGlwbGVTZWxlY3Quc2VsZWN0ZWRJdGVtcyA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEcm9wZG93bkxpc3RDb21wb25lbnQ+KHRoaXMuaXRlbSwgRHJvcGRvd25MaXN0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBtdWxpcGxlU2VsZWN0KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuR29hbDpcclxuICAgICAgICAgIGxldCBnb2FsID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgZ29hbC5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgIGdvYWwuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIGdvYWwubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBnb2FsLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIGdvYWwudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBnb2FsLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIGdvYWwuZGF0YVNvdXJjZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5kYXRhU291cmNlO1xyXG4gICAgICAgICAgZ29hbC5zaW5nbGVTZWxlY3Rpb24gPSAhdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzTXVsdGlwbGU7XHJcbiAgICAgICAgICBnb2FsLnNob3dDaGVja2JveCA9IGZhbHNlO1xyXG4gICAgICAgICAgZ29hbC5hbGxvd1NlYXJjaEZpbHRlciA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oYXNTZWFyY2g7XHJcbiAgICAgICAgICBnb2FsLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RHJvcGRvd25MaXN0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERyb3Bkb3duTGlzdENvbXBvbmVudCwgdGhpcy5ncm91cCwgZ29hbCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIERhdGFUeXBlLkNoYWxsZW5nZTpcclxuICAgICAgICAgIGxldCBjaGFsbGVuZ2UgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICBjaGFsbGVuZ2UubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICBjaGFsbGVuZ2UuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIGNoYWxsZW5nZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIGNoYWxsZW5nZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBjaGFsbGVuZ2Uudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBjaGFsbGVuZ2UubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgY2hhbGxlbmdlLmRhdGFTb3VyY2UgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZGF0YVNvdXJjZTtcclxuICAgICAgICAgIGNoYWxsZW5nZS5kYXRhU291cmNlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmRhdGFTb3VyY2U7XHJcbiAgICAgICAgICBjaGFsbGVuZ2Uuc2luZ2xlU2VsZWN0aW9uID0gIXRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc011bHRpcGxlO1xyXG4gICAgICAgICAgY2hhbGxlbmdlLnNob3dDaGVja2JveCA9IGZhbHNlO1xyXG4gICAgICAgICAgY2hhbGxlbmdlLmFsbG93U2VhcmNoRmlsdGVyID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhhc1NlYXJjaDtcclxuICAgICAgICAgIGNoYWxsZW5nZS5zZWxlY3RlZEl0ZW1zID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERyb3Bkb3duTGlzdENvbXBvbmVudD4odGhpcy5pdGVtLCBEcm9wZG93bkxpc3RDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGNoYWxsZW5nZSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIERhdGFUeXBlLklubm92YXRpb25MYWI6XHJcbiAgICAgICAgICBsZXQgaW5ub3ZhdGlvbkxhYiA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgIGlubm92YXRpb25MYWIubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICBpbm5vdmF0aW9uTGFiLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICBpbm5vdmF0aW9uTGFiLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgaW5ub3ZhdGlvbkxhYi5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBpbm5vdmF0aW9uTGFiLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgaW5ub3ZhdGlvbkxhYi5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICBpbm5vdmF0aW9uTGFiLmRhdGFTb3VyY2UgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZGF0YVNvdXJjZTtcclxuICAgICAgICAgIGlubm92YXRpb25MYWIuc2luZ2xlU2VsZWN0aW9uID0gIXRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc011bHRpcGxlO1xyXG4gICAgICAgICAgaW5ub3ZhdGlvbkxhYi5zaG93Q2hlY2tib3ggPSBmYWxzZTtcclxuICAgICAgICAgIGlubm92YXRpb25MYWIuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGFzU2VhcmNoO1xyXG4gICAgICAgICAgaW5ub3ZhdGlvbkxhYi5zZWxlY3RlZEl0ZW1zID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERyb3Bkb3duTGlzdENvbXBvbmVudD4odGhpcy5pdGVtLCBEcm9wZG93bkxpc3RDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGlubm92YXRpb25MYWIpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5Db3VudHJ5OlxyXG4gICAgICAgICAgbGV0IGNvdW50cnkgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICBjb3VudHJ5Lm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgY291bnRyeS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgY291bnRyeS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIGNvdW50cnkuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgY291bnRyeS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIGNvdW50cnkubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgY291bnRyeS5kYXRhU291cmNlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmRhdGFTb3VyY2U7XHJcbiAgICAgICAgICBjb3VudHJ5LnNpbmdsZVNlbGVjdGlvbiA9ICF0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNNdWx0aXBsZTtcclxuICAgICAgICAgIGNvdW50cnkuc2hvd0NoZWNrYm94ID0gZmFsc2U7XHJcbiAgICAgICAgICBjb3VudHJ5LmFsbG93U2VhcmNoRmlsdGVyID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhhc1NlYXJjaDtcclxuICAgICAgICAgIGNvdW50cnkuc2VsZWN0ZWRJdGVtcyA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEcm9wZG93bkxpc3RDb21wb25lbnQ+KHRoaXMuaXRlbSwgRHJvcGRvd25MaXN0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBjb3VudHJ5KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgICAgICAvLyNyZWdpb24gRmlsZVVwbG9hZFxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuRmlsZTpcclxuICAgICAgICAgIGxldCBmaWxlID0gbmV3IEZpbGVVcGxvYWRPcHRpb25zKCk7XHJcbiAgICAgICAgICBmaWxlLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgZmlsZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgZmlsZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIGZpbGUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgZmlsZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIGZpbGUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgZmlsZS5maWxlTWF4U2l6ZUluTUIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgZmlsZS52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxGaWxlVXBsb2FkQ29tcG9uZW50Pih0aGlzLml0ZW0sIEZpbGVVcGxvYWRDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGZpbGUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5NdWx0aUZpbGU6XHJcbiAgICAgICAgICBsZXQgbXVsdGlGaWxlID0gbmV3IEZpbGVVcGxvYWRPcHRpb25zKCk7XHJcbiAgICAgICAgICBmaWxlLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgZmlsZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgZmlsZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIGZpbGUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgZmlsZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIGZpbGUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgbXVsdGlGaWxlLm1heFNpemVGb3JBbGxGaWxlc0luTUIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgbXVsdGlGaWxlLm1heE5vT2ZGaWxlcyA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhGaWxlQ291bnQ7XHJcbiAgICAgICAgICBtdWx0aUZpbGUuaXNNdWx0aXBsZUZpbGUgPSB0cnVlO1xyXG4gICAgICAgICAgbXVsdGlGaWxlLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PEZpbGVVcGxvYWRDb21wb25lbnQ+KHRoaXMuaXRlbSwgRmlsZVVwbG9hZENvbXBvbmVudCwgdGhpcy5ncm91cCwgbXVsdGlGaWxlKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgICAgICAvLyNyZWdpb24gSW1hZ2VVcGxvYWRcclxuICAgICAgICBjYXNlIERhdGFUeXBlLkltYWdlOlxyXG4gICAgICAgICAgbGV0IGltYWdlID0gbmV3IEltYWdlVXBsb2FkT3B0aW9ucygpO1xyXG4gICAgICAgICAgaW1hZ2UubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICBpbWFnZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgaW1hZ2UubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBpbWFnZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBpbWFnZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIGltYWdlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CKVxyXG4gICAgICAgICAgICBpbWFnZS5maWxlTWF4U2l6ZUluTUIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgaW1hZ2UudmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8SW1hZ2VVcGxvYWRlckNvbXBvbmVudD4odGhpcy5pdGVtLCBJbWFnZVVwbG9hZGVyQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBpbWFnZSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIERhdGFUeXBlLkNvdmVyUGhvdG86XHJcbiAgICAgICAgICBsZXQgY292ZXJQaG90byA9IG5ldyBJbWFnZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgIGNvdmVyUGhvdG8ubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICBjb3ZlclBob3RvLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICBjb3ZlclBob3RvLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgY292ZXJQaG90by5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBjb3ZlclBob3RvLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgY292ZXJQaG90by5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heEZpbGVTaXplSW5NQilcclxuICAgICAgICAgICAgY292ZXJQaG90by5maWxlTWF4U2l6ZUluTUIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgY292ZXJQaG90by52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxJbWFnZVVwbG9hZGVyQ29tcG9uZW50Pih0aGlzLml0ZW0sIEltYWdlVXBsb2FkZXJDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGNvdmVyUGhvdG8pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgICAgIC8vI3JlZ2lvbiBNb2JpbGVcclxuICAgICAgICBjYXNlIERhdGFUeXBlLk1vYmlsZTpcclxuICAgICAgICAgIGxldCBtb2JpbGUgPSBuZXcgUGhvbmVPcHRpb25zKCk7XHJcbiAgICAgICAgICBtb2JpbGUubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICBtb2JpbGUuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIG1vYmlsZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIG1vYmlsZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBtb2JpbGUudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBtb2JpbGUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgbW9iaWxlLmFsbG93U2VhcmNoID0gdHJ1ZTtcclxuICAgICAgICAgIG1vYmlsZS5waG9uZVZhbGlkYXRpb24gPSB0cnVlO1xyXG4gICAgICAgICAgbW9iaWxlLnNlbGVjdEZpcnN0Q291bnRyeSA9IHRydWU7XHJcbiAgICAgICAgICBtb2JpbGUuZW5hYmxlUGxhY2Vob2xkZXIgPSB0cnVlO1xyXG4gICAgICAgICAgbW9iaWxlLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFBob25lQ29tcG9uZW50Pih0aGlzLml0ZW0sIFBob25lQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBtb2JpbGUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgICAgIC8vI3JlZ2lvbiBNdWx0aWxpbmVUZXh0XHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5NdWx0aWxpbmVUZXh0OlxyXG4gICAgICAgICAgbGV0IG11bHRpbGluZVRleHQgPSBuZXcgVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgICAgICBtdWx0aWxpbmVUZXh0Lm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgbXVsdGlsaW5lVGV4dC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgbXVsdGlsaW5lVGV4dC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIG11bHRpbGluZVRleHQuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgbXVsdGlsaW5lVGV4dC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIG11bHRpbGluZVRleHQubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGgpXHJcbiAgICAgICAgICAgIG11bHRpbGluZVRleHQubWF4TGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aDtcclxuICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoKVxyXG4gICAgICAgICAgICBtdWx0aWxpbmVUZXh0Lm1pbkxlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGg7XHJcbiAgICAgICAgICBtdWx0aWxpbmVUZXh0LnJvd3MgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMucm93cztcclxuICAgICAgICAgIG11bHRpbGluZVRleHQuZm9yY2VEaXJlY3Rpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZm9yY2VEaXJlY3Rpb247XHJcbiAgICAgICAgICBtdWx0aWxpbmVUZXh0LnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRleHRBcmVhQ29tcG9uZW50Pih0aGlzLml0ZW0sIFRleHRBcmVhQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBtdWx0aWxpbmVUZXh0KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgICAgICAvLyNyZWdpb24gSFRNTFxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuSFRNTDpcclxuICAgICAgICAgIGxldCBIVE1MID0gbmV3IEh0bWxFZGl0b3JPcHRpb25zKCk7XHJcbiAgICAgICAgICBIVE1MLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgSFRNTC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgSFRNTC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIEhUTUwuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgSFRNTC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIEhUTUwubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGgpXHJcbiAgICAgICAgICAgIEhUTUwubWF4TGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aDtcclxuICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoKVxyXG4gICAgICAgICAgICBIVE1MLm1pbkxlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGg7XHJcbiAgICAgICAgICBIVE1MLmhlaWdodCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5yb3dzO1xyXG4gICAgICAgICAgSFRNTC5mb3JjZURpcmVjdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5mb3JjZURpcmVjdGlvbjtcclxuICAgICAgICAgIEhUTUwudmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8SHRtbEVkaXRvckNvbXBvbmVudD4odGhpcy5pdGVtLCBIdG1sRWRpdG9yQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBIVE1MKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgICAgICAvLyNyZWdpb24gQm9vbGVhblxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuQm9vbGVhbjpcclxuICAgICAgICAgIGxldCBib29sZWFuID0gbmV3IFRvZ2dsZVNsaWRlT3B0aW9ucygpO1xyXG4gICAgICAgICAgYm9vbGVhbi5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgIGJvb2xlYW4uaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIGJvb2xlYW4ubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBib29sZWFuLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgYm9vbGVhbi52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICBib29sZWFuLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRvZ2dsZXNsaWRlQ29tcG9uZW50Pih0aGlzLml0ZW0sIFRvZ2dsZXNsaWRlQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBib29sZWFuKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgICAgICAvLyNyZWdpb24gTG9jYXRpb25cclxuICAgICAgICBjYXNlIERhdGFUeXBlLkxvY2F0aW9uOlxyXG4gICAgICAgICAgbGV0IGxvY2F0aW9uID0gbmV3IE1hcEF1dG9Db21wbGV0ZU9wdGlvbnMoKTtcclxuICAgICAgICAgIGxvY2F0aW9uLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgbG9jYXRpb24uaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIGxvY2F0aW9uLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgbG9jYXRpb24uaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgbG9jYXRpb24udmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBsb2NhdGlvbi52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICBsb2NhdGlvbi5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxNYXBBdXRvQ29tcGxldGVDb21wb25lbnQ+KHRoaXMuaXRlbSwgTWFwQXV0b0NvbXBsZXRlQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBsb2NhdGlvbik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAgICAgLy8jcmVnaW9uIENoZWNrQm94XHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5DaGVja0JveDpcclxuICAgICAgICAgIGxldCBjaGVja0JveCA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgICAgIGNoZWNrQm94Lm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgY2hlY2tCb3guaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIGNoZWNrQm94LmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgY2hlY2tCb3gudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBjaGVja0JveC5vdXRwdXRGdW5jdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5vdXRwdXRGdW5jdGlvbjtcclxuICAgICAgICAgIGNoZWNrQm94LmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIGNoZWNrQm94LnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PENoZWNrQm94Q29tcG9uZW50Pih0aGlzLml0ZW0sIENoZWNrQm94Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBjaGVja0JveCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9LCAwKTtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMuaXRlbU51bWJlcilcclxuICAgICAgaWYgKGNoYW5nZXMuaXRlbU51bWJlci5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgbGV0IG5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLnByZXZpb3VzVmFsdWUudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5ncm91cC5jb250cm9sc1tuYW1lXS52YWx1ZTtcclxuICAgICAgICB0aGlzLml0ZW0uY2xlYXIoKTtcclxuICAgICAgICB0aGlzLmdyb3VwLnJlbW92ZUNvbnRyb2wobmFtZSk7XHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbFR5cGUpIHtcclxuICAgICAgICAgIC8vI3JlZ2lvbiBUZXh0Qm94XHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLlRleHQ6XHJcbiAgICAgICAgICAgIGxldCB0ZXh0ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRleHQubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgdGV4dC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICB0ZXh0LmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICB0ZXh0LmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgdGV4dC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgdGV4dC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIHRleHQudHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aClcclxuICAgICAgICAgICAgICB0ZXh0Lm1heExlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGg7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoKVxyXG4gICAgICAgICAgICAgIHRleHQubWluTGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1pbkxlbmd0aDtcclxuICAgICAgICAgICAgdGV4dC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxUZXh0Ym94Q29tcG9uZW50Pih0aGlzLml0ZW0sIFRleHRib3hDb21wb25lbnQsIHRoaXMuZ3JvdXAsIHRleHQpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLk5hbWU6XHJcbiAgICAgICAgICAgIGxldCBuYW1lID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIG5hbWUubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgbmFtZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBuYW1lLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICBuYW1lLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgbmFtZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgbmFtZS5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4TGVuZ3RoKVxyXG4gICAgICAgICAgICAgIG5hbWUubWF4TGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aDtcclxuICAgICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGgpXHJcbiAgICAgICAgICAgICAgbmFtZS5taW5MZW5ndGggPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoO1xyXG4gICAgICAgICAgICBuYW1lLnR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgICAgICAgbmFtZS52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxUZXh0Ym94Q29tcG9uZW50Pih0aGlzLml0ZW0sIFRleHRib3hDb21wb25lbnQsIHRoaXMuZ3JvdXAsIG5hbWUpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLkVtYWlsOlxyXG4gICAgICAgICAgICBsZXQgZW1haWwgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgZW1haWwubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgZW1haWwuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgICAgZW1haWwubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIGVtYWlsLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgZW1haWwudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIGVtYWlsLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgZW1haWwudHlwZSA9IElucHV0VHlwZS5FbWFpbDtcclxuICAgICAgICAgICAgZW1haWwudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8VGV4dGJveENvbXBvbmVudD4odGhpcy5pdGVtLCBUZXh0Ym94Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBlbWFpbCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuTnVtYmVyOlxyXG4gICAgICAgICAgICBsZXQgbnVtYmVyID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIG51bWJlci5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBudW1iZXIuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgICAgbnVtYmVyLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICBudW1iZXIuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBudW1iZXIudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIG51bWJlci5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIG51bWJlci50eXBlID0gSW5wdXRUeXBlLk51bWJlcjtcclxuICAgICAgICAgICAgbGV0IHJhbmdlTnVtYmVyID0gbmV3IFJhbmdlTnVtYmVyKCk7XHJcbiAgICAgICAgICAgIHJhbmdlTnVtYmVyLnRvID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aDtcclxuICAgICAgICAgICAgcmFuZ2VOdW1iZXIuZnJvbSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGg7XHJcbiAgICAgICAgICAgIG51bWJlci5udW1iZXJSYW5nZSA9IHJhbmdlTnVtYmVyO1xyXG4gICAgICAgICAgICBudW1iZXIudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8VGV4dGJveENvbXBvbmVudD4odGhpcy5pdGVtLCBUZXh0Ym94Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBudW1iZXIpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgICAgICAgIC8vI3JlZ2lvbiBEYXRlVGltZVxyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5EYXRlOlxyXG4gICAgICAgICAgICBsZXQgRGF0ZSA9IG5ldyBEYXRlUGlja2VyT3B0aW9ucygpO1xyXG4gICAgICAgICAgICBEYXRlLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIERhdGUuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgICAgRGF0ZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgICAgRGF0ZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIERhdGUudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIERhdGUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgICBEYXRlLnBpY2tlclR5cGUgPSBQaWNrZXJUeXBlLkNhbGVuZGFyO1xyXG4gICAgICAgICAgICBEYXRlLnNlbGVjdE1vZGUgPSBTZWxlY3RNb2RlLlNpbmdsZTtcclxuICAgICAgICAgICAgRGF0ZS5zdGFydFZpZXcgPSBTdGFydFZpZXcuTW9udGg7XHJcbiAgICAgICAgICAgIERhdGUudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RGF0ZUlucHV0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERhdGVJbnB1dENvbXBvbmVudCwgdGhpcy5ncm91cCwgRGF0ZSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuRGF0ZVRpbWU6XHJcbiAgICAgICAgICAgIGxldCBkYXRlVGltZSA9IG5ldyBEYXRlUGlja2VyT3B0aW9ucygpO1xyXG4gICAgICAgICAgICBkYXRlVGltZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBkYXRlVGltZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBkYXRlVGltZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgICAgZGF0ZVRpbWUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBkYXRlVGltZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgZGF0ZVRpbWUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgICBkYXRlVGltZS5waWNrZXJUeXBlID0gUGlja2VyVHlwZS5Cb3RoO1xyXG4gICAgICAgICAgICBkYXRlVGltZS5zZWxlY3RNb2RlID0gU2VsZWN0TW9kZS5TaW5nbGU7XHJcbiAgICAgICAgICAgIGRhdGVUaW1lLnN0YXJ0VmlldyA9IFN0YXJ0Vmlldy5Nb250aDtcclxuICAgICAgICAgICAgZGF0ZVRpbWUudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RGF0ZUlucHV0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERhdGVJbnB1dENvbXBvbmVudCwgdGhpcy5ncm91cCwgZGF0ZVRpbWUpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLlRpbWU6XHJcbiAgICAgICAgICAgIGxldCB0aW1lID0gbmV3IERhdGVQaWNrZXJPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRpbWUubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgdGltZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICB0aW1lLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICB0aW1lLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgdGltZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgdGltZS5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIHRpbWUucGlja2VyVHlwZSA9IFBpY2tlclR5cGUuVGltZXI7XHJcbiAgICAgICAgICAgIHRpbWUuc2VsZWN0TW9kZSA9IFNlbGVjdE1vZGUuU2luZ2xlO1xyXG4gICAgICAgICAgICB0aW1lLnN0YXJ0VmlldyA9IFN0YXJ0Vmlldy5Nb250aDtcclxuICAgICAgICAgICAgdGltZS52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEYXRlSW5wdXRDb21wb25lbnQ+KHRoaXMuaXRlbSwgRGF0ZUlucHV0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCB0aW1lKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAgICAgICAvLyNyZWdpb24gRHJvcGRvd25cclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuU2luZ2xlU2VsZWN0OlxyXG4gICAgICAgICAgICBsZXQgc2luZ2xlU2VsZWN0ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgICBzaW5nbGVTZWxlY3QubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgc2luZ2xlU2VsZWN0LmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIHNpbmdsZVNlbGVjdC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgICAgc2luZ2xlU2VsZWN0LmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgc2luZ2xlU2VsZWN0LnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBzaW5nbGVTZWxlY3QubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgICBzaW5nbGVTZWxlY3QuZGF0YVNvdXJjZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5kYXRhU291cmNlO1xyXG4gICAgICAgICAgICBzaW5nbGVTZWxlY3Quc2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgICAgc2luZ2xlU2VsZWN0LnNob3dDaGVja2JveCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBzaW5nbGVTZWxlY3QuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGFzU2VhcmNoO1xyXG4gICAgICAgICAgICBzaW5nbGVTZWxlY3Quc2VsZWN0ZWRJdGVtcyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEcm9wZG93bkxpc3RDb21wb25lbnQ+KHRoaXMuaXRlbSwgRHJvcGRvd25MaXN0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBzaW5nbGVTZWxlY3QpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuTXVsaXBsZVNlbGVjdDpcclxuICAgICAgICAgICAgbGV0IG11bGlwbGVTZWxlY3QgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICAgIG11bGlwbGVTZWxlY3QubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgbXVsaXBsZVNlbGVjdC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBtdWxpcGxlU2VsZWN0LmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICBtdWxpcGxlU2VsZWN0LmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgbXVsaXBsZVNlbGVjdC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgbXVsaXBsZVNlbGVjdC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIG11bGlwbGVTZWxlY3QuZGF0YVNvdXJjZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5kYXRhU291cmNlO1xyXG4gICAgICAgICAgICBtdWxpcGxlU2VsZWN0LnNpbmdsZVNlbGVjdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBtdWxpcGxlU2VsZWN0LnNob3dDaGVja2JveCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBtdWxpcGxlU2VsZWN0LmFsbG93U2VhcmNoRmlsdGVyID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhhc1NlYXJjaDtcclxuICAgICAgICAgICAgbXVsaXBsZVNlbGVjdC5zZWxlY3RlZEl0ZW1zID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERyb3Bkb3duTGlzdENvbXBvbmVudD4odGhpcy5pdGVtLCBEcm9wZG93bkxpc3RDb21wb25lbnQsIHRoaXMuZ3JvdXAsIG11bGlwbGVTZWxlY3QpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuR29hbDpcclxuICAgICAgICAgICAgbGV0IEdvYWwgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICAgIEdvYWwubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgR29hbC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBHb2FsLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICBHb2FsLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgR29hbC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgR29hbC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIEdvYWwuZGF0YVNvdXJjZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5kYXRhU291cmNlO1xyXG4gICAgICAgICAgICBHb2FsLnNpbmdsZVNlbGVjdGlvbiA9ICF0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNNdWx0aXBsZTtcclxuICAgICAgICAgICAgR29hbC5zaG93Q2hlY2tib3ggPSBmYWxzZTtcclxuICAgICAgICAgICAgR29hbC5hbGxvd1NlYXJjaEZpbHRlciA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oYXNTZWFyY2g7XHJcbiAgICAgICAgICAgIEdvYWwuc2VsZWN0ZWRJdGVtcyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEcm9wZG93bkxpc3RDb21wb25lbnQ+KHRoaXMuaXRlbSwgRHJvcGRvd25MaXN0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBHb2FsKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLkNoYWxsZW5nZTpcclxuICAgICAgICAgICAgbGV0IGNoYWxsZW5nZSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgICAgY2hhbGxlbmdlLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIGNoYWxsZW5nZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBjaGFsbGVuZ2UubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIGNoYWxsZW5nZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIGNoYWxsZW5nZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgY2hhbGxlbmdlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgY2hhbGxlbmdlLmRhdGFTb3VyY2UgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZGF0YVNvdXJjZTtcclxuICAgICAgICAgICAgY2hhbGxlbmdlLmRhdGFTb3VyY2UgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZGF0YVNvdXJjZTtcclxuICAgICAgICAgICAgY2hhbGxlbmdlLnNpbmdsZVNlbGVjdGlvbiA9ICF0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNNdWx0aXBsZTtcclxuICAgICAgICAgICAgY2hhbGxlbmdlLnNob3dDaGVja2JveCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjaGFsbGVuZ2UuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGFzU2VhcmNoO1xyXG4gICAgICAgICAgICBjaGFsbGVuZ2Uuc2VsZWN0ZWRJdGVtcyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEcm9wZG93bkxpc3RDb21wb25lbnQ+KHRoaXMuaXRlbSwgRHJvcGRvd25MaXN0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBjaGFsbGVuZ2UpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuSW5ub3ZhdGlvbkxhYjpcclxuICAgICAgICAgICAgbGV0IGlubm92YXRpb25MYWIgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICAgIGlubm92YXRpb25MYWIubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgaW5ub3ZhdGlvbkxhYi5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBpbm5vdmF0aW9uTGFiLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICBpbm5vdmF0aW9uTGFiLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgaW5ub3ZhdGlvbkxhYi52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgaW5ub3ZhdGlvbkxhYi5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIGlubm92YXRpb25MYWIuZGF0YVNvdXJjZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5kYXRhU291cmNlO1xyXG4gICAgICAgICAgICBpbm5vdmF0aW9uTGFiLnNpbmdsZVNlbGVjdGlvbiA9ICF0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNNdWx0aXBsZTtcclxuICAgICAgICAgICAgaW5ub3ZhdGlvbkxhYi5zaG93Q2hlY2tib3ggPSBmYWxzZTtcclxuICAgICAgICAgICAgaW5ub3ZhdGlvbkxhYi5hbGxvd1NlYXJjaEZpbHRlciA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oYXNTZWFyY2g7XHJcbiAgICAgICAgICAgIGlubm92YXRpb25MYWIuc2VsZWN0ZWRJdGVtcyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEcm9wZG93bkxpc3RDb21wb25lbnQ+KHRoaXMuaXRlbSwgRHJvcGRvd25MaXN0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBpbm5vdmF0aW9uTGFiKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLkNvdW50cnk6XHJcbiAgICAgICAgICAgIGxldCBjb3VudHJ5ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgICBjb3VudHJ5Lm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIGNvdW50cnkuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgICAgY291bnRyeS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgICAgY291bnRyeS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIGNvdW50cnkudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIGNvdW50cnkubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgICBjb3VudHJ5LmRhdGFTb3VyY2UgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZGF0YVNvdXJjZTtcclxuICAgICAgICAgICAgY291bnRyeS5zaW5nbGVTZWxlY3Rpb24gPSAhdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzTXVsdGlwbGU7XHJcbiAgICAgICAgICAgIGNvdW50cnkuc2hvd0NoZWNrYm94ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGNvdW50cnkuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGFzU2VhcmNoO1xyXG4gICAgICAgICAgICBjb3VudHJ5LnNlbGVjdGVkSXRlbXMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RHJvcGRvd25MaXN0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERyb3Bkb3duTGlzdENvbXBvbmVudCwgdGhpcy5ncm91cCwgY291bnRyeSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgICAgICAgLy8jcmVnaW9uIEZpbGVVcGxvYWRcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuRmlsZTpcclxuICAgICAgICAgICAgbGV0IGZpbGUgPSBuZXcgRmlsZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgZmlsZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBmaWxlLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIGZpbGUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIGZpbGUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBmaWxlLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBmaWxlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgZmlsZS5maWxlTWF4U2l6ZUluTUIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgICBmaWxlLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PEZpbGVVcGxvYWRDb21wb25lbnQ+KHRoaXMuaXRlbSwgRmlsZVVwbG9hZENvbXBvbmVudCwgdGhpcy5ncm91cCwgZmlsZSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5NdWx0aUZpbGU6XHJcbiAgICAgICAgICAgIGxldCBtdWx0aUZpbGUgPSBuZXcgRmlsZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgZmlsZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBmaWxlLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIGZpbGUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIGZpbGUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBmaWxlLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBmaWxlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgbXVsdGlGaWxlLm1heFNpemVGb3JBbGxGaWxlc0luTUIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgICBtdWx0aUZpbGUubWF4Tm9PZkZpbGVzID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heEZpbGVDb3VudDtcclxuICAgICAgICAgICAgbXVsdGlGaWxlLmlzTXVsdGlwbGVGaWxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgbXVsdGlGaWxlLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PEZpbGVVcGxvYWRDb21wb25lbnQ+KHRoaXMuaXRlbSwgRmlsZVVwbG9hZENvbXBvbmVudCwgdGhpcy5ncm91cCwgbXVsdGlGaWxlKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAgICAgICAvLyNyZWdpb24gSW1hZ2VVcGxvYWRcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuSW1hZ2U6XHJcbiAgICAgICAgICAgIGxldCBpbWFnZSA9IG5ldyBJbWFnZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgaW1hZ2UubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgaW1hZ2UuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgICAgaW1hZ2UubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIGltYWdlLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgaW1hZ2Uudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIGltYWdlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhGaWxlU2l6ZUluTUIpXHJcbiAgICAgICAgICAgICAgaW1hZ2UuZmlsZU1heFNpemVJbk1CID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heEZpbGVTaXplSW5NQjtcclxuICAgICAgICAgICAgaW1hZ2UudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8SW1hZ2VVcGxvYWRlckNvbXBvbmVudD4odGhpcy5pdGVtLCBJbWFnZVVwbG9hZGVyQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBpbWFnZSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5Db3ZlclBob3RvOlxyXG4gICAgICAgICAgICBsZXQgY292ZXJQaG90byA9IG5ldyBJbWFnZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgY292ZXJQaG90by5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBjb3ZlclBob3RvLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIGNvdmVyUGhvdG8ubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIGNvdmVyUGhvdG8uaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBjb3ZlclBob3RvLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBjb3ZlclBob3RvLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhGaWxlU2l6ZUluTUIpXHJcbiAgICAgICAgICAgICAgY292ZXJQaG90by5maWxlTWF4U2l6ZUluTUIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgICBjb3ZlclBob3RvLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PEltYWdlVXBsb2FkZXJDb21wb25lbnQ+KHRoaXMuaXRlbSwgSW1hZ2VVcGxvYWRlckNvbXBvbmVudCwgdGhpcy5ncm91cCwgY292ZXJQaG90byk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgLy8jZW5kcmVnaW9uXHJcbiAgICAgICAgICAvLyNyZWdpb24gTW9iaWxlXHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLk1vYmlsZTpcclxuICAgICAgICAgICAgbGV0IG1vYmlsZSA9IG5ldyBQaG9uZU9wdGlvbnMoKTtcclxuICAgICAgICAgICAgbW9iaWxlLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIG1vYmlsZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBtb2JpbGUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIG1vYmlsZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIG1vYmlsZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgbW9iaWxlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgbW9iaWxlLmFsbG93U2VhcmNoID0gdHJ1ZTtcclxuICAgICAgICAgICAgbW9iaWxlLnBob25lVmFsaWRhdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICAgIG1vYmlsZS5zZWxlY3RGaXJzdENvdW50cnkgPSB0cnVlO1xyXG4gICAgICAgICAgICBtb2JpbGUuZW5hYmxlUGxhY2Vob2xkZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICBtb2JpbGUudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8UGhvbmVDb21wb25lbnQ+KHRoaXMuaXRlbSwgUGhvbmVDb21wb25lbnQsIHRoaXMuZ3JvdXAsIG1vYmlsZSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgICAgICAgLy8jcmVnaW9uIE11bHRpbGluZVRleHRcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuTXVsdGlsaW5lVGV4dDpcclxuICAgICAgICAgICAgbGV0IG11bHRpbGluZVRleHQgPSBuZXcgVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIG11bHRpbGluZVRleHQubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgbXVsdGlsaW5lVGV4dC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBtdWx0aWxpbmVUZXh0LmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICBtdWx0aWxpbmVUZXh0LmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgbXVsdGlsaW5lVGV4dC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgbXVsdGlsaW5lVGV4dC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4TGVuZ3RoKVxyXG4gICAgICAgICAgICAgIG11bHRpbGluZVRleHQubWF4TGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aDtcclxuICAgICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGgpXHJcbiAgICAgICAgICAgICAgbXVsdGlsaW5lVGV4dC5taW5MZW5ndGggPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoO1xyXG4gICAgICAgICAgICBtdWx0aWxpbmVUZXh0LnJvd3MgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMucm93cztcclxuICAgICAgICAgICAgbXVsdGlsaW5lVGV4dC5mb3JjZURpcmVjdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5mb3JjZURpcmVjdGlvbjtcclxuICAgICAgICAgICAgbXVsdGlsaW5lVGV4dC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxUZXh0QXJlYUNvbXBvbmVudD4odGhpcy5pdGVtLCBUZXh0QXJlYUNvbXBvbmVudCwgdGhpcy5ncm91cCwgbXVsdGlsaW5lVGV4dCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgICAgICAgLy8jcmVnaW9uIEhUTUxcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuSFRNTDpcclxuICAgICAgICAgICAgbGV0IEhUTUwgPSBuZXcgSHRtbEVkaXRvck9wdGlvbnMoKTtcclxuICAgICAgICAgICAgSFRNTC5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBIVE1MLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIEhUTUwubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIEhUTUwuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBIVE1MLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBIVE1MLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGgpXHJcbiAgICAgICAgICAgICAgSFRNTC5tYXhMZW5ndGggPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4TGVuZ3RoO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1pbkxlbmd0aClcclxuICAgICAgICAgICAgICBIVE1MLm1pbkxlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGg7XHJcbiAgICAgICAgICAgIEhUTUwuaGVpZ2h0ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnJvd3M7XHJcbiAgICAgICAgICAgIEhUTUwuZm9yY2VEaXJlY3Rpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZm9yY2VEaXJlY3Rpb247XHJcbiAgICAgICAgICAgIEhUTUwudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8SHRtbEVkaXRvckNvbXBvbmVudD4odGhpcy5pdGVtLCBIdG1sRWRpdG9yQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBIVE1MKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAgICAgICAvLyNyZWdpb24gQm9vbGVhblxyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5Cb29sZWFuOlxyXG4gICAgICAgICAgICBsZXQgYm9vbGVhbiA9IG5ldyBUb2dnbGVTbGlkZU9wdGlvbnMoKTtcclxuICAgICAgICAgICAgYm9vbGVhbi5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBib29sZWFuLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIGJvb2xlYW4ubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIGJvb2xlYW4udmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIGJvb2xlYW4ubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgICBib29sZWFuLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRvZ2dsZXNsaWRlQ29tcG9uZW50Pih0aGlzLml0ZW0sIFRvZ2dsZXNsaWRlQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBib29sZWFuKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAgICAgICAvLyNyZWdpb24gTG9jYXRpb25cclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuTG9jYXRpb246XHJcbiAgICAgICAgICAgIGxldCBMb2NhdGlvbiA9IG5ldyBNYXBBdXRvQ29tcGxldGVPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIExvY2F0aW9uLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIExvY2F0aW9uLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIExvY2F0aW9uLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICBMb2NhdGlvbi5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIExvY2F0aW9uLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBMb2NhdGlvbi5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIExvY2F0aW9uLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PE1hcEF1dG9Db21wbGV0ZUNvbXBvbmVudD4odGhpcy5pdGVtLCBNYXBBdXRvQ29tcGxldGVDb21wb25lbnQsIHRoaXMuZ3JvdXAsIExvY2F0aW9uKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAgICAgICAvLyNyZWdpb24gQ2hlY2tCb3hcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuQ2hlY2tCb3g6XHJcbiAgICAgICAgICAgIGxldCBjaGVja0JveCA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgY2hlY2tCb3gubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgY2hlY2tCb3guaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgICAgY2hlY2tCb3gubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIGNoZWNrQm94LnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBjaGVja0JveC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIGNoZWNrQm94Lm91dHB1dEZ1bmN0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm91dHB1dEZ1bmN0aW9uO1xyXG4gICAgICAgICAgICBjaGVja0JveC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxDaGVja0JveENvbXBvbmVudD4odGhpcy5pdGVtLCBDaGVja0JveENvbXBvbmVudCwgdGhpcy5ncm91cCwgY2hlY2tCb3gpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8bmctY29udGFpbmVyICNJdGVtPjwvbmctY29udGFpbmVyPlxyXG4iXX0=
|