vcomply-workflow-engine 3.4.23 → 3.4.25
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/esm2020/lib/add-multiple-responsibility/add-multiple-responsibility.component.mjs +2 -4
- package/esm2020/lib/add-multiple-risk/add-multiple-risk.component.mjs +2 -3
- package/esm2020/lib/formgroup/cs-select/cs-select.component.mjs +5 -5
- package/esm2020/lib/formgroup/cs-switch/cs-switch.component.mjs +1 -4
- package/esm2020/lib/log-an-issue/log-an-issue.component.mjs +1 -11
- package/esm2020/lib/more-option/more-option.component.mjs +5 -6
- package/esm2020/lib/pipes/filter.pipe.mjs +1 -2
- package/esm2020/lib/pipes/search.pipe.mjs +3 -5
- package/esm2020/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.mjs +3 -7
- package/esm2020/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.mjs +1 -5
- package/esm2020/lib/sharedComponents/approval-workflow/approval-workflow.component.mjs +1 -7
- package/esm2020/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.mjs +80 -36
- package/esm2020/lib/sharedComponents/assessment-list/assessment-list.component.mjs +27 -21
- package/esm2020/lib/sharedComponents/assessment-preview/preview/preview.component.mjs +7 -4
- package/esm2020/lib/sharedComponents/audit-category-list/audit-category-list.component.mjs +3 -4
- package/esm2020/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.mjs +3 -9
- package/esm2020/lib/sharedComponents/bulk-view/bulk-view.component.mjs +9 -7
- package/esm2020/lib/sharedComponents/category-multiselect/category-multi-select.component.mjs +7 -9
- package/esm2020/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.mjs +93 -27
- package/esm2020/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.mjs +11 -9
- package/esm2020/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.mjs +13 -12
- package/esm2020/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.mjs +28 -19
- package/esm2020/lib/sharedComponents/floating-bar/floating-bar.component.mjs +8 -8
- package/esm2020/lib/sharedComponents/format-and-evidence/format-and-evidence.component.mjs +35 -37
- package/esm2020/lib/sharedComponents/framework-list/parent-table/parent-table.component.mjs +7 -7
- package/esm2020/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.mjs +1 -12
- package/esm2020/lib/sharedComponents/frequency/frequency-container/frequency-container.component.mjs +1 -3
- package/esm2020/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.mjs +1 -13
- package/esm2020/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.mjs +1 -7
- package/esm2020/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.mjs +1 -26
- package/esm2020/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.mjs +1 -15
- package/esm2020/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.mjs +1 -14
- package/esm2020/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.mjs +14 -8
- package/esm2020/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.mjs +1 -13
- package/esm2020/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-random/frequency-random.component.mjs +1 -18
- package/esm2020/lib/sharedComponents/frequency/frequency-top/frequency-top.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.mjs +1 -12
- package/esm2020/lib/sharedComponents/frequency/frequency.service.mjs +2 -11
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/group-users-list/group-users-list.component.mjs +1 -3
- package/esm2020/lib/sharedComponents/link-program/link-program/link-program.component.mjs +48 -38
- package/esm2020/lib/sharedComponents/link-program/restapi.service.mjs +31 -16
- package/esm2020/lib/sharedComponents/no-data/no-data.component.mjs +2 -4
- package/esm2020/lib/sharedComponents/owner-list/owner-list.component.mjs +12 -10
- package/esm2020/lib/sharedComponents/program-listing/program-listing.component.mjs +127 -58
- package/esm2020/lib/sharedComponents/radio-list-with-pagination/radio-list.component.mjs +4 -7
- package/esm2020/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.mjs +9 -7
- package/esm2020/lib/sharedComponents/risk-classification/risk-classification.component.mjs +11 -6
- package/esm2020/lib/sharedComponents/select-approvers/select-approvers.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/users-radio-list/users-radio-list.component.mjs +2 -3
- package/esm2020/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +1 -4
- package/esm2020/lib/ui-kit/popover/popover-longpress.directive.mjs +1 -3
- package/esm2020/lib/ui-kit/popover/popover.component.mjs +26 -12
- package/esm2020/lib/ui-kit/tooltip/tooltip.directive.mjs +8 -5
- package/esm2020/lib/workflow/shared/components/attributes/attributes.component.mjs +1 -2
- package/esm2020/lib/workflow/shared/components/edit-mode/edit-mode.component.mjs +1 -4
- package/esm2020/lib/workflow/shared/components/grc-object-list/grc-object-list.component.mjs +1 -2
- package/esm2020/lib/workflow/shared/components/list-popup/list-popup.component.mjs +1 -4
- package/esm2020/lib/workflow/shared/components/table-card/table-card.component.mjs +4 -8
- package/esm2020/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.mjs +245 -108
- package/esm2020/lib/workflow-assessment/workflow-assessment.component.mjs +2 -4
- package/esm2020/lib/workflow-compliance/workflow-compliance.component.mjs +10 -8
- package/esm2020/lib/workflow-engine-container/workflow-engine-container.component.mjs +1 -5
- package/esm2020/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.mjs +45 -45
- package/esm2020/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.mjs +43 -25
- package/esm2020/lib/workflow-program/create-program-ui/define-framework-listing/pipes/sub-cat-indeter.pipe.mjs +4 -4
- package/esm2020/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.mjs +1 -2
- package/esm2020/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.mjs +25 -14
- package/esm2020/lib/workflow-program/create-program-ui/pipes/assessment-resolver.pipe.mjs +6 -3
- package/esm2020/lib/workflow-program/create-program-ui/role-list/role-list.component.mjs +25 -19
- package/esm2020/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.mjs +1 -4
- package/esm2020/lib/workflow-program/workflow-program.component.mjs +232 -110
- package/esm2020/lib/workflow-services/add-risk.service.mjs +1 -2
- package/esm2020/lib/workflow-services/assessment.service.mjs +1 -5
- package/esm2020/lib/workflow-services/programs.service.mjs +173 -57
- package/fesm2015/vcomply-workflow-engine.mjs +1381 -937
- package/fesm2015/vcomply-workflow-engine.mjs.map +1 -1
- package/fesm2020/vcomply-workflow-engine.mjs +1394 -945
- package/fesm2020/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/formgroup/cs-switch/cs-switch.component.d.ts +2 -3
- package/lib/sharedComponents/assessment-list/assessment-list.component.d.ts +4 -5
- package/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.d.ts +2 -3
- package/lib/sharedComponents/bulk-view/bulk-view.component.d.ts +2 -3
- package/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.d.ts +2 -4
- package/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.d.ts +1 -1
- package/lib/sharedComponents/link-program/restapi.service.d.ts +3 -3
- package/lib/sharedComponents/no-data/no-data.component.d.ts +2 -4
- package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +2 -3
- package/lib/workflow/shared/components/edit-mode/edit-mode.component.d.ts +2 -3
- package/lib/workflow/shared/components/list-popup/list-popup.component.d.ts +2 -3
- package/lib/workflow/shared/components/table-card/table-card.component.d.ts +2 -5
- package/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.d.ts +8 -9
- package/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.d.ts +2 -4
- package/package.json +1 -1
package/esm2020/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.mjs
CHANGED
|
@@ -24,12 +24,9 @@ export class BulkResponsibilityViewComponent {
|
|
|
24
24
|
}
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
|
-
// if(this.responsibilityType === 'multiTab') {
|
|
28
|
-
// let responsibilityBulkUpload = this.bulkUpload?.frequency?.reports?.concat(this.bulkUpload?.ongoing?.reports , this.bulkUpload?.onCompletion?.reports);
|
|
29
|
-
// this.isConfirmClickable = responsibilityBulkUpload?.some((responsibility: any) => responsibility.isValid);
|
|
30
|
-
// }
|
|
31
27
|
if (this.responsibilityType === 'multiTab') {
|
|
32
|
-
this.responsibilityMultiTabBulkUpload =
|
|
28
|
+
this.responsibilityMultiTabBulkUpload =
|
|
29
|
+
this.bulkUpload?.frequency?.reports?.concat(this.bulkUpload?.ongoing?.reports, this.bulkUpload?.onCompletion?.reports);
|
|
33
30
|
this.isConfirmClickable = this.responsibilityMultiTabBulkUpload?.some((responsibility) => responsibility.isValid);
|
|
34
31
|
this.finalResponsibilities = 0;
|
|
35
32
|
this.responsibilityMultiTabBulkUpload?.forEach((risk) => {
|
|
@@ -39,9 +36,6 @@ export class BulkResponsibilityViewComponent {
|
|
|
39
36
|
});
|
|
40
37
|
}
|
|
41
38
|
}
|
|
42
|
-
ngOnInit() {
|
|
43
|
-
console.log("multiTabResponsibility");
|
|
44
|
-
}
|
|
45
39
|
submit() {
|
|
46
40
|
this.submitResponsibilityBulkUpload.emit();
|
|
47
41
|
}
|
|
@@ -75,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
75
69
|
}], responsibilityType: [{
|
|
76
70
|
type: Input
|
|
77
71
|
}] } });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay1yZXNwb25zaWJpbGl0eS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvYnVsay1yZXNwb25zaWJpbGl0eS12aWV3L2J1bGstcmVzcG9uc2liaWxpdHktdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2J1bGstcmVzcG9uc2liaWxpdHktdmlldy9idWxrLXJlc3BvbnNpYmlsaXR5LXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFPL0UsTUFBTSxPQUFPLCtCQUErQjtJQUw1QztRQVVXLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixZQUFPLEdBQTZDLFdBQVcsQ0FBQztRQUkvRCxtQ0FBOEIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3BELFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyx1QkFBa0IsR0FBRyxXQUFXLENBQUM7UUFDMUMsMEJBQXFCLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUNwQyxxQ0FBZ0MsR0FBUSxFQUFFLENBQUM7S0F1QzVDO0lBckNDLFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUNqQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQzNELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDaEIsSUFBSSxDQUFDLHFCQUFxQixJQUFJLENBQUMsQ0FBQztpQkFDakM7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsK0NBQStDO1FBQy9DLDRKQUE0SjtRQUM1SixnSEFBZ0g7UUFDaEgsSUFBSTtRQUNKLElBQUcsSUFBSSxDQUFDLGtCQUFrQixLQUFLLFVBQVUsRUFBRTtZQUN6QyxJQUFJLENBQUMsZ0NBQWdDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDaEssSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxJQUFJLENBQUMsQ0FBQyxjQUFtQixFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkgsSUFBSSxDQUFDLHFCQUFxQixHQUFHLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsZ0NBQWdDLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQzNELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDaEIsSUFBSSxDQUFDLHFCQUFxQixJQUFJLENBQUMsQ0FBQztpQkFDakM7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUdELFFBQVE7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsOEJBQThCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7OzRIQXREVSwrQkFBK0I7Z0hBQS9CLCtCQUErQixzYkNQNUMsbTYrQ0FxakJzSDsyRkQ5aUJ6RywrQkFBK0I7a0JBTDNDLFNBQVM7K0JBQ0UsOEJBQThCOzhCQU0vQix3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFHSSw4QkFBOEI7c0JBQXZDLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0Usa0JBQWtCO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYnVsay1yZXNwb25zaWJpbGl0eS12aWV3JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYnVsay1yZXNwb25zaWJpbGl0eS12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9idWxrLXJlc3BvbnNpYmlsaXR5LXZpZXcuY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJ1bGtSZXNwb25zaWJpbGl0eVZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQhOiBhbnk7XHJcbiAgQElucHV0KCkgZmlsZU5hbWUhOiBhbnk7XHJcbiAgQElucHV0KCkgZGVmYXVsdE93bmVyITogYW55O1xyXG4gIEBJbnB1dCgpIGxvYWRlciA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRhYlR5cGU6ICdmcmVxdWVuY3knIHwgJ29uZ29pbmcnIHwgJ29uQ29tcGxldGlvbicgPSAnZnJlcXVlbmN5JztcclxuICBASW5wdXQoKSBidWxrVXBsb2FkOiBhbnk7XHJcblxyXG5cclxuICBAT3V0cHV0KCkgc3VibWl0UmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkVGFiID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNpYmlsaXR5VHlwZSA9ICdzaW5nbGVUYWInO1xyXG4gIGZpbmFsUmVzcG9uc2liaWxpdGllcyA9IDA7XHJcbiAgaXNDb25maXJtQ2xpY2thYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcmVzcG9uc2liaWxpdHlNdWx0aVRhYkJ1bGtVcGxvYWQ6IGFueSA9IFtdO1xyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIGlmICh0aGlzLnJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZCkge1xyXG4gICAgICB0aGlzLmZpbmFsUmVzcG9uc2liaWxpdGllcyA9IDA7XHJcbiAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5yZXBvcnRzLmZvckVhY2goKHJpc2s6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyaXNrLmlzVmFsaWQpIHtcclxuICAgICAgICAgIHRoaXMuZmluYWxSZXNwb25zaWJpbGl0aWVzICs9IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIC8vIGlmKHRoaXMucmVzcG9uc2liaWxpdHlUeXBlID09PSAnbXVsdGlUYWInKSB7XHJcbiAgICAvLyAgIGxldCByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQgPSB0aGlzLmJ1bGtVcGxvYWQ/LmZyZXF1ZW5jeT8ucmVwb3J0cz8uY29uY2F0KHRoaXMuYnVsa1VwbG9hZD8ub25nb2luZz8ucmVwb3J0cyAsIHRoaXMuYnVsa1VwbG9hZD8ub25Db21wbGV0aW9uPy5yZXBvcnRzKTtcclxuICAgIC8vICAgdGhpcy5pc0NvbmZpcm1DbGlja2FibGUgPSByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LnNvbWUoKHJlc3BvbnNpYmlsaXR5OiBhbnkpID0+IHJlc3BvbnNpYmlsaXR5LmlzVmFsaWQpOyBcclxuICAgIC8vIH1cclxuICAgIGlmKHRoaXMucmVzcG9uc2liaWxpdHlUeXBlID09PSAnbXVsdGlUYWInKSB7XHJcbiAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlNdWx0aVRhYkJ1bGtVcGxvYWQgPSB0aGlzLmJ1bGtVcGxvYWQ/LmZyZXF1ZW5jeT8ucmVwb3J0cz8uY29uY2F0KHRoaXMuYnVsa1VwbG9hZD8ub25nb2luZz8ucmVwb3J0cyAsIHRoaXMuYnVsa1VwbG9hZD8ub25Db21wbGV0aW9uPy5yZXBvcnRzKTtcclxuICAgICAgdGhpcy5pc0NvbmZpcm1DbGlja2FibGUgPSB0aGlzLnJlc3BvbnNpYmlsaXR5TXVsdGlUYWJCdWxrVXBsb2FkPy5zb21lKChyZXNwb25zaWJpbGl0eTogYW55KSA9PiByZXNwb25zaWJpbGl0eS5pc1ZhbGlkKTsgXHJcbiAgICAgIHRoaXMuZmluYWxSZXNwb25zaWJpbGl0aWVzID0gMDtcclxuICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eU11bHRpVGFiQnVsa1VwbG9hZD8uZm9yRWFjaCgocmlzazogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJpc2suaXNWYWxpZCkge1xyXG4gICAgICAgICAgdGhpcy5maW5hbFJlc3BvbnNpYmlsaXRpZXMgKz0gMTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcIm11bHRpVGFiUmVzcG9uc2liaWxpdHlcIilcclxuICB9XHJcblxyXG4gIHN1Ym1pdCgpIHtcclxuICAgIHRoaXMuc3VibWl0UmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5jYW5jZWwuZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iLCJcclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc3BvbnNpYmlsaXR5VHlwZSA9PT0gJ3NpbmdsZVRhYidcIj5cclxuPGRpdiBjbGFzcz1cImJ1bGstdmlld1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImJ1bGstdmlldy1oZWFkXCI+XHJcbiAgICAgICAgPGgyIGNsYXNzPVwiYnVsay12aWV3LXRpdGxlXCI+XHJcbiAgICAgICAgICAgIHt7ZmlsZU5hbWV9fVxyXG4gICAgICAgIDwvaDI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJidWxrLXZpZXctYm9keVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgaGVhZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gc2wtbm9cIj4jPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiICpuZ0Zvcj1cImxldCBoZWFkaW5nIG9mIHJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZD8uaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MubGFyZ2VdPVwiaGVhZGluZyAmJiBoZWFkaW5nLnN0YXJ0c1dpdGgoJ0luaGVyZW50JylcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGluZyAmJiAhKGhlYWRpbmcuc3RhcnRzV2l0aCgnRHVlJykpICYmICEoaGVhZGluZy5zdGFydHNXaXRoKCdPdmVyc2lnaHQnKSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3soaGVhZGluZy5pbmNsdWRlcygnKicpPyBoZWFkaW5nLnJlcGxhY2UoJyonLCAnJykgOiBoZWFkaW5nKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaGVhZGluZy5pbmNsdWRlcygnKicpXCIgY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhlYWRpbmcgJiYgaGVhZGluZy5zdGFydHNXaXRoKCdEdWUnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbGFyZ2VcIj5EdWUgRGF0ZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgbXVsdGktY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPkRheTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5Nb250aDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGluZyAmJiBoZWFkaW5nLnN0YXJ0c1dpdGgoJ092ZXJzaWdodCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBsYXJnZVwiPk92ZXJzaWdodCA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5BbHdheXMgTm90aWZ5PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPk5vdGlmeSBvbiBGYWlsdXJlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3dcIiAqbmdGb3I9XCJsZXQgcmVwb3J0IG9mIHJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZD8ucmVwb3J0czsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gc2wtbm9cIiBbY2xhc3MuZXJyb3JdPVwiIXJlcG9ydC5pc1ZhbGlkXCI+e3tpKzF9fTwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cIiFyZXBvcnQucmVzcG9uc2liaWxpdHlOYW1lXCI+e3tyZXBvcnQ/LnJlc3BvbnNpYmlsaXR5TmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIhcmVwb3J0Py5yZXNwb25zaWJpbGl0eU5hbWVcIiBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ0VudGVyIGEgbmFtZSBmb3IgdGhpcyByZXNwb25zaWJpbGl0eS4nXCIgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cInJlcG9ydD8uYXNzaWdub3IgJiYgKChyZXBvcnQ/LmFzc2lnbm9yID09IHJlcG9ydD8uYWx3YXlzTm90aWZ5KSB8fCAocmVwb3J0Py5hc3NpZ25vciA9PSByZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tyZXBvcnQ/LmFzc2lnbm9yfX1cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIigocmVwb3J0Py5hc3NpZ25vcikgJiYgKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlID09IHJlcG9ydD8uYXNzaWdub3J8fHJlcG9ydD8uYWx3YXlzTm90aWZ5ID09IHJlcG9ydD8uYXNzaWdub3IpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInVGhlIE92ZXJzZWVyIGNhbm5vdCBhbHNvIGJlIHRoZSBBc3NpZ25vciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5LiBTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBBc3NpZ25vci4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbjwhLS1cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIigocmVwb3J0Py5hc3NpZ25vcikgJiYgKHJlcG9ydD8ucmV2aWV3ZXIgPT0gcmVwb3J0Py5hc3NpZ25vcikpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGUgUmV2aWV3ZXIgY2Fubm90IGFsc28gYmUgdGhlIEFzc2lnbm9yIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuIFNlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIEFzc2lnbm9yLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgIDwvaT4gICAgIC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmVwb3J0Py5hc3NpZ25lZSB8fCAoKHJlcG9ydD8uYXNzaWduZWUgPT0gcmVwb3J0Py5yZXZpZXdlcilcclxuICAgICAgICAgICAgICAgIHx8IChyZXBvcnQ/LmFzc2lnbmVlID09IHJlcG9ydD8uYWx3YXlzTm90aWZ5KSB8fCAocmVwb3J0Py5hc3NpZ25lZSA9PSByZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSkpIHx8ICghcmVwb3J0Py5pc1ZhbGlkVXNlcilcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e3JlcG9ydD8uYXNzaWduZWV9fVxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIigocmVwb3J0Py5hc3NpZ25lZSkgJiYgKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlID09IHJlcG9ydD8uYXNzaWduZWV8fHJlcG9ydD8uYWx3YXlzTm90aWZ5ID09IHJlcG9ydD8uYXNzaWduZWUpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInVGhlIE92ZXJzZWVyIGNhbm5vdCBhbHNvIGJlIHRoZSBBc3NpZ25lZSBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5LiBTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBBc3NpZ25lZS4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICA8L2k+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKChyZXBvcnQ/LmFzc2lnbmVlKSAmJiAocmVwb3J0Py5yZXZpZXdlciA9PSByZXBvcnQ/LmFzc2lnbmVlKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoZSBSZXZpZXdlciBjYW5ub3QgYWxzbyBiZSB0aGUgQXNzaWduZWUgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgQXNzaWduZWUuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKCFyZXBvcnQ/LmFzc2lnbmVlKSB8fCAoIXJlcG9ydD8uaXNWYWxpZFVzZXIpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInU2VsZWN0IHRoZSB1c2VyIHJlc3BvbnNpYmxlIGZvciBjb21wbGV0aW5nIHRoaXMgcmVzcG9uc2liaWxpdHkuICdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIGlkPVwicmVzQ2F0ZWdvcnlcIiAqbmdJZj1cInJlcG9ydD8ucmVzcG9uc2liaWxpdHlDYXRlZ29yeSE9PW51bGxcIj57e3JlcG9ydD8ucmVzcG9uc2liaWxpdHlDYXRlZ29yeX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmVwb3J0LmZyZXF1ZW5jeVwiPnt7cmVwb3J0Py5mcmVxdWVuY3l9fVxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXJlcG9ydD8uZnJlcXVlbmN5XCIgY2xhc3M9XCJpY29uc1wiIFthcHBUb29sdGlwXT1cIidTZWxlY3QgYSBmcmVxdWVuY3kgZm9yIHRoaXMgcmVzcG9uc2liaWxpdHkuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIG11bHRpLWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cIiFyZXBvcnQuaXNWYWxpZER1ZURhdGVcIj57e3JlcG9ydD8uZGF5fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXJlcG9ydD8uaXNWYWxpZER1ZURhdGVcIiBjbGFzcz1cImljb25zXCIgW2FwcFRvb2x0aXBdPVwiJ0ludmFsaWQgRHVlIERhdGUuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cInJlcG9ydD8uaXNQYXN0RGF0ZVwiIGNsYXNzPVwiaWNvbnNcIiBbYXBwVG9vbHRpcF09XCInVGhpcyBkYXRlIG9jY3VycyBpbiB0aGUgcGFzdC4gU2VsZWN0IGEgZnV0dXJlIGRhdGUuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmVwb3J0LmlzVmFsaWREdWVEYXRlXCI+e3tyZXBvcnQ/Lm1vbnRofX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXJlcG9ydD8uaXNWYWxpZER1ZURhdGVcIiBjbGFzcz1cImljb25zXCIgW2FwcFRvb2x0aXBdPVwiJ0ludmFsaWQgRHVlIERhdGUuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cInJlcG9ydD8uaXNQYXN0RGF0ZVwiIGNsYXNzPVwiaWNvbnNcIiBbYXBwVG9vbHRpcF09XCInVGhpcyBkYXRlIG9jY3VycyBpbiB0aGUgcGFzdC4gU2VsZWN0IGEgZnV0dXJlIGRhdGUuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5yZXNwb25zaWJpbGl0eVdpbmRvd319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5mYWlsZWRBZnRlcn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5yZXBvcnRDbGFzc319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5yZXNwb25zaWJpbGl0eUNlbnRlcn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmVycm9yXT1cInJlcG9ydD8ucmV2aWV3ZXIgJiYgKChyZXBvcnQ/LnJldmlld2VyID09IHJlcG9ydD8uYWx3YXlzTm90aWZ5KSB8fCAgKHJlcG9ydD8ucmV2aWV3ZXIgPT0gcmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUpXHJcbiAgICAgICAgICAgICAgICAgICAgICB8fCAocmVwb3J0Py5yZXZpZXdlciA9PSByZXBvcnQ/LmFzc2lnbmVlKSApXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tyZXBvcnQ/LnJldmlld2VyfX1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIocmVwb3J0Py5yZXZpZXdlcikgJiYgKChyZXBvcnQ/LnJldmlld2VyID09IHJlcG9ydD8uYWx3YXlzTm90aWZ5KSB8fCAocmVwb3J0Py5yZXZpZXdlciA9PSByZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGUgT3ZlcnNlZXIgY2Fubm90IGFsc28gYmUgdGhlIFJldmlld2VyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuIFNlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIFJldmlld2VyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cInJlcG9ydD8ucmV2aWV3ZXIgJiYgKHJlcG9ydD8ucmV2aWV3ZXIgPT0gcmVwb3J0Py5hc3NpZ25lZSlcIiBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoZSBBc3NpZ25lZSBjYW5ub3QgYWxzbyBiZSB0aGUgUmV2aWV3ZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgUmV2aWV3ZXIuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGkgKm5nSWY9XCIocmVwb3J0Py5yZXZpZXdlciAmJiByZXBvcnQ/LmFzc2lnbm9yKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCIoKHJlcG9ydD8uYXNzaWdub3IpPydUaGUgQXNzaWdub3IgY2Fubm90IGFsc28gYmUgdGhlIFJldmlld2VyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuJzonWW91IGNhbm5vdCBiZSBhIFJldmlld2VyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkgc2luY2UgeW91IGFyZSB0aGUgYXNzaWdub3IuICcpICsnU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgUmV2aWV3ZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICA8L2k+IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5yZXZpZXdUb0JlQ29tcGxldGVkV2l0aGlufX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LnJldmlld1dpbGxCZUZhaWxlZEFmdGVyfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LmZvcm1hdEZvclJlc3BvbnNpYmlsaXR5fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/Lm5vdGVzfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LmRvY3VtZW50RXZpZGVuY2VSZXF1aXJlZH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBtdWx0aS1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCJyZXBvcnQ/LmFsd2F5c05vdGlmeSAmJiAoKHJlcG9ydD8uYWx3YXlzTm90aWZ5ID09IHJlcG9ydD8ucmV2aWV3ZXIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHx8IChyZXBvcnQ/LmFsd2F5c05vdGlmeSA9PSByZXBvcnQ/LmFzc2lnbm9yKSB8fCAocmVwb3J0Py5hbHdheXNOb3RpZnkgPT0gcmVwb3J0Py5hc3NpZ25lZSkgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKCghcmVwb3J0Py5hc3NpZ25vcikmJihyZXBvcnQ/LmFsd2F5c05vdGlmeSA9PSBkZWZhdWx0T3duZXIpKSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cmVwb3J0Py5hbHdheXNOb3RpZnl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIocmVwb3J0Py5hbHdheXNOb3RpZnkpICYmICgocmVwb3J0Py5yZXZpZXdlciA9PSByZXBvcnQ/LmFsd2F5c05vdGlmeSkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInVGhlIFJldmlld2VyIGNhbm5vdCBhbHNvIGJlIHRoZSBPdmVyc2VlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5LiBTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBPdmVyc2Vlci4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwicmVwb3J0Py5hbHdheXNOb3RpZnkgJiYgKHJlcG9ydD8uYWx3YXlzTm90aWZ5ID09IHJlcG9ydD8uYXNzaWduZWUpXCIgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoZSBBc3NpZ25lZSBjYW5ub3QgYWxzbyBiZSB0aGUgT3ZlcnNlZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgT3ZlcnNlZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIoKHJlcG9ydD8uYWx3YXlzTm90aWZ5ICYmIHJlcG9ydD8uYXNzaWdub3IpICYmIChyZXBvcnQ/LmFsd2F5c05vdGlmeSA9PSByZXBvcnQ/LmFzc2lnbm9yKSkgfHwoKHJlcG9ydD8uYWx3YXlzTm90aWZ5ICYmICghcmVwb3J0Py5hc3NpZ25vcikpICYmIChyZXBvcnQ/LmFsd2F5c05vdGlmeSA9PSBkZWZhdWx0T3duZXIpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiKChyZXBvcnQ/LmFzc2lnbm9yKT8nVGhlIEFzc2lnbm9yIGNhbm5vdCBhbHNvIGJlIHRoZSBPdmVyc2VlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5LiAnOidZb3UgY2Fubm90IGJlIGFuIE92ZXJzZWVyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkgc2luY2UgeW91IGFyZSB0aGUgQXNzaWdub3IuICcpICsnU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgT3ZlcnNlZXIuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cInJlcG9ydD8ubm90aWZ5T25GYWlsdXJlICYmICgocmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUgPT0gcmVwb3J0Py5yZXZpZXdlcilcclxuICAgICAgICAgICAgICAgICAgICAgICAgfHwgKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlID09IHJlcG9ydD8uYXNzaWdub3IpIHx8IChyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSA9PSByZXBvcnQ/LmFzc2lnbmVlKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoKCFyZXBvcnQ/LmFzc2lnbm9yKSYmKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlID09IGRlZmF1bHRPd25lcikpKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIihyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSkgJiYgKChyZXBvcnQ/LnJldmlld2VyID09IHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInVGhlIFJldmlld2VyIGNhbm5vdCBhbHNvIGJlIHRoZSBPdmVyc2VlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5LiBTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBPdmVyc2Vlci4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwicmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUgJiYgKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlID09IHJlcG9ydD8uYXNzaWduZWUpXCIgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInVGhlIEFzc2lnbmVlIGNhbm5vdCBhbHNvIGJlIHRoZSBPdmVyc2VlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5LiBTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBPdmVyc2VlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIigocmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUgJiYgcmVwb3J0Py5hc3NpZ25vcikgJiYgKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlID09IHJlcG9ydD8uYXNzaWdub3IpKSB8fCgocmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUgJiYgKCFyZXBvcnQ/LmFzc2lnbm9yKSkgJiYgKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlID09IGRlZmF1bHRPd25lcikpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiKChyZXBvcnQ/LmFzc2lnbm9yKT8nVGhlIEFzc2lnbm9yIGNhbm5vdCBhbHNvIGJlIHRoZSBPdmVyc2VlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5LiAnOidZb3UgY2Fubm90IGJlIGFuIE92ZXJzZWVyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkgc2luY2UgeW91IGFyZSB0aGUgQXNzaWdub3IuICcpICsnU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgT3ZlcnNlZXIuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LmtleVJlc3BvbnNpYmlsaXR5fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/Lm9iamVjdGl2ZX19PC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImJ1bGstdmlldy1mb290ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICA8cD57e2ZpbmFsUmVzcG9uc2liaWxpdGllc319IG91dCBvZiB7e3Jlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZD8ucmVwb3J0cz8ubGVuZ3RofX0gcmVzcG9uc2liaWxpdGllcyB3aWxsIGJlXHJcbiAgICAgICAgICAgICAgICB1cGxvYWRlZC48L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNsb3NlKClcIiBpZD1cImJ1bGstcmVzcC1jYW5jZWxcIiA+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInN1Ym1pdCgpXCIgaWQ9XCJidWxrLXJlc3AtY29uZmlybVwiIFtkaXNhYmxlZF09XCJmaW5hbFJlc3BvbnNpYmlsaXRpZXM8MVwiIGNsYXNzPVwiYmx1ZVwiPkNvbmZpcm08L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGFwcC1sb2FkZXIgICpuZ0lmPVwibG9hZGVyXCI+PC9hcHAtbG9hZGVyPlxyXG5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48IS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tdXB3YXJkIGlzIG5ldyBvbmUtLS0tLS0tLS0tLS0tLS0tLS0tLSAtLT5cclxuPGFwcC1sb2FkZXIgICpuZ0lmPVwibG9hZGVyXCI+PC9hcHAtbG9hZGVyPlxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG48IS0tIEhUTUwgZm9yIG11bHRpcGxlIHRhYnMgLS0+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJyZXNwb25zaWJpbGl0eVR5cGUgPT09ICdtdWx0aVRhYidcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJidWxrLXZpZXdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnVsay12aWV3LWhlYWRcIj5cclxuICAgICAgICAgICAgPGgyIGNsYXNzPVwiYnVsay12aWV3LXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICB7e2ZpbGVOYW1lfX1cclxuICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnVsay12aWV3LWJvZHkgYnVsa1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBoZWFkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gc2wtbm9cIj4jPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5SZXNwb25zaWJpbGl0eSBOYW1lIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgKm5nSWY9XCJyZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LmhlYWRlci5pbmNsdWRlcygnUHJvZ3JhbScpXCIgW2NsYXNzLnRocmVlLWNvbHVtbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBsYXJnZVwiPlByb2dyYW08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy50aHJlZS1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5Qcm9ncmFtIFR5cGU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+UHJvZ3JhbTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5Qcm9ncmFtIENhdGVnb3J5PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+RW50cnVzdGVkIEJ5PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MudHdvLWNvbHVtbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBsYXJnZVwiPkVudHJ1c3QgVG8gPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBtdWx0aS1jb2x1bW5cIiBbY2xhc3MudHdvLWNvbHVtbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPlBlcnNvbiBvciBHcm91cDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5BbGwgb3IgQW55IFBlcnNvbnM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5LZXkgUmVzcG9uc2liaWxpdHk/PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZml2ZS1jb2x1bW5dPVwidGFiVHlwZSA9PT0gJ2ZyZXF1ZW5jeScgfHwgdGFiVHlwZSA9PT0gJ29uQ29tcGxldGlvbidcIiBbY2xhc3MudGhyZWUtY29sdW1uXT1cInRhYlR5cGUgPT09ICdvbmdvaW5nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBsYXJnZVwiPkZyZXF1ZW5jeSBvZiBPY2N1cnJlbmNlIGFuZCBDb21wbGV0aW9uIFdpbmRvdyA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBsYXJnZVwiPnt7cmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5oZWFkZXIuaW5jbHVkZXMoJ1Byb2dyYW0nKSA/IHJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZD8uaGVhZGVyWzhdPy5zbGljZSgwLCAtMSkgOiByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LmhlYWRlcls1XT8uc2xpY2UoMCwgLTEpfX08c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy5maXZlLWNvbHVtbl09XCJ0YWJUeXBlID09PSAnZnJlcXVlbmN5JyB8fCB0YWJUeXBlID09PSAnb25Db21wbGV0aW9uJ1wiIFtjbGFzcy50aHJlZS1jb2x1bW5dPVwidGFiVHlwZSA9PT0gJ29uZ29pbmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiVHlwZSA9PT0gJ2ZyZXF1ZW5jeSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPkZyZXF1ZW5jeSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPkR1ZSBEYXRlIDxzcGFuIGNsYXNzPVwiaW5mby10ZXh0XCI+KERheSk8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5EdWUgRGF0ZSA8c3BhbiBjbGFzcz1cImluZm8tdGV4dFwiPihNb250aCk8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5TdGFydCA8c3BhbiBjbGFzcz1cImluZm8tdGV4dFwiPihOby4gb2YgZGF5cyBiZWZvcmUgdGhlIGR1ZSBkYXRlKTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPkZhaWwgPHNwYW4gY2xhc3M9XCJpbmZvLXRleHRcIiBhcHBUb29sdGlwPVwiKE5vLiBvZiBkYXlzIGFmdGVyIHRoZSBkdWUgZGF0ZS4gU2VsZWN0ICcwJyBpZiB0aGUgcmVzcG9uc2liaWxpdHkgbXVzdCBiZSBjb21wbGV0ZWQgb24gdGhlIGR1ZSBkYXRlKVwiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+KE5vLiBvZiBkYXlzIGFmdGVyIHRoZSBkdWUgZGF0ZS4gU2VsZWN0IFwiMFwiIGlmIHRoZSByZXNwb25zaWJpbGl0eSBtdXN0IGJlIGNvbXBsZXRlZCBvbiB0aGUgZHVlIGRhdGUpPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiVHlwZSA9PT0gJ29uZ29pbmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5PbmdvaW5nIEZyZXF1ZW5jeSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPlNldCBhIFJlbWluZGVyPzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+RnJlcXVlbmN5IG9mIFJlbWluZGVyPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJUeXBlID09PSAnb25Db21wbGV0aW9uJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+T24gQ29tcGxldGlvbiBvZiBGcmVxdWVuY3kgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5QYXJlbnQgUmVzcG9uc2liaWxpdHk8c3BhbiBjbGFzcz1cImluZm8tdGV4dFwiPihEYXkpPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+RHVlIERhdGUgPHNwYW4gY2xhc3M9XCJpbmZvLXRleHRcIiBhcHBUb29sdGlwPVwiKE5vLiBvZiBkYXlzIGFmdGVyIGNvbXBsZXRpb24gb2YgdGhlIFBhcmVudCBSZXNwb25zaWJpbGl0eSlcIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiPihOby4gb2YgZGF5cyBhZnRlciBjb21wbGV0aW9uIG9mIHRoZSBQYXJlbnQgUmVzcG9uc2liaWxpdHkpPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+U3RhcnQgPHNwYW4gY2xhc3M9XCJpbmZvLXRleHRcIiBhcHBUb29sdGlwPVwiKE5vLiBvZiBkYXlzIGJlZm9yZSB0aGUgZHVlIGRhdGUpXCIgcGxhY2VtZW50PVwiYm90dG9tXCIgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj4oTm8uIG9mIGRheXMgYmVmb3JlIHRoZSBkdWUgZGF0ZSk8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5GYWlsIDxzcGFuIGNsYXNzPVwiaW5mby10ZXh0XCIgYXBwVG9vbHRpcD1cIihOby4gb2YgZGF5cyBhZnRlciB0aGUgZHVlIGRhdGUuIFNlbGVjdCAnMCcgaWYgdGhlIHJlc3BvbnNpYmlsaXR5IG11c3QgYmUgY29tcGxldGVkIG9uIHRoZSBkdWUgZGF0ZSlcIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiPihOby4gb2YgZGF5cyBhZnRlciB0aGUgZHVlIGRhdGUuIFNlbGVjdCBcIjBcIiBpZiB0aGUgcmVzcG9uc2liaWxpdHkgbXVzdCBiZSBjb21wbGV0ZWQgb24gdGhlIGR1ZSBkYXRlKTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPlJlc3BvbnNpYmlsaXR5IENlbnRyZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+UmlzayBDbGFzczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+T2JqZWN0aXZlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5Ob3RlczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLnR3by1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbGFyZ2VcIj5Gb3JtYXQgJiBFdmlkZW5jZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgbXVsdGktY29sdW1uXCIgW2NsYXNzLnR3by1jb2x1bW5dPVwidHJ1ZVwiIFtjbGFzcy50aHJlZS1jb2x1bW5dPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLnNtYWxsLWNvbHVtbl09XCJ0cnVlXCI+Rm9ybWF0PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPkZvcm1hdCBGb3IgUmVzcG9uc2liaWxpdHkgKGxpbmspPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5zbWFsbC1jb2x1bW5dPVwidHJ1ZVwiPkV2aWRlbmNlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5Bc3Nlc3NtZW50cyBvciBDaGVja3BvaW50czwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy50aHJlZS1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbGFyZ2VcIj5SZXZpZXcgb2YgUmVzcG9uc2liaWxpdHk8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy50aHJlZS1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5SZXZpZXdlcjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5SZXZpZXcgU3RhcnQgPHNwYW4gY2xhc3M9XCJpbmZvLXRleHRcIj4oTm8uIG9mIGRheXMgYmVmb3JlIHRoZSBkdWUgZGF0ZSk8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPlJldmlldyBGYWlsIDxzcGFuIGNsYXNzPVwiaW5mby10ZXh0XCIgYXBwVG9vbHRpcD1cIihOby4gb2YgZGF5cyBhZnRlciB0aGUgZHVlIGRhdGUuIFNlbGVjdCAnMCcgaWYgdGhlIHJlc3BvbnNpYmlsaXR5IG11c3QgYmUgcmV2aWV3ZWQgb24gdGhlIGR1ZSBkYXRlKVwiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+KE5vLiBvZiBkYXlzIGFmdGVyIHRoZSBkdWUgZGF0ZS4gU2VsZWN0IFwiMFwiIGlmIHRoZSByZXNwb25zaWJpbGl0eSBtdXN0IGJlIHJldmlld2VkIG9uIHRoZSBkdWUgZGF0ZSk8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLnR3by1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbGFyZ2VcIj5PdmVyc2VlcjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgbXVsdGktY29sdW1uXCIgW2NsYXNzLnR3by1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5BbHdheXMgTm90aWZ5PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPk5vdGlmeSBvbiBGYWlsdXJlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5PdmVyc2VlcjwvZGl2PiAtLT5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvd1wiICpuZ0Zvcj1cImxldCByZXBvcnQgb2YgcmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5yZXBvcnRzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gc2wtbm9cIiBbY2xhc3MuZXJyb3JdPVwiIXJlcG9ydD8uaXNWYWxpZFwiPnt7aSsxfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmVwb3J0LnJlc3BvbnNpYmlsaXR5TmFtZVwiPnt7cmVwb3J0Py5yZXNwb25zaWJpbGl0eU5hbWV9fSA8aSAqbmdJZj1cIiFyZXBvcnQucmVzcG9uc2liaWxpdHlOYW1lXCIgY2xhc3M9XCJpY29uc1wiIFthcHBUb29sdGlwXT1cIidFbnRlciBhIG5hbWUgZm9yIHRoaXMgcmVzcG9uc2liaWxpdHkuJ1wiICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyOzwvaT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBtdWx0aS1jb2x1bW5cIiAqbmdJZj1cInJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZD8uaGVhZGVyLmluY2x1ZGVzKCdQcm9ncmFtJylcIiBbY2xhc3MuZXJyb3JdPVwiZmFsc2VcIiBbY2xhc3MudGhyZWUtY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgbXVsdGktY29sdW1uXCIgW2NsYXNzLnRocmVlLWNvbHVtbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5wcm9ncmFtVHlwZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5wcm9ncmFtfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LnByb2dyYW1DYXRlZ29yeX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cInJlcG9ydD8uYXNzaWdub3IgJiYgKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlID09IHJlcG9ydD8uYXNzaWdub3IgfHwgcmVwb3J0Py5hc3NpZ25vciA9PSByZXBvcnQ/Lm92ZXJzZWVyKVwiPnt7cmVwb3J0Py5hc3NpZ25vcn19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKChyZXBvcnQ/LmFzc2lnbm9yKSAmJiAocmVwb3J0Py5vdmVyc2VlciA9PSByZXBvcnQ/LmFzc2lnbm9yIHx8IHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlID09IHJlcG9ydD8uYXNzaWdub3IpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGUgT3ZlcnNlZXIgY2Fubm90IGFsc28gYmUgdGhlIEFzc2lnbm9yIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuIFNlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIEFzc2lnbm9yLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxpICpuZ0lmPVwiKChyZXBvcnQ/LmFzc2lnbm9yKSAmJiAocmVwb3J0Py5yZXZpZXdlciA9PT0gcmVwb3J0Py5hc3NpZ25vcikpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoZSBSZXZpZXdlciBjYW5ub3QgYWxzbyBiZSB0aGUgQXNzaWdub3Igb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgQXNzaWdub3IuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2k+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIG11bHRpLWNvbHVtblwiIFtjbGFzcy50d28tY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgbXVsdGktY29sdW1uXCIgW2NsYXNzLnR3by1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiIXJlcG9ydD8uYXNzaWduZWUgfHwgcmVwb3J0Py5hc3NpZ25lZSA9PSByZXBvcnQ/LnJldmlld2VyIHx8ICFyZXBvcnQ/LnVzZXJWYWxpZGF0ZVdpdGhQcm9ncmFtPy5pc1ZhbGlkQXNzaWduZWUgfHwgcmVwb3J0Py5vdmVyc2VlciA9PT0gcmVwb3J0Py5hc3NpZ25lZSAgfHwgKCFyZXBvcnQ/LmlzVmFsaWRVc2VyKVwiPnt7cmVwb3J0Py5hc3NpZ25lZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSB8fCAoIXJlcG9ydD8uaXNWYWxpZFVzZXIpIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKChyZXBvcnQ/LmFzc2lnbmVlKSAmJiAocmVwb3J0Py5vdmVyc2VlciA9PSByZXBvcnQ/LmFzc2lnbmVlKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoZSBPdmVyc2VlciBjYW5ub3QgYWxzbyBiZSB0aGUgQXNzaWduZWUgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgQXNzaWduZWUuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKChyZXBvcnQ/LmFzc2lnbmVlKSAmJiAocmVwb3J0Py5yZXZpZXdlciA9PSByZXBvcnQ/LmFzc2lnbmVlKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoZSBSZXZpZXdlciBjYW5ub3QgYWxzbyBiZSB0aGUgQXNzaWduZWUgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgQXNzaWduZWUuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKCFyZXBvcnQ/LmFzc2lnbmVlKSB8fCAoIXJlcG9ydD8uaXNWYWxpZFVzZXIpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidTZWxlY3QgdGhlIHVzZXIgcmVzcG9uc2libGUgZm9yIGNvbXBsZXRpbmcgdGhpcyByZXNwb25zaWJpbGl0eS4gJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKHJlcG9ydD8uYXNzaWduZWUpICYmICFyZXBvcnQ/LnVzZXJWYWxpZGF0ZVdpdGhQcm9ncmFtPy5pc1ZhbGlkQXNzaWduZWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoaXMgdXNlciBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZWxlY3RlZCBQcm9ncmFtLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8uYXNzaWduZWVUeXBlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8ua2V5UmVzcG9uc2liaWxpdHl9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIG11bHRpLWNvbHVtblwiIFtjbGFzcy5maXZlLWNvbHVtbl09XCJ0YWJUeXBlID09PSAnZnJlcXVlbmN5JyB8fCB0YWJUeXBlID09PSAnb25Db21wbGV0aW9uJ1wiIFtjbGFzcy50aHJlZS1jb2x1bW5dPVwidGFiVHlwZSA9PT0gJ29uZ29pbmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJUeXBlID09PSAnZnJlcXVlbmN5J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgbXVsdGktY29sdW1uXCIgW2NsYXNzLmZpdmUtY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmVwb3J0Py5mcmVxdWVuY3lcIj57e3JlcG9ydD8uZnJlcXVlbmN5fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIhcmVwb3J0Py5mcmVxdWVuY3lcIiBjbGFzcz1cImljb25zXCIgW2FwcFRvb2x0aXBdPVwiJ1NlbGVjdCBhIGZyZXF1ZW5jeSBmb3IgdGhpcyByZXNwb25zaWJpbGl0eS4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiIXJlcG9ydD8udmFsaWREYXRlIHx8IHJlcG9ydD8uaXNQYXN0RGF0ZVwiPnt7cmVwb3J0Py5kYXl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyZXBvcnQ/LnZhbGlkRGF0ZVwiIGNsYXNzPVwiaWNvbnNcIiBbYXBwVG9vbHRpcF09XCInSW52YWxpZCBEdWUgRGF0ZS4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cInJlcG9ydD8uaXNQYXN0RGF0ZVwiIGNsYXNzPVwiaWNvbnNcIiBbYXBwVG9vbHRpcF09XCInVGhpcyBkYXRlIG9jY3VycyBpbiB0aGUgcGFzdC4gU2VsZWN0IGEgZnV0dXJlIGRhdGUuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmVwb3J0Py52YWxpZERhdGUgfHwgcmVwb3J0Py5pc1Bhc3REYXRlXCI+e3tyZXBvcnQ/Lm1vbnRofX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIhcmVwb3J0Py52YWxpZERhdGVcIiBjbGFzcz1cImljb25zXCIgW2FwcFRvb2x0aXBdPVwiJ0ludmFsaWQgRHVlIERhdGUuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJyZXBvcnQ/LmlzUGFzdERhdGVcIiBjbGFzcz1cImljb25zXCIgW2FwcFRvb2x0aXBdPVwiJ1RoaXMgZGF0ZSBvY2N1cnMgaW4gdGhlIHBhc3QuIFNlbGVjdCBhIGZ1dHVyZSBkYXRlLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8ucmVzcG9uc2liaWxpdHlXaW5kb3d9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LmZhaWxlZEFmdGVyfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYlR5cGUgPT09ICdvbmdvaW5nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgbXVsdGktY29sdW1uXCIgW2NsYXNzLnRocmVlLWNvbHVtbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiIXJlcG9ydD8uZnJlcXVlbmN5XCI+e3tyZXBvcnQ/LmZyZXF1ZW5jeX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXJlcG9ydD8uZnJlcXVlbmN5XCIgY2xhc3M9XCJpY29uc1wiIFthcHBUb29sdGlwXT1cIidTZWxlY3QgYSBmcmVxdWVuY3kgZm9yIHRoaXMgcmVzcG9uc2liaWxpdHkuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LnNldFJlbWluZGVyfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5mcmVxdWVuY3lSZW1pbmRlcn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJUeXBlID09PSAnb25Db21wbGV0aW9uJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgbXVsdGktY29sdW1uXCIgW2NsYXNzLmZpdmUtY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmVwb3J0Py5mcmVxdWVuY3lcIj57e3JlcG9ydD8uZnJlcXVlbmN5fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIhcmVwb3J0Py5mcmVxdWVuY3lcIiBjbGFzcz1cImljb25zXCIgW2FwcFRvb2x0aXBdPVwiJ1NlbGVjdCBhIGZyZXF1ZW5jeSBmb3IgdGhpcyByZXNwb25zaWJpbGl0eS4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiIXJlcG9ydD8ucGFyZW50UmVzcG9uc2liaWxpdHlcIj57e3JlcG9ydD8ucGFyZW50UmVzcG9uc2liaWxpdHl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyZXBvcnQ/LnBhcmVudFJlc3BvbnNpYmlsaXR5XCIgY2xhc3M9XCJpY29uc1wiIFthcHBUb29sdGlwXT1cIidTZWxlY3QgYSBwYXJlbnQgcmVzcG9uc2liaWxpdHkgb24gd2hvc2UgY29tcGxldGlvbiB0aGlzIHJlc3BvbnNpYmlsaXR5IHdpbGwgYmVjb21lIGFjdGl2ZS4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8uZHVlRGF0ZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8ucmVzcG9uc2liaWxpdHlXaW5kb3d9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LmZhaWxlZEFmdGVyfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5yZXNwb25zaWJpbGl0eUNlbnRlcn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8ucmVwb3J0Q2xhc3N9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/Lm9iamVjdGl2ZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8ubm90ZXN9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIG11bHRpLWNvbHVtblwiIFtjbGFzcy50d28tY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgbXVsdGktY29sdW1uXCIgW2NsYXNzLnR3by1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbXVsdGktY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgbXVsdGktY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLnNtYWxsLWNvbHVtbl09XCJ0cnVlXCI+e3tyZXBvcnQ/LmlzRm9ybWF0fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8uZm9ybWF0Rm9yUmVzcG9uc2liaWxpdHl9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5zbWFsbC1jb2x1bW5dPVwidHJ1ZVwiPnt7cmVwb3J0Py5kb2N1bWVudEV2aWRlbmNlUmVxdWlyZWR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LmFzc2Vzc21lbnRzfX08L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbXVsdGktY29sdW1uXCIgW2NsYXNzLnRocmVlLWNvbHVtbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy50aHJlZS1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwicmVwb3J0Py5yZXZpZXdlciAmJiAoKHJlcG9ydD8ucmV2aWV3ZXIgPT09IHJlcG9ydD8ub3ZlcnNlZXIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAocmVwb3J0Py5yZXZpZXdlciA9PT0gcmVwb3J0Py5hc3NpZ25lZSkgfHwgIXJlcG9ydD8udXNlclZhbGlkYXRlV2l0aFByb2dyYW0/LmlzVmFsaWRSZXZpZXdlciApXCI+e3tyZXBvcnQ/LnJldmlld2VyfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIocmVwb3J0Py5yZXZpZXdlcikgJiYgKChyZXBvcnQ/LnJldmlld2VyID09PSByZXBvcnQ/Lm92ZXJzZWVyKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInVGhlIE92ZXJzZWVyIGNhbm5vdCBhbHNvIGJlIHRoZSBSZXZpZXdlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5LiBTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBSZXZpZXdlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwicmVwb3J0Py5yZXZpZXdlciAmJiAocmVwb3J0Py5yZXZpZXdlciA9PT0gcmVwb3J0Py5hc3NpZ25lZSlcIiBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGUgQXNzaWduZWUgY2Fubm90IGFsc28gYmUgdGhlIFJldmlld2VyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuIFNlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIFJldmlld2VyLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxpICpuZ0lmPVwiKHJlcG9ydD8ucmV2aWV3ZXIgJiYgcmVwb3J0Py5yZXZpZXdlciA9PT0gcmVwb3J0Py5hc3NpZ25vcilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCIoKHJlcG9ydD8uYXNzaWdub3IpPydUaGUgQXNzaWdub3IgY2Fubm90IGFsc28gYmUgdGhlIFJldmlld2VyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuJzonWW91IGNhbm5vdCBiZSBhIFJldmlld2VyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkgc2luY2UgeW91IGFyZSB0aGUgYXNzaWdub3IuICcpICsnU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgUmV2aWV3ZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaT4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwicmVwb3J0Py5yZXZpZXdlciAmJiAhcmVwb3J0Py51c2VyVmFsaWRhdGVXaXRoUHJvZ3JhbT8uaXNWYWxpZFJldmlld2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoaXMgdXNlciBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZWxlY3RlZCBQcm9ncmFtLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5yZXZpZXdUb0JlQ29tcGxldGVkV2l0aGlufX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LnJldmlld1dpbGxCZUZhaWxlZEFmdGVyfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIG11bHRpLWNvbHVtblwiIFtjbGFzcy50d28tY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgbXVsdGktY29sdW1uXCIgW2NsYXNzLnR3by1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwicmVwb3J0Py5vdmVyc2VlciAmJiAoKHJlcG9ydD8ucmV2aWV3ZXIgPT09IHJlcG9ydD8ub3ZlcnNlZXIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAocmVwb3J0Py5vdmVyc2VlciA9PT0gcmVwb3J0Py5hc3NpZ25lZSkgfHwgKHJlcG9ydD8ub3ZlcnNlZXIgPT09IHJlcG9ydD8uYXNzaWdub3IpIHx8ICFyZXBvcnQ/LnVzZXJWYWxpZGF0ZVdpdGhQcm9ncmFtPy5pc1ZhbGlkT3ZlcnNlZXIgKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tyZXBvcnQ/Lm92ZXJzZWVyfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIihyZXBvcnQ/Lm92ZXJzZWVyKSAmJiAoKHJlcG9ydD8ucmV2aWV3ZXIgPT09IHJlcG9ydD8ub3ZlcnNlZXIpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoZSBSZXZpZXdlciBjYW5ub3QgYWxzbyBiZSB0aGUgT3ZlcnNlZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgT3ZlcnNlZXIuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwicmVwb3J0Py5vdmVyc2VlciAmJiAocmVwb3J0Py5vdmVyc2VlciA9PT0gcmVwb3J0Py5hc3NpZ25lZSlcIiBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoZSBBc3NpZ25lZSBjYW5ub3QgYWxzbyBiZSB0aGUgT3ZlcnNlZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgT3ZlcnNlZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIoKHJlcG9ydD8ub3ZlcnNlZXIgJiYgcmVwb3J0Py5hc3NpZ25vcikgJiYgKHJlcG9ydD8ub3ZlcnNlZXIgPT0gcmVwb3J0Py5hc3NpZ25vcikpIHx8KChyZXBvcnQ/Lm92ZXJzZWVyICYmICghcmVwb3J0Py5hc3NpZ25vcikpICYmIChyZXBvcnQ/Lm92ZXJzZWVyID09IGRlZmF1bHRPd25lcikpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIigocmVwb3J0Py5hc3NpZ25vcik/J1RoZSBBc3NpZ25vciBjYW5ub3QgYWxzbyBiZSB0aGUgT3ZlcnNlZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gJzonWW91IGNhbm5vdCBiZSBhbiBPdmVyc2VlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5IHNpbmNlIHlvdSBhcmUgdGhlIEFzc2lnbm9yLiAnKSArJ1NlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIE92ZXJzZWVyLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIihyZXBvcnQ/Lm92ZXJzZWVyKSAmJiAhcmVwb3J0Py51c2VyVmFsaWRhdGVXaXRoUHJvZ3JhbT8uaXNWYWxpZE92ZXJzZWVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGlzIHVzZXIgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCB0aGUgc2VsZWN0ZWQgUHJvZ3JhbS4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cInJlcG9ydD8ubm90aWZ5T25GYWlsdXJlICYmICgocmVwb3J0Py5yZXZpZXdlciA9PT0gcmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAocmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUgPT09IHJlcG9ydD8uYXNzaWduZWUpIHx8ICgocmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUgJiYgcmVwb3J0Py5hc3NpZ25vcikgJiYgKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlID09IHJlcG9ydD8uYXNzaWdub3IpKSB8fCgocmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUgJiYgKCFyZXBvcnQ/LmFzc2lnbm9yKSkgJiYgKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlID09IGRlZmF1bHRPd25lcikpIHx8ICFyZXBvcnQ/LnVzZXJWYWxpZGF0ZVdpdGhQcm9ncmFtPy5pc1ZhbGlkTm90aWZ5T25GYWlsdXJlIClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3JlcG9ydD8ubm90aWZ5T25GYWlsdXJlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIihyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSkgJiYgKChyZXBvcnQ/LnJldmlld2VyID09PSByZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGUgUmV2aWV3ZXIgY2Fubm90IGFsc28gYmUgdGhlIE92ZXJzZWVyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuIFNlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIE92ZXJzZWVyLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSAmJiAocmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUgPT09IHJlcG9ydD8uYXNzaWduZWUpXCIgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGUgQXNzaWduZWUgY2Fubm90IGFsc28gYmUgdGhlIE92ZXJzZWVyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuIFNlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIE92ZXJzZWVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKChyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSAmJiByZXBvcnQ/LmFzc2lnbm9yKSAmJiAocmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUgPT0gcmVwb3J0Py5hc3NpZ25vcikpIHx8KChyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSAmJiAoIXJlcG9ydD8uYXNzaWdub3IpKSAmJiAocmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUgPT0gZGVmYXVsdE93bmVyKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiKChyZXBvcnQ/LmFzc2lnbm9yKT8nVGhlIEFzc2lnbm9yIGNhbm5vdCBhbHNvIGJlIHRoZSBPdmVyc2VlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5LiAnOidZb3UgY2Fubm90IGJlIGFuIE92ZXJzZWVyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkgc2luY2UgeW91IGFyZSB0aGUgQXNzaWdub3IuICcpICsnU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgT3ZlcnNlZXIuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlKSAmJiAhcmVwb3J0Py51c2VyVmFsaWRhdGVXaXRoUHJvZ3JhbT8uaXNWYWxpZE5vdGlmeU9uRmFpbHVyZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInVGhpcyB1c2VyIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggdGhlIHNlbGVjdGVkIFByb2dyYW0uJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiKHJlcG9ydD8ub3ZlcnNlZXIpICYmICgocmVwb3J0Py5vdmVyc2VlciA9PT0gcmVwb3J0Py5hc3NpZ25lZSkgfHwocmVwb3J0Py5yZXZpZXdlciA9PT0gcmVwb3J0Py5vdmVyc2VlcikgfHwgKHJlcG9ydD8ub3ZlcnNlZXIgPT0gcmVwb3J0Py5hc3NpZ25vcikgfHwgKCFyZXBvcnQ/LnVzZXJWYWxpZGF0ZVdpdGhQcm9ncmFtPy5pc1ZhbGlkT3ZlcnNlZXIpKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e3JlcG9ydD8ub3ZlcnNlZXJ9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIihyZXBvcnQ/Lm92ZXJzZWVyKSAmJiAoKHJlcG9ydD8ucmV2aWV3ZXIgPT09IHJlcG9ydD8ub3ZlcnNlZXIpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGUgUmV2aWV3ZXIgY2Fubm90IGFsc28gYmUgdGhlIE92ZXJzZWVyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuIFNlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIE92ZXJzZWVyLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJyZXBvcnQ/Lm92ZXJzZWVyICYmIChyZXBvcnQ/Lm92ZXJzZWVyID09PSByZXBvcnQ/LmFzc2lnbmVlKVwiIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoZSBBc3NpZ25lZSBjYW5ub3QgYWxzbyBiZSB0aGUgT3ZlcnNlZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgT3ZlcnNlZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIoKHJlcG9ydD8ub3ZlcnNlZXIpICYmIChyZXBvcnQ/Lm92ZXJzZWVyID09IHJlcG9ydD8uYXNzaWdub3IpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIigocmVwb3J0Py5hc3NpZ25vcik/J1RoZSBBc3NpZ25vciBjYW5ub3QgYWxzbyBiZSB0aGUgT3ZlcnNlZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gJzonWW91IGNhbm5vdCBiZSBhbiBPdmVyc2VlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5IHNpbmNlIHlvdSBhcmUgdGhlIEFzc2lnbm9yLiAnKSArJ1NlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIE92ZXJzZWVyLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyZXBvcnQ/LnVzZXJWYWxpZGF0ZVdpdGhQcm9ncmFtPy5pc1ZhbGlkT3ZlcnNlZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInU2VsZWN0ZWQgdXNlciBpcyBub3QgYSB2YWxpZCBvdmVyc2VlciBmb3Igc2VsZWN0ZWQgcHJvZ3JhbS4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgXHJcbiAgICBcclxuICAgIFxyXG4gICAgXHJcbiAgICBcclxuICAgICAgICAgICAgICAgIDwhLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tb2xkIGNvZGUgZHluYW1pYy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLS0+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIDwhLS0gKm5nRm9yPVwibGV0IHJlcG9ydCBvZiByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LnJlcG9ydHM7IGxldCBpID0gaW5kZXhcIiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1bGstdmlldy1vcHRpb25cIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImJ1bGtVcGxvYWQ/LmZyZXF1ZW5jeT8ucmVwb3J0cz8ubGVuZ3RoXCIgW2NsYXNzLmFjdGl2ZV09XCJ0YWJUeXBlID09PSAnZnJlcXVlbmN5J1wiIChjbGljayk9XCJzZWxlY3RlZFRhYi5lbWl0KCdmcmVxdWVuY3knKVwiPkZyZXF1ZW5jeSBSZXNwb25zaWJpbGl0aWVzPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJidWxrVXBsb2FkPy5vbmdvaW5nPy5yZXBvcnRzPy5sZW5ndGhcIiBbY2xhc3MuYWN0aXZlXT1cInRhYlR5cGUgPT09ICdvbmdvaW5nJ1wiIChjbGljayk9XCJzZWxlY3RlZFRhYi5lbWl0KCdvbmdvaW5nJylcIj5PbmdvaW5nIFJlc3BvbnNpYmlsaXRpZXM8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImJ1bGtVcGxvYWQ/Lm9uQ29tcGxldGlvbj8ucmVwb3J0cz8ubGVuZ3RoXCIgW2NsYXNzLmFjdGl2ZV09XCJ0YWJUeXBlID09PSAnb25Db21wbGV0aW9uJ1wiIChjbGljayk9XCJzZWxlY3RlZFRhYi5lbWl0KCdvbkNvbXBsZXRpb24nKVwiPk9uIENvbXBsZXRpb24gUmVzcG9uc2liaWxpdGllczwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidWxrLXZpZXctZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgIDxwPnt7ZmluYWxSZXNwb25zaWJpbGl0aWVzfX0gb3V0IG9mIHt7cmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5yZXBvcnRzPy5sZW5ndGh9fSByZXNwb25zaWJpbGl0aWVzIHdpbGwgYmVcclxuICAgICAgICAgICAgICAgICAgICB1cGxvYWRlZC48L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgIDxwPnt7ZmluYWxSZXNwb25zaWJpbGl0aWVzfX0gb3V0IG9mIHt7cmVzcG9uc2liaWxpdHlNdWx0aVRhYkJ1bGtVcGxvYWQ/Lmxlbmd0aH19IHt7cmVzcG9uc2liaWxpdHlNdWx0aVRhYkJ1bGtVcGxvYWQ/Lmxlbmd0aCA+IDEgPyAncmVzcG9uc2liaWxpdGllcycgOiAncmVzcG9uc2liaWxpdHknfX0gd2lsbCBiZVxyXG4gICAgICAgICAgICAgICAgICAgIHVwbG9hZGVkLjwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiIGlkPVwiYnVsay1yZXNwLWNhbmNlbFwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic3VibWl0KClcIiBpZD1cImJ1bGstcmVzcC1jb25maXJtXCIgW2Rpc2FibGVkXT1cIiFpc0NvbmZpcm1DbGlja2FibGVcIiBjbGFzcz1cImJsdWVcIj5Db25maXJtPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8IS0tIGZpbmFsUmVzcG9uc2liaWxpdGllcyA8IDEgLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YXBwLWxvYWRlciAgKm5nSWY9XCJsb2FkZXJcIj48L2FwcC1sb2FkZXI+XHJcbiAgICBcclxuPC9uZy1jb250YWluZXI+XHJcbiAgICBcclxuICAgIDwhLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS11cHdhcmQgaXMgbmV3IG9uZS0tLS0tLS0tLS0tLS0tLS0tLS0tIC0tPiJdfQ==
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay1yZXNwb25zaWJpbGl0eS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvYnVsay1yZXNwb25zaWJpbGl0eS12aWV3L2J1bGstcmVzcG9uc2liaWxpdHktdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2J1bGstcmVzcG9uc2liaWxpdHktdmlldy9idWxrLXJlc3BvbnNpYmlsaXR5LXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFPdkUsTUFBTSxPQUFPLCtCQUErQjtJQUw1QztRQVNXLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixZQUFPLEdBQTZDLFdBQVcsQ0FBQztRQUcvRCxtQ0FBOEIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3BELFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyx1QkFBa0IsR0FBRyxXQUFXLENBQUM7UUFDMUMsMEJBQXFCLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUNwQyxxQ0FBZ0MsR0FBUSxFQUFFLENBQUM7S0FvQzVDO0lBbENDLFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUNqQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQzNELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDaEIsSUFBSSxDQUFDLHFCQUFxQixJQUFJLENBQUMsQ0FBQztpQkFDakM7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEtBQUssVUFBVSxFQUFFO1lBQzFDLElBQUksQ0FBQyxnQ0FBZ0M7Z0JBQ25DLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQ3pDLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFDakMsSUFBSSxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUN2QyxDQUFDO1lBQ0osSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxJQUFJLENBQ25FLENBQUMsY0FBbUIsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FDaEQsQ0FBQztZQUNGLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUMzRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ2hCLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLENBQUM7aUJBQ2pDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLDhCQUE4QixDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDOzs0SEFqRFUsK0JBQStCO2dIQUEvQiwrQkFBK0Isc2JDUDVDLG02K0NBcWpCc0g7MkZEOWlCekcsK0JBQStCO2tCQUwzQyxTQUFTOytCQUNFLDhCQUE4Qjs4QkFLL0Isd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksOEJBQThCO3NCQUF2QyxNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNFLGtCQUFrQjtzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1idWxrLXJlc3BvbnNpYmlsaXR5LXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9idWxrLXJlc3BvbnNpYmlsaXR5LXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2J1bGstcmVzcG9uc2liaWxpdHktdmlldy5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQnVsa1Jlc3BvbnNpYmlsaXR5Vmlld0NvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgcmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkITogYW55O1xyXG4gIEBJbnB1dCgpIGZpbGVOYW1lITogYW55O1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRPd25lciE6IGFueTtcclxuICBASW5wdXQoKSBsb2FkZXIgPSBmYWxzZTtcclxuICBASW5wdXQoKSB0YWJUeXBlOiAnZnJlcXVlbmN5JyB8ICdvbmdvaW5nJyB8ICdvbkNvbXBsZXRpb24nID0gJ2ZyZXF1ZW5jeSc7XHJcbiAgQElucHV0KCkgYnVsa1VwbG9hZDogYW55O1xyXG5cclxuICBAT3V0cHV0KCkgc3VibWl0UmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkVGFiID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNpYmlsaXR5VHlwZSA9ICdzaW5nbGVUYWInO1xyXG4gIGZpbmFsUmVzcG9uc2liaWxpdGllcyA9IDA7XHJcbiAgaXNDb25maXJtQ2xpY2thYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcmVzcG9uc2liaWxpdHlNdWx0aVRhYkJ1bGtVcGxvYWQ6IGFueSA9IFtdO1xyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIGlmICh0aGlzLnJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZCkge1xyXG4gICAgICB0aGlzLmZpbmFsUmVzcG9uc2liaWxpdGllcyA9IDA7XHJcbiAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5yZXBvcnRzLmZvckVhY2goKHJpc2s6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyaXNrLmlzVmFsaWQpIHtcclxuICAgICAgICAgIHRoaXMuZmluYWxSZXNwb25zaWJpbGl0aWVzICs9IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnJlc3BvbnNpYmlsaXR5VHlwZSA9PT0gJ211bHRpVGFiJykge1xyXG4gICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5TXVsdGlUYWJCdWxrVXBsb2FkID1cclxuICAgICAgICB0aGlzLmJ1bGtVcGxvYWQ/LmZyZXF1ZW5jeT8ucmVwb3J0cz8uY29uY2F0KFxyXG4gICAgICAgICAgdGhpcy5idWxrVXBsb2FkPy5vbmdvaW5nPy5yZXBvcnRzLFxyXG4gICAgICAgICAgdGhpcy5idWxrVXBsb2FkPy5vbkNvbXBsZXRpb24/LnJlcG9ydHNcclxuICAgICAgICApO1xyXG4gICAgICB0aGlzLmlzQ29uZmlybUNsaWNrYWJsZSA9IHRoaXMucmVzcG9uc2liaWxpdHlNdWx0aVRhYkJ1bGtVcGxvYWQ/LnNvbWUoXHJcbiAgICAgICAgKHJlc3BvbnNpYmlsaXR5OiBhbnkpID0+IHJlc3BvbnNpYmlsaXR5LmlzVmFsaWRcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5maW5hbFJlc3BvbnNpYmlsaXRpZXMgPSAwO1xyXG4gICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5TXVsdGlUYWJCdWxrVXBsb2FkPy5mb3JFYWNoKChyaXNrOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmlzay5pc1ZhbGlkKSB7XHJcbiAgICAgICAgICB0aGlzLmZpbmFsUmVzcG9uc2liaWxpdGllcyArPSAxO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdWJtaXQoKSB7XHJcbiAgICB0aGlzLnN1Ym1pdFJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMuY2FuY2VsLmVtaXQoKTtcclxuICB9XHJcbn1cclxuIiwiXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJyZXNwb25zaWJpbGl0eVR5cGUgPT09ICdzaW5nbGVUYWInXCI+XHJcbjxkaXYgY2xhc3M9XCJidWxrLXZpZXdcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJidWxrLXZpZXctaGVhZFwiPlxyXG4gICAgICAgIDxoMiBjbGFzcz1cImJ1bGstdmlldy10aXRsZVwiPlxyXG4gICAgICAgICAgICB7e2ZpbGVOYW1lfX1cclxuICAgICAgICA8L2gyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYnVsay12aWV3LWJvZHlcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IGhlYWRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIHNsLW5vXCI+IzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiAqbmdGb3I9XCJsZXQgaGVhZGluZyBvZiByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LmhlYWRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmxhcmdlXT1cImhlYWRpbmcgJiYgaGVhZGluZy5zdGFydHNXaXRoKCdJbmhlcmVudCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhlYWRpbmcgJiYgIShoZWFkaW5nLnN0YXJ0c1dpdGgoJ0R1ZScpKSAmJiAhKGhlYWRpbmcuc3RhcnRzV2l0aCgnT3ZlcnNpZ2h0JykpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7KGhlYWRpbmcuaW5jbHVkZXMoJyonKT8gaGVhZGluZy5yZXBsYWNlKCcqJywgJycpIDogaGVhZGluZyl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImhlYWRpbmcuaW5jbHVkZXMoJyonKVwiIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkaW5nICYmIGhlYWRpbmcuc3RhcnRzV2l0aCgnRHVlJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIGxhcmdlXCI+RHVlIERhdGU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5EYXk8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+TW9udGg8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhlYWRpbmcgJiYgaGVhZGluZy5zdGFydHNXaXRoKCdPdmVyc2lnaHQnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbGFyZ2VcIj5PdmVyc2lnaHQgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBtdWx0aS1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+QWx3YXlzIE5vdGlmeTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5Ob3RpZnkgb24gRmFpbHVyZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93XCIgKm5nRm9yPVwibGV0IHJlcG9ydCBvZiByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LnJlcG9ydHM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIHNsLW5vXCIgW2NsYXNzLmVycm9yXT1cIiFyZXBvcnQuaXNWYWxpZFwiPnt7aSsxfX08L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmVwb3J0LnJlc3BvbnNpYmlsaXR5TmFtZVwiPnt7cmVwb3J0Py5yZXNwb25zaWJpbGl0eU5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXJlcG9ydD8ucmVzcG9uc2liaWxpdHlOYW1lXCIgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidFbnRlciBhIG5hbWUgZm9yIHRoaXMgcmVzcG9uc2liaWxpdHkuJ1wiIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCJyZXBvcnQ/LmFzc2lnbm9yICYmICgocmVwb3J0Py5hc3NpZ25vciA9PSByZXBvcnQ/LmFsd2F5c05vdGlmeSkgfHwgKHJlcG9ydD8uYXNzaWdub3IgPT0gcmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUpKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7cmVwb3J0Py5hc3NpZ25vcn19XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIoKHJlcG9ydD8uYXNzaWdub3IpICYmIChyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSA9PSByZXBvcnQ/LmFzc2lnbm9yfHxyZXBvcnQ/LmFsd2F5c05vdGlmeSA9PSByZXBvcnQ/LmFzc2lnbm9yKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoZSBPdmVyc2VlciBjYW5ub3QgYWxzbyBiZSB0aGUgQXNzaWdub3Igb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgQXNzaWdub3IuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG48IS0tXHJcbiAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIoKHJlcG9ydD8uYXNzaWdub3IpICYmIChyZXBvcnQ/LnJldmlld2VyID09IHJlcG9ydD8uYXNzaWdub3IpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInVGhlIFJldmlld2VyIGNhbm5vdCBhbHNvIGJlIHRoZSBBc3NpZ25vciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5LiBTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBBc3NpZ25vci4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICA8L2k+ICAgICAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiIXJlcG9ydD8uYXNzaWduZWUgfHwgKChyZXBvcnQ/LmFzc2lnbmVlID09IHJlcG9ydD8ucmV2aWV3ZXIpXHJcbiAgICAgICAgICAgICAgICB8fCAocmVwb3J0Py5hc3NpZ25lZSA9PSByZXBvcnQ/LmFsd2F5c05vdGlmeSkgfHwgKHJlcG9ydD8uYXNzaWduZWUgPT0gcmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUpKSB8fCAoIXJlcG9ydD8uaXNWYWxpZFVzZXIpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tyZXBvcnQ/LmFzc2lnbmVlfX1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIoKHJlcG9ydD8uYXNzaWduZWUpICYmIChyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSA9PSByZXBvcnQ/LmFzc2lnbmVlfHxyZXBvcnQ/LmFsd2F5c05vdGlmeSA9PSByZXBvcnQ/LmFzc2lnbmVlKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoZSBPdmVyc2VlciBjYW5ub3QgYWxzbyBiZSB0aGUgQXNzaWduZWUgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgQXNzaWduZWUuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIigocmVwb3J0Py5hc3NpZ25lZSkgJiYgKHJlcG9ydD8ucmV2aWV3ZXIgPT0gcmVwb3J0Py5hc3NpZ25lZSkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGUgUmV2aWV3ZXIgY2Fubm90IGFsc28gYmUgdGhlIEFzc2lnbmVlIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuIFNlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIEFzc2lnbmVlLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIighcmVwb3J0Py5hc3NpZ25lZSkgfHwgKCFyZXBvcnQ/LmlzVmFsaWRVc2VyKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1NlbGVjdCB0aGUgdXNlciByZXNwb25zaWJsZSBmb3IgY29tcGxldGluZyB0aGlzIHJlc3BvbnNpYmlsaXR5LiAnXCJcclxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBpZD1cInJlc0NhdGVnb3J5XCIgKm5nSWY9XCJyZXBvcnQ/LnJlc3BvbnNpYmlsaXR5Q2F0ZWdvcnkhPT1udWxsXCI+e3tyZXBvcnQ/LnJlc3BvbnNpYmlsaXR5Q2F0ZWdvcnl9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiIXJlcG9ydC5mcmVxdWVuY3lcIj57e3JlcG9ydD8uZnJlcXVlbmN5fX1cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyZXBvcnQ/LmZyZXF1ZW5jeVwiIGNsYXNzPVwiaWNvbnNcIiBbYXBwVG9vbHRpcF09XCInU2VsZWN0IGEgZnJlcXVlbmN5IGZvciB0aGlzIHJlc3BvbnNpYmlsaXR5LidcIlxyXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBtdWx0aS1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmVwb3J0LmlzVmFsaWREdWVEYXRlXCI+e3tyZXBvcnQ/LmRheX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyZXBvcnQ/LmlzVmFsaWREdWVEYXRlXCIgY2xhc3M9XCJpY29uc1wiIFthcHBUb29sdGlwXT1cIidJbnZhbGlkIER1ZSBEYXRlLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJyZXBvcnQ/LmlzUGFzdERhdGVcIiBjbGFzcz1cImljb25zXCIgW2FwcFRvb2x0aXBdPVwiJ1RoaXMgZGF0ZSBvY2N1cnMgaW4gdGhlIHBhc3QuIFNlbGVjdCBhIGZ1dHVyZSBkYXRlLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiIXJlcG9ydC5pc1ZhbGlkRHVlRGF0ZVwiPnt7cmVwb3J0Py5tb250aH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyZXBvcnQ/LmlzVmFsaWREdWVEYXRlXCIgY2xhc3M9XCJpY29uc1wiIFthcHBUb29sdGlwXT1cIidJbnZhbGlkIER1ZSBEYXRlLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJyZXBvcnQ/LmlzUGFzdERhdGVcIiBjbGFzcz1cImljb25zXCIgW2FwcFRvb2x0aXBdPVwiJ1RoaXMgZGF0ZSBvY2N1cnMgaW4gdGhlIHBhc3QuIFNlbGVjdCBhIGZ1dHVyZSBkYXRlLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8ucmVzcG9uc2liaWxpdHlXaW5kb3d9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8uZmFpbGVkQWZ0ZXJ9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8ucmVwb3J0Q2xhc3N9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8ucmVzcG9uc2liaWxpdHlDZW50ZXJ9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5lcnJvcl09XCJyZXBvcnQ/LnJldmlld2VyICYmICgocmVwb3J0Py5yZXZpZXdlciA9PSByZXBvcnQ/LmFsd2F5c05vdGlmeSkgfHwgIChyZXBvcnQ/LnJldmlld2VyID09IHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgfHwgKHJlcG9ydD8ucmV2aWV3ZXIgPT0gcmVwb3J0Py5hc3NpZ25lZSkgKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7cmVwb3J0Py5yZXZpZXdlcn19XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKHJlcG9ydD8ucmV2aWV3ZXIpICYmICgocmVwb3J0Py5yZXZpZXdlciA9PSByZXBvcnQ/LmFsd2F5c05vdGlmeSkgfHwgKHJlcG9ydD8ucmV2aWV3ZXIgPT0gcmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInVGhlIE92ZXJzZWVyIGNhbm5vdCBhbHNvIGJlIHRoZSBSZXZpZXdlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5LiBTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBSZXZpZXdlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgIDwvaT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJyZXBvcnQ/LnJldmlld2VyICYmIChyZXBvcnQ/LnJldmlld2VyID09IHJlcG9ydD8uYXNzaWduZWUpXCIgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGUgQXNzaWduZWUgY2Fubm90IGFsc28gYmUgdGhlIFJldmlld2VyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuIFNlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIFJldmlld2VyLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxpICpuZ0lmPVwiKHJlcG9ydD8ucmV2aWV3ZXIgJiYgcmVwb3J0Py5hc3NpZ25vcilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiKChyZXBvcnQ/LmFzc2lnbm9yKT8nVGhlIEFzc2lnbm9yIGNhbm5vdCBhbHNvIGJlIHRoZSBSZXZpZXdlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5Lic6J1lvdSBjYW5ub3QgYmUgYSBSZXZpZXdlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5IHNpbmNlIHlvdSBhcmUgdGhlIGFzc2lnbm9yLiAnKSArJ1NlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIFJldmlld2VyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8ucmV2aWV3VG9CZUNvbXBsZXRlZFdpdGhpbn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5yZXZpZXdXaWxsQmVGYWlsZWRBZnRlcn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5mb3JtYXRGb3JSZXNwb25zaWJpbGl0eX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5ub3Rlc319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5kb2N1bWVudEV2aWRlbmNlUmVxdWlyZWR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbXVsdGktY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwicmVwb3J0Py5hbHdheXNOb3RpZnkgJiYgKChyZXBvcnQ/LmFsd2F5c05vdGlmeSA9PSByZXBvcnQ/LnJldmlld2VyKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB8fCAocmVwb3J0Py5hbHdheXNOb3RpZnkgPT0gcmVwb3J0Py5hc3NpZ25vcikgfHwgKHJlcG9ydD8uYWx3YXlzTm90aWZ5ID09IHJlcG9ydD8uYXNzaWduZWUpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICgoIXJlcG9ydD8uYXNzaWdub3IpJiYocmVwb3J0Py5hbHdheXNOb3RpZnkgPT0gZGVmYXVsdE93bmVyKSkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3JlcG9ydD8uYWx3YXlzTm90aWZ5fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKHJlcG9ydD8uYWx3YXlzTm90aWZ5KSAmJiAoKHJlcG9ydD8ucmV2aWV3ZXIgPT0gcmVwb3J0Py5hbHdheXNOb3RpZnkpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoZSBSZXZpZXdlciBjYW5ub3QgYWxzbyBiZSB0aGUgT3ZlcnNlZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgT3ZlcnNlZXIuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cInJlcG9ydD8uYWx3YXlzTm90aWZ5ICYmIChyZXBvcnQ/LmFsd2F5c05vdGlmeSA9PSByZXBvcnQ/LmFzc2lnbmVlKVwiIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGUgQXNzaWduZWUgY2Fubm90IGFsc28gYmUgdGhlIE92ZXJzZWVyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuIFNlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIE92ZXJzZWVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKChyZXBvcnQ/LmFsd2F5c05vdGlmeSAmJiByZXBvcnQ/LmFzc2lnbm9yKSAmJiAocmVwb3J0Py5hbHdheXNOb3RpZnkgPT0gcmVwb3J0Py5hc3NpZ25vcikpIHx8KChyZXBvcnQ/LmFsd2F5c05vdGlmeSAmJiAoIXJlcG9ydD8uYXNzaWdub3IpKSAmJiAocmVwb3J0Py5hbHdheXNOb3RpZnkgPT0gZGVmYXVsdE93bmVyKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIigocmVwb3J0Py5hc3NpZ25vcik/J1RoZSBBc3NpZ25vciBjYW5ub3QgYWxzbyBiZSB0aGUgT3ZlcnNlZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gJzonWW91IGNhbm5vdCBiZSBhbiBPdmVyc2VlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5IHNpbmNlIHlvdSBhcmUgdGhlIEFzc2lnbm9yLiAnKSArJ1NlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIE92ZXJzZWVyLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCJyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSAmJiAoKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlID09IHJlcG9ydD8ucmV2aWV3ZXIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHx8IChyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSA9PSByZXBvcnQ/LmFzc2lnbm9yKSB8fCAocmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUgPT0gcmVwb3J0Py5hc3NpZ25lZSkgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKCghcmVwb3J0Py5hc3NpZ25vcikmJihyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSA9PSBkZWZhdWx0T3duZXIpKSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cmVwb3J0Py5ub3RpZnlPbkZhaWx1cmV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIocmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUpICYmICgocmVwb3J0Py5yZXZpZXdlciA9PSByZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoZSBSZXZpZXdlciBjYW5ub3QgYWxzbyBiZSB0aGUgT3ZlcnNlZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgT3ZlcnNlZXIuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cInJlcG9ydD8ubm90aWZ5T25GYWlsdXJlICYmIChyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSA9PSByZXBvcnQ/LmFzc2lnbmVlKVwiIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoZSBBc3NpZ25lZSBjYW5ub3QgYWxzbyBiZSB0aGUgT3ZlcnNlZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgT3ZlcnNlZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIoKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlICYmIHJlcG9ydD8uYXNzaWdub3IpICYmIChyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSA9PSByZXBvcnQ/LmFzc2lnbm9yKSkgfHwoKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlICYmICghcmVwb3J0Py5hc3NpZ25vcikpICYmIChyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSA9PSBkZWZhdWx0T3duZXIpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIigocmVwb3J0Py5hc3NpZ25vcik/J1RoZSBBc3NpZ25vciBjYW5ub3QgYWxzbyBiZSB0aGUgT3ZlcnNlZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gJzonWW91IGNhbm5vdCBiZSBhbiBPdmVyc2VlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5IHNpbmNlIHlvdSBhcmUgdGhlIEFzc2lnbm9yLiAnKSArJ1NlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIE92ZXJzZWVyLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5rZXlSZXNwb25zaWJpbGl0eX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5vYmplY3RpdmV9fTwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJidWxrLXZpZXctZm9vdGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgICAgPHA+e3tmaW5hbFJlc3BvbnNpYmlsaXRpZXN9fSBvdXQgb2Yge3tyZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LnJlcG9ydHM/Lmxlbmd0aH19IHJlc3BvbnNpYmlsaXRpZXMgd2lsbCBiZVxyXG4gICAgICAgICAgICAgICAgdXBsb2FkZWQuPC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjbG9zZSgpXCIgaWQ9XCJidWxrLXJlc3AtY2FuY2VsXCIgPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzdWJtaXQoKVwiIGlkPVwiYnVsay1yZXNwLWNvbmZpcm1cIiBbZGlzYWJsZWRdPVwiZmluYWxSZXNwb25zaWJpbGl0aWVzPDFcIiBjbGFzcz1cImJsdWVcIj5Db25maXJtPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxhcHAtbG9hZGVyICAqbmdJZj1cImxvYWRlclwiPjwvYXBwLWxvYWRlcj5cclxuXHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPCEtLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXVwd2FyZCBpcyBuZXcgb25lLS0tLS0tLS0tLS0tLS0tLS0tLS0gLS0+XHJcbjxhcHAtbG9hZGVyICAqbmdJZj1cImxvYWRlclwiPjwvYXBwLWxvYWRlcj5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuPCEtLSBIVE1MIGZvciBtdWx0aXBsZSB0YWJzIC0tPlxyXG48bmctY29udGFpbmVyICpuZ0lmPVwicmVzcG9uc2liaWxpdHlUeXBlID09PSAnbXVsdGlUYWInXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYnVsay12aWV3XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1bGstdmlldy1oZWFkXCI+XHJcbiAgICAgICAgICAgIDxoMiBjbGFzcz1cImJ1bGstdmlldy10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAge3tmaWxlTmFtZX19XHJcbiAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1bGstdmlldy1ib2R5IGJ1bGtcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlld1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgaGVhZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIHNsLW5vXCI+IzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+UmVzcG9uc2liaWxpdHkgTmFtZSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiICpuZ0lmPVwicmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5oZWFkZXIuaW5jbHVkZXMoJ1Byb2dyYW0nKVwiIFtjbGFzcy50aHJlZS1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbGFyZ2VcIj5Qcm9ncmFtPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBtdWx0aS1jb2x1bW5cIiBbY2xhc3MudGhyZWUtY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+UHJvZ3JhbSBUeXBlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPlByb2dyYW08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+UHJvZ3JhbSBDYXRlZ29yeTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPkVudHJ1c3RlZCBCeTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLnR3by1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbGFyZ2VcIj5FbnRydXN0IFRvIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgbXVsdGktY29sdW1uXCIgW2NsYXNzLnR3by1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5QZXJzb24gb3IgR3JvdXA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+QWxsIG9yIEFueSBQZXJzb25zPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+S2V5IFJlc3BvbnNpYmlsaXR5PzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmZpdmUtY29sdW1uXT1cInRhYlR5cGUgPT09ICdmcmVxdWVuY3knIHx8IHRhYlR5cGUgPT09ICdvbkNvbXBsZXRpb24nXCIgW2NsYXNzLnRocmVlLWNvbHVtbl09XCJ0YWJUeXBlID09PSAnb25nb2luZydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbGFyZ2VcIj5GcmVxdWVuY3kgb2YgT2NjdXJyZW5jZSBhbmQgQ29tcGxldGlvbiBXaW5kb3cgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbGFyZ2VcIj57e3Jlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZD8uaGVhZGVyLmluY2x1ZGVzKCdQcm9ncmFtJykgPyByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LmhlYWRlcls4XT8uc2xpY2UoMCwgLTEpIDogcmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5oZWFkZXJbNV0/LnNsaWNlKDAsIC0xKX19PHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBtdWx0aS1jb2x1bW5cIiBbY2xhc3MuZml2ZS1jb2x1bW5dPVwidGFiVHlwZSA9PT0gJ2ZyZXF1ZW5jeScgfHwgdGFiVHlwZSA9PT0gJ29uQ29tcGxldGlvbidcIiBbY2xhc3MudGhyZWUtY29sdW1uXT1cInRhYlR5cGUgPT09ICdvbmdvaW5nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYlR5cGUgPT09ICdmcmVxdWVuY3knXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5GcmVxdWVuY3kgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5EdWUgRGF0ZSA8c3BhbiBjbGFzcz1cImluZm8tdGV4dFwiPihEYXkpPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+RHVlIERhdGUgPHNwYW4gY2xhc3M9XCJpbmZvLXRleHRcIj4oTW9udGgpPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+U3RhcnQgPHNwYW4gY2xhc3M9XCJpbmZvLXRleHRcIj4oTm8uIG9mIGRheXMgYmVmb3JlIHRoZSBkdWUgZGF0ZSk8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5GYWlsIDxzcGFuIGNsYXNzPVwiaW5mby10ZXh0XCIgYXBwVG9vbHRpcD1cIihOby4gb2YgZGF5cyBhZnRlciB0aGUgZHVlIGRhdGUuIFNlbGVjdCAnMCcgaWYgdGhlIHJlc3BvbnNpYmlsaXR5IG11c3QgYmUgY29tcGxldGVkIG9uIHRoZSBkdWUgZGF0ZSlcIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiPihOby4gb2YgZGF5cyBhZnRlciB0aGUgZHVlIGRhdGUuIFNlbGVjdCBcIjBcIiBpZiB0aGUgcmVzcG9uc2liaWxpdHkgbXVzdCBiZSBjb21wbGV0ZWQgb24gdGhlIGR1ZSBkYXRlKTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYlR5cGUgPT09ICdvbmdvaW5nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+T25nb2luZyBGcmVxdWVuY3kgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5TZXQgYSBSZW1pbmRlcj88L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPkZyZXF1ZW5jeSBvZiBSZW1pbmRlcjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiVHlwZSA9PT0gJ29uQ29tcGxldGlvbidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPk9uIENvbXBsZXRpb24gb2YgRnJlcXVlbmN5IDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+UGFyZW50IFJlc3BvbnNpYmlsaXR5PHNwYW4gY2xhc3M9XCJpbmZvLXRleHRcIj4oRGF5KTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPkR1ZSBEYXRlIDxzcGFuIGNsYXNzPVwiaW5mby10ZXh0XCIgYXBwVG9vbHRpcD1cIihOby4gb2YgZGF5cyBhZnRlciBjb21wbGV0aW9uIG9mIHRoZSBQYXJlbnQgUmVzcG9uc2liaWxpdHkpXCIgcGxhY2VtZW50PVwiYm90dG9tXCIgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj4oTm8uIG9mIGRheXMgYWZ0ZXIgY29tcGxldGlvbiBvZiB0aGUgUGFyZW50IFJlc3BvbnNpYmlsaXR5KTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPlN0YXJ0IDxzcGFuIGNsYXNzPVwiaW5mby10ZXh0XCIgYXBwVG9vbHRpcD1cIihOby4gb2YgZGF5cyBiZWZvcmUgdGhlIGR1ZSBkYXRlKVwiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+KE5vLiBvZiBkYXlzIGJlZm9yZSB0aGUgZHVlIGRhdGUpPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+RmFpbCA8c3BhbiBjbGFzcz1cImluZm8tdGV4dFwiIGFwcFRvb2x0aXA9XCIoTm8uIG9mIGRheXMgYWZ0ZXIgdGhlIGR1ZSBkYXRlLiBTZWxlY3QgJzAnIGlmIHRoZSByZXNwb25zaWJpbGl0eSBtdXN0IGJlIGNvbXBsZXRlZCBvbiB0aGUgZHVlIGRhdGUpXCIgcGxhY2VtZW50PVwiYm90dG9tXCIgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj4oTm8uIG9mIGRheXMgYWZ0ZXIgdGhlIGR1ZSBkYXRlLiBTZWxlY3QgXCIwXCIgaWYgdGhlIHJlc3BvbnNpYmlsaXR5IG11c3QgYmUgY29tcGxldGVkIG9uIHRoZSBkdWUgZGF0ZSk8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5SZXNwb25zaWJpbGl0eSBDZW50cmU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPlJpc2sgQ2xhc3M8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPk9iamVjdGl2ZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+Tm90ZXM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy50d28tY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIGxhcmdlXCI+Rm9ybWF0ICYgRXZpZGVuY2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy50d28tY29sdW1uXT1cInRydWVcIiBbY2xhc3MudGhyZWUtY29sdW1uXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5zbWFsbC1jb2x1bW5dPVwidHJ1ZVwiPkZvcm1hdDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5Gb3JtYXQgRm9yIFJlc3BvbnNpYmlsaXR5IChsaW5rKTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3Muc21hbGwtY29sdW1uXT1cInRydWVcIj5FdmlkZW5jZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+QXNzZXNzbWVudHMgb3IgQ2hlY2twb2ludHM8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MudGhyZWUtY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIGxhcmdlXCI+UmV2aWV3IG9mIFJlc3BvbnNpYmlsaXR5PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBtdWx0aS1jb2x1bW5cIiBbY2xhc3MudGhyZWUtY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+UmV2aWV3ZXI8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+UmV2aWV3IFN0YXJ0IDxzcGFuIGNsYXNzPVwiaW5mby10ZXh0XCI+KE5vLiBvZiBkYXlzIGJlZm9yZSB0aGUgZHVlIGRhdGUpPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5SZXZpZXcgRmFpbCA8c3BhbiBjbGFzcz1cImluZm8tdGV4dFwiIGFwcFRvb2x0aXA9XCIoTm8uIG9mIGRheXMgYWZ0ZXIgdGhlIGR1ZSBkYXRlLiBTZWxlY3QgJzAnIGlmIHRoZSByZXNwb25zaWJpbGl0eSBtdXN0IGJlIHJldmlld2VkIG9uIHRoZSBkdWUgZGF0ZSlcIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiPihOby4gb2YgZGF5cyBhZnRlciB0aGUgZHVlIGRhdGUuIFNlbGVjdCBcIjBcIiBpZiB0aGUgcmVzcG9uc2liaWxpdHkgbXVzdCBiZSByZXZpZXdlZCBvbiB0aGUgZHVlIGRhdGUpPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy50d28tY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIGxhcmdlXCI+T3ZlcnNlZXI8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy50d28tY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+QWx3YXlzIE5vdGlmeTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5Ob3RpZnkgb24gRmFpbHVyZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+T3ZlcnNlZXI8L2Rpdj4gLS0+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3dcIiAqbmdGb3I9XCJsZXQgcmVwb3J0IG9mIHJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZD8ucmVwb3J0czsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIHNsLW5vXCIgW2NsYXNzLmVycm9yXT1cIiFyZXBvcnQ/LmlzVmFsaWRcIj57e2krMX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiIXJlcG9ydC5yZXNwb25zaWJpbGl0eU5hbWVcIj57e3JlcG9ydD8ucmVzcG9uc2liaWxpdHlOYW1lfX0gPGkgKm5nSWY9XCIhcmVwb3J0LnJlc3BvbnNpYmlsaXR5TmFtZVwiIGNsYXNzPVwiaWNvbnNcIiBbYXBwVG9vbHRpcF09XCInRW50ZXIgYSBuYW1lIGZvciB0aGlzIHJlc3BvbnNpYmlsaXR5LidcIiAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjs8L2k+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbXVsdGktY29sdW1uXCIgKm5nSWY9XCJyZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LmhlYWRlci5pbmNsdWRlcygnUHJvZ3JhbScpXCIgW2NsYXNzLmVycm9yXT1cImZhbHNlXCIgW2NsYXNzLnRocmVlLWNvbHVtbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy50aHJlZS1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8ucHJvZ3JhbVR5cGV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8ucHJvZ3JhbX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5wcm9ncmFtQ2F0ZWdvcnl9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCJyZXBvcnQ/LmFzc2lnbm9yICYmIChyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSA9PSByZXBvcnQ/LmFzc2lnbm9yIHx8IHJlcG9ydD8uYXNzaWdub3IgPT0gcmVwb3J0Py5vdmVyc2VlcilcIj57e3JlcG9ydD8uYXNzaWdub3J9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIigocmVwb3J0Py5hc3NpZ25vcikgJiYgKHJlcG9ydD8ub3ZlcnNlZXIgPT0gcmVwb3J0Py5hc3NpZ25vciB8fCByZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSA9PSByZXBvcnQ/LmFzc2lnbm9yKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInVGhlIE92ZXJzZWVyIGNhbm5vdCBhbHNvIGJlIHRoZSBBc3NpZ25vciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5LiBTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBBc3NpZ25vci4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8aSAqbmdJZj1cIigocmVwb3J0Py5hc3NpZ25vcikgJiYgKHJlcG9ydD8ucmV2aWV3ZXIgPT09IHJlcG9ydD8uYXNzaWdub3IpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGUgUmV2aWV3ZXIgY2Fubm90IGFsc28gYmUgdGhlIEFzc2lnbm9yIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuIFNlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIEFzc2lnbm9yLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBtdWx0aS1jb2x1bW5cIiBbY2xhc3MudHdvLWNvbHVtbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy50d28tY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cIiFyZXBvcnQ/LmFzc2lnbmVlIHx8IHJlcG9ydD8uYXNzaWduZWUgPT0gcmVwb3J0Py5yZXZpZXdlciB8fCAhcmVwb3J0Py51c2VyVmFsaWRhdGVXaXRoUHJvZ3JhbT8uaXNWYWxpZEFzc2lnbmVlIHx8IHJlcG9ydD8ub3ZlcnNlZXIgPT09IHJlcG9ydD8uYXNzaWduZWUgIHx8ICghcmVwb3J0Py5pc1ZhbGlkVXNlcilcIj57e3JlcG9ydD8uYXNzaWduZWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gfHwgKCFyZXBvcnQ/LmlzVmFsaWRVc2VyKSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIigocmVwb3J0Py5hc3NpZ25lZSkgJiYgKHJlcG9ydD8ub3ZlcnNlZXIgPT0gcmVwb3J0Py5hc3NpZ25lZSkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGUgT3ZlcnNlZXIgY2Fubm90IGFsc28gYmUgdGhlIEFzc2lnbmVlIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuIFNlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIEFzc2lnbmVlLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIigocmVwb3J0Py5hc3NpZ25lZSkgJiYgKHJlcG9ydD8ucmV2aWV3ZXIgPT0gcmVwb3J0Py5hc3NpZ25lZSkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGUgUmV2aWV3ZXIgY2Fubm90IGFsc28gYmUgdGhlIEFzc2lnbmVlIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuIFNlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIEFzc2lnbmVlLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIighcmVwb3J0Py5hc3NpZ25lZSkgfHwgKCFyZXBvcnQ/LmlzVmFsaWRVc2VyKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInU2VsZWN0IHRoZSB1c2VyIHJlc3BvbnNpYmxlIGZvciBjb21wbGV0aW5nIHRoaXMgcmVzcG9uc2liaWxpdHkuICdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIihyZXBvcnQ/LmFzc2lnbmVlKSAmJiAhcmVwb3J0Py51c2VyVmFsaWRhdGVXaXRoUHJvZ3JhbT8uaXNWYWxpZEFzc2lnbmVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGlzIHVzZXIgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCB0aGUgc2VsZWN0ZWQgUHJvZ3JhbS4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LmFzc2lnbmVlVHlwZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LmtleVJlc3BvbnNpYmlsaXR5fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBtdWx0aS1jb2x1bW5cIiBbY2xhc3MuZml2ZS1jb2x1bW5dPVwidGFiVHlwZSA9PT0gJ2ZyZXF1ZW5jeScgfHwgdGFiVHlwZSA9PT0gJ29uQ29tcGxldGlvbidcIiBbY2xhc3MudGhyZWUtY29sdW1uXT1cInRhYlR5cGUgPT09ICdvbmdvaW5nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiVHlwZSA9PT0gJ2ZyZXF1ZW5jeSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy5maXZlLWNvbHVtbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiIXJlcG9ydD8uZnJlcXVlbmN5XCI+e3tyZXBvcnQ/LmZyZXF1ZW5jeX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXJlcG9ydD8uZnJlcXVlbmN5XCIgY2xhc3M9XCJpY29uc1wiIFthcHBUb29sdGlwXT1cIidTZWxlY3QgYSBmcmVxdWVuY3kgZm9yIHRoaXMgcmVzcG9uc2liaWxpdHkuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cIiFyZXBvcnQ/LnZhbGlkRGF0ZSB8fCByZXBvcnQ/LmlzUGFzdERhdGVcIj57e3JlcG9ydD8uZGF5fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIhcmVwb3J0Py52YWxpZERhdGVcIiBjbGFzcz1cImljb25zXCIgW2FwcFRvb2x0aXBdPVwiJ0ludmFsaWQgRHVlIERhdGUuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJyZXBvcnQ/LmlzUGFzdERhdGVcIiBjbGFzcz1cImljb25zXCIgW2FwcFRvb2x0aXBdPVwiJ1RoaXMgZGF0ZSBvY2N1cnMgaW4gdGhlIHBhc3QuIFNlbGVjdCBhIGZ1dHVyZSBkYXRlLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiIXJlcG9ydD8udmFsaWREYXRlIHx8IHJlcG9ydD8uaXNQYXN0RGF0ZVwiPnt7cmVwb3J0Py5tb250aH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXJlcG9ydD8udmFsaWREYXRlXCIgY2xhc3M9XCJpY29uc1wiIFthcHBUb29sdGlwXT1cIidJbnZhbGlkIER1ZSBEYXRlLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwicmVwb3J0Py5pc1Bhc3REYXRlXCIgY2xhc3M9XCJpY29uc1wiIFthcHBUb29sdGlwXT1cIidUaGlzIGRhdGUgb2NjdXJzIGluIHRoZSBwYXN0LiBTZWxlY3QgYSBmdXR1cmUgZGF0ZS4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LnJlc3BvbnNpYmlsaXR5V2luZG93fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5mYWlsZWRBZnRlcn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJUeXBlID09PSAnb25nb2luZydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy50aHJlZS1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cIiFyZXBvcnQ/LmZyZXF1ZW5jeVwiPnt7cmVwb3J0Py5mcmVxdWVuY3l9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyZXBvcnQ/LmZyZXF1ZW5jeVwiIGNsYXNzPVwiaWNvbnNcIiBbYXBwVG9vbHRpcF09XCInU2VsZWN0IGEgZnJlcXVlbmN5IGZvciB0aGlzIHJlc3BvbnNpYmlsaXR5LidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5zZXRSZW1pbmRlcn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8uZnJlcXVlbmN5UmVtaW5kZXJ9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiVHlwZSA9PT0gJ29uQ29tcGxldGlvbidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy5maXZlLWNvbHVtbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiIXJlcG9ydD8uZnJlcXVlbmN5XCI+e3tyZXBvcnQ/LmZyZXF1ZW5jeX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXJlcG9ydD8uZnJlcXVlbmN5XCIgY2xhc3M9XCJpY29uc1wiIFthcHBUb29sdGlwXT1cIidTZWxlY3QgYSBmcmVxdWVuY3kgZm9yIHRoaXMgcmVzcG9uc2liaWxpdHkuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cIiFyZXBvcnQ/LnBhcmVudFJlc3BvbnNpYmlsaXR5XCI+e3tyZXBvcnQ/LnBhcmVudFJlc3BvbnNpYmlsaXR5fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIhcmVwb3J0Py5wYXJlbnRSZXNwb25zaWJpbGl0eVwiIGNsYXNzPVwiaWNvbnNcIiBbYXBwVG9vbHRpcF09XCInU2VsZWN0IGEgcGFyZW50IHJlc3BvbnNpYmlsaXR5IG9uIHdob3NlIGNvbXBsZXRpb24gdGhpcyByZXNwb25zaWJpbGl0eSB3aWxsIGJlY29tZSBhY3RpdmUuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LmR1ZURhdGV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LnJlc3BvbnNpYmlsaXR5V2luZG93fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5mYWlsZWRBZnRlcn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8ucmVzcG9uc2liaWxpdHlDZW50ZXJ9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LnJlcG9ydENsYXNzfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5vYmplY3RpdmV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/Lm5vdGVzfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBtdWx0aS1jb2x1bW5cIiBbY2xhc3MudHdvLWNvbHVtbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy50d28tY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIG11bHRpLWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5zbWFsbC1jb2x1bW5dPVwidHJ1ZVwiPnt7cmVwb3J0Py5pc0Zvcm1hdH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LmZvcm1hdEZvclJlc3BvbnNpYmlsaXR5fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3Muc21hbGwtY29sdW1uXT1cInRydWVcIj57e3JlcG9ydD8uZG9jdW1lbnRFdmlkZW5jZVJlcXVpcmVkfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5hc3Nlc3NtZW50c319PC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIG11bHRpLWNvbHVtblwiIFtjbGFzcy50aHJlZS1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBtdWx0aS1jb2x1bW5cIiBbY2xhc3MudGhyZWUtY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cInJlcG9ydD8ucmV2aWV3ZXIgJiYgKChyZXBvcnQ/LnJldmlld2VyID09PSByZXBvcnQ/Lm92ZXJzZWVyKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKHJlcG9ydD8ucmV2aWV3ZXIgPT09IHJlcG9ydD8uYXNzaWduZWUpIHx8ICFyZXBvcnQ/LnVzZXJWYWxpZGF0ZVdpdGhQcm9ncmFtPy5pc1ZhbGlkUmV2aWV3ZXIgKVwiPnt7cmVwb3J0Py5yZXZpZXdlcn19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKHJlcG9ydD8ucmV2aWV3ZXIpICYmICgocmVwb3J0Py5yZXZpZXdlciA9PT0gcmVwb3J0Py5vdmVyc2VlcikpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoZSBPdmVyc2VlciBjYW5ub3QgYWxzbyBiZSB0aGUgUmV2aWV3ZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgUmV2aWV3ZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cInJlcG9ydD8ucmV2aWV3ZXIgJiYgKHJlcG9ydD8ucmV2aWV3ZXIgPT09IHJlcG9ydD8uYXNzaWduZWUpXCIgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInVGhlIEFzc2lnbmVlIGNhbm5vdCBhbHNvIGJlIHRoZSBSZXZpZXdlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5LiBTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBSZXZpZXdlci4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8aSAqbmdJZj1cIihyZXBvcnQ/LnJldmlld2VyICYmIHJlcG9ydD8ucmV2aWV3ZXIgPT09IHJlcG9ydD8uYXNzaWdub3IpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiKChyZXBvcnQ/LmFzc2lnbm9yKT8nVGhlIEFzc2lnbm9yIGNhbm5vdCBhbHNvIGJlIHRoZSBSZXZpZXdlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5Lic6J1lvdSBjYW5ub3QgYmUgYSBSZXZpZXdlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5IHNpbmNlIHlvdSBhcmUgdGhlIGFzc2lnbm9yLiAnKSArJ1NlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIFJldmlld2VyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2k+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cInJlcG9ydD8ucmV2aWV3ZXIgJiYgIXJlcG9ydD8udXNlclZhbGlkYXRlV2l0aFByb2dyYW0/LmlzVmFsaWRSZXZpZXdlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGlzIHVzZXIgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCB0aGUgc2VsZWN0ZWQgUHJvZ3JhbS4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8ucmV2aWV3VG9CZUNvbXBsZXRlZFdpdGhpbn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5yZXZpZXdXaWxsQmVGYWlsZWRBZnRlcn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBtdWx0aS1jb2x1bW5cIiBbY2xhc3MudHdvLWNvbHVtbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy50d28tY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cInJlcG9ydD8ub3ZlcnNlZXIgJiYgKChyZXBvcnQ/LnJldmlld2VyID09PSByZXBvcnQ/Lm92ZXJzZWVyKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKHJlcG9ydD8ub3ZlcnNlZXIgPT09IHJlcG9ydD8uYXNzaWduZWUpIHx8IChyZXBvcnQ/Lm92ZXJzZWVyID09PSByZXBvcnQ/LmFzc2lnbm9yKSB8fCAhcmVwb3J0Py51c2VyVmFsaWRhdGVXaXRoUHJvZ3JhbT8uaXNWYWxpZE92ZXJzZWVyIClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cmVwb3J0Py5vdmVyc2Vlcn19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIocmVwb3J0Py5vdmVyc2VlcikgJiYgKChyZXBvcnQ/LnJldmlld2VyID09PSByZXBvcnQ/Lm92ZXJzZWVyKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGUgUmV2aWV3ZXIgY2Fubm90IGFsc28gYmUgdGhlIE92ZXJzZWVyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuIFNlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIE92ZXJzZWVyLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cInJlcG9ydD8ub3ZlcnNlZXIgJiYgKHJlcG9ydD8ub3ZlcnNlZXIgPT09IHJlcG9ydD8uYXNzaWduZWUpXCIgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGUgQXNzaWduZWUgY2Fubm90IGFsc28gYmUgdGhlIE92ZXJzZWVyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuIFNlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIE92ZXJzZWVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKChyZXBvcnQ/Lm92ZXJzZWVyICYmIHJlcG9ydD8uYXNzaWdub3IpICYmIChyZXBvcnQ/Lm92ZXJzZWVyID09IHJlcG9ydD8uYXNzaWdub3IpKSB8fCgocmVwb3J0Py5vdmVyc2VlciAmJiAoIXJlcG9ydD8uYXNzaWdub3IpKSAmJiAocmVwb3J0Py5vdmVyc2VlciA9PSBkZWZhdWx0T3duZXIpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCIoKHJlcG9ydD8uYXNzaWdub3IpPydUaGUgQXNzaWdub3IgY2Fubm90IGFsc28gYmUgdGhlIE92ZXJzZWVyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuICc6J1lvdSBjYW5ub3QgYmUgYW4gT3ZlcnNlZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eSBzaW5jZSB5b3UgYXJlIHRoZSBBc3NpZ25vci4gJykgKydTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBPdmVyc2Vlci4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIocmVwb3J0Py5vdmVyc2VlcikgJiYgIXJlcG9ydD8udXNlclZhbGlkYXRlV2l0aFByb2dyYW0/LmlzVmFsaWRPdmVyc2VlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInVGhpcyB1c2VyIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggdGhlIHNlbGVjdGVkIFByb2dyYW0uJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCJyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSAmJiAoKHJlcG9ydD8ucmV2aWV3ZXIgPT09IHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlID09PSByZXBvcnQ/LmFzc2lnbmVlKSB8fCAoKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlICYmIHJlcG9ydD8uYXNzaWdub3IpICYmIChyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSA9PSByZXBvcnQ/LmFzc2lnbm9yKSkgfHwoKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlICYmICghcmVwb3J0Py5hc3NpZ25vcikpICYmIChyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSA9PSBkZWZhdWx0T3duZXIpKSB8fCAhcmVwb3J0Py51c2VyVmFsaWRhdGVXaXRoUHJvZ3JhbT8uaXNWYWxpZE5vdGlmeU9uRmFpbHVyZSApXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIocmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUpICYmICgocmVwb3J0Py5yZXZpZXdlciA9PT0gcmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInVGhlIFJldmlld2VyIGNhbm5vdCBhbHNvIGJlIHRoZSBPdmVyc2VlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5LiBTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBPdmVyc2Vlci4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwicmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUgJiYgKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlID09PSByZXBvcnQ/LmFzc2lnbmVlKVwiIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInVGhlIEFzc2lnbmVlIGNhbm5vdCBhbHNvIGJlIHRoZSBPdmVyc2VlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5LiBTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBPdmVyc2VlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIigocmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUgJiYgcmVwb3J0Py5hc3NpZ25vcikgJiYgKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlID09IHJlcG9ydD8uYXNzaWdub3IpKSB8fCgocmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUgJiYgKCFyZXBvcnQ/LmFzc2lnbm9yKSkgJiYgKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlID09IGRlZmF1bHRPd25lcikpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIigocmVwb3J0Py5hc3NpZ25vcik/J1RoZSBBc3NpZ25vciBjYW5ub3QgYWxzbyBiZSB0aGUgT3ZlcnNlZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gJzonWW91IGNhbm5vdCBiZSBhbiBPdmVyc2VlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5IHNpbmNlIHlvdSBhcmUgdGhlIEFzc2lnbm9yLiAnKSArJ1NlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIE92ZXJzZWVyLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIihyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSkgJiYgIXJlcG9ydD8udXNlclZhbGlkYXRlV2l0aFByb2dyYW0/LmlzVmFsaWROb3RpZnlPbkZhaWx1cmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoaXMgdXNlciBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZWxlY3RlZCBQcm9ncmFtLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cIihyZXBvcnQ/Lm92ZXJzZWVyKSAmJiAoKHJlcG9ydD8ub3ZlcnNlZXIgPT09IHJlcG9ydD8uYXNzaWduZWUpIHx8KHJlcG9ydD8ucmV2aWV3ZXIgPT09IHJlcG9ydD8ub3ZlcnNlZXIpIHx8IChyZXBvcnQ/Lm92ZXJzZWVyID09IHJlcG9ydD8uYXNzaWdub3IpIHx8ICghcmVwb3J0Py51c2VyVmFsaWRhdGVXaXRoUHJvZ3JhbT8uaXNWYWxpZE92ZXJzZWVyKSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tyZXBvcnQ/Lm92ZXJzZWVyfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIocmVwb3J0Py5vdmVyc2VlcikgJiYgKChyZXBvcnQ/LnJldmlld2VyID09PSByZXBvcnQ/Lm92ZXJzZWVyKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInVGhlIFJldmlld2VyIGNhbm5vdCBhbHNvIGJlIHRoZSBPdmVyc2VlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5LiBTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBPdmVyc2Vlci4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwicmVwb3J0Py5vdmVyc2VlciAmJiAocmVwb3J0Py5vdmVyc2VlciA9PT0gcmVwb3J0Py5hc3NpZ25lZSlcIiBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGUgQXNzaWduZWUgY2Fubm90IGFsc28gYmUgdGhlIE92ZXJzZWVyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuIFNlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIE92ZXJzZWVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKChyZXBvcnQ/Lm92ZXJzZWVyKSAmJiAocmVwb3J0Py5vdmVyc2VlciA9PSByZXBvcnQ/LmFzc2lnbm9yKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCIoKHJlcG9ydD8uYXNzaWdub3IpPydUaGUgQXNzaWdub3IgY2Fubm90IGFsc28gYmUgdGhlIE92ZXJzZWVyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuICc6J1lvdSBjYW5ub3QgYmUgYW4gT3ZlcnNlZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eSBzaW5jZSB5b3UgYXJlIHRoZSBBc3NpZ25vci4gJykgKydTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBPdmVyc2Vlci4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIhcmVwb3J0Py51c2VyVmFsaWRhdGVXaXRoUHJvZ3JhbT8uaXNWYWxpZE92ZXJzZWVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1NlbGVjdGVkIHVzZXIgaXMgbm90IGEgdmFsaWQgb3ZlcnNlZXIgZm9yIHNlbGVjdGVkIHByb2dyYW0uJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgIFxyXG4gICAgXHJcbiAgICBcclxuICAgIFxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICA8IS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLW9sZCBjb2RlIGR5bmFtaWMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC0tPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICA8IS0tICpuZ0Zvcj1cImxldCByZXBvcnQgb2YgcmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5yZXBvcnRzOyBsZXQgaSA9IGluZGV4XCIgLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidWxrLXZpZXctb3B0aW9uXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJidWxrVXBsb2FkPy5mcmVxdWVuY3k/LnJlcG9ydHM/Lmxlbmd0aFwiIFtjbGFzcy5hY3RpdmVdPVwidGFiVHlwZSA9PT0gJ2ZyZXF1ZW5jeSdcIiAoY2xpY2spPVwic2VsZWN0ZWRUYWIuZW1pdCgnZnJlcXVlbmN5JylcIj5GcmVxdWVuY3kgUmVzcG9uc2liaWxpdGllczwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiYnVsa1VwbG9hZD8ub25nb2luZz8ucmVwb3J0cz8ubGVuZ3RoXCIgW2NsYXNzLmFjdGl2ZV09XCJ0YWJUeXBlID09PSAnb25nb2luZydcIiAoY2xpY2spPVwic2VsZWN0ZWRUYWIuZW1pdCgnb25nb2luZycpXCI+T25nb2luZyBSZXNwb25zaWJpbGl0aWVzPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJidWxrVXBsb2FkPy5vbkNvbXBsZXRpb24/LnJlcG9ydHM/Lmxlbmd0aFwiIFtjbGFzcy5hY3RpdmVdPVwidGFiVHlwZSA9PT0gJ29uQ29tcGxldGlvbidcIiAoY2xpY2spPVwic2VsZWN0ZWRUYWIuZW1pdCgnb25Db21wbGV0aW9uJylcIj5PbiBDb21wbGV0aW9uIFJlc3BvbnNpYmlsaXRpZXM8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnVsay12aWV3LWZvb3RlclwiPlxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICA8cD57e2ZpbmFsUmVzcG9uc2liaWxpdGllc319IG91dCBvZiB7e3Jlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZD8ucmVwb3J0cz8ubGVuZ3RofX0gcmVzcG9uc2liaWxpdGllcyB3aWxsIGJlXHJcbiAgICAgICAgICAgICAgICAgICAgdXBsb2FkZWQuPC9wPlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICA8cD57e2ZpbmFsUmVzcG9uc2liaWxpdGllc319IG91dCBvZiB7e3Jlc3BvbnNpYmlsaXR5TXVsdGlUYWJCdWxrVXBsb2FkPy5sZW5ndGh9fSB7e3Jlc3BvbnNpYmlsaXR5TXVsdGlUYWJCdWxrVXBsb2FkPy5sZW5ndGggPiAxID8gJ3Jlc3BvbnNpYmlsaXRpZXMnIDogJ3Jlc3BvbnNpYmlsaXR5J319IHdpbGwgYmVcclxuICAgICAgICAgICAgICAgICAgICB1cGxvYWRlZC48L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNsb3NlKClcIiBpZD1cImJ1bGstcmVzcC1jYW5jZWxcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInN1Ym1pdCgpXCIgaWQ9XCJidWxrLXJlc3AtY29uZmlybVwiIFtkaXNhYmxlZF09XCIhaXNDb25maXJtQ2xpY2thYmxlXCIgY2xhc3M9XCJibHVlXCI+Q29uZmlybTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPCEtLSBmaW5hbFJlc3BvbnNpYmlsaXRpZXMgPCAxIC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGFwcC1sb2FkZXIgICpuZ0lmPVwibG9hZGVyXCI+PC9hcHAtbG9hZGVyPlxyXG4gICAgXHJcbjwvbmctY29udGFpbmVyPlxyXG4gICAgXHJcbiAgICA8IS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tdXB3YXJkIGlzIG5ldyBvbmUtLS0tLS0tLS0tLS0tLS0tLS0tLSAtLT4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, Input, EventEmitter, Output } from '@angular/core';
|
|
1
|
+
import { Component, Input, EventEmitter, Output, } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@angular/common";
|
|
4
4
|
import * as i2 from "../../ui-kit/tooltip/tooltip.directive";
|
|
@@ -27,20 +27,22 @@ export class BulkViewComponent {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
else if (this.riskBulkUpload?.weightFactors?.length == 5) {
|
|
30
|
-
if (risk?.likelihood &&
|
|
30
|
+
if (risk?.likelihood &&
|
|
31
|
+
risk?.impact &&
|
|
32
|
+
(risk?.velocity || risk?.vulnerability)) {
|
|
31
33
|
this.showCompleteAssessmentButton = true;
|
|
32
34
|
}
|
|
33
35
|
}
|
|
34
36
|
else if (this.riskBulkUpload?.weightFactors?.length == 6) {
|
|
35
|
-
if (risk?.likelihood &&
|
|
37
|
+
if (risk?.likelihood &&
|
|
38
|
+
risk?.impact &&
|
|
39
|
+
risk?.velocity &&
|
|
40
|
+
risk?.vulnerability) {
|
|
36
41
|
this.showCompleteAssessmentButton = true;
|
|
37
42
|
}
|
|
38
43
|
}
|
|
39
44
|
});
|
|
40
45
|
}
|
|
41
|
-
ngOnInit() {
|
|
42
|
-
console.log("riskBulkUploadriskBulkUploadriskBulkUpload", this.riskBulkUpload);
|
|
43
|
-
}
|
|
44
46
|
submit(completeAssessment) {
|
|
45
47
|
this.submitRiskBulkUpload.emit(completeAssessment);
|
|
46
48
|
}
|
|
@@ -70,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
70
72
|
}], cancel: [{
|
|
71
73
|
type: Output
|
|
72
74
|
}] } });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvYnVsay12aWV3L2J1bGstdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2J1bGstdmlldy9idWxrLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7Ozs7O0FBTzFGLE1BQU0sT0FBTyxpQkFBaUI7SUFMOUI7UUFZVyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWQseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV0QyxlQUFVLEdBQUMsQ0FBQyxDQUFDO1FBQ2IsaUNBQTRCLEdBQUcsS0FBSyxDQUFDO0tBNkN0QztJQTNDQyxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUM5QyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ2hCLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDO2lCQUN0QjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ047UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFRLEVBQUUsRUFBRTtZQUM3QyxJQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sSUFBRSxDQUFDLEVBQUM7Z0JBQy9DLElBQUcsSUFBSSxFQUFFLFVBQVUsSUFBRyxJQUFJLEVBQUUsTUFBTSxFQUFDO29CQUNqQyxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDO2lCQUUxQzthQUNGO2lCQUFLLElBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxJQUFFLENBQUMsRUFBQztnQkFDckQsSUFBRyxJQUFJLEVBQUUsVUFBVSxJQUFHLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsRUFBQztvQkFDNUUsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQztpQkFFMUM7YUFDRjtpQkFBSyxJQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sSUFBRSxDQUFDLEVBQUM7Z0JBQ3JELElBQUcsSUFBSSxFQUFFLFVBQVUsSUFBRyxJQUFJLEVBQUUsTUFBTSxJQUFJLElBQUksRUFBRSxRQUFRLElBQUcsSUFBSSxFQUFFLGFBQWEsRUFBQztvQkFDekUsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQztpQkFFMUM7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFFBQVE7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLDRDQUE0QyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUNoRixDQUFDO0lBSUQsTUFBTSxDQUFDLGtCQUFzQjtRQUMzQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7OzhHQXZEVSxpQkFBaUI7a0dBQWpCLGlCQUFpQix1VkNQOUIsbTFRQXFIQTsyRkQ5R2EsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGVBQWU7OEJBTWhCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFFSSxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uSW5pdCwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1idWxrLXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9idWxrLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2J1bGstdmlldy5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQnVsa1ZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25DaGFuZ2VzIHtcclxuXHJcbiAgQElucHV0KCkgcmlza0J1bGtVcGxvYWQhOiBhbnk7XHJcbiAgQElucHV0KCkgdGVtcGxhdGVJbmZvITogYW55O1xyXG4gIEBJbnB1dCgpIGZpbGVOYW1lITogYW55O1xyXG4gIEBJbnB1dCgpIGFzc2Vzc21lbnREYXlzRW5hYmxlITogYW55O1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRPd25lciE6IGFueTtcclxuICBASW5wdXQoKSBsb2FkZXIgPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIHN1Ym1pdFJpc2tCdWxrVXBsb2FkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7ICBcclxuICBcclxuICBmaW5hbFJpc2tzPTA7XHJcbiAgc2hvd0NvbXBsZXRlQXNzZXNzbWVudEJ1dHRvbiA9IGZhbHNlO1xyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIGlmICh0aGlzLnJpc2tCdWxrVXBsb2FkKSB7XHJcbiAgICAgIHRoaXMuZmluYWxSaXNrcyA9IDA7XHJcbiAgICAgICAgdGhpcy5yaXNrQnVsa1VwbG9hZC5yaXNrcy5mb3JFYWNoKChyaXNrOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyaXNrLmlzVmFsaWQpIHtcclxuICAgICAgICAgICAgdGhpcy5maW5hbFJpc2tzICs9IDE7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJpc2tCdWxrVXBsb2FkLnJpc2tzLmZvckVhY2goKHJpc2s6YW55KSA9PiB7XHJcbiAgICAgIGlmKHRoaXMucmlza0J1bGtVcGxvYWQ/LndlaWdodEZhY3RvcnM/Lmxlbmd0aD09NCl7XHJcbiAgICAgICAgaWYocmlzaz8ubGlrZWxpaG9vZCAmJnJpc2s/LmltcGFjdCl7XHJcbiAgICAgICAgICB0aGlzLnNob3dDb21wbGV0ZUFzc2Vzc21lbnRCdXR0b24gPSB0cnVlO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1lbHNlIGlmKHRoaXMucmlza0J1bGtVcGxvYWQ/LndlaWdodEZhY3RvcnM/Lmxlbmd0aD09NSl7XHJcbiAgICAgICAgaWYocmlzaz8ubGlrZWxpaG9vZCAmJnJpc2s/LmltcGFjdCAmJiAocmlzaz8udmVsb2NpdHkgfHwgcmlzaz8udnVsbmVyYWJpbGl0eSkpe1xyXG4gICAgICAgICAgdGhpcy5zaG93Q29tcGxldGVBc3Nlc3NtZW50QnV0dG9uID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9ZWxzZSBpZih0aGlzLnJpc2tCdWxrVXBsb2FkPy53ZWlnaHRGYWN0b3JzPy5sZW5ndGg9PTYpe1xyXG4gICAgICAgIGlmKHJpc2s/Lmxpa2VsaWhvb2QgJiZyaXNrPy5pbXBhY3QgJiYgcmlzaz8udmVsb2NpdHkgJiZyaXNrPy52dWxuZXJhYmlsaXR5KXtcclxuICAgICAgICAgIHRoaXMuc2hvd0NvbXBsZXRlQXNzZXNzbWVudEJ1dHRvbiA9IHRydWU7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coXCJyaXNrQnVsa1VwbG9hZHJpc2tCdWxrVXBsb2Fkcmlza0J1bGtVcGxvYWRcIiwgdGhpcy5yaXNrQnVsa1VwbG9hZClcclxuICB9XHJcblxyXG5cclxuXHJcbiAgc3VibWl0KGNvbXBsZXRlQXNzZXNzbWVudDphbnkpe1xyXG4gICAgdGhpcy5zdWJtaXRSaXNrQnVsa1VwbG9hZC5lbWl0KGNvbXBsZXRlQXNzZXNzbWVudCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpe1xyXG4gICAgdGhpcy5jYW5jZWwuZW1pdCgpO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJidWxrLXZpZXdcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJidWxrLXZpZXctaGVhZFwiPlxyXG4gICAgICAgIDxoMiBjbGFzcz1cImJ1bGstdmlldy10aXRsZVwiPlxyXG4gICAgICAgICAgICB7e2ZpbGVOYW1lfX1cclxuICAgICAgICA8L2gyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYnVsay12aWV3LWJvZHlcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IGhlYWRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIHNsLW5vXCI+IzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MudHdvLWNvbHVtbl09XCJoZWFkaW5nICYmIGkgPT09IDRcIiAqbmdGb3I9XCJsZXQgaGVhZGluZyBvZiByaXNrQnVsa1VwbG9hZD8uaGVhZGVyOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MubGFyZ2VdPVwiaGVhZGluZyAmJiBoZWFkaW5nLnN0YXJ0c1dpdGgoJ0luaGVyZW50JylcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGluZyAmJiAhKGhlYWRpbmcuc3RhcnRzV2l0aCgnSW5oZXJlbnQnKSkgJiYgIShpID09PSA0KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyhoZWFkaW5nLmluY2x1ZGVzKCcqJyk/IGhlYWRpbmcucmVwbGFjZSgnKicsICcnKSA6IGhlYWRpbmcpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJoZWFkaW5nLmluY2x1ZGVzKCcqJylcIiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGluZyAmJiBoZWFkaW5nLnN0YXJ0c1dpdGgoJ0luaGVyZW50JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIGxhcmdlXCI+SW5oZXJlbnQgUmlzayBBc3Nlc3NtZW50PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBtdWx0aS1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgKm5nRm9yPVwibGV0IHdlaWdodEFnZUZhY3RvciBvZiByaXNrQnVsa1VwbG9hZC53ZWlnaHRGYWN0b3JzIHwgc2xpY2UgOiAyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t3ZWlnaHRBZ2VGYWN0b3J9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGluZyAmJiBpID09PSA0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBsYXJnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KGhlYWRpbmcuaW5jbHVkZXMoJyonKT8gaGVhZGluZy5yZXBsYWNlKCcqJywgJycpIDogaGVhZGluZyl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaGVhZGluZy5pbmNsdWRlcygnKicpXCIgY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy50d28tY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgKm5nRm9yPVwibGV0IHdlaWdodEFnZUZhY3RvciBvZiByaXNrQnVsa1VwbG9hZD8ud2VpZ2h0RmFjdG9ycyB8IHNsaWNlIDogMDogMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KHdlaWdodEFnZUZhY3Rvci5pbmNsdWRlcygnKicpPyB3ZWlnaHRBZ2VGYWN0b3IucmVwbGFjZSgnKicsICcnKSA6IHdlaWdodEFnZUZhY3Rvcil9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwid2VpZ2h0QWdlRmFjdG9yLmluY2x1ZGVzKCcqJylcIiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3dcIiAqbmdGb3I9XCJsZXQgcmlzayBvZiByaXNrQnVsa1VwbG9hZC5yaXNrczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gc2wtbm9cIiBbY2xhc3MuZXJyb3JdPVwiIXJpc2suaXNWYWxpZFwiPnt7aSsxfX08L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmlzaz8ucmlza05hbWVcIj57e3Jpc2s/LnJpc2tOYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyaXNrPy5yaXNrTmFtZVwiIGNsYXNzPVwiaWNvbnNcIiBbYXBwVG9vbHRpcF09XCInUmlzayBOYW1lIG11c3QgYmUgcG9wdWxhdGVkLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyaXNrPy5kZXNjcmlwdGlvbn19PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiIXJpc2s/LnJjTmFtZVwiPnt7cmlzaz8ucmNOYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyaXNrPy5yY05hbWVcIiBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ0Fzc2lnbiB0aGlzIHJpc2sgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIuJ1wiIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3Jpc2s/Lm93bmVyfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy50d28tY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmlzaz8uaXNWYWxpZEZyZXF1ZW5jeVwiPnt7cmlzaz8uZnJlcXVlbmN5fX0gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXJpc2s/LmlzVmFsaWRGcmVxdWVuY3lcIiBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1NldCBhIGZyZXF1ZW5jeSBmb3IgdGhlIGNvbXBsZXRpb24gb2YgdGhlIGluaGVyZW50IHJpc2sgYXNzZXNzbWVudC4nXCIgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiZmFsc2VcIj57e3Jpc2s/LmVtYWlsUmVtaW5kZXJ9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiKHJpc2s/Lm93bmVyICYmIChyaXNrPy5vd25lciA9PSByaXNrPy5vdmVyc2VlcikpfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAoIXJpc2s/Lm93bmVyICYmIChkZWZhdWx0T3duZXIgPT0gcmlzaz8ub3ZlcnNlZXIpKVwiPnt7cmlzaz8ub3ZlcnNlZXJ9fVxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKHJpc2s/Lm93bmVyICYmIChyaXNrPy5vd25lciA9PSByaXNrPy5vdmVyc2VlcikpIHx8ICghcmlzaz8ub3duZXIgJiYgKGRlZmF1bHRPd25lciA9PSByaXNrPy5vdmVyc2VlcikpIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCIoKHJpc2s/Lm93bmVyKT8nVGhlIFJpc2sgT3duZXIgY2Fubm90IGFsc28gYmUgdGhlJzonWW91IGNhbm5vdCBiZSBhJykgKycgT3ZlcnNpZ2h0IG9mIHRoZSByaXNrLiBTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBPdmVyc2lnaHQgb2YgdGhpcyByaXNrLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJpc2tCdWxrVXBsb2FkPy5oZWFkZXIgJiYgcmlza0J1bGtVcGxvYWQ/LmhlYWRlcj8uaW5jbHVkZXMoJ1JlY29tbWVuZGVkIE1pdGlnYXRpb24gUHJpb3JpdHknKVwiIGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmlzaz8ubWl0aWdhdGlvblByaW9yaXR5fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyaXNrPy5taXRpZ2F0aW9uUGxhbnN9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3Jpc2s/LnJpc2tMYWJlbH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgKm5nSWY9XCJhc3Nlc3NtZW50RGF5c0VuYWJsZVwiIFtjbGFzcy5lcnJvcl09XCIhcmlzaz8uYXNzZXNzbWVudERlYWRMaW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tyaXNrPy5hc3Nlc3NtZW50RGVhZExpbmV9fVxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXJpc2s/LmFzc2Vzc21lbnREZWFkTGluZVwiIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInU2V0IGEgZGVhZGxpbmUgZm9yIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBpbmhlcmVudCByaXNrIGFzc2Vzc21lbnQuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cInJpc2s/Lmxpa2VsaWhvb2QgJiYgIXRlbXBsYXRlSW5mbz8ubGlrZWxpaG9vZC5pbmNsdWRlcyhyaXNrPy5saWtlbGlob29kKVwiPnt7cmlzaz8ubGlrZWxpaG9vZH19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cInJpc2s/LmltcGFjdCAmJiAhdGVtcGxhdGVJbmZvPy5pbXBhY3QuaW5jbHVkZXMocmlzaz8uaW1wYWN0KVwiPnt7cmlzaz8uaW1wYWN0fX0gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwicmlzaz8udmVsb2NpdHkgJiYgIXRlbXBsYXRlSW5mbz8udmVsb2NpdHkuaW5jbHVkZXMocmlzaz8udmVsb2NpdHkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJyaXNrQnVsa1VwbG9hZD8ud2VpZ2h0RmFjdG9ycz8uaW5jbHVkZXMoJ1ZlbG9jaXR5JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tyaXNrPy52ZWxvY2l0eX19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cInJpc2s/LnZ1bG5lcmFiaWxpdHkgJiYgIXRlbXBsYXRlSW5mbz8udnVsbmVyYWJpbGl0eS5pbmNsdWRlcyhyaXNrPy52dWxuZXJhYmlsaXR5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicmlza0J1bGtVcGxvYWQ/LndlaWdodEZhY3RvcnM/LmluY2x1ZGVzKCdWdWxuZXJhYmlsaXR5JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tyaXNrPy52dWxuZXJhYmlsaXR5fX0gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyaXNrQnVsa1VwbG9hZD8uaGVhZGVyICYmIHJpc2tCdWxrVXBsb2FkPy5oZWFkZXI/LmluY2x1ZGVzKCdEbyB5b3Ugd2FudCB0byBhcHBseSB0aGUgc2FtZSByaXNrIHJhdGluZ3MgZm9yIGFsbCBSZXNwb25zaWJpbGl0eSBDZW50ZXJzPycpXCIgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyaXNrPy5hcHBseVNhbWVSaXNrUmF0aW5nfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3Jpc2s/LmN1c3RvbUZpZWxkMX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmlzaz8uY3VzdG9tRmllbGQyfX08L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJpc2s/LmN1c3RvbVRhZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgKm5nRm9yPVwibGV0IHRhZyBvZiByaXNrPy5jdXN0b21UYWdcIj57e3RhZz8uY3VzdG9tX3RhZ192YWx1ZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnVsay12aWV3LWZvb3RlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgPHA+e3tmaW5hbFJpc2tzfX0gb3V0IG9mIHt7cmlza0J1bGtVcGxvYWQ/LnJpc2tzPy5sZW5ndGh9fSByaXNrcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBSaXNrIFJlZ2lzdGVyLjwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic3VibWl0KGZhbHNlKVwiIFtkaXNhYmxlZF09XCJmaW5hbFJpc2tzPDFcIiBjbGFzcz1cImJsdWVcIj5BZGQgUmlza3M8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInN1Ym1pdCh0cnVlKVwiICpuZ0lmPVwic2hvd0NvbXBsZXRlQXNzZXNzbWVudEJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZpbmFsUmlza3M8MVwiIGNsYXNzPVwiYmx1ZVwiPkFkZCBSaXNrcyBBbmQgQ29tcGxldGUgQXNzZXNzbWVudDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImxvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XHJcbiJdfQ==
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvYnVsay12aWV3L2J1bGstdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2J1bGstdmlldy9idWxrLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsWUFBWSxFQUNaLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFPdkIsTUFBTSxPQUFPLGlCQUFpQjtJQUw5QjtRQVdXLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFZCx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzFDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXRDLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixpQ0FBNEIsR0FBRyxLQUFLLENBQUM7S0E0Q3RDO0lBMUNDLFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7WUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQzlDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDaEIsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUM7aUJBQ3RCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQzlDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRTtnQkFDbkQsSUFBSSxJQUFJLEVBQUUsVUFBVSxJQUFJLElBQUksRUFBRSxNQUFNLEVBQUU7b0JBQ3BDLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUM7aUJBQzFDO2FBQ0Y7aUJBQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFO2dCQUMxRCxJQUNFLElBQUksRUFBRSxVQUFVO29CQUNoQixJQUFJLEVBQUUsTUFBTTtvQkFDWixDQUFDLElBQUksRUFBRSxRQUFRLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxFQUN2QztvQkFDQSxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDO2lCQUMxQzthQUNGO2lCQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRTtnQkFDMUQsSUFDRSxJQUFJLEVBQUUsVUFBVTtvQkFDaEIsSUFBSSxFQUFFLE1BQU07b0JBQ1osSUFBSSxFQUFFLFFBQVE7b0JBQ2QsSUFBSSxFQUFFLGFBQWEsRUFDbkI7b0JBQ0EsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQztpQkFDMUM7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxrQkFBdUI7UUFDNUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDOzs4R0F2RFUsaUJBQWlCO2tHQUFqQixpQkFBaUIsdVZDYjlCLG0xUUFxSEE7MkZEeEdhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxlQUFlOzhCQUtoQixjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUksb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPdXRwdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYnVsay12aWV3JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYnVsay12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9idWxrLXZpZXcuY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJ1bGtWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSByaXNrQnVsa1VwbG9hZCE6IGFueTtcclxuICBASW5wdXQoKSB0ZW1wbGF0ZUluZm8hOiBhbnk7XHJcbiAgQElucHV0KCkgZmlsZU5hbWUhOiBhbnk7XHJcbiAgQElucHV0KCkgYXNzZXNzbWVudERheXNFbmFibGUhOiBhbnk7XHJcbiAgQElucHV0KCkgZGVmYXVsdE93bmVyITogYW55O1xyXG4gIEBJbnB1dCgpIGxvYWRlciA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgc3VibWl0Umlza0J1bGtVcGxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgZmluYWxSaXNrcyA9IDA7XHJcbiAgc2hvd0NvbXBsZXRlQXNzZXNzbWVudEJ1dHRvbiA9IGZhbHNlO1xyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIGlmICh0aGlzLnJpc2tCdWxrVXBsb2FkKSB7XHJcbiAgICAgIHRoaXMuZmluYWxSaXNrcyA9IDA7XHJcbiAgICAgIHRoaXMucmlza0J1bGtVcGxvYWQucmlza3MuZm9yRWFjaCgocmlzazogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJpc2suaXNWYWxpZCkge1xyXG4gICAgICAgICAgdGhpcy5maW5hbFJpc2tzICs9IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMucmlza0J1bGtVcGxvYWQucmlza3MuZm9yRWFjaCgocmlzazogYW55KSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnJpc2tCdWxrVXBsb2FkPy53ZWlnaHRGYWN0b3JzPy5sZW5ndGggPT0gNCkge1xyXG4gICAgICAgIGlmIChyaXNrPy5saWtlbGlob29kICYmIHJpc2s/LmltcGFjdCkge1xyXG4gICAgICAgICAgdGhpcy5zaG93Q29tcGxldGVBc3Nlc3NtZW50QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5yaXNrQnVsa1VwbG9hZD8ud2VpZ2h0RmFjdG9ycz8ubGVuZ3RoID09IDUpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICByaXNrPy5saWtlbGlob29kICYmXHJcbiAgICAgICAgICByaXNrPy5pbXBhY3QgJiZcclxuICAgICAgICAgIChyaXNrPy52ZWxvY2l0eSB8fCByaXNrPy52dWxuZXJhYmlsaXR5KVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy5zaG93Q29tcGxldGVBc3Nlc3NtZW50QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5yaXNrQnVsa1VwbG9hZD8ud2VpZ2h0RmFjdG9ycz8ubGVuZ3RoID09IDYpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICByaXNrPy5saWtlbGlob29kICYmXHJcbiAgICAgICAgICByaXNrPy5pbXBhY3QgJiZcclxuICAgICAgICAgIHJpc2s/LnZlbG9jaXR5ICYmXHJcbiAgICAgICAgICByaXNrPy52dWxuZXJhYmlsaXR5XHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dDb21wbGV0ZUFzc2Vzc21lbnRCdXR0b24gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXQoY29tcGxldGVBc3Nlc3NtZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc3VibWl0Umlza0J1bGtVcGxvYWQuZW1pdChjb21wbGV0ZUFzc2Vzc21lbnQpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJidWxrLXZpZXdcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJidWxrLXZpZXctaGVhZFwiPlxyXG4gICAgICAgIDxoMiBjbGFzcz1cImJ1bGstdmlldy10aXRsZVwiPlxyXG4gICAgICAgICAgICB7e2ZpbGVOYW1lfX1cclxuICAgICAgICA8L2gyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYnVsay12aWV3LWJvZHlcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IGhlYWRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIHNsLW5vXCI+IzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MudHdvLWNvbHVtbl09XCJoZWFkaW5nICYmIGkgPT09IDRcIiAqbmdGb3I9XCJsZXQgaGVhZGluZyBvZiByaXNrQnVsa1VwbG9hZD8uaGVhZGVyOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MubGFyZ2VdPVwiaGVhZGluZyAmJiBoZWFkaW5nLnN0YXJ0c1dpdGgoJ0luaGVyZW50JylcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGluZyAmJiAhKGhlYWRpbmcuc3RhcnRzV2l0aCgnSW5oZXJlbnQnKSkgJiYgIShpID09PSA0KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyhoZWFkaW5nLmluY2x1ZGVzKCcqJyk/IGhlYWRpbmcucmVwbGFjZSgnKicsICcnKSA6IGhlYWRpbmcpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJoZWFkaW5nLmluY2x1ZGVzKCcqJylcIiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGluZyAmJiBoZWFkaW5nLnN0YXJ0c1dpdGgoJ0luaGVyZW50JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIGxhcmdlXCI+SW5oZXJlbnQgUmlzayBBc3Nlc3NtZW50PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBtdWx0aS1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgKm5nRm9yPVwibGV0IHdlaWdodEFnZUZhY3RvciBvZiByaXNrQnVsa1VwbG9hZC53ZWlnaHRGYWN0b3JzIHwgc2xpY2UgOiAyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t3ZWlnaHRBZ2VGYWN0b3J9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGluZyAmJiBpID09PSA0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBsYXJnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KGhlYWRpbmcuaW5jbHVkZXMoJyonKT8gaGVhZGluZy5yZXBsYWNlKCcqJywgJycpIDogaGVhZGluZyl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaGVhZGluZy5pbmNsdWRlcygnKicpXCIgY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy50d28tY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgKm5nRm9yPVwibGV0IHdlaWdodEFnZUZhY3RvciBvZiByaXNrQnVsa1VwbG9hZD8ud2VpZ2h0RmFjdG9ycyB8IHNsaWNlIDogMDogMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KHdlaWdodEFnZUZhY3Rvci5pbmNsdWRlcygnKicpPyB3ZWlnaHRBZ2VGYWN0b3IucmVwbGFjZSgnKicsICcnKSA6IHdlaWdodEFnZUZhY3Rvcil9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwid2VpZ2h0QWdlRmFjdG9yLmluY2x1ZGVzKCcqJylcIiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3dcIiAqbmdGb3I9XCJsZXQgcmlzayBvZiByaXNrQnVsa1VwbG9hZC5yaXNrczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gc2wtbm9cIiBbY2xhc3MuZXJyb3JdPVwiIXJpc2suaXNWYWxpZFwiPnt7aSsxfX08L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmlzaz8ucmlza05hbWVcIj57e3Jpc2s/LnJpc2tOYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyaXNrPy5yaXNrTmFtZVwiIGNsYXNzPVwiaWNvbnNcIiBbYXBwVG9vbHRpcF09XCInUmlzayBOYW1lIG11c3QgYmUgcG9wdWxhdGVkLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyaXNrPy5kZXNjcmlwdGlvbn19PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiIXJpc2s/LnJjTmFtZVwiPnt7cmlzaz8ucmNOYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyaXNrPy5yY05hbWVcIiBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ0Fzc2lnbiB0aGlzIHJpc2sgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIuJ1wiIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3Jpc2s/Lm93bmVyfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy50d28tY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmlzaz8uaXNWYWxpZEZyZXF1ZW5jeVwiPnt7cmlzaz8uZnJlcXVlbmN5fX0gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXJpc2s/LmlzVmFsaWRGcmVxdWVuY3lcIiBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1NldCBhIGZyZXF1ZW5jeSBmb3IgdGhlIGNvbXBsZXRpb24gb2YgdGhlIGluaGVyZW50IHJpc2sgYXNzZXNzbWVudC4nXCIgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiZmFsc2VcIj57e3Jpc2s/LmVtYWlsUmVtaW5kZXJ9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiKHJpc2s/Lm93bmVyICYmIChyaXNrPy5vd25lciA9PSByaXNrPy5vdmVyc2VlcikpfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAoIXJpc2s/Lm93bmVyICYmIChkZWZhdWx0T3duZXIgPT0gcmlzaz8ub3ZlcnNlZXIpKVwiPnt7cmlzaz8ub3ZlcnNlZXJ9fVxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKHJpc2s/Lm93bmVyICYmIChyaXNrPy5vd25lciA9PSByaXNrPy5vdmVyc2VlcikpIHx8ICghcmlzaz8ub3duZXIgJiYgKGRlZmF1bHRPd25lciA9PSByaXNrPy5vdmVyc2VlcikpIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCIoKHJpc2s/Lm93bmVyKT8nVGhlIFJpc2sgT3duZXIgY2Fubm90IGFsc28gYmUgdGhlJzonWW91IGNhbm5vdCBiZSBhJykgKycgT3ZlcnNpZ2h0IG9mIHRoZSByaXNrLiBTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBPdmVyc2lnaHQgb2YgdGhpcyByaXNrLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJpc2tCdWxrVXBsb2FkPy5oZWFkZXIgJiYgcmlza0J1bGtVcGxvYWQ/LmhlYWRlcj8uaW5jbHVkZXMoJ1JlY29tbWVuZGVkIE1pdGlnYXRpb24gUHJpb3JpdHknKVwiIGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmlzaz8ubWl0aWdhdGlvblByaW9yaXR5fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyaXNrPy5taXRpZ2F0aW9uUGxhbnN9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3Jpc2s/LnJpc2tMYWJlbH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgKm5nSWY9XCJhc3Nlc3NtZW50RGF5c0VuYWJsZVwiIFtjbGFzcy5lcnJvcl09XCIhcmlzaz8uYXNzZXNzbWVudERlYWRMaW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tyaXNrPy5hc3Nlc3NtZW50RGVhZExpbmV9fVxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXJpc2s/LmFzc2Vzc21lbnREZWFkTGluZVwiIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInU2V0IGEgZGVhZGxpbmUgZm9yIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBpbmhlcmVudCByaXNrIGFzc2Vzc21lbnQuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cInJpc2s/Lmxpa2VsaWhvb2QgJiYgIXRlbXBsYXRlSW5mbz8ubGlrZWxpaG9vZC5pbmNsdWRlcyhyaXNrPy5saWtlbGlob29kKVwiPnt7cmlzaz8ubGlrZWxpaG9vZH19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cInJpc2s/LmltcGFjdCAmJiAhdGVtcGxhdGVJbmZvPy5pbXBhY3QuaW5jbHVkZXMocmlzaz8uaW1wYWN0KVwiPnt7cmlzaz8uaW1wYWN0fX0gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwicmlzaz8udmVsb2NpdHkgJiYgIXRlbXBsYXRlSW5mbz8udmVsb2NpdHkuaW5jbHVkZXMocmlzaz8udmVsb2NpdHkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJyaXNrQnVsa1VwbG9hZD8ud2VpZ2h0RmFjdG9ycz8uaW5jbHVkZXMoJ1ZlbG9jaXR5JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tyaXNrPy52ZWxvY2l0eX19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cInJpc2s/LnZ1bG5lcmFiaWxpdHkgJiYgIXRlbXBsYXRlSW5mbz8udnVsbmVyYWJpbGl0eS5pbmNsdWRlcyhyaXNrPy52dWxuZXJhYmlsaXR5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicmlza0J1bGtVcGxvYWQ/LndlaWdodEZhY3RvcnM/LmluY2x1ZGVzKCdWdWxuZXJhYmlsaXR5JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tyaXNrPy52dWxuZXJhYmlsaXR5fX0gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyaXNrQnVsa1VwbG9hZD8uaGVhZGVyICYmIHJpc2tCdWxrVXBsb2FkPy5oZWFkZXI/LmluY2x1ZGVzKCdEbyB5b3Ugd2FudCB0byBhcHBseSB0aGUgc2FtZSByaXNrIHJhdGluZ3MgZm9yIGFsbCBSZXNwb25zaWJpbGl0eSBDZW50ZXJzPycpXCIgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyaXNrPy5hcHBseVNhbWVSaXNrUmF0aW5nfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3Jpc2s/LmN1c3RvbUZpZWxkMX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmlzaz8uY3VzdG9tRmllbGQyfX08L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJpc2s/LmN1c3RvbVRhZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgKm5nRm9yPVwibGV0IHRhZyBvZiByaXNrPy5jdXN0b21UYWdcIj57e3RhZz8uY3VzdG9tX3RhZ192YWx1ZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnVsay12aWV3LWZvb3RlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgPHA+e3tmaW5hbFJpc2tzfX0gb3V0IG9mIHt7cmlza0J1bGtVcGxvYWQ/LnJpc2tzPy5sZW5ndGh9fSByaXNrcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBSaXNrIFJlZ2lzdGVyLjwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic3VibWl0KGZhbHNlKVwiIFtkaXNhYmxlZF09XCJmaW5hbFJpc2tzPDFcIiBjbGFzcz1cImJsdWVcIj5BZGQgUmlza3M8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInN1Ym1pdCh0cnVlKVwiICpuZ0lmPVwic2hvd0NvbXBsZXRlQXNzZXNzbWVudEJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZpbmFsUmlza3M8MVwiIGNsYXNzPVwiYmx1ZVwiPkFkZCBSaXNrcyBBbmQgQ29tcGxldGUgQXNzZXNzbWVudDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImxvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XHJcbiJdfQ==
|