@posiwise/resource-contact-us 0.0.4 → 0.0.6
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/esm2022/index.mjs +4 -10
- package/esm2022/lib/demo-cards/demo-cards.component.mjs +101 -0
- package/esm2022/lib/demo-cards/demo-cards.module.mjs +44 -0
- package/esm2022/lib/resource-contact-us/resource-contact-us.component.mjs +3 -3
- package/esm2022/lib/resource-contact-us/resource-contact-us.module.mjs +94 -0
- package/esm2022/lib/shared/resource-modal.interface.mjs +1 -1
- package/fesm2022/posiwise-resource-contact-us.mjs +159 -465
- package/fesm2022/posiwise-resource-contact-us.mjs.map +1 -1
- package/index.d.ts +3 -9
- package/lib/demo-cards/demo-cards.component.d.ts +33 -0
- package/lib/demo-cards/demo-cards.module.d.ts +14 -0
- package/lib/resource-contact-us/resource-contact-us.component.d.ts +1 -1
- package/lib/resource-contact-us/resource-contact-us.module.d.ts +17 -0
- package/package.json +1 -1
- package/esm2022/lib/custom-uploader/custom-uploader.component.mjs +0 -107
- package/esm2022/lib/field-error-display/field-error-display.component.mjs +0 -16
- package/esm2022/lib/field-error-display/field-error-display.module.mjs +0 -23
- package/esm2022/lib/image-cropper/image-cropper.component.mjs +0 -92
- package/esm2022/lib/image-cropper/profile-image-cropper.module.mjs +0 -45
- package/esm2022/lib/resource-contact-us/shared-contact-us.module.mjs +0 -28
- package/esm2022/lib/resource-header/edit-navbar-modal.component.mjs +0 -195
- package/esm2022/lib/resource-header/resource-header.component.mjs +0 -225
- package/esm2022/lib/resource-header/shared-header.module.mjs +0 -34
- package/fesm2022/posiwise-resource-contact-us-edit-navbar-modal.component-jSKqyC6g.mjs +0 -197
- package/fesm2022/posiwise-resource-contact-us-edit-navbar-modal.component-jSKqyC6g.mjs.map +0 -1
- package/lib/custom-uploader/custom-uploader.component.d.ts +0 -35
- package/lib/field-error-display/field-error-display.component.d.ts +0 -7
- package/lib/field-error-display/field-error-display.module.d.ts +0 -13
- package/lib/image-cropper/image-cropper.component.d.ts +0 -30
- package/lib/image-cropper/profile-image-cropper.module.d.ts +0 -19
- package/lib/resource-contact-us/shared-contact-us.module.d.ts +0 -17
- package/lib/resource-header/edit-navbar-modal.component.d.ts +0 -22
- package/lib/resource-header/resource-header.component.d.ts +0 -46
- package/lib/resource-header/shared-header.module.d.ts +0 -15
|
@@ -7,8 +7,8 @@ import { AdminService } from '@posiwise/admin-module-utils';
|
|
|
7
7
|
import { AppBaseComponent } from '@posiwise/app-base-component';
|
|
8
8
|
import { AbTestService, AuthService, ValidationService } from '@posiwise/common-services';
|
|
9
9
|
import { HelperService } from '@posiwise/helper-service';
|
|
10
|
-
import { CustomUploaderComponent } from '@posiwise/utils';
|
|
11
10
|
import { CrmService } from '@posiwise/smart-crm-shared';
|
|
11
|
+
import { CustomUploaderComponent } from '@posiwise/utils';
|
|
12
12
|
import { StatusCodes } from 'http-status-codes';
|
|
13
13
|
import Swal from 'sweetalert2';
|
|
14
14
|
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
|
|
@@ -20,7 +20,7 @@ import * as i4 from "@angular/platform-browser";
|
|
|
20
20
|
import * as i5 from "@posiwise/admin-module-utils";
|
|
21
21
|
import * as i6 from "@ng-bootstrap/ng-bootstrap";
|
|
22
22
|
import * as i7 from "@angular/common";
|
|
23
|
-
import * as i8 from "
|
|
23
|
+
import * as i8 from "@posiwise/utils";
|
|
24
24
|
import * as i9 from "primeng/dropdown";
|
|
25
25
|
import * as i10 from "ngx-captcha";
|
|
26
26
|
import * as i11 from "@angular/router";
|
|
@@ -508,4 +508,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
508
508
|
}], userLoggedIn: [{
|
|
509
509
|
type: Input
|
|
510
510
|
}] } });
|
|
511
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtY29udGFjdC11cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Jlc291cmNlLWNvbnRhY3QtdXMvc3JjL2xpYi9yZXNvdXJjZS1jb250YWN0LXVzL3Jlc291cmNlLWNvbnRhY3QtdXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9yZXNvdXJjZS1jb250YWN0LXVzL3NyYy9saWIvcmVzb3VyY2UtY29udGFjdC11cy9yZXNvdXJjZS1jb250YWN0LXVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFLTCxXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBb0IsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1B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STtzQkFBWixLQUFLO2dCQUdHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuaW1wb3J0IHsgQWRtaW5TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2FkbWluLW1vZHVsZS11dGlscyc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYlRlc3RTZXJ2aWNlLCBBdXRoU2VydmljZSwgVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2hlbHBlci1zZXJ2aWNlJztcbmltcG9ydCB7IEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL3V0aWxzJztcbmltcG9ydCB7IENybVNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2Uvc21hcnQtY3JtLXNoYXJlZCc7XG5cbmltcG9ydCB7IFN0YXR1c0NvZGVzIH0gZnJvbSAnaHR0cC1zdGF0dXMtY29kZXMnO1xuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xuXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcblxuaW1wb3J0IHsgUmVzb3VyY2VNb2RhbENvbnRleHQgfSBmcm9tICcuLi9zaGFyZWQvcmVzb3VyY2UtbW9kYWwuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy10cmlhbC00LWNvbnRhY3QtdXMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZXNvdXJjZS1jb250YWN0LXVzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9yZXNvdXJjZS1jb250YWN0LXVzLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVHJpYWw0Q29udGFjdFVzQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG4gICAgQFZpZXdDaGlsZCgnZm9vdGVyU2VjdGlvbicsIHsgc3RhdGljOiB0cnVlIH0pIGZvb3RlclNlY3Rpb24hOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2Jvb2tNZWV0aW5nJywgeyBzdGF0aWM6IHRydWUgfSkgY29udGVudDogVGVtcGxhdGVSZWY8UmVzb3VyY2VNb2RhbENvbnRleHQ+O1xuICAgIEBWaWV3Q2hpbGQoJ2VkaXRGb290ZXJMaW5rc01vZGFsJykgZWRpdEZvb3RlckxpbmtzTW9kYWw6IFRlbXBsYXRlUmVmPEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50PjtcbiAgICBAVmlld0NoaWxkKCdsb2dvTW9kYWwnKSBsb2dvTW9kYWw6IFRlbXBsYXRlUmVmPEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50PjtcbiAgICBAVmlld0NoaWxkKCdsb2dvVXBsb2FkZXInKSBsb2dvVXBsb2FkZXI6IEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ2h1YnNwb3RFZGl0TW9kYWwnKSBodWJzcG90RWRpdE1vZGFsOiBUZW1wbGF0ZVJlZjxSZXNvdXJjZU1vZGFsQ29udGV4dD47XG4gICAgQFZpZXdDaGlsZCgnc29jaWFsRWRpdE1vZGFsJykgc29jaWFsRWRpdE1vZGFsOiBUZW1wbGF0ZVJlZjxDdXN0b21VcGxvYWRlckNvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZCgncXVlc3Rpb25zRWRpdE1vZGFsJykgcXVlc3Rpb25zRWRpdE1vZGFsOiBUZW1wbGF0ZVJlZjxDdXN0b21VcGxvYWRlckNvbXBvbmVudD47XG5cbiAgICBlZGl0aW5nUXVlc3Rpb25zID0gW107XG4gICAgaXNIdWJzcG90UmVhZHk6IGJvb2xlYW47XG5cbiAgICBpc0Zvb3RlclZpc2libGUgPSBmYWxzZTtcbiAgICBwcml2YXRlIG9ic2VydmVyPzogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBvcGVuUXVlc3Rpb25zRWRpdE1vZGFsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZWRpdGluZ1F1ZXN0aW9ucyA/PyBbXSkpO1xuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMucXVlc3Rpb25zRWRpdE1vZGFsLCB7IGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbGcnIH0pO1xuICAgIH1cblxuICAgIGVkaXRpbmdZb3V0dWJlVXJsOiBzdHJpbmc7XG4gICAgZWRpdGluZ0xpbmtlZEluVXJsOiBzdHJpbmc7XG4gICAgZWRpdGluZ0NvbXBhbnlOYW1lOiBzdHJpbmc7XG5cbiAgICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gICAgcmVjYXB0Y2hhID0gbnVsbDtcblxuICAgIHByZXZpZXdEYXRhO1xuXG4gICAgQElucHV0KCkgc3Vic2NyaXB0aW9uSWQgPSB0aGlzLmFwcENvbmZpZy5jcm0uc3Vic2NyaXB0aW9uX2lkO1xuICAgIEBJbnB1dCgpIHNvdXJjZUlkID0gdGhpcy5hcHBDb25maWcuY3JtLnNvdXJjZV9pZDtcbiAgICBASW5wdXQoKSBtYXN0ZXJTdWJzY3JpcHRpb25JZCA9IHRoaXMuYXBwQ29uZmlnLm1hc3Rlcl9zdWJzY3JpcHRpb24uc3Vic2NyaXB0aW9uX2lkO1xuICAgIEBJbnB1dCgpIGV4cGVyaW1lbnROYW1lO1xuICAgIEBJbnB1dCgpIG1pY3Jvc2VydmljZU5hbWU7XG4gICAgQElucHV0KCkgc2hhcmROYW1lO1xuICAgIEBJbnB1dCgpIHVzZXI6IFVzZXI7XG5cbiAgICBjYW5FZGl0UmVzb3VyY2VzVmFsdWUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSB1c2VyTG9nZ2VkSW46IGJvb2xlYW47XG5cbiAgICBpZDtcblxuICAgIGxvZ28gPSB0aGlzLmFwcENvbmZpZz8uY29tcGFueT8ubG9nb3M/Lm1haW5fY29udHJhc3Q/LnVybDtcbiAgICB0cmlhbEJnSW1hZ2UyID0gdGhpcy5hcHBDb25maWc/LnNpZ251cF9jb25maWcudHJpYWw/LmltYWdlX2JnMj8udXJsO1xuICAgIHRvc0lkID0gdGhpcy5hcHBDb25maWc/Lm1haW5fdG9zX2lkO1xuICAgIGRlc2NyaXB0aW9uID0gdGhpcy5hcHBDb25maWcuY29tcGFueS5kZXNjcmlwdGlvbjtcbiAgICBlbWFpbCA9IHRoaXMuYXBwQ29uZmlnLmNvbXBhbnkuZW1haWw7XG4gICAgY29tcGFueU5hbWUgPSB0aGlzLmFwcENvbmZpZy5jb21wYW55Lm5hbWU7XG4gICAgc3RyZWV0ID0gdGhpcy5hcHBDb25maWcuY29tcGFueS5zdHJlZXQ7XG4gICAgcXVlc3Rpb25zID0gdGhpcy5hcHBDb25maWc/LnBhZ2VzX2NvbmZpZz8uY29udGFjdF91cz8ucXVlc3Rpb25zO1xuICAgIGh1YnNwb3QgPSB0aGlzLmFwcENvbmZpZz8ucGFnZXNfY29uZmlnPy5jb250YWN0X3VzPy5odWJzcG90O1xuICAgIGZvb3RlckxpbmtzID0gdGhpcy5hcHBDb25maWc/LnBhZ2VzX2NvbmZpZz8uZm9vdGVyX2xpbmtzPy5pdGVtcztcblxuICAgIGZvb3RlckxpbmtzRGF0YSA9IHRoaXMuYXBwQ29uZmlnPy5wYWdlc19jb25maWc/LmZvb3Rlcl9saW5rcztcblxuICAgIHlvdXR1YmVVcmwgPSB0aGlzLmFwcENvbmZpZy5zb2NpYWw/LnlvdXR1YmVfdXJsO1xuICAgIGxpbmtlZEluVXJsID0gdGhpcy5hcHBDb25maWcuc29jaWFsPy5saW5rZWRpbl91cmw7XG4gICAgZG9tYWluSWQgPSB0aGlzLmFwcENvbmZpZy5kb21haW5faWQ7XG5cbiAgICBlZGl0aW5nRW1haWwgPSB0aGlzLmVtYWlsO1xuICAgIGlzRWRpdGluZ0VtYWlsID0gZmFsc2U7XG5cbiAgICBlZGl0aW5nSHVic3BvdEh0bWw6IHN0cmluZztcbiAgICBlZGl0aW5nSHVic3BvdElkOiBzdHJpbmc7XG4gICAgY2FwdGNoYUtleVYyOiBzdHJpbmc7XG4gICAgaHVic3BvdEh0bWw7XG5cbiAgICBhYlRlc3RzO1xuXG4gICAgc3VibWl0dGVkID0gZmFsc2U7XG4gICAgaXNDYXB0Y2hhVmVyaWZpZWQgPSBmYWxzZTtcbiAgICBpc0VtYWlsVmFsaWQgPSB0cnVlO1xuICAgIGlzRWRpdGluZ1N0cmVldCA9IGZhbHNlO1xuXG4gICAgcHNhT3B0aW9ucztcblxuICAgIHF1ZXN0aW9uO1xuXG4gICAgZWRpdGluZ0Zvb3RlckxpbmtzID0ge1xuICAgICAgICBpdGVtczogW11cbiAgICB9O1xuICAgIGVkaXRpbmdTdHJlZXQ6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNybVNlcnZpY2U6IENybVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhYlRlc3RTZXJ2aWNlOiBBYlRlc3RTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGFsU2VydmljZTogTmdiTW9kYWwsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnRcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgICAgICB0aGlzLmNhcHRjaGFLZXlWMiA9IHRoaXMuYXBwQ29uZmlnLmludGVncmF0aW9ucy5jYXB0Y2hhX2tleV9WMjtcbiAgICAgICAgdGhpcy5jb250YWN0VXNGb3JtKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gKHRoaXMuaXNIdWJzcG90UmVhZHkgPSB0cnVlKSwgMjAwMCk7XG4gICAgICAgIGlmICh0aGlzLnVzZXJMb2dnZWRJbikge1xuICAgICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSQoJ3Byb2R1Y3QnKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gcmVzID8gSlNPTi5wYXJzZShyZXMpIDogbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmlkID0gZGF0YT8uc3Vic2NyaXB0aW9uSWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByZXZpZXdEYXRhID0ge1xuICAgICAgICAgICAgdXJsOiB0aGlzLmxvZ28sXG4gICAgICAgICAgICBuYW1lOiAnbG9nb19tYWluX2NvbnRyYXN0LnBuZydcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5lZGl0aW5nU3RyZWV0ID0gdGhpcy5zdHJlZXQ7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuYXBwQ29uZmlnLnBhZ2VzX2NvbmZpZz8uYWJfdGVzdHMpKSB7XG4gICAgICAgICAgICB0aGlzLmFiVGVzdHMgPSB0aGlzLmFwcENvbmZpZy5wYWdlc19jb25maWcuYWJfdGVzdHMuZmluZChcbiAgICAgICAgICAgICAgICB0ZXN0ID0+IHRlc3QuZGVzY3JpcHRpb24gPT09ICdjb250YWN0LXVzJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMubWljcm9zZXJ2aWNlTmFtZSA9IHRoaXMuYWJUZXN0cz8ubWljcm9zZXJ2aWNlX25hbWU7XG4gICAgICAgICAgICB0aGlzLmV4cGVyaW1lbnROYW1lID0gdGhpcy5hYlRlc3RzPy5leHBlcmltZW50X25hbWU7XG4gICAgICAgICAgICB0aGlzLnNoYXJkTmFtZSA9IHRoaXMuYWJUZXN0cz8uZGJfc2hhcmQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmb290ZXJJdGVtID0gdGhpcy5nZXRGb290ZXJIdWJzcG90Rm9ybSgpO1xuICAgICAgICBpZiAoZm9vdGVySXRlbT8uZGl2KSB7XG4gICAgICAgICAgICAvLyBOT1NPTkFSOiBUcnVzdGVkIEhUTUwgY29udGVudCBpcyBoYW5kbGVkIHNhZmVseSBoZXJlXG4gICAgICAgICAgICB0aGlzLmh1YnNwb3RIdG1sID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoZm9vdGVySXRlbS5kaXYpOyAvLyBOT1NPTkFSXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lZGl0aW5nUXVlc3Rpb25zID0gdGhpcy5xdWVzdGlvbnM7XG4gICAgICAgIHRoaXMucXVlc3Rpb24gPSB0aGlzLnF1ZXN0aW9ucz8uWzBdPy5xdWVzdGlvbjtcbiAgICAgICAgdGhpcy5wc2FPcHRpb25zID0gW1xuICAgICAgICAgICAgeyBsYWJlbDogJ1NlbGVjdCBQU0EnLCB2YWx1ZTogJycgfSxcbiAgICAgICAgICAgIC4uLih0aGlzLnF1ZXN0aW9ucz8uWzBdPy5vcHRpb25zID8/IFtdKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIocSA9PiBxLm9wdGlvbj8udHJpbSgpKVxuICAgICAgICAgICAgICAgIC5tYXAocSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogcS5vcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBxLm9wdGlvblxuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICBdO1xuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzWyd1c2VyJ10gfHwgY2hhbmdlc1sndXNlckxvZ2dlZEluJ10pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnVzZXJMb2dnZWRJbiAmJiB0aGlzLnVzZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhbkVkaXRSZXNvdXJjZXNWYWx1ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3BlbkxvZ29FZGl0TW9kYWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5sb2dvTW9kYWwsIHtcbiAgICAgICAgICAgIGNlbnRlcmVkOiB0cnVlLFxuICAgICAgICAgICAgc2l6ZTogJ21kJ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvblNhdmVGaWxlKGV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7IHN1YnNjcmlwdGlvbl9pZDogdGhpcy5zdWJzY3JpcHRpb25JZCB9O1xuXG4gICAgICAgIGlmIChldmVudC5maWxlIGluc3RhbmNlb2YgRmlsZSkge1xuICAgICAgICAgICAgZGF0YVtldmVudC5uYW1lXSA9IGV2ZW50LmZpbGU7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuZmlsZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgZGF0YVtgcmVtb3ZlXyR7ZXZlbnQubmFtZX1gXSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBkYXRhKSB7XG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoa2V5LCBkYXRhW2tleV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2UudXBkYXRlRG9tYWluQ29uZmlnKHRoaXMuZG9tYWluSWQsIGZvcm1EYXRhKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmZpbGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ28gPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGV2ZW50LmZpbGUpO1xuICAgICAgICAgICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLmRpc21pc3NBbGwoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2VzcyhldmVudC5maWxlID8gJ0xvZ28gdXBkYXRlZCcgOiAnTG9nbyByZW1vdmVkJyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNhdmVRdWVzdGlvbnMobW9kYWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdXBkYXRlRGF0YSA9IHtcbiAgICAgICAgICAgIGNvbnRhY3RfdXM6IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLmFwcENvbmZpZy5wYWdlc19jb25maWc/LmNvbnRhY3RfdXMsXG4gICAgICAgICAgICAgICAgcXVlc3Rpb25zOiB0aGlzLmVkaXRpbmdRdWVzdGlvbnNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25faWQ6IHRoaXMuaWRcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmFkbWluU2VydmljZS51cGRhdGVEb21haW5Db25maWcodGhpcy5kb21haW5JZCwgdXBkYXRlRGF0YSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucXVlc3Rpb25zID0gdGhpcy5lZGl0aW5nUXVlc3Rpb25zO1xuICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKCdRdWVzdGlvbnMgdXBkYXRlZCcpO1xuICAgICAgICAgICAgdGhpcy5xdWVzdGlvbiA9IHRoaXMuZWRpdGluZ1F1ZXN0aW9ucz8uWzBdPy5xdWVzdGlvbjtcbiAgICAgICAgICAgIGlmICh0aGlzLmVkaXRpbmdRdWVzdGlvbnM/LlswXT8ub3B0aW9ucz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMucHNhT3B0aW9ucyA9IFtcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ1NlbGVjdCBQU0EnLCB2YWx1ZTogJycgfSxcbiAgICAgICAgICAgICAgICAgICAgLi4uKHRoaXMucXVlc3Rpb25zPy5bMF0/Lm9wdGlvbnMgPz8gW10pXG4gICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKHEgPT4gcS5vcHRpb24/LnRyaW0oKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAocSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBxLm9wdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcS5vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucHNhT3B0aW9ucyA9IFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtb2RhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhZGROZXdRdWVzdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0aW5nUXVlc3Rpb25zLnB1c2goeyBxdWVzdGlvbjogJycsIG9wdGlvbnM6IFtdIH0pO1xuICAgIH1cblxuICAgIGFkZFF1ZXN0aW9uT3B0aW9uKHFJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdGluZ1F1ZXN0aW9uc1txSW5kZXhdLm9wdGlvbnMucHVzaCh7IG9wdGlvbjogJycgfSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlUXVlc3Rpb25PcHRpb24ocUluZGV4OiBudW1iZXIsIG9wdEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0aW5nUXVlc3Rpb25zW3FJbmRleF0ub3B0aW9ucy5zcGxpY2Uob3B0SW5kZXgsIDEpO1xuICAgIH1cblxuICAgIGRyb3BRdWVzdGlvbnMoZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuZWRpdGluZ1F1ZXN0aW9ucywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB9XG5cbiAgICBkcm9wUXVlc3Rpb25PcHRpb25zKHFJbmRleDogbnVtYmVyLCBldmVudCk6IHZvaWQge1xuICAgICAgICBtb3ZlSXRlbUluQXJyYXkoXG4gICAgICAgICAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbnNbcUluZGV4XS5vcHRpb25zLFxuICAgICAgICAgICAgZXZlbnQucHJldmlvdXNJbmRleCxcbiAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRJbmRleFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9wZW5Tb2NpYWxFZGl0TW9kYWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdGluZ1lvdXR1YmVVcmwgPSB0aGlzLnlvdXR1YmVVcmw7XG4gICAgICAgIHRoaXMuZWRpdGluZ0xpbmtlZEluVXJsID0gdGhpcy5saW5rZWRJblVybDtcbiAgICAgICAgdGhpcy5lZGl0aW5nQ29tcGFueU5hbWUgPSB0aGlzLmNvbXBhbnlOYW1lO1xuXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5zb2NpYWxFZGl0TW9kYWwsIHsgY2VudGVyZWQ6IHRydWUsIHNpemU6ICdsZycgfSk7XG4gICAgfVxuXG4gICAgc2F2ZVNvY2lhbExpbmtzKG1vZGFsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZURhdGEgPSB7XG4gICAgICAgICAgICB5b3V0dWJlX3VybDogdGhpcy5lZGl0aW5nWW91dHViZVVybCxcbiAgICAgICAgICAgIGxpbmtlZGluX3VybDogdGhpcy5lZGl0aW5nTGlua2VkSW5VcmwsXG4gICAgICAgICAgICBjb21wYW55X25hbWU6IHRoaXMuZWRpdGluZ0NvbXBhbnlOYW1lLFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLmlkXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2UudXBkYXRlRG9tYWluQ29uZmlnKHRoaXMuZG9tYWluSWQsIHVwZGF0ZURhdGEpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnlvdXR1YmVVcmwgPSB0aGlzLmVkaXRpbmdZb3V0dWJlVXJsO1xuICAgICAgICAgICAgdGhpcy5saW5rZWRJblVybCA9IHRoaXMuZWRpdGluZ0xpbmtlZEluVXJsO1xuICAgICAgICAgICAgdGhpcy5jb21wYW55TmFtZSA9IHRoaXMuZWRpdGluZ0NvbXBhbnlOYW1lO1xuICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKCdTb2NpYWwgbGlua3MgYW5kIGNvbXBhbnkgbmFtZSB1cGRhdGVkJyk7XG4gICAgICAgICAgICBtb2RhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBoYXNWYWxpZE9wdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXN0aW9ucz8uWzBdPy5vcHRpb25zPy5zb21lKG9wdCA9PiBvcHQub3B0aW9uPy50cmltKCkpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy53YXRjaElmcmFtZUhlaWdodENoYW5nZSgpO1xuICAgICAgICB0aGlzLm9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgICAgICAgKFtlbnRyeV0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZW50cnkuaXNJbnRlcnNlY3RpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0Zvb3RlclZpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyB0aHJlc2hvbGQ6IDAuMSB9XG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMuZm9vdGVyU2VjdGlvbi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBvcGVuRWRpdEZvb3RlckxpbmtzTW9kYWwoY29udGVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvb3RlckxpbmtzRGF0YSA9IHRoaXMuZm9vdGVyTGlua3NEYXRhID8/IHt9O1xuICAgICAgICB0aGlzLmZvb3RlckxpbmtzRGF0YS5pdGVtcyA9IHRoaXMuZm9vdGVyTGlua3NEYXRhLml0ZW1zID8/IFtdO1xuICAgICAgICB0aGlzLmVkaXRpbmdGb290ZXJMaW5rcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5mb290ZXJMaW5rc0RhdGEpKTtcblxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKGNvbnRlbnQsIHtcbiAgICAgICAgICAgIHNpemU6ICdsZycsXG4gICAgICAgICAgICBjZW50ZXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIHdpbmRvd0NsYXNzOiAnbW9kYWwtaG9sZGVyJ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHdhdGNoSWZyYW1lSGVpZ2h0Q2hhbmdlKCkge1xuICAgICAgICBjb25zdCBpZnJhbWUgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5odWJzcG90LWNvbnRhaW5lcicpO1xuICAgICAgICBpZiAoIWlmcmFtZSkgcmV0dXJuO1xuICAgICAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0hlaWdodCA9IGlmcmFtZVsnb2Zmc2V0SGVpZ2h0J107XG4gICAgICAgICAgICBpZiAobmV3SGVpZ2h0ID09PSAyNTApIHtcbiAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGxBYlRlc3RGaW5pc2goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMzAwKTtcbiAgICB9XG5cbiAgICAvLyBOZXcgbWV0aG9kIHRvIGhhbmRsZSBIdWJzcG90IGNvbnRlbnQgbG9hZGluZ1xuICAgIG9uSHVic3BvdExvYWQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2NvbnRlbnQtbG9hZGVkJyk7XG5cbiAgICAgICAgLy8gT3B0aW9uYWw6IFRyaWdnZXIgbGF5b3V0IHJlY2FsY3VsYXRpb25cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Jlc2l6ZScpKTtcbiAgICAgICAgfSwgMTAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbGxBYlRlc3RGaW5pc2goKSB7XG4gICAgICAgIGlmICh0aGlzLmV4cGVyaW1lbnROYW1lICYmIHRoaXMubWljcm9zZXJ2aWNlTmFtZSkge1xuICAgICAgICAgICAgdGhpcy5hYlRlc3RTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmZpbmlzaEFCRXhwZXJpbWVudCh0aGlzLmV4cGVyaW1lbnROYW1lLCB0aGlzLm1pY3Jvc2VydmljZU5hbWUpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5jb250ZW50LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjZW50ZXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd0NsYXNzOiAnbW9kYWwtaG9sZGVyJ1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnRhY3RVc0Zvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgZmlyc3RfbmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgIGxhc3RfbmFtZTogWycnXSxcbiAgICAgICAgICAgIGNvbXBhbnk6IFsnJ10sXG4gICAgICAgICAgICBwc2E6IFsnJ10sXG4gICAgICAgICAgICBlbnF1aXJ5OiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgZW1haWw6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25TdWJtaXQoKSB7XG4gICAgICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5pc0NhcHRjaGFWZXJpZmllZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlU3VjY2Vzcyh0b2tlbjogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS52YWxpZGF0ZVJlQ2FwdGNoYSh0b2tlbikuc3Vic2NyaWJlKChpc1N1Y2Nlc3M6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXNTdWNjZXNzICYmIHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geyAuLi50aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSB9O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRFbnF1aXJ5ID0gYCR7ZGF0YS5lbnF1aXJ5fTsgUXVlc3Rpb246ICR7dGhpcy5xdWVzdGlvbn07IEFuc3dlcjogJHtkYXRhLnBzYX1gO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3N0RGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0X25hbWU6IGAke2RhdGEuZmlyc3RfbmFtZX1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9uYW1lOiBgJHtkYXRhLmZpcnN0X25hbWV9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhbnk6IGAke2RhdGEuZmlyc3RfbmFtZX1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW1haWw6IGAke2RhdGEuZW1haWx9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVucXVpcnk6IHRoaXMucHNhT3B0aW9ucy5sZW5ndGggPyBmb3JtYXR0ZWRFbnF1aXJ5IDogYCR7ZGF0YS5lbnF1aXJ5fWAsXG4gICAgICAgICAgICAgICAgICAgICAgICBwc2E6IGRhdGEucHNhLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLnN1YnNjcmlwdGlvbklkLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3JtX3NvdXJjZV9pZDogdGhpcy5zb3VyY2VJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hc3Rlcl9zdWJzY3JpcHRpb25faWQ6IHRoaXMubWFzdGVyU3Vic2NyaXB0aW9uSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlfdXNlcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc19tYW51YWw6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcm1TZXJ2aWNlLnBvc3RDcm1MZWFkKHRoaXMuc3Vic2NyaXB0aW9uSWQsIHBvc3REYXRhKS5zdWJzY3JpYmUocmVzcCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgZXhhbXBsZSBvZiBzbmlwcGV0IHRvIGNsb3NlIHRoZSBleHBlcmltZW50IGFuZCB0cmFjayBpbiBHQVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3A/LnN0YXR1cyA9PT0gU3RhdHVzQ29kZXMuT0spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdvb2dsZUFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmV3LWxlYWQtcmVnaXN0cmF0aW9uJywgLy8gY2F0ZWdvcnksIGVnOiB2aWRlb3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N1YnNjcmliZS1zdWNjZXNzJywgLy8gYWN0aW9uLCBlZzogUGxheVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29taW5nLXNvb24tdGhyZWUnLCAvLyBsYWJlbCwgZWc6IENoYXBweVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxIC8vIHZhbHVlLCBlZzogMTBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmV4cGVyaW1lbnROYW1lICYmIHRoaXMubWljcm9zZXJ2aWNlTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFiVGVzdFNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5pc2hBQkV4cGVyaW1lbnQodGhpcy5leHBlcmltZW50TmFtZSwgdGhpcy5taWNyb3NlcnZpY2VOYW1lKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmNvbnRlbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VudGVyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd0NsYXNzOiAnbW9kYWwtaG9sZGVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3dhbC5maXJlKHJlc3AubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzQ2FwdGNoYVZlcmlmaWVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2Nyb2xsVG9Ub3AoKSB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA9IDA7XG4gICAgfVxuXG4gICAgZ2V0Rm9vdGVySHVic3BvdEZvcm0oKSB7XG4gICAgICAgIGlmICghdGhpcy5odWJzcG90Py5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHVic3BvdC5maW5kKGl0ZW0gPT4gaXRlbS5wb3NpdGlvbiA9PT0gJ2Zvb3RlcicpID8/IG51bGw7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVUb0Jvb2tNZWV0aW5nKCkge1xuICAgICAgICBjb25zdCBib29rRGVtb1VybCA9XG4gICAgICAgICAgICB0aGlzLmFwcENvbmZpZz8uc2lnbnVwX2NvbmZpZz8udHJpYWw/LmJvb2tfZGVtb191cmwgPz9cbiAgICAgICAgICAgICdodHRwczovL2NhbGVuZGx5LmNvbS9jbG91ZG9saXZlJztcbiAgICAgICAgd2luZG93Lm9wZW4oYm9va0RlbW9VcmwsICdfYmxhbmsnLCAnbm9yZWZlcnJlciBub29wZW5lcicpO1xuICAgIH1cblxuICAgIHZhbGlkYXRlRW1haWwoKSB7XG4gICAgICAgIGNvbnN0IGVtYWlsID0gdGhpcy5mb3JtLmdldCgnZW1haWwnKS52YWx1ZTtcbiAgICAgICAgaWYgKGVtYWlsKSB7XG4gICAgICAgICAgICB0aGlzLmlzRW1haWxWYWxpZCA9IFZhbGlkYXRpb25TZXJ2aWNlLmVtYWlsKGVtYWlsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNFbWFpbFZhbGlkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFkZEZvb3RlckxpbmsoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdGluZ0Zvb3RlckxpbmtzLml0ZW1zLnB1c2goe1xuICAgICAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICAgICAgcGF0aDogJycsXG4gICAgICAgICAgICBzdWJ0aXRsZXM6IFtdXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZUZvb3RlckxpbmsoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRpbmdGb290ZXJMaW5rcy5pdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cblxuICAgIGFkZFN1YnRpdGxlKGZvb3RlckluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0aW5nRm9vdGVyTGlua3MuaXRlbXNbZm9vdGVySW5kZXhdLnN1YnRpdGxlcy5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgICAgIHBhdGg6ICcnXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZVN1YnRpdGxlKGZvb3RlckluZGV4OiBudW1iZXIsIHN1YnRpdGxlSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRpbmdGb290ZXJMaW5rcy5pdGVtc1tmb290ZXJJbmRleF0uc3VidGl0bGVzLnNwbGljZShzdWJ0aXRsZUluZGV4LCAxKTtcbiAgICB9XG5cbiAgICBkcm9wRm9vdGVyTGlua3MoZXZlbnQpIHtcbiAgICAgICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuZWRpdGluZ0Zvb3RlckxpbmtzLml0ZW1zLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIH1cblxuICAgIGRyb3BTdWJ0aXRsZXMoZm9vdGVySW5kZXg6IG51bWJlciwgZXZlbnQpIHtcbiAgICAgICAgbW92ZUl0ZW1JbkFycmF5KFxuICAgICAgICAgICAgdGhpcy5lZGl0aW5nRm9vdGVyTGlua3MuaXRlbXNbZm9vdGVySW5kZXhdLnN1YnRpdGxlcyxcbiAgICAgICAgICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXG4gICAgICAgICAgICBldmVudC5jdXJyZW50SW5kZXhcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzYXZlRm9vdGVyTGlua3MobW9kYWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdXBkYXRlZENvbmZpZyA9IHtcbiAgICAgICAgICAgIGZvb3Rlcl9saW5rczogdGhpcy5lZGl0aW5nRm9vdGVyTGlua3MsXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25faWQ6IHRoaXMuaWRcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgLnVwZGF0ZURvbWFpbkNvbmZpZyh0aGlzLmFwcENvbmZpZz8uZG9tYWluX2lkLCB1cGRhdGVkQ29uZmlnKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKCdGb290ZXIgbGlua3MgdXBkYXRlZCcpO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9vdGVyTGlua3MgPSBbLi4udGhpcy5lZGl0aW5nRm9vdGVyTGlua3MuaXRlbXNdO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9vdGVyTGlua3NEYXRhID0geyAuLi50aGlzLmVkaXRpbmdGb290ZXJMaW5rcyB9O1xuICAgICAgICAgICAgICAgIG1vZGFsLmNsb3NlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzYXZlRW1haWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZW1haWwgPSB0aGlzLmVkaXRpbmdFbWFpbDtcblxuICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgLnVwZGF0ZURvbWFpbkNvbmZpZyh0aGlzLmFwcENvbmZpZz8uZG9tYWluX2lkLCB7XG4gICAgICAgICAgICAgICAgY29tcGFueV9lbWFpbDogdGhpcy5lZGl0aW5nRW1haWwsXG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLmlkXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKCdFbWFpbCB1cGRhdGVkJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0VkaXRpbmdFbWFpbCA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2F2ZVN0cmVldCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2VcbiAgICAgICAgICAgIC51cGRhdGVEb21haW5Db25maWcodGhpcy5hcHBDb25maWc/LmRvbWFpbl9pZCwge1xuICAgICAgICAgICAgICAgIGNvbXBhbnlfYWRkcmVzczogdGhpcy5lZGl0aW5nU3RyZWV0LFxuICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9pZDogdGhpcy5pZFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2VzcygnU3RyZWV0IHVwZGF0ZWQnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0cmVldCA9IHRoaXMuZWRpdGluZ1N0cmVldDtcbiAgICAgICAgICAgICAgICB0aGlzLmlzRWRpdGluZ1N0cmVldCA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2FuY2VsU3RyZWV0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRpbmdTdHJlZXQgPSB0aGlzLnN0cmVldDtcbiAgICAgICAgdGhpcy5pc0VkaXRpbmdTdHJlZXQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvcGVuSHVic3BvdEVkaXRNb2RhbChmb290ZXJJdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdGluZ0h1YnNwb3RIdG1sID0gZm9vdGVySXRlbS5kaXY7XG4gICAgICAgIHRoaXMuZWRpdGluZ0h1YnNwb3RJZCA9IGZvb3Rlckl0ZW0uaWQ7XG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5odWJzcG90RWRpdE1vZGFsLCB7IGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbGcnIH0pO1xuICAgIH1cblxuICAgIHNhdmVIdWJzcG90SHRtbChtb2RhbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB1cGRhdGVkQ29uZmlnID0ge1xuICAgICAgICAgICAgY29udGFjdF91czoge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuYXBwQ29uZmlnPy5wYWdlc19jb25maWc/LmNvbnRhY3RfdXMsXG4gICAgICAgICAgICAgICAgaHVic3BvdDogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJzc0MjM2MzknLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdmb290ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGl2OiB0aGlzLmVkaXRpbmdIdWJzcG90SHRtbFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9pZDogdGhpcy5pZFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlXG4gICAgICAgICAgICAudXBkYXRlRG9tYWluQ29uZmlnKHRoaXMuYXBwQ29uZmlnPy5kb21haW5faWQsIHVwZGF0ZWRDb25maWcpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBOT1NPTkFSOiBUcnVzdGVkIEhUTUwgY29udGVudCBpcyBoYW5kbGVkIHNhZmVseSBoZXJlXG4gICAgICAgICAgICAgICAgdGhpcy5odWJzcG90SHRtbCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHRoaXMuZWRpdGluZ0h1YnNwb3RIdG1sKTsgLy8gTk9TT05BUlxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2VzcygnSHVic3BvdCBFbWJlZCB1cGRhdGVkJyk7XG4gICAgICAgICAgICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbiAgICBwcml2YXRlIHVwZGF0ZUNhbkVkaXRSZXNvdXJjZXNWYWx1ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYW5FZGl0UmVzb3VyY2VzVmFsdWUgPSBIZWxwZXJTZXJ2aWNlLmNhbkVkaXRSZXNvdXJjZXMoXG4gICAgICAgICAgICB0aGlzLnVzZXIsXG4gICAgICAgICAgICB0aGlzLnVzZXJMb2dnZWRJbixcbiAgICAgICAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2VcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjYW5FZGl0UmVzb3VyY2VzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYW5FZGl0UmVzb3VyY2VzVmFsdWU7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICB9XG59XG4iLCI8c2VjdGlvbiAgI2Zvb3RlclNlY3Rpb24gY2xhc3M9XCJiZy1ibGFjayB0ZXh0LXdoaXRlIHB5LTUgZm9vdGVyLXNlY3Rpb25cIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiICpuZ0lmPVwiaXNGb290ZXJWaXNpYmxlXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuXG4gICAgICA8IS0tIExFRlQgQ09MVU1OIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IG1iLTQgZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCIgW25nQ2xhc3NdPVwieyAnc2l0ZS1jb2x1bW4nOiBnZXRGb290ZXJIdWJzcG90Rm9ybSgpIH1cIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJtYi00IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWUtMiB0ZXh0LXdoaXRlXCI+U2l0ZSBNYXA6PC9zcGFuPlxuICAgICAgICAgICAgPGkgKm5nSWY9XCJjYW5FZGl0UmVzb3VyY2VzVmFsdWVcIiBjbGFzcz1cImZhIGZhLWVkaXQgaW4tcGFnZS1lZGl0LWljb24gY3Vyc29yLXBvaW50ZXIgdGV4dC13aGl0ZSBtcy0zXCIgKGNsaWNrKT1cIm9wZW5FZGl0Rm9vdGVyTGlua3NNb2RhbChlZGl0Rm9vdGVyTGlua3NNb2RhbClcIiAoa2V5ZG93bi5lbnRlcik9XCJvcGVuRWRpdEZvb3RlckxpbmtzTW9kYWwoZWRpdEZvb3RlckxpbmtzTW9kYWwpXCIgKGtleWRvd24uc3BhY2UpPVwib3BlbkVkaXRGb290ZXJMaW5rc01vZGFsKGVkaXRGb290ZXJMaW5rc01vZGFsKVwiIG5nYlRvb2x0aXA9XCJFZGl0IEZvb3RlciBMaW5rc1wiPjwvaT5cbiAgICAgICAgICA8L2gzPlxuICAgICAgICAgIDx1bCBjbGFzcz1cIm10LTRcIj5cbiAgICAgICAgICAgIDxsaSByb3V0ZXJMaW5rPVwiL1wiXG4gICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIHVzZXItaW5mby1sYWJlbCBsaW5rLWxhYmVsXCI+IEhvbWUgPC9saT5cbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgbGluayBvZiBmb290ZXJMaW5rc1wiIFtyb3V0ZXJMaW5rXT1cImxpbms/LnBhdGhcIlxuICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIHVzZXItaW5mby1sYWJlbCBsaW5rLWxhYmVsIG10LTRcIj48c3BhbiAgKm5nSWY9XCJsaW5rPy50aXRsZVwiPnt7bGluaz8udGl0bGV9fTwvc3Bhbj4gPC9saT5cbiAgICAgICAgICAgIDxsaSByb3V0ZXJMaW5rPVwiL2xvZ2luXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciB1c2VyLWluZm8tbGFiZWwgbXQtNCBsaW5rLWxhYmVsXCI+IExvZyBpbiA8L2xpPlxuICAgICAgICAgICAgPGxpIFtyb3V0ZXJMaW5rXT1cIicvcHJpdmFjeS1hbmQtdG9zLycgKyB0b3NJZFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgdXNlci1pbmZvLWxhYmVsIG10LTQgbGluay1sYWJlbFwiPiBQcml2YWN5IHN0YXRlbWVudCA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPHAgY2xhc3M9XCJhZGRyZXNzLXNlY3Rpb24gZW1haWwtc2VjdGlvbiBtYi00XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXItaW5mby1sYWJlbFwiPkVtYWlsOiA8L3NwYW4+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRWRpdGluZ0VtYWlsOyBlbHNlIGVkaXRFbWFpbFwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXItaW5mb1wiPnt7IGVtYWlsIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8aSAqbmdJZj1cImNhbkVkaXRSZXNvdXJjZXNWYWx1ZVwiIGNsYXNzPVwiZmEgZmEtZWRpdCBpbi1wYWdlLWVkaXQtaWNvbiB0ZXh0LXdoaXRlIGN1cnNvci1wb2ludGVyIG1zLTNcIiAoY2xpY2spPVwiaXNFZGl0aW5nRW1haWwgPSB0cnVlXCIgKGtleWRvd24uZW50ZXIpPVwiaXNFZGl0aW5nRW1haWwgPSB0cnVlXCIgKGtleWRvd24uc3BhY2UpPVwiaXNFZGl0aW5nRW1haWwgPSB0cnVlXCI+PC9pPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdEVtYWlsPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBkLWlubGluZSB3LWF1dG9cIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdGluZ0VtYWlsXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gYnRuLXByaW1hcnkgbXMtMlwiIChjbGljayk9XCJzYXZlRW1haWwoKVwiPlNhdmU8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gYnRuLXNlY29uZGFyeSBtcy0yXCIgKGNsaWNrKT1cImlzRWRpdGluZ0VtYWlsID0gZmFsc2VcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVtYWlsLXNlY3Rpb24gbXQtMyBhZGRyZXNzLXRleHRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXNlci1pbmZvLWxhYmVsXCI+XG4gICAgICAgICAgICAgIEFkZHJlc3M6XG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiY2FuRWRpdFJlc291cmNlc1ZhbHVlXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS1lZGl0IGluLXBhZ2UtZWRpdC1pY29uIGN1cnNvci1wb2ludGVyIG1zLTIgdGV4dC13aGl0ZVwiXG4gICAgICAgICAgICAgICAgIHRpdGxlPVwiRWRpdCBBZGRyZXNzXCJcbiAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImlzRWRpdGluZ1N0cmVldCA9IHRydWVcIlxuICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJpc0VkaXRpbmdTdHJlZXQgPSB0cnVlXCJcbiAgICAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwiaXNFZGl0aW5nU3RyZWV0ID0gdHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIDwvc3Bhbj48YnIvPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRWRpdGluZ1N0cmVldDsgZWxzZSBlZGl0U3RyZWV0QmxvY2tcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZGRyZXNzLXRleHQgdXNlci1pbmZvXCI+e3sgc3RyZWV0IH19PC9zcGFuPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFN0cmVldEJsb2NrPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtdC0zXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbVwiIFsobmdNb2RlbCldPVwiZWRpdGluZ1N0cmVldFwiIC8+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gYnRuLXByaW1hcnkgbXMtMlwiIChjbGljayk9XCJzYXZlU3RyZWV0KClcIj5TYXZlPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gYnRuLXNlY29uZGFyeSBtcy0yXCIgKGNsaWNrKT1cImNhbmNlbFN0cmVldCgpXCI+Q2FuY2VsPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxuICAgICAgICAgIDxpbWcgW3NyY109XCJsb2dvXCJcbiAgICAgICAgICAgICAgIGFsdD1cIkNvbXBhbnkgbG9nb1wiXG4gICAgICAgICAgICAgICBjbGFzcz1cImltZy1mbHVpZCBtdC00IGxvZ28taW1hZ2UgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgd2lkdGg9XCIxNjBcIlxuICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzVcIlxuICAgICAgICAgICAgICAgKGNsaWNrKT1cInNjcm9sbFRvVG9wKClcIlxuICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic2Nyb2xsVG9Ub3AoKVwiXG4gICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJzY3JvbGxUb1RvcCgpXCJcbiAgICAgICAgICAgICAgIHRpdGxlPVwiQ2xpY2sgdG8gZ28gdG8gdG9wIG9mIHBhZ2VcIiAvPlxuICAgICAgICAgIDxpICpuZ0lmPVwiY2FuRWRpdFJlc291cmNlc1ZhbHVlXCJcbiAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLWVkaXQgaW4tcGFnZS1lZGl0LWljb24gZmEtc20gbXMtMyBjdXJzb3ItcG9pbnRlciB0ZXh0LXdoaXRlIGFsaWduLXNlbGYtY2VudGVyIG10LTNcIlxuICAgICAgICAgICAgIChjbGljayk9XCJvcGVuTG9nb0VkaXRNb2RhbCgpXCJcbiAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvcGVuTG9nb0VkaXRNb2RhbCgpXCJcbiAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJvcGVuTG9nb0VkaXRNb2RhbCgpXCJcbiAgICAgICAgICAgICB0aXRsZT1cIkVkaXQgTG9nb1wiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBSSUdIVCBDT0xVTU4gLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdJZj1cImlzRm9vdGVyVmlzaWJsZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0Rm9vdGVySHVic3BvdEZvcm0oKSBhcyBmb290ZXJJdGVtOyBlbHNlIGRlZmF1bHRGb3JtXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzSHVic3BvdFJlYWR5XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImh1YnNwb3QtY29udGFpbmVyIHctMTAwIGNvbnRlbnQtbG9hZGVkXCJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImh1YnNwb3RIdG1sXCJcbiAgICAgICAgICAgICAgICAobG9hZCk9XCJvbkh1YnNwb3RMb2FkKCRldmVudClcIj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiY2FuRWRpdFJlc291cmNlc1ZhbHVlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS1lZGl0IGluLXBhZ2UtZWRpdC1pY29uIHRleHQtd2hpdGUgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbkh1YnNwb3RFZGl0TW9kYWwoZm9vdGVySXRlbSlcIlxuICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvcGVuSHVic3BvdEVkaXRNb2RhbChmb290ZXJJdGVtKVwiXG4gICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9wZW5IdWJzcG90RWRpdE1vZGFsKGZvb3Rlckl0ZW0pXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJFZGl0IEh1YnNwb3QgRW1iZWRcIj48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEZvcm0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInRleHQtd2hpdGUgbWItNFwiPiA8c3BhbiBjbGFzcz1cInRleHQtd2hpdGVcIj5HZXQgaW4gdG91Y2g6PC9zcGFuPjwvaDM+XG4gICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJjYW5FZGl0UmVzb3VyY2VzVmFsdWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtZWRpdCBpbi1wYWdlLWVkaXQtaWNvbiB0ZXh0LXdoaXRlIGN1cnNvci1wb2ludGVyIG1zLTMgbXQtMlwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5RdWVzdGlvbnNFZGl0TW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib3BlblF1ZXN0aW9uc0VkaXRNb2RhbCgpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJvcGVuUXVlc3Rpb25zRWRpdE1vZGFsKClcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwiRWRpdCBRdWVzdGlvbnNcIj48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWN0LWZvcm1cIj5cbiAgICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbWFpbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbWFpbFwiPkVtYWlsOjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1iLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImVtYWlsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8cHctZmllbGQtZXJyb3ItZGlzcGxheSBbZGlzcGxheUVycm9yXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAhZm9ybS5nZXQoJ2VtYWlsJykudmFsaWQgJiYgKGZvcm0uZ2V0KCdlbWFpbCcpLnRvdWNoZWQgfHwgc3VibWl0dGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIGVycm9yTXNnPVwiRW1haWwgaXMgcmVxdWlyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9wdy1maWVsZC1lcnJvci1kaXNwbGF5PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmlyc3RfbmFtZVwiPkZpcnN0IG5hbWU6PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImZpcnN0X25hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZmlyc3RfbmFtZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwdy1maWVsZC1lcnJvci1kaXNwbGF5IFtkaXNwbGF5RXJyb3JdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICFmb3JtLmdldCgnZmlyc3RfbmFtZScpLnZhbGlkICYmIChmb3JtLmdldCgnZmlyc3RfbmFtZScpLnRvdWNoZWQgfHwgc3VibWl0dGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIGVycm9yTXNnPVwiRmlyc3QgbmFtZSBpcyByZXF1aXJlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8L3B3LWZpZWxkLWVycm9yLWRpc3BsYXk+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJsYXN0X25hbWVcIj5MYXN0IG5hbWU6PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJsYXN0X25hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGFzdF9uYW1lXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNvbXBhbnlcIj5Db21wYW55OjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY29tcGFueVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb21wYW55XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkXCIgKm5nSWY9XCJoYXNWYWxpZE9wdGlvbnMoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwc2FcIiBjbGFzcz1cInNlbGVjdC1sYWJlbFwiPnt7cXVlc3Rpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBzYVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJwc2FPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VsZWN0IFBTQSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cImlucHV0LXNlbGVjdFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDwvcC1kcm9wZG93bj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVucXVpcnlcIiBjbGFzcz1cInNlbGVjdC1sYWJlbFwiPkhvdyBjYW4gd2UgaGVscCB5b3U/PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW5xdWlyeS1maWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhICBpZD1cImVucXVpcnlcIiBmb3JtQ29udHJvbE5hbWU9XCJlbnF1aXJ5XCIgY2xhc3M9XCJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHB3LWZpZWxkLWVycm9yLWRpc3BsYXkgW2Rpc3BsYXlFcnJvcl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIWZvcm0uZ2V0KCdlbnF1aXJ5JykudmFsaWQgJiYgKGZvcm0uZ2V0KCdlbnF1aXJ5JykudG91Y2hlZCB8fCBzdWJtaXR0ZWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgZXJyb3JNc2c9XCJFbnF1aXJ5IGlzIHJlcXVpcmVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvcHctZmllbGQtZXJyb3ItZGlzcGxheT5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmRcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXB0Y2hhLXdyYXBwZXItY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNDYXB0Y2hhVmVyaWZpZWRcIj5cbiAgICAgICAgICAgICAgICAgIDxuZ3gtcmVjYXB0Y2hhMiBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICBbc2l0ZUtleV09XCJjYXB0Y2hhS2V5VjJcIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwibm9ybWFsXCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZWNhcHRjaGFcIlxuICAgICAgICAgICAgICAgICAgICAoc3VjY2Vzcyk9XCJoYW5kbGVTdWNjZXNzKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgIDwvbmd4LXJlY2FwdGNoYTI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TdWJtaXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWlzQ2FwdGNoYVZlcmlmaWVkXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaWduLWJ0biBzaWduLWhlYWRlci1idG4gbXQtM1wiPlxuICAgICAgICAgICAgICAgICAgICB7eyAnQnV0dG9uLlN1Ym1pdCcgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtNFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb25zIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgW2V2ZW50VHJhY2tlcl09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeTogJ3lvdXR1YmUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnY2xpY2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdjbG91ZG9saXZlLWxhbmRpbmctcGFnZS1iJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAxXG4gICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwieW91dHViZVVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvYXNzZXRzL2ltZy9pY29ucy95b3V0dWJlLnBuZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImltZy1mbHVpZCB5b3V0dWJlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI1NFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI1NFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhIFtldmVudFRyYWNrZXJdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdsaW5rZWRpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdjbGljaycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ2Nsb3Vkb2xpdmUtbGFuZGluZy1wYWdlLWInLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IDFcbiAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJsaW5rZWRJblVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9hc3NldHMvaW1nL2ljb25zL3NvY2lhbC9saW5rZWRpbi5zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbWctZmx1aWQgbGlua2VkaW4taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjQ4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjQ4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJjYW5FZGl0UmVzb3VyY2VzVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLWVkaXQgaW4tcGFnZS1lZGl0LWljb24gdGV4dC13aGl0ZSBjdXJzb3ItcG9pbnRlciBtcy0zXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5Tb2NpYWxFZGl0TW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9wZW5Tb2NpYWxFZGl0TW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9wZW5Tb2NpYWxFZGl0TW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiRWRpdCBTb2NpYWwgTGlua3MgJiBDb21wYW55IE5hbWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3B5cmlnaHQgdGV4dC13aGl0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAyMDI1IHt7Y29tcGFueU5hbWV9fS5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3NlY3Rpb24+XG5cblxuXG48bmctdGVtcGxhdGUgI2Jvb2tNZWV0aW5nXG4gIGxldC1tb2RhbD5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImJ0bi1jbG9zZSBmbG9hdC1lbmRcIlxuICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlXCJcbiAgICAgIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgPGgzIGNsYXNzPVwidGV4dC1jZW50ZXIgbW9kYWwtYmFzaWMtdGl0bGVcIj5cbiAgICAgIFRoYW5rcyBmb3IgZ2V0dGluZyBpbiB0b3VjaCEgT3VyIHRlYW0gd2lsbCBiZSBpbiBjb250YWN0IHNob3J0bHksIG9yIHdlXG4gICAgICBjYW4gY29tcGFyZSBjYWxlbmRhcnMgbm93ICZhbXA7IHNjaGVkdWxlIGEgdGltZVxuICAgIDwvaDM+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFtldmVudFRyYWNrZXJdPVwie1xuICAgICAgICBjYXRlZ29yeTogJ3JlcXVlc3QtZGVtbycsXG4gICAgICAgIGFjdGlvbjogJ2NsaWNrJyxcbiAgICAgICAgbGFiZWw6ICdjbG91ZG9saXZlLWxhbmRpbmctcGFnZS1iJyxcbiAgICAgICAgdmFsdWU6IDFcbiAgICAgIH1cIlxuICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9Cb29rTWVldGluZygpXCJcbiAgICAgIGNsYXNzPVwic2lnbi1idG4gc2lnbi1oZWFkZXItYnRuIG14LWF1dG8gZC1ibG9jayBtYi0zXCI+XG4gICAgICBMZXQncyBkbyBpdFxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cblxuPG5nLXRlbXBsYXRlICNlZGl0Rm9vdGVyTGlua3NNb2RhbCBsZXQtbW9kYWw+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cbiAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiPkVkaXQgRm9vdGVyIExpbmtzPC9oNT5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0bi1jbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj48L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICA8aDQgY2xhc3M9XCJtYi0zXCI+Rm9vdGVyIExpbmtzIFNlY3Rpb248L2g0PlxuICAgIDxkaXYgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wRm9vdGVyTGlua3MoJGV2ZW50KVwiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZm9vdGVyIG9mIGVkaXRpbmdGb290ZXJMaW5rcy5pdGVtczsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwiYm9yZGVyIHAtMyBtYi0zXCIgY2RrRHJhZz5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNSBtYi0yXCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiZm9vdGVyVGl0bGV7e2l9fVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlRpdGxlPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cImZvb3RlclRpdGxle3tpfX1cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiZm9vdGVyLnRpdGxlXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTUgbWItMlwiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZvb3RlclBhdGh7e2l9fVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlBhdGg8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwiZm9vdGVyUGF0aHt7aX19XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImZvb3Rlci5wYXRoXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtdC00XCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRyYXNoIGluLXBhZ2UtdHJhc2gtaWNvbiB0ZXh0LWRhbmdlciBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJyZW1vdmVGb290ZXJMaW5rKGkpXCIgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlRm9vdGVyTGluayhpKVwiIChrZXlkb3duLnNwYWNlKT1cInJlbW92ZUZvb3RlckxpbmsoaSlcIj48L2k+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWJhcnMgaW4tcGFnZS1iYXJzLWljb24gY3Vyc29yLW1vdmVcIiBjZGtEcmFnSGFuZGxlPjwvaT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBTdWJ0aXRsZXMgLS0+XG4gICAgICAgIDxkaXYgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wU3VidGl0bGVzKGksICRldmVudClcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBzdWIgb2YgZm9vdGVyLnN1YnRpdGxlczsgbGV0IGogPSBpbmRleFwiIGNsYXNzPVwicm93IGJvcmRlciBwLTMgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIiBjZGtEcmFnPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzdWJ0aXRsZVRpdGxle3tpfX17e2p9fVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlN1YnRpdGxlIFRpdGxlPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IGlkPVwic3VidGl0bGVUaXRsZXt7aX19e3tqfX1cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwic3ViLnRpdGxlXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzdWJ0aXRsZVBhdGh7e2l9fXt7an19XCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+U3VidGl0bGUgUGF0aDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dCBpZD1cInN1YnRpdGxlUGF0aHt7aX19e3tqfX1cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwic3ViLnBhdGhcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtdC00XCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdHJhc2ggaW4tcGFnZS10cmFzaC1pY29uIHRleHQtZGFuZ2VyIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInJlbW92ZVN1YnRpdGxlKGksIGopXCIgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlU3VidGl0bGUoaSwgailcIiAoa2V5ZG93bi5zcGFjZSk9XCJyZW1vdmVTdWJ0aXRsZShpLCBqKVwiPjwvaT5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1iYXJzIGN1cnNvci1tb3ZlIGluLXBhZ2UtYmFycy1pY29uXCIgY2RrRHJhZ0hhbmRsZT48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IGJ0bi1zbSBtdC0yXCIgKGNsaWNrKT1cImFkZFN1YnRpdGxlKGkpXCI+XG4gICAgICAgICAgKyBBZGQgU3VidGl0bGVcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXQtM1wiIChjbGljayk9XCJhZGRGb290ZXJMaW5rKClcIj5cbiAgICAgICsgQWRkIEZvb3RlciBMaW5rXG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+Q2FuY2VsPC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJzYXZlRm9vdGVyTGlua3MobW9kYWwpXCI+U2F2ZTwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cblxuXG5cblxuPG5nLXRlbXBsYXRlICNsb2dvTW9kYWwgbGV0LW1vZGFsPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5VcGxvYWQgTG9nbzwvaDU+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+PC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgIDxwdy1jdXN0b20tdXBsb2FkZXJcbiAgICAgIFthc3BlY3RSYXRpb109XCInZnVsbExvZ28nXCJcbiAgICAgIFt0aXRsZV09XCInTWFpbiBDb250cmFzdCBMb2dvJ1wiXG4gICAgICBbY29udHJvbE5hbWVdPVwiJ2xvZ29fbWFpbl9jb250cmFzdCdcIlxuICAgICAgW3ByZXZpZXdEYXRhXT1cInByZXZpZXdEYXRhXCJcbiAgICAgIChzYXZlRXZlbnQpPVwib25TYXZlRmlsZSgkZXZlbnQpXCI+XG4gICAgPC9wdy1jdXN0b20tdXBsb2FkZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuXG5cbjxuZy10ZW1wbGF0ZSAjaHVic3BvdEVkaXRNb2RhbCBsZXQtbW9kYWw+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cbiAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiPkVkaXQgSHVic3BvdCBFbWJlZDwvaDU+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+PC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICA8bGFiZWwgZm9yPVwiaHVic3BvdElkXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+SHVic3BvdCBJRDwvbGFiZWw+XG4gICAgICA8aW5wdXQgaWQ9XCJodWJzcG90SWRcIiBbKG5nTW9kZWwpXT1cImVkaXRpbmdIdWJzcG90SWRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgIDxsYWJlbCBmb3I9XCJodWJzcG90RW1iZWREaXZcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5FbWJlZCBESVY8L2xhYmVsPlxuICAgICAgPHRleHRhcmVhIGlkPVwiaHVic3BvdEVtYmVkRGl2XCIgWyhuZ01vZGVsKV09XCJlZGl0aW5nSHVic3BvdEh0bWxcIiByb3dzPVwiOFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+PC90ZXh0YXJlYT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInNhdmVIdWJzcG90SHRtbChtb2RhbClcIj5TYXZlPC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPkNhbmNlbDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cblxuPG5nLXRlbXBsYXRlICNzb2NpYWxFZGl0TW9kYWwgbGV0LW1vZGFsPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5FZGl0IFNvY2lhbCBMaW5rcyAmIENvbXBhbnkgTmFtZTwvaDU+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+PC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICA8bGFiZWwgZm9yPVwieW91dHViZVVybFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPllvdVR1YmUgVVJMPC9sYWJlbD5cbiAgICAgIDxpbnB1dCBpZD1cInlvdXR1YmVVcmxcIiBbKG5nTW9kZWwpXT1cImVkaXRpbmdZb3V0dWJlVXJsXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICA8bGFiZWwgZm9yPVwibGlua2VkaW5VcmxcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5MaW5rZWRJbiBVUkw8L2xhYmVsPlxuICAgICAgPGlucHV0IGlkPVwibGlua2VkaW5VcmxcIiBbKG5nTW9kZWwpXT1cImVkaXRpbmdMaW5rZWRJblVybFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgPGxhYmVsIGZvcj1cImNvbXBhbnlOYW1lXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+Q29tcGFueSBOYW1lPC9sYWJlbD5cbiAgICAgIDxpbnB1dCBpZD1cImNvbXBhbnlOYW1lXCIgWyhuZ01vZGVsKV09XCJlZGl0aW5nQ29tcGFueU5hbWVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJzYXZlU29jaWFsTGlua3MobW9kYWwpXCI+U2F2ZTwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG5cblxuPG5nLXRlbXBsYXRlICNxdWVzdGlvbnNFZGl0TW9kYWwgbGV0LW1vZGFsPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5FZGl0IFF1ZXN0aW9uczwvaDU+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+PC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgPGg0IGNsYXNzPVwibWItM1wiPlF1ZXN0aW9ucyBTZWN0aW9uPC9oND5cbiAgICA8ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcFF1ZXN0aW9ucygkZXZlbnQpXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBxIG9mIGVkaXRpbmdRdWVzdGlvbnM7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cImJvcmRlciBwLTMgbWItM1wiIGNka0RyYWc+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTExIG1iLTJcIj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJxdWVzdGlvblRleHR7e2l9fVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlF1ZXN0aW9uPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInF1ZXN0aW9uVGV4dHt7aX19XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cInEucXVlc3Rpb25cIiBwbGFjZWhvbGRlcj1cIkVudGVyIHF1ZXN0aW9uXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtc3RhcnQgbXQtNFwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1iYXJzIGluLXBhZ2UtYmFycy1pY29uIGN1cnNvci1tb3ZlXCIgY2RrRHJhZ0hhbmRsZT48L2k+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gT3B0aW9ucyBTZWN0aW9uIC0tPlxuICAgICAgICA8ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcFF1ZXN0aW9uT3B0aW9ucyhpLCAkZXZlbnQpXCI+XG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgb3B0IG9mIHEub3B0aW9uczsgbGV0IGogPSBpbmRleFwiIGNsYXNzPVwicm93IGJvcmRlciBwLTMgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIiBjZGtEcmFnPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC03IG1iLTJcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInF1ZXN0aW9uT3B0aW9ue3tpfX17e2p9fVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPk9wdGlvbjwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dCBpZD1cInF1ZXN0aW9uT3B0aW9ue3tpfX17e2p9fVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJvcHQub3B0aW9uXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBvcHRpb25cIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtdC00XCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdHJhc2ggaW4tcGFnZS10cmFzaC1pY29uIHRleHQtZGFuZ2VyIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInJlbW92ZVF1ZXN0aW9uT3B0aW9uKGksIGopXCIgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlUXVlc3Rpb25PcHRpb24oaSwgailcIiAoa2V5ZG93bi5lbnRlcik9XCJyZW1vdmVRdWVzdGlvbk9wdGlvbihpLCBqKVwiPjwvaT5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1iYXJzIGluLXBhZ2UtYmFycy1pY29uIGN1cnNvci1tb3ZlXCIgY2RrRHJhZ0hhbmRsZT48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IGJ0bi1zbSBtdC0yXCIgKGNsaWNrKT1cImFkZFF1ZXN0aW9uT3B0aW9uKGkpXCI+KyBBZGQgT3B0aW9uPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXQtM1wiIChjbGljayk9XCJhZGROZXdRdWVzdGlvbigpXCI+KyBBZGQgUXVlc3Rpb248L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInNhdmVRdWVzdGlvbnMobW9kYWwpXCI+U2F2ZTwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cblxuXG4iXX0=
|
|
511
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtY29udGFjdC11cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Jlc291cmNlLWNvbnRhY3QtdXMvc3JjL2xpYi9yZXNvdXJjZS1jb250YWN0LXVzL3Jlc291cmNlLWNvbnRhY3QtdXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9yZXNvdXJjZS1jb250YWN0LXVzL3NyYy9saWIvcmVzb3VyY2UtY29udGFjdC11cy9yZXNvdXJjZS1jb250YWN0LXVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFLTCxXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBb0IsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1B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STtzQkFBWixLQUFLO2dCQUdHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuaW1wb3J0IHsgQWRtaW5TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2FkbWluLW1vZHVsZS11dGlscyc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYlRlc3RTZXJ2aWNlLCBBdXRoU2VydmljZSwgVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2hlbHBlci1zZXJ2aWNlJztcbmltcG9ydCB7IENybVNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2Uvc21hcnQtY3JtLXNoYXJlZCc7XG5pbXBvcnQgeyBDdXN0b21VcGxvYWRlckNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS91dGlscyc7XG5cbmltcG9ydCB7IFN0YXR1c0NvZGVzIH0gZnJvbSAnaHR0cC1zdGF0dXMtY29kZXMnO1xuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xuXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcblxuaW1wb3J0IHsgUmVzb3VyY2VNb2RhbENvbnRleHQgfSBmcm9tICcuLi9zaGFyZWQvcmVzb3VyY2UtbW9kYWwuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy10cmlhbC00LWNvbnRhY3QtdXMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZXNvdXJjZS1jb250YWN0LXVzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9yZXNvdXJjZS1jb250YWN0LXVzLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVHJpYWw0Q29udGFjdFVzQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG4gICAgQFZpZXdDaGlsZCgnZm9vdGVyU2VjdGlvbicsIHsgc3RhdGljOiB0cnVlIH0pIGZvb3RlclNlY3Rpb24hOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2Jvb2tNZWV0aW5nJywgeyBzdGF0aWM6IHRydWUgfSkgY29udGVudDogVGVtcGxhdGVSZWY8UmVzb3VyY2VNb2RhbENvbnRleHQ+O1xuICAgIEBWaWV3Q2hpbGQoJ2VkaXRGb290ZXJMaW5rc01vZGFsJykgZWRpdEZvb3RlckxpbmtzTW9kYWw6IFRlbXBsYXRlUmVmPEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50PjtcbiAgICBAVmlld0NoaWxkKCdsb2dvTW9kYWwnKSBsb2dvTW9kYWw6IFRlbXBsYXRlUmVmPEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50PjtcbiAgICBAVmlld0NoaWxkKCdsb2dvVXBsb2FkZXInKSBsb2dvVXBsb2FkZXI6IEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ2h1YnNwb3RFZGl0TW9kYWwnKSBodWJzcG90RWRpdE1vZGFsOiBUZW1wbGF0ZVJlZjxSZXNvdXJjZU1vZGFsQ29udGV4dD47XG4gICAgQFZpZXdDaGlsZCgnc29jaWFsRWRpdE1vZGFsJykgc29jaWFsRWRpdE1vZGFsOiBUZW1wbGF0ZVJlZjxDdXN0b21VcGxvYWRlckNvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZCgncXVlc3Rpb25zRWRpdE1vZGFsJykgcXVlc3Rpb25zRWRpdE1vZGFsOiBUZW1wbGF0ZVJlZjxDdXN0b21VcGxvYWRlckNvbXBvbmVudD47XG5cbiAgICBlZGl0aW5nUXVlc3Rpb25zID0gW107XG4gICAgaXNIdWJzcG90UmVhZHk6IGJvb2xlYW47XG5cbiAgICBpc0Zvb3RlclZpc2libGUgPSBmYWxzZTtcbiAgICBwcml2YXRlIG9ic2VydmVyPzogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgICBvcGVuUXVlc3Rpb25zRWRpdE1vZGFsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZWRpdGluZ1F1ZXN0aW9ucyA/PyBbXSkpO1xuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMucXVlc3Rpb25zRWRpdE1vZGFsLCB7IGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbGcnIH0pO1xuICAgIH1cblxuICAgIGVkaXRpbmdZb3V0dWJlVXJsOiBzdHJpbmc7XG4gICAgZWRpdGluZ0xpbmtlZEluVXJsOiBzdHJpbmc7XG4gICAgZWRpdGluZ0NvbXBhbnlOYW1lOiBzdHJpbmc7XG5cbiAgICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gICAgcmVjYXB0Y2hhID0gbnVsbDtcblxuICAgIHByZXZpZXdEYXRhO1xuXG4gICAgQElucHV0KCkgc3Vic2NyaXB0aW9uSWQgPSB0aGlzLmFwcENvbmZpZy5jcm0uc3Vic2NyaXB0aW9uX2lkO1xuICAgIEBJbnB1dCgpIHNvdXJjZUlkID0gdGhpcy5hcHBDb25maWcuY3JtLnNvdXJjZV9pZDtcbiAgICBASW5wdXQoKSBtYXN0ZXJTdWJzY3JpcHRpb25JZCA9IHRoaXMuYXBwQ29uZmlnLm1hc3Rlcl9zdWJzY3JpcHRpb24uc3Vic2NyaXB0aW9uX2lkO1xuICAgIEBJbnB1dCgpIGV4cGVyaW1lbnROYW1lO1xuICAgIEBJbnB1dCgpIG1pY3Jvc2VydmljZU5hbWU7XG4gICAgQElucHV0KCkgc2hhcmROYW1lO1xuICAgIEBJbnB1dCgpIHVzZXI6IFVzZXI7XG5cbiAgICBjYW5FZGl0UmVzb3VyY2VzVmFsdWUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSB1c2VyTG9nZ2VkSW46IGJvb2xlYW47XG5cbiAgICBpZDtcblxuICAgIGxvZ28gPSB0aGlzLmFwcENvbmZpZz8uY29tcGFueT8ubG9nb3M/Lm1haW5fY29udHJhc3Q/LnVybDtcbiAgICB0cmlhbEJnSW1hZ2UyID0gdGhpcy5hcHBDb25maWc/LnNpZ251cF9jb25maWcudHJpYWw/LmltYWdlX2JnMj8udXJsO1xuICAgIHRvc0lkID0gdGhpcy5hcHBDb25maWc/Lm1haW5fdG9zX2lkO1xuICAgIGRlc2NyaXB0aW9uID0gdGhpcy5hcHBDb25maWcuY29tcGFueS5kZXNjcmlwdGlvbjtcbiAgICBlbWFpbCA9IHRoaXMuYXBwQ29uZmlnLmNvbXBhbnkuZW1haWw7XG4gICAgY29tcGFueU5hbWUgPSB0aGlzLmFwcENvbmZpZy5jb21wYW55Lm5hbWU7XG4gICAgc3RyZWV0ID0gdGhpcy5hcHBDb25maWcuY29tcGFueS5zdHJlZXQ7XG4gICAgcXVlc3Rpb25zID0gdGhpcy5hcHBDb25maWc/LnBhZ2VzX2NvbmZpZz8uY29udGFjdF91cz8ucXVlc3Rpb25zO1xuICAgIGh1YnNwb3QgPSB0aGlzLmFwcENvbmZpZz8ucGFnZXNfY29uZmlnPy5jb250YWN0X3VzPy5odWJzcG90O1xuICAgIGZvb3RlckxpbmtzID0gdGhpcy5hcHBDb25maWc/LnBhZ2VzX2NvbmZpZz8uZm9vdGVyX2xpbmtzPy5pdGVtcztcblxuICAgIGZvb3RlckxpbmtzRGF0YSA9IHRoaXMuYXBwQ29uZmlnPy5wYWdlc19jb25maWc/LmZvb3Rlcl9saW5rcztcblxuICAgIHlvdXR1YmVVcmwgPSB0aGlzLmFwcENvbmZpZy5zb2NpYWw/LnlvdXR1YmVfdXJsO1xuICAgIGxpbmtlZEluVXJsID0gdGhpcy5hcHBDb25maWcuc29jaWFsPy5saW5rZWRpbl91cmw7XG4gICAgZG9tYWluSWQgPSB0aGlzLmFwcENvbmZpZy5kb21haW5faWQ7XG5cbiAgICBlZGl0aW5nRW1haWwgPSB0aGlzLmVtYWlsO1xuICAgIGlzRWRpdGluZ0VtYWlsID0gZmFsc2U7XG5cbiAgICBlZGl0aW5nSHVic3BvdEh0bWw6IHN0cmluZztcbiAgICBlZGl0aW5nSHVic3BvdElkOiBzdHJpbmc7XG4gICAgY2FwdGNoYUtleVYyOiBzdHJpbmc7XG4gICAgaHVic3BvdEh0bWw7XG5cbiAgICBhYlRlc3RzO1xuXG4gICAgc3VibWl0dGVkID0gZmFsc2U7XG4gICAgaXNDYXB0Y2hhVmVyaWZpZWQgPSBmYWxzZTtcbiAgICBpc0VtYWlsVmFsaWQgPSB0cnVlO1xuICAgIGlzRWRpdGluZ1N0cmVldCA9IGZhbHNlO1xuXG4gICAgcHNhT3B0aW9ucztcblxuICAgIHF1ZXN0aW9uO1xuXG4gICAgZWRpdGluZ0Zvb3RlckxpbmtzID0ge1xuICAgICAgICBpdGVtczogW11cbiAgICB9O1xuICAgIGVkaXRpbmdTdHJlZXQ6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNybVNlcnZpY2U6IENybVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhYlRlc3RTZXJ2aWNlOiBBYlRlc3RTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGFsU2VydmljZTogTmdiTW9kYWwsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnRcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgICAgICB0aGlzLmNhcHRjaGFLZXlWMiA9IHRoaXMuYXBwQ29uZmlnLmludGVncmF0aW9ucy5jYXB0Y2hhX2tleV9WMjtcbiAgICAgICAgdGhpcy5jb250YWN0VXNGb3JtKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gKHRoaXMuaXNIdWJzcG90UmVhZHkgPSB0cnVlKSwgMjAwMCk7XG4gICAgICAgIGlmICh0aGlzLnVzZXJMb2dnZWRJbikge1xuICAgICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSQoJ3Byb2R1Y3QnKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gcmVzID8gSlNPTi5wYXJzZShyZXMpIDogbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmlkID0gZGF0YT8uc3Vic2NyaXB0aW9uSWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByZXZpZXdEYXRhID0ge1xuICAgICAgICAgICAgdXJsOiB0aGlzLmxvZ28sXG4gICAgICAgICAgICBuYW1lOiAnbG9nb19tYWluX2NvbnRyYXN0LnBuZydcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5lZGl0aW5nU3RyZWV0ID0gdGhpcy5zdHJlZXQ7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuYXBwQ29uZmlnLnBhZ2VzX2NvbmZpZz8uYWJfdGVzdHMpKSB7XG4gICAgICAgICAgICB0aGlzLmFiVGVzdHMgPSB0aGlzLmFwcENvbmZpZy5wYWdlc19jb25maWcuYWJfdGVzdHMuZmluZChcbiAgICAgICAgICAgICAgICB0ZXN0ID0+IHRlc3QuZGVzY3JpcHRpb24gPT09ICdjb250YWN0LXVzJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMubWljcm9zZXJ2aWNlTmFtZSA9IHRoaXMuYWJUZXN0cz8ubWljcm9zZXJ2aWNlX25hbWU7XG4gICAgICAgICAgICB0aGlzLmV4cGVyaW1lbnROYW1lID0gdGhpcy5hYlRlc3RzPy5leHBlcmltZW50X25hbWU7XG4gICAgICAgICAgICB0aGlzLnNoYXJkTmFtZSA9IHRoaXMuYWJUZXN0cz8uZGJfc2hhcmQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmb290ZXJJdGVtID0gdGhpcy5nZXRGb290ZXJIdWJzcG90Rm9ybSgpO1xuICAgICAgICBpZiAoZm9vdGVySXRlbT8uZGl2KSB7XG4gICAgICAgICAgICAvLyBOT1NPTkFSOiBUcnVzdGVkIEhUTUwgY29udGVudCBpcyBoYW5kbGVkIHNhZmVseSBoZXJlXG4gICAgICAgICAgICB0aGlzLmh1YnNwb3RIdG1sID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoZm9vdGVySXRlbS5kaXYpOyAvLyBOT1NPTkFSXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lZGl0aW5nUXVlc3Rpb25zID0gdGhpcy5xdWVzdGlvbnM7XG4gICAgICAgIHRoaXMucXVlc3Rpb24gPSB0aGlzLnF1ZXN0aW9ucz8uWzBdPy5xdWVzdGlvbjtcbiAgICAgICAgdGhpcy5wc2FPcHRpb25zID0gW1xuICAgICAgICAgICAgeyBsYWJlbDogJ1NlbGVjdCBQU0EnLCB2YWx1ZTogJycgfSxcbiAgICAgICAgICAgIC4uLih0aGlzLnF1ZXN0aW9ucz8uWzBdPy5vcHRpb25zID8/IFtdKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIocSA9PiBxLm9wdGlvbj8udHJpbSgpKVxuICAgICAgICAgICAgICAgIC5tYXAocSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogcS5vcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBxLm9wdGlvblxuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICBdO1xuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzWyd1c2VyJ10gfHwgY2hhbmdlc1sndXNlckxvZ2dlZEluJ10pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnVzZXJMb2dnZWRJbiAmJiB0aGlzLnVzZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhbkVkaXRSZXNvdXJjZXNWYWx1ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3BlbkxvZ29FZGl0TW9kYWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5sb2dvTW9kYWwsIHtcbiAgICAgICAgICAgIGNlbnRlcmVkOiB0cnVlLFxuICAgICAgICAgICAgc2l6ZTogJ21kJ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvblNhdmVGaWxlKGV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7IHN1YnNjcmlwdGlvbl9pZDogdGhpcy5zdWJzY3JpcHRpb25JZCB9O1xuXG4gICAgICAgIGlmIChldmVudC5maWxlIGluc3RhbmNlb2YgRmlsZSkge1xuICAgICAgICAgICAgZGF0YVtldmVudC5uYW1lXSA9IGV2ZW50LmZpbGU7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuZmlsZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgZGF0YVtgcmVtb3ZlXyR7ZXZlbnQubmFtZX1gXSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBkYXRhKSB7XG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoa2V5LCBkYXRhW2tleV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2UudXBkYXRlRG9tYWluQ29uZmlnKHRoaXMuZG9tYWluSWQsIGZvcm1EYXRhKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmZpbGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ28gPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGV2ZW50LmZpbGUpO1xuICAgICAgICAgICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLmRpc21pc3NBbGwoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2VzcyhldmVudC5maWxlID8gJ0xvZ28gdXBkYXRlZCcgOiAnTG9nbyByZW1vdmVkJyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNhdmVRdWVzdGlvbnMobW9kYWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdXBkYXRlRGF0YSA9IHtcbiAgICAgICAgICAgIGNvbnRhY3RfdXM6IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLmFwcENvbmZpZy5wYWdlc19jb25maWc/LmNvbnRhY3RfdXMsXG4gICAgICAgICAgICAgICAgcXVlc3Rpb25zOiB0aGlzLmVkaXRpbmdRdWVzdGlvbnNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25faWQ6IHRoaXMuaWRcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmFkbWluU2VydmljZS51cGRhdGVEb21haW5Db25maWcodGhpcy5kb21haW5JZCwgdXBkYXRlRGF0YSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucXVlc3Rpb25zID0gdGhpcy5lZGl0aW5nUXVlc3Rpb25zO1xuICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKCdRdWVzdGlvbnMgdXBkYXRlZCcpO1xuICAgICAgICAgICAgdGhpcy5xdWVzdGlvbiA9IHRoaXMuZWRpdGluZ1F1ZXN0aW9ucz8uWzBdPy5xdWVzdGlvbjtcbiAgICAgICAgICAgIGlmICh0aGlzLmVkaXRpbmdRdWVzdGlvbnM/LlswXT8ub3B0aW9ucz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMucHNhT3B0aW9ucyA9IFtcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ1NlbGVjdCBQU0EnLCB2YWx1ZTogJycgfSxcbiAgICAgICAgICAgICAgICAgICAgLi4uKHRoaXMucXVlc3Rpb25zPy5bMF0/Lm9wdGlvbnMgPz8gW10pXG4gICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKHEgPT4gcS5vcHRpb24/LnRyaW0oKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAocSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBxLm9wdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcS5vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucHNhT3B0aW9ucyA9IFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtb2RhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhZGROZXdRdWVzdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0aW5nUXVlc3Rpb25zLnB1c2goeyBxdWVzdGlvbjogJycsIG9wdGlvbnM6IFtdIH0pO1xuICAgIH1cblxuICAgIGFkZFF1ZXN0aW9uT3B0aW9uKHFJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdGluZ1F1ZXN0aW9uc1txSW5kZXhdLm9wdGlvbnMucHVzaCh7IG9wdGlvbjogJycgfSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlUXVlc3Rpb25PcHRpb24ocUluZGV4OiBudW1iZXIsIG9wdEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0aW5nUXVlc3Rpb25zW3FJbmRleF0ub3B0aW9ucy5zcGxpY2Uob3B0SW5kZXgsIDEpO1xuICAgIH1cblxuICAgIGRyb3BRdWVzdGlvbnMoZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuZWRpdGluZ1F1ZXN0aW9ucywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB9XG5cbiAgICBkcm9wUXVlc3Rpb25PcHRpb25zKHFJbmRleDogbnVtYmVyLCBldmVudCk6IHZvaWQge1xuICAgICAgICBtb3ZlSXRlbUluQXJyYXkoXG4gICAgICAgICAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbnNbcUluZGV4XS5vcHRpb25zLFxuICAgICAgICAgICAgZXZlbnQucHJldmlvdXNJbmRleCxcbiAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRJbmRleFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9wZW5Tb2NpYWxFZGl0TW9kYWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdGluZ1lvdXR1YmVVcmwgPSB0aGlzLnlvdXR1YmVVcmw7XG4gICAgICAgIHRoaXMuZWRpdGluZ0xpbmtlZEluVXJsID0gdGhpcy5saW5rZWRJblVybDtcbiAgICAgICAgdGhpcy5lZGl0aW5nQ29tcGFueU5hbWUgPSB0aGlzLmNvbXBhbnlOYW1lO1xuXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5zb2NpYWxFZGl0TW9kYWwsIHsgY2VudGVyZWQ6IHRydWUsIHNpemU6ICdsZycgfSk7XG4gICAgfVxuXG4gICAgc2F2ZVNvY2lhbExpbmtzKG1vZGFsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZURhdGEgPSB7XG4gICAgICAgICAgICB5b3V0dWJlX3VybDogdGhpcy5lZGl0aW5nWW91dHViZVVybCxcbiAgICAgICAgICAgIGxpbmtlZGluX3VybDogdGhpcy5lZGl0aW5nTGlua2VkSW5VcmwsXG4gICAgICAgICAgICBjb21wYW55X25hbWU6IHRoaXMuZWRpdGluZ0NvbXBhbnlOYW1lLFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLmlkXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2UudXBkYXRlRG9tYWluQ29uZmlnKHRoaXMuZG9tYWluSWQsIHVwZGF0ZURhdGEpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnlvdXR1YmVVcmwgPSB0aGlzLmVkaXRpbmdZb3V0dWJlVXJsO1xuICAgICAgICAgICAgdGhpcy5saW5rZWRJblVybCA9IHRoaXMuZWRpdGluZ0xpbmtlZEluVXJsO1xuICAgICAgICAgICAgdGhpcy5jb21wYW55TmFtZSA9IHRoaXMuZWRpdGluZ0NvbXBhbnlOYW1lO1xuICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKCdTb2NpYWwgbGlua3MgYW5kIGNvbXBhbnkgbmFtZSB1cGRhdGVkJyk7XG4gICAgICAgICAgICBtb2RhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBoYXNWYWxpZE9wdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXN0aW9ucz8uWzBdPy5vcHRpb25zPy5zb21lKG9wdCA9PiBvcHQub3B0aW9uPy50cmltKCkpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy53YXRjaElmcmFtZUhlaWdodENoYW5nZSgpO1xuICAgICAgICB0aGlzLm9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgICAgICAgKFtlbnRyeV0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZW50cnkuaXNJbnRlcnNlY3RpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0Zvb3RlclZpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyB0aHJlc2hvbGQ6IDAuMSB9XG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMuZm9vdGVyU2VjdGlvbi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBvcGVuRWRpdEZvb3RlckxpbmtzTW9kYWwoY29udGVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvb3RlckxpbmtzRGF0YSA9IHRoaXMuZm9vdGVyTGlua3NEYXRhID8/IHt9O1xuICAgICAgICB0aGlzLmZvb3RlckxpbmtzRGF0YS5pdGVtcyA9IHRoaXMuZm9vdGVyTGlua3NEYXRhLml0ZW1zID8/IFtdO1xuICAgICAgICB0aGlzLmVkaXRpbmdGb290ZXJMaW5rcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5mb290ZXJMaW5rc0RhdGEpKTtcblxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKGNvbnRlbnQsIHtcbiAgICAgICAgICAgIHNpemU6ICdsZycsXG4gICAgICAgICAgICBjZW50ZXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIHdpbmRvd0NsYXNzOiAnbW9kYWwtaG9sZGVyJ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHdhdGNoSWZyYW1lSGVpZ2h0Q2hhbmdlKCkge1xuICAgICAgICBjb25zdCBpZnJhbWUgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5odWJzcG90LWNvbnRhaW5lcicpO1xuICAgICAgICBpZiAoIWlmcmFtZSkgcmV0dXJuO1xuICAgICAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0hlaWdodCA9IGlmcmFtZVsnb2Zmc2V0SGVpZ2h0J107XG4gICAgICAgICAgICBpZiAobmV3SGVpZ2h0ID09PSAyNTApIHtcbiAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGxBYlRlc3RGaW5pc2goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMzAwKTtcbiAgICB9XG5cbiAgICAvLyBOZXcgbWV0aG9kIHRvIGhhbmRsZSBIdWJzcG90IGNvbnRlbnQgbG9hZGluZ1xuICAgIG9uSHVic3BvdExvYWQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2NvbnRlbnQtbG9hZGVkJyk7XG5cbiAgICAgICAgLy8gT3B0aW9uYWw6IFRyaWdnZXIgbGF5b3V0IHJlY2FsY3VsYXRpb25cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Jlc2l6ZScpKTtcbiAgICAgICAgfSwgMTAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbGxBYlRlc3RGaW5pc2goKSB7XG4gICAgICAgIGlmICh0aGlzLmV4cGVyaW1lbnROYW1lICYmIHRoaXMubWljcm9zZXJ2aWNlTmFtZSkge1xuICAgICAgICAgICAgdGhpcy5hYlRlc3RTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmZpbmlzaEFCRXhwZXJpbWVudCh0aGlzLmV4cGVyaW1lbnROYW1lLCB0aGlzLm1pY3Jvc2VydmljZU5hbWUpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5jb250ZW50LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjZW50ZXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd0NsYXNzOiAnbW9kYWwtaG9sZGVyJ1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnRhY3RVc0Zvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgZmlyc3RfbmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgIGxhc3RfbmFtZTogWycnXSxcbiAgICAgICAgICAgIGNvbXBhbnk6IFsnJ10sXG4gICAgICAgICAgICBwc2E6IFsnJ10sXG4gICAgICAgICAgICBlbnF1aXJ5OiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgZW1haWw6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25TdWJtaXQoKSB7XG4gICAgICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5pc0NhcHRjaGFWZXJpZmllZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlU3VjY2Vzcyh0b2tlbjogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS52YWxpZGF0ZVJlQ2FwdGNoYSh0b2tlbikuc3Vic2NyaWJlKChpc1N1Y2Nlc3M6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXNTdWNjZXNzICYmIHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geyAuLi50aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSB9O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRFbnF1aXJ5ID0gYCR7ZGF0YS5lbnF1aXJ5fTsgUXVlc3Rpb246ICR7dGhpcy5xdWVzdGlvbn07IEFuc3dlcjogJHtkYXRhLnBzYX1gO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3N0RGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0X25hbWU6IGAke2RhdGEuZmlyc3RfbmFtZX1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9uYW1lOiBgJHtkYXRhLmZpcnN0X25hbWV9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhbnk6IGAke2RhdGEuZmlyc3RfbmFtZX1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW1haWw6IGAke2RhdGEuZW1haWx9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVucXVpcnk6IHRoaXMucHNhT3B0aW9ucy5sZW5ndGggPyBmb3JtYXR0ZWRFbnF1aXJ5IDogYCR7ZGF0YS5lbnF1aXJ5fWAsXG4gICAgICAgICAgICAgICAgICAgICAgICBwc2E6IGRhdGEucHNhLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLnN1YnNjcmlwdGlvbklkLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3JtX3NvdXJjZV9pZDogdGhpcy5zb3VyY2VJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hc3Rlcl9zdWJzY3JpcHRpb25faWQ6IHRoaXMubWFzdGVyU3Vic2NyaXB0aW9uSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlfdXNlcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc19tYW51YWw6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcm1TZXJ2aWNlLnBvc3RDcm1MZWFkKHRoaXMuc3Vic2NyaXB0aW9uSWQsIHBvc3REYXRhKS5zdWJzY3JpYmUocmVzcCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgZXhhbXBsZSBvZiBzbmlwcGV0IHRvIGNsb3NlIHRoZSBleHBlcmltZW50IGFuZCB0cmFjayBpbiBHQVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3A/LnN0YXR1cyA9PT0gU3RhdHVzQ29kZXMuT0spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdvb2dsZUFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmV3LWxlYWQtcmVnaXN0cmF0aW9uJywgLy8gY2F0ZWdvcnksIGVnOiB2aWRlb3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N1YnNjcmliZS1zdWNjZXNzJywgLy8gYWN0aW9uLCBlZzogUGxheVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29taW5nLXNvb24tdGhyZWUnLCAvLyBsYWJlbCwgZWc6IENoYXBweVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxIC8vIHZhbHVlLCBlZzogMTBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmV4cGVyaW1lbnROYW1lICYmIHRoaXMubWljcm9zZXJ2aWNlTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFiVGVzdFNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5pc2hBQkV4cGVyaW1lbnQodGhpcy5leHBlcmltZW50TmFtZSwgdGhpcy5taWNyb3NlcnZpY2VOYW1lKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmNvbnRlbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VudGVyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd0NsYXNzOiAnbW9kYWwtaG9sZGVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3dhbC5maXJlKHJlc3AubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzQ2FwdGNoYVZlcmlmaWVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2Nyb2xsVG9Ub3AoKSB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA9IDA7XG4gICAgfVxuXG4gICAgZ2V0Rm9vdGVySHVic3BvdEZvcm0oKSB7XG4gICAgICAgIGlmICghdGhpcy5odWJzcG90Py5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHVic3BvdC5maW5kKGl0ZW0gPT4gaXRlbS5wb3NpdGlvbiA9PT0gJ2Zvb3RlcicpID8/IG51bGw7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVUb0Jvb2tNZWV0aW5nKCkge1xuICAgICAgICBjb25zdCBib29rRGVtb1VybCA9XG4gICAgICAgICAgICB0aGlzLmFwcENvbmZpZz8uc2lnbnVwX2NvbmZpZz8udHJpYWw/LmJvb2tfZGVtb191cmwgPz9cbiAgICAgICAgICAgICdodHRwczovL2NhbGVuZGx5LmNvbS9jbG91ZG9saXZlJztcbiAgICAgICAgd2luZG93Lm9wZW4oYm9va0RlbW9VcmwsICdfYmxhbmsnLCAnbm9yZWZlcnJlciBub29wZW5lcicpO1xuICAgIH1cblxuICAgIHZhbGlkYXRlRW1haWwoKSB7XG4gICAgICAgIGNvbnN0IGVtYWlsID0gdGhpcy5mb3JtLmdldCgnZW1haWwnKS52YWx1ZTtcbiAgICAgICAgaWYgKGVtYWlsKSB7XG4gICAgICAgICAgICB0aGlzLmlzRW1haWxWYWxpZCA9IFZhbGlkYXRpb25TZXJ2aWNlLmVtYWlsKGVtYWlsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNFbWFpbFZhbGlkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFkZEZvb3RlckxpbmsoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdGluZ0Zvb3RlckxpbmtzLml0ZW1zLnB1c2goe1xuICAgICAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICAgICAgcGF0aDogJycsXG4gICAgICAgICAgICBzdWJ0aXRsZXM6IFtdXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZUZvb3RlckxpbmsoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRpbmdGb290ZXJMaW5rcy5pdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cblxuICAgIGFkZFN1YnRpdGxlKGZvb3RlckluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0aW5nRm9vdGVyTGlua3MuaXRlbXNbZm9vdGVySW5kZXhdLnN1YnRpdGxlcy5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgICAgIHBhdGg6ICcnXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZVN1YnRpdGxlKGZvb3RlckluZGV4OiBudW1iZXIsIHN1YnRpdGxlSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRpbmdGb290ZXJMaW5rcy5pdGVtc1tmb290ZXJJbmRleF0uc3VidGl0bGVzLnNwbGljZShzdWJ0aXRsZUluZGV4LCAxKTtcbiAgICB9XG5cbiAgICBkcm9wRm9vdGVyTGlua3MoZXZlbnQpIHtcbiAgICAgICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuZWRpdGluZ0Zvb3RlckxpbmtzLml0ZW1zLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIH1cblxuICAgIGRyb3BTdWJ0aXRsZXMoZm9vdGVySW5kZXg6IG51bWJlciwgZXZlbnQpIHtcbiAgICAgICAgbW92ZUl0ZW1JbkFycmF5KFxuICAgICAgICAgICAgdGhpcy5lZGl0aW5nRm9vdGVyTGlua3MuaXRlbXNbZm9vdGVySW5kZXhdLnN1YnRpdGxlcyxcbiAgICAgICAgICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXG4gICAgICAgICAgICBldmVudC5jdXJyZW50SW5kZXhcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzYXZlRm9vdGVyTGlua3MobW9kYWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdXBkYXRlZENvbmZpZyA9IHtcbiAgICAgICAgICAgIGZvb3Rlcl9saW5rczogdGhpcy5lZGl0aW5nRm9vdGVyTGlua3MsXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25faWQ6IHRoaXMuaWRcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgLnVwZGF0ZURvbWFpbkNvbmZpZyh0aGlzLmFwcENvbmZpZz8uZG9tYWluX2lkLCB1cGRhdGVkQ29uZmlnKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKCdGb290ZXIgbGlua3MgdXBkYXRlZCcpO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9vdGVyTGlua3MgPSBbLi4udGhpcy5lZGl0aW5nRm9vdGVyTGlua3MuaXRlbXNdO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9vdGVyTGlua3NEYXRhID0geyAuLi50aGlzLmVkaXRpbmdGb290ZXJMaW5rcyB9O1xuICAgICAgICAgICAgICAgIG1vZGFsLmNsb3NlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzYXZlRW1haWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZW1haWwgPSB0aGlzLmVkaXRpbmdFbWFpbDtcblxuICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgLnVwZGF0ZURvbWFpbkNvbmZpZyh0aGlzLmFwcENvbmZpZz8uZG9tYWluX2lkLCB7XG4gICAgICAgICAgICAgICAgY29tcGFueV9lbWFpbDogdGhpcy5lZGl0aW5nRW1haWwsXG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLmlkXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKCdFbWFpbCB1cGRhdGVkJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0VkaXRpbmdFbWFpbCA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2F2ZVN0cmVldCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2VcbiAgICAgICAgICAgIC51cGRhdGVEb21haW5Db25maWcodGhpcy5hcHBDb25maWc/LmRvbWFpbl9pZCwge1xuICAgICAgICAgICAgICAgIGNvbXBhbnlfYWRkcmVzczogdGhpcy5lZGl0aW5nU3RyZWV0LFxuICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9pZDogdGhpcy5pZFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2VzcygnU3RyZWV0IHVwZGF0ZWQnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0cmVldCA9IHRoaXMuZWRpdGluZ1N0cmVldDtcbiAgICAgICAgICAgICAgICB0aGlzLmlzRWRpdGluZ1N0cmVldCA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2FuY2VsU3RyZWV0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRpbmdTdHJlZXQgPSB0aGlzLnN0cmVldDtcbiAgICAgICAgdGhpcy5pc0VkaXRpbmdTdHJlZXQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvcGVuSHVic3BvdEVkaXRNb2RhbChmb290ZXJJdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdGluZ0h1YnNwb3RIdG1sID0gZm9vdGVySXRlbS5kaXY7XG4gICAgICAgIHRoaXMuZWRpdGluZ0h1YnNwb3RJZCA9IGZvb3Rlckl0ZW0uaWQ7XG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5odWJzcG90RWRpdE1vZGFsLCB7IGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbGcnIH0pO1xuICAgIH1cblxuICAgIHNhdmVIdWJzcG90SHRtbChtb2RhbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB1cGRhdGVkQ29uZmlnID0ge1xuICAgICAgICAgICAgY29udGFjdF91czoge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuYXBwQ29uZmlnPy5wYWdlc19jb25maWc/LmNvbnRhY3RfdXMsXG4gICAgICAgICAgICAgICAgaHVic3BvdDogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJzc0MjM2MzknLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdmb290ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGl2OiB0aGlzLmVkaXRpbmdIdWJzcG90SHRtbFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9pZDogdGhpcy5pZFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlXG4gICAgICAgICAgICAudXBkYXRlRG9tYWluQ29uZmlnKHRoaXMuYXBwQ29uZmlnPy5kb21haW5faWQsIHVwZGF0ZWRDb25maWcpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBOT1NPTkFSOiBUcnVzdGVkIEhUTUwgY29udGVudCBpcyBoYW5kbGVkIHNhZmVseSBoZXJlXG4gICAgICAgICAgICAgICAgdGhpcy5odWJzcG90SHRtbCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHRoaXMuZWRpdGluZ0h1YnNwb3RIdG1sKTsgLy8gTk9TT05BUlxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2VzcygnSHVic3BvdCBFbWJlZCB1cGRhdGVkJyk7XG4gICAgICAgICAgICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbiAgICBwcml2YXRlIHVwZGF0ZUNhbkVkaXRSZXNvdXJjZXNWYWx1ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYW5FZGl0UmVzb3VyY2VzVmFsdWUgPSBIZWxwZXJTZXJ2aWNlLmNhbkVkaXRSZXNvdXJjZXMoXG4gICAgICAgICAgICB0aGlzLnVzZXIsXG4gICAgICAgICAgICB0aGlzLnVzZXJMb2dnZWRJbixcbiAgICAgICAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2VcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjYW5FZGl0UmVzb3VyY2VzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYW5FZGl0UmVzb3VyY2VzVmFsdWU7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICB9XG59XG4iLCI8c2VjdGlvbiAgI2Zvb3RlclNlY3Rpb24gY2xhc3M9XCJiZy1ibGFjayB0ZXh0LXdoaXRlIHB5LTUgZm9vdGVyLXNlY3Rpb25cIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiICpuZ0lmPVwiaXNGb290ZXJWaXNpYmxlXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuXG4gICAgICA8IS0tIExFRlQgQ09MVU1OIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IG1iLTQgZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCIgW25nQ2xhc3NdPVwieyAnc2l0ZS1jb2x1bW4nOiBnZXRGb290ZXJIdWJzcG90Rm9ybSgpIH1cIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJtYi00IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWUtMiB0ZXh0LXdoaXRlXCI+U2l0ZSBNYXA6PC9zcGFuPlxuICAgICAgICAgICAgPGkgKm5nSWY9XCJjYW5FZGl0UmVzb3VyY2VzVmFsdWVcIiBjbGFzcz1cImZhIGZhLWVkaXQgaW4tcGFnZS1lZGl0LWljb24gY3Vyc29yLXBvaW50ZXIgdGV4dC13aGl0ZSBtcy0zXCIgKGNsaWNrKT1cIm9wZW5FZGl0Rm9vdGVyTGlua3NNb2RhbChlZGl0Rm9vdGVyTGlua3NNb2RhbClcIiAoa2V5ZG93bi5lbnRlcik9XCJvcGVuRWRpdEZvb3RlckxpbmtzTW9kYWwoZWRpdEZvb3RlckxpbmtzTW9kYWwpXCIgKGtleWRvd24uc3BhY2UpPVwib3BlbkVkaXRGb290ZXJMaW5rc01vZGFsKGVkaXRGb290ZXJMaW5rc01vZGFsKVwiIG5nYlRvb2x0aXA9XCJFZGl0IEZvb3RlciBMaW5rc1wiPjwvaT5cbiAgICAgICAgICA8L2gzPlxuICAgICAgICAgIDx1bCBjbGFzcz1cIm10LTRcIj5cbiAgICAgICAgICAgIDxsaSByb3V0ZXJMaW5rPVwiL1wiXG4gICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIHVzZXItaW5mby1sYWJlbCBsaW5rLWxhYmVsXCI+IEhvbWUgPC9saT5cbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgbGluayBvZiBmb290ZXJMaW5rc1wiIFtyb3V0ZXJMaW5rXT1cImxpbms/LnBhdGhcIlxuICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIHVzZXItaW5mby1sYWJlbCBsaW5rLWxhYmVsIG10LTRcIj48c3BhbiAgKm5nSWY9XCJsaW5rPy50aXRsZVwiPnt7bGluaz8udGl0bGV9fTwvc3Bhbj4gPC9saT5cbiAgICAgICAgICAgIDxsaSByb3V0ZXJMaW5rPVwiL2xvZ2luXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciB1c2VyLWluZm8tbGFiZWwgbXQtNCBsaW5rLWxhYmVsXCI+IExvZyBpbiA8L2xpPlxuICAgICAgICAgICAgPGxpIFtyb3V0ZXJMaW5rXT1cIicvcHJpdmFjeS1hbmQtdG9zLycgKyB0b3NJZFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgdXNlci1pbmZvLWxhYmVsIG10LTQgbGluay1sYWJlbFwiPiBQcml2YWN5IHN0YXRlbWVudCA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPHAgY2xhc3M9XCJhZGRyZXNzLXNlY3Rpb24gZW1haWwtc2VjdGlvbiBtYi00XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXItaW5mby1sYWJlbFwiPkVtYWlsOiA8L3NwYW4+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRWRpdGluZ0VtYWlsOyBlbHNlIGVkaXRFbWFpbFwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXItaW5mb1wiPnt7IGVtYWlsIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8aSAqbmdJZj1cImNhbkVkaXRSZXNvdXJjZXNWYWx1ZVwiIGNsYXNzPVwiZmEgZmEtZWRpdCBpbi1wYWdlLWVkaXQtaWNvbiB0ZXh0LXdoaXRlIGN1cnNvci1wb2ludGVyIG1zLTNcIiAoY2xpY2spPVwiaXNFZGl0aW5nRW1haWwgPSB0cnVlXCIgKGtleWRvd24uZW50ZXIpPVwiaXNFZGl0aW5nRW1haWwgPSB0cnVlXCIgKGtleWRvd24uc3BhY2UpPVwiaXNFZGl0aW5nRW1haWwgPSB0cnVlXCI+PC9pPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdEVtYWlsPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBkLWlubGluZSB3LWF1dG9cIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdGluZ0VtYWlsXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gYnRuLXByaW1hcnkgbXMtMlwiIChjbGljayk9XCJzYXZlRW1haWwoKVwiPlNhdmU8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gYnRuLXNlY29uZGFyeSBtcy0yXCIgKGNsaWNrKT1cImlzRWRpdGluZ0VtYWlsID0gZmFsc2VcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVtYWlsLXNlY3Rpb24gbXQtMyBhZGRyZXNzLXRleHRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXNlci1pbmZvLWxhYmVsXCI+XG4gICAgICAgICAgICAgIEFkZHJlc3M6XG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiY2FuRWRpdFJlc291cmNlc1ZhbHVlXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS1lZGl0IGluLXBhZ2UtZWRpdC1pY29uIGN1cnNvci1wb2ludGVyIG1zLTIgdGV4dC13aGl0ZVwiXG4gICAgICAgICAgICAgICAgIHRpdGxlPVwiRWRpdCBBZGRyZXNzXCJcbiAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImlzRWRpdGluZ1N0cmVldCA9IHRydWVcIlxuICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJpc0VkaXRpbmdTdHJlZXQgPSB0cnVlXCJcbiAgICAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwiaXNFZGl0aW5nU3RyZWV0ID0gdHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIDwvc3Bhbj48YnIvPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRWRpdGluZ1N0cmVldDsgZWxzZSBlZGl0U3RyZWV0QmxvY2tcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZGRyZXNzLXRleHQgdXNlci1pbmZvXCI+e3sgc3RyZWV0IH19PC9zcGFuPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFN0cmVldEJsb2NrPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtdC0zXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbVwiIFsobmdNb2RlbCldPVwiZWRpdGluZ1N0cmVldFwiIC8+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gYnRuLXByaW1hcnkgbXMtMlwiIChjbGljayk9XCJzYXZlU3RyZWV0KClcIj5TYXZlPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gYnRuLXNlY29uZGFyeSBtcy0yXCIgKGNsaWNrKT1cImNhbmNlbFN0cmVldCgpXCI+Q2FuY2VsPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxuICAgICAgICAgIDxpbWcgW3NyY109XCJsb2dvXCJcbiAgICAgICAgICAgICAgIGFsdD1cIkNvbXBhbnkgbG9nb1wiXG4gICAgICAgICAgICAgICBjbGFzcz1cImltZy1mbHVpZCBtdC00IGxvZ28taW1hZ2UgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgd2lkdGg9XCIxNjBcIlxuICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzVcIlxuICAgICAgICAgICAgICAgKGNsaWNrKT1cInNjcm9sbFRvVG9wKClcIlxuICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic2Nyb2xsVG9Ub3AoKVwiXG4gICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJzY3JvbGxUb1RvcCgpXCJcbiAgICAgICAgICAgICAgIHRpdGxlPVwiQ2xpY2sgdG8gZ28gdG8gdG9wIG9mIHBhZ2VcIiAvPlxuICAgICAgICAgIDxpICpuZ0lmPVwiY2FuRWRpdFJlc291cmNlc1ZhbHVlXCJcbiAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLWVkaXQgaW4tcGFnZS1lZGl0LWljb24gZmEtc20gbXMtMyBjdXJzb3ItcG9pbnRlciB0ZXh0LXdoaXRlIGFsaWduLXNlbGYtY2VudGVyIG10LTNcIlxuICAgICAgICAgICAgIChjbGljayk9XCJvcGVuTG9nb0VkaXRNb2RhbCgpXCJcbiAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvcGVuTG9nb0VkaXRNb2RhbCgpXCJcbiAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJvcGVuTG9nb0VkaXRNb2RhbCgpXCJcbiAgICAgICAgICAgICB0aXRsZT1cIkVkaXQgTG9nb1wiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBSSUdIVCBDT0xVTU4gLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdJZj1cImlzRm9vdGVyVmlzaWJsZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0Rm9vdGVySHVic3BvdEZvcm0oKSBhcyBmb290ZXJJdGVtOyBlbHNlIGRlZmF1bHRGb3JtXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzSHVic3BvdFJlYWR5XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImh1YnNwb3QtY29udGFpbmVyIHctMTAwIGNvbnRlbnQtbG9hZGVkXCJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImh1YnNwb3RIdG1sXCJcbiAgICAgICAgICAgICAgICAobG9hZCk9XCJvbkh1YnNwb3RMb2FkKCRldmVudClcIj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiY2FuRWRpdFJlc291cmNlc1ZhbHVlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS1lZGl0IGluLXBhZ2UtZWRpdC1pY29uIHRleHQtd2hpdGUgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbkh1YnNwb3RFZGl0TW9kYWwoZm9vdGVySXRlbSlcIlxuICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvcGVuSHVic3BvdEVkaXRNb2RhbChmb290ZXJJdGVtKVwiXG4gICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9wZW5IdWJzcG90RWRpdE1vZGFsKGZvb3Rlckl0ZW0pXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJFZGl0IEh1YnNwb3QgRW1iZWRcIj48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEZvcm0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInRleHQtd2hpdGUgbWItNFwiPiA8c3BhbiBjbGFzcz1cInRleHQtd2hpdGVcIj5HZXQgaW4gdG91Y2g6PC9zcGFuPjwvaDM+XG4gICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJjYW5FZGl0UmVzb3VyY2VzVmFsdWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtZWRpdCBpbi1wYWdlLWVkaXQtaWNvbiB0ZXh0LXdoaXRlIGN1cnNvci1wb2ludGVyIG1zLTMgbXQtMlwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5RdWVzdGlvbnNFZGl0TW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib3BlblF1ZXN0aW9uc0VkaXRNb2RhbCgpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJvcGVuUXVlc3Rpb25zRWRpdE1vZGFsKClcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwiRWRpdCBRdWVzdGlvbnNcIj48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWN0LWZvcm1cIj5cbiAgICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbWFpbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbWFpbFwiPkVtYWlsOjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1iLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImVtYWlsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8cHctZmllbGQtZXJyb3ItZGlzcGxheSBbZGlzcGxheUVycm9yXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAhZm9ybS5nZXQoJ2VtYWlsJykudmFsaWQgJiYgKGZvcm0uZ2V0KCdlbWFpbCcpLnRvdWNoZWQgfHwgc3VibWl0dGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIGVycm9yTXNnPVwiRW1haWwgaXMgcmVxdWlyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9wdy1maWVsZC1lcnJvci1kaXNwbGF5PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmlyc3RfbmFtZVwiPkZpcnN0IG5hbWU6PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImZpcnN0X25hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZmlyc3RfbmFtZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwdy1maWVsZC1lcnJvci1kaXNwbGF5IFtkaXNwbGF5RXJyb3JdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICFmb3JtLmdldCgnZmlyc3RfbmFtZScpLnZhbGlkICYmIChmb3JtLmdldCgnZmlyc3RfbmFtZScpLnRvdWNoZWQgfHwgc3VibWl0dGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIGVycm9yTXNnPVwiRmlyc3QgbmFtZSBpcyByZXF1aXJlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8L3B3LWZpZWxkLWVycm9yLWRpc3BsYXk+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJsYXN0X25hbWVcIj5MYXN0IG5hbWU6PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJsYXN0X25hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGFzdF9uYW1lXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNvbXBhbnlcIj5Db21wYW55OjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY29tcGFueVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb21wYW55XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkXCIgKm5nSWY9XCJoYXNWYWxpZE9wdGlvbnMoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwc2FcIiBjbGFzcz1cInNlbGVjdC1sYWJlbFwiPnt7cXVlc3Rpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBzYVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJwc2FPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VsZWN0IFBTQSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cImlucHV0LXNlbGVjdFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDwvcC1kcm9wZG93bj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVucXVpcnlcIiBjbGFzcz1cInNlbGVjdC1sYWJlbFwiPkhvdyBjYW4gd2UgaGVscCB5b3U/PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW5xdWlyeS1maWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhICBpZD1cImVucXVpcnlcIiBmb3JtQ29udHJvbE5hbWU9XCJlbnF1aXJ5XCIgY2xhc3M9XCJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHB3LWZpZWxkLWVycm9yLWRpc3BsYXkgW2Rpc3BsYXlFcnJvcl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIWZvcm0uZ2V0KCdlbnF1aXJ5JykudmFsaWQgJiYgKGZvcm0uZ2V0KCdlbnF1aXJ5JykudG91Y2hlZCB8fCBzdWJtaXR0ZWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgZXJyb3JNc2c9XCJFbnF1aXJ5IGlzIHJlcXVpcmVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvcHctZmllbGQtZXJyb3ItZGlzcGxheT5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmRcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXB0Y2hhLXdyYXBwZXItY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNDYXB0Y2hhVmVyaWZpZWRcIj5cbiAgICAgICAgICAgICAgICAgIDxuZ3gtcmVjYXB0Y2hhMiBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICBbc2l0ZUtleV09XCJjYXB0Y2hhS2V5VjJcIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwibm9ybWFsXCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZWNhcHRjaGFcIlxuICAgICAgICAgICAgICAgICAgICAoc3VjY2Vzcyk9XCJoYW5kbGVTdWNjZXNzKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgIDwvbmd4LXJlY2FwdGNoYTI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TdWJtaXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWlzQ2FwdGNoYVZlcmlmaWVkXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaWduLWJ0biBzaWduLWhlYWRlci1idG4gbXQtM1wiPlxuICAgICAgICAgICAgICAgICAgICB7eyAnQnV0dG9uLlN1Ym1pdCcgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtNFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb25zIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgW2V2ZW50VHJhY2tlcl09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeTogJ3lvdXR1YmUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnY2xpY2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdjbG91ZG9saXZlLWxhbmRpbmctcGFnZS1iJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAxXG4gICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwieW91dHViZVVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvYXNzZXRzL2ltZy9pY29ucy95b3V0dWJlLnBuZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImltZy1mbHVpZCB5b3V0dWJlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI1NFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI1NFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhIFtldmVudFRyYWNrZXJdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdsaW5rZWRpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdjbGljaycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ2Nsb3Vkb2xpdmUtbGFuZGluZy1wYWdlLWInLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IDFcbiAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJsaW5rZWRJblVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9hc3NldHMvaW1nL2ljb25zL3NvY2lhbC9saW5rZWRpbi5zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbWctZmx1aWQgbGlua2VkaW4taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjQ4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjQ4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJjYW5FZGl0UmVzb3VyY2VzVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLWVkaXQgaW4tcGFnZS1lZGl0LWljb24gdGV4dC13aGl0ZSBjdXJzb3ItcG9pbnRlciBtcy0zXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5Tb2NpYWxFZGl0TW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9wZW5Tb2NpYWxFZGl0TW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9wZW5Tb2NpYWxFZGl0TW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiRWRpdCBTb2NpYWwgTGlua3MgJiBDb21wYW55IE5hbWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3B5cmlnaHQgdGV4dC13aGl0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAyMDI1IHt7Y29tcGFueU5hbWV9fS5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3NlY3Rpb24+XG5cblxuXG48bmctdGVtcGxhdGUgI2Jvb2tNZWV0aW5nXG4gIGxldC1tb2RhbD5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImJ0bi1jbG9zZSBmbG9hdC1lbmRcIlxuICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlXCJcbiAgICAgIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgPGgzIGNsYXNzPVwidGV4dC1jZW50ZXIgbW9kYWwtYmFzaWMtdGl0bGVcIj5cbiAgICAgIFRoYW5rcyBmb3IgZ2V0dGluZyBpbiB0b3VjaCEgT3VyIHRlYW0gd2lsbCBiZSBpbiBjb250YWN0IHNob3J0bHksIG9yIHdlXG4gICAgICBjYW4gY29tcGFyZSBjYWxlbmRhcnMgbm93ICZhbXA7IHNjaGVkdWxlIGEgdGltZVxuICAgIDwvaDM+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFtldmVudFRyYWNrZXJdPVwie1xuICAgICAgICBjYXRlZ29yeTogJ3JlcXVlc3QtZGVtbycsXG4gICAgICAgIGFjdGlvbjogJ2NsaWNrJyxcbiAgICAgICAgbGFiZWw6ICdjbG91ZG9saXZlLWxhbmRpbmctcGFnZS1iJyxcbiAgICAgICAgdmFsdWU6IDFcbiAgICAgIH1cIlxuICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9Cb29rTWVldGluZygpXCJcbiAgICAgIGNsYXNzPVwic2lnbi1idG4gc2lnbi1oZWFkZXItYnRuIG14LWF1dG8gZC1ibG9jayBtYi0zXCI+XG4gICAgICBMZXQncyBkbyBpdFxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cblxuPG5nLXRlbXBsYXRlICNlZGl0Rm9vdGVyTGlua3NNb2RhbCBsZXQtbW9kYWw+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cbiAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiPkVkaXQgRm9vdGVyIExpbmtzPC9oNT5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0bi1jbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj48L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICA8aDQgY2xhc3M9XCJtYi0zXCI+Rm9vdGVyIExpbmtzIFNlY3Rpb248L2g0PlxuICAgIDxkaXYgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wRm9vdGVyTGlua3MoJGV2ZW50KVwiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZm9vdGVyIG9mIGVkaXRpbmdGb290ZXJMaW5rcy5pdGVtczsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwiYm9yZGVyIHAtMyBtYi0zXCIgY2RrRHJhZz5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNSBtYi0yXCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiZm9vdGVyVGl0bGV7e2l9fVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlRpdGxlPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cImZvb3RlclRpdGxle3tpfX1cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiZm9vdGVyLnRpdGxlXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTUgbWItMlwiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZvb3RlclBhdGh7e2l9fVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlBhdGg8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwiZm9vdGVyUGF0aHt7aX19XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImZvb3Rlci5wYXRoXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtdC00XCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRyYXNoIGluLXBhZ2UtdHJhc2gtaWNvbiB0ZXh0LWRhbmdlciBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJyZW1vdmVGb290ZXJMaW5rKGkpXCIgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlRm9vdGVyTGluayhpKVwiIChrZXlkb3duLnNwYWNlKT1cInJlbW92ZUZvb3RlckxpbmsoaSlcIj48L2k+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWJhcnMgaW4tcGFnZS1iYXJzLWljb24gY3Vyc29yLW1vdmVcIiBjZGtEcmFnSGFuZGxlPjwvaT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBTdWJ0aXRsZXMgLS0+XG4gICAgICAgIDxkaXYgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wU3VidGl0bGVzKGksICRldmVudClcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBzdWIgb2YgZm9vdGVyLnN1YnRpdGxlczsgbGV0IGogPSBpbmRleFwiIGNsYXNzPVwicm93IGJvcmRlciBwLTMgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIiBjZGtEcmFnPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzdWJ0aXRsZVRpdGxle3tpfX17e2p9fVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlN1YnRpdGxlIFRpdGxlPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IGlkPVwic3VidGl0bGVUaXRsZXt7aX19e3tqfX1cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwic3ViLnRpdGxlXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzdWJ0aXRsZVBhdGh7e2l9fXt7an19XCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+U3VidGl0bGUgUGF0aDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dCBpZD1cInN1YnRpdGxlUGF0aHt7aX19e3tqfX1cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwic3ViLnBhdGhcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtdC00XCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdHJhc2ggaW4tcGFnZS10cmFzaC1pY29uIHRleHQtZGFuZ2VyIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInJlbW92ZVN1YnRpdGxlKGksIGopXCIgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlU3VidGl0bGUoaSwgailcIiAoa2V5ZG93bi5zcGFjZSk9XCJyZW1vdmVTdWJ0aXRsZShpLCBqKVwiPjwvaT5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1iYXJzIGN1cnNvci1tb3ZlIGluLXBhZ2UtYmFycy1pY29uXCIgY2RrRHJhZ0hhbmRsZT48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IGJ0bi1zbSBtdC0yXCIgKGNsaWNrKT1cImFkZFN1YnRpdGxlKGkpXCI+XG4gICAgICAgICAgKyBBZGQgU3VidGl0bGVcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXQtM1wiIChjbGljayk9XCJhZGRGb290ZXJMaW5rKClcIj5cbiAgICAgICsgQWRkIEZvb3RlciBMaW5rXG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+Q2FuY2VsPC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJzYXZlRm9vdGVyTGlua3MobW9kYWwpXCI+U2F2ZTwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cblxuXG5cblxuPG5nLXRlbXBsYXRlICNsb2dvTW9kYWwgbGV0LW1vZGFsPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5VcGxvYWQgTG9nbzwvaDU+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+PC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgIDxwdy1jdXN0b20tdXBsb2FkZXJcbiAgICAgIFthc3BlY3RSYXRpb109XCInZnVsbExvZ28nXCJcbiAgICAgIFt0aXRsZV09XCInTWFpbiBDb250cmFzdCBMb2dvJ1wiXG4gICAgICBbY29udHJvbE5hbWVdPVwiJ2xvZ29fbWFpbl9jb250cmFzdCdcIlxuICAgICAgW3ByZXZpZXdEYXRhXT1cInByZXZpZXdEYXRhXCJcbiAgICAgIChzYXZlRXZlbnQpPVwib25TYXZlRmlsZSgkZXZlbnQpXCI+XG4gICAgPC9wdy1jdXN0b20tdXBsb2FkZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuXG5cbjxuZy10ZW1wbGF0ZSAjaHVic3BvdEVkaXRNb2RhbCBsZXQtbW9kYWw+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cbiAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiPkVkaXQgSHVic3BvdCBFbWJlZDwvaDU+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+PC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICA8bGFiZWwgZm9yPVwiaHVic3BvdElkXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+SHVic3BvdCBJRDwvbGFiZWw+XG4gICAgICA8aW5wdXQgaWQ9XCJodWJzcG90SWRcIiBbKG5nTW9kZWwpXT1cImVkaXRpbmdIdWJzcG90SWRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgIDxsYWJlbCBmb3I9XCJodWJzcG90RW1iZWREaXZcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5FbWJlZCBESVY8L2xhYmVsPlxuICAgICAgPHRleHRhcmVhIGlkPVwiaHVic3BvdEVtYmVkRGl2XCIgWyhuZ01vZGVsKV09XCJlZGl0aW5nSHVic3BvdEh0bWxcIiByb3dzPVwiOFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+PC90ZXh0YXJlYT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInNhdmVIdWJzcG90SHRtbChtb2RhbClcIj5TYXZlPC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPkNhbmNlbDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cblxuPG5nLXRlbXBsYXRlICNzb2NpYWxFZGl0TW9kYWwgbGV0LW1vZGFsPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5FZGl0IFNvY2lhbCBMaW5rcyAmIENvbXBhbnkgTmFtZTwvaDU+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+PC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICA8bGFiZWwgZm9yPVwieW91dHViZVVybFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPllvdVR1YmUgVVJMPC9sYWJlbD5cbiAgICAgIDxpbnB1dCBpZD1cInlvdXR1YmVVcmxcIiBbKG5nTW9kZWwpXT1cImVkaXRpbmdZb3V0dWJlVXJsXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICA8bGFiZWwgZm9yPVwibGlua2VkaW5VcmxcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5MaW5rZWRJbiBVUkw8L2xhYmVsPlxuICAgICAgPGlucHV0IGlkPVwibGlua2VkaW5VcmxcIiBbKG5nTW9kZWwpXT1cImVkaXRpbmdMaW5rZWRJblVybFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgPGxhYmVsIGZvcj1cImNvbXBhbnlOYW1lXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+Q29tcGFueSBOYW1lPC9sYWJlbD5cbiAgICAgIDxpbnB1dCBpZD1cImNvbXBhbnlOYW1lXCIgWyhuZ01vZGVsKV09XCJlZGl0aW5nQ29tcGFueU5hbWVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJzYXZlU29jaWFsTGlua3MobW9kYWwpXCI+U2F2ZTwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG5cblxuPG5nLXRlbXBsYXRlICNxdWVzdGlvbnNFZGl0TW9kYWwgbGV0LW1vZGFsPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5FZGl0IFF1ZXN0aW9uczwvaDU+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+PC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgPGg0IGNsYXNzPVwibWItM1wiPlF1ZXN0aW9ucyBTZWN0aW9uPC9oND5cbiAgICA8ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcFF1ZXN0aW9ucygkZXZlbnQpXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBxIG9mIGVkaXRpbmdRdWVzdGlvbnM7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cImJvcmRlciBwLTMgbWItM1wiIGNka0RyYWc+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTExIG1iLTJcIj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJxdWVzdGlvblRleHR7e2l9fVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlF1ZXN0aW9uPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInF1ZXN0aW9uVGV4dHt7aX19XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cInEucXVlc3Rpb25cIiBwbGFjZWhvbGRlcj1cIkVudGVyIHF1ZXN0aW9uXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtc3RhcnQgbXQtNFwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1iYXJzIGluLXBhZ2UtYmFycy1pY29uIGN1cnNvci1tb3ZlXCIgY2RrRHJhZ0hhbmRsZT48L2k+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gT3B0aW9ucyBTZWN0aW9uIC0tPlxuICAgICAgICA8ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcFF1ZXN0aW9uT3B0aW9ucyhpLCAkZXZlbnQpXCI+XG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgb3B0IG9mIHEub3B0aW9uczsgbGV0IGogPSBpbmRleFwiIGNsYXNzPVwicm93IGJvcmRlciBwLTMgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIiBjZGtEcmFnPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC03IG1iLTJcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInF1ZXN0aW9uT3B0aW9ue3tpfX17e2p9fVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPk9wdGlvbjwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dCBpZD1cInF1ZXN0aW9uT3B0aW9ue3tpfX17e2p9fVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJvcHQub3B0aW9uXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBvcHRpb25cIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtdC00XCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdHJhc2ggaW4tcGFnZS10cmFzaC1pY29uIHRleHQtZGFuZ2VyIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInJlbW92ZVF1ZXN0aW9uT3B0aW9uKGksIGopXCIgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlUXVlc3Rpb25PcHRpb24oaSwgailcIiAoa2V5ZG93bi5lbnRlcik9XCJyZW1vdmVRdWVzdGlvbk9wdGlvbihpLCBqKVwiPjwvaT5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1iYXJzIGluLXBhZ2UtYmFycy1pY29uIGN1cnNvci1tb3ZlXCIgY2RrRHJhZ0hhbmRsZT48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IGJ0bi1zbSBtdC0yXCIgKGNsaWNrKT1cImFkZFF1ZXN0aW9uT3B0aW9uKGkpXCI+KyBBZGQgT3B0aW9uPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXQtM1wiIChjbGljayk9XCJhZGROZXdRdWVzdGlvbigpXCI+KyBBZGQgUXVlc3Rpb248L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInNhdmVRdWVzdGlvbnMobW9kYWwpXCI+U2F2ZTwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cblxuXG4iXX0=
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
|
|
3
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { RouterModule } from '@angular/router';
|
|
5
|
+
import { AdminModuleUtilsModule } from '@posiwise/admin-module-utils';
|
|
6
|
+
import { CoreTranslocoModule } from '@posiwise/core-transloco';
|
|
7
|
+
import { DirectivesModule } from '@posiwise/directives';
|
|
8
|
+
import { PipesModule } from '@posiwise/pipes';
|
|
9
|
+
import { FieldErrorDisplayModule } from '@posiwise/utils';
|
|
10
|
+
import { NgxCaptchaModule } from 'ngx-captcha';
|
|
11
|
+
import { DropdownModule } from 'primeng/dropdown';
|
|
12
|
+
import { Trial4ContactUsComponent } from './resource-contact-us.component';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
export class Trial4SharedContactUsModule {
|
|
15
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: Trial4SharedContactUsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
16
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: Trial4SharedContactUsModule, declarations: [Trial4ContactUsComponent], imports: [CommonModule,
|
|
17
|
+
FieldErrorDisplayModule,
|
|
18
|
+
DropdownModule,
|
|
19
|
+
ReactiveFormsModule,
|
|
20
|
+
NgxCaptchaModule,
|
|
21
|
+
RouterModule,
|
|
22
|
+
PipesModule,
|
|
23
|
+
FormsModule,
|
|
24
|
+
CoreTranslocoModule,
|
|
25
|
+
AdminModuleUtilsModule,
|
|
26
|
+
DirectivesModule], exports: [Trial4ContactUsComponent,
|
|
27
|
+
CommonModule,
|
|
28
|
+
FieldErrorDisplayModule,
|
|
29
|
+
DropdownModule,
|
|
30
|
+
ReactiveFormsModule,
|
|
31
|
+
NgxCaptchaModule,
|
|
32
|
+
RouterModule,
|
|
33
|
+
PipesModule,
|
|
34
|
+
FormsModule,
|
|
35
|
+
CoreTranslocoModule,
|
|
36
|
+
AdminModuleUtilsModule,
|
|
37
|
+
DirectivesModule] }); }
|
|
38
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: Trial4SharedContactUsModule, imports: [CommonModule,
|
|
39
|
+
FieldErrorDisplayModule,
|
|
40
|
+
DropdownModule,
|
|
41
|
+
ReactiveFormsModule,
|
|
42
|
+
NgxCaptchaModule,
|
|
43
|
+
RouterModule,
|
|
44
|
+
PipesModule,
|
|
45
|
+
FormsModule,
|
|
46
|
+
CoreTranslocoModule,
|
|
47
|
+
AdminModuleUtilsModule,
|
|
48
|
+
DirectivesModule, CommonModule,
|
|
49
|
+
FieldErrorDisplayModule,
|
|
50
|
+
DropdownModule,
|
|
51
|
+
ReactiveFormsModule,
|
|
52
|
+
NgxCaptchaModule,
|
|
53
|
+
RouterModule,
|
|
54
|
+
PipesModule,
|
|
55
|
+
FormsModule,
|
|
56
|
+
CoreTranslocoModule,
|
|
57
|
+
AdminModuleUtilsModule,
|
|
58
|
+
DirectivesModule] }); }
|
|
59
|
+
}
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: Trial4SharedContactUsModule, decorators: [{
|
|
61
|
+
type: NgModule,
|
|
62
|
+
args: [{
|
|
63
|
+
declarations: [Trial4ContactUsComponent],
|
|
64
|
+
imports: [
|
|
65
|
+
CommonModule,
|
|
66
|
+
FieldErrorDisplayModule,
|
|
67
|
+
DropdownModule,
|
|
68
|
+
ReactiveFormsModule,
|
|
69
|
+
NgxCaptchaModule,
|
|
70
|
+
RouterModule,
|
|
71
|
+
PipesModule,
|
|
72
|
+
FormsModule,
|
|
73
|
+
CoreTranslocoModule,
|
|
74
|
+
AdminModuleUtilsModule,
|
|
75
|
+
DirectivesModule
|
|
76
|
+
],
|
|
77
|
+
exports: [
|
|
78
|
+
Trial4ContactUsComponent,
|
|
79
|
+
CommonModule,
|
|
80
|
+
FieldErrorDisplayModule,
|
|
81
|
+
DropdownModule,
|
|
82
|
+
ReactiveFormsModule,
|
|
83
|
+
NgxCaptchaModule,
|
|
84
|
+
RouterModule,
|
|
85
|
+
PipesModule,
|
|
86
|
+
FormsModule,
|
|
87
|
+
CoreTranslocoModule,
|
|
88
|
+
AdminModuleUtilsModule,
|
|
89
|
+
DirectivesModule
|
|
90
|
+
],
|
|
91
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA]
|
|
92
|
+
}]
|
|
93
|
+
}] });
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtY29udGFjdC11cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Jlc291cmNlLWNvbnRhY3QtdXMvc3JjL2xpYi9yZXNvdXJjZS1jb250YWN0LXVzL3Jlc291cmNlLWNvbnRhY3QtdXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBaUMzRSxNQUFNLE9BQU8sMkJBQTJCOytHQUEzQiwyQkFBMkI7Z0hBQTNCLDJCQUEyQixpQkE5QnJCLHdCQUF3QixhQUVuQyxZQUFZO1lBQ1osdUJBQXVCO1lBQ3ZCLGNBQWM7WUFDZCxtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixXQUFXO1lBQ1gsV0FBVztZQUNYLG1CQUFtQjtZQUNuQixzQkFBc0I7WUFDdEIsZ0JBQWdCLGFBR2hCLHdCQUF3QjtZQUN4QixZQUFZO1lBQ1osdUJBQXVCO1lBQ3ZCLGNBQWM7WUFDZCxtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixXQUFXO1lBQ1gsV0FBVztZQUNYLG1CQUFtQjtZQUNuQixzQkFBc0I7WUFDdEIsZ0JBQWdCO2dIQUlYLDJCQUEyQixZQTVCaEMsWUFBWTtZQUNaLHVCQUF1QjtZQUN2QixjQUFjO1lBQ2QsbUJBQW1CO1lBQ25CLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osV0FBVztZQUNYLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsc0JBQXNCO1lBQ3RCLGdCQUFnQixFQUloQixZQUFZO1lBQ1osdUJBQXVCO1lBQ3ZCLGNBQWM7WUFDZCxtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixXQUFXO1lBQ1gsV0FBVztZQUNYLG1CQUFtQjtZQUNuQixzQkFBc0I7WUFDdEIsZ0JBQWdCOzs0RkFJWCwyQkFBMkI7a0JBL0J2QyxRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLHdCQUF3QixDQUFDO29CQUN4QyxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWix1QkFBdUI7d0JBQ3ZCLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3dCQUN0QixnQkFBZ0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDTCx3QkFBd0I7d0JBQ3hCLFlBQVk7d0JBQ1osdUJBQXVCO3dCQUN2QixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLHNCQUFzQjt3QkFDdEIsZ0JBQWdCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQWRtaW5Nb2R1bGVVdGlsc01vZHVsZSB9IGZyb20gJ0Bwb3Npd2lzZS9hZG1pbi1tb2R1bGUtdXRpbHMnO1xuaW1wb3J0IHsgQ29yZVRyYW5zbG9jb01vZHVsZSB9IGZyb20gJ0Bwb3Npd2lzZS9jb3JlLXRyYW5zbG9jbyc7XG5pbXBvcnQgeyBEaXJlY3RpdmVzTW9kdWxlIH0gZnJvbSAnQHBvc2l3aXNlL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgUGlwZXNNb2R1bGUgfSBmcm9tICdAcG9zaXdpc2UvcGlwZXMnO1xuaW1wb3J0IHsgRmllbGRFcnJvckRpc3BsYXlNb2R1bGUgfSBmcm9tICdAcG9zaXdpc2UvdXRpbHMnO1xuXG5pbXBvcnQgeyBOZ3hDYXB0Y2hhTW9kdWxlIH0gZnJvbSAnbmd4LWNhcHRjaGEnO1xuaW1wb3J0IHsgRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2Ryb3Bkb3duJztcblxuaW1wb3J0IHsgVHJpYWw0Q29udGFjdFVzQ29tcG9uZW50IH0gZnJvbSAnLi9yZXNvdXJjZS1jb250YWN0LXVzLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbVHJpYWw0Q29udGFjdFVzQ29tcG9uZW50XSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRmllbGRFcnJvckRpc3BsYXlNb2R1bGUsXG4gICAgICAgIERyb3Bkb3duTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBOZ3hDYXB0Y2hhTW9kdWxlLFxuICAgICAgICBSb3V0ZXJNb2R1bGUsXG4gICAgICAgIFBpcGVzTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgQ29yZVRyYW5zbG9jb01vZHVsZSxcbiAgICAgICAgQWRtaW5Nb2R1bGVVdGlsc01vZHVsZSxcbiAgICAgICAgRGlyZWN0aXZlc01vZHVsZVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBUcmlhbDRDb250YWN0VXNDb21wb25lbnQsXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRmllbGRFcnJvckRpc3BsYXlNb2R1bGUsXG4gICAgICAgIERyb3Bkb3duTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBOZ3hDYXB0Y2hhTW9kdWxlLFxuICAgICAgICBSb3V0ZXJNb2R1bGUsXG4gICAgICAgIFBpcGVzTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgQ29yZVRyYW5zbG9jb01vZHVsZSxcbiAgICAgICAgQWRtaW5Nb2R1bGVVdGlsc01vZHVsZSxcbiAgICAgICAgRGlyZWN0aXZlc01vZHVsZVxuICAgIF0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdXG59KVxuZXhwb3J0IGNsYXNzIFRyaWFsNFNoYXJlZENvbnRhY3RVc01vZHVsZSB7fVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtbW9kYWwuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9yZXNvdXJjZS1jb250YWN0LXVzL3NyYy9saWIvc2hhcmVkL3Jlc291cmNlLW1vZGFsLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZU1vZGFsQ29udGV4dCB7XG4gICAgbW9kYWw6IHtcbiAgICAgICAgZGlzbWlzczogKCkgPT4gdm9pZDtcbiAgICAgICAgY2xvc2U6ICgpID0+
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtbW9kYWwuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9yZXNvdXJjZS1jb250YWN0LXVzL3NyYy9saWIvc2hhcmVkL3Jlc291cmNlLW1vZGFsLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZU1vZGFsQ29udGV4dCB7XG4gICAgbW9kYWw6IHtcbiAgICAgICAgZGlzbWlzczogKCkgPT4gdm9pZDtcbiAgICAgICAgY2xvc2U6ICgpID0+IHZvaWQ7XG4gICAgfTtcbn1cbiJdfQ==
|